-
Notifications
You must be signed in to change notification settings - Fork 10
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added in logical model/questionnaire and maps for hepatitis B. Fixed …
…required fields in measles, yellow fever, polio.
- Loading branch information
1 parent
dacc16c
commit d7c7d01
Showing
13 changed files
with
279 additions
and
8 deletions.
There are no files selected for viewing
53 changes: 53 additions & 0 deletions
53
input/fsh/examples/IMMZ.D1.QuestionnaireResponse.HepatitisB.fsh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
Instance: Example.IMMZ.D1.QuestionnaireResponse.HepatitisB | ||
InstanceOf: QuestionnaireResponse | ||
Usage: #example | ||
* status = #completed | ||
* authored = "2023-10-18T19:20:20.913Z" | ||
* questionnaire = Canonical(QIMMZD1ClientHistoryHepatitisB) | ||
* subject = Reference(patient654321) | ||
|
||
* item[+] | ||
* linkId = "birth" | ||
* answer.valueBoolean = false | ||
* item[+] | ||
* linkId = "booster" | ||
* answer.valueBoolean = false | ||
* item[+] | ||
* linkId = "completedPrimarySeries" | ||
* answer.valueBoolean = true | ||
* item[+] | ||
* linkId = "dateSeriesCompleted" | ||
* answer.valueDate = "2023-01-01" | ||
* item[+] | ||
* linkId = "hivStatus" | ||
* answer.valueCoding = IMMZ.D1#DE11 | ||
* item[+] | ||
* linkId = "pretermBirth" | ||
* answer.valueBoolean = false | ||
* item[+] | ||
* linkId = "immunocompromised" | ||
* answer.valueBoolean = false | ||
* item[+] | ||
* linkId = "OnART" | ||
* answer.valueBoolean = true | ||
* item[+] | ||
* linkId = "severelyImmunosuppressed" | ||
* answer.valueBoolean = true | ||
* item[+] | ||
* linkId = "artStartDate" | ||
* answer.valueDate = "2022-06-01" | ||
* item[+] | ||
* linkId = "hepbtype" | ||
* answer.valueCoding = IMMZ.D1#DE100 | ||
* item[+] | ||
* linkId = "birthweight" | ||
* answer.valueDecimal = 3000 | ||
* item[+] | ||
* linkId = "vaccineHistory" | ||
* item[+] | ||
* linkId = "vaccineType" | ||
* answer.valueCoding = $ICD11#XM9V38 | ||
* item[+] | ||
* linkId = "vaccineDate" | ||
* answer.valueDate = "2023-04-05" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
Logical: IMMZD1ClientHistoryHepatitisB | ||
Title: "IMMZ.D1 Capture Client History for Hepatitis B" | ||
Parent: IMMZD1ClientHistory | ||
Description: "Data elements for the IMMZ.D1 Capture Client History Data Dictionary for Hepatitis B." | ||
|
||
* ^name = "IMMZ_D1_Client_History_HepatitisB" | ||
|
||
* birth 1..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 | ||
* birthweight 1..1 decimal "Birth weight in grams" "Represents the client's birth weight value measures in grams" | ||
* ^code[+] = IMMZ.D1#DE29 | ||
* ^code[+] = $ICD11#KA21 | ||
* ^code[+] = $LOINC#8339-4 | ||
* hepbtype 1..1 Coding "Type of hepatitis B dose" "The type of hepatitis B vaccine dose administered to the client" | ||
* ^code[+] = IMMZ.D1#DE99 | ||
* hepbtype from IMMZ.D1.DE99 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
80 changes: 80 additions & 0 deletions
80
input/fsh/questionnaires/QIMMZD1ClientHistoryHepatitisB.fsh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
Instance: QIMMZD1ClientHistoryHepatitisB | ||
InstanceOf: sdc-questionnaire-extr-smap | ||
Title: "Capture Client History Questionnaire - Hepatitis B" | ||
Description: "Immunization - Capture Client History Questionnaire for Hepatitis B Immunization" | ||
Usage: #definition | ||
* id = "IMMZD1ClientHistoryHepatitisB" | ||
* version = "2023" | ||
* status = #draft | ||
* subjectType = #Patient | ||
* language = #en | ||
* status = #draft | ||
* derivedFrom = Canonical(QIMMZD1ClientHistory) | ||
* contained[+] = IMMZ.D1.DE10 | ||
* contained[+] = IMMZ.D1.DE99 | ||
* contained[+] = IMMZ.D1.DE103 | ||
|
||
* extension[+].url = "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-targetStructureMap" | ||
* extension[=].valueCanonical = "http://smart.who.int/ig/smart-immunizations/StructureMap/IMMZD1HepatitisBQRToResources" | ||
|
||
|
||
* 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, true, false) | ||
* item[=] | ||
* code[+] = IMMZ.D1#DE109 | ||
* insert Question(type, The type of dose in a series that the client received, choice, true, false) | ||
* item[=] | ||
* answerValueSet = Canonical(IMMZ.D1.DE103) | ||
* code[+] = IMMZ.D1#DE103 | ||
* insert Question(booster, Indicates if the client has completed the booster series of a product/antigen, boolean, false, false) | ||
* item[=] | ||
* code[+] = IMMZ.D1#DE102 | ||
* insert Question(completedPrimarySeries, Indicates if the client has completed the primary vaccination series of a product/antigen. If the client has not yet completed their primary series\, it means they may be expected to receive more doses to complete their vaccination regimen for the respective product/antigen., boolean, false, false) | ||
* item[=] | ||
* code[+] = IMMZ.D1#DE8 | ||
* insert Question(dateSeriesCompleted, The date when the client completed the primary vaccination series - per product/antigen, date, false, false) | ||
* item[=] | ||
* code[+] = IMMZ.D1#DE81 | ||
* insert Question(hivStatus, The current human immunodeficiency virus HIV status of the client, choice, false, false) | ||
* item[=] | ||
* answerValueSet = Canonical(IMMZ.D1.DE10) | ||
* code[+] = IMMZ.D1#DE10 | ||
* code[+] = $LNC#55277-8 | ||
* code[+] = $SCT#278977008 | ||
* insert Question(pretermBirth, The infant was preterm; the mother gave birth to the infant when gestational age was less than 37 weeks, boolean, false, false) | ||
* item[=] | ||
* code[+] = IMMZ.D1#DE15 | ||
* code[+] = $ICD11#KA21.4 | ||
* code[+] = $LNC#76517-2 | ||
* code[+] = $SCT#395507008 | ||
* insert Question(immunocompromised, The client is known to be immunocompromised. This means the client has a weakened immune system and having a reduced ability to fight infections and other diseases, boolean, true, false) | ||
* item[=] | ||
* code[+] = IMMZ.D1#DE16 | ||
* code[+] = $ICD11#4B4Z | ||
* code[+] = $LNC#96381-9 | ||
* code[+] = $SCT#370388006 | ||
* insert Question(onART, The client is currently receiving antiretroviral therapy - ART, boolean, false, false) | ||
* item[=] | ||
* code[+] = IMMZ.D1#DE17 | ||
* insert Question(birthweight, Represents the client's birth weight value measures in grams, decimal, true, false) | ||
* code[+] = IMMZ.D1#DE29 | ||
* code[+] = $ICD11#KA21 | ||
* code[+] = $LOINC#8339-4 | ||
* insert Question(hebptype, The type of hepatitis B vaccine dose administered to the client, choice, true, false) | ||
* item[=] | ||
* answerValueSet = Canonical(IMMZ.D1.DE99) | ||
* code[+] = IMMZ.D1#DE99 | ||
* insert Question(artStartDate, The date on which the client started or restarted antiretroviral therapy ART, date, false, false) | ||
* item[=] | ||
* code[+] = IMMZ.D1#DE49 | ||
* insert Question(vaccineHistory, Vaccine History, group, false, true) | ||
* item[=] | ||
* insert Question(vaccineType, Vaccine type/category that was administered or was to be administered. Any vaccine code available in the IMMZ.Z Vaccine Library list of codes applies in this data element, choice, true, false) | ||
* item[=] | ||
* answerValueSet = Canonical(IMMZ.Z.DE6) | ||
* code[+] = IMMZ.D#DE19 | ||
* code[+] = $LNC#39236-5 | ||
* code[+] = $SCT#787859002 | ||
* insert Question(vaccineDate, Represents the visit/encounter date\, which is the date and time when the vaccine was administered to the client, date, true, false) | ||
* item[=] | ||
* code[+] = IMMZ.D#DE20 | ||
* code[+] = $LNC#30952-6 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
ValueSet: IMMZ.D1.DE99 | ||
Title: "IMMZ.D1.DE99 ValueSet for Type of hepatitis B dose" | ||
Description: "ValueSet for Type of hepatitis B dose for IMMZ.D1.DE87" | ||
|
||
* ^status = #active | ||
* ^name = "IMMZ_D1_DE99" | ||
|
||
* IMMZ.D1#DE100 "Hepatitis B monovalent vaccine" | ||
* IMMZ.D1#DE101 "Hepatitis B combination vaccine" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
ValueSet: IMMZ.Z.DE6 | ||
Title: "IMMZ.Z.DE6 Hepatitis B containing vaccines" | ||
Description: "Vaccine terminology codes for hepatitis B." | ||
|
||
* ^status = #active | ||
* ^name = "IMMZ_Z_DE6" | ||
|
||
|
||
* $ICD11#XM9V38 "Hepatitis B, purified antigen" | ||
* $ICD11#XM3G68 "Diphtheria, hepatitis B, tetanus vaccines" | ||
* $ICD11#XM32L7 "Hemophilus influenzae B and hepatitis B vaccines" | ||
* $ICD11#XM7JP3 "Diphtheria, hemophilus influenzae B, pertussis, tetanus, hepatitis B vaccines" | ||
* $ICD11#XM0LT9 "Diphtheria, pertussis, poliomyelitis, tetanus, hepatitis B vaccines" | ||
* $ICD11#XM5XP9 "Diphtheria, hemophilus influenzae B, pertussis, tetanus-hepatitis B, meningococcus A + C vaccines" | ||
* $ICD11#XM84S1 "Diphtheria, hepatitis B, tetanus, acellular pertussis, inactivated polio virus, haemophilus Influenzae type B vaccines" | ||
* $LOINC#30937-7 "Hepatitis B virus dose count in combination vaccine" | ||
* $SCT#836374004 "Hepatitis B virus antigen-containing vaccine product" | ||
* $SCT#871806004 "Haemophilus influenzae type b and Hepatitis B virus antigens only vaccine product" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
map "http://smart.who.int/ig/smart-immunizations/StructureMap/IMMZD1HepatitisBLMToResources" = "IMMZD1HepatitisBLMToResources" | ||
|
||
uses "http://smart.who.int/ig/smart-immunizations/StructureDefinition/IMMZD1ClientHistoryHepatitisB" alias IMMZD1 as source | ||
uses "http://hl7.org/fhir/StructureDefinition/Bundle" alias Bundle as target | ||
|
||
imports "http://smart.who.int/ig/smart-immunizations/StructureMap/IMMZD1LMToResources" | ||
|
||
group HepatitisBIMMZD1ToBundle (source immz : IMMZD1, target bundle: Bundle) extends IMMZD1ToBundle { | ||
|
||
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.birthweight 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 = 'DE29' "SetObsCode"; | ||
} "SetObsCoding"; | ||
} "SetObsCode"; | ||
content -> obs.value = content "SetValue"; | ||
} "SetBirthWeightObservation"; | ||
|
||
immz.hepbtype 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 = 'DE99' "SetObsCode"; | ||
} "SetObsCoding"; | ||
} "SetObsCode"; | ||
content -> obs.valueCodeableConcept as code then { | ||
content -> code.coding = content "SetCoding"; | ||
} "SetCodeableConcept"; | ||
} "SetHepatitisBTypeObservation"; | ||
|
||
} "GetPatient"; | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
map "http://smart.who.int/ig/smart-immunizations/StructureMap/IMMZD1HepatitisBQRToLM" = "IMMZD1HepatitisBQRToLM" | ||
|
||
uses "http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse" alias QResp as source | ||
uses "http://smart.who.int/ig/smart-immunizations/StructureDefinition/IMMZD1ClientHistoryHepatitisB" alias IMMZD1 as target | ||
|
||
imports "http://smart.who.int/ig/smart-immunizations/StructureMap/IMMZD1QRToLM" | ||
|
||
group HepatitisBQRespToIMMZD1 ( source qr : QResp, target immz : IMMZD1) extends QRespToIMMZD1 { | ||
|
||
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 = 'birthweight' then { | ||
answer.value as content -> immz.birthweight = content "SetBirthWeight"; | ||
} "FirstAnswerForBirthWeight"; | ||
|
||
item.answer first as answer where item.linkId = 'hepbtype' then { | ||
answer.value as coding -> immz.hepbtype = coding "SetHepatitisBType"; | ||
} "FirstAnswerForHepatitisBType"; | ||
|
||
} "processItems"; | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
map "http://smart.who.int/ig/smart-immunizations/StructureMap/IMMZD1HepatitisBQRToResources" = "IMMZD1HepatitisBQRToResources" | ||
|
||
uses "http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse" alias QResp as source | ||
uses "http://smart.who.int/ig/smart-immunizations/StructureDefinition/IMMZD1ClientHistoryHepatitisB" alias IMMZD1 as source | ||
uses "http://hl7.org/fhir/StructureDefinition/Bundle" alias Bundle as target | ||
|
||
imports "http://smart.who.int/ig/smart-immunizations/StructureMap/IMMZD1HepatitisBQRToLM" | ||
imports "http://smart.who.int/ig/smart-immunizations/StructureMap/IMMZD1HepatitisBLMToResources" | ||
|
||
group QRespToBundle ( | ||
source qr : QResp, | ||
target bundle: Bundle | ||
) { | ||
qr -> create("http://smart.who.int/ig/smart-immunizations/StructureDefinition/IMMZD1ClientHistoryHepatitisB") as model | ||
then{ | ||
qr -> model then HepatitisBQRespToIMMZD1( qr, model) "QRtoLM"; | ||
qr -> bundle then HepatitisBIMMZD1ToBundle( model, bundle ) "LMtoBundle"; | ||
} "QRtoBundle"; | ||
} |