WHO SMART Guidelines - HIV
0.4.4 - ci-build

WHO SMART Guidelines - HIV, published by WHO. This guide is not an authorized publication; it is the continuous build for version 0.4.4 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/WorldHealthOrganization/smart-hiv/tree/main and changes regularly. See the Directory of published versions

Measure: HIV.IND.85 HBsAg positivity, HIV prevention services (Experimental)

Official URL: http://smart.who.int/hiv/Measure/HIVIND85 Version: 0.4.4
Draft as of 2024-08-18 Computable Name: HIVIND85

Percentage of people attending HIV prevention services who were tested for HBsAg and had a positive HBsAg test during the reporting period

Knowledge Artifact Metadata
Name (machine-readable) HIVIND85
Title (human-readable) HIV.IND.85 HBsAg positivity, HIV prevention services
Status Draft
Experimental true
Description

Percentage of people attending HIV prevention services who were tested for HBsAg and had a positive HBsAg test during the reporting period

Measure Steward WHO
Steward Contact Details WHO: http://who.int
Measure Metadata
Version Number 0.4.4
Measure Scoring Proportion
Improvement Notation Decreased score indicates improvement
Population Basis boolean
Measure Population Criteria
Initial Population ID: HIV.IND.85.IP
Description:

Initial Population

Logic Definition: Initial Population
Denominator ID: HIV.IND.85.DEN
Description:

Number of people attending HIV prevention services who were tested for HBsAg during the reporting period

Logic Definition: Denominator
Numerator ID: HIV.IND.85.NUM
Description:

Number of people attending HIV prevention services who tested positive for HBsAg during the reporting period

Logic Definition: Numerator
Measure Logic
Primary Library HIV.IND.85 Logic
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 HE
Resource: HIVElements
Canonical URL: http://smart.who.int/hiv/Library/HIVElements
Dependency Description: Library Concepts
Resource: http://smart.who.int/hiv/Library/HIVConcepts|0.0.2
Canonical URL: http://smart.who.int/hiv/Library/HIVConcepts|0.0.2
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 ConceptsCustom
Resource: http://smart.who.int/hiv/Library/HIVConceptsCustom|0.0.1
Canonical URL: http://smart.who.int/hiv/Library/HIVConceptsCustom|0.0.1
Dependency Description: Library WCom
Resource: WHOCommon
Canonical URL: http://smart.who.int/hiv/Library/WHOCommon
Dependency Description: Code system HIVConcepts
Resource: WHO SMART HIV Concepts CodeSystem
Canonical URL: http://smart.who.int/hiv/CodeSystem/HIVConcepts
Dependency Description: Code system missing concepts
Resource: https://worldhealthorganization.github.io/smart-hiv/CodeSystem/missing-concepts
Canonical URL: https://worldhealthorganization.github.io/smart-hiv/CodeSystem/missing-concepts
Direct Reference Code Display: HBsAg test result
Code: HIV.D.DE162
System: http://smart.who.int/hiv/CodeSystem/HIVConcepts
Direct Reference Code Display: Positive
Code: HIV.D.DE163
System: http://smart.who.int/hiv/CodeSystem/HIVConcepts
Direct Reference Code Code: HBsAg test
System: https://worldhealthorganization.github.io/smart-hiv/CodeSystem/missing-concepts
Direct Reference Code Display: PrEP for HIV prevention
Code: HIV.C.DE76
System: http://smart.who.int/hiv/CodeSystem/HIVConcepts
Direct Reference Code Display: STI testing and treatment services
Code: HIV.B.DE164
System: http://smart.who.int/hiv/CodeSystem/HIVConcepts
Direct Reference Code Display: VMMC procedure performed
Code: HIV.B.DE197
System: http://smart.who.int/hiv/CodeSystem/HIVConcepts
Direct Reference Code Display: HIV prevention intervention
Code: HIV.PRV.DE2
System: http://smart.who.int/hiv/CodeSystem/HIVConcepts
Direct Reference Code Display: Other
Code: HIV.PRV.DE8
System: http://smart.who.int/hiv/CodeSystem/HIVConcepts
Direct Reference Code Display: OAMT
Code: HIV.PRV.DE4
System: http://smart.who.int/hiv/CodeSystem/HIVConcepts
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: 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: Observation
Profile(s): Observation
Must Support Elements: code, status, value, partOf
Code Filter(s):
Path: code
Code:
Data Requirement Type: Observation
Profile(s): Observation
Must Support Elements: status, code, value, effective
Data Requirement Type: Procedure
Profile(s): Procedure
Must Support Elements: status, code, performed
Data Requirement Type: MedicationStatement
Profile(s): MedicationStatement
Must Support Elements: reasonCode, effective
Data Requirement Type: EpisodeOfCare
Profile(s): EpisodeOfCare
Must Support Elements: type, period
Measure Logic Definitions
Logic Definition Library Name: HIVElements
/* End of HBsAg test date D.DE161 */


/*
@dataElement: HIV.D.DE162 - HBsAg test result
@activity: HIV.D12 Determine recommended screenings and tests
@description: Hepatitis B virus test result (HBsAg)
*/

define "HBsAg test result D.DE162":
  [Observation: Concepts."HBsAg test result - HIV.D.DE162"] O
    where O.status in { 'final', 'amended', 'corrected' }
Logic Definition Library Name: HIVElements
/* End of HBsAg test result D.DE162 */

/*
@dataElement: HIV.D.DE163 - Positive
@activity: HIV.D12 Determine recommended screenings and tests
@description: HBsAg test result was positive
*/

define "Positive D.DE163":
  "HBsAg test result D.DE162" O
  where O.value ~ Concepts."Positive - HIV.D.DE163"
Logic Definition Library Name: HIVElements
/* End of STI testing and treatment D.DE160 */

/*
@dataElement: HIV.D.DE161 - HBsAg test date
@activity: HIV.D12 Determine recommended screenings and tests
@description: Date client was tested for hepatitis B virus (HBV)
*/

define "HBsAg test date D.DE161":
  [Procedure] P
  where P.status = 'completed'
  and P.code ~ ConceptsCustom."HBsAg test"
Logic Definition Library Name: HIVElements
define "PrEP service date":
  [MedicationStatement] MS
    where exists(MS.reasonCode C where C ~ Concepts."PrEP for HIV prevention")
    return start of MS.effective.toInterval()
Logic Definition Library Name: HIVElements
define "STI services date":
  [Procedure] P
  where P.status = 'completed'
  and P.code ~ Concepts."STI testing and treatment services"
  return start of P.performed.toInterval()
Logic Definition Library Name: HIVElements
/* End of STI services */

/*
@dataElement: HIV.PRV.DE7 - VMMC
@activity: HIV.B6 Capture or update client history
@description: Client accessed voluntary medical male circumcision (VMMC) services
*/
// define "VMMC_done":
// [Procedure] P
//   where P.status = 'completed'
//   and P.code ~ Concepts."Voluntary medical male circumcision VMMC"


define "VMMC":
  [Procedure] P
  where P.status = 'completed'
  and P.code ~ Concepts."VMMC procedure"
Logic Definition Library Name: HIVElements
define "VMMC date":
  "VMMC" P
  return start of P.performed.toInterval()
Logic Definition Library Name: HIVElements
define "Other PRV.DE8 date":
  [Observation] O
    where O.status in {'final', 'amended'}
    and O.code ~ Concepts."HIV prevention intervention"
    and O.value ~ Concepts."Other - HIV.PRV.DE8"
  return start of O.effective.toInterval()
Logic Definition Library Name: HIVElements
define "OAMT status date":
  [EpisodeOfCare] EOC
    where exists(EOC.type T where T ~ Concepts."OAMT")
    return start of EOC.period
Logic Definition Library Name: HIVElements
/* End of Other PRV.DE8 */

/*
@dataElement: HIV.PRV.DE10 - Date accessed HIV prevention intervention
@activity: HIV.B6 Capture or update client history
@description: Date the client accessed HIV prevention intervention
*/
// TODO: NSP date requires fix to DeviceUseStatement support
define "Date accessed HIV prevention intervention": 
  flatten{"PrEP service date", /*"NSP date",*/ "STI services date", "VMMC date", "Other PRV.DE8 date","OAMT status date"}
Logic Definition Library Name: HIVIND85Logic
/**
 * Numerator
 * 
 * Definition: Number of people attending HIV prevention services who tested positive for HBsAg during the reporting period
 * Calculation: COUNT of clients with "HBsAg test date" on a "Date accessed HIV prevention intervention" in the reporting period AND "HBsAg test result"='HBsAg positive'
 */

define "Numerator":
  exists(HE."Positive D.DE163" G
  with HE."HBsAg test date D.DE161" P
  such that G.partOf.references(P) and P.performed.toInterval() during "Measurement Period"
  and exists (HE."Date accessed HIV prevention intervention" t where t = start of P.performed.toInterval()))
Logic Definition Library Name: HIVIND85Logic
/**
 * Denominator
 *
 * Definition: Number of people attending HIV prevention services who were tested for HBsAg during the reporting period
 * Calculation: COUNT of clients with "HBsAg test date" on a "Date accessed HIV prevention intervention" in the reporting period
 */

define "Denominator":
  exists(HE."HBsAg test date D.DE161" P
    where P.performed.toInterval() during "Measurement Period" 
  and exists (HE."Date accessed HIV prevention intervention" t where t = start of P.performed.toInterval()))
Logic Definition Library Name: HIVIND85Logic
/* Populations */

/*
 *Initial Population
 */

define "Initial Population":
  true
Logic Definition Library Name: FHIRHelpers
define function ToString(value ObservationStatus): 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 ProcedureStatus): value.value
Logic Definition Library Name: WHOCommon
/*
@description: Returns true if any of the given references are to the given resource
@comment: Returns true if the `id` element of the given resource exactly equals the tail of any of the given references.
NOTE: This function assumes resources from the same source server.
*/
define fluent function references(references List<FHIR.Reference>, resource FHIR.Resource):
  exists (references R where R.references(resource))
Logic Definition Library Name: WHOCommon
/*
@description: Returns true if the given reference is to the given resource
@comment: Returns true if the `id` element of the given resource exactly equals the tail of the given reference.
NOTE: This function assumes resources from the same source server.
*/
define fluent function references(reference FHIR.Reference, resource FHIR.Resource):
  resource.id = Last(Split(reference.reference, '/'))
Logic Definition Library Name: FHIRHelpers
define function ToString(value string): value.value
Logic Definition Library Name: FHIRHelpers
define function ToInterval(period FHIR.Period):
    if period is null then
        null
    else
        if period."start" is null then
            Interval(period."start".value, period."end".value]
        else
            Interval[period."start".value, period."end".value]
Generated using version 0.4.6 of the sample-content-ig Liquid templates