Configuration APIs

June 27, 2025 ยท View on GitHub

The configuration endpoint provides the following APIs to configure the Informatics Gateway.

GET /config/ae

Returns a list of MONAI Deploy SCP Application Entity Titles configured on the Informatics Gateway.

Parameters

N/A

Responses

Response Content Type: JSON - Array of MonaiApplicationEntity.

CodeDescription
200AE Titles retrieved successfully.
404AE Title not found.
409Entity already exists with the same name or AE Title.
500Server error. The response will be a Problem details object with server error details.

Example Request

curl --location --request GET 'http://localhost:5000/config/ae'

Example Response

[
  {
    "name": "brain-tumor",
    "aeTitle": "BrainTumorModel",
    "workflows": ["brain-tumor", "b75cd27a-068a-4f9c-b3da-e5d4ea08c55a"],
    "grouping": "0020,000D",
    "timeout": 5,
    "ignoredSopClasses": ["1.2.840.10008.5.1.4.1.1.1.1"],
    "allowedSopClasses": ["1.2.840.10008.5.1.4.1.1.1.2"],
    "pluginAssemblies": [
        "Monai.Deploy.InformaticsGateway.Test.Plugins.TestInputDataPluginAddWorkflow, Monai.Deploy.InformaticsGateway.Test.Plugins",
        "Monai.Deploy.InformaticsGateway.Test.Plugins.TestInputDataPluginModifyDicomFile, Monai.Deploy.InformaticsGateway.Test.Plugins"
    ]
  },
  {
    "name": "liver-seg",
    "aeTitle": "LIVERSEG",
    "grouping": "0020,000D",
    "timeout": 5,
    "workflows": []
  }
]

GET /config/ae/{name}

Returns the configuration of the specified MONAI SCP AE Title.

Parameters

NameTypeDescription
namestringThe name of the AE to be retrieved.

Responses

Response Content Type: JSON - MonaiApplicationEntity.

CodeDescription
200Configuration retrieved successfully.
404Named AE not found.
500Server error. The response will be a Problem details object with server error details.

Example Request

curl --location --request GET 'http://localhost:5000/config/ae/brain-tumor'

Example Response

{
  "name": "brain-tumor",
  "aeTitle": "BrainTumorModel",
  "grouping": "0020,000D",
  "timeout": 5,
  "workflows": ["brain-tumor", "b75cd27a-068a-4f9c-b3da-e5d4ea08c55a"]
}

POST /config/ae

Creates a new MONAI SCP Application Entity to accept DICOM instances.

Note

The MONAI SCP AE Title must be unique.

Note

The DICOM tag used for grouping can be either a Study Instance UID (0020,000D) or Series Instance UID (0020,000E). The default is set to a Study Instance UID (0020,000D) if not specified.

Note

timeout is the number of seconds the AE Title will wait between each instance before assembling a payload and publishing a workflow request. We recommend calculating this value based on the network speed and the maximum size of each DICOM instance.

Parameters

See the MonaiApplicationEntity class definition for details.

Responses

Response Content Type: JSON - MonaiApplicationEntity.

CodeDescription
201AE Title created successfully.
400Validation error. The response will be a Problem details object with server error details.
409Entity already exists with the same name or entity already exists with the same AE Title and port combination.
500Server error. The response will be a Problem details object with server error details.

Example Request

curl --location --request POST 'http://localhost:5000/config/ae/' \
    --header 'Content-Type: application/json' \
    --data-raw '{
            "name": "breast-tumor",
            "aeTitle": "BREASTV1",
            "timeout": 5,
            "workflows": [
                "3f6a08a1-0dea-44e9-ab82-1ff1adf43a8e"
            ],
            "pluginAssemblies": [
                "Monai.Deploy.InformaticsGateway.Test.Plugins.TestInputDataPluginAddWorkflow, Monai.Deploy.InformaticsGateway.Test.Plugins",
                "Monai.Deploy.InformaticsGateway.Test.Plugins.TestInputDataPluginModifyDicomFile, Monai.Deploy.InformaticsGateway.Test.Plugins"
            ]
        }
    }'

Example Response

{
  "name": "breast-tumor",
  "aeTitle": "BREASTV1",
  "workflows": ["3f6a08a1-0dea-44e9-ab82-1ff1adf43a8e"],
  "pluginAssemblies": [
      "Monai.Deploy.InformaticsGateway.Test.Plugins.TestInputDataPluginAddWorkflow, Monai.Deploy.InformaticsGateway.Test.Plugins",
      "Monai.Deploy.InformaticsGateway.Test.Plugins.TestInputDataPluginModifyDicomFile, Monai.Deploy.InformaticsGateway.Test.Plugins"
  ]
}

PUT /config/ae

Updates an existing MONAI SCP Application Entity.

Note

The MONAI SCP AE Title cannot be changed.

Note

The DICOM tag used for grouping can be either a Study Instance UID (0020,000D) or Series Instance UID (0020,000E). The default is set to a Study Instance UID (0020,000D) if not specified.

Note

timeout is the number of seconds the AE Title will wait between each instance before assembling a payload and publishing a workflow request. We recommend calculating this value based on the network speed and the maximum size of each DICOM instance.

Parameters

See the MonaiApplicationEntity class definition for details.

Responses

Response Content Type: JSON - MonaiApplicationEntity.

CodeDescription
200AE Title updated successfully.
400Validation error. The response will be a Problem details object with server error details.
404Named MONAI AE not found.
500Server error. The response will be a Problem details object with server error details.

Example Request

curl --location --request PUT 'http://localhost:5000/config/ae/' \
    --header 'Content-Type: application/json' \
    --data-raw '{
            "name": "breast-tumor",
            "timeout": 3,
            "workflows": [
                "3f6a08a1-0dea-44e9-ab82-1ff1adf43a8e"
            ],
            "pluginAssemblies": [
                "Monai.Deploy.InformaticsGateway.Test.Plugins.TestInputDataPluginAddWorkflow, Monai.Deploy.InformaticsGateway.Test.Plugins",
                "Monai.Deploy.InformaticsGateway.Test.Plugins.TestInputDataPluginModifyDicomFile, Monai.Deploy.InformaticsGateway.Test.Plugins"
            ]
        }
    }'

Example Response

{
  "name": "breast-tumor",
  "aeTitle": "BREASTV1",
  "workflows": ["3f6a08a1-0dea-44e9-ab82-1ff1adf43a8e"],
  "pluginAssemblies": [
      "Monai.Deploy.InformaticsGateway.Test.Plugins.TestInputDataPluginAddWorkflow, Monai.Deploy.InformaticsGateway.Test.Plugins",
      "Monai.Deploy.InformaticsGateway.Test.Plugins.TestInputDataPluginModifyDicomFile, Monai.Deploy.InformaticsGateway.Test.Plugins"
  ],
  "timeout": 3
}

DELETE /config/ae/{name}

Deletes the specified MONAI SCP Application Entity.

Parameters

NameTypeDescription
namestringThe name of the AE Title to be deleted.

Responses

Response Content Type: JSON - MonaiApplicationEntity.

CodeDescription
200AE Title deleted.
404Named MONAI AE not found.
500Server error. The response will be a Problem details object with server error details.

Example Request

curl --location --request DELETE 'http://localhost:5000/config/ae/breast-tumor'

Example Response

{
  "name": "breast-tumor",
  "aeTitle": "BREASTV1",
  "workflows": ["3f6a08a1-0dea-44e9-ab82-1ff1adf43a8e"]
}

GET /config/ae/plug-ins

Returns a list of data input plug-ins that can be used with the SCP Application Entity.

Parameters

N/A

Responses

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.

CodeDescription
200Plug-ins retrieved successfully.
500Server error. The response will be a Problem details object with server error details.

Example Request

curl --location --request GET 'http://localhost:5000/config/ae/plug-ins'

Example Response

{
 "testInputDataPluginAddWorkflow": "Monai.Deploy.InformaticsGateway.Test.Plugins.TestInputDataPluginAddWorkflow, Monai.Deploy.InformaticsGateway.Test.Plugins, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null",
 "testInputDataPluginResumeWorkflow": "Monai.Deploy.InformaticsGateway.Test.Plugins.TestInputDataPluginResumeWorkflow, Monai.Deploy.InformaticsGateway.Test.Plugins, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null",
 "testInputDataPluginModifyDicomFile": "Monai.Deploy.InformaticsGateway.Test.Plugins.TestInputDataPluginModifyDicomFile, Monai.Deploy.InformaticsGateway.Test.Plugins, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
}

GET /config/source

Returns a list of calling (source) AE Titles configured on the Informatics Gateway.

Parameters

N/A

Responses

Response Content Type: JSON - Array of SourceApplicationEntity.

CodeDescription
200AE Titles retrieved successfully.
500Server error. The response will be a Problem details object with server error details.

Example Request

curl --location --request GET 'http://localhost:5000/config/source'

Example Response

[
  {
    "name": "USEAST",
    "aeTitle": "PACSUSEAST",
    "hostIp": "10.20.3.4"
  },
  {
    "name": "USWEST",
    "aeTitle": "PACSUSWEST",
    "hostIp": "10.50.3.4"
  }
]

GET /config/source/{name}

Returns configurations for the specified calling (source) AET.

Parameters

NameTypeDescription
namestringThe name of an AE Title to be retrieved.

Responses

Response Content Type: JSON - SourceApplicationEntity.

CodeDescription
200AE Titles retrieved successfully.
404Named source not found.
500Server error. The response will be a Problem details object with server error details.

Example Request

curl --location --request GET 'http://localhost:5000/config/source/USEAST'

Example Response

{
  "name": "USEAST",
  "aeTitle": "PACSUSEAST",
  "hostIp": "10.20.3.4"
}

GET /config/source/aetitle/{aeTitle}

Returns configurations for the specified calling (source) AET.

Parameters

NameTypeDescription
namestringThe aeTitle of an AE Title to be retrieved.

Responses

Response Content Type: JSON - SourceApplicationEntity[].

CodeDescription
200AE Titles retrieved successfully.
404Named source not found.
500Server error. The response will be a Problem details object with server error details.

Example Request

curl --location --request GET 'http://localhost:5000/config/source/aetitle/USEAST'

Example Response

[{
  "name": "USEAST",
  "aeTitle": "PACSUSEAST",
  "hostIp": "10.20.3.4"
},
{...}]

POST /config/source

Adds a new calling (source) AE Title to the Informatics Gateway to allow DICOM instances from the specified IP address and AE Title.

Parameters

See the SourceApplicationEntity class definition for details.

Responses

Response Content Type: JSON - SourceApplicationEntity.

CodeDescription
201AE Title created successfully.
400Validation error.
409Entity already exists with the same name or entity already exists with the same AE Title, host/IP address and port combination.
500Server error. The response will be a Problem details object with server error details.

Example Request

curl --location --request POST 'http://localhost:5000/config/source' \
    --header 'Content-Type: application/json' \
    --data-raw '{
        "name": "USEAST",
        "hostIp": "10.20.3.4",
        "aeTitle": "PACSUSEAST"
    }'

Example Response

{
  "name": "USEAST",
  "aeTitle": "PACSUSEAST",
  "hostIp": "10.20.3.4"
}

PUT /config/source

Updates an existing calling (source) AE Title.

Parameters

See the SourceApplicationEntity class definition for details.

Responses

Response Content Type: JSON - SourceApplicationEntity.

CodeDescription
200AE Title updated successfully.
400Validation error. The response will be a Problem details object with details of the validation errors .
404DICOM source cannot be found.
500Server error. The response will be a Problem details object with server error details.

Example Request

curl --location --request PUT 'http://localhost:5000/config/source' \
    --header 'Content-Type: application/json' \
    --data-raw '{
        "name": "USEAST",
        "hostIp": "10.20.3.4",
        "aeTitle": "PACSUSEAST"
    }'

Example Response

{
  "name": "USEAST",
  "aeTitle": "PACSUSEAST",
  "hostIp": "10.20.3.4"
}

DELETE /config/source/{name}

Deletes the specified calling (Source) AE Title to stop accepting requests from it.

Parameters

NameTypeDescription
namestringThe name of the AE Title to be deleted.

Responses

Response Content Type: JSON - SourceApplicationEntity.

CodeDescription
200AE Title deleted.
404Named source not found.
500Server error. The response will be a Problem details object with server error details.

Example Request

curl --location --request DELETE 'http://localhost:5000/config/source/USEAST'

Example Response

{
  "name": "USEAST",
  "aeTitle": "PACSUSEAST",
  "hostIp": "10.20.3.4"
}

GET /config/destination

Returns a list of destination AE titles configured on the system.

Parameters

N/A

Responses

Response Content Type: JSON - Array of DestinationApplicationEntity.

CodeDescription
200AE Titles retrieved successfully.
500Server error. The response will be a Problem details object with server error details.

Example Request

curl --location --request GET 'http://localhost:5000/config/destination'

Example Response

[
  {
    "port": 104,
    "name": "USEAST",
    "aeTitle": "PACSUSEAST",
    "hostIp": "10.20.3.4"
  },
  {
    "port": 104,
    "name": "USWEST",
    "aeTitle": "PACSUSWEST",
    "hostIp": "10.50.3.4"
  }
]

GET /config/destination/{name}

Retrieves the destination AE Title with the specified name.

Parameters

NameTypeDescription
namestringThe name of theAE Title to be retrieved.

Responses

Response Content Type: JSON - DestinationApplicationEntity.

CodeDescription
200AE Titles retrieved successfully.
404AE Titles not found.
500Server error. The response will be a Problem details object with server error details.

Example Request

curl --location --request GET 'http://localhost:5000/config/destination/USEAST'

Example Response

{
  "port": 104,
  "name": "USEAST",
  "aeTitle": "PACSUSEAST",
  "hostIp": "10.20.3.4"
}

GET /config/destination/cecho/{name}

Performs a DICOM C-Echo request to the named destination on behalf of MONAISCU.

Parameters

NameTypeDescription
namestringThe name of the AE Title to be deleted.

Responses

CodeDescription
200C-ECHO performed successfully.
404Named destination not found.
500Server error. The response will be a Problem details object with server error details.
502C-ECHO failure. The response will be a Problem details object with server error details.

Example Request

curl --location --request DELETE 'http://localhost:5000/config/destination/cecho/USEAST'

PUT /config/destination

Updates an existing DICOM destination.

Parameters

See the DestinationApplicationEntity class definition for details.

Responses

Response Content Type: JSON - DestinationApplicationEntity.

CodeDescription
200DICOM destination updated successfully.
400Validation error. The response will be a Problem details object with details of the validation errors .
404DICOM destination cannot be found.
500Server error. The response will be a Problem details object with server error details.

Example Request

curl --location --request PUT 'http://localhost:5000/config/destination' \
    --header 'Content-Type: application/json' \
    --data-raw '{
        "name": "USEAST",
        "hostIp": "10.20.3.4",
        "port": 104,
        "aeTitle": "PACSUSEAST"
    }'

Example Response

{
  "port": 104,
  "name": "USEAST",
  "aeTitle": "PACSUSEAST",
  "hostIp": "10.20.3.4"
}

POST /config/destination

Adds a new DICOM destination AET for exporting results to.

Parameters

See the DestinationApplicationEntity class definition for details.

Responses

Response Content Type: JSON - DestinationApplicationEntity.

CodeDescription
201AE Title created successfully.
400Validation error.
500Server error. The response will be a Problem details object with server error details.

Example Request

curl --location --request POST 'http://localhost:5000/config/destination' \
    --header 'Content-Type: application/json' \
    --data-raw '{
        "name": "USEAST",
        "hostIp": "10.20.3.4",
        "port": 104,
        "aeTitle": "PACSUSEAST"
    }'

Example Response

{
  "port": 104,
  "name": "USEAST",
  "aeTitle": "PACSUSEAST",
  "hostIp": "10.20.3.4"
}

DELETE /config/destination/{name}

Deletes a Destination AE Title.

Parameters

NameTypeDescription
namestringThe name of the AE Title to be deleted.

Responses

Response Content Type: JSON - DestinationApplicationEntity.

CodeDescription
200AE Title deleted.
404Named destination not found.
500Server error. The response will be a Problem details object with server error details.

Example Request

curl --location --request DELETE 'http://localhost:5000/config/destination/USEAST'

Example Response

{
  "port": 104,
  "name": "USEAST",
  "aeTitle": "PACSUSEAST",
  "hostIp": "10.20.3.4"
}

GET /config/destination/plug-ins

Returns a list of data output plug-ins that can be used with the SCP Application Entity.

Parameters

N/A

Responses

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.

CodeDescription
200Plug-ins retrieved successfully.
500Server error. The response will be a Problem details object with server error details.

Example Request

curl --location --request GET 'http://localhost:5000/config/destination/plug-ins'

Example Response

{
 "testOutputDataPluginAddMessage": "Monai.Deploy.InformaticsGateway.Test.Plugins.TestOutputDataPluginAddMessage, Monai.Deploy.InformaticsGateway.Test.Plugins, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null",
 "testOutputDataPluginModifyDicomFile": "Monai.Deploy.InformaticsGateway.Test.Plugins.TestOutputDataPluginModifyDicomFile, Monai.Deploy.InformaticsGateway.Test.Plugins, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
}