This is the continuous build for version 1.0.0. This version is based on the current content of https://github.com/WorldHealthOrganization/ddcc and changes regularly.
Draft as of 2024-04-24 |
@prefix fhir: <http://hl7.org/fhir/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
# - resource -------------------------------------------------------------------
a fhir:StructureMap ;
fhir:nodeRole fhir:treeRoot ;
fhir:id [ fhir:v "SHCToCoreDataSetTR"] ; #
fhir:meta [
fhir:versionId [ fhir:v "9" ] ;
fhir:lastUpdated [ fhir:v "2023-02-15T19:50:41.165+00:00"^^xsd:dateTime ]
] ; #
fhir:text [
fhir:status [ fhir:v "generated" ] ;
fhir:div "<div xmlns=\"http://www.w3.org/1999/xhtml\"><pre>map "http://smart.who.int/ddcc/StructureMap/SHCToCoreDataSetTR" = "SHCToCoreDataSetTR"\r\n\r\n\r\nuses "http://hl7.org/fhir/uv/shc-vaccination/StructureDefinition/shc-infectious-disease-laboratory-bundle-dm" alias SHCLabBundleDM as source\r\nuses "http://hl7.org/fhir/uv/shc-vaccination/StructureDefinition/shc-patient-general-dm" alias SHCPatientDM as source\r\nuses "http://hl7.org/fhir/uv/shc-vaccination/StructureDefinition/shc-infectious-disease-laboratory-result-observation-dm" alias SHCLabDM as source\r\nuses "http://hl7.org/fhir/StructureDefinition/Bundle" alias DDCCBundle as target\r\nuses "http://smart.who.int/ddcc/StructureDefinition/DDCCCoreDataSet.TR" alias DDCCTR as produced\r\n\r\ngroup SHCToTR(source shc : SHCLabBundleDM, target ddccBundle : DDCCBundle) {\r\n shc.entry as patientEntrySHC then {\r\n patientEntrySHC.resource : Patient first as patient then {\r\n shc.entry as entry then {\r\n // entry.resource : Immunization as immunization where vaccineCode.memberOf('http://smart.who.int/ddcc/ValueSet/who-ddcc-allowed-vaccines-covid-19') -> ddccBundle.entry as outentry, create('http://smart.who.int/ddcc/StructureDefinition/DDCCCoreDataSet.VS') as ddcc then {\r\n entry.resource : Observation as lab -> ddccBundle.entry as outentry, create('http://smart.who.int/ddcc/StructureDefinition/DDCCCoreDataSet.TR') as ddcc then {\r\n lab then PatientToDDCCTR(patient, ddcc) "set patient";\r\n lab -> ddcc.test as test then LabToDDCC(lab, test) "set test";\r\n lab -> outentry.resource = ddcc "set outentry";\r\n } "labs";\r\n } "entries";\r\n } "get patient";\r\n } "find patient";\r\n}\r\n\r\ngroup PatientToDDCCTR(source patient : SHCPatientDM, target tgt : DDCCTR) {\r\n patient.name as name then NameToText(name, tgt) "set name";\r\n patient.birthDate as birthDate -> tgt.birthDate = birthDate "set birthDate";\r\n patient.identifier first as identifier -> tgt.identifier = identifier "set identifier";\r\n}\r\n\r\ngroup NameToText(source name : HumanName, target ddcc) {\r\n // append doesn't work until ddcc.name is set\r\n name.given first as given -> ddcc.name = (given.replaceMatches('$', ' ')) "set first name";\r\n // name.given not_first as other -> ddcc.name as tName, ddcc.name = append( tName, other ) "set other names";\r\n name.given not_first as other -> ddcc.name as tName, (other.replaceMatches('$', ' ')) as spaced, ddcc.name = append(tName, spaced) "set other names";\r\n name.family as family -> ddcc.name as tName, ddcc.name = append(tName, family) "add family name";\r\n name.text as text -> ddcc.name = text "set full name";\r\n}\r\n\r\ngroup LabToDDCC(source lab : SHCLabDM, target test) {\r\n lab.code as code then {\r\n code.coding first as labType then {\r\n labType -> test.type = labType "set default type";\r\n labType where labType.memberOf('http://smart.who.int/ddcc/ValueSet/lab-test-type-covid19-loinc') -> test.type = translate(labType, 'http://smart.who.int/ddcc/ConceptMap/lab-test-type-covid19-loinc-to-icd11', 'Coding') "translate loinc type";\r\n labType where labType.memberOf('http://smart.who.int/ddcc/ValueSet/lab-test-type-covid19-loinc') -> test.pathogen = c('http://id.who.int/icd11/mms', 'XN109') "set pathogen to COVID";\r\n };\r\n };\r\n lab.effectiveDateTime as date -> test.date = date "set date";\r\n lab.valueCodeableConcept as value then {\r\n value.coding first as result then {\r\n result -> test.result = result "set default result";\r\n result where result.memberOf('http://smart.who.int/ddcc/ValueSet/lab-test-qual-result-snomed') -> test.result = translate(result, 'http://smart.who.int/ddcc/ConceptMap/lab-test-qual-result-snomed-to-icd11') "translate snomed result";\r\n };\r\n };\r\n}\r\n\r\n</pre></div>"
] ; #
fhir:url [ fhir:v "http://smart.who.int/ddcc/StructureMap/SHCToCoreDataSetTR"^^xsd:anyURI] ; #
fhir:version [ fhir:v "1.0.0"] ; #
fhir:name [ fhir:v "SHCToCoreDataSetTR"] ; #
fhir:status [ fhir:v "draft"] ; #
fhir:date [ fhir:v "2024-04-24T00:11:34+00:00"^^xsd:dateTime] ; #
fhir:publisher [ fhir:v "WHO"] ; #
fhir:contact ( [
fhir:name [ fhir:v "WHO" ] ;
( fhir:telecom [
fhir:system [ fhir:v "url" ] ;
fhir:value [ fhir:v "http://who.int" ] ] )
] ) ; #
fhir:jurisdiction ( [
( fhir:coding [
fhir:system [ fhir:v "http://unstats.un.org/unsd/methods/m49/m49.htm"^^xsd:anyURI ] ;
fhir:code [ fhir:v "001" ] ] )
] ) ; #
fhir:structure ( [
fhir:url [
fhir:v "http://hl7.org/fhir/uv/shc-vaccination/StructureDefinition/shc-infectious-disease-laboratory-bundle-dm"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/uv/shc-vaccination/StructureDefinition/shc-infectious-disease-laboratory-bundle-dm> ] ;
fhir:mode [ fhir:v "source" ] ;
fhir:alias [ fhir:v "SHCLabBundleDM" ]
] [
fhir:url [
fhir:v "http://hl7.org/fhir/uv/shc-vaccination/StructureDefinition/shc-patient-general-dm"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/uv/shc-vaccination/StructureDefinition/shc-patient-general-dm> ] ;
fhir:mode [ fhir:v "source" ] ;
fhir:alias [ fhir:v "SHCPatientDM" ]
] [
fhir:url [
fhir:v "http://hl7.org/fhir/uv/shc-vaccination/StructureDefinition/shc-infectious-disease-laboratory-result-observation-dm"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/uv/shc-vaccination/StructureDefinition/shc-infectious-disease-laboratory-result-observation-dm> ] ;
fhir:mode [ fhir:v "source" ] ;
fhir:alias [ fhir:v "SHCLabDM" ]
] [
fhir:url [
fhir:v "http://hl7.org/fhir/StructureDefinition/Bundle"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/StructureDefinition/Bundle> ] ;
fhir:mode [ fhir:v "target" ] ;
fhir:alias [ fhir:v "DDCCBundle" ]
] [
fhir:url [
fhir:v "http://smart.who.int/ddcc/StructureDefinition/DDCCCoreDataSet.TR"^^xsd:anyURI ;
fhir:link <http://smart.who.int/ddcc/StructureDefinition/DDCCCoreDataSet.TR> ] ;
fhir:mode [ fhir:v "produced" ] ;
fhir:alias [ fhir:v "DDCCTR" ]
] ) ; #
fhir:group ( [
fhir:name [ fhir:v "SHCToTR" ] ;
fhir:typeMode [ fhir:v "none" ] ;
( fhir:input [
fhir:name [ fhir:v "shc" ] ;
fhir:type [ fhir:v "SHCLabBundleDM" ] ;
fhir:mode [ fhir:v "source" ] ] [
fhir:name [ fhir:v "ddccBundle" ] ;
fhir:type [ fhir:v "DDCCBundle" ] ;
fhir:mode [ fhir:v "target" ] ] ) ;
( fhir:rule [
fhir:name [ fhir:v "find patient" ] ;
( fhir:source [
fhir:context [ fhir:v "shc" ] ;
fhir:element [ fhir:v "entry" ] ;
fhir:variable [ fhir:v "patientEntrySHC" ] ] ) ;
( fhir:rule [
fhir:name [ fhir:v "get patient" ] ;
( fhir:source [
fhir:context [ fhir:v "patientEntrySHC" ] ;
fhir:type [ fhir:v "Patient" ] ;
fhir:element [ fhir:v "resource" ] ;
fhir:listMode [ fhir:v "first" ] ;
fhir:variable [ fhir:v "patient" ] ] ) ;
( fhir:rule [
fhir:name [ fhir:v "entries" ] ;
( fhir:source [
fhir:context [ fhir:v "shc" ] ;
fhir:element [ fhir:v "entry" ] ;
fhir:variable [ fhir:v "entry" ] ] ) ;
( fhir:rule [
fhir:name [ fhir:v "labs" ] ;
( fhir:source [
fhir:context [ fhir:v "entry" ] ;
fhir:type [ fhir:v "Observation" ] ;
fhir:element [ fhir:v "resource" ] ;
fhir:variable [ fhir:v "lab" ] ] ) ;
( fhir:target [
fhir:context [ fhir:v "ddccBundle" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "entry" ] ;
fhir:variable [ fhir:v "outentry" ] ] [
fhir:contextType [ fhir:v "variable" ] ;
fhir:variable [ fhir:v "ddcc" ] ;
fhir:transform [ fhir:v "create" ] ;
( fhir:parameter [
fhir:value [ fhir:v "http://smart.who.int/ddcc/StructureDefinition/DDCCCoreDataSet.TR" ] ] ) ] ) ;
( fhir:rule [
fhir:name [ fhir:v "set patient" ] ;
( fhir:source [
fhir:context [ fhir:v "lab" ] ] ) ;
( fhir:dependent [
fhir:name [ fhir:v "PatientToDDCCTR" ] ;
( fhir:variable [ fhir:v "patient" ] [ fhir:v "ddcc" ] ) ] ) ] [
fhir:name [ fhir:v "set test" ] ;
( fhir:source [
fhir:context [ fhir:v "lab" ] ] ) ;
( fhir:target [
fhir:context [ fhir:v "ddcc" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "test" ] ;
fhir:variable [ fhir:v "test" ] ] ) ;
( fhir:dependent [
fhir:name [ fhir:v "LabToDDCC" ] ;
( fhir:variable [ fhir:v "lab" ] [ fhir:v "test" ] ) ] ) ] [
fhir:name [ fhir:v "set outentry" ] ;
( fhir:source [
fhir:context [ fhir:v "lab" ] ] ) ;
( fhir:target [
fhir:context [ fhir:v "outentry" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "resource" ] ;
fhir:transform [ fhir:v "copy" ] ;
( fhir:parameter [
fhir:value [ fhir:v "ddcc" ] ] ) ] ) ] ) ;
fhir:documentation [ fhir:v "entry.resource : Immunization as immunization where vaccineCode.memberOf('http://smart.who.int/ddcc/ValueSet/who-ddcc-allowed-vaccines-covid-19') -> ddccBundle.entry as outentry, create('http://smart.who.int/ddcc/StructureDefinition/DDCCCoreDataSet.VS') as ddcc then {" ] ] ) ] ) ] ) ] )
] [
fhir:name [ fhir:v "PatientToDDCCTR" ] ;
fhir:typeMode [ fhir:v "none" ] ;
( fhir:input [
fhir:name [ fhir:v "patient" ] ;
fhir:type [ fhir:v "SHCPatientDM" ] ;
fhir:mode [ fhir:v "source" ] ] [
fhir:name [ fhir:v "tgt" ] ;
fhir:type [ fhir:v "DDCCTR" ] ;
fhir:mode [ fhir:v "target" ] ] ) ;
( fhir:rule [
fhir:name [ fhir:v "set name" ] ;
( fhir:source [
fhir:context [ fhir:v "patient" ] ;
fhir:element [ fhir:v "name" ] ;
fhir:variable [ fhir:v "name" ] ] ) ;
( fhir:dependent [
fhir:name [ fhir:v "NameToText" ] ;
( fhir:variable [ fhir:v "name" ] [ fhir:v "tgt" ] ) ] ) ] [
fhir:name [ fhir:v "set birthDate" ] ;
( fhir:source [
fhir:context [ fhir:v "patient" ] ;
fhir:element [ fhir:v "birthDate" ] ;
fhir:variable [ fhir:v "birthDate" ] ] ) ;
( fhir:target [
fhir:context [ fhir:v "tgt" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "birthDate" ] ;
fhir:transform [ fhir:v "copy" ] ;
( fhir:parameter [
fhir:value [ fhir:v "birthDate" ] ] ) ] ) ] [
fhir:name [ fhir:v "set identifier" ] ;
( fhir:source [
fhir:context [ fhir:v "patient" ] ;
fhir:element [ fhir:v "identifier" ] ;
fhir:listMode [ fhir:v "first" ] ;
fhir:variable [ fhir:v "identifier" ] ] ) ;
( fhir:target [
fhir:context [ fhir:v "tgt" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "identifier" ] ;
fhir:transform [ fhir:v "copy" ] ;
( fhir:parameter [
fhir:value [ fhir:v "identifier" ] ] ) ] ) ] )
] [
fhir:name [ fhir:v "NameToText" ] ;
fhir:typeMode [ fhir:v "none" ] ;
( fhir:input [
fhir:name [ fhir:v "name" ] ;
fhir:type [ fhir:v "HumanName" ] ;
fhir:mode [ fhir:v "source" ] ] [
fhir:name [ fhir:v "ddcc" ] ;
fhir:mode [ fhir:v "target" ] ] ) ;
( fhir:rule [
fhir:name [ fhir:v "set first name" ] ;
( fhir:source [
fhir:context [ fhir:v "name" ] ;
fhir:element [ fhir:v "given" ] ;
fhir:listMode [ fhir:v "first" ] ;
fhir:variable [ fhir:v "given" ] ] ) ;
( fhir:target [
fhir:context [ fhir:v "ddcc" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "name" ] ;
fhir:transform [ fhir:v "evaluate" ] ;
( fhir:parameter [
fhir:value [ fhir:v "given.replaceMatches('$', ' ')" ] ] ) ] ) ;
fhir:documentation [ fhir:v "append doesn't work until ddcc.name is set" ] ] [
fhir:name [ fhir:v "set other names" ] ;
( fhir:source [
fhir:context [ fhir:v "name" ] ;
fhir:element [ fhir:v "given" ] ;
fhir:listMode [ fhir:v "not_first" ] ;
fhir:variable [ fhir:v "other" ] ] ) ;
( fhir:target [
fhir:context [ fhir:v "ddcc" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "name" ] ;
fhir:variable [ fhir:v "tName" ] ] [
fhir:contextType [ fhir:v "variable" ] ;
fhir:variable [ fhir:v "spaced" ] ;
fhir:transform [ fhir:v "evaluate" ] ;
( fhir:parameter [
fhir:value [ fhir:v "other.replaceMatches('$', ' ')" ] ] ) ] [
fhir:context [ fhir:v "ddcc" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "name" ] ;
fhir:transform [ fhir:v "append" ] ;
( fhir:parameter [
fhir:value [ fhir:v "tName" ] ] [
fhir:value [ fhir:v "spaced" ] ] ) ] ) ;
fhir:documentation [ fhir:v "name.given not_first as other -> ddcc.name as tName, ddcc.name = append( tName, other ) \"set other names\";" ] ] [
fhir:name [ fhir:v "add family name" ] ;
( fhir:source [
fhir:context [ fhir:v "name" ] ;
fhir:element [ fhir:v "family" ] ;
fhir:variable [ fhir:v "family" ] ] ) ;
( fhir:target [
fhir:context [ fhir:v "ddcc" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "name" ] ;
fhir:variable [ fhir:v "tName" ] ] [
fhir:context [ fhir:v "ddcc" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "name" ] ;
fhir:transform [ fhir:v "append" ] ;
( fhir:parameter [
fhir:value [ fhir:v "tName" ] ] [
fhir:value [ fhir:v "family" ] ] ) ] ) ] [
fhir:name [ fhir:v "set full name" ] ;
( fhir:source [
fhir:context [ fhir:v "name" ] ;
fhir:element [ fhir:v "text" ] ;
fhir:variable [ fhir:v "text" ] ] ) ;
( fhir:target [
fhir:context [ fhir:v "ddcc" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "name" ] ;
fhir:transform [ fhir:v "copy" ] ;
( fhir:parameter [
fhir:value [ fhir:v "text" ] ] ) ] ) ] )
] [
fhir:name [ fhir:v "LabToDDCC" ] ;
fhir:typeMode [ fhir:v "none" ] ;
( fhir:input [
fhir:name [ fhir:v "lab" ] ;
fhir:type [ fhir:v "SHCLabDM" ] ;
fhir:mode [ fhir:v "source" ] ] [
fhir:name [ fhir:v "test" ] ;
fhir:mode [ fhir:v "target" ] ] ) ;
( fhir:rule [
fhir:name [ fhir:v "code" ] ;
( fhir:source [
fhir:context [ fhir:v "lab" ] ;
fhir:element [ fhir:v "code" ] ;
fhir:variable [ fhir:v "code" ] ] ) ;
( fhir:rule [
fhir:name [ fhir:v "coding" ] ;
( fhir:source [
fhir:context [ fhir:v "code" ] ;
fhir:element [ fhir:v "coding" ] ;
fhir:listMode [ fhir:v "first" ] ;
fhir:variable [ fhir:v "labType" ] ] ) ;
( fhir:rule [
fhir:name [ fhir:v "set default type" ] ;
( fhir:source [
fhir:context [ fhir:v "labType" ] ] ) ;
( fhir:target [
fhir:context [ fhir:v "test" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "type" ] ;
fhir:transform [ fhir:v "copy" ] ;
( fhir:parameter [
fhir:value [ fhir:v "labType" ] ] ) ] ) ] [
fhir:name [ fhir:v "translate loinc type" ] ;
( fhir:source [
fhir:context [ fhir:v "labType" ] ;
fhir:condition [ fhir:v "labType.memberOf('http://smart.who.int/ddcc/ValueSet/lab-test-type-covid19-loinc')" ] ] ) ;
( fhir:target [
fhir:context [ fhir:v "test" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "type" ] ;
fhir:transform [ fhir:v "translate" ] ;
( fhir:parameter [
fhir:value [ fhir:v "labType" ] ] [
fhir:value [ fhir:v "http://smart.who.int/ddcc/ConceptMap/lab-test-type-covid19-loinc-to-icd11" ] ] [
fhir:value [ fhir:v "Coding" ] ] ) ] ) ] [
fhir:name [ fhir:v "set pathogen to COVID" ] ;
( fhir:source [
fhir:context [ fhir:v "labType" ] ;
fhir:condition [ fhir:v "labType.memberOf('http://smart.who.int/ddcc/ValueSet/lab-test-type-covid19-loinc')" ] ] ) ;
( fhir:target [
fhir:context [ fhir:v "test" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "pathogen" ] ;
fhir:transform [ fhir:v "c" ] ;
( fhir:parameter [
fhir:value [ fhir:v "http://id.who.int/icd11/mms" ] ] [
fhir:value [ fhir:v "XN109" ] ] ) ] ) ] ) ] ) ] [
fhir:name [ fhir:v "set date" ] ;
( fhir:source [
fhir:context [ fhir:v "lab" ] ;
fhir:element [ fhir:v "effectiveDateTime" ] ;
fhir:variable [ fhir:v "date" ] ] ) ;
( fhir:target [
fhir:context [ fhir:v "test" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "date" ] ;
fhir:transform [ fhir:v "copy" ] ;
( fhir:parameter [
fhir:value [ fhir:v "date" ] ] ) ] ) ] [
fhir:name [ fhir:v "valueCodeableConcept" ] ;
( fhir:source [
fhir:context [ fhir:v "lab" ] ;
fhir:element [ fhir:v "valueCodeableConcept" ] ;
fhir:variable [ fhir:v "value" ] ] ) ;
( fhir:rule [
fhir:name [ fhir:v "coding" ] ;
( fhir:source [
fhir:context [ fhir:v "value" ] ;
fhir:element [ fhir:v "coding" ] ;
fhir:listMode [ fhir:v "first" ] ;
fhir:variable [ fhir:v "result" ] ] ) ;
( fhir:rule [
fhir:name [ fhir:v "set default result" ] ;
( fhir:source [
fhir:context [ fhir:v "result" ] ] ) ;
( fhir:target [
fhir:context [ fhir:v "test" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "result" ] ;
fhir:transform [ fhir:v "copy" ] ;
( fhir:parameter [
fhir:value [ fhir:v "result" ] ] ) ] ) ] [
fhir:name [ fhir:v "translate snomed result" ] ;
( fhir:source [
fhir:context [ fhir:v "result" ] ;
fhir:condition [ fhir:v "result.memberOf('http://smart.who.int/ddcc/ValueSet/lab-test-qual-result-snomed')" ] ] ) ;
( fhir:target [
fhir:context [ fhir:v "test" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "result" ] ;
fhir:transform [ fhir:v "translate" ] ;
( fhir:parameter [
fhir:value [ fhir:v "result" ] ] [
fhir:value [ fhir:v "http://smart.who.int/ddcc/ConceptMap/lab-test-qual-result-snomed-to-icd11" ] ] ) ] ) ] ) ] ) ] )
] ) . #
IG © 2021+ WHO. Package who.ddcc#1.0.0 based on FHIR 4.0.1. Generated 2024-04-24
Links: Table of Contents |
QA Report
| Issues
| Version History | License