|
| 1 | +<!-- |
| 2 | + ~ Copyright 2021-2023 MONAI Consortium |
| 3 | + ~ |
| 4 | + ~ Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 | + ~ you may not use this file except in compliance with the License. |
| 6 | + ~ You may obtain a copy of the License at |
| 7 | + ~ |
| 8 | + ~ http://www.apache.org/licenses/LICENSE-2.0 |
| 9 | + ~ |
| 10 | + ~ Unless required by applicable law or agreed to in writing, software |
| 11 | + ~ distributed under the License is distributed on an "AS IS" BASIS, |
| 12 | + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 13 | + ~ See the License for the specific language governing permissions and |
| 14 | + ~ limitations under the License. |
| 15 | +--> |
| 16 | + |
| 17 | + |
| 18 | +# MONAI Deploy Informatics Gateway Services |
| 19 | + |
| 20 | +MONAI Deploy Informatics Gateway supports the following standard protocols for communicating with medical devices: |
| 21 | + |
| 22 | +* **DICOM SCP**: C-ECHO, C-STORE |
| 23 | +* **DICOM SCU**: C-STORE |
| 24 | +* **HL7 Server**: A HL7 MLLP listener. |
| 25 | +* **ACR DSI API**: [The American College of Radiology�s Data Science Institute API](https://www.acrdsi.org/-/media/DSI/Files/ACR-DSI-Model-API.pdf) |
| 26 | +* **DICOMweb client**: QIDO-RS, WADO-RS, STOW-RS |
| 27 | +* **FHIR Server**: POST |
| 28 | +* **FHIR client**: GET |
| 29 | + |
| 30 | +> [!Note] |
| 31 | +> The ACR DSI API uses the DICOMweb client and FHIR client. |
| 32 | +
|
| 33 | +## DICOM SCP |
| 34 | + |
| 35 | +The *DICOM SCP Service* accepts standard DICOM C-ECHO and C-STORE commands, which receive DICOM instances for processing. In addition, the Informatics Gateway groups received DICOM instances by the study or series based on the configuration. Once DICOM instances are grouped, they are assembled into a payload for the [MONAI Deploy Workflow Manager](https://github.com/Project-MONAI/monai-deploy-workflow-manager) to consume. |
| 36 | + |
| 37 | +### Workflow Request |
| 38 | + |
| 39 | +With a DICOM SCP triggered workflow request, the data trigger contains the following: |
| 40 | + |
| 41 | +- `DataService`: `DataService.DIMSE` |
| 42 | +- `Source`: `<calling AE Title>` |
| 43 | +- `Destination`: `<called AE Title>` |
| 44 | + |
| 45 | +## DICOM SCU |
| 46 | + |
| 47 | +The *DICOM SCU Service* enables users to export application-generated DICOM results to external DICOM devices. It subscribes to the `md.export.request.monaiscu` events generated by the [MONAI Deploy Workflow Manager](https://github.com/Project-MONAI/monai-deploy-workflow-manager) and then exports the data to user-configured DICOM destination(s). |
| 48 | + |
| 49 | +> [!Note] |
| 50 | +> DICOM instances are sent as-is; no codec conversion is done as part of the SCU process. |
| 51 | +> See the [DICOM Interface SCU](../compliance/dicom.md#dimse-services-scu) section for more information. |
| 52 | +
|
| 53 | +## DICOMWeb STOW-RS |
| 54 | + |
| 55 | +The *DICOMWeb STOW-RS Service* allows users to trigger a new workflow request by uploading a DICOM dataset. The entire DICOM dataset is assembled into a payload for the [MONAI Deploy Workflow Manager](https://github.com/Project-MONAI/monai-deploy-workflow-manager) to consume. |
| 56 | +It provides options to trigger a workflow with or without specifying a workflow ID/name. See the |
| 57 | +[DICOMWeb STOW-RS](../api/rest/dicomweb-stow.md) section for more information. |
| 58 | + |
| 59 | +### Workflow Request |
| 60 | + |
| 61 | +With a DICOMWeb STOW-RS triggered workflow request, the data trigger contains the following: |
| 62 | + |
| 63 | +- `DataService`: `DataService.DicomWeb` |
| 64 | +- `Source`: `<caller's IP address>` |
| 65 | +- `Destination`: `default` or `<name of Virtual AE Title>` |
| 66 | + |
| 67 | +## HL7 MLLP Server |
| 68 | + |
| 69 | +The *HL7 MLLP Server* accepts Health Level 7 messages via the MLLP (Minimal Lower Layer Protocol). The received messages are validated and assembled into a payload for the [MONAI Deploy Workflow Manager](https://github.com/Project-MONAI/monai-deploy-workflow-manager) to consume. |
| 70 | + |
| 71 | +### Workflow Request |
| 72 | + |
| 73 | +With an HL7 MLLP Server triggered workflow request, the data trigger contains the following: |
| 74 | + |
| 75 | +- `DataService`: `DataService.HL7` |
| 76 | +- `Source`: `<caller's IP address>` |
| 77 | +- `Destination`: `<MIG's IP address>` |
| 78 | + |
| 79 | +## ACR DSI API |
| 80 | + |
| 81 | +The ACR DSI API allows users to trigger inference requests via RESTful calls, utilizing DICOMweb and FHIR to |
| 82 | +retrieve data specified in the request. Upon data retrieval, the Informatics Gateway uploads the data to the |
| 83 | +shared storage and generates an `md.workflow.request` event, which notifies the |
| 84 | +[MONAI Deploy Workflow Manager](https://github.com/Project-MONAI/monai-deploy-workflow-manager) for processing. |
| 85 | +See the [Inference API](../api/rest/inference.md) for more information. |
| 86 | + |
| 87 | +### Workflow Request |
| 88 | + |
| 89 | +With an ACR DSI API triggered workflow request, the data trigger contains the following: |
| 90 | + |
| 91 | +- `DataService`: `DataService.ACR` |
| 92 | +- `Source`: `<transaction ID from the ACR request>` |
| 93 | +- `Destination`: `<MIG's IP address>` |
| 94 | + |
| 95 | +## DICOMweb Export |
| 96 | + |
| 97 | +A DICOMweb export agent can export any user-generated DICOM content to configured DICOM destinations. The agent |
| 98 | +subscribes to the `md.export.request.monaidicomweb` events generated by the [MONAI Deploy Workflow Manager](https://github.com/Project-MONAI/monai-deploy-workflow-manager) |
| 99 | +and then exports the data to user-configured DICOMweb destination(s). |
| 100 | + |
| 101 | +## FHIR Server |
| 102 | + |
| 103 | +The *FHIR Server* accepts FHIR resources as described in the [FHIR API](../api/rest/fhir.md) section. When data arrives at the service, each resource is packaged into a payload and a workflow request is |
| 104 | +sent to the [MONAI Deploy Workflow Manager](https://github.com/Project-MONAI/monai-deploy-workflow-manager). |
| 105 | + |
| 106 | + |
| 107 | +### Workflow Request |
| 108 | + |
| 109 | +With an FHIR Server triggered workflow request, the data trigger contains the following: |
| 110 | + |
| 111 | +- `DataService`: `DataService.FHIR` |
| 112 | +- `Source`: `<caller's IP address>` |
| 113 | +- `Destination`: `<MIG's IP address>` |
0 commit comments