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.2 Total PrEP recipients (Experimental)

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

Number of people who received PrEP at least once during the reporting period

Knowledge Artifact Metadata
Name (machine-readable) HIVIND2
Title (human-readable) HIV.IND.2 Total PrEP recipients
Status Draft
Experimental true
Description

Number of people who received PrEP at least once during the reporting period

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

Initial Population

Logic Definition: Initial Population
Measure Population ID: HIV.IND.2.MP
Description:

Measure Population

Logic Definition: Measure Population
Measure Observation ID: HIV.IND.2.MO
Description:

Measure Observation

Logic Definition: Measure Observation
Stratifier ID: HIV.IND.2.S
Measure Logic
Primary Library HIV.IND.2 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 HIE
Resource: HIVIndicatorElements
Canonical URL: http://smart.who.int/hiv/Library/HIVIndicatorElements
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: 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 Elements
Resource: HIVElements
Canonical URL: http://smart.who.int/hiv/Library/HIVElements
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 WC
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 ObservationCategoryCodes
Resource: Observation Category Codes
Canonical URL: http://terminology.hl7.org/CodeSystem/observation-category
Direct Reference Code Display: Male
Code: HIV.A.DE20
System: http://smart.who.int/hiv/CodeSystem/HIVConcepts
Direct Reference Code Display: Female
Code: HIV.A.DE19
System: http://smart.who.int/hiv/CodeSystem/HIVConcepts
Direct Reference Code Display: Transgender female
Code: HIV.A.DE22
System: http://smart.who.int/hiv/CodeSystem/HIVConcepts
Direct Reference Code Display: Transgender male
Code: HIV.A.DE21
System: http://smart.who.int/hiv/CodeSystem/HIVConcepts
Direct Reference Code Display: Other
Code: HIV.A.DE23
System: http://smart.who.int/hiv/CodeSystem/HIVConcepts
Direct Reference Code Display: Key population member*
Code: HIV.B.DE49
System: http://smart.who.int/hiv/CodeSystem/HIVConcepts
Direct Reference Code Display: Social History
Code: social-history
System: http://terminology.hl7.org/CodeSystem/observation-category
Direct Reference Code Display: Community-level testing
Code: HIV.B.DE16
System: http://smart.who.int/hiv/CodeSystem/HIVConcepts
Direct Reference Code Display: Rapid diagnostic test for HIV
Code: HIV.B.DE82
System: http://smart.who.int/hiv/CodeSystem/HIVConcepts
Direct Reference Code Display: Facility-level testing
Code: HIV.B.DE17
System: http://smart.who.int/hiv/CodeSystem/HIVConcepts
Direct Reference Code Display: Currently on PrEP
Code: HIV.C.DE10
System: http://smart.who.int/hiv/CodeSystem/HIVConcepts
Direct Reference Code Display: PrEP for HIV prevention
Code: HIV.C.DE76
System: http://smart.who.int/hiv/CodeSystem/HIVConcepts
Direct Reference Code Display: TDF + FTC
Code: HIV.C.DE18
System: http://smart.who.int/hiv/CodeSystem/HIVConcepts
Direct Reference Code Display: TDF
Code: HIV.C.DE19
System: http://smart.who.int/hiv/CodeSystem/HIVConcepts
Direct Reference Code Display: TDF + 3TC
Code: HIV.C.DE20
System: http://smart.who.int/hiv/CodeSystem/HIVConcepts
Direct Reference Code Display: Other TDF-based regimen
Code: HIV.C.DE21
System: http://smart.who.int/hiv/CodeSystem/HIVConcepts
Direct Reference Code Display: Dapivirine vaginal ring DVR
Code: HIV.C.DE22
System: http://smart.who.int/hiv/CodeSystem/HIVConcepts
Direct Reference Code Display: CAB-LA
Code: HIV.C.DE23
System: http://smart.who.int/hiv/CodeSystem/HIVConcepts
Direct Reference Code Display: First-time user
Code: HIV.C.DE25
System: http://smart.who.int/hiv/CodeSystem/HIVConcepts
Direct Reference Code Display: Continuing user
Code: HIV.C.DE26
System: http://smart.who.int/hiv/CodeSystem/HIVConcepts
Direct Reference Code Display: Restarting following a period of not taking PrEP
Code: HIV.C.DE27
System: http://smart.who.int/hiv/CodeSystem/HIVConcepts
Direct Reference Code Display: Daily oral PrEP
Code: HIV.C.DE12
System: http://smart.who.int/hiv/CodeSystem/HIVConcepts
Direct Reference Code Display: Event-driven PrEP 2+1+1
Code: HIV.C.DE13
System: http://smart.who.int/hiv/CodeSystem/HIVConcepts
Direct Reference Code Display: Other PrEP dosing type
Code: HIV.C.DE14
System: http://smart.who.int/hiv/CodeSystem/HIVConcepts
Parameter Name: Measurement Period
Use: In
Min Cardinality: 0
Max Cardinality: 1
Type: Period
Parameter Name: Initial Population
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: boolean
Parameter Name: Stratification
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: string
Parameter Name: Measure Population
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: boolean
Measure Logic Data Requirements
Data Requirement Type: Patient
Profile(s): Patient
Must Support Elements: use
Data Requirement Type: Observation
Profile(s): Observation
Must Support Elements: code, status, category, effective, issued, code.coding
Code Filter(s):
Path: code
Code:
Data Requirement Type: Observation
Profile(s): Observation
Must Support Elements: encounter, status, code, issued
Data Requirement Type: Encounter
Profile(s): Encounter
Must Support Elements: location
Data Requirement Type: MedicationStatement
Profile(s): MedicationStatement
Must Support Elements: status, reasonCode, medication, effective, statusReason, dosage
Measure Logic Definitions
Logic Definition Library Name: HIVIND2Logic
/*
 * As defined by Member States
 */
define "Initial Population":
  true
Logic Definition Library Name: HIVIndicatorElements
/*
@dataElement: HIV.A.DE18 - Gender
@activity: HIV.A6.1 Review sociodemographic data with client | HIV.A5 Create new client record
@description: Gender of the client
*/

/*
 * By Administrative Gender of Patient Stratifier
 * Need to expand codes
 */

define "By Administrative Gender Stratifier":
  case 
      when Patient.gender = 'male' then Concepts."Male"
      when Patient.gender = 'female' then Concepts."Female"
      when Patient.gender = 'transgender female' then Concepts."Transgender female"
      when Patient.gender = 'transgender male' then Concepts."Transgender male"
      else Concepts."Other - HIV.A.DE23"
  end
Logic Definition Library Name: HIVIndicatorElements
/* End of Visit date A.DE3 */

/*
@dataElement: HIV.A.DE17 - Age
@activity: HIV.A6.1 Review sociodemographic data with client | HIV.A5 Create new client record
@description: Calculated age (number of years) of the client based on date of birth
*/
define "Age In Years":
  AgeInYearsAt(start of "Measurement Period")
Logic Definition Library Name: HIVIndicatorElements
define "By Age Stratifier 3":
  case 
      when "Age In Years" >= 15 and "Age In Years"<= 19 then '15-19'
      when "Age In Years" <= 24 then '20-24'
      when "Age In Years" <= 49 then '25–49'
      when "Age In Years" >= 50 then '50+'
      else null
  end
Logic Definition Library Name: HIVIndicatorElements
// Geographic Region
define "By Geographic Region Stratifier":
    First(Patient.address A where A.use in { 'home' }).state
Logic Definition Library Name: HIVElements
/* End of Key population member B.DE49 */

/*
@dataElement: HIV.B.DE50 - Key population member type
@activity: HIV.B6 Capture or update client history
@description: The type of key population that the client is included in
*/
define "Key population member type Observation":
  [Observation: Concepts."Key population member - HIV.B.DE49"] O
    where O.status in { 'final', 'amended', 'corrected' }
    and exists(O.category OC where OC ~ ConceptsCustom."social-history")
Logic Definition Library Name: HIVIndicatorElements
define "Key population member type Observation":
  Elements."Key population member type Observation" O
    where O.effective.toInterval() before end of "Measurement Period"
    or O.issued before end of "Measurement Period"
Logic Definition Library Name: HIVIndicatorElements
// Stratifier
define patientGroups:
  "Key population member type Observation" O
  return Combine(O.code.coding.code, ':')
Logic Definition Library Name: HIVIndicatorElements
/**
 * HIV Elements
 */

/* General Data Elements */

// From Common

define "Community_testing":
  exists([Observation] O
    with [Encounter] E
      such that O.encounter.references(E) and exists(E.location.physicalType PT where PT ~  Concepts."Community-level testing") 
  where (O.status in { 'final', 'amended' }
  and O.code ~ Concepts."Rapid diagnostic test for HIV - HIV.B.DE82"
  and O.issued after start of "Measurement Period"
  and O.issued before end of "Measurement Period"))
Logic Definition Library Name: HIVIndicatorElements
/*@triggeredBy Encounter with location = facility level testing*/
define "Facility_testing":
  exists([Observation] O
    with [Encounter] E
      such that O.encounter.references(E) and exists(E.location.physicalType PT where PT ~  Concepts."Facility-level testing")
  where (O.status in { 'final', 'amended' }
  and O.code ~ Concepts."Rapid diagnostic test for HIV - HIV.B.DE82"
  and O.issued after start of "Measurement Period"
  and O.issued before end of "Measurement Period")
  )
Logic Definition Library Name: HIVIndicatorElements
define setting:
  case
    when Community_testing then Concepts."Community-level testing"
    when Facility_testing then Concepts."Facility-level testing"
    else null
  end
Logic Definition Library Name: HIVElements
/* End of Date/time of suspected exposure to HIV C.DE9 */

/*
@dataElement: HIV.C.DE10 - Currently on PrEP
@activity: HIV.C3 Capture or update client history
@description: The client is currently taking PrEP. Oral pre-exposure prophylaxis (PrEP) of HIV is the use of ARV drugs by people who are not infected with HIV to block the acquisition of HIV.
*/

/*@triggeredBy Encounter with location = community level testing*/

define "Currently on PrEP":
  [MedicationStatement] MS
    where MS.status = 'completed'
    and exists(MS.reasonCode C where C ~ Concepts."Currently on PrEP")
    and MS.medication ~ Concepts."PrEP for HIV prevention"
Logic Definition Library Name: HIVElements
/* End of Current PrEP regimen */

/*
@dataElement: HIV.C.DE18 - TDF + FTC
@activity: HIV.C3 Capture or update client history
@description: Treated with tenofovir disoproxil fumarate (TDF) and emtricitabine (FTC) pre-exposure prophylaxis (PrEP) regimen (oral PrEP)
*/

define "TDF + FTC C.DE18":
  "Currently on PrEP" MS
  where MS.medication ~ Concepts."TDF + FTC - HIV.C.DE18"
Logic Definition Library Name: HIVIndicatorElements
/* End of Other PrEP dosing type */

/*
@dataElement: HIV.C.DE18 - TDF + FTC
@activity: HIV.C3 Capture or update client history
@description: Treated with tenofovir disoproxil fumarate (TDF) and emtricitabine (FTC) pre-exposure prophylaxis (PrEP) regimen (oral PrEP)
*/

define "TDF + FTC C.DE18":
  exists (Elements."TDF + FTC C.DE18" MS
  where MS.status = 'completed' and MS.effective.toInterval() during "Measurement Period")
Logic Definition Library Name: HIVElements
/* End of TDF + FTC C.DE18 */

/*
@dataElement: HIV.C.DE19 - TDF
@activity: HIV.C3 Capture or update client history
@description: Treated with single-agent tenofovir disoproxil fumarate (TDF) pre-exposure prophylaxis (PrEP) regimen (oral PrEP)
*/

define "TDF C.DE19":
  "Currently on PrEP" MS
  where MS.medication ~ Concepts."TDF - HIV.C.DE19"
Logic Definition Library Name: HIVIndicatorElements
/* End of TDF + FTC C.DE18 */

/*
@dataElement: HIV.C.DE19 - TDF
@activity: HIV.C3 Capture or update client history
@description: Treated with single-agent tenofovir disoproxil fumarate (TDF) pre-exposure prophylaxis (PrEP) regimen (oral PrEP)
*/

define "TDF C.DE19":
  exists (Elements."TDF C.DE19" MS
  where MS.status = 'completed' and MS.effective.toInterval() during "Measurement Period")
Logic Definition Library Name: HIVElements
/* End of TDF C.DE19 */

/*
@dataElement: HIV.C.DE20 - TDF + 3TC
@activity: HIV.C3 Capture or update client history
@description: Treated with tenofovir disoproxil fumarate (TDF) and lamivudine (3TC) pre-exposure prophylaxis (PrEP) regimen (oral PrEP)
*/

define "TDF + 3TC C.DE20":
  "Currently on PrEP" MS
  where MS.medication ~ Concepts."TDF + 3TC - HIV.C.DE20"
Logic Definition Library Name: HIVIndicatorElements
/* End of TDF C.DE19 */

/*
@dataElement: HIV.C.DE20 - TDF + 3TC
@activity: HIV.C3 Capture or update client history
@description: Treated with tenofovir disoproxil fumarate (TDF) and lamivudine (3TC) pre-exposure prophylaxis (PrEP) regimen (oral PrEP)
*/

define "TDF + 3TC C.DE20":
  exists (Elements."TDF + 3TC C.DE20" MS
  where MS.status = 'completed' and MS.effective.toInterval() during "Measurement Period")
Logic Definition Library Name: HIVElements
/* End of TDF + 3TC C.DE20 */

/*
@dataElement: HIV.C.DE21 - Other TDF-based regimen
@activity: HIV.C3 Capture or update client history
@description: Treated with other tenofovir disoproxil fumarate (TDF)-based regimen (oral PrEP)
*/

define "Other TDF-based regimen":
  "Currently on PrEP" MS
  where MS.medication ~ Concepts."Other TDF-based regimen"
Logic Definition Library Name: HIVIndicatorElements
/* End of TDF + 3TC C.DE20 */

/*
@dataElement: HIV.C.DE21 - Other TDF-based regimen
@activity: HIV.C3 Capture or update client history
@description: Treated with other tenofovir disoproxil fumarate (TDF)-based regimen (oral PrEP)
*/

define "Other TDF-based regimen":
  exists (Elements."Other TDF-based regimen" MS
  where MS.status = 'completed' and MS.effective.toInterval() during "Measurement Period")
Logic Definition Library Name: HIVElements
/* End of Other TDF-based regimen */

/*
@dataElement: HIV.C.DE22 - Dapivirine vaginal ring DVR
@activity: HIV.C3 Capture or update client history
@description: Dapivirine vaginal ring (DVR) for HIV prevention
*/

define "Dapivirine vaginal ring DVR C.DE22":
  "Currently on PrEP" MS
  where MS.medication ~ Concepts."Dapivirine vaginal ring DVR - HIV.C.DE22"
Logic Definition Library Name: HIVIndicatorElements
/* End of Other TDF-based regimen */

/*
@dataElement: HIV.C.DE22 - Dapivirine vaginal ring DVR
@activity: HIV.C3 Capture or update client history
@description: Dapivirine vaginal ring (DVR) for HIV prevention
*/

define "Dapivirine vaginal ring DVR C.DE22":
  exists (Elements."Dapivirine vaginal ring DVR C.DE22" MS
  where MS.status = 'completed' and MS.effective.toInterval() during "Measurement Period")
Logic Definition Library Name: HIVElements
/*
@dataElement: HIV.C.DE23 - CAB-LA
@activity: HIV.C3 Capture or update client history
@description: Long-acting injectable cabotegravir
*/

define "CAB-LA C.DE23":
  "Currently on PrEP" MS
  where MS.medication ~ Concepts."CAB-LA - HIV.C.DE23"
Logic Definition Library Name: HIVIndicatorElements
/*
@dataElement: HIV.C.DE23 - CAB-LA
@activity: HIV.C3 Capture or update client history
@description: Long-acting injectable cabotegravir
*/

define "CAB-LA C.DE23":
  exists (Elements."CAB-LA C.DE23" MS
  where MS.status = 'completed' and MS.effective.toInterval() during "Measurement Period")
Logic Definition Library Name: HIVIndicatorElements
define prep_product:
  List<String>{
    if "TDF + FTC C.DE18" or "TDF C.DE19" or "TDF + 3TC C.DE20" or "Other TDF-based regimen" then 'PREP Product Oral' else null,
    if "Dapivirine vaginal ring DVR C.DE22" then 'PREP Product long-acting device' else null,
    if "CAB-LA C.DE23" then 'PREP Product long-acting injectable' else null
  }
Logic Definition Library Name: HIVElements
/* End of Experience with PrEP */

/*
@dataElement: HIV.C.DE25 - First-time user
@activity: HIV.C3 Capture or update client history
@description: The client has never used pre-exposure prophylaxis (PrEP) before (naive)
*/

define "First-time user C.DE25":
  "Currently on PrEP" MS
  where exists(MS.statusReason SR where SR ~ Concepts."First-time user - HIV.C.DE25")
Logic Definition Library Name: HIVIndicatorElements
/* End of Experience with PrEP */

/*
@dataElement: HIV.C.DE25 - First-time user
@activity: HIV.C3 Capture or update client history
@description: The client has never used pre-exposure prophylaxis (PrEP) before (naive)
*/

define "First-time user C.DE25":
    exists (Elements."First-time user C.DE25" MS
  where MS.status = 'completed' and MS.effective.toInterval() during "Measurement Period")
Logic Definition Library Name: HIVElements
/* End of First-time user C.DE25 */

/*
@dataElement: HIV.C.DE26 - Continuing user
@activity: HIV.C3 Capture or update client history
@description: The client has used PrEP before and is continuing to use PrEP
*/

define "Continuing user":
  "Currently on PrEP" MS
  where exists(MS.statusReason SR where SR ~ Concepts."Continuing user")
Logic Definition Library Name: HIVIndicatorElements
/* End of First-time user C.DE25 */

/*
@dataElement: HIV.C.DE26 - Continuing user
@activity: HIV.C3 Capture or update client history
@description: The client has used PrEP before and is continuing to use PrEP
*/

define "Continuing user":
  exists (Elements."Continuing user" MS
  where MS.status = 'completed' and MS.effective.toInterval() during "Measurement Period")
Logic Definition Library Name: HIVElements
/* End of Continuing user */

/*
@dataElement: HIV.C.DE27 - Restarting following a period of not taking PrEP
@activity: HIV.C3 Capture or update client history
@description: The client is restarting PrEP following a period of not taking PrEP
*/

define "Restarting following a period of not taking PrEP":
  "Currently on PrEP" MS
  where exists(MS.statusReason SR where SR ~ Concepts."Restarting following a period of not taking PrEP")
Logic Definition Library Name: HIVIndicatorElements
/* End of Continuing user */

/*
@dataElement: HIV.C.DE27 - Restarting following a period of not taking PrEP
@activity: HIV.C3 Capture or update client history
@description: The client is restarting PrEP following a period of not taking PrEP
*/

define "Restarting following a period of not taking PrEP":
  exists (Elements."Restarting following a period of not taking PrEP" MS
  where MS.status = 'completed' and MS.effective.toInterval() during "Measurement Period")
Logic Definition Library Name: HIVIndicatorElements
define prep_experience:
  List<String>{
    if "First-time user C.DE25" then 'PREP first time' else null,
    if "Continuing user" then 'PREP Continuing user' else null,
    if "Restarting following a period of not taking PrEP" then 'PREP Restarting' else null
  }
Logic Definition Library Name: HIVElements
/* End of PrEP dosing type */

/*
@dataElement: HIV.C.DE12 - Daily oral PrEP
@activity: HIV.C3 Capture or update client history
@description: Pre-exposure prophylaxis (PrEP) is taken every day
*/

define "Daily oral PrEP":
  "Currently on PrEP" MS
  where exists(MS.dosage.additionalInstruction AI where AI ~ Concepts."Daily oral PrEP")
Logic Definition Library Name: HIVIndicatorElements
/* End of PrEP dosing type */

/*
@dataElement: HIV.C.DE12 - Daily oral PrEP
@activity: HIV.C3 Capture or update client history
@description: Pre-exposure prophylaxis (PrEP) is taken every day
*/

define "Daily oral PrEP":
  exists (Elements."Daily oral PrEP" MS
  where MS.status = 'completed' and MS.effective.toInterval() during "Measurement Period")
Logic Definition Library Name: HIVElements
/* End of Daily oral PrEP */

/*
@dataElement: HIV.C.DE13 - Event-driven PrEP 2+1+1
@activity: HIV.C3 Capture or update client history
@description: Event-driven pre-exposure prophylaxis (PrEP) is taken on an even-driven basis (2+1+1)
*/

define "Event-driven PrEP 2+1+1":
  "Currently on PrEP" MS
  where exists(MS.dosage.additionalInstruction AI where AI ~ Concepts."Event-driven PrEP 2+1+1")
Logic Definition Library Name: HIVIndicatorElements
/* End of Daily oral PrEP */

/*
@dataElement: HIV.C.DE13 - Event-driven PrEP 2+1+1
@activity: HIV.C3 Capture or update client history
@description: Event-driven pre-exposure prophylaxis (PrEP) is taken on an even-driven basis (2+1+1)
*/

define "Event-driven PrEP 2+1+1":
  exists (Elements."Event-driven PrEP 2+1+1" MS
  where MS.status = 'completed' and MS.effective.toInterval() during "Measurement Period")
Logic Definition Library Name: HIVElements
/* End of Event-driven PrEP 2+1+1 */

/*
@dataElement: HIV.C.DE14 - Other PrEP dosing type
@activity: HIV.C3 Capture or update client history
@description: Other PrEP dosing type
*/

define "Other PrEP dosing type":
   "Currently on PrEP" MS
  where exists(MS.dosage.additionalInstruction AI where AI ~ Concepts."Other PrEP dosing type")
Logic Definition Library Name: HIVIndicatorElements
/* End of Event-driven PrEP 2+1+1 */

/*
@dataElement: HIV.C.DE14 - Other PrEP dosing type
@activity: HIV.C3 Capture or update client history
@description: Other PrEP dosing type
*/

define "Other PrEP dosing type":
  exists (Elements."Other PrEP dosing type" MS
  where MS.status = 'completed' and MS.effective.toInterval() during "Measurement Period")
Logic Definition Library Name: HIVIndicatorElements
define prep_dosing:
  List<String>{
    if "Daily oral PrEP" then 'Daily oral PrEP' else null,
    if "Event-driven PrEP 2+1+1" then 'Event driven PrEP' else null,
    if "Other PrEP dosing type" then 'Other PrEP dosing type' else null
  }
Logic Definition Library Name: HIVIND2Logic
// Provider type concepts are not found in DD

define "Stratification":
 HIE."By Administrative Gender Stratifier".code 
  + ':' + HIE."By Age Stratifier 3"
+ ':' + HIE."By Geographic Region Stratifier"
+ Combine(HIE.patientGroups, ':')
 + ':' + HIE."setting".code
+ Combine(HIE.prep_product, ':')
+ Combine(HIE.prep_experience, ':')
+ Combine(HIE.prep_dosing, ':')
Logic Definition Library Name: HIVElements
/* End of Medications prescribed C.DE75 */

/*
@dataElement: HIV.C.DE76 - PrEP for HIV prevention
@activity: HIV.C23 Prescribe or administer PrEP or PEP
@description: Client was prescribed pre-exposure prophylaxis (PrEP) for HIV prevention
*/

define "PrEP for HIV prevention":
  [MedicationStatement] MS
    where MS.status = 'completed'
    and MS.medication ~ Concepts."PrEP for HIV prevention"
Logic Definition Library Name: HIVIndicatorElements
define "PrEP for HIV prevention":
  exists (Elements."PrEP for HIV prevention" MS
    where MS.status = 'completed' and MS.effective.toInterval() during "Measurement Period")
Logic Definition Library Name: HIVIND2Logic
define "Measure Population":
   HIE."PrEP for HIV prevention"
Logic Definition Library Name: FHIRHelpers
define function ToString(value AdministrativeGender): value.value
Logic Definition Library Name: FHIRHelpers
define function ToString(value string): value.value
Logic Definition Library Name: FHIRHelpers
define function ToString(value AddressUse): value.value
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 ToDateTime(value instant): value.value
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 MedicationStatementStatus): value.value
Logic Definition Library Name: HIVIND2Logic
/*
 * NOTE: Modeled as a Continuous Variable measure because this is an estimated denominator proportion measure
 */

define function "Measure Observation"(Patient "Patient"):
  1
Generated using version 0.4.6 of the sample-content-ig Liquid templates