Skip to content

Commit 0330077

Browse files
committed
gh-434 Update documentation
Signed-off-by: Victor Chang <[email protected]>
1 parent 4cc4b0d commit 0330077

File tree

9 files changed

+140
-22
lines changed

9 files changed

+140
-22
lines changed

docs/api/rest/config.md

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,41 @@ curl --location --request DELETE 'http://localhost:5000/config/ae/breast-tumor'
285285

286286
---
287287

288+
## GET /config/ae/plug-ins
289+
290+
Returns a list of data input plug-ins that can be used with SCP Application Entity.
291+
292+
### Parameters
293+
294+
N/A
295+
296+
### Responses
297+
298+
Response Content Type: JSON - An object containing zero or more key-value pairs where the key is the name of the plug-in and the value is the fully qualified assembly type name of the plug-in.
299+
300+
| Code | Description |
301+
| ---- | --------------------------------------------------------------------------------------------------------------------------------------- |
302+
| 200 | Plug-ins retrieved successfully. |
303+
| 500 | Server error. The response will be a [Problem details](https://datatracker.ietf.org/doc/html/rfc7807) object with server error details. |
304+
305+
### Example Request
306+
307+
```bash
308+
curl --location --request GET 'http://localhost:5000/config/ae/plug-ins'
309+
```
310+
311+
### Example Response
312+
313+
```json
314+
{
315+
"testInputDataPluginAddWorkflow": "Monai.Deploy.InformaticsGateway.Test.Plugins.TestInputDataPluginAddWorkflow, Monai.Deploy.InformaticsGateway.Test.Plugins, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null",
316+
"testInputDataPluginResumeWorkflow": "Monai.Deploy.InformaticsGateway.Test.Plugins.TestInputDataPluginResumeWorkflow, Monai.Deploy.InformaticsGateway.Test.Plugins, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null",
317+
"testInputDataPluginModifyDicomFile": "Monai.Deploy.InformaticsGateway.Test.Plugins.TestInputDataPluginModifyDicomFile, Monai.Deploy.InformaticsGateway.Test.Plugins, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
318+
}
319+
```
320+
321+
---
322+
288323
## GET /config/source
289324

290325
Returns a list of calling (source) AE Titles configured on the Informatics Gateway.
@@ -768,3 +803,38 @@ curl --location --request DELETE 'http://localhost:5000/config/destination/USEAS
768803
"hostIp": "10.20.3.4"
769804
}
770805
```
806+
---
807+
808+
## GET /config/destination/plug-ins
809+
810+
Returns a list of data output plug-ins that can be used with SCP Application Entity.
811+
812+
### Parameters
813+
814+
N/A
815+
816+
### Responses
817+
818+
Response Content Type: JSON - An object containing zero or more key-value pairs where the key is the name of the plug-in and the value is the fully qualified assembly type name of the plug-in.
819+
820+
| Code | Description |
821+
| ---- | --------------------------------------------------------------------------------------------------------------------------------------- |
822+
| 200 | Plug-ins retrieved successfully. |
823+
| 500 | Server error. The response will be a [Problem details](https://datatracker.ietf.org/doc/html/rfc7807) object with server error details. |
824+
825+
### Example Request
826+
827+
```bash
828+
curl --location --request GET 'http://localhost:5000/config/destination/plug-ins'
829+
```
830+
831+
### Example Response
832+
833+
```json
834+
{
835+
"testOutputDataPluginAddMessage": "Monai.Deploy.InformaticsGateway.Test.Plugins.TestOutputDataPluginAddMessage, Monai.Deploy.InformaticsGateway.Test.Plugins, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null",
836+
"testOutputDataPluginModifyDicomFile": "Monai.Deploy.InformaticsGateway.Test.Plugins.TestOutputDataPluginModifyDicomFile, Monai.Deploy.InformaticsGateway.Test.Plugins, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
837+
}
838+
```
839+
840+
---

docs/docfx.json

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44
"src": [
55
{
66
"files": [
7-
"Api/bin/Release/net6.0/Monai.Deploy.InformaticsGateway.Api.dll",
8-
"Client/bin/Release/net6.0/Monai.Deploy.InformaticsGateway.Client.dll",
9-
"Client.Common/bin/Release/net6.0/Monai.Deploy.InformaticsGateway.Client.Common.dll",
10-
"Common/bin/Release/net6.0/Monai.Deploy.InformaticsGateway.Common.dll",
11-
"Configuration/bin/Release/net6.0/Monai.Deploy.InformaticsGateway.Configuration.dll",
12-
"Database/bin/Release/net6.0/Monai.Deploy.InformaticsGateway.Database.dll",
13-
"Database/Api/bin/Release/net6.0/Monai.Deploy.InformaticsGateway.Database.Api.dll",
14-
"DicomWebClient/bin/Release/net6.0/Monai.Deploy.InformaticsGateway.DicomWeb.Client.dll"
7+
"Api/Monai.Deploy.InformaticsGateway.Api.csproj",
8+
"Client/Monai.Deploy.InformaticsGateway.Client.csproj",
9+
"Client.Common/Monai.Deploy.InformaticsGateway.Client.Common.csproj",
10+
"Common/Monai.Deploy.InformaticsGateway.Common.csproj",
11+
"Configuration/Monai.Deploy.InformaticsGateway.Configuration.csproj",
12+
"Database/Monai.Deploy.InformaticsGateway.Database.csproj",
13+
"Database/Api/Monai.Deploy.InformaticsGateway.Database.Api.csproj",
14+
"DicomWebClient/Monai.Deploy.InformaticsGateway.DicomWeb.Client.csproj"
1515
],
1616
"exclude": [
1717
"**/obj/**",
@@ -61,7 +61,7 @@
6161
"_enableSearch": true,
6262
"_appFaviconPath": "images/favicon.ico",
6363
"_appLogoPath": "images/MONAI-logo-color.svg",
64-
"_appFooter": "Copyright © 2022 <a href=\"https://monai.io/\">Project MONAI</a><br>Generated by <strong>DocFX</strong>",
64+
"_appFooter": "Copyright © 2022-2023 <a href=\"https://monai.io/\">Project MONAI</a><br>Generated by <strong>DocFX</strong>",
6565
"_gitContribute": {
6666
"repo": "https://github.com/Project-MONAI/monai-deploy-informatics-gateway.git",
6767
"branch": "main",

docs/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ MIG contains the following standard protocols for communicating with medical dev
3838
* **DICOMweb client**: QIDO-RS, WADO-RS, STOW-RS
3939
* **FHIR client**: GET
4040

41-
[!Note]
42-
The ACR DSI API uses the DICOMweb client and FHIR client.
41+
> [!Note]
42+
> The ACR DSI API uses the DICOMweb client and FHIR client.
4343
4444
### DICOM SCP
4545

docs/setup/setup.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,30 @@ This section outlines the steps to download and install the Informatics Gateway
2020
## Runtime Requirements
2121

2222
* Docker 20.10.12 or higher
23+
* [Database service](#database-configuration)
24+
* [Message Broker service](#message-broker)
25+
* [Storage service](#storage-service)
2326

2427
For development requirements, refer to the [Informatics Gateway README.md](https://github.com/Project-MONAI/monai-deploy-informatics-gateway).
2528

29+
> [!Note]
30+
> Use [MONAI Deploy Express](https://github.com/Project-MONAI/monai-deploy/tree/main/deploy/monai-deploy-express) to quickly
31+
> bring up all required services, including the Informatics Gateway.
32+
>
33+
> Skip to [Configure Informatics Gateway](#configure-informatics-gateway) if you are using MONAI Deploy Express.
34+
35+
36+
2637
## Installation
2738

2839
### Informatics Gateway CLI
2940

3041
Download and install the Informatics Gateway CLI from the [Releases](https://github.com/Project-MONAI/monai-deploy-informatics-gateway/releases) section of
3142
the repository and install it.
3243

44+
> [!Note]
45+
> We use `v0.2.0` release as an example here, always download the latest from the [Releases](https://github.com/Project-MONAI/monai-deploy-informatics-gateway/releases) section.
46+
3347
#### On Linux
3448

3549
```bash
@@ -80,6 +94,9 @@ mig-cli.exe config init
8094
mig-cli.exe config endpoint http://localhost:5000 #skip if running locally
8195
```
8296

97+
> [!Note]
98+
> For [MONAI Deploy Express](https://github.com/Project-MONAI/monai-deploy/tree/main/deploy/monai-deploy-express), use `http://localhost:5003`.
99+
83100
The first command extracts the default `appsettings.json` file into the home directory:
84101

85102
* Linux: `~/.mig/appsettings.json`
@@ -144,6 +161,27 @@ If the database system is supported by [Microsoft Entity Framework](https://lear
144161
For other database systems that are not listed in the link above, simply implement the [Repository APIs](xref:Monai.Deploy.InformaticsGateway.Database.Api.Repositories), update the [Database Manager](xref:Monai.Deploy.InformaticsGateway.Database.DatabaseManager) to support the new database type and optionally, implement the [IDabaseMigrationManager](xref:Monai.Deploy.InformaticsGateway.Database.Api.IDatabaseMigrationManager).
145162

146163

164+
## Authentication
165+
166+
Authentication is disabled by default. To enable authentication using OpenID, edit the `appsettings.json` file and set `bypassAuthentication` to `true`:
167+
168+
```json
169+
{
170+
"MonaiDeployAuthentication": {
171+
"bypassAuthentication": true,
172+
"openId": {
173+
"realm": "{realm}",
174+
"realmKey": "{realm-secret-key}",
175+
"clientId": "{client-id}",
176+
"audiences": [ "{audiences}" ],
177+
"roleClaimType": "{roles}",
178+
...
179+
}
180+
```
181+
182+
Refer to [Authentication Setup Using Keycloak](https://github.com/Project-MONAI/monai-deploy-workflow-manager/blob/develop/guidelines/mwm-auth.md) for additional details.
183+
184+
147185
## Storage Consideration & Configuration
148186

149187
The Informatics Gateway operates on two storage locations. In the first location, the incoming data for data grouping is temporarily stored. In the second location, the Informatics Gateway uploads grouped datasets to final storage shared by other MONAI Deploy sub-systems.
@@ -358,3 +396,12 @@ The command adds a DICOM export destination with AE Title `WORKSTATION1` at IP `
358396
## Logging
359397

360398
See [schema](./schema.md#logging) page for additional information on logging.
399+
400+
## Data Plug-ins
401+
402+
You may write your own data plug-ins to manipulate incoming data before they are saved to the storage service or outgoing data right before they are exported.
403+
404+
To write an input data plug-in, implement the [IInputDataPlugin](xref:Monai.Deploy.InformaticsGateway.Api.IInputDataPlugin) interface and put the assmblye dll in the
405+
plug-ins directories. Similarly for output data plug-ins, implement the [IOutputDataPlugin](xref:Monai.Deploy.InformaticsGateway.Api.IOutputDataPlugin) interface.
406+
407+
Refer to [Configuration API](../api/rest/config.md) page to retrieve available [input](../api/rest/config.md#get-configaeplug-ins) and [output](../api/rest/config.md#get-configdestinationplug-ins) data plug-ins.

src/Api/Storage/DicomFileStorageMetadata.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public sealed record DicomFileStorageMetadata : FileStorageMetadata
3434
/// <summary>
3535
/// The calling AE title of the DICOM instance.
3636
/// For ACR, this is the Transaction ID of the original request.
37-
/// Note: this value is same as <seealso cref="Source"></c>
37+
/// Note: this value is same as <see cref="FileStorageMetadata.Source"/>
3838
/// </summary>
3939
[JsonIgnore]
4040
public string CallingAeTitle { get => Source; }

src/Api/Storage/FhirFileStorageMetadata.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public sealed record FhirFileStorageMetadata : FileStorageMetadata
3232

3333
/// <summary>
3434
/// The transaction ID of the original ACR request.
35-
/// Note: this value is same as <seealso cref="Source"></c>
35+
/// Note: this value is same as <see cref="FileStorageMetadata.Source"/>
3636
/// </summary>
3737
[JsonIgnore]
3838
public string TransactionId { get => Source; }

src/Configuration/DicomWebConfiguration.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,9 @@ public class DicomWebConfiguration
3030

3131
/// <summary>
3232
/// Gets or sets the (postfix) name of the DICOMweb export agent used for receiving messages.
33-
/// The agent name is combine with <see cref="MessageBrokerConfigurationKeys.ExportRequestPrefix"/>
34-
/// for subscribing messages from the message broker service.
33+
/// This value is appended to <see cref="MessageBrokerConfigurationKeys.ExportRequestPrefix"/>
34+
/// as the name for subscribing to messages from the message broker service.
35+
/// </summary>
3536
[ConfigurationKeyName("agentName")]
3637
public string AgentName { get; set; } = "monaidicomweb";
3738

src/Configuration/ScuConfiguration.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ public class ScuConfiguration
3232

3333
/// <summary>
3434
/// Gets or sets the (postfix) name of the DIMSE export agent used for receiving messages.
35-
/// The agent name is combine with <see cref="MessageBrokerConfigurationKeys.ExportRequestPrefix"/>
36-
/// for subscribing messages from the message broker service.
35+
/// This value is appended to <see cref="MessageBrokerConfigurationKeys.ExportRequestPrefix"/>
36+
/// as the name for subscribing to messages from the message broker service.
3737
/// </summary>
3838
[ConfigurationKeyName("agentName")]
3939
public string AgentName { get; set; } = "monaiscu";

src/InformaticsGateway/appsettings.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
"MonaiDeployAuthentication": {
33
"bypassAuthentication": false,
44
"openId": {
5-
"realm": "http://localhost:8080/realms/monai-test/",
6-
"realmKey": "G6GIR03BEJMlevUtAuZ1ao1SN6IHyUXR",
7-
"clientId": "monai-app",
8-
"audiences": [ "monai-app-test" ],
9-
"roleClaimType": "roles",
5+
"realm": "{realm}",
6+
"realmKey": "{realm-secret-key}",
7+
"clientId": "{client-id}",
8+
"audiences": [ "{audiences}" ],
9+
"roleClaimType": "{roles}",
1010
"claimMappings": {
1111
"userClaims": [
1212
{

0 commit comments

Comments
 (0)