NVIDIA / clara-dicom-adapter

DICOM Adapter is a component of the Clara Deploy SDK which facilitates integration with DICOM compliant systems, enables ingestion of imaging data, helps triggering of jobs with configurable rules and offers pushing the output of jobs to PACS systems.
https://nvidia.github.io/clara-dicom-adapter/
Apache License 2.0
37 stars 14 forks source link

Ability to attach files to the ACR API for inference #88

Open mocsharp opened 3 years ago

mocsharp commented 3 years ago

Is your feature request related to a problem? Please describe. In environments where the EHR systems have limited access due to security concerns, DICOM Adapter cannot access EHR directly to retrieve EHR data that are required for a model to execute.

Describe the solution you'd like The ACR API can support multipart upload to include the ACR request message plus any additional files (as attachments) that need to be uploaded for inference.

Describe alternatives you've considered

  1. Wrap FHIR data in DICOM Secondary Objects and send both DICOM and EHR in SC to DICOM Adapter via DIMSE.
  2. Manually upload all data (DICOM+EHR) to Platform Payloads API and trigger a new pipeline job.

Additional context Implementation details to follow.

parteee commented 3 years ago

Suggested edits (adding an Other Data type):

# [required]
"details":
   # Valid values of type include:
   # DICOM_INSTANCE_UID - used for any DICOM object(s) 
   # DICOM_PATIENT_ID
   # FHIR_RESOURCE
   # ACCESSION_NUMBER
   # OTHER_DATA
   {
   # [required]
   "type": "Other_Data",
     “Data”: [{
     “Name”:”Series_Data”,
     “Value”:”{‘LabValue’:’2345'}”
   }
mocsharp commented 3 years ago

@parteee Are you suggesting adding a new OTHER_DATA field for storing additional data?

How about if we make that an array of strings? E.g.

...
         {
            "type": "FHIR_RESOURCE",
            "fhirVersion": "R4",
            "fhirFormat": "XML",
            "resources": [
                {"resourceType": "Observation", "id": "b37d3b4a-8d0a-4dee-94f9-244bc87a27ce"}
            ]
        },
        {
            type: "OTHER_DATA": [
              { "name": "ehr/filename1.json", data: "{\r\n     \u201CName\u201D:\u201DSeries_Data\u201D,\r\n     \u201CValue\u201D:\u201D{\u2018LabValue\u2019:\u20192345'}\u201D\r\n   }" }
              { "name": "others/filename2.txt", data: "text file content" }
           ]
        }] 

Given the sample input above, DICOM Adapter would create 2 files, filename1.json and filename2.txt and store the files for your operator to consume.

Would that work?