Project-MONAI / monai-deploy

MONAI Deploy aims to become the de-facto standard for developing, packaging, testing, deploying and running medical AI applications in clinical production.
Apache License 2.0
98 stars 22 forks source link

Workflow Request Message change request #127

Closed mocsharp closed 1 year ago

mocsharp commented 1 year ago

This issue proposes a change to the Workflow Request message to support multiple data sources/modalities: DIMSE, STOW, FHIR, HL7, and more. This change provides additional information for the Workflow Manager to handle, filter and process incoming requests.

The change removes the existing calling_aetitle and called_aetitle properties and replaces them with trigger and data_origins:

Example: an incoming FHIR message that fetches additional DICOM study:

{
  "trigger": {
    "type": "fhir",
    "source": "server-xyz",
    "destination": "1.2.3.4"
  },
  "data_origins": [
    {
      "type": "dimse",
      "source": "calling-aet",
      "destination": "called-aet"
    }
  ]
}

Example: an incoming DICOM study via DIMSE:

{
  "trigger": {
    "type": "dimse",
    "source": "calling-aet",
    "destination": "called-aet"
  }
}

Example: an incoming DICOM study via DICOMWeb STOW:

{
  "trigger": {
    "type": "dimse",
    "source": "source ip",
    "destination": "named-endpoint"
  }
}

Example: an incoming HL7 message that triggers retrieval of data from FHIR server and PACS:

{
  "trigger": {
    "type": "hl7",
    "source": "server-xyz",
    "destination": "1.2.3.4"
  },
  "data_origins": [
    {
      "type": "fhir",
      "source": "server-xyz",
      "destination": "1.2.3.4"
    },
    {
      "type": "dicom",
      "source": "calling-aet",
      "destination": "called-aet"
    }
  ]
}
JoeBatt1989 commented 1 year ago

@mocsharp the only thing we would need to think of in the Workflow Manager is to add additonal functionality into evaluators (https://github.com/Project-MONAI/monai-deploy-workflow-manager/blob/develop/guidelines/mwm-workflow-spec.md#evaluators). Currently they support DICOM metadata (https://github.com/Project-MONAI/monai-deploy-workflow-manager/blob/develop/guidelines/mwm-workflow-spec.md#dicom-tags) but I imagine we would want to think about FHIR and HL7 support as well...what do you think?

mocsharp commented 1 year ago

@JoeBatt1989 Besides the evaluators, I think you will also need something to prepare the data before passing it to the evaluators.

@mocsharp the only thing we would need to think of in the Workflow Manager is to add additonal functionality into evaluators (https://github.com/Project-MONAI/monai-deploy-workflow-manager/blob/develop/guidelines/mwm-workflow-spec.md#evaluators). Currently they support DICOM metadata (https://github.com/Project-MONAI/monai-deploy-workflow-manager/blob/develop/guidelines/mwm-workflow-spec.md#dicom-tags) but I imagine we would want to think about FHIR and HL7 support as well...what do you think?