250 likes | 369 Vues
This document discusses the feasibility of using Operational Data Model (ODM) and Clinical Document Architecture (CDA) standards for representing clinical forms in a consistent and interoperable format. It highlights the essential metadata, form structure, and the advantages and disadvantages of both CDA and ODM. The need for capturing form metadata—including question text, CDE IDs, header information, and more—is emphasized, as well as the challenges related to compliance and data validation. This work aims to enhance data interchanges in clinical trials and improve clinical data documentation.
E N D
caDSR Forms Interchange Feasibility of using ODM & CDA Nov 13, 2008 Ashwin Mathur (mathura2@mail.nih.gov)
The need • To be able to represent Forms templates in a consistent ‘standards’ based format for sharing with other systems
Requirements Information to be captured - • Form metadata • Questions • Question Text • CDE IDs • Header info • Long Name, Definition, Context, etc. • Form Structure • Modules • Name • Order • Form Behavior • Skip Patterns (if any)
Clinical Document Architecture (CDA) • HL7 standard for exchanging clinical documents • For transmission of actual clinical data • Uses HL7 v3.0 complex datatypes • Levels of compliance (Level 1, Level2, Level3) in increasing order of conformity
CDA Header Fixed Mood code of ‘EVN’ Most fields are for actual instance values for A particular document Mandatory Fields Problem: We don’t have this data!
CDA body mappings Human-readable value (answer) intended to be captured by CDA Problem: Again, we don’t have these instance values! Machine-readable value intended to be captured by CDA
CDA Example • Link
Requirements • Information to be captured – CDA approach • Forms meta-data • Questions • Question Text • CDE IDs • Header info • Long Name, Definition, Context, etc. • Forms structure • Modules • Name • Order • Forms Behavior • Skip Patterns (if any) • Additional CDA requirements • Header fields data (recordTarget, author, etc.) • Responses to each question • Code system mappings to each response X X X X X
CDA Summary Advantages Disadvantages (Forms Perspective) Needs actual data for compliance Header elements like recordTarget, author & custodian are mandatory Elements cannot be referenced - no re-use No support for data validation No explicit ordering of sections No support for skip-patterns • Strongly typed • Different levels of conformity • Human-readable & machine computable (for Level 3 conformant documents)
Operational Data Model (ODM) • CDISC Standard for ‘interchange and archive of clinical trials data’ • Includes clinical data along with its associated metadata, administrative data & reference data
ODM Mappings Meta-data Clear distinction between data & meta-data Data
ODM Meta-data Mappings Question Text CDE Reference Form Modules Data Validation Questions Ref to permissible values Permissible Values Skip Patterns Extensible
ODM Example Link
Requirements • Information to be captured – ODM approach • Forms meta-data • Questions • Question Text • CDE IDs • Header info • Long Name, Definition, Context, etc. • Forms structure • Modules • Name • Order • Forms Behavior • Skip Patterns (if any)
ODM Summary Advantages Disadvantages Not strongly typed Not easily human-readable • Elements loosely coupled – promotes re-use • Supports data validation • Supports skip-patterns • Supports module & question ordering • Supports data and metadata in one document
ODM for CDA C D A • Record Target details • Patient information • Patient Name ______ • Patient Address • Home Number ______ • City ______ • State ______ • Country ______ • Zip ______ • Author details • Author Name ______ • Author Address • Home Number ______ • City ______ • State ______ • Country ______ • Zip ______ • Custodian details • Custodian Name ______ • Custodian Address • Home Number ______ • City ______ • State ______ • Country ______ • Zip ______ • Patient Health Info • Clinical Global Improvement • 1 2 3 4 5 • Patient is suicide risk? • Yes No • Patient in remission • Yes No <ClinicalDocument> <recordTarget/> <author/> <custodian/> <component> <structuredBody> <section> <title>Clinical Global Improvement</title> <code code=“2004848v3.0” codeSystem=“caDSR”/> <text/> <entry/> </section> <section> <title>Patient is suicide risk?</title> <code code=“2004849v2.0” codeSystem=“caDSR”/> <text/> <entry/> </section> <section> <title>Patient in remission</title> <code code=“2004847v2.0” codeSystem=“caDSR”/> <text/> <entry/> </section> </structuredBody> </component> </ClinicalDocument> ODM ItemDefs (Questions) ODM <External Question> element ODM <ClinicalData> element ODM <CodeList> element
The proposed approach • Use ODM to capture • form meta-data • form data • CDA meta-data • CDA data • Produce CDA from captured data ODM Container CDA Form Metadata Form Data CDA Metadata CDA Data
Issues • Datatypes - CDA has complex HL7 datatypes while ODM has simple datatypes • Workaround: • The CDA complex datatypes can be broken down into multiple parts with simple datatypes in a ODM <ItemDef> element • Further restrictions on the data can be applied using the ‘RangeCheck’ element in ODM
Example C D A Form <ClinicalDocument> <recordTarget><patientRole><realmCode></realmCode> <patient> <name></name> <addr> <streetAddressLine></streetAddressLine> <city></city><state></state> <postalCode></postalCode><country></country> </addr> </recordTarget> <author><assignedAuthor> <code code=‘' codeSystem=‘' /> <addr> <streetAddressLine></streetAddressLine> <city></city><state></state> <postalCode></postalCode><country></country> </addr> <assignedPerson><name></name></assignedPerson> </assignedAuthor></author> <custodian> <assignedCustodian><representedCustodianOrganization> <name></name> <addr> <streetAddressLine></streetAddressLine> <city></city><state></state> <postalCode></postalCode><country></country> </addr> </representedCustodianOrganization></assignedCustodian> </custodian> <component> <structuredBody> <section> <title></title> <code code=“” codeSystem=“”/> <text></text> <entry/> </section> <section> <title></title> <code code=“” codeSystem=“”/> <text></text> <entry/> </section> <section> <title></title> <code code=“” codeSystem=“”/> <text></text> <entry/> </section> </structuredBody> </component> </ClinicalDocument> <ClinicalDocument> <recordTarget><patientRole><realmCode></realmCode> <patient> <name>John Doe</name> <addr> <streetAddressLine>21 North Ave</streetAddressLine> <city>Burlington</city><state>MA</state> <postalCode>01803</postalCode><country>USA</country> </addr> </recordTarget> <author><assignedAuthor> <code code='SELF' codeSystem='2.16.840.1.113883.5.111' /> <addr> <streetAddressLine>21 North Ave</streetAddressLine> <city>Burlington</city><state>MA</state> <postalCode>01803</postalCode><country>USA</country> </addr> <assignedPerson><name>SELF</name></assignedPerson> </assignedAuthor></author> <custodian> <assignedCustodian><representedCustodianOrganization> <name>Good Health Clinic</name> <addr> <streetAddressLine>21 North Ave</streetAddressLine> <city>Burlington</city><state>MA</state> <postalCode>01803</postalCode><country>USA</country> </addr> </representedCustodianOrganization></assignedCustodian> </custodian> <component> <structuredBody> <section> <title>Clinical Global Improvement</title> <code code=“2004848v3.0” codeSystem=“caDSR”/> <text>2</text> <entry><observation>><code code=“2004848v3.0”></observation></entry> </section> <section> <title>Patient is suicide risk?</title> <code code=“2004849v2.0” codeSystem=“caDSR”/> <text>Yes</text> <entry><observation><code code=“2004848v3.0”></observation></entry> </section> <section> <title>Patient in remission</title> <code code=“2004847v2.0” codeSystem=“caDSR”/> <text>Yes</text> <entry><observation><code code=“2004848v3.0”></observation></entry> </section> </structuredBody> </component> </ClinicalDocument> C D A O D M <ODM> <ItemGroupDef OID="CDA001" Name="recordTarget"> <ItemRef ItemOID="ID004" OrderNumber="1" Mandatory="Yes" /> <ItemRef ItemOID="ID001" OrderNumber="2" Mandatory="Yes" /> <ItemRef ItemOID="ID002" OrderNumber="3" Mandatory="Yes" /> <ItemRef ItemOID="ID003" OrderNumber="4" Mandatory="Yes" /> </ItemGroupDef> <ItemGroupDef OID="CDA002" Name="author"> <ItemRef ItemOID="ID005" OrderNumber="1" Mandatory="Yes" /> <ItemRef ItemOID="ID001" OrderNumber="2" Mandatory="Yes" /> <ItemRef ItemOID="ID002" OrderNumber="3" Mandatory="Yes" /> <ItemRef ItemOID="ID003" OrderNumber="4" Mandatory="Yes" /> </ItemGroupDef> <ItemGroupDef OID="MOD001" Name="Obs"> <ItemRef ItemOID="ID006" OrderNumber="1" Mandatory="Yes" /> <ItemRef ItemOID="ID007" OrderNumber="2" Mandatory="Yes" /> <ItemRef ItemOID="ID008" OrderNumber="3" Mandatory="Yes" /> </ItemGroupDef> <ItemDef OID="ID001" DataType=“int" Name="ID001"> <Question><TranslatedText>House Number</TranslatedText></Question> </ItemDef> <ItemDef OID="ID002" DataType="string" Name="ID002"> <Question><TranslatedText>City</TranslatedText></Question> </ItemDef> <ItemDef OID="ID003" DataType="string" Name="ID003"> <Question><TranslatedText>State</TranslatedText></Question> </ItemDef> <ItemDef OID="ID004" DataType="string" Name="ID004"> <Question><TranslatedText>PatientName</TranslatedText></Question> </ItemDef> <ItemDef OID="ID005" DataType="string" Name="ID005"> <Question><TranslatedText>Author Name</TranslatedText></Question> </ItemDef> <ItemDef OID="ID006" DataType="string" Name="ID006"> <Question><TranslatedText>What is the Clinical Global Improvement</TranslatedText></Question> <ExternalQuestion Dictionary="caDSR" Version="3.0" Code="2004848v3.0 "/> </ItemDef> <ItemDef OID="ID007" DataType="string" Name="ID007"> <Question><TranslatedText>Patient’s suicide risk</TranslatedText></Question> <ExternalQuestion Dictionary="caDSR" Version="3.0" Code="2004849v2.0 "/> </ItemDef> <ItemDef OID="ID008" DataType="string" Name="ID008"> <Question><TranslatedText>Patient in remission</TranslatedText></Question> <ExternalQuestion Dictionary="caDSR" Version="3.0" Code="2004847v2.0 "/> </ItemDef> </ODM> <<maps to>> <ClinicalDocument> <recordTarget/> <author/> <custodian/> <component> <structuredBody> <section> <title>Clinical Global Improvement</title> <code code=“2004848v3.0” codeSystem=“caDSR”/> <text/> <entry/> </section> <section> <title>Patient’s suicide risk</title> <code code=“2004849v2.0” codeSystem=“caDSR”/> <text/> <entry/> </section> <section> <title>Patient in remission</title> <code code=“2004847v2.0” codeSystem=“caDSR”/> <text/> <entry/> </section> </structuredBody> </component> </ClinicalDocument> CDA Info Modules <<maps to>> CDA Level3 Compliant Missing values Form Info Address fields <<maps to>> Questions
ODM-CDA Requirements • Forms requirements • Forms meta-data • Questions • Question Text • CDE IDs • Header info • Long Name, Definition, Context, etc. • Forms structure • Modules • Name • Order • Forms Behavior • Skip Patterns (if any) • Additional CDA requirements • Header fields data (recordTarget, author, etc.) • Answers to each question • Code system mappings to each answer (for enumerated value domains)
Summary X X X X X
Conclusion • CDA is instance-specific and needs actual data to be generated • ODM provides good support for capturing meta-data and data • Data needed to generate CDA can be captured in an ODM • ODM -> xslt -> CDA