WADO RESTful API DICOM WG-27 February 2012.

Slides:



Advertisements
Similar presentations
September, 2005What IHE Delivers 1 Key Image Notes Evidence Documents Simple Image & Numeric Report Access to Radiology Information IHE Vendors Workshop.
Advertisements

8/26/98IPP IETF1 IPP Scheme –Help users distinguish IPP objects from other web objects. –Users will always see ipp:// as URL format for IPP Printers and.
Enabling Secure Internet Access with ISA Server
Server Access The REST of the Story David Cleary
OASIS OData Technical Committee. AGENDA Introduction OASIS OData Technical Committee OData Overview Work of the Technical Committee Q&A.
Yunling Wang VoIP Security COMS 4995 Nov 24, 2008 XCAP The Extensible Markup Language (XML) Configuration Access Protocol (XCAP)
Hypertext Transfer PROTOCOL ----HTTP Sen Wang CSE5232 Network Programming.
DDI3 Uniform Resource Names: Locating and Providing the Related DDI3 Objects Part of Session: DDI 3 Tools: Possibilities for Implementers IASSIST Conference,
SOAP.
SE 370: Programming Web Services Week 4: SOAP & NetBeans Copyright © Steven W. Johnson February 1, 2013.
Image Access Everywhere DICOM Web Services also go to PPT tab “Insert” > “Header & Footer” to insert title and name of presenter James F Philbin, PhD Johns.
An Introduction to XML Based on the W3C XML Recommendations.
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 22 World Wide Web and HTTP.
An Introduction to Secure Sockets Layer (SSL). Overview Types of encryption SSL History Design Goals Protocol Problems Competing Technologies.
Module 5: TLS and SSL 1. Overview Transport Layer Security Overview Secure Socket Layer Overview SSL Termination SSL in the Hosted Environment Load Balanced.
What is DICOM? The standard for Digital Imaging and Communications in Medicine. Developed by the National Electrical Manufacturers Association (NEMA) in.
HTTP Overview Vijayan Sugumaran School of Business Administration Oakland University.
Hypertext Transport Protocol CS Dick Steflik.
 What is it ? What is it ?  URI,URN,URL URI,URN,URL  HTTP – methods HTTP – methods  HTTP Request Packets HTTP Request Packets  HTTP Request Headers.
Authenticating REST/Mobile clients using LDAP and OERealm
Getting Started with WCF Windows Communication Foundation 4.0 Development Chapter 1.
MongoDB Sharding and its Threats
TAM STE Series 2008 © 2008 IBM Corporation WebSEAL SSO, Session 108/2008 TAM STE Series WebSEAL SSO, Session 1 Presented by: Andrew Quap.
Smart Card Single Sign On with Access Gateway Enterprise Edition
Simple Web Services. Internet Basics The Internet is based on a communication protocol named TCP (Transmission Control Protocol) TCP allows programs running.
Simple Web Services. Internet Basics The Internet is based on a communication protocol named TCP (Transmission Control Protocol) TCP allows programs running.
WADO evolution Multipart ? JPIP ? Or Web Services? With help from Emmanuel Cordonnier (ETIAM) - Thanks to him Multipart ? JPIP ? Or Web Services? With.
Web application architecture
JavaScript, Fourth Edition
An XMPP (Extensible Message and Presence Protocol) based implementation for NHIN Direct 1.
DICOM Security Lawrence Tarbox, Ph.D. Chair, WG 14 Mallinckrodt Institute of Radiology Washington University in St. Louis School of Medicine.
TCP/IP Protocols Dr. Sharon Hall Perkins Applications World Wide Web(HTTP) Presented by.
James Holladay, Mario Sweeney, Vu Tran. Web Services Presentation Web Services Theory James Holladay Tools – Visual Studio Vu Tran Tools – Net Beans Mario.
Web HTTP Hypertext Transfer Protocol. Web Terminology ◘Message: The basic unit of HTTP communication, consisting of structured sequence of octets matching.
WebDAV Issues Munich IETF August 11, Property URL encoding At present, spec. allows encoding of the name of a property so it can be appended to.
Chapter 8 Cookies And Security JavaScript, Third Edition.
MINT Working Group Jan 9-10 at Harris FBC Melbourne, FL.
.Net and Web Services Security CS795. Web Services A web application Does not have a user interface (as a traditional web application); instead, it exposes.
DICOM INTERNATIONAL DICOM INTERNATIONAL CONFERENCE & SEMINAR April 8-10, 2008 Chengdu, China Efficient, Standard-Compliant Streaming of EHR Imagery Combining.
Kerberos Named after a mythological three-headed dog that guards the underworld of Hades, Kerberos is a network authentication protocol that was designed.
Authentication Mechanism for Port Control Protocol (PCP) draft-wasserman-pcp-authentication-01.txt Margaret Wasserman Sam Hartman Painless Security Dacheng.
Lev Weisfeiler Aware, Inc. SPIE Medical Imaging 2006 San Diego, CA, USA February 14, 2006 DICOM Supplement 106: JPEG 2000 Interactive Protocol.
1 Web Service Description Language (WSDL) 大葉大學資工系.
Phonegap Bridge – File System CIS 136 Building Mobile Apps 1.
1 Seminar on Service Oriented Architecture Principles of REST.
1 Web Services Web and Database Management System.
Web Technologies Interactive Responsiveness Function Hypertext Web E-Publishing Simple Response Web Fill-in Forms Object Web « Full-Blown » Client/Server.
Services for Advanced Image Access CP 309 and Advanced Query/Retrieve Work Item WG-04, 18 February 2003 Harry Solomon and Yongjian Bao GE Medical Systems.
DICOM INTERNATIONAL DICOM INTERNATIONAL CONFERENCE & SEMINAR April 8-10, 2008 Chengdu, China Exchanging Imaging Data Herman Oosterwijk Add logo if desired.
2007cs Servers on the Web. The World-Wide Web 2007 cs CSS JS HTML Server Browser JS CSS HTML Transfer of resources using HTTP.
Slide #1 Boston, Jan 5 – 6, 2005XCON WG Interim draft-levin-xcon-cccp-01.txt By Orit Levin
Representational State Transfer (REST). What is REST? Network Architectural style Overview: –Resources are defined and addressed –Transmits domain-specific.
ICM – API Server & Forms Gary Ratcliffe.
Internet Applications (Cont’d) Basic Internet Applications – World Wide Web (WWW) Browser Architecture Static Documents Dynamic Documents Active Documents.
[1] ISO TC215 / DICOM – Jan. 18, Health Informatics – Messages and Communication – Web Access to DICOM Persistent Objects (WADO) Ad Hoc Group ISO.
RESTful Studies Services Jim Philbin American College of Radiology Johns Hopkins School of Medicine DICOM Standard Committee, User Co-Chair DICOM WG-27,
ProductExchange 2013 SP1Exchange 2013 RTMExchange 2010 SP3Exchange 2007 SP3 Outlook 2013 SP1 or later MAPI over HTTP Outlook Anywhere Outlook Anywhere.
Java Programming: Advanced Topics 1 Building Web Applications Chapter 13.
IPSec is a suite of protocols defined by the Internet Engineering Task Force (IETF) to provide security services at the network layer. standard protocol.
September, 2005What IHE Delivers 1 Patient Index and Demographic Implementation Strategies IHE Vendors Workshop 2006 IHE IT Infrastructure Education Rick.
PIX/PDQ – Today and Tomorrow Vassil Peytchev Epic.
Simple Web Services. Internet Basics The Internet is based on a communication protocol named TCP (Transmission Control Protocol) TCP allows programs running.
Feeling RESTful? Well, first we’ll define a Web Service –A web page meant to be consumed by a computer via an autonomous program as opposed to a web browser.
How HTTP Works Made by Manish Kushwaha.
HTTP – An overview.
draft-ietf-simple-message-sessions-00 Ben Campbell
Hypertext Transport Protocol
WEB API.
EO Data Access Protocol
Presentation transcript:

WADO RESTful API DICOM WG-27 February 2012

Agenda Overview Open Items WADO RESTful API DICOM 2012 Part 18 Supplement XXX Review New Topic: Web Security for REST Questions/Comments

Overview David Clunie provided draft copy of DICOM 2012 for future edits Briefed progress to WG-06 Incorporated comments/suggestions from WG-27/WG-06 for further discussion at HIMSS 2012 Started editing DICOM 2012 documents

OPEN ITEMS

WG-06 Feedback Remove RetrieveInstances in favor of multiple calls to RetrieveInstance. Transfer syntax should be specified in the header or as an explicit RESTful resource, not as a parameter. If the transfer syntax cannot be supported, proper error code should return. The focus of WADO RESTful API should be on transport as opposed to presentation or processing. For example, supporting window regions is the role of a JPIP streamer as opposed to DICOM communication. Provide a separate resource or an application/octet-stream to get direct access to the binary for series and instances.

WG-06 Feedback (cont) Look at Appendix Y in Part 4 for a description of the mechanisms for accessing frames. Remove WADO:XPath parameter from metadata resource since it is small enough to send over and let the client parse it. Supplement 157 is rejecting the notion of normalized metadata and instead are refactoring into common chunks that can be returned as a multipart response. Multipart Mime vs MAFF – Prefer Multipart Mime over MAFF since it is an established standard where MAFF is still in review. Need to address web security with REST

Transfer Syntax Encoding Transfer Syntax using resources – The return transfer syntax could be specified as an explicit resource for each type of transfer syntax …/instances/{instance uid}/xfersyntaxes/ …/instances/{instance uid}/xfersyntaxes/ …/instances/{instance uid}/xfersyntaxes/ etc – Since the return transfer syntax could be specified for study, series, instance, and frame level requests, this requires a xfersyntaxes folder on each of those resources. – If no transfer syntax is specified, the default transfer syntax would be Explicit VR, Little Endian

Transfer Syntax Encoding Transfer Syntax using Content Negotiation – Accept Use Accept in the header to identify the content types that are acceptable Use Accept-Encoding to identify acceptable encodings Both the Accept and Accept-Encoding can be prioritized lists – Response Server finds the highest priority Accept type that it can support and specifies the mime-type of the content in Content-Type Server finds the highest priority Accept-Encoding type that it can support and specifies the type of encoding in Content-Encoding 406 Response Not Acceptable is returned if server and client cannot agree on a mime type or an encoding

Transfer Syntax Encoding Proxy Cache – User requests the same resource, but with a different accept- encoding. – The Vary header lets the caching proxy know which fields it needs to consider for matching in subsequent requests. Vary: Accept, Accept-Encoding Vary: * – Cache proxy will know it needs to consider the Accept and Accept- Encoding header for subsequent calls to the same resource in its decision to return the cached version as valid or go back to the server to request it anew.

Bulk data vs pixel data Bulk data – Bulk data is returned for the study, series, and instance resources Pixel data – Pixel data is returned for the frame resources. What is bulk data? – Any binary data within a SOP instance, not just the pixel data. – Metadata would have to provide information for how to parse the bulk data. – Makes WADO RS efficient not only for images but other types of binary data. Possible implementation – Add binaryItemId to XML schema for binary DICOM attributes. – binaryItemId identifies the multipart item of the binary value and its length. – Consider adding a resource to pull a specific binary item (ie. so a user could have direct access to a thumbnail).

WADO RESTFUL API

WADO RESTful API The DICOM WADO RESTful APl resources. An implementation shall support at least one of these endpoints. The endpoints are: – RetrieveStudy - This resource retrieves the full set of DICOM instances related to the study returned in a multipart mime response – RetrieveSeries - This resource retrieves a series as a set of DICOM objects returned in a multipart mime response – RetrieveInstance - This resource retrieves a SOP Instance as a DICOM object returned in a multipart mime response – RetrieveFrames - This resource retrieves a retrieves a range of frames as a set of DICOM objects returned in a multipart mime response – RetrieveMetadata - This action retrieves the study level metadata

WADO RESTful Operations NameOperatorResourceAcceptAccept-Encoding RetrieveStudyGET{s}/studies/{study uid}application/dicom application/wado-rs application/octet-stream etc RetrieveSeriesGET{s}/studies/{identifier}/series/{series uid}application/dicom application/wado-rs application/octet-stream etc RertrieveInstanceGET{s}/studies/{identifier}/series/{series uid}/instances/{instance uid} application/dicom application/wado-rs application/octet-stream etc RetrieveFramesGET{s}/studies/{identifier}/series/{series uid}/instances/{instance uid}/frames/{frame list} application/octet-stream etc RetrieveFramesGET{s}/studies/{identifier}/series/{series uid}/instances/{instance uid}/frames?calculated={f,u,i}[&calculated={f,u,i}…] application/octet-stream etc RetrieveFramesGET{s}/studies/{identifier}/series/{series uid}/instances/{instance uid}/frames?time={start, end} application/octet-stream etc RetrieveMetadataGET{s}/studies/{identifier}/metadatatext/xmlgzip gpb etc

WADO RESTful API Assumptions – All XML responses shall be encoded as described in the Native DICOM Model defined in PS3.19. – By default, DICOM objects returned shall be encoded in Explicit VR Little Endian (see for more information on Transfer Syntax UID).

RetrieveStudy Request Resource – {SERVICE}/studies/{StudyInstanceUID} SERVICE is the base url for the WADO URI service. This may be a combination of host, port, and protocol(http or https). {StudyInstanceUID} is the unique study instance UID for a single study. Method – GET Accept – application/dicom Specifies to the URI service the response should be DICOM. – application/wado-rs Specifies to the URI service the response should be WADO XML and binary. – application/octet-stream Specifies to the URI service the response should be binary.

RetrieveStudy Response The response format depends on the Accept header specified in the request. The three possible response formats are application/dicom, application/wado-rs, and application/octet-stream. All response formats have a content type of multipart/mixed with a boundary separator of BinaryItemBoundary-7afb50349c2148c3a5d6a324891a481c – Type: application/dicom (Content-Type: multipart/mixed) Each item in the multipart response represents a DICOM SOP instance object. The entire multipart response contains every instance for the study specified. – Type: application/wado-rs (Content-Type: multipart/mixed) The first item in the response is the WADO XML metadata for the study specified. Each following item is the bulk data portion of a SOP instance in the study. – Type: application/octet-stream (Content-Type: multipart/mixed) Each item is the bulk data portion of a SOP instance in the study.

RetrieveSeries Request Resource – {SERVICE}/studies/{StudyInstanceUID}/series/{SeriesInstanceUID} SERVICE is the base url for the WADO URI service. This may be a combination of host, port, and protocol(http or https). {StudyInstanceUID} is the unique study instance UID for a single study. {SeriesInstanceUID} is the unique series instance UID for a single series. Method – GET Accept – application/dicom Specifies to the URI service the response should be DICOM. – application/wado-rs Specifies to the URI service the response should be WADO XML and binary. – application/octet-stream Specifies to the URI service the response should be binary.

RetrieveSeries Response The response format depends on the Accept header specified in the request. The three possible response formats are application/dicom, application/wado-rs, and application/octet- stream. All response formats have a content type of multipart/mixed with a boundary separation of BinaryItemBoundary-7afb50349c2148c3a5d6a324891a481c – Type: application/dicom (Content-Type: multipart/mixed) Each item in the multipart response represents a DICOM SOP instance object. The entire multipart response contains every instance for the series specified. – Type: application/wado-rs (Content-Type: multipart/mixed) The first item in the response is the WADO XML for the series specified. Each following item is the bulk data portion of a SOP instance in the series. – Type: application/octet-stream (Content-Type: multipart/mixed) Each item is the bulk data portion of a SOP instance in the series.

RetrieveInstance Request Resource – {SERVICE}/studies/{StudyInstanceUID}/series/{SeriesInstanceUID}/instances/{S OPInstanceUID} SERVICE is the base url for the WADO URI service. This may be a combination of host, port, and protocol(http or https). {StudyInstanceUID} is the unique study instance UID for a single study. {SeriesInstanceUID} is the unique series instance UID for a single series. {SOPInstanceUID} is the unique SOP instance UID for a single instance. Method – GET Accept – application/dicom Specifies to the URI service the response should be DICOM. – application/wado-rs Specifies to the URI service the response should be WADO XML and binary. – application/octet-stream Specifies to the URI service the response should be binary.

RetrieveInstance Response The response format depends on the Accept header specified in the request. The three possible response formats are application/dicom, application/wado-rs, and application/octet-stream. Response format for application/wado-rs has a content type of multipart/mixed with a boundary separation of BinaryItemBoundary- 7afb50349c2148c3a5d6a324891a481c, otherwise the response format is application/octet-stream. – Type: application/dicom (Content-Type: application/octet- stream ) A single item containing the DICOM SOP instance object. – Type: application/wado-rs (Content-Type: multipart/mixed) The first item in the response is the WADO XML metadata for the SOP instance specified. Each following item is the bulk data portion of the SOP instance. – Type: application/octet-stream (Content-Type: multipart/mixed) Each item contains the bulk data portion of the SOP instance.

RetrieveFrames Request Simple Frame List Resource – {SERVICE}/studies/{StudyInstanceUID}/series/{SeriesInstanceUID}/instances/{S OPInstanceUID}/frames/{FrameList} SERVICE is the base url for the WADO URI service. This may be a combination of host, port, and protocol(http or https). {StudyInstanceUID} is the unique StudyInstanceUID for a single study. {SeriesInstanceUID} is the unique SeriesInstanceUID for a single series. {SOPInstanceUID} is the unique SOPInstanceUID for a single instance. {FrameList} is a list of one or more monotonically increasing frame numbers (ie. 6,10,18,24). Method – GET Accept – application/octet-stream Specifies to the URI service the response should be binary.

RetrieveFrames Request Calculated Frame List Resource – {SERVICE}/studies/{StudyInstanceUID}/series/{SeriesInstanceUID}/instances/{S OPInstanceUID}/frames?calculated={First,Upper,Incr}[&calculated={First,Upper,Incr}…] SERVICE is the base url for the WADO URI service. This may be a combination of host, port, and protocol(http or https). {StudyInstanceUID} is the unique StudyInstanceUID for a single study. {SeriesInstanceUID} is the unique SeriesInstanceUID for a single series. {SOPInstanceUID} is the unique SOPInstanceUID for a single instance. calculated is one or more tuples {First,Upper,Incr} containing the first frame number, the upper limit, and the increment between frames as defined in PS3.4 Annex Y. Method – GET Accept – application/octet-stream Specifies to the URI service the response should be binary.

RetrieveFrames Request Time Range Frame List Resource – {SERVICE}/studies/{StudyInstanceUID}/series/{SeriesInstanceUID}/instances/{S OPInstanceUID}/frames?time={Start,End} SERVICE is the base url for the WADO URI service. This may be a combination of host, port, and protocol(http or https). {StudyInstanceUID} is the unique StudyInstanceUID for a single study. {SeriesInstanceUID} is the unique SeriesInstanceUID for a single series. {SOPInstanceUID} is the unique SOPInstanceUID for a single instance. Time is a single pair {Start,End} containing the start and end time in seconds relative to the value of the Content Time (0008,0033) as defined in PS3.4 Annex Y. Method – GET Accept – application/octet-stream Specifies to the URI service the response should be binary.

RetrieveFrames Response The response format has a content type of multipart/mixed with a boundary separation of BinaryItemBoundary- 7afb50349c2148c3a5d6a324891a481c – Type: application/octet-stream (Content-Type: multipart/mixed) Each item is the pixel data portion of a frame in the SOP Instance.

RetrieveMetadata Request Resource – {SERVICE}/studies/{StudyInstanceUID}/metadata SERVER_ROOT is the base url for the web servers WADO service. This may be a combination of host, port, and protocol(http or https). {StudyInstanceUID} is the unique study instance UID for a single study. Method – GET Accept – text/xml Specifies to the URI service the response should be WADO XML.

RetrieveMetadata Response The response format is text/xml with the metadata in WADO XML format for the entire study.

SUPPLEMENT XXX REVIEW DICOM 2012 Part 18

Supplement XXX Web Access to DICOM Persistent Objects by RESTful Services (WADO-RS) Part 2 - Conformance – A AE Specifications – Annex I - Conformance Statement Sample WADO Service – I.7 - Security Part 17 - Explanatory Information – Annex III - Evolution of WADO to RESTful Services Part 18 - Web Access to DICOM Persistent Objects (WADO) – 5 - Symbols and Abbreviated Terms – 6 - Data Communication Requirements – Interaction – RS Request/Response – 8 - Parameters – Appendix F - Example Requests/Responses

WEB SECURITY

Security Topics Authentication – Authentication is orthogonal to the WADO RESTful API – WADO RS servers must support HTTP BASIC authorization as a minimum (over SSL) – Strongly recommend that WADO RS servers also support Digest Authorization SSL Client Certificates – WADO RS servers can optionally support Sessions or other authentication mechanisms Local Domain Sessions (Kerberos) Cross Domain Sessions (Shibboleth)

Sessions (Local Domain) User requests AS for connection to Service (user name + server name) AS generates random session key KRS, sends credentials and ticket to user Credentials: EKU(user name+KRS) Ticket: EKS(server name+KRS) User gets session key, validates user name, generates authenticator DKU(EKU (user name+KRS)) Authenticator: EKRS(shared secret) User sends authenticator and ticket to Service Service gets session key, validates server name, validates shared secret DKU(EKU (server name+KRS)) DKRS(EKRS(shared secret)) WADO RESTful Server WADO RESTful Server Authentication Service (AS) User KU KS KRS request credentials+ticket authenticator+ticket KDC

Domain 2 Domain 1 Discovery Service Discovery Service WADO RESTful Server WADO RESTful Server Service Provider Service Provider Active Directory LDAP Identity Provider User Identity Provider User App Container Attributes from Claims claims Sessions (Cross Domain)

Domain 2 Domain 1 Discovery Service Discovery Service WADO RESTful Server WADO RESTful Server Service Provider Service Provider Active Directory LDAP Identity Provider User Identity Provider User App Container Sessions (Cross Domain)

Questions/Comments TBD

BACKUP