HCLS/ClinicalObservationsInteroperability/C-CDA
Goals
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:
- Holger Stenzhorn
- 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 %} }