Flexible Workflow using UPS: Unified Procedure Step Kevin O’Donnell Toshiba Medical Systems UPS Goals Add “Push Workflow” & “Create Workitem” – Request another system to add item to worklist Simplify Implementation – GPWL had N:M relation of SPS:PPS – State diagram was very complex Add “Cancel Request” Improve Status/Result Monitoring – Getting PPS feed was awkward; required configuration and forwarding Interesting UPS Features Remote create Task Locking by performer Deletion Locking by watchers Subscription-based Monitoring “Gift Subscriptions” Push, Pull, and Watch Workflows Sub-contracting 1-to-1 relationship between SPS and PPS 4 SOP Classes operating on 1 IOD UPS Architecture One object – Each item on a worklist is a UPS Object – UPS Object = Unified Procedure Step IOD – Unified = contains details of both the requested task & the performed task Four SOP Classes – – – – UPS Push SOP Class UPS Pull SOP Class UPS Watch SOP Class UPS Event SOP Class UPS Object UPS Object Relationship A UPS Object has its attributes grouped into 4 Modules: Sched. Task Details Progress Perf. Task Details (this does not affect processing; just for logical organization) UPS Object Modules UPS Object Relationship Sched. Task Details Progress Perf. Task Details Relationship Module - Patient demographics - Admission details - Order details - Requested Procedure - Accession # - Reason for Requested Procedure - Requesting physician/department - etc… UPS Object Modules UPS Object Relationship Sched. Task Details Progress Perf. Task Details Scheduled Proc. Info. Module - Priority - Requested perform./completion time - Requested resources/location - Requested Procedure descrip./codes - Requested Processing parameters - List of Input data IDs - Input Data Availability Flag - etc… UPS Object Modules UPS Object Relationship Sched. Task Details Progress Perf. Task Details Progress Module - UPS State (Scheduled, In-Progress, Completed, Canceled) - Progress Status – Numerical (e.g. % complete) - Progress Status – Description (e.g. Annealing phase complete) - Contact information for performer (e.g. phone #) - etc… UPS Object Modules UPS Object Relationship Sched. Task Details Progress Perf. Task Details Performed Proc. Info. Module - Time Performed/completed - Performing resources/location - Performed Procedure descrip./codes - Performed Processing parameters - List of Output data IDs - etc… UPS State Diagram SCHEDULED IN PROGRESS COMPLETED N-CREATE by an SCU (or SCP internal logic) N-ACTION by an SCU (or SCP internal logic) N-ACTION by an SCU with the lock key (or SCP internal logic) CANCELED UPS Pull Workflow Requester (SCU) Worklist Manager (SCP) Query Get UPS Contents UPS UPS State “In-Progress” Performer (SCU) Set UPS Contents Watcher (SCU) Dashboard System UPS State “Complete” 3D Workstation UPS SOP Classes Each UPS Object is managed by a single SCP. UPS Object 4 SOP Classes exist which can be used to operate on a UPS object. Relationship Each SOP Class supports a few related operations. Progress SCU/SCP not required to implement all the SOP Classes. Can implement SOP Classes based on the operations it needs. Sched. Task Details Perf. Task Details UPS SOP Classes UPS Push SOP Class allows SCU systems to: UPS Object * create (push) a new worklist item (i.e. instance) on a worklist * request cancellation of a worklist item Relationship Sched. Task Details Progress Perf. Task Details UPS SOP Classes UPS Pull SOP Class allows SCU systems to: UPS Object Relationship * query a worklist for matching items * take ownership/control (pull) of a worklist item * modify progress/status/result details for the worklist item * finalize a controlled worklist item as Completed or Canceled. Sched. Task Details Progress Perf. Task Details UPS SOP Classes UPS Watch SOP Class allows SCU systems to: * query a worklist for items of interest * subscribe/unsubscribe for change events for one worklist item * subscribe/unsubscribe for change events for all worklist items * get details for a worklist item * request cancellation of a worklist item UPS Object Relationship Sched. Task Details Progress Perf. Task Details UPS SOP Classes UPS Object UPS Event SOP Class allows SCU systems to: * receive change events for worklist items Relationship Sched. Task Details Progress Perf. Task Details UPS Task Locking For a UPS in SCHEDULED State: (SCU does N-ACTION to IN-PROGRESS) SCP generates a lock ID (SCP returns lock ID to performing SCU) For a UPS in IN-PROGRESS State: N-SET without lock ID is rejected by SCP N-ACTION to change state “ “ Of course, lock ID could be distributed, but be careful Pull Workflow SCP SCU 3D Workstation RIS Give me a list of tasks that need to be done (C-FIND) UPS UPS UPS UPS I will do that one (N-ACTION Set to IN-PROGRESS) Record these details in the UPS (N-SET attribute values) I am finished (N-ACTION Set to COMPLETE) Pull Workflow – 3D Workstation RIS PACS Acquisition Modality 3D Worklist Manager 3D 3D Workstation 3D Workstation Workstation Store Images MPPS Complete Add UPS Task (N-CREATE) Create UPS for Task X Add RIS to Task X Subscriber List (based on prior Global Subscription) Query Worklist (C-FIND) Select UPS for Task X Retrieve full details for Task X (N-GET) Query Input Image Instances Report Task X In-Progress (N-EVENT) Claim Task X (N-ACTION IN-PROGRESS) Confirm Availability of Task X inputs Return Transaction-UID Retrieve Input Image Instances Generate 3D Views requested in Task X Store 3D Views Record Task Details (N-SET [T-UID] ) Report Task X Complete (N-EVENT) Retrieve Final State Details (N-GET) Complete Task X (N-ACTION COMPLETE [T-UID]) Comparison to Modality Worklist MWL is like UPS Pull-mode, except – UPS combines SPS and MPPS in a single object – UPS has extra features UPS will not generally replace MWL – MWL does it’s (limited) job reasonably well – MWL has a large install base UPS might supplement MWL for specific applications that need it’s features – e.g. Push Workflow for X-Ray clinics Push Workflow SCU RIS SCP Please perform this task (N-CREATE with these attribute values) Notify me about progress for that task (N-ACTION Subscribe) I have started to do that task (N-EVENT it is IN-PROGRESS) I have updated details in the UPS (N-EVENT) I am finished (N-EVENT it is COMPLETE) Give me the result details of the task (N-GET these attribute values) 3D Workstation UPS Push Workflow – X-Ray Clinic X-Ray X-Ray (Room #3) X-Ray (Room #2) (Room #1) RIS PACS Subscribe globally for events (N-ACTION SUBSCRIBE [Well-Known Instance]) ... Patient (Mr. X) arrives at Reception RIS assigns Mr. X to Room 1 Add UPS Task (N-CREATE) Create UPS for Task X Patient (Mr. X) arrives at X-Ray Room 1 Tech confirms identify of Mr. X and begins procedure Report Task X In-Progress (N-EVENT) Update Task X UPS Status to IN-PROGRESS Display Progress “Exam Started” Report Task X Progress (N-EVENT) Display Progress “All Views Taken” Update Task X UPS Progress to ”All Views Taken” Store Images Update Task X Details Display Progress “Exam Complete” Report Task X Complete (N-EVENT) Update Task X UPS Status to COMPLETE Retrieve Final State Details (N-GET) UnSubscribe for Task X (N-ACTION SUBSCRIBE [Task X]) Delete Task X Watch Workflow No central controller – Workstation watches flow of N-EVENTs: “System A did X”, “System B did Y” – Workstation decides “Hmmm, I think I will do this” – Workstation internally creates a UPS – Interested Subscribers are notified of Workstation activity via N-EVENT; N-GET details as needed Examples: – CAD workstation sees N-EVENT that Mammo Acq. is complete; decides to do CAD processing – Reporting station sees N-EVENT that CAD is complete; decides to queue reading worklist for that study Example Implementation Groupings Deletion Locks & Reliable Watchers Reliable Watcher (SCU) – Problem: SCP might delete a completed UPS before SCU gets needed details – (e.g. due to Network latency or outage) – Missing a UPS could prevent Watcher from: monitoring completion extracting details creating subsequent UPS Instances, referencing UPS 1 outputs as UPS 2 inputs Mechanism – – – – – SCU Sets a Deletion Lock flag during subscription SCP can’t delete UPS with outstanding Deletion Locks SCU removes Deletion Lock after retrieving final state of UPS SCP free to delete UPS after all deletion locks removed SCP documents how it handles orphans Requesting Cancel Treatment Delivery System Treatment Management System User Terminal Start Task X (N-ACTION IN PROGRESS) Return Transaction UID (TUID) Start listening (N-ACTION SUBSCRIBE [Task X]) Return Current Task X Status (N-EVENT) User decides to cancel Task X … Find UPS Task of Interest (C-FIND) User selects Task X Copy Contact URI from Request into N-EVENT Request Task X Cancel (N-ACTION REQUEST CANCEL) Report Task X Cancel Requested (N-EVENT) Display Cancel Request for Task X and Contact URI to Operator Operator pauses task & uses Contact URI to call user & discuss cancel Update Task X Details (N-SET w TUID) Cancel Task X (N-ACTION CANCELED w TUID) Report Task X Canceled (N-EVENT) Operator agrees and cancels Task X Current DICOM Status Sup 96 (UPS) – Officially published as Frozen for Trial Use Sup 74 (Radiotherapy Treatment Delivery Workflow) – – – – – Officially published as Frozen for Trial Use Defines Treatment Delivery Objects Documents use of UPS for RT UPS references instances of RT Beams Delivery Instruction Treatment Delivery System (SCU) pulls work from the Treatment Management System (SCP) – Z.3.1.2 gives detailed example of UPS usage, specifying both the task and input objects Sup 124 (Softcopy Display Mgt.) – Under development – Defines Display management/callibration Tasks & Results – Uses UPS to push Display Calibration jobs (with Task description) & convey Results Current IHE Status IHE Radiation Oncology – Planning to test Sup 74 workflow using UPS IHE Mammography – expressed interest in UPS features; (not committed yet) – UPS could help handle complex cases such as: Multi-pass Acquisition Callbacks CAD Reading Worklists IHE Radiology – no plan to replace Modality Worklist for acquisition workflow – will consider UPS when re-visiting Reporting Workflow and Post-processing Workflow – may profile Sup 124 when it’s ready Questions? www.dclunie.com > DICOM Status > Sup 96