ACC 2001 Demonstration of DICOM Structured Reporting Jonathan

  • Slides: 22
Download presentation
ACC 2001 Demonstration of DICOM Structured Reporting Jonathan L. Elion MD, FACC Associate Professor

ACC 2001 Demonstration of DICOM Structured Reporting Jonathan L. Elion MD, FACC Associate Professor of Medicine Brown University and the Miriam Hospital Providence, RI USA Chief Medical Director and Co-Founder Heartlab, Inc. , Westerly, RI USA

DICOM Structured Reporting 1. Image data represents only a fraction of the clinically useful

DICOM Structured Reporting 1. Image data represents only a fraction of the clinically useful information describing the diagnostic studies done on any individual patient. 2. The American College of Cardiology’s “Structured Reporting 2001” demonstration represents the first comprehensive application of DICOM SR to information interchange in Cardiology. 3. In large measure, Structured Reporting is the final, critical element in the development of a DICOM-based integration of cardiovascular information.

DICOM: The Foundation Diagnostic Procedures Remote Facility Network. Connected Review Stand-Alone Review

DICOM: The Foundation Diagnostic Procedures Remote Facility Network. Connected Review Stand-Alone Review

DICOM Structured Reporting Hemodynamics Physical Findings ECG Reports History Consults and Notes Standard Codes

DICOM Structured Reporting Hemodynamics Physical Findings ECG Reports History Consults and Notes Standard Codes Other Database Information Ultrasound Measurements DICOM SR

Customization in DICOM SR u “Presentation” – the way the data appears on the

Customization in DICOM SR u “Presentation” – the way the data appears on the screen or printed report is not specified by DICOM SR. u DICOM SR also does not specify the user interface that is used to gather or interact with the information. u Finally, DICOM SR does not specify anything about the implementation of the database that underlies the data.

Demo System XML Style Sheets Standalone Viewer Database SRGen Templates DICOM Files Web Browser

Demo System XML Style Sheets Standalone Viewer Database SRGen Templates DICOM Files Web Browser SRVue XML

Development System Editor DCMGen Database DDGen DICOM Source Listings DICOMDIR Source Listing Templates SRGen

Development System Editor DCMGen Database DDGen DICOM Source Listings DICOMDIR Source Listing Templates SRGen Editor DICOM SR Source Listing build DICOM Files

Making DICOM SR for SR 2001 1. A database of patient information was created.

Making DICOM SR for SR 2001 1. A database of patient information was created. 2. Templates were created for each of the information types shown in this demonstration; ECG, Cardiac Cath, Hemodynamics, and QCA/QVA (381 lines of specs, 2599 context group items!). 3. A computer program (written in Java) reads a template, and combines it with its corresponding patient data. A DICOM SR file is created. 4. Another computer program (also written in Java) transforms a DICOM file into its XML equivalent. 5. An XML “Stylesheet” (XSL) is used to specify how the data from the XML file is to appear on the final report. 6. Many web browsers can show the XML+XSL directly, but for this demonstration, HTML was created.

Database Schema Patients Table Patient ID <more Patient data> SR QCA Table SOP Instance

Database Schema Patients Table Patient ID <more Patient data> SR QCA Table SOP Instance UID Series Instance UID <more QCA data> SR QCA Data Table SOP Instance UID <more QCA data> Studies Table Study Instance UID Patient ID <more Study data> Image Table SOP Instance UID Series Instance UID <more Image data> DICOM XA Images SOP Instance UID <more Image data> Series Table Series Instance UID Study Instance UID <more Series data> SR Cath Table SOP Instance UID Series Instance UID <more Cath data> SR Cath Data Table SOP Instance UID <more Cath data>

Templates Drive Database Schema 1. A row that has a VM of 1 can

Templates Drive Database Schema 1. A row that has a VM of 1 can all live in the main data table 2. A template whose VM’s are all 1 corresponds to a database schema with a single (wide) row 3. Any row of the template that has a VM of anything other than 1 requires a secondary table 4. A CONTAINER with a VM that is not 1 requires a secondary table 5. A CONTAINER with any row that has a VM that is not 1 requires a secondary table

Templates: Diagram

Templates: Diagram

Templates NL Relationship with Parent 1 Value Type Concept Name VM CONTAINER Resting 12

Templates NL Relationship with Parent 1 Value Type Concept Name VM CONTAINER Resting 12 -Lead ECG Report 1 18 > CONTAINS CONTAINER ECG Waveform Information 1 23 >> HAS ACQ CONTEXT PNAME Technician Name/ID 1 25 >> HAS ACQ CONTEXT DATETIME Acquisition Date. Time 1 27 >> HAS ACQ CONTEXT NUM Lo Pass Filter 1 29 > CONTAINS CONTAINER Quantitative Analysis 1 30 >> CONTAINS INCLUDE Global Measurements 1 31 >> CONTAINS INCLUDE Lead Measurements 1 32 > CONTAINS CONTAINER Qualitative Analysis 1 33 >> CONTAINS TEXT Clinical Interpretation 1 34 >> CONTAINS CONTAINER Interpretive Statement 1 -n

Extending Template Descriptions 1. Each row of the template that specifies actual data had

Extending Template Descriptions 1. Each row of the template that specifies actual data had two additional columns added: 1. Name of the ODBC connection for the data source (table) 2. Name of the field within the table that holds the data value 2. This connection between template and data turned out to be the single most important factor to manage for the project 3. As database schemas to support the templates were developed, these two columns established the connection between templates and data

DICOM SR from ECG ; Template ECG 01 Row 25 >> VM=1 [HAS ACQ

DICOM SR from ECG ; Template ECG 01 Row 25 >> VM=1 [HAS ACQ CONTEXT] DATETIME "Acquisition Date. Time" (FFFE, E 000) 0 xffff ; Item #I 17 (0040, A 010) "HAS ACQ CONTEXT" ; Relationship Type (0040, A 040) DATETIME ; Value Type (0040, A 043) 0 xffff ; Concept Name Code Sequence (FFFE, E 000) 0 xffff ; Item #I 18 (0008, 0100) TI-0166 ; Code Value (0008, 0102) ACC 2001 ; Coding Scheme Designator (0008, 0104) "Acquisition Date. Time“ ; Code Meaning (FFFE, E 00 D) ; End of Item #I 18 (FFFE, E 0 DD) ; End of Concept Name Code Seq (0040, A 120) 200010151120 ; Date. Time (FFFE, E 00 D) ; End of Item #I 17

Template-Traversing Algorithm u Templates were parsed and data “pulled” to fill the required items

Template-Traversing Algorithm u Templates were parsed and data “pulled” to fill the required items (rather than “pushing” data out through a template). u Template specifications were expanded to include the name of the ODBC data source (table) and field name that contained the corresponding information u The algorithm was implemented using stacks to keep track of events, take non-linear processing paths u Approach chosen for “simplicity” and ease of reading; in retrospect, a fully recursive set of procedures may be more logical and robust u Templates written in conformance with Supplement 53 are difficult to parse using a one-pass approach: ü BEGIN/END blocks are not specified explicitly, but rather are inferred from nesting levels (requires look-ahead) ü The occurrence of an item with VM of 1 -n within a container requires “looping” for the entire container

Template-Traversing Algorithm u When INCLUDE found, current parsing status is pushed onto the LIFO

Template-Traversing Algorithm u When INCLUDE found, current parsing status is pushed onto the LIFO stack; when the end of that template is reached, the status is restored from the top of the stack and scanning continues. u For rows or CONTAINERs with a VM that is not 1 the corresponding rows of the Template must be traversed multiple times (in a loop): ü The same Stack is used, only this time, at the end of a pass, it's value is not popped off the stack. ü Instead, its value is peeked at to find the row that represents the top of the loop. Scanning continues at that row. ü This continues until eventually, the data is exhausted. When this happens (sensed at the bottom of the loop), it is time to pop the values off the top of stack (discarding them) and move on.

XML from ECG <Item> <Relationship. Type>HAS ACQ CONTEXT</Relationship. Type> <Value. Type>DATETIME</Value. Type> <Concept. Name.

XML from ECG <Item> <Relationship. Type>HAS ACQ CONTEXT</Relationship. Type> <Value. Type>DATETIME</Value. Type> <Concept. Name. Code. Seq> <Item> <Code. Value>TI-0166</Code. Value> <Coding. Scheme. Designator. ACC 2001</Coding. Scheme. Designator> <Code. Meaning>Acquisition Date. Time</Code. Meaning> </Item> </Concept. Name. Code. Seq> <Date. Time>200010151120</Date. Time> </Item>

XSL Stylesheet for ECG <!-- Acquisition Date. Time --> <xsl: for-each select="key('content-item', 'TI-0166')"> <b><xsl:

XSL Stylesheet for ECG <!-- Acquisition Date. Time --> <xsl: for-each select="key('content-item', 'TI-0166')"> <b><xsl: value-of select="Concept. Name. Code. Seq/Item/Code. Meaning"/>: </b> <xsl: value-of select="substring(Date. Time, 5, 2)"/>/<xsl: value-of select="substring(Date. Time, 7, 2)"/>/<xsl: value-of select="substring(Date. Time, 1, 4)"/>, <xsl: value-of select="substring(Date. Time, 9, 2)"/>: <xsl: value-of select="substring(Date. Time, 11, 2)"/><br/> </xsl: for-each><br/> A “pull” approach was used for the XSL, creating a report that was “fill-in-the-blank”. Not every XML item was used (only those called for in by the report). This is like a word processor “mail-merge”

HTML for ECG <p><center><h 1>Resting 12 -Lead ECG Report: Robert Johnson</h 1></center></p> <b>Clinical Context:

HTML for ECG <p><center><h 1>Resting 12 -Lead ECG Report: Robert Johnson</h 1></center></p> <b>Clinical Context: </b>Routine <b>Acquisition Date. Time: </b>10/15/2000, 11: 20

Integrating Information History Hemo. ECG Waveforms Consults Physical dynamics & Reports and Notes Findings

Integrating Information History Hemo. ECG Waveforms Consults Physical dynamics & Reports and Notes Findings Echo Images & Measurements Online Review Cath Lab Images Digital Integrated Cardiovascular Record!

What’s Next? 1. Additional templates will be developed for Cardiology, the SR 2001 templates

What’s Next? 1. Additional templates will be developed for Cardiology, the SR 2001 templates will be refined. 2. These templates will be reviewed first by the interested professional organizations. 3. The templates will then be presented for public comment and review, and revised as needed. 4. The templates and Cardiology terms will be finalized and formally incorporated into the DICOM standard as “Information Object Definitions” (IOD’s)

Lessons Learned u Template-driven PULL processing is more complex than datadriven PUSH models (but

Lessons Learned u Template-driven PULL processing is more complex than datadriven PUSH models (but PULL approach is probably needed for template-based SR) u Vocabulary maintenance is a very big task! u XSL for display can be more automated u Extremely helpful to have the printed documentation of the template produced directly from the database (and this tool was handy formatting the documentation versions) u Central library for templates should be considered with webbased (Java? ) editing (password protected) u WG 1 has also been using diagrams to show the templates; these are hard to keep in synch with the template when changes are made; an automated approach to produce the diagrams from the templates should be considered