Skip to content

Commit

Permalink
Merge pull request #337 from Emory-HITI/dev
Browse files Browse the repository at this point in the history
Fix documentation and test failure
  • Loading branch information
pradeeban authored Aug 12, 2022
2 parents 72162a2 + 401355f commit 00440b9
Show file tree
Hide file tree
Showing 7 changed files with 197 additions and 157 deletions.
1 change: 1 addition & 0 deletions Acknowledgments.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
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. Niffler also welcomes contributions from open source volunteers and users.
49 changes: 14 additions & 35 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,44 +11,11 @@ The Niffler framework consists of:

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](https://emory-hiti.github.io/Niffler/).

## 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

Expand All @@ -64,12 +31,24 @@ You might want to use the dev branch for the latest updates. For more stable ver
```
$ git checkout dev
```
Finally, run the installation script.
Finally, run the installation script for a quick installation of dependencies.

```
$ sh install.sh
```

Please refer to each module's individual README for additional instructions on deploying and using Niffler for each of its modules.
This script is written for Centos. If you are using another operating system, please go through the script and make necessary changes as the script is easy to follow.

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


## 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.

* If you plan to use meta-extraction and cold-extraction modules, please 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). Please go through your PACS framework's documentation on configuring host/port/AE_Tiles for a new AE to accept queries from (Query AET). Those instructions should prepare your PACS to receive queries from Niffler as the Query AET.



Expand Down
31 changes: 29 additions & 2 deletions modules/meta-extraction/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,39 @@ If you desire more DICOM attributes to an existing collection, add the attribute

If you prefer the additional attributes in a separate collection in the Mongo Metadata Store, create a new txt file with the preferred attributes in the conf folder.

## Configure as a service

Niffler Real-time DICOM Extractor (mdextractor) should be configured as a service, so that it will continue to execute despite system restarts without manually starting them.

# Monitoring Niffler Real-time DICOM Extractor

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

## Check the status of the 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
```


# Maintaining the mdextractor service

Once started, the below commands help check the status of the service and help find any issues in the execution.

## Check the status of the mdextractor service

```
$ sudo systemctl status mdextractor.service
Expand Down
Loading

0 comments on commit 00440b9

Please sign in to comment.