DICOMweb (STOW, WADO, QIDO): Potential and implemntation sample

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

Embed Size (px)

Transcript of DICOMweb (STOW, WADO, QIDO): Potential and implemntation sample

  • 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)

    20080701 141007.000000 KLNIX2014 ONLINE CT REF NAME

  • 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

    bcom [Rest DICOM library]

    bcom [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] /