Knowledge Artifact Metadata Name (machine-readable) IMMZIND38 Title (human-readable) IMMZIND38 Status Draft Experimental false Description IMMZ.IND.38 Drop-out rate from the 1st dose of malaria vaccines to the 3rd dose Measure Steward WHO Steward Contact Details WHO: http://who.int Measure Metadata Version Number 0.2.0 Measure Scoring Proportion Measure Population Criteria Initial Population ID: IMMZ.IND.38.IP Description: Initial Population Logic Definition: Initial Population Denominator ID: IMMZ.IND.38.D Description: Denominator Logic Definition: Denominator Numerator ID: IMMZ.IND.38.N Description: Numerator Logic Definition: Numerator Stratifier ID: IMMZ.IND.38.S1 Code: By-Administrative Area Stratifier ID: IMMZ.IND.38.S2 Code: By-Sex Stratifier ID: IMMZ.IND.38.S3 Code: By-Age group Stratifier ID: IMMZ.IND.38.S4 Code: By-Age group Population Basis boolean Measure Logic Primary Library IMMZIND38Logic Dependency Description: FHIR model information Resource: http://fhir.org/guides/cqf/common/Library/FHIR-ModelInfo|4.0.1 Canonical URL: http://fhir.org/guides/cqf/common/Library/FHIR-ModelInfo|4.0.1 Dependency Description: Library Common Resource: IMMZCommon Canonical URL: http://smart.who.int/immunizations/Library/IMMZCommon Dependency Description: Library FHIRHelpers Resource: http://fhir.org/guides/cqf/common/Library/FHIRHelpers|4.0.1 Canonical URL: http://fhir.org/guides/cqf/common/Library/FHIRHelpers|4.0.1 Dependency Description: Library Malaria Resource: IMMZD2DTMalariaElements Canonical URL: http://smart.who.int/immunizations/Library/IMMZD2DTMalariaElements Dependency Description: Library Common Resource: IMMZCommon Canonical URL: http://smart.who.int/immunizations/Library/IMMZCommon Dependency Description: Library Elements Resource: IMMZElements Canonical URL: http://smart.who.int/immunizations/Library/IMMZElements Dependency Description: Library FHIRHelpers Resource: http://fhir.org/guides/cqf/common/Library/FHIRHelpers|4.0.1 Canonical URL: http://fhir.org/guides/cqf/common/Library/FHIRHelpers|4.0.1 Dependency Description: Library Concepts Resource: IMMZConcepts Canonical URL: http://smart.who.int/immunizations/Library/IMMZConcepts Dependency Description: Library WC Resource: WHOCommon Canonical URL: http://smart.who.int/immunizations/Library/WHOCommon Dependency Description: Library Elements Resource: http://smart.who.int/immunizations/Library/IMMZIndicatorElements Canonical URL: http://smart.who.int/immunizations/Library/IMMZIndicatorElements Dependency Description: Library Age Resource: IMMZAgeConcepts Canonical URL: http://smart.who.int/immunizations/Library/IMMZAgeConcepts Dependency Description: Library FHIRHelpers Resource: http://fhir.org/guides/cqf/common/Library/FHIRHelpers|4.0.1 Canonical URL: http://fhir.org/guides/cqf/common/Library/FHIRHelpers|4.0.1 Dependency Description: Code system ISO-8601-Derived Periods Resource: http://ohie.org/CodeSystem/iso-8601-derived-periods Canonical URL: http://ohie.org/CodeSystem/iso-8601-derived-periods Dependency Description: Code system Administrative Gender Codes Resource: AdministrativeGender Canonical URL: http://hl7.org/fhir/administrative-gender Dependency Description: Value set Malaria vaccines Resource: IMMZ.Z.DE27 ValueSet for Malaria vaccines Canonical URL: http://smart.who.int/immunizations/ValueSet/IMMZ.Z.DE27 Direct Reference Code Display: < 1 year Code: P0Y--P1Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: >= 1 year Code: P1Y--P9999Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 1 year Code: P1Y--P2Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 2 years Code: P2Y--P3Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 3 years Code: P3Y--P4Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 4 years Code: P4Y--P5Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 5 years Code: P5Y--P6Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 6 years Code: P6Y--P7Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 7 years Code: P7Y--P8Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 8 years Code: P8Y--P9Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 9 years Code: P9Y--P10Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 10 years Code: P10Y--P11Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 11 years Code: P11Y--P12Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 12 years Code: P12Y--P13Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 13 years Code: P13Y--P14Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 14 years Code: P14Y--P15Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 15 years Code: P15Y--P16Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 16 years Code: P16Y--P17Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 17 years Code: P17Y--P18Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 18 years Code: P18Y--P19Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 19 years Code: P19Y--P20Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 20 years Code: P20Y--P21Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 21 years Code: P21Y--P22Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 22 years Code: P22Y--P23Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 23 years Code: P23Y--P24Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 24 years Code: P24Y--P25Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 25 years Code: P25Y--P26Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 26 years Code: P26Y--P27Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 27 years Code: P27Y--P28Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 28 years Code: P28Y--P29Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 29 years Code: P29Y--P30Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 30 years Code: P30Y--P31Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 31 years Code: P31Y--P32Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 32 years Code: P32Y--P33Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 33 years Code: P33Y--P34Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 34 years Code: P34Y--P35Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 35 years Code: P35Y--P36Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 36 years Code: P36Y--P37Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 37 years Code: P37Y--P38Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 38 years Code: P38Y--P39Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 39 years Code: P39Y--P40Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 40 years Code: P40Y--P41Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 41 years Code: P41Y--P42Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 42 years Code: P42Y--P43Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 43 years Code: P43Y--P44Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 44 years Code: P44Y--P45Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 45 years Code: P45Y--P46Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 46 years Code: P46Y--P47Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 47 years Code: P47Y--P48Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 48 years Code: P48Y--P49Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 49 years Code: P49Y--P50Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 50 years Code: P50Y--P51Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 51 years Code: P51Y--P52Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 52 years Code: P52Y--P53Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 53 years Code: P53Y--P54Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 54 years Code: P54Y--P55Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 55 years Code: P55Y--P56Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 56 years Code: P56Y--P57Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 57 years Code: P57Y--P58Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 58 years Code: P58Y--P59Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 59 years Code: P59Y--P60Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 60 years Code: P60Y--P61Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 61 years Code: P61Y--P62Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 62 years Code: P62Y--P63Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 63 years Code: P63Y--P64Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 64 years Code: P64Y--P65Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 65 years Code: P65Y--P66Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 66 years Code: P66Y--P67Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 67 years Code: P67Y--P68Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 68 years Code: P68Y--P69Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 69 years Code: P69Y--P70Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 70 years Code: P70Y--P71Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 71 years Code: P71Y--P72Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 72 years Code: P72Y--P73Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 73 years Code: P73Y--P74Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 74 years Code: P74Y--P75Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 75 years Code: P75Y--P76Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 76 years Code: P76Y--P77Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 77 years Code: P77Y--P78Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 78 years Code: P78Y--P79Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 79 years Code: P79Y--P80Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 80 years Code: P80Y--P81Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 81 years Code: P81Y--P82Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 82 years Code: P82Y--P83Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 83 years Code: P83Y--P84Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 84 years Code: P84Y--P85Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 85 years Code: P85Y--P86Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 86 years Code: P86Y--P87Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 87 years Code: P87Y--P88Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 88 years Code: P88Y--P89Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 89 years Code: P89Y--P90Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 90 years Code: P90Y--P91Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 91 years Code: P91Y--P92Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 92 years Code: P92Y--P93Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 93 years Code: P93Y--P94Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 94 years Code: P94Y--P95Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 95 years Code: P95Y--P96Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 96 years Code: P96Y--P97Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 97 years Code: P97Y--P98Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 98 years Code: P98Y--P99Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: 99 years Code: P99Y--P100Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: >= 100 years Code: P100Y--P9999Y System: http://ohie.org/CodeSystem/iso-8601-derived-periods Direct Reference Code Display: Males Code: male System: http://hl7.org/fhir/administrative-gender Direct Reference Code Display: Females Code: female System: http://hl7.org/fhir/administrative-gender Direct Reference Code Display: Other/NA Code: other System: http://hl7.org/fhir/administrative-gender Parameter Name: Measurement Period Use: In Min Cardinality: 0 Max Cardinality: 1 Type: Period Parameter Name: Numerator Use: Out Min Cardinality: 0 Max Cardinality: 1 Type: boolean Parameter Name: Stratification 4 Use: Out Min Cardinality: 0 Max Cardinality: 1 Type: Coding Parameter Name: Stratification 3 Use: Out Min Cardinality: 0 Max Cardinality: 1 Type: Coding Parameter Name: Stratification 2 Use: Out Min Cardinality: 0 Max Cardinality: 1 Type: Coding Parameter Name: Stratification 1 Use: Out Min Cardinality: 0 Max Cardinality: 1 Type: string Parameter Name: Denominator Use: Out Min Cardinality: 0 Max Cardinality: 1 Type: boolean Parameter Name: Initial Population Use: Out Min Cardinality: 0 Max Cardinality: 1 Type: boolean Measure Logic Data Requirements Data Requirement Type: Immunization Profile(s): Immunization Must Support Elements: status, isSubpotent Data Requirement Type: Patient Profile(s): Patient Data Requirement Type: Immunization Profile(s): Immunization Must Support Elements: status, isSubpotent, vaccineCode Data Requirement Type: Patient Profile(s): Patient Must Support Elements: use Measure Logic Definitions Logic Definition Library Name: IMMZElements /** * @dataElement All Doses Administered to Patient */ define "Doses Administered to Patient": [Immunization] I where I.status = 'completed' and I.isSubpotent is not true Logic Definition Library Name: IMMZD2DTMalariaElements /* @internal: Malaria containing Doses Administered to Patient */ define "Malaria Doses Administered to Patient": Elements."Doses Administered to Patient" I where I.vaccineCode in Concepts."Malaria vaccines" Logic Definition Library Name: IMMZD2DTMalariaElements /* @internal: Malaria containing Doses Administered to Patient that are in the Primary series */ define "Malaria Primary Series Doses Administered to Patient": "Malaria Doses Administered to Patient".seriesPrimary() Logic Definition Library Name: IMMZIND38Logic /* @denominator: Number of clients in the target population who received dose 1 of malaria vaccine during the reporting period @pseudocode: COUNT clients with an immunization event WHERE "Vaccine type" = "Malaria vaccines" for the 1st dose in the primary series AND "Date and time of vaccination" is during the reporting period @note: Updated to match the definition to only include those who are due for the 3rd dose. If client ever received a 2nd dose the due date is 4 weeks after that. If client has only received the 1st dose, the due date is 8 weeks after that. Only include in the denominator those who are due during the measurement period.*/ define "Denominator": if exists (Malaria."Malaria Primary Series Doses Administered to Patient".getDose('2')) then exists( (Malaria."Malaria Primary Series Doses Administered to Patient".getDose('2')) I where (start of I.occurrence.toInterval() + 4 weeks) during "Measurement Period" ) else exists( (Malaria."Malaria Primary Series Doses Administered to Patient".getDose('1')) I where (start of I.occurrence.toInterval() + 8 weeks) during "Measurement Period" ) Logic Definition Library Name: IMMZIND38Logic /* @numerator: Number of clients who received a 1st dose of malaria vaccine during the reporting period who should have received (via scheduling logic) the 3rd dose of malaria vaccine during the reporting period but did not receive it @pseudocode: (COUNT of clients with an immunization event WHERE "Vaccine type" = "Malaria vaccines" for the 1st dose in the primary series AND "Date and time of vaccination" is during the reporting period) - (COUNT of clients with an immunization event WHERE "Vaccine type" = "Malaria vaccines" for the 3rd dose in the primary series AND "Date and time of vaccination" is during the reporting period) @note: Only include those from the denominator that did not receive a 3rd dose during the measurement period. Those where the 3rd dose due date is during the period but have not received the 3rd dose. */ define "Numerator": "Denominator" and not exists( (Malaria."Malaria Primary Series Doses Administered to Patient".getDose('3')) I where I.occurrence.toInterval() starts during "Measurement Period" ) Logic Definition Library Name: IMMZIndicatorElements /* @stratifier: Infant disaggregations by age */ define "Infant By Age Stratifier": case when AgeInYearsAt(end of "Measurement Period") < 1 then Age."P0Y--P1Y" when AgeInYearsAt(end of "Measurement Period") >= 1 then Age."P1Y--P9999Y" else null end Logic Definition Library Name: IMMZIND38Logic define "Stratification 4": Elements."Infant By Age Stratifier" Logic Definition Library Name: IMMZIndicatorElements /* @stratifier: Age in Years */ define "Age Stratifier": case when AgeInYearsAt(end of "Measurement Period") < 1 then Age."P0Y--P1Y" when AgeInYearsAt(end of "Measurement Period") < 2 then Age."P1Y--P2Y" when AgeInYearsAt(end of "Measurement Period") < 3 then Age."P2Y--P3Y" when AgeInYearsAt(end of "Measurement Period") < 4 then Age."P3Y--P4Y" when AgeInYearsAt(end of "Measurement Period") < 5 then Age."P4Y--P5Y" when AgeInYearsAt(end of "Measurement Period") < 6 then Age."P5Y--P6Y" when AgeInYearsAt(end of "Measurement Period") < 7 then Age."P6Y--P7Y" when AgeInYearsAt(end of "Measurement Period") < 8 then Age."P7Y--P8Y" when AgeInYearsAt(end of "Measurement Period") < 9 then Age."P8Y--P9Y" when AgeInYearsAt(end of "Measurement Period") < 10 then Age."P9Y--P10Y" when AgeInYearsAt(end of "Measurement Period") < 11 then Age."P10Y--P11Y" when AgeInYearsAt(end of "Measurement Period") < 12 then Age."P11Y--P12Y" when AgeInYearsAt(end of "Measurement Period") < 13 then Age."P12Y--P13Y" when AgeInYearsAt(end of "Measurement Period") < 14 then Age."P13Y--P14Y" when AgeInYearsAt(end of "Measurement Period") < 15 then Age."P14Y--P15Y" when AgeInYearsAt(end of "Measurement Period") < 16 then Age."P15Y--P16Y" when AgeInYearsAt(end of "Measurement Period") < 17 then Age."P16Y--P17Y" when AgeInYearsAt(end of "Measurement Period") < 18 then Age."P17Y--P18Y" when AgeInYearsAt(end of "Measurement Period") < 19 then Age."P18Y--P19Y" when AgeInYearsAt(end of "Measurement Period") < 20 then Age."P19Y--P20Y" when AgeInYearsAt(end of "Measurement Period") < 21 then Age."P20Y--P21Y" when AgeInYearsAt(end of "Measurement Period") < 22 then Age."P21Y--P22Y" when AgeInYearsAt(end of "Measurement Period") < 23 then Age."P22Y--P23Y" when AgeInYearsAt(end of "Measurement Period") < 24 then Age."P23Y--P24Y" when AgeInYearsAt(end of "Measurement Period") < 25 then Age."P24Y--P25Y" when AgeInYearsAt(end of "Measurement Period") < 26 then Age."P25Y--P26Y" when AgeInYearsAt(end of "Measurement Period") < 27 then Age."P26Y--P27Y" when AgeInYearsAt(end of "Measurement Period") < 28 then Age."P27Y--P28Y" when AgeInYearsAt(end of "Measurement Period") < 29 then Age."P28Y--P29Y" when AgeInYearsAt(end of "Measurement Period") < 30 then Age."P29Y--P30Y" when AgeInYearsAt(end of "Measurement Period") < 31 then Age."P30Y--P31Y" when AgeInYearsAt(end of "Measurement Period") < 32 then Age."P31Y--P32Y" when AgeInYearsAt(end of "Measurement Period") < 33 then Age."P32Y--P33Y" when AgeInYearsAt(end of "Measurement Period") < 34 then Age."P33Y--P34Y" when AgeInYearsAt(end of "Measurement Period") < 35 then Age."P34Y--P35Y" when AgeInYearsAt(end of "Measurement Period") < 36 then Age."P35Y--P36Y" when AgeInYearsAt(end of "Measurement Period") < 37 then Age."P36Y--P37Y" when AgeInYearsAt(end of "Measurement Period") < 38 then Age."P37Y--P38Y" when AgeInYearsAt(end of "Measurement Period") < 39 then Age."P38Y--P39Y" when AgeInYearsAt(end of "Measurement Period") < 40 then Age."P39Y--P40Y" when AgeInYearsAt(end of "Measurement Period") < 41 then Age."P40Y--P41Y" when AgeInYearsAt(end of "Measurement Period") < 42 then Age."P41Y--P42Y" when AgeInYearsAt(end of "Measurement Period") < 43 then Age."P42Y--P43Y" when AgeInYearsAt(end of "Measurement Period") < 44 then Age."P43Y--P44Y" when AgeInYearsAt(end of "Measurement Period") < 45 then Age."P44Y--P45Y" when AgeInYearsAt(end of "Measurement Period") < 46 then Age."P45Y--P46Y" when AgeInYearsAt(end of "Measurement Period") < 47 then Age."P46Y--P47Y" when AgeInYearsAt(end of "Measurement Period") < 48 then Age."P47Y--P48Y" when AgeInYearsAt(end of "Measurement Period") < 49 then Age."P48Y--P49Y" when AgeInYearsAt(end of "Measurement Period") < 50 then Age."P49Y--P50Y" when AgeInYearsAt(end of "Measurement Period") < 51 then Age."P50Y--P51Y" when AgeInYearsAt(end of "Measurement Period") < 52 then Age."P51Y--P52Y" when AgeInYearsAt(end of "Measurement Period") < 53 then Age."P52Y--P53Y" when AgeInYearsAt(end of "Measurement Period") < 54 then Age."P53Y--P54Y" when AgeInYearsAt(end of "Measurement Period") < 55 then Age."P54Y--P55Y" when AgeInYearsAt(end of "Measurement Period") < 56 then Age."P55Y--P56Y" when AgeInYearsAt(end of "Measurement Period") < 57 then Age."P56Y--P57Y" when AgeInYearsAt(end of "Measurement Period") < 58 then Age."P57Y--P58Y" when AgeInYearsAt(end of "Measurement Period") < 59 then Age."P58Y--P59Y" when AgeInYearsAt(end of "Measurement Period") < 60 then Age."P59Y--P60Y" when AgeInYearsAt(end of "Measurement Period") < 61 then Age."P60Y--P61Y" when AgeInYearsAt(end of "Measurement Period") < 62 then Age."P61Y--P62Y" when AgeInYearsAt(end of "Measurement Period") < 63 then Age."P62Y--P63Y" when AgeInYearsAt(end of "Measurement Period") < 64 then Age."P63Y--P64Y" when AgeInYearsAt(end of "Measurement Period") < 65 then Age."P64Y--P65Y" when AgeInYearsAt(end of "Measurement Period") < 66 then Age."P65Y--P66Y" when AgeInYearsAt(end of "Measurement Period") < 67 then Age."P66Y--P67Y" when AgeInYearsAt(end of "Measurement Period") < 68 then Age."P67Y--P68Y" when AgeInYearsAt(end of "Measurement Period") < 69 then Age."P68Y--P69Y" when AgeInYearsAt(end of "Measurement Period") < 70 then Age."P69Y--P70Y" when AgeInYearsAt(end of "Measurement Period") < 71 then Age."P70Y--P71Y" when AgeInYearsAt(end of "Measurement Period") < 72 then Age."P71Y--P72Y" when AgeInYearsAt(end of "Measurement Period") < 73 then Age."P72Y--P73Y" when AgeInYearsAt(end of "Measurement Period") < 74 then Age."P73Y--P74Y" when AgeInYearsAt(end of "Measurement Period") < 75 then Age."P74Y--P75Y" when AgeInYearsAt(end of "Measurement Period") < 76 then Age."P75Y--P76Y" when AgeInYearsAt(end of "Measurement Period") < 77 then Age."P76Y--P77Y" when AgeInYearsAt(end of "Measurement Period") < 78 then Age."P77Y--P78Y" when AgeInYearsAt(end of "Measurement Period") < 79 then Age."P78Y--P79Y" when AgeInYearsAt(end of "Measurement Period") < 80 then Age."P79Y--P80Y" when AgeInYearsAt(end of "Measurement Period") < 81 then Age."P80Y--P81Y" when AgeInYearsAt(end of "Measurement Period") < 82 then Age."P81Y--P82Y" when AgeInYearsAt(end of "Measurement Period") < 83 then Age."P82Y--P83Y" when AgeInYearsAt(end of "Measurement Period") < 84 then Age."P83Y--P84Y" when AgeInYearsAt(end of "Measurement Period") < 85 then Age."P84Y--P85Y" when AgeInYearsAt(end of "Measurement Period") < 86 then Age."P85Y--P86Y" when AgeInYearsAt(end of "Measurement Period") < 87 then Age."P86Y--P87Y" when AgeInYearsAt(end of "Measurement Period") < 88 then Age."P87Y--P88Y" when AgeInYearsAt(end of "Measurement Period") < 89 then Age."P88Y--P89Y" when AgeInYearsAt(end of "Measurement Period") < 90 then Age."P89Y--P90Y" when AgeInYearsAt(end of "Measurement Period") < 91 then Age."P90Y--P91Y" when AgeInYearsAt(end of "Measurement Period") < 92 then Age."P91Y--P92Y" when AgeInYearsAt(end of "Measurement Period") < 93 then Age."P92Y--P93Y" when AgeInYearsAt(end of "Measurement Period") < 94 then Age."P93Y--P94Y" when AgeInYearsAt(end of "Measurement Period") < 95 then Age."P94Y--P95Y" when AgeInYearsAt(end of "Measurement Period") < 96 then Age."P95Y--P96Y" when AgeInYearsAt(end of "Measurement Period") < 97 then Age."P96Y--P97Y" when AgeInYearsAt(end of "Measurement Period") < 98 then Age."P97Y--P98Y" when AgeInYearsAt(end of "Measurement Period") < 99 then Age."P98Y--P99Y" when AgeInYearsAt(end of "Measurement Period") < 100 then Age."P99Y--P100Y" when AgeInYearsAt(end of "Measurement Period") >= 100 then Age."P100Y--P9999Y" else null end Logic Definition Library Name: IMMZIND38Logic define "Stratification 3": Elements."Age Stratifier" Logic Definition Library Name: IMMZIndicatorElements /* @stratifier: By Administrative Gender of Patient Stratifier */ define "By Administrative Gender Stratifier": case when Patient.gender = 'male' then "Males" when Patient.gender = 'female' then "Females" else "Other" end Logic Definition Library Name: IMMZIND38Logic define "Stratification 2": Elements."By Administrative Gender Stratifier" Logic Definition Library Name: IMMZIndicatorElements /* @stratifier: By Geographic Region of Patient Stratifier */ define "By Geographic Region Stratifier": First(Patient.address A where A.use in { 'home' }).state Logic Definition Library Name: IMMZIND38Logic /* @disaggregation: Administrative area Sex Age in years Age group (depending on schedule) */ define "Stratification 1": Elements."By Geographic Region Stratifier" Logic Definition Library Name: IMMZIND38Logic /* * As defined by Member State */ define "Initial Population": true Logic Definition Library Name: IMMZCommon /** * @description: Gets a given immunization from a list that matches the dose number */ define fluent function getDose(immunizations List<Immunization>, doseNumber String): immunizations I where exists( I.protocolApplied pa where pa.doseNumber = doseNumber ) Logic Definition Library Name: FHIRHelpers define function ToString(value string): value.value Logic Definition Library Name: IMMZCommon /** * @description: Gets the doses from the primary series */ define fluent function seriesPrimary(immunizations List<Immunization>): immunizations I where exists( I.protocolApplied pa where pa.series = 'Primary series' ) Logic Definition Library Name: FHIRHelpers define function ToString(value ImmunizationStatus): value.value Logic Definition Library Name: FHIRHelpers define function ToBoolean(value boolean): value.value Logic Definition Library Name: FHIRHelpers define function ToConcept(concept FHIR.CodeableConcept): if concept is null then null else System.Concept { codes: concept.coding C return ToCode(C), display: concept.text.value } Logic Definition Library Name: FHIRHelpers define function ToCode(coding FHIR.Coding): if coding is null then null else System.Code { code: coding.code.value, system: coding.system.value, version: coding.version.value, display: coding.display.value } Logic Definition Library Name: FHIRHelpers define function ToString(value AdministrativeGender): value.value Logic Definition Library Name: FHIRHelpers define function ToString(value AddressUse): value.value Generated using version 0.4.6 of the sample-content-ig Liquid templates
/** * @dataElement All Doses Administered to Patient */ define "Doses Administered to Patient": [Immunization] I where I.status = 'completed' and I.isSubpotent is not true
/* @internal: Malaria containing Doses Administered to Patient */ define "Malaria Doses Administered to Patient": Elements."Doses Administered to Patient" I where I.vaccineCode in Concepts."Malaria vaccines"
Malaria Primary Series Doses Administered to Patient
/* @internal: Malaria containing Doses Administered to Patient that are in the Primary series */ define "Malaria Primary Series Doses Administered to Patient": "Malaria Doses Administered to Patient".seriesPrimary()
/* @denominator: Number of clients in the target population who received dose 1 of malaria vaccine during the reporting period @pseudocode: COUNT clients with an immunization event WHERE "Vaccine type" = "Malaria vaccines" for the 1st dose in the primary series AND "Date and time of vaccination" is during the reporting period @note: Updated to match the definition to only include those who are due for the 3rd dose. If client ever received a 2nd dose the due date is 4 weeks after that. If client has only received the 1st dose, the due date is 8 weeks after that. Only include in the denominator those who are due during the measurement period.*/ define "Denominator": if exists (Malaria."Malaria Primary Series Doses Administered to Patient".getDose('2')) then exists( (Malaria."Malaria Primary Series Doses Administered to Patient".getDose('2')) I where (start of I.occurrence.toInterval() + 4 weeks) during "Measurement Period" ) else exists( (Malaria."Malaria Primary Series Doses Administered to Patient".getDose('1')) I where (start of I.occurrence.toInterval() + 8 weeks) during "Measurement Period" )
/* @numerator: Number of clients who received a 1st dose of malaria vaccine during the reporting period who should have received (via scheduling logic) the 3rd dose of malaria vaccine during the reporting period but did not receive it @pseudocode: (COUNT of clients with an immunization event WHERE "Vaccine type" = "Malaria vaccines" for the 1st dose in the primary series AND "Date and time of vaccination" is during the reporting period) - (COUNT of clients with an immunization event WHERE "Vaccine type" = "Malaria vaccines" for the 3rd dose in the primary series AND "Date and time of vaccination" is during the reporting period) @note: Only include those from the denominator that did not receive a 3rd dose during the measurement period. Those where the 3rd dose due date is during the period but have not received the 3rd dose. */ define "Numerator": "Denominator" and not exists( (Malaria."Malaria Primary Series Doses Administered to Patient".getDose('3')) I where I.occurrence.toInterval() starts during "Measurement Period" )
/* @stratifier: Infant disaggregations by age */ define "Infant By Age Stratifier": case when AgeInYearsAt(end of "Measurement Period") < 1 then Age."P0Y--P1Y" when AgeInYearsAt(end of "Measurement Period") >= 1 then Age."P1Y--P9999Y" else null end
define "Stratification 4": Elements."Infant By Age Stratifier"
/* @stratifier: Age in Years */ define "Age Stratifier": case when AgeInYearsAt(end of "Measurement Period") < 1 then Age."P0Y--P1Y" when AgeInYearsAt(end of "Measurement Period") < 2 then Age."P1Y--P2Y" when AgeInYearsAt(end of "Measurement Period") < 3 then Age."P2Y--P3Y" when AgeInYearsAt(end of "Measurement Period") < 4 then Age."P3Y--P4Y" when AgeInYearsAt(end of "Measurement Period") < 5 then Age."P4Y--P5Y" when AgeInYearsAt(end of "Measurement Period") < 6 then Age."P5Y--P6Y" when AgeInYearsAt(end of "Measurement Period") < 7 then Age."P6Y--P7Y" when AgeInYearsAt(end of "Measurement Period") < 8 then Age."P7Y--P8Y" when AgeInYearsAt(end of "Measurement Period") < 9 then Age."P8Y--P9Y" when AgeInYearsAt(end of "Measurement Period") < 10 then Age."P9Y--P10Y" when AgeInYearsAt(end of "Measurement Period") < 11 then Age."P10Y--P11Y" when AgeInYearsAt(end of "Measurement Period") < 12 then Age."P11Y--P12Y" when AgeInYearsAt(end of "Measurement Period") < 13 then Age."P12Y--P13Y" when AgeInYearsAt(end of "Measurement Period") < 14 then Age."P13Y--P14Y" when AgeInYearsAt(end of "Measurement Period") < 15 then Age."P14Y--P15Y" when AgeInYearsAt(end of "Measurement Period") < 16 then Age."P15Y--P16Y" when AgeInYearsAt(end of "Measurement Period") < 17 then Age."P16Y--P17Y" when AgeInYearsAt(end of "Measurement Period") < 18 then Age."P17Y--P18Y" when AgeInYearsAt(end of "Measurement Period") < 19 then Age."P18Y--P19Y" when AgeInYearsAt(end of "Measurement Period") < 20 then Age."P19Y--P20Y" when AgeInYearsAt(end of "Measurement Period") < 21 then Age."P20Y--P21Y" when AgeInYearsAt(end of "Measurement Period") < 22 then Age."P21Y--P22Y" when AgeInYearsAt(end of "Measurement Period") < 23 then Age."P22Y--P23Y" when AgeInYearsAt(end of "Measurement Period") < 24 then Age."P23Y--P24Y" when AgeInYearsAt(end of "Measurement Period") < 25 then Age."P24Y--P25Y" when AgeInYearsAt(end of "Measurement Period") < 26 then Age."P25Y--P26Y" when AgeInYearsAt(end of "Measurement Period") < 27 then Age."P26Y--P27Y" when AgeInYearsAt(end of "Measurement Period") < 28 then Age."P27Y--P28Y" when AgeInYearsAt(end of "Measurement Period") < 29 then Age."P28Y--P29Y" when AgeInYearsAt(end of "Measurement Period") < 30 then Age."P29Y--P30Y" when AgeInYearsAt(end of "Measurement Period") < 31 then Age."P30Y--P31Y" when AgeInYearsAt(end of "Measurement Period") < 32 then Age."P31Y--P32Y" when AgeInYearsAt(end of "Measurement Period") < 33 then Age."P32Y--P33Y" when AgeInYearsAt(end of "Measurement Period") < 34 then Age."P33Y--P34Y" when AgeInYearsAt(end of "Measurement Period") < 35 then Age."P34Y--P35Y" when AgeInYearsAt(end of "Measurement Period") < 36 then Age."P35Y--P36Y" when AgeInYearsAt(end of "Measurement Period") < 37 then Age."P36Y--P37Y" when AgeInYearsAt(end of "Measurement Period") < 38 then Age."P37Y--P38Y" when AgeInYearsAt(end of "Measurement Period") < 39 then Age."P38Y--P39Y" when AgeInYearsAt(end of "Measurement Period") < 40 then Age."P39Y--P40Y" when AgeInYearsAt(end of "Measurement Period") < 41 then Age."P40Y--P41Y" when AgeInYearsAt(end of "Measurement Period") < 42 then Age."P41Y--P42Y" when AgeInYearsAt(end of "Measurement Period") < 43 then Age."P42Y--P43Y" when AgeInYearsAt(end of "Measurement Period") < 44 then Age."P43Y--P44Y" when AgeInYearsAt(end of "Measurement Period") < 45 then Age."P44Y--P45Y" when AgeInYearsAt(end of "Measurement Period") < 46 then Age."P45Y--P46Y" when AgeInYearsAt(end of "Measurement Period") < 47 then Age."P46Y--P47Y" when AgeInYearsAt(end of "Measurement Period") < 48 then Age."P47Y--P48Y" when AgeInYearsAt(end of "Measurement Period") < 49 then Age."P48Y--P49Y" when AgeInYearsAt(end of "Measurement Period") < 50 then Age."P49Y--P50Y" when AgeInYearsAt(end of "Measurement Period") < 51 then Age."P50Y--P51Y" when AgeInYearsAt(end of "Measurement Period") < 52 then Age."P51Y--P52Y" when AgeInYearsAt(end of "Measurement Period") < 53 then Age."P52Y--P53Y" when AgeInYearsAt(end of "Measurement Period") < 54 then Age."P53Y--P54Y" when AgeInYearsAt(end of "Measurement Period") < 55 then Age."P54Y--P55Y" when AgeInYearsAt(end of "Measurement Period") < 56 then Age."P55Y--P56Y" when AgeInYearsAt(end of "Measurement Period") < 57 then Age."P56Y--P57Y" when AgeInYearsAt(end of "Measurement Period") < 58 then Age."P57Y--P58Y" when AgeInYearsAt(end of "Measurement Period") < 59 then Age."P58Y--P59Y" when AgeInYearsAt(end of "Measurement Period") < 60 then Age."P59Y--P60Y" when AgeInYearsAt(end of "Measurement Period") < 61 then Age."P60Y--P61Y" when AgeInYearsAt(end of "Measurement Period") < 62 then Age."P61Y--P62Y" when AgeInYearsAt(end of "Measurement Period") < 63 then Age."P62Y--P63Y" when AgeInYearsAt(end of "Measurement Period") < 64 then Age."P63Y--P64Y" when AgeInYearsAt(end of "Measurement Period") < 65 then Age."P64Y--P65Y" when AgeInYearsAt(end of "Measurement Period") < 66 then Age."P65Y--P66Y" when AgeInYearsAt(end of "Measurement Period") < 67 then Age."P66Y--P67Y" when AgeInYearsAt(end of "Measurement Period") < 68 then Age."P67Y--P68Y" when AgeInYearsAt(end of "Measurement Period") < 69 then Age."P68Y--P69Y" when AgeInYearsAt(end of "Measurement Period") < 70 then Age."P69Y--P70Y" when AgeInYearsAt(end of "Measurement Period") < 71 then Age."P70Y--P71Y" when AgeInYearsAt(end of "Measurement Period") < 72 then Age."P71Y--P72Y" when AgeInYearsAt(end of "Measurement Period") < 73 then Age."P72Y--P73Y" when AgeInYearsAt(end of "Measurement Period") < 74 then Age."P73Y--P74Y" when AgeInYearsAt(end of "Measurement Period") < 75 then Age."P74Y--P75Y" when AgeInYearsAt(end of "Measurement Period") < 76 then Age."P75Y--P76Y" when AgeInYearsAt(end of "Measurement Period") < 77 then Age."P76Y--P77Y" when AgeInYearsAt(end of "Measurement Period") < 78 then Age."P77Y--P78Y" when AgeInYearsAt(end of "Measurement Period") < 79 then Age."P78Y--P79Y" when AgeInYearsAt(end of "Measurement Period") < 80 then Age."P79Y--P80Y" when AgeInYearsAt(end of "Measurement Period") < 81 then Age."P80Y--P81Y" when AgeInYearsAt(end of "Measurement Period") < 82 then Age."P81Y--P82Y" when AgeInYearsAt(end of "Measurement Period") < 83 then Age."P82Y--P83Y" when AgeInYearsAt(end of "Measurement Period") < 84 then Age."P83Y--P84Y" when AgeInYearsAt(end of "Measurement Period") < 85 then Age."P84Y--P85Y" when AgeInYearsAt(end of "Measurement Period") < 86 then Age."P85Y--P86Y" when AgeInYearsAt(end of "Measurement Period") < 87 then Age."P86Y--P87Y" when AgeInYearsAt(end of "Measurement Period") < 88 then Age."P87Y--P88Y" when AgeInYearsAt(end of "Measurement Period") < 89 then Age."P88Y--P89Y" when AgeInYearsAt(end of "Measurement Period") < 90 then Age."P89Y--P90Y" when AgeInYearsAt(end of "Measurement Period") < 91 then Age."P90Y--P91Y" when AgeInYearsAt(end of "Measurement Period") < 92 then Age."P91Y--P92Y" when AgeInYearsAt(end of "Measurement Period") < 93 then Age."P92Y--P93Y" when AgeInYearsAt(end of "Measurement Period") < 94 then Age."P93Y--P94Y" when AgeInYearsAt(end of "Measurement Period") < 95 then Age."P94Y--P95Y" when AgeInYearsAt(end of "Measurement Period") < 96 then Age."P95Y--P96Y" when AgeInYearsAt(end of "Measurement Period") < 97 then Age."P96Y--P97Y" when AgeInYearsAt(end of "Measurement Period") < 98 then Age."P97Y--P98Y" when AgeInYearsAt(end of "Measurement Period") < 99 then Age."P98Y--P99Y" when AgeInYearsAt(end of "Measurement Period") < 100 then Age."P99Y--P100Y" when AgeInYearsAt(end of "Measurement Period") >= 100 then Age."P100Y--P9999Y" else null end
define "Stratification 3": Elements."Age Stratifier"
/* @stratifier: By Administrative Gender of Patient Stratifier */ define "By Administrative Gender Stratifier": case when Patient.gender = 'male' then "Males" when Patient.gender = 'female' then "Females" else "Other" end
define "Stratification 2": Elements."By Administrative Gender Stratifier"
/* @stratifier: By Geographic Region of Patient Stratifier */ define "By Geographic Region Stratifier": First(Patient.address A where A.use in { 'home' }).state
/* @disaggregation: Administrative area Sex Age in years Age group (depending on schedule) */ define "Stratification 1": Elements."By Geographic Region Stratifier"
/* * As defined by Member State */ define "Initial Population": true
/** * @description: Gets a given immunization from a list that matches the dose number */ define fluent function getDose(immunizations List<Immunization>, doseNumber String): immunizations I where exists( I.protocolApplied pa where pa.doseNumber = doseNumber )
define function ToString(value string): value.value
/** * @description: Gets the doses from the primary series */ define fluent function seriesPrimary(immunizations List<Immunization>): immunizations I where exists( I.protocolApplied pa where pa.series = 'Primary series' )
define function ToString(value ImmunizationStatus): value.value
define function ToBoolean(value boolean): value.value
define function ToConcept(concept FHIR.CodeableConcept): if concept is null then null else System.Concept { codes: concept.coding C return ToCode(C), display: concept.text.value }
define function ToCode(coding FHIR.Coding): if coding is null then null else System.Code { code: coding.code.value, system: coding.system.value, version: coding.version.value, display: coding.display.value }
define function ToString(value AdministrativeGender): value.value
define function ToString(value AddressUse): value.value
IMMZ.IND.38 Drop-out rate from the 1st dose of malaria vaccines to the 3rd dose