WHO Clinical Care in Crisis Implementation Guide for Children
0.1.0 - ci-build
WHO Clinical Care in Crisis Implementation Guide for Children - Local Development build (v0.1.0). See the Directory of published versions
| Official URL: https://fhir.dk.swisstph-mis.ch/matchbox/fhir/StructureMap/che.ab.registration.p | Version: 0.1.0 | |||
| Active as of 2023-10-04 | Computable Name: che.ab.registration.p | |||
map "https://fhir.dk.swisstph-mis.ch/matchbox/fhir/StructureMap/che.ab.registration.p" = "che.ab.registration.p"
uses "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaireresponse" alias 'questionnaireResponse' as source
uses "http://hl7.org/fhir/StructureDefinition/Bundle" alias 'Bundle' as target
uses "https://fhir.dk.swisstph-mis.ch/matchbox/fhir/StructureDefinition/patient" alias 'Patient' as target
uses "https://fhir.dk.swisstph-mis.ch/matchbox/fhir/StructureDefinition/relatedperson" alias 'RelatedPerson' as target
uses "https://fhir.dk.swisstph-mis.ch/matchbox/fhir/StructureDefinition/chepatient" alias 'CHE Patient' as produced
uses "https://fhir.dk.swisstph-mis.ch/matchbox/fhir/StructureDefinition/relatedperson" alias 'RelatedPerson' as produced
group bundletrans(source src : questionnaireResponse, target bundle : Bundle) {
src -> bundle.id = uuid() "id";
src -> bundle.type = 'batch' "type";
src -> bundle.entry as entry then {
src.subject as subject then {
subject.id as idval -> entry.request as request, request.method = 'PUT', request.url = append('/Patient/', idval) "1153aa45";
} "cf5b2513";
src -> entry.resource = create('Patient') as tgt then {
src -> tgt then chepatient(src, tgt) "aeaea6b3";
} "650d46f5";
} "put-chepatient";
src.item first as itm1 where linkId = 'CHE.A.DE21.1' then {
itm1.item first as item where (linkId = 'relatedpersonid') and answer.exists() then {
src -> bundle.entry as entry, entry.request as request, request.method = 'POST', entry.resource = create('RelatedPerson') as tgt then {
src -> tgt then relatedperson(src, tgt) "8f0b9602";
item.answer first as a then {
a.value as val -> request.url = append('/RelatedPerson/', val) "78d8bc69";
} "eec70023";
} "00574b8e";
} "74cc3511";
} "8d1e77b2";
}
group SetOfficalGivenNamechepatient(source src, target tgt) {
src -> tgt.use = 'official' then {
src.item first as item where (linkId = 'CHE.A.DE06') and answer.exists() then {
item.answer first as a then {
a.value as val -> tgt.family = val "77d1bd4f";
} "e0827d5d";
} "05f39f04";
src.item first as item where (linkId = 'CHE.A.DE04') and answer.exists() then {
item.answer first as a then {
a.value as val -> tgt.given = val "5d3d44f6";
} "18edd234";
} "56b027a8";
src.item first as item where (linkId = 'CHE.A.DE05') and answer.exists() then {
item.answer first as a then {
a.value as val -> tgt.given = val "5d3d44f6";
} "18edd234";
} "c5614af6";
} "58cbfc0e";
}
group chepatient(source src : questionnaireResponse, target tgt : Patient) {
src.item first as item where (linkId = 'CHE.A.DE01') and answer.exists() then {
item.answer first as a then {
a.value as val -> tgt.identifier = create('Identifier') as identifier then {
val -> identifier.value = val, identifier.use = 'official' "id";
} "acheade01";
} "acheade01";
} "902cc63a";
src.item first as item where (linkId = 'CHE.A.DE03') and answer.exists() then {
item.answer first as a -> tgt.extension = create('Extension') as ext, ext.url = 'https://fhir.dk.swisstph-mis.ch/matchbox/fhir/StructureDefinition/anonymous', ext.value = true "acheade03";
} "b340c8a7";
src.item first as item where (linkId = 'CHE.A.DE06') or (linkId = 'CHE.A.DE04') or ((linkId = 'CHE.A.DE05') and answer.exists()) then {
src -> tgt as target, target.name as name then SetOfficalGivenNamechepatient(src, name) "0417ff44";
} "8f5be461";
src.item first as item where (linkId = 'CHE.A.DE12') and answer.exists() then {
item.answer first as a then {
a.value as val -> tgt.extension = create('Extension') as ext, ext.url = 'https://fhir.dk.swisstph-mis.ch/matchbox/fhir/StructureDefinition/birthDateEstimator', ext.value = val "acheade12";
} "acheade12";
} "25a5a38f";
src.item first as item where (linkId = 'CHE.A.DE08') and answer.exists() then {
item.answer first as a then {
a.value as val -> tgt.birthDate = val "acheade08";
} "acheade08";
} "0906a0f7";
src.item first as item where (linkId = 'CHE.A.DE09') and answer.exists() then {
item.answer first as a then {
a.value as val -> tgt.extension = create('Extension') as ext, ext.url = 'https://fhir.dk.swisstph-mis.ch/matchbox/fhir/Extension/hourofbirth', ext.value = val "acheade09";
} "acheade09";
} "7c2b1795";
src.item first as item where (linkId = 'CHE.A.DE16') and answer.exists() then {
item.answer first as a then MapValueSetExtCodecheade16(a, tgt) "e48fa315";
} "842c1fa2";
src.item first as item where (linkId = 'CHE.A.DE48') and answer.exists() then {
item.answer first as a -> tgt.extension = create('Extension') as ext, ext.url = 'https://fhir.dk.swisstph-mis.ch/matchbox/fhir/StructureDefinition/primarycaregiver', ext.value = create('Reference') as ref, ref.reference = 'relatated-person-id' "acheade48";
} "50e8f3b4";
src.item first as item where (linkId = 'CHE.A.DE31') and answer.exists() then {
item.answer first as a then {
a.value as val -> tgt.extension = create('Extension') as ext, ext.url = 'https://fhir.dk.swisstph-mis.ch/matchbox/fhir/Extension/motherVitalStatus', ext.value = val "acheade31";
} "acheade31";
} "29bdd7f8";
}
group SetOfficalGivenNamerelatedperson(source src, target tgt) {
src -> tgt.use = 'official' then {
src.item first as itm1 where linkId = 'CHE.A.DE21.1' then {
itm1.item first as item where (linkId = 'CHE.A.DE23') and answer.exists() then {
item.answer first as a then {
a.value as val -> tgt.family = val "77d1bd4f";
} "e0827d5d";
} "96a1f6a1";
} "c5b295d3";
src.item first as itm1 where linkId = 'CHE.A.DE21.1' then {
itm1.item first as item where (linkId = 'CHE.A.DE21') and answer.exists() then {
item.answer first as a then {
a.value as val -> tgt.given = val "5d3d44f6";
} "18edd234";
} "beeb4341";
} "61b58988";
src.item first as itm1 where linkId = 'CHE.A.DE21.1' then {
itm1.item first as item where (linkId = 'CHE.A.DE22') and answer.exists() then {
item.answer first as a then {
a.value as val -> tgt.given = val "5d3d44f6";
} "18edd234";
} "5f1009c5";
} "0600eedb";
} "bf3c2d7c";
}
group MapValueSetExtCodecheade24(source src, target tgt) {
src -> tgt then {
src -> tgt.relationship = create('CodeableConcept') as cc, cc.coding = create('Coding') as coding "f8b67f8d";
} "8ba0311a";
}
group relatedperson(source src : questionnaireResponse, target tgt : RelatedPerson) {
src.item first as item where (linkId = 'CHErelatedpersoncaregiverid') and answer.exists() then {
item.answer first as a then {
a.value as val -> tgt.extension = create('Extension') as ext, ext.url = 'https://fhir.dk.swisstph-mis.ch/matchbox/fhir/StructureDefinition/primary-caregiver', ext.value = create('Reference') as ref, ref.reference = append('/RelatedPerson/', val) "acherelatedpersoncaregiverid";
} "acherelatedpersoncaregiverid";
} "8162f965";
src.item first as itm1 where linkId = 'CHE.A.DE21.1' then {
itm1.item first as item where (linkId = 'CHE.A.DE23') or (linkId = 'CHE.A.DE21') or ((linkId = 'CHE.A.DE22') and answer.exists()) then {
src -> tgt as target, target.name as name then SetOfficalGivenNamerelatedperson(src, name) "8e1455ea";
} "dddc7053";
} "a89a14fb";
src.item first as item where (linkId = 'CHE.A.DE24') and answer.exists() then {
item.answer first as a then MapValueSetExtCodecheade24(a, tgt) "ede36463";
} "387fd192";
src.item first as itm1 where linkId = 'CHE.A.DE21.1' then {
itm1.item first as item where (linkId = 'relatedpersonid') and answer.exists() then {
item.answer first as a -> tgt then {
src.subject as subject -> tgt.patient = subject "patient";
} "arelatedpersonid";
} "d79d72db";
} "88cbce55";
src.item first as itm1 where linkId = 'CHE.A.DE21.1' then {
itm1.item first as item where (linkId = 'CHE.A.DE35') and answer.exists() then {
item.answer first as a then {
a.value as val -> tgt.telecom = create('ContactPoint') as tel, tel.system = 'phone', tel.use = 'mobile', tel.value = val, tel.rank = 1 "acheade35";
} "acheade35";
} "3c5d318c";
} "9b9bbd1a";
src.item first as itm1 where linkId = 'CHE.A.DE21.1' then {
itm1.item first as item where (linkId = 'CHE.A.DE36') and answer.exists() then {
item.answer first as a then {
a.value as val -> tgt.telecom = create('ContactPoint') as tel, tel.system = 'phone', tel.use = 'mobile', tel.value = val, tel.rank = 2 "acheade36";
} "acheade36";
} "17b42518";
} "15079f58";
src.item first as itm1 where linkId = 'CHE.A.DE21.1' then {
itm1.item first as item where (linkId = 'CHE.A.DE37') and answer.exists() then {
item.answer first as a then {
a.value as val -> tgt.telecom = create('ContactPoint') as tel, tel.system = 'phone', tel.use = 'mobile', tel.value = val, tel.rank = 3 "acheade37";
} "acheade37";
} "8395c849";
} "36230b88";
}