HCLS/ClinicalObservationsInteroperability/C-CDA

From W3C Wiki

Goals

  • express C-CDA in RDF
  • map to other formats like FHIR-RDF (using e.g. ShEx's GenR)

Representations

  • XSLT to O-RIM translates C-CDA instance data to O-RIM
  • There are many other RDF representations of C-CDA. We need to pester:
    1. Holger Stenzhorn
    2. Sajjad Hussain <sajjad.hussain@crc.jussieu.fr>

Mapping to FHIR

This ShEx transformation demo maps part of an example C-CDA O-RIM document to FHIR-RDF. If you view the GenR output (look for "View GenR output"), you'll see something like

 _:ClinicalDoc_recordTarget0_player <a> <http://hl7/org/fhir/Patient>.
 _:ClinicalDoc_recordTarget0_player <http://hl7/org/fhir/name> _:"name".
 _:"name" <http://hl7/org/fhir/family> "Jones".
 _:"name" <http://hl7/org/fhir/given> "Isabella".
 _:ClinicalDoc_recordTarget0_player <http://hl7/org/fhir/gender> _:"gender".
 _:"gender" <http://hl7/org/fhir/coding> _:"genderCoding".
 _:"genderCoding" <http://hl7/org/fhir/system> "2.16.840.1.113883.5.1".
 _:"genderCoding" <http://hl7/org/fhir/code> "F".

This comes from O-RIM instance data like:

 _:ClinicalDoc_recordTarget0_player a rim:Person ;
     rim:Entity.classCode [ hl7:coding [ dt:CDCoding.code "PSN" ; dt:CDCoding.codeSystem "???" ] ] ;
     rim:Entity.name [ a dt:COLL_EN ;
         dt:COLL.item [ err:person-name-family "Jones" ;
                        err:person-name-given "Isabella" ] ;
     ];
     rim:LivingSubject.administrativeGenderCode [
         hl7:coding [ dt:CDCoding.code "F" ; dt:CDCoding.codeSystem "2.16.840.1.113883.5.1" ;
                      dt:CDCoding.displayName "Female" ; dt:CDCoding.codeSystemName "HL7 AdministrativeGender" ]
     ] .

in combination with GenR rules embedded in the schema:

   <Player-target> {
     a (rim:Person) 
             %GenR{ Patient = s . Patient <a> fhir:Patient %},
     rim:Entity.name {
       a (dt:COLL_EN)
             %GenR{ Name = bnode("name") . Patient fhir:name Name %},
       dt:COLL.item {
         err:person-name-family LITERAL
             %GenR{ Name fhir:family o %},
         err:person-name-given LITERAL
             %GenR{ Name fhir:given o %}
       }
     },
     rim:LivingSubject.administrativeGenderCode {
       hl7:coding {
         dt:CDCoding.codeSystem ("2.16.840.1.113883.5.1")
             %GenR{ GenderCoding fhir:system o %},
         dt:CDCoding.code ("M" "F")
             %GenR{ GenderCoding fhir:code o %}
       }     %GenR{ GenderCoding = bnode("genderCoding") .
                    Gender fhir:coding GenderCoding %}
     }       %GenR{ Gender = bnode("gender") .
                    Patient fhir:gender Gender %}
   }