srapi

Uploaded from authorPOINTLite
Views:
 
Category: Entertainment
     
 

Presentation Description

No description available.

Comments

Presentation Transcript

SR Object Model (SR-OM) - Towards an API for toolkits : 

SR Object Model (SR-OM) - Towards an API for toolkits David A. Clunie NEMA SR Workshop 29th-30th March 2000

The need for an API: 

The need for an API SR is primarily encoded in DICOM DICOM parsing/encoding requires tools May need transcoding into XML, HL7 … Input methods, rendering rules essentially independent of encoding Standard API to separate encoding from applications

Transcoding Applications: 

Transcoding Applications … (0x0040,0xa491) <COMPLETE> (0x0040,0xa493) <VERIFIED> (0x0040,0xa730) Content Sequence (0x0040,0xa010) <HAS OBS CONTEXT> (0x0040,0xa040) <PNAME > (0x0040,0xa043) Concept Name Code Sequence (0x0008,0x0100) <000555> (0x0008,0x0102) <LNdemo> (0x0008,0x0104) <Recording 0bserver> (0x0040,0xa123) <Smith^John^^Dr^ > ... <contentsequence> <contentitem> <contentlabel>1.1</contentlabel> <relationshiptype>HAS OBS CONTEXT</relationshiptype> <conceptname> <codesequence> <codevalue>000555</codevalue> <codingschemedesignator>LNdemo</codingschemedesignator> <codemeaning>Recording Observer</codemeaning> </codesequence> </conceptname> <valuetype>PNAME</valuetype> <personname>Smith^John^^Dr^</personname> </contentitem> <contentitem> DICOM Internal XML

Rendering Applications: 

Rendering Applications … (0x0040,0xa491) <COMPLETE> (0x0040,0xa493) <VERIFIED> (0x0040,0xa730) Content Sequence (0x0040,0xa010) <HAS OBS CONTEXT> (0x0040,0xa040) <PNAME > (0x0040,0xa043) Concept Name Code Sequence (0x0008,0x0100) <000555> (0x0008,0x0102) <LNdemo> (0x0008,0x0104) <Recording 0bserver> (0x0040,0xa123) <Smith^John^^Dr^ > ... <contentsequence> <contentitem> <contentlabel>1.1</contentlabel> <relationshiptype>HAS OBS CONTEXT</relationshiptype> <conceptname> <codesequence> <codevalue>000555</codevalue> <codingschemedesignator>LNdemo</codingschemedesignator> <codemeaning>Recording Observer</codemeaning> Parser A Parser B Common API Report of Chest X-Ray (PA and LateralViews) Patient Jane Homer Study # 123456 Recorded by Dr. John Smith The finding is a mass measuring 1.3 cm in diameter with an infiltrative margination. Chest X-Ray has concept modifier Views=PA and Lateral Recording Observer=Smith^John^^Dr^ Study Instance UID …=1.2.3.4.5.6.7.100 Patient-Data-Acquisition-Subject=Homer^Jane^^^ Finding=Mass has properties diameter=1.3 cm has properties margination=infiltrative (1.4.2) Display C Display D DICOM XML

Input Applications: 

Input Applications … (0x0040,0xa491) <COMPLETE> (0x0040,0xa493) <VERIFIED> (0x0040,0xa730) Content Sequence (0x0040,0xa010) <HAS OBS CONTEXT> (0x0040,0xa040) <PNAME > (0x0040,0xa043) Concept Name Code Sequence (0x0008,0x0100) <000555> (0x0008,0x0102) <LNdemo> (0x0008,0x0104) <Recording 0bserver> (0x0040,0xa123) <Smith^John^^Dr^ > ... <contentsequence> <contentitem> <contentlabel>1.1</contentlabel> <relationshiptype>HAS OBS CONTEXT</relationshiptype> <conceptname> <codesequence> <codevalue>000555</codevalue> <codingschemedesignator>LNdemo</codingschemedesignator> <codemeaning>Recording Observer</codemeaning> GUI A NLP B Common API Report of Chest X-Ray (PA and LateralViews) Patient Jane Homer Study # 123456 Recorded by Dr. John Smith The finding is a mass measuring 1.3 cm in diameter with an infiltrative margination. Encoder C Encoder D

Tree rewriting: 

Tree rewriting Specific Application

Tree rewriting: 

Tree rewriting Rules in pattern language Generic Application

Precedent in XML World - DOM: 

Precedent in XML World - DOM Document Object Model (W3C rec.) Parse an XML document Validate against DTD Represent as tree Multi-language bindings for accessor methods Edit/generate tree elements Write out as an XML document

SR - why not just use DOM ?: 

SR - why not just use DOM ? Structure of the SR tree slightly different Node content different Constraints on value types different XML - just PCDATA SR - PNAME, NUM, IMAGE, SCOORD etc.

SR Object Model (SR-OM) API: 

SR Object Model (SR-OM) API Follow DOM as closely as possible Generic specification in IDL Multiple language bindings C++ Java ECMAScript, Python, ... Accessor methods rather than generic collections (STL, Java 2 Collections)

SR-OM Classes and Interfaces: 

SR-OM Classes and Interfaces interface SRDocument { SRNode getRootNode(); }; interface SRNode { String getConceptName(); SRValueType getValueType(); SRValue getValue(); … SRNode getParent(); SRNode getFirstChild(); SRNode getNextChild(); … };

SR-OM Decisions: 

SR-OM Decisions Is DOM concept sufficient ? other XML API approaches SAX - event driven tree traversal Accessors Iterators: getNextChild() Indexed: getNamedChild(ConceptName) Validation a separate interface ?

SR-OM Home: 

SR-OM Home DICOM Working Group home ? WG 8 SR, WG 6 Base Standard, new WG ? Joint effort with HL-7 (WG 20) Vendor concensus (ad hoc group) ? Document home ? DICOM Standard ? DICOM Recommendation ? Ad hoc concensus document