MINT Web Based DICOM Storage
Dec 22, 2015
MINTWeb Based DICOM
Storage
MINTWeb Based DICOM Storage
MINT is designed for the efficient transport and storage of DICOM objects using Web technologies
MINT Store
PACSPACS
Modalities Viewers ModalitiesViewers
DICOM MINT
Other HTTP Storage Systems
Caringo CAStor Amazon S3 Microsoft Azure NetApp Bycast StorageGrid OpenStack
MINT Goals
Provide fast transport of DICOM studies over Web• Eliminate end of study problem• Storage commit is inherent
Provide an Web based DICOM Storage System• Long Term Archive• Caches
Eliminate the need for PACS migrations• Supports studyUIDs across domains• A MINT store can be walked and indexed by any authorized
application, i.e. it can support multiple PACS
Essence of MINT
RESTful Interface Study create, read, update, delete, copy, move Studies are Normalized, i.e. no metadata duplication DICOM objects addressed by UIDs UIDs are global across domains Entire study can be transmitted in one message Eliminates need for migration
• PACS must percolate all changes to storage MINT Store can be indexed by any authorize app
URI WADO
One object at a time Only one use case in Sup148 “Get an object”
How MINT is Like URI WADO
Designed for Web HTTP support for DICOM study object retrieval
How MINT is Different from WADO
Focused DICOM transport & storage using HTTP It only supports DICOM objects
(not rendered objects – but could be extended) It normalizes metadata Creates, Updates and Deletes DICOM studies Uses REST style resources rather than parameters
to identify studies, series and objects
How MINT is Different from WADO(cont)
It supports resources for Studies, Series, Objects, Types & Jobs
Reference Implementation w/ client SDK
Problems MINT Addresses
Study size increasing• Time to display images increasing
Multiple mini-PACS w/ separate caches• Speed• Proprietary data• Increases complexity
DICOM Push model Migrating the archive when changing vendors Need for enterprise archive
x
Logical View of the DICOM MINT Type
Patient
Study
• Metadata • Includes all non binary attributes found in all DICOM SOP
instances in a given study• Normalized attributes according to DICOM Information
Model• Is accessed independently from the binary data• References binary data items using their id
• Binary Items • Can be retrieved in batch or individually• Are identified by study scoped ids (bids or binary ids)
Metadata Binary Data
SeriesSeries
Series
SOP InstancesSOP Instances
SOP Instances
Voice Clip
Image
Private Attributes
DICOM->MINT->DICOMIsomorphic
DICOM->MINT MINT->DICOM Conformance tests are part of reference
ProposedMINT Operations
Study Create
Study CreatePOST <s>/studies/create [content]-> <studyUID>
Note: <s> = <service>POST mint.jhu.edu/studies/create [content]
Read
StudyGET <s>/studies/<studyUID>-> <study>
GET <s>/studies/<studyUID>/<seriesUID>-> <series>
GET <s>/studies/<studyUID>/<seriesUID>/<objectUID>-> <sop instance>
Read (cont)
Study SummaryGET <s>/studies/<studyUID>/DICOM/summary.ext-> <summary>
Study MetadataGET <s>/studies/<studyUID>/DICOM/metadata.ext-> <metadata>
Where.EXT = XML, XML.gz, GPB, GBP.gz
Read (cont)
Study Binary ItemsGET <s>/studies/<studyUID>/DICOM/binaryitems-> [binary items]
Study Read ReportGET <s>/studies/<studyUID>/DICOM/reports.ext-> [DICOM SR]
Study Read ChangeLogGET <s>/studies/<studyUID>/DICOM/changeLog-> [changeLog info]
Update
Get Update LockPOST <s>/studies/<studyUID>?lock=true-> <lock>
Update StudyPOST <s>/studies/<studyUID>?lock=<lock> [content]-> [status msg]
Move, Copy & Delete
Study CopyPOST <s>/studies/<studyUID>?action=copy; target= <URIorCon>-> [status msg]
Study MovePOST <s>/studies/<studyUID>?action=move; target= <URIorCon>-> [status msg]
Study DeleteDELETE <s>/studies/<studyUID>-> [status msg]
Study Search
Study SearchGET <s>/studies/search?<query>-> [search results]
Query ParametersStudyUID, IssuerOfPatientID, PatientID, IssuerOfAccessionNumber, AccessionNumber, ModalityTypes, MinStudyDate-Time, MinStudyDate, MaxStudyDate-Time, MaxStudyDate
Query for Notifications
Study Read ChangeLogGET <s>/studies/<studyUID>/DICOM/changeLog-> [changeLog]
System Read ChangeLogGET <s>/studies/changeLog-> [changeLog]
Questions?
Index the MINT Storage System
StudyReadAllGet <service>/studies?[what arguments?] ; we need continuations
A Study’s HistoryTime
P10 Instance
1
Series 1, 2 & 3(From Modality)
Series 4(From Modality
Patient Name Change(From HIS)
• Studies are not created at one single point in time• New SOP Instances may be added to a study at any time• Changes to existing instances may be made at any time
5 min 1 Hour
HL7 - PID
Presentation State Added(From Viewer)
2 Days
P10 Instance
2P10 Instance
3P10 Instance
4P10 Instance
5
P10 Instance
8
P10 Instance
6P10 Instance
7
P10 Instance
9P10 Instance
10P10 Instance
11P10 Instance
12P10 Instance
13P10 Instance
14
P10 Instance
15
Need to update all
instances in all caches with this change
MINT is Web Based
RESTful interface to DICOM studies• Transport = HTTP 1.1 (includes chunking)
Leverages existing technologies Transmission through firewalls
• Encoding XML • Operations
CRUD (Create, Retrieve, Update, Delete) Search Notification
• Data Model = DICOM Part 3 Leverages existing web technologies Allows transmission through firewalls
Current Status
MINT Reference Implementation of Version 1.0 available at www.GOTMINT.org
4 vendors are implementing products 3 more vendors have committed to implement Currently working on version 1.1