Applying REST to DICOM Chris Hafey Feb 23, 2011 Introduction • Three Types of Web Services – RPC Based (WS*) – REST – REST/RPC Hybrid • Pure REST is a great fit for DICOM – Simple – Wide technology support – Many DICOM use cases are CRUDish Resource Oriented Architecture • • • • • • • Resources URIs Addressability Statelessness Representations Links and Connectedness Uniform Interface Resources • Entities – DICOM Modules • Patient • Study – UID Based • Study, Series, Instance – Internals • Image Frame • Algorithms – Render Image – Search • Complex Transactions – Merge Studies URIs • Entites – Use path to specify where an entity is – E.g – A study • http://server/study/1.2.3.4.5 • Algorithms – Use Path to specify which algorithm/entity to run – Pass algorithm parameters via http query parameters – E.g. – render a sop instance as a JPEG with a specific window center/window width • http://server/study/1.2.3.4.5/series/1.2.3/instance/1.2.3?windowWidth=400&windowC enter=40 • Transactions – Use path to specify transactions – The transaction resource can point to other entities that will be affected Addressability • Expose interesting aspects of its data set as resources – Allows data to be used in ways not originally anticipated – E.g. exposing individual DICOM Modules to be independently accessed Statelessness • Each HTTP Request happens in complete isolation – No “session” – Simplifies error conditions – Can send the same web request multiple times without side effects Representations • Leverage MIME Types – Application/XML – Application/JSON – Application/DICOM – Image/JPEG – Image/PNG • A resource can be returned in multiple representations Links and Connectedness • Use HREF to link between resources • DICOM Examples – Patient to Study – Study to Series – Series to Instance – Presentation State to Image – Structured report to Image Uniform Interface HTTP Method Purpose RDBMS Analog GET Retrieve Select PUT Update Update POST Create Insert DELETE Delete Delete Reference Books • RESTful Web Services – Leonard Richardson & Sam Ruby • RESTful Web Services Cookbook – Subbu Allamaraju • REST in Practice – Ian Robinson, Jim Webber, and Savas Parastatidis