dicomweb (stow, wado, qido): potential and implemntation sample

26
Amandine Le Maitre / DICOMweb (STOW, WADO, QIDO): Potential and implementation sample / 17/03/2016

Upload: irt-b-com

Post on 09-Feb-2017

340 views

Category:

Technology


1 download

TRANSCRIPT

Amandine Le Maitre

/ DICOMweb (STOW, WADO, QIDO): Potential and implementation sample /

17/03/2016

/ 2 17/03/2016 / 2 17/03/2016 / 2 17/03/2016 / 2 Diffusion : public 17/03/2016

DICOMweb

17/03/2016 / 3 17/03/2016 / 3 17/03/2016 / 3 17/03/2016 / 3 Diffusion : public

PACS in the radiology department Transfer of images from modalities to the PACS

Context

17/03/2016 / 4 17/03/2016 / 4 17/03/2016 / 4 17/03/2016 / 4 Diffusion : public

PACS in the radiology department Transfer of images from modalities to the PACS

Context

Radiology Modality

17/03/2016 / 5 17/03/2016 / 5 17/03/2016 / 5 17/03/2016 / 5 Diffusion : public

Increasing use of medical images for diagnostic and treatment in several hospital departments Distribution of the image repositories intra and inter enterprise

Context

Radiology Modality

Cardiology Digital

pathology

17/03/2016 / 6 17/03/2016 / 6 17/03/2016 / 6 17/03/2016 / 6 Diffusion : public

Conventional DICOM DIMSE services not adapted to this context

Complex protocol (negotiations) Not optimal for large series of instances Not adapted to web applications

static IP addresses Requires specific network application layer (not HTTP)

DICOMweb (PS3.18) answers to these issues

Context

17/03/2016 / 7 17/03/2016 / 7 17/03/2016 / 7 17/03/2016 / 7 Diffusion : public

RESTful services to: Search for DICOM objects

QIDO (Query based on ID for DICOM Objects) DICOM PS3.18 6.7

Store DICOM objects STOW (STore Over the Web) DICOM PS3.18 6.6

Retrieve DICOM objects WADO (Web Access to DICOM persistent Objects) DICOM PS3.18 6.5

DICOMweb

17/03/2016 / 8 17/03/2016 / 8 17/03/2016 / 8 17/03/2016 / 8 Diffusion : public

Service

/studies Search for all studies

/studies/{StudyUID}/series Search for all series in study

/series Search for all series

/studies/{StudyUID}/series/{seriesUID}/instances Search for all instances in series

/studies/{StudyUID}/instances Search for all instances in study

/instances Search for all instances

Search for studies, series or instances GET {service}/[?query]

QIDO Request

17/03/2016 / 9 17/03/2016 / 9 17/03/2016 / 9 17/03/2016 / 9 Diffusion : public

Query

{attributeID}={value} Filter according to DICOM tags (eg. PatientName=IDEFIX)

Includefield={attributeID} Include a DICOM attribute that is not in the default response

fuzzyMatching=true/false Fuzzy semantic matching of person names

limit={maximumResults} Limit the number of results

offset={skippedResults} Skip the first results

Search for studies, series or instances GET {service}/[?query]

QIDO Request

17/03/2016 / 10 17/03/2016 / 10 17/03/2016 / 10 17/03/2016 / 10 Diffusion : public

QIDO Response

DICOM PS3.19 XML (application/dicom+xml)

<NativeDICOMModel> <DicomAttribute tag="00080020" vr="DA"> <Value number="1">20080701</Value> </DicomAttribute> <DicomAttribute tag="00080030" vr="TM"> <Value number="1">141007.000000</Value> </DicomAttribute> <DicomAttribute tag="00080050" vr="SH"> <Value number="1">KLNIX2014</Value> </DicomAttribute> <DicomAttribute tag="00080056" vr="CS"> <Value number="1">ONLINE</Value> </DicomAttribute> <DicomAttribute tag="00080061" vr="CS"> <Value number="1">CT</Value> </DicomAttribute> <DicomAttribute tag="00080090" vr="PN"> <PersonName number="1"> <Alphabetic> <FamilyName>REF</FamilyName> <GivenName>NAME</GivenName>

17/03/2016 / 11 17/03/2016 / 11 17/03/2016 / 11 17/03/2016 / 11 Diffusion : public

QIDO Response

DICOM PS3.19 XML (application/dicom+xml) DICOM JSON (application/json)

[ { "00080020" : { "Value" : [ "20080701" ], "vr" : "DA" }, "00080030" : { "Value" : [ "141007.000000" ], "vr" : "TM" }, "00080050" : { "Value" : [ "KLNIX2014" ], "vr" : "SH" }, "00080056" : {

17/03/2016 / 12 17/03/2016 / 12 17/03/2016 / 12 17/03/2016 / 12 Diffusion : public

Service

/studies Store DICOM objects

/studies/{StudyInstanceUID} Store one specific study

POST {service}

STOW Request

17/03/2016 / 13 17/03/2016 / 13 17/03/2016 / 13 17/03/2016 / 13 Diffusion : public

POST {service}/studies/{StudyInstanceUID} HTTP/1.1 Content-Type: multipart/related; type=application/dicom; boundary=myBoundary --myBoundary Content-Type: application/dicom Content-ID: {SOPInstanceUID} .. Binary DICOM object .. --myBoundary Content-Type: application/dicom Content-ID: {SOPInstanceUID} .. Binary DICOM object .. --myBoundary--

POST {service} Send either

DICOM objects

STOW Request

17/03/2016 / 14 17/03/2016 / 14 17/03/2016 / 14 17/03/2016 / 14 Diffusion : public

POST {service}/studies/{StudyInstanceUID} HTTP/1.1 Content-Type: multipart/related; type=application/json; boundary=myBoundary --myBoundary Content-Type: application/json; transfer-syntax={TransferSyntaxUID} .. JSON metadata .. --myBoundary Content-Type: application/octet-stream Content-Location: {BulkDataURI} .. BulkData element .. --myBoundary—

POST {service} Send either

DICOM objects Metadata and bulkdata separatly

STOW Request

17/03/2016 / 15 17/03/2016 / 15 17/03/2016 / 15 17/03/2016 / 15 Diffusion : public

« Store Instances Response Module » represented in XML or JSON format

STOW Response

Attribute Name tag Description

FailedSOPSequence 00081198 List of instances that could not be stored

>ReferencedSOPClassUID 00081150

>ReferencedSOPInstanceUID 00081155

>FailureReason 00081197

ReferencedSOPSequence 00081199 List of instances that were succesfully stored

>ReferencedSOPClassUID 00081150

>ReferencedSOPInstanceUID 00081155

>WarningReason 00081196

17/03/2016 / 16 17/03/2016 / 16 17/03/2016 / 16 17/03/2016 / 16 Diffusion : public

WADO Request

Retrieve study, series, instances, frames, bulkdata or metadata GET {service}

Service

/studies/{StudyUID} Retrieve a study

/studies/{StudyUID}/series/{seriesUID} Retrieve a series

/studies/{StudyUID}/series/{seriesUID}/instances/{instanceUID} Retrieve an instance

/studies/{StudyUID}/series/{SeriesUID}/instances/{instanceUID}/ frames/{FrameList}

Retrieve frames

{BulkDataURL} Retrieve bulkData

/studies/{StudyUID}[/series/{seriesUID}/instances/{instanceUID}]/metadata

Retrieve metadata of a study, a series or an instance

17/03/2016 / 17 17/03/2016 / 17 17/03/2016 / 17 17/03/2016 / 17 Diffusion : public

Content-type : multipart/related Retrieve study, series or instances

DICOM response Bulkdata response (compressed or uncompressed)

Retrieve metadata XML or JSON format

Retrieve frames Compressed or uncompressed

Retrieve bulkdata One bulkdata compressed or uncompressed

WADO Response

/ 18 17/03/2016 / 18 17/03/2016 / 18 17/03/2016 / 18 Diffusion : public 17/03/2016

Implementation Sample

17/03/2016 / 19 17/03/2016 / 19 17/03/2016 / 19 17/03/2016 / 19 Diffusion : public

Goal : implement a DICOMweb interface to any PACS Lightweight (pure JS client) Standalone Conformant to DICOMweb

b<>com [Rest DICOM library]

b<>com [Rest DICOM Library]

PACS

C-STORE C-FIND C-MOVE

RESTful services STOW/QIDO/WADO

DB proprietary

17/03/2016 / 20 17/03/2016 / 20 17/03/2016 / 20 17/03/2016 / 20 Diffusion : public

3 services : stow/qido/wado Grammar based URL parsing and validation (ABNF) Converting HTTP requests to standard DIMSE services

STOW to C-STORE QIDO to C-FIND WADO to C-MOVE

Server Module

17/03/2016 / 21 17/03/2016 / 21 17/03/2016 / 21 17/03/2016 / 21 Diffusion : public

Can connect to any DICOMweb compliant server Display studies present in the PACS

Client Module

17/03/2016 / 22 17/03/2016 / 22 17/03/2016 / 22 17/03/2016 / 22 Diffusion : public

Client Module

17/03/2016 / 23 17/03/2016 / 23 17/03/2016 / 23 17/03/2016 / 23 Diffusion : public

Client Module

17/03/2016 / 24 17/03/2016 / 24 17/03/2016 / 24 17/03/2016 / 24 Diffusion : public

Can connect to any DICOMweb compliant server Display studies present in the PACS Upload images via STOW

Compression on the fly De-identification (with encryption of original values) Resumable upload

Client Module

17/03/2016 / 25 17/03/2016 / 25 17/03/2016 / 25 17/03/2016 / 25 Diffusion : public

Client Module

www.b-com.com

Merci / Thanks / [email protected] /