Giter Site home page Giter Site logo

dicom-send's Introduction

THIS REPOSITORY IS ARCHIVE.
Please refer to https://gitlab.com/flywheel-io/flywheel-apps/dicom-send for the new active repo.

Docker Pulls Docker Stars

dicom-send Gear

A Flywheel Gear to execute DCMTK's storescu to send DICOM data from a Flywheel instance to a DICOM server.

Description

The DICOM Toolkit (DCMTK) is a set of software libraries for working with the DICOM Standard. In particular, the storescu application is useful for transmitting DICOM images. The dicom-send Gear uses DCMTK's storescu to send DICOM data from a Flywheel instance to a specific DICOM server. The DICOM server must be reachable from the host of the Flywheel instance. Before transmitting the DICOM file, a private tag indicating the DICOM file's source as Flywheel is added to each DICOM file to avoid being re-ingested into a Flywheel instance.

Gear Inputs

  • file: Any DICOM file or an archive (zip or tar) containing DICOM file(s). Non DICOM files are ignored. If no input is provided, all DICOM files in the session where the Gear is executed are downloaded and used as input.
  • api_key: Gear will acquire the read-only API key for downloading DICOMs from the session when no input file is provided.

Configuration Settings

  • destination: The IP address or hostname of the destination DICOM server. Note: The server must be reachable from the host of the Flywheel instance.
  • called_ae: The Called AE title of the receiving DICOM server.
  • calling_ae: The Calling AE title. Default = flywheel.
  • port: Port number of the listening DICOM service. Default = 104.

Gear outputs

The gear will generate a report listing each dicom file/archive that was exported. The report includes the following columns:

  • Acquisition ID: the FW Acquisition ID
  • FW Path: a human readable flywheel path to the file that was exported, in the following format:
    • /<project.label>/<subject.label>/<session.label>/<acquisition.label>/files/<file.name>
  • Filename: Name of the file/archive that was sent
  • Images in Series: Number of images in the series to be sent
  • Images Sent: Number of images successfully sent
  • Status: “Complete” if images in series == Images Sent, “Incomplete” if Images Sent < Images in Series, “Failed” if Images Sent == 0.

This report is printed at the end of the log file, and also saved as an attachment to the session container that the gear was run from. The output name of this report file follows the following pattern:

dicom-send_report-<session label>_<acquisition label>_YYYY-MM-DD_HH:MM:SS.csv where <acquisition_label> is only present if one specific acquisition was selected for export.

Images are considered successfully sent if storescu returns a "0" exit code.

The gear will present as successful only if all dicoms that were attempted, were sent succesfully.

Workflow

  1. Acquire Inputs. If the file input is not provided, all files of DICOM type in the session where the Gear is executed are downloaded and set as input for the next stage.
  2. Prepare Inputs. DICOMs packaged into archives (.tgz or .zip) are uncompressed. A private tag is then added to each DICOM file to be transmitted.
  3. Transmit DICOMs. The final stage transmits each DICOM file to the DICOM server indicated during Gear configuration.

Testing

For information on gear testing, see the testing readme.

dicom-send's People

Contributors

dpark6060 avatar hkethi002 avatar joshicola avatar lmperry avatar naterichman avatar npann avatar ryansanford avatar tcbtcb avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

dicom-send's Issues

Better error message for when no files to be sent

When a file isn't given, the gear will attempt to download dicoms from the session, but if there are none, the gear will fail with a tagging error, instead it should log that there are no files to be sent from the session, and exit

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.