WHO Immunization Implementation Guide
0.1.0 - CI Build
WHO Immunization Implementation Guide, published by World Health Organization (WHO). This is not an authorized publication; it is the continuous build for version 0.1.0). This version is based on the current content of https://github.com/WorldHealthOrganization/smart-immunizations and changes regularly. See the Directory of published versions
| Draft as of 2023-04-13 |
<Library xmlns="http://hl7.org/fhir">
<id value="IMMZDT01"/>
<text>
<status value="generated"/>
<div xmlns="http://www.w3.org/1999/xhtml"><h2>Contents</h2><p><code>text/cql</code></p><pre><code class="language-sql">/*
* Library: IMMZDT01 (IMMZ.DT.01.BCG)
* Rule: If child or person has not been vaccinated, give BCG vaccine as soon as possible after birth
* Trigger: Patient has never had BCG vaccination
*/
library IMMZDT01
// Start Skeleton CQL
using FHIR version '4.0.1'
include FHIRHelpers version '4.0.1'
include IMMZCommon called IMMZCom
include IMMZConcepts called IMMZc
include IMMZVaccineLibrary called IMMZvl
include IMMZConfig called IMMZConf
// End Skeleton CQL
context Patient
/*
* Determine if the patient has risk of occupational exposure in low and high TB incidence areas (e.g. health
* workers, laboratory workers, medical students, prison workers, other individuals with occupational exposure).
*
* The logic for determine this still needs to be determined. Defaulting to true until this can be done.
*/
define "Risk of occupational exposure in low and high TB areas": true
/*
* Rule: Should vaccinate patient for BCG
* Annotations:
* - Provide BCG immunizations – using the "BCG vaccine immunization – NO PREVIOUS" schedule (1 dose scheme)
* -
* - Provide BCG immunizations – using the "BCG vaccine immunization – NO PREVIOUS" schedule (1 dose scheme) if CD4% >25% for children aged <5 years or CD4 count ≥200 if aged >5 years
* Outputs:
* - Immunize Patient for BCG - TST-negative
* - Immunize Patient for BCG - IGRA-negative
* - Immunize Patient for BCG - No Doses
* - Immunize Patient for BCG - History Unknown
* - Immunize Patient for BCG - No Doses and HIV Status Positive and immunicologically stable
* -
* References:
* - WHO recommendations for routine immunization - summary tables: https://www.who.int/teams/immunization-vaccines-and-biologicals/policies/who-recommendations-for-routine-immunization---summary-tables
* -
* Logic:
* ((((((("TST Test Result" = "TST-negative") and ("High incidence of TB and/or high leprosy burden" = true)) or (("IGRA Test Result" = "IGRA-negative") and ("High incidence of TB and/or high leprosy burden" = true))) or (("BCG vaccine immunization history" = "No-doses") and ("High incidence of TB and/or high leprosy burden" = true))) or (("BCG vaccine immunization history" = "Unknown") and ("High incidence of TB and/or high leprosy burden" = true))) or ((((("BCG vaccine immunization history" = "No-doses" = true) and ("HIV Status" = "Positive" = true)) and ("CD4%" >"25%" = true)) and ("Current Patient Age in Years" < 5)) and ("High incidence of TB and/or high leprosy burden" = true))) or ((((("BCG vaccine immunization history" = "No-doses" = true) and ("HIV Status" = "Positive" = true)) and ("CD4 count" ≥ "200" = true)) and ("Current Patient Age in Years" > 5)) and ("High incidence of TB and/or high leprosy burden" = true)))
* SHARING SCHEDULE LOGIC, KEEPING THIS FOR NOW IN CASE THAT DECISION CHANGES.
define "Should vaccinate patient for BCG":
IMMZConf."High incidence of TB and/or high leprosy burden" = true and (
Coalesce((IMMZCom."Most Recent TST Test Result" in IMMZc."Negative Result"), false) or
Coalesce((IMMZCom."Most Recent IGRA Test Result" in IMMZc."Negative Result"), false) or
(IMMZCom."No BCG Doses Administered to Patient") or
(
(IMMZCom."No BCG Doses Administered to Patient" and IMMZCom."HIV Status" in IMMZc."HIV status - HIV positive Choices") and
(
Coalesce((IMMZCom."Most Recent CD4%" > 25'%' and IMMZCom."Current Patient Age In Years" < 5), false) or
Coalesce((IMMZCom."Most Recent CD4 Count" >= 200 and IMMZCom."Current Patient Age In Years" >= 5), false)
)
)
)
*/
/*
* Rule: Provision of the BCG dose
* Create Condition:
* - BCG dose should be provided if the patient has not received any BCG doses, and is in a High incidence of TB and/or high leprosy burden, and TST-negative and IGRA-negative
*
* Completion:
* - "BCG Dose 1 provided" = TRUE
*
* References:
* - WHO recommendations for routine immunization - summary tables: https://www.who.int/teams/immunization-vaccines-and-biologicals/policies/who-recommendations-for-routine-immunization---summary-tables
*
*/
define "Provision of the BCG dose":
IMMZCom."No BCG Doses Administered to Patient" and
if IMMZCom."HIV Status" in IMMZc."HIV status - HIV positive Choices"
then
(
Coalesce((IMMZCom."Most Recent CD4%" > 25'%' and IMMZCom."Current Patient Age In Years" < 5), false) or
Coalesce((IMMZCom."Most Recent CD4 Count" >= 200 and IMMZCom."Current Patient Age In Years" >= 5), false)
)
else
(
IMMZConf."High incidence of TB and/or high leprosy burden" = true or
(
"Risk of occupational exposure in low and high TB areas" and (
Coalesce((IMMZCom."Most Recent TST Test Result" in IMMZc."Negative Result"), false) or
Coalesce((IMMZCom."Most Recent IGRA Test Result" in IMMZc."Negative Result"), false)
)
)
)
define "Schedule Due Date for BCG dose":
ToDateTime( Patient.birthDate )
define "Should vaccinate patient for BCG":
"Provision of the BCG dose" and ("Schedule Due Date for BCG dose" <= (Now()))
</code></pre></div>
</text>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-softwaresystem">
<valueReference>
<reference value="Device/cqf-tooling"/>
</valueReference>
</extension>
<url
value="http://fhir.org/guides/who/smart-immunization/Library/IMMZDT01"/>
<version value="0.1.0"/>
<name value="IMMZDT01"/>
<status value="draft"/>
<date value="2023-04-13T07:36:12+00:00"/>
<publisher value="World Health Organization (WHO)"/>
<jurisdiction>
<coding>
<system value="http://unstats.un.org/unsd/methods/m49/m49.htm"/>
<code value="001"/>
</coding>
</jurisdiction>
<content>
<contentType value="text/cql"/>
<data
value="LyoKICogTGlicmFyeTogSU1NWkRUMDEgKElNTVouRFQuMDEuQkNHKQogKiBSdWxlOiBJZiBjaGlsZCBvciBwZXJzb24gaGFzIG5vdCBiZWVuIHZhY2NpbmF0ZWQsIGdpdmUgQkNHIHZhY2NpbmUgYXMgc29vbiBhcyBwb3NzaWJsZSBhZnRlciBiaXJ0aCAKICogVHJpZ2dlcjogUGF0aWVudCBoYXMgbmV2ZXIgaGFkIEJDRyB2YWNjaW5hdGlvbgogKi8KbGlicmFyeSBJTU1aRFQwMQovLyBTdGFydCBTa2VsZXRvbiBDUUwKdXNpbmcgRkhJUiB2ZXJzaW9uICc0LjAuMScKaW5jbHVkZSBGSElSSGVscGVycyB2ZXJzaW9uICc0LjAuMScKaW5jbHVkZSBJTU1aQ29tbW9uIGNhbGxlZCBJTU1aQ29tCmluY2x1ZGUgSU1NWkNvbmNlcHRzIGNhbGxlZCBJTU1aYwppbmNsdWRlIElNTVpWYWNjaW5lTGlicmFyeSBjYWxsZWQgSU1NWnZsCmluY2x1ZGUgSU1NWkNvbmZpZyBjYWxsZWQgSU1NWkNvbmYKLy8gRW5kIFNrZWxldG9uIENRTApjb250ZXh0IFBhdGllbnQKCi8qCiAqIERldGVybWluZSBpZiB0aGUgcGF0aWVudCBoYXMgcmlzayBvZiBvY2N1cGF0aW9uYWwgZXhwb3N1cmUgaW4gbG93IGFuZCBoaWdoIFRCIGluY2lkZW5jZSBhcmVhcyAoZS5nLiBoZWFsdGgKICogd29ya2VycywgbGFib3JhdG9yeSB3b3JrZXJzLCBtZWRpY2FsIHN0dWRlbnRzLCBwcmlzb24gd29ya2Vycywgb3RoZXIgaW5kaXZpZHVhbHMgd2l0aCBvY2N1cGF0aW9uYWwgZXhwb3N1cmUpLgogKiAKICogVGhlIGxvZ2ljIGZvciBkZXRlcm1pbmUgdGhpcyBzdGlsbCBuZWVkcyB0byBiZSBkZXRlcm1pbmVkLiAgRGVmYXVsdGluZyB0byB0cnVlIHVudGlsIHRoaXMgY2FuIGJlIGRvbmUuCiAqLwpkZWZpbmUgIlJpc2sgb2Ygb2NjdXBhdGlvbmFsIGV4cG9zdXJlIGluIGxvdyBhbmQgaGlnaCBUQiBhcmVhcyI6IHRydWUKCgovKgogKiBSdWxlOiBTaG91bGQgdmFjY2luYXRlIHBhdGllbnQgZm9yIEJDRwogKiBBbm5vdGF0aW9uczoKICogCSAtIFByb3ZpZGUgQkNHIGltbXVuaXphdGlvbnMg4oCTIHVzaW5nIHRoZSAiQkNHIHZhY2NpbmUgaW1tdW5pemF0aW9uIOKAkyBOTyBQUkVWSU9VUyIgc2NoZWR1bGUgKDEgZG9zZSBzY2hlbWUpCiAqIAkgLSAKICogCSAtIFByb3ZpZGUgQkNHIGltbXVuaXphdGlvbnMg4oCTIHVzaW5nIHRoZSAiQkNHIHZhY2NpbmUgaW1tdW5pemF0aW9uIOKAkyBOTyBQUkVWSU9VUyIgc2NoZWR1bGUgKDEgZG9zZSBzY2hlbWUpIGlmIENENCUgPjI1JSBmb3IgY2hpbGRyZW4gYWdlZCA8NSB5ZWFycyBvciBDRDQgY291bnQg4omlMjAwIGlmIGFnZWQgPjUgIHllYXJzCiAqIE91dHB1dHM6CiAqIAkgLSBJbW11bml6ZSBQYXRpZW50IGZvciBCQ0cgLSBUU1QtbmVnYXRpdmUKICogCSAtIEltbXVuaXplIFBhdGllbnQgZm9yIEJDRyAtIElHUkEtbmVnYXRpdmUKICogCSAtIEltbXVuaXplIFBhdGllbnQgZm9yIEJDRyAtIE5vIERvc2VzCiAqIAkgLSBJbW11bml6ZSBQYXRpZW50IGZvciBCQ0cgLSBIaXN0b3J5IFVua25vd24KICogCSAtIEltbXVuaXplIFBhdGllbnQgZm9yIEJDRyAtIE5vIERvc2VzIGFuZCBISVYgU3RhdHVzIFBvc2l0aXZlIGFuZCBpbW11bmljb2xvZ2ljYWxseSBzdGFibGUKICogCSAtIAogKiBSZWZlcmVuY2VzOgogKiAJLSBXSE8gcmVjb21tZW5kYXRpb25zIGZvciByb3V0aW5lIGltbXVuaXphdGlvbiAtIHN1bW1hcnkgdGFibGVzOiBodHRwczovL3d3dy53aG8uaW50L3RlYW1zL2ltbXVuaXphdGlvbi12YWNjaW5lcy1hbmQtYmlvbG9naWNhbHMvcG9saWNpZXMvd2hvLXJlY29tbWVuZGF0aW9ucy1mb3Itcm91dGluZS1pbW11bml6YXRpb24tLS1zdW1tYXJ5LXRhYmxlcwogKiAJLSAKICogTG9naWM6CiAqCSAoKCgoKCgoIlRTVCBUZXN0IFJlc3VsdCIgPSAiVFNULW5lZ2F0aXZlIikgYW5kICgiSGlnaCBpbmNpZGVuY2Ugb2YgVEIgYW5kL29yIGhpZ2ggbGVwcm9zeSBidXJkZW4iID0gdHJ1ZSkpIG9yICgoIklHUkEgVGVzdCBSZXN1bHQiID0gIklHUkEtbmVnYXRpdmUiKSBhbmQgKCJIaWdoIGluY2lkZW5jZSBvZiBUQiBhbmQvb3IgaGlnaCBsZXByb3N5IGJ1cmRlbiIgPSB0cnVlKSkpIG9yICgoIkJDRyB2YWNjaW5lIGltbXVuaXphdGlvbiBoaXN0b3J5IiA9ICJOby1kb3NlcyIpIGFuZCAoIkhpZ2ggaW5jaWRlbmNlIG9mIFRCIGFuZC9vciBoaWdoIGxlcHJvc3kgYnVyZGVuIiA9IHRydWUpKSkgb3IgKCgiQkNHIHZhY2NpbmUgaW1tdW5pemF0aW9uIGhpc3RvcnkiID0gIlVua25vd24iKSBhbmQgKCJIaWdoIGluY2lkZW5jZSBvZiBUQiBhbmQvb3IgaGlnaCBsZXByb3N5IGJ1cmRlbiIgPSB0cnVlKSkpIG9yICgoKCgoIkJDRyB2YWNjaW5lIGltbXVuaXphdGlvbiBoaXN0b3J5IiA9ICJOby1kb3NlcyIgPSB0cnVlKSBhbmQgKCJISVYgU3RhdHVzIiA9ICJQb3NpdGl2ZSIgPSB0cnVlKSkgYW5kICgiQ0Q0JSIgPiIyNSUiID0gdHJ1ZSkpIGFuZCAoIkN1cnJlbnQgUGF0aWVudCBBZ2UgaW4gWWVhcnMiIDwgNSkpIGFuZCAoIkhpZ2ggaW5jaWRlbmNlIG9mIFRCIGFuZC9vciBoaWdoIGxlcHJvc3kgYnVyZGVuIiA9IHRydWUpKSkgb3IgKCgoKCgiQkNHIHZhY2NpbmUgaW1tdW5pemF0aW9uIGhpc3RvcnkiID0gIk5vLWRvc2VzIiA9IHRydWUpIGFuZCAoIkhJViBTdGF0dXMiID0gIlBvc2l0aXZlIiA9IHRydWUpKSBhbmQgKCJDRDQgY291bnQiIOKJpSAiMjAwIiA9IHRydWUpKSBhbmQgKCJDdXJyZW50IFBhdGllbnQgQWdlIGluIFllYXJzIiA+IDUpKSBhbmQgKCJIaWdoIGluY2lkZW5jZSBvZiBUQiBhbmQvb3IgaGlnaCBsZXByb3N5IGJ1cmRlbiIgPSB0cnVlKSkpCiAqIFNIQVJJTkcgU0NIRURVTEUgTE9HSUMsIEtFRVBJTkcgVEhJUyBGT1IgTk9XIElOIENBU0UgVEhBVCBERUNJU0lPTiBDSEFOR0VTLgpkZWZpbmUgIlNob3VsZCB2YWNjaW5hdGUgcGF0aWVudCBmb3IgQkNHIjoKCUlNTVpDb25mLiJIaWdoIGluY2lkZW5jZSBvZiBUQiBhbmQvb3IgaGlnaCBsZXByb3N5IGJ1cmRlbiIgPSB0cnVlIGFuZCAoCgkJQ29hbGVzY2UoKElNTVpDb20uIk1vc3QgUmVjZW50IFRTVCBUZXN0IFJlc3VsdCIgaW4gSU1NWmMuIk5lZ2F0aXZlIFJlc3VsdCIpLCBmYWxzZSkgb3IgCgkJQ29hbGVzY2UoKElNTVpDb20uIk1vc3QgUmVjZW50IElHUkEgVGVzdCBSZXN1bHQiIGluIElNTVpjLiJOZWdhdGl2ZSBSZXN1bHQiKSwgZmFsc2UpIG9yIAoJCShJTU1aQ29tLiJObyBCQ0cgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQiKSBvciAKCQkoCgkJCQkoSU1NWkNvbS4iTm8gQkNHIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50IiBhbmQgSU1NWkNvbS4iSElWIFN0YXR1cyIgaW4gSU1NWmMuIkhJViBzdGF0dXMgLSBISVYgcG9zaXRpdmUgQ2hvaWNlcyIpIGFuZCAKCQkJCSgKCQkJCQlDb2FsZXNjZSgoSU1NWkNvbS4iTW9zdCBSZWNlbnQgQ0Q0JSIgPiAyNSclJyBhbmQgSU1NWkNvbS4iQ3VycmVudCBQYXRpZW50IEFnZSBJbiBZZWFycyIgPCA1KSwgZmFsc2UpIG9yIAoJCQkJCUNvYWxlc2NlKChJTU1aQ29tLiJNb3N0IFJlY2VudCBDRDQgQ291bnQiID49IDIwMCBhbmQgSU1NWkNvbS4iQ3VycmVudCBQYXRpZW50IEFnZSBJbiBZZWFycyIgPj0gNSksIGZhbHNlKQoJCQkJKQoJCSkKCSkgCiovCgovKgogKiBSdWxlOiBQcm92aXNpb24gb2YgdGhlIEJDRyBkb3NlCiAqIENyZWF0ZSBDb25kaXRpb246CiAqICAgLSBCQ0cgZG9zZSBzaG91bGQgYmUgcHJvdmlkZWQgaWYgdGhlIHBhdGllbnQgaGFzIG5vdCByZWNlaXZlZCBhbnkgQkNHIGRvc2VzLCBhbmQgaXMgaW4gYSBIaWdoIGluY2lkZW5jZSBvZiBUQiBhbmQvb3IgaGlnaCBsZXByb3N5IGJ1cmRlbiwgYW5kIFRTVC1uZWdhdGl2ZSBhbmQgSUdSQS1uZWdhdGl2ZQogKiAKICogQ29tcGxldGlvbjoKICogICAtICJCQ0cgRG9zZSAxIHByb3ZpZGVkIiA9IFRSVUUKICoKICogUmVmZXJlbmNlczoKICogCS0gV0hPIHJlY29tbWVuZGF0aW9ucyBmb3Igcm91dGluZSBpbW11bml6YXRpb24gLSBzdW1tYXJ5IHRhYmxlczogaHR0cHM6Ly93d3cud2hvLmludC90ZWFtcy9pbW11bml6YXRpb24tdmFjY2luZXMtYW5kLWJpb2xvZ2ljYWxzL3BvbGljaWVzL3doby1yZWNvbW1lbmRhdGlvbnMtZm9yLXJvdXRpbmUtaW1tdW5pemF0aW9uLS0tc3VtbWFyeS10YWJsZXMKICogCSAKICovCmRlZmluZSAiUHJvdmlzaW9uIG9mIHRoZSBCQ0cgZG9zZSI6CiAgSU1NWkNvbS4iTm8gQkNHIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50IiBhbmQKICBpZiBJTU1aQ29tLiJISVYgU3RhdHVzIiBpbiBJTU1aYy4iSElWIHN0YXR1cyAtIEhJViBwb3NpdGl2ZSBDaG9pY2VzIiAKCXRoZW4gCgkJKAoJCQlDb2FsZXNjZSgoSU1NWkNvbS4iTW9zdCBSZWNlbnQgQ0Q0JSIgPiAyNSclJyBhbmQgSU1NWkNvbS4iQ3VycmVudCBQYXRpZW50IEFnZSBJbiBZZWFycyIgPCA1KSwgZmFsc2UpIG9yIAoJCQlDb2FsZXNjZSgoSU1NWkNvbS4iTW9zdCBSZWNlbnQgQ0Q0IENvdW50IiA+PSAyMDAgYW5kIElNTVpDb20uIkN1cnJlbnQgUGF0aWVudCBBZ2UgSW4gWWVhcnMiID49IDUpLCBmYWxzZSkKCQkpCgllbHNlIAoJCSgKCQkJSU1NWkNvbmYuIkhpZ2ggaW5jaWRlbmNlIG9mIFRCIGFuZC9vciBoaWdoIGxlcHJvc3kgYnVyZGVuIiA9IHRydWUgb3IKCQkJKAoJCQkJIlJpc2sgb2Ygb2NjdXBhdGlvbmFsIGV4cG9zdXJlIGluIGxvdyBhbmQgaGlnaCBUQiBhcmVhcyIgYW5kICgKCQkJCQlDb2FsZXNjZSgoSU1NWkNvbS4iTW9zdCBSZWNlbnQgVFNUIFRlc3QgUmVzdWx0IiBpbiBJTU1aYy4iTmVnYXRpdmUgUmVzdWx0IiksIGZhbHNlKSBvciAKCQkJCQlDb2FsZXNjZSgoSU1NWkNvbS4iTW9zdCBSZWNlbnQgSUdSQSBUZXN0IFJlc3VsdCIgaW4gSU1NWmMuIk5lZ2F0aXZlIFJlc3VsdCIpLCBmYWxzZSkKCQkJCSkKCQkJKQoJCSkKCmRlZmluZSAiU2NoZWR1bGUgRHVlIERhdGUgZm9yIEJDRyBkb3NlIjoKCVRvRGF0ZVRpbWUoIFBhdGllbnQuYmlydGhEYXRlICkKCmRlZmluZSAiU2hvdWxkIHZhY2NpbmF0ZSBwYXRpZW50IGZvciBCQ0ciOgoJIlByb3Zpc2lvbiBvZiB0aGUgQkNHIGRvc2UiIGFuZCAoIlNjaGVkdWxlIER1ZSBEYXRlIGZvciBCQ0cgZG9zZSIgPD0gKE5vdygpKSkKCQo="/>
</content>
</Library>
IG © 2021+ World Health Organization (WHO). Package who.fhir.immunization#0.1.0 based on FHIR 4.0.1. Generated 2023-04-13
Links: Table of Contents |
QA Report
| Version History | License