This wiki has undergone a migration to Confluence found Here
<meta name="googlebot" content="noindex">

CDA R2 mapping to CDA R3

From HL7Wiki
Revision as of 16:48, 21 January 2013 by Alexander.henket@enovation.nl (talk | contribs) (Created page with "Back to [CDA_R3_Project] <p style="font-weight: bold;color: red;">This page is work in progress and is not yet suitable for general consumption. Intended to be finished by Frida...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Back to [CDA_R3_Project]

This page is work in progress and is not yet suitable for general consumption. Intended to be finished by Friday Jan 25, 2013

Introduction

This page contains information on how CDA R2 maps to CDA R3. The mapping is supported by an XSLT 2.0 transformation. Initial formal presentation of this mapping has been on Friday Q1 during the HL7 WGM 2013 in Phoenix.

Purpose

At first glance CDA R3 could look overwhelming because of the introduction of building blocks (CMETs) that expose the full RIM for participants and the level 3 entries. While it is true that CDA R3 allows for a lot of functionality out of the box, it should be relatively easy to reuse any CDA R2 implementation. It might be expected that by the time CDA R3 hits the market, a lot of vendors have investments in CDA R2. A mapping that leverages this investment should be helpful in making the transition.

Mapping

The column Validation is a true/false indicator of whether or nor the StrucDoc WG has validated this mapping.

CDA R2 CDA R3 Comment Validated
ClinicalDocument
  • @classCode
  • @moodCode
  • id II 1..1
  • code CE 1..1
  • title ST 0..1
  • effectiveTime TS 1..1
  • confidentialityCode CE 1..1
  • languageCode CS 0..1
  • setId II 0..1
  • versionNumber INT 0..1
  • copyTime TS 0..1
  • recordTarget
  • author
  • dataEnterer
  • informant
  • custodian
  • informationRecipient
  • legalAuthenticator
  • authenticator
  • participant
  • inFulfillmentOf
  • documentationOf
  • relatedDocument
  • authorization
  • component
  • componentOf
ClinicalDocument
  • @classCode
  • @moodCode
  • id II 1..1
  • code CD 1..1
  • title ST 0..1
  • effectiveTime TS 1..1
  • confidentialityCode CD 1..1
  • languageCode CD 0..1
  • setId II 0..1
  • versionNumber ST 0..1
  • -n.a.-
  • recordTarget
  • author
  • dataEnterer
  • informant
  • custodian
  • informationRecipient
  • legalAuthenticator
  • authenticator
  • participation1
  • inFulfillmentOf
  • documentationOf
  • relatedDocument
  • authorization
  • component
  • componentOf
ClinicalDocument.authenticator
  • @typeCode
  • time TS 0..1
  • signatureCode CS 1..1
  • assignedEntity
ClinicalDocument.authenticator
  • @typeCode
  • time TS 0..1
  • signatureCode CD 1..1
  • assignedEntity
See AssignedEntity for mapping of assignedEntity
AssignedEntity
  • @classCode
  • id SET<II> 1..*
  • code CE 0..1
  • addr SET<AD> 0..*
  • telecom SET<TEL> 0..*
  • assignedPerson
  • representedOrganization
AssignedEntity
  • @classCode
  • id SET<II> 1..*
  • code CD 0..1
  • addr DSET<AD> 0..*
  • telecom DSET<TEL> 0..*
  • assignedPerson
  • representedOrganization
See Person for mapping of assignedPerson, see Organization for mapping of representedOrganization
Organization
  • @classCode
  • @determinerCode
  • id SET<II> 0..*
  • name SET<ON> 0..*
  • telecom SET<TEL> 0..*
  • addr SET<AD> 0..*
  • standardIndustryClassCode CE 0..1
  • asOrganizationPartOf 0..1
Organization
  • @classCode
  • @determinerCode
  • id DSET<II> 0..*
  • name DSET<EN> 0..*
  • telecom DSET<TEL> 0..*
  • addr DSET<AD> 0..*
  • standardIndustryClassCode CD 0..1
  • asOrganizationPartOf 0..1
See OrganizationPartOf for mapping of asOrganizationPartOf
OrganizationPartOf
  • @classCode
  • id SET<II> 0..*
  • code CE 0..1
  • statusCode CS 0..1
  • effectiveTime IVL<TS> 0..1
  • wholeOrganization 0..1
OrganizationPartOf
  • @classCode
  • id DSET<II> 0..*
  • code CD 0..1
  • statusCode CS 0..1
  • effectiveTime IVL<TS> 0..1
  • wholeOrganization 0..1
See Organization for mapping of wholeOrganization
Person
  • @classCode
  • @determinerCode
  • name SET<PN> 0..*
Person
  • @classCode
  • @determinerCode
  • name DSET<EN> 0..*
ClinicalDocument.legalAuthenticator ClinicalDocument.legalAuthenticator
ClinicalDocument.informationRecipient ClinicalDocument.informationRecipient
ClinicalDocument.author ClinicalDocument.author
ClinicalDocument.custodian ClinicalDocument.custodian
ClinicalDocument.dataEnterer ClinicalDocument.dataEnterer
ClinicalDocument.recordTarget ClinicalDocument.recordTarget
ClinicalDocument.informant ClinicalDocument.informant
ClinicalDocument.participant ClinicalDocument.participant1
ClinicalDocument.relatedDocument ClinicalDocument.relatedDocument
ClinicalDocument.documentationOf ClinicalDocument.documentationOf
ClinicalDocument.inFulfillmentOf ClinicalDocument.inFulfillmentOf
ClinicalDocument.authorization ClinicalDocument.authorization
ClinicalDocument.componentOf ClinicalDocument.componentOf Note: in Ballot Sep 2013 order reversed with ClinicalDocument.component
ClinicalDocument.component ClinicalDocument.component Note: in Ballot Sep 2013 order reversed with ClinicalDocument.componentOf
component.nonXmlbody component.nonStructuredBody
component.structuredBody component.structuredBody
structuredBody.component structuredBody.component
component.section component.section
section.component... section.component...
section.author section.author
section.informant section.informant
section.subject section.subject
section.entry section.entry
entry.observation entry.observation
entry.observation.referenceRange entry.observation.referenceRange
entry.regionOfInterest entry.regionOfInterest
entry.observationMedia entry.observationMedia
entry.substanceAdministration entry.substanceAdministration
entry.supply entry.supply
entry.procedure entry.procedure
entry.encounter entry.encounter
entry.organizer entry.organizer
entry.organizer.component entry.organizer.component
entry.act entry.act
entry.*.precondition entry.*.outboundRelationship
entry.*.reference entry.*.outboundRelationship
entry.*.entryRelationship entry.*.outboundRelationship
entry.*.author entry.*.participation
entry.*.informant entry.*.participation
entry.*.subject entry.*.participation
entry.*.performer entry.*.participation
entry.*.consumable entry.*.participation
entry.*.product entry.*.participation
entry.*.specimen entry.*.participation
entry.*.participant entry.*.participation

Known issues

  • CDA R2 allows for extensions. It is not possible for a generic mapping to do the necessary datatype conversion as it doesn't know what input datatype is used and if the extension is still applicable in CDA R3. The mapping should be extended to include mapping of these extensions.
  • CDA R2 contains the abstract datatype ANY in a number of places, most notably in level 3 Observation and ObservationRange. If a document is instantiated then the mapping reads @xsi:type to determine the actual datatype. This mapping will fail and terminate if the actual datatype is not in use somewhere else in CDA already, e.g. SXCM_PQ.
  • CDA R2 contains datatype CS in a number of cases where CDA R3 has datatype CD, e.g. ClinicalDocument.languageCode. Mapping currently does not yet add the appropriate @codeSystem.

Download mapping