Skip to content

Revise user guide #78

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 10 commits into from
Apr 5, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
158 changes: 79 additions & 79 deletions docs/api/rest/config.md

Large diffs are not rendered by default.

28 changes: 14 additions & 14 deletions docs/api/rest/health.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
<!--
SPDX-FileCopyrightText: 2021-2022 MONAI Consortium
SPDX-FileCopyrightText: © 2021-2022 MONAI Consortium
SPDX-License-Identifier: Apache License 2.0
-->

# Health APIs

The _health_ endpoint provides the following APIs to get statues of the internals of Informatics Gateway.
The _health_ endpoint provides the following APIs to get the status of the internals of the Informatics Gateway.

## GET /health/status

MONAI Informatics Gateway service status:
Returns the MONAI Informatics Gateway service status:

- Active DICOM DIMSE associations
- Internal service status
Expand All @@ -22,10 +22,10 @@ N/A

Response Content Type: JSON - [HealthStatusResponse](xref:Monai.Deploy.InformaticsGateway.Api.Rest.HealthStatusResponse).

| Code | Description |
| ---- | ------------------------------------------------------------------------------------------------------------------ |
| 200 | Status is available. |
| 500 | Server error. A [Problem details](https://datatracker.ietf.org/doc/html/rfc7807) object with server error details. |
| Code | Description |
| ---- | --------------------------------------------------------------------------------------------------------------------------------------- |
| 200 | Status is available. |
| 500 | Server error. The response will be a [Problem details](https://datatracker.ietf.org/doc/html/rfc7807) object with server error details. |

### Example Request

Expand Down Expand Up @@ -53,7 +53,7 @@ curl --location --request GET 'http://localhost:5000/health/status'

## GET /health/ready & GET /health/live

MONAI Deploy Informatics Gateway service readiness and liveness.
Returns the MONAI Deploy Informatics Gateway service readiness and liveness.

### Parameters

Expand All @@ -63,14 +63,14 @@ N/A

Response Content Type: JSON

- `Health`: All services are running.
- `Healthy`: All services are running.
- `Unhealthy`: One or more services have stopped or crashed.

| Code | Description |
| ---- | ------------------------------------------------------------------------------------------------------------------ |
| 200 | Service is healthy. |
| 503 | Service is unhealthy. |
| 500 | Server error. A [Problem details](https://datatracker.ietf.org/doc/html/rfc7807) object with server error details. |
| Code | Description |
| ---- | --------------------------------------------------------------------------------------------------------------------------------------- |
| 200 | Service is healthy. |
| 503 | Service is unhealthy. |
| 500 | Server error. The response will be a [Problem details](https://datatracker.ietf.org/doc/html/rfc7807) object with server error details. |

### Example Request

Expand Down
46 changes: 23 additions & 23 deletions docs/api/rest/inference.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<!--
SPDX-FileCopyrightText: 2021-2022 MONAI Consortium
SPDX-FileCopyrightText: © 2021-2022 MONAI Consortium
SPDX-License-Identifier: Apache License 2.0
-->

Expand All @@ -21,52 +21,52 @@ Triggers a new inference job using the specified DICOM dataset from the specifie


> [!IMPORTANT]
> For input and output connections that require credentials, please ensure that all the connections are secured and encrypted.
> For input and output connections that require credentials, ensure that all the connections are secured and encrypted.

### Parameters

Please see the [InferenceRequest](xref:Monai.Deploy.InformaticsGateway.Api.Rest.InferenceRequest) class
See the [InferenceRequest](xref:Monai.Deploy.InformaticsGateway.Api.Rest.InferenceRequest) class
definition for examples.

Request Content Type: JSON

| Name | Type | Description |
| --------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| transactionID | string | **Required**. User provided transaction ID for correlating an inference request. |
| priority | number | Valid range 0-255. Please refer to [Monai.Deploy.InformaticsGateway.Api.Rest.InferenceRequest.Priority](xref:Monai.Deploy.InformaticsGateway.Api.Rest.InferenceRequest.Priority) for details. |
| inputMetadata | [inputMetadata](xref:Monai.Deploy.InformaticsGateway.Api.Rest.InferenceRequestMetadata) object | **Required**. Specifies the dataset associated with the inference request. |
| inputResources | array of [inputResource](xref:Monai.Deploy.InformaticsGateway.Api.Rest.RequestInputDataResource) objects | **Required**. Data sources where the specified dataset to be retrieved. **MONAI Deploy Only** Must include one `interface` that is type of `Algorithm`. |
| outputResources | array of [inputResource](xref:Monai.Deploy.InformaticsGateway.Api.Rest.RequestOutputDataResource) objects | **Required**. Output destinations where results are exported to. |
| Name | Type | Description |
| --------------- | --------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| transactionID | string | (**Required**) A user-provided transaction ID for correlating an inference request. |
| priority | number | The valid range is 0-255. Please refer to [Monai.Deploy.InformaticsGateway.Api.Rest.InferenceRequest.Priority](xref:Monai.Deploy.InformaticsGateway.Api.Rest.InferenceRequest.Priority) for details. |
| inputMetadata | [inputMetadata](xref:Monai.Deploy.InformaticsGateway.Api.Rest.InferenceRequestMetadata) object | (**Required**) The dataset associated with the inference request. |
| inputResources | array of [inputResource](xref:Monai.Deploy.InformaticsGateway.Api.Rest.RequestInputDataResource) objects | (**Required**) Data sources from which to retrieve the specified dataset. **MONAI Deploy Only**: Must include one `interface` that is type of `Algorithm`. |
| outputResources | array of [inputResource](xref:Monai.Deploy.InformaticsGateway.Api.Rest.RequestOutputDataResource) objects | (**Required**) Output destinations where results are exported to |

### Responses

Response Content Type: JSON - [InferenceRequestResponse](xref:Monai.Deploy.InformaticsGateway.Api.Rest.InferenceRequestResponse).

| Code | Description |
| ---- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 200 | Inference request received and scheduled for processing. |
| 409 | An request with the same transaction ID already exists. A [Problem details](https://datatracker.ietf.org/doc/html/rfc7807) object with server error details. |
| 422 | Request contains invalid data or is missing required fields. A [Problem details](https://datatracker.ietf.org/doc/html/rfc7807) object with server error details. |
| 500 | Server error. A [Problem details](https://datatracker.ietf.org/doc/html/rfc7807) object with server error details. |
| Code | Description |
| ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 200 | Inference request received and scheduled for processing. |
| 409 | A request with the same transaction ID already exists. The response will be a [Problem details](https://datatracker.ietf.org/doc/html/rfc7807) object with server error details. |
| 422 | Request contains invalid data or is missing required fields. The response will be a [Problem details](https://datatracker.ietf.org/doc/html/rfc7807) object with server error details. |
| 500 | Server error. The response will be a [Problem details](https://datatracker.ietf.org/doc/html/rfc7807) object with server error details. |

---

## GET /inference/status/{transactionId}

Returns status of an inference request.
Returns the status of an inference request.

### Parameters

| Name | Type | Description |
| ------------- | ------ | ------------------------------------------------------ |
| transactionId | string | the _transactionId_ of the original inference request. |
| transactionId | string | The _transactionId_ of the original inference request |

### Responses

Response Content Type: JSON - [InferenceStatusResponse](xref:Monai.Deploy.InformaticsGateway.Api.Rest.InferenceStatusResponse).

| Code | Description |
| ---- | ------------------------------------------------------------------------------------------------------------------ |
| 200 | Inference request status is available. |
| 404 | Inference request not found. |
| 500 | Server error. A [Problem details](https://datatracker.ietf.org/doc/html/rfc7807) object with server error details. |
| Code | Description |
| ---- | --------------------------------------------------------------------------------------------------------------------------------------- |
| 200 | Inference request status is available. |
| 404 | Inference request not found. |
| 500 | Server error. The response will be a [Problem details](https://datatracker.ietf.org/doc/html/rfc7807) object with server error details. |
6 changes: 3 additions & 3 deletions docs/compliance/dicom.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<!--
SPDX-FileCopyrightText: 2021-2022 MONAI Consortium
SPDX-FileCopyrightText: © 2021-2022 MONAI Consortium
SPDX-License-Identifier: Apache License 2.0
-->

Expand Down Expand Up @@ -44,8 +44,8 @@ MONAI Deploy Informatics Gateway Storage SCP does not conform to any defined DIC
Users may configure the DICOM Storage SCP service to check the following DICOM values when
determining whether to accept Association Open Requests:

- Calling (source) AE Title - to accept DICOM instances from known sources.
- Called (MONAI SCP) AE Title - to accept DICOM instance through configured MONAI AETs.
- Calling (source) AE Title: To accept DICOM instances from known sources.
- Called (MONAI SCP) AE Title: To accept DICOM instance through configured MONAI AETs.

## DICOM SCU

Expand Down
17 changes: 10 additions & 7 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ SPDX-License-Identifier: Apache License 2.0

## Introduction

MONAI Deploy Informatics Gateway (MIG) handles the first and last step in a clinical data pipeline, the Input, and Output (I/O).
MONAI Deploy Informatics Gateway (MIG) handles the first and last step in a clinical data pipeline: the input and output (I/O).

MIG uses standard protocols like DICOM and FHIR. It stores studies and resources from the medical record system as payloads. It then notifies the rest of the MONAI Deploy system, specifically the MONAI Deploy Workflow Manager, that data is ready to be processed.

Expand All @@ -18,13 +18,16 @@ After inference completes, MIG receives notifications for exporting the results

## Services

*MONAI Deploy Informatics Gateway* contains the following standard protocols to communicate with your medical devices:
MIG contains the following standard protocols to communicate with medical devices:

* **DICOM SCP**: C-ECHO, C-STORE
* **DICOM SCU**: C-STORE
* **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)
* **DICOMweb client**: QIDO-RS, WADO-RS, STOW-RS
* **FHIR client**: GET
* **DICOMweb client**: QIDO-RS, WADO-RS, STOW-RS
* **FHIR client**: GET

[!Note]
The DICOMweb client and FHIR client are called using the ACR DSI API.

### DICOM SCP

Expand All @@ -33,16 +36,16 @@ the [DICOM Interface](./compliance/dicom.md#dicom-scp) section. The MONAI Deploy

### DICOM SCU

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 emitted by the [MONAI Deploy Workflow Manager](https://github.com/Project-MONAI/monai-deploy-workflow-manager) and then export the data to user-configured DICOM destination(s).
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).

> [!Note]
> DICOM instances are sent as-is; no codec conversion is done as part of the SCU process.
> See the [DICOM Interface SCU](./compliance/dicom.md#dimse-services-scu) section for more information.

### ACR DSI API

The ACR DSI API enables users to trigger inference requests via RESTful calls, utilizing DICOMweb & FHIR to retrieve data specified in the request. Upon data retrieval, the Informatics Gateway uploads the data to the shared storage and emits an `md.workflow.request` event, which notifies the [MONAI Deploy Workflow Manager](https://github.com/Project-MONAI/monai-deploy-workflow-manager) to process.
The ACR DSI API allows users to trigger inference requests via RESTful calls, utilizing DICOMweb & FHIR to retrieve data specified in the request. Upon data retrieval, the Informatics Gateway uploads the data to the shared storage and generates an `md.workflow.request` event, which notifies the [MONAI Deploy Workflow Manager](https://github.com/Project-MONAI/monai-deploy-workflow-manager) for processing.

#### DICOMweb Export

A DICOMweb export agent can export any user-generated DICOM contents to configured DICOM destinations. The agent subscribes to the `md.export.request.monaidicomweb` events emitted by the [MONAI Deploy Workflow Manager](https://github.com/Project-MONAI/monai-deploy-workflow-manager) and then export the data to user-configured DICOMweb destination(s).
A DICOMweb export agent can export any user-generated DICOM content to configured DICOM destinations. The agent subscribes to the `md.export.request.monaidicomweb` 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 DICOMweb destination(s).
Loading