All Projects → Emory-HITI → Niffler

Emory-HITI / Niffler

Licence: BSD-3-Clause license
Niffler: A DICOM Framework for Machine Learning and Processing Pipelines.

Programming Languages

python
139335 projects - #7 most used programming language
HTML
75241 projects
java
68154 projects - #9 most used programming language
javascript
184084 projects - #8 most used programming language
XSLT
1337 projects
CSS
56736 projects

Projects that are alternatives of or similar to Niffler

Emory-BMI-GSoC
Emory BMI GSoC Project Ideas
Stars: ✭ 27 (-48.08%)
Mutual labels:  dicom, workflows, radiology, radiology-imaging
DICOM.jl
Julia package for reading and writing DICOM (Digital Imaging and Communications in Medicine) files
Stars: ✭ 45 (-13.46%)
Mutual labels:  dicom, pacs, radiology
wolfpacs
WolfPACS is an DICOM load balancer written in Erlang.
Stars: ✭ 1 (-98.08%)
Mutual labels:  dicom, pacs, radiology
bluelight
a browser-based DICOM viewer
Stars: ✭ 35 (-32.69%)
Mutual labels:  dicom, dicom-server
neurdicom
RESTful PACS server with plugins
Stars: ✭ 97 (+86.54%)
Mutual labels:  dicom, pacs
DICOMClient
DICOM utilities for anonymizing, viewing and uploading to a PACS
Stars: ✭ 40 (-23.08%)
Mutual labels:  dicom, pacs
monai-deploy
MONAI Deploy aims to become the de-facto standard for developing, packaging, testing, deploying and running medical AI applications in clinical production.
Stars: ✭ 56 (+7.69%)
Mutual labels:  dicom, radiology
dicomweb-pacs
Easy to use DICOMWEB enabled PACS with DIMSE services based on sqlite database
Stars: ✭ 42 (-19.23%)
Mutual labels:  dicom, pacs
dicom-standard-chinese
Chinese translation of DICOM standard, DICOM协议中文版
Stars: ✭ 26 (-50%)
Mutual labels:  dicom, pacs
dicom-dimse-native
node js native addon for dimse services
Stars: ✭ 33 (-36.54%)
Mutual labels:  dicom, pacs
nrwl-nx-action
A GitHub Action to wrap Nrwl Nx commands in your workflows.
Stars: ✭ 163 (+213.46%)
Mutual labels:  workflows
clara-dicom-adapter
DICOM Adapter is a component of the Clara Deploy SDK which facilitates integration with DICOM compliant systems, enables ingestion of imaging data, helps triggering of jobs with configurable rules and offers pushing the output of jobs to PACS systems.
Stars: ✭ 31 (-40.38%)
Mutual labels:  dicom
pylidc
An object relational mapping for the LIDC dataset using sqlalchemy.
Stars: ✭ 88 (+69.23%)
Mutual labels:  dicom
qupath-chcapi-extension
Extension to QuPath application adding support for reading from Google Cloud Healthcare API.
Stars: ✭ 13 (-75%)
Mutual labels:  dicom
bidscoin
BIDScoin converts your source-level neuroimaging data to BIDS
Stars: ✭ 75 (+44.23%)
Mutual labels:  dicom
myanon
A mysqldump anonymizer
Stars: ✭ 24 (-53.85%)
Mutual labels:  anonymization
dicom parser
Facilitates DICOM data access.
Stars: ✭ 19 (-63.46%)
Mutual labels:  dicom
lightdicom python
Light DICOM package
Stars: ✭ 16 (-69.23%)
Mutual labels:  dicom
MRIcro
macOS Xcode GLSL Volume Render for NIfTI, Bio-Rad Pic, NRRD, Philips, ITK MetaImage, AFNI, Freesurfer, DICOM images.
Stars: ✭ 17 (-67.31%)
Mutual labels:  dicom
mdw
centurylinkcloud.github.io/mdw/
Stars: ✭ 44 (-15.38%)
Mutual labels:  workflows

Niffler: A DICOM Framework for Machine Learning and Processing Pipelines.

Niffler is a lightweight framework to facilitate executing machine learning pipelines and processing workflows on DICOM images and metadata. Niffler facilitates efficient transfer of DICOM images on-demand and real-time from PACS to the research environments. Niffler is also integrated with the radiology information system (RIS) to get clinical data in real-time. The DICOM images from the PACS and clinical data retrieved from the RIS can be used in conjunction in real-time as well as retrospectively on-demand.

The Niffler framework consists of:

  • On-demand and real-time retrieval and processing of DICOM images from the PACS environment configured to accept requests from a deployment of Niffler.
  • Acquisition and processing of clinical data from a RIS, to enable real-time analytics (RTA).
  • Supportive utility functions such as DICOM → PNG conversion, DICOM → NifTi conversion, DICOM anonymization, and the workflows module.
  • Scanner Usage Visualization with PACS And RIS data algorithm (modules/suvpar).
  • Sample applications of the Niffler modules (modules/app-layer).

Niffler enables receiving DICOM images real-time as a data stream from PACS as well as specific DICOM data based on a series of DICOM C-MOV queries. The Niffler real-time DICOM receiver extracts the metadata free of PHI as the images arrive, store the metadata in a Mongo database, and deletes the images nightly. The on-demand extractor reads a CSV file provided by the user (consisting of a list of values for PatientID, AccessionNumber, or other DICOM keywords), and performs a series of DICOM C-MOVE requests to receive them from the PACS, without manually querying them. Niffler also provides additional features such as converting DICOM images into PNG images, and perform additional computations such as computing scanner utilization and finding scanners with misconfigured clocks.

Emory University develops Niffler with funding from the National Cancer Institute (NCI) of the National Institutes of Health (NIH). Other collaborators contribute to Niffler with funding from the Google Summer of Code (GSoC) and other sources.

Configure Niffler

Niffler consists of multiple modules, inside the modules folder. Here we will look into the common configuration and installation steps of Niffler. An introduction to Niffler can be found here.

Configure PACS

Both meta-extraction and cold-extraction modules require proper configuration of a PACS environment to allow data transfer and query retrieval to Niffler, respectively.

  • Make sure to configure the PACS to send data to Niffler meta-extraction module's host, port, and AE_Title.

  • Niffler cold-extraction won't receive data unless the PACS allows the requests from Niffler cold-extraction (host/port/AE_Title).

Configure Niffler mdextractor service

The modules/meta-extraction/services folder consists of mdextractor.sh, system.json, and mdextractor.service.

mdextractor.sh produces the output in services/niffler-rt.out.

Make sure to provide the correct full path of your meta-extraction folder in the 2nd line of mdextractor.sh, replacing the below:

cd /opt/localdrive/Niffler/modules/meta-extraction/

Provide the appropriate values for mdextractor.service.

[Service]
Environment="MONGO_URI=USERNAME:PASSWORD@localhost:27017/"
Type=simple
ExecStart=/opt/localdrive/Niffler/modules/meta-extraction/service/mdextractor.sh
TimeoutStartSec=360
StandardOutput=/opt/localdrive/Niffler/modules/meta-extraction/service.log
StandardError=/opt/localdrive/Niffler/modules/meta-extraction/service-error.log

Install Niffler

To deploy Niffler, checkout Niffler source code and run the installation script.

$ git clone https://github.com/Emory-HITI/Niffler.git

$ cd Niffler

The master branch is stable whereas the dev branch has the bleeding edge.

You might want to use the dev branch for the latest updates. For more stable version, skip the below step:

$ git checkout dev

Finally, run the installation script.

$ sh install.sh

Please refer to each module's individual README for additional instructions on deploying and using Niffler for each of its modules.

Citing Niffler

If you use Niffler in your research, please cite the below papers:

  • Pradeeban Kathiravelu, Puneet Sharma, Ashish Sharma, Imon Banerjee, Hari Trivedi, Saptarshi Purkayastha, Priyanshu Sinha, Alexandre Cadrin-Chenevert, Nabile Safdar, Judy Wawira Gichoya. A DICOM Framework for Machine Learning Pipelines against Real-Time Radiology Images. Journal of Digital Imaging (JDI). August 2021. https://doi.org/10.1007/s10278-021-00491-w

  • Pradeeban Kathiravelu, Ashish Sharma, Puneet Sharma. Understanding Scanner Utilization With Real-Time DICOM Metadata Extraction. IEEE Access, 9 (2021): 10621-10633. https://doi.org/10.1109/ACCESS.2021.3050467

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].