From 6518485e70a790667a9f45506bc99559294c3c00 Mon Sep 17 00:00:00 2001 From: Piotr Mankowski Date: Mon, 1 Jul 2024 00:37:44 -0700 Subject: [PATCH 1/2] Updates and fixes to Measure FSH files based on fixes in tooling --- input/fsh/measures/HIVIND18.fsh | 101 ++++++++++++++++++-------------- input/fsh/measures/HIVIND19.fsh | 70 +++++++++++++--------- input/fsh/measures/HIVIND2.fsh | 22 +++---- input/fsh/measures/HIVIND20.fsh | 54 ++++++++++------- input/fsh/measures/HIVIND21.fsh | 12 ++-- input/fsh/measures/HIVIND27.fsh | 69 ++++++++++++---------- input/fsh/measures/HIVIND28.fsh | 14 ++--- input/fsh/measures/HIVIND3.fsh | 13 ++-- input/fsh/measures/HIVIND30.fsh | 20 +++---- 9 files changed, 209 insertions(+), 166 deletions(-) diff --git a/input/fsh/measures/HIVIND18.fsh b/input/fsh/measures/HIVIND18.fsh index 415406ecab..fd8921d66c 100644 --- a/input/fsh/measures/HIVIND18.fsh +++ b/input/fsh/measures/HIVIND18.fsh @@ -1,43 +1,58 @@ -// Instance: HIVIND18 -// InstanceOf: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/proportion-measure-cqfm -// Title: "HIV.IND.18 People living with HIV who know their HIV status (first 95)" -// * meta.profile[+] = "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablemeasure" -// * meta.profile[+] = "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablemeasure" -// * extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis].valueCode = #boolean -// * description = "Number and % of people living with HIV who know their HIV status" -// * url = "http://smart.who.int/immunizations-measles/Measure/HIVIND18" -// * status = #draft -// * experimental = true -// * date = "2024-06-15" -// * name = "HIVIND18" -// * title = "HIV.IND.18 People living with HIV who know their HIV status (first 95)" -// * publisher = "World Health Organization (WHO)" -// * library = "http://smart.who.int/immunizations-measles/Library/HIVIND18Logic" -// * scoring = $measure-scoring#proportion "Proportion" -// * group[+] -// * population[numerator] -// * id = "HIV.IND.18.NUM" -// * description = "Number of people living with HIV who have received their diagnosis and are still alive" -// * code = $measure-population#numerator "Numerator" -// * criteria.language = #text/cql-identifier -// * criteria.expression = "Numerator" -// * stratifier[+] -// * id = "HIV.IND.18.S.AG" -// * criteria.language = #text/cql-identifier -// * criteria.expression = "Administrative Gender Stratifier" -// * stratifier[+] -// * id = "HIV.IND.18.S.A" -// * criteria.language = #text/cql-identifier -// * criteria.expression = "Age Stratifier" -// * stratifier[+] -// * id = "HIV.IND.18.S.GR" -// * criteria.language = #text/cql-identifier -// * criteria.expression = "Geographic Region Stratifier" -// * stratifier[+] -// * id = "HIV.IND.18.S.P" -// * criteria.language = #text/cql-identifier -// * criteria.expression = "patientGroups Stratifier" -// * stratifier[+] -// * id = "HIV.IND.18.S.A" -// * criteria.language = #text/cql-identifier -// * criteria.expression = "ANC Stratifier" \ No newline at end of file +Instance: HIVIND18 +InstanceOf: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cv-measure-cqfm +Title: "HIV.IND.18 People living with HIV who know their HIV status (first 95)" +* meta.profile[+] = "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablemeasure" +* meta.profile[+] = "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablemeasure" +* extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis].valueCode = #boolean +* description = "Number and % of people living with HIV who know their HIV status" +* url = "http://smart.who.int/HIV/Measure/HIVIND18" +* status = #draft +* experimental = true +* date = "2024-07-01" +* name = "HIVIND18" +* title = "HIV.IND.18 People living with HIV who know their HIV status (first 95)" +* publisher = "World Health Organization (WHO)" +* library = "http://smart.who.int/HIV/Library/HIVIND18Logic" +* scoring = $measure-scoring#continuous-variable "Continuous Variable" +* group[+] + * population[initialPopulation] + * id = "HIV.IND.18.IP" + * description = "Initial Population" + * code = $measure-population#initial-population "Initial Population" + * criteria.language = #text/cql-identifier + * criteria.expression = "Initial Population" + * population[measurePopulation] + * extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis].valueCode = #boolean + * id = "HIV.IND.18.MP" + * description = "Measure Population" + * code = $measure-population#measure-population "Measure Population" + * criteria.language = #text/cql-identifier + * criteria.expression = "Measure Population" + * population[measureObservation] + * extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-criteriaReference].valueString = "measure-population" + * extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-aggregateMethod].valueCode = #count + * id = "HIV.IND.18.MO" + * description = "Measure Observation" + * code = $measure-population#measure-observation "Measure Observation" + * criteria.language = #text/cql-identifier + * criteria.expression = "Measure Observation" + * stratifier[+] + * id = "HIV.IND.18.S.AG" + * criteria.language = #text/cql-identifier + * criteria.expression = "Administrative Gender Stratifier" + * stratifier[+] + * id = "HIV.IND.18.S.A" + * criteria.language = #text/cql-identifier + * criteria.expression = "Age Stratifier" + * stratifier[+] + * id = "HIV.IND.18.S.GR" + * criteria.language = #text/cql-identifier + * criteria.expression = "Geographic Region Stratifier" + * stratifier[+] + * id = "HIV.IND.18.S.P" + * criteria.language = #text/cql-identifier + * criteria.expression = "patientGroups Stratifier" + * stratifier[+] + * id = "HIV.IND.18.S.A" + * criteria.language = #text/cql-identifier + * criteria.expression = "ANC Stratifier" \ No newline at end of file diff --git a/input/fsh/measures/HIVIND19.fsh b/input/fsh/measures/HIVIND19.fsh index 214a07f988..2e1ff7a427 100644 --- a/input/fsh/measures/HIVIND19.fsh +++ b/input/fsh/measures/HIVIND19.fsh @@ -1,43 +1,55 @@ -Instance: IMMZIND08 -InstanceOf: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cv-measure-cqfm -Title: "IMMZ.IND.08 Immunization coverage for Measles containing vaccine (Estimated Denominator)" +Instance: HIVIND19 +InstanceOf: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/proportion-measure-cqfm +Title: "HIV.IND.19 HTS test volume and positivity" * meta.profile[+] = "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablemeasure" * meta.profile[+] = "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablemeasure" * extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis].valueCode = #boolean - -* description = "IMMZ.IND.08 Immunization coverage for Measles containing vaccine (Estimated Denominator)" -* url = "http://smart.who.int/immunizations-measles/Measure/IMMZIND08" +* description = "Number of HIV tests performed (volume) and the % of HIV-positive results returned to people (positivity)" +* url = "http://smart.who.int/HIV/Measure/HIVIND19" * status = #draft * experimental = true -* date = "2023-10-05" -* name = "IMMZIND08" -* title = "IMMZ.IND.08 Immunization coverage for Measles containing vaccine (Estimated Denominator)" +* date = "2024-07-01" +* name = "HIVIND19" +* title = "HIV.IND.19 HTS test volume and positivity" * publisher = "World Health Organization (WHO)" -* library = "http://smart.who.int/immunizations-measles/Library/IMMZIND08Logic" -* scoring = $measure-scoring#continuous-variable "Continuous Variable" +* library = "http://smart.who.int/HIV/Library/HIVIND19Logic" +* scoring = $measure-scoring#proportion "Proportion" * group[+] * population[initialPopulation] - * id = "IMMZ.IND.08.IP" + * id = "HIV.IND.19.IP" * description = "Initial Population" * code = $measure-population#initial-population "Initial Population" * criteria.language = #text/cql-identifier * criteria.expression = "Initial Population" - * population[measurePopulation] - * extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis].valueCode = #boolean - * id = "IMMZ.IND.08.MP" - * description = "Measure Population" - * code = $measure-population#measure-population "Measure Population" - * criteria.language = #text/cql-identifier - * criteria.expression = "Measure Population" - * population[measureObservation] - * extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-criteriaReference].valueString = "measure-population" - * extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-aggregateMethod].valueCode = #count - * id = "IMMZ.IND.08.MO" - * description = "Measure Observation" - * code = $measure-population#measure-observation - * criteria.language = #text/cql-identifier - * criteria.expression = "Measure Observation" + * population[denominator] + * id = "HIV.IND.19.DEN" + * description = "Number of tests performed where results were returned to a person during the reporting period (testing volume)" + * code = $measure-population#denominator "Denominator" + * criteria.language = #text/cql-identifier + * criteria.expression = "Denominator" + * population[numerator] + * id = "HIV.IND.19.NUM" + * description = "Number of tests conducted in which a new HIV-positive result or diagnosis was returned to a person during the reporting period (positivity)" + * code = $measure-population#numerator "Numerator" + * criteria.language = #text/cql-identifier + * criteria.expression = "Numerator" + * stratifier[+] + * id = "HIV.IND.19.S.AG" + * criteria.language = #text/cql-identifier + * criteria.expression = "Administrative Gender Stratifier" + * stratifier[+] + * id = "HIV.IND.19.S.A" + * criteria.language = #text/cql-identifier + * criteria.expression = "Age Stratifier" + * stratifier[+] + * id = "HIV.IND.19.S.GR" + * criteria.language = #text/cql-identifier + * criteria.expression = "Geographic Region Stratifier" + * stratifier[+] + * id = "HIV.IND.19.S.P" + * criteria.language = #text/cql-identifier + * criteria.expression = "patientGroups Stratifier" * stratifier[+] - * id = "IMMZ.IND.08.S" + * id = "HIV.IND.19.S.T" * criteria.language = #text/cql-identifier - * criteria.expression = "Stratification" \ No newline at end of file + * criteria.expression = "TB Stratifier" \ No newline at end of file diff --git a/input/fsh/measures/HIVIND2.fsh b/input/fsh/measures/HIVIND2.fsh index 91bf08229d..4258bd7112 100644 --- a/input/fsh/measures/HIVIND2.fsh +++ b/input/fsh/measures/HIVIND2.fsh @@ -5,35 +5,35 @@ Title: "HIV.IND.2 Total PrEP recipients" * meta.profile[+] = "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablemeasure" * extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis].valueCode = #boolean * description = "Number of people who received PrEP at least once during the reporting period" -* url = "http://smart.who.int/immunizations-measles/Measure/HIVIND2" +* url = "http://smart.who.int/HIV/Measure/HIVIND2" * status = #draft * experimental = true -* date = "2024-06-15" +* date = "2024-07-01" * name = "HIVIND2" * title = "HIV.IND.2 Total PrEP recipients" * publisher = "World Health Organization (WHO)" -* library = "http://smart.who.int/immunizations-measles/Library/HIVIND2Logic" -* scoring = $measure-scoring#continuous-variable "Proportion" +* library = "http://smart.who.int/HIV/Library/HIVIND2Logic" +* scoring = $measure-scoring#continuous-variable "Continuous Variable" * group[+] * population[initialPopulation] - * id = "HIV.IND.2.NUM" - * description = "Number of people prescribed or dispensed any form of PrEP at least once during the reporting period. Individuals prescribed different PrEP products or regimens at different times during the reporting period should be counted only once." + * id = "HIV.IND.2.IP" + * description = "Initial Population" * code = $measure-population#initial-population "Initial Population" * criteria.language = #text/cql-identifier - * criteria.expression = "Numerator" + * criteria.expression = "Initial Population" * population[measurePopulation] * extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis].valueCode = #boolean - * id = "IMMZ.IND.02.MP" + * id = "HIV.IND.2.MP" * description = "Measure Population" * code = $measure-population#measure-population "Measure Population" * criteria.language = #text/cql-identifier - * criteria.expression = "Numerator" + * criteria.expression = "Measure Population" * population[measureObservation] * extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-criteriaReference].valueString = "measure-population" * extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-aggregateMethod].valueCode = #count - * id = "IMMZ.IND.02.MO" + * id = "HIV.IND.2.MO" * description = "Measure Observation" - * code = $measure-population#measure-observation + * code = $measure-population#measure-observation "Measure Observation" * criteria.language = #text/cql-identifier * criteria.expression = "Measure Observation" * stratifier[+] diff --git a/input/fsh/measures/HIVIND20.fsh b/input/fsh/measures/HIVIND20.fsh index cfb27f7b4a..3ae410eaaa 100644 --- a/input/fsh/measures/HIVIND20.fsh +++ b/input/fsh/measures/HIVIND20.fsh @@ -1,45 +1,55 @@ -Instance: IMMZIND12 +Instance: HIVIND20 InstanceOf: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/proportion-measure-cqfm -Title: "IMMZ.IND.12 Measles indicator for first dose" +Title: "HIV.IND.20 Individuals testing positive for HIV" * meta.profile[+] = "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablemeasure" * meta.profile[+] = "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablemeasure" * extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis].valueCode = #boolean -* description = "The percentage in the target population who have received one dose of measles and rubella vaccine during reporting period" -* url = "http://smart.who.int/immunizations-measles/Measure/IMMZIND12" +* description = "% testing positive among people who received an HIV test in the reporting period" +* url = "http://smart.who.int/HIV/Measure/HIVIND20" * status = #draft * experimental = true -* date = "2023-10-12" -* name = "IMMZIND12" -* title = "IMMZ.IND.12 Measles indicator for first dose" +* date = "2024-07-01" +* name = "HIVIND20" +* title = "HIV.IND.20 Individuals testing positive for HIV" * publisher = "World Health Organization (WHO)" -* relatedArtifact[+] - * type = #citation - * citation = "WHO Immunization facility analysis guide" -* relatedArtifact[+] - * type = #citation - * citation = "WHO Handbook on immunization data" -* library = "http://smart.who.int/immunizations-measles/Library/IMMZIND12Logic" +* library = "http://smart.who.int/HIV/Library/HIVIND20Logic" * scoring = $measure-scoring#proportion "Proportion" * group[+] * population[initialPopulation] - * id = "IMMZ.IND.12.IP" - * description = "Number in target group" + * id = "HIV.IND.20.IP" + * description = "Initial Population" * code = $measure-population#initial-population "Initial Population" * criteria.language = #text/cql-identifier * criteria.expression = "Initial Population" * population[denominator] - * id = "IMMZ.IND.12.DEN" - * description = "Number in target group" + * id = "HIV.IND.20.DEN" + * description = "Number of people receiving an HIV test in the reporting period" * code = $measure-population#denominator "Denominator" * criteria.language = #text/cql-identifier * criteria.expression = "Denominator" * population[numerator] - * id = "IMMZ.IND.12.NUM" - * description = "Number of measles and rubella doses (1st dose) administered through routine services during reporting period" + * id = "HIV.IND.20.NUM" + * description = "Number of people who test HIV-positive in the reporting period and have results returned to them*" * code = $measure-population#numerator "Numerator" * criteria.language = #text/cql-identifier * criteria.expression = "Numerator" * stratifier[+] - * id = "IMMZ.IND.12.S" + * id = "HIV.IND.20.S.AG" * criteria.language = #text/cql-identifier - * criteria.expression = "Stratification" \ No newline at end of file + * criteria.expression = "Administrative Gender Stratifier" + * stratifier[+] + * id = "HIV.IND.20.S.A" + * criteria.language = #text/cql-identifier + * criteria.expression = "Age Stratifier" + * stratifier[+] + * id = "HIV.IND.20.S.GR" + * criteria.language = #text/cql-identifier + * criteria.expression = "Geographic Region Stratifier" + * stratifier[+] + * id = "HIV.IND.20.S.P" + * criteria.language = #text/cql-identifier + * criteria.expression = "patientGroups Stratifier" + * stratifier[+] + * id = "HIV.IND.20.S.T" + * criteria.language = #text/cql-identifier + * criteria.expression = "TB Stratifier" \ No newline at end of file diff --git a/input/fsh/measures/HIVIND21.fsh b/input/fsh/measures/HIVIND21.fsh index dd92df7378..34fb1d0230 100644 --- a/input/fsh/measures/HIVIND21.fsh +++ b/input/fsh/measures/HIVIND21.fsh @@ -5,22 +5,22 @@ Title: "HIV.IND.21 Linkage to ART" * meta.profile[+] = "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablemeasure" * extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis].valueCode = #boolean * description = "% of people newly diagnosed with HIV initiated on ART" -* url = "http://smart.who.int/immunizations-measles/Measure/HIVIND21" +* url = "http://smart.who.int/HIV/Measure/HIVIND21" * status = #draft * experimental = true -* date = "2024-06-15" +* date = "2024-07-01" * name = "HIVIND21" * title = "HIV.IND.21 Linkage to ART" * publisher = "World Health Organization (WHO)" -* library = "http://smart.who.int/immunizations-measles/Library/HIVIND21Logic" +* library = "http://smart.who.int/HIV/Library/HIVIND21Logic" * scoring = $measure-scoring#proportion "Proportion" * group[+] * population[initialPopulation] - * id = "HIV.IND.21.initialPopulation" - * description = "Number of people newly diagnosed with HIV during the reporting period" + * id = "HIV.IND.21.IP" + * description = "Initial Population" * code = $measure-population#initial-population "Initial Population" * criteria.language = #text/cql-identifier - * criteria.expression = "Denominator" + * criteria.expression = "Initial Population" * population[denominator] * id = "HIV.IND.21.DEN" * description = "Number of people newly diagnosed with HIV during the reporting period" diff --git a/input/fsh/measures/HIVIND27.fsh b/input/fsh/measures/HIVIND27.fsh index 6d05586a1d..5e6349633c 100644 --- a/input/fsh/measures/HIVIND27.fsh +++ b/input/fsh/measures/HIVIND27.fsh @@ -1,45 +1,54 @@ -Instance: IMMZIND13 -InstanceOf: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/proportion-measure-cqfm -Title: "IMMZ.IND.13 Measles indicator for second dose" +Instance: HIVIND27 +InstanceOf: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cv-measure-cqfm +Title: "HIV.IND.27 People living with HIV on ART" * meta.profile[+] = "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablemeasure" * meta.profile[+] = "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablemeasure" * extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis].valueCode = #boolean -* description = "The percentage in the target population who have received second dose of measles and rubella vaccine during reporting period" -* url = "http://smart.who.int/immunizations-measles/Measure/IMMZIND13" +* description = "Number and % of people on ART among all people living with HIV at the end of the reporting period" +* url = "http://smart.who.int/HIV/Measure/HIVIND27" * status = #draft * experimental = true -* date = "2023-10-13" -* name = "IMMZIND13" -* title = "IMMZ.IND.13 Measles indicator for second dose" +* date = "2024-07-01" +* name = "HIVIND27" +* title = "HIV.IND.27 People living with HIV on ART" * publisher = "World Health Organization (WHO)" -* relatedArtifact[+] - * type = #citation - * citation = "WHO Immunization facility analysis guide" -* relatedArtifact[+] - * type = #citation - * citation = "WHO Handbook on immunization data" -* library = "http://smart.who.int/immunizations-measles/Library/IMMZIND13Logic" -* scoring = $measure-scoring#proportion "Proportion" +* library = "http://smart.who.int/HIV/Library/HIVIND27Logic" +* scoring = $measure-scoring#continuous-variable "Continuous Variable" * group[+] * population[initialPopulation] - * id = "IMMZ.IND.13.IP" - * description = "Number in target group as defined by member states" + * id = "HIV.IND.27.IP" + * description = "Initial Population" * code = $measure-population#initial-population "Initial Population" * criteria.language = #text/cql-identifier * criteria.expression = "Initial Population" - * population[denominator] - * id = "IMMZ.IND.13.DEN" - * description = "Number in target group as defined by member states" - * code = $measure-population#denominator "Denominator" + * population[measurePopulation] + * extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis].valueCode = #boolean + * id = "HIV.IND.27.MP" + * description = "Measure Population" + * code = $measure-population#measure-population "Measure Population" * criteria.language = #text/cql-identifier - * criteria.expression = "Denominator" - * population[numerator] - * id = "IMMZ.IND.13.NUM" - * description = "Number of measles and rubella doses (2nd dose) administered through routine services during reporting period" - * code = $measure-population#numerator "Numerator" + * criteria.expression = "Measure Population" + * population[measureObservation] + * extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-criteriaReference].valueString = "measure-population" + * extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-aggregateMethod].valueCode = #count + * id = "HIV.IND.27.MO" + * description = "Measure Observation" + * code = $measure-population#measure-observation "Measure Observation" * criteria.language = #text/cql-identifier - * criteria.expression = "Numerator" + * criteria.expression = "Measure Observation" * stratifier[+] - * id = "IMMZ.IND.13.S" + * id = "HIV.IND.27.S.AG" * criteria.language = #text/cql-identifier - * criteria.expression = "Stratification" \ No newline at end of file + * criteria.expression = "Administrative Gender Stratifier" + * stratifier[+] + * id = "HIV.IND.27.S.A" + * criteria.language = #text/cql-identifier + * criteria.expression = "Age Stratifier" + * stratifier[+] + * id = "HIV.IND.27.S.GR" + * criteria.language = #text/cql-identifier + * criteria.expression = "Geographic Region Stratifier" + * stratifier[+] + * id = "HIV.IND.27.S.P" + * criteria.language = #text/cql-identifier + * criteria.expression = "patientGroups Stratifier" \ No newline at end of file diff --git a/input/fsh/measures/HIVIND28.fsh b/input/fsh/measures/HIVIND28.fsh index 07ca66fdbb..f39d6acb11 100644 --- a/input/fsh/measures/HIVIND28.fsh +++ b/input/fsh/measures/HIVIND28.fsh @@ -5,24 +5,22 @@ Title: "HIV.IND.28 Total attrition from ART" * meta.profile[+] = "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablemeasure" * extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis].valueCode = #boolean * description = "Number and % of people living with HIV on ART at the end of the last reporting period and those newly initiating ART during the current reporting period who were not on ART at the end of the current reporting period" -* url = "http://smart.who.int/immunizations-measles/Measure/HIVIND28" +* url = "http://smart.who.int/HIV/Measure/HIVIND28" * status = #draft * experimental = true -* date = "2024-06-15" +* date = "2024-07-01" * name = "HIVIND28" * title = "HIV.IND.28 Total attrition from ART" * publisher = "World Health Organization (WHO)" -* library = "http://smart.who.int/immunizations-measles/Library/HIVIND28Logic" +* library = "http://smart.who.int/HIV/Library/HIVIND28Logic" * scoring = $measure-scoring#proportion "Proportion" * group[+] * population[initialPopulation] - * id = "HIV.IND.28.initialPopulation" - * description = "Number of people reported on ART at the end of the last reporting period -plus -those newly initiated on ART during the current reporting period" + * id = "HIV.IND.28.IP" + * description = "Initial Population" * code = $measure-population#initial-population "Initial Population" * criteria.language = #text/cql-identifier - * criteria.expression = "Denominator" + * criteria.expression = "Initial Population" * population[denominator] * id = "HIV.IND.28.DEN" * description = "Number of people reported on ART at the end of the last reporting period diff --git a/input/fsh/measures/HIVIND3.fsh b/input/fsh/measures/HIVIND3.fsh index baa258d8cd..3df04e30b0 100644 --- a/input/fsh/measures/HIVIND3.fsh +++ b/input/fsh/measures/HIVIND3.fsh @@ -5,23 +5,22 @@ Title: "HIV.IND.3 PrEP coverage" * meta.profile[+] = "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablemeasure" * extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis].valueCode = #boolean * description = "% of people prescribed PrEP among those identified as being at elevated risk for HIV acquisition" -* url = "http://smart.who.int/immunizations-measles/Measure/HIVIND3" +* url = "http://smart.who.int/HIV/Measure/HIVIND3" * status = #draft * experimental = true -* date = "2024-06-15" +* date = "2024-07-01" * name = "HIVIND3" * title = "HIV.IND.3 PrEP coverage" * publisher = "World Health Organization (WHO)" -* library = "http://smart.who.int/immunizations-measles/Library/HIVIND3Logic" +* library = "http://smart.who.int/HIV/Library/HIVIND3Logic" * scoring = $measure-scoring#proportion "Proportion" * group[+] * population[initialPopulation] - * id = "HIV.IND.3.initialPopulation" - * description = "a) Programme/service provider level: number of individuals who received a negative HIV test during the reporting period and identified as being at elevated risk for HIV acquisition (includes people requesting/receiving any HIV prevention intervention, people from key populations, people with known risk factors or assessed as being at risk of HIV acquisition) -b) Population level: population-level estimate of the number of people who would benefit from PrEP, for example as derived from a PrEP need estimator tool" + * id = "HIV.IND.3.IP" + * description = "Initial Population" * code = $measure-population#initial-population "Initial Population" * criteria.language = #text/cql-identifier - * criteria.expression = "Denominator" + * criteria.expression = "Initial Population" * population[denominator] * id = "HIV.IND.3.DEN" * description = "a) Programme/service provider level: number of individuals who received a negative HIV test during the reporting period and identified as being at elevated risk for HIV acquisition (includes people requesting/receiving any HIV prevention intervention, people from key populations, people with known risk factors or assessed as being at risk of HIV acquisition) diff --git a/input/fsh/measures/HIVIND30.fsh b/input/fsh/measures/HIVIND30.fsh index 71b0bee93e..0ee60ea941 100644 --- a/input/fsh/measures/HIVIND30.fsh +++ b/input/fsh/measures/HIVIND30.fsh @@ -5,35 +5,35 @@ Title: "HIV.IND.30 New ART patients" * meta.profile[+] = "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablemeasure" * extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis].valueCode = #boolean * description = "Number of people living with HIV who initiated ART" -* url = "http://smart.who.int/immunizations-measles/Measure/HIVIND30" +* url = "http://smart.who.int/HIV/Measure/HIVIND30" * status = #draft * experimental = true -* date = "2024-06-15" +* date = "2024-07-01" * name = "HIVIND30" * title = "HIV.IND.30 New ART patients" * publisher = "World Health Organization (WHO)" -* library = "http://smart.who.int/immunizations-measles/Library/HIVIND30Logic" +* library = "http://smart.who.int/HIV/Library/HIVIND30Logic" * scoring = $measure-scoring#continuous-variable "Continuous Variable" * group[+] * population[initialPopulation] - * id = "HIV.IND.30.initialPopulation" - * description = "Number of people living with HIV who initiated ART in accordance with national treatment guidelines during the reporting period" + * id = "HIV.IND.30.IP" + * description = "Initial Population" * code = $measure-population#initial-population "Initial Population" * criteria.language = #text/cql-identifier - * criteria.expression = "Numerator" + * criteria.expression = "Initial Population" * population[measurePopulation] * extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis].valueCode = #boolean - * id = "IMMZ.IND.30.MP" + * id = "HIV.IND.30.MP" * description = "Measure Population" * code = $measure-population#measure-population "Measure Population" * criteria.language = #text/cql-identifier - * criteria.expression = "Numerator" + * criteria.expression = "Measure Population" * population[measureObservation] * extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-criteriaReference].valueString = "measure-population" * extension[http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-aggregateMethod].valueCode = #count - * id = "IMMZ.IND.30.MO" + * id = "HIV.IND.30.MO" * description = "Measure Observation" - * code = $measure-population#measure-observation + * code = $measure-population#measure-observation "Measure Observation" * criteria.language = #text/cql-identifier * criteria.expression = "Measure Observation" * stratifier[+] From 88abedcaf1cdb7cc59c47c4157c91089975e575a Mon Sep 17 00:00:00 2001 From: Piotr Mankowski Date: Mon, 1 Jul 2024 00:44:40 -0700 Subject: [PATCH 2/2] Associated updated CQL --- input/cql/HIVIND18Logic.cql | 15 ++++++++++++++- input/cql/HIVIND19Logic.cql | 13 ++++++++++++- input/cql/HIVIND28Logic.cql | 33 ++++++++++++++++++++------------ input/cql/HIVIND2Logic.cql | 24 +++++++++++++++++++++-- input/cql/HIVIND30Logic.cql | 19 +++++++++++++++++- input/cql/HIVIND3Logic.cql | 15 ++++++++++++++- input/cql/HIVIndicatorCommon.cql | 2 +- 7 files changed, 102 insertions(+), 19 deletions(-) diff --git a/input/cql/HIVIND18Logic.cql b/input/cql/HIVIND18Logic.cql index 9215130a78..8c60584f4f 100644 --- a/input/cql/HIVIND18Logic.cql +++ b/input/cql/HIVIND18Logic.cql @@ -79,7 +79,7 @@ parameter "Measurement Period" Interval default Interval[@2020-01-01, @202 context Patient -define "numerator": +define "Measure Population": exists(HIC."HIV Positive Condition" C where C.onset before end of "Measurement Period") or @@ -90,6 +90,19 @@ define "numerator": //define denominator? //How to bring in data from external sources +/* + * As defined by Member States + */ +define "Initial Population": + true + +/* + * NOTE: Modeled as a Continuous Variable measure because this is an estimated denominator proportion measure + */ + +define function "Measure Observation"(Patient "Patient"): + 1 + /* * Disaggregators */ diff --git a/input/cql/HIVIND19Logic.cql b/input/cql/HIVIND19Logic.cql index eb6b1461bd..2aa9ef545f 100644 --- a/input/cql/HIVIND19Logic.cql +++ b/input/cql/HIVIND19Logic.cql @@ -88,6 +88,13 @@ parameter "Measurement Period" Interval default Interval[@2020-01-01, @202 context Patient +/* + * As defined by Member State + */ +define "Initial Population": + true + + //Exclusion happens automatically through test type valueset = excludes self test define "numerator": exists(HIC."HIV Positive Condition" C @@ -125,4 +132,8 @@ define "Setting": define "TB Stratifier": HIC."tb" - +define "Stratification": + HIC."By Administrative Gender Stratifier".code + + ':' + HIC."By Age Stratifier" ++ ':' + HIC."By Geographic Region Stratifier" +//Need to discuss how to add list diff --git a/input/cql/HIVIND28Logic.cql b/input/cql/HIVIND28Logic.cql index 0c3be0055a..1b4d04f329 100644 --- a/input/cql/HIVIND28Logic.cql +++ b/input/cql/HIVIND28Logic.cql @@ -83,12 +83,20 @@ include FHIRCommon called FC parameter "Measurement Period" Interval default Interval[@2020-01-01, @2020-01-31] -context Unfiltered +context Patient + +/* + * As defined by Member State + */ +define "Initial Population": + true + define "numerator": ( - exists(HIC."Patient Deceased during Measurement Period") - or exists(HIC."Stopped ART at Facility during the measurement period") + HIC."Patient Deceased before end of Measurement Period" + and HIC."Transfer Out at Facility during the measurement period" + and HIC."Lost to Follow Up during the measurement period" ) and (( //saying needs to not be counted this measurement period but should have counted this period or last period @@ -100,8 +108,7 @@ define "numerator": )) and exists(HIC."HIV Treatment Active" H where H.effective starts before end of "Measurement Period" - and (H.effective ends after start of "Measurement Period" - or end of H.effective ~ null) + and H.effective ends after start of "Measurement Period" ) ) or ( @@ -114,8 +121,7 @@ define "numerator": )) and exists(HIC."HIV Treatment Active" H where H.effective starts before (end of "Measurement Period" - duration in days of "Measurement Period") - and (H.effective ends after (start of "Measurement Period" - duration in days of "Measurement Period") - or end of H.effective ~ null) + and H.effective ends after (start of "Measurement Period" - duration in days of "Measurement Period") ) ) ) @@ -133,8 +139,7 @@ define "numerator": )) and exists(HIC."HIV Treatment Active" H where H.effective starts before end of "Measurement Period" - and (H.effective ends after start of "Measurement Period" - or end of H.effective ~ null) + and H.effective ends after start of "Measurement Period" ) ) or ( @@ -147,8 +152,7 @@ define "numerator": )) and exists(HIC."HIV Treatment Active" H where H.effective starts before (end of "Measurement Period" - duration in days of "Measurement Period") - and (H.effective ends after (start of "Measurement Period" - duration in days of "Measurement Period") - or end of H.effective ~ null) + and H.effective ends after (start of "Measurement Period" - duration in days of "Measurement Period") ) ) ) @@ -171,4 +175,9 @@ define "Geographic Region Stratifier": define "patientGroups Stratifier": HIC."patientGroups" -//NEED TO FIGURE OUT Treatment outcome category (died, stopped treatment, lost to follow-up) \ No newline at end of file +//NEED TO FIGURE OUT Treatment outcome category (died, stopped treatment, lost to follow-up) + +define "Stratification": + HIC."By Administrative Gender Stratifier".code + + ':' + HIC."By Age Stratifier" ++ ':' + HIC."By Geographic Region Stratifier" \ No newline at end of file diff --git a/input/cql/HIVIND2Logic.cql b/input/cql/HIVIND2Logic.cql index 3b9ddc1556..70e91ab37b 100644 --- a/input/cql/HIVIND2Logic.cql +++ b/input/cql/HIVIND2Logic.cql @@ -97,13 +97,27 @@ parameter "Measurement Period" Interval default Interval[@2020-01-01, @202 context Patient -define "numerator": +define "Measure Population": exists(HIC."HIV PREP Active" H where H.effective starts before end of "Measurement Period" and (H.effective ends after start of "Measurement Period" or end of H.effective ~ null) ) +/* + * As defined by Member States + */ +define "Initial Population": + true + +/* + * NOTE: Modeled as a Continuous Variable measure because this is an estimated denominator proportion measure + */ + +define function "Measure Observation"(Patient "Patient"): + 1 + + /* * Disaggregators */ @@ -132,4 +146,10 @@ define "prep_experience": define "prep_dosing": HIC."prep_dosing" -// Provider type concepts are not found in DD \ No newline at end of file +// Provider type concepts are not found in DD + +define "Stratification": + HIC."By Administrative Gender Stratifier".code + + ':' + HIC."By Age Stratifier" ++ ':' + HIC."By Geographic Region Stratifier" +// how to add list \ No newline at end of file diff --git a/input/cql/HIVIND30Logic.cql b/input/cql/HIVIND30Logic.cql index 1edc1d08f2..2ff831e701 100644 --- a/input/cql/HIVIND30Logic.cql +++ b/input/cql/HIVIND30Logic.cql @@ -81,7 +81,7 @@ parameter "Measurement Period" Interval default Interval[@2020-01-01, @202 context Patient - define "numerator": + define "Measure Population": (exists(HIC."HIV Positive Condition" C where C.onset before end of "Measurement Period") or @@ -91,6 +91,18 @@ context Patient exists(HIC."HIV Treatment Active" H where H.effective starts during "Measurement Period") +/* + * As defined by Member States + */ +define "Initial Population": + true + +/* + * NOTE: Modeled as a Continuous Variable measure because this is an estimated denominator proportion measure + */ + +define function "Measure Observation"(Patient "Patient"): + 1 /* @@ -108,3 +120,8 @@ define "Geographic Region Stratifier": define "patientGroups Stratifier": HIC."patientGroups" + +define "Stratification": + HIC."By Administrative Gender Stratifier".code + + ':' + HIC."By Age Stratifier" ++ ':' + HIC."By Geographic Region Stratifier" \ No newline at end of file diff --git a/input/cql/HIVIND3Logic.cql b/input/cql/HIVIND3Logic.cql index 8c0076b0fa..a9e20753e8 100644 --- a/input/cql/HIVIND3Logic.cql +++ b/input/cql/HIVIND3Logic.cql @@ -100,6 +100,13 @@ parameter "Measurement Period" Interval default Interval[@2020-01-01, @202 context Patient +/* + * As defined by Member State + */ +define "Initial Population": + true + + define "numerator": exists(HIC."HIV PREP Active" H where H.effective starts before end of "Measurement Period" @@ -145,4 +152,10 @@ define "prep_experience": define "prep_dosing": HIC."prep_dosing" -// Provider type concepts are not found in DD \ No newline at end of file +// Provider type concepts are not found in DD + +define "Stratification": + HIC."By Administrative Gender Stratifier".code + + ':' + HIC."By Age Stratifier" ++ ':' + HIC."By Geographic Region Stratifier" +// how to add list \ No newline at end of file diff --git a/input/cql/HIVIndicatorCommon.cql b/input/cql/HIVIndicatorCommon.cql index 603f1f9184..32e3d28fcf 100644 --- a/input/cql/HIVIndicatorCommon.cql +++ b/input/cql/HIVIndicatorCommon.cql @@ -6,7 +6,7 @@ include FHIRHelpers version '4.0.1' include WHOCommon called WCom include FHIRCommon called FC include HIVConcepts called HC -include HIVConcepts_custom called HCC +include HIVConceptsCustom called HCC parameter "Measurement Period" Interval default Interval[@2020-01-01, @2020-12-31]