Home

Awesome

DICOMFuse

DICOMFuse is a file system that integrates with the Cloud Healthcare API. DICOMFuse lets you anonymize (using an anonymization tool), read, upload, and delete images in DICOM stores.
DICOMFuse is cross-platform application written in Java. You can use it in Linux, Windows or macOS.

Prerequisites

Applications

Before running DICOMFuse, ensure that you've installed the following applications:

FUSE has been supported in Linux kernel since 2.6.14 version.

Credentials

DICOMFuse will use application default credentials to authenticate access to the Cloud Healthcare API. The identity must have the permissions within the Healthcare DICOM Editor role.
Alternatively, you can specify a service account key via the --keyFile flag. The easiest way to set up credentials is to use your user credentials with the gcloud tool:

gcloud auth application-default login

Running DICOMFuse

To run DICOMFuse:

  1. Download the latest JAR from the releases tab.
  2. To start DICOMFuse, open a terminal in the DICOMFuse folder and input:
    java -jar healthcare-api-dicom-fuse-X.Y.Z.jar [options]
    In Windows - java -Dfile.encoding=UTF8 -jar healthcare-api-dicom-fuse-X.Y.Z.jar [options]
  3. To stop DICOMFuse, press CTRL+C.

ERROR and INFO logs present in the terminal. During launching DICOMFuse, logs folder will be created next to the DICOMFuse JAR, where DEBUG, INFO and ERROR logs will be saved.

Mount options

You can specify the following mount options when you start DICOMFuse:

* --datasetAddr, -a
    Web address to the Dataset.
    Example: https://healthcare.googleapis.com/v1beta1/projects/PROJECT/locations/LOCATION/datasets/DATASET
* --mountPath, -p
    Path to mount the Dataset.
    Example on Linux: /home/user/fuse-mount-folder
    Example on macOS: /Users/user/fuse-mount-folder
    Example on Windows: J:\
  --cacheTime, -t
    Each value in this option is measured in seconds.
    To optimize DICOMFuse, the following resources are cached: DICOM store folders, Study folders, Series folders,
    list of Instances (first parameter in option), and opened Instances files (second parameter).
    Opened Instance files are cached to the temporary folder in the user space on disk.
    Other objects are cached to RAM. Cached files will be deleted if you close DICOMFuse or if the cached
    files become out of date. If you delete or upload an Instance file locally, the cache will
    be invalidated, and updated if you open a folder again.
    Default: 60,300
  --cacheSize, -s
    Maximum cache size in megabytes for cached instances. The maximum file size that can be
    downloaded/uploaded is cacheSize / 4
    Default: 10000
  --enableDeletion, -d
    Some programs can delete files and deletion can also be done manually. Sometimes accidental deletions can occur.
    If you don't want to delete files, you can set `--enableDeletion=false`
    Default: true
  --keyFile, -k
    Path to the account service key
  --extraMountOptions
    You can add additional mount options for libfuse, WinFsp or OSXFuse.
    Example: --extraMountOptions allow_other,option2=VALUE,etc  Note: since DICOMFuse is specific 
    for correct behavior in different operating systems, some mount options were included initially. 
    See: https://github.com/GoogleCloudPlatform/healthcare-api-dicom-fuse/blob/develop/src/main/java/com/google/dicomwebfuse/MountOptions.java
    Default: []
  --help, -h
    Print help

Note: * are required options.
The current implementation supports 15,000 results in folders.

Description

Data model

Operations supported

You can use a graphical interface on an OS or commands in the terminal to navigate through folders.

Operations supported in graphical interface:

Note: to get better performance, you must upload files to DICOM Store folder, and files must have .dcm or another extension.

Operations supported in the terminal:

Any reading use cases can be used, such as de-identification or manual editing of the (binary) DICOM object.

Caching objects

To optimize DICOMFuse, the following resources are cached: DICOM store folders, Study folders, Series folders, list of Instances (first parameter in option), and opened Instances files (second parameter). Opened Instance files are cached to the temporary folder in the user space on disk. Other objects are cached to RAM. Cached files will be deleted if you close DICOMFuse or if the cached files become out of date.

Packaging

  1. git clone https://github.com/GoogleCloudPlatform/healthcare-api-dicom-fuse.git
  2. mvn package in the healthcare-api-dicom-fuse folder in the terminal (for packaging to jar).

There is a healthcare-api-dicom-fuse-X.Y.Z.jar file in the healthcare-api-dicom-fuse/target folder.

License

This application is licensed under Apache License, Version 2.0. Full license text is available in LICENSE.