Skip to content

Commit

Permalink
PACS integration docs
Browse files Browse the repository at this point in the history
  • Loading branch information
lext committed Dec 26, 2019
1 parent 54d8615 commit b1fb154
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,19 +17,31 @@ Be careful, this app carries all the dependencies and weighs around 10GB in tota

# Technical documentation

The software is currently composed of four separate loosely-coupled services. Specifically, those are:
The software is currently composed of six separate loosely-coupled services. Specifically, those are:

1. `KNEEL` - Knee joint and landmark localization (https://arxiv.org/abs/1907.12237). REST microservice, port 5000.
2. `DeepKnee` - Automatic KL grading (this work, https://www.nature.com/articles/s41598-018-20132-7). REST microservice running on port 5001.
3. `Backend broker` - a NodeJS microservice implementing asynchronous communication between microservices and UI (socket.io). It runs on 5002 port.
4. `UI` - User Interface implemented in ReactJS. This part runs on 5003.
4. `Orthanc PACS` - An embedded PACS that serves as a DICOM layer for clinical workflow integration
5. `Change polling` - A service that tracks what came to Orthanc and then forwards those data to DeepKnee as well as
to PACS where user wants to store the results. By default, we use an embedded orthanc PACS as a remote PACS. However, this store is not
persistent and will be emptied upon restart. It is highly recommended to specify a persistent remote PACS
6. `UI` - User Interface implemented in ReactJS. This part runs on 5003.


The platform is designed so that it is possible to use `KNEEL` and `DeepKnee` separately. Both microservices expect
a `JSON` with `{dicom: <I64>}`, where `<I64>` is the dicom file encoded in `base64`. If you make a request to either of the services,
it needs to be done to `/kneel/predict/bilateral` or `/deepknee/predict/bilateral` for `KNEEL` and `DeepKnee`, respectively.

An example script that uses the platform can be found in the file `analyze_folder.py`.

## A few words about PACS integration
To deploy this software in your network with persistent PACS, you need to modify docker-compose file which is used
to run DeepKnee. Specifically, you need to change the entry point parameters of `dicom-router` service
modifying `--remote_pacs_addr` and `--remote_pacs_port` parameters. The software creates an exact copy of the X-ray that
came via DICOM, creates new Instance ID and then stores KL grades in `(00040, 0A160)` DICOM field.
DeepKnee does not store neither heatmaps nor softmax outputs in DICOM.

## License
This code is freely available only for research purposes. Commercial use is not allowed by any means.
The provided software is not cleared for diagnostic purposes.
Expand Down

0 comments on commit b1fb154

Please sign in to comment.