From 9e2f743d7b887064f56251c03761e89fa48a94f0 Mon Sep 17 00:00:00 2001 From: Ian <52504170+ibacher@users.noreply.github.com> Date: Wed, 31 Jul 2024 12:07:52 -0400 Subject: [PATCH] HIVB9DT (#42) --- input/cql/HIVB2DTLogic.cql | 161 +++++++----- input/cql/HIVB9DTLogic.cql | 245 ++++++++++++++++++ input/cql/HIVConceptsCustom.cql | 4 +- input/cql/HIVElements.cql | 1 - input/cql/HIVEncounterElements.cql | 1 - .../HIVB9DTScheduleFollowUp.fsh | 33 +++ input/fsh/libraries/HIVB9DTLogic.fsh | 19 ++ input/fsh/plandefinition/HIVB9DT.fsh | 206 +++++++++++++++ 8 files changed, 598 insertions(+), 72 deletions(-) create mode 100644 input/cql/HIVB9DTLogic.cql create mode 100644 input/fsh/activitydefinition/HIVB9DTScheduleFollowUp.fsh create mode 100644 input/fsh/libraries/HIVB9DTLogic.fsh create mode 100644 input/fsh/plandefinition/HIVB9DT.fsh diff --git a/input/cql/HIVB2DTLogic.cql b/input/cql/HIVB2DTLogic.cql index 2c5c719a84..4ca521660b 100644 --- a/input/cql/HIVB2DTLogic.cql +++ b/input/cql/HIVB2DTLogic.cql @@ -2,87 +2,112 @@ Library: HIV.B2.DT Logic @DecisionID: HIV.B2.DT -@BusinessRule: -@Trigger: -@Description: - -Check for signs of serious illness -Consolidated guidelines on HIV prevention, testing, treatment, service delivery and monitoring: recommendations for a public health approach (2021) Chapter 5: Advanced HIV Disease. Figure 5.1: Algorithm for providing a package of care for people with advanced HIV disease. -Should this just be for anyone with HIV? -Wouldn't other disease domains also code for general exam? +@BusinessRule: Check for signs of serious illness +@Trigger: HIV.B2 Check for signs of serious illness +@Trigger: HIV.D3 Check for signs of serious illness +@HitPolicy: Rule Order +@Description: Check for serious illness + +Data Concepts: + * HIV.A.DE17: Age | Calculated age (number of years) of the client based on date of birth + * HIV.D.DE17: Signs of serious illness | Signs that may indicate the client has a serious illness and needs triage or an emergency referral + * HIV.D.DE9: Body temperature | Temperature of the client in Celsius + +Consolidated guidelines on HIV prevention, testing, treatment, service delivery and monitoring: recommendations for a public health approach (2021) Chapter 5: Advanced HIV Disease. Figure 5.1: Algorithm for providing a package of care for people with advanced HIV disease. */ library HIVB2DTLogic - using FHIR version '4.0.1' - - - include HIVCommon version '0.0.1' called HIC - include FHIRHelpers version '4.0.1' - include WHOCommon called WCom - include FHIRCommon called FC +using FHIR version '4.0.1' - valueset "Tachycardia": '' - valueset "Tachypnea": '' - valueset "Unable to walk unaided": '' - valueset "Body temperature = ≥ 39 °C": '' - valueset "Other sign of serious illness (specify)": '' - valueset "Lethargy": '' - valueset "Unconsciousness": '' - valueset "Convulsions": '' - valueset "Unable to breastfeed": '' - valueset "Unable to drink": '' - valueset "Repeated vomiting": '' +include HIVCommon version '0.0.1' called HIC +include HIVConcepts called HCx +include HIVEncounterElements called Elements +include FHIRHelpers version '4.0.1' +include FHIRCommon called FC +include WHOCommon called WCom - context Patient +context Patient /* - * Age = ≥ 10 years + @input: "Age 10 or older" + @pseudocode: 'Age' >= 10 years */ - -define "Age_10_or_more": +define "Age 10 or older": AgeInYearsAt(Today()) >= 10 /* - * Age < 10 years + @input: "Age under 10" + @pseudocode: 'Age' < 10 years */ - -define "Age_less_than_10": +define "Age under 10": AgeInYearsAt(Today()) < 10 -define "Take action or refer client showing signs of a serious illness": - exists(([Observation: "Tachycardia"] - union [Observation: "Tachypnea"] - union [Observation: "Unable to walk unaided"]) O - where Age_10_or_more - and O.status in { 'final', 'amended' }) - or exists(([Observation: "Lethargy"] - union [Observation: "Unconsciousness"] - union [Observation: "Convulsions"] - union [Observation: "Unable to breastfeed"] - union [Observation: "Unable to drink"] - union [Observation: "Unconsciousness"] - union [Observation: "Repeated vomiting"]) O - where Age_less_than_10 - and O.status in { 'final', 'amended' } - ) - -//plan definition Immediately take action or refer for care if a client is having this issue. - +/* + @output: "Immediately take action or refer for care if a client is having this issue" + */ +define "Immediately take action or refer for care if a client is having this issue": + exists(Elements."Signs of serious illness" O + where "Age 10 or older" + and O.value ~ HCx."Tachycardia") + +/* + @output "Immediately take action or refer for care if client is showing this sign of a serious illness." + */ +define "Immediately take action or refer for care if client is showing this sign of a serious illness": + "Signs of serious illness age 10 or older" or "Signs of serious illness age under 10" + +/* + @output "Use clinical judgement and consider local epidemiology to determine if symptoms suggest client is seriously ill" + */ define "Use clinical judgement and consider local epidemiology to determine if symptoms suggest client is seriously ill": - exists (([Observation: "Body temperature = ≥ 39 °C"] - union [Observation: "Other sign of serious illness (specify)"]) O - where Age_10_or_more - and O.status in { 'final', 'amended' }) - // Please this condition needs to be fixed - // or exists((([Observation: "Body temperature = ≥ 39 °C"] - // intersect [Observation: "Tachycardia"]) - // or ([Observation: "Body temperature = ≥ 39 °C"] - // intersect [Observation: "Tachypnea"]) - // or [Observation: "Other sign of serious illness (specify)"]) O - // where Age_less_than_10 - // and O.status in { 'final', 'amended' }) - // ) - - -//plan definition Use clinical judgement and consider local epidemiology to determine if symptoms suggest client is seriously ill. + "Signs of serious illness requiring clinical judgement age 10 or older" or "Signs of serious illness requiring clinical judgement age under 10" + +/* + @dynamicValue: Guidance + */ +define "Guidance": + case + when "Immediately take action or refer for care if a client is having this issue" + then "Immediately take action or refer for care if a client is having this issue." + when "Immediately take action or refer for care if client is showing this sign of a serious illness" and "Age 10 or older" + then "Immediately take action or refer for care if client is showing this sign of a serious illness." + when "Immediately take action or refer for care if client is showing this sign of a serious illness" and "Age under 10" + then """This is a sign and/or symptom of a serious health condition. + +Immediately take action or refer for care if client is showing this sign of a serious illness.""" + else null + end + +/* + Supporting Logic +*/ +define "Signs of serious illness age 10 or older": + "Age 10 or older" and Elements."Signs of serious illness" O + where + O.value ~ HCx."Tachypnea" or + O.value ~ HCx."Unable to walk unaided" + +define "Signs of serious illness age under 10": + "Age under 10" and Elements."Signs of serious illness" O + where + O.value in { + HCx."Lethargy - HIV.D.DE22", + HCx."Unconsciousness", + HCx."Convulsions", + HCx."Unable to breastfeed", + HCx."Unable to drink", + HCx."Repeated vomiting" + } + +define "Signs of serious illness requiring clinical judgement age 10 or older": + "Age 10 or older" and Elements."Signs of serious illness" O + where + O.value ~ HCx."Fever of 39 C or greater" or + O.value ~ HCx."Other sign of serious illness" + +define "Signs of serious illness requiring clinical judgement age under 10": + "Age under 10" and Elements."Signs of serious illness" O + where + O.value ~ HCx."Fever of 39 C or greater" or + O.value ~ HCx."Other sign of serious illness" diff --git a/input/cql/HIVB9DTLogic.cql b/input/cql/HIVB9DTLogic.cql new file mode 100644 index 0000000000..baf76772ee --- /dev/null +++ b/input/cql/HIVB9DTLogic.cql @@ -0,0 +1,245 @@ +/* +@DecisionID: HIV.B9.DT +@BusinessRule: HIV restesting recommendations +@Trigger: HIV.B9 Determine recommended services +@HitPolicy: Rule order +@Description: Determine retest recommendation + +Data Concepts: + * HIV.B.DE115: HIV status | HIV status reported after applying the national HIV testing algorithm. No single HIV test can provide an HIV-positive diagnosis. + * HIV.B.DE33: Partner HIV status (reported) | The HIV status of the client's partner. + * HIV.C.DE55: Sex partner's HIV treatment status | Treatment adherence of client's sex partner for partners that are HIV-positive + * HIV.Config.DE12: HIV burden of the setting | HIV burden of the setting (high or low) based on the national HIV prevalence or where the HIV prevalence and/or incidence in a geographical setting is higher than national prevalence and, therefore, needs priority in the HIV response + * HIV.B.DE49: Key population member | Client is a member of a key population that has an increased risk of HIV + * HIV.B.DE29: Currently pregnant | Client is currently pregnant + * HIV.D.DE939: TB diagnosis result | Final result of the TB investigation (bacteriological and/or clinical) + * HIV.D.DE282: Presumptive TB | Client's comorbidities or coinfections or symptoms of these include presumptive TB + * HIV.C.DE10: Currently on PrEP | 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. + * HIV.B.DE225: At elevated risk for HIV acquisition | Client is at elevated risk for HIV acquisition +*/ +library HIVB9DTLogic + +// Included Libraries +using FHIR version '4.0.1' + +include HIVCommon version '0.0.1' called HIC +include HIVConcepts called HCx +include HIVConfig called Config +include HIVEncounterElements called Elements +include FHIRHelpers version '4.0.1' +include FHIRCommon called FC +include WHOCommon called WCom +// Included for PlanDefinition +include WHOConcepts called WCx +include WHOEncounterElements called WElm + + +context Patient + + /* + @input: "HIV status negative or unknown" + @pseudocode: "HIV status" IN 'HIV-negative', 'Unknown' + */ +define "HIV status negative or unknown": + exists(Elements."HIV status Observation" O + where O.value in { HCx."HIV-negative", HCx."Unknown" }) + + /* + @input: "Partner HIV reported positive" + @pseudocode: "Partner HIV status (reported)"='HIV-positive' + */ +define "Partner HIV positive": + exists(Elements."Partner HIV status reported Observation" O + where O.value ~ HCx."HIV-positive") + + /* + @input: "Sex partner's HIV treatment status is partner not virally suppressed" + @pseudocode: "Sex partner's HIV treatment status"='Partner is not virally suppressed' + */ +define "Sex partner's HIV treatment status is partner not virally suppressed": + exists(Elements."Sex partners HIV treatment status Observation" O + where O.value ~ HCx."Partner is not virally suppressed") + + /* + @input: "HIV burden of setting is high HIV burden setting" + @pseudocode: "HIV burden of the setting"='High HIV burden setting' + */ +define "HIV burden of setting is high HIV burden setting": + Config."HIV burden of setting" ~ HCx."High HIV burden setting" + + /* + @input: "HIV burden of setting is low HIV burden setting" + @pseudocode: "HIV burden of the setting"='Low HIV burden setting' + */ +define "HIV burden of setting is low HIV burden setting": + Config."HIV burden of setting" ~ HCx."Low HIV burden setting" + + /* + @input: "Key population member" + @pseudocode: "Key population member" = TRUE + */ +define "Key population member": + exists(Elements."Key population member* B.DE49 Observation" O + where O.value is true) + + /* + @input: "Currently pregnant" + @pseudocode: "Currently pregnant"=True + */ +define "Currently pregnant": + exists(WElm."Pregnant Observation") + + /* + @input: "TB diagnosis result is diagnosed TB" + @pseudocode: "Currently pregnant"=True + */ +define "TB diagnosis result is diagnosed TB": + exists(Elements."TB diagnosis result Observation" O + where O.value ~ HCx."Diagnosed TB" or) + + /* + @input: "Presumptive TB" + @pseudocode: "Presumptive TB"=True + */ +define "Presumptive TB": + exists(Elements."Presumptive TB D.DE282 Observation" O + where O.value is true) + +/* + @input: "Currently on PrEP" + @pseudocode: "Currently on PrEP"=True + */ +define "Currently on PrEP": + exists(Elements."Currently on PrEP" O + where O.value is true) + + /* + @input: "At elevated risk for HIV acquisition" + @pseudocode: "At elevated risk for HIV acquisition"=True + */ +define "At elevated risk for HIV acquisition": + exists(Elements."At elevated risk for HIV acquisition" O + where O.value is true) + + /* + @output: "Schedule an annual follow-up test" + @pseudocode: "Follow-up test recommended date" = "Visit date" + 1 year + */ +define "Schedule an annual follow-up test": + "HIV status negative or unknown" and + case + when "Partner has HIV and is not virally suppressed" + then true + when "HIV burden of setting is high HIV burden setting" + then true + when "Key population memeber" + then true + when "At elevated risk for HIV acquisition" + then true + else false + end + +/* + @output: "Follow-up test recommended" + @pseudocode: N/A + */ +define "Follow-up test recommended": + "HIV status negative or unknown" and + case + when "TB diagnosis result is diagnosed TB" + then true + when "Presumptive TB" + then true + else false + end + +/* + @output: "Schedule quarterly retesting for PrEP users" + @pseudocode: N/A + */ +define "Schedule quarterly retesting for PrEP users": + "HIV status negative or unknown" and "Currently on PrEP" + +/* + @output: "Schedule an HIV test, syphilis test, hepatitis B test as early as possible during this pregnancy" + @pseudocode: N/A + */ +define "Schedule an HIV test, syphilis test, hepatitis B test as early as possible during this pregnancy": + "Pregnant in high HIV burden setting" + +/* + @output: "Schedule a 'Follow-up test recommended date during a third trimester visit" + @pseudocode: N/A + */ +define "Schedule a 'Follow-up test recommended date' during a third trimester visit": + "Pregnant in high HIV burden setting" + +/* + @output: "Schedule a 'Follow-up test recommended date during a third trimester visit" + @pseudocode: N/A + */ +define "Schedule a 'Follow-up test recommended date' at first ANC contact date": + "Pregnant in low HIV burden setting" and + case + when "Key population member": + then true + when "Partner has HIV and is not virally suppressed": + then true + when "At elevated risk for HIV acquisition" + then true + else false + end + +/* + @dynamicValue: Guidance + */ +define "Guidance": + case + when "Schedule an annual follow-up test" + then """Schedule an annual follow-up test. + +WHO guidance recommends annual retesting for people who have ongoing HIV-related risks in all settings. These include people with a known HIV-positive partner who is not virally suppressed on ART.""" + when "Follow-up test recommended" + then """Recommend a follow-up test. + +In certain conditions and situations, individuals who have been tested for HIV in the past can be advised to retest. These include: +* Individuals presenting with a diagnosis or receiving treatment for STIs or viral hepatitis, +* Individuals with a confirmed or presumptive TB diagnosis, +* Outpatients presenting with clinical conditions or symptoms indicative of HIV, individuals with recent HIV risk exposure.""" + when "Schedule quarterly retesting for PrEP users" + then """Schedule quarterly retesting for PrEP users.""" + when "Schedule an HIV test, syphilis test, hepatitis B test as early as possible during this pregnancy" + then """Schedule an HIV test, syphilis test, hepatitis B test as early as possible during this pregnancy + +All pregnant women should be tested for HIV as well as syphilis and hepatitis B virus at least once and as early as possible during pregnancy.""" + when "Schedule a 'Follow-up test recommended date' at first ANC contact date": + then """In low HIV burden settings, retesting all pregnant women is not warranted unless focused among women from key populations or at high ongoing risk, such as those from key populations or with partners with HIV who are not virally suppressed. Countries could consider one additional retest in the post-partum period, such as at 14 weeks, six months or nine months for women in high HIV burden or incidence districts or provinces, key populations or women with partners with HIV who are not virally suppressed.""" + else null + end + +/* + @dynamicValue: "Date to schedule" + */ +define "Schedule Follow-up Date" + case + when "Schedule an annual follow-up test": + then Today + 1 years + when "Schedule quarterly retesting for PrEP users": + then Today + 3 months + else null + end + +// Helper Logic +define "Pregnant in high HIV burden setting": + "HIV status negative or unknown" and + "HIV burden of setting is high HIV burden setting" and + "Currently pregnant" + +define "Pregnant in low HIV burden setting": + "HIV status negative or unknown" and + "HIV burden of setting is low HIV burden setting" and + "Currently pregnant" + +define "Partner has HIV and is not virally suppressed": + "Partner HIV positive" and "Sex partner's HIV treatment status is partner not virally suppressed" + diff --git a/input/cql/HIVConceptsCustom.cql b/input/cql/HIVConceptsCustom.cql index 43d756f7dc..8154fa7774 100644 --- a/input/cql/HIVConceptsCustom.cql +++ b/input/cql/HIVConceptsCustom.cql @@ -4,10 +4,10 @@ codesystem "ConditionCategoryCodes": 'http://terminology.hl7.org/CodeSystem/cond codesystem "ConditionClinicalStatusCodes": 'http://terminology.hl7.org/CodeSystem/condition-clinical' codesystem "ObservationCategoryCodes": 'http://terminology.hl7.org/CodeSystem/observation-category' codesystem "missing concepts": 'missing concepts' -codesystem "Devicestatement-status": 'http://hl7.org/fhir/ValueSet/device-statement-status' +codesystem "Devicestatement-status": 'http://hl7.org/fhir/device-statement-status' codesystem "SNOMEDCT:2018-03": 'urn:oid:2.16.840.1.113883.6.96' version 'urn:hl7:version:2018-03' codesystem "SNOMEDCT": 'urn:oid:2.16.840.1.113883.6.96' -codesystem "AdverseEventSeverity": 'http://hl7.org/fhir/ValueSet/adverse-event-severity' +codesystem "AdverseEventSeverity": 'http://terminology.hl7.org/CodeSystem/adverse-event-severity' code "encounter-diagnosis": 'encounter-diagnosis' from "ConditionCategoryCodes" display 'Encounter Diagnosis' diff --git a/input/cql/HIVElements.cql b/input/cql/HIVElements.cql index b67ec64463..718b0241aa 100644 --- a/input/cql/HIVElements.cql +++ b/input/cql/HIVElements.cql @@ -5143,7 +5143,6 @@ define "Body weight Value": @activity: HIV.D3 Check for signs of serious illness @description: Signs that may indicate the client has a serious illness and needs triage or an emergency referral */ -// TODO: Replace placeholder with relevant CQL logic define "Signs of serious illness": exists "Signs of serious illness Observation" define "Signs of serious illness Observation": diff --git a/input/cql/HIVEncounterElements.cql b/input/cql/HIVEncounterElements.cql index dfec38695c..661d6420d4 100644 --- a/input/cql/HIVEncounterElements.cql +++ b/input/cql/HIVEncounterElements.cql @@ -2909,7 +2909,6 @@ define "Body weight Value": @activity: HIV.D3 Check for signs of serious illness @description: Signs that may indicate the client has a serious illness and needs triage or an emergency referral */ -// TODO: Replace placeholder with relevant CQL logic define "Signs of serious illness": exists "Signs of serious illness Observation" define "Signs of serious illness Observation": diff --git a/input/fsh/activitydefinition/HIVB9DTScheduleFollowUp.fsh b/input/fsh/activitydefinition/HIVB9DTScheduleFollowUp.fsh new file mode 100644 index 0000000000..dfe8161bf0 --- /dev/null +++ b/input/fsh/activitydefinition/HIVB9DTScheduleFollowUp.fsh @@ -0,0 +1,33 @@ +Instance: HIVB9DTScheduleFollowUp +InstanceOf: http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-servicerequestactivity +Title: "HIV.B9.DT Schedule Follow-up Test" +Description: "Schedule Follow-up Test" +Usage: #definition +* library = Canonical(HIVB9DTLogic) +* extension[+] + * url = "http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability" + * valueCode = #computable +* name = "HIVB9DTScheduleFollowUp" +* status = #draft +* experimental = true +* date = 2024-07-25 +* publisher = "World Health Organization (WHO)" +* contact[+] + * telecom[+] + * system = #url + * value = "https://who.int" +* kind = #ServiceRequest +* intent = #proposal +* doNotPerform = false +* dynamicValue[+] + * path = "status" + * expression + * description = "Status = 'draft'" + * language = #text/cql + * expression = "'draft' from \"http://hl7.org/fhir/request-status\"" +* dynamicValue[+] + * path = "priority" + * expression + * description = "Priority = 'routine'" + * language = #text/cql + * expression = "'routine' from \"http://hl7.org/fhir/request-priority\"" diff --git a/input/fsh/libraries/HIVB9DTLogic.fsh b/input/fsh/libraries/HIVB9DTLogic.fsh new file mode 100644 index 0000000000..291085bcac --- /dev/null +++ b/input/fsh/libraries/HIVB9DTLogic.fsh @@ -0,0 +1,19 @@ +Instance: HIVB9DTLogic +InstanceOf: Library +Title: "HIV.B9.DT Logic" +Description: "Description not yet available for HIV.B9.DT Logic." +Usage: #definition +* meta.profile[+] = "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary" +* meta.profile[+] = "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary" +* meta.profile[+] = "http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library" +* meta.profile[+] = "http://hl7.org/fhir/uv/cql/StructureDefinition/cql-module" +* url = "http://smart.who.int/HIV/Library/HIVB2DTLogic" +* extension[+] + * url = "http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability" + * valueCode = #computable +* name = "HIVB9DTLogic" +* status = #draft +* experimental = true +* publisher = "World Health Organization (WHO)" +* type = $library-type#logic-library +* content.id = "ig-loader-HIVB9DTLogic.cql" diff --git a/input/fsh/plandefinition/HIVB9DT.fsh b/input/fsh/plandefinition/HIVB9DT.fsh new file mode 100644 index 0000000000..8b9ac5abe2 --- /dev/null +++ b/input/fsh/plandefinition/HIVB9DT.fsh @@ -0,0 +1,206 @@ +Instance: HIVB9DT +InstanceOf: http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-recommendationdefinition +Title: "HIV.B9.DT Determine retest recommendation" +Description: "HIV restesting recommendations" +Usage: #definition +* meta.profile[+] = "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareableplandefinition" +* meta.profile[+] = "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishableplandefinition" +* library = Canonical(HIVB9DTLogic) +* extension[+] + * url = "http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability" + * valueCode = #computable +* url = "http://smart.who.int/hiv/PlanDefinition/HIVB9DT" +* name = "HIVB9DT" +* status = #draft +* experimental = true +* publisher = "World Health Organization (WHO)" +* relatedArtifact[+] + * type = #citation + * citation = "Consolidated Guidelines on HIV Testing Services (2019)" +* action[+] + * textEquivalent = "Schedule an annual follow-up test" + * condition[+] + * kind = #applicability + * expression + * language = #text/cql-identifier + * expression = "Schedule an annual follow-up test" + * type = #create + * definitionCanonical = Canonical(HIVB9DTScheduleFollowUp) + * dynamicValue[+] + * path = "intent" + * expression + * description = "Intent = 'plan'" + * language = #text/cql + * expression = "'plan' from \"http://hl7.org/fhir/request-intent\"" + * dynamicValue[+] + * path = "code.coding" + * expression + * description = "HIV Screening" + * language = #text/cql + * expression = "'171121004' from \"SNOMED-CT\" display 'HIV screening'" + * dynamicValue[+] + * path = "occurrenceDateTime" + * expression + * description = "At the recommended interval" + * language = #text/cql-identifier + * expression = "Schedule Date" +* action[+] + * textEquivalent = "Schedule quarterly retesting for PrEP users" + * condition[+] + * kind = #applicability + * expression + * language = #text/cql-identifier + * expression = "Schedule quarterly retesting for PrEP users" + * type = #create + * definitionCanonical = Canonical(HIVB9DTScheduleFollowUp) + * dynamicValue[+] + * path = "intent" + * expression + * description = "Intent = 'plan'" + * language = #text/cql + * expression = "'plan' from \"http://hl7.org/fhir/request-intent\"" + * dynamicValue[+] + * path = "code.coding" + * expression + * description = "HIV Screening" + * language = #text/cql + * expression = "'171121004' from \"SNOMED-CT\" display 'HIV screening'" + * dynamicValue[+] + * path = "occurrenceDateTime" + * expression + * description = "At the recommended interval" + * language = #text/cql-identifier + * expression = "Schedule Date" +* action[+] + * textEquivalent = "Follow-up test recommended" + * condition[+] + * kind = #applicability + * expression + * language = #text/cql-identifier + * expression = "Follow-up test recommended" + * type = #create + * definitionCanonical = Canonical(HIVB9DTScheduleFollowUp) + * dynamicValue[+] + * path = "intent" + * expression + * description = "Intent = 'proposal'" + * language = #text/cql + * expression = "'proposal' from \"http://hl7.org/fhir/request-intent\"" + * dynamicValue[+] + * path = "code.coding" + * expression + * description = "HIV Screening" + * language = #text/cql + * expression = "'171121004' from \"SNOMED-CT\" display 'HIV screening'" +* action[+] + * textEquivalent = "Schedule an HIV test, syphilis test, hepatitis B test as early as possible during this pregnancy" + * condition[+] + * kind = #applicability + * expression + * language = #text/cql-identifier + * expression = "Schedule an HIV test, syphilis test, hepatitis B test as early as possible during this pregnancy" + * type = #create + * action[+] + * textEquivalent = "Schedule an HIV test as early as possible" + * type = #create + * definitionCanonical = Canonical(HIVB9DTScheduleFollowUp) + * dynamicValue[+] + * path = "intent" + * expression + * description = "Intent = 'proposal'" + * language = #text/cql + * expression = "'proposal' from \"http://hl7.org/fhir/request-intent\"" + * dynamicValue[+] + * path = "code.coding" + * expression + * description = "HIV test" + * language = #text/cql + * expression = "'171121004' from \"SNOMED-CT\" display 'HIV test'" + * action[+] + * textEquivalent = "Schedule a Syphilis test as early as possible" + * type = #create + * definitionCanonical = Canonical(HIVB9DTScheduleFollowUp) + * dynamicValue[+] + * path = "intent" + * expression + * description = "Intent = 'proposal'" + * language = #text/cql + * expression = "'proposal' from \"http://hl7.org/fhir/request-intent\"" + * dynamicValue[+] + * path = "code.coding" + * expression + * description = "Syphilis test" + * language = #text/cql + * expression = "'40675008' from \"SNOMED-CT\" display 'Syphilis test'" + * action[+] + * textEquivalent = "Schedule a Heptatitis test as early as possible" + * type = #create + * definitionCanonical = Canonical(HIVB9DTScheduleFollowUp) + * dynamicValue[+] + * path = "intent" + * expression + * description = "Intent = 'proposal'" + * language = #text/cql + * expression = "'proposal' from \"http://hl7.org/fhir/request-intent\"" + * dynamicValue[+] + * path = "code.coding" + * expression + * description = "Heptatitis B test" + * language = #text/cql + * expression = "'313476009' from \"SNOMED-CT\" display 'Heptatitis B test'" +* action[+] + * textEquivalent = "Schedule a follow-up tests for pregnant persons" + * condition[+] + * kind = #applicability + * expression + * language = #text/cql-identifier + * expression = "Schedule a 'Follow-up test recommended date' at first ANC contact date" + * type = #create + * action[+] + * textEquivalent = "Schedule a follow-up test recommended date at first ANC contact date" + * type = #create + * definitionCanonical = Canonical(HIVB9DTScheduleFollowUp) + * dynamicValue[+] + * path = "intent" + * expression + * description = "Intent = 'proposal'" + * language = #text/cql + * expression = "'proposal' from \"http://hl7.org/fhir/request-intent\"" + * dynamicValue[+] + * path = "code.coding" + * expression + * description = "HIV Screening" + * language = #text/cql + * expression = "'171121004' from \"SNOMED-CT\" display 'HIV screening'" + * action[+] + * textEquivalent = "Schedule a follow-up test recommended date during a third trimester visit" + * type = #create + * definitionCanonical = Canonical(HIVB9DTScheduleFollowUp) + * dynamicValue[+] + * path = "intent" + * expression + * description = "Intent = 'proposal'" + * language = #text/cql + * expression = "'proposal' from \"http://hl7.org/fhir/request-intent\"" + * dynamicValue[+] + * path = "code.coding" + * expression + * description = "HIV Screening" + * language = #text/cql + * expression = "'171121004' from \"SNOMED-CT\" display 'HIV screening'" + * action[+] + * textEquivalent = "Schedule a follow-up test recommended date either two-weeks, 6 months or 9 months post delivery" + * type = #create + * definitionCanonical = Canonical(HIVB9DTScheduleFollowUp) + * dynamicValue[+] + * path = "intent" + * expression + * description = "Intent = 'proposal'" + * language = #text/cql + * expression = "'proposal' from \"http://hl7.org/fhir/request-intent\"" + * dynamicValue[+] + * path = "code.coding" + * expression + * description = "HIV Screening" + * language = #text/cql + * expression = "'171121004' from \"SNOMED-CT\" display 'HIV screening'"