This repository contains a description on how to do the equivalence of DIMSE MWL & MPPS in a RESTful manner, based on the DICOMWeb Worklist Service (UPS-RS). This equivalence is called DICOMweb Modality Services. In addition there are different examples integrated.
In order to extend this repository the following software needs to be installed:
Every plantuml diagram can be exported to folder 'diagrams' by using the right mouse click on a plantuml file and selecting Export Workspace Diagrams. However, to do so proper settings on the PlantUML Extension are required (press the cogwheel of the PlanUML extension to edit these):
- select Export Format the entry png
- unselect Export Include Folder Hierarchy (misspelled in the settings as 'Heirarchy' and 'heiracrchy')
- type in Export Out Dir the folder diagrams as main folder containg the diagrams
- unselect Export Sub Folder
The main use case of DICOMweb Modality Services shows the interaction of a Modality with a Worklist Provider, Printer and Image Manager. The scope of this repository is the interaction between several actors with the Worklist Provider.
Another use case in scope is about acquisition modalities in the context of encounter-based imaging, namely when there is no Workitem for the imaging performed. These modalities would need to create a Workitem themselves, in line with the IHE EBIW integration profile.
Furthermore, there are also dashboard-like applications that want to show the progress of the Workitems, or applications that base there behavior on work being done by some other device or application. Both of these require notifications on the status of Workitems.
MWL & MPPS | Worklist Service Transaction | Worklist Service Request |
---|---|---|
C-FINDMWL | Search [ & Retrieve Workitem ] | GET {s}/workitems{?query*} [ & GET {s}/workitems/{instance} ] |
N-CREATEMPPS | Change Workitem State & Update Workitem | PUT {s}/workitems/{instance}/state & POST {s}/workitems/{instance}{?transaction} |
N-SETMPPS | Change Workitem State & Update Workitem & Cancel Workitem | PUT {s}/workitems/{instance}/state & POST {s}/workitems/{instance}{?transaction} & POST {s}/workitems/{instance}/cancelrequest |
N-GETMPPS | Retrieve Workitem | GET {s}/workitems/{instance} |
N-EVENT-REPORTMPPS | Subscribe Transaction & Delete subscription & Suspend subscription | POST {s}/workitems/{instance}/subscribers/{aetitle} & DELETE {s}/workitems/{instance}/subscribers/{AETitle} & POST {s}/workitems/1.2.840.10008.5.1.4.34.5/ |
An overview of the happy flow is given below, where the User Agent is typically an Acquisition Modality, while the Origin Server would be a RIS or the like:
- Query Worklist: modality retrieves the worklist items (correlates to DIMSE MWL C-FIND)
- Retrieve Single Workitem (optional, if not all information was delivered by query transaction)
- Start Acquisition the modality claimes the workitem and starts the acquisition
- Update Workitem the modality updates the workitem with information for each produced series
- Complete Acquisition the modality completes the acquisition and completes the study
The UPS Push SOP Class allows SCU systems to:
- create (push) a new worklist item (i.e., instance) onto a worklist
- submit a cancellation request for a worklist item
The UPS Pull SOP Class allows SCU systems to:
- query a worklist for matching items
- take responsibility for performing a worklist item
- add/modify progress/status/result details for the worklist item
- finalize a controlled worklist item as Completed or Canceled.
The UPS Watch SOP Class allows SCU systems to:
- query for worklist items of interest
- subscribe/unsubscribe for event notifications of changes to a given worklist item
- subscribe/unsubscribe for event notifications of all worklist items
- get details for a given worklist item
- submit a cancellation request for a given worklist item
The UPS Event SOP Class allows SCU systems to:
- receive event notifications of changes to a worklist item
The UPS Query SOP Class allows SCU systems to:
- query a worklist for matching items.
https://hackmd.io/@victoriatjia/fhir-radiology#11-Current-Radiology-Workflow-in-Hospital
https://dicom.nema.org/medical/dicom/current/output/chtml/part04/sect_k.6.html Matching keys https://dicom.nema.org/medical/dicom/current/output/chtml/part04/sect_K.6.html#table_K.6-1
https://dicom.nema.org/medical/dicom/current/output/chtml/part04/sect_F.7.2.html#sect_F.7.2.1
https://dicom.nema.org/medical/dicom/current/output/chtml/part04/sect_cc.3.html UPS attributes https://dicom.nema.org/medical/dicom/current/output/html/part04.html#table_CC.2.5-3
https://dicom.nema.org/medical/dicom/current/output/html/part18.html#chapter_11 https://www.dicomstandard.org/using/dicomweb/workflow-ups-rs
IHE_RAD_Suppl_EBIW.pdf Table 4.130.4.1.2-1: Return and Matching Keys for Encounter Metadata
https://pydicom.github.io/pynetdicom/dev/examples/qr_find.html
https://dicom.nema.org/dicom/current/output/chtml/part03/sect_B.26.html