Skip to content

Commit

Permalink
Updated logical models to include an all antigen parent version. Did …
Browse files Browse the repository at this point in the history
…same for questionnaires. Update structuremaps to have all antigen files for QRtoLM and LMtoResources that are extended by the individual antigens to add the additional code so the all antigen code is reused in the other antigens. Added polio structuremaps.
  • Loading branch information
lukeaduncan committed Jan 31, 2024
1 parent e6e67cb commit 361f910
Show file tree
Hide file tree
Showing 19 changed files with 323 additions and 303 deletions.
50 changes: 50 additions & 0 deletions input/fsh/examples/IMMZ.D1.QuestionnaireResponse.Polio.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
Instance: Example.IMMZ.D1.QuestionnaireResponse.Polio
InstanceOf: QuestionnaireResponse
Usage: #example
* status = #completed
* authored = "2023-10-18T19:20:20.913Z"
* questionnaire = Canonical(QIMMZD1ClientHistoryPolio)
* 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 = "poliotype"
* answer.valueCoding = IMMZ.D1#DE36
* item[+]
* linkId = "vaccineHistory"
* item[+]
* linkId = "vaccineType"
* answer.valueCoding = $ICD11#XM0N24
* item[+]
* linkId = "vaccineDate"
* answer.valueDate = "2023-04-05"

44 changes: 44 additions & 0 deletions input/fsh/models/IMMZD1ClientHistory.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
Logical: IMMZD1ClientHistory
Title: "IMMZ.D1 Capture Client History for All Antigens"
Description: "Data elements for the IMMZ.D1 Capture Client History Data Dictionary for the fields that apply to all antigens."

* ^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
* completedPrimarySeries 0..1 boolean "Completed the primary vaccination series" "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."
* ^code[+] = IMMZ.D1#DE8
* booster 0..1 boolean "Completed the booster series" "Indicates if the client has completed the booster series of a product/antigen"
* ^code[+] = IMMZ.D1#DE102
* dateSeriesCompleted 1..1 date "Date when primary vaccination series was completed" "The date when the client completed the primary vaccination series (per product/antigen)"
* ^code[+] = IMMZ.D1#DE81
* hivStatus 0..1 Coding "HIV status" "The current human immunodeficiency virus (HIV) status of the client"
* ^code[+] = IMMZ.D1#DE10
* ^code[+] = $LNC#55277-8
* ^code[+] = $SCT#278977008
* hivStatus from IMMZ.D1.DE10
* pretermBirth 0..1 boolean "Preterm birth" "The infant was preterm; the mother gave birth to the infant when gestational age was less than 37 weeks"
* ^code[+] = IMMZ.D1#DE15
* ^code[+] = $ICD11#KA21.4
* ^code[+] = $LNC#76517-2
* ^code[+] = $SCT#395507008
* immunocompromised 0..1 boolean "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"
* ^code[+] = IMMZ.D1#DE16
* ^code[+] = $ICD11#4B4Z
* ^code[+] = $LNC#96381-9
* ^code[+] = $SCT#370388006
* onART 0..1 boolean "Currently on ART" "The client is currently receiving antiretroviral therapy (ART)"
* ^code[+] = IMMZ.D1#DE17
* vaccineHistory 0..* BackboneElement "Vaccine History" "History of previous vaccine doses."
* vaccineType 0..1 Coding "Vaccine type" "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"
* ^code[+] = IMMZ.D#DE19
* ^code[+] = $LNC#39236-5
* ^code[+] = $SCT#787859002
* vaccineType from IMMZ.Z.DE23
* vaccineDate 0..1 date "Date and time of vaccination" "Represents the visit/encounter date, which is the date and time when the vaccine was administered to the client"
* ^code[+] = IMMZ.D#DE20
* ^code[+] = $LNC#30952-6
41 changes: 2 additions & 39 deletions input/fsh/models/IMMZD1ClientHistoryMeasles.fsh
Original file line number Diff line number Diff line change
@@ -1,49 +1,12 @@
Logical: IMMZD1ClientHistoryMeasles
Title: "IMMZ.D1 Capture Client History for Measles"
Parent: IMMZD1ClientHistory
Description: "Data elements for the IMMZ.D1 Capture Client History Data Dictionary for Measles."

* ^name = "IMMZ_D1_Client_History_Measles"

* 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 0..* Coding "Type of dose" "The type of dose in a series that the client received"
* ^code[+] = IMMZ.D1#DE103
* type from IMMZ.D1.DE103
* completedPrimarySeries 0..1 boolean "Completed the primary vaccination series" "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."
* ^code[+] = IMMZ.D1#DE8
* booster 0..1 boolean "Completed the booster series" "Indicates if the client has completed the booster series of a product/antigen"
* ^code[+] = IMMZ.D1#DE102
* dateSeriesCompleted 0..1 date "Date when primary vaccination series was completed" "The date when the client completed the primary vaccination series (per product/antigen)"
* ^code[+] = IMMZ.D1#DE81
* hivStatus 0..1 Coding "HIV status" "The current human immunodeficiency virus (HIV) status of the client"
* ^code[+] = IMMZ.D1#DE10
* ^code[+] = $LNC#55277-8
* ^code[+] = $SCT#278977008
* hivStatus from IMMZ.D1.DE10
* pretermBirth 0..1 boolean "Preterm birth" "The infant was preterm; the mother gave birth to the infant when gestational age was less than 37 weeks"
* ^code[+] = IMMZ.D1#DE15
* ^code[+] = $ICD11#KA21.4
* ^code[+] = $LNC#76517-2
* ^code[+] = $SCT#395507008
* immunocompromised 0..1 boolean "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"
* ^code[+] = IMMZ.D1#DE16
* ^code[+] = $ICD11#4B4Z
* ^code[+] = $LNC#96381-9
* ^code[+] = $SCT#370388006
* onART 0..1 boolean "Currently on ART" "The client is currently receiving antiretroviral therapy (ART)"
* ^code[+] = IMMZ.D1#DE17
* severelyImmunosuppressed 1..1 boolean "Severely immunosuppressed" "The client is known to be severely immunocompromised or immunosuppressed"
* ^code[+] = IMMZ.D1#DE92
* ^code[=] = $LNC#96381-9
* artStartDate 0..1 date "ART start date" "The date on which the client started or restarted antiretroviral therapy (ART)"
* ^code[+] = IMMZ.D1#DE49
* vaccineHistory 0..* BackboneElement "Vaccine History" "History of previous vaccine doses."
* vaccineType 0..1 Coding "Vaccine type" "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"
* ^code[+] = IMMZ.D#DE19
* ^code[+] = $LNC#39236-5
* ^code[+] = $SCT#787859002
* vaccineType from IMMZ.Z.DE9
* vaccineDate 0..1 date "Date and time of vaccination" "Represents the visit/encounter date, which is the date and time when the vaccine was administered to the client"
* ^code[+] = IMMZ.D#DE20
* ^code[+] = $LNC#30952-6
* ^code[+] = IMMZ.D1#DE49
40 changes: 2 additions & 38 deletions input/fsh/models/IMMZD1ClientHistoryPolio.fsh
Original file line number Diff line number Diff line change
@@ -1,48 +1,12 @@
Logical: IMMZD1ClientHistoryPolio
Title: "IMMZ.D1 Capture Client History for Polio"
Parent: IMMZD1ClientHistory
Description: "Data elements for the IMMZ.D1 Capture Client History Data Dictionary for Polio."

* ^name = "IMMZ_D1_Client_History_Polio"

* 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
* completedPrimarySeries 0..1 boolean "Completed the primary vaccination series" "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."
* ^code[+] = IMMZ.D1#DE8
* booster 0..1 boolean "Completed the booster series" "Indicates if the client has completed the booster series of a product/antigen"
* ^code[+] = IMMZ.D1#DE102
* dateSeriesCompleted 1..1 date "Date when primary vaccination series was completed" "The date when the client completed the primary vaccination series (per product/antigen)"
* ^code[+] = IMMZ.D1#DE81
* hivStatus 0..1 Coding "HIV status" "The current human immunodeficiency virus (HIV) status of the client"
* ^code[+] = IMMZ.D1#DE10
* ^code[+] = $LNC#55277-8
* ^code[+] = $SCT#278977008
* hivStatus from IMMZ.D1.DE10
* pretermBirth 0..1 boolean "Preterm birth" "The infant was preterm; the mother gave birth to the infant when gestational age was less than 37 weeks"
* ^code[+] = IMMZ.D1#DE15
* ^code[+] = $ICD11#KA21.4
* ^code[+] = $LNC#76517-2
* ^code[+] = $SCT#395507008
* immunocompromised 0..1 boolean "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"
* ^code[+] = IMMZ.D1#DE16
* ^code[+] = $ICD11#4B4Z
* ^code[+] = $LNC#96381-9
* ^code[+] = $SCT#370388006
* onART 0..1 boolean "Currently on ART" "The client is currently receiving antiretroviral therapy (ART)"
* ^code[+] = IMMZ.D1#DE17

* 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
* poliotype from IMMZ.D1.DE35
* vaccineHistory 0..* BackboneElement "Vaccine History" "History of previous vaccine doses."
* vaccineType 0..1 Coding "Vaccine type" "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"
* ^code[+] = IMMZ.D#DE19
* ^code[+] = $LNC#39236-5
* ^code[+] = $SCT#787859002
* vaccineType from IMMZ.Z.DE14
* vaccineDate 0..1 date "Date and time of vaccination" "Represents the visit/encounter date, which is the date and time when the vaccine was administered to the client"
* ^code[+] = IMMZ.D#DE20
* ^code[+] = $LNC#30952-6
40 changes: 1 addition & 39 deletions input/fsh/models/IMMZD1ClientHistoryYellowFever.fsh
Original file line number Diff line number Diff line change
@@ -1,44 +1,6 @@
Logical: IMMZD1ClientHistoryYellowFever
Title: "IMMZ.D1 Capture Client History for Yellow Fever"
Parent: IMMZD1ClientHistory
Description: "Data elements for the IMMZ.D1 Capture Client History Data Dictionary for Yellow Fever."

* ^name = "IMMZ_D1_Client_History_YellowFever"

* 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
* completedPrimarySeries 0..1 boolean "Completed the primary vaccination series" "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."
* ^code[+] = IMMZ.D1#DE8
* booster 0..1 boolean "Completed the booster series" "Indicates if the client has completed the booster series of a product/antigen"
* ^code[+] = IMMZ.D1#DE102
* dateSeriesCompleted 1..1 date "Date when primary vaccination series was completed" "The date when the client completed the primary vaccination series (per product/antigen)"
* ^code[+] = IMMZ.D1#DE81
* hivStatus 0..1 Coding "HIV status" "The current human immunodeficiency virus (HIV) status of the client"
* ^code[+] = IMMZ.D1#DE10
* ^code[+] = $LNC#55277-8
* ^code[+] = $SCT#278977008
* hivStatus from IMMZ.D1.DE10
* pretermBirth 0..1 boolean "Preterm birth" "The infant was preterm; the mother gave birth to the infant when gestational age was less than 37 weeks"
* ^code[+] = IMMZ.D1#DE15
* ^code[+] = $ICD11#KA21.4
* ^code[+] = $LNC#76517-2
* ^code[+] = $SCT#395507008
* immunocompromised 0..1 boolean "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"
* ^code[+] = IMMZ.D1#DE16
* ^code[+] = $ICD11#4B4Z
* ^code[+] = $LNC#96381-9
* ^code[+] = $SCT#370388006
* onART 0..1 boolean "Currently on ART" "The client is currently receiving antiretroviral therapy (ART)"
* ^code[+] = IMMZ.D1#DE17
* vaccineHistory 0..* BackboneElement "Vaccine History" "History of previous vaccine doses."
* vaccineType 0..1 Coding "Vaccine type" "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"
* ^code[+] = IMMZ.D#DE19
* ^code[+] = $LNC#39236-5
* ^code[+] = $SCT#787859002
* vaccineType from IMMZ.Z.DE23
* vaccineDate 0..1 date "Date and time of vaccination" "Represents the visit/encounter date, which is the date and time when the vaccine was administered to the client"
* ^code[+] = IMMZ.D#DE20
* ^code[+] = $LNC#30952-6
70 changes: 70 additions & 0 deletions input/fsh/questionnaires/QIMMZD1ClientHistory.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
Instance: QIMMZD1ClientHistory
InstanceOf: sdc-questionnaire-extr-smap
Title: "Capture Client History Questionnaire"
Description: "Immunization - Capture Client History Questionnaire"
Usage: #definition
* id = "IMMZD1ClientHistory"
* version = "2023"
* status = #draft
* subjectType = #Patient
* language = #en
* status = #draft
* contained[+] = IMMZ.D1.DE10
* 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/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)
* 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(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.DE23)
* 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
5 changes: 3 additions & 2 deletions input/fsh/questionnaires/QIMMZD1ClientHistoryMeasles.fsh
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
Instance: QIMMZD1ClientHistoryMeasles
InstanceOf: sdc-questionnaire-extr-smap
Title: "Capture Client History Questionnaire"
Description: "Immunization - Capture Client History Questionnaire"
Title: "Capture Client History Questionnaire - Measles"
Description: "Immunization - Capture Client History Questionnaire for Measles Immunization"
Usage: #definition
* id = "IMMZD1ClientHistoryMeasles"
* version = "2023"
* status = #draft
* subjectType = #Patient
* language = #en
* status = #draft
* derivedFrom = Canonical(QIMMZD1ClientHistory)
* contained[+] = IMMZ.D1.DE10
* contained[+] = IMMZ.D1.DE103

Expand Down
5 changes: 3 additions & 2 deletions input/fsh/questionnaires/QIMMZD1ClientHistoryPolio.fsh
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
Instance: QIMMZD1ClientHistoryPolio
InstanceOf: sdc-questionnaire-extr-smap
Title: "Capture Client History Questionnaire"
Description: "Immunization - Capture Client History Questionnaire"
Title: "Capture Client History Questionnaire - Polio"
Description: "Immunization - Capture Client History Questionnaire for Polio Immunization"
Usage: #definition
* id = "IMMZD1ClientHistoryPolio"
* version = "2023"
* status = #draft
* subjectType = #Patient
* language = #en
* status = #draft
* derivedFrom = Canonical(QIMMZD1ClientHistory)
* contained[+] = IMMZ.D1.DE10
* contained[+] = IMMZ.D1.DE35
* contained[+] = IMMZ.D1.DE103
Expand Down
5 changes: 3 additions & 2 deletions input/fsh/questionnaires/QIMMZD1ClientHistoryYellowFever.fsh
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
Instance: QIMMZD1ClientHistoryYellowFever
InstanceOf: sdc-questionnaire-extr-smap
Title: "Capture Client History Questionnaire"
Description: "Immunization - Capture Client History Questionnaire"
Title: "Capture Client History Questionnaire - Yellow Fever"
Description: "Immunization - Capture Client History Questionnaire for Yellow Fever Immunization"
Usage: #definition
* id = "IMMZD1ClientHistoryYellowFever"
* version = "2023"
* status = #draft
* subjectType = #Patient
* language = #en
* status = #draft
* derivedFrom = Canonical(QIMMZD1ClientHistory)
* contained[+] = IMMZ.D1.DE10
* contained[+] = IMMZ.D1.DE103

Expand Down
Loading

0 comments on commit 361f910

Please sign in to comment.