From dacc16cf47b9a2d58317b09c79c1e47dba04cddd Mon Sep 17 00:00:00 2001 From: Luke Duncan Date: Wed, 21 Feb 2024 13:39:44 -0800 Subject: [PATCH] Updated all antigen client history model/questionnaire/maps to remove birth dose as it is now only polio and hep b and added it to polio. --- input/fsh/models/IMMZD1ClientHistory.fsh | 2 -- input/fsh/models/IMMZD1ClientHistoryPolio.fsh | 3 ++- input/fsh/questionnaires/QIMMZD1ClientHistory.fsh | 3 --- .../questionnaires/QIMMZD1ClientHistoryMeasles.fsh | 3 --- .../QIMMZD1ClientHistoryYellowFever.fsh | 3 --- input/maps/IMMZD1LMToResources.fml | 12 ------------ input/maps/IMMZD1PolioLMToResources.fml | 12 ++++++++++++ input/maps/IMMZD1PolioQRToLM.fml | 4 ++++ input/maps/IMMZD1QRToLM.fml | 4 ---- 9 files changed, 18 insertions(+), 28 deletions(-) diff --git a/input/fsh/models/IMMZD1ClientHistory.fsh b/input/fsh/models/IMMZD1ClientHistory.fsh index 2161f5ece1..2a467a2c3f 100644 --- a/input/fsh/models/IMMZD1ClientHistory.fsh +++ b/input/fsh/models/IMMZD1ClientHistory.fsh @@ -5,8 +5,6 @@ Description: "Data elements for the IMMZ.D1 Capture Client History Data Diction * ^name = "IMMZ_D1_Client_History" * patient 1..1 Reference "Patient" "The patient who is being checked for contraindications." -* birth 0..1 boolean "Birth dose" "Indicates if the client received a dose within 24 hours of birth. Whether a birth dose is counted as part of the primary series will depend on the antigen." - * ^code[+] = IMMZ.D1#DE109 * type 1..* Coding "Type of dose" "The type of dose in a series that the client received" * ^code[+] = IMMZ.D1#DE103 * type from IMMZ.D1.DE103 diff --git a/input/fsh/models/IMMZD1ClientHistoryPolio.fsh b/input/fsh/models/IMMZD1ClientHistoryPolio.fsh index b56e1a7518..d21d567c3a 100644 --- a/input/fsh/models/IMMZD1ClientHistoryPolio.fsh +++ b/input/fsh/models/IMMZD1ClientHistoryPolio.fsh @@ -5,7 +5,8 @@ Description: "Data elements for the IMMZ.D1 Capture Client History Data Diction * ^name = "IMMZ_D1_Client_History_Polio" - +* birth 0..1 boolean "Birth dose" "Indicates if the client received a dose within 24 hours of birth. Whether a birth dose is counted as part of the primary series will depend on the antigen." + * ^code[+] = IMMZ.D1#DE109 * poliotype 0..1 Coding "Type of polio dose" "The type of the polio vaccine dose administered to the client" * ^code[+] = IMMZ.D1#DE35 * ^code[+] = $ICD11#XM0N50 diff --git a/input/fsh/questionnaires/QIMMZD1ClientHistory.fsh b/input/fsh/questionnaires/QIMMZD1ClientHistory.fsh index ade6c3e660..5a4499e327 100644 --- a/input/fsh/questionnaires/QIMMZD1ClientHistory.fsh +++ b/input/fsh/questionnaires/QIMMZD1ClientHistory.fsh @@ -16,9 +16,6 @@ Usage: #definition * extension[=].valueCanonical = "http://smart.who.int/ig/smart-immunizations/StructureMap/IMMZD1QRToResources" -* insert Question(birth, Indicates if the client received a dose within 24 hours of birth. Whether a birth dose is counted as part of the primary series will depend on the antigen., boolean, false, false) -* item[=] - * code[+] = IMMZ.D1#DE109 * insert Question(type, The type of dose in a series that the client received, choice, false, true) * item[=] * answerValueSet = Canonical(IMMZ.D1.DE103) diff --git a/input/fsh/questionnaires/QIMMZD1ClientHistoryMeasles.fsh b/input/fsh/questionnaires/QIMMZD1ClientHistoryMeasles.fsh index 7731e678b5..5c11963b42 100644 --- a/input/fsh/questionnaires/QIMMZD1ClientHistoryMeasles.fsh +++ b/input/fsh/questionnaires/QIMMZD1ClientHistoryMeasles.fsh @@ -17,9 +17,6 @@ Usage: #definition * extension[=].valueCanonical = "http://smart.who.int/ig/smart-immunizations/StructureMap/IMMZD1MeaslesQRToResources" -* insert Question(birth, Indicates if the client received a dose within 24 hours of birth. Whether a birth dose is counted as part of the primary series will depend on the antigen., boolean, false, false) -* item[=] - * code[+] = IMMZ.D1#DE109 * insert Question(type, The type of dose in a series that the client received, choice, false, true) * item[=] * answerValueSet = Canonical(IMMZ.D1.DE103) diff --git a/input/fsh/questionnaires/QIMMZD1ClientHistoryYellowFever.fsh b/input/fsh/questionnaires/QIMMZD1ClientHistoryYellowFever.fsh index 192516d176..0f568a4bb4 100644 --- a/input/fsh/questionnaires/QIMMZD1ClientHistoryYellowFever.fsh +++ b/input/fsh/questionnaires/QIMMZD1ClientHistoryYellowFever.fsh @@ -17,9 +17,6 @@ Usage: #definition * extension[=].valueCanonical = "http://smart.who.int/ig/smart-immunizations/StructureMap/IMMZD1YellowFeverQRToResources" -* insert Question(birth, Indicates if the client received a dose within 24 hours of birth. Whether a birth dose is counted as part of the primary series will depend on the antigen., boolean, false, false) -* item[=] - * code[+] = IMMZ.D1#DE109 * insert Question(type, The type of dose in a series that the client received, choice, false, true) * item[=] * answerValueSet = Canonical(IMMZ.D1.DE103) diff --git a/input/maps/IMMZD1LMToResources.fml b/input/maps/IMMZD1LMToResources.fml index 27e54a8543..d92164b0de 100644 --- a/input/maps/IMMZD1LMToResources.fml +++ b/input/maps/IMMZD1LMToResources.fml @@ -8,18 +8,6 @@ group IMMZD1ToBundle (source immz : IMMZD1, target bundle: Bundle) { immz.patient as patient then { - - immz.birth as content -> bundle.entry as entry, entry.resource = create('Observation') as obs then { - patient -> obs.subject = patient "SetPatient"; - content -> obs.code as code then { - content -> code.coding as coding then { - content -> coding.system = 'http://smart.who.int/ig/smart-immunizations/CodeSystem/IMMZ.D1' "SetObsSystem"; - content -> coding.code = 'DE109' "SetObsCode"; - } "SetObsCoding"; - } "SetObsCode"; - content -> obs.value = content "SetValue"; - } "SetBirthObservation"; - immz.type as content -> bundle.entry as entry, entry.resource = create('Observation') as obs then { patient -> obs.subject = patient "SetPatient"; content -> obs.code as code then { diff --git a/input/maps/IMMZD1PolioLMToResources.fml b/input/maps/IMMZD1PolioLMToResources.fml index 8ef302d054..4aa03a19ee 100644 --- a/input/maps/IMMZD1PolioLMToResources.fml +++ b/input/maps/IMMZD1PolioLMToResources.fml @@ -9,6 +9,18 @@ group PolioIMMZD1ToBundle (source immz : IMMZD1, target bundle: Bundle) extends immz.patient as patient then { + + immz.birth as content -> bundle.entry as entry, entry.resource = create('Observation') as obs then { + patient -> obs.subject = patient "SetPatient"; + content -> obs.code as code then { + content -> code.coding as coding then { + content -> coding.system = 'http://smart.who.int/ig/smart-immunizations/CodeSystem/IMMZ.D1' "SetObsSystem"; + content -> coding.code = 'DE109' "SetObsCode"; + } "SetObsCoding"; + } "SetObsCode"; + content -> obs.value = content "SetValue"; + } "SetBirthObservation"; + immz.poliotype as content -> bundle.entry as entry, entry.resource = create('Observation') as obs then { patient -> obs.subject = patient "SetPatient"; content -> obs.code as code then { diff --git a/input/maps/IMMZD1PolioQRToLM.fml b/input/maps/IMMZD1PolioQRToLM.fml index f6583e2cda..4c9d9fd866 100644 --- a/input/maps/IMMZD1PolioQRToLM.fml +++ b/input/maps/IMMZD1PolioQRToLM.fml @@ -9,6 +9,10 @@ group PolioQRespToIMMZD1 ( source qr : QResp, target immz : IMMZD1) extends QRes qr.item as item then { + item.answer first as answer where item.linkId = 'birth' then { + answer.value as content -> immz.birth = content "SetBirth"; + } "FirstAnswerForBirth"; + item.answer first as answer where item.linkId = 'poliotype' then { answer.value as coding -> immz.poliotype = coding "SetPolioType"; } "FirstAnswerForPolioType"; diff --git a/input/maps/IMMZD1QRToLM.fml b/input/maps/IMMZD1QRToLM.fml index 4b855c7649..a8effc345d 100644 --- a/input/maps/IMMZD1QRToLM.fml +++ b/input/maps/IMMZD1QRToLM.fml @@ -9,10 +9,6 @@ group QRespToIMMZD1 ( source qr : QResp, target immz : IMMZD1) { qr.item as item then { - item.answer first as answer where item.linkId = 'birth' then { - answer.value as content -> immz.birth = content "SetBirth"; - } "FirstAnswerForBirth"; - item.answer as answer where item.linkId = 'type' then { answer.value as coding -> immz.type = coding "SetVaccineType"; } "AnswerForType";