Skip to content

Commit 086f220

Browse files
committed
Added in Yellow Fever indicator (26) and measure. Updated measures to use a rulesets.
1 parent d70e1e5 commit 086f220

27 files changed

+954
-169
lines changed

input/cql/IMMZIND26YellowFever.cql

+65
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
/*
2+
* Library: IMMZ.IND.26.YellowFever
3+
* Immunization coverage for Yellow Fever containing vaccine
4+
* The percentage in the target population who have received one dose of Yellow Fever (YF) vaccine during reporting period
5+
*
6+
*
7+
* References: WHO / UNICEF Joint Reporting Form
8+
* WHO Immunization data portal
9+
*/
10+
11+
library IMMZIND26YellowFever
12+
13+
// Start Skeleton CQL
14+
using FHIR version '4.0.1'
15+
include FHIRHelpers version '4.0.1'
16+
include IMMZCommon called IMMZCom
17+
include IMMZConcepts called IMMZc
18+
include IMMZConfig called IMMZCon
19+
//include IMMZIndicatorCommon called IMMZIndCom
20+
include IMMZVaccineLibrary called IMMZvl
21+
include FHIRCommon called FC
22+
include IMMZINDYellowFever called Ind
23+
include IMMZStratifiers called Stratifiers
24+
// End Skeleton CQL
25+
parameter "Measurement Period" Interval<DateTime> default Interval[@2023-01-01T00:00:00.0, @2023-12-31T23:59:59.9]
26+
27+
context Patient
28+
29+
/*
30+
@population: Initial population for first dose: Any one over 9 months
31+
*/
32+
define "Initial Population":
33+
Patient.birthDate + 9 months before end of "Measurement Period"
34+
35+
/*
36+
@numerator: Number of yellow fever doses administered through routine services during reporting period
37+
@computation: COUNT of immunization events WHERE "Vaccine type" = "Yellow fever containing vaccines" AND "Date and time of vaccination" is during the reporting period
38+
*/
39+
define "Numerator":
40+
exists( Ind."Yellow Fever Doses in Measurement Period" I where IMMZCom.ToPositiveInt((singleton from I.protocolApplied).doseNumber) = 1 )
41+
42+
/*
43+
@denominator: Number in target group
44+
@computation: As defined by the Member States
45+
*/
46+
define "Denominator":
47+
"Initial Population"
48+
49+
/*
50+
@disaggregation: Administrative area
51+
Sex
52+
Age in years
53+
Age group (depending on schedule)
54+
*/
55+
define "Stratification 1":
56+
Stratifiers."Administrative Area"
57+
58+
define "Stratification 2":
59+
Stratifiers."Sex"
60+
61+
define "Stratification 3":
62+
Stratifiers."Age"
63+
64+
define "Stratification 4":
65+
Stratifiers."Age Group"

input/cql/IMMZINDMeasles.cql

-15
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,5 @@
11
/*
22
* Library: IMMZ.IND.Measles
3-
* Immunization coverage for Measles containing vaccine (Estimated Denominator)
4-
* Compares the administered doses of measles containing vaccines (MCV) with the estimated number of surviving infants (if dose 1) or a country supplied denominator (if dose 2) expressed as a percentage.
5-
*
6-
* Numerator: Number of administrations of vaccinations containing a Measles component during reporting period
7-
* Numerator Computation: COUNT immunization events WHERE administered product is a Measles vaccine (IMMZ.Z.DE9) during reporting period
8-
* Denominator: Estimated number of surviving infants (for dose 1) and country supplied denominator for dose sequence 2 (see comments)
9-
* Denominator Computation: PARAMETER number of surviving infants (if Dose Sequence = 1) or PARAMETER of country supplied denominator (if Dose Sequence = 2)
10-
*
11-
* Disaggregation:
12-
* - Dose Sequence (1, 2)
13-
* - Age Group (< 1 year or > 1 year)
14-
* - Geographic Region
15-
* - Administrative Gender (or Biological Sex)
16-
*
17-
* References: WHO Immunization Facility Analysis Guide (1), WHO / UNICEF Joint Reporting Form (3 - elements 4240 and 4260 )
183
*/
194

205
library IMMZINDMeasles

input/cql/IMMZINDYellowFever.cql

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/*
2+
* Library: IMMZ.IND.YellowFever
3+
*/
4+
5+
library IMMZINDYellowFever
6+
7+
// Start Skeleton CQL
8+
using FHIR version '4.0.1'
9+
include FHIRHelpers version '4.0.1'
10+
include IMMZCommon called IMMZCom
11+
include IMMZConcepts called IMMZc
12+
include IMMZConfig called IMMZCon
13+
//include IMMZIndicatorCommon called IMMZIndCom
14+
include IMMZVaccineLibrary called IMMZvl
15+
include FHIRCommon called FC
16+
include IMMZD2DTYellowFeverInput called YF
17+
// End Skeleton CQL
18+
parameter "Measurement Period" Interval<DateTime> default Interval[@2023-01-01T00:00:00.0, @2023-12-31T23:59:59.9]
19+
20+
context Patient
21+
22+
/*
23+
* Measles doses given during measurement period
24+
*/
25+
define "Yellow Fever Doses in Measurement Period":
26+
YF."Yellow Fever Doses Administered to Patient" I where I.occurrence during "Measurement Period"
27+

input/fsh/measures/IMMZIND07MeaslesHighTx.fsh

+2-48
Original file line numberDiff line numberDiff line change
@@ -2,51 +2,5 @@ Instance: IMMZIND07MeaslesHighTx
22
InstanceOf: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/proportion-measure-cqfm
33
Title: "IMMZIND07MeaslesHighTx"
44

5-
* description = "IMMZ.IND.07 Measles indicator for first dose in High Transmission area."
6-
* url = "http://smart.who.int/ig/smart-immunizations/Measure/IMMZIND07MeaslesHighTx"
7-
* version = "0.1.0"
8-
* status = #draft
9-
* experimental = false
10-
* date = "2024-01-16"
11-
* name = "IMMZIND07MeaslesHighTx"
12-
* publisher = "World Health Organization (WHO)"
13-
* library = "http://smart.who.int/ig/smart-immunizations/Library/IMMZIND07MeaslesHighTx"
14-
* scoring = $measure-scoring#proportion "Proportion"
15-
* group[+]
16-
* population[initialPopulation]
17-
* extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis].valueCode = #boolean
18-
* id = "IMMZ.IND.07.HTx.IP"
19-
* description = "Initial Population"
20-
* code = $measure-population#initial-population "Initial Population"
21-
* criteria.language = #text/cql
22-
* criteria.expression = "Initial Population"
23-
* population[denominator]
24-
* extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis].valueCode = #boolean
25-
* id = "IMMZ.IND.07.HTx.D"
26-
* description = "Denominator"
27-
* code = $measure-population#denominator "Denominator"
28-
* criteria.language = #text/cql
29-
* criteria.expression = "Denominator"
30-
* population[numerator]
31-
* extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis].valueCode = #boolean
32-
* id = "IMMZ.IND.07.HTx.N"
33-
* description = "Numerator"
34-
* code = $measure-population#numerator "Numerator"
35-
* criteria.language = #text/cql
36-
* criteria.expression = "Numerator"
37-
* stratifier[+]
38-
* id = "IMMZ.IND.07.HTx.S1"
39-
* criteria.language = #text/cql
40-
* criteria.expression = "Stratification 1"
41-
* stratifier[+]
42-
* id = "IMMZ.IND.07.HTx.S2"
43-
* criteria.language = #text/cql
44-
* criteria.expression = "Stratification 2"
45-
* stratifier[+]
46-
* id = "IMMZ.IND.07.HTx.S3"
47-
* criteria.language = #text/cql
48-
* criteria.expression = "Stratification 3"
49-
* stratifier[+]
50-
* id = "IMMZ.IND.07.HTx.S4"
51-
* criteria.language = #text/cql
52-
* criteria.expression = "Stratification 4"
5+
* insert MeasureProportion( IMMZ.IND.07 Measles indicator for first dose in High Transmission area., IMMZIND07MeaslesHighTx,
6+
0.1.0, 2024-01-06, IMMZ.IND.07.HTx)

input/fsh/measures/IMMZIND07MeaslesLowTx.fsh

+2-48
Original file line numberDiff line numberDiff line change
@@ -2,51 +2,5 @@ Instance: IMMZIND07MeaslesLowTx
22
InstanceOf: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/proportion-measure-cqfm
33
Title: "IMMZIND07MeaslesLowTx"
44

5-
* description = "IMMZ.IND.07 Measles indicator for first dose in Low Transmission area."
6-
* url = "http://smart.who.int/ig/smart-immunizations/Measure/IMMZIND07MeaslesLowTx"
7-
* version = "0.1.0"
8-
* status = #draft
9-
* experimental = false
10-
* date = "2024-01-16"
11-
* name = "IMMZIND07MeaslesLowTx"
12-
* publisher = "World Health Organization (WHO)"
13-
* library = "http://smart.who.int/ig/smart-immunizations/Library/IMMZIND07MeaslesLowTx"
14-
* scoring = $measure-scoring#proportion "Proportion"
15-
* group[+]
16-
* population[initialPopulation]
17-
* extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis].valueCode = #boolean
18-
* id = "IMMZ.IND.07.LTx.IP"
19-
* description = "Initial Population"
20-
* code = $measure-population#initial-population "Initial Population"
21-
* criteria.language = #text/cql
22-
* criteria.expression = "Initial Population"
23-
* population[denominator]
24-
* extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis].valueCode = #boolean
25-
* id = "IMMZ.IND.07.LTx.D"
26-
* description = "Denominator"
27-
* code = $measure-population#denominator "Denominator"
28-
* criteria.language = #text/cql
29-
* criteria.expression = "Denominator"
30-
* population[numerator]
31-
* extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis].valueCode = #boolean
32-
* id = "IMMZ.IND.07.LTx.N"
33-
* description = "Numerator"
34-
* code = $measure-population#numerator "Numerator"
35-
* criteria.language = #text/cql
36-
* criteria.expression = "Numerator"
37-
* stratifier[+]
38-
* id = "IMMZ.IND.07.LTx.S1"
39-
* criteria.language = #text/cql
40-
* criteria.expression = "Stratification 1"
41-
* stratifier[+]
42-
* id = "IMMZ.IND.07.LTx.S2"
43-
* criteria.language = #text/cql
44-
* criteria.expression = "Stratification 2"
45-
* stratifier[+]
46-
* id = "IMMZ.IND.07.LTx.S3"
47-
* criteria.language = #text/cql
48-
* criteria.expression = "Stratification 3"
49-
* stratifier[+]
50-
* id = "IMMZ.IND.07.LTx.S4"
51-
* criteria.language = #text/cql
52-
* criteria.expression = "Stratification 4"
5+
* insert MeasureProportion( IMMZ.IND.07 Measles indicator for first dose in Low Transmission area., IMMZIND07MeaslesLowTx,
6+
0.1.0, 2024-01-06, IMMZ.IND.07.LTx)

input/fsh/measures/IMMZIND08Measles.fsh

+3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@ Instance: IMMZIND08Measles
22
InstanceOf: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/proportion-measure-cqfm
33
Title: "IMMZIND08Measles"
44

5+
* insert MeasureProportion( IMMZ.IND.08 Measles indicator for second dose., IMMZIND08Measles,
6+
0.1.0, 2024-01-06, IMMZ.IND.08)
7+
58
* description = "IMMZ.IND.08 Measles indicator for second dose."
69
* url = "http://smart.who.int/ig/smart-immunizations/Measure/IMMZIND08Measles"
710
* version = "0.1.0"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
Instance: IMMZIND26YellowFever
2+
InstanceOf: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/proportion-measure-cqfm
3+
Title: "IMMZIND26YellowFever"
4+
5+
* insert MeasureProportion( IMMZ.IND.26 Yellow Fever indicator for first dose., IMMZIND26YellowFever,
6+
0.1.0, 2024-01-06, IMMZ.IND.26)

input/fsh/measures/IMMZIND40Measles.fsh

+2-48
Original file line numberDiff line numberDiff line change
@@ -2,51 +2,5 @@ Instance: IMMZIND40Measles
22
InstanceOf: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/proportion-measure-cqfm
33
Title: "IMMZIND08Measles"
44

5-
* description = "IMMZ.IND.40 Dropout rate of MCV1 to MCV2."
6-
* url = "http://smart.who.int/ig/smart-immunizations/Measure/IMMZIND40Measles"
7-
* version = "0.1.0"
8-
* status = #draft
9-
* experimental = false
10-
* date = "2024-01-16"
11-
* name = "IMMZIND40Measles"
12-
* publisher = "World Health Organization (WHO)"
13-
* library = "http://smart.who.int/ig/smart-immunizations/Library/IMMZIND40Measles"
14-
* scoring = $measure-scoring#proportion "Proportion"
15-
* group[+]
16-
* population[initialPopulation]
17-
* extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis].valueCode = #boolean
18-
* id = "IMMZ.IND.40.IP"
19-
* description = "Initial Population"
20-
* code = $measure-population#initial-population "Initial Population"
21-
* criteria.language = #text/cql
22-
* criteria.expression = "Initial Population"
23-
* population[denominator]
24-
* extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis].valueCode = #boolean
25-
* id = "IMMZ.IND.40.D"
26-
* description = "Denominator"
27-
* code = $measure-population#denominator "Denominator"
28-
* criteria.language = #text/cql
29-
* criteria.expression = "Denominator"
30-
* population[numerator]
31-
* extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis].valueCode = #boolean
32-
* id = "IMMZ.IND.40.N"
33-
* description = "Numerator"
34-
* code = $measure-population#numerator "Numerator"
35-
* criteria.language = #text/cql
36-
* criteria.expression = "Numerator"
37-
* stratifier[+]
38-
* id = "IMMZ.IND.40.S1"
39-
* criteria.language = #text/cql
40-
* criteria.expression = "Stratification 1"
41-
* stratifier[+]
42-
* id = "IMMZ.IND.40.S2"
43-
* criteria.language = #text/cql
44-
* criteria.expression = "Stratification 2"
45-
* stratifier[+]
46-
* id = "IMMZ.IND.40.S3"
47-
* criteria.language = #text/cql
48-
* criteria.expression = "Stratification 3"
49-
* stratifier[+]
50-
* id = "IMMZ.IND.40.S4"
51-
* criteria.language = #text/cql
52-
* criteria.expression = "Stratification 4"
5+
* insert MeasureProportion( IMMZ.IND.40 Dropout rate of MCV1 to MCV2., IMMZIND40Measles,
6+
0.1.0, 2024-01-06, IMMZ.IND.40)
+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
RuleSet: Stratifier( idprefix, count )
2+
* stratifier[+]
3+
* id = "{idprefix}.S{count}"
4+
* criteria.language = #text/cql
5+
* criteria.expression = "Stratification {count}"
6+
7+
RuleSet: MeasureProportion( description, library, version, date, idprefix)
8+
* description = "{description}"
9+
* url = "http://smart.who.int/ig/smart-immunizations/Measure/{library}"
10+
* version = "{version}"
11+
* status = #draft
12+
* experimental = false
13+
* date = "{date}"
14+
* name = "{library}"
15+
* publisher = "World Health Organization (WHO)"
16+
* library = "http://smart.who.int/ig/smart-immunizations/Library/{library}"
17+
* scoring = $measure-scoring#proportion "Proportion"
18+
* group[+]
19+
* population[initialPopulation]
20+
* extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis].valueCode = #boolean
21+
* id = "{idprefix}.IP"
22+
* description = "Initial Population"
23+
* code = $measure-population#initial-population "Initial Population"
24+
* criteria.language = #text/cql
25+
* criteria.expression = "Initial Population"
26+
* population[denominator]
27+
* extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis].valueCode = #boolean
28+
* id = "{idprefix}.D"
29+
* description = "Denominator"
30+
* code = $measure-population#denominator "Denominator"
31+
* criteria.language = #text/cql
32+
* criteria.expression = "Denominator"
33+
* population[numerator]
34+
* extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis].valueCode = #boolean
35+
* id = "{idprefix}.N"
36+
* description = "Numerator"
37+
* code = $measure-population#numerator "Numerator"
38+
* criteria.language = #text/cql
39+
* criteria.expression = "Numerator"
40+
* insert Stratifier( {idprefix}, 1 )
41+
* insert Stratifier( {idprefix}, 2 )
42+
* insert Stratifier( {idprefix}, 3 )
43+
* insert Stratifier( {idprefix}, 4 )

0 commit comments

Comments
 (0)