From 76e29c947b6833cafbb32984e26af0c78de477df Mon Sep 17 00:00:00 2001 From: Piotr Mankowski Date: Mon, 17 Jun 2024 10:10:22 -0700 Subject: [PATCH 1/3] CQL Tooling Initial work (#8) * CQL Tooling Initial work * Work on measures * Logical model update * Tooling updates --- .DS_Store | Bin 10244 -> 0 bytes .gitignore | 1 + requirements_dev.txt | 1 + tests/data/cql/AllConcepts.cql | 907 ++ tests/data/cql/AllContactDataElements.cql | 7767 +++++++++++++++++ tests/data/cql/FHIRCommon.cql | 289 + tests/data/cql/FHIRHelpers.cql | 407 + tests/data/cql/HIVB2DT.cql | 82 + tests/data/cql/HIVB7DT.cql | 154 + tests/data/cql/HIVIND18.cql | 76 + tests/data/cql/HIVIND19.cql | 76 + tests/data/cql/HIVIND2.cql | 75 + tests/data/cql/HIVIND20Logic.cql | 81 + tests/data/cql/HIVIND21.cql | 85 + tests/data/cql/HIVIND27Logic.cql | 100 + tests/data/cql/HIVIND28.cql | 142 + tests/data/cql/HIVIND3.cql | 89 + tests/data/cql/HIVIND30.cql | 73 + tests/data/cql/HIVIndicatorCommon.cql | 570 ++ tests/data/cql/WHOCommon.cql | 93 + tests/data/cql/WHOCommonV2.cql | 248 + tests/data/cql/WHOConcepts.cql | 20 + tests/data/cql/WHOElements.cql | 19 + tests/data/cql/WHOEncounterElements.cql | 19 + tests/data/example_cql_HIV20.cql | 85 + tests/data/example_cql_HIV27.cql | 100 + tests/data/example_fsh/HIV20_library.fsh | 19 + tests/data/example_fsh/HIV20_measure.fsh | 51 + tests/data/l2/test_dd.xlsx | Bin 0 -> 548272 bytes tests/data/l2/test_indicators.xlsx | Bin 0 -> 261726 bytes .../indicator_scaffolding_edited_MAIN.xlsx | Bin 0 -> 59588 bytes tests/test_cql_resource_generator.py | 51 - tests/test_cql_tools.py | 136 +- tests/test_full_scaffolding_generator.py | 12 +- tests/test_logical_model_generator.py | 25 +- .../core/indicator_generation/cql_tools.py | 379 + .../scaffolding_generator.py | 26 +- .../logical_models/logical_model_generator.py | 289 +- .../structure_maps/medicationStatementART | 0 .../mapping/structure_maps/observationHIV | 0 40 files changed, 12389 insertions(+), 158 deletions(-) delete mode 100644 .DS_Store create mode 100644 tests/data/cql/AllConcepts.cql create mode 100644 tests/data/cql/AllContactDataElements.cql create mode 100644 tests/data/cql/FHIRCommon.cql create mode 100644 tests/data/cql/FHIRHelpers.cql create mode 100644 tests/data/cql/HIVB2DT.cql create mode 100644 tests/data/cql/HIVB7DT.cql create mode 100644 tests/data/cql/HIVIND18.cql create mode 100644 tests/data/cql/HIVIND19.cql create mode 100644 tests/data/cql/HIVIND2.cql create mode 100644 tests/data/cql/HIVIND20Logic.cql create mode 100644 tests/data/cql/HIVIND21.cql create mode 100644 tests/data/cql/HIVIND27Logic.cql create mode 100644 tests/data/cql/HIVIND28.cql create mode 100644 tests/data/cql/HIVIND3.cql create mode 100644 tests/data/cql/HIVIND30.cql create mode 100644 tests/data/cql/HIVIndicatorCommon.cql create mode 100644 tests/data/cql/WHOCommon.cql create mode 100644 tests/data/cql/WHOCommonV2.cql create mode 100644 tests/data/cql/WHOConcepts.cql create mode 100644 tests/data/cql/WHOElements.cql create mode 100644 tests/data/cql/WHOEncounterElements.cql create mode 100644 tests/data/example_cql_HIV20.cql create mode 100644 tests/data/example_cql_HIV27.cql create mode 100644 tests/data/example_fsh/HIV20_library.fsh create mode 100644 tests/data/example_fsh/HIV20_measure.fsh create mode 100644 tests/data/l2/test_dd.xlsx create mode 100644 tests/data/l2/test_indicators.xlsx create mode 100644 tests/data/scaffolding/indicator_scaffolding_edited_MAIN.xlsx delete mode 100644 tests/test_cql_resource_generator.py create mode 100644 who_l3_smart_tools/core/indicator_generation/cql_tools.py create mode 100644 who_l3_smart_tools/core/mapping/structure_maps/medicationStatementART create mode 100644 who_l3_smart_tools/core/mapping/structure_maps/observationHIV diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index ff26ea7b57a0c7d7c58b7e944e9c0f333d6fd006..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10244 zcmeHMeQX@X6@PF2wYSd4#yDRbCPz$A2)1*voex8R^GA|~Bu%iB*iL}U-tER-vbXEp z?wu1{Bf}qURf0gGjj9&OYlQArKP0nb}Kb zH+Dp#D4=q4ntk)}-prdfGjC>o2LRYtGS>m506?Y4sNM)rs{t${DhF22;yIy)N|0g~ zMM~=c?O=id0T_;d4tKSnYJsW+zDpKRNEx<&YbiE>L;G0TzvYRX*^cSgx1)yb(^+*#Lj!}kbRGp)ff8X-sE=5?kQSj+nOBCdrqm~`dNKZ-f;3I z#|W%m$6?I=NMIccSn7c96@z}xnAP=?Zw*?+XP2!3;wI51*3#~Y!1i2!zg6^!wr0}8 zf{FL%&0nxkU(|F(^Wv*pSGRX=xG6J|_X-8e4g7tMk+YoPvXD7wQgi)9i@xSwpZdLn z73}g%`>;(VM{L*J>ly{?E>^tL@PpkGmTQ@(mMmSi{K}-(vX2<7WBVp;GZ-H={JiCw zwmUXlwtYM2SbD=EY)hz|dqqlX(d%?G%wD^Svi16oFnj%)mKI&n|ELP)jVwYUm9FpZtq zh23~F-ip20hyAz{e~5eVb{xcmcqeA@5E^(lI#@s#C-FE=;g4_{e~drH2k-gfv5-p`6+q7~EDeez0@TDYh-NCat-$K;sMd0GZYe zY#M54C^dH8b7NFLRSQ%t@cp&`^A9PCjAlYQBPe$r^kG*BR?n^wJW!h60lX{~(o9Ha z1m&V6!$pY-QFc&?dM-}osW6`j>5QO498ib@hCO5WLO~%8nBwe!89}Sxss*YRIM)Ix zDvDis3f{ngxblE{Fn9f*Z-4W(-r2a!Z@@J%E?=--re@;3m4}M1qu9*y8q07C0;L&s`0s3P7aDuMfxjvXU8-bk36FK z-=>%zt)b2ic%-)tdBQ*($U=egCXIuo`FJQ@6L8!fxe%A>tR zy~uU~SkQFo^p`FC#nKNp3<(QgBE99gx%92evkGvCi~>t(-Y#H1qqC>5^(@cc1-2HQ zrR5J@xIXf19R5kq)*WItE>I8I>KETi)VgVA-2@E67U+cm*hRF1_KF#^;JYyk>a=Gp zI0_}&FDzA{=n~fGlXL*bAc)Gtb0q&8$y+qfDWB!Lv^+;U%=gLdsMMoHJ(ggCBqrc^ zv|sL}Wd1thwMd3Ejd8LaJ_l!R(hu<$c%ky_JYB(G8q`Mh&LQ?n4ve7W_Zh{5EVtM5 z9C|a0w2|9S;7L|*?)TiluwARj1;n%Zj$wi{yvaVVt zyQiluwZ3P4?796j(w@Sc&uun3Y3$Jz%|)eJd9{w6U9Az0v%YzDj_4|j_Yga0ng|FP zr~RD`eYa2R$)FVyP)R`L9+k)E>vL*Tp0DILX@l0tdHp>16mqLv@yqsM{=b%VWam~8 zoufaTl+4dKd2hR#VFg7TDdp^=B|A8-w-SEMF~$|iYZ8QJN6>U$lU$KprK&RQ zE(BI5*CYt<<`}#vY1h^!2<7G&yb$fwx>W+u1%fY%HflX8f#?-DUleZEZc!QVeg^Xw z#l6XXhKt9ce5P-*H@Qt!5BTFo(b_#p2VzBHhpO^FFsPiN|65Eu@QU0ZyH+HVqwHUS zUemNp8uzj#OZDVna<8htLo&MUmTfwM>3<1v5??$T|2RAge}ccj>x9O?1Mk9V_y>Fp zpTd9PORU2NR55`~cm*ydbiNhau$_?k8wraaz^%BA5cz$$A4hN$@4_)0Cp7*D9>seI ziJ!)M35kCQAI3-U=Nx~35}(4S@kM+U|B8RZxA8rEA3wl<WbhxiVk|8-*GQjJ8n%>Dnr;HrMB7N}a_ z|Iz|jJ1{iRM?JFj UA$r;V2&kU_)$=6.0 flake8>=3.8 sphinx>=3.2 +stringcase>=1.2 \ No newline at end of file diff --git a/tests/data/cql/AllConcepts.cql b/tests/data/cql/AllConcepts.cql new file mode 100644 index 0000000..9873798 --- /dev/null +++ b/tests/data/cql/AllConcepts.cql @@ -0,0 +1,907 @@ +library AllConcepts version '0.0.1' + +// Code Systems +codesystem "ICD-10": 'http://hl7.org/fhir/sid/icd-10' +codesystem "SNOMED-CT": 'http://snomed.info/sct' +codesystem "LOINC": 'http://loinc.org' +codesystem "RxNorm": 'http://www.nlm.nih.gov/research/umls/rxnorm' +codesystem "CPT": 'http://www.ama-assn.org/go/cpt' +codesystem "HCPCS": 'https://www.cms.gov/Medicare/Coding/HCPCSReleaseCodeSets' +codesystem "CIEL": 'http://hl7.org/fhir/sid/ciel' +codesystem "ICD-11": 'http://hl7.org/fhir/sid/icd-11' +codesystem "ICHI": 'https://mitel.dimi.uniud.it/ichi/#http://id.who.int/ichi' +codesystem "ICF": 'http://hl7.org/fhir/sid/icf-nl' +codesystem "NDC": 'http://hl7.org/fhir/sid/ndc' +codesystem "NIDA": 'https://cde.drugabuse.gov' +codesystem "HIV_DAK_Codes": 'http://fhir.org/guides/who/hiv-dak/CodeSystem/HIV-DAKConcepts' + +// Value Sets +valueset "Referred by Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-a-de6' +valueset "Gender* Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-a-de19' +valueset "Sex Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-a-de26' +valueset "Marital Status Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-a-de31' +valueset "Communication preference(s) Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-a-de47' +valueset "Reason for visit Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de2' +valueset "Referred through partner services Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de6' +valueset "Type of contact or partner for partner services Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de9' +valueset "Testing entry point Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de16' +valueset "Entry point for community-level testing Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de19' +valueset "Entry point for facility-level testing Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de23' +valueset "Partner HIV status (reported) Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de34' +valueset "Partner is from a key population* Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de38' +valueset "Key population member type* Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de51' +valueset "HIV exposure type* Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de62' +valueset "HIV serotype Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de69' +valueset "Type of contact elicited Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de75' +valueset "HIV test type Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de82' +valueset "Test result of HIV assay 1 Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de95' +valueset "Test result of HIV assay 2 Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de99' +valueset "Test result of HIV assay 3 Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de103' +valueset "Test result of HIV assay 1 repeated Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de107' +valueset "HIV test result Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de112' +valueset "HIV status Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de116' +valueset "Probable route of transmission* Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de122' +valueset "Partner HIV test result Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de133' +valueset "Partner HIV status (confirmed) Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de137' +valueset "Counselling provided Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de143' +valueset "Prevention services offered and referrals Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de150' +valueset "Sexual and reproductive health integrated services Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de159' +valueset "Offer other clinical services Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de166' +valueset "Other support services Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de173' +valueset "Intimate partner violence enquiry results Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de180' +valueset "Type of follow-up appointment Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de192' +valueset "Timing of adverse event Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de205' +valueset "Type of adverse VMMC event Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de208' +valueset "Syndrome/STI diagnosed Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de227' +valueset "STI tested for Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de238' +valueset "Syphilis test result Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de251' +valueset "Gonorrhoea test result Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de257' +valueset "Type of specimen Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de262' +valueset "Syphilis test type Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de270' +valueset "Neisseria gonorrhoeae test type Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de277' +valueset "Chlamydia trachomatis test type Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de285' +valueset "Trichomonas vaginalis test type Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de294' +valueset "Herpes simplex virus (HSV) test type Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de302' +valueset "Mycoplasma genitalium test type Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de307' +valueset "STI test result Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de313' +valueset "Confirmatory syphilis test type Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de318' +valueset "Confirmatory STI test result Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de326' +valueset "Reason for PrEP visit Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-c-de2' +valueset "PrEP dosing type Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-c-de12' +valueset "Current PrEP regimen Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-c-de18' +valueset "Experience with PrEP Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-c-de25' +valueset "PEP history Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-c-de32' +valueset "Signs of substantial risk of HIV infection Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-c-de37' +valueset "Pregnancy intention in serodiscordant partnerships Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-c-de42' +valueset "Acute HIV infection symptoms Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-c-de47' +valueset "Sex partner's HIV treatment status Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-c-de56' +valueset "Screenings and diagnostics for PrEP users Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-c-de64' +valueset "Medications prescribed Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-c-de76' +valueset "PrEP product prescribed Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-c-de81' +valueset "Preferred PEP backbone regimen Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-c-de92' +valueset "Alternative PEP backbone regimen Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-c-de96' +valueset "Preferred third PEP drug Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-c-de100' +valueset "Alternative third PEP drug Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-c-de102' +valueset "Sex factor for estimating creatinine clearance Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-c-de108' +valueset "Contraindications to PrEP usage Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-c-de113' +valueset "Condom type Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-c-de139' +valueset "HIV self-test distributed for use by Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-c-de144' +valueset "Signs of serious illness Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de18' +valueset "ART start type Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de44' +valueset "Antiretroviral (ARV) drugs received prior to enrolment Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de57' +valueset "Existing chronic health conditions Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de66' +valueset "Current ART regimen (first-, second-, or third-line) Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de84' +valueset "ART regimen Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de91' +valueset "ART regimen composition Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de129' +valueset "ART regimen drug class Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de147' +valueset "HBsAg test result Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de163' +valueset "HCV test result Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de171' +valueset "HCV viral load test result Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de180' +valueset "HCV medicine type Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de183' +valueset "HIV clinical stage Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de187' +valueset "Reason(s) for adherence problem Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de198' +valueset "Reason ART stopped Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de218' +valueset "Treatment failure Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de226' +valueset "General care activities recommended Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de230' +valueset "Preventing and treating coinfections Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de248' +valueset "Risk factors, comorbidities and coinfections signs and symptoms Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de260' +valueset "WHO HIV clinical stage condition or symptom Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de290' +valueset "Clinical stage at start of ART Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de359' +valueset "Reasons for delayed ART initiation Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de371' +valueset "Time to start ART Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de384' +valueset "Reason for HIV viral load test Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de392' +valueset "Monitoring examinations Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de400' +valueset "Reason for ARV drug regimen substitution Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de419' +valueset "Reason for regimen switch Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de431' +valueset "Coinfection status at ART start Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de447' +valueset "Pregnant and breastfeeding status at ART start Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de450' +valueset "Type of treatment-limiting toxicity Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de467' +valueset "Reason blood pressure reading not done Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de533' +valueset "Current medications Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de538' +valueset "Allergies Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de561' +valueset "Family planning method used Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de570' +valueset "Medication status Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de594' +valueset "Disease targeted Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de611' +valueset "Reason immunization was not provided Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de637' +valueset "Reason malaria prophylaxis not provided Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de647' +valueset "Cervical cancer primary screening test type Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de659' +valueset "HPV-DNA cervical cancer screening test result Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de665' +valueset "VIA cervical cancer screening test result Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de669' +valueset "Cervical cytology screening test result Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de674' +valueset "Cervical cancer triage test type Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de682' +valueset "HPV16/18 test result Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de689' +valueset "Cervical cancer colposcopy result Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de692' +valueset "Cervical cancer histopathology result Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de698' +valueset "Cervical cancer screening outcome Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de707' +valueset "Cervical cancer diagnosis Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de710' +valueset "Cervical cancer stage at diagnosis Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de713' +valueset "Treatment method for cervical precancer lesions Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de720' +valueset "Invasive cervical cancer treatment method Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de732' +valueset "DSD ART model(s) Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de765' +valueset "Staging of liver disease Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de894' +valueset "WHO functional status Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de898' +valueset "Medication/drug Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de904' +valueset "TB diagnosis result Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de940' +valueset "Method of TB diagnosis Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de943' +valueset "TB treatment history Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de948' +valueset "TB screening algorithm Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de957' +valueset "Symptoms of TB Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de974' +valueset "TB screening result Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de987' +valueset "TB diagnostic test category Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de993' +valueset "TB treatment outcome Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de1003' +valueset "TB treatment regimen composition Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de1011' +valueset "TB status at ART start Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de1020' +valueset "TPT regimen type Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de1029' +valueset "TB preventive treatment (TPT) status Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-d-de1035' +valueset "Source of gestational age Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-e-de7' +valueset "Past pregnancy complications Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-e-de18' +valueset "Timing of ART initiation Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-e-de42' +valueset "Pregnancy outcome Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-e-de48' +valueset "Delivery mode Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-e-de53' +valueset "Preterm birth status Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-e-de63' +valueset "Place of delivery Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-e-de68' +valueset "Gender of infant Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-e-de92' +valueset "Maternal HIV test result Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-e-de105' +valueset "Infant or child exposure to HIV Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-e-de109' +valueset "Infant feeding practice Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-e-de128' +valueset "Type of iron supplement dosage provided Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-e-de137' +valueset "Maternal HIV status Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-e-de142' +valueset "Maternal HIV status at first ANC visit Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-e-de146' +valueset "Maternal syphilis test result Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-e-de150' +valueset "Infant ARV prophylaxis start date Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-e-de168' +valueset "Maternal and child health service visit Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-e-de174' +valueset "EID test number 1 test result Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-e-de187' +valueset "EID test number 2 test result Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-e-de191' +valueset "Test result of syphilis assay 1 Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-e-de217' +valueset "Test result of syphilis assay 1 repeated Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-e-de221' +valueset "Infant HIV status Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-e-de226' +valueset "Final diagnosis of HIV-exposed infant Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-e-de231' +valueset "HIV-exposed infant reason for unknown final status Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-e-de235' +valueset "Blood group and Rh factor Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-e-de247' +valueset "Asymptomatic bacteriuria (ASB) test result Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-e-de256' +valueset "Urine protein test result Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-e-de260' +valueset "Type of hypertensive disorder Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-e-de265' +valueset "HIV viral load specimen type Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-g-de14' +valueset "Reason Hepatitis B test not conducted Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-g-de23' +valueset "Hepatitis B diagnosis Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-g-de30' +valueset "Reason Hepatitis C test not done Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-g-de36' +valueset "Hepatitis C diagnosis Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-g-de52' +valueset "Reason syphilis test not done Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-g-de63' +valueset "Syphilis diagnosis Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-g-de75' +valueset "Reason for follow-up Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-h-de2' +valueset "Contact method Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-h-de14' +valueset "Source of information Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-h-de18' +valueset "Outcome from outreach attempt Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-h-de24' +valueset "HIV status of partner or contact Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-h-de35' +valueset "HIV treatment outcome Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-h-de42' +valueset "Reason for referral Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-i-de3' +valueset "HIV prevention intervention Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-prv-de3' +valueset "HIV status of contact Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-prv-de12' +valueset "HIV burden of the setting Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-config-de13' + +// Codes +code "First name": 'HIV.A.DE1' from "HIV_DAK_Codes" display 'First name' +code "Family name": 'HIV.A.DE2' from "HIV_DAK_Codes" display 'Family name' +code "Visit date": 'HIV.A.DE3' from "HIV_DAK_Codes" display 'Visit date' +code "Referral": 'HIV.A.DE4' from "HIV_DAK_Codes" display 'Referral' +code "Referred by": 'HIV.A.DE5' from "HIV_DAK_Codes" display 'Referred by' +code "Unique identifier": 'HIV.A.DE8' from "HIV_DAK_Codes" display 'Unique identifier' +code "National ID": 'HIV.A.DE9' from "HIV_DAK_Codes" display 'National ID' +code "National health ID": 'HIV.A.DE10' from "HIV_DAK_Codes" display 'National health ID' +code "National programme ID": 'HIV.A.DE11' from "HIV_DAK_Codes" display 'National programme ID' +code "National health insurance ID": 'HIV.A.DE12' from "HIV_DAK_Codes" display 'National health insurance ID' +code "Country of birth": 'HIV.A.DE13' from "HIV_DAK_Codes" display 'Country of birth' +code "Date of birth": 'HIV.A.DE14' from "HIV_DAK_Codes" display 'Date of birth' +code "Date of birth unknown": 'HIV.A.DE15' from "HIV_DAK_Codes" display 'Date of birth unknown' +code "Estimated age": 'HIV.A.DE16' from "HIV_DAK_Codes" display 'Estimated age' +code "Age": 'HIV.A.DE17' from "HIV_DAK_Codes" display 'Age' +code "Gender*": 'HIV.A.DE18' from "HIV_DAK_Codes" display 'Gender*' +code "Other (specify)": 'HIV.A.DE24' from "HIV_DAK_Codes" display 'Other (specify)' +code "Sex": 'HIV.A.DE25' from "HIV_DAK_Codes" display 'Sex' +code "Address": 'HIV.A.DE29' from "HIV_DAK_Codes" display 'Address' +code "Marital Status": 'HIV.A.DE30' from "HIV_DAK_Codes" display 'Marital Status' +code "Telephone number": 'HIV.A.DE42' from "HIV_DAK_Codes" display 'Telephone number' +code "[Administrative Area]": 'HIV.A.DE43' from "HIV_DAK_Codes" display '[Administrative Area]' +code "Communication consent": 'HIV.A.DE44' from "HIV_DAK_Codes" display 'Communication consent' +code "Reminder messages": 'HIV.A.DE45' from "HIV_DAK_Codes" display 'Reminder messages' +code "Communication preference(s)": 'HIV.A.DE46' from "HIV_DAK_Codes" display 'Communication preference(s)' +code "Client's email": 'HIV.A.DE49' from "HIV_DAK_Codes" display 'Client email' +code "Alternate contact's name": 'HIV.A.DE50' from "HIV_DAK_Codes" display 'Alternate contact name' +code "Alternate contact's phone number": 'HIV.A.DE51' from "HIV_DAK_Codes" display 'Alternate contact phone number' +code "Alternate contact's address": 'HIV.A.DE52' from "HIV_DAK_Codes" display 'Alternate contact address' +code "Alternate contact relationship": 'HIV.A.DE53' from "HIV_DAK_Codes" display 'Alternate contact relationship' +code "Reason for visit": 'HIV.B.DE1' from "HIV_DAK_Codes" display 'Reason for visit' +code "Referred through partner services": 'HIV.B.DE5' from "HIV_DAK_Codes" display 'Referred through partner services' +code "Type of contact or partner for partner services": 'HIV.B.DE8' from "HIV_DAK_Codes" display 'Type of contact or partner for partner services' +code "Contact with and (suspected) exposure to HIV": 'HIV.B.DE13' from "HIV_DAK_Codes" display 'Contact with and (suspected) exposure to HIV' +code "Date/time of suspected exposure to HIV": 'HIV.B.DE14' from "HIV_DAK_Codes" display 'Date/time of suspected exposure to HIV' +code "Testing entry point": 'HIV.B.DE15' from "HIV_DAK_Codes" display 'Testing entry point' +code "Entry point for community-level testing": 'HIV.B.DE18' from "HIV_DAK_Codes" display 'Entry point for community-level testing' +code "Entry point for facility-level testing": 'HIV.B.DE22' from "HIV_DAK_Codes" display 'Entry point for facility-level testing' +code "Currently pregnant": 'HIV.B.DE29' from "HIV_DAK_Codes" display 'Currently pregnant' +code "Gestational age": 'HIV.B.DE30' from "HIV_DAK_Codes" display 'Gestational age' +code "Expected date of delivery (EDD)": 'HIV.B.DE31' from "HIV_DAK_Codes" display 'Expected date of delivery (EDD)' +code "Breastfeeding": 'HIV.B.DE32' from "HIV_DAK_Codes" display 'Breastfeeding' +code "Partner HIV status (reported)": 'HIV.B.DE33' from "HIV_DAK_Codes" display 'Partner HIV status (reported)' +code "Partner is from a key population*": 'HIV.B.DE37' from "HIV_DAK_Codes" display 'Partner is from a key population*' +code "Has used an HIV self-test before (reported)": 'HIV.B.DE43' from "HIV_DAK_Codes" display 'Has used an HIV self-test before (reported)' +code "HIV self-test result": 'HIV.B.DE44' from "HIV_DAK_Codes" display 'HIV self-test result' +code "Reactive": 'HIV.B.DE45' from "HIV_DAK_Codes" display 'Reactive' +code "Non-reactive": 'HIV.B.DE46' from "HIV_DAK_Codes" display 'Non-reactive' +code "Invalid": 'HIV.B.DE47' from "HIV_DAK_Codes" display 'Invalid' +code "Date of HIV self-test": 'HIV.B.DE48' from "HIV_DAK_Codes" display 'Date of HIV self-test' +code "Key population member*": 'HIV.B.DE49' from "HIV_DAK_Codes" display 'Key population member*' +code "Key population member type*": 'HIV.B.DE50' from "HIV_DAK_Codes" display 'Key population member type*' +code "Adolescent girl": 'HIV.B.DE56' from "HIV_DAK_Codes" display 'Adolescent girl' +code "Young woman": 'HIV.B.DE57' from "HIV_DAK_Codes" display 'Young woman' +code "Orphan or vulnerable child": 'HIV.B.DE58' from "HIV_DAK_Codes" display 'Orphan or vulnerable child' +code "Informed of HIV test result": 'HIV.B.DE59' from "HIV_DAK_Codes" display 'Informed of HIV test result' +code "Date HIV test results returned": 'HIV.B.DE60' from "HIV_DAK_Codes" display 'Date HIV test results returned' +code "HIV exposure type*": 'HIV.B.DE61' from "HIV_DAK_Codes" display 'HIV exposure type*' +code "Date informed of HIV-positive diagnosis": 'HIV.B.DE65' from "HIV_DAK_Codes" display 'Date informed of HIV-positive diagnosis' +code "HIV diagnosing facility": 'HIV.B.DE66' from "HIV_DAK_Codes" display 'HIV diagnosing facility' +code "Date of first positive test indicative of HIV diagnosis": 'HIV.B.DE67' from "HIV_DAK_Codes" display 'Date of first positive test indicative of HIV diagnosis' +code "HIV serotype": 'HIV.B.DE68' from "HIV_DAK_Codes" display 'HIV serotype' +code "HIV diagnosis date": 'HIV.B.DE71' from "HIV_DAK_Codes" display 'HIV diagnosis date' +code "ART start date": 'HIV.B.DE72' from "HIV_DAK_Codes" display 'ART start date' +code "Age at diagnosis": 'HIV.B.DE73' from "HIV_DAK_Codes" display 'Age at diagnosis' +code "Type of contact elicited": 'HIV.B.DE74' from "HIV_DAK_Codes" display 'Type of contact elicited' +code "HIV test ordered": 'HIV.B.DE79' from "HIV_DAK_Codes" display 'HIV test ordered' +code "HIV test conducted": 'HIV.B.DE80' from "HIV_DAK_Codes" display 'HIV test conducted' +code "HIV test type": 'HIV.B.DE81' from "HIV_DAK_Codes" display 'HIV test type' +code "Date HIV test sent": 'HIV.B.DE87' from "HIV_DAK_Codes" display 'Date HIV test sent' +code "Assay number in testing strategy": 'HIV.B.DE88' from "HIV_DAK_Codes" display 'Assay number in testing strategy' +code "Assay 0": 'HIV.B.DE89' from "HIV_DAK_Codes" display 'Assay 0' +code "Assay 1": 'HIV.B.DE90' from "HIV_DAK_Codes" display 'Assay 1' +code "Assay 2": 'HIV.B.DE91' from "HIV_DAK_Codes" display 'Assay 2' +code "Assay 3": 'HIV.B.DE92' from "HIV_DAK_Codes" display 'Assay 3' +code "Assay 1 repeated": 'HIV.B.DE93' from "HIV_DAK_Codes" display 'Assay 1 repeated' +code "Test result of HIV assay 1": 'HIV.B.DE94' from "HIV_DAK_Codes" display 'Test result of HIV assay 1' +code "Test result of HIV assay 2": 'HIV.B.DE98' from "HIV_DAK_Codes" display 'Test result of HIV assay 2' +code "Test result of HIV assay 3": 'HIV.B.DE102' from "HIV_DAK_Codes" display 'Test result of HIV assay 3' +code "Test result of HIV assay 1 repeated": 'HIV.B.DE106' from "HIV_DAK_Codes" display 'Test result of HIV assay 1 repeated' +code "HIV test date": 'HIV.B.DE110' from "HIV_DAK_Codes" display 'HIV test date' +code "HIV test result": 'HIV.B.DE111' from "HIV_DAK_Codes" display 'HIV test result' +code "HIV status": 'HIV.B.DE115' from "HIV_DAK_Codes" display 'HIV status' +code "Date positive HIV test confirmed": 'HIV.B.DE119' from "HIV_DAK_Codes" display 'Date positive HIV test confirmed' +code "Site where positive HIV test confirmed": 'HIV.B.DE120' from "HIV_DAK_Codes" display 'Site where positive HIV test confirmed' +code "Probable route of transmission*": 'HIV.B.DE121' from "HIV_DAK_Codes" display 'Probable route of transmission*' +code "Partner HIV test conducted": 'HIV.B.DE129' from "HIV_DAK_Codes" display 'Partner HIV test conducted' +code "Partner HIV test ordered": 'HIV.B.DE130' from "HIV_DAK_Codes" display 'Partner HIV test ordered' +code "Partner HIV test date": 'HIV.B.DE131' from "HIV_DAK_Codes" display 'Partner HIV test date' +code "Partner HIV test result": 'HIV.B.DE132' from "HIV_DAK_Codes" display 'Partner HIV test result' +code "Partner HIV status (confirmed)": 'HIV.B.DE136' from "HIV_DAK_Codes" display 'Partner HIV status (confirmed)' +code "Partner on ART": 'HIV.B.DE140' from "HIV_DAK_Codes" display 'Partner on ART' +code "Partner virally suppressed on ART": 'HIV.B.DE141' from "HIV_DAK_Codes" display 'Partner virally suppressed on ART' +code "Counselling provided": 'HIV.B.DE142' from "HIV_DAK_Codes" display 'Counselling provided' +code "Prevention services offered and referrals": 'HIV.B.DE149' from "HIV_DAK_Codes" display 'Prevention services offered and referrals' +code "Sexual and reproductive health integrated services": 'HIV.B.DE158' from "HIV_DAK_Codes" display 'Sexual and reproductive health integrated services' +code "Offer other clinical services": 'HIV.B.DE165' from "HIV_DAK_Codes" display 'Offer other clinical services' +code "Other support services": 'HIV.B.DE172' from "HIV_DAK_Codes" display 'Other support services' +code "Clinical enquiry for intimate partner violence (IPV) done": 'HIV.B.DE178' from "HIV_DAK_Codes" display 'Clinical enquiry for intimate partner violence (IPV) done' +code "Intimate partner violence enquiry results": 'HIV.B.DE179' from "HIV_DAK_Codes" display 'Intimate partner violence enquiry results' +code "Other IPV result (specify)": 'HIV.B.DE184' from "HIV_DAK_Codes" display 'Other IPV result (specify)' +code "Offered voluntary partner services": 'HIV.B.DE185' from "HIV_DAK_Codes" display 'Offered voluntary partner services' +code "Count of contacts or partners given for social network-based/partner services": 'HIV.B.DE186' from "HIV_DAK_Codes" display 'Count of contacts or partners given for social network-based/partner services' +code "Offered social network-based/partner services": 'HIV.B.DE187' from "HIV_DAK_Codes" display 'Offered social network-based/partner services' +code "Accepted social network-based/partner services": 'HIV.B.DE188' from "HIV_DAK_Codes" display 'Accepted social network-based/partner services' +code "Contact first name to offer social network-based/partner services": 'HIV.B.DE189' from "HIV_DAK_Codes" display 'Contact first name to offer social network-based/partner services' +code "Contact last name to offer social network-based/partner services": 'HIV.B.DE190' from "HIV_DAK_Codes" display 'Contact last name to offer social network-based/partner services' +code "Type of follow-up appointment": 'HIV.B.DE191' from "HIV_DAK_Codes" display 'Type of follow-up appointment' +code "Other reason for the follow-up appointment (specify)": 'HIV.B.DE194' from "HIV_DAK_Codes" display 'Other reason for the follow-up appointment (specify)' +code "Date/time of follow-up appointment": 'HIV.B.DE195' from "HIV_DAK_Codes" display 'Date/time of follow-up appointment' +code "Recommended follow-up date": 'HIV.B.DE196' from "HIV_DAK_Codes" display 'Recommended follow-up date' +code "VMMC procedure": 'HIV.B.DE197' from "HIV_DAK_Codes" display 'VMMC procedure' +code "VMMC procedure date": 'HIV.B.DE198' from "HIV_DAK_Codes" display 'VMMC procedure date' +code "Adverse event reported from a VMMC": 'HIV.B.DE199' from "HIV_DAK_Codes" display 'Adverse event reported from a VMMC' +code "Serious adverse event": 'HIV.B.DE200' from "HIV_DAK_Codes" display 'Serious adverse event' +code "Adverse event severity": 'HIV.B.DE201' from "HIV_DAK_Codes" display 'Adverse event severity' +code "Moderate": 'HIV.B.DE202' from "HIV_DAK_Codes" display 'Moderate' +code "Severe": 'HIV.B.DE203' from "HIV_DAK_Codes" display 'Severe' +code "Timing of adverse event": 'HIV.B.DE204' from "HIV_DAK_Codes" display 'Timing of adverse event' +code "Type of adverse VMMC event": 'HIV.B.DE207' from "HIV_DAK_Codes" display 'Type of adverse VMMC event' +code "HIV retest prior to starting ART conducted": 'HIV.B.DE224' from "HIV_DAK_Codes" display 'HIV retest prior to starting ART conducted' +code "At elevated risk for HIV acquisition": 'HIV.B.DE225' from "HIV_DAK_Codes" display 'At elevated risk for HIV acquisition' +code "Syndrome/STI diagnosed": 'HIV.B.DE226' from "HIV_DAK_Codes" display 'Syndrome/STI diagnosed' +code "Any STI syndrome diagnosed": 'HIV.B.DE235' from "HIV_DAK_Codes" display 'Any STI syndrome diagnosed' +code "Date of STI test": 'HIV.B.DE236' from "HIV_DAK_Codes" display 'Date of STI test' +code "STI tested for": 'HIV.B.DE237' from "HIV_DAK_Codes" display 'STI tested for' +code "Syphilis test date": 'HIV.B.DE249' from "HIV_DAK_Codes" display 'Syphilis test date' +code "Syphilis test result": 'HIV.B.DE250' from "HIV_DAK_Codes" display 'Syphilis test result' +code "Syphilis treatment start date": 'HIV.B.DE254' from "HIV_DAK_Codes" display 'Syphilis treatment start date' +code "Gonorrhoea test date": 'HIV.B.DE255' from "HIV_DAK_Codes" display 'Gonorrhoea test date' +code "Gonorrhoea test result": 'HIV.B.DE256' from "HIV_DAK_Codes" display 'Gonorrhoea test result' +code "Gonorrhoea treatment start date": 'HIV.B.DE260' from "HIV_DAK_Codes" display 'Gonorrhoea treatment start date' +code "Type of specimen": 'HIV.B.DE261' from "HIV_DAK_Codes" display 'Type of specimen' +code "Other type of specimen (specify)": 'HIV.B.DE268' from "HIV_DAK_Codes" display 'Other type of specimen (specify)' +code "Syphilis test type": 'HIV.B.DE269' from "HIV_DAK_Codes" display 'Syphilis test type' +code "Other syphilis test type (specify)": 'HIV.B.DE275' from "HIV_DAK_Codes" display 'Other syphilis test type (specify)' +code "Neisseria gonorrhoeae test type": 'HIV.B.DE276' from "HIV_DAK_Codes" display 'Neisseria gonorrhoeae test type' +code "POC Test for Neisseria gonorrhoeae (specify)": 'HIV.B.DE283' from "HIV_DAK_Codes" display 'POC Test for Neisseria gonorrhoeae (specify)' +code "Chlamydia trachomatis test type": 'HIV.B.DE284' from "HIV_DAK_Codes" display 'Chlamydia trachomatis test type' +code "Other test for Chlamydia (specify)": 'HIV.B.DE291' from "HIV_DAK_Codes" display 'Other test for Chlamydia (specify)' +code "POC Test type for Chlamydia test (specify)": 'HIV.B.DE292' from "HIV_DAK_Codes" display 'POC Test type for Chlamydia test (specify)' +code "Trichomonas vaginalis test type": 'HIV.B.DE293' from "HIV_DAK_Codes" display 'Trichomonas vaginalis test type' +code "POC Test type for Trichomonas vaginalis test (specify)": 'HIV.B.DE300' from "HIV_DAK_Codes" display 'POC Test type for Trichomonas vaginalis test (specify)' +code "Herpes simplex virus (HSV) test type": 'HIV.B.DE301' from "HIV_DAK_Codes" display 'Herpes simplex virus (HSV) test type' +code "Mycoplasma genitalium test type": 'HIV.B.DE306' from "HIV_DAK_Codes" display 'Mycoplasma genitalium test type' +code "Test type for other STI tested for (specify)": 'HIV.B.DE311' from "HIV_DAK_Codes" display 'Test type for other STI tested for (specify)' +code "STI test result": 'HIV.B.DE312' from "HIV_DAK_Codes" display 'STI test result' +code "Date of STI confirmatory test": 'HIV.B.DE316' from "HIV_DAK_Codes" display 'Date of STI confirmatory test' +code "Confirmatory syphilis test type": 'HIV.B.DE317' from "HIV_DAK_Codes" display 'Confirmatory syphilis test type' +code "Confirmatory test type for other STI (specify)": 'HIV.B.DE324' from "HIV_DAK_Codes" display 'Confirmatory test type for other STI (specify)' +code "Confirmatory STI test result": 'HIV.B.DE325' from "HIV_DAK_Codes" display 'Confirmatory STI test result' +code "Date STI treatment prescribed": 'HIV.B.DE329' from "HIV_DAK_Codes" display 'Date STI treatment prescribed' +code "Date STI treatment dispensed": 'HIV.B.DE330' from "HIV_DAK_Codes" display 'Date STI treatment dispensed' +code "STI treatment dispensed (specify)": 'HIV.B.DE331' from "HIV_DAK_Codes" display 'STI treatment dispensed (specify)' +code "Reason for PrEP visit": 'HIV.C.DE1' from "HIV_DAK_Codes" display 'Reason for PrEP visit' +code "3-month PrEP visit": 'HIV.C.DE7' from "HIV_DAK_Codes" display '3-month PrEP visit' +code "Currently on PrEP": 'HIV.C.DE10' from "HIV_DAK_Codes" display 'Currently on PrEP' +code "PrEP dosing type": 'HIV.C.DE11' from "HIV_DAK_Codes" display 'PrEP dosing type' +code "Other PrEP dosing type (specify)": 'HIV.C.DE15' from "HIV_DAK_Codes" display 'Other PrEP dosing type (specify)' +code "Used event-driven PrEP for at risk exposures over the past 3 months": 'HIV.C.DE16' from "HIV_DAK_Codes" display 'Used event-driven PrEP for at risk exposures over the past 3 months' +code "Current PrEP regimen": 'HIV.C.DE17' from "HIV_DAK_Codes" display 'Current PrEP regimen' +code "Experience with PrEP": 'HIV.C.DE24' from "HIV_DAK_Codes" display 'Experience with PrEP' +code "PrEP start date": 'HIV.C.DE28' from "HIV_DAK_Codes" display 'PrEP start date' +code "Stopped PrEP": 'HIV.C.DE29' from "HIV_DAK_Codes" display 'Stopped PrEP' +code "Date PrEP stopped": 'HIV.C.DE30' from "HIV_DAK_Codes" display 'Date PrEP stopped' +code "PEP history": 'HIV.C.DE31' from "HIV_DAK_Codes" display 'PEP history' +code "Date(s) of past PEP use": 'HIV.C.DE34' from "HIV_DAK_Codes" display 'Date(s) of past PEP use' +code "Date client completes PEP course": 'HIV.C.DE35' from "HIV_DAK_Codes" display 'Date client completes PEP course' +code "Signs of substantial risk of HIV infection": 'HIV.C.DE36' from "HIV_DAK_Codes" display 'Signs of substantial risk of HIV infection' +code "Pregnancy intention in serodiscordant partnerships": 'HIV.C.DE41' from "HIV_DAK_Codes" display 'Pregnancy intention in serodiscordant partnerships' +code "Acute HIV infection symptoms": 'HIV.C.DE46' from "HIV_DAK_Codes" display 'Acute HIV infection symptoms' +code "Sex partner's HIV treatment status": 'HIV.C.DE55' from "HIV_DAK_Codes" display 'Sex partner HIV treatment status' +code "Suitable for PrEP": 'HIV.C.DE61' from "HIV_DAK_Codes" display 'Suitable for PrEP' +code "Offered PrEP": 'HIV.C.DE62' from "HIV_DAK_Codes" display 'Offered PrEP' +code "Screenings and diagnostics for PrEP users": 'HIV.C.DE63' from "HIV_DAK_Codes" display 'Screenings and diagnostics for PrEP users' +code "Serum creatinine test date": 'HIV.C.DE71' from "HIV_DAK_Codes" display 'Serum creatinine test date' +code "Serum creatinine test result": 'HIV.C.DE72' from "HIV_DAK_Codes" display 'Serum creatinine test result' +code "Date medications dispensed": 'HIV.C.DE73' from "HIV_DAK_Codes" display 'Date medications dispensed' +code "Date medications prescribed": 'HIV.C.DE74' from "HIV_DAK_Codes" display 'Date medications prescribed' +code "Medications prescribed": 'HIV.C.DE75' from "HIV_DAK_Codes" display 'Medications prescribed' +code "PrEP product prescribed": 'HIV.C.DE80' from "HIV_DAK_Codes" display 'PrEP product prescribed' +code "Date PrEP prescribed": 'HIV.C.DE86' from "HIV_DAK_Codes" display 'Date PrEP prescribed' +code "Date PrEP dispensed": 'HIV.C.DE87' from "HIV_DAK_Codes" display 'Date PrEP dispensed' +code "Volume of PrEP product prescribed/dispensed": 'HIV.C.DE88' from "HIV_DAK_Codes" display 'Volume of PrEP product prescribed/dispensed' +code "Date PEP prescribed": 'HIV.C.DE89' from "HIV_DAK_Codes" display 'Date PEP prescribed' +code "Date PEP course completion": 'HIV.C.DE90' from "HIV_DAK_Codes" display 'Date PEP course completion' +code "Preferred PEP backbone regimen": 'HIV.C.DE91' from "HIV_DAK_Codes" display 'Preferred PEP backbone regimen' +code "Alternative PEP backbone regimen": 'HIV.C.DE95' from "HIV_DAK_Codes" display 'Alternative PEP backbone regimen' +code "Preferred third PEP drug": 'HIV.C.DE99' from "HIV_DAK_Codes" display 'Preferred third PEP drug' +code "Alternative third PEP drug": 'HIV.C.DE101' from "HIV_DAK_Codes" display 'Alternative third PEP drug' +code "Estimated creatinine clearance": 'HIV.C.DE106' from "HIV_DAK_Codes" display 'Estimated creatinine clearance' +code "Sex factor for estimating creatinine clearance": 'HIV.C.DE107' from "HIV_DAK_Codes" display 'Sex factor for estimating creatinine clearance' +code "Estimated creatinine clearance (Cockcroft-Gault equation)": 'HIV.C.DE110' from "HIV_DAK_Codes" display 'Estimated creatinine clearance (Cockcroft-Gault equation)' +code "Date of sample collection": 'HIV.C.DE111' from "HIV_DAK_Codes" display 'Date of sample collection' +code "Contraindications to PrEP usage": 'HIV.C.DE112' from "HIV_DAK_Codes" display 'Contraindications to PrEP usage' +code "Other allergy or contraindication to a medicine in the PrEP regimen (specify)": 'HIV.C.DE119' from "HIV_DAK_Codes" display 'Other allergy or contraindication to a medicine in the PrEP regimen (specify)' +code "Prescribed PrEP at initial visit": 'HIV.C.DE120' from "HIV_DAK_Codes" display 'Prescribed PrEP at initial visit' +code "Number of days prescribed": 'HIV.C.DE121' from "HIV_DAK_Codes" display 'Number of days prescribed' +code "PrEP regimen prescribed": 'HIV.C.DE122' from "HIV_DAK_Codes" display 'PrEP regimen prescribed' +code "Adherence counselling provided": 'HIV.C.DE123' from "HIV_DAK_Codes" display 'Adherence counselling provided' +code "Linked to enrolment in care and ART initiation": 'HIV.C.DE130' from "HIV_DAK_Codes" display 'Linked to enrolment in care and ART initiation' +code "Date provided condoms": 'HIV.C.DE136' from "HIV_DAK_Codes" display 'Date provided condoms' +code "Condoms distributed": 'HIV.C.DE137' from "HIV_DAK_Codes" display 'Condoms distributed' +code "Condom type": 'HIV.C.DE138' from "HIV_DAK_Codes" display 'Condom type' +code "HIV self-test kits accepted": 'HIV.C.DE141' from "HIV_DAK_Codes" display 'HIV self-test kits accepted' +code "Number of HIV self-test kits distributed": 'HIV.C.DE142' from "HIV_DAK_Codes" display 'Number of HIV self-test kits distributed' +code "HIV self-test distributed for use by": 'HIV.C.DE143' from "HIV_DAK_Codes" display 'HIV self-test distributed for use by' +code "HIV testing for partners and biological children": 'HIV.C.DE156' from "HIV_DAK_Codes" display 'HIV testing for partners and biological children' +code "Scheduled visit": 'HIV.D.DE8' from "HIV_DAK_Codes" display 'Scheduled visit' +code "Body temperature": 'HIV.D.DE9' from "HIV_DAK_Codes" display 'Body temperature' +code "Respiratory rate": 'HIV.D.DE10' from "HIV_DAK_Codes" display 'Respiratory rate' +code "Heart rate": 'HIV.D.DE11' from "HIV_DAK_Codes" display 'Heart rate' +code "Body height": 'HIV.D.DE12' from "HIV_DAK_Codes" display 'Body height' +code "Body weight": 'HIV.D.DE13' from "HIV_DAK_Codes" display 'Body weight' +code "Systolic blood pressure": 'HIV.D.DE14' from "HIV_DAK_Codes" display 'Systolic blood pressure' +code "Diastolic blood pressure": 'HIV.D.DE15' from "HIV_DAK_Codes" display 'Diastolic blood pressure' +code "Blood pressure cannot be taken": 'HIV.D.DE16' from "HIV_DAK_Codes" display 'Blood pressure cannot be taken' +code "Signs of serious illness": 'HIV.D.DE17' from "HIV_DAK_Codes" display 'Signs of serious illness' +code "Other sign of serious illness (specify)": 'HIV.D.DE30' from "HIV_DAK_Codes" display 'Other sign of serious illness (specify)' +code "Number of pregnancies (gravida)": 'HIV.D.DE33' from "HIV_DAK_Codes" display 'Number of pregnancies (gravida)' +code "Number of miscarriages and/or abortions": 'HIV.D.DE34' from "HIV_DAK_Codes" display 'Number of miscarriages and/or abortions' +code "Number of live births": 'HIV.D.DE35' from "HIV_DAK_Codes" display 'Number of live births' +code "Parity": 'HIV.D.DE36' from "HIV_DAK_Codes" display 'Parity' +code "Serodiscordant partner": 'HIV.D.DE37' from "HIV_DAK_Codes" display 'Serodiscordant partner' +code "On ART": 'HIV.D.DE38' from "HIV_DAK_Codes" display 'On ART' +code "Stopped ART": 'HIV.D.DE40' from "HIV_DAK_Codes" display 'Stopped ART' +code "Date ART stopped": 'HIV.D.DE41' from "HIV_DAK_Codes" display 'Date ART stopped' +code "Established on ART": 'HIV.D.DE42' from "HIV_DAK_Codes" display 'Established on ART' +code "ART start type": 'HIV.D.DE43' from "HIV_DAK_Codes" display 'ART start type' +code "Date of initiation on ART": 'HIV.D.DE46' from "HIV_DAK_Codes" display 'Date of initiation on ART' +code "Time on ART": 'HIV.D.DE47' from "HIV_DAK_Codes" display 'Time on ART' +code "Date(s) ART restarted": 'HIV.D.DE48' from "HIV_DAK_Codes" display 'Date(s) ART restarted' +code "ART cohort": 'HIV.D.DE49' from "HIV_DAK_Codes" display 'ART cohort' +code "Transfer in for HIV care": 'HIV.D.DE50' from "HIV_DAK_Codes" display 'Transfer in for HIV care' +code "Date of transfer in": 'HIV.D.DE51' from "HIV_DAK_Codes" display 'Date of transfer in' +code "Facility transferred from": 'HIV.D.DE52' from "HIV_DAK_Codes" display 'Facility transferred from' +code "Date enrolled in HIV care": 'HIV.D.DE53' from "HIV_DAK_Codes" display 'Date enrolled in HIV care' +code "Age at enrolment": 'HIV.D.DE54' from "HIV_DAK_Codes" display 'Age at enrolment' +code "Facility where client first enrolled in HIV care": 'HIV.D.DE55' from "HIV_DAK_Codes" display 'Facility where client first enrolled in HIV care' +code "Antiretroviral (ARV) drugs received prior to enrolment": 'HIV.D.DE56' from "HIV_DAK_Codes" display 'Antiretroviral (ARV) drugs received prior to enrolment' +code "Date ARV drugs received prior to enrolment": 'HIV.D.DE62' from "HIV_DAK_Codes" display 'Date ARV drugs received prior to enrolment' +code "Location ARV drugs received prior to enrolment": 'HIV.D.DE63' from "HIV_DAK_Codes" display 'Location ARV drugs received prior to enrolment' +code "ARV drug regimen received prior to enrolment": 'HIV.D.DE64' from "HIV_DAK_Codes" display 'ARV drug regimen received prior to enrolment' +code "Existing chronic health conditions": 'HIV.D.DE65' from "HIV_DAK_Codes" display 'Existing chronic health conditions' +code "Original first-line ART regimen": 'HIV.D.DE74' from "HIV_DAK_Codes" display 'Original first-line ART regimen' +code "Current ART regimen": 'HIV.D.DE75' from "HIV_DAK_Codes" display 'Current ART regimen' +code "Current ART regimen start date": 'HIV.D.DE76' from "HIV_DAK_Codes" display 'Current ART regimen start date' +code "Preferred first-line ART regimen": 'HIV.D.DE77' from "HIV_DAK_Codes" display 'Preferred first-line ART regimen' +code "Alternative first-line ART regimen": 'HIV.D.DE78' from "HIV_DAK_Codes" display 'Alternative first-line ART regimen' +code "First-line ART regimen under special circumstances": 'HIV.D.DE79' from "HIV_DAK_Codes" display 'First-line ART regimen under special circumstances' +code "Preferred second-line ART regimen": 'HIV.D.DE80' from "HIV_DAK_Codes" display 'Preferred second-line ART regimen' +code "Alternative second-line ART regimen": 'HIV.D.DE81' from "HIV_DAK_Codes" display 'Alternative second-line ART regimen' +code "Optimal regimen for transition": 'HIV.D.DE82' from "HIV_DAK_Codes" display 'Optimal regimen for transition' +code "Current ART regimen (first-, second-, or third-line)": 'HIV.D.DE83' from "HIV_DAK_Codes" display 'Current ART regimen (first-, second-, or third-line)' +code "ART regimen": 'HIV.D.DE90' from "HIV_DAK_Codes" display 'ART regimen' +code "ART regimen composition": 'HIV.D.DE128' from "HIV_DAK_Codes" display 'ART regimen composition' +code "ART regimen drug class": 'HIV.D.DE146' from "HIV_DAK_Codes" display 'ART regimen drug class' +code "HBsAg test date": 'HIV.D.DE161' from "HIV_DAK_Codes" display 'HBsAg test date' +code "HBsAg test result": 'HIV.D.DE162' from "HIV_DAK_Codes" display 'HBsAg test result' +code "Date HBV test result returned to client": 'HIV.D.DE166' from "HIV_DAK_Codes" display 'Date HBV test result returned to client' +code "HBV treatment (TDF) start date": 'HIV.D.DE167' from "HIV_DAK_Codes" display 'HBV treatment (TDF) start date' +code "HBV treatment regimen prescribed": 'HIV.D.DE168' from "HIV_DAK_Codes" display 'HBV treatment regimen prescribed' +code "HCV test date": 'HIV.D.DE169' from "HIV_DAK_Codes" display 'HCV test date' +code "HCV test result": 'HIV.D.DE170' from "HIV_DAK_Codes" display 'HCV test result' +code "Date HCV test result returned to client": 'HIV.D.DE174' from "HIV_DAK_Codes" display 'Date HCV test result returned to client' +code "HCV treatment start date": 'HIV.D.DE175' from "HIV_DAK_Codes" display 'HCV treatment start date' +code "HCV treatment completion date": 'HIV.D.DE176' from "HIV_DAK_Codes" display 'HCV treatment completion date' +code "HCV treatment regimen prescribed": 'HIV.D.DE177' from "HIV_DAK_Codes" display 'HCV treatment regimen prescribed' +code "HCV viral load test date": 'HIV.D.DE178' from "HIV_DAK_Codes" display 'HCV viral load test date' +code "HCV viral load test result": 'HIV.D.DE179' from "HIV_DAK_Codes" display 'HCV viral load test result' +code "HCV medicine type": 'HIV.D.DE182' from "HIV_DAK_Codes" display 'HCV medicine type' +code "Currently on TDF-based ART": 'HIV.D.DE185' from "HIV_DAK_Codes" display 'Currently on TDF-based ART' +code "HIV clinical stage": 'HIV.D.DE186' from "HIV_DAK_Codes" display 'HIV clinical stage' +code "Number of missed doses": 'HIV.D.DE191' from "HIV_DAK_Codes" display 'Number of missed doses' +code "Received viral load test result": 'HIV.D.DE192' from "HIV_DAK_Codes" display 'Received viral load test result' +code "Date viral load test results received by client": 'HIV.D.DE193' from "HIV_DAK_Codes" display 'Date viral load test results received by client' +code "Date of viral load sample collection": 'HIV.D.DE194' from "HIV_DAK_Codes" display 'Date of viral load sample collection' +code "Date of scheduled review of viral load test results": 'HIV.D.DE195' from "HIV_DAK_Codes" display 'Date of scheduled review of viral load test results' +code "Date of ART interruption": 'HIV.D.DE196' from "HIV_DAK_Codes" display 'Date of ART interruption' +code "Reason(s) for adherence problem": 'HIV.D.DE197' from "HIV_DAK_Codes" display 'Reason(s) for adherence problem' +code "Other reason for nonadherence (specify)": 'HIV.D.DE216' from "HIV_DAK_Codes" display 'Other reason for nonadherence (specify)' +code "Reason ART stopped": 'HIV.D.DE217' from "HIV_DAK_Codes" display 'Reason ART stopped' +code "Other reason for stopping ART (specify)": 'HIV.D.DE224' from "HIV_DAK_Codes" display 'Other reason for stopping ART (specify)' +code "Treatment failure": 'HIV.D.DE225' from "HIV_DAK_Codes" display 'Treatment failure' +code "General care activities recommended": 'HIV.D.DE229' from "HIV_DAK_Codes" display 'General care activities recommended' +code "Preventing and treating coinfections": 'HIV.D.DE247' from "HIV_DAK_Codes" display 'Preventing and treating coinfections' +code "Risk factors, comorbidities and coinfections signs and symptoms": 'HIV.D.DE259' from "HIV_DAK_Codes" display 'Risk factors, comorbidities and coinfections signs and symptoms' +code "WHO HIV clinical stage condition or symptom": 'HIV.D.DE289' from "HIV_DAK_Codes" display 'WHO HIV clinical stage condition or symptom' +code "Clinical stage at start of ART": 'HIV.D.DE358' from "HIV_DAK_Codes" display 'Clinical stage at start of ART' +code "Date of clinical status change": 'HIV.D.DE363' from "HIV_DAK_Codes" display 'Date of clinical status change' +code "CD4 count": 'HIV.D.DE364' from "HIV_DAK_Codes" display 'CD4 count' +code "CD4 cell percentage": 'HIV.D.DE365' from "HIV_DAK_Codes" display 'CD4 cell percentage' +code "Date of CD4 count test": 'HIV.D.DE366' from "HIV_DAK_Codes" display 'Date of CD4 count test' +code "Baseline CD4 count": 'HIV.D.DE367' from "HIV_DAK_Codes" display 'Baseline CD4 count' +code "Date of baseline CD4 count test": 'HIV.D.DE368' from "HIV_DAK_Codes" display 'Date of baseline CD4 count test' +code "Late ART initiation": 'HIV.D.DE369' from "HIV_DAK_Codes" display 'Late ART initiation' +code "Reasons for delayed ART initiation": 'HIV.D.DE370' from "HIV_DAK_Codes" display 'Reasons for delayed ART initiation' +code "ART initiated within 7 days of diagnosis": 'HIV.D.DE382' from "HIV_DAK_Codes" display 'ART initiated within 7 days of diagnosis' +code "Time to start ART": 'HIV.D.DE383' from "HIV_DAK_Codes" display 'Time to start ART' +code "Viral load test result": 'HIV.D.DE387' from "HIV_DAK_Codes" display 'Viral load test result' +code "Virally suppressed": 'HIV.D.DE388' from "HIV_DAK_Codes" display 'Virally suppressed' +code "Date viral load test results received": 'HIV.D.DE389' from "HIV_DAK_Codes" display 'Date viral load test results received' +code "Viral load suppression date": 'HIV.D.DE390' from "HIV_DAK_Codes" display 'Viral load suppression date' +code "Reason for HIV viral load test": 'HIV.D.DE391' from "HIV_DAK_Codes" display 'Reason for HIV viral load test' +code "Hepatitis B test required": 'HIV.D.DE396' from "HIV_DAK_Codes" display 'Hepatitis B test required' +code "Hepatitis C test recommended": 'HIV.D.DE397' from "HIV_DAK_Codes" display 'Hepatitis C test recommended' +code "Syphilis test required": 'HIV.D.DE398' from "HIV_DAK_Codes" display 'Syphilis test required' +code "Monitoring examinations": 'HIV.D.DE399' from "HIV_DAK_Codes" display 'Monitoring examinations' +code "Date of scheduled monitoring examination": 'HIV.D.DE413' from "HIV_DAK_Codes" display 'Date of scheduled monitoring examination' +code "Hepatitis C test ordered": 'HIV.D.DE414' from "HIV_DAK_Codes" display 'Hepatitis C test ordered' +code "Syphilis test ordered": 'HIV.D.DE415' from "HIV_DAK_Codes" display 'Syphilis test ordered' +code "Received viral load test results": 'HIV.D.DE416' from "HIV_DAK_Codes" display 'Received viral load test results' +code "Reason for ARV drug regimen substitution": 'HIV.D.DE418' from "HIV_DAK_Codes" display 'Reason for ARV drug regimen substitution' +code "Other reason for regimen substitution (specify)": 'HIV.D.DE426' from "HIV_DAK_Codes" display 'Other reason for regimen substitution (specify)' +code "Switch to second-line ART regimen recommended": 'HIV.D.DE427' from "HIV_DAK_Codes" display 'Switch to second-line ART regimen recommended' +code "Switch to third-line ART regimen recommended": 'HIV.D.DE428' from "HIV_DAK_Codes" display 'Switch to third-line ART regimen recommended' +code "Regimen switch made": 'HIV.D.DE429' from "HIV_DAK_Codes" display 'Regimen switch made' +code "Reason for regimen switch": 'HIV.D.DE430' from "HIV_DAK_Codes" display 'Reason for regimen switch' +code "Regimen substitution recommended": 'HIV.D.DE436' from "HIV_DAK_Codes" display 'Regimen substitution recommended' +code "Dose adjustment recommended": 'HIV.D.DE437' from "HIV_DAK_Codes" display 'Dose adjustment recommended' +code "Regimen substitution made": 'HIV.D.DE438' from "HIV_DAK_Codes" display 'Regimen substitution made' +code "Co-trimoxazole prophylaxis start date": 'HIV.D.DE439' from "HIV_DAK_Codes" display 'Co-trimoxazole prophylaxis start date' +code "Co-trimoxazole prophylaxis completion date": 'HIV.D.DE440' from "HIV_DAK_Codes" display 'Co-trimoxazole prophylaxis completion date' +code "Co-trimoxazole prophylaxis dosage": 'HIV.D.DE441' from "HIV_DAK_Codes" display 'Co-trimoxazole prophylaxis dosage' +code "Co-trimoxazole prophylaxis number of days prescribed": 'HIV.D.DE442' from "HIV_DAK_Codes" display 'Co-trimoxazole prophylaxis number of days prescribed' +code "Suspicion of treatment failure or interruption": 'HIV.D.DE443' from "HIV_DAK_Codes" display 'Suspicion of treatment failure or interruption' +code "ART regimen prescribed": 'HIV.D.DE444' from "HIV_DAK_Codes" display 'ART regimen prescribed' +code "Antiretroviral toxicity": 'HIV.D.DE445' from "HIV_DAK_Codes" display 'Antiretroviral toxicity' +code "Coinfection status at ART start": 'HIV.D.DE446' from "HIV_DAK_Codes" display 'Coinfection status at ART start' +code "Pregnant and breastfeeding status at ART start": 'HIV.D.DE449' from "HIV_DAK_Codes" display 'Pregnant and breastfeeding status at ART start' +code "Delivery date of infant": 'HIV.D.DE454' from "HIV_DAK_Codes" display 'Delivery date of infant' +code "Serodiscordant partner at ART start": 'HIV.D.DE455' from "HIV_DAK_Codes" display 'Serodiscordant partner at ART start' +code "Regimen start date": 'HIV.D.DE456' from "HIV_DAK_Codes" display 'Regimen start date' +code "Dose of medications prescribed": 'HIV.D.DE459' from "HIV_DAK_Codes" display 'Dose of medications prescribed' +code "Number of days medications prescribed": 'HIV.D.DE460' from "HIV_DAK_Codes" display 'Number of days medications prescribed' +code "Medications dispensed": 'HIV.D.DE461' from "HIV_DAK_Codes" display 'Medications dispensed' +code "Number of days of medications dispensed": 'HIV.D.DE462' from "HIV_DAK_Codes" display 'Number of days of medications dispensed' +code "Dosage": 'HIV.D.DE463' from "HIV_DAK_Codes" display 'Dosage' +code "Frequency": 'HIV.D.DE464' from "HIV_DAK_Codes" display 'Frequency' +code "Type of treatment-limiting toxicity": 'HIV.D.DE466' from "HIV_DAK_Codes" display 'Type of treatment-limiting toxicity' +code "Unexpected adverse drug reaction (specify)": 'HIV.D.DE480' from "HIV_DAK_Codes" display 'Unexpected adverse drug reaction (specify)' +code "Date(s) of substitution within first-line regimen": 'HIV.D.DE481' from "HIV_DAK_Codes" display 'Date(s) of substitution within first-line regimen' +code "Reason(s) for substitution within first-line regimen": 'HIV.D.DE482' from "HIV_DAK_Codes" display 'Reason(s) for substitution within first-line regimen' +code "New antiretroviral regimen after substitution within first-line regimen": 'HIV.D.DE483' from "HIV_DAK_Codes" display 'New antiretroviral regimen after substitution within first-line regimen' +code "Date of switch to second-line regimen": 'HIV.D.DE484' from "HIV_DAK_Codes" display 'Date of switch to second-line regimen' +code "New regimen after switch to second-line regimen": 'HIV.D.DE485' from "HIV_DAK_Codes" display 'New regimen after switch to second-line regimen' +code "Reason for switch to second-line regimen": 'HIV.D.DE486' from "HIV_DAK_Codes" display 'Reason for switch to second-line regimen' +code "Date(s) of substitution within second-line regimen": 'HIV.D.DE487' from "HIV_DAK_Codes" display 'Date(s) of substitution within second-line regimen' +code "Reason(s) for substitution within second-line regimen": 'HIV.D.DE488' from "HIV_DAK_Codes" display 'Reason(s) for substitution within second-line regimen' +code "New regimen(s) after substitution within second-line regimen": 'HIV.D.DE489' from "HIV_DAK_Codes" display 'New regimen(s) after substitution within second-line regimen' +code "Date of switch to third-line regimen": 'HIV.D.DE490' from "HIV_DAK_Codes" display 'Date of switch to third-line regimen' +code "New regimen after switch to third-line regimen": 'HIV.D.DE491' from "HIV_DAK_Codes" display 'New regimen after switch to third-line regimen' +code "Reason for switch to third-line regimen": 'HIV.D.DE492' from "HIV_DAK_Codes" display 'Reason for switch to third-line regimen' +code "Date(s) of substitution within third-line regimen": 'HIV.D.DE493' from "HIV_DAK_Codes" display 'Date(s) of substitution within third-line regimen' +code "Reason(s) for substitution within third-line regimen": 'HIV.D.DE494' from "HIV_DAK_Codes" display 'Reason(s) for substitution within third-line regimen' +code "New regimen(s) after substitution within third-line regimen": 'HIV.D.DE495' from "HIV_DAK_Codes" display 'New regimen(s) after substitution within third-line regimen' +code "Enhanced adherence counselling provided": 'HIV.D.DE496' from "HIV_DAK_Codes" display 'Enhanced adherence counselling provided' +code "First enhanced adherence counselling session completed": 'HIV.D.DE497' from "HIV_DAK_Codes" display 'First enhanced adherence counselling session completed' +code "Date of first enhanced adherence counselling session completed": 'HIV.D.DE498' from "HIV_DAK_Codes" display 'Date of first enhanced adherence counselling session completed' +code "Second enhanced adherence counselling session completed": 'HIV.D.DE499' from "HIV_DAK_Codes" display 'Second enhanced adherence counselling session completed' +code "Date of second enhanced adherence counselling session completed": 'HIV.D.DE500' from "HIV_DAK_Codes" display 'Date of second enhanced adherence counselling session completed' +code "Third enhanced adherence counselling session completed": 'HIV.D.DE501' from "HIV_DAK_Codes" display 'Third enhanced adherence counselling session completed' +code "Date of third enhanced adherence counselling session completed": 'HIV.D.DE502' from "HIV_DAK_Codes" display 'Date of third enhanced adherence counselling session completed' +code "Name of treatment supporter": 'HIV.D.DE503' from "HIV_DAK_Codes" display 'Name of treatment supporter' +code "Address of treatment supporter": 'HIV.D.DE504' from "HIV_DAK_Codes" display 'Address of treatment supporter' +code "Telephone number of treatment supporter": 'HIV.D.DE505' from "HIV_DAK_Codes" display 'Telephone number of treatment supporter' +code "Home-based care provider": 'HIV.D.DE506' from "HIV_DAK_Codes" display 'Home-based care provider' +code "Counselling provided on diagnoses": 'HIV.D.DE507' from "HIV_DAK_Codes" display 'Counselling provided on diagnoses' +code "Hepatitis B positive counselling conducted": 'HIV.D.DE508' from "HIV_DAK_Codes" display 'Hepatitis B positive counselling conducted' +code "Hepatitis C positive counselling conducted": 'HIV.D.DE509' from "HIV_DAK_Codes" display 'Hepatitis C positive counselling conducted' +code "Syphilis counselling and treatment": 'HIV.D.DE510' from "HIV_DAK_Codes" display 'Syphilis counselling and treatment' +code "Syphilis counselling, treatment and further testing": 'HIV.D.DE511' from "HIV_DAK_Codes" display 'Syphilis counselling, treatment and further testing' +code "Accepted partner services": 'HIV.D.DE512' from "HIV_DAK_Codes" display 'Accepted partner services' +code "HIV status of family member": 'HIV.D.DE514' from "HIV_DAK_Codes" display 'HIV status of family member' +code "Unique ID of family member": 'HIV.D.DE515' from "HIV_DAK_Codes" display 'Unique ID of family member' +code "Date of death of family member": 'HIV.D.DE516' from "HIV_DAK_Codes" display 'Date of death of family member' +code "Provided support for disclosure and partner services": 'HIV.D.DE518' from "HIV_DAK_Codes" display 'Provided support for disclosure and partner services' +code "Follow-up test recommended date": 'HIV.D.DE531' from "HIV_DAK_Codes" display 'Follow-up test recommended date' +code "Reason blood pressure reading not done": 'HIV.D.DE532' from "HIV_DAK_Codes" display 'Reason blood pressure reading not done' +code "Other": 'HIV.D.DE535' from "HIV_DAK_Codes" display 'Other' +code "Current medications": 'HIV.D.DE537' from "HIV_DAK_Codes" display 'Current medications' +code "Other medications (specify)": 'HIV.D.DE559' from "HIV_DAK_Codes" display 'Other medications (specify)' +code "Allergies": 'HIV.D.DE560' from "HIV_DAK_Codes" display 'Allergies' +code "Other allergies (specify)": 'HIV.D.DE568' from "HIV_DAK_Codes" display 'Other allergies (specify)' +code "Family planning method used": 'HIV.D.DE569' from "HIV_DAK_Codes" display 'Family planning method used' +code "Medication status": 'HIV.D.DE593' from "HIV_DAK_Codes" display 'Medication status' +code "Hepatitis B negative counselling conducted": 'HIV.D.DE602' from "HIV_DAK_Codes" display 'Hepatitis B negative counselling conducted' +code "Vaccine brand": 'HIV.D.DE603' from "HIV_DAK_Codes" display 'Vaccine brand' +code "Vaccine type": 'HIV.D.DE604' from "HIV_DAK_Codes" display 'Vaccine type' +code "Date and time of vaccination": 'HIV.D.DE605' from "HIV_DAK_Codes" display 'Date and time of vaccination' +code "Vaccination location": 'HIV.D.DE606' from "HIV_DAK_Codes" display 'Vaccination location' +code "Dose number": 'HIV.D.DE607' from "HIV_DAK_Codes" display 'Dose number' +code "Dose quantity": 'HIV.D.DE608' from "HIV_DAK_Codes" display 'Dose quantity' +code "Total doses in series": 'HIV.D.DE609' from "HIV_DAK_Codes" display 'Total doses in series' +code "Disease targeted": 'HIV.D.DE610' from "HIV_DAK_Codes" display 'Disease targeted' +code "Reason immunization was not provided": 'HIV.D.DE636' from "HIV_DAK_Codes" display 'Reason immunization was not provided' +code "Other reason immunization not provided (specify)": 'HIV.D.DE642' from "HIV_DAK_Codes" display 'Other reason immunization not provided (specify)' +code "Malaria prophylaxis": 'HIV.D.DE643' from "HIV_DAK_Codes" display 'Malaria prophylaxis' +code "IPTp-SP dose number provided": 'HIV.D.DE644' from "HIV_DAK_Codes" display 'IPTp-SP dose number provided' +code "Date IPTp-SP dose provided": 'HIV.D.DE645' from "HIV_DAK_Codes" display 'Date IPTp-SP dose provided' +code "Reason malaria prophylaxis not provided": 'HIV.D.DE646' from "HIV_DAK_Codes" display 'Reason malaria prophylaxis not provided' +code "Other reason not provided (specify)": 'HIV.D.DE651' from "HIV_DAK_Codes" display 'Other reason not provided (specify)' +code ">28 days since last missed appointment": 'HIV.D.DE652' from "HIV_DAK_Codes" display '>28 days since last missed appointment' +code "AIDS-related death": 'HIV.D.DE653' from "HIV_DAK_Codes" display 'AIDS-related death' +code "Date of first AIDS diagnosis": 'HIV.D.DE654' from "HIV_DAK_Codes" display 'Date of first AIDS diagnosis' +code "Age at final HPV vaccination dose received": 'HIV.D.DE655' from "HIV_DAK_Codes" display 'Age at final HPV vaccination dose received' +code "Date of cervical cancer screening test": 'HIV.D.DE656' from "HIV_DAK_Codes" display 'Date of cervical cancer screening test' +code "Lifetime screening test number": 'HIV.D.DE657' from "HIV_DAK_Codes" display 'Lifetime screening test number' +code "Cervical cancer primary screening test type": 'HIV.D.DE658' from "HIV_DAK_Codes" display 'Cervical cancer primary screening test type' +code "HPV-DNA cervical cancer screening test result": 'HIV.D.DE664' from "HIV_DAK_Codes" display 'HPV-DNA cervical cancer screening test result' +code "VIA cervical cancer screening test result": 'HIV.D.DE668' from "HIV_DAK_Codes" display 'VIA cervical cancer screening test result' +code "Cervical cytology screening test result": 'HIV.D.DE673' from "HIV_DAK_Codes" display 'Cervical cytology screening test result' +code "Cervical cancer triage test date": 'HIV.D.DE680' from "HIV_DAK_Codes" display 'Cervical cancer triage test date' +code "Cervical cancer triage test type": 'HIV.D.DE681' from "HIV_DAK_Codes" display 'Cervical cancer triage test type' +code "HPV16/18 test result": 'HIV.D.DE688' from "HIV_DAK_Codes" display 'HPV16/18 test result' +code "Cervical cancer colposcopy result": 'HIV.D.DE691' from "HIV_DAK_Codes" display 'Cervical cancer colposcopy result' +code "Cervical cancer histopathology result": 'HIV.D.DE697' from "HIV_DAK_Codes" display 'Cervical cancer histopathology result' +code "Date of additional cervical cancer triage test": 'HIV.D.DE702' from "HIV_DAK_Codes" display 'Date of additional cervical cancer triage test' +code "Additional cervical cancer triage test type (specify)": 'HIV.D.DE703' from "HIV_DAK_Codes" display 'Additional cervical cancer triage test type (specify)' +code "Additional cervical cancer triage test result (specify)": 'HIV.D.DE704' from "HIV_DAK_Codes" display 'Additional cervical cancer triage test result (specify)' +code "Date of diagnosis of cervical precancer lesions or invasive cervical cancer": 'HIV.D.DE705' from "HIV_DAK_Codes" display 'Date of diagnosis of cervical precancer lesions or invasive cervical cancer' +code "Cervical cancer screening outcome": 'HIV.D.DE706' from "HIV_DAK_Codes" display 'Cervical cancer screening outcome' +code "Cervical cancer diagnosis": 'HIV.D.DE709' from "HIV_DAK_Codes" display 'Cervical cancer diagnosis' +code "Cervical cancer stage at diagnosis": 'HIV.D.DE712' from "HIV_DAK_Codes" display 'Cervical cancer stage at diagnosis' +code "Date of treatment for cervical precancer lesions": 'HIV.D.DE718' from "HIV_DAK_Codes" display 'Date of treatment for cervical precancer lesions' +code "Treatment method for cervical precancer lesions": 'HIV.D.DE719' from "HIV_DAK_Codes" display 'Treatment method for cervical precancer lesions' +code "Date of follow-up for treatment for cervical precancer lesions": 'HIV.D.DE728' from "HIV_DAK_Codes" display 'Date of follow-up for treatment for cervical precancer lesions' +code "Date of start of invasive cancer treatment": 'HIV.D.DE729' from "HIV_DAK_Codes" display 'Date of start of invasive cancer treatment' +code "Invasive cervical cancer treatment episode": 'HIV.D.DE730' from "HIV_DAK_Codes" display 'Invasive cervical cancer treatment episode' +code "Invasive cervical cancer treatment method": 'HIV.D.DE731' from "HIV_DAK_Codes" display 'Invasive cervical cancer treatment method' +code "Treatment outcome": 'HIV.D.DE741' from "HIV_DAK_Codes" display 'Treatment outcome' +code "Secondary/other cancers diagnosed": 'HIV.D.DE742' from "HIV_DAK_Codes" display 'Secondary/other cancers diagnosed' +code "Cancers at other sites (HPV- and non-HPV related)": 'HIV.D.DE743' from "HIV_DAK_Codes" display 'Cancers at other sites (HPV- and non-HPV related)' +code "Date of death": 'HIV.D.DE744' from "HIV_DAK_Codes" display 'Date of death' +code "Cervical cancer screening interval amongst WLHIV": 'HIV.D.DE745' from "HIV_DAK_Codes" display 'Cervical cancer screening interval amongst WLHIV' +code "Eligible for DSD ART": 'HIV.D.DE760' from "HIV_DAK_Codes" display 'Eligible for DSD ART' +code "Date DSD ART eligibility assessed": 'HIV.D.DE761' from "HIV_DAK_Codes" display 'Date DSD ART eligibility assessed' +code "Currently enrolled in DSD ART model": 'HIV.D.DE762' from "HIV_DAK_Codes" display 'Currently enrolled in DSD ART model' +code "DSD ART start date": 'HIV.D.DE763' from "HIV_DAK_Codes" display 'DSD ART start date' +code "DSD ART model(s)": 'HIV.D.DE764' from "HIV_DAK_Codes" display 'DSD ART model(s)' +code "Other DSD ART model (specify)": 'HIV.D.DE771' from "HIV_DAK_Codes" display 'Other DSD ART model (specify)' +code "Partner testing offered": 'HIV.D.DE772' from "HIV_DAK_Codes" display 'Partner testing offered' +code "Partner testing accepted": 'HIV.D.DE773' from "HIV_DAK_Codes" display 'Partner testing accepted' +code "Date partner contacted for index testing": 'HIV.D.DE774' from "HIV_DAK_Codes" display 'Date partner contacted for index testing' +code "Date partner tested for HIV": 'HIV.D.DE775' from "HIV_DAK_Codes" display 'Date partner tested for HIV' +code "Date of next scheduled follow-up appointment": 'HIV.D.DE776' from "HIV_DAK_Codes" display 'Date of next scheduled follow-up appointment' +code "Type of next follow-up appointment": 'HIV.D.DE777' from "HIV_DAK_Codes" display 'Type of next follow-up appointment' +code "Mid-upper arm circumference (MUAC)": 'HIV.D.DE884' from "HIV_DAK_Codes" display 'Mid-upper arm circumference (MUAC)' +code "Date of start of fluconazole prophylaxis": 'HIV.D.DE885' from "HIV_DAK_Codes" display 'Date of start of fluconazole prophylaxis' +code "Fluconazole prophylaxis": 'HIV.D.DE886' from "HIV_DAK_Codes" display 'Fluconazole prophylaxis' +code "Date started cryptococcal meningitis treatment induction regimen": 'HIV.D.DE887' from "HIV_DAK_Codes" display 'Date started cryptococcal meningitis treatment induction regimen' +code "Date completed cryptococcal meningitis treatment induction regimen": 'HIV.D.DE888' from "HIV_DAK_Codes" display 'Date completed cryptococcal meningitis treatment induction regimen' +code "Date started cryptococcal meningitis treatment maintenance regimen": 'HIV.D.DE889' from "HIV_DAK_Codes" display 'Date started cryptococcal meningitis treatment maintenance regimen' +code "Date completed cryptococcal meningitis treatment maintenance regimen": 'HIV.D.DE890' from "HIV_DAK_Codes" display 'Date completed cryptococcal meningitis treatment maintenance regimen' +code "Date started cryptococcal meningitis treatment consolidation regimen": 'HIV.D.DE891' from "HIV_DAK_Codes" display 'Date started cryptococcal meningitis treatment consolidation regimen' +code "Date completed cryptococcal meningitis treatment consolidation regimen": 'HIV.D.DE892' from "HIV_DAK_Codes" display 'Date completed cryptococcal meningitis treatment consolidation regimen' +code "Staging of liver disease": 'HIV.D.DE893' from "HIV_DAK_Codes" display 'Staging of liver disease' +code "Advanced HIV disease": 'HIV.D.DE896' from "HIV_DAK_Codes" display 'Advanced HIV disease' +code "WHO functional status": 'HIV.D.DE897' from "HIV_DAK_Codes" display 'WHO functional status' +code "Tailored adherence counselling for advanced HIV disease": 'HIV.D.DE901' from "HIV_DAK_Codes" display 'Tailored adherence counselling for advanced HIV disease' +code "Date(s) of tracing interventions": 'HIV.D.DE902' from "HIV_DAK_Codes" display 'Date(s) of tracing interventions' +code "Medication/drug": 'HIV.D.DE903' from "HIV_DAK_Codes" display 'Medication/drug' +code "Medication change recommended": 'HIV.D.DE933' from "HIV_DAK_Codes" display 'Medication change recommended' +code "TB disease": 'HIV.D.DE938' from "HIV_DAK_Codes" display 'TB disease' +code "TB diagnosis result": 'HIV.D.DE939' from "HIV_DAK_Codes" display 'TB diagnosis result' +code "Method of TB diagnosis": 'HIV.D.DE942' from "HIV_DAK_Codes" display 'Method of TB diagnosis' +code "Presumptive TB": 'HIV.D.DE945' from "HIV_DAK_Codes" display 'Presumptive TB' +code "Presumptive TB registration date": 'HIV.D.DE946' from "HIV_DAK_Codes" display 'Presumptive TB registration date' +code "TB treatment history": 'HIV.D.DE947' from "HIV_DAK_Codes" display 'TB treatment history' +code "Date of TB diagnosis": 'HIV.D.DE952' from "HIV_DAK_Codes" display 'Date of TB diagnosis' +code "Currently on TB preventive treatment (TPT)": 'HIV.D.DE953' from "HIV_DAK_Codes" display 'Currently on TB preventive treatment (TPT)' +code "TB preventive treatment (TPT) start date": 'HIV.D.DE954' from "HIV_DAK_Codes" display 'TB preventive treatment (TPT) start date' +code "TB preventive treatment (TPT) completion date": 'HIV.D.DE955' from "HIV_DAK_Codes" display 'TB preventive treatment (TPT) completion date' +code "TB screening algorithm": 'HIV.D.DE956' from "HIV_DAK_Codes" display 'TB screening algorithm' +code "Other TB screening algorithm (specify)": 'HIV.D.DE971' from "HIV_DAK_Codes" display 'Other TB screening algorithm (specify)' +code "TB screening conducted": 'HIV.D.DE972' from "HIV_DAK_Codes" display 'TB screening conducted' +code "Symptoms of TB": 'HIV.D.DE973' from "HIV_DAK_Codes" display 'Symptoms of TB' +code "History of contact with a person with TB": 'HIV.D.DE985' from "HIV_DAK_Codes" display 'History of contact with a person with TB' +code "TB screening result": 'HIV.D.DE986' from "HIV_DAK_Codes" display 'TB screening result' +code "TB screening date": 'HIV.D.DE990' from "HIV_DAK_Codes" display 'TB screening date' +code "TB screening result date": 'HIV.D.DE991' from "HIV_DAK_Codes" display 'TB screening result date' +code "TB diagnostic test category": 'HIV.D.DE992' from "HIV_DAK_Codes" display 'TB diagnostic test category' +code "TB diagnostic test date": 'HIV.D.DE997' from "HIV_DAK_Codes" display 'TB diagnostic test date' +code "Test sample collection date": 'HIV.D.DE998' from "HIV_DAK_Codes" display 'Test sample collection date' +code "TB diagnostic test result date": 'HIV.D.DE999' from "HIV_DAK_Codes" display 'TB diagnostic test result date' +code "TB treatment started": 'HIV.D.DE1000' from "HIV_DAK_Codes" display 'TB treatment started' +code "TB treatment start date": 'HIV.D.DE1001' from "HIV_DAK_Codes" display 'TB treatment start date' +code "TB treatment outcome": 'HIV.D.DE1002' from "HIV_DAK_Codes" display 'TB treatment outcome' +code "TB treatment completion date": 'HIV.D.DE1009' from "HIV_DAK_Codes" display 'TB treatment completion date' +code "TB treatment regimen composition": 'HIV.D.DE1010' from "HIV_DAK_Codes" display 'TB treatment regimen composition' +code "Eligible for TB preventive treatment": 'HIV.D.DE1017' from "HIV_DAK_Codes" display 'Eligible for TB preventive treatment' +code "Date when eligibility for TB preventive treatment (TPT) was determined": 'HIV.D.DE1018' from "HIV_DAK_Codes" display 'Date when eligibility for TB preventive treatment (TPT) was determined' +code "TB status at ART start": 'HIV.D.DE1019' from "HIV_DAK_Codes" display 'TB status at ART start' +code "TB prevention services accepted": 'HIV.D.DE1023' from "HIV_DAK_Codes" display 'TB prevention services accepted' +code "TB meningitis": 'HIV.D.DE1024' from "HIV_DAK_Codes" display 'TB meningitis' +code "C reactive protein test date": 'HIV.D.DE1025' from "HIV_DAK_Codes" display 'C reactive protein test date' +code "C reactive protein test result": 'HIV.D.DE1026' from "HIV_DAK_Codes" display 'C reactive protein test result' +code "C reactive protein test result date": 'HIV.D.DE1027' from "HIV_DAK_Codes" display 'C reactive protein test result date' +code "TPT regimen type": 'HIV.D.DE1028' from "HIV_DAK_Codes" display 'TPT regimen type' +code "TB preventive treatment (TPT) status": 'HIV.D.DE1034' from "HIV_DAK_Codes" display 'TB preventive treatment (TPT) status' +code "Pregnant woman's first name": 'HIV.E.DE1' from "HIV_DAK_Codes" display 'Pregnant woman first name' +code "Pregnant woman's surname": 'HIV.E.DE2' from "HIV_DAK_Codes" display 'Pregnant woman surname' +code "Pregnant woman's unique ID": 'HIV.E.DE3' from "HIV_DAK_Codes" display 'Pregnant woman unique ID' +code "Antenatal care number": 'HIV.E.DE4' from "HIV_DAK_Codes" display 'Antenatal care number' +code "Source of gestational age": 'HIV.E.DE6' from "HIV_DAK_Codes" display 'Source of gestational age' +code "Number of previous pregnancies": 'HIV.E.DE12' from "HIV_DAK_Codes" display 'Number of previous pregnancies' +code "Number of caesarian sections": 'HIV.E.DE15' from "HIV_DAK_Codes" display 'Number of caesarian sections' +code "Number of stillbirths": 'HIV.E.DE16' from "HIV_DAK_Codes" display 'Number of stillbirths' +code "Past pregnancy complications": 'HIV.E.DE17' from "HIV_DAK_Codes" display 'Past pregnancy complications' +code "Other past pregnancy problems (specify)": 'HIV.E.DE35' from "HIV_DAK_Codes" display 'Other past pregnancy problems (specify)' +code "Pregnancy in HIV-infected woman": 'HIV.E.DE37' from "HIV_DAK_Codes" display 'Pregnancy in HIV-infected woman' +code "Date new pregnancy of HIV-positive woman identified": 'HIV.E.DE38' from "HIV_DAK_Codes" display 'Date new pregnancy of HIV-positive woman identified' +code "ANC contact during pregnancy": 'HIV.E.DE39' from "HIV_DAK_Codes" display 'ANC contact during pregnancy' +code "Date of first ANC visit": 'HIV.E.DE40' from "HIV_DAK_Codes" display 'Date of first ANC visit' +code "Timing of ART initiation": 'HIV.E.DE41' from "HIV_DAK_Codes" display 'Timing of ART initiation' +code "Maternal use of recommended ART regimen": 'HIV.E.DE45' from "HIV_DAK_Codes" display 'Maternal use of recommended ART regimen' +code "Delivery date": 'HIV.E.DE46' from "HIV_DAK_Codes" display 'Delivery date' +code "Pregnancy outcome": 'HIV.E.DE47' from "HIV_DAK_Codes" display 'Pregnancy outcome' +code "Delivery mode": 'HIV.E.DE52' from "HIV_DAK_Codes" display 'Delivery mode' +code "Indications for caesarian section (C/S)": 'HIV.E.DE56' from "HIV_DAK_Codes" display 'Indications for caesarian section (C/S)' +code "Obstetric complications": 'HIV.E.DE57' from "HIV_DAK_Codes" display 'Obstetric complications' +code "Live birth": 'HIV.E.DE58' from "HIV_DAK_Codes" display 'Live birth' +code "Live birth to an HIV-positive woman": 'HIV.E.DE59' from "HIV_DAK_Codes" display 'Live birth to an HIV-positive woman' +code "Gestational age at birth": 'HIV.E.DE60' from "HIV_DAK_Codes" display 'Gestational age at birth' +code "Small for gestational age (SGA)": 'HIV.E.DE61' from "HIV_DAK_Codes" display 'Small for gestational age (SGA)' +code "Preterm birth status": 'HIV.E.DE62' from "HIV_DAK_Codes" display 'Preterm birth status' +code "Maternal ART start date": 'HIV.E.DE66' from "HIV_DAK_Codes" display 'Maternal ART start date' +code "Place of delivery": 'HIV.E.DE67' from "HIV_DAK_Codes" display 'Place of delivery' +code "Delivery facility": 'HIV.E.DE72' from "HIV_DAK_Codes" display 'Delivery facility' +code "Date of miscarriage or abortion": 'HIV.E.DE73' from "HIV_DAK_Codes" display 'Date of miscarriage or abortion' +code "Date of death of mother": 'HIV.E.DE74' from "HIV_DAK_Codes" display 'Date of death of mother' +code "Cause of death of mother": 'HIV.E.DE75' from "HIV_DAK_Codes" display 'Cause of death of mother' +code "Infant's first name": 'HIV.E.DE76' from "HIV_DAK_Codes" display 'Infant first name' +code "Infant's surname": 'HIV.E.DE77' from "HIV_DAK_Codes" display 'Infant surname' +code "Infant's unique ID": 'HIV.E.DE78' from "HIV_DAK_Codes" display 'Infant unique ID' +code "Mother's first name": 'HIV.E.DE79' from "HIV_DAK_Codes" display 'Mother first name' +code "Mother's surname": 'HIV.E.DE80' from "HIV_DAK_Codes" display 'Mother surname' +code "Mother's unique ID": 'HIV.E.DE81' from "HIV_DAK_Codes" display 'Mother unique ID' +code "Caregiver's first name": 'HIV.E.DE82' from "HIV_DAK_Codes" display 'Caregiver first name' +code "Caregiver's surname": 'HIV.E.DE83' from "HIV_DAK_Codes" display 'Caregiver surname' +code "Caregiver's unique identifier": 'HIV.E.DE84' from "HIV_DAK_Codes" display 'Caregiver unique identifier' +code "ANC contact date": 'HIV.E.DE85' from "HIV_DAK_Codes" display 'ANC contact date' +code "Infant date of birth": 'HIV.E.DE87' from "HIV_DAK_Codes" display 'Infant date of birth' +code "Date of birth of infant unknown": 'HIV.E.DE88' from "HIV_DAK_Codes" display 'Date of birth of infant unknown' +code "Estimated age of infant": 'HIV.E.DE89' from "HIV_DAK_Codes" display 'Estimated age of infant' +code "Age of infant": 'HIV.E.DE90' from "HIV_DAK_Codes" display 'Age of infant' +code "Gender of infant": 'HIV.E.DE91' from "HIV_DAK_Codes" display 'Gender of infant' +code "Infant height": 'HIV.E.DE95' from "HIV_DAK_Codes" display 'Infant height' +code "Infant weight": 'HIV.E.DE96' from "HIV_DAK_Codes" display 'Infant weight' +code "Birth weight": 'HIV.E.DE97' from "HIV_DAK_Codes" display 'Birth weight' +code "Low birth weight": 'HIV.E.DE98' from "HIV_DAK_Codes" display 'Low birth weight' +code "Length of infant": 'HIV.E.DE99' from "HIV_DAK_Codes" display 'Length of infant' +code "Head circumference": 'HIV.E.DE100' from "HIV_DAK_Codes" display 'Head circumference' +code "Mother HIV test conducted": 'HIV.E.DE101' from "HIV_DAK_Codes" display 'Mother HIV test conducted' +code "Mother HIV test ordered": 'HIV.E.DE102' from "HIV_DAK_Codes" display 'Mother HIV test ordered' +code "Mother HIV test date": 'HIV.E.DE103' from "HIV_DAK_Codes" display 'Mother HIV test date' +code "Maternal HIV test result": 'HIV.E.DE104' from "HIV_DAK_Codes" display 'Maternal HIV test result' +code "Infant or child exposure to HIV": 'HIV.E.DE108' from "HIV_DAK_Codes" display 'Infant or child exposure to HIV' +code "HIV-exposed infant or child": 'HIV.E.DE112' from "HIV_DAK_Codes" display 'HIV-exposed infant or child' +code "Postpartum family planning counselling conducted": 'HIV.E.DE119' from "HIV_DAK_Codes" display 'Postpartum family planning counselling conducted' +code "Age of infant on HIV test date": 'HIV.E.DE120' from "HIV_DAK_Codes" display 'Age of infant on HIV test date' +code "ARV adherence counselling": 'HIV.E.DE121' from "HIV_DAK_Codes" display 'ARV adherence counselling' +code "Infant feeding counselling provided": 'HIV.E.DE122' from "HIV_DAK_Codes" display 'Infant feeding counselling provided' +code "Date infant feeding counselling provided": 'HIV.E.DE123' from "HIV_DAK_Codes" display 'Date infant feeding counselling provided' +code "Malaria prevention counselling conducted": 'HIV.E.DE124' from "HIV_DAK_Codes" display 'Malaria prevention counselling conducted' +code "Insecticide treated bednet (ITN) provided or referred": 'HIV.E.DE125' from "HIV_DAK_Codes" display 'Insecticide treated bednet (ITN) provided or referred' +code "Maternal syphilis treatment": 'HIV.E.DE126' from "HIV_DAK_Codes" display 'Maternal syphilis treatment' +code "Infant feeding practice": 'HIV.E.DE127' from "HIV_DAK_Codes" display 'Infant feeding practice' +code "Infant feeding practice recorded date": 'HIV.E.DE131' from "HIV_DAK_Codes" display 'Infant feeding practice recorded date' +code "Stopped breastfeeding": 'HIV.E.DE132' from "HIV_DAK_Codes" display 'Stopped breastfeeding' +code "Date stopped breastfeeding": 'HIV.E.DE133' from "HIV_DAK_Codes" display 'Date stopped breastfeeding' +code "Taking iron and folic acid (IFA) tablets": 'HIV.E.DE134' from "HIV_DAK_Codes" display 'Taking iron and folic acid (IFA) tablets' +code "Amount of iron prescribed": 'HIV.E.DE135' from "HIV_DAK_Codes" display 'Amount of iron prescribed' +code "Type of iron supplement dosage provided": 'HIV.E.DE136' from "HIV_DAK_Codes" display 'Type of iron supplement dosage provided' +code "Amount of daily dose of folic acid prescribed": 'HIV.E.DE139' from "HIV_DAK_Codes" display 'Amount of daily dose of folic acid prescribed' +code "Date infant ARV prophylaxis dispensed (or started)": 'HIV.E.DE140' from "HIV_DAK_Codes" display 'Date infant ARV prophylaxis dispensed (or started)' +code "Maternal HIV status": 'HIV.E.DE141' from "HIV_DAK_Codes" display 'Maternal HIV status' +code "Maternal HIV status at first ANC visit": 'HIV.E.DE145' from "HIV_DAK_Codes" display 'Maternal HIV status at first ANC visit' +code "Maternal syphilis test result": 'HIV.E.DE149' from "HIV_DAK_Codes" display 'Maternal syphilis test result' +code "Hypertension": 'HIV.E.DE153' from "HIV_DAK_Codes" display 'Hypertension' +code "Pre-eclampsia": 'HIV.E.DE154' from "HIV_DAK_Codes" display 'Pre-eclampsia' +code "Date woman received counselling for CPT": 'HIV.E.DE161' from "HIV_DAK_Codes" display 'Date woman received counselling for CPT' +code "Date woman received counselling for TPT": 'HIV.E.DE162' from "HIV_DAK_Codes" display 'Date woman received counselling for TPT' +code "Infant's co-trimoxazole prophylaxis start date": 'HIV.E.DE163' from "HIV_DAK_Codes" display 'Infant co-trimoxazole prophylaxis start date' +code "Infant's age when co-trimoxazole prophylaxis was started": 'HIV.E.DE164' from "HIV_DAK_Codes" display 'Infant age when co-trimoxazole prophylaxis was started' +code "Presumptive clinical diagnosis of severe HIV infection in infants": 'HIV.E.DE165' from "HIV_DAK_Codes" display 'Presumptive clinical diagnosis of severe HIV infection in infants' +code "Infant ARV prophylaxis": 'HIV.E.DE166' from "HIV_DAK_Codes" display 'Infant ARV prophylaxis' +code "Infant ARV prophylaxis start date": 'HIV.E.DE167' from "HIV_DAK_Codes" display 'Infant ARV prophylaxis start date' +code "Maternal and child health service visit": 'HIV.E.DE173' from "HIV_DAK_Codes" display 'Maternal and child health service visit' +code "Weeks postpartum": 'HIV.E.DE177' from "HIV_DAK_Codes" display 'Weeks postpartum' +code "Birth cohort": 'HIV.E.DE178' from "HIV_DAK_Codes" display 'Birth cohort' +code "Registered in birth cohort": 'HIV.E.DE179' from "HIV_DAK_Codes" display 'Registered in birth cohort' +code "EID sample number": 'HIV.E.DE180' from "HIV_DAK_Codes" display 'EID sample number' +code "EID sample 1": 'HIV.E.DE181' from "HIV_DAK_Codes" display 'EID sample 1' +code "EID sample 2": 'HIV.E.DE182' from "HIV_DAK_Codes" display 'EID sample 2' +code "EID test number": 'HIV.E.DE183' from "HIV_DAK_Codes" display 'EID test number' +code "EID test number 1": 'HIV.E.DE184' from "HIV_DAK_Codes" display 'EID test number 1' +code "EID test number 2": 'HIV.E.DE185' from "HIV_DAK_Codes" display 'EID test number 2' +code "EID test number 1 test result": 'HIV.E.DE186' from "HIV_DAK_Codes" display 'EID test number 1 test result' +code "EID test number 2 test result": 'HIV.E.DE190' from "HIV_DAK_Codes" display 'EID test number 2 test result' +code "Test result of syphilis assay 1": 'HIV.E.DE216' from "HIV_DAK_Codes" display 'Test result of syphilis assay 1' +code "Test result of syphilis assay 1 repeated": 'HIV.E.DE220' from "HIV_DAK_Codes" display 'Test result of syphilis assay 1 repeated' +code "Infant HIV status": 'HIV.E.DE225' from "HIV_DAK_Codes" display 'Infant HIV status' +code "Infant ART start date": 'HIV.E.DE229' from "HIV_DAK_Codes" display 'Infant ART start date' +code "Final diagnosis of HIV-exposed infant": 'HIV.E.DE230' from "HIV_DAK_Codes" display 'Final diagnosis of HIV-exposed infant' +code "HIV-exposed infant reason for unknown final status": 'HIV.E.DE234' from "HIV_DAK_Codes" display 'HIV-exposed infant reason for unknown final status' +code "Date of death of infant": 'HIV.E.DE239' from "HIV_DAK_Codes" display 'Date of death of infant' +code "Cause of death of infant": 'HIV.E.DE240' from "HIV_DAK_Codes" display 'Cause of death of infant' +code "Infant died within 24 hours of childbirth": 'HIV.E.DE241' from "HIV_DAK_Codes" display 'Infant died within 24 hours of childbirth' +code "Action(s) needed during infant follow-up visit": 'HIV.E.DE242' from "HIV_DAK_Codes" display 'Action(s) needed during infant follow-up visit' +code "Timing of additional infant HIV test": 'HIV.E.DE243' from "HIV_DAK_Codes" display 'Timing of additional infant HIV test' +code "Date of sample collection of additional infant HIV test": 'HIV.E.DE244' from "HIV_DAK_Codes" display 'Date of sample collection of additional infant HIV test' +code "Haemoglobin (Hb) result": 'HIV.E.DE245' from "HIV_DAK_Codes" display 'Haemoglobin (Hb) result' +code "Blood group and Rh factor": 'HIV.E.DE246' from "HIV_DAK_Codes" display 'Blood group and Rh factor' +code "Asymptomatic bacteriuria (ASB) test result": 'HIV.E.DE255' from "HIV_DAK_Codes" display 'Asymptomatic bacteriuria (ASB) test result' +code "Urine protein test result": 'HIV.E.DE259' from "HIV_DAK_Codes" display 'Urine protein test result' +code "Type of hypertensive disorder": 'HIV.E.DE264' from "HIV_DAK_Codes" display 'Type of hypertensive disorder' +code "Date of baseline CD4 count sample collection": 'HIV.G.DE4' from "HIV_DAK_Codes" display 'Date of baseline CD4 count sample collection' +code "Date of CD4 sample collection": 'HIV.G.DE6' from "HIV_DAK_Codes" display 'Date of CD4 sample collection' +code "Viral load test conducted": 'HIV.G.DE7' from "HIV_DAK_Codes" display 'Viral load test conducted' +code "Date of first viral load sample collection": 'HIV.G.DE9' from "HIV_DAK_Codes" display 'Date of first viral load sample collection' +code "Date viral load sample sent": 'HIV.G.DE10' from "HIV_DAK_Codes" display 'Date viral load sample sent' +code "First viral load test result": 'HIV.G.DE11' from "HIV_DAK_Codes" display 'First viral load test result' +code "HIV viral load specimen type": 'HIV.G.DE13' from "HIV_DAK_Codes" display 'HIV viral load specimen type' +code "Reason Hepatitis B test not conducted": 'HIV.G.DE22' from "HIV_DAK_Codes" display 'Reason Hepatitis B test not conducted' +code "Hepatitis B diagnosis": 'HIV.G.DE29' from "HIV_DAK_Codes" display 'Hepatitis B diagnosis' +code "Hepatitis C screening date": 'HIV.G.DE32' from "HIV_DAK_Codes" display 'Hepatitis C screening date' +code "Hepatitis C test conducted": 'HIV.G.DE34' from "HIV_DAK_Codes" display 'Hepatitis C test conducted' +code "Reason Hepatitis C test not done": 'HIV.G.DE35' from "HIV_DAK_Codes" display 'Reason Hepatitis C test not done' +code "Hepatitis C diagnosis": 'HIV.G.DE51' from "HIV_DAK_Codes" display 'Hepatitis C diagnosis' +code "Reason syphilis test not done": 'HIV.G.DE62' from "HIV_DAK_Codes" display 'Reason syphilis test not done' +code "Syphilis diagnosis": 'HIV.G.DE74' from "HIV_DAK_Codes" display 'Syphilis diagnosis' +code "Other tests conducted": 'HIV.G.DE77' from "HIV_DAK_Codes" display 'Other tests conducted' +code "Other test(s) name": 'HIV.G.DE78' from "HIV_DAK_Codes" display 'Other test(s) name' +code "Other test(s) date": 'HIV.G.DE79' from "HIV_DAK_Codes" display 'Other test(s) date' +code "Other test(s) result(s)": 'HIV.G.DE80' from "HIV_DAK_Codes" display 'Other test(s) result(s)' +code "Reason for follow-up": 'HIV.H.DE1' from "HIV_DAK_Codes" display 'Reason for follow-up' +code "Other follow-up reason (specify)": 'HIV.H.DE9' from "HIV_DAK_Codes" display 'Other follow-up reason (specify)' +code "Client contact attempted": 'HIV.H.DE10' from "HIV_DAK_Codes" display 'Client contact attempted' +code "Date of contact attempt": 'HIV.H.DE11' from "HIV_DAK_Codes" display 'Date of contact attempt' +code "Contact attempted by": 'HIV.H.DE12' from "HIV_DAK_Codes" display 'Contact attempted by' +code "Contact method": 'HIV.H.DE13' from "HIV_DAK_Codes" display 'Contact method' +code "Source of information": 'HIV.H.DE17' from "HIV_DAK_Codes" display 'Source of information' +code "Other source of information (specify)": 'HIV.H.DE22' from "HIV_DAK_Codes" display 'Other source of information (specify)' +code "Outcome from outreach attempt": 'HIV.H.DE23' from "HIV_DAK_Codes" display 'Outcome from outreach attempt' +code "Moved from catchment area": 'HIV.H.DE30' from "HIV_DAK_Codes" display 'Moved from catchment area' +code "Date client moved from catchment area": 'HIV.H.DE31' from "HIV_DAK_Codes" display 'Date client moved from catchment area' +code "New catchment area": 'HIV.H.DE32' from "HIV_DAK_Codes" display 'New catchment area' +code "Partner or contact of index case": 'HIV.H.DE33' from "HIV_DAK_Codes" display 'Partner or contact of index case' +code "HIV status of partner or contact": 'HIV.H.DE34' from "HIV_DAK_Codes" display 'HIV status of partner or contact' +code "Cause of death": 'HIV.H.DE39' from "HIV_DAK_Codes" display 'Cause of death' +code "Place of death": 'HIV.H.DE40' from "HIV_DAK_Codes" display 'Place of death' +code "HIV treatment outcome": 'HIV.H.DE41' from "HIV_DAK_Codes" display 'HIV treatment outcome' +code "Date patient lost to follow-up": 'HIV.H.DE46' from "HIV_DAK_Codes" display 'Date patient lost to follow-up' +code "Date HIV treatment outcome changed": 'HIV.H.DE48' from "HIV_DAK_Codes" display 'Date HIV treatment outcome changed' +code "Transfer confirmed": 'HIV.H.DE49' from "HIV_DAK_Codes" display 'Transfer confirmed' +code "Transfer to facility": 'HIV.H.DE50' from "HIV_DAK_Codes" display 'Transfer to facility' +code "Date of transfer out": 'HIV.H.DE51' from "HIV_DAK_Codes" display 'Date of transfer out' +code "Adherence assessment": 'HIV.H.DE52' from "HIV_DAK_Codes" display 'Adherence assessment' +code "Emergency referral": 'HIV.I.DE1' from "HIV_DAK_Codes" display 'Emergency referral' +code "Reason for referral": 'HIV.I.DE2' from "HIV_DAK_Codes" display 'Reason for referral' +code "Referral for other general services (specify)": 'HIV.I.DE8' from "HIV_DAK_Codes" display 'Referral for other general services (specify)' +code "Any treatment given before referral": 'HIV.I.DE9' from "HIV_DAK_Codes" display 'Any treatment given before referral' +code "Date of scheduled referral appointment": 'HIV.I.DE10' from "HIV_DAK_Codes" display 'Date of scheduled referral appointment' +code "Location of scheduled referral appointment": 'HIV.I.DE11' from "HIV_DAK_Codes" display 'Location of scheduled referral appointment' +code "Date referral was made": 'HIV.I.DE12' from "HIV_DAK_Codes" display 'Date referral was made' +code "Provider who made referral": 'HIV.I.DE13' from "HIV_DAK_Codes" display 'Provider who made referral' +code "Provider's facility": 'HIV.I.DE14' from "HIV_DAK_Codes" display 'Provider facility' +code "Provider's telephone number": 'HIV.I.DE15' from "HIV_DAK_Codes" display 'Provider telephone number' +code "Referral notes": 'HIV.I.DE16' from "HIV_DAK_Codes" display 'Referral notes' +code "Client history summary": 'HIV.I.DE17' from "HIV_DAK_Codes" display 'Client history summary' +code "HIV prevention intervention": 'HIV.PRV.DE2' from "HIV_DAK_Codes" display 'HIV prevention intervention' +code "Date accessed HIV prevention intervention": 'HIV.PRV.DE10' from "HIV_DAK_Codes" display 'Date accessed HIV prevention intervention' +code "HIV status of contact": 'HIV.PRV.DE11' from "HIV_DAK_Codes" display 'HIV status of contact' +code "Date injecting equipment provided": 'HIV.PRV.DE15' from "HIV_DAK_Codes" display 'Date injecting equipment provided' +code "Number of needles-syringes provided": 'HIV.PRV.DE16' from "HIV_DAK_Codes" display 'Number of needles-syringes provided' +code "Date OAMT initiated": 'HIV.PRV.DE17' from "HIV_DAK_Codes" display 'Date OAMT initiated' +code "Date OAMT dose received": 'HIV.PRV.DE18' from "HIV_DAK_Codes" display 'Date OAMT dose received' +code "Date OAMT take-away dose(s) dispensed": 'HIV.PRV.DE19' from "HIV_DAK_Codes" display 'Date OAMT take-away dose(s) dispensed' +code "Currently on OAMT": 'HIV.PRV.DE20' from "HIV_DAK_Codes" display 'Currently on OAMT' +code "Retained on OAMT": 'HIV.PRV.DE21' from "HIV_DAK_Codes" display 'Retained on OAMT' +code "Client being inducted on OAMT": 'HIV.PRV.DE22' from "HIV_DAK_Codes" display 'Client being inducted on OAMT' +code "Client on reducing doses of OAMT": 'HIV.PRV.DE23' from "HIV_DAK_Codes" display 'Client on reducing doses of OAMT' +code "Date first maintenance dose received": 'HIV.PRV.DE24' from "HIV_DAK_Codes" display 'Date first maintenance dose received' +code "Date of loss to follow-up or OAMT stopped": 'HIV.PRV.DE25' from "HIV_DAK_Codes" display 'Date of loss to follow-up or OAMT stopped' +code "Population prevalence of TB": 'HIV.Config.DE1' from "HIV_DAK_Codes" display 'Population prevalence of TB' +code "Population prevalence of soil-transmitted helminth infection": 'HIV.Config.DE2' from "HIV_DAK_Codes" display 'Population prevalence of soil-transmitted helminth infection' +code "Population incidence of HIV in the absence of PrEP": 'HIV.Config.DE3' from "HIV_DAK_Codes" display 'Population incidence of HIV in the absence of PrEP' +code "Population prevalence of HIV": 'HIV.Config.DE4' from "HIV_DAK_Codes" display 'Population prevalence of HIV' +code "Prevalence of pretreatment NNRTI drug resistance": 'HIV.Config.DE5' from "HIV_DAK_Codes" display 'Prevalence of pretreatment NNRTI drug resistance' +code "Malaria-endemic setting": 'HIV.Config.DE6' from "HIV_DAK_Codes" display 'Malaria-endemic setting' +code "Population prevalence of syphilis": 'HIV.Config.DE7' from "HIV_DAK_Codes" display 'Population prevalence of syphilis' +code "Population prevalence of hepatitis B": 'HIV.Config.DE8' from "HIV_DAK_Codes" display 'Population prevalence of hepatitis B' +code "Population prevalence of hepatitis C": 'HIV.Config.DE9' from "HIV_DAK_Codes" display 'Population prevalence of hepatitis C' +code "Prevalence of HIV in the catchment area": 'HIV.Config.DE10' from "HIV_DAK_Codes" display 'Prevalence of HIV in the catchment area' +code "Ultrasound available at the health facility": 'HIV.Config.DE11' from "HIV_DAK_Codes" display 'Ultrasound available at the health facility' +code "HIV burden of the setting": 'HIV.Config.DE12' from "HIV_DAK_Codes" display 'HIV burden of the setting' +code "HPV DNA testing operational at the health facility": 'HIV.Config.DE15' from "HIV_DAK_Codes" display 'HPV DNA testing operational at the health facility' +code "Routine viral load testing is available": 'HIV.Config.DE16' from "HIV_DAK_Codes" display 'Routine viral load testing is available' +code "Health facility ID": 'HIV.Config.DE17' from "HIV_DAK_Codes" display 'Health facility ID' +code "TB treating facility ID": 'HIV.Config.DE18' from "HIV_DAK_Codes" display 'TB treating facility ID' +code "Other priority populations": 'HIV.Config.DE19' from "HIV_DAK_Codes" display 'Other priority populations' +code "Reporting period end date": 'HIV.Config.DE20' from "HIV_DAK_Codes" display 'Reporting period end date' +code "Reporting period start date": 'HIV.Config.DE21' from "HIV_DAK_Codes" display 'Reporting period start date' +code "Reporting date": 'HIV.Config.DE22' from "HIV_DAK_Codes" display 'Reporting date' diff --git a/tests/data/cql/AllContactDataElements.cql b/tests/data/cql/AllContactDataElements.cql new file mode 100644 index 0000000..8ca9de9 --- /dev/null +++ b/tests/data/cql/AllContactDataElements.cql @@ -0,0 +1,7767 @@ +library AllContactDataElements + +using FHIR version '4.0.1' + +include FHIRHelpers version '4.0.1' +include FHIRCommon version '4.0.1' called FC + +include WHOCommon called WC +include AllConcepts version '0.0.1' called Cx + +context Encounter + +/* + @dataElement: HIV.A.DE1 First name + @activity: HIV ARegistration + @description: Client's first or given name +*/ +define "First name": + [Observation: Cx."First name"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.A.DE10 National health ID + @activity: HIV ARegistration + @description: National health unique identifier assigned to the client, if used in the country +*/ +define "National health ID": + [Observation: Cx."National health ID"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.A.DE11 National programme ID + @activity: HIV ARegistration + @description: National programme unique identifier assigned to the client, if used in the country +*/ +define "National programme ID": + [Observation: Cx."National programme ID"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.A.DE12 National health insurance ID + @activity: HIV ARegistration + @description: National health insurance unique identifier assigned to the client, if used in the country +*/ +define "National health insurance ID": + [Observation: Cx."National health insurance ID"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.A.DE13 Country of birth + @activity: HIV ARegistration + @description: Country where the client was born +*/ +define "Country of birth": + [Observation: Cx."Country of birth"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.A.DE14 Date of birth + @activity: HIV ARegistration + @description: The client's date of birth (DOB) if known +*/ +define "Date of birth": + [Observation: Cx."Date of birth"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.A.DE15 Date of birth unknown + @activity: HIV ARegistration + @description: Is the client's DOB is unknown? +*/ +define "Date of birth unknown": + [Observation: Cx."Date of birth unknown"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.A.DE16 Estimated age + @activity: HIV ARegistration + @description: If DOB is unknown, enter the client's estimated age. Display client's age in number of years. +*/ +define "Estimated age": + [Observation: Cx."Estimated age"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.A.DE17 Age + @activity: HIV ARegistration + @description: Calculated age (number of years) of the client based on date of birth +*/ +define "Age": + [Observation: Cx."Age"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.A.DE18 Gender* + @activity: HIV ARegistration + @description: Gender of the client* +*/ +define "Gender*": + [Observation: Cx."Gender* Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.A.DE2 Family name + @activity: HIV ARegistration + @description: Client's family name or last name +*/ +define "Family name": + [Observation: Cx."Family name"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.A.DE24 Other (specify) + @activity: HIV ARegistration + @description: Additional category (please specify) +*/ +define "Other (specify)": + [Observation: Cx."Other (specify)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.A.DE25 Sex + @activity: HIV ARegistration + @description: Sex of the client assigned at birth +*/ +define "Sex": + [Observation: Cx."Sex Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.A.DE29 Address + @activity: HIV ARegistration + @description: Client's home address or address which the client is consenting to disclose +*/ +define "Address": + [Observation: Cx."Address"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.A.DE3 Visit date + @activity: HIV ARegistration + @description: The date and time of the client's visit +*/ +define "Visit date": + [Observation: Cx."Visit date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.A.DE30 Marital Status + @activity: HIV ARegistration + @description: Client's current marital status +*/ +define "Marital Status": + [Observation: Cx."Marital Status Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.A.DE4 Referral + @activity: HIV ARegistration + @description: If client was referred for care +*/ +define "Referral": + [Observation: Cx."Referral"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.A.DE42 Telephone number + @activity: HIV ARegistration + @description: Client's telephone number (a landline or a mobile phone number) +*/ +define "Telephone number": + [Observation: Cx."Telephone number"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.A.DE43 [Administrative Area] + @activity: HIV ARegistration + @description: This should be a context-specific list of administrative areas, such as villages, districts, etc. The purpose of this data element is to allow for grouping and flagging of client data to a particular facility's catchment area. This can be input into the system by the end user OR it can be automated in the database based on the end user's attributes. +*/ +define "[Administrative Area]": + [Observation: Cx."[Administrative Area]"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.A.DE44 Communication consent + @activity: HIV ARegistration + @description: Indication that client gave consent to be contacted +*/ +define "Communication consent": + [Observation: Cx."Communication consent"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.A.DE45 Reminder messages + @activity: HIV ARegistration + @description: Whether client wants to receive text or other messages as follow-up for HIV services +*/ +define "Reminder messages": + [Observation: Cx."Reminder messages"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.A.DE46 Communication preference(s) + @activity: HIV ARegistration + @description: How the client would like to receive family planning communications +*/ +define "Communication preference(s)": + [Observation: Cx."Communication preference(s) Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.A.DE49 Client's email + @activity: HIV ARegistration + @description: Client's primary email account where the client can be contacted +*/ +define "Client's email": + [Observation: Cx."Client's email"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.A.DE5 Referred by + @activity: HIV ARegistration + @description: How the client was referred +*/ +define "Referred by": + [Observation: Cx."Referred by Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.A.DE50 Alternate contact's name + @activity: HIV ARegistration + @description: Name of an alternate contact, which could be next of kin (e.g. partner, husband, mother, sibling, etc.). The alternate contact would be used in the case of an emergency situation. +*/ +define "Alternate contact's name": + [Observation: Cx."Alternate contact's name"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.A.DE51 Alternate contact's phone number + @activity: HIV ARegistration + @description: Phone number of the alternate contact +*/ +define "Alternate contact's phone number": + [Observation: Cx."Alternate contact's phone number"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.A.DE52 Alternate contact's address + @activity: HIV ARegistration + @description: Alternate contact's home address or address which the client is consenting to disclose +*/ +define "Alternate contact's address": + [Observation: Cx."Alternate contact's address"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.A.DE53 Alternate contact relationship + @activity: HIV ARegistration + @description: The alternate contact's relationship to the client (e.g. partner, husband, mother, sibling, etc.) +*/ +define "Alternate contact relationship": + [Observation: Cx."Alternate contact relationship"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.A.DE8 Unique identifier + @activity: HIV ARegistration + @description: Unique identifier generated for new clients or a universal ID, if used in the country +*/ +define "Unique identifier": + [Observation: Cx."Unique identifier"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.A.DE9 National ID + @activity: HIV ARegistration + @description: National unique identifier assigned to the client, if used in the country +*/ +define "National ID": + [Observation: Cx."National ID"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE1 Reason for visit + @activity: HIV ARegistration + @description: Reason for HIV testing services visit +*/ +define "Reason for visit": + [Observation: Cx."Reason for visit Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE102 Test result of HIV assay 3 + @activity: HIV ARegistration + @description: The result of the third HIV assay in the testing strategy +*/ +define "Test result of HIV assay 3": + [Observation: Cx."Test result of HIV assay 3 Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE106 Test result of HIV assay 1 repeated + @activity: HIV ARegistration + @description: The result of the repeated first HIV assay in the testing strategy +*/ +define "Test result of HIV assay 1 repeated": + [Observation: Cx."Test result of HIV assay 1 repeated Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE110 HIV test date + @activity: HIV ARegistration + @description: Date of the HIV test +*/ +define "HIV test date": + [Observation: Cx."HIV test date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE111 HIV test result + @activity: HIV ARegistration + @description: The result from HIV testing after applying the testing algorithm +*/ +define "HIV test result": + [Observation: Cx."HIV test result Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE115 HIV status + @activity: HIV ARegistration + @description: HIV status reported after applying the national HIV testing algorithm. No single HIV test can provide an HIV-positive diagnosis. +*/ +define "HIV status": + [Observation: Cx."HIV status Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE119 Date positive HIV test confirmed + @activity: HIV ARegistration + @description: Date patient received positive HIV test confirmation (with written documentation) +*/ +define "Date positive HIV test confirmed": + [Observation: Cx."Date positive HIV test confirmed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE120 Site where positive HIV test confirmed + @activity: HIV ARegistration + @description: Name or identifier of health facility where HIV test was confirmed +*/ +define "Site where positive HIV test confirmed": + [Observation: Cx."Site where positive HIV test confirmed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE121 Probable route of transmission* + @activity: HIV ARegistration + @description: Probable route(s) of transmission of HIV to client +*/ +define "Probable route of transmission*": + [Observation: Cx."Probable route of transmission* Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE129 Partner HIV test conducted + @activity: HIV ARegistration + @description: If the client does not know the HIV status of the client's partner(s), offer to test and add results here +*/ +define "Partner HIV test conducted": + [Observation: Cx."Partner HIV test conducted"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE13 Contact with and (suspected) exposure to HIV + @activity: HIV ARegistration + @description: When the client is reported to have had suspected exposure to HIV +*/ +define "Contact with and (suspected) exposure to HIV": + [Observation: Cx."Contact with and (suspected) exposure to HIV"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE130 Partner HIV test ordered + @activity: HIV ARegistration + @description: An HIV test for the client's partner has been ordered +*/ +define "Partner HIV test ordered": + [Observation: Cx."Partner HIV test ordered"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE131 Partner HIV test date + @activity: HIV ARegistration + @description: Date of client's partner's HIV test +*/ +define "Partner HIV test date": + [Observation: Cx."Partner HIV test date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE132 Partner HIV test result + @activity: HIV ARegistration + @description: The HIV test result of the client's partner +*/ +define "Partner HIV test result": + [Observation: Cx."Partner HIV test result Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE136 Partner HIV status (confirmed) + @activity: HIV ARegistration + @description: The HIV status of a sexual or drug-injecting partner of the client, based on a confirmed test result +*/ +define "Partner HIV status (confirmed)": + [Observation: Cx."Partner HIV status (confirmed) Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE14 Date/time of suspected exposure to HIV + @activity: HIV ARegistration + @description: Date and time when the client had suspected exposure to HIV +*/ +define "Date/time of suspected exposure to HIV": + [Observation: Cx."Date/time of suspected exposure to HIV"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE140 Partner on ART + @activity: HIV ARegistration + @description: Partner of the client is on ART +*/ +define "Partner on ART": + [Observation: Cx."Partner on ART"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE141 Partner virally suppressed on ART + @activity: HIV ARegistration + @description: ART and virally suppression status of a partner of the client +*/ +define "Partner virally suppressed on ART": + [Observation: Cx."Partner virally suppressed on ART"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE142 Counselling provided + @activity: HIV ARegistration + @description: Whether counselling was provided to a client during the visit +*/ +define "Counselling provided": + [Observation: Cx."Counselling provided Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE149 Prevention services offered and referrals + @activity: HIV ARegistration + @description: Offer or refer to prevention services +*/ +define "Prevention services offered and referrals": + [Observation: Cx."Prevention services offered and referrals Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE15 Testing entry point + @activity: HIV ARegistration + @description: Whether testing is happening in the community or at a facility +*/ +define "Testing entry point": + [Observation: Cx."Testing entry point Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE158 Sexual and reproductive health integrated services + @activity: HIV ARegistration + @description: Offer or refer to sexual and reproductive health services +*/ +define "Sexual and reproductive health integrated services": + [Observation: Cx."Sexual and reproductive health integrated services Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE165 Offer other clinical services + @activity: HIV ARegistration + @description: Other clinical services offered or referrals given to the client +*/ +define "Offer other clinical services": + [Observation: Cx."Offer other clinical services Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE172 Other support services + @activity: HIV ARegistration + @description: Offer or refer for other support services +*/ +define "Other support services": + [Observation: Cx."Other support services Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE178 Clinical enquiry for intimate partner violence (IPV) done + @activity: HIV ARegistration + @description: Whether a clinical enquiry for intimate partner violence was conducted +*/ +define "Clinical enquiry for intimate partner violence (IPV) done": + [Observation: Cx."Clinical enquiry for intimate partner violence (IPV) done"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE179 Intimate partner violence enquiry results + @activity: HIV ARegistration + @description: Result of medical inquiry for intimate partner violence +*/ +define "Intimate partner violence enquiry results": + [Observation: Cx."Intimate partner violence enquiry results Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE18 Entry point for community-level testing + @activity: HIV ARegistration + @description: Specific point in the community where testing is happening +*/ +define "Entry point for community-level testing": + [Observation: Cx."Entry point for community-level testing Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE184 Other IPV result (specify) + @activity: HIV ARegistration + @description: Other intimate partner violence (IPV) result not described above (specify) +*/ +define "Other IPV result (specify)": + [Observation: Cx."Other IPV result (specify)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE185 Offered voluntary partner services + @activity: HIV ARegistration + @description: Whether the client was offered voluntary partner services or family services +*/ +define "Offered voluntary partner services": + [Observation: Cx."Offered voluntary partner services"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE186 Count of contacts or partners given for social network-based/partner services + @activity: HIV ARegistration + @description: The quantity of contacts or partners given by a client that accepts social network-based/partner services for follow-up +*/ +define "Count of contacts or partners given for social network-based/partner services": + [Observation: Cx."Count of contacts or partners given for social network-based/partner services"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE187 Offered social network-based/partner services + @activity: HIV ARegistration + @description: Whether the client was offered social network-based partner services +*/ +define "Offered social network-based/partner services": + [Observation: Cx."Offered social network-based/partner services"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE188 Accepted social network-based/partner services + @activity: HIV ARegistration + @description: Whether the client accepted social network-based partner services +*/ +define "Accepted social network-based/partner services": + [Observation: Cx."Accepted social network-based/partner services"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE189 Contact first name to offer social network-based/partner services + @activity: HIV ARegistration + @description: First name of each contact given by the client to offer social network-based/partner services +*/ +define "Contact first name to offer social network-based/partner services": + [Observation: Cx."Contact first name to offer social network-based/partner services"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE190 Contact last name to offer social network-based/partner services + @activity: HIV ARegistration + @description: Last or family name of each contact given by the client to offer social network-based/partner services +*/ +define "Contact last name to offer social network-based/partner services": + [Observation: Cx."Contact last name to offer social network-based/partner services"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE191 Type of follow-up appointment + @activity: HIV ARegistration + @description: Type of follow-up appointment for testing services +*/ +define "Type of follow-up appointment": + [Observation: Cx."Type of follow-up appointment Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE194 Other reason for the follow-up appointment (specify) + @activity: HIV ARegistration + @description: Other reason for the follow-up appointment (specify) +*/ +define "Other reason for the follow-up appointment (specify)": + [Observation: Cx."Other reason for the follow-up appointment (specify)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE195 Date/time of follow-up appointment + @activity: HIV ARegistration + @description: Date the patient is to return for monitoring, re-supply or any other reason +*/ +define "Date/time of follow-up appointment": + [Observation: Cx."Date/time of follow-up appointment"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE196 Recommended follow-up date + @activity: HIV ARegistration + @description: Date when follow-up is recommended based on follow up requirements +*/ +define "Recommended follow-up date": + [Observation: Cx."Recommended follow-up date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE197 VMMC procedure + @activity: HIV ARegistration + @description: Whether a voluntary medical male circumcision procedure was performed +*/ +define "VMMC procedure": + [Observation: Cx."VMMC procedure"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE198 VMMC procedure date + @activity: HIV ARegistration + @description: Date on which a voluntary medical male circumcision procedure was performed +*/ +define "VMMC procedure date": + [Observation: Cx."VMMC procedure date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE199 Adverse event reported from a VMMC + @activity: HIV ARegistration + @description: Whether an adverse event was reported associated with a voluntary medical male circumcision (VMMC) procedure +*/ +define "Adverse event reported from a VMMC": + [Observation: Cx."Adverse event reported from a VMMC"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE200 Serious adverse event + @activity: HIV ARegistration + @description: Complications from voluntary medical male circumcision (VMMC) procedure resulted in death or hospitalization within 30 days of the procedure or permanent disability +*/ +define "Serious adverse event": + [Observation: Cx."Serious adverse event"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE201 Adverse event severity + @activity: HIV ARegistration + @description: Severity of the adverse event associated with voluntary medical male circumcision (VMMC) procedure +*/ +define "Adverse event severity": + [Observation: Cx."Adverse event severity"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE202 Moderate + @activity: HIV ARegistration + @description: Severity of the adverse event associated with VMMC procedure was moderate +*/ +define "Moderate": + [Observation: Cx."Moderate"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE203 Severe + @activity: HIV ARegistration + @description: Severity of the adverse event associated with VMMC procedure was severe +*/ +define "Severe": + [Observation: Cx."Severe"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE204 Timing of adverse event + @activity: HIV ARegistration + @description: When the adverse event associated with VMMC procedure occurred +*/ +define "Timing of adverse event": + [Observation: Cx."Timing of adverse event Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE207 Type of adverse VMMC event + @activity: HIV ARegistration + @description: Type of adverse event associated with voluntary medical male circumcision (VMMC) procedure +*/ +define "Type of adverse VMMC event": + [Observation: Cx."Type of adverse VMMC event Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE22 Entry point for facility-level testing + @activity: HIV ARegistration + @description: Specific point where testing is happening at a facility +*/ +define "Entry point for facility-level testing": + [Observation: Cx."Entry point for facility-level testing Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE224 HIV retest prior to starting ART conducted + @activity: HIV ARegistration + @description: HIV retest prior to starting ART conducted +*/ +define "HIV retest prior to starting ART conducted": + [Observation: Cx."HIV retest prior to starting ART conducted"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE225 At elevated risk for HIV acquisition + @activity: HIV ARegistration + @description: Client is at elevated risk for HIV acquisition +*/ +define "At elevated risk for HIV acquisition": + [Observation: Cx."At elevated risk for HIV acquisition"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE226 Syndrome/STI diagnosed + @activity: HIV ARegistration + @description: Syndrome or STI for which client is diagnosed +*/ +define "Syndrome/STI diagnosed": + [Observation: Cx."Syndrome/STI diagnosed Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE235 Any STI syndrome diagnosed + @activity: HIV ARegistration + @description: Was the client diagnosed with any of the five STI syndromes during this visit? +*/ +define "Any STI syndrome diagnosed": + [Observation: Cx."Any STI syndrome diagnosed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE236 Date of STI test + @activity: HIV ARegistration + @description: Date on which the STI test was conducted +*/ +define "Date of STI test": + [Observation: Cx."Date of STI test"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE237 STI tested for + @activity: HIV ARegistration + @description: STI for which the client was tested +*/ +define "STI tested for": + [Observation: Cx."STI tested for Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE249 Syphilis test date + @activity: HIV ARegistration + @description: Date of syphilis test +*/ +define "Syphilis test date": + [Observation: Cx."Syphilis test date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE250 Syphilis test result + @activity: HIV ARegistration + @description: Result from syphilis test +*/ +define "Syphilis test result": + [Observation: Cx."Syphilis test result Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE254 Syphilis treatment start date + @activity: HIV ARegistration + @description: Date of initiation of syphilis treatment +*/ +define "Syphilis treatment start date": + [Observation: Cx."Syphilis treatment start date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE255 Gonorrhoea test date + @activity: HIV ARegistration + @description: Date of Gonorrhoea test +*/ +define "Gonorrhoea test date": + [Observation: Cx."Gonorrhoea test date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE256 Gonorrhoea test result + @activity: HIV ARegistration + @description: Result from Gonorrhoea test +*/ +define "Gonorrhoea test result": + [Observation: Cx."Gonorrhoea test result Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE260 Gonorrhoea treatment start date + @activity: HIV ARegistration + @description: Date of initiation of Gonorrhoea treatment +*/ +define "Gonorrhoea treatment start date": + [Observation: Cx."Gonorrhoea treatment start date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE261 Type of specimen + @activity: HIV ARegistration + @description: Type of specimen to be collected +*/ +define "Type of specimen": + [Observation: Cx."Type of specimen Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE268 Other type of specimen (specify) + @activity: HIV ARegistration + @description: Other specimen type to be collected (specify) +*/ +define "Other type of specimen (specify)": + [Observation: Cx."Other type of specimen (specify)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE269 Syphilis test type + @activity: HIV ARegistration + @description: Type of diagnostic test used for syphilis (treponema pallidum) +*/ +define "Syphilis test type": + [Observation: Cx."Syphilis test type Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE275 Other syphilis test type (specify) + @activity: HIV ARegistration + @description: Other test used (specify) +*/ +define "Other syphilis test type (specify)": + [Observation: Cx."Other syphilis test type (specify)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE276 Neisseria gonorrhoeae test type + @activity: HIV ARegistration + @description: Type of diagnostic test used for Neisseria gonorrhoeae +*/ +define "Neisseria gonorrhoeae test type": + [Observation: Cx."Neisseria gonorrhoeae test type Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE283 POC Test for Neisseria gonorrhoeae (specify) + @activity: HIV ARegistration + @description: Point-of-care (POC) test used for Neisseria gonorrhoeae (specify) +*/ +define "POC Test for Neisseria gonorrhoeae (specify)": + [Observation: Cx."POC Test for Neisseria gonorrhoeae (specify)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE284 Chlamydia trachomatis test type + @activity: HIV ARegistration + @description: Type of diagnostic test used for Chlamydia trachomatis +*/ +define "Chlamydia trachomatis test type": + [Observation: Cx."Chlamydia trachomatis test type Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE29 Currently pregnant + @activity: HIV ARegistration + @description: Client is currently pregnant +*/ +define "Currently pregnant": + [Observation: Cx."Currently pregnant"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE291 Other test for Chlamydia (specify) + @activity: HIV ARegistration + @description: Other type of test used for Chlaymdia (specify) +*/ +define "Other test for Chlamydia (specify)": + [Observation: Cx."Other test for Chlamydia (specify)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE292 POC Test type for Chlamydia test (specify) + @activity: HIV ARegistration + @description: Point-of-care (POC) test used for Chlamydia (specify) +*/ +define "POC Test type for Chlamydia test (specify)": + [Observation: Cx."POC Test type for Chlamydia test (specify)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE293 Trichomonas vaginalis test type + @activity: HIV ARegistration + @description: Type of diagnostic test used for Trichomonas vaginalis +*/ +define "Trichomonas vaginalis test type": + [Observation: Cx."Trichomonas vaginalis test type Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE30 Gestational age + @activity: HIV ARegistration + @description: Gestational age in weeks and/or days depending on the source of gestational age +*/ +define "Gestational age": + [Observation: Cx."Gestational age"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE300 POC Test type for Trichomonas vaginalis test (specify) + @activity: HIV ARegistration + @description: Point-of-care (POC) test used (specify) +*/ +define "POC Test type for Trichomonas vaginalis test (specify)": + [Observation: Cx."POC Test type for Trichomonas vaginalis test (specify)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE301 Herpes simplex virus (HSV) test type + @activity: HIV ARegistration + @description: Type of diagnostic test used for herpes simplex virus (HSV) +*/ +define "Herpes simplex virus (HSV) test type": + [Observation: Cx."Herpes simplex virus (HSV) test type Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE306 Mycoplasma genitalium test type + @activity: HIV ARegistration + @description: Type of diagnostic test used for Mycoplasma genitalium +*/ +define "Mycoplasma genitalium test type": + [Observation: Cx."Mycoplasma genitalium test type Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE31 Expected date of delivery (EDD) + @activity: HIV ARegistration + @description: Expected date of delivery based on gestational age +*/ +define "Expected date of delivery (EDD)": + [Observation: Cx."Expected date of delivery (EDD)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE311 Test type for other STI tested for (specify) + @activity: HIV ARegistration + @description: Test type used for the other specified STI +*/ +define "Test type for other STI tested for (specify)": + [Observation: Cx."Test type for other STI tested for (specify)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE312 STI test result + @activity: HIV ARegistration + @description: Result from STI test +*/ +define "STI test result": + [Observation: Cx."STI test result Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE316 Date of STI confirmatory test + @activity: HIV ARegistration + @description: Date of STI confirmatory test +*/ +define "Date of STI confirmatory test": + [Observation: Cx."Date of STI confirmatory test"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE317 Confirmatory syphilis test type + @activity: HIV ARegistration + @description: Type of test ued for confirmatory syphilis test +*/ +define "Confirmatory syphilis test type": + [Observation: Cx."Confirmatory syphilis test type Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE32 Breastfeeding + @activity: HIV ARegistration + @description: Infant is being breastfed by mother +*/ +define "Breastfeeding": + [Observation: Cx."Breastfeeding"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE324 Confirmatory test type for other STI (specify) + @activity: HIV ARegistration + @description: Confirmatory test type for other STI +*/ +define "Confirmatory test type for other STI (specify)": + [Observation: Cx."Confirmatory test type for other STI (specify)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE325 Confirmatory STI test result + @activity: HIV ARegistration + @description: Result from confirmatory STI test +*/ +define "Confirmatory STI test result": + [Observation: Cx."Confirmatory STI test result Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE329 Date STI treatment prescribed + @activity: HIV ARegistration + @description: Date STI treatment was prescribed to the client +*/ +define "Date STI treatment prescribed": + [Observation: Cx."Date STI treatment prescribed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE33 Partner HIV status (reported) + @activity: HIV ARegistration + @description: The HIV status of the client's partner. +*/ +define "Partner HIV status (reported)": + [Observation: Cx."Partner HIV status (reported) Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE330 Date STI treatment dispensed + @activity: HIV ARegistration + @description: Date STI treatment dispensed to the client +*/ +define "Date STI treatment dispensed": + [Observation: Cx."Date STI treatment dispensed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE331 STI treatment dispensed (specify) + @activity: HIV ARegistration + @description: STI treatment dispensed to the client +*/ +define "STI treatment dispensed (specify)": + [Observation: Cx."STI treatment dispensed (specify)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE37 Partner is from a key population* + @activity: HIV ARegistration + @description: Client's partner is a member of a key population, that has an increased risk of HIV +*/ +define "Partner is from a key population*": + [Observation: Cx."Partner is from a key population* Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE43 Has used an HIV self-test before (reported) + @activity: HIV ARegistration + @description: The client reported having used an HIV self-test before +*/ +define "Has used an HIV self-test before (reported)": + [Observation: Cx."Has used an HIV self-test before (reported)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE44 HIV self-test result + @activity: HIV ARegistration + @description: Results from the reported HIV self-test +*/ +define "HIV self-test result": + [Observation: Cx."HIV self-test result"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE45 Reactive + @activity: HIV ARegistration + @description: The HIV self-test was reactive +*/ +define "Reactive": + [Observation: Cx."Reactive"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE46 Non-reactive + @activity: HIV ARegistration + @description: The HIV self-test was non-reactive +*/ +define "Non-reactive": + [Observation: Cx."Non-reactive"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE47 Invalid + @activity: HIV ARegistration + @description: The HIV self-test was invalid +*/ +define "Invalid": + [Observation: Cx."Invalid"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE48 Date of HIV self-test + @activity: HIV ARegistration + @description: Date when the HIV self-test was conducted +*/ +define "Date of HIV self-test": + [Observation: Cx."Date of HIV self-test"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE49 Key population member* + @activity: HIV ARegistration + @description: Client is a member of a key population that has an increased risk of HIV +*/ +define "Key population member*": + [Observation: Cx."Key population member*"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE5 Referred through partner services + @activity: HIV ARegistration + @description: Client reported coming to the facility after receiving a provider-assisted referral or patient referral from a contact or partner +*/ +define "Referred through partner services": + [Observation: Cx."Referred through partner services Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE50 Key population member type* + @activity: HIV ARegistration + @description: The type of key population that the client is included in +*/ +define "Key population member type*": + [Observation: Cx."Key population member type* Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE56 Adolescent girl + @activity: HIV ARegistration + @description: Calculated field based on age and gender, if client is 10 years or older and under 20 years old +*/ +define "Adolescent girl": + [Observation: Cx."Adolescent girl"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE57 Young woman + @activity: HIV ARegistration + @description: Calculated field based on age and gender, if client is 20 years or older and under 25 years old +*/ +define "Young woman": + [Observation: Cx."Young woman"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE58 Orphan or vulnerable child + @activity: HIV ARegistration + @description: Client considered an orphan or vulnerable child +*/ +define "Orphan or vulnerable child": + [Observation: Cx."Orphan or vulnerable child"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE59 Informed of HIV test result + @activity: HIV ARegistration + @description: Client has been informed of their HIV test result +*/ +define "Informed of HIV test result": + [Observation: Cx."Informed of HIV test result"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE60 Date HIV test results returned + @activity: HIV ARegistration + @description: Date HIV test result returned to client +*/ +define "Date HIV test results returned": + [Observation: Cx."Date HIV test results returned"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE61 HIV exposure type* + @activity: HIV ARegistration + @description: Ways in which the client was exposed to HIV +*/ +define "HIV exposure type*": + [Observation: Cx."HIV exposure type* Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE65 Date informed of HIV-positive diagnosis + @activity: HIV ARegistration + @description: The date on which the client was diagnosed with HIV +*/ +define "Date informed of HIV-positive diagnosis": + [Observation: Cx."Date informed of HIV-positive diagnosis"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE66 HIV diagnosing facility + @activity: HIV ARegistration + @description: The facility where the client received an HIV-positive diagnosis +*/ +define "HIV diagnosing facility": + [Observation: Cx."HIV diagnosing facility"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE67 Date of first positive test indicative of HIV diagnosis + @activity: HIV ARegistration + @description: Earliest date of HIV diagnosis determined according to the national HIV testing algorithm +*/ +define "Date of first positive test indicative of HIV diagnosis": + [Observation: Cx."Date of first positive test indicative of HIV diagnosis"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE68 HIV serotype + @activity: HIV ARegistration + @description: The client's HIV serotype +*/ +define "HIV serotype": + [Observation: Cx."HIV serotype Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE71 HIV diagnosis date + @activity: HIV ARegistration + @description: Date diagnosis was returned to client +*/ +define "HIV diagnosis date": + [Observation: Cx."HIV diagnosis date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE72 ART start date + @activity: HIV ARegistration + @description: The date on which the client started or restarted antiretroviral therapy (ART) +*/ +define "ART start date": + [Observation: Cx."ART start date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE73 Age at diagnosis + @activity: HIV ARegistration + @description: The client's age (in years) when given an HIV diagnosis +*/ +define "Age at diagnosis": + [Observation: Cx."Age at diagnosis"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE74 Type of contact elicited + @activity: HIV ARegistration + @description: Client's relationship to the contact identified for voluntary partner services or family services +*/ +define "Type of contact elicited": + [Observation: Cx."Type of contact elicited Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE79 HIV test ordered + @activity: HIV ARegistration + @description: An HIV test of the client was ordered by the provider +*/ +define "HIV test ordered": + [Observation: Cx."HIV test ordered"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE8 Type of contact or partner for partner services + @activity: HIV ARegistration + @description: Client's relationship to the person that referred the client for partner services or family services +*/ +define "Type of contact or partner for partner services": + [Observation: Cx."Type of contact or partner for partner services Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE80 HIV test conducted + @activity: HIV ARegistration + @description: An HIV test was performed on the client during the visit +*/ +define "HIV test conducted": + [Observation: Cx."HIV test conducted"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE81 HIV test type + @activity: HIV ARegistration + @description: Type of HIV test +*/ +define "HIV test type": + [Observation: Cx."HIV test type Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE87 Date HIV test sent + @activity: HIV ARegistration + @description: Date HIV specimen was sent to lab +*/ +define "Date HIV test sent": + [Observation: Cx."Date HIV test sent"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE88 Assay number in testing strategy + @activity: HIV ARegistration + @description: The number of the assay (test kit) in the HIV testing strategy +*/ +define "Assay number in testing strategy": + [Observation: Cx."Assay number in testing strategy"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE89 Assay 0 + @activity: HIV ARegistration + @description: A community outreach test-for-triage or self-test which is not included in the HIV testing strategy +*/ +define "Assay 0": + [Observation: Cx."Assay 0"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE90 Assay 1 + @activity: HIV ARegistration + @description: The first test in the HIV testing strategy +*/ +define "Assay 1": + [Observation: Cx."Assay 1"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE91 Assay 2 + @activity: HIV ARegistration + @description: The second test in the HIV testing strategy +*/ +define "Assay 2": + [Observation: Cx."Assay 2"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE92 Assay 3 + @activity: HIV ARegistration + @description: The third test in the HIV testing strategy +*/ +define "Assay 3": + [Observation: Cx."Assay 3"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE93 Assay 1 repeated + @activity: HIV ARegistration + @description: The first test in the HIV testing strategy +*/ +define "Assay 1 repeated": + [Observation: Cx."Assay 1 repeated"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE94 Test result of HIV assay 1 + @activity: HIV ARegistration + @description: The result of the first HIV assay in the testing strategy +*/ +define "Test result of HIV assay 1": + [Observation: Cx."Test result of HIV assay 1 Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.B.DE98 Test result of HIV assay 2 + @activity: HIV ARegistration + @description: The result of the second HIV assay in the testing strategy +*/ +define "Test result of HIV assay 2": + [Observation: Cx."Test result of HIV assay 2 Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE1 Reason for PrEP visit + @activity: HIV ARegistration + @description: Client's reason for the prevention visit +*/ +define "Reason for PrEP visit": + [Observation: Cx."Reason for PrEP visit Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE10 Currently on PrEP + @activity: HIV ARegistration + @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. +*/ +define "Currently on PrEP": + [Observation: Cx."Currently on PrEP"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE101 Alternative third PEP drug + @activity: HIV ARegistration + @description: Alternative third drug for PEP +*/ +define "Alternative third PEP drug": + [Observation: Cx."Alternative third PEP drug Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE106 Estimated creatinine clearance + @activity: HIV ARegistration + @description: Estimated creatinine clearance of the client returned from lab in mL/min +*/ +define "Estimated creatinine clearance": + [Observation: Cx."Estimated creatinine clearance"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE107 Sex factor for estimating creatinine clearance + @activity: HIV ARegistration + @description: Value used for gender for calculating creatinine clearance if required. For transgender populations, the sex at birth is used in the Cockcroft-Gault equation if the person is not using hormone therapy; among transgender populations using hormone therapy for more than three months, the current gender can be used. +*/ +define "Sex factor for estimating creatinine clearance": + [Observation: Cx."Sex factor for estimating creatinine clearance Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE11 PrEP dosing type + @activity: HIV ARegistration + @description: Way in which pre-exposure prophylaxis (PrEP) is taken (daily or event-driven) +*/ +define "PrEP dosing type": + [Observation: Cx."PrEP dosing type Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE110 Estimated creatinine clearance (Cockcroft-Gault equation) + @activity: HIV ARegistration + @description: If the laboratory does not have the capacity to estimate creatinine clearance, the provider can use the Cockcroft–Gault equation to calculate estimated creatinine clearance based on measured serum creatinine, the client’s sex at birth, age and estimated lean body weight. +*/ +define "Estimated creatinine clearance (Cockcroft-Gault equation)": + [Observation: Cx."Estimated creatinine clearance (Cockcroft-Gault equation)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE111 Date of sample collection + @activity: HIV ARegistration + @description: Date when the specimen was collected +*/ +define "Date of sample collection": + [Observation: Cx."Date of sample collection"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE112 Contraindications to PrEP usage + @activity: HIV ARegistration + @description: Listing of contraindications to pre-exposure prophylaxis (PrEP) +*/ +define "Contraindications to PrEP usage": + [Observation: Cx."Contraindications to PrEP usage Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE119 Other allergy or contraindication to a medicine in the PrEP regimen (specify) + @activity: HIV ARegistration + @description: Client has another allergy or contraindication to a medicine in the pre-exposure prophylaxis (PrEP) regimen (specify) +*/ +define "Other allergy or contraindication to a medicine in the PrEP regimen (specify)": + [Observation: Cx."Other allergy or contraindication to a medicine in the PrEP regimen (specify)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE120 Prescribed PrEP at initial visit + @activity: HIV ARegistration + @description: Client was prescribed pre-exposure prophylaxis (PrEP) on a first visit +*/ +define "Prescribed PrEP at initial visit": + [Observation: Cx."Prescribed PrEP at initial visit"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE121 Number of days prescribed + @activity: HIV ARegistration + @description: Days of medication client has been prescribed +*/ +define "Number of days prescribed": + [Observation: Cx."Number of days prescribed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE122 PrEP regimen prescribed + @activity: HIV ARegistration + @description: HIV pre-exposure prophylaxis (PrEP) regimen prescribed +*/ +define "PrEP regimen prescribed": + [Observation: Cx."PrEP regimen prescribed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE123 Adherence counselling provided + @activity: HIV ARegistration + @description: Whether adherence counselling was provided +*/ +define "Adherence counselling provided": + [Observation: Cx."Adherence counselling provided"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE130 Linked to enrolment in care and ART initiation + @activity: HIV ARegistration + @description: Linkage made from HIV testing to enrolment in care following an HIV diagnosis +*/ +define "Linked to enrolment in care and ART initiation": + [Observation: Cx."Linked to enrolment in care and ART initiation"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE136 Date provided condoms + @activity: HIV ARegistration + @description: Date client was provided with condoms +*/ +define "Date provided condoms": + [Observation: Cx."Date provided condoms"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE137 Condoms distributed + @activity: HIV ARegistration + @description: Number of condoms given to the client, if any were distributed +*/ +define "Condoms distributed": + [Observation: Cx."Condoms distributed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE138 Condom type + @activity: HIV ARegistration + @description: Type of condom provided to client +*/ +define "Condom type": + [Observation: Cx."Condom type Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE141 HIV self-test kits accepted + @activity: HIV ARegistration + @description: Whether any HIV self-test kits were given to the client +*/ +define "HIV self-test kits accepted": + [Observation: Cx."HIV self-test kits accepted"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE142 Number of HIV self-test kits distributed + @activity: HIV ARegistration + @description: Number of HIV self-test kits distributed to the client +*/ +define "Number of HIV self-test kits distributed": + [Observation: Cx."Number of HIV self-test kits distributed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE143 HIV self-test distributed for use by + @activity: HIV ARegistration + @description: Whom the client plans to give the HIV self-test kit (self, sexual partner, social contact, etc.) +*/ +define "HIV self-test distributed for use by": + [Observation: Cx."HIV self-test distributed for use by Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE15 Other PrEP dosing type (specify) + @activity: HIV ARegistration + @description: Other PrEP dosing type (specify) +*/ +define "Other PrEP dosing type (specify)": + [Observation: Cx."Other PrEP dosing type (specify)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE156 HIV testing for partners and biological children + @activity: HIV ARegistration + @description: Offer testing for all partners and biological children of positive cases (includes partner services and index case testing), as well as partners and social contacts of people from key populations, where appropriate +*/ +define "HIV testing for partners and biological children": + [Observation: Cx."HIV testing for partners and biological children"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE16 Used event-driven PrEP for at risk exposures over the past 3 months + @activity: HIV ARegistration + @description: Client reports taking ED-PrEP for at risk exposures over a 3-month period +*/ +define "Used event-driven PrEP for at risk exposures over the past 3 months": + [Observation: Cx."Used event-driven PrEP for at risk exposures over the past 3 months"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE17 Current PrEP regimen + @activity: HIV ARegistration + @description: HIV pre-exposure prophylaxis (PrEP) regimen +*/ +define "Current PrEP regimen": + [Observation: Cx."Current PrEP regimen Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE24 Experience with PrEP + @activity: HIV ARegistration + @description: The client's experience in taking PrEP +*/ +define "Experience with PrEP": + [Observation: Cx."Experience with PrEP Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE28 PrEP start date + @activity: HIV ARegistration + @description: The date on which the client started or restarted pre-exposure prophylaxis (PrEP) +*/ +define "PrEP start date": + [Observation: Cx."PrEP start date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE29 Stopped PrEP + @activity: HIV ARegistration + @description: Client stopped taking pre-exposure prophylaxis (PrEP) +*/ +define "Stopped PrEP": + [Observation: Cx."Stopped PrEP"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE30 Date PrEP stopped + @activity: HIV ARegistration + @description: Date client stopped taking pre-exposure prophylaxis (PrEP) +*/ +define "Date PrEP stopped": + [Observation: Cx."Date PrEP stopped"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE31 PEP history + @activity: HIV ARegistration + @description: The client's history in taking post-exposure prophylaxis (PEP) for HIV prevention +*/ +define "PEP history": + [Observation: Cx."PEP history Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE34 Date(s) of past PEP use + @activity: HIV ARegistration + @description: Dates when the client previously used post-exposure prophylaxis (PEP) +*/ +define "Date(s) of past PEP use": + [Observation: Cx."Date(s) of past PEP use"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE35 Date client completes PEP course + @activity: HIV ARegistration + @description: Date client completes PEP course +*/ +define "Date client completes PEP course": + [Observation: Cx."Date client completes PEP course"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE36 Signs of substantial risk of HIV infection + @activity: HIV ARegistration + @description: Signs the client is at a substantial risk of HIV infection +*/ +define "Signs of substantial risk of HIV infection": + [Observation: Cx."Signs of substantial risk of HIV infection Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE41 Pregnancy intention in serodiscordant partnerships + @activity: HIV ARegistration + @description: Client's intention or desire in the next year to either become pregnant or prevent a future pregnancy (in serodiscordant partnerships) +*/ +define "Pregnancy intention in serodiscordant partnerships": + [Observation: Cx."Pregnancy intention in serodiscordant partnerships Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE46 Acute HIV infection symptoms + @activity: HIV ARegistration + @description: Symptoms that could suggest an acute HIV infection +*/ +define "Acute HIV infection symptoms": + [Observation: Cx."Acute HIV infection symptoms Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE55 Sex partner's HIV treatment status + @activity: HIV ARegistration + @description: Treatment adherence of client's sex partner for partners that are HIV-positive +*/ +define "Sex partner's HIV treatment status": + [Observation: Cx."Sex partner's HIV treatment status Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE61 Suitable for PrEP + @activity: HIV ARegistration + @description: The client is suitable for PrEP +*/ +define "Suitable for PrEP": + [Observation: Cx."Suitable for PrEP"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE62 Offered PrEP + @activity: HIV ARegistration + @description: After being evaluated as suitable for PrEP, the client was offered PrEP +*/ +define "Offered PrEP": + [Observation: Cx."Offered PrEP"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE63 Screenings and diagnostics for PrEP users + @activity: HIV ARegistration + @description: Listing of tests for clients on or starting pre-exposure prophylaxis (PrEP) that may be recommended or should be considered +*/ +define "Screenings and diagnostics for PrEP users": + [Observation: Cx."Screenings and diagnostics for PrEP users Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE7 3-month PrEP visit + @activity: HIV ARegistration + @description: Client is visiting for the recommended 3-month pre-exposure prophylaxis (PrEP) visit +*/ +define "3-month PrEP visit": + [Observation: Cx."3-month PrEP visit"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE71 Serum creatinine test date + @activity: HIV ARegistration + @description: Test serum creatinine to identify pre-existing renal disease (estimated creatinine clearance less than 60 ml/min) +*/ +define "Serum creatinine test date": + [Observation: Cx."Serum creatinine test date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE72 Serum creatinine test result + @activity: HIV ARegistration + @description: Test serum creatinine to identify pre-existing renal disease (estimated creatinine clearance less than 60 ml/min). +*/ +define "Serum creatinine test result": + [Observation: Cx."Serum creatinine test result"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE73 Date medications dispensed + @activity: HIV ARegistration + @description: Date the client was dispensed medications +*/ +define "Date medications dispensed": + [Observation: Cx."Date medications dispensed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE74 Date medications prescribed + @activity: HIV ARegistration + @description: Date the client was prescribed medications +*/ +define "Date medications prescribed": + [Observation: Cx."Date medications prescribed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE75 Medications prescribed + @activity: HIV ARegistration + @description: Medications the client was prescribed +*/ +define "Medications prescribed": + [Observation: Cx."Medications prescribed Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE80 PrEP product prescribed + @activity: HIV ARegistration + @description: PrEP product that the client was prescribed +*/ +define "PrEP product prescribed": + [Observation: Cx."PrEP product prescribed Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE86 Date PrEP prescribed + @activity: HIV ARegistration + @description: Date client was prescribed PrEP, including initial prescription and repeats +*/ +define "Date PrEP prescribed": + [Observation: Cx."Date PrEP prescribed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE87 Date PrEP dispensed + @activity: HIV ARegistration + @description: Date client was dispensed PrEP +*/ +define "Date PrEP dispensed": + [Observation: Cx."Date PrEP dispensed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE88 Volume of PrEP product prescribed/dispensed + @activity: HIV ARegistration + @description: Volume of PrEP product the client was prescribed or dispensed (for example, number of pills, number of devices) +*/ +define "Volume of PrEP product prescribed/dispensed": + [Observation: Cx."Volume of PrEP product prescribed/dispensed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE89 Date PEP prescribed + @activity: HIV ARegistration + @description: Date the client was prescribed PEP +*/ +define "Date PEP prescribed": + [Observation: Cx."Date PEP prescribed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE90 Date PEP course completion + @activity: HIV ARegistration + @description: Date client completes PEP course +*/ +define "Date PEP course completion": + [Observation: Cx."Date PEP course completion"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE91 Preferred PEP backbone regimen + @activity: HIV ARegistration + @description: Preferred backbone regimen for PEP +*/ +define "Preferred PEP backbone regimen": + [Observation: Cx."Preferred PEP backbone regimen Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE95 Alternative PEP backbone regimen + @activity: HIV ARegistration + @description: Alternative backbone regimen for PEP +*/ +define "Alternative PEP backbone regimen": + [Observation: Cx."Alternative PEP backbone regimen Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.C.DE99 Preferred third PEP drug + @activity: HIV ARegistration + @description: Preferred third drug for PEP +*/ +define "Preferred third PEP drug": + [Observation: Cx."Preferred third PEP drug Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.Config.DE1 Population prevalence of TB + @activity: HIV ARegistration + @description: The tuberculosis prevalence in the general population in number of cases per 100 000 persons or greater. +*/ +define "Population prevalence of TB": + [Observation: Cx."Population prevalence of TB"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.Config.DE10 Prevalence of HIV in the catchment area + @activity: HIV ARegistration + @description: The proportion of the population from the health facility's catchment area that are HIV-positive (estimated) +*/ +define "Prevalence of HIV in the catchment area": + [Observation: Cx."Prevalence of HIV in the catchment area"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.Config.DE11 Ultrasound available at the health facility + @activity: HIV ARegistration + @description: Whether an ultrasound machine is available and functional in the facility and a trained health worker is available to use it +*/ +define "Ultrasound available at the health facility": + [Observation: Cx."Ultrasound available at the health facility"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.Config.DE12 HIV burden of the setting + @activity: HIV ARegistration + @description: 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 +*/ +define "HIV burden of the setting": + [Observation: Cx."HIV burden of the setting Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.Config.DE15 HPV DNA testing operational at the health facility + @activity: HIV ARegistration + @description: Is HPV DNA testing operational at the health facility for cervical cancer screening? +*/ +define "HPV DNA testing operational at the health facility": + [Observation: Cx."HPV DNA testing operational at the health facility"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.Config.DE16 Routine viral load testing is available + @activity: HIV ARegistration + @description: Routine viral load testing is available in the facility +*/ +define "Routine viral load testing is available": + [Observation: Cx."Routine viral load testing is available"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.Config.DE17 Health facility ID + @activity: HIV ARegistration + @description: Unique ID of the health facility that recorded the client. This ID could represent a universal health facility ID, if used in the country. Alternatively this ID can also be generated by the national surveillance system and assigned to reporting facility. +*/ +define "Health facility ID": + [Observation: Cx."Health facility ID"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.Config.DE18 TB treating facility ID + @activity: HIV ARegistration + @description: The facility where the client is receiving tuberculosis (TB) treatment +*/ +define "TB treating facility ID": + [Observation: Cx."TB treating facility ID"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.Config.DE19 Other priority populations + @activity: HIV ARegistration + @description: Other populations of priority of HIV prevention and care in local context (provided during adaptation) +*/ +define "Other priority populations": + [Observation: Cx."Other priority populations"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.Config.DE2 Population prevalence of soil-transmitted helminth infection + @activity: HIV ARegistration + @description: The percentage of individuals in the general population infected with at least one species of soil-transmitted helminths +*/ +define "Population prevalence of soil-transmitted helminth infection": + [Observation: Cx."Population prevalence of soil-transmitted helminth infection"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.Config.DE20 Reporting period end date + @activity: HIV ARegistration + @description: End date of the reporting period +*/ +define "Reporting period end date": + [Observation: Cx."Reporting period end date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.Config.DE21 Reporting period start date + @activity: HIV ARegistration + @description: Start date of the reporting period +*/ +define "Reporting period start date": + [Observation: Cx."Reporting period start date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.Config.DE22 Reporting date + @activity: HIV ARegistration + @description: Reporting date, for surveys performed on a specific date +*/ +define "Reporting date": + [Observation: Cx."Reporting date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.Config.DE3 Population incidence of HIV in the absence of PrEP + @activity: HIV ARegistration + @description: HIV incidence number of cases per 100 person–years in the absence of PrEP +*/ +define "Population incidence of HIV in the absence of PrEP": + [Observation: Cx."Population incidence of HIV in the absence of PrEP"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.Config.DE4 Population prevalence of HIV + @activity: HIV ARegistration + @description: The proportion of the population that are HIV-positive +*/ +define "Population prevalence of HIV": + [Observation: Cx."Population prevalence of HIV"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.Config.DE5 Prevalence of pretreatment NNRTI drug resistance + @activity: HIV ARegistration + @description: Prevalence of pretreatment HIV drug resistance to NNRTIs among people initiating first-line ART +*/ +define "Prevalence of pretreatment NNRTI drug resistance": + [Observation: Cx."Prevalence of pretreatment NNRTI drug resistance"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.Config.DE6 Malaria-endemic setting + @activity: HIV ARegistration + @description: Whether the setting is a malaria-endemic setting +*/ +define "Malaria-endemic setting": + [Observation: Cx."Malaria-endemic setting"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.Config.DE7 Population prevalence of syphilis + @activity: HIV ARegistration + @description: The proportion of the population with syphilis +*/ +define "Population prevalence of syphilis": + [Observation: Cx."Population prevalence of syphilis"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.Config.DE8 Population prevalence of hepatitis B + @activity: HIV ARegistration + @description: The proportion of hepatitis B surface antigen (HBsAg) seroprevalence in the general population +*/ +define "Population prevalence of hepatitis B": + [Observation: Cx."Population prevalence of hepatitis B"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.Config.DE9 Population prevalence of hepatitis C + @activity: HIV ARegistration + @description: The proportion of hepatitis C virus (HCV) antibody seroprevalence in the general population +*/ +define "Population prevalence of hepatitis C": + [Observation: Cx."Population prevalence of hepatitis C"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE10 Respiratory rate + @activity: HIV ARegistration + @description: The number of breaths per minute +*/ +define "Respiratory rate": + [Observation: Cx."Respiratory rate"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE1000 TB treatment started + @activity: HIV ARegistration + @description: Indicates if TB treatment was started +*/ +define "TB treatment started": + [Observation: Cx."TB treatment started"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE1001 TB treatment start date + @activity: HIV ARegistration + @description: The date on which the client start or restarted tuberculosis (TB) treatment +*/ +define "TB treatment start date": + [Observation: Cx."TB treatment start date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE1002 TB treatment outcome + @activity: HIV ARegistration + @description: Indicates patient's TB treatment outcome +*/ +define "TB treatment outcome": + [Observation: Cx."TB treatment outcome Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE1009 TB treatment completion date + @activity: HIV ARegistration + @description: Date client completes TB treatment +*/ +define "TB treatment completion date": + [Observation: Cx."TB treatment completion date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE1010 TB treatment regimen composition + @activity: HIV ARegistration + @description: TB drugs currently being taken by the client +*/ +define "TB treatment regimen composition": + [Observation: Cx."TB treatment regimen composition Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE1017 Eligible for TB preventive treatment + @activity: HIV ARegistration + @description: Client is eligible for tuberculosis preventive treatment (TPT) +*/ +define "Eligible for TB preventive treatment": + [Observation: Cx."Eligible for TB preventive treatment"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE1018 Date when eligibility for TB preventive treatment (TPT) was determined + @activity: HIV ARegistration + @description: Date when a determination of the client's eligibility for TPT was made +*/ +define "Date when eligibility for TB preventive treatment (TPT) was determined": + [Observation: Cx."Date when eligibility for TB preventive treatment (TPT) was determined"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE1019 TB status at ART start + @activity: HIV ARegistration + @description: Client's tuberculosis (TB) status when antiretroviral therapy (ART) is started +*/ +define "TB status at ART start": + [Observation: Cx."TB status at ART start Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE1023 TB prevention services accepted + @activity: HIV ARegistration + @description: Indicates if the client accepts to be evaluated for TB infection and to take the treatment in case he/she is eligible +*/ +define "TB prevention services accepted": + [Observation: Cx."TB prevention services accepted"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE1024 TB meningitis + @activity: HIV ARegistration + @description: Type of extrapulmonary TB identified for the client is TB meningitis +*/ +define "TB meningitis": + [Observation: Cx."TB meningitis"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE1025 C reactive protein test date + @activity: HIV ARegistration + @description: The date on which the client has a test for C reactive protein +*/ +define "C reactive protein test date": + [Observation: Cx."C reactive protein test date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE1026 C reactive protein test result + @activity: HIV ARegistration + @description: Test result of the client's C reactive protein test result in mg/L +*/ +define "C reactive protein test result": + [Observation: Cx."C reactive protein test result"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE1027 C reactive protein test result date + @activity: HIV ARegistration + @description: The date when the client's test result for C reactive protein is available +*/ +define "C reactive protein test result date": + [Observation: Cx."C reactive protein test result date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE1028 TPT regimen type + @activity: HIV ARegistration + @description: Type of TPT regimen the client is currently on +*/ +define "TPT regimen type": + [Observation: Cx."TPT regimen type Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE1034 TB preventive treatment (TPT) status + @activity: HIV ARegistration + @description: Indicates the current status of TB preventive treatment (TPT) +*/ +define "TB preventive treatment (TPT) status": + [Observation: Cx."TB preventive treatment (TPT) status Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE11 Heart rate + @activity: HIV ARegistration + @description: The number of heartbeats per minute +*/ +define "Heart rate": + [Observation: Cx."Heart rate"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE12 Body height + @activity: HIV ARegistration + @description: The client's height in centimetres +*/ +define "Body height": + [Observation: Cx."Body height"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE128 ART regimen composition + @activity: HIV ARegistration + @description: Drug composition of client's current ART regimen +*/ +define "ART regimen composition": + [Observation: Cx."ART regimen composition Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE13 Body weight + @activity: HIV ARegistration + @description: The client's current weight in kilograms +*/ +define "Body weight": + [Observation: Cx."Body weight"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE14 Systolic blood pressure + @activity: HIV ARegistration + @description: Systolic blood pressure (SBP) in mmHg +*/ +define "Systolic blood pressure": + [Observation: Cx."Systolic blood pressure"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE146 ART regimen drug class + @activity: HIV ARegistration + @description: Drug class of current ART regimen +*/ +define "ART regimen drug class": + [Observation: Cx."ART regimen drug class Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE15 Diastolic blood pressure + @activity: HIV ARegistration + @description: Diastolic blood pressure (DBP) in mmHg +*/ +define "Diastolic blood pressure": + [Observation: Cx."Diastolic blood pressure"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE16 Blood pressure cannot be taken + @activity: HIV ARegistration + @description: If the client's blood pressure cannot be taken, this should be indicated here. Otherwise, blood pressure should be measured. +*/ +define "Blood pressure cannot be taken": + [Observation: Cx."Blood pressure cannot be taken"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE161 HBsAg test date + @activity: HIV ARegistration + @description: Date client was tested for hepatitis B virus (HBV) +*/ +define "HBsAg test date": + [Observation: Cx."HBsAg test date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE162 HBsAg test result + @activity: HIV ARegistration + @description: Hepatitis B virus test result (HBsAg) +*/ +define "HBsAg test result": + [Observation: Cx."HBsAg test result Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE166 Date HBV test result returned to client + @activity: HIV ARegistration + @description: Date HBV test result (HBsAG) was returned to client +*/ +define "Date HBV test result returned to client": + [Observation: Cx."Date HBV test result returned to client"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE167 HBV treatment (TDF) start date + @activity: HIV ARegistration + @description: Date when client started treatment (TDF) for hepatitis B virus (HBV) +*/ +define "HBV treatment (TDF) start date": + [Observation: Cx."HBV treatment (TDF) start date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE168 HBV treatment regimen prescribed + @activity: HIV ARegistration + @description: Hepatitis B virus treatment regimen prescribed +*/ +define "HBV treatment regimen prescribed": + [Observation: Cx."HBV treatment regimen prescribed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE169 HCV test date + @activity: HIV ARegistration + @description: Date client was tested for hepatitis C virus (HCV antibody, HCV RNA or HCV core antigen) +*/ +define "HCV test date": + [Observation: Cx."HCV test date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE17 Signs of serious illness + @activity: HIV ARegistration + @description: Signs that may indicate the client has a serious illness and needs triage or an emergency referral +*/ +define "Signs of serious illness": + [Observation: Cx."Signs of serious illness Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE170 HCV test result + @activity: HIV ARegistration + @description: Hepatitis C virus test result (HCV antibody, HCV RNA or HCV core antigen) +*/ +define "HCV test result": + [Observation: Cx."HCV test result Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE174 Date HCV test result returned to client + @activity: HIV ARegistration + @description: Date HCV test result was returned to client +*/ +define "Date HCV test result returned to client": + [Observation: Cx."Date HCV test result returned to client"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE175 HCV treatment start date + @activity: HIV ARegistration + @description: Date when client started treatment for hepatitis C virus (HCV) +*/ +define "HCV treatment start date": + [Observation: Cx."HCV treatment start date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE176 HCV treatment completion date + @activity: HIV ARegistration + @description: Date when client completed treatment for hepatitis C virus (HCV) +*/ +define "HCV treatment completion date": + [Observation: Cx."HCV treatment completion date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE177 HCV treatment regimen prescribed + @activity: HIV ARegistration + @description: Hepatitis C virus treatment regimen prescribed +*/ +define "HCV treatment regimen prescribed": + [Observation: Cx."HCV treatment regimen prescribed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE178 HCV viral load test date + @activity: HIV ARegistration + @description: Hepatitis C viral load test date +*/ +define "HCV viral load test date": + [Observation: Cx."HCV viral load test date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE179 HCV viral load test result + @activity: HIV ARegistration + @description: Hepatitis C viral load test result (qualitative) +*/ +define "HCV viral load test result": + [Observation: Cx."HCV viral load test result Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE182 HCV medicine type + @activity: HIV ARegistration + @description: Type of medicine client is prescribed +*/ +define "HCV medicine type": + [Observation: Cx."HCV medicine type Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE185 Currently on TDF-based ART + @activity: HIV ARegistration + @description: Client is currently on TDF-based ART regimen +*/ +define "Currently on TDF-based ART": + [Observation: Cx."Currently on TDF-based ART"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE186 HIV clinical stage + @activity: HIV ARegistration + @description: WHO clinical stage of client based on signs and symptoms. WHO clinical staging is a way to categorize HIV disease severity based on new or recurrent clinical events. There are 4 WHO clinical stages that range from mild symptoms (WHO clinical stage 1) to severe symptoms (WHO clinical stage 4). +*/ +define "HIV clinical stage": + [Observation: Cx."HIV clinical stage Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE191 Number of missed doses + @activity: HIV ARegistration + @description: Number of doses of antiretroviral therapy (ART) the client missed since the last visit, used for monitoring adherence +*/ +define "Number of missed doses": + [Observation: Cx."Number of missed doses"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE192 Received viral load test result + @activity: HIV ARegistration + @description: Client received results from viral load test +*/ +define "Received viral load test result": + [Observation: Cx."Received viral load test result"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE193 Date viral load test results received by client + @activity: HIV ARegistration + @description: The date on which the client received results from viral load test +*/ +define "Date viral load test results received by client": + [Observation: Cx."Date viral load test results received by client"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE194 Date of viral load sample collection + @activity: HIV ARegistration + @description: Date and time when the sample was collected to test the client's HIV viral load +*/ +define "Date of viral load sample collection": + [Observation: Cx."Date of viral load sample collection"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE195 Date of scheduled review of viral load test results + @activity: HIV ARegistration + @description: Expected date when client's viral load test results will be returned and reviewed +*/ +define "Date of scheduled review of viral load test results": + [Observation: Cx."Date of scheduled review of viral load test results"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE196 Date of ART interruption + @activity: HIV ARegistration + @description: Date of client's ART interruption (ART stop or missed drug pick-up) +*/ +define "Date of ART interruption": + [Observation: Cx."Date of ART interruption"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE197 Reason(s) for adherence problem + @activity: HIV ARegistration + @description: Reason why client was not adherent +*/ +define "Reason(s) for adherence problem": + [Observation: Cx."Reason(s) for adherence problem Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE216 Other reason for nonadherence (specify) + @activity: HIV ARegistration + @description: Client reported not being adherent because of other reason for nonadherence (specify) +*/ +define "Other reason for nonadherence (specify)": + [Observation: Cx."Other reason for nonadherence (specify)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE217 Reason ART stopped + @activity: HIV ARegistration + @description: Reason client intentionally stopped ART +*/ +define "Reason ART stopped": + [Observation: Cx."Reason ART stopped Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE224 Other reason for stopping ART (specify) + @activity: HIV ARegistration + @description: Client stopped ART because of other reason (specify) +*/ +define "Other reason for stopping ART (specify)": + [Observation: Cx."Other reason for stopping ART (specify)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE225 Treatment failure + @activity: HIV ARegistration + @description: ART treatment failure +*/ +define "Treatment failure": + [Observation: Cx."Treatment failure Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE229 General care activities recommended + @activity: HIV ARegistration + @description: General care activities to be performed during the care visit +*/ +define "General care activities recommended": + [Observation: Cx."General care activities recommended Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE247 Preventing and treating coinfections + @activity: HIV ARegistration + @description: Coinfection prevention and treatment activities performed during the care visit +*/ +define "Preventing and treating coinfections": + [Observation: Cx."Preventing and treating coinfections Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE259 Risk factors, comorbidities and coinfections signs and symptoms + @activity: HIV ARegistration + @description: Signs and symptoms of opportunistic infections or other comorbidities experienced by client +*/ +define "Risk factors, comorbidities and coinfections signs and symptoms": + [Observation: Cx."Risk factors, comorbidities and coinfections signs and symptoms Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE289 WHO HIV clinical stage condition or symptom + @activity: HIV ARegistration + @description: New or recurrent clinical events used to categorize HIV disease severity based at baseline and follow up +*/ +define "WHO HIV clinical stage condition or symptom": + [Observation: Cx."WHO HIV clinical stage condition or symptom Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE30 Other sign of serious illness (specify) + @activity: HIV ARegistration + @description: Client is exhibiting another sign of a serious illness (specify) +*/ +define "Other sign of serious illness (specify)": + [Observation: Cx."Other sign of serious illness (specify)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE33 Number of pregnancies (gravida) + @activity: HIV ARegistration + @description: Total number of times the woman has been pregnant (gravida) +*/ +define "Number of pregnancies (gravida)": + [Observation: Cx."Number of pregnancies (gravida)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE34 Number of miscarriages and/or abortions + @activity: HIV ARegistration + @description: Total number of pregnancies lost/ended due to miscarriages and/or abortions before 22 weeks/5 months +*/ +define "Number of miscarriages and/or abortions": + [Observation: Cx."Number of miscarriages and/or abortions"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE35 Number of live births + @activity: HIV ARegistration + @description: Total number of live births after 22 weeks +*/ +define "Number of live births": + [Observation: Cx."Number of live births"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE358 Clinical stage at start of ART + @activity: HIV ARegistration + @description: WHO clinical stage of client based on signs and symptoms at start of ART +*/ +define "Clinical stage at start of ART": + [Observation: Cx."Clinical stage at start of ART Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE36 Parity + @activity: HIV ARegistration + @description: Calculated parity is the total number of live and stillbirths +*/ +define "Parity": + [Observation: Cx."Parity"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE363 Date of clinical status change + @activity: HIV ARegistration + @description: Date on which the client's WHO HIV clinical stage changed, including the date when the client's stage is first determined +*/ +define "Date of clinical status change": + [Observation: Cx."Date of clinical status change"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE364 CD4 count + @activity: HIV ARegistration + @description: CD4 cell count in cells/mm^3 +*/ +define "CD4 count": + [Observation: Cx."CD4 count"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE365 CD4 cell percentage + @activity: HIV ARegistration + @description: CD4 cell percentage +*/ +define "CD4 cell percentage": + [Observation: Cx."CD4 cell percentage"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE366 Date of CD4 count test + @activity: HIV ARegistration + @description: Date and time when CD4 count test was conducted +*/ +define "Date of CD4 count test": + [Observation: Cx."Date of CD4 count test"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE367 Baseline CD4 count + @activity: HIV ARegistration + @description: CD4 count performed at HIV diagnosis +*/ +define "Baseline CD4 count": + [Observation: Cx."Baseline CD4 count"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE368 Date of baseline CD4 count test + @activity: HIV ARegistration + @description: Date and time when baseline CD4 count test was conducted +*/ +define "Date of baseline CD4 count test": + [Observation: Cx."Date of baseline CD4 count test"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE369 Late ART initiation + @activity: HIV ARegistration + @description: Client had late ART initiation. That is, the client's first CD4 count from baseline CD4 test performed (such as at HIV diagnosis) was a count of <200 cells/mm3 +*/ +define "Late ART initiation": + [Observation: Cx."Late ART initiation"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE37 Serodiscordant partner + @activity: HIV ARegistration + @description: Client's HIV status is different from a current partner's HIV status +*/ +define "Serodiscordant partner": + [Observation: Cx."Serodiscordant partner"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE370 Reasons for delayed ART initiation + @activity: HIV ARegistration + @description: Reason why ART was not initiated at diagnosis or within 7 days of diagnosis +*/ +define "Reasons for delayed ART initiation": + [Observation: Cx."Reasons for delayed ART initiation Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE38 On ART + @activity: HIV ARegistration + @description: Client is currently taking ART +*/ +define "On ART": + [Observation: Cx."On ART"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE382 ART initiated within 7 days of diagnosis + @activity: HIV ARegistration + @description: Client initiated ART within 7 days of diagnosis +*/ +define "ART initiated within 7 days of diagnosis": + [Observation: Cx."ART initiated within 7 days of diagnosis"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE383 Time to start ART + @activity: HIV ARegistration + @description: Time from HIV diagnosis to when client started ART +*/ +define "Time to start ART": + [Observation: Cx."Time to start ART Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE387 Viral load test result + @activity: HIV ARegistration + @description: Result from the viral load test in number of copies/mL +*/ +define "Viral load test result": + [Observation: Cx."Viral load test result"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE388 Virally suppressed + @activity: HIV ARegistration + @description: The client is virally suppressed for HIV, based on the client's most recent viral load test result being less than 1000 copies/mL +*/ +define "Virally suppressed": + [Observation: Cx."Virally suppressed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE389 Date viral load test results received + @activity: HIV ARegistration + @description: Date the viral load test result was received from the lab or completed in the facility +*/ +define "Date viral load test results received": + [Observation: Cx."Date viral load test results received"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE390 Viral load suppression date + @activity: HIV ARegistration + @description: Date on which the client tested as becoming virally suppressed, as indicated by a viral load test result under 1000 copies/mL +*/ +define "Viral load suppression date": + [Observation: Cx."Viral load suppression date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE391 Reason for HIV viral load test + @activity: HIV ARegistration + @description: Whether the viral load is being tested for routine monitoring on a set schedule or for targeted monitoring for suspected treatment failure +*/ +define "Reason for HIV viral load test": + [Observation: Cx."Reason for HIV viral load test Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE396 Hepatitis B test required + @activity: HIV ARegistration + @description: Hepatitis B test is required +*/ +define "Hepatitis B test required": + [Observation: Cx."Hepatitis B test required"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE397 Hepatitis C test recommended + @activity: HIV ARegistration + @description: Hepatitis C test is recommended or should be considered +*/ +define "Hepatitis C test recommended": + [Observation: Cx."Hepatitis C test recommended"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE398 Syphilis test required + @activity: HIV ARegistration + @description: Syphilis test is required +*/ +define "Syphilis test required": + [Observation: Cx."Syphilis test required"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE399 Monitoring examinations + @activity: HIV ARegistration + @description: Name of examinations, test and results for any relevant investigations carried out for client +*/ +define "Monitoring examinations": + [Observation: Cx."Monitoring examinations Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE40 Stopped ART + @activity: HIV ARegistration + @description: Client stopped taking ART +*/ +define "Stopped ART": + [Observation: Cx."Stopped ART"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE41 Date ART stopped + @activity: HIV ARegistration + @description: Date on which client stopped ART +*/ +define "Date ART stopped": + [Observation: Cx."Date ART stopped"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE413 Date of scheduled monitoring examination + @activity: HIV ARegistration + @description: Date of scheduled monitoring examination +*/ +define "Date of scheduled monitoring examination": + [Observation: Cx."Date of scheduled monitoring examination"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE414 Hepatitis C test ordered + @activity: HIV ARegistration + @description: Hepatitis C test has been ordered +*/ +define "Hepatitis C test ordered": + [Observation: Cx."Hepatitis C test ordered"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE415 Syphilis test ordered + @activity: HIV ARegistration + @description: Syphilis test has been ordered +*/ +define "Syphilis test ordered": + [Observation: Cx."Syphilis test ordered"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE416 Received viral load test results + @activity: HIV ARegistration + @description: Client received results from viral load test +*/ +define "Received viral load test results": + [Observation: Cx."Received viral load test results"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE418 Reason for ARV drug regimen substitution + @activity: HIV ARegistration + @description: Reason why a substitution was made to the antiretroviral (ARV) drug regimen +*/ +define "Reason for ARV drug regimen substitution": + [Observation: Cx."Reason for ARV drug regimen substitution Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE42 Established on ART + @activity: HIV ARegistration + @description: Is the client successfully established on ART? +*/ +define "Established on ART": + [Observation: Cx."Established on ART"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE426 Other reason for regimen substitution (specify) + @activity: HIV ARegistration + @description: A substitution was made for another reason (specify) +*/ +define "Other reason for regimen substitution (specify)": + [Observation: Cx."Other reason for regimen substitution (specify)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE427 Switch to second-line ART regimen recommended + @activity: HIV ARegistration + @description: A switch to second-line ART regimen is recommended +*/ +define "Switch to second-line ART regimen recommended": + [Observation: Cx."Switch to second-line ART regimen recommended"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE428 Switch to third-line ART regimen recommended + @activity: HIV ARegistration + @description: A switch to third-line ART regimen is recommended +*/ +define "Switch to third-line ART regimen recommended": + [Observation: Cx."Switch to third-line ART regimen recommended"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE429 Regimen switch made + @activity: HIV ARegistration + @description: Provider has made a regimen switch +*/ +define "Regimen switch made": + [Observation: Cx."Regimen switch made"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE43 ART start type + @activity: HIV ARegistration + @description: Whether the client is ART naive or is restarting ART +*/ +define "ART start type": + [Observation: Cx."ART start type Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE430 Reason for regimen switch + @activity: HIV ARegistration + @description: Reason why a switch to a second- or third-line regimen was made +*/ +define "Reason for regimen switch": + [Observation: Cx."Reason for regimen switch Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE436 Regimen substitution recommended + @activity: HIV ARegistration + @description: A drug substitution is recommended +*/ +define "Regimen substitution recommended": + [Observation: Cx."Regimen substitution recommended"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE437 Dose adjustment recommended + @activity: HIV ARegistration + @description: A dosage change is recommended +*/ +define "Dose adjustment recommended": + [Observation: Cx."Dose adjustment recommended"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE438 Regimen substitution made + @activity: HIV ARegistration + @description: Provider has made a regimen substitution +*/ +define "Regimen substitution made": + [Observation: Cx."Regimen substitution made"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE439 Co-trimoxazole prophylaxis start date + @activity: HIV ARegistration + @description: Date co-trimoxazole prophylaxis prescribed to client +*/ +define "Co-trimoxazole prophylaxis start date": + [Observation: Cx."Co-trimoxazole prophylaxis start date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE440 Co-trimoxazole prophylaxis completion date + @activity: HIV ARegistration + @description: Completion date of co-trimoxazole prophylaxis prescribed to client +*/ +define "Co-trimoxazole prophylaxis completion date": + [Observation: Cx."Co-trimoxazole prophylaxis completion date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE441 Co-trimoxazole prophylaxis dosage + @activity: HIV ARegistration + @description: Dose of co-trimoxazole prophylaxis prescribed to client +*/ +define "Co-trimoxazole prophylaxis dosage": + [Observation: Cx."Co-trimoxazole prophylaxis dosage"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE442 Co-trimoxazole prophylaxis number of days prescribed + @activity: HIV ARegistration + @description: Number of days of co-trimoxazole prophylaxis prescribed to client +*/ +define "Co-trimoxazole prophylaxis number of days prescribed": + [Observation: Cx."Co-trimoxazole prophylaxis number of days prescribed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE443 Suspicion of treatment failure or interruption + @activity: HIV ARegistration + @description: Client has been on ART, but has stopped taking it or a treatment failure is suspected +*/ +define "Suspicion of treatment failure or interruption": + [Observation: Cx."Suspicion of treatment failure or interruption"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE444 ART regimen prescribed + @activity: HIV ARegistration + @description: INCLUDE VALUE SETS OF REGIMENS +*/ +define "ART regimen prescribed": + [Observation: Cx."ART regimen prescribed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE445 Antiretroviral toxicity + @activity: HIV ARegistration + @description: Client is experiencing antiretroviral drug (ARV) toxicity +*/ +define "Antiretroviral toxicity": + [Observation: Cx."Antiretroviral toxicity"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE446 Coinfection status at ART start + @activity: HIV ARegistration + @description: Clients status of coinfections at the time when ART was initiated +*/ +define "Coinfection status at ART start": + [Observation: Cx."Coinfection status at ART start Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE449 Pregnant and breastfeeding status at ART start + @activity: HIV ARegistration + @description: ART status of women to prevent mother-to-child transmission +*/ +define "Pregnant and breastfeeding status at ART start": + [Observation: Cx."Pregnant and breastfeeding status at ART start Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE454 Delivery date of infant + @activity: HIV ARegistration + @description: Date of delivery/birth of infant if breastfeeding at ART start +*/ +define "Delivery date of infant": + [Observation: Cx."Delivery date of infant"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE455 Serodiscordant partner at ART start + @activity: HIV ARegistration + @description: Client living with HIV was in an ongoing sexual relationship with an HIV-negative partner when ART was started +*/ +define "Serodiscordant partner at ART start": + [Observation: Cx."Serodiscordant partner at ART start"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE456 Regimen start date + @activity: HIV ARegistration + @description: The date on which the client started taking the current ART regimen +*/ +define "Regimen start date": + [Observation: Cx."Regimen start date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE459 Dose of medications prescribed + @activity: HIV ARegistration + @description: Number of doses (quantity taken at a single point in time) of drugs prescribed/dispensed +*/ +define "Dose of medications prescribed": + [Observation: Cx."Dose of medications prescribed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE46 Date of initiation on ART + @activity: HIV ARegistration + @description: The date on which the client was first initiated on ART +*/ +define "Date of initiation on ART": + [Observation: Cx."Date of initiation on ART"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE460 Number of days medications prescribed + @activity: HIV ARegistration + @description: Number of days supply of each medication or regimen prescribed during the visit +*/ +define "Number of days medications prescribed": + [Observation: Cx."Number of days medications prescribed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE461 Medications dispensed + @activity: HIV ARegistration + @description: Any other medications that were dispensed to client, including preventive treatment +*/ +define "Medications dispensed": + [Observation: Cx."Medications dispensed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE462 Number of days of medications dispensed + @activity: HIV ARegistration + @description: Number of days supply of each medication or regimen dispensed during the visit +*/ +define "Number of days of medications dispensed": + [Observation: Cx."Number of days of medications dispensed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE463 Dosage + @activity: HIV ARegistration + @description: Prescribed dosage of the medication +*/ +define "Dosage": + [Observation: Cx."Dosage"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE464 Frequency + @activity: HIV ARegistration + @description: Prescribed frequency for taking the medication +*/ +define "Frequency": + [Observation: Cx."Frequency"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE466 Type of treatment-limiting toxicity + @activity: HIV ARegistration + @description: Type of treatment-limiting toxicity experienced by client. Treatment-limiting toxicity is defined as a serious adverse drug reaction that results in drug discontinuation or substitution. In addition, any reaction that leads to treatment interruption or requires changing the drug or regimen because of an adverse drug reaction is also considered a serious adverse drug reaction. +*/ +define "Type of treatment-limiting toxicity": + [Observation: Cx."Type of treatment-limiting toxicity Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE47 Time on ART + @activity: HIV ARegistration + @description: Time the client has been on ART since starting or restarting it in years and months +*/ +define "Time on ART": + [Observation: Cx."Time on ART"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE48 Date(s) ART restarted + @activity: HIV ARegistration + @description: Date(s) client restarted ART after stopping (intentionally interrupting) for any number of reasons (see "Reason ART stopped") +*/ +define "Date(s) ART restarted": + [Observation: Cx."Date(s) ART restarted"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE480 Unexpected adverse drug reaction (specify) + @activity: HIV ARegistration + @description: Specify the type of unexpected adverse drug reaction the client experienced +*/ +define "Unexpected adverse drug reaction (specify)": + [Observation: Cx."Unexpected adverse drug reaction (specify)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE481 Date(s) of substitution within first-line regimen + @activity: HIV ARegistration + @description: Date on which ARV drug regimen (one or more drugs) for client was changed within the first-line regimen (substitution) +*/ +define "Date(s) of substitution within first-line regimen": + [Observation: Cx."Date(s) of substitution within first-line regimen"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE482 Reason(s) for substitution within first-line regimen + @activity: HIV ARegistration + @description: Reason(s) why one ore more drugs in client's first-line ARV drug regimen was changed (substituted) +*/ +define "Reason(s) for substitution within first-line regimen": + [Observation: Cx."Reason(s) for substitution within first-line regimen"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE483 New antiretroviral regimen after substitution within first-line regimen + @activity: HIV ARegistration + @description: New antiretroviral (ARV) drugs after client changed regimen within the first-line regimen +*/ +define "New antiretroviral regimen after substitution within first-line regimen": + [Observation: Cx."New antiretroviral regimen after substitution within first-line regimen"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE484 Date of switch to second-line regimen + @activity: HIV ARegistration + @description: Date client was changed from a first-line to second-line ARV drug regimen (switch) +*/ +define "Date of switch to second-line regimen": + [Observation: Cx."Date of switch to second-line regimen"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE485 New regimen after switch to second-line regimen + @activity: HIV ARegistration + @description: New ART regimen after switch to second-line ART regimen +*/ +define "New regimen after switch to second-line regimen": + [Observation: Cx."New regimen after switch to second-line regimen"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE486 Reason for switch to second-line regimen + @activity: HIV ARegistration + @description: Reason why client was switched from first- to second-line ARV drug regimen (see "Reason for regimen switch" for levels) +*/ +define "Reason for switch to second-line regimen": + [Observation: Cx."Reason for switch to second-line regimen"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE487 Date(s) of substitution within second-line regimen + @activity: HIV ARegistration + @description: Date on which ARV drug regimen for client was changed within the second-line regimen (substitution) +*/ +define "Date(s) of substitution within second-line regimen": + [Observation: Cx."Date(s) of substitution within second-line regimen"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE488 Reason(s) for substitution within second-line regimen + @activity: HIV ARegistration + @description: Reason(s) why client changed drug regimen (within the second-line) +*/ +define "Reason(s) for substitution within second-line regimen": + [Observation: Cx."Reason(s) for substitution within second-line regimen"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE489 New regimen(s) after substitution within second-line regimen + @activity: HIV ARegistration + @description: New ARV drugs after client changed regimen within the second- line regimen +*/ +define "New regimen(s) after substitution within second-line regimen": + [Observation: Cx."New regimen(s) after substitution within second-line regimen"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE49 ART cohort + @activity: HIV ARegistration + @description: Month and year client originally started ART (documented) at a health facility in the system. The cohort is a group of patients who started ART in the same month (or quarter) and year, whose status is followed over time, using the ART register. +*/ +define "ART cohort": + [Observation: Cx."ART cohort"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE490 Date of switch to third-line regimen + @activity: HIV ARegistration + @description: Date client was changed from a second- to third-line ARV drug regimen (switch) +*/ +define "Date of switch to third-line regimen": + [Observation: Cx."Date of switch to third-line regimen"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE491 New regimen after switch to third-line regimen + @activity: HIV ARegistration + @description: New ART regimen after switch to third-line ART regimen +*/ +define "New regimen after switch to third-line regimen": + [Observation: Cx."New regimen after switch to third-line regimen"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE492 Reason for switch to third-line regimen + @activity: HIV ARegistration + @description: Reason why client was switched from second- to third-line ARV drug regimen (see "Reason for regimen switch" for levels) +*/ +define "Reason for switch to third-line regimen": + [Observation: Cx."Reason for switch to third-line regimen"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE493 Date(s) of substitution within third-line regimen + @activity: HIV ARegistration + @description: Date on which ARV drug regimen for client was changed within the third-line (substitution) +*/ +define "Date(s) of substitution within third-line regimen": + [Observation: Cx."Date(s) of substitution within third-line regimen"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE494 Reason(s) for substitution within third-line regimen + @activity: HIV ARegistration + @description: Reason(s) why client changed drug regimen (within the third-line) +*/ +define "Reason(s) for substitution within third-line regimen": + [Observation: Cx."Reason(s) for substitution within third-line regimen"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE495 New regimen(s) after substitution within third-line regimen + @activity: HIV ARegistration + @description: New ARV drugs after client changed regimen within the third-line regimen +*/ +define "New regimen(s) after substitution within third-line regimen": + [Observation: Cx."New regimen(s) after substitution within third-line regimen"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE496 Enhanced adherence counselling provided + @activity: HIV ARegistration + @description: Enhanced adherence counselling was provided to the client during the visit +*/ +define "Enhanced adherence counselling provided": + [Observation: Cx."Enhanced adherence counselling provided"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE497 First enhanced adherence counselling session completed + @activity: HIV ARegistration + @description: A first enhanced adherence counselling was provided to the client during the visit +*/ +define "First enhanced adherence counselling session completed": + [Observation: Cx."First enhanced adherence counselling session completed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE498 Date of first enhanced adherence counselling session completed + @activity: HIV ARegistration + @description: The date on which the first enhanced adherence counselling was provided to the client +*/ +define "Date of first enhanced adherence counselling session completed": + [Observation: Cx."Date of first enhanced adherence counselling session completed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE499 Second enhanced adherence counselling session completed + @activity: HIV ARegistration + @description: A second enhanced adherence counselling was provided to the client during the visit +*/ +define "Second enhanced adherence counselling session completed": + [Observation: Cx."Second enhanced adherence counselling session completed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE50 Transfer in for HIV care + @activity: HIV ARegistration + @description: Client is transferring in with records or known ART drugs and ART start date +*/ +define "Transfer in for HIV care": + [Observation: Cx."Transfer in for HIV care"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE500 Date of second enhanced adherence counselling session completed + @activity: HIV ARegistration + @description: The date on which the second enhanced adherence counselling was provided to the client +*/ +define "Date of second enhanced adherence counselling session completed": + [Observation: Cx."Date of second enhanced adherence counselling session completed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE501 Third enhanced adherence counselling session completed + @activity: HIV ARegistration + @description: A third enhanced adherence counselling was provided to the client during the visit +*/ +define "Third enhanced adherence counselling session completed": + [Observation: Cx."Third enhanced adherence counselling session completed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE502 Date of third enhanced adherence counselling session completed + @activity: HIV ARegistration + @description: The date on which the third enhanced adherence counselling was provided to the client +*/ +define "Date of third enhanced adherence counselling session completed": + [Observation: Cx."Date of third enhanced adherence counselling session completed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE503 Name of treatment supporter + @activity: HIV ARegistration + @description: Full name of person providing support to client for adherence, care, treatment and other needs (e.g. ARV pick-up if ill) +*/ +define "Name of treatment supporter": + [Observation: Cx."Name of treatment supporter"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE504 Address of treatment supporter + @activity: HIV ARegistration + @description: Full address or description of home of treatment supporter +*/ +define "Address of treatment supporter": + [Observation: Cx."Address of treatment supporter"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE505 Telephone number of treatment supporter + @activity: HIV ARegistration + @description: Telephone number if available, or else telephone number of neighbour/friend +*/ +define "Telephone number of treatment supporter": + [Observation: Cx."Telephone number of treatment supporter"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE506 Home-based care provider + @activity: HIV ARegistration + @description: Name of individual or organization that provides home-based care to client +*/ +define "Home-based care provider": + [Observation: Cx."Home-based care provider"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE507 Counselling provided on diagnoses + @activity: HIV ARegistration + @description: Counselling provided on diagnoses +*/ +define "Counselling provided on diagnoses": + [Observation: Cx."Counselling provided on diagnoses"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE508 Hepatitis B positive counselling conducted + @activity: HIV ARegistration + @description: Whether counselling was provided to a client who has been diagnosed with hepatitis B +*/ +define "Hepatitis B positive counselling conducted": + [Observation: Cx."Hepatitis B positive counselling conducted"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE509 Hepatitis C positive counselling conducted + @activity: HIV ARegistration + @description: Whether counselling was provided to a client who has been diagnosed with hepatitis C +*/ +define "Hepatitis C positive counselling conducted": + [Observation: Cx."Hepatitis C positive counselling conducted"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE51 Date of transfer in + @activity: HIV ARegistration + @description: Date client presented at facility (with transfer/referral slip) from another facility (and on ART) within the system +*/ +define "Date of transfer in": + [Observation: Cx."Date of transfer in"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE510 Syphilis counselling and treatment + @activity: HIV ARegistration + @description: Whether counselling and treatment was provided to a client who has been diagnosed with syphilis +*/ +define "Syphilis counselling and treatment": + [Observation: Cx."Syphilis counselling and treatment"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE511 Syphilis counselling, treatment and further testing + @activity: HIV ARegistration + @description: Whether counselling and treatment was provided to a client who has been diagnosed with syphilis. Additional testing (RPR test) recommended. +*/ +define "Syphilis counselling, treatment and further testing": + [Observation: Cx."Syphilis counselling, treatment and further testing"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE512 Accepted partner services + @activity: HIV ARegistration + @description: Client accepted offer for partner services +*/ +define "Accepted partner services": + [Observation: Cx."Accepted partner services"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE514 HIV status of family member + @activity: HIV ARegistration + @description: HIV status of each family member at time of patient's enrolment, including partner (for mothers) +*/ +define "HIV status of family member": + [Observation: Cx."HIV status of family member"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE515 Unique ID of family member + @activity: HIV ARegistration + @description: Unique ID number of each family member if enrolled in HIV care according to national guidelines (see unique ID number) +*/ +define "Unique ID of family member": + [Observation: Cx."Unique ID of family member"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE516 Date of death of family member + @activity: HIV ARegistration + @description: Date of death for each family member as appropriate +*/ +define "Date of death of family member": + [Observation: Cx."Date of death of family member"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE518 Provided support for disclosure and partner services + @activity: HIV ARegistration + @description: Offer or refer for support for disclosure and partner services +*/ +define "Provided support for disclosure and partner services": + [Observation: Cx."Provided support for disclosure and partner services"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE52 Facility transferred from + @activity: HIV ARegistration + @description: Name of health facility client was transferred from +*/ +define "Facility transferred from": + [Observation: Cx."Facility transferred from"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE53 Date enrolled in HIV care + @activity: HIV ARegistration + @description: Date client first enrols in HIV care at the facility. Begins when a person with a confirmed HIV diagnosis presents to a facility where HIV care is provided and a medical record, patient card, file or chart is opened for the first time. This could be at an HIV care/ART, MNCH or TB clinic. +*/ +define "Date enrolled in HIV care": + [Observation: Cx."Date enrolled in HIV care"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE531 Follow-up test recommended date + @activity: HIV ARegistration + @description: A test or screening recommended for the client's care plan at a future date +*/ +define "Follow-up test recommended date": + [Observation: Cx."Follow-up test recommended date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE532 Reason blood pressure reading not done + @activity: HIV ARegistration + @description: Reason why test was not performed +*/ +define "Reason blood pressure reading not done": + [Observation: Cx."Reason blood pressure reading not done Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE535 Other + @activity: HIV ARegistration + @description: Other reason blood pressure can not be taken +*/ +define "Other": + [Observation: Cx."Other"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE537 Current medications + @activity: HIV ARegistration + @description: List of all of the medications the client is currently taking +*/ +define "Current medications": + [Observation: Cx."Current medications Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE54 Age at enrolment + @activity: HIV ARegistration + @description: Client's age when the client was enrolled in ART care +*/ +define "Age at enrolment": + [Observation: Cx."Age at enrolment"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE55 Facility where client first enrolled in HIV care + @activity: HIV ARegistration + @description: Facility where the client first enrolled in HIV care +*/ +define "Facility where client first enrolled in HIV care": + [Observation: Cx."Facility where client first enrolled in HIV care"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE559 Other medications (specify) + @activity: HIV ARegistration + @description: Other medications or supplements that are not listed above (specify) +*/ +define "Other medications (specify)": + [Observation: Cx."Other medications (specify)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE56 Antiretroviral (ARV) drugs received prior to enrolment + @activity: HIV ARegistration + @description: Whether or not the client received ARV drugs prior to enrolling into HIV care +*/ +define "Antiretroviral (ARV) drugs received prior to enrolment": + [Observation: Cx."Antiretroviral (ARV) drugs received prior to enrolment Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE560 Allergies + @activity: HIV ARegistration + @description: Does the client have any allergies? +*/ +define "Allergies": + [Observation: Cx."Allergies Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE568 Other allergies (specify) + @activity: HIV ARegistration + @description: Client has other allergies not listed here (specify) +*/ +define "Other allergies (specify)": + [Observation: Cx."Other allergies (specify)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE569 Family planning method used + @activity: HIV ARegistration + @description: Method the client reports currently using at intake +*/ +define "Family planning method used": + [Observation: Cx."Family planning method used Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE593 Medication status + @activity: HIV ARegistration + @description: Current state of the client's taking of the medication +*/ +define "Medication status": + [Observation: Cx."Medication status Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE602 Hepatitis B negative counselling conducted + @activity: HIV ARegistration + @description: Hepatitis B negative counselling conducted +*/ +define "Hepatitis B negative counselling conducted": + [Observation: Cx."Hepatitis B negative counselling conducted"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE603 Vaccine brand + @activity: HIV ARegistration + @description: The brand or trade name used to refer to the vaccine received +*/ +define "Vaccine brand": + [Observation: Cx."Vaccine brand"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE604 Vaccine type + @activity: HIV ARegistration + @description: Type of vaccine received (such as IPV, OPV) +*/ +define "Vaccine type": + [Observation: Cx."Vaccine type"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE605 Date and time of vaccination + @activity: HIV ARegistration + @description: Represents the visit/encounter date, which is the date and time when the vaccine was administered to the client +*/ +define "Date and time of vaccination": + [Observation: Cx."Date and time of vaccination"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE606 Vaccination location + @activity: HIV ARegistration + @description: The service delivery location where the vaccine adminstration occurred +*/ +define "Vaccination location": + [Observation: Cx."Vaccination location"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE607 Dose number + @activity: HIV ARegistration + @description: Vaccine dose number within series +*/ +define "Dose number": + [Observation: Cx."Dose number"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE608 Dose quantity + @activity: HIV ARegistration + @description: The quantity of vaccine product that was administered +*/ +define "Dose quantity": + [Observation: Cx."Dose quantity"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE609 Total doses in series + @activity: HIV ARegistration + @description: The recommended number of vaccine doses for immunity according to national protocol +*/ +define "Total doses in series": + [Observation: Cx."Total doses in series"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE610 Disease targeted + @activity: HIV ARegistration + @description: Vaccine preventable disease being targeted by vaccine administered +*/ +define "Disease targeted": + [Observation: Cx."Disease targeted Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE62 Date ARV drugs received prior to enrolment + @activity: HIV ARegistration + @description: Date ARV drugs were started prior to enrolment into HIV care/ART +*/ +define "Date ARV drugs received prior to enrolment": + [Observation: Cx."Date ARV drugs received prior to enrolment"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE63 Location ARV drugs received prior to enrolment + @activity: HIV ARegistration + @description: Health facility (or other location) where ARV drugs were received prior to enrolment into HIV care/ART +*/ +define "Location ARV drugs received prior to enrolment": + [Observation: Cx."Location ARV drugs received prior to enrolment"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE636 Reason immunization was not provided + @activity: HIV ARegistration + @description: Reason the vaccine dose was not given +*/ +define "Reason immunization was not provided": + [Observation: Cx."Reason immunization was not provided Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE64 ARV drug regimen received prior to enrolment + @activity: HIV ARegistration + @description: ARV drug regimen received prior to enrolment into HIV care/ART +*/ +define "ARV drug regimen received prior to enrolment": + [Observation: Cx."ARV drug regimen received prior to enrolment"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE642 Other reason immunization not provided (specify) + @activity: HIV ARegistration + @description: Other reason why the immunization was not provided (specify) +*/ +define "Other reason immunization not provided (specify)": + [Observation: Cx."Other reason immunization not provided (specify)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE643 Malaria prophylaxis + @activity: HIV ARegistration + @description: Whether malaria prophylaxis was given +*/ +define "Malaria prophylaxis": + [Observation: Cx."Malaria prophylaxis"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE644 IPTp-SP dose number provided + @activity: HIV ARegistration + @description: IPTp-SP dose number that was provided +*/ +define "IPTp-SP dose number provided": + [Observation: Cx."IPTp-SP dose number provided"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE645 Date IPTp-SP dose provided + @activity: HIV ARegistration + @description: Date on which the IPTp-SP dose was provided +*/ +define "Date IPTp-SP dose provided": + [Observation: Cx."Date IPTp-SP dose provided"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE646 Reason malaria prophylaxis not provided + @activity: HIV ARegistration + @description: Reason why the treatment was not given +*/ +define "Reason malaria prophylaxis not provided": + [Observation: Cx."Reason malaria prophylaxis not provided Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE65 Existing chronic health conditions + @activity: HIV ARegistration + @description: Does the client have any current chronic health conditions or problems? +*/ +define "Existing chronic health conditions": + [Observation: Cx."Existing chronic health conditions Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE651 Other reason not provided (specify) + @activity: HIV ARegistration + @description: Other reason why the prophylaxis was not provided +*/ +define "Other reason not provided (specify)": + [Observation: Cx."Other reason not provided (specify)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE652 >28 days since last missed appointment + @activity: HIV ARegistration + @description: More than 28 days have passed since client's last missed appointment +*/ +define ">28 days since last missed appointment": + [Observation: Cx.">28 days since last missed appointment"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE653 AIDS-related death + @activity: HIV ARegistration + @description: Death of client was AIDS-related +*/ +define "AIDS-related death": + [Observation: Cx."AIDS-related death"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE654 Date of first AIDS diagnosis + @activity: HIV ARegistration + @description: Date of client's first AIDS diagnosis +*/ +define "Date of first AIDS diagnosis": + [Observation: Cx."Date of first AIDS diagnosis"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE655 Age at final HPV vaccination dose received + @activity: HIV ARegistration + @description: Client's age at date received final HPV vaccination dose +*/ +define "Age at final HPV vaccination dose received": + [Observation: Cx."Age at final HPV vaccination dose received"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE656 Date of cervical cancer screening test + @activity: HIV ARegistration + @description: Date of cervical cancer screening test +*/ +define "Date of cervical cancer screening test": + [Observation: Cx."Date of cervical cancer screening test"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE657 Lifetime screening test number + @activity: HIV ARegistration + @description: Client's lifetime number of screenings for cervical cancer +*/ +define "Lifetime screening test number": + [Observation: Cx."Lifetime screening test number"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE658 Cervical cancer primary screening test type + @activity: HIV ARegistration + @description: Type of cervical cancer screening test used in primary screening +*/ +define "Cervical cancer primary screening test type": + [Observation: Cx."Cervical cancer primary screening test type Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE664 HPV-DNA cervical cancer screening test result + @activity: HIV ARegistration + @description: HPV-DNA cervical cancer screening test result +*/ +define "HPV-DNA cervical cancer screening test result": + [Observation: Cx."HPV-DNA cervical cancer screening test result Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE668 VIA cervical cancer screening test result + @activity: HIV ARegistration + @description: Screening test result for VIA +*/ +define "VIA cervical cancer screening test result": + [Observation: Cx."VIA cervical cancer screening test result Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE673 Cervical cytology screening test result + @activity: HIV ARegistration + @description: Screening result for cervical cytology +*/ +define "Cervical cytology screening test result": + [Observation: Cx."Cervical cytology screening test result Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE680 Cervical cancer triage test date + @activity: HIV ARegistration + @description: Date of triage test for cervical cancer +*/ +define "Cervical cancer triage test date": + [Observation: Cx."Cervical cancer triage test date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE681 Cervical cancer triage test type + @activity: HIV ARegistration + @description: Type of triage test for cervical cancer +*/ +define "Cervical cancer triage test type": + [Observation: Cx."Cervical cancer triage test type Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE688 HPV16/18 test result + @activity: HIV ARegistration + @description: Test result from HPV16/18 test +*/ +define "HPV16/18 test result": + [Observation: Cx."HPV16/18 test result Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE691 Cervical cancer colposcopy result + @activity: HIV ARegistration + @description: Result of cervical cancer colposcopy +*/ +define "Cervical cancer colposcopy result": + [Observation: Cx."Cervical cancer colposcopy result Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE697 Cervical cancer histopathology result + @activity: HIV ARegistration + @description: Result of cervical cancer histopathology +*/ +define "Cervical cancer histopathology result": + [Observation: Cx."Cervical cancer histopathology result Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE702 Date of additional cervical cancer triage test + @activity: HIV ARegistration + @description: Date of tertiary cervical cancer screening test +*/ +define "Date of additional cervical cancer triage test": + [Observation: Cx."Date of additional cervical cancer triage test"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE703 Additional cervical cancer triage test type (specify) + @activity: HIV ARegistration + @description: Additional cervical cancer triage test type (specify) +*/ +define "Additional cervical cancer triage test type (specify)": + [Observation: Cx."Additional cervical cancer triage test type (specify)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE704 Additional cervical cancer triage test result (specify) + @activity: HIV ARegistration + @description: Additional cervical cancer triage test result (specify) +*/ +define "Additional cervical cancer triage test result (specify)": + [Observation: Cx."Additional cervical cancer triage test result (specify)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE705 Date of diagnosis of cervical precancer lesions or invasive cervical cancer + @activity: HIV ARegistration + @description: Date of diagnosis of cervical precancer lesions or invasive cervical cancer +*/ +define "Date of diagnosis of cervical precancer lesions or invasive cervical cancer": + [Observation: Cx."Date of diagnosis of cervical precancer lesions or invasive cervical cancer"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE706 Cervical cancer screening outcome + @activity: HIV ARegistration + @description: Client's screening outcome for cervical cancer +*/ +define "Cervical cancer screening outcome": + [Observation: Cx."Cervical cancer screening outcome Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE709 Cervical cancer diagnosis + @activity: HIV ARegistration + @description: Type of cervical cancer diagnosis +*/ +define "Cervical cancer diagnosis": + [Observation: Cx."Cervical cancer diagnosis Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE712 Cervical cancer stage at diagnosis + @activity: HIV ARegistration + @description: Cervical cancer stage at diagnosis of cervical cancer +*/ +define "Cervical cancer stage at diagnosis": + [Observation: Cx."Cervical cancer stage at diagnosis Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE718 Date of treatment for cervical precancer lesions + @activity: HIV ARegistration + @description: Date of treatment for cervical precancer lesions +*/ +define "Date of treatment for cervical precancer lesions": + [Observation: Cx."Date of treatment for cervical precancer lesions"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE719 Treatment method for cervical precancer lesions + @activity: HIV ARegistration + @description: Treatment method for cervical precancer lesions +*/ +define "Treatment method for cervical precancer lesions": + [Observation: Cx."Treatment method for cervical precancer lesions Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE728 Date of follow-up for treatment for cervical precancer lesions + @activity: HIV ARegistration + @description: Date of follow-up for treatment for cervical precancer lesions +*/ +define "Date of follow-up for treatment for cervical precancer lesions": + [Observation: Cx."Date of follow-up for treatment for cervical precancer lesions"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE729 Date of start of invasive cancer treatment + @activity: HIV ARegistration + @description: Date of start of invasive cancer treatment +*/ +define "Date of start of invasive cancer treatment": + [Observation: Cx."Date of start of invasive cancer treatment"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE730 Invasive cervical cancer treatment episode + @activity: HIV ARegistration + @description: Client's lifetime number of treatments for invasive cervical cancer +*/ +define "Invasive cervical cancer treatment episode": + [Observation: Cx."Invasive cervical cancer treatment episode"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE731 Invasive cervical cancer treatment method + @activity: HIV ARegistration + @description: Invasive cervical cancer treatment method +*/ +define "Invasive cervical cancer treatment method": + [Observation: Cx."Invasive cervical cancer treatment method Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE74 Original first-line ART regimen + @activity: HIV ARegistration + @description: Original full, first-line ARV drug regimen patient started on at this facility +*/ +define "Original first-line ART regimen": + [Observation: Cx."Original first-line ART regimen"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE741 Treatment outcome + @activity: HIV ARegistration + @description: Treatment outcome from cervical pre-cancerous lesion treatment or invasive cancer treatment (specify) +*/ +define "Treatment outcome": + [Observation: Cx."Treatment outcome"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE742 Secondary/other cancers diagnosed + @activity: HIV ARegistration + @description: Secondary and other cancers that client is diagnosed with (specify) +*/ +define "Secondary/other cancers diagnosed": + [Observation: Cx."Secondary/other cancers diagnosed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE743 Cancers at other sites (HPV- and non-HPV related) + @activity: HIV ARegistration + @description: Cancers at other sites that client has (specify) +*/ +define "Cancers at other sites (HPV- and non-HPV related)": + [Observation: Cx."Cancers at other sites (HPV- and non-HPV related)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE744 Date of death + @activity: HIV ARegistration + @description: If deceased, the date that the client died +*/ +define "Date of death": + [Observation: Cx."Date of death"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE745 Cervical cancer screening interval amongst WLHIV + @activity: HIV ARegistration + @description: Country-specific interval between cancer screenings amongst women living with HIV (typically 3 or 5 years) +*/ +define "Cervical cancer screening interval amongst WLHIV": + [Observation: Cx."Cervical cancer screening interval amongst WLHIV"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE75 Current ART regimen + @activity: HIV ARegistration + @description: The current ART regimen the client is taking +*/ +define "Current ART regimen": + [Observation: Cx."Current ART regimen"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE76 Current ART regimen start date + @activity: HIV ARegistration + @description: The date on which the client started taking the current ART regimen +*/ +define "Current ART regimen start date": + [Observation: Cx."Current ART regimen start date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE760 Eligible for DSD ART + @activity: HIV ARegistration + @description: Client is eligible for differentiated service delivery (DSD) for ART +*/ +define "Eligible for DSD ART": + [Observation: Cx."Eligible for DSD ART"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE761 Date DSD ART eligibility assessed + @activity: HIV ARegistration + @description: Date client was assessed for eligibility for differentiated service delivery (DSD) for ART +*/ +define "Date DSD ART eligibility assessed": + [Observation: Cx."Date DSD ART eligibility assessed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE762 Currently enrolled in DSD ART model + @activity: HIV ARegistration + @description: Client currently enrolled in differentiated service delivery (DSD) ART model +*/ +define "Currently enrolled in DSD ART model": + [Observation: Cx."Currently enrolled in DSD ART model"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE763 DSD ART start date + @activity: HIV ARegistration + @description: Date client started on differentiated service delivery (DSD) for ART +*/ +define "DSD ART start date": + [Observation: Cx."DSD ART start date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE764 DSD ART model(s) + @activity: HIV ARegistration + @description: Type of DSD ART model client is enrolled in (country-specific) +*/ +define "DSD ART model(s)": + [Observation: Cx."DSD ART model(s) Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE77 Preferred first-line ART regimen + @activity: HIV ARegistration + @description: The preferred first-line ART regimen for the client according to WHO (or national) guidelines +*/ +define "Preferred first-line ART regimen": + [Observation: Cx."Preferred first-line ART regimen"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE771 Other DSD ART model (specify) + @activity: HIV ARegistration + @description: Client is enrolled in another DSD ART model (specify) +*/ +define "Other DSD ART model (specify)": + [Observation: Cx."Other DSD ART model (specify)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE772 Partner testing offered + @activity: HIV ARegistration + @description: Whether client was offered partner testing +*/ +define "Partner testing offered": + [Observation: Cx."Partner testing offered"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE773 Partner testing accepted + @activity: HIV ARegistration + @description: Whether partner testing was accepted +*/ +define "Partner testing accepted": + [Observation: Cx."Partner testing accepted"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE774 Date partner contacted for index testing + @activity: HIV ARegistration + @description: Date on which client's partner was contacted for index testing +*/ +define "Date partner contacted for index testing": + [Observation: Cx."Date partner contacted for index testing"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE775 Date partner tested for HIV + @activity: HIV ARegistration + @description: Date on which client's partner was tested for HIV +*/ +define "Date partner tested for HIV": + [Observation: Cx."Date partner tested for HIV"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE776 Date of next scheduled follow-up appointment + @activity: HIV ARegistration + @description: Date of client's next scheduled follow-up appointment +*/ +define "Date of next scheduled follow-up appointment": + [Observation: Cx."Date of next scheduled follow-up appointment"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE777 Type of next follow-up appointment + @activity: HIV ARegistration + @description: Type of client's next follow-up appointment (specify) +*/ +define "Type of next follow-up appointment": + [Observation: Cx."Type of next follow-up appointment"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE78 Alternative first-line ART regimen + @activity: HIV ARegistration + @description: The alternative first-line ART regimen for the client according to WHO (or national) guidelines +*/ +define "Alternative first-line ART regimen": + [Observation: Cx."Alternative first-line ART regimen"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE79 First-line ART regimen under special circumstances + @activity: HIV ARegistration + @description: The first-line ART regimen for the client under special circumstances according to WHO (or national) guidelines +*/ +define "First-line ART regimen under special circumstances": + [Observation: Cx."First-line ART regimen under special circumstances"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE8 Scheduled visit + @activity: HIV ARegistration + @description: Is this is a scheduled visit? +*/ +define "Scheduled visit": + [Observation: Cx."Scheduled visit"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE80 Preferred second-line ART regimen + @activity: HIV ARegistration + @description: The preferred second-line ART regimen for the client according to WHO (or national) guidelines +*/ +define "Preferred second-line ART regimen": + [Observation: Cx."Preferred second-line ART regimen"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE81 Alternative second-line ART regimen + @activity: HIV ARegistration + @description: The alternative second-line ART regimen for the client according to WHO (or national) guidelines +*/ +define "Alternative second-line ART regimen": + [Observation: Cx."Alternative second-line ART regimen"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE82 Optimal regimen for transition + @activity: HIV ARegistration + @description: The optimal regimen for transition to DTG-based regimens for children established on ART +*/ +define "Optimal regimen for transition": + [Observation: Cx."Optimal regimen for transition"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE83 Current ART regimen (first-, second-, or third-line) + @activity: HIV ARegistration + @description: ART regimen for treating clients living with HIV, based on national guidance +*/ +define "Current ART regimen (first-, second-, or third-line)": + [Observation: Cx."Current ART regimen (first-, second-, or third-line) Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE884 Mid-upper arm circumference (MUAC) + @activity: HIV ARegistration + @description: Client's mid-upper arm circumference (MUAC) +*/ +define "Mid-upper arm circumference (MUAC)": + [Observation: Cx."Mid-upper arm circumference (MUAC)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE885 Date of start of fluconazole prophylaxis + @activity: HIV ARegistration + @description: Date of client's start of fluconazole prophylaxis +*/ +define "Date of start of fluconazole prophylaxis": + [Observation: Cx."Date of start of fluconazole prophylaxis"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE886 Fluconazole prophylaxis + @activity: HIV ARegistration + @description: Client provided with fluconazole prophylaxis +*/ +define "Fluconazole prophylaxis": + [Observation: Cx."Fluconazole prophylaxis"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE887 Date started cryptococcal meningitis treatment induction regimen + @activity: HIV ARegistration + @description: Date client started cryptococcal meningitis treatment induction regimen +*/ +define "Date started cryptococcal meningitis treatment induction regimen": + [Observation: Cx."Date started cryptococcal meningitis treatment induction regimen"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE888 Date completed cryptococcal meningitis treatment induction regimen + @activity: HIV ARegistration + @description: Date client completed cryptococcal meningitis treatment induction regimen +*/ +define "Date completed cryptococcal meningitis treatment induction regimen": + [Observation: Cx."Date completed cryptococcal meningitis treatment induction regimen"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE889 Date started cryptococcal meningitis treatment maintenance regimen + @activity: HIV ARegistration + @description: Date client started cryptococcal meningitis treatment maintenance regimen +*/ +define "Date started cryptococcal meningitis treatment maintenance regimen": + [Observation: Cx."Date started cryptococcal meningitis treatment maintenance regimen"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE890 Date completed cryptococcal meningitis treatment maintenance regimen + @activity: HIV ARegistration + @description: Date client completed cryptococcal meningitis treatment maintenance regimen +*/ +define "Date completed cryptococcal meningitis treatment maintenance regimen": + [Observation: Cx."Date completed cryptococcal meningitis treatment maintenance regimen"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE891 Date started cryptococcal meningitis treatment consolidation regimen + @activity: HIV ARegistration + @description: Date client started cryptococcal meningitis treatment consolidation regimen +*/ +define "Date started cryptococcal meningitis treatment consolidation regimen": + [Observation: Cx."Date started cryptococcal meningitis treatment consolidation regimen"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE892 Date completed cryptococcal meningitis treatment consolidation regimen + @activity: HIV ARegistration + @description: Date client completed cryptococcal meningitis treatment consolidation regimen +*/ +define "Date completed cryptococcal meningitis treatment consolidation regimen": + [Observation: Cx."Date completed cryptococcal meningitis treatment consolidation regimen"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE893 Staging of liver disease + @activity: HIV ARegistration + @description: Staging of liver disease in client +*/ +define "Staging of liver disease": + [Observation: Cx."Staging of liver disease Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE896 Advanced HIV disease + @activity: HIV ARegistration + @description: Client has Advanced HIV disease (AHD) +*/ +define "Advanced HIV disease": + [Observation: Cx."Advanced HIV disease"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE897 WHO functional status + @activity: HIV ARegistration + @description: Functional status of people with advanced HIV disease +*/ +define "WHO functional status": + [Observation: Cx."WHO functional status Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE9 Body temperature + @activity: HIV ARegistration + @description: Temperature of the client in Celsius +*/ +define "Body temperature": + [Observation: Cx."Body temperature"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE90 ART regimen + @activity: HIV ARegistration + @description: List of ART regimens +*/ +define "ART regimen": + [Observation: Cx."ART regimen Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE901 Tailored adherence counselling for advanced HIV disease + @activity: HIV ARegistration + @description: Client provided with tailored adherence counselling for advanced HIV disease +*/ +define "Tailored adherence counselling for advanced HIV disease": + [Observation: Cx."Tailored adherence counselling for advanced HIV disease"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE902 Date(s) of tracing interventions + @activity: HIV ARegistration + @description: Date tracing interventions to support reengagement into HIV care conducted +*/ +define "Date(s) of tracing interventions": + [Observation: Cx."Date(s) of tracing interventions"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE903 Medication/drug + @activity: HIV ARegistration + @description: Current or considered medication/drug, for the purpose of determining drug interactions +*/ +define "Medication/drug": + [Observation: Cx."Medication/drug Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE933 Medication change recommended + @activity: HIV ARegistration + @description: A medication change is recommended for the client based upon current or considered medications +*/ +define "Medication change recommended": + [Observation: Cx."Medication change recommended"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE938 TB disease + @activity: HIV ARegistration + @description: Whether the client has tuberculosis (TB) disease. Sometimes known as active TB +*/ +define "TB disease": + [Observation: Cx."TB disease"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE939 TB diagnosis result + @activity: HIV ARegistration + @description: Final result of the TB investigation (bacteriological and/or clinical) +*/ +define "TB diagnosis result": + [Observation: Cx."TB diagnosis result Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE942 Method of TB diagnosis + @activity: HIV ARegistration + @description: Method used to set the TB diagnosis +*/ +define "Method of TB diagnosis": + [Observation: Cx."Method of TB diagnosis Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE945 Presumptive TB + @activity: HIV ARegistration + @description: Client has signs or symptoms of tuberculosis (TB) without laboratory confirmation +*/ +define "Presumptive TB": + [Observation: Cx."Presumptive TB"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE946 Presumptive TB registration date + @activity: HIV ARegistration + @description: Date client is registered as having signs or symptoms of tuberculosis (TB) without laboratory confirmation +*/ +define "Presumptive TB registration date": + [Observation: Cx."Presumptive TB registration date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE947 TB treatment history + @activity: HIV ARegistration + @description: History of previous TB treatment +*/ +define "TB treatment history": + [Observation: Cx."TB treatment history Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE952 Date of TB diagnosis + @activity: HIV ARegistration + @description: The date when the diagnosis was established +*/ +define "Date of TB diagnosis": + [Observation: Cx."Date of TB diagnosis"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE953 Currently on TB preventive treatment (TPT) + @activity: HIV ARegistration + @description: Client is currently taking TPT +*/ +define "Currently on TB preventive treatment (TPT)": + [Observation: Cx."Currently on TB preventive treatment (TPT)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE954 TB preventive treatment (TPT) start date + @activity: HIV ARegistration + @description: The date on which the client began taking TPT +*/ +define "TB preventive treatment (TPT) start date": + [Observation: Cx."TB preventive treatment (TPT) start date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE955 TB preventive treatment (TPT) completion date + @activity: HIV ARegistration + @description: The date on which the client completed TPT +*/ +define "TB preventive treatment (TPT) completion date": + [Observation: Cx."TB preventive treatment (TPT) completion date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE956 TB screening algorithm + @activity: HIV ARegistration + @description: Screening algorithm selected for screening activities +*/ +define "TB screening algorithm": + [Observation: Cx."TB screening algorithm Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE971 Other TB screening algorithm (specify) + @activity: HIV ARegistration + @description: Client screened for tuberculosis (TB) with a different screening method not listed (specify) +*/ +define "Other TB screening algorithm (specify)": + [Observation: Cx."Other TB screening algorithm (specify)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE972 TB screening conducted + @activity: HIV ARegistration + @description: A screening for tuberculosis (TB) was performed +*/ +define "TB screening conducted": + [Observation: Cx."TB screening conducted"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE973 Symptoms of TB + @activity: HIV ARegistration + @description: Symptoms that may indicate TB disease in clients living with HIV, based on a clinical algorithm +*/ +define "Symptoms of TB": + [Observation: Cx."Symptoms of TB Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE985 History of contact with a person with TB + @activity: HIV ARegistration + @description: Client had a history of a contact with a person with TB +*/ +define "History of contact with a person with TB": + [Observation: Cx."History of contact with a person with TB"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE986 TB screening result + @activity: HIV ARegistration + @description: Record the result of the tuberculosis (TB) screening +*/ +define "TB screening result": + [Observation: Cx."TB screening result Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE990 TB screening date + @activity: HIV ARegistration + @description: Date the TB screening was conducted +*/ +define "TB screening date": + [Observation: Cx."TB screening date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE991 TB screening result date + @activity: HIV ARegistration + @description: The date when the result of TB screening is available +*/ +define "TB screening result date": + [Observation: Cx."TB screening result date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE992 TB diagnostic test category + @activity: HIV ARegistration + @description: The type of diagnostic test performed to detect tuberculosis (TB) disease +*/ +define "TB diagnostic test category": + [Observation: Cx."TB diagnostic test category Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE997 TB diagnostic test date + @activity: HIV ARegistration + @description: The date when TB diagnostic test was performed +*/ +define "TB diagnostic test date": + [Observation: Cx."TB diagnostic test date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE998 Test sample collection date + @activity: HIV ARegistration + @description: The date when the test sample was collected from the client +*/ +define "Test sample collection date": + [Observation: Cx."Test sample collection date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.D.DE999 TB diagnostic test result date + @activity: HIV ARegistration + @description: The date when the result of the TB diagnostic test is available +*/ +define "TB diagnostic test result date": + [Observation: Cx."TB diagnostic test result date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE1 Pregnant woman's first name + @activity: HIV ARegistration + @description: Pregnant woman's first or given name +*/ +define "Pregnant woman's first name": + [Observation: Cx."Pregnant woman's first name"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE100 Head circumference + @activity: HIV ARegistration + @description: Head circumference of infant at birth in cm +*/ +define "Head circumference": + [Observation: Cx."Head circumference"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE101 Mother HIV test conducted + @activity: HIV ARegistration + @description: Whether an HIV test of the mother was conducted +*/ +define "Mother HIV test conducted": + [Observation: Cx."Mother HIV test conducted"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE102 Mother HIV test ordered + @activity: HIV ARegistration + @description: Whether an HIV test of the mother was ordered +*/ +define "Mother HIV test ordered": + [Observation: Cx."Mother HIV test ordered"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE103 Mother HIV test date + @activity: HIV ARegistration + @description: Date when a mother's HIV test was conducted +*/ +define "Mother HIV test date": + [Observation: Cx."Mother HIV test date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE104 Maternal HIV test result + @activity: HIV ARegistration + @description: Test result for mother after applying the testing strategy +*/ +define "Maternal HIV test result": + [Observation: Cx."Maternal HIV test result Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE108 Infant or child exposure to HIV + @activity: HIV ARegistration + @description: Whether the infant or child was determined to have had HIV exposure through mother +*/ +define "Infant or child exposure to HIV": + [Observation: Cx."Infant or child exposure to HIV Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE112 HIV-exposed infant or child + @activity: HIV ARegistration + @description: Whether the infant or child was determined to have had HIV exposure +*/ +define "HIV-exposed infant or child": + [Observation: Cx."HIV-exposed infant or child"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE119 Postpartum family planning counselling conducted + @activity: HIV ARegistration + @description: Provide family planning and contraception counselling +*/ +define "Postpartum family planning counselling conducted": + [Observation: Cx."Postpartum family planning counselling conducted"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE12 Number of previous pregnancies + @activity: HIV ARegistration + @description: This calculates the total number of all previous pregnancies (i.e. not including this current pregnancy). This is done for easier obstetric history calculations. +*/ +define "Number of previous pregnancies": + [Observation: Cx."Number of previous pregnancies"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE120 Age of infant on HIV test date + @activity: HIV ARegistration + @description: Infant's age when an HIV test is performed in months and years (calculated from date of birth) +*/ +define "Age of infant on HIV test date": + [Observation: Cx."Age of infant on HIV test date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE121 ARV adherence counselling + @activity: HIV ARegistration + @description: Counselling was carried out during visit +*/ +define "ARV adherence counselling": + [Observation: Cx."ARV adherence counselling"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE122 Infant feeding counselling provided + @activity: HIV ARegistration + @description: Support on infant and child feeding to mother or caregiver provided +*/ +define "Infant feeding counselling provided": + [Observation: Cx."Infant feeding counselling provided"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE123 Date infant feeding counselling provided + @activity: HIV ARegistration + @description: Date support on infant and child feeding to mother or caregiver provided +*/ +define "Date infant feeding counselling provided": + [Observation: Cx."Date infant feeding counselling provided"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE124 Malaria prevention counselling conducted + @activity: HIV ARegistration + @description: Counselling provided on how to prevent malaria +*/ +define "Malaria prevention counselling conducted": + [Observation: Cx."Malaria prevention counselling conducted"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE125 Insecticide treated bednet (ITN) provided or referred + @activity: HIV ARegistration + @description: An insecticide treated bednet (ITN) was provided or the client was referred +*/ +define "Insecticide treated bednet (ITN) provided or referred": + [Observation: Cx."Insecticide treated bednet (ITN) provided or referred"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE126 Maternal syphilis treatment + @activity: HIV ARegistration + @description: Whether or not mother was treated for syphilis +*/ +define "Maternal syphilis treatment": + [Observation: Cx."Maternal syphilis treatment"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE127 Infant feeding practice + @activity: HIV ARegistration + @description: Infant feeding practice +*/ +define "Infant feeding practice": + [Observation: Cx."Infant feeding practice Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE131 Infant feeding practice recorded date + @activity: HIV ARegistration + @description: Date on which infant feeding practice was recorded +*/ +define "Infant feeding practice recorded date": + [Observation: Cx."Infant feeding practice recorded date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE132 Stopped breastfeeding + @activity: HIV ARegistration + @description: The mother has fully stopped breastfeeding the infant or child +*/ +define "Stopped breastfeeding": + [Observation: Cx."Stopped breastfeeding"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE133 Date stopped breastfeeding + @activity: HIV ARegistration + @description: The date on which the mother stopped breastfeeding the infant +*/ +define "Date stopped breastfeeding": + [Observation: Cx."Date stopped breastfeeding"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE134 Taking iron and folic acid (IFA) tablets + @activity: HIV ARegistration + @description: Is client taking her iron and folic acid (IFA) tablets? Select whether the woman is continuing to take IFA supplements +*/ +define "Taking iron and folic acid (IFA) tablets": + [Observation: Cx."Taking iron and folic acid (IFA) tablets"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE135 Amount of iron prescribed + @activity: HIV ARegistration + @description: Amount of iron supplements prescribed in milligrams for intake +*/ +define "Amount of iron prescribed": + [Observation: Cx."Amount of iron prescribed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE136 Type of iron supplement dosage provided + @activity: HIV ARegistration + @description: Whether the amount of iron prescribed is for daily or weekly intake +*/ +define "Type of iron supplement dosage provided": + [Observation: Cx."Type of iron supplement dosage provided Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE139 Amount of daily dose of folic acid prescribed + @activity: HIV ARegistration + @description: Amount of folic acid supplements prescribed in milligrams for daily intake +*/ +define "Amount of daily dose of folic acid prescribed": + [Observation: Cx."Amount of daily dose of folic acid prescribed"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE140 Date infant ARV prophylaxis dispensed (or started) + @activity: HIV ARegistration + @description: Date HIV-exposed infant received ARV prophylaxis (for the first time) +*/ +define "Date infant ARV prophylaxis dispensed (or started)": + [Observation: Cx."Date infant ARV prophylaxis dispensed (or started)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE141 Maternal HIV status + @activity: HIV ARegistration + @description: The HIV status of the infant's mother +*/ +define "Maternal HIV status": + [Observation: Cx."Maternal HIV status Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE145 Maternal HIV status at first ANC visit + @activity: HIV ARegistration + @description: The HIV status of the infant's mother at first ANC visit +*/ +define "Maternal HIV status at first ANC visit": + [Observation: Cx."Maternal HIV status at first ANC visit Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE149 Maternal syphilis test result + @activity: HIV ARegistration + @description: Result from maternal syphilis test +*/ +define "Maternal syphilis test result": + [Observation: Cx."Maternal syphilis test result Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE15 Number of caesarian sections + @activity: HIV ARegistration + @description: Total number of caesarean sections +*/ +define "Number of caesarian sections": + [Observation: Cx."Number of caesarian sections"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE153 Hypertension + @activity: HIV ARegistration + @description: Whether the client has developed hypertension associated with pregnancy +*/ +define "Hypertension": + [Observation: Cx."Hypertension"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE154 Pre-eclampsia + @activity: HIV ARegistration + @description: Whether the client has pre-eclampsia +*/ +define "Pre-eclampsia": + [Observation: Cx."Pre-eclampsia"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE16 Number of stillbirths + @activity: HIV ARegistration + @description: Total number of stillbirths after 22 weeks +*/ +define "Number of stillbirths": + [Observation: Cx."Number of stillbirths"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE161 Date woman received counselling for CPT + @activity: HIV ARegistration + @description: Date woman received counselling for co-trimoxazole preventive therapy (CPT) +*/ +define "Date woman received counselling for CPT": + [Observation: Cx."Date woman received counselling for CPT"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE162 Date woman received counselling for TPT + @activity: HIV ARegistration + @description: Date woman received counselling for TB preventive therapy +*/ +define "Date woman received counselling for TPT": + [Observation: Cx."Date woman received counselling for TPT"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE163 Infant's co-trimoxazole prophylaxis start date + @activity: HIV ARegistration + @description: Start date of co-trimoxazole prophylaxis +*/ +define "Infant's co-trimoxazole prophylaxis start date": + [Observation: Cx."Infant's co-trimoxazole prophylaxis start date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE164 Infant's age when co-trimoxazole prophylaxis was started + @activity: HIV ARegistration + @description: The number of weeks or months infant was when started on co-trimoxazole (CTX) prophylaxis preventive therapy +*/ +define "Infant's age when co-trimoxazole prophylaxis was started": + [Observation: Cx."Infant's age when co-trimoxazole prophylaxis was started"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE165 Presumptive clinical diagnosis of severe HIV infection in infants + @activity: HIV ARegistration + @description: Presumptive clinical diagnosis of severe HIV infection in infants +*/ +define "Presumptive clinical diagnosis of severe HIV infection in infants": + [Observation: Cx."Presumptive clinical diagnosis of severe HIV infection in infants"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE166 Infant ARV prophylaxis + @activity: HIV ARegistration + @description: Infant is taking an antiretroviral prophylaxis to prevent infection from HIV exposure +*/ +define "Infant ARV prophylaxis": + [Observation: Cx."Infant ARV prophylaxis"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE167 Infant ARV prophylaxis start date + @activity: HIV ARegistration + @description: The date on which the infant was started on an antiretroviral prophylaxis +*/ +define "Infant ARV prophylaxis start date": + [Observation: Cx."Infant ARV prophylaxis start date Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE17 Past pregnancy complications + @activity: HIV ARegistration + @description: Whether the woman has had any complications or problems in any previous pregnancy +*/ +define "Past pregnancy complications": + [Observation: Cx."Past pregnancy complications Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE173 Maternal and child health service visit + @activity: HIV ARegistration + @description: Maternal and child health service visit attended by an HIV-exposed infant +*/ +define "Maternal and child health service visit": + [Observation: Cx."Maternal and child health service visit Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE177 Weeks postpartum + @activity: HIV ARegistration + @description: Number of weeks postpartum on this visit date +*/ +define "Weeks postpartum": + [Observation: Cx."Weeks postpartum"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE178 Birth cohort + @activity: HIV ARegistration + @description: Month and year of infant's birth, which the infant is registered into. The cohort is a group of infants born in the same month, whose status is followed over time. +*/ +define "Birth cohort": + [Observation: Cx."Birth cohort"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE179 Registered in birth cohort + @activity: HIV ARegistration + @description: Whether the infant has been registered in a birth cohort +*/ +define "Registered in birth cohort": + [Observation: Cx."Registered in birth cohort"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE180 EID sample number + @activity: HIV ARegistration + @description: Early infant diagnosis (EID) sample number +*/ +define "EID sample number": + [Observation: Cx."EID sample number"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE181 EID sample 1 + @activity: HIV ARegistration + @description: First sample used to test an infant for HIV +*/ +define "EID sample 1": + [Observation: Cx."EID sample 1"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE182 EID sample 2 + @activity: HIV ARegistration + @description: Second sample used to test an infant for HIV +*/ +define "EID sample 2": + [Observation: Cx."EID sample 2"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE183 EID test number + @activity: HIV ARegistration + @description: Early infant diagnosis (EID) HIV test number using the same sample +*/ +define "EID test number": + [Observation: Cx."EID test number"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE184 EID test number 1 + @activity: HIV ARegistration + @description: First test on a sample to test an infant for HIV +*/ +define "EID test number 1": + [Observation: Cx."EID test number 1"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE185 EID test number 2 + @activity: HIV ARegistration + @description: Second test on a sample to test an infant for HIV +*/ +define "EID test number 2": + [Observation: Cx."EID test number 2"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE186 EID test number 1 test result + @activity: HIV ARegistration + @description: Early infant diagnosis test number 1 test result +*/ +define "EID test number 1 test result": + [Observation: Cx."EID test number 1 test result Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE190 EID test number 2 test result + @activity: HIV ARegistration + @description: Early infant diagnosis test number 2 test result +*/ +define "EID test number 2 test result": + [Observation: Cx."EID test number 2 test result Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE2 Pregnant woman's surname + @activity: HIV ARegistration + @description: Pregnant woman's family name or last name +*/ +define "Pregnant woman's surname": + [Observation: Cx."Pregnant woman's surname"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE216 Test result of syphilis assay 1 + @activity: HIV ARegistration + @description: The result of the first syphilis assay in the testing strategy +*/ +define "Test result of syphilis assay 1": + [Observation: Cx."Test result of syphilis assay 1 Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE220 Test result of syphilis assay 1 repeated + @activity: HIV ARegistration + @description: The result of the first syphilis assay repeated in the testing strategy +*/ +define "Test result of syphilis assay 1 repeated": + [Observation: Cx."Test result of syphilis assay 1 repeated Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE225 Infant HIV status + @activity: HIV ARegistration + @description: HIV status reported after applying the HIV testing algorithm. No single HIV test can provide an HIV-positive diagnosis. +*/ +define "Infant HIV status": + [Observation: Cx."Infant HIV status Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE229 Infant ART start date + @activity: HIV ARegistration + @description: The date on which the infant was started or restarted on antiretroviral therapy (ART) +*/ +define "Infant ART start date": + [Observation: Cx."Infant ART start date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE230 Final diagnosis of HIV-exposed infant + @activity: HIV ARegistration + @description: HIV-exposed infant final status at 18 months or 3 months after cessation of breastfeeding (whichever is later). +*/ +define "Final diagnosis of HIV-exposed infant": + [Observation: Cx."Final diagnosis of HIV-exposed infant Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE234 HIV-exposed infant reason for unknown final status + @activity: HIV ARegistration + @description: The outcome for the infant does not have a final outcome, which may because of death, stopped treatment or lost to follow-up. +*/ +define "HIV-exposed infant reason for unknown final status": + [Observation: Cx."HIV-exposed infant reason for unknown final status Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE239 Date of death of infant + @activity: HIV ARegistration + @description: Date that the infant died +*/ +define "Date of death of infant": + [Observation: Cx."Date of death of infant"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE240 Cause of death of infant + @activity: HIV ARegistration + @description: The infant's cause of death +*/ +define "Cause of death of infant": + [Observation: Cx."Cause of death of infant"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE241 Infant died within 24 hours of childbirth + @activity: HIV ARegistration + @description: The infant died within 24 hours of childbirth +*/ +define "Infant died within 24 hours of childbirth": + [Observation: Cx."Infant died within 24 hours of childbirth"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE242 Action(s) needed during infant follow-up visit + @activity: HIV ARegistration + @description: Any actions needed during infant follow-up visit +*/ +define "Action(s) needed during infant follow-up visit": + [Observation: Cx."Action(s) needed during infant follow-up visit"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE243 Timing of additional infant HIV test + @activity: HIV ARegistration + @description: Age in months when additional infant HIV test is performed +*/ +define "Timing of additional infant HIV test": + [Observation: Cx."Timing of additional infant HIV test"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE244 Date of sample collection of additional infant HIV test + @activity: HIV ARegistration + @description: Date of sample collection of additional infant HIV test +*/ +define "Date of sample collection of additional infant HIV test": + [Observation: Cx."Date of sample collection of additional infant HIV test"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE245 Haemoglobin (Hb) result + @activity: HIV ARegistration + @description: Result of woman's haemoglobin test during ANC, labour or delivery. Full blood count testing is recommended, and if not available, use of haemoglobinometer over haemoglobin colour scale. +*/ +define "Haemoglobin (Hb) result": + [Observation: Cx."Haemoglobin (Hb) result"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE246 Blood group and Rh factor + @activity: HIV ARegistration + @description: Mother's blood type and blood Rh factor +*/ +define "Blood group and Rh factor": + [Observation: Cx."Blood group and Rh factor Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE255 Asymptomatic bacteriuria (ASB) test result + @activity: HIV ARegistration + @description: Result of urine culture (or urine Gram-staining if not available over dipstick tests) for diagnosing asymptomatic bacteriuria +*/ +define "Asymptomatic bacteriuria (ASB) test result": + [Observation: Cx."Asymptomatic bacteriuria (ASB) test result Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE259 Urine protein test result + @activity: HIV ARegistration + @description: Results of urine protein test of mother during ANC visit +*/ +define "Urine protein test result": + [Observation: Cx."Urine protein test result Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE264 Type of hypertensive disorder + @activity: HIV ARegistration + @description: Type of hypertensive disorder of the mother +*/ +define "Type of hypertensive disorder": + [Observation: Cx."Type of hypertensive disorder Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE3 Pregnant woman's unique ID + @activity: HIV ARegistration + @description: Unique identifier generated for new clients or a universal ID, if used in the country +*/ +define "Pregnant woman's unique ID": + [Observation: Cx."Pregnant woman's unique ID"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE35 Other past pregnancy problems (specify) + @activity: HIV ARegistration + @description: Woman experienced other past pregnancy problems not described above (specify) +*/ +define "Other past pregnancy problems (specify)": + [Observation: Cx."Other past pregnancy problems (specify)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE37 Pregnancy in HIV-infected woman + @activity: HIV ARegistration + @description: Any HIV diagnosis in a pregnant woman as determined by the national HIV testing algorithm, or a pregnancy in a woman previously diagnosed with HIV +*/ +define "Pregnancy in HIV-infected woman": + [Observation: Cx."Pregnancy in HIV-infected woman"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE38 Date new pregnancy of HIV-positive woman identified + @activity: HIV ARegistration + @description: Earliest date when a new pregnancy of an HIV-positive woman is recorded +*/ +define "Date new pregnancy of HIV-positive woman identified": + [Observation: Cx."Date new pregnancy of HIV-positive woman identified"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE39 ANC contact during pregnancy + @activity: HIV ARegistration + @description: Whether the mother had at least one ANC contact (visit) +*/ +define "ANC contact during pregnancy": + [Observation: Cx."ANC contact during pregnancy"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE4 Antenatal care number + @activity: HIV ARegistration + @description: Identification number assigned to woman at first visit to the ANC based on national system +*/ +define "Antenatal care number": + [Observation: Cx."Antenatal care number"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE40 Date of first ANC visit + @activity: HIV ARegistration + @description: Date of the pregnant woman's first ANC visit +*/ +define "Date of first ANC visit": + [Observation: Cx."Date of first ANC visit"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE41 Timing of ART initiation + @activity: HIV ARegistration + @description: When the pregnant woman or mother initiated ART, for women living with HIV. +*/ +define "Timing of ART initiation": + [Observation: Cx."Timing of ART initiation Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE45 Maternal use of recommended ART regimen + @activity: HIV ARegistration + @description: Whether the mother is taking a recommended ART regimen +*/ +define "Maternal use of recommended ART regimen": + [Observation: Cx."Maternal use of recommended ART regimen"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE46 Delivery date + @activity: HIV ARegistration + @description: Date on which the woman delivered +*/ +define "Delivery date": + [Observation: Cx."Delivery date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE47 Pregnancy outcome + @activity: HIV ARegistration + @description: Outcome of current pregnancy +*/ +define "Pregnancy outcome": + [Observation: Cx."Pregnancy outcome Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE52 Delivery mode + @activity: HIV ARegistration + @description: Mode of delivery for current pregnancy +*/ +define "Delivery mode": + [Observation: Cx."Delivery mode Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE56 Indications for caesarian section (C/S) + @activity: HIV ARegistration + @description: Indications for caesarian section +*/ +define "Indications for caesarian section (C/S)": + [Observation: Cx."Indications for caesarian section (C/S)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE57 Obstetric complications + @activity: HIV ARegistration + @description: Serious or life-threatening obstetric complications during pregnancy, delivery or postpartum experienced by mother or her newborn +*/ +define "Obstetric complications": + [Observation: Cx."Obstetric complications"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE58 Live birth + @activity: HIV ARegistration + @description: The woman had a live birth +*/ +define "Live birth": + [Observation: Cx."Live birth"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE59 Live birth to an HIV-positive woman + @activity: HIV ARegistration + @description: A woman living with HIV had a live birth +*/ +define "Live birth to an HIV-positive woman": + [Observation: Cx."Live birth to an HIV-positive woman"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE6 Source of gestational age + @activity: HIV ARegistration + @description: Gestational age can be calculated multiple ways. This data element describes where the gestational age above has been calculated from. +*/ +define "Source of gestational age": + [Observation: Cx."Source of gestational age Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE60 Gestational age at birth + @activity: HIV ARegistration + @description: Best estimate of gestational age in completed weeks when infant was born (an indication of prematurity, preterm and extreme preterm) +*/ +define "Gestational age at birth": + [Observation: Cx."Gestational age at birth"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE61 Small for gestational age (SGA) + @activity: HIV ARegistration + @description: Whether the infant was small for gestational age (SGA) at birth (<10th percentile) +*/ +define "Small for gestational age (SGA)": + [Observation: Cx."Small for gestational age (SGA)"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE62 Preterm birth status + @activity: HIV ARegistration + @description: The woman gave birth when the gestational age is less than 37 weeks +*/ +define "Preterm birth status": + [Observation: Cx."Preterm birth status Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE66 Maternal ART start date + @activity: HIV ARegistration + @description: The date on which the infant was started or restarted on ART +*/ +define "Maternal ART start date": + [Observation: Cx."Maternal ART start date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE67 Place of delivery + @activity: HIV ARegistration + @description: The type of place where the woman delivered +*/ +define "Place of delivery": + [Observation: Cx."Place of delivery Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE72 Delivery facility + @activity: HIV ARegistration + @description: Facility where the infant or child was born +*/ +define "Delivery facility": + [Observation: Cx."Delivery facility"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE73 Date of miscarriage or abortion + @activity: HIV ARegistration + @description: Date of the miscarriage/abortion +*/ +define "Date of miscarriage or abortion": + [Observation: Cx."Date of miscarriage or abortion"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE74 Date of death of mother + @activity: HIV ARegistration + @description: Date that the woman died +*/ +define "Date of death of mother": + [Observation: Cx."Date of death of mother"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE75 Cause of death of mother + @activity: HIV ARegistration + @description: The woman's cause of death +*/ +define "Cause of death of mother": + [Observation: Cx."Cause of death of mother"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE76 Infant's first name + @activity: HIV ARegistration + @description: Infant's first or given name +*/ +define "Infant's first name": + [Observation: Cx."Infant's first name"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE77 Infant's surname + @activity: HIV ARegistration + @description: Infant's family name or last name +*/ +define "Infant's surname": + [Observation: Cx."Infant's surname"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE78 Infant's unique ID + @activity: HIV ARegistration + @description: Unique identifier generated for new clients or a universal ID, if used in the country +*/ +define "Infant's unique ID": + [Observation: Cx."Infant's unique ID"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE79 Mother's first name + @activity: HIV ARegistration + @description: Biological mother's first or given name +*/ +define "Mother's first name": + [Observation: Cx."Mother's first name"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE80 Mother's surname + @activity: HIV ARegistration + @description: Biological mother's family name or last name +*/ +define "Mother's surname": + [Observation: Cx."Mother's surname"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE81 Mother's unique ID + @activity: HIV ARegistration + @description: Unique identifier generated for new clients or a universal ID, if used in the country +*/ +define "Mother's unique ID": + [Observation: Cx."Mother's unique ID"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE82 Caregiver's first name + @activity: HIV ARegistration + @description: Caregiver's first or given name +*/ +define "Caregiver's first name": + [Observation: Cx."Caregiver's first name"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE83 Caregiver's surname + @activity: HIV ARegistration + @description: Caregiver's family name or last name +*/ +define "Caregiver's surname": + [Observation: Cx."Caregiver's surname"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE84 Caregiver's unique identifier + @activity: HIV ARegistration + @description: Unique identifier generated for new clients or a universal ID, if used in the country +*/ +define "Caregiver's unique identifier": + [Observation: Cx."Caregiver's unique identifier"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE85 ANC contact date + @activity: HIV ARegistration + @description: The date and time of the client's ANC contact (in the ANC DAK this is called 'Contact date') +*/ +define "ANC contact date": + [Observation: Cx."ANC contact date"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE87 Infant date of birth + @activity: HIV ARegistration + @description: The infant's date of birth (DOB) if known +*/ +define "Infant date of birth": + [Observation: Cx."Infant date of birth"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE88 Date of birth of infant unknown + @activity: HIV ARegistration + @description: Is the client's DOB unknown? +*/ +define "Date of birth of infant unknown": + [Observation: Cx."Date of birth of infant unknown"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE89 Estimated age of infant + @activity: HIV ARegistration + @description: If DOB is unknown, enter the client's estimated age. Display client's age in number of years +*/ +define "Estimated age of infant": + [Observation: Cx."Estimated age of infant"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE90 Age of infant + @activity: HIV ARegistration + @description: Infant age calculated using date of birth +*/ +define "Age of infant": + [Observation: Cx."Age of infant"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE91 Gender of infant + @activity: HIV ARegistration + @description: Gender of the infant +*/ +define "Gender of infant": + [Observation: Cx."Gender of infant Codes"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE95 Infant height + @activity: HIV ARegistration + @description: The infant's height in centimetres +*/ +define "Infant height": + [Observation: Cx."Infant height"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE96 Infant weight + @activity: HIV ARegistration + @description: The infant's current weight in kilograms +*/ +define "Infant weight": + [Observation: Cx."Infant weight"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE97 Birth weight + @activity: HIV ARegistration + @description: Birth weight in kg of the baby +*/ +define "Birth weight": + [Observation: Cx."Birth weight"] O + where O.status in { 'final', 'amended', 'corrected' } + and Last(Split(O.encounter.reference, '/')) = Encounter.id + + +/* + @dataElement: HIV.E.DE98 Low birth weight + @activity: HIV ARegistration + @description: Note if infant ): + case + when choice is FHIR.dateTime then + Interval[FHIRHelpers.ToDateTime(choice as FHIR.dateTime), FHIRHelpers.ToDateTime(choice as FHIR.dateTime)] + when choice is FHIR.Period then + FHIRHelpers.ToInterval(choice as FHIR.Period) + when choice is FHIR.instant then + Interval[FHIRHelpers.ToDateTime(choice as FHIR.instant), FHIRHelpers.ToDateTime(choice as FHIR.instant)] + when choice is FHIR.Age then + Interval[FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity(choice as FHIR.Age), + FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity(choice as FHIR.Age) + 1 year) + when choice is FHIR.Range then + Interval[FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity((choice as FHIR.Range).low), + FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity((choice as FHIR.Range).high) + 1 year) + when choice is FHIR.Timing then + Message(null as Interval, true, '1', 'Error', 'Cannot compute a single interval from a Timing type') + when choice is FHIR.string then + Message(null as Interval, true, '1', 'Error', 'Cannot compute an interval from a String value') + else + null as Interval + end + +/* +@description: Returns an interval representing the normalized Abatement of a given Condition resource. +@comment: NOTE: Due to the complexity of determining an interval from a String, this function will throw +a run-time exception if used with a Condition instance that has a String as the abatement value. +*/ +define function ToAbatementInterval(condition Condition): + if condition.abatement is FHIR.dateTime then + Interval[FHIRHelpers.ToDateTime(condition.abatement as FHIR.dateTime), FHIRHelpers.ToDateTime(condition.abatement as FHIR.dateTime)] + else if condition.abatement is FHIR.Period then + FHIRHelpers.ToInterval(condition.abatement as FHIR.Period) + else if condition.abatement is FHIR.string then + Message(null as Interval, true, '1', 'Error', 'Cannot compute an interval from a String value') + else if condition.abatement is FHIR.Age then + Interval[FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity(condition.abatement as FHIR.Age), + FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity(condition.abatement as FHIR.Age) + 1 year) + else if condition.abatement is FHIR.Range then + Interval[FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity((condition.abatement as FHIR.Range).low), + FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity((condition.abatement as FHIR.Range).high) + 1 year) + else if condition.abatement is FHIR.boolean then + Interval[end of ToInterval(condition.onset), condition.recordedDate) + else null + +/* +@description: Returns an interval representing the normalized prevalence period of a given Condition resource. +@comment: Uses the ToInterval and ToAbatementInterval functions to determine the widest potential interval from +onset to abatement as specified in the given Condition. +*/ +define function ToPrevalenceInterval(condition Condition): +if condition.clinicalStatus ~ "active" + or condition.clinicalStatus ~ "recurrence" + or condition.clinicalStatus ~ "relapse" then + Interval[start of ToInterval(condition.onset), end of ToAbatementInterval(condition)] +else + Interval[start of ToInterval(condition.onset), end of ToAbatementInterval(condition)) + +/* +@description: Returns any extensions defined on the given resource with the specified url. +@comment: NOTE: Extensions are not the preferred approach, but are used as a way to access +content that is defined by extensions but not yet surfaced in the +CQL model info. +*/ +define function Extensions(domainResource DomainResource, url String): + domainResource.extension E + where E.url = url + return E + +/* +@description: Returns the single extension (if present) on the given resource with the specified url. +@comment: This function uses singleton from to ensure that a run-time exception is thrown if there +is more than one extension on the given resource with the specified url. +*/ +define function Extension(domainResource DomainResource, url String): + singleton from "Extensions"(domainResource, url) + +/* +@description: Returns any extensions defined on the given element with the specified url. +@comment: NOTE: Extensions are not the preferred approach, but are used as a way to access +content that is defined by extensions but not yet surfaced in the CQL model info. +*/ +define function Extensions(element Element, url String): + element.extension E + where E.url = url + return E + +/* +@description: Returns the single extension (if present) on the given element with the specified url. +@comment: This function uses singleton from to ensure that a run-time exception is thrown if there +is more than one extension on the given resource with the specified url. +*/ +define function Extension(element Element, url String): + singleton from Extensions(element, url) + +/* +@description: Returns any modifier extensions defined on the given resource with the specified url. +@comment: NOTE: Extensions are not the preferred approach, but are used as a way to access +content that is defined by extensions but not yet surfaced in the +CQL model info. +*/ +define function ModifierExtensions(domainResource DomainResource, url String): + domainResource.modifierExtension E + where E.url = url + return E + +/* +@description: Returns the single modifier extension (if present) on the given resource with the specified url. +@comment: This function uses singleton from to ensure that a run-time exception is thrown if there +is more than one extension on the given resource with the specified url. +*/ +define function ModifierExtension(domainResource DomainResource, url String): + singleton from ModifierExtensions(domainResource, url) + +/* +@description: Returns any modifier extensions defined on the given element with the specified url. +@comment: NOTE: Extensions are not the preferred approach, but are used as a way to access +content that is defined by extensions but not yet surfaced in the CQL model info. +*/ +define function ModifierExtensions(element BackboneElement, url String): + element.modifierExtension E + where E.url = url + return E + +/* +@description: Returns the single modifier extension (if present) on the given element with the specified url. +@comment: This function uses singleton from to ensure that a run-time exception is thrown if there +is more than one extension on the given resource with the specified url. +*/ +define function ModifierExtension(element BackboneElement, url String): + singleton from ModifierExtensions(element, url) + +/* +@description: Returns any base-FHIR extensions defined on the given resource with the specified id. +@comment: NOTE: Extensions are not the preferred approach, but are used as a way to access +content that is defined by extensions but not yet surfaced in the CQL model info. +*/ +define function BaseExtensions(domainResource DomainResource, id String): + domainResource.extension E + where E.url = ('http://hl7.org/fhir/StructureDefinition/' + id) + return E + +/* +@description: Returns the single base-FHIR extension (if present) on the given resource with the specified id. +@comment: This function uses singleton from to ensure that a run-time exception is thrown if there +is more than one extension on the given resource with the specified url. +*/ +define function BaseExtension(domainResource DomainResource, id String): + singleton from BaseExtensions(domainResource, id) + +/* +@description: Returns any base-FHIR extensions defined on the given element with the specified id. +@comment: NOTE: Extensions are not the preferred approach, but are used as a way to access +content that is defined by extensions but not yet surfaced in the CQL model info. +*/ +define function BaseExtensions(element Element, id String): + element.extension E + where E.url = ('http://hl7.org/fhir/StructureDefinition/' + id) + return E + +/* +@description: Returns the single base-FHIR extension (if present) on the given element with the specified id. +@comment: This function uses singleton from to ensure that a run-time exception is thrown if there +is more than one extension on the given resource with the specified url. +*/ +define function BaseExtension(element Element, id String): + singleton from BaseExtensions(element, id) + +/* +@description: Returns any base-FHIR modifier extensions defined on the given resource with the specified id. +@comment: NOTE: Extensions are not the preferred approach, but are used as a way to access +content that is defined by extensions but not yet surfaced in the CQL model info. +*/ +define function BaseModifierExtensions(domainResource DomainResource, id String): + domainResource.modifierExtension E + where E.url = ('http://hl7.org/fhir/StructureDefinition/' + id) + return E + +/* +@description: Returns the single base-FHIR modifier extension (if present) on the given resource with the specified id. +@comment: This function uses singleton from to ensure that a run-time exception is thrown if there +is more than one extension on the given resource with the specified url. +*/ +define function BaseModifierExtension(domainResource DomainResource, id String): + singleton from BaseModifierExtensions(domainResource, id) + +/* +@description: Returns any base-FHIR modifier extensions defined on the given element with the specified id. +@comment: NOTE: Extensions are not the preferred approach, but are used as a way to access +content that is defined by extensions but not yet surfaced in the CQL model info. +*/ +define function BaseModifierExtensions(element BackboneElement, id String): + element.modifierExtension E + where E.url = ('http://hl7.org/fhir/StructureDefinition/' + id) + return E + +/* +@description: Returns the single base-FHIR extension (if present) on the given element with the specified id. +@comment: This function uses singleton from to ensure that a run-time exception is thrown if there +is more than one extension on the given resource with the specified url. +*/ +define function BaseModifierExtension(element BackboneElement, id String): + singleton from BaseModifierExtensions(element, id) + + + +define fluent function references(reference FHIR.Reference, resource FHIR.Resource): + resource.id = Last(Split(reference.reference, '/')) + +define fluent function references(references List, resource FHIR.Resource): + exists (references R where R.references(resource)) \ No newline at end of file diff --git a/tests/data/cql/FHIRHelpers.cql b/tests/data/cql/FHIRHelpers.cql new file mode 100644 index 0000000..87ad2db --- /dev/null +++ b/tests/data/cql/FHIRHelpers.cql @@ -0,0 +1,407 @@ +/* +@author: Bryn Rhodes +@description: This library defines functions to convert between FHIR + data types and CQL system-defined types, as well as functions to support + FHIRPath implementation. For more information, see the FHIRHelpers wiki page: + https://github.com/cqframework/clinical_quality_language/wiki/FHIRHelpers +@allowFluent: true +*/ +library FHIRHelpers version '4.0.1' + +using FHIR version '4.0.1' + +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] + +define function ToCalendarUnit(unit System.String): + case unit + when 'ms' then 'millisecond' + when 's' then 'second' + when 'min' then 'minute' + when 'h' then 'hour' + when 'd' then 'day' + when 'wk' then 'week' + when 'mo' then 'month' + when 'a' then 'year' + else unit + end + +define function ToQuantity(quantity FHIR.Quantity): + case + when quantity is null then null + when quantity.value is null then null + when quantity.comparator is not null then + Message(null, true, 'FHIRHelpers.ToQuantity.ComparatorQuantityNotSupported', 'Error', 'FHIR Quantity value has a comparator and cannot be converted to a System.Quantity value.') + when quantity.system is null or quantity.system.value = 'http://unitsofmeasure.org' + or quantity.system.value = 'http://hl7.org/fhirpath/CodeSystem/calendar-units' then + System.Quantity { value: quantity.value.value, unit: ToCalendarUnit(Coalesce(quantity.code.value, quantity.unit.value, '1')) } + else + Message(null, true, 'FHIRHelpers.ToQuantity.InvalidFHIRQuantity', 'Error', 'Invalid FHIR Quantity code: ' & quantity.unit.value & ' (' & quantity.system.value & '|' & quantity.code.value & ')') + end + +define function ToQuantityIgnoringComparator(quantity FHIR.Quantity): + case + when quantity is null then null + when quantity.value is null then null + when quantity.system is null or quantity.system.value = 'http://unitsofmeasure.org' + or quantity.system.value = 'http://hl7.org/fhirpath/CodeSystem/calendar-units' then + System.Quantity { value: quantity.value.value, unit: ToCalendarUnit(Coalesce(quantity.code.value, quantity.unit.value, '1')) } + else + Message(null, true, 'FHIRHelpers.ToQuantity.InvalidFHIRQuantity', 'Error', 'Invalid FHIR Quantity code: ' & quantity.unit.value & ' (' & quantity.system.value & '|' & quantity.code.value & ')') + end + +define function ToInterval(quantity FHIR.Quantity): + if quantity is null then null else + case quantity.comparator.value + when '<' then + Interval[ + null, + ToQuantityIgnoringComparator(quantity) + ) + when '<=' then + Interval[ + null, + ToQuantityIgnoringComparator(quantity) + ] + when '>=' then + Interval[ + ToQuantityIgnoringComparator(quantity), + null + ] + when '>' then + Interval( + ToQuantityIgnoringComparator(quantity), + null + ] + else + Interval[ToQuantity(quantity), ToQuantity(quantity)] + end + +define function ToRatio(ratio FHIR.Ratio): + if ratio is null then + null + else + System.Ratio { numerator: ToQuantity(ratio.numerator), denominator: ToQuantity(ratio.denominator) } + +define function ToInterval(range FHIR.Range): + if range is null then + null + else + Interval[ToQuantity(range.low), ToQuantity(range.high)] + +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 + } + +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 + } + +define function reference(reference String): + if reference is null then + null + else + Reference { reference: string { value: reference } } + +define function resolve(reference String) returns Resource: external +define function resolve(reference Reference) returns Resource: external +define function reference(resource Resource) returns Reference: external +define function extension(element Element, url String) returns List: external +define function extension(resource Resource, url String) returns List: external +define function hasValue(element Element) returns Boolean: external +define function getValue(element Element) returns Any: external +define function ofType(identifier String) returns List: external +define function is(identifier String) returns Boolean: external +define function as(identifier String) returns Any: external +define function elementDefinition(element Element) returns ElementDefinition: external +define function slice(element Element, url String, name String) returns List: external +define function checkModifiers(resource Resource) returns Resource: external +define function checkModifiers(resource Resource, modifier String) returns Resource: external +define function checkModifiers(element Element) returns Element: external +define function checkModifiers(element Element, modifier String) returns Element: external +define function conformsTo(resource Resource, structure String) returns Boolean: external +define function memberOf(code code, valueSet String) returns Boolean: external +define function memberOf(coding Coding, valueSet String) returns Boolean: external +define function memberOf(concept CodeableConcept, valueSet String) returns Boolean: external +define function subsumes(coding Coding, subsumedCoding Coding) returns Boolean: external +define function subsumes(concept CodeableConcept, subsumedConcept CodeableConcept) returns Boolean: external +define function subsumedBy(coding Coding, subsumingCoding Coding) returns Boolean: external +define function subsumedBy(concept CodeableConcept, subsumingConcept CodeableConcept) returns Boolean: external +define function htmlChecks(element Element) returns Boolean: external + +define function ToString(value AccountStatus): value.value +define function ToString(value ActionCardinalityBehavior): value.value +define function ToString(value ActionConditionKind): value.value +define function ToString(value ActionGroupingBehavior): value.value +define function ToString(value ActionParticipantType): value.value +define function ToString(value ActionPrecheckBehavior): value.value +define function ToString(value ActionRelationshipType): value.value +define function ToString(value ActionRequiredBehavior): value.value +define function ToString(value ActionSelectionBehavior): value.value +define function ToString(value ActivityDefinitionKind): value.value +define function ToString(value ActivityParticipantType): value.value +define function ToString(value AddressType): value.value +define function ToString(value AddressUse): value.value +define function ToString(value AdministrativeGender): value.value +define function ToString(value AdverseEventActuality): value.value +define function ToString(value AggregationMode): value.value +define function ToString(value AllergyIntoleranceCategory): value.value +define function ToString(value AllergyIntoleranceCriticality): value.value +define function ToString(value AllergyIntoleranceSeverity): value.value +define function ToString(value AllergyIntoleranceType): value.value +define function ToString(value AppointmentStatus): value.value +define function ToString(value AssertionDirectionType): value.value +define function ToString(value AssertionOperatorType): value.value +define function ToString(value AssertionResponseTypes): value.value +define function ToString(value AuditEventAction): value.value +define function ToString(value AuditEventAgentNetworkType): value.value +define function ToString(value AuditEventOutcome): value.value +define function ToString(value BindingStrength): value.value +define function ToString(value BiologicallyDerivedProductCategory): value.value +define function ToString(value BiologicallyDerivedProductStatus): value.value +define function ToString(value BiologicallyDerivedProductStorageScale): value.value +define function ToString(value BundleType): value.value +define function ToString(value CapabilityStatementKind): value.value +define function ToString(value CarePlanActivityKind): value.value +define function ToString(value CarePlanActivityStatus): value.value +define function ToString(value CarePlanIntent): value.value +define function ToString(value CarePlanStatus): value.value +define function ToString(value CareTeamStatus): value.value +define function ToString(value CatalogEntryRelationType): value.value +define function ToString(value ChargeItemDefinitionPriceComponentType): value.value +define function ToString(value ChargeItemStatus): value.value +define function ToString(value ClaimResponseStatus): value.value +define function ToString(value ClaimStatus): value.value +define function ToString(value ClinicalImpressionStatus): value.value +define function ToString(value CodeSearchSupport): value.value +define function ToString(value CodeSystemContentMode): value.value +define function ToString(value CodeSystemHierarchyMeaning): value.value +define function ToString(value CommunicationPriority): value.value +define function ToString(value CommunicationRequestStatus): value.value +define function ToString(value CommunicationStatus): value.value +define function ToString(value CompartmentCode): value.value +define function ToString(value CompartmentType): value.value +define function ToString(value CompositionAttestationMode): value.value +define function ToString(value CompositionStatus): value.value +define function ToString(value ConceptMapEquivalence): value.value +define function ToString(value ConceptMapGroupUnmappedMode): value.value +define function ToString(value ConditionalDeleteStatus): value.value +define function ToString(value ConditionalReadStatus): value.value +define function ToString(value ConsentDataMeaning): value.value +define function ToString(value ConsentProvisionType): value.value +define function ToString(value ConsentState): value.value +define function ToString(value ConstraintSeverity): value.value +define function ToString(value ContactPointSystem): value.value +define function ToString(value ContactPointUse): value.value +define function ToString(value ContractPublicationStatus): value.value +define function ToString(value ContractStatus): value.value +define function ToString(value ContributorType): value.value +define function ToString(value CoverageStatus): value.value +define function ToString(value CurrencyCode): value.value +define function ToString(value DayOfWeek): value.value +define function ToString(value DaysOfWeek): value.value +define function ToString(value DetectedIssueSeverity): value.value +define function ToString(value DetectedIssueStatus): value.value +define function ToString(value DeviceMetricCalibrationState): value.value +define function ToString(value DeviceMetricCalibrationType): value.value +define function ToString(value DeviceMetricCategory): value.value +define function ToString(value DeviceMetricColor): value.value +define function ToString(value DeviceMetricOperationalStatus): value.value +define function ToString(value DeviceNameType): value.value +define function ToString(value DeviceRequestStatus): value.value +define function ToString(value DeviceUseStatementStatus): value.value +define function ToString(value DiagnosticReportStatus): value.value +define function ToString(value DiscriminatorType): value.value +define function ToString(value DocumentConfidentiality): value.value +define function ToString(value DocumentMode): value.value +define function ToString(value DocumentReferenceStatus): value.value +define function ToString(value DocumentRelationshipType): value.value +define function ToString(value EligibilityRequestPurpose): value.value +define function ToString(value EligibilityRequestStatus): value.value +define function ToString(value EligibilityResponsePurpose): value.value +define function ToString(value EligibilityResponseStatus): value.value +define function ToString(value EnableWhenBehavior): value.value +define function ToString(value EncounterLocationStatus): value.value +define function ToString(value EncounterStatus): value.value +define function ToString(value EndpointStatus): value.value +define function ToString(value EnrollmentRequestStatus): value.value +define function ToString(value EnrollmentResponseStatus): value.value +define function ToString(value EpisodeOfCareStatus): value.value +define function ToString(value EventCapabilityMode): value.value +define function ToString(value EventTiming): value.value +define function ToString(value EvidenceVariableType): value.value +define function ToString(value ExampleScenarioActorType): value.value +define function ToString(value ExplanationOfBenefitStatus): value.value +define function ToString(value ExposureState): value.value +define function ToString(value ExtensionContextType): value.value +define function ToString(value FHIRAllTypes): value.value +define function ToString(value FHIRDefinedType): value.value +define function ToString(value FHIRDeviceStatus): value.value +define function ToString(value FHIRResourceType): value.value +define function ToString(value FHIRSubstanceStatus): value.value +define function ToString(value FHIRVersion): value.value +define function ToString(value FamilyHistoryStatus): value.value +define function ToString(value FilterOperator): value.value +define function ToString(value FlagStatus): value.value +define function ToString(value GoalLifecycleStatus): value.value +define function ToString(value GraphCompartmentRule): value.value +define function ToString(value GraphCompartmentUse): value.value +define function ToString(value GroupMeasure): value.value +define function ToString(value GroupType): value.value +define function ToString(value GuidanceResponseStatus): value.value +define function ToString(value GuidePageGeneration): value.value +define function ToString(value GuideParameterCode): value.value +define function ToString(value HTTPVerb): value.value +define function ToString(value IdentifierUse): value.value +define function ToString(value IdentityAssuranceLevel): value.value +define function ToString(value ImagingStudyStatus): value.value +define function ToString(value ImmunizationEvaluationStatus): value.value +define function ToString(value ImmunizationStatus): value.value +define function ToString(value InvoicePriceComponentType): value.value +define function ToString(value InvoiceStatus): value.value +define function ToString(value IssueSeverity): value.value +define function ToString(value IssueType): value.value +define function ToString(value LinkType): value.value +define function ToString(value LinkageType): value.value +define function ToString(value ListMode): value.value +define function ToString(value ListStatus): value.value +define function ToString(value LocationMode): value.value +define function ToString(value LocationStatus): value.value +define function ToString(value MeasureReportStatus): value.value +define function ToString(value MeasureReportType): value.value +define function ToString(value MediaStatus): value.value +define function ToString(value MedicationAdministrationStatus): value.value +define function ToString(value MedicationDispenseStatus): value.value +define function ToString(value MedicationKnowledgeStatus): value.value +define function ToString(value MedicationRequestIntent): value.value +define function ToString(value MedicationRequestPriority): value.value +define function ToString(value MedicationRequestStatus): value.value +define function ToString(value MedicationStatementStatus): value.value +define function ToString(value MedicationStatus): value.value +define function ToString(value MessageSignificanceCategory): value.value +define function ToString(value Messageheader_Response_Request): value.value +define function ToString(value MimeType): value.value +define function ToString(value NameUse): value.value +define function ToString(value NamingSystemIdentifierType): value.value +define function ToString(value NamingSystemType): value.value +define function ToString(value NarrativeStatus): value.value +define function ToString(value NoteType): value.value +define function ToString(value NutritiionOrderIntent): value.value +define function ToString(value NutritionOrderStatus): value.value +define function ToString(value ObservationDataType): value.value +define function ToString(value ObservationRangeCategory): value.value +define function ToString(value ObservationStatus): value.value +define function ToString(value OperationKind): value.value +define function ToString(value OperationParameterUse): value.value +define function ToString(value OrientationType): value.value +define function ToString(value ParameterUse): value.value +define function ToString(value ParticipantRequired): value.value +define function ToString(value ParticipantStatus): value.value +define function ToString(value ParticipationStatus): value.value +define function ToString(value PaymentNoticeStatus): value.value +define function ToString(value PaymentReconciliationStatus): value.value +define function ToString(value ProcedureStatus): value.value +define function ToString(value PropertyRepresentation): value.value +define function ToString(value PropertyType): value.value +define function ToString(value ProvenanceEntityRole): value.value +define function ToString(value PublicationStatus): value.value +define function ToString(value QualityType): value.value +define function ToString(value QuantityComparator): value.value +define function ToString(value QuestionnaireItemOperator): value.value +define function ToString(value QuestionnaireItemType): value.value +define function ToString(value QuestionnaireResponseStatus): value.value +define function ToString(value ReferenceHandlingPolicy): value.value +define function ToString(value ReferenceVersionRules): value.value +define function ToString(value ReferredDocumentStatus): value.value +define function ToString(value RelatedArtifactType): value.value +define function ToString(value RemittanceOutcome): value.value +define function ToString(value RepositoryType): value.value +define function ToString(value RequestIntent): value.value +define function ToString(value RequestPriority): value.value +define function ToString(value RequestStatus): value.value +define function ToString(value ResearchElementType): value.value +define function ToString(value ResearchStudyStatus): value.value +define function ToString(value ResearchSubjectStatus): value.value +define function ToString(value ResourceType): value.value +define function ToString(value ResourceVersionPolicy): value.value +define function ToString(value ResponseType): value.value +define function ToString(value RestfulCapabilityMode): value.value +define function ToString(value RiskAssessmentStatus): value.value +define function ToString(value SPDXLicense): value.value +define function ToString(value SearchComparator): value.value +define function ToString(value SearchEntryMode): value.value +define function ToString(value SearchModifierCode): value.value +define function ToString(value SearchParamType): value.value +define function ToString(value SectionMode): value.value +define function ToString(value SequenceType): value.value +define function ToString(value ServiceRequestIntent): value.value +define function ToString(value ServiceRequestPriority): value.value +define function ToString(value ServiceRequestStatus): value.value +define function ToString(value SlicingRules): value.value +define function ToString(value SlotStatus): value.value +define function ToString(value SortDirection): value.value +define function ToString(value SpecimenContainedPreference): value.value +define function ToString(value SpecimenStatus): value.value +define function ToString(value Status): value.value +define function ToString(value StrandType): value.value +define function ToString(value StructureDefinitionKind): value.value +define function ToString(value StructureMapContextType): value.value +define function ToString(value StructureMapGroupTypeMode): value.value +define function ToString(value StructureMapInputMode): value.value +define function ToString(value StructureMapModelMode): value.value +define function ToString(value StructureMapSourceListMode): value.value +define function ToString(value StructureMapTargetListMode): value.value +define function ToString(value StructureMapTransform): value.value +define function ToString(value SubscriptionChannelType): value.value +define function ToString(value SubscriptionStatus): value.value +define function ToString(value SupplyDeliveryStatus): value.value +define function ToString(value SupplyRequestStatus): value.value +define function ToString(value SystemRestfulInteraction): value.value +define function ToString(value TaskIntent): value.value +define function ToString(value TaskPriority): value.value +define function ToString(value TaskStatus): value.value +define function ToString(value TestReportActionResult): value.value +define function ToString(value TestReportParticipantType): value.value +define function ToString(value TestReportResult): value.value +define function ToString(value TestReportStatus): value.value +define function ToString(value TestScriptRequestMethodCode): value.value +define function ToString(value TriggerType): value.value +define function ToString(value TypeDerivationRule): value.value +define function ToString(value TypeRestfulInteraction): value.value +define function ToString(value UDIEntryType): value.value +define function ToString(value UnitsOfTime): value.value +define function ToString(value Use): value.value +define function ToString(value VariableType): value.value +define function ToString(value VisionBase): value.value +define function ToString(value VisionEyes): value.value +define function ToString(value VisionStatus): value.value +define function ToString(value XPathUsageType): value.value +define function ToString(value base64Binary): value.value +define function ToBoolean(value boolean): value.value +define function ToDate(value date): value.value +define function ToDateTime(value dateTime): value.value +define function ToDecimal(value decimal): value.value +define function ToDateTime(value instant): value.value +define function ToInteger(value integer): value.value +define function ToString(value string): value.value +define function ToTime(value time): value.value +define function ToString(value uri): value.value +define function ToString(value xhtml): value.value \ No newline at end of file diff --git a/tests/data/cql/HIVB2DT.cql b/tests/data/cql/HIVB2DT.cql new file mode 100644 index 0000000..58de7ee --- /dev/null +++ b/tests/data/cql/HIVB2DT.cql @@ -0,0 +1,82 @@ +/* + * Library: HIV.B2.DT + * 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? + */ + +library HIVB2DT + + using FHIR version '4.0.1' + + + include HIVIndicatorCommon version '0.0.1' called HIC + include FHIRHelpers version '4.0.1' + include WHOCommon called WCom + include FHIRCommon called FC + + 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": '' + + context Patient + + /* + * Age = ≥ 10 years + */ + +define "Age_10_or_more": + AgeInYearsAt(Today()) >= 10 + + /* + * Age < 10 years + */ + +define "Age_less_than_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. + +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. diff --git a/tests/data/cql/HIVB7DT.cql b/tests/data/cql/HIVB7DT.cql new file mode 100644 index 0000000..aaaef5f --- /dev/null +++ b/tests/data/cql/HIVB7DT.cql @@ -0,0 +1,154 @@ +/* + * Library: HIV.B7.DT Test Using Algorithm + * WHO standard testing strategy for HIV-1 diagnosis (among people ≥18 months of age) + * HIV.B7 Test for HIV using testing algorithm, HIV.C4 Test for HIV using testing algorithm, HIV.D.11 Retest using HIV strategy + */ + +library HIVB7DT + +using FHIR version '4.0.1' + +//codesystem "Custom_Codes": 'http://fhir.org/guides/who/hiv-dak/CodeSystem/HIV-DAKConcepts' +codesystem "HIV_DAK_Codes": 'http://fhir.org/guides/who/hiv-dak/CodeSystem/HIV-DAKConcepts' +//valueset "TestresultofHIVassay1Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de95' +valueset "Assay 1 reactive": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de95' +valueset "Assay 1": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de90' +valueset "Assay 2": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de91' +valueset "Assay 2 reactive": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-e-de205' +valueset "Assay 2 non-reactive": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-e-de206' +valueset "Assay 3": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de92' +valueset "Assay 1 repeated": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de93' +valueset "HIVtesttypeCodes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de82' +valueset "Reactive": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de103' +valueset "Non-reactive": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de104' + +include FHIRHelpers version '4.0.1' +include WHOCommon called WCom +include FHIRCommon called FC + +//code "Assay 1 Reactive": 'HIV.B.DE95' from "TestresultofHIVassay1Codes" display 'Assay 1 reactive' +//code "Reactive": 'HIV.B.DE103' from "HIV_DAK_Codes" display 'Reactive' +//code "Non-reactive": 'HIV.B.DE104' from "HIV_DAK_Codes" display 'Non-reactive' +code "Rapid diagnostic test for HIV": 'HIV.B.DE82' from "HIV_DAK_Codes" display 'Rapid diagnostic test for HIV' +code "Enzyme immunoassay for HIV": 'HIV.B.DE83' from "HIV_DAK_Codes" display 'Enzyme immunoassay for HIV' +//code "Assay 1": 'HIV.B.DE90' from "HIV_DAK_Codes" display 'Assay 1' +//code "Assay 2": 'HIV.B.DE91' from "HIV_DAK_Codes" display 'Assay 2' +//code "Assay 3": 'HIV.B.DE92' from "HIV_DAK_Codes" display 'Assay 3' +//code "Assay 1 repeated": 'HIV.B.DE93' from "HIV_DAK_Codes" display 'Assay 1 repeated' +//code "Assay 2 reactive": 'HIV.E.DE205' from "HIV_DAK_Codes" display 'Assay 2 reactive' +//code "Assay 2 non-reactive": 'HIV.E.DE206' from "HIV_DAK_Codes" display 'Assay 2 non-reactive' +//code "Assay 1 reactive": 'HIV.B.DE95' from "HIV_DAK_Codes" display 'Assay 2 non-reactive' + + /*valueset "Assay 2 reactive": 'HIV.E.DE205'*/ + +context Patient + +define "Age_greater_than_18_months": + AgeInMonthsAt(Today()) >= 18 + + +define "Report as HIV-negative": + [Observation] O + //@triggeredBy order for Assay 1 + with [ServiceRequest] SR + such that O.basedOn.references(SR) and SR.code in "Assay 1" + where (O.status in { 'final', 'amended' } + and O.code in "HIVtesttypeCodes" + and O.value in "Non-reactive" + and "Age_greater_than_18_months") + +/* Output observation as HIV negative */ +/*@triggeredBy Assay 1 */ + +define "Should Continue with Performing HIV Assay 2": + [Observation] O + //@triggeredBy ~ order for Assay 1 + with [ServiceRequest] SR + such that O.basedOn.references(SR) and SR.code in "Assay 1" + where (O.status in { 'final', 'amended' } + and O.code in "HIVtesttypeCodes" + and O.value in "Reactive" + and "Age_greater_than_18_months") + +/* Output Service Request for Assay 2 */ + +define "Should Continue with Performing HIV Assay 1 repeated": + [Observation] O + //@triggeredBy ~ "Continue with performing HIV 'Assay 2'" + with [ServiceRequest] SR + such that O.basedOn.references(SR) and SR.reasonCode in "Assay 1 reactive" and SR.code in "Assay 2" + where (O.status in { 'final', 'amended' } + and O.code in "HIVtesttypeCodes" + and O.value in "Non-reactive" + and "Age_greater_than_18_months") + +/* Output Service Request for Continue with performing HIV 'Assay 1 repeated' */ + + define "Should Continue with Performing HIV Assay 3": + [Observation] O + //@triggeredBy ~ "Continue with performing HIV 'Assay 2'" + with [ServiceRequest] SR + such that O.basedOn.references(SR) and SR.reasonCode in "Assay 1 reactive" and SR.code in "Assay 2" + where (O.status in { 'final', 'amended' } + and O.code in "HIVtesttypeCodes" + and O.value in "Reactive" + and "Age_greater_than_18_months") + + /* Output Service Request for Continue with performing Assay 3 */ + +define "Report as HIV-negative after assay 1 repeated": + [Observation] O + //@triggeredBy ~ "Continue with performing HIV 'Assay 1 repeated'" + with [ServiceRequest] SR + such that O.basedOn.references(SR) and SR.reasonCode in "Assay 2 non-reactive" and SR.code in "Assay 1 repeated" + where (O.status in { 'final', 'amended' } + and O.code in "HIVtesttypeCodes" + and O.value in "Non-reactive" + and "Age_greater_than_18_months") + +/* Output observation as HIV negative */ + +define "Report as HIV-inconclusive after assay 1 repeated": + [Observation] O + //@triggeredBy ~ "Continue with performing HIV 'Assay 1 repeated'" + with [ServiceRequest] SR + such that O.basedOn.references(SR) and SR.reasonCode in "Assay 2 non-reactive" and SR.code in "Assay 1 repeated" + where (O.status in { 'final', 'amended' } + and O.code in "HIVtesttypeCodes" + and O.value in "Reactive" + and "Age_greater_than_18_months") + +/* Output observation as 'HIV-inconclusive' */ +/* Output PlanDefinition as Schedule retest date on "Visit date" + 14 days */ + +define "Report as HIV-inconclusive after assay 3": + [Observation] O + //@triggeredBy ~ "Continue with performing HIV 'Assay 3'" + with [ServiceRequest] SR + such that O.basedOn.references(SR) and SR.reasonCode in "Assay 2 reactive" and SR.code in "Assay 3" + where (O.status in { 'final', 'amended' } + and O.code in "HIVtesttypeCodes" + and O.value in "Non-reactive" + and "Age_greater_than_18_months") + +/* Output observation as 'HIV-inconclusive' */ +/* Output PlanDefinition as Schedule retest date on "Visit date" + 14 days */ + +define "Report as HIV-positive": + [Observation] O + //@triggeredBy ~ "Continue with performing HIV 'Assay 3'" + with [ServiceRequest] SR + such that O.basedOn.references(SR) and SR.reasonCode in "Assay 2 reactive" and SR.code in "Assay 3" + where (O.status in { 'final', 'amended' } + and O.code in "HIVtesttypeCodes" + and O.value in "Reactive" + and "Age_greater_than_18_months") + + +/* Output observation as 'HIV-positive' */ + +/* +[Observation] needs to have the following codes and elements + where O.status ~ {'final', 'amended'} + and O.value ~ HIC."HIV-positive" + */ \ No newline at end of file diff --git a/tests/data/cql/HIVIND18.cql b/tests/data/cql/HIVIND18.cql new file mode 100644 index 0000000..4239331 --- /dev/null +++ b/tests/data/cql/HIVIND18.cql @@ -0,0 +1,76 @@ +/* +HIV.IND.18 +People living with HIV who know their HIV status (first 95) + +NUMERATOR +COUNT of clients with "HIV status"='HIV-positive' AND "Date informed of HIV-positive diagnosis" before reporting period end date +This right now calculates cumulative number of hiv poz - up to end of reporting period. Not within measurement period. + +Exclude clients who are lost to follow up, transferred out, died, or refused (stopped) ART +I DONT BELIEVE EXCLUSION BELONGS HERE + +DENOMINATOR +Estimated number of people living with HIV + +• Gender (female, male, other**) +• Age (0–4, 5–9, 10–14, 15–19, 20–24, 25–49, 50+ years)*** +• Key populations (men who have sex with men, people living in prisons and other closed +settings, people who inject drugs, sex workers, trans and gender diverse people)**** +• ANC attendees +• Cities and other administrative regions of epidemiologic importance + +*/ + +library HIVIND18 + +using FHIR version '4.0.1' + + +include HIVIndicatorCommon version '0.0.1' called HIC +include FHIRHelpers version '4.0.1' +include WHOCommon called WCom +include FHIRCommon called FC + +parameter "Measurement Period" Interval default Interval[@2020-01-01, @2020-01-31] + +context Patient + +define "numerator": + exists(HIC."HIV Positive Condition" C + where C.onset before end of "Measurement Period") + or + exists(HIC."HIV Positive Observation" O + where O.issued before end of "Measurement Period" + ) + +//define denominator? +//How to bring in data from external sources + +/* + * Disaggregators + */ + +define "Administrative Gender Stratifier": + HIC."By Administrative Gender Stratifier" + +define "Age Stratifier": + HIC."By Age Stratifier 2" + +define "Geographic Region Stratifier": + HIC."By Geographic Region Stratifier" + +define "patientGroups Stratifier": + HIC."patientGroups" + +define "ANC Stratifier": + HIC."anc" + +/* + * Combined stratifiers + * NEED TO DISCUSS WITH BRYNN + */ + +//define "Stratification": + // HIC."By Administrative Gender Stratifier".code + // + ':' + HIC."By Age Stratifier 2".code +// + ':' + HIC."By Geographic Region Stratifier" diff --git a/tests/data/cql/HIVIND19.cql b/tests/data/cql/HIVIND19.cql new file mode 100644 index 0000000..ab5cfe1 --- /dev/null +++ b/tests/data/cql/HIVIND19.cql @@ -0,0 +1,76 @@ +/* +HIV.IND.19 +HTS test volume and positivity +Number of HIV tests performed (volume) and the % of HIV-positive results returned to people (positivity) + +NUMERATOR +COUNT of tests with "HIV test result"='HIV-positive' AND (("Date HIV test results returned" in the reporting period) OR ("HIV diagnosis date" in the reporting period)) +Exclude Self-testing + +DENOMINATOR +COUNT of tests with "HIV test date" AND "Date HIV test results returned" in the reporting period +Exclude Self-testing + +• Gender (female, male, other**) +• Age (0–4, 5–9, 10–14, 15–19, 20–24, 25–29, 30–34, 35–39, 40–44, 45–49, 50+ years)** +• Key populations (men who have sex with men, people living in prisons and other closed settings, people who inject drugs, sex workers, trans and gender diverse people)*** +• TB status (presumptive TB, diagnosed TB, none) +• Testing entry point: +- Facility-level testing: Provider-initiated testing and counselling in clinics or emergency facilities, ANC clinics (including labour and delivery), voluntary counselling and testing (within a health facility setting), family planning clinics (only in high HIV burden settings), TB clinics, other facility-level testing +- Community-level testing: Mobile testing (for example, through vans or temporary testing facilities), voluntary counselling and testing centres (not within a health facility setting), other community-based testing. +• Cities and other administrative regions of epidemiologic importance + +*/ + +library HIVIND19 + +using FHIR version '4.0.1' + + +include HIVIndicatorCommon version '0.0.1' called HIC +include FHIRHelpers version '4.0.1' +include WHOCommon called WCom +include FHIRCommon called FC + +parameter "Measurement Period" Interval default Interval[@2020-01-01, @2020-01-31] + +context Patient + +//Exclusion happens automatically through test type valueset = excludes self test +define "numerator": + exists(HIC."HIV Positive Condition" C + where C.onset during "Measurement Period") + or + exists(HIC."HIV Positive Observation" O + where (O.issued before end of "Measurement Period" + and O.issued after start of "Measurement Period") + ) + +define "denominator": + exists(HIC."HIV test resulted" T + where T.issued before end of "Measurement Period" + and T.issued after start of "Measurement Period") + +/* + * Disaggregators + */ + +define "Administrative Gender Stratifier": + HIC."By Administrative Gender Stratifier" + +define "Age Stratifier": + HIC."By Age Stratifier" + +define "Geographic Region Stratifier": + HIC."By Geographic Region Stratifier" + +define "patientGroups Stratifier": + HIC."patientGroups" + +define "Setting": + HIC."setting" + +define "TB Stratifier": + HIC."tb" + + diff --git a/tests/data/cql/HIVIND2.cql b/tests/data/cql/HIVIND2.cql new file mode 100644 index 0000000..5cc86d5 --- /dev/null +++ b/tests/data/cql/HIVIND2.cql @@ -0,0 +1,75 @@ +/* + * Library: HIV.IND.2 + * Total PrEP recipients + * Number of people who received PrEP at least once during the reporting period + * + * Numerator: COUNT of clients with "Medications prescribed"='PrEP for HIV prevention' with "Date medications prescribed" in the reporting period + * Numerator Exclusions: + * + * Disaggregation: + * • Age (15–19, 20–24, 25–49, 50+ years) + * • Gender (female, male, other*) + * • Key populations (men who have sex with men, people living in prisons and other closed settings, people who inject drugs, sex workers, trans and gender diverse people)** + * • PrEP product and formulation (oral, long-acting device, long-acting injectable). Some people may start, continue, stop and restart, one or multiple times with different products or formulations in a given reporting period. Because of this, the percentages of recipients receiving different PrEP products may total more than 100%. + * • Experience with PrEP (first time, continuing, or restarting following a period of not + * taking PrEP) + * • Provider type (key population-led or community-led organization, public sector provider, other entities such as private for-profit and not-for-profit organizations, including faith- based, international, nongovernmental) + * • Setting: facility-based service (including hospitals, health clinics, general practice offices, etc.) or community-based service (including drop-in centres, community service delivery points, mobile clinics or vans, outreach teams, community support groups, etc.) + * • Cities and other administrative regions of epidemiologic importance" + * + * If both "Date medications dispensed" and "Date medications prescribed" are both available, then use the data element which is most widely available. + * + * + * Reference: Consolidated guidelines on person-centred HIV strategic information: strengthening routine data for impact. Geneva: World Health Organization; 2022 + */ + +library HIVIND2 + +using FHIR version '4.0.1' + + +include HIVIndicatorCommon version '0.0.1' called HIC +include FHIRHelpers version '4.0.1' +include WHOCommon called WCom +include FHIRCommon called FC + +parameter "Measurement Period" Interval default Interval[@2020-01-01, @2020-01-31] + +context Patient + +define "numerator": + 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) + ) + +/* + * Disaggregators + */ + +define "Administrative Gender Stratifier": + HIC."By Administrative Gender Stratifier" + +define "Age Stratifier": + HIC."By Age Stratifier 3" + +define "Geographic Region Stratifier": + HIC."By Geographic Region Stratifier" + +define "patientGroups Stratifier": + HIC."patientGroups" + +define "Setting": + HIC."setting" + +define "prep product": + HIC."prep_product" + +define "prep_experience": + HIC."prep_experience" + +define "prep_dosing": + HIC."prep_dosing" + +// Provider type concepts are not found in DD \ No newline at end of file diff --git a/tests/data/cql/HIVIND20Logic.cql b/tests/data/cql/HIVIND20Logic.cql new file mode 100644 index 0000000..26faf4c --- /dev/null +++ b/tests/data/cql/HIVIND20Logic.cql @@ -0,0 +1,81 @@ +/* +HIV.IND.20 Logic +Individuals testing positive for HIV +% testing positive among people who received an HIV test in the reporting period + +NUMERATOR +COUNT of clients with "HIV test result"='HIV-positive' AND "HIV test date" in the reporting period AND (("Date HIV test results returned" in the reporting period) OR ("HIV diagnosis date" in the reporting period)) + +DENOMINATOR +COUNT of clients with "HIV test date" in the reporting period AND "Date HIV test results returned" in the reporting period + +• Gender (female, male, other**) +• Age (0–4, 5–9, 10–14, 15–19, 20–24, 25–29, 30–34, 35–39, 40–44, 45–49, 50+ years)*** +• Key populations (men who have sex with men, people living in prisons and other closed settings, people who inject drugs, sex workers, trans and gender diverse people)*** +• TB status (presumptive TB, diagnosed TB, none) +• Testing entry point: +- Facility-level testing: Provider-initiated testing and counselling in clinics or emergency facilities, ANC clinics (including labour and delivery), voluntary counselling and testing (within a health facility setting), family planning clinics (only in high HIV burden settings), TB clinics, other facility-level testing +- Community-level testing: Mobile testing (for example, through vans or temporary testing facilities), voluntary counselling and testing centres (not within a health facility setting), other community-based testing. +• Cities and other administrative regions of epidemiologic importance + +*/ + +library HIVIND20 + +using FHIR version '4.0.1' + + +include HIVIndicatorCommon version '0.0.1' called HIC +include FHIRHelpers version '4.0.1' +include WHOCommon called WCom +include FHIRCommon called FC + +parameter "Measurement Period" Interval default Interval[@2020-01-01, @2020-01-31] + +context Patient + + +// From BRYN +//you use a Measure resource, and your Measure would be based on either Patients or Observations. +//If you want to count number of Patients that have received the test, that's a Patient-based Measure using an "exists", +//if you want to count the number of Tests, that could be a Patient-based continuous variable measure, where the Measure Observation is a Count of tests, or it could be an Observation-based proportion measure, where the basis is actually Observation. + + +//Does this also filter out self HIV tests +//right now using HIVIND19 definition which does +define "numerator": + exists(HIC."HIV Positive Condition" C + where C.onset during "Measurement Period") + or + exists(HIC."HIV Positive Observation" O + where (O.issued before end of "Measurement Period" + and O.issued after start of "Measurement Period") + ) + +define "denominator": + exists(HIC."HIV test resulted" T + where T.issued before end of "Measurement Period" + and T.issued after start of "Measurement Period") + + +/* + * Disaggregators + */ + +define "Administrative Gender Stratifier": + HIC."By Administrative Gender Stratifier" + +define "Age Stratifier": + HIC."By Age Stratifier" + +define "Geographic Region Stratifier": + HIC."By Geographic Region Stratifier" + +define "patientGroups Stratifier": + HIC."patientGroups" + +define "Setting": + HIC."setting" + +define "TB Stratifier": + HIC."tb" diff --git a/tests/data/cql/HIVIND21.cql b/tests/data/cql/HIVIND21.cql new file mode 100644 index 0000000..30a90ec --- /dev/null +++ b/tests/data/cql/HIVIND21.cql @@ -0,0 +1,85 @@ +/* + * Library: HIV.IND.21 + * Linkage to ART + * % of people newly diagnosed with HIV initiated on ART + * + * Numerator: COUNT of clients with "Date informed of HIV-positive diagnosis" in the reporting period AND "ART start date" in the reporting period + * Numerator Exclusions: + * + * Denominator: COUNT of clients with "Date informed of HIV-positive diagnosis" in the reporting period + * + * Disaggregation: + * • Gender (female, male, other*) + * • Age (0–4, 5–9, 10–14, 15–19, 20–24, 25–29, 30–34, 35–39, 40–44, 45–49, 50+ years)** + * • Key populations (men who have sex with men, people living in prisons and other closed settings, people who inject drugs, sex workers, trans and gender diverse people)*** + * • TB status (presumptive TB, diagnosed TB, none) + * • Time to start ART (within 7, 30 or 90 days of diagnosis, as per country guidelines) + * • Disaggregation by time since diagnosis (for example, 28 or 90 days) provides an indication of the quality of care with respect to national guidelines on when treatment should be started + * • Cities and other administrative regions of epidemiologic importance + * * The category of other includes trans and gender diverse people who choose an identity other than male or female. + * ** Recommended in settings with robust electronic health information systems. + * *** Where feasible and data security and confidentiality can be ensured (see monitoring considerations in section 3.8 of WHO's 2022 HIV SI Guidelines on key + * populations for further guidance and section 6.4 on maintaining data privacy, security and confidential). + * + * + * Reference: Consolidated guidelines on person-centred HIV strategic information: strengthening routine data for impact. Geneva: World Health Organization; 2022 + */ + + + +library HIVIND21 + +using FHIR version '4.0.1' + + +include HIVIndicatorCommon version '0.0.1' called HIC +include FHIRHelpers version '4.0.1' +include WHOCommon called WCom +include FHIRCommon called FC + +parameter "Measurement Period" Interval default Interval[@2020-01-01, @2020-01-31] + +context Patient + +define "numerator": + (exists(HIC."HIV Positive Condition" C + where C.onset during "Measurement Period") + or + exists(HIC."HIV Positive Observation" O + //during doesn't work + where (O.issued before end of "Measurement Period" and + O.issued after start of "Measurement Period") + )) + 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) + ) + +define "denominator": + (exists(HIC."HIV Positive Condition" C + where C.onset before end of "Measurement Period") + or + exists(HIC."HIV Positive Observation" O + where (O.issued before end of "Measurement Period" and + O.issued after start of "Measurement Period") + )) + +/* + * Disaggregators + */ + +define "Administrative Gender Stratifier": + HIC."By Administrative Gender Stratifier" + +define "Age Stratifier": + HIC."By Age Stratifier" + +define "Geographic Region Stratifier": + HIC."By Geographic Region Stratifier" + +define "patientGroups Stratifier": + HIC."patientGroups" + +define "TB Stratifier": + HIC."tb" diff --git a/tests/data/cql/HIVIND27Logic.cql b/tests/data/cql/HIVIND27Logic.cql new file mode 100644 index 0000000..c67d808 --- /dev/null +++ b/tests/data/cql/HIVIND27Logic.cql @@ -0,0 +1,100 @@ +/* + * Library: HIV.IND.27 Logic + * People living with HIV on ART + * Number and % of people on ART among all people living with HIV at the end of the reporting period + * + * Numerator: COUNT of clients with "HIV status"='HIV-positive' AND "On ART"=True at reporting period end date + * Numerator Exclusions: Clients with an "HIV treatment outcome" IN 'Lost to follow up', 'Transferred out', 'Death (documented)' at the end of the reporting period + * Definition: Number of people on ART at the end of the reporting period (HIV patient monitoring data from, for example, ART registers, patient records or EMRs). For key populations survey data may be required. + * + * Denominator: For treatment coverage: *Estimated number of people living with HIV + * For progress towards 2nd 95 target: *Estimated number of people living with HIV who know their status + * Denominator exclusions: Clients with an "HIV treatment outcome" IN 'Lost to follow up', 'Transferred out', 'Death (documented)' at the end of the reporting period + * Definition: 1. To determine treatment coverage: estimated number of people living with HIV (from models, such as Spectrum AIM) + * 2. To gauge progress toward the second 95 target: number of people living with HIV who know their HIV status (from surveys or models) + * + * Disaggregation: + * - Gender + * - Age + * - Key population member type + * Description: + * - Gender (female, male, other*) + * - Age (0–4, 5–9, 10–14, 15–19, 20–24, 25–29, 30–34, 35–39, 40–44, 45–49, 50+ years)** + * - Key populations (men who have sex with men, people living in prisons and other closed settings, people who inject drugs, sex workers, trans and gender diverse people)*** + * - Cities and other administrative regions of epidemiologic importance + * + * * The category of other includes trans and gender diverse people who choose an identity other than male or female. + * ** Recommended in settings with robust electronic health information systems. + * *** Where feasible and data security and confidentiality can be ensured (see monitoring considerations in section 3.8 of WHO's 2022 HIV SI Guidelines on key + * populations for further guidance and section 6.4 on maintaining data privacy, security and confidential). + * + * Data Elements: + * - HIV status + * - On ART + * + * Reference: Consolidated guidelines on person-centred HIV strategic information: strengthening routine data for impact. Geneva: World Health Organization; 2022 + */ + + + +library HIVIND27Logic + +using FHIR version '4.0.1' + + +include HIVIndicatorCommon version '0.0.1' called HIC +include FHIRHelpers version '4.0.1' +include WHOCommon called WCom +include FHIRCommon called FC + +parameter "Measurement Period" Interval default Interval[@2020-01-01, @2020-01-31] + +context Unfiltered + +/* +* Many indicator specifications in ANC and Immunization have context as patient. +* I believe these should be unfiltered to get all observations not just those related to a current patient +* Should discuss. +*/ + +define "numerator": + (exists(HIC."HIV Positive Condition" C + where C.onset before end of "Measurement Period") + or + exists(HIC."HIV Positive Observation" O + where (O.issued before end of "Measurement Period") + )) + 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 not exists (HIC."Patient Deceased before end of Measurement Period") + and not exists (HIC."Stopped ART at Facility during the measurement period") + + +define "denominator": + (exists(HIC."HIV Positive Condition" C + where C.onset before end of "Measurement Period") + or + exists(HIC."HIV Positive Observation" O + where (O.issued before end of "Measurement Period") + )) + and not exists (HIC."Patient Deceased before end of Measurement Period") + and not exists (HIC."Stopped ART at Facility during the measurement period") + +/* + * Disaggregators + */ + +define "Administrative Gender Stratifier": + HIC."By Administrative Gender Stratifier" + +define "Age Stratifier": + HIC."By Age Stratifier" + +define "Geographic Region Stratifier": + HIC."By Geographic Region Stratifier" + +define "patientGroups Stratifier": + HIC."patientGroups" diff --git a/tests/data/cql/HIVIND28.cql b/tests/data/cql/HIVIND28.cql new file mode 100644 index 0000000..7ee1da9 --- /dev/null +++ b/tests/data/cql/HIVIND28.cql @@ -0,0 +1,142 @@ +/* + * Library: HIV.IND.28 + * Total attrition from ART + * 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 + * + * Numerator: COUNT of clients with "HIV status"='HIV-positive' AND "On ART"=True at the end of previous reporting period + * PLUS + * COUNT of clients with "HIV status"='HIV-positive' AND "ART start date" within reporting period + * MINUS + * COUNT of clients with "HIV status"='HIV-positive' AND "On ART"=True on the reporting period end date + * Numerator Exclusions: NONE + * + * Denominator: COUNT of clients with "HIV status"='HIV-positive' and "On ART"=True on previous reporting period end date + * PLUS + * COUNT of clients with "HIV status"='HIV-positive' AND "ART start date" within the reporting period + * + * + * + * Disaggregation: + * - Gender + * - Age + * - Key population member type + * - Other PRIORITY POPULATION??? NOT DEFINED + * Description: + * - Gender (female, male, other*) + * - Age (0–4, 5–9, 10–14, 15–19, 20–24, 25–29, 30–34, 35–39, 40–44, 45–49, 50+ years)** + * - Key populations (men who have sex with men, people living in prisons and other closed settings, people who inject drugs, sex workers, trans and gender diverse people)*** + * - Cities and other administrative regions of epidemiologic importance + + * - Treatment outcome category (died, stopped treatment, lost to follow-up) + + * + * * The category of other includes trans and gender diverse people who choose an identity other than male or female. + * ** Recommended in settings with robust electronic health information systems. + * *** Where feasible and data security and confidentiality can be ensured (see monitoring considerations in section 3.8 of WHO's 2022 HIV SI Guidelines on key + * populations for further guidance and section 6.4 on maintaining data privacy, security and confidential). + * + * + * Consolidated guidelines on person-centred HIV strategic information: strengthening routine data for impact. Geneva: World Health Organization; 2022 + */ + +library HIVIND28 + +using FHIR version '4.0.1' + + +include HIVIndicatorCommon version '0.0.1' called HIC +include FHIRHelpers version '4.0.1' +include WHOCommon called WCom +include FHIRCommon called FC + +parameter "Measurement Period" Interval default Interval[@2020-01-01, @2020-01-31] + +context Unfiltered + +define "numerator": + ( + exists(HIC."Patient Deceased during Measurement Period") + or exists(HIC."Stopped ART at Facility during the measurement period") + ) + and (( + //saying needs to not be counted this measurement period but should have counted this period or last period + (exists(HIC."HIV Positive Condition" C + where C.onset before end of "Measurement Period") + or + exists(HIC."HIV Positive Observation" O + where (O.issued before end of "Measurement Period") + )) + 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) + ) + ) or + ( + //Accounts for end of last period + (exists(HIC."HIV Positive Condition" C + where C.onset before (end of "Measurement Period" - duration in days of "Measurement Period")) + or + exists(HIC."HIV Positive Observation" O + where (O.issued before end of "Measurement Period" - duration in days of "Measurement Period") + )) + 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) + ) + ) + ) + + + + define "denominator": + (( + //saying needs to not be counted this measurement period but should have counted this period or last period + (exists(HIC."HIV Positive Condition" C + where C.onset before end of "Measurement Period") + or + exists(HIC."HIV Positive Observation" O + where (O.issued before end of "Measurement Period") + )) + 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) + ) + ) or + ( + //Accounts for end of last period + (exists(HIC."HIV Positive Condition" C + where C.onset before (end of "Measurement Period" - duration in days of "Measurement Period")) + or + exists(HIC."HIV Positive Observation" O + where (O.issued before end of "Measurement Period" - duration in days of "Measurement Period") + )) + 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) + ) + ) + ) + + + +/* + * Disaggregators + */ + +define "Administrative Gender Stratifier": + HIC."By Administrative Gender Stratifier" + +define "Age Stratifier": + HIC."By Age Stratifier" + +define "Geographic Region Stratifier": + HIC."By 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 diff --git a/tests/data/cql/HIVIND3.cql b/tests/data/cql/HIVIND3.cql new file mode 100644 index 0000000..0f177a8 --- /dev/null +++ b/tests/data/cql/HIVIND3.cql @@ -0,0 +1,89 @@ +/* + * Library: HIV.IND.3 + * PrEP coverage + * % of people prescribed PrEP among those identified as being at elevated risk for HIV acquisition + * + * Numerator: Count of clients with "Date medications prescribed" within reporting period AND "Medications prescribed"='PrEP for HIV prevention' + * Numerator Exclusions: + * + * Denominator: Programme/service provider level: + * COUNT of clients with "HIV test date" within reporting period AND "HIV test result"='HIV-negative' AND "At elevated risk for HIV acquisition"=True † + * + * Disaggregation: + * • Age (15–19, 20–24, 25–49, 50+ years) + * • Gender (female, male, other*) + * • Key populations (men who have sex with men, people living in prisons and other closed settings, people who inject drugs, sex workers, trans and gender diverse people)** + * • PrEP product and formulation (oral, long-acting device, long-acting injectable). Some people may start, continue, stop and restart, one or multiple times with different products or formulations in a given reporting period. Because of this, the percentages of recipients receiving different PrEP products may total more than 100%. + * • Experience with PrEP (first time, continuing, or restarting following a period of not + * taking PrEP) + * • Provider type (key population-led or community-led organization, public sector provider, other entities such as private for-profit and not-for-profit organizations, including faith- based, international, nongovernmental) + * • Setting: facility-based service (including hospitals, health clinics, general practice offices, etc.) or community-based service (including drop-in centres, community service delivery points, mobile clinics or vans, outreach teams, community support groups, etc.) + * • Cities and other administrative regions of epidemiologic importance" + * + * If both "Date medications dispensed" and "Date medications prescribed" are both available, then use the data element which is most widely available. + * + * + * Reference: Consolidated guidelines on person-centred HIV strategic information: strengthening routine data for impact. Geneva: World Health Organization; 2022 + */ + +library HIVIND3 + +using FHIR version '4.0.1' + + +include HIVIndicatorCommon version '0.0.1' called HIC +include FHIRHelpers version '4.0.1' +include WHOCommon called WCom +include FHIRCommon called FC + +parameter "Measurement Period" Interval default Interval[@2020-01-01, @2020-01-31] + +context Patient + + +define "numerator": + 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) + ) + +define "denominator": + exists(HIC."HIV Negative Observation" O + where (O.issued before end of "Measurement Period" + and O.issued after start of "Measurement Period") + ) and + exists(HIC."Client is at elevated risk for HIV acquisition" O + where O.issued before end of "Measurement Period" + and O.issued after start of "Measurement Period") + + +/* + * Disaggregators + */ + +define "Administrative Gender Stratifier": + HIC."By Administrative Gender Stratifier" + +define "Age Stratifier": + HIC."By Age Stratifier 3" + +define "Geographic Region Stratifier": + HIC."By Geographic Region Stratifier" + +define "patientGroups Stratifier": + HIC."patientGroups" + +define "Setting": + HIC."setting" + +define "prep product": + HIC."prep_product" + +define "prep_experience": + HIC."prep_experience" + +define "prep_dosing": + HIC."prep_dosing" + +// Provider type concepts are not found in DD \ No newline at end of file diff --git a/tests/data/cql/HIVIND30.cql b/tests/data/cql/HIVIND30.cql new file mode 100644 index 0000000..8f3e6eb --- /dev/null +++ b/tests/data/cql/HIVIND30.cql @@ -0,0 +1,73 @@ +/* + * Library: HIV.IND.30 + * New ART patients + * Number of people living with HIV who initiated ART + * + * Numerator: COUNT of clients with "HIV status"='HIV-positive' AND "On ART"=True AND "ART start date" is within reporting period + * Numerator Exclusions: NONE + * + * Denominator: NONE + * + * + * + * Disaggregation: + * - Gender + * - Age + * - Key population member type + * - Other PRIORITY POPULATION??? NOT DEFINED + * Description: + * - Gender (female, male, other*) + * - Age (0–4, 5–9, 10–14, 15–19, 20–24, 25–29, 30–34, 35–39, 40–44, 45–49, 50+ years)** + * - Key populations (men who have sex with men, people living in prisons and other closed settings, people who inject drugs, sex workers, trans and gender diverse people)*** + * - Cities and other administrative regions of epidemiologic importance + * + * * The category of other includes trans and gender diverse people who choose an identity other than male or female. + * ** Recommended in settings with robust electronic health information systems. + * *** Where feasible and data security and confidentiality can be ensured (see monitoring considerations in section 3.8 of WHO's 2022 HIV SI Guidelines on key + * populations for further guidance and section 6.4 on maintaining data privacy, security and confidential). + * + * + * Consolidated guidelines on person-centred HIV strategic information: strengthening routine data for impact. Geneva: World Health Organization; 2022 + */ + +library HIVIND30 + +using FHIR version '4.0.1' + + +include HIVIndicatorCommon version '0.0.1' called HIC +include FHIRHelpers version '4.0.1' +include WHOCommon called WCom +include FHIRCommon called FC + +parameter "Measurement Period" Interval default Interval[@2020-01-01, @2020-01-31] + +context Patient + + define "numerator": + (exists(HIC."HIV Positive Condition" C + where C.onset before end of "Measurement Period") + or + exists(HIC."HIV Positive Observation" O + where (O.issued before end of "Measurement Period") + )) and + exists(HIC."HIV Treatment Active" H + where H.effective starts during "Measurement Period") + + + +/* + * Disaggregators + */ + +define "Administrative Gender Stratifier": + HIC."By Administrative Gender Stratifier" + +define "Age Stratifier": + HIC."By Age Stratifier" + +define "Geographic Region Stratifier": + HIC."By Geographic Region Stratifier" + +define "patientGroups Stratifier": + HIC."patientGroups" diff --git a/tests/data/cql/HIVIndicatorCommon.cql b/tests/data/cql/HIVIndicatorCommon.cql new file mode 100644 index 0000000..f52b907 --- /dev/null +++ b/tests/data/cql/HIVIndicatorCommon.cql @@ -0,0 +1,570 @@ +library HIVIndicatorCommon version '0.0.1' + +using FHIR version '4.0.1' + + +codesystem "ObservationValue": 'http://terminology.hl7.org/CodeSystem/observation-value' +codesystem "HIV_DAK_Codes": 'http://fhir.org/guides/who/hiv-dak/CodeSystem/HIV-DAKConcepts' +codesystem "ConditionClinicalStatusCodes": 'http://terminology.hl7.org/CodeSystem/condition-clinical' +codesystem "ConditionCategoryCodes": 'http://terminology.hl7.org/CodeSystem/condition-category' +codesystem "ObservationStatusCodes": 'http://hl7.org/fhir/observation-status' + +codesystem "Keypopulationmembertype*Codes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de51' +codesystem "HIVstatusCodes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de116' +codesystem "HIVtreatmentoutcomeCodes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-h-de42' +codesystem "ObservationCategoryCodes": 'http://terminology.hl7.org/CodeSystem/observation-category' + +include FHIRHelpers version '4.0.1' +include WHOCommon called WCom +include FHIRCommon called FC + +parameter "Measurement Period" Interval default Interval[@2020-01-01, @2020-12-31] + +code "Sex Worker": 'HIV.B.DE51' from "Keypopulationmembertype*Codes" display 'sex worker' +code "Men who have sex with men": 'HIV.B.DE52' from "Keypopulationmembertype*Codes" display 'MSM' +code "Trans and gender-diverse people": 'HIV.B.DE53' from "Keypopulationmembertype*Codes" display 'Trans' +code "People who inject drugs": 'HIV.B.DE54' from "Keypopulationmembertype*Codes" display 'PWID' +code "People living in prisons and other closed settings": 'HIV.B.DE55' from "Keypopulationmembertype*Codes" display 'Prisoner' + +code "HIV-positive": 'HIV.B.DE116' from "HIVstatusCodes" display 'HIV Positive' +code "HIV-negative": 'HIV.B.DE117' from "HIVstatusCodes" display 'HIV Negative' +code "Diagnosed TB": 'HIV.D.DE940' from "HIVstatusCodes" display 'Diagnosed TB' +code "Presumptive TB": 'HIV.D.DE945' from "HIVstatusCodes" display 'Presumptive TB' + +code "At elevated risk for HIV acquisition": 'HIV.B.DE225' from "HIV_DAK_Codes" display 'At elevated risk for HIV acquisition' + +//code "On ART": 'HIV.D.DE38' from "HIV_DAK_Codes" display 'On ART' + +codesystem ARTCodes: 'http://example.org/fhir/CodeSystem/art-codes' +valueset "On ART": 'http://example.org/fhir/ValueSet/on-art' +valueset "PREP": 'http://example.org/fhir/ValueSet/prep' + +valueset "Oral PrEP": 'http://example.org/fhir/ValueSet/OralPrEP' +valueset "Dapivirine vaginal ring (DVR)": 'http://example.org/fhir/ValueSet/dvrprep' +valueset "CAB-LA": 'http://example.org/fhir/ValueSet/cablaprep' + +valueset "First-time user": 'http://example.org/fhir/ValueSet/first time' +valueset "Continuing user": 'http://example.org/fhir/ValueSet/continuing' +valueset "Restarting following a period of not taking medication": 'http://example.org/fhir/ValueSet/restarting' + +valueset "Daily oral PrEP": 'http://example.org/fhir/ValueSet/dailyPrEP' +valueset "Event-driven PrEP (2+1+1)": 'http://example.org/fhir/ValueSet/eventprep' +valueset "Other PrEP dosing type": 'http://example.org/fhir/ValueSet/otherprep' + +valueset "encounter-diagnosis": 'http://example.org/fhir/ValueSet/encounter-diagnosis' +valueset "social-history": 'http://example.org/fhir/ValueSet/social-history' +valueset "HIVtesttypeCodes": 'http://fhir.org/guides/who/hiv-dak/ValueSet/hiv-b-de82' +valueset "Community-level testing" : 'http://example.org/fhir/ValueSet/HIV.B.DE16' +valueset "Facility-level testing" : 'http://example.org/fhir/ValueSet/HIV.B.DE17' +valueset "ANC contact during pregnancy" : 'http://example.org/fhir/ValueSet/HIV.E.DE39' + +//valueset "hiv positive": 'http://example.org/fhir/ValueSet/social-history' + +code "Lost to follow-up": 'HIV.H.DE42' from "HIVtreatmentoutcomeCodes" display 'Lost to follow-up' +code "Transferred out": 'HIV.H.DE43' from "HIVtreatmentoutcomeCodes" display 'Transferred out' +code "Death (documented)": 'HIV.H.DE44' from "HIVtreatmentoutcomeCodes" display 'Death (documented)' +code "Refused (stopped) treatment": 'HIV.H.DE45' from "HIVtreatmentoutcomeCodes" display 'Refused (stopped) treatment' + +codesystem "Administrative Gender Codes": 'http://hl7.org/fhir/administrative-gender' +code "Males" : 'male' from "Administrative Gender Codes" display 'Males' +code "Females" : 'female' from "Administrative Gender Codes" display 'Females' +code "Other" : 'other' from "Administrative Gender Codes" display 'Other/NA' +/* EXPANDED */ +code "Trans Males" : 'transgender male' from "Administrative Gender Codes" display 'Trans Males' +code "Trans Females" : 'transgender female' from "Administrative Gender Codes" display 'Trans Females' + + + +// Condition Clinical Status Codes - Consider value sets for these +code "active": 'active' from "ConditionClinicalStatusCodes" +code "recurrence": 'recurrence' from "ConditionClinicalStatusCodes" +code "relapse": 'relapse' from "ConditionClinicalStatusCodes" +code "inactive": 'inactive' from "ConditionClinicalStatusCodes" +code "remission": 'remission' from "ConditionClinicalStatusCodes" +code "resolved": 'resolved' from "ConditionClinicalStatusCodes" + +// Condition Category Codes +code "problem-list-item": 'problem-list-item' from "ConditionCategoryCodes" display 'Problem List Item' +//code "encounter-diagnosis": 'encounter-diagnosis' from "ConditionCategoryCodes" display 'Encounter Diagnosis' + +// Episode of Care Status +//code "social-history": 'social-history' from "ObservationCategoryCodes" display 'Social History' + +context Patient + +/* + * HIV Positive during the measurement period + * Does issued imply that results returned to tester + * or should use communication or encounter resource to specify? + */ + + + +define "HIV Positive Condition": +[Condition] C + where C.clinicalStatus ~ "active" + and C.category in "encounter-diagnosis" + and C.code ~ "HIV-positive" + +define "HIV Positive Observation": +[Observation] O + where O.status in {'final', 'amended'} + and O.code in "HIVtesttypeCodes" + and O.value ~ "HIV-positive" + +define "HIV Negative Observation": +[Observation] O + where O.status in {'final', 'amended'} + and O.code in "HIVtesttypeCodes" + and O.value ~ "HIV-negative" + +define "HIV test resulted": + [Observation] O + where O.status in {'final', 'amended'} + and O.code in "HIVtesttypeCodes" + +define "HIV Treatment Active": +[MedicationStatement] MS + where MS.status = 'recorded' + and MS.reasonCode in "On ART" + + +define "HIV PREP Active": +[MedicationStatement] MS + where MS.status = 'recorded' + and MS.reasonCode in "PREP" + + define "Client is at elevated risk for HIV acquisition": + [Observation] O + where O.status in { 'final', 'amended', 'corrected' } + and O.category in "social-history" + and O.code ~ "At elevated risk for HIV acquisition" + + +define "Patient Deceased before end of Measurement Period": + case + when Patient.deceased is FHIR.boolean and Patient.deceased ~ true then (Patient.meta.lastUpdated before end of "Measurement Period") + when Patient.deceased is FHIR.dateTime then Patient.deceased as FHIR.dateTime before end of "Measurement Period" + else false + end + +define "Patient Deceased during Measurement Period": + case + when Patient.deceased is FHIR.boolean and Patient.deceased ~ true then Patient.meta.lastUpdated before end of "Measurement Period" and Patient.meta.lastUpdated after start of "Measurement Period" + when Patient.deceased is FHIR.dateTime then Patient.deceased as FHIR.dateTime before end of "Measurement Period" and Patient.deceased as FHIR.dateTime after start of "Measurement Period" + else false + end + +/* End of care because of transferring out, death, lost to follow up, or stopped treatment*/ + +define "Stopped ART at Facility during the measurement period": + exists( + [EpisodeOfCare] EOS + where EOS.type in "On ART" + and (exists ( + EOS.statusHistory H + where H.status = 'finished' + and H.period ends during "Measurement Period" + ) + or ( + EOS.status = 'finished' + and EOS.period ends during "Measurement Period" + ) + ) + ) + +/* + * By Age Stratifiers + * (0–4, 5–9, 10–14, 15–19, 20–24, 25–29, 30–34, 35–39, 40–44, 45–49, 50+ years) + * + */ +define "By Age Stratifier": + case + when AgeInYearsAt(start of "Measurement Period") <= 4 then '0-4' + when AgeInYearsAt(start of "Measurement Period") <= 9 then '5-9' + when AgeInYearsAt(start of "Measurement Period") <= 14 then '10–14' + when AgeInYearsAt(start of "Measurement Period") <= 19 then '15–19' + when AgeInYearsAt(start of "Measurement Period") <= 24 then '20–24' + when AgeInYearsAt(start of "Measurement Period") <= 29 then '25–29' + when AgeInYearsAt(start of "Measurement Period") <= 34 then '30–34' + when AgeInYearsAt(start of "Measurement Period") <= 39 then '35–39' + when AgeInYearsAt(start of "Measurement Period") <= 44 then '40–44' + when AgeInYearsAt(start of "Measurement Period") <= 49 then '45–49' + when AgeInYearsAt(start of "Measurement Period") >= 50 then '50+' + else null + end + + /* + * By Age Stratifiers + * Age (0–4, 5–9, 10–14, 15–19, 20–24, 25–49, 50+ years) + * + */ +define "By Age Stratifier 2": + case + when AgeInYearsAt(start of "Measurement Period") <= 4 then '0-4' + when AgeInYearsAt(start of "Measurement Period") <= 9 then '5-9' + when AgeInYearsAt(start of "Measurement Period") <= 14 then '10–14' + when AgeInYearsAt(start of "Measurement Period") <= 19 then '15–19' + when AgeInYearsAt(start of "Measurement Period") <= 24 then '20–24' + when AgeInYearsAt(start of "Measurement Period") <= 49 then '25–49' + when AgeInYearsAt(start of "Measurement Period") >= 50 then '50+' + else null + end + +define "By Age Stratifier 3": + case + when AgeInYearsAt(start of "Measurement Period") >= 15 and AgeInYearsAt(start of "Measurement Period") <= 19 then '15-19' + when AgeInYearsAt(start of "Measurement Period") <= 24 then '20-24' + when AgeInYearsAt(start of "Measurement Period") <= 49 then '25–49' + when AgeInYearsAt(start of "Measurement Period") >= 50 then '50+' + else null + end + +/* + * By state stratifier + */ + +define "By Geographic Region Stratifier": + First(Patient.address A where A.use in { 'home' }).state + +/* + * By Administrative Gender of Patient Stratifier + * Need to expand codes + */ + +define "By Administrative Gender Stratifier": + case + when Patient.gender = 'male' then "Males" + when Patient.gender = 'female' then "Females" + when Patient.gender = 'transgender female' then "Trans Females" + when Patient.gender = 'transgender male' then "Trans Males" + else "Other" + end + +/* + * Key populations (men who have sex with men, people living in prisons and other closed settings, people who inject drugs, sex workers, trans and gender diverse people) + */ + + define SW: + exists ( + [Observation] O + where O.status in { 'final', 'amended', 'corrected' } + and O.category in "social-history" + and O.code ~ "Sex Worker" + ) + + define MSM: + exists ( + [Observation] O + where O.status in { 'final', 'amended', 'corrected' } + and O.category in "social-history" + and O.code ~ "Men who have sex with men" + ) + + define Trans: + exists ( + [Observation] O + where O.status in { 'final', 'amended', 'corrected' } + and O.category in "social-history" + and O.code ~ "Trans and gender-diverse people" + ) + + define PWID: + exists ( + [Observation] O + where O.status in { 'final', 'amended', 'corrected' } + and O.category in "social-history" + and O.code ~ "People who inject drugs" + ) + + define Prisoner: + exists ( + [Observation] O + where O.status in { 'final', 'amended', 'corrected' } + and O.category in "social-history" + and O.code ~ "People living in prisons and other closed settings" + ) + + define TB_diagnosed: + exists( + ([Condition] C + where C.clinicalStatus ~ "active" + and C.category in "encounter-diagnosis" + and C.code ~ "Diagnosed TB" + and C.onset during "Measurement Period") + ) + + define TB_presumptive: + exists( + ([Condition] C + where C.clinicalStatus ~ "active" + and C.category in "encounter-diagnosis" + and C.code ~ "Presumptive TB" + and C.onset during "Measurement Period") + ) + +/*@triggeredBy Encounter with location = community level testing*/ + +define "Community_testing": + exists([Observation] O + with [Encounter] E + such that O.encounter.references(E) and E.location.physicalType in "Community-level testing" + where (O.status in { 'final', 'amended' } + and O.code in "HIVtesttypeCodes" + and O.issued during "Measurement Period") + ) + +/*@triggeredBy Encounter with location = facility level testing*/ +define "Facility_testing": + exists([Observation] O + with [Encounter] E + such that O.encounter.references(E) and E.location.physicalType in "Facility-level testing" + where (O.status in { 'final', 'amended' } + and O.code in "HIVtesttypeCodes" + and O.issued during "Measurement Period") + ) + +//lifted this from ANC DAK +//ANC SMART doesn't take into account time period +define "ANC_case": +exists( + [EpisodeOfCare] EOS + where EOS.type in "ANC contact during pregnancy" + and (exists ( + EOS.statusHistory H + where H.period overlaps "Measurement Period" + ) + or ( + EOS.period overlaps "Measurement Period" + ) + ) + ) + + + define "PREP Product Oral": + exists([MedicationStatement] MS + where MS.status = 'recorded' + and MS.reasonCode in "PREP" + and MS.medication in "Oral PrEP" + ) + + define "PREP Product long-acting device": + exists([MedicationStatement] MS + where MS.status = 'recorded' + and MS.reasonCode in "PREP" + and MS.medication in "Dapivirine vaginal ring (DVR)" + ) + + define "PREP Product long-acting injectable": + exists([MedicationStatement] MS + where MS.status = 'recorded' + and MS.reasonCode in "PREP" + and MS.medication in "CAB-LA" + ) + + define "PREP first time": + exists([MedicationStatement] MS + where MS.status = 'recorded' + and MS.reasonCode in "PREP" + and MS.statusReason in "First-time user" + ) + + define "PREP Continuing user": + exists([MedicationStatement] MS + where MS.status = 'recorded' + and MS.reasonCode in "PREP" + and MS.statusReason in "Continuing user" + ) + + define "PREP Restarting": + exists([MedicationStatement] MS + where MS.status = 'recorded' + and MS.reasonCode in "PREP" + and MS.statusReason in "Restarting following a period of not taking medication" + ) + + define "Daily_oral_PrEP": + exists([MedicationStatement] MS + where MS.status = 'recorded' + and MS.reasonCode in "PREP" + and MS.dosage.additionalInstruction in "Daily oral PrEP" + ) + + define "Event_driven_PrEP": + exists([MedicationStatement] MS + where MS.status = 'recorded' + and MS.reasonCode in "PREP" + and MS.dosage.additionalInstruction in "Event-driven PrEP (2+1+1)" + ) + + define "other_dosing_PrEP": + exists([MedicationStatement] MS + where MS.status = 'recorded' + and MS.reasonCode in "PREP" + and MS.dosage.additionalInstruction in "Other PrEP dosing type" + ) + + + define patientGroups: + List{ + if SW then 'SW' else null, + if MSM then 'MSM' else null, + if Trans then 'Trans' else null, + if PWID then 'PWID' else null, + if Prisoner then 'Prisoner' else null + } + + define setting: + List{ + if Community_testing then 'Community-level testing' else null, + if Facility_testing then 'Facility-level testing' else null + } + + define anc: + List{ + if ANC_case then 'ANC case' else null + } + + define tb: + List{ + if TB_diagnosed then 'Diagnosed TB' else null, + if TB_presumptive then 'Presumptive TB' else null + } + + define prep_product: + List{ + if `PREP Product Oral` then 'PREP Product Oral' else null, + if `PREP Product long-acting device` then 'PREP Product long-acting device' else null, + if `PREP Product long-acting injectable` then 'PREP Product long-acting injectable' else null + } + + define prep_experience: + List{ + if `PREP first time` then 'PREP first time' else null, + if `PREP Continuing user` then 'PREP Continuing user' else null, + if `PREP Restarting` then 'PREP Restarting' else null + } + + define prep_dosing: + List{ + if `Daily_oral_PrEP` then 'Daily oral PrEP' else null, + if `Event_driven_PrEP` then 'Event driven PrEP' else null, + if `other_dosing_PrEP` then 'Other PrEP dosing type' else null + } + +//need to add Time to start ART (within 7, 30 or 90 days of diagnosis, as per country guidelines) +//need to add Disaggregation by time since diagnosis + + + +/* +* DAK has codes for HAART misspecified +* ICD-10 Z92.2 Other prophylactic chemotherapy +* LOINC "54825-5 " On scheduled pain medication regimen in last 7 days +* +* Should discuss +*/ + + + + + + + +/* +* Kenya EMR defined as HIV positive condition +* Will need to discuss if produce flags through conditions for concepts to use in indicator calculation such as HIV positive and On ART +* However, we have moved forward with a more prescriptive approach +* Inevitably our approach requires that certain data elements be available +*/ + +/* + * HIV Treatment during the measurement period + * uses dosage and dispensation amount to estimate last day of medication + * medication should be dispensed before end of measurement period + * medication should last until after 28 days after the end of the measurement period + * This takes into account lost to follow up + */ + +/* +*define "HIV Treatment during the measurement period": +* [MedicationDispense] MD +* where MD.status in { 'final', 'amended', 'corrected' } +* and MD.medication ~ 'Antiretroviral' +* and MD.whenHandedOver before end of "Measurement Period" +* and (MD.whenHandedOver + MD.dosageInstruction[0].timing.repeat.duration.value * MedicationDispense.quantity.value) after (measurementPeriod.end - 28 days) +*/ + +/* +* Immunization defines HAART as +* exists([MedicationAdministration] A where ExtractMedicationCode(A.medication) in IMMZc."ARV Drugs" and A.status = 'in-progress') +* I believe this is the incorrect resource unless they mean to say that medication is given during a medical encounter +* would like to discuss +*/ + +/** + * Patient Deceased During Measurement Period + * Immunization defines this as true when is a boolean. This may have the effect of deleting a person from indicators in all calculations + * Should intend to use when patient.deceased FHIR boolean was updated to TRUE if no other date is available + * Kenya EMR example does not account for when deceased is just a boolean + */ + + +/* to delete*/ + +define "HIV Positive before end of measurement period": + exists ([Condition] C + where C.clinicalStatus ~ "active" + and C.category in "encounter-diagnosis" + and C.code ~ "HIV-positive" + and C.onset before end of "Measurement Period") + or + exists ([Observation] O + where O.status in {'final', 'amended'} + and O.code in "HIVtesttypeCodes" + and O.value ~ "HIV-positive" + and O.issued before end of "Measurement Period") + +//last measurement period is defined as same length as current measurement period +define "HIV Positive before end of last measurement period": + exists ([Condition] C + where C.clinicalStatus ~ "active" + and C.category in "encounter-diagnosis" + and C.code ~ "HIV-positive" + and C.onset before (end of "Measurement Period" - duration in days of "Measurement Period")) + or + exists ([Observation] O + where O.status in {'final', 'amended'} + and O.code in "HIVtesttypeCodes" + and O.value ~ "HIV-positive" + and O.issued before end of "Measurement Period" - duration in days of "Measurement Period") + +define "HIV Treatment Active during the measurement period": + exists( + [MedicationStatement] MS + where MS.status = 'recorded' + and MS.reasonCode in "On ART" + and MS.effective starts before end of "Measurement Period" + and (MS.effective ends after start of "Measurement Period" + or end of MS.effective ~ null) + ) + + //last measurement period is defined as same length as current measurement period +define "HIV Treatment Active during last measurement period": + exists( + [MedicationStatement] MS + where MS.status = 'recorded' + and MS.reasonCode in "On ART" + and MS.effective starts before (end of "Measurement Period" - duration in days of "Measurement Period") + and (MS.effective ends after (start of "Measurement Period" - duration in days of "Measurement Period") + or end of MS.effective ~ null) + ) + + + define "HIV Treatment Started during the measurement period": + exists( + [MedicationStatement] MS + where MS.status = 'recorded' + and MS.reasonCode in "On ART" + and MS.effective starts during "Measurement Period" + ) \ No newline at end of file diff --git a/tests/data/cql/WHOCommon.cql b/tests/data/cql/WHOCommon.cql new file mode 100644 index 0000000..a73847e --- /dev/null +++ b/tests/data/cql/WHOCommon.cql @@ -0,0 +1,93 @@ +library WHOCommon + +using FHIR version '4.0.1' + +include FHIRHelpers version '4.0.1' + +include FHIRCommon called FC + +context Patient + +define function Official(identifiers List): + singleton from (identifiers I where I.use = 'official') + +define function Official(addresses List
): + singleton from (addresses A where A.use = 'official') + +define function Official(names List): + singleton from (names N where N.use = 'official') + +define function Mobile(contactPoints List): + singleton from (contactPoints P where P.use = 'mobile') + +define function Only(allergies List): + singleton from allergies + +define function Only(appointments List): + singleton from appointments + +define function Only(careplans List): + singleton from careplans + +define function Only(conditions List): + singleton from conditions + +define function Only(encounters List): + singleton from encounters + +define function Only(immunizations List): + singleton from immunizations + +define function Only(medicationrequests List): + singleton from medicationrequests + +define function Only(observations List): + singleton from observations + +define function Only(procedures List): + singleton from procedures + +define function Only(serviceRequests List): + singleton from serviceRequests + +define function Only(dosages List): + singleton from dosages + +define function Only(doses List): + singleton from doses + +define function Earliest(observations List): + First( + observations O + sort by issued + ) + +define function Latest(observations List): + Last( + observations O + sort by issued + ) + +define function MostRecent(observations List): + Last( + observations O + sort by issued + ) + +define function MostRecent(procedures List): + Last( + procedures P + sort by start of FC.ToInterval(performed) + ) + +define function Lowest(observations List): + First( + observations O + sort by (value as FHIR.Quantity) + ) + +define function Highest(observations List): + Last( + observations O + sort by (value as FHIR.Quantity) + ) diff --git a/tests/data/cql/WHOCommonV2.cql b/tests/data/cql/WHOCommonV2.cql new file mode 100644 index 0000000..2949cab --- /dev/null +++ b/tests/data/cql/WHOCommonV2.cql @@ -0,0 +1,248 @@ +library WHOCommon + +using FHIR version '4.0.1' + +include FHIRHelpers version '4.0.1' + +codesystem "ConditionClinicalStatusCodes": 'http://terminology.hl7.org/CodeSystem/condition-clinical' + +// Condition Clinical Status Codes - Consider value sets for these +code "active": 'active' from "ConditionClinicalStatusCodes" +code "recurrence": 'recurrence' from "ConditionClinicalStatusCodes" +code "relapse": 'relapse' from "ConditionClinicalStatusCodes" +code "inactive": 'inactive' from "ConditionClinicalStatusCodes" +code "remission": 'remission' from "ConditionClinicalStatusCodes" +code "resolved": 'resolved' from "ConditionClinicalStatusCodes" + +context Patient + +define fluent function official(identifiers List): + singleton from (identifiers I where I.use = 'official') + +define fluent function official(addresses List
): + singleton from (addresses A where A.use = 'official') + +define fluent function official(names List): + singleton from (names N where N.use = 'official') + +define fluent function mobile(contactPoints List): + singleton from (contactPoints P where P.use = 'mobile') + +define fluent function only(allergies List): + singleton from allergies + +define fluent function only(appointments List): + singleton from appointments + +define fluent function only(careplans List): + singleton from careplans + +define fluent function only(conditions List): + singleton from conditions + +define fluent function only(encounters List): + singleton from encounters + +define fluent function only(immunizations List): + singleton from immunizations + +define fluent function only(locations List): + singleton from locations + +define fluent function only(medicationrequests List): + singleton from medicationrequests + +define fluent function only(observations List): + singleton from observations + +define fluent function only(procedures List): + singleton from procedures + +define fluent function only(serviceRequests List): + singleton from serviceRequests + +define fluent function only(dosages List): + singleton from dosages + +define fluent function only(doses List): + singleton from doses + +define fluent function earliest(observations List): + First( + observations O + sort by issued + ) + +define fluent function latest(observations List): + Last( + observations O + sort by issued + ) + +define fluent function mostRecent(observations List): + Last( + observations O + sort by issued + ) + +define fluent function mostRecent(procedures List): + Last( + procedures P + sort by start of performed.toInterval() + ) + +define fluent function mostRecent(immunizations List): + Last( + immunizations I + sort by start of occurrence.toInterval() + ) + +define fluent function mostRecent(medicationRequests List): + Last( + medicationRequests MR + sort by authoredOn + ) + +define fluent function lowest(observations List): + First( + observations O + sort by FHIRHelpers.ToQuantity(value as FHIR.Quantity) + ) + +define fluent function highest(observations List): + Last( + observations O + sort by FHIRHelpers.ToQuantity(value as FHIR.Quantity) + ) + +define function EarliestOf(dates List): + Min(dates) + +define function LatestOf(dates List): + Max(dates) + +/* +From FHIRCommon 4.1.0: +*/ + +/* +@description: Normalizes a value that is a choice of timing-valued types to an equivalent interval +@comment: Normalizes a choice type of FHIR.dateTime, FHIR.Period, FHIR.Timing, FHIR.instance, FHIR.string, FHIR.Age, or FHIR.Range types +to an equivalent interval. This selection of choice types is a superset of the majority of choice types that are used as possible +representations for timing-valued elements in FHIR, allowing this function to be used across any resource. + +The input can be provided as a dateTime, Period, Timing, instant, string, Age, or Range. +The intent of this function is to provide a clear and concise mechanism to treat single +elements that have multiple possible representations as intervals so that logic doesn't have to account +for the variability. More complex calculations (such as medication request period or dispense period +calculation) need specific guidance and consideration. That guidance may make use of this function, but +the focus of this function is on single element calculations where the semantics are unambiguous. +If the input is a dateTime, the result a DateTime Interval beginning and ending on that dateTime. +If the input is a Period, the result is a DateTime Interval. +If the input is a Timing, an error is raised indicating a single interval cannot be computed from a Timing. +If the input is an instant, the result is a DateTime Interval beginning and ending on that instant. +If the input is a string, an error is raised indicating a single interval cannot be computed from a string. +If the input is an Age, the result is a DateTime Interval beginning when the patient was the given Age, +and ending immediately prior to when the patient was the given Age plus one year. +If the input is a Range, the result is a DateTime Interval beginning when the patient was the Age given +by the low end of the Range, and ending immediately prior to when the patient was the Age given by the +high end of the Range plus one year. + +NOTE: Due to the +complexity of determining a single interval from a Timing or String type, this function will throw a run-time exception if it is used +with a Timing or String. +*/ +define fluent function toInterval(choice Choice): + case + when choice is FHIR.dateTime then + Interval[FHIRHelpers.ToDateTime(choice as FHIR.dateTime), FHIRHelpers.ToDateTime(choice as FHIR.dateTime)] + when choice is FHIR.Period then + FHIRHelpers.ToInterval(choice as FHIR.Period) + when choice is FHIR.instant then + Interval[FHIRHelpers.ToDateTime(choice as FHIR.instant), FHIRHelpers.ToDateTime(choice as FHIR.instant)] + when choice is FHIR.Age then + Interval[FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity(choice as FHIR.Age), + FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity(choice as FHIR.Age) + 1 year) + when choice is FHIR.Range then + Interval[FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity((choice as FHIR.Range).low), + FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity((choice as FHIR.Range).high) + 1 year) + when choice is FHIR.Timing then + Message(null as Interval, true, 'NOT_IMPLEMENTED', 'Error', 'Calculation of an interval from a Timing value is not supported') + when choice is FHIR.string then + Message(null as Interval, true, 'NOT_IMPLEMENTED', 'Error', 'Calculation of an interval from a String value is not supported') + else + null as Interval + end + +/* +@description: Returns an interval representing the normalized Abatement of a given Condition resource. +@comment: NOTE: Due to the complexity of determining an interval from a String, this function will throw +a run-time exception if used with a Condition instance that has a String as the abatement value. +*/ +define fluent function abatementInterval(condition Condition): + if condition.abatement is FHIR.dateTime then + Interval[FHIRHelpers.ToDateTime(condition.abatement as FHIR.dateTime), FHIRHelpers.ToDateTime(condition.abatement as FHIR.dateTime)] + else if condition.abatement is FHIR.Period then + FHIRHelpers.ToInterval(condition.abatement as FHIR.Period) + else if condition.abatement is FHIR.string then + Message(null as Interval, true, 'NOT_IMPLEMENTED', 'Error', 'Calculation of an interval from a String value is not supported') + else if condition.abatement is FHIR.Age then + Interval[FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity(condition.abatement as FHIR.Age), + FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity(condition.abatement as FHIR.Age) + 1 year) + else if condition.abatement is FHIR.Range then + Interval[FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity((condition.abatement as FHIR.Range).low), + FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity((condition.abatement as FHIR.Range).high) + 1 year) + else if condition.abatement is FHIR.boolean then + Interval[end of condition.onset.toInterval(), condition.recordedDate) + else + null + +/* +@description: Returns an interval representing the normalized prevalence period of a given Condition resource. +@comment: Uses the toInterval and toAbatementInterval functions to determine the widest potential interval from +onset to abatement as specified in the given Condition. +*/ +define fluent function prevalenceInterval(condition Condition): +if condition.clinicalStatus ~ "active" + or condition.clinicalStatus ~ "recurrence" + or condition.clinicalStatus ~ "relapse" then + Interval[start of condition.onset.toInterval(), end of condition.abatementInterval()] +else + (end of condition.abatementInterval()) abatementDate + return + if abatementDate is null then + Interval[start of condition.onset.toInterval(), abatementDate) + else + Interval[start of condition.onset.toInterval(), abatementDate] + +/* +@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, '/')) + +/* +@description: Returns true if the given reference is to the given resourceId +@comment: Returns true if the `resourceId` parameter 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, resourceId String): + resourceId = Last(Split(reference.reference, '/')) + +/* +@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, resource FHIR.Resource): + exists (references R where R.references(resource)) + +/* +@description: Returns true if any of the given references are to the given resourceId +@comment: Returns true if the `resourceId` parameter 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, resourceId String): + exists (references R where R.references(resourceId)) diff --git a/tests/data/cql/WHOConcepts.cql b/tests/data/cql/WHOConcepts.cql new file mode 100644 index 0000000..a71963d --- /dev/null +++ b/tests/data/cql/WHOConcepts.cql @@ -0,0 +1,20 @@ +library WHOConcepts + +// Code Systems +codesystem "ICD-10": 'http://hl7.org/fhir/sid/icd-10' +codesystem "SNOMED-CT": 'http://snomed.info/sct' +codesystem "LOINC": 'http://loinc.org' +codesystem "RxNorm": 'http://www.nlm.nih.gov/research/umls/rxnorm' +codesystem "CIEL": 'http://hl7.org/fhir/sid/ciel' +codesystem "ICD-11": 'http://id.who.int/icd/release/11/mms' +codesystem "ICHI": 'https://mitel.dimi.uniud.it/ichi/#http://id.who.int/ichi' +codesystem "ICF": 'http://hl7.org/fhir/sid/icf-nl' + +// ValuSets +valueset "Pregnancy Status Pregnant": 'http://fhir.org/guides/who/core/ValueSet/pregnancystatus-values' +valueset "Adverse Events": 'http://hl7.org/fhir/ValueSet/adverse-event-type' + +code "Pregnancy status": '82810-3' from "LOINC" display 'Pregnancy status' +code "Pregnant": 'LA15173-0' from "LOINC" display 'Pregnant' +code "Not pregnant": 'LA26683-5' from "LOINC" display 'Not pregnant' +code "Unknown": 'LA4489-6' from "LOINC" display 'Unknown' diff --git a/tests/data/cql/WHOElements.cql b/tests/data/cql/WHOElements.cql new file mode 100644 index 0000000..adc93f7 --- /dev/null +++ b/tests/data/cql/WHOElements.cql @@ -0,0 +1,19 @@ +library WHOElements + +using FHIR version '4.0.1' + +include FHIRHelpers version '4.0.1' + +include WHOConcepts called Concepts +include WHOCommon called Common + +context Patient + +define "Pregnancy Status Observation": + [Observation: Concepts."Pregnancy status"] O + where O.status in { 'final', 'amended', 'corrected' } + +define "Pregnant Observation": + "Pregnancy Status Observation" O + where O.value ~ Concepts."Pregnant" + diff --git a/tests/data/cql/WHOEncounterElements.cql b/tests/data/cql/WHOEncounterElements.cql new file mode 100644 index 0000000..503d2cc --- /dev/null +++ b/tests/data/cql/WHOEncounterElements.cql @@ -0,0 +1,19 @@ +library WHOEncounterElements + +using FHIR version '4.0.1' + +include FHIRHelpers version '4.0.1' + +include WHOConcepts called Concepts +include WHOCommon called Common +include WHOElements called Elements + +parameter AsOf Date default Today() +parameter EncounterId String + +context Patient + +define "Pregnant Observation": + Elements."Pregnant Observation" O + where O.encounter.references(EncounterId) + or O.effective.toInterval() starts 9 months on or before day of AsOf diff --git a/tests/data/example_cql_HIV20.cql b/tests/data/example_cql_HIV20.cql new file mode 100644 index 0000000..65193da --- /dev/null +++ b/tests/data/example_cql_HIV20.cql @@ -0,0 +1,85 @@ + +/* + * Library: HIV.IND.20 Logic + * Short Name: Individuals testing positive for HIV + * + * % testing positive among people who received an HIV test in the reporting period + * + * Numerator: Number of people who test HIV-positive in the reporting period and have results returned to them* + * Numerator Calculation: COUNT of clients with "HIV test result"='HIV-positive' AND "HIV test date" in the reporting period AND (("Date HIV test results returned" in the reporting period) OR ("HIV diagnosis date" in the reporting period)) + * Numerator Exclusions: nan + * + * Denominator: Number of people receiving an HIV test in the reporting period + * Denominator Calculation: COUNT of clients with "HIV test date" in the reporting period AND "Date HIV test results returned" in the reporting period + * Denominator Exclusions: nan + * + * Disaggregations: + * • Gender (female, male, other**) | • Age (0–4, 5–9, 10–14, 15–19, 20–24, 25–29, 30–34, 35–39, 40–44, 45–49, 50+ years)*** | • Key populations (men who have sex with men, people living in prisons and other closed settings, people who inject drugs, sex workers, trans and gender diverse people)**** | • TB status (presumptive TB, diagnosed TB, none) | • Testing entry point: | - Facility-level testing: Provider-initiated testing and counselling in clinics or emergency facilities, ANC clinics (including labour and delivery), voluntary counselling and testing (within a health facility setting), family planning clinics (only in high HIV burden settings), TB clinics, other facility-level testing | - Community-level testing: Mobile testing (for example, through vans or temporary testing facilities), voluntary counselling and testing (VCT) centres (not within a health facility setting), other community-based testing. | • Cities and other administrative regions of epidemiologic importance + * Disaggregation Elements: Gender | Age | Key population member type | TB diagnosis result | Presumptive TB | Testing entry point + * + * Numerator and Denominator Elements: + * Date HIV test results returned | HIV diagnosis date | HIV test date | HIV test result + * + * Reference: Consolidated guidelines on person-centred HIV strategic information: strengthening routine data for impact. Geneva: World Health Organization; 2022 + * + * Additional Context + * - what it measures: Measures the proportion of people testing positive for HIV. Individuals receiving more than one HIV test in the reporting period are counted only once in the denominator. + * - rationale: Knowing the HIV test positivity among individuals by testing approach is critical to understanding the reach of HIV testing services, and the number of people aware of their status and receiving person-centred services. + * - method: For the numerator and denominator: Patient monitoring tools, for example, HIV testing service records, HTS or lab registers, logbooks and reporting forms at facility and community levels or EMRs + */ + +library HIVIND20Logic + +using FHIR version '4.0.1' + +include HIVIndicatorCommon version '0.0.1' called HIC +include FHIRHelpers version '4.0.1' +include WHOCommon called WCom +include FHIRCommon called FC + +parameter "Measurement Period" Interval default Interval[@2020-01-01, @2020-01-31] + +context Unfiltered + +// From BRYN +//you use a Measure resource, and your Measure would be based on either Patients or Observations. +//If you want to count number of Patients that have received the test, that's a Patient-based Measure using an "exists", +//if you want to count the number of Tests, that could be a Patient-based continuous variable measure, where the Measure Observation is a Count of tests, or it could be an Observation-based proportion measure, where the basis is actually Observation. + +/* + * As defined by Member State + */ +define "Initial Population": + true + +//Does this also filter out self HIV tests +//right now using HIVIND19 definition which does +define "numerator": + exists(HIC."HIV Positive Condition" C + where C.onset during "Measurement Period") + or + exists(HIC."HIV Positive Observation" O + where (O.issued before end of "Measurement Period" + and O.issued after start of "Measurement Period") + ) + +define "denominator": + exists(HIC."HIV test resulted" T + where T.issued before end of "Measurement Period" + and T.issued after start of "Measurement Period") + +/* + * Disaggregators + */ + +define "Administrative Gender Stratifier": + HIC."By Administrative Gender Stratifier" + +define "Age Stratifier": + HIC."By Age Stratifier" + +define "Geographic Region Stratifier": + HIC."By Geographic Region Stratifier" + +define "patientGroups Stratifier": + HIC."patientGroups_3" \ No newline at end of file diff --git a/tests/data/example_cql_HIV27.cql b/tests/data/example_cql_HIV27.cql new file mode 100644 index 0000000..c67d808 --- /dev/null +++ b/tests/data/example_cql_HIV27.cql @@ -0,0 +1,100 @@ +/* + * Library: HIV.IND.27 Logic + * People living with HIV on ART + * Number and % of people on ART among all people living with HIV at the end of the reporting period + * + * Numerator: COUNT of clients with "HIV status"='HIV-positive' AND "On ART"=True at reporting period end date + * Numerator Exclusions: Clients with an "HIV treatment outcome" IN 'Lost to follow up', 'Transferred out', 'Death (documented)' at the end of the reporting period + * Definition: Number of people on ART at the end of the reporting period (HIV patient monitoring data from, for example, ART registers, patient records or EMRs). For key populations survey data may be required. + * + * Denominator: For treatment coverage: *Estimated number of people living with HIV + * For progress towards 2nd 95 target: *Estimated number of people living with HIV who know their status + * Denominator exclusions: Clients with an "HIV treatment outcome" IN 'Lost to follow up', 'Transferred out', 'Death (documented)' at the end of the reporting period + * Definition: 1. To determine treatment coverage: estimated number of people living with HIV (from models, such as Spectrum AIM) + * 2. To gauge progress toward the second 95 target: number of people living with HIV who know their HIV status (from surveys or models) + * + * Disaggregation: + * - Gender + * - Age + * - Key population member type + * Description: + * - Gender (female, male, other*) + * - Age (0–4, 5–9, 10–14, 15–19, 20–24, 25–29, 30–34, 35–39, 40–44, 45–49, 50+ years)** + * - Key populations (men who have sex with men, people living in prisons and other closed settings, people who inject drugs, sex workers, trans and gender diverse people)*** + * - Cities and other administrative regions of epidemiologic importance + * + * * The category of other includes trans and gender diverse people who choose an identity other than male or female. + * ** Recommended in settings with robust electronic health information systems. + * *** Where feasible and data security and confidentiality can be ensured (see monitoring considerations in section 3.8 of WHO's 2022 HIV SI Guidelines on key + * populations for further guidance and section 6.4 on maintaining data privacy, security and confidential). + * + * Data Elements: + * - HIV status + * - On ART + * + * Reference: Consolidated guidelines on person-centred HIV strategic information: strengthening routine data for impact. Geneva: World Health Organization; 2022 + */ + + + +library HIVIND27Logic + +using FHIR version '4.0.1' + + +include HIVIndicatorCommon version '0.0.1' called HIC +include FHIRHelpers version '4.0.1' +include WHOCommon called WCom +include FHIRCommon called FC + +parameter "Measurement Period" Interval default Interval[@2020-01-01, @2020-01-31] + +context Unfiltered + +/* +* Many indicator specifications in ANC and Immunization have context as patient. +* I believe these should be unfiltered to get all observations not just those related to a current patient +* Should discuss. +*/ + +define "numerator": + (exists(HIC."HIV Positive Condition" C + where C.onset before end of "Measurement Period") + or + exists(HIC."HIV Positive Observation" O + where (O.issued before end of "Measurement Period") + )) + 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 not exists (HIC."Patient Deceased before end of Measurement Period") + and not exists (HIC."Stopped ART at Facility during the measurement period") + + +define "denominator": + (exists(HIC."HIV Positive Condition" C + where C.onset before end of "Measurement Period") + or + exists(HIC."HIV Positive Observation" O + where (O.issued before end of "Measurement Period") + )) + and not exists (HIC."Patient Deceased before end of Measurement Period") + and not exists (HIC."Stopped ART at Facility during the measurement period") + +/* + * Disaggregators + */ + +define "Administrative Gender Stratifier": + HIC."By Administrative Gender Stratifier" + +define "Age Stratifier": + HIC."By Age Stratifier" + +define "Geographic Region Stratifier": + HIC."By Geographic Region Stratifier" + +define "patientGroups Stratifier": + HIC."patientGroups" diff --git a/tests/data/example_fsh/HIV20_library.fsh b/tests/data/example_fsh/HIV20_library.fsh new file mode 100644 index 0000000..b079698 --- /dev/null +++ b/tests/data/example_fsh/HIV20_library.fsh @@ -0,0 +1,19 @@ +Instance: HIVIND20Logic +InstanceOf: Library +Title: "HIV.IND.20 Logic" +Description: "% testing positive among people who received an HIV test in the reporting period" +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/immunizations-measles/Library/HIVIND20Logic" +* extension[+] + * url = "http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability" + * valueCode = #computable +* name = "HIVIND20Logic" +* status = #draft +* experimental = true +* publisher = "World Health Organization (WHO)" +* type = $library-type#logic-library +* content.id = "ig-loader-HIVIND20Logic.cql" \ No newline at end of file diff --git a/tests/data/example_fsh/HIV20_measure.fsh b/tests/data/example_fsh/HIV20_measure.fsh new file mode 100644 index 0000000..4cc416f --- /dev/null +++ b/tests/data/example_fsh/HIV20_measure.fsh @@ -0,0 +1,51 @@ +Instance: HIVIND20 +InstanceOf: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/proportion-measure-cqfm +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 = "% testing positive among people who received an HIV test in the reporting period" +* url = "http://smart.who.int/immunizations-measles/Measure/HIVIND20" +* status = #draft +* experimental = true +* date = "2024-06-14" +* name = "HIVIND20" +* title = "HIV.IND.20 Individuals testing positive for HIV" +* publisher = "World Health Organization (WHO)" +* library = "http://smart.who.int/immunizations-measles/Library/HIVIND20Logic" +* scoring = $measure-scoring#proportion "Proportion" +* group[+] + * population[initialPopulation] + * id = "HIV.IND.20.IP" + * description = "Number in target group" + * code = $measure-population#initial-population "Initial Population" + * criteria.language = #text/cql-identifier + * criteria.expression = "Initial Population" + * population[denominator] + * 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 = "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 = "HIV.IND.20.S.AG" + * criteria.language = #text/cql-identifier + * 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" \ No newline at end of file diff --git a/tests/data/l2/test_dd.xlsx b/tests/data/l2/test_dd.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..af04736ec842146fcf35cd77c9a310da6a347734 GIT binary patch literal 548272 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%0D-6a`cz7U9M4Wyx7d2k3RYr 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

Ht#M8NX_JU|04AtnfhdQ1dm?Nkov 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

B= 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

JUv(JN=+r3YE7Be4QaU3Iy!Y#puSuju^s9S5^ zlLB3sFV3;ayDJhtMT0Elz9m~am%Cfg1T12Jye{{j>6^5|N&Q&@bcSN3!>5;P9xe|PX7i_%?yJ@^v`%-}+Qz8X|9F;` zc&$C1y9Su=%TI@k)svVJB=B&3So>Z^*<%?#u6?gWYWF{`o3E-;OyjVVcbevO_OZ9Z6hu>&7NL1l|w>0*EQAh-23#>FoVQZkB!$ zv`7IWb9tMC2p4TgmJrG^%WvCwE4Zr!V;Il=PTH%H%;U756Y3#51y6cNqlyjo`ZK_q zxVQ`v1$*O+5OL|i0tU)F>6Hnn zfrpEH*<87&O5H4k6)YBkYgZf^dS!WZn|!uXLn?3}DDv*NUP{QCe>&2(C1F*4vDOK- ztyD!q8eU1X`HEpE7+l(Qs3P??#EuUzOtFjS!K0mR!r%l2V$7jvx% zV}#wjVcx9nrIlMG^K9z|$voR(dt~0)%eIjFyCvCs?ItUeJnLY*j_sA1=W!pD&8**G zjkjxc4s)sAtDcWcD8R`GZCl(i-Ds?U_J9s@j+s%LHgdPMJrlEq4U;4#Gn`gKEw!Db z5`|WtHV6E1O{HbbvX2k(-Esvffl;M`S{b0rmrFRhN`;=h2@$##+JB}1tr9>TRZzs+ zgy41%WUS!w!VDb8OL>;3C8t_W%vTZ~B=j&VZowXYbEH?mMsUe+lPMpwjOI~b#4hfr zToujQO}8}Up`;1_`yu_Vp-BkNqcU*!8pIA{H&-rYli{sE^T<{7g%v^7)aZ)1M!_YD1GWuv@=X^sLsx6B>B`s$zZ)z|-& zuafv&?5ZthxKeEjP0RHCMjBht+(hAi$qp)!6M?$V0mX)75&Xw;!h~E6;KWL`#)5XD zDX_yb7Z58KbA&vF9aTWBQX4jh`DlerZ`Gn{1O)?afqh((ON`Ph(FwVk$YWg5aYnvs z5>~ymXS2g_FZ#RI>xwRf@1ikQ6e_8Q08mLg&=D(cQgu(MzoV}$MQ{s=MyryA)v9*3 zlwk7acalM28H;R1@&_~C@PQ#;shwWYf@exa8VY)sq5z8}z4I#6diH8$LOr~}kJkgX ziMG_E^gZ%yTQ|n~R+KXy3YQ(4?K#3aB8zy3Caq(JU%YxqIhQsVA$#Z%Js3_dMV#+*0{ufx`ukq0DHfthyF$xM-+GlA6i48^?c8BHqa5=@QqQ*hKTQ|w1 zx}TF%oMAKFY$bdb-p{djCkYeJW=%=xX=uHx2Wssm`RE&;ff1(QS5S*PE~r=m%(~ri z#wXWgK1?LacWcNBx7ilcaqo{`fKivY$&m8964vnu0Q)2<^u2%D_0O3o&9mQsdVp2VCa=e1SQw{YqgW~T-kKHFFxexgo9tt z_F0h*7G|;XL~$Q%D9Kxz2zoB3Q&kN}^qN!n6-xIOO1KsMv8~FvL~BO)Xj^29B(EM( zv7>++35nUV4RV8#Isw}|mzf+^s-FRzQ^sv|XR1rRK}QOZcG!RIHD^#b zDwcM>;<2g>t}ub*in2Pa*nx2^#VQ5?+Km8lDs;hI1PGv#6NZ6chJUYkAtL;eai9EP zb?;GWEYlc9caZO|e)~NP0n{BioK9bd6s>^QZp#B9XcsM;T4Fc-7 zNG1ZGMdRS>l@~*XysR)wf_fd&Ye`JA{3h4ZlqyL7(BUeB*R^L*a&# z0K;AzOnWTsED=jteLaKbdis2TS>JJEgg+K8Ww9Wjw6~GEf8d(aXoKjSaUPhMOa_dz zPUcFG1(jN*JBY;Mf+)<8<^ZWgqk4}?bt{{yvR)1Xrs4-r&d3}J7?e)&fQ^@5DzO1? zMn!m>CQLG`>a}N!&y_@6v=2>5;v1?UjkmLx?!E$Vk%Da+jmJXE3-&akD;yx}&E3vu0EY+d)d51+K2Vppiw ztROBi%ZyRZqvcif#)$!NVbq#=A9`~Jv(E-UXFA(n(=65@@KhGft;q~hC3Q(r>Tcw$ zG?G@M;lXT#h|zkisGHz{8#aTag_O7oyL(>~BCLUeRF>nkgip~v$!`;5)pJsRg~`$XYylXk;7 z(Dh(fH_Pf{CZrDq3__>x1$Rp+`@4fbI0u4sj|l|@k|Fzbzgs_IQ7WcCcI7FCi+H(B z3v8L*zgz#=TodSH<#v*b^C|j1Bl8R9&97n_dW!Y~w-DCzlQb_biZP5Aazq=$QbwTe zV<+8F<6UmQgp6z-jYBYB!*(V;G7UOic&9n^lWuIb|??w{>^AbVegH(i`0v|0^ zd-gJ66Qt>~chFlxKlv2nd59mFVjfZ4Hl*i1?Wa@#4ko=E)!;sb;gfE%aE(5RlnvRr z^D8I^h2Kyiz=w(G2A_7fl@(*#B7VCa%$PC!6qBY>jWHqXDZe9|3jr3=g9Tv5d&m*> z+90N@0*wha;d27HdSN_x4y!>~x$8Mb?)V$hu+59M^E`_umzt9@t*@x`Xcd#Br$32I zRHOrCP5bon$EWy0a0!@dMj$89-f;w>7bG@|YvoDCCHEhsF<)IUhNQk+nX7$Bt@((( z(sJus;=b&e@%&*4Esk*lnL!f*b@!Eeft1fptA09mca^4VWO6liw>hWVw9)Q+T;oDo zdK9vATpq`dLaCN&D)Ye^d3q^}DYZbWZiPa(FZ|Ye8!i!y2KN#?x|MKR z;^4x~>pxIUonIQ6j)|^2RK&;GZLZc~apIERR0l88pRgYgqn8SBzX;d2Ml$XlMt3>%XGF6Lfe=(g;5!+xW;Jlh)LNd9&&vy7sYH; z)ALp^+T@zJ8=!U2i@OE{9rJVLP>1`lezqlIwmjP>xa9@?#4qJ-9^kb(2t2zI8dxB&dfyJHP^UnOa0l)6 zC0@RS?Qtr1sEM0b`sqdQjV^Dw^hCDsh%fS1oPC7V@kX;ePFtt=-R{iTc3Rd^w@&LNVQmLz%S``!mX9k zsASz41oceaG`~lfikI%k@4hcvgdGZS_(K2X4_>x2+&CME^_I4ss<-d4i`Tz@@!Q_< zb4RF5$M<#vnwmBfFyS83n#K@S2P+J7gT7P*dDG>VpDfduv~k3y$!=M)T>v7vShWr= z2x40zQBhfL2899w9&wA%F{R%9eY&KmJgnUcz-cnB8)vm4(W zE@WC7^m}=;t7v6|3X;r+QUsaN?T$b0cddXcd4K5L9uCvop!R!-jX-&Wy8+7@n)sfR z{VSZ?|M|zmO&W?q4nN;~dNseMZbY?JLb6*l8kU>e|Jv1RrKlJxj(`BxH5@EqCvP-; zv9GcRK&H;&ToNvD!sQg5dJ=6>ZKXoZOp)Mg5~0#ns@~5OI3>Xs^#FfO_L444m8!-a zqPO!aGxG#iv^$XFXHQL)(&go-?2`J!i{JjK_u>5Ki{9zk<=fMbPhKH(Yfp zqOugGa|W2vdldtVx~a(YBlE@coO-UUI2G4#qiQmN$g`r0wCPEOqOsy$s`W0aI(zCD z_Ra16XVc%LOC7orXFn^%?b=YG%XRIf|uEUAeZ;pO~_EGG>D*ThSfD$Wo$bZ z8N&;Yj_TL4daIjzg-bor8Zqlp*g9U~UygfP8n=C)Kt2Pgiu3ya2s5-f_(SL>SZm^uHre60E3m_E3 z8EAL+pEvNOHKx2Q+~{TfN^NVK<3~7Vi4rVsLiuoK#e#CerjOSYI7_Ud4Q>h1{0W-p+@&#QTG(vx!WRC4*sKm@>1`9d?)<(EyxdiZSmuJhV+C zJy@Dcis=%IGsC|c0M*F@gTY#IK9&PTt{K`U&H)T4_8bSTCJ{G+uVbvKG0C6f&pA*=xfR_d@9~kYmE+}_Ac_}ViTBsMy z$i@qr%I<9wTcr;e>2u%?ZPDnJ=(;}RlU~1!b^26}!13~U&gD=6+`6wM$!=YF_1~u} zumAgW<%g&1iX~5G3J?(-()P3}4@Fee;MATMhh<#e+j5zg*^wovSrI0CN0j7N@FKER zWXiA$&o61{$I2@GIgbB7UpF^+CgbzCNC&X|PS5(ZiqiQ{h0J`*SoN-{1$(yy2p3LM zg>Vawin7!srFjRF<=o2W;kZCGP;m@3#0#FqDOZ){fuO2}U)s^_Fr>m^w9(ii*}nWS zIKk_^P?|cuuqbRb1Gbz2pM9H_+V?k|8Oys>(Ul-0<%D>pq=%TC(VT#gm-LmCRrNVC z9+c&i_ha2UGn=7>!5OS{A-Im1SM;J{Me*@r+ceKzEeQD13b7PQ$bEN z52LwvWH5X@RQhi#R+E12wI81c-dstVAqF7ZbYPA`GKizOmA~M-QLe#E=7KADd+Q;0 zi%%AU;6}l1eoxU#Jk-vKhe6(y8`eaB zXTff@^X#sYo>JZp;1F`0RqX<=T63;;ue3~5=K0s(7Z*|E=I>uA3sptp{H|)TEnTJO zm{jKAj~yBfA5L2RXj~M|$sv`j$yLGKS=R9@auJ&YR$^qh@VIuZ4b|uiIgkO0Sg(9h z)BkWYDfXfQ7AQOg~;{tMvRTP7*iAhoD%belRuj;<3#uhWj`7#cvONYve z&|Z9pT$>UB8nc<1y}}9zYz3+g&4~^vAkL)d{0%mS$%ta?RD< zni+Z&aIRiAzQ(l^b>i0tzYE#Hp}gm4#=*MQA`FfGg*4$x+Guzv9P@&Mhhm$moR#0W z&0|@zprP)tAHBTme?7ntHf(?PxbiHg33Y(nc+Fy2zFg_hBq(N@xd=HwYrhxEQC7gb zf}yIH&dcMZJ=*(T?sYOEfmqm=UwCE=WXLMJ;f^A$mF}_lWy)uBa3Nn*JfGHU4&Phc zW%Jv~oNQZ|Bd;K3qS@zB`tnNwH|&=k8UqrpqRwQ~+W6s18wZm=0siu*~baU zJ|A>bGoCvvf?4E+vtq@^%o*Sw31#W~5$o`QnwA_WD!Z;)U8{`*m)W<=X{k6}8`-?B zwP$ChN_}X9EQ=TW=1*p(c4XH*EdjY9RoGx1#X-f*z^(W|x)mh{%|Ro@VLBk?9?31$ zph2q!o!Y1Gj0Oj}ZdB^c!5yt`FEUR?8Z7}0yAWV)-t54-d0-4-cGHT=A%$>n-f$s% zb|1Rs$*;>`*|3KL%f7c^YcVM}HAe57BnhV*Hd{2ficO}iO}|uD5x8`JvpunfHaMoL zATPp5(PpHz&QKS*+T$ggS;3+O{A!h|WpTUvjo#WoA<=cJ?Hmn?H@$PsPu7oO@pUPy zHUixum9E6|6VGYu2$}~ubMT5ppS7$v#mshSb!>b$llko`rkPC|Z@Ny+N*-m#Bf6?hm>SS zVNN!ed8PFr`dyL(6h}hPfI4+puyELJ0 zDjnK~^c9#9bW|#j9w=b!3d)n}uNY9c@u4~VOnaM5h02-}Zjd#w(YtkDAgjR@K7Wv9 z2JaNPp7_yPphp%ns?}ic_+@wY5Sj?hA6|_Y%KyC)h|dhcn|f{cm65!#QJeKdwYE-A zMP>=96=F&I6ib5rS2mJ#=3#oJiWf|+krnshL07&5wyQB< z83Q$$p|_Aj+=X-#J9$*S=N(Z_Y6AzsEaFH&IuI4F_>SbCypuR7X<`J2Ri(p{QYis^ zmCh_X^drirr*mhiK{f$Jzsjql8XXTuP|%jvKu|-1cN#(Y*>!98p}gF}T`S|Gww9?) zTHJ>>i_w2Q7=NF84S^|9h+^g2$4)$^AgB{CS6nBdv)P%BJod#rp~jM8W*-c;Ql99E zz;^UiW?reM6iUG)^+q`bLoat@w+8P!W1}ssdz0@{Y*%-Q`=7hY%=Mo85nlh@x z7j8JMG&J>b^&jzb}&IuG7Af$p1 zqAfGV*S1h+m8=gbX30?=a>|P2<{Dgx#Pi1KGXZ>>g0rrT3fE@!3d!1u1s)EcU(Mx5 zE{7+_T3Up2Vpn1Te%BdqyrUhA5;jD6+#?g!4}wai?=cg*6@Pz!2?q#xDF3F?@9?L) zRwQ^_pt{bRq zeoy-+bsjfY=5%#jTn9d~LC3IA7|lA9izvMTp4UX)clbg+I=16in-he$+MMy^eyv0h z?0p=&el{J5?S_B&IClJMa~N+PlrJ>!G!0oms4Big&7&01zJ&+dE|voGLB^F?6Qv0% zr|I$UvRxrOv+}O;jpJJ&4a$_V z@=F1ToN{ShjwU25NyQ0hG`?6w?ogK(J#Izp&E{i#WhT}#IR_7K#5bP0g~B`u%LAFZ zoNY8`iIkzLg!8+EBaZu)Zijkw#y8#?35bZS8i>ZK!9q1`h0>Y_0w{dYd5jZV&@CLQ z4Q%Xc7F%i(Kqo0&78EpSW4ijIYXDL}t-o+}@z|1?LQ#6{6btFFmBRZ@_YF})G{p+q zCZ@S?WM4zJSFm1+Nj>-_3j%#@CughBqlP$;v21WS)yXmb8Gk91>J$HlQa<3#p!Sot zPN;8d_xBfUj=Q-S$;?3tS%%O{y@A;2@1TshPpmWHKua&Ux&Llp@WUH89homu?){ME zL_!?9<{oVNXhxh(%T{ySh0!^ixt)?Uh3n_p7~fd$?4*LF%zTwSZQoFO2&%hf)u@yJ zD+)}=-CG=Mjgskr|4*)HTn@z9xbGoBuYDvrjim#d#9Uk3+{l^o_KCA5O5~;jH-=zS zf!M$V5)p;6^bVqj(jil;;@frfBL149I$9BhozEutI||)4${rn7y0m!F3qExfXfQr` z%f(f7H>Z3=P@$Peh)?3nI)X|b9E6=q+xTwN=`$I!$Rh_<34~^}{92t#;M}2;)#Moy z6{NM|00dChy8!_uJ1w(2D<(yer8I+^q{ujGiu)fY6f`my_)=|NV_9ou^iC_fq2(P? z<|#VS{DAX&hWap`w`iUw`x+zCm&j}~cl|E!wg-&QNeV6k6iu(R5W!XaaaqgKBaex5 zrsZi3LpWI6vX$_~inoWb64>Cyy{SuZNz2MRTHDAGCm3R4B_mVD!t-!?eev*q;UXQS zRqM;ZW^;6+IT#EN42`=Wj%M|SolGZDZ*WZ`MSppic&>W!>D+_Pm0as#^RX43QZJn2 zF`*AQ;!mGP6Hw7&Z8A9J{a86i^3ql(B-g8wiCW3_D+f?e2(>@9W&lN}vSV;CVSD30 zQ8j~kGR#PvFr6+R>Nmi`8qBsoPu$oiy*B3xUk^k=E!Ni(ycfp=N|8?+f9_qKl zeQdwt`kSh{r`&$ZEkL;Uet|{_&#_KZ!Fm829|RdR8tQr6&%ez%*X_id#EK4Z&p~mC zz^N1f>GeM>PCtBC-PNXmgi`MzBs91thN0DVJ&=noFEuJ#*^b#nl&yd>uNX`IjcVA@ zKDK^M1_Ci%CP!&S(b;uR0hFcufGPlqH;DTpU&CtcS~aSmn@V|5q>00&uB5F4NT0(! zAi{g#0@>F4pW!CJj8gF|n9`C?NXI4$A^Ha7t9R+U9r^?}HXNDr*d_Zivnci>gG|Ka z6b*LmfRKR)i?+9AHK10x8oy?$&SrlXbrGOX#mqPlh>gYk*GB}IdaAnS(z=PFfM)2Q zy!&t@>tx8*mDnK3z~>e!I_jZej)60X?_d6^*@H@>T|2I33)^6ogF;hPL#MK}X>={X$?r@NGT#1(Y5zN72tJ3)K zPsc<;tS0Ra-?*f{?a~OPWpIY?)lUT$A$XCk7rYonz13K#$pl0H_|wPT=il~m<)qg? z@nNS=oMVYcOBD5k&9opE8bnjCe}43ChyDk(jQxStJ>`BhTuEaU(34s9)8h}V1!wJj zd?5E$qO~`G>6_Ap%VluhxEQ64H%Dn%gm)@MBY^RIYOIo5ZrL}4uJ_VVbxIUY87>%( zQloQMf#r;aFS|d<;IflP$$NAzX#&=-=$oL8%_)sQ3znb&WDLZIwZ zHiOL@$o7S<-FRQu_NIA5*dn2VI`+BNBkHZ8>8f%atVXsKJ(1JAJdNwY3Q9EF4lCEv zIyVK0a#DWf0#S-y_TtI5TpArx#e&X&DwuB~WnT*=739Ej_i5G55U{pukz3j#71L7) zT#kv#(VL&ifOmZ>?wP@CB=1rcBe0cM-fzxm1L4T39a586y+QmGNWNQyQA}A zwdycA2T;=!;U7H1)<9Z-cKJsWk3^hU5QiJI&1*LL+%$*(9i)n-cT$g_>>{#^6(wo4nu&FObBXo!|j-&vmtRYZ-k$;0eQ4ZMOO;%$ESP(Z?Ku?m{u9 z1zNQl1$ox^?8;=0kJs;^y+r8tQR5h^3H6&dq2OPPud0+ z(6O$vk3kVK&M0a^ema66ezv+CD|WA4isAr}$n$r7nk$HSJ8t+MOU(Y!-djv6V`+85 z3EQNP_ZTeH&)HM|j(_@ec5?9Yj{u(y$a!(}@#5fk{^{V=o<5*bi6Dl*k%;JDD1Y&z z7i8Jfhw3%3OriPl_|I{-Wc8ITX5VT2?||K*aS)g>%4qv>UtdshZwN5;%I^5`IK_cYWgMd!HwzHtDmw+03plLn_uZrv*lVWSh!<7>)M_B0t!;bh>6?1g?6uegbl>-Lp2no zNz6{**@w%!gNqNAZWguWLg8)eb;|WrYo?0iX<6ksStZ{grZzsmndPxXn4$#%!CVcSRw9SATG(Gc(8U#Opg$c}H;y zMMydv-?-kz%uY1Zigi6YJGqc&Q+)2p^T97te8*-@gibm&<*3Diaae)hOU_hNEp&STo43)R=#1yY>C5*1WpcqlHa zuv)Y0D_)79x(!|tLHcBz910(x`S!%t6p4-53am(eG9A(+)+=)iwe-GhIJAky+Scvd zvn7vQ{ut!mSv$tc@Ye2}_hDdmF3uGG9Nnp8L@M-nmpPj!;w(wD8 zlwaainJR14D2(M}6n7tqIvy_01}K0;esz4mn3)za*sYmjrV%|ae|Pxu56Rur zX*2^g0fmy(-0m&3%hb!N#G-hhE@JC;{>y<^umB`$>$VOwJY29Sta><{3(j=&PHtb< z<6^}PaO0&R2rPzuz`clWA#86N=c&IL%Svqet|A&xb&_f+sbsF$ObLyg0@CO@ikf){ zyew6RUW-UkH%GewXrEALr$g_{UiMwz3#N#wailuAU2K`Ptbf{?!258pi$vb2zoOIZ z`n6T!d;QRCZPIcoxxG+`YDLqfX0FysTead+Ey9=qUlA^r)dIh~VX`j~8*tTuic7k! z*>PP|knU|o;m}n>Usqy)?ltMo;{+sQ$5^*L8?Ggv-l`GiE! zC5ocGq?tR^M%Wix)LG4x^uELV{ocK;bE0)*fb5|quB2h_3mUXxb7Fc{|M)M*sUy5(rLNk$*}-}TLHiI? z9MA8T8SSk5Xz{#okVwh6Q`t;l&JJ>xn+)4xwq)*AbDH0N(+B(K=cku{`|i+Rm|!?B zgsOH(OVL1yH|d|B0v1LqYhl7k;)!y{nBe}Hg#0n%p|XD z{=R%~u%4t&Hp|eK>Q<)n`bR=)L>cmKXcnza9^1z`W~8&2A*j-`_0|+xXnp@oWO~=a zasbSdd^D%4dE)g`ficR|<`P&?PI{)S$OS2Y&JUT?Rx#8Y>Z9hFw*18*A#_YODC)1~kDf^@x<_|v z%enXI-Miy<{SpV*?N|_bH8vb8nV7bePKz7M^gW^HooW$~{Kd(4_GG5sLX&-?DDtP4 z{WFfx-T6x)>{SBTs`<3t#vo3ZDRhX5#aJChtn4C=*Ii~NGTAYEMw@9Lu0VgP-R~Pj zt+MHpy;%ZFtMAwAVPNdVUSgO zYd5;qYOA#3tSU7X1^T^~WM1lNo>fKwjv*ntk9`S}=oZ9L{7%RoZVe5W2oEh2OU zcPa8Rr1^(Hl@kTD^q@m)dNVYYNi&RYjiMtniV>GN;$`Cas`z9)#Pvpsob&3dD|CVo z?F)CW0%m1+Pja!S%F)Lfyu)$;dvr(09>$7kY7VSx?d_;mhTiZW0E#YBylkPvPsc+t z=z*h=ZEgy;8SWggy6o!=}6US$w0QBvJOBV4gcQeu3M{ zQeke;`Bic)R%t2-^O`&H&6q5ERV$a9Eca^j1rnqInX@W#!;VRgYOmdHfq|nT#e`IQ z$!pX(!nuF+_9QvmZvv?%%5KSF68KO&-kxcy{pv7CwE)kfg*+34!4$*St*Jmh6eDgg zJlxyArI#CRPhU@nwxxT^mQAAjo+%kpbc6cX4!!Olot%?kDJv}Y#=hSlOs~Z1GGC980N0UXvEh{K`jPEv*PV-v6|ZMCmlp-z`5d%sE93YoR&$x@o-lonB8U|w2a zq1;BxodY~Cxn7iVh6Ku(JR$AJw3k@ys*=KUC_Vu4_?2D3BHcYK2!Pr4i{WQ=safqM zi8_58lZK>d5hj#>k#(vj1znNsTJHm&gfl8%`e!hi%Y3l}=RLG{KF97Q?`c21yBJUR z+1y)8t*&RLa*^y|*yNt;Z0={&M<_(ou~9|rp=+0j4elQzm?EB8$VA*_!(5)c*+(<1 zthkU-YxdFFPox3g50+}}U!@fDgExN2KT%`+55vK7aP_dKPl|0|FqD6I50m=i1KlO^ z43d054W7(}ZQ}~xOZScki>twO@C|&+e!BO8Dirf8T4kZg;@*8%szCr3`#FCf=95P} zRr1S(tgn!C6-*yU1`yQmkmW~{=e;+0g^mYy2mfs^vg8OK!*~Gy%6{hhc)a8=>}e;Q zE^Yy%3n{gaRXZ7feuUP6^zl75`VPGn*$J{?AJPt(&E6V2#ergs3tq9*i9VjLzycHuK!KiTvZgS+FPUJRuHS5RSy0pL8l+^ z2E-X_sAel@%sx0{qI@IrN+Xd}qk%D|k1%#Tf__XscoUPa*>Ny2>R z6pEH-oT$gNqp0%#4i#RSf4?M0nzS#Y#`}N&=l}Lz|FM^NsGpTpP-MIjv84>p@)=ii zr!NmN!AyLi?+ z@ae0xo;+@ji5$RDuAFRzM;tvnpFQiHz3=^o1OA)mz29(J^&gI&{=+%ae>fEOpC3}u zSS;Ym#@XSCQ0?|6J6xY;yXrseJ^hD`v}JR)k<^6k3LBJ`*c#;%t&_fTbgY&&aFq7y zcrX!vn8hb_2S1C#zfz`pi8sawgb44LWBQrd0wpzwn0E&RumV4Yu_IUBZ;6~d`w`W_ zDkfNwYK7CE_5NjY|EJ!o?*-?BTj_8*ecd|bOJz36qjeAeu>yG9mw#1}ms#)kp7({5 z&s~{=+nIcytEaDa9XH!~R%^&_+Len@Z7l)&VL5fb2UFb3@H?Hy+zKn5Ly zL`z_sGwSJmi#s^Oeu{pS^CbOSnN=lGD1Qa3J>JKumF{@KUwg38$e+G%_ z<{=NHmaOH0DD5khRgD{srHs8oP!R6(v@|{D{-wZg_ z-A>Z>{iu9&k=sw_|H0#O32F1~PV;T4g%Gep zV)!Pp<|!OQS6Xu8iS*l17Mu|iERtLq#0bqWc03!DAh9`WJd#N+>Mdouq0n#AbI54>5_r|DsCbMovN zs8(PHl;lYTxD{1YB^tv)nnekrk|89G5)oQ9j3Q-=t_PIVx-;y1g9ZHCzl$-~+}}G7 z?))VCN1~o5=R|=>eJFEx4LQw(5{Zbtz~1 z!LFR9gJ^?Crnr1Vl#tAp|1cMD6^Ilf#pEH|r&d8!-Pw>uH@iH8)hoA+Bm@f1-c(lU zS%j8J;k&F4vh3k64~@CGsM5H61~+M1W#c;6c;-)Xh^`>Xoz)$TX5Z*`NdEJbJV{t< zLa1I2+6q&Cvw*a1Nl%Qd3IntH`07c&lLCI(#}XQiAopfcua)XnM{*Xef60=625rB0kP z!uR*Gzrq8LO52179&x@?WpVfF@vC6LJ!SA_54@yK^Q0CB_CKCF>927-Rf<(z9O*x? zdHGve+G8TvOG_sGIJ}ytm9uxsXBssXzxj&aYRGvZPIDx04d7j!zOgKa!?-X~tQ2wi>g3)A>UAVf&E0vTBM;{}!h86t~0f(uFMl%Y2FV zy}xof3;Uzujj}&GiDPcqWSgOYfgQ>2%8%IoNbHZy{^;5tx&2W*37|E3Pk!*8{NO$L z!FxyjSMoRc!QVdZ9LO)_hl&Tt_loAxY`-v5k{>cOKV)crFpB(ejxwK_d`PcHhU;f;(KjZTEaryhW{Jr{)yu8-K&Jm*Wb5Z%Zr2KbM{yS5o%4fYEa=zJh4acd< zV$|Q{JgO6KzPCUdY_=SAYEPA;mOWSTFL^=lz|rBR;@;&$ub2e$G?QpPvVZVtGgO~2 z^y(T-wQSki>IwDA549xox8^AFODI%+sLw7P#rdQn+eP+LY;uR^oLjN*y851J(T+kE z1GJ3$()%314pITAkCXb5s=Zu|S}C38E#kA9%;0)p+o{SkG(jcTm1k{rp^1@7H3~H$ zwkP`pd~<1PM*UQI_f234)D-jNEucQl@&9=BexAQkK~Nb$O#><^NG(esAEgENkc30q zyAEgB7G9a?by=1ozBa9B7vmiB{&vA5+rwPeWxBHyEfaL1vF&6pn5XriIB>+ZBuLI} zlT=|6RMoKH-i^ET9!P`NSl}d1yN!x)~)jF^#QE$B=~JS{6R8kWi()LR0#uh zF{^-xNrQ5e`aU07LRfrCLRr%EkRv53#EpsM!c0M+l~31S6#v}hu*?8?Jt2m`D|NE^ zOlqw!OUT;t0}u|!$U!sL?-C}sB4PX51e%7VGFML>-%vGaQP$X-OG2FAWpFxLQ3fFC zd**K>uJbEFJ(Hh+2TZRwAfPF^*9IXM4AS%4ivbZX6PnrIJ=$VxB%Wb9BMKcGumanF zp8Rv-{(9etbCxSH<*^KAbFv{nQcxw1SK)$Q+-?R$SOp5Hq?vM~q#StWqg#Ko|re6hs7r=;m1T zM5-q&T!Wx532vr9Ce6kbhN_t${(IFTI)?C<2hI;RVeeq}8{%POvfD1sM6GfZEM6l35Zl+X1GUM8}_S z4ftb&{%EGKl8vU4;baJ}A?c>48;c>s`jeILflf*SH9=p&r;_Zdsl?Z$?u3$+8C^2D zeWgU0-7NdsmuG1@N0yNr;&4^H^6NdU>=Jm_#x#N7k)$jMe(&uaRDay(pVBv|aqs+7p$PoMty z@naJ?xhb{rPtQl+pEB^%`C6V1rr+iHr>B!2W4Vb21mm%${fpVe+$+F-v*766c2mP0 zNumDvM3C#)k^R?CMQWqrEU=|8R>l7;@ ztgMz%`?H7mUP#c~3=TnJW?Qo$Lj2%i8mIs=4PHH4K#{(KJYFd|t}%53-36HT5~b(nO0K=gR+z|k z8i61!UD;wvAOu9fbfhYiKuaUzZqn#x@M`h{QHg?;{*b1ps90zv3{N0?RPT??ClwAl zrx~UQZjlou+)|lq3g(^}q!fmyR$P>ABx(Y3VBp-5%$2ARwk?b3nyn#3k%*dJ$Z=(| zo57yhZscvP;nvX!u8Gax2i?osGy_Ba)h1Qa+Sm_^Sf|w{DE6$h8j9o+ViW+@GTy#; zVgg|!O&!eTpELAsRjAEFFloZ3l8m5UDTS?i5DRGG{s2n^xp8W_Ky>&m%p#_ik)zlU zU{GSsiN#R2L^0Xm(;IVhEEd(&UQ|M9k`ZkdAe}-ecC&viWdJSUYN^a81?#qas{W!} z#ECc)VStu3#eVlJ`jIfEQ0Akk6Ge|7hCP44o?PS#d+IJN9MXC4W;5suUhC|1Ao*A! z(B_1MVOiS_QGOSZmlHorHp0$kAOe4e#6O*kHi7?q%J0HXl0E(VW*BGbMih7AO?hQA z=yc+uyZJNN-+jIPEC|CQPt#1hZ=^O1=plQwi+eb^K*Iz_Z{$CJ25%&&MRpkJ(A$Ud zpJSBh?!lAboq&!XY(D|-lU?5YpJf`jxio&)J3PWdo(SlssIPCqOX;|P`GBO1jHxpW z=z7bbJ;4gaq=l;vt4_LkTkl%eUDs=zs07!`FaykH*h}-jqf$_K(54!7)1r6q!-wVcdO`J$}}W^S`;D z;(Q;4oyX6@D9biDS#G#S&p7@xPxGgw1zrs{-@QEI?9*U2&M9?2eok5 ztr}%Dq7R5~Pw<6;OLCG%lAXBls9<~5-F)#<<`oJ8awV9W#-CQwZwvKuHW8>QYd@f6 zuIdVfJD5?mcYcaJh)TK>KE{rfwxdi+vTZQTs19};HKL^0Y!l*bN=^JH$ypEwMf^Ezxu5*dOY+UI z`Rwzwr?-pWsmq&9V%IT3xcym?2hZ*$j+up>BNfy9 zyc@pVc08LLy-+HF74N)q&Ueo-vow3>_-*z!am*o)wwqsDb{6r@myRFZvFZCqiSM)d z%eRp)J#%ZK=-EBra3_WTzxWMo9`+oV#pOHR8xeoZx{83qtt`?~#Qau~l=-b92qd05 z%-xrXBHpamRRZY4j%M`_+gX!jmXN_toE@qKeb`PF#U=ejeLCqOK9%^*c5?M(wx!?x zu+!0^`(+$zdGx^{&Dfq~Gh8C2{TBbB*Kx^H^J{f*=C{p5TE<)HAA3s9EtBa8;6F7< zy@+D1?n3#kK5ew1n(oeyL$EJVK%&@EH3g$v6;*Ea5{JSFdzm_km%UEv(4sq8N9*R7 zy}aXEt|pqTUKHt3-}Ew!a;33%n1LTDg#A#-mgi|-bDJf*CfzRE*r?d_6j>j((CwNI zc6<0MiWiv#C)QjpN27%Z!eO(crO-~{V6$y829(*rZ@2WvcD68Z6#MS%aQ&{PyVJvV zQ}hu!#KiC6PFLxCCIF|a%O=^Gj`}qR>7t}Q^HKwcTZww#(04~qb}M|PmteLg)*1c1 zLW|12?5+A-+|Lp{?p7ZkQwqmWtReKQi@=TM)%Pog0?O|Q1^NzNS6 zDn}lA8cghX&sPG9y`%LYa@or_67xjAZH-1nGV*I}QXgq;vn^+kDB{?83xW5Q+qgwg zNNsr1%Q*%`;r7?+>AaUGnjK#BbL4?y{&aiUxW4vJsLAg0ZgQv{WjvPdp~H{q9)586 zJbCAn!(+)0V~5AmJ=6vbbJ*EZdxJ-~f8_88!$SMNpLetPtz(4ni{js9HeB(g@b-D4 z=ub_%c%^%>uQ%5Hystfb{LkWzV<(Hw7ssx5Kcr2Ow`^@4A|#4i*t3sXZ?KAFtNFEM z<3_Lg%8*n}iL0=M zzE2hheoyYcNIeA#Lb2yJCh>%hFB|RdNMOoyReRk}zOll+&P&hPN<_qy<%I%0=epf5 z2mtwN!p;G;<$lz%8y`j9+PE9-`aj$I=&6RRx#YdJH+%k;#$oC`hv+c&UR&|vh4;A0 zLDze}VVL+^Fx!RqxO4;XeztS)r?>UneYxwYT5uy?_WjouC*Eg~?nnM>`-Sl0obTKI3wxy_Gy@eMK{e8eIK^oIBA$>Ij)tugV-NPTUwHr*O^t+$&0+h|2CcGbr)9@ zaU8|U3tV%Uuv4T-Rw#ez`I_UzQQnQxLf=UK(k7*GktG>i+H#YMZXUTZQPx{rk;O$= zWSR2W*Bd5Dx>=fclq0yDF#9S*Ee7vk%ZV$qF~ zPNBT~U!tIH78dMxp&~WwvRO01hq zF0`C07ttE58 zNT|WKo1J!3PAu)Tolk_m>4tgUR#T8-iS+5TR?BG9ut?Lk$CYB$k)y0H)PISHFr`t1 zok-sumenP0Q$8t*PLU_EVu+P*WqBTTuu9u*K@>(1NvEwwNYUJ4{I}#ED7DMMJ`h(k zQqo0hK9Jd!p*RLZU*Yn?|CwoAdca(!>i&im+`|MvT5J>V`T$ zb6w}YgGlJ)55vY{jG{4hbm!NE0`^UjBo9TONm?X0v-)Oxy&a3X-A*@yjUR{}V$@IO zFjRhxyaHaqGg9#=xQ-_vTL(51_MV`8mvwYt3N`d<2LMwr#VuNP zCQBwH>9&+gtX?c$Tgp|znv0dB-PHqkSt=Z&>mb(*D!^hP>bI>mP-M6bg*I2$6#g6@ zF#y5}?dDSu`AIuOj@u2B6N5yjwN+`DTnTg;FQfN$V`KE57D@gjjp>PMjxsp_yh~vCFM5ao7i; z1I#1>o`r@y_%$0B^925TAR3JlOhNd$b(9QkhwY`KWWRQQmte|u@PFFzGf{nR+X)u5 z6bs!v3ndKF*0oPM8Rl5)TgjNb210<^1zYo~i;Fj+-&xyD=HiXZ&9-->gklQXNTjVT z9SqkHr&1C0FFKUihcW!yj)GFWBr-PI4imCNcoPmuvZg!HP2_%{t&rrF6e)@OuK42D z;vEDBN!e(((?lnd9F_Y(A?PS2)FD39!+74EJc=dlqNNc=>y9EsVYbZyp@j>*TadL6 zvbyDAiZz`Klb6B;XiKSW1N5Di0)3%h_-@7{;-qN6N49io_YakWxzp*+q1t zA0H;L6v_Q}*gENfi{=P}1e5+j$TBYC4tKL{T~>5Tg74eWIc{qj;8}s9<36z^Jz=(q z{*IKZa!Wmr|sbo0q0)p0Wwj9n&pi6DsVH~x&>Xysp6WbrHw+Q5I;2u^R~oH08~1SwN9KRyA)dH z|Js`JWU1m0wzLOQGKwLe*4Mm}4J=s=ZS$8p1mOsvwM`J@=9=gk*NiRIODs7lL^)a> zmRw@Q9bBe%(;*c-!ysvUj~CLiD^JjNp61p{9oQwgJq`;^&Te~h$0m%5pu_ z(%y{l{qP~%E{X^V5e;;GyG4mD&P9&yd$eXo4}p<_tHqW!D~1BSZ6TqSrZ2h97|?As z2PGS6hURD;rI*?>baYF?iNhq}HnDZ889kc}$gm8- z+B(>aor#gyE!tj^7a0KuF8|wx({N4Y7Nq5L$VS1|Y_CqS!SPaX4jx2Zm}*f}Ytp)& zfb747N{N=cO;&?D_ixQWe%3?{ZY8|yiOW+$6owo9aAOKg` zP<7i%I103K7^Cejll5y7TG}!yW+oA!)`#9fu0lFR%iYO{d{bQ2TK-TJB{h_7#WTc1 zp&;d(%qNb}9@(bun|6Tl1v+5l*< zi*NcNcVCU*1zj%AZidYfwgD5c@j{X6X&C0dB7y=yxR?BHMGnTOOg}vbf zh%yp<>o?3=zLw(vwIZvZT{kE7X<|`fn!g8L>XdzFmSd1_h8MHp4}on1iEqFWy0(9N zG&mlDyd7Ku4>G#GVZH(yz3Rjal6NSWg?Ha{?p$>Lb2~GEvS-l%$R2LFW|Vi zUs=BDYjYNkvGxGXn+~oVe>oUkT#fjn<4^Ali;=)6ez^< z_092ciu7eO4Z0>GdjN!tl1Sj4RT%P(VdMWl!zL|;wcz5w#Tb-&q@sw?QY8YIgPJL! z>=2iy2HLcO>uj$3yep&EE+^CD5g1#yiv5Oy*)jte*9fO6m{%*c zh+D_K8vFz03;ZXzPA3yEkOBeP(gXn(Cx}g;seYYIlyZJO-Z-Dkt_0Xg2^J9EfG?X| zDj~5wGE`(1DQHWh%gdWFXhR0lbv;|)XBPHzm@r@>+~$e+w?tqntw9fQEgna=^W49up1*D})- zgUL*JI7Y-y#xm9B3VSCgQ2=#EtF`d`y9>CMfHSYLx$i*z601)Dh5?)u2tTm~1JHP} z3N9v~Cd$Unx7o`eEBD2qtDcW86rCT6bt*7XCsQzn#e@?$Dm0Cec0wo0F7Sg=DVf)3tyF5mAvQfO9>qXfCwX6K_* zz-dRTjoO``#$iBw{TPnU&VdUA&sGV!+u7B4GF19vA2t$nWSj;t@c>DkU9Qr3FNP2Y zqzcHhh10wMvUq^LzO7GaC4uy=&cTN(x9y6fH~R(|On`Y)jBiz(mlB>FTjWxa;#W5p zEJ+xlq?(l@D2qHmuVRdyiTXh^oQ)9;T4{_x|2ubV=+T0nUisaRb03WzM{134Fj$2F z?xS%a%GcvrHQ?}+b6hz)fzgGU;kwh{;`Z|D9KnFqHXLJhoEgknWdjaTT)_1SE!60} zP_C$SAJ6EOm|dv1vjIrcR)~U6H!gqE{MwfZfaQRsuC&k4C}PJo-`$_yu+i`+a?i?{ zxjSr}F<5ypfqmxZvpbXyghM=g~Q?T#E=Ed!HEjeEZ<)_%TMgt1>W@ZdX2r> z1$psib^V93_$4QTCaoQ{)Q zw7>Yp_uDSL%0gp}AZlL?5TQDR!kCxGGVDY|>}p20wuga}MM0XdK(&F6HT1DyPR>V| z3InHBBo^}Xo(~>g-v}VN5wDyu=-?1OV_ux%#mn9dPC+Q234pWa-0Em6)6Gux1XI_+ z=C?36D*2~2!oRWr1LAvm3mZG$-Np>Yj-AUfA;G^-*rt`t{CYee+1NG4ja()HS4*!u z7RDJtsi}NktQavIaGOt*9l5A`T*A$0c-dkX0||Dnk-ie9xlvn>70#he@CJrg=O$bT z1i7`Jk0w7wXv{7_MV(+5jhY+2Q@&&w-d`nv2|L7y!c3apUR_U4CMQm*i$Onwv#=hG z{W{*L<&)T9Nb0#6Ss!R~id*IjGweQmM5o0EjZNTD^N0}tJx0aClw{sADhA^cz0tH{ z&12eh+-2Xz9KpmBl}z;1e=qgBLLvR&1SiadApM83v#l(0BbC^reu>$7?}=FYHT+nTtvzx%9LR*v8)$e(pav*o zJGFZ)@qLVvD>S**#oGXJZ;ZyLHz$zj$;4@v^aL+jQ0k3NNBYbyh}u&%K0S}vaESPl z+R|VA)YatT);P+7irrMTZYN%*Y9qsf|ICJ=4R4p4O3Kez{5l2)PMnD{FOF4G&V6R? z3{+u3vA&fX5EEu!`7tpFt-d2tFuM-Ej+A^Eis~PW2rmPLuSjZI7XFV-t{eC1Gg9Gmfp*Gonh7!f*ffi;cA!C=YYi2(yQQT!A5?lRh z;~y+TVzf*2-Mw)-*->26nORM93--8-G~I|y9C!2&8?qXl5u8G*ZN2~WdV52s!mNG^ zwz|0Cj!bRV>em+iy!EDu-Wg%+44sN@^+zwc5)oYb!389`-dCsG^=YeV_2+QrQM-d* z`P}8rC2>FJJe#C8UU{gPJJ%d9WH>$}x@N?lcf@n`(B+W#2U1t>5+`}V1;kgmv|H~? zFo$qQuO_D(ghr4#c5#bt#F}SJe2sg8UpX(i?7rcm=a*=Uz|cARd_z=E`QPq2tZ@?+ zkN_bz+_Qjfy$uKo>l_JG7&arB5GIgDg2$Akj$m>_s>0A*Zi#6o7nY3kJ1!Z4b-B(j z`Ez~00-UoMqc;!XwOk@q!e>kfZ}pei3Nc=9gX;;) zz}?}b`3BcjS8%bq@mO+wWUfoUmv^4ckIrueBt^q@qk4lQz*bzLgmH~rUhI{&r<-Q3Jcs8ol#N^~*tk>^KZ#7TMrMH`>bUG5tN9-(nKql67j89(P#E74xw!_dA zam%aW%o!FjQEQtlAfn9`H?bGjTu{`<4`&R&4=%U{t~j*}L)RoRcdmtrFh%4^43%YM z@!ZY>-*F`IXGd&qdoUXu-!R1|!Fxv)c6E%4ppaK~&~e4Y+v~ar1f$ zdq`!uf9a+g`}x2HgMQG-HdU$DK?L+)bCL(TDD@z5fZiXZt`PyUkJYk^NFzZXsQ%z? zrvDNbo8f=)k`G__PTqX<`A(Q@suXX*m3RCS&{3r#JVCI(bVL1d_mcWyz8My3qF+Ew zZywR|0V2OWIf}cRso$ghC{c4daDd;$k=~^*-AF@He@Tl?m6|HQRQa>pz(%W`mtX4Y zL`On;Sm>7zQU{o|oKcfHmr$MXkSEoJpmF;@st9z+1fs&1oW8)tnwt6?ypk94OU0fC zy4TJ@ra8eq&jT3VK{iMm_3<~5y*lIr-R*v_8|&xZ6}hIRw_&80vzK->+3e+PrcQAq)v>&H>_V0kA)=%mV!Tk>6x4FuD*r8SmYbW>uzf3WreS_l1DwI)!RrbxWUZ zKGc-+?%BT)Ij;!xO`>Xe4|HFN9aS2#L}R9!1>WSyO)tvag@rnLfL)Y?R!1*U<9@^T z<$X`xjNsOLB($Vhb1Tuydfty5q}Wd#r1%nuUO%zcPg2*MV(g$MBS}kdP4u0v`Xk1@Or;RHoYt^@yXzEnnMGmv&Wu}ce_m^H4h`0Z)sNyY#pC3j)oA|1#<7<2#BS!sjT7 zw8?)I=UQXR>q_j43!~hKBcz-v=aVNL^XxcY=j)C!L1=G^E}4?{yW@^SpcD=v_k|~w zP1C6Tq5f)SHd4ub!*rta)rcI69;pFzw>iS97vGsC?IVULg>h->OAkB^I7hQdp z{UXy_-0wJ++2eIR&%!nNTw9pW`*482U()OH-4SFuuwa1Dy(TE;U z)opX7YgB=5+*1YWtkGO6NoYXIuL%TxU0$>4Q6nLt#5;93HVr|dn9b$8syNLIE=fiw zeZrk?yf>g&gKHqZ^L4C9*_JKUnMIZf&4K(77F(LL zQobkKwOH{~XDC&ZDD`rAJ-m#5KYqXOy*5%f6=^ zmbzA{`Il`+^^r+$x>;V^RhAjl<$VifK+WNOYlf;6PpQOX4;NB}mXr`RZoX|+Mo=YO zEDEuOp_k;a0FFR$zuCGV$qXT}#Ag3D*I^$q35)ghmK9?rYewyNS)aeExM!h=XGO;Q z{k1z@l{WRo+>HAFHIhcF+9;E69Xy)n+&@-Q%+!9(MbMn|p=?usROR0+xoK^@Kc>Ek z1enE2rLq7}t{0uVeuqKam9{TUN;a3(}=L6kW|d|)_u#Y(vfUVpvg!Y zjlWN*v?`O2xZ9(e&{o(8X>)a7SKQdlTcukU*D;gi4XUH05_&Y=kOChr?Agy{g-1(5 zY7K&v#3WVcT9ps|gG=nPW@xdFNMDXOj%;yhOLH?aX#4 z_l{W$P|}M{a`Rj?sBNn%lU6d~5y=$;jH|O7E@PV$Tqq}M{%IFoNAAix6!5%x&+beB zT2>mgXaFvh2~|~{Rb~a{UP8^1XgL2>bMlU=pp~1nq(Eo6Shg$uM2WRcq?wm~EYW}- zr9LZX*dt$KOg+Ekm^kk1*QnuHMRjv2dbh-2b^4awl5S;)$k zq%~Cp_9QsGXMlN;fk$mmZ32{5I%6xj=vC39-g-N@V)Ll@o05RFy8P=-)em+{Y1gb4 zK=XPZjK^kGQ1c*~#Xl?dzac1BSN+(Bmz4LYEqT3Axzn7Xv=(_aIX%OkStzVoG0*;n z$!VGw;jDP}CAnxr(sl;6^^Gavd59-JZMb;w_Z<3tcKe;RA4^>Ywaus+Yu4Dd1kFxn&I-&uDl4U?mr5Dna-PZ%pH8CG;Ny_90p0sJC&@tMYq<53Cflw#>u#(d;&vAhw6-) z-ym;zv0umFD?ZSj5h+d?TuWfVq#^74R)+*`mPOSb!L>BFbLV%x6+Tu zSw&XXbe%hjx-4_c1m>;c%F-?=XY=graJaaicS^iO)Dpz1s=0h3aCPMz1*a#nsoIw` z6~l{#Rq7G;YsISPm0a44plQ*xYRUCzv6SnvvzANw4)eODm5V*J6+*W7r#Z+x=eSo} z!M16c)Q;+wiuM$*vD?QwKiRL`Xys%vwQY5gt@X0l^AbhNGX^D(7HPf8<1^pwf&W#vnq#!v3`qNiDPuW*)Pm3^5OYnfJV#BN!- zR82$5AE+*Mj=fDg3=!=2bW1oeB~AAP=1c|C>Y15RC7*fi->ILVv6ZQNt1C@hnj3Xu z&m4>A3c^)f^9o5exuV5`DN87cWytNp=9~hCe|wm3eIlVwphmFuf_sQmIs51;{^an>X{Thw}K{-VF`cqin-7 z6DkKrYQr;?tpJ#5!!s)ul#uR*XWm;5!qSFk>R$v-X}r<(OY;KLsI!szKAT0p6He%{ zpZe}Fpa*fX;hCsvmwH3ar6~UsiEebduP2b`0F@`fg~NN%3w!2E10kqwq3^@p6l@9KIVUNIAN~iMvCp0i0k%M=yWyF(3Y_p7bI#Llw&9uj z2udb&%GrFU`D( z458*J0Mpc)w`1Vab6@GsjEl&hG602JgHLjAX$j~>miTH8TA%07a4mW zHd@&K;VkWVQ*)N)Y@DzCk7?vD#eqQe7a5`feRl(hFbo*~Ib&vcJ`6%TveuJbnR4!J z4#2Ldzu62lviEU=d4+rGNp%G#TI|cNSso`HZ?_D{TW?bz%3vD4o+PMgiSMC6&ROm) zHHxV4RwrQ&{HXWH9e@jc_Zg1^=iXBVVkkn-p1Mi^twZ0f1E3D;&+|}{0?2jWIRl*t zr+9ivc)5kQLBMXH*gS&)^02pj&cI&x)+kv4MydC1bg-ObZ~X(jnfD3e^ZS|)fR1{b z`YBMi4t9OMFE|!pO-Ms5)546q>%U%C*G$vDsjG66)@MVE()v+SWdGV7jYl+l3%0=y z3l4|Z>aEuS&?H0tN1AyW+_G7)Ay-S%dQ)m%_!kjC$uPMhZ8+!#r-NI{CtmcnULUE^ zDzq_=5AR!i0)tvHzL`q5x8{oe`nSIYw_o{4#2r%1);IdJP z^J6&trY=MQJ({N+2>Q;n+56QUH$4*YDe##njsV7j7HnK;51YZm=RGi)m;ve20uRCs zuxc!;F(mG%8QY#;GDXNk@OXTVN>yH#4ujrV@E1o*E7}vT&)8s-@Z<=HzZ)D&wm20d z5FR;@6~M{zo8_(YBL{oECEo~0O(8eyxay25EzG1bCpVtJ208CM=WtlIXoXJu5XLHY z{9`iZ3I&+G3!1OKHvlDNLrlTXGH_Wcm*nOWq%67nkVj0?$dIP5_L{;bGTGFR$qXu| z#!MhCZcR^Am@?>X9ldN0`C8Ig&d7E!xQNnP?JgVdAH3gveYm;5vwf%t+Cp5}+vp0` z#^9k1ze=lH4IL!2u8FxhlWj71Zlz^h35R9M0jqQ^X?hAJNMExGBE+Dp(bU{tz3b5| z@|70>_7-5R{@OcoEcNgP5Ee6okKBTST_+eDf4$%Bz3QoLc~!z(nd_ZWG#c@c1z@*a zpQ}6Mva*J{sbHQZU})apS_F?w>I`?wqtnMinwD5Vvney6NsTZ_Od5oeyqnSKKo4AX zu{C4LkdiAaG^a~B_6+XM><3v-wkU4n@Ni45`Hwj~kB?}tu@3GR4hKW2VgZ`bQy!H1 zszM>+evGSox(ctMr1quZ|KwEq!Eq#a#Zcd5QL*gi8S{{u42HgOcw^|2{gz(zNqV zrH$!5cpcEE_*<1CS6AV9YRVnK@bTEM#mt#GqRRa%m?u*F!(i={3c*|FypReNWM!Sw zBkS4&?bfi8n-~4hrzy(r9FJrg=}f2ISm0N@InRQM1b+v#?K@3XwX!X-P^8#TQhK%8 zb<^N0(@c^CP&DQ6XSu84|A-viOG56YBE;o_u$;wu((f+nM}v`%(2ihytRqep7)bje z?*KJu`TtAHUWEIwBFvkx4^4)rCoR3J0V=eDvAe5muo`b-fatiwXoHw9{cSzfkyKQc zgB|A2Rkoh{xkGYoq*-|h))xo_O*v$+wg2i++mM%JuTJQy@2QMFACTX{JAl)Y_`G$_ z_{}kQ=O8Zjuo@=7)s1Y?I%MkDrJE^TN3Bt93{`9+Yc^TaT9{G9wo!bl+-Pe%F;FVA zr(vg4R*?vmT&XJ9d}^Tb5tvk5goKFt)U*E=M*1+Nga6- zCyPNCjMRp{_ILeH-%De_21&)j7ZNlN9PJKh9%d_qdJxR4Bl7lSUkAMnud{lFr;9Ou z08xE4|5ineh@%^75N>bPb<0W_%yJG%yfqe0+ZE#^DpKGGRBrqSRe7{zYPJ=%=caY2 zMdM07sh}**Xc_BcD%S=r>t}cbF2-2nl;H+Y)DuYepiTc~^Z7)dd0FZAnequqMJWhsJHZ^Sb)l4;gO z;}R}W&wPD|`m&=A8M;o>hHVaRU1r?l?AghD_S={OmQ=HSBu>b@U)3B_RXOZE>KPRs zm<4pMOB%``y@O7*o%D;>lXL6b8}?Bhrzq{!Y`w4{@zc@E!_(8lUw`#VxAn`>5x*2S z{^QA;@DE2H8{r>*Itu>~!G<_{9iCF;@n4P(Pu~Yt5Lxi6BR9$7g2Ru$Iy(tJ{{2s{ z{^F)tpig+5(_fDcU%ogzI`-ije*NX}=#5Y3@His=sh+Mj{ZB{7yR7!~=+)tiBmS@2 z=zn>^iryUl;w>sX_fM}*56|9Kp8NZg*N4oU-0Ft*#2LDa5A_Z)@Mxu2-wu@18%Oj1IqC z&ks>Vo=+}D&sE&Cx_{mvy|iDi*P9+n-mc>`8l7gnG4R0WcO9qKCLZ7K>^YxilkCrW zqrT^KS_B094bnk8D`qz;w>tfHtJ!FKxPiM-r(5rK>m+9FyICC)SO@i%4=cUfbUH1C zn!Bw%snc%u8g23j_9b$&M@+rdtovOJcG|3Fzu#&#nq3e7bjQ7F^qXXu?YpXGgG3LQ zxwq%48tn$z;hk>7!)4v^fOdK$x%L{pJ;~GP*Od!37_iIG{iE(P!7!9M=lPunNeR&k{>p ziz^v%V`g*?`+{k%>8xP@6+e-f`DW**6T#`Sa^wOk6qdH!;+AjS(X zggb+$jykpIojRLT4=>HXSX|&sHL<+2ebqy0e=U4+&TF1^+VVXCjOVWT=rd;&bP`R^ z+EWoGqq3GM(N%GWvc;-Xlx;)%F#5^j8S^1(!)jaY6&Mw69agPZ^@ylU8YfwLEb-l` zly6Z)N(q1TywefTay3=!yxrdAVO+P>N2cV?fB5@RyQ7{amGsZ^HmS*#KS+ie1A98- zsG}|>MHV|p*$6=MpLbBJLXS6*ppjv!;=`YJ27PaK=M=?6z8CoOh*G!!;Pr?t4=fQ% z2Od7Bv@q~+C-Bz@gSFe8Mn(1_v6U%Q<;7OV-#&JPel!05^#grRBJ*v6>>n7o-3l<` z_X*E={L%|GlR59St1~l+oFVokN3kjgjnHiOwTW6#gGBV^p2kBHQP633THXEC^?Iv2 zpmwxKaT@O_oorVPuEVtY*Z_MPHE3O}j*`?LXIcoAW}g)3Jr!MQ*U$&q!97>kZ8X`t zhTq_5M{4&P;)7n((<^rzr`2d7kEud=6l!y6s36I2`LpA!`hD`W>;3+owp#}?o7%_0 zz9*&Cq<)+_fqjh}^0=}3saxKYiP{Z{xcltfe&h7JO)URGZ{O*(F!`I^UUOfY3%j<_ zsx#K!XN*I}k@v{+K*5FrGC+0myetnJu7x`RKT`jZh8r}xjc)I;#3gsFyd9l=Ila-M zWQTfzJz0xF7gpEb*ZaqvJLn>t_FPq;$~QbX`(EG;BwM{s<+R5EX+E6Nt_6o&JO?Kj zpaj)jChcW{2pMaW{qt}tzd)&3@A3%1ahe8F=Z|p;Tui`71UU$pno53xmy5|vU#(j?&sc{P%xVaV6!k!)v$xF|3Kw_#4235f_1eDk+6ko<m~p)V&Zk-Rw9SLO=w zWaIjb4UH*KXpx}T78fUI&Ej}TCh*M~t7ThX`fXK^ki7~{z-Zh`J6?PO?K@960Bndy#@1TTT$W?`$#&^oVtwcoA!b{ zT4hHr!rFo%13f=&=)TkPz2*E(f#y?b`KDuh*^Dy=$P|pmJ4aRdL(~mF@D=c#@ho8aOQc zpg@CfG+Suq#i3eMqGA8nJ%ybg8mK*WPf6|I<>&9-w_8kBH;DHFs%5v0JKno4^#iUc z{|BOL-4^#zU{>uW>-LN$M(S&M-YO_xZQ%6?ywPZ*I0xQnHy}Ak4&FDQQ&$A>)IdTg zeawEJBK$x>WoTnjL3lp&4Hn&lh~7T2u|1+a0U~1C;OMG*DowN9AE3JWZ@@dPCN%N* zt=C|0`N3OZyG|s9g?M|ea2VhXKHULmYRc{C4Fzo}dk+lNP-NCyM2r0nE$#_NfWO1M z{Oobu6NNT<-EPkwQ7FipIm8T7jdEF$z?%riO?&L|Fh!r5pvQPd05;Q`oBaTPd54;_ z3(`Pf>meAC=D@f01EC;)QoSB=D^}rs1381T7+4+<0K_Ci(`6vwuY88&jV{JVVC8%~ zNJ3^csE1gXk@^GH;V}!}Xv-byorXS^#Q=T@ywSDkdi&jIU_o8;JG&cBjXsDKc2yr4%Z8|pox$ZS_T!+pRcpH+-{?2miNHTgu@n;~oLi@)L z%J%TjrhW(#7lTa1^~v6ELlS=RxTlTt1Yo1k9nIDTZ-r*3CuZ)Z_6uDOI2BDF^A^Z-O(_Yel^vXiAr_JB4C#E_eWs5Ud50@Q zH?ps04_N`dY4p``(GJPs zpSm7j)`eHxW;RVr@O8unn;9|%diW8wpWbA-3fQ&aNIkFv1NI5%ELw&ycI$w#gg${8 z*XV@^&JqX+gzkBciF8ztAVkKxp-BxOZBSnjG5o{cWQX{!Z>0_pyunKd9+o`wuW~ZK zf;tQY=PN<+hetg$*#_5&>{@?Th`-RHK|mGtJZZwG(MUo{B^w{IW;H+6=5xkPedNH`!_i4;W4O_>({=|Vx$UEnKjge`+Aht5Rs zJQ@M{x2jDWqNZ zdkxtFz5)XZuufOtVs4?51ndwnFQrKa%yOhnL=2HD5PpL&Q<&GJR0Rc;`2+&?`XGFn zYFl*^`35cuj82|!XtiW4hjdR_>mg}sLExaN+^UNSJ?@n5CQc9OZX_oJ7LJx=H1zim zOHMbc@AJT>5e@xgiR=n`%yjKYN%K!Qrkps`SFA|MkT1{_DF5&_u?dBPHx2F%vAZwuf$h``f@VQ*uX-9M zG!$BBJFI|{Llji+aATPx%aft)79KNcibd_{iKKe^pSCH=o)Z}!ko@&!9e10S>bui) zp@%eLSOA4Ga8^{{5R@J|r{XjJenC-^k?Q-rv2!E_gW^MKTHri#*R=XQRFR-Ro*em*LPfYic#i>XXFvvH z=stl*TjCUNx&!iwLKiGh#sis8zO~A3%d6n)yyzQ2M+baO$w}z0MmG{G1Y!jAeF!NE zs8iq`22BI5tk621pzjb^NQIuSMK`geC98b%t3?i2*rt^`Bt(6#U{N3taUr^(YcRCZ zj+wQd#m@a0{yNz$p>xV571UZeg?6j?_Z^o+P^y^Uh?5x53y`>B-4Qfhk=T=`eSl?y z3cfrvAwQahZbELZCq!Fp8!;I|=4YJ@l#sQ8*I%pjriQvpNlbvj`Jpe$dq-Yx1h1ke z&A#1(kPJcTI~WPYgiaEnpRQKKf&vw9_BDR>4xoMrUatB<7k_Z#(mFime`0YpHv#WQ z4W}*gCh%ln#*0lm_$^&xfk+2RM@X32v{|U9kLZV>tJ>ZOF{n*Bq>$NWOV{;0CL(6Y zzxM=pQ@S_aTAmC{q8J5y{Zi8o-H1;H`F8tWDRwT*s82e%&gKcJKB?F876)w7y87XS zWRX4uH+U28VnPIOY;F{&?Z;(tCrIY_8W`78P|3g?CLcOHnI zP(r1I`?81Fh^))Bz(B0MsN<6fsFm5<#k57qt`2m9_dSggmrs0d_7zCJx zM24`S=7*4y+w35YgEoVH2(dU$XL((GgO~J_pnz1mKXdZcXf{}9)>pjcWDEH|XjMcn zte}E|KnW?5cv|HO52&}8W4h^m9iB^7ME6}BeG*?oYGDJe3MwY8I%k_V0$Bo0sVx4E zV?C3N5f1EdegZ?`wij{zKw5`dhLC_Fu{ETMqcL>NQC^hcaEGo5U$#>$5n2L@qVxFp zsY28-DQe}NJmPB-LB8?BpF{is`{^8cGKqFfnySBZSgawDj0$M6JwGmmr5=pbAvVx! zLR5}4IHi>*PQjuA00Oy~f; zo-9D_qGR}SJ{s4a{tFN_rNk}(+oGHDw?zR5?BHysgxQfGtChU|lpgbUmf7t;49XjM z({v)|xulkvcb{I;R-Vjd@A;2+iz};%cOdy{@E(6QLwY|De%A%C?*QI8?8xoQcrhQ{ zgRpf&$uFRkyqHWW{=L_3&ML81y1xB$yu78^t*tIP&$ai+WnTcctGA<%+r+LNLi3F) zPzF=lH7`A%s;RF)S3Jrkwanz7Yhhp9`xV|(PjpLj-^^RD@=3tvAN(%hu`_VY6VSEA z4XO38#WvnM8(v(~j($Prd7Oau5N(A^9{DsIij;sZexYt6KGeIk^FnmDKFyTnZiN#i zoa$OJ2y$<}0KKsGH2pVk8}pfsR9q1sGk*|R){AS}0cbhrDneKplJn&lXm$z>qEpYh zJH%&m0;ev7rtikxI^+)vnm+?!UV-o4XXyA-&^d+U32gsNjUje?8?ZpoAEx{RZ0kxd zQ^_R^$_kTwIcLPx@Ha5C4d=f6psyo@jxWHQ5KG5p<10kfIjD*BtJu!@PDpFaHKf(2 znb`9MFG5LWy@tE5#u6pZzMs1;0@jY6gnk6vQ@DCH{vEMCt!0Pu+wIe2D6k=5@_hzL zn}pn3jRhS95{!zqJy?uCPsU%$7Ug%sh_ku>?CSn@OplM9Uul-SlK0sV$0nlSSyE7> zI->=LP5qwZU;PMe0XwPA24~k3_M-apZ@|e1zZR0~SgB_Ppf6d|iUgCRjO+lkg2k~? z?T`8sNC3@e8u5I1p~mnItOaP_)fiyY^bfSUo_xMTTyZbjE>l@D)upbn0!qb}Z|pI~ z_+|x2=7f{E=VTsdNqEqcS`)o8EsZsV^&kPv? z#LS+fEGE-ipojOJ3=N(BpfoT&5L{58wCaED!OPP*i+kK5N5jS4BMxC^H`90lpqE{|X8KSS3cBj`6X9N+4O8 zGEiYU)B}&^H-=4yVU?gOl_(J}7k5|IttACY2TzT6T?+Q3qV9p(S8NyKcR^cx}lTU~v3pv9YQDSff#kiI8E*2ZH&k1sS`S^+S)+Puuv&C1*js6FOOu?8~uh8@Fapl^9RQceGVd z;{!QXTw}gr(n>B$-IK`@bk3!*Z^vevhw%&(C-dQ&h`PW6pIH8L1S6E*Tqb766o++|fl ziGl*M=LFx*(sO)^K|d?^yu6$&O~13*0lT6mZRlN&RVt}Zn@#Af&q$^B@)n6gpRM-F zT>MgXpVWL+PJqQ6^&#J%G7S<$6yZs%J-z2%{1C*4b=_EKF_a?mmduIWM5nB!j?YST zin%~g5HIP71K{iL!$0P@pPfohzc&7K%PFg(8hxZ|PG~#y9J2Un+5p>!wFU zg$8F#G!gdEo1yTyYoJ+n`OWXHN-ht0b~>k9*9ca}evRJ-8x2O|3hr8i(YWSvzbuc^ zoMw$jOFW`!Q@HpeuL0ZPwB3%U7?!dRaLoyR2T_x9aLM?9Ce`ky@J$JEPli)M3f%wk z?YhSP;_Jlm98@zZ%kAA%t#~R;;|K7Q?Iz>o6Z|^I@}y-j$`O%Q^pfazlj~voO&!MK z!7=VS5@nlMD~5wN`d!8+^8OCLs;**LlS7;mH>LA_2^ZqNN>IxQ?*Nt^AKY~yjcZ0~ zWa#1=t2IQhcCV&hG^P|!m&J}SqG>P2 zTnIsnnajyk=%?nqD>S#hGDnc-^9gPK3E=g2%L}ebQ&p}eb2^}HjgXm2qB{@;8f9cu zyTUhEW+k2A1+tt9^Or)}F>3df6v=7c%XqtN&YCfoM*Rx%(94dwUyOg}Dq#9|v)^X( zFY3HJQBUlz!1V-jwSNPVC@&jHECy1Nr`0h8URKJy8d8gU+wjp%m#LaFJ z79csgg+FsWG2v$|Li>}H2TmI|KG)Fpb9Zz>Y!s!H zR^_Y7AJTbE=(rJ_(Aq+o(h+bpP39vEvu%U8Ce>eoAn)mW!Wn0S%aV9dm~PJJbgs20 zky+bwXY2-^BQO;BAg7HLDvDe|i%dFbb9_6ItYN#?Ji*w9&dfzZTAME0h7^jFzE=SW8#7@tdXJLKfjuD?HQ0i4jwE5%TY*L5n3{O znWyaaV*IZ=OImq4T;Ui!M+SKc>JRAs3xT_{&$b-Jc@(}TGeOx1HJ6Q0Qg&c&rpk|> zA_i~e4V_|rE?i9A;yY#jko=Yy-jT96zu^GuZOOLOExEZ%C8IIb1Bz_!DCNoRJ=oRg zSr#UzK_hQeUa4z@QL@!<=s7{Di7txNk!hnxrP2`>3vOiuml^I!5Xa1f;t(ai`V@b^ ziWftU^lP%z3Hi}wL5W&qk?ioTv@@lp3#>)T_Y1j3+N+O7Qd>>lFk`Bh{8R1)7EpGn zC2@Hg92MH{a!<#ZJ?ZkPqv)D^W<)HBhhAVTa1)bmn6w;S(CT_j4(N4ON4CB4iisw* zXXJMf;Z^F-&G?2uLuoQiQbIPO=P7}??VtIH`=5(k?tYgd2|c%oN<wMM(a_c(Ir-o?ntNVTA9$E z;gc>;)7$W)3;#4K})KT(?T+GvRx=^{yp|~EBKYx2qN|EYURa+aEB5Ple zOa21qGr_9p2Rg2TA#C?X~34tzZ`8)pzKT1 zJeB=xEVQj`-}ntXpoxE-EduS4Iy z0?XLPbW&bu;)^S-Ne`QEYf0SlrBT#&u1F_&7E)AePs!Dqt-kdPIQuxVe7Lf54}#z3 z8aznW0N;*WrB}Q}{^Q+}OKDWad3WTBeiHbPH1}eAQG_b|(>jkTRsLZTRk1#O0wpHk z=i!C)c;_bFzNtBKf=s&#R^ZuOCw?m_ezIwhml!GG&NFzAl3J^@+^)i1U48Huk3aaa zDqI$m(F7;oio1C>vD!ObV-J}6@Cx@UuGgh9Wp&#tUt=>JFG&sn2*FkH;tZo4Y`aE7 zhz-b{*&l?2GRIT?x0Et*585^=%aKM56Y~MQ9!}L}#PS@6i%dsXL-`1s3R4S6z&`cm zS}E^IQW=0Vss&V{&*Obf2sl%v#m*PBxMiu2{efe0EobAzoQ0J}xJ#w)PlgUE;eq^A zgi81T_5jP6-Y=Ib-hNyn{WLiz|A#zDc4P6l^FFz|xm5`Z)eMWfbDW`%KKWou;$sRS z`m&Njhu_8ONZnB+zeivo=a0#%ZXv@dnF=mJ){(09nBRCgCMOoP_OUtWzX%`Bza(`6 zk3RZehPOmURg#n>a#$A4qkrZDdEkmQKl;Eg6g6Mj*z$DWk*x8kLhb{1`J+$zBU%~> z?n;J%^RtAxN0n;t33THXCg%@r&}B#Ap?^$w%%>w9;H1jQgCnSCwT> z#xj3=LH!*64zykwgu~HB&gDjBYK5fB;9W8r7eST@4>XkWV`g zT?HP4+6st=Voct_cI(4TJrc4+y(4kez^_e6>;soJ@*u=PQ(L>rqb)d4k7+qG5( zsKH`6B1dUb-;#J5g?BhOl_KME_*0M%Cbp!Y5M;~?3m85{%_MuvdbksD!~vsQA@wklM1x9`krU#XW>)*YMxA*GUG?Pqj+WZ49@<>r#r{Qa(U6 zwqIMX+q<&Raz>hTqqi`V?gNlP9W3N}HLBRKD&v4XAU;eI#kQL7U<{1NDzT{Nwz%+n zV-;e^}V6Jt4hB))1hn3K0*_uF>jQh`^6x@0uC00P-L`3tHKL&PRut*}XN zrMId0Z##QXsV-k9W+ovQbDdj2s3h$wd7~I{bb+Mp?+FS(X&y<+hG9Bvc{h^8yIylI z5?zm#!l|-^S>^!d+~3a2zVnj-h2u>@SdA?zV43&K*He=8XGyL_Jh#NjS2EUds&1(wI-Vdf?3oJr ztf&xHRhWQ+k$BH?zRVXT09y)wSqi8!;|+aG4sao?Y!4{C7>^E!j!<&DCE3iep39ig zQ4mL(G4xPeoW+DoQhIWwKukd3tI|sdJ$t~fPVvzgxW+^0fDGPcgtCOJ&B(C$yDC&D z0d9vo^}xg#fsEZu43_9&nK$TDmncYkU^qiZ;kn`6eBc^J!{zY&PVY{pMRj8cj!<*qBxF{YB z8BHa@Y<|u_rcymHn~O2)m;zV|pc0Qey@hLxbp0*r>--s^o_wGIgUq3MDof65Zf;c*X|DD~TEn$$K4 z2xhG@L|h+v^Y*919}Zu>^7=caKQz1sPx^&gKZi$V`t8|^BHD;O!?1M3j{oE}OUmE! zdO_ts1!wxwzU4Lc%ir?)8f8DVy^d)4PvN!eTWzm_QvR0L>?!{#PK|b)8tphW+Hq>M zbmG+L#HrDVQ==27MmJ84Zk!t3I5oO)YINh& z=*FqhjZ>o=r$#qUjc%M8y*M>`accD9)ab>j(Th`~7pF!qPK{oi8of9*dU0y>~=gxmy-oXNb%9*q-=>Qon*@XGc;NQkdaa?;y8R(j=c;qeMBHRu>3rqKj{`%eCGZ5 zOYu(`%8UO4wO9Hko>^}J*7*SgtBf8Aq`xYWW_nQW9ThyWo_wND&rZ*L^slmqRs2n# z&Ik$OA6dsciM*UgwkXgA)o68nQ>03cKy4+_ly6*JZ+T`oyVvp)oZ8~UKes=ABza|a zg;%-4_m4lE?(+06A9i?}){Cloq{KS|>(1yJ2MlLb0*G!u*Pj08)#^`wZhr9u$!o() zM^3c{wg2Yk+J;!AIGknFUtfNKJ!)->SlxYHTD)AF4NUx|qeOZbCX#-2Y= z@>IsZ3T|%s+*TQzBp*heOYTLbZCW^0h!M!-`yy%Hy*_w%bW;4Q&W3w0JW~T+atU<@ zwT}*PN$I2qm+H_<6^Uw8YEO?|zX)AU$1YY}{Ahj|X0r}1PS8+GMT}MVmxawM(xIGc z>lJ-!S?XQf%(3uH>?X}0Bg2_+qOWjd)q_IA2q-y()BW#fFJ&cixVaf>~YCUZu>*0(A0B(?|#GvI6d>`XMc6qmj!zgAbx*$ zr|K3bgxpkZn9R&r!)S{`^*%lG<@e9mSaWDV{8x?4J!QsR!|aBW!R%jwYTX4)fy=8$@z7V0xuoL?1xZ=)>du&yDW;~PLgLTWUMevQy*mec zQS($=jLd>H1t4w>=daAvF|+tuaU&8F*8tU!v-AT?r=Ho=#aE6}<>L~tZDb7pHB_Rk zW!(!XO6s8w0MpLY3v!f}KorsfNRSJ513$}huOPv&_Vb$`F+7pdysF}IbpaOQoLSvm ztkG#OgW4#q7)SfMoY06#n~Wi6wM~*iMam~8y4x3|weiBal0>7F7A%ztr35#nKG@;~ zZ7V#bDTtY<@Wb?Oz7-#Dy}WrL=CC>2J1nV9RP9H zddCzoyPYIeB(0^}tuHZnJtU`qZORRP;Z$7{z7?GMSNZaqN^5x^s_a--PU73F?x#85 zXEdi{G&^8hXY_>p$vv6iowEBPq+z3^pA;62UURK3HL7*W)r*v=AQgbgq&caH+?{5m z`*ZChn=^WrT(1|PJ26fAml){Enr4>cL2$u}dpHYX7XFnCnj2|DoDs={1VEy|NS0*7 zhSKAr$jC!b5Wm#O9$C_v!!h7tVQCSdz=E-n^>c7sFI-uU4bp~0NY=BqdSRYv%Pzp| zcvjOX6M0N7fnd9p2CfBRvYK-)_N#S9)n2(Zg-LPfK|5rEs~|!%R=NWgg`7my3X+$d z+g@e-dB!G5pLEKWwk&r>YPISSbv^}8IOq*bqo?gs z4ihwvhrOILUEs61<16EjnE>VvP2k0 zUoQ8vZF^fgR=j#H0cSZ#W|ORM*A*Remld?qr#R2PHQkgQt~g#|?Ne8wlTRX_(28gd zSbKW>%ZHe{P^8qI+>C16Q}psV-(KO~4J_WI$|J4FO=el@G5eJ^6wWoIf|ez131w#Ta#S^d%J|ImpfXYK|t4u>ARO*3`&=2Q8ezI{fK zA)?vPK5M@SZJ>5?_Tu@6x3Aq(Xojv#w*d39snPLDrNfkftD2Mrbb%Gq_!Lnq&>u8A=z<L1alTh#+N)iSSh0x2dHgF83iN(h~T{k{a2i)!U`#>U0UB4j+dvnkEE0`yt=SxEexVB)vtYOw znL?}z1|U0S@01uT!yG^_8G`qkc+SVanGHjgt>+Ti_^xYonw~(1ypK5r^Qc`{0+dha z|FDT)|Ml~&?)^_Q5DSFNkDihE?}43)=_k(rkIweH8gfyWqI+{jVKXfDh48_)_pE34 zTA09^+k#vpWJML63A)lk5%VwDGAMnRh%`PG^pn1n#~4hvrI_?Tr>j35G;6;eU@+rb zh@F>o-k1{x)4mpl$fgk4we(ddEJNXmWPgIRxsHb}3a`;{;+pzc&y5fA-nwBcmkA{= z&XkBU8tBLC>bckz*iB&gD+Nc0e1ivL+ViHr#y_8#U@1-|*NT%N%gKjWD3lWIhunzy|UI38>yyktpGk z`FY$unMpZ*${irm17v9a-L!X+F$>#Kk#^-E3tA}HRT+|E(5C}yT)Zw8pF zE1oMKKN+s5CFJ@;acz6+09zK8G!m&8*Gdj*Y|PBN#FL?WQIUA%nnEFn)6x7 z-1kW|y<>PLP1iLX+Y{TiZQJ(5<{4{Z+qN;WZD(TJwv#v4{e0iAs$RYJu4){8RCU$f zD^IqTypP$om^Y>kw8fj)bJ}?n{kb4YV4HlIuJw1yZNf+bYh_qZ$AYXI744|UQLznr z8w{U@{sK+f429)eppG|54F>GWX_o123u`m@eJT7x8qzU*jKtkuU~3&d)6tL%LdpZ$ zDWmmlzSXs-tDok3FCSf=>MwSu&USp3@WQW-@0Vv#Z~it2VpVbc5lFG$F>S}`a(=!g z+cNh}4@e3fM6I%8$zq*p-#!?T}PAk&cn>sge0(QE$N^lSC@#f{O%HHJ)DyNkWz7d8r zSjxdvWg|tVGl$Irj`YfR4^~A%-4s}?IW{;LfVdAvYMn4l z+Sg|AoVaOTMR`pC5*+_?81phImBT}mt+4bu`-|LFM4Yk;!pSYJw@7xcYI2qc;7(Di zxOH1>*vsDrB$CKd^kqofb5Q(va)EGP$R?Nq?0=m3=GuN(QLs()g=eFSiehp5H#<0o z6wam-BlZF!Sy+a!_a6lBoE|z=i5$AfAGD7zvR@g=tL67v{8D4c{>)EJ~cH$+G9%}+Yr`Zm1AdUDU>0i3L-64k- zZEzebnHpN;4s`%{(eX4{T@v|J(Oi9}M@9FP2=_AJ_P|(j8sY#ejco?n!r~8ArAI~D zjuvuzFy&{6Pbv+ZR$AuvemZ_}MY6E>0Po|(%;t@m1^r{Rf7dU4hvSq<#8C(5$B#|G zBMZ)~>Y6APn?Dl$i?Dm%g0gg(l=rZ(VTyi2w$P;ry@n5D^hwGTsfQwRi4ElzB58@L z2VGpJ@*$f*U-7uk1YV+HMHH9p)s8HU`VL2%=u|-2uxTzIS4u7ukKvWF%z9#5nvJVc z=FBe^%?Ru(@(I`FABA?v=%iJQ^z3s_L`zNz>Hu zssR9WL-1@5+4qj7X!AVjpNFI(w0`x14$0=}*aLzZVNh{V!*N))bl__n!-pbc!R&!G zXoQDd7fa#PL1Ywi>usp8*?QgXThxYspUqxu8G;_oJL_o`+ulgzr(}1g-I@uepnuT9 z5Sc?}MSpa>Irj4UO`6(ZrTpaa9JfDS$I4CA)PwE@Q?uJdp1!}Hzoq|GMJo6Zj+$Hi z%}}{Quk-%38+(`i*pGWngL7>^eUd3){g=nD?&<0G>Kv_R2f^=?aMk>1et*zkCvVRefSUhj|`|e z4@pMVOFUrOW+$;*1ssjozjzxv#|;Ov_C;44%}{lsf*FbVV_7`ptS<+S+?rzDI6?%< zOcDmGX=NB|% zf&R<dRxm6qWeOUCoY|vS+mUHwd~ur zSzrF&4?6sWeKGT=&+St}P_lVRz?qx!4SW{w?li^rt~#5Z*0cAi`fuum>sD-QT`2}V z`fu8hTQ$!e{O!W8Biz+?we$AxP8A`f44O>^tmI@q|Tv;|Mt%W0TovZQ)-s(~cf3;xiYQlx_HK3NS%7IsJj^($GI50w*z9IGg`R-HN| zZ0(z8nV1&Mgn^l`F#Oy9)kj<}tr}_AHOa@uMng!SSd=TkUdFNqPrnMWhIY^>mWp*d6A-~QU)rlC7q_Dv0~ ztoGYMK6`IaXE1baJTcea*e?{HnU^EhNpKn0REWQ8IEF<8Kg%Pr#T=m3QF1N*#oiS- z)z~U3Smvefn4iXEy(+Lm$Z2{c1CDk$r2mU>2xAj?=!(BCj5LZ4*6dQVEyfRUaGUSX z65D+kpT6%13UJ#}+O(45g(g$o^kN?GB-t$I@PZVhO=6^i%vSI5QH-Bo*A1TvjG!pf zkbveab7%DI5~?+DJrHVPJHdU4>Rdf?AgTEKa`RR8q&$C$a$w~r&==DK{FaS$S@-1F`6i*H>76@#LWg9>#dPDa zhO{zHm7Y0LivGo9a*|-^o^~zo$H&d<>FWM4%;Uv#R#lCztv$c2rBE9nps2O^;wDsP z_Q{|dDBTx{k?I^XHP4BwN_@|?R?TsLZ`Kp@sE)h)elHF?vG#r+V`bwrYxg)i%V#hf zv(JiIw0yH$3|Oq_xb&>uyfu6xz8R>!Hd|_2=A3s5_)JJ1t)#$3W;>KjaDc<|rSofP zjV>JvuisbwxJ7G9e%NI;eBHCZG_z(rSvJ;if%MPhy zfD14Nn6=dOyhqw2yy2A{PGNTF`8`|wvpDa-MOrn+zxcwZl*$zfM2L|b z7z`Vj@t5n_`A2`2xOR!y5u?G}PgW1I`<%5s^qLZUggEBVD-)v0Nn0frmH9(HI5D@X z^_dx_q5RO21?Ch(PX_0PNci!?S@&S~Cs|4=tLC?%BA#>;-`)`~J#Sq(HG5u6vtnf8 zAQEDg->lesE2B_z7Oefw0{4!uzyunxjmY{joaD{|aFF0uWsia?NYzVaxDXi@Ww2Op5D`l`9Pj_jxk(fJWw!F?2 zWbr^LJNYLG9=UFAk^?WFuccP%II9@^(#zIc@QamwHBU0u%hIeQ9apoxHkkNE#`v^QF2cO3j|%2ebxpOuP*NugoD+KO6k02q~~3%B9i}k6G%> zw0^WaaL4H1GBgSMd0WDtrolr>c@jvj~+X^;36y$hvV7K=RO=2J+Gt#A>;jX;5ZEe?6l2}3wH*Ids2mO zWr5P1vx;ZgcDPsa5v-Osf6w4k5Q`!-5k)1rM4(4y@tZ*}(ia{y^*-GX~tn3$G^eqF6WZiN*`_&EZ5VBaF5<)+?zkUXI*CulePQa z)_)#%$&Toz?7CHUsT|?4yWNy+bLArsz>60!oj$pRuY8$EoFoKC55{8U7L zDtjzH70#auG0Q#VBXI<%s{YMOB-ayf9hX32C|jz*p6cVOIik!=`v4_wM4KVCdy7MKnR z6|zZOWw}Ow9oNa{a7g(6ATt^NL!6H!@l+7*qW+I;@IUfQ$^f@VJ?`t!kGb0anJ4{^ zJb&;%GAUP8;_+y_!H+|h|3f}F|JN4J|CvXVxMI7I>PY=d*_Uo$76b0YP0`n~D70V9 zzt#|M-tX9Su{wIc)A}Dr z%b_Txnh)Ir0as%pC7KsBrqXmqJm-6OvEH0y#&_RpwITkvJ6^jPU+W;9~8RE3v82&GR@bK^4VM8H2xzkNGa0%_+NQqwOVgf znIe``qJ-U;Jn=t-jhEvx+n6TpMlO@ZzB28A}^e=pGs3%XxG-KZV9bPBgDv z;r}{SGPhW7I-t(6>&I@srOp}ogS!lF5=U%Vh9y1%6GO25$!01b>&vEU=kgdktdp-;$V& z4hEeqj+y0oL9y)+t*u_8P2KOcc8gV$u}0IvzLX!_G>~n6No)ebtE4(IrCF?@(RJ>} zj)hBBY2}VIig@LxJw_ZAQQLw4bFwCCk^M@igCS-XsyC4W|KtAssm!CCNSc<_X3EHExg9I+Yq`*{9N}m-HQjRIih_%FTn? zvD-z7gbwP)#VwV9t!Im={~8Z>n~MlBT`CBs;ohUGi2zGDRuRM@n|Uc3s54K0^XqnT zo#L@TKo3aHc1X1OjX@T~kd%x3&uZmpqtk=$`pAp{uhE~yi~ZGv+ryXMi$9bR*mTED zQGrUxqEec1xnSQrthr`s@D=|`8(v`~iTz`>h+N^}X-a+6(31o)FbFU>cAP5^cj=Ca zyyL=D{C7!CoSXZ|Lgu<(j0neGlOG60CBZ~aMX>$hF5_DF?>w7+!gqX4KI;TTrbCLT zkph5-Jcwul_2Q%yosm57rOch(RK7o7QJ7t;ORnBU`*-5Mp%$3US_0+}dyTCIrpyie zZG4#|M1lI5n)yr!O%Hw%i^j1Z3&JNobY;Z%LMa!S`LE(?IFByTg~v2|0bz+d`}niw zObH2;7hcMzvAVRAwt9AXU7MG>g*m}?m3?0@r&?KuhH*w6E5kSat%EnXQiz)OGHVm` zSaocR5dC*#sdAkF787q=f}&r=a6a^+Qoamy!|UUNl%MtKIXGOOI{>*6K9XU8o>yOm z!NY{aykGKoREd5Q#P8z`QHvq6qOn^Gc0OCJi-{ z2N;?{Q*#+TI6+=H^1>}*hi)1Csh7-t1d0dGIM0H7NX5EQn?tjHD(Ou_qCJrVM?4GV z3{!uK0T!cqxz9ql*S(1| zcchG@3Kl2OFV~z*Kixj7EE?g$iUzvadbH-fl^T$2pz@?1G7D2IwuIYm<9OKlznDI@ zJ%gp(+6LUDCWGYr>rq{y+reX;CT{{^u#{$MI^Bbma>dvST0;Akw2LrblsS%QB^&d) zHT}*qOW4NCZ!L0^sVeawUg~gSyoVeJabgG#&Qnr}5`%+h`m(bMsV$0(CI}aciXGgZ zip3Q?B^}$6+jsk?JY4#Z_{%yzP_P`|T0`|n)-`b-vyb+XoVNTzoW49(_+hmBv6$~q zvpW@%+{Vz~*7m*(-;W$kAP#`(wrwf>vd)tLw{hfK?E8YTPm0)Q3qihFyU@}37iSN* zgsHRSiZ4*5&W3-YT$;Z8;?Iyw)R+-Zr*Vi|p8*O2%3-7oQnX9+Y9TBXmPFu}p~CMq zC?`@}LQ8e-ilb>+ssb-DvhkPGQX1-egxX4?X?9fwP01paGZ%dkxWFwp9}#~uNSu?| z3I)gQU(~;SVe1B*7lD8p1B@MEH_=|N2Gzi@!UOpw@TnBH^P^ebR<%nlsfU2WCJ*kj zyS)(8+`#Z*kG$@Hf79`M*a}?2G@AVxrcsL1J99e{IqL#32F?k9_QYly<%s88E#ESd5Jjg* zg-W?2G2*xTG+9{p;uw+6ZMOj`9IYI>CUta(oUIoqI5lnn86|bz!1tP+9?lt)hH#%5 zPJrqtb)mQOck9RHpN$b=B8i7s+IdC2@EN3<=M|insbXyPaY$;QUO>YLs|h+A1bvnM zyST}=^GfQoXVbQ~Yd31lzxalfZud-G{b}w%r?*i#K?Jywwc7P^N+tzu{8wsivNiej*iSNFtecUbgI2C@baYQoa*bBy{P~L+;TeJ~ zoZ2Kqv21Y()zEB8ZL>r>gp;L0s&oSHpE1v_-9A$vANj`8SH;A+Xz9d^;^`xk$8;&B2cbh3 z_a&vl-N~WRNW;#7ZKV{jse-((%8~0AxkkmN&7CvFIzZcS9#XJqBaeL16STcGq(7ln zHU4c-2Z1obUrU{DQxVr~f~{5aVe>k8gTH!@-ojI#TmGeKD#gM{AFXl%QbrV=ac12K zm{G$?mqV{-?5|}f$wLd1Z$DsceOu$tYGg>#2bPZ$ONX`^DfyZAkS@qb)1IRGb8p8h z1yRDrQwtNlYGjgFm)E9;>UW9n^U*}G8`j(evzdibNW)Tm`O003hJs)&9|qf?;{@20 zqVfkIZo8%LBdrekwPN=*uB*hIabP;;y}!Z0<0$%Rs*{jo`*jG##4P&~gCN)NFLZnL zbVVfD2kkM3Om4x8{3M>>jT-eJ!GZxm^>@W&H}$=EvPa>#?DOM@i;N25GDRE+eh_dZ z3#h{AZTD|&c8Dofx3+NmKI$!(t+G0##aaQAuYxbsh3*-}@3<0AvJG#=>;tq4(Ki+s zNf6SJ{xvDrM&pb(V}Mevca*M}d$(N@#LNBh(53gW3p9GY1 zHdLyrm4;1)qqjs00pTksoqJ@u|DQzX0AZ|RN2t1BTkrg@^6`3aJ!pVt&7RDR-06qo z)}d64V7_mG=~8*>oDX5>pWa!arabgYX!rY-c-Q?)s*ebuP)Jd9uJG_>pYW;99pGCW z#Sz|f)Er3`#rhYHV80-!QiQ&n+2HnIjZr$V_>XZ=LQ2QbX>4VYe1F+!WSUycrGQ{Q_wmYjIL+HU8Yd;Q82Cuv|dPS_ephuZ3 zYjIt%^^=1tkd{tXt%N#ET@t`f7H09{gQ%aD)8nxU*cy1laVzz)f!bX#-Cw8JmW$s3#DE@nCn8t zWvbkc@Ax}*DCC(kLWv^o~Vn&gU#yYX<2)j+kt5{XcPF~;UP?WkP@lfbs+ zd1O&2gmwDo8v>JqUoE|b3DDVTC|J&b5C&(0N{+%MLeZoaPQStBScf%9a9zf2G<5%k zdss0k_h0jN`z!b$(yqF<_2*5Nq3yXbnDEc!T3xA{#Hx(G-ELBc4iPuhW!+3Ub-qTt zYY`pu3WI{<23Vu~+e3CV_C|QxZaRnNy=vS50gNQ0aR(>qMy>Q~*G}cIj_#%epu8ss?Hqjy zPnh!=L%!k1f|@Ir_cJcl7QJ_w6fR1>4Br&kvQ5gk(YgS zr8K)S={g-%d|$lZr*yE^r0 zG0d+BR+?W%K2RB6&^V11QcDGeCV+gn-mj};1^>JdN(S1#o&yhP)Oc}hQGyv{h$KB+ zaDK--W{w89pPpa|?pzVn5jXYo>n=%Z>3ISg806fdD9`w~t!u(}N8NOmZ)g z%b8fLJ}UreP|}G>Ov_0lmmB;I9ggh;d!Vj=uX?21^V-}QvG4&NiAX_uR(BpyT|%&9 zUUAw^Y>&T9q7W0bD)gga(vLGuXtlT!&%9>e#S?Sg0)sg~-nc4FfGRaS@8fgQS4<41 zaO!v|qMW>>u9pnVLlZ7-jcgH;p7e}D!6J*N>U)ftxeL=99c5WaRz-Cc1p+Zqpdv|) z#-{)6isiXqo|NBO9x5cVT87Zhwrh-yY&{0KMAJsoqeq#!I%+Hum8tcYTlcKcJ2;KQ zZe+AZEPj)d7?wAT)NhUnt_Gas}6CAnj<=9u0FLJ!8ADs4vX%MA}lU%N#8XZWH^#K z#0C82)2Q4kclJcxSw(+DqbCOcCvw z%VLzaL~&DfB;Mh#On4qm`9s_H`h^)xa1X7+<8vjVm?-r$fxbV{k6*>$ zS)oA|Qo~1suQNW;N&3wGVa8kmq?^1)0shcJzBkL?`p(i#X5beSmd1 zklmL;XG*Nf)&=xrc79l)8qNL{dc5{RmFV}eOgg#22NQ}%t>r>aXpkRI))zRqqcT?^ z9dtuCEF723EsyJL|5_3*@Ej%W8^j+Q=ku%a-zA%td-v|#>!J2L?tzaAaG}z0S*M&a zK*2)IBx2uE$)5|mGnj!40UXtsE6YcO8=7@gSp(zVVTMJp+^9hc_+9rL8m6p0q0Q#O zjdc!tK#uZZO}D4coT7{M8X^5B zy}Ho>cPJQS7UA?~DFh#`z@(mW(-oeUFEyyB>{mjd69+r19Um%YT+CfE!6K9wCAfhtcBcwd=dGNJZiW(9I+Uuc2W+~TKi z@CR)4O4QYq3wfTb8XU%9dYzbRP%CjFq}~@|`)>2@XaT%#Ey)cIfmF|XTU^c#_sS1O zm%{C&PY)i$n>u{^P8i_PjvS3N;ow@M(Ps`_oMK35gyKe9>8~Q$sl~AN=#{Mv-}_YE zEAHRnwcS%@YT#xNmkSMZSv6hrVD{CBLmIYvhdw4X5Z`~xX*9zQ0!p`!_ zV_6DAYV_LZ%<8v_Vwp!ch=`m^rXn_r@6T~}|4mqPyPul5#G3z|Rw?HTIw4#}Wkh72`HMRhy!?b08PVvn2v&9*+3I0mikz z=07yg8M;g@(q5~6oX|O2V7|3A9OjA~GA#L6W-$mg;nFg1#L|bkl7p%zwmdtQK0U;#`G+N5z*~5Pu z9@5HJD(fo@mRh{9@tX;Yhmv8*2u8;KE9eBadJ;ud>A4&C*A-^_8Q!jlhzsy|x(2ut|msPG|`UeSHse1RlMVnqmJa->J_}yi>Mf zSZHAXtjmO1kv{vUxJfDZ3dP@M^Lve9F}15TCDiJ`(~sF$@QJ44#M^6;vfv1xvp}Ey zy;{GZachzxE#0fJ1K(Pf+NoJqwB~S$jEwz+(R!kb48`2f8nnMqj+}&>H6=P2*NdLi zPda#{rlAs1Opi#|rdaTqj>~lbX1VrMBo4evDLrsi5k8j5D|=ewAqB&7 z%oY5ZO*w*nZW&|~-68DemYGRN@W7)~DA%j5n3zW@Bv76n;{j9U}Pw@N>SJj}1mbE4uWuKd%Zn)baL34ntM3r5a@@C6{R? zBZY^IH8nf&7Is+_nx+!izjQAh+hODk{-OuTvAhs3#__6#u#P2dO9H>x%ufLoglMw3 zfGNr8*&aA(YVGXo&~D#|xhzb@j?6P%LW-eL2#K*hY5dR@w((g=58P_%i+oz_gSA=D zWQbHb;mnHHD&<0yYJnh=`3de>&T4&_oo<624JOv;bFxLrrXD12F+~wTKaj18s?oX{ zeZ%cG4m0s)QY*m`7htmdu-wCY;z9BXlKNy4I0Kv-_vrpXT?|WCPz&SQw}|qk@Z%>j z|6|3?Ke?2CpxJf(`(_;l+8)KHXklhjM<8Ue#ue_y#z47wn%W7MT%ddX`af|$>o z+4f{fMB@GhB8sTmw3)5gw^I*9K1@Riw|j;sv0;U8S)SpDNFeQU>3HYy12-kB)(WJI zc}saDEMmm1c*us8V#}zhva>_Fy4rN-)wXqvdu;vew)*v%fY_6%r7iP|CbPsAU*Wsf zlAjbk#Q79QZnVU#XK1qVZTLHsD&a3}P4^@{`uJm-MVGv*nQD1&b2Zl306;6UWc`w` zE<0dfGCTY|d$=7QA{M_^v}FeRweaIbF5imI zC6ARW$-dVZmrj}^Tc0&yTw0Jzn~R72>a1yDak^QvIo)kq%ZPh^D$!;`uNa+G&f)OA zLZRM*Ao)g%a>}LJhOd4A)Rl&mTx};f)2ILwIm$WG+0Sl?1e-rJGv)Y` zD8+Jye39xGe}D|nN4N{d8N`wbz zCc;0-NNuCs>pYf-;|S~GW9Y_UltW}9ZYSH&4vfsH$`@mQh*_O1>eAb_6gd;0S~kF={DhlYIcScP_U()HYz(iWKbpD(o1{6=RSI6&p z+4Y!|f+MS}weoQtUrE#C!B78j?#*|i<87-0gZb3AP`)Y zx}HBdTK*mz2Hg^1qX<_lgZ;k_%g8I`31`rk!)Squ88{#n5eN6Km|+i$nVqiA|7p95 zv!`oHRk`@QX@CAcr^)=AR0;Vs3^eOd9i}reRXT(1QY)Fow8fyBP3fT+_9on96Qc9b zapm@e%2%fHZ;hba)_S|0Yg3;jP8ceFqQjDmLaq+OFgC2s!Ua_I6^Qdiq~3m+?A=#` zEP(2hv(G$CdSepuZ!hT8Pe#*LGUnsvHzd?X>J&`cd1E7$l=~)qFP%!*L?wf`4JN`} zWJtHa##N)a*u$$=_m!V5jIB&>n;mgXB9b736nSr`pLREBxopXqE7gd=W<#W5Dq1TbNYKHUq0U`WHPuL)0o?sl8L28G`!Xqg=xy z!k7+sbG~j2F1p5vc%Dl+*R^SUdfX0d0#L8onYl&V7X4nsWVQq_Yz-kIq7=hj7-oB! zlG3Bm!xS|s26@d}YZI6z49Jg$&1pWO;@YA-5GfpCl0L8ldQp+HhXGQ>^Kg4mDqMr$RFXcJ zKM{73(ECZ69C&jxZJk`9Lc15f;Mjls2}rfPfg}Y9%QEM9Y$}RHrw8C;_;ixh?Tap} zEy{Nq{3;vfSMMMKo9YUyDYCod?KxK#7r1JlpGqEg?W-N}z#;;tn<4+W_g_=W(uu;_ z<8ihS&++knj4$OX*!dR=2CKfE=}+nSebM{0`bl{7oY{22k69zEsy4aRO zs)G9vGgMc*+8oo-GVdRq@aWo2Cvumy9EB#4H`$Ik02NS;#)u!`gd&mmNhNruI~nKM zkPSRtTgoZ~pI6ryrzWqml;bzI?0kR>qM z_CfnvaxR2ml3TS#+jLaL^?SHZJHJjx2&PW&L1G6eB1_Lrr$&4#R&6>0&vN}Dedr}+ zkN{|SIT7tpk!KR&uQzqp9=gM?T$gzn}e$i>nn<8|tBc!C!>h3SDLzzH;&uQ`LLeD{ohH zc5&-oY)Fg334@mvcC`e)FsZksk1WEzV=J@m8QZ~c?-TWX>7=MP6}!fw6u}*9U#S5P^g{zfr2L7 zn%_Qxh!Vi)l{og7-rD9p?rR#pO5+6T$pos6%I%R?#v~Y|ouo>9C?!f$({B7?F=}K+ zcFMlHR0ubPj_F)@dUD*pCSEUdjqy^$cF*#L4A5)<%4AccPzG~o3!hEu)%1d$4d3x(tmf}{tzFj%Dj}*z0bY*^bqf!jDKrHaKXwTWp2zESvS2z94G1G%Q%FE2!%TPxk zK3XpwC3h^2WMAf`B~xL|^QsG9y>ESI3X9kH-3{B|lITi|*rR!jQqjDESTg>QUPcp5 zpk=%5`sZ=w=B#=z=OPs~>{{H{ zcKzP21f++gA|CK{l^+jIF71FTA7DRPM!s`!@86-|26OiXq@PonKZ<#8{7!>=9$r$5 zmLqtRdtQmVmm`WaF|bu|FaPY!I&yx}AAb25@;}42UQ(BIqICW=LR7W5k zP;FsF@nX2w(X6~7zahXd0f#_VZM}L^^e20`CDrY7nGp2W3@G0oDDaE?E$DB5{k2^w zd*FX+20%yzA(2SY7`2pjrPU4ezf7FP*Zp+q9|(o9rn_Wv@tl(zo+Qc*=;@qWagTu} z-ImHRcc>+5jHYJLC51 zACv`yjTnLaeu!z;F+>k*aD~R;aA6P~{oTJYb?7jv6$dT+s3ec2FPPd&DzdS;mrX;M z!|W4|-@jah>v8hB*~EL*vL*TTiN4)5Lj;81CP51V%*W+!0saaPP4GC=QAnVt3$&UF z_)u^FpG+SJR;7#LKz!)5y6^p)nCTBv_c}O-bWv3aB2K(X^um?aG01! z4un886!89A0ws=gYa>za3#c@M^RIv_5Fs0d9659S4Eh8^16rRd@*Fj*LKD{n52{~U z%I7Ac>v5JApl;n(*BKIs?WD&x%tAK8@I*2g?4SaudYR>nQs01vf0j! zcLT4{#;u3PavictWDbC?*u2~fnHH=hBbD|PYFm61YT44Uo=s`+_d^fa`?&a__CtSN zYn$P=tNAy*&cqhtyJ@-k=PKg+CL*01SyBGBHg>!1NMswE)Z9X%Wc)nNX>-k)NKQev1zJ4xnbxAi3K%S|O zJomMC^lTo1{eJRA(KAjHRsNJiV-pO7VwMz1Z}^sXjw%U7tyAaBjcg&E93sl z=rZa(v4HaJ*J8E=oi0;G?=qCpZ2P`QP=^4fT*#*JN0YN2YS)$t>(b;I;)eAmbUO>y zL${M=qEQd#Q^eOYy^o)wi&tXbi?un{z*&sAL5F7H&rb+jCiU8338`5VP6%+H{FsZ8 za1w;(F(i;1+YA~C&b{{ifV~X&G*0;ULM6XA#}3{bu#;!Vf!(~UvMXMzn&APX)$>QT z-A@rOHq6w`0v^@oNQuXai>EpDmdfJ~rK!hIF~1c8n&9*NRQmuH@7Z(sWR#oUvAwRK zl;Lf&dI!Up_d+MuC6svM1d@f@@l5_kP~wCEimQJr;M(`bPj0-EP+d^hRe9FtAeMd= z-Ft*ZyUPwI*?TcS2Y1lORDj+~TR1hM~?JoQSn zf?0ctWHAO>6VoIppC-vhvir#&K$hfNhDu``F${sgS&IKprJsN=#sP(5Q_~=_alLK} zH?kEECGWU(cNZ3=a~8FB$xnCBl~CudgUR|eH9;q3{Sa-h#rujoGV~sWP^{)#^W3KE7w`qZl{8!d?g#kJTr#TL#^H{tXO&P8o zS`P3XuOKNIgc7d4dmtNL<12p;)mulRpT%RHpGxnarJ9par8b>Lnl}Km#j8h}t@hKy zreP~jP0QQGRO?Fh_R(-rZ_Uc`BUc%KWfA8JK_|v)VUuoM;S4mQqBsG%tfwUkI!*Qg zOj~TEqc8$ED-N9mc9LGTInF;AML7J4K@eoU~OblN}XM3jP6Nu(w@srw`tklOPxZ zT{}J1{YqnxJlj-MOSeNVgeoNy1ecyEBS_vJ?unAH=e@w1BT;%I4)QFIry}cdk6^&u zaz`d+&XFtrSYP{LzkNc*=o3|fH(+wYoin9zLY^b_Cq&Y=VK*SFVnr3|XXOA<1K|;( zO<&mDK&AV9ekBjrp1NJ?mQNgNdu;^Ad=Q-a1qqrn6;$smL^>*V*b77WPG*B9i~+J^ z?&HEfy0e7ps(3J=18m#65pp$Xc?H;qXeUr=ZF1ot#GePRXPiSP8+Xd;Q7y_oueHSr zNxbmZu=May2{qAaq4}n09VZ5mq@2;?J9lT&IYA@EGO-M^%t`&_clIz+iVV&0DaL~ zn}#T{W3}s`Ox$vx)jnHsngitQ8qtbZAGgs${BSIr?etnT9<*Wcc-h3(hwumH9{k}s zuUhoFeG!KrnkOJ}eC=n|BRm6l^O{hjhYJfHmqNUaty_3whBtkCTqkHZJmttgck>>F zmKh@IAM=?oW4!j8@3^RBQ0+W|o_3ecn{(QQYJGN<{CH2AHmd{Y%6{Hp(BKLE_2_>D zNh<-i=D!t*hi%;v-%NA~=B6Et+fOvg-; zcHx{)tOqDc#llAp@-m`dX@if?zxlLWB2pu^)F2Wh3nZrlw=e~8( zs7+7e>=!{&%PL8z@YsGm+_^D)7IXt<%#;Kz6(Zb;QBu*{B&xwcu0*kV^#q8F#OY&% zbI41XQ(xK6vmtZM6%yN^pF{-U3~F1{*`u>4 zWH2Ah=jsVH2fkLLg~_>gPnk@%ePf$D8)}hsB&zzv%|C&v(W})UnEN|&T-zHBjyeWB z7r8T(XC?u8{$fX`^?b@ctJ@B9riTX*sdFNU-a66#AiwzSuv9`#8L$amN0NJ{PdH*E+OdNc0qL znPlDOQ0L8oIkJ0R{?~G4W?997fccuh@k#P$&Pbqrm1}hN4gR`9;IWqYuUA4TEtACc5aog_R{G4S5 z`~JN5^Od~KeM0{D%y&Jv7m#&Be0D3H=>Z@_=tJ{4b6Rmg8l9CIyskp)BYCG+B6UF4 z5auXs-kQ8L-G(MI?GLt(Ydrb_=m~>T-sUV^Y+WydX=JXrS7MRLoG$J9U$ZA_h=UXw z-^&A8n{eCDrt2>^ZhI5R2Faw9J9iy|Y1uH}jz$k1v(kmG7o;O%iL_ zw^Gx=przbH{C_1nqm{0Hz_5QECL5;S0FoX2vnQ}(_)T<3)S&7fCK{8twWbAsk;iR( z6y#!H5$t^Roxs>Fb_kNuN?EinwCXJmvCH>T{bSMZ>gwM2$NLi98CSf zFkMBj%N5`-J7Qu@{3xBbF^N&?Qcu+afJTiu$3K~AhhJL1xNS0^AZHf*HyuFwt}0r8 zFP#{lRP^wH@euPWefp>(AkpN!vKP=I6ID}S%r6iWDx{|}KA+(sS1L4bN| zJfe!hM(Hpp_JoRH1*+35Gf0bmn|BM+xCcBn+Mts~*|n32>LRvd2IegLhD&~IAQtM| zN6D85I;rN>Vun~%gcdf5s(4<*zlS|v0T$sEV;m@s0W`~YK>?N6t&$;(%%_{$g!>@B z3aANrfKo0tUfM}W#SYY)PKf!)I2>dp)Xj_(X>M)V>~QJye1+ulKm1Mqb>Yd2e`Za_ zFyfF|os`s_QZ-2f#!)or$@Q|WKk=1?oIn|FpmVs|A&g_3GcjTH5uA>JmkKzB8I!_h zi3SE}+{EGAd_6HGb+HbYYDFQW>>5&_(g+R#rd-%NXEU-y&it)Li)Ls0MTYP`4gd)U zhr_F=U8JY|EccWJ9w!YEf`2J|x;MZt5X>W^7I68~KDYvKPF_Gli%tfoG%*5c+k&+Z zSi`X*?#wz^a))*VukP}ab&@{%0$5s@L{pR;;Ua^fg&k)IBWMweQ+SUbL@kZVBpkhQ zP`PZWAP1<5t{etoZ88OhE5SLGV&vLGKvAA7I!sJ4FH53z=Qi(tW!f`7z~bpFt5AR8 zr>h1jad`7@a5>Iv`YNe{^4WcAw8PAl3FQ1|?C_n``1%B_)R4s^r`ZGWjo`(gAQWG& zS$$U5T|47RPe5xwv$-1ACeG2e($=A{x)MivGW0vbE4eyf)D-6n*Zk@HcPVDOg1yfj z@%l73))x0O@t1KOQAEN(WLcVaN=M+G+uF$nFsfv71DG%GU@|=2f;g#|D*GtKjF~$r zsOgU`4Qc&)jRRoHxIXiYbVuCk2qKj{pOo^Hr>-fU9&o&t*`$kg##r-z^F;=leTQ_b z<46k^NbVo}&eYBlp!#zBt=b$Y;v$Hz_9i-_pEka8-77w-=EAl8`vDc-(h6@IxNmSE z#eVC68gU@!RRgV4Q^Z`za=;Kboda=lPe`OoX8^xcx~%RUr5Z$|?sjj19r0A7fkt9m z<4~P6oJ>g>XaeQ~q1Et#=|n(m1Z}_jkHEwSF?lbA3RFA5rgf@MSE+2onRK-+Gx!G6 z+3{~+qD|-u@d=~m7S7UHkfRs|r`{Yt@ z%sU)rY>5+7NVQ0+@?*NEzqSev!*1+QHQ5)uXBxYG5^6y8qB1e|v|P2Da4;9kjKDQ8 z=$7NL%hcS0FdC4pXC#w9HbvV|%NTv+jaqwgA^nZXy=*7YV>pX)vCGkVUT24ve}(9E z-hM}>vuBng7FpCbFG-ly!QNF)f}>}*bH~Oj7*Sw`d8LhW&>!i&^zFZdZo}~;saNyU zZ4#M|g7f^q;;MpPp@}WC_j<5+Eb?l9;Q)CCc_bg-+M5pmmR!HkOOdY#N{tPh%$de9DcHgsxA7#buB8x^>?bXWV=L>tEaPzO4f zgpJ~Y+SIznJB>17ff~C?4y~a7(swar1P0g#F+Uk{ zcdPpZX?g9fkX314ZD+b}dT)Yfn(vn~za^BT#Y$c%7BoH*JX9*28EpN!E3pgKM0i`e zcL0f4Wb?JLjN4o;N8`D3MiR?HmiV3T#&{NXmNkpe?9>|~L)BbCBE#!@`QDox_Fxxu z>k39PCj>SDtI`?tBw{$p4e{GszV$?i`ojFsESIj_n&#c7x2Gh6Y{ERR z?|K8eJU}*mM_mU|9IdSJET+oO{YuN^hx+< zbOe-Xn8biavgjZyV&Zn(Zs`qIIsrQ`5!d#%HscJ2i3#}0vO%}FQ zq>RvR|AKO>%VBLy`ZI^f>>CvRlFt`@;Cy?OO;Vo>o4^Co*uO4*+QBVY4x$4e*0@xt zW7jq$w*oH%>s&JwgeVy2<_{Xr!gTipQekdP_w6Qj-3|kzymMT-5OV}=hZ|lR#}U++ z>3(~@p9c&=9&&6&xdTb%--!KZelT;;p*?T+og_W8=IF1Y!W3ZeWr0&zeM>` zIz1h90m%obYTpM~Dp%@S=sfC*7(4Se&Rk}I3Pb3`?9S*tl)Rbm6QMncE?=`7!Oq2m zwoj#9*VNWBOXs1S5M6>1L< zD|QJZ_g=O$S@y$v1AaEwOWQe=!90P6Lpzo4DT;A5kK4UumgGigg`{#WC}|VXaJNU> z=lLaMFbg-;z7%Cb!7sF2(IK1Wco2@bm%*3qn10b-_XipyqoTl^>$H5)`<< zhFqs}0@zfFPY22`;ubS?Rdw<+@Vxl%de>fFw2?qBtW>S?rRs+gmrj3})D^R`CmrA1 zs6OTt-D)JOOHiFgP9~zh#nKjMwoqtL7>4p#8bw(i|2-0%<^0b~@bJ-&l0% zvIA6lT?N`r%|^KPKns2&YKy@>VF>Tvbwek-*((!VE#Ko4C#d_*aC|}4KIMNj?24`M zOCHSK#2mA^9?w5S_3r(-x0MxLhr$1AO5Skuge5Dn-$%r}?+B5>{>47?yGX8d(gr4t=e4vX2oo3E1gv;($y z67MFGcX+(eRI~#`LI1DB&h;D-%aIx%4q~&R9Zo?~2}3YobzsbISA?;n^O=u$eM0;4O#3hajf1sxlM5dW!Jp;933OIxQSjsR@wn*Jq>a*5?zVU;k#E0A}En^T84Nze&oSrU9T z{)eTX{aw_obN&{V$Ugt^uhb)M!9V6ak^dFug-O@o`lfSeew(HBkc%z+M_X)sPVirt ze>7|4|6%ptH|BZ5cP*ro z;s3=g49q;o{w6YMei}~v3zlzkLO8_LlDQVO)HA^mB?Pm3ZpvUHQL*(@0}w%n^CSe& z$`=MX6{z*u2=&gsTb6WuUUqy=gc;^)DE)Y$YpMrrD%dDaE8Tv5WiVVzQ07)T^O+}a~RkkvqtC{r2z)UUnY16X8xl4nBPq~2JK z4)PQWAEN(E6EUcnPY;6mfb|$bdIK&;1g63~NiEAOFgjYCMRI0F}Z$@)k0 zBd)&p*izMS5|uN)4jEr7tYk;eaLnUK0S_gXX6vV?;40|@IE8$?&QR&*6GB+GAmIS& zpPvvZabqvP0_O9x5v(Q#ql(=6$i*l!EIWS)HQR7^3L=W#)iC^V+-iJp$A=*5l~!SB z_ao!ZWyjKsRoE(V`*;aN>H>qlhd><~%j08^Z9$(9Mz)dqHHoJnLtQ8`{8I{ISGu5e z6M8-sztNalL(d~pAhBR(-&I`{=$sdkGH0~Hkt#tp+N!mk82q$PXXM-urROC2xdv=t zB!V{B(lJ>b%#B!ScxOAl3wvlokRGC6%9v#G8~|O}!zPcK?1bFRMSIxPkMBj8WjwK* zp^*r5g?mYMw=k!nyZZy0Luzrhd^~EeK2_|EKG`KUQ8!}BY;qh^0p+!EyDg1yxFm}` z)qvg>QB$hB4|~Z!hpF~24Gu;M>IV$bNCsPU; zJq*@LpY7UDZ;Z8x|NR!}GTST7wp=HnRh7ltW38+HVv7RLscCy|qY_&|v)3P=voR+SEZ>v!D(bf@3^?wE68RNSqF|Q$k z{Km|mU*{zas%Ih-UIq!JVYhL-YLbkTeQ=(dvSTrVgX(eSSdt|Znn8ZkjzcCvmOBI6 z-cMFc1y*oDlA}vx?Iw!UW$vIK{$g4&_2%_`4}D>Fq|5y)!dDHXX7?VyoSx>|sZ?t5bn1_*5=hIFK^f$>y7p zNi$0*@$R7qtT_|WUT{}nw+8@cPkUn~^a#Wh)4=2K4X}nG;TO^l961Y-r&R)p!&4@5)iypxT+MtX=ZXLB!C!$g@^9WLJ!jfwn zb(f9ryY4;}C~bJO|3vz@RAU9(GWpUi;3?qg&jja;?87T4(Q1qduKNXI#EKL|OqUv? zmeJ919REilEm%wrm2wcrSS@D-#v?I~@)( zTTC(E#o#=JSX^Sc(yJF6fq7P(xIJYbdl}@84Z2Zju<4RbNKc|F++9PbZHwROjZnL5 zuPJ#((jCZG)R9xX&QO$o7Xl)os@%q!Bv9$Xh7z)G{>1o7gAi)m_mE5XvA&yf_QN@r zM9$4zjG!fpj>ulM=@ON~Bw(*F(I6#<7u^(qdd2J{798E6F!Ke8wgW#lC**VN$G;lb zMI~M+8wLnC9)~DsQfYk#ZUB=%QXaU{cQyV=bl8iH$pi$^i7B!uZxib!Qj*&kK*OFR z(Z3^^)(se+DZ#wzRw!7T)-2S6+ff2c~q$E>r{7V(D#7yAd?$Fo%Q4QHe4i$)KHA! zrXe};^}U=D-n|i7dLBNN{Ekd^52vYBU1UO$oI2n)p( zo&t=eDl9l#0?^9CD1GPDi{EB#ae7$$!Z%>IT(FM}g0-3p!1}z#27!(*_{CIxRoNs@ znBV_37Eb(^1%5z0h%>i7n%DIR;Gyy|nZ=_JY|CJ3gCwoy0w%1^*7llX>GUoB$SR;o z-cM`;=bI=~Nme8CLVDaQ8Sdym?{fg)!MmyqO+HRue{ruImt%OAAnA4M%{4C*=-Ju5 z?^v{(ZQ`M4~cxjbo3J(znxA<+KjT|X7YI0rfF%&`SMgR~RnyZs$i zzp1sQDUN(yay$L$@I@brmfe%qAA!!aZdl>cL^u{iCSO$l7Lgu?`VxqGX?t{>?3UGj zEOEJb18bqQEF7G-G)U%#h&9s|dc<}5_p+ffD{K|MGpdPIOR)eon0oCe_0UMA)yCyz zUcBhpYey&C!a-zFtsNkE&KvpE(y_gCnXazBo)amHuh8d-i^})mKtI6PQdwOT^L=Hz z5azB|aQFRkQDpYqAxV6nNenK>%AG_CCiNGbGUF13aaumG5V@ITtB`3Mh%FS}LwgDY zz1&p3TZhOjGf#Bn<;VqCdrSe_`{i@`P+oi?0oTcyI46kUi1_y#r8A0tM5>$sRmDfY zj2J7S9BmMRi`lDmoRWxGDptSKsuIwoiVr_auF_lun7~3*XS_uC ztZQ(Ua4Y?Eb}RBiGG$egC4c65tnLMf^iZC&S*la;1s=$@NY7F)xw*QkI}^V~!l~#; zCXEQ7!K3#|itwISP;|r7_}X!ca+>Hq_#yR-<%MLhokZmtn@=SE>TC6re44g*^NaIReH9l1F#keR6 zT`Q0bKXJP&4cCKv6Ud%DIjzvXOQ#yPJ+7$1U1i~O`Jsb96VDI9M$G&+;@sg;WWZ%x zb7S0b8t*$LD7=XTRL$QpQ%2Um#xJ}L=ItE?hQneT@M+vQ{lw1{K$ODX&@n(d9jhx- z_Zb_aI8z`i2;W${2OXd1wA{TiX&=rgk`WEd2SH$QPQE#~2x&uU3QQ_@y?kq3ryAju z9(k=y}`k z6(JxN&aM6Wu3W`e)}ux^!=8A_A-wc_6?I|EEQiAFIY%9B3lTdtgb`GN*!Y*=LrbS8 zg`yd2WTXKNtx|D4e3jNJHtDi;IWs}~{CjdjX~IS-IA$$jxVRDfQDUJlC=ZNItNbUWx#Q-rb6+ufMWJcA=D~L zfdAx58DYgaqf_dbQo2)2h<)oTOXeXNg8)Ll)x7fN5y6Ci)cL|zZ!Rwqi;^q#dcuTq zlAs89Od@iUsqh%x7v`T-CwvGs4E?5-&WqvM)gBZWag;kkOCt$T`l?e{&ZF39y5I86 z0(=ND3Bf|r%(}NKJmvB-G$;M(py5ORIOh00WxL$z9Y zi42_C-X#H|q|WdXz;4^5xezhi*oW44Ny?)l1kld_SXgvY1cHJFlzk*edx^V5u___p zb=rg33a!wad9Niln3UJoZ3v!uC%Z#o z5)g9I0!131;KLPZ&OFmQ@Z8C&dasZIJO0ByNh!~1DRpeWigfC57+JC6k}KqzNxXYI zS@1EeYq*Zy-ytQ#tC+InBfK1-JYZ$_E}WXfnazK_05uT`APY+ivSCox^~REE2`)iN zvJ2|}-jnum5Xx?!6o^1&yb=gd^O43=O>BV*GL6eNdt%N}SBz?}3&qYL9jmVqH5w#? z<6dd^1(IOO>Bw@DJgxeKyz0e-MeN4aMNsUsciy6nrXbMx0VaVx?jQ6k>77oaKXw^~VzAbd-h?Djc;Qhd4u?}0~|49QRT&|!HD zcs&wOsIgB%{dDyJ0;Zmc!R=^aNG7DWvy7RhMjw9RYB)30vg6OdQDQuDtJ|zWfAEx9 zG|)T97s;^l`+*!*!R>y-p;9imY$Rl%)UJKhAmY4ok%39p2oZP^ul1envg!R$1&nuU z#485DpX!Dr!Jh52HBist)GDH--A~8UsjyH~6uSHG718+H%jKb<7J@aG#FOsKP3&w> ztK@wvD{IJT zwAY@}yBrjZxEHZMG54}JeqQT&dpoc4@}GR3$X70%s1^IZ8a-`u_;__UN2INmejigz z*P_wVdvBzaMqhaZO&-~;ez=MU+CdAmc}-uVl*p#~85O@<;f(*|mfN1Oj?lH>?d<|! z6-d1$^JA<$-MULwZ_W}=8X3)s)?Qrc!0jcyvu{~J;u=#zx?V6vY^yi*xtZ|>8frw# zUKjEz(K8*~J{dCtzgY74euJGeKbDP*mSi=NCCXfRjxA4Ca_^f^`40inLU~T4Kvt3@ z&f9TL#@I$uIIfYEMuKZL;=xKizM*&Im6b+{Yv-T4Wal}IwW|;pNeZ7@AGou4xlh9n z>?N{Hz|bpeg)|pb~W0H|JB->tAbYfqxa-{MpTl)l_Ii7Q|N4F&gc6NAuH-fMKjP3;|^8k?GN87f8<7F~aB)Dt$VgFzNFw z>ykd!MJfjekc=B4wweD}Ad_Nv%*bJPrw~xq3`EwEWc+}M1-#b)KX>Eyw2M`2+t=co#pK&`5GeoHMB+KwK-UL5>iA&L1X@;w=)x1SFKRMdwbx{EHTsZmvF3M!-Cr@r{D;$6|?$@%8x9fi%!4vNWCFI>8uu&W>Cj@h42^dq`W zi8$Y1?Sj{Wih2!8a|?A*1v_%mr-4RgH1AqR(8%y>UAuxth-)~~KBVXMXu16K1S(7C zs}8+lRfrZP*sHHOWhViFLv>WEhi~}iX_u%tF_MqdT!76v`#EA;Fkc))D$6Z7S7Q4X z;RTpMr;&5C5)f{dIO_;ME=vqC#EH>w0Dz(FPSPaVD}zpL%V{}eMh)f9>$v{ppXy%s zdzSO*d1}!5D0CK(BrOhF;Ra}1s-Uo@{?;W2u(gD~M78=ATsSd7BnldoCJLyN2vDl#?K+Wry=OZT#ok&Iax}LHq z#rF8Sw+|fx4jr=1HC4eKsPmNmI2U^MSmORxb=*OjP~*-U@Eu443Z>zCSLH>kU9$c6 zy+tZa>`%I3*mQmi2NLB`BK0zPB{KYjjGjKRhYO&t4MO0*(}w1()lfqZ2JdVYgc5^z zHJ^rjM6i(#-_b0_6%cC{7|O?htkMk4N)MMg7H(cN+>RuHgf1T8@2}cEHfp-lAKk`3 zZP&K&-r7ACvbPvza&V)3IkCSSSw0WUzYZbv=xu_KBdjq7tnkvv;AoK=3FX_c zRmzGvv{c}&JYr>ydF){;)beO)o{?Cc{(A!aqS{Y83#pqSdhA%jXo1XI-gz)V+3@7r zB%6q?+s<%<5rRYFx?IooVv}e6?gpfECCPx=1<7B0$vWYljKCsjLMb~yL$E!(A$$W^ zjacF-Ejdem#zU-wq2`C;_b-$slO%Eo2$HP~+A1Q9q09*Sxmqk`n^ZaeSa|~50W?{| zdumJlv;m%+Pf$T9RAK@^cU)KK^wt4hhfVz0gz4cja;OBrbZ=hp_F$~}3b!(_s*Xj;$(9*TI3xb96qQeT=pZ)Z67u3jOs&TNa)Gyl5>=9O zVCnr*chSK;h!lv7CK8>J{y0_5y1OV1Xi(}B77oCEvfsS!ab$IHXkUo(P`(*&uw^)m zU7q*iw5?3lxBOjOz8FNf>c*MkGrz?2cV-TQB~_ACXWm=FNUMXDJS8usVsPXIOG9?H zKFk6I|I94Rt)QQNow}TlQduA8I&~%t14#I`rSpzRBXqyagsYG&I3Y`15~t+xj3f@YPZPa%IPjqEwwF|8TAD*qW`|0PU0`}=&GGtO~ARn$~uIG8znAMhCp7<&7n1>KXH@BZlnFAZW-^T>~B{MUGB&ckQ&$= zHTZxM$O}FeQqV=>FIrteZ88X(&U&54!rD<0*|i6xz#}cmsu0RXJ+O--gr_#{&n^hu zZ`73C;7wqm;G#L;Vr%?aIwlq!^FZ;&Ms)~LD0$&fkA!!OFWiVNu#{j7JJ}+0^doH2 zDGz5O=?)XYqtZDWpijA^lP}&yg#^d05kbOeVrf}J(P0hg{MDzNE+bZnv zn4q%gQ$|U)R_GFv*_e2|ySjjf4j|+@v86f!&zW<)pccWX3h~pD1zf=}*~5Y%F4zyH z%*2~|&ky>K6B*r)_)eklBphArnwK1|t39Sah$*9H#ZHgPZWoMH;|G5#8Z~(2zt_36 zUiB&IdVh;_jRwo#9=4;6zzrQb?tqa7&kh6t);Qxuh<{faZ$08}EQKlibufY<^BFFi z{Yut1*9Y`=Yft+&KZri|o3Hwf(zZ|Yf#`O6nL@c*NSoqIFT-e|cLnk>_mYXFK17z>5JWW$G(#YFK^uOp zN*Ulo%MapF9kMZYX=r0}l^tMRIw~+_I(Y}R^@2FD_nR$kbZ7jCQvT_Co&U z3j=>7DOwr)v3I;u z9%296w{8pp6iWm_aZU(qtDxiMK4SOx*ZWr9d`^(-K9od+-a>I_gA+{Syy8E_#;i3uld+cGAPX|)Kn*eKC7?X2R$l>*z%>0wpi9An2Dc|6)i40968n4c_Y#+T zmv%lM>3ZFNDARo&W4b|#7~=p_3H@@zbw%sxuIneC*UeviJg+-;UxD3M=Oik_19rH_ z5_o;n;VI}0)lB=W<98)MS9|-H{br0a5m$Qca{W&vT4BBC8aL^BUq4CK zP;^X%pF85##qfLN)g$iBtZr z7b679Ar_K#E(9(PiKF7=df8TpHK9Z(L$|OqXbEDN6Lkin1?r}7lRyq5heq+5Adi39 zcL3a+-ux^AOioun=i}EN%Y%|6hk`(~b-_FtlPP0(dikU+<1It~#VPjOh3PDanERzt z#@3YLZHK<7GFV+n>Sq>SihV=~U&I2Um%aQnOz-Bew|3?CEqj};@GH~?*hzGhqRR`K8N3noZ$VGFvaCoh4_A5IJ>iblU>6Cy|&IPn(H z2k`Zj7l4Qmbp)`Mph_5cT<9mDSuR{d2p~f))a)ER%>yAr17t*&1J*gKw*TIgXYL-{ zjJ6BiiYk}Kr5|MQ>W8OI7f&xO*@|&*jBY%vE>2$CMxi7FwX@%8sr`gVZ)U>@fWGe5 z19ec0Yza=X3yskg{b`ig4x)?|sX#54s^ikyZ~$drNuI!pip9dEigOKOGd3|gfZzI6-Wufhn~=dIWyZ$nkf~Yv)_??plUD2if519wRHmX!5G6( zC4MfmnIpZWDPV$})fR~RxU35#XuEj_!(n+n*$dy4&PvPCw$2HWM&qJ>TE3E^#$HF5 zG{EsiI$yI+V8oFfMH@w|2-=fY6-=@%3g#${F;`*C;oH^yGXkMR!E5dy(0iO@vjqv+ z196TCB)xIoAZYCLC+6TV83A0~^z?I^auXwI361M1Kh%82_--syANYMi;{XOr0FOWO!(a-(W=O0cnNk z;2>hX^ZUt>=t8h^FMz4mF=;Ar0lQ{>Z1O%?O0a3bCR+kmAR*}PmpV;uwlwjY8~O6I z!_wUCHS>^Max}yWyEb2D0FhQM-r~n@89^9b0D(oP$gynkzP4^_#+7n?`Dz`Dg2cn2 z7UdLdIHXI965BlzTMj}2>0DWH(!%8xgp*(XA|F)ZDr?VHkZ(;!`W?s5k|6Lr+u2%d zEyDVUUgu4Zieqr4`eXrRZU6fm*d!%jyB{=^Aoqk||} zwjhOXx4?jC3U+JBp`l>xdxS(YJwo-a4fd~ZFYKy%#o|4gj9Qq*2Y*`5@1I{jA1@y_ zrykh?;nnjf{onPrL^g=SF!c)rgSs~ad66wPG_M9-Xs=O_drp>1TS90%SdboS*wQDT zz7PO_uP+dQf;0#yDgYb+2><|y0H###7J9${KnExQfcZ^vx289CG;p)9HFNsE1x7k| z8|w^}HQNjZMDOYa-yeUdfLu)KHAVen+@wclkt zsW%huQ-2~lJGj|dxg2eR;<2JBki@i^R3TfZuVbz}YI;W0sbDmzN15Np;JUQDKO1;3 zxOo3Wi6IK4p*CSvRoKikuvF~Av7#(GLMFKrE?Ue$FWOzV z<$}4~oBax1QXsk+W3H!YJaqA<*C=G!4X$}2?~nDLf8;CtDSI@j(ixtdD?J*<2Mnn< zejB)Y(IHwspX0il^R^9Vd38Y&&G0kI{$^`Of<*_>(UVcve~RnjD#rnrUc#|9Y6L`= zS{;HWhP&6b&Fsc&-GVe67A2C@CZ|=u5n@s?Qn42^?=u4{1G5A2E1l=2o#GeRwO$Jub_yi;g!dJPHm&fq&+{8in{7LG(Nuu!9?H3b?D~r9x3ny2 zxF^3NK-3gg2*&neC1Q^n9HYYK#F4R_Eu*1+#3+k@*cl8ru3clTUW;WciXX21wUKa) z!d3L-HgFUsl=}@+UIlvWQ;6niG)HxL`TE&|ssYZCxKA}lEdLM34o-S3EAQbNMqA5sFUGmN-X0**F>T(t%% zUO*^}ktlRIP84h@ARPLqv#Q8!BY>Fg+yv?T!$43}1H+{@_m&(g=X;~tZIjpR^J_el z+wHRRkM9&LAdOKwj1*@Pm{2@}ItmWPFj`*DAU+EiRNoJJ-H$JYA^~)0Kmo&EMzZhi;Ggb$E_-Dl~FOaXZT09v@^i6_DQX5b#s=bgx6!x*G;sDpuo znpEsV!g_bf)<9Ag{BOf#;-$5d*R5L~l1i+I;)d zvEuvtGQkxVFe_{q-27Ny*MHdd6UHYo4OQu+6k*UuNmtgfzRWm3oA-^!A&zSNqNox> zhN&EXF3?(0iTA3E91U0~&c?bB>Y>~uJwp3XCH|&>UH07`Rj)Di0|H1LI0bUXMiHh* z)aMg}-}{{8DX;#U5c+d-JC@UtB zPDP{_lx z4Sn0;a|iVT?>UV0+|>M>x4!CV^wAxqLN57VFKQ_q1j^` z;XxwKkeQj038ZlTQC4|CE8JR45(%^A3I4s=m!C*J)Ps|ru(q#{s@o&B7K@r@EbxbnGhHBJ{Kym`Cb|Z z0@OgI8rTZpBz=-)U{}8leFAg9Gh-RUt|TDDO7ju`ps#&}Xef_t-)=HOg#v;q+`WXISI*c-u1`4lq|$1V*Z-eHf10OeuK zRII~L4?`LnZ0X)P#vg1D)V)+SmKE?;0blp36(DCre7oPT4KO>1x9IlYfM)!b??2i$ zaVP5nsUDW!QM>u=j_{czK!S;c3%Lo(X23%f$dIWZQ$lD>f=ikavL#2cgBK@ZjA#>z zf4wG6Zi;M%JRW)$<{3I1b}=wKpo<)4EZ|7^5}zljtwdLv+K}83;T-84yde3SQ&eSI zc36R4mYhfalUk)*VXf3vs-482Dm&Ex*&&1}_)6>IK-P64V(bKzyza>|y{KcONA0(>3E#*xVDU=Qt$QCXZ z_7>I_npv8eY_Zh@7%)Rve)3M&)FXJ8-NX8K+ zb=w(z`z=KF26kLCjt%?39gF_Uowk1Okh_o+*e&+=Xe3KxJ5(!{dGm-_vV2`5lsyKc zup7<2grN;`*aSd=OhOX5xNMuuNs&(x@qALzu#6tVL#qFT^&$4*57U@GaT+au)~)L` z$~CfEqdWpUa$oT8-q2BDFH`U73 z>6&lof2@mbh1e+TD_c2DC!3zxaZfg_KBnQ#PR-Me+ji=t^IBe+(l=Dsb)WljwQz^x zE^#-+5Jp~O6X7fJ?iP_OGR`ng*Dl@cNDPgH#s!n$h;?C`a8j8p+$x%hd%HL~jk&I# zI=eMY9oOc=h_gre>{(w;I8`}z9SS)?x%@esJHB0A>{Z=v>wQSZ*`S@X$<>Nj!*D}z zEA`CuO!-|XUN+1Xlb+R<#h7K1b<_c=E2!(#nbyhotKIYH*VWzU`0y;nxLNV^9V43& zs8Lh2$GO$z_`}Be+RpI3^uyZz-yOTd>4)k^UsQdh9)xA|YnmB424;J;?Q+6mLW`N+ zoF^K)CF`XdeHsp$7Sa}05eibG0;YYz5)X4Ra~pH{RITNSn!TMMd%5S^>vU@)wiuoM zORO_S*T-dLTq=ra;v4h$1CvS`at@Y(ZYwAm*kYr~>JTzqj{ z4CX4!_4(!5+Iqw3q1nBnfs05_3*~0_0C)OxA#X_U0BpiZ9$)X&<4$+ zWM!zGQ?S$PsV{ugTvnbxeO;9vvv3bpHYf7VahYn?RFuMMtoyAE7(sO~8$*Uy_D&1p9L)Lm<|+O2BZ=xxV2 z!#!iWGC2RS0rNQa)b-5!@PzZm@uvCcd0EY^@1nmU_}Ux)tH4LhTRyNRH=nV!_G4yQ zm{yig76KuLr=xSFqV+U%GpKvBLOwXlBc#~$D7Dd*f6cK=4BSH@9k=-L$Rj3 zlUz18%CE!ym7eIE)SYB|XP>=WB#!e)y)g<|Vzymi6Vs#ia$l zqK{*=FKUV^a6Mk9DDR8ihmx}kc4XW2HqINmY$3| zqDRuB<6W1#{Ec7QPh*dZ{@uWzZ41m@#dnSOE??<&&ER&;Ul*@#(snXefo_~vubU}e z49_)t`A5U`+3|e5XX&4R?mZ?k+UaHWIQ6a`j_#kNTa>D9DgAmwii$z5O}POL#(-m+ z>vsl07j|Xnyf%3%sCSB=8(WFH@B(;VKcaUk_5kO>lUxEGg@AApcQ1f|j&{hZ-^iR! zhH6*I^^nl>%+}WuCO`=VpjYtm;eGb@)@>c!y9vJi%(9rNKorh>Os)o|W3WFB!avdt zL^WkUwb|RU`aOAovX{_s0szp-{>ea+N~G7{^NLIh6?JEISs5-PI~zI!V>?5W?@6)! zw=@92y*}~42@E^MdhITH_yu`%+0R4CRPd!cCE&d0| z*6F{R_1!@Fe>n7vbPV+WZTnl5=N~GUf`z+@wYrFfjft((HwGUkBMZ;J^8X*_e-Qtd zrpEthGBf-?n*WRQUz$Ah|1{u#HRwOR^)L0iyZE4a=>NOx`Jfvid5FHB2CjvOyvq0W zdr9Npl=}Tm`JMl{rUHP#>?fp0iva)ufTW0^iaXGGCPWUd>dGfY!S7fpNFt&rfs#DG zP_RM_LC^x|a7uN+$3S@a>q|2XdZK(SA+cx~WN1kaWC<$JNhabPVQ>)YoWu)%cm12~ zR3>*lcRRP%W#>_F`kzcrr!mh{r%lISl^CKL<{Pi(AFnQo)w-Q|=J`=|UPyf^<3KkY z;o*zDq7|0z6M;+3{5!|0uDXYPS1ilzP5b&VzELkA1M_9k_ zhs?;6g)j*WVM})@jOYTn?(A}U{4F_RS@0X`@W>8|({7&)v^3!P2{s-!tIK=NE;Ywp zQp(lH2}eo49WW6w9@YX#&rH1xL7g?9)VyG-cf9A42p^;0I0m-{eTVx~5D9^pl?*e+ z&c%#d(vcrfz!wgG+HQNeycg+N&R07agD5FMqiwnz)e?o_dGNw`6Vl85#E^H}GvyX1>+2+HC80^T`C$b^DENBY{;1BuQ#wsqp?61`!KeMVPAJU&7sn zV`9kL*CyHdil4+xa;yF5QAn+QQWF_RK|71as5Zug^2DDene6})(S`h{us!iO82~n{DI#(y6G&2r1v4T2e?Hn&|0@fZugTCwz<3WR16QT_qXc`A>uJ+dttu3Q{>z6M@T1~nY>?1odG0z9<1>Af2gEjY%0m?XV^xs>D zw`<|c*8R&sxq_TpnE26?IEmrx@Z07T&i>+slfwK0}^m5tt5ySF7jul{|k%EHeEae%(i?(Mok zMb9-_+Ae?XNTGh)u~tH!dMXFpSfRq(nxhgQ7*?`|trSw)U%(_=J7llG$8V6 z2mZK{PmKA+62N4BybLh~4%Ev5e{Qz8Y%OBH+vytC5Bb*yZ6NS9f4+9p7?XjdR9ZPR zvLi_@8653&WJv>lt(T2t;s&1qNH5Lx>gcYocl8eMPh9O%7JuRlgR0l+nskd=J#D^S z+C!6y-LPb6!+t+&SVFZ%tjZ3yu(dKTd>1&7F9*tv75?0qZ>qJ$7UqcB_*U+#u;wYp zo$xNkfzCiu4G1r-oxltaf^;Cpz6Sg>Nih8O2W-2yD@k{^1HLJn6}nRc464m# zJnbMzBlG8ZJ4+?4v@8n4!qB)8u7LxsZfvNnm@!_k=BBDxrb4;-mT$ke~Wz**pjO>%ki!|ych-oXo8=sy3#Z{vBMb=rM6 zRC`H`x3$O6#4n4INyflHfdhd9t>u6lJCub={n4L0o0?4;nJrkpzp)mIr_z?cx zzya&qcHQtsCrz06Q4Po)JyGn907##LqaB|c4Z8OidL7yC21!?cK}wU(e8)5WQ_mpi zn4F$Oc++4GSRd$aYTFHFTjuDygjA9hq3g_rzFbd#&diuL3rIiciREsyY6#hhalmZX z>zya-{XUj0_cQdDB(7BVEQ~wV@vEnXrkyw{Y~U1tWO4Ckn9_KIRC0qvaw7+3>|MAv zfCJQnFOjq)Y+V(k!p4yeQmYM5Hr#n_e8aw;l2?ZV39`^7;yB{2q4nu#)kVslTF^_uy=%p zr-9m=0|s(f5QIfRW9rInRQVmFG08L})}GQXYz}A$6GNnd137S@xPUAhQ@kC=f0zBZ z#+PB4*T2t3QSYqM2%FsUm`sQ(k9e}yeNPYP zHnUi1h{i1QY zP8cyD8o6=b(mYkMo`@Vu;+aiYb}fV~{Odmp3k#n!jlVZ(Bq@clrg8kHU0eUiH5CRb zi_pKfXBn>Xe8qpqqo98$_3?PP@H=pz90y!GtFg_Ni?_SKi}z1|{w!Datl`SVQR!V6 z7bV_(`|2+3CtHd03uS#X9%GhvoFz;=-mJeveP-oUAzUNtqPm=f&|Q!Nog|W01|LxN z!h>Q~^+JmvT&v>%1G2MUDt@N*(RvMrP8wNVOl=*S@oLfXHPNO2nH&A#kp&&_Lt4iB zsO{}Gev|0Ty~jnH4epy3to(DE@RBANGG+QV0LZYgD9_8h-}=%>>L;m=@=miS$LI6A z7Cu=0*tM28>iNd{vRz$V-3(CH!=LbNbsPxeeRcebhqiv01V;R4{(U?SekZ+8dY1HU z;*j?$cqDIC6Wdv1CY#%-DTndMB0F?U{0mA8%kzY%Ov-lYSUx=9P+a__QbHH4~$1Mu5;&Ue&FQoU3YX9%0l0lM6J zX+G3S?N&c-2%!ym1yU0VZOG$CxJ~B(V^0`w()p9+jrBo4EYIkNwNky`m(mSjvc!sT z6FATy4)j{TX03)&Hxi^K5o{z=S(D!jqy&C7bVHR^n6*&S$gkY=eDv5$%d6rYb3OKw zKY7oTXz0K`RehTpI1XS4XbTHh7sc7Eo(VBE@$ka&+OGpx(hWCH+N!2$(zO6dTWs64 ztqSF3hW1qKw(e=W=hw@6xNQLkY`kwl(%mY__&84C{C;SK^`E8PTiB$l|4q{Sv}a)) zNaIX+9ym}p2Rf;?mZXr{PBMTQfMnf#t{lPIqLcv8!l2g;2fnqEx;{Aj)#$U=Ki5GB zRhc=35F7XF9esMAanase56k*Vws7%DFwT2>AAg=L_7EzK14$~D0Z68CE1&1IWoyq_ zW9+KqkzdZxceB=Z&k1MkBeaeB>l}awKa)0Hvx2|0aB0u0&2^~fYB?6d2M%Q7KqnxX z^i=?oNnFYC83V9yAK6WhT3MkZJ}$cZrReGh=hwu%eo}8ec)Q`zC-)jx)AxxVxyi3M z``N;RfJu`M6Pj(aCQX>U4wQ`p@Y?6M`$|j=w%FPDS5K%U0G}2g{UE6?q=j$S=hoJ` zLs{CD$6YO7%(-E_$*o3KgG{5bskYQpke=>IQ5| z8@=udT-vF6(?EPYkD)H&90|X>69?G1WxNicBHvmyfKIG#ZiL6NBzT_XS?sgY&!q25 zFRQo-bzcRuLeRj0bPfa{na-Q0y;(2&NH?x_V`(JJ#L>>tzkXc8SDRs~V=+A1d`Q3O z@{_i!?!&au7YzfMU71wA?$(ah5O^w%oOv`M+E|;a%WB59UC2Aju*xbh`YTiU!{GNF>GEUfp~l zz3|mF(NPyYmZ;U3g|W>06Gsk+EJNe6&8_z!jcgph-Q1_>i&J3f>ZfS$ zcxKZ<+Fa>}_2cmG%Y`ZT&W|JXL7yApK5(Ea4rBt7*h{*}F6`h{#oSDRnba73ySX$H zUM!MC^0k z+ae>ai~&fdaVEd#qV3C%g?DNZ~*xAj!AEb889*>wRpFFM7Zt8XL(ET=rzN zc*WY9xYoCKuV}9+!=f)9FutbmJAC9OyW)(KWrFJPamo)j3F@CPA$4Ssc)ebKW#@Nz z7WmeYZ;kk6<4scBz0f*IdeOt5F;+ln?X#Nk!yk7Fv4($}$pN>Kq6EW+N#nRq8@E1D z>^h}!rPA|wuF8F1&sb&oh^NQzw0@oxHarU)2potq14(!l9PZ@YVl zG(0+$p`uM>JQI|)tClxjmUjJZ8W4W|0^faZ)PHY_;CM_tXN7ESJS|-OyYRby4#4a9 zxEeq~{d`S}0bX1Cwku)n-mdn&{kE$;2f4MXp2&;Ka49pzn-=CNo|RgDcj9p^k%Vso z2Rd?~dLYR}7K zKl8_+#^fNx>T|%gd+$N8kMx+)fLoipn753q{o9r2{=J3c+K%%;r#X%J%FlGT4;)D0 zKo1!2s|J#=Do7<$8cY?Bomy)Tl19Rs)oa&Bw?4HfI_GaQtKd{2=ti1cri>aG{ruRi ztNyn1L09b1Zc>(nPlYHP!^2G*&S1rSmUvz5O#n63a;*CBaYs90L$G=t*760N7qV_^ z3+U2SH|^M`3%Tyv|GII>icsWp;I%QNF;{pF6)&CIy}hG95XQfDg}SlwQ4TV1{o4I* zon9roO+8KU$&a2U7KW zc9#eXIG?)8!qd-lSG;#^K9+HKAI6y&Q*!=ke23Sxeg8^Q_AGwiRqKWFc7?omm3-1J zx(oFXp4S8a*d>u z)zAQafBY_+MepBzwEK*>m#LqKHQ6Lz!uq~*b`o$^!V z1M=OhyjPjEZV}vXH-Xo!t5Vlr=%}LNrSPNpFI}7GgbV$l18b`O!8{u$cpLZ{=Ssf6 zZB8h)Wq4jp!m7lz@#6FDR3BF6d^s9o>xvw3ZC(F#r}mvv4>bcx;tOChg{zewcOxLl zoUwZCx@eUEO9oUzYl@mFyz}pMAD8^*(VSUCe=XIaN<5>cVqIr?NET0laiPOJH~yV;Wxr z@ZQ=psac!0XZ&_mqZ@nI_*{h)0tcGM0oT^`PY>A~uM0?0E4^S;*x}CJKpAAaNaLa} z02~2-%OqV~ymF0GO`Wl5RWwU~GhbOH$>J*KM5i1BHr=>ybdkKRBAG-|dD;E*qD%ji z-E%AK+G1$`=%V*djj)vjp#JQibD}>AOqL_&DAF7!@VVu%;@|KA5dd=&J?9;NeY(Tq z!k0LeV@f-}3*$&*YR4_?+{{)Od%DQ@(->y7FjlId(!$vRAO%Vb=iU=fT7VXouU(Q( zQfURbz_Y-&#@CXyQA?>f^px7P>j!1pxP2F{`EVf1xRXyxAr|9+^?@ET-qZ~w;adQc z)_Mw8<}oC81EglzyNiJo#vH&NDyWO}H&cM|sd>wzC+Dt+rY%?ztrW0KBS0Q1rAYit zwGqzqk&7_X=kvW=~%4kztO z+3%Rw03JyEU%_4uB4enRCm-KI>)JqMZG0)GEB=h9UpGpOL@dN?nN55fI^uawg zFTEn3R|VD=NQD;F+WAtcou|JA$}jiWX99=;o$e~I1<;HWAa(Ml1EV*L8yxL8W{{J7 z4js@t8akj)RI;y(f7C|50n9HfTq#@BHPH~|d5H2pM1Xi;Uw2qY8|5@ZRszt;z@!?2 zm|AN9>NPO0j!zh*Y%$^A*AivD-`A36SNjGY>Hm(1#R^fZ3#$)%9Ip9u03aD(2U0Kg zEYv~%JP$Fp4+j{BpdQrDa|4n^&dC9fMvET8Ko;?f1z29uA|7v~kG}Y-lismjJ8{?1 z(dz|H+L@3J0v>UQ^ZbI9(E};qk?|j(I9MPBRZu|In4$fmu~Ii3CzVmITj)1ovJh#W zbm@~0>}3g$ZR3aEGA4TWPMc;4?u0L>;R0A^zp^@-CH33c`oo5EslYyesOwUGp8%DU zMh*8YjI2etK_fn;ImE;!&}^yq#>J3)H4KvJ+5<$3hM*~_B) zW-g1Ko4>*pdq*weKl;`&l12_{%fjRFbgA>EDz#Mst@~yyjqabhw38RrjnoMS_ut5Y zD8SUj5d)&BqX#;bQ0`5_SW6)RlBfLc>F8zgFbfTmRQL2fw}{@k{fI2VJBBF^q^vWR z$+q&Dc`KqP<}Qz(p1<7HACgO?$Ve`IqI_FR?e&f0H;Dk1=D252MzHM1)r|XBRkkZ0 zm>>P|(U+YqD|NQZmV=|+w3#tQ64#L%_i-BlZI2~_)GXiT;uhFy{7h;+XkyEki8aIq z-vhsEU|bEKxHfLzG2lZ9>krol3U9-|4dQ^+g|VONu=~&-8pQMvZQF2w_HWdK+I#Lm zasv+~oof44tL3)xmF9utnU^HhdP+d#j^`Ff4+ub-%^<)75PABZW1Tdpa*WLlf%FZ@ zBi>aXlFI7c)0e0mE1U|hw=t z=|N6a7ca8y*1Q43R|-u2;gJQ-#+5R#AuxV;zi7|NL!;ftBW3L$4OiaVc8nuqZJRl3 z6-|1cCPSbO9I*D!?g@*>9zqQRlJKv)*i8aDIL-pl@u$ZZ3WzN$co#1=5*+Gm zCxG#ZcZ_vXtafQTjOEw|Vl#*x-M^k+65S&JiA2!IB#(f{&1BoS!ygdf(jW21zDS-!)=B!dCTwZHGngQ2tSYZA+Ec z0D7#->c27opw=3AT0bwlLkw<_(~TB5l*h_c(xpsWy(w(ac4&Mnc6Fj;tQr`DxUUBg zH9ptvp8|ZXmWQ=`)Bc=j-yFKJsF=NK>#BWAl__Tp1(M{zx%^-!unRJlF%an#&S!2G zfV}0YMV;*G02dQS^pE~W60_GydY4E|?$G2L0EG1PNqJoT$1|@)|CRlt*#t7K_Y+7Q z;hf|26L=gH?ItzI9VAi3iB6*l`^8WG{<&zn_?m^V%lzEFTSj|sH8e}`y24OZc&kO- z7m4$;@>Gi>8^Eu5f`xxW1iarid5H2fESextwy8jPy8uc6` z$H;ln>$lk0IYer^jry?Q^Q)}(dz;w0;MiMxq1)igCXe@3m)P0`D|`mCu0~97aXY+H z8F*=h^6&My?FPD1rn}FLIofe`R4i8Ddw%s>X>6(VKEIrVn0yYD#?<1&9yaGT97r0k zyP9+o(104~e`YL;u6c02bKGKOu`6u_Dc-4a1help`Keu6{Iy(Bzs2#-V{*I#kU)yc zf%Opi-K2lPv+86ymDyv`kZ9K}H<9gJ?^=?o`5WvKKmCX2qGx4SnuP$8U)+Cu^k(H3 zqBsD2B*6fqC9BrBx+-Wl6}**FR*oSVAt_v~YN$w}XUSR5U6SHDJ5otdUlyqJrIbiZ z-zq@4kEErOWQ)j|nXR5TsqKZbKRx&Fv!Z)nSQ0U}$B7Mty{8O~-nGLB=U}LI&_*I4`&&c7^jxKprk6x{)~Z)$t^6Nv-2#E zknp^#Eh5M>?S+3V?{>|DCwatS`LnAVsrbQ&?r<0!b@hK{^Su+l$+@2UBaj^gr{W z8H>_YFHvJens@erwie^`KWuB5@J6+=ivQ5`-)0G6XeMsL#BJ*y+R znmG0lGoMMvh{L z*t5dVSQsy|lDcalG4DwqI@PB)L8*B zFBOmRxbEQvC0j$rj)DC)ipCA=ucID@Lm?>Ysp{{d|W$?8o4lux|0+^M{pQzL9N-#kfnh&zsmwi-Dw8YbsP z%_eyD+=7+SSvNlK>?X^l56d>+q@Pr^M@M_eD=h%N`)VJNP;)=AIE-51kxk@LVD(2;1kj#4 zds8EX?;ZMMYRJwntj=ovzH^K{=ZWzyUg93e%Z@rn&CX04Sk0g~UoWk&RG9Y>Od0FvK7e5+`R z$^*3VqLi+xdRTfIiWQyN!zW-)30LZ9QG? z0+{SvN#&m8JnocBD!l6f9H2d=4jcy7ihM|%?}`hG4nY;CPwuBZ^8;48FUIZG78W+; z8IKe5=Vv6`*TezWMv7ksKG(#;nm-ETea)<^`NP!lP%-wvF{S_{Rq&GCV$Gbb;zOG> zR2hX^n?R@ojY9TUMU=G!1w`W2^n!oRan5zJ#DP885puBeVR>rpM1F_%?>hyo{sDQN zy?9l0m%!KWC52odXD?81@oJQuq)Z(>P)=n=I;Sa)ht((1urC0+%LQhzb%b6OkUU2o zMQ@k=UKScEVDqE*Y^7sX1~~Q6n;u&j{p60>4v>wIP2xyN`mjyhd`RDDiae)|m7U)Z zrGnN9{Z++EFUHBb8rU?zjLA{0Bfg zL+6NoP7aQ65|o7o35*}N%cjn&D?qsA6u@NmD#&^4$)0cs*{wN1yDCl9rJG`r8O?YW zzZysEIluk;_`P; z%eyN`4t#|lIF!M`%XJSe&~YS73)7s zwaz&L!XeE}Nf5Cags|KD;cc@8xE7^+-SIIFgU&x{isL-Qc&FL7Z_zRYE z#s<2=|9$n`TKT zv8TQK{&~@5_svZ_4y4Gw4i_Z8$LhSvBX$}YAr)>dsbZT^d95vENWH6az#sd&Y8kTR zn{v8I+6v6I5~=SxvatM4`re)wgO@H@zPB)ZWa(H0-n%e{7*q1SGU-8qzXd)t>tE|e z%}Ot%Qyl-wFd~O_f0@|Z@>MS#5fLACTbogr8~vkfmHG%3lVjx|A>(+DAIX~~$7N(C zK)`!<-7Gp`x6$Q4F_zYuXTa`k0kAuy!g{Sh-np@ zUdmLc0RlriY`$@{%ecW#5;$6*5-Db1@vzZE{h>B}?L+gU$8}vGbyu1OQsl{-4v3CZ zTiUrOoosYoNOz6^Eyu2)7Mzt(6+Y>WqoYG*Z;SnH%PB}E%U1yvUFWz{K7sJI69;-C z&nYv1ju=brzWAtk$i)|kxipn%h8B%e-=`tuVD-H|eOTnHcyb>xF3p=4vA z(cl)4|0mgSqRMSY#FQ9R=4Pm*k!S3=Mf46GY2xze8e^Fc8vQDO$wqTH#2+}2jRQ=m zK2R&&XZySmiqY90RJf0mA140Zf5&(6_dF|x2@ZE)M!w|MXo`|G4{Q$991i$hra3A0 z>{Kd&NVrqSy1y$kxBY>n&t1PF6DkZzBc41HUb$HK949Eh{mQ~vGB2YF3K;v{{qtqhw%WZ!1rk-redPePP4e_2@ z0K9XRUu;eP@ysjHqmn|JSJe%rilX5Hl2?3SdnZlBUhdpP zam|jj*0NRl4r%e%{ybfdrLvvjNqjWr(KLZ111~`wxg0NCmhxdU4 z&EWv^9e<7(Nx6?-d0Flm@1b}YenUxdW_efmy7WDt)HpX=OyL^ifYp8AYm6}s{%KvJ z!O4W^#Q|&Mm6*{(`#{$Ml71z66)Pi8ClSMzaI}suU~!&ANcnDj?B(cJ|9&Z2>wTXT z)_;Z+=53N;xTX7%z+I*Z_U2P zJ1L%HISUd{g4FajIhT1_s>0<6AbIKgwsSUucoF^e-7iMhNZOi(`1ZFaZYvwd-tK(Q zOYWT;{qBLW@^L9EjSCe%7+2yJuq`=^v%D{C^-Tu|3%>~68Wt+8yKCn@3?4!HZ(d=vHjEZ zUy&60wYBS<^f;v(cKEceA25!;K!F2+1DQC$9D`{=R-$(e)TSlo6lKZgQ@bVxCJqJ* z$iFW@b7esh&}t2}(S-san7rF;Ctj;I@pyGL=lL@8+a z4VwE{ce1|AO7yD!G9hXwA01ipp1GXGF^zI!Dphu!*q}PeQl3_Z>AFC&$TjMCp`?rt zOCp8}-Y#2i(vhFVMxeRIsfd2>Z!_ftCVMAgF^q$qFCRF;sY7;*JmFUj9b83lK$!Cg zFO{_PG1=2WNOrc=qJ19$og-um*(xa{YLJVTza|^awb2}TjwOFj$obE+0*?TrEQD0? z;uEK80`KD{{@)4=UXc+D0wgbg|8}ku7eMGs0-^J>BwH~|$zD+)?)5r41^dZH6Vk~U zi&jOK-#0IMVAe7xB`3}PTCD9OiT8Wt6?lR?)HX`82M>RB*NYC!GMHv1+fez$o@0{L zyA=_A>sD)&S4%%?Ux*@f27dX&WIY3v(tOKvoSqT8ShqN~)%c)x? zV*V@6xs`#PA0x{&e=OoR#IvM#g|M$_D!*&`;^?`TvHLFf{f4*z#>ee4iU)z}<$%?7 z4_!dl%f6bww{B5$1j!!~?JM%dalITGW~DwFBVH##2Y;n5Xx%q!Bux%Svt6h)?G2As zFt4)qt^Be6dBfPj(GFt_7ml7{`*i=gZ$qV1RjkED|>Zt-zm&$`^7Q(*rN;&EQl%N*-tAD>3U8f^Z@+3ey zXFa}i2iYqQ?cWq^f~{mh`uwuI+OBpIXr$@X`v=~Hs_Vw?tjs*iNnA8jJjs6b=IL%T zpqlvc|2UXWvxE8+YK^#CE z;ocXPMqm2l^O;M{xcI5P$7wTjSmtls0Aq7u#jk9|X|qcFw?)8nKTP5NRgIzN-99_I zr3!G&d~)rFcCd)UwH^+*dRE<7wbc_>_%=HS;Cq$p%q)?!rhY+dc_j9U}z z7IQ-B_x}duGjrxr0)hz;gnZ=6XHr6ReoQ$}*1GKIa#)}Z%i6gl`9JBhK#~RzsQJCT zncgqYpkF^^f@}yo@0!w{U)IjU1^;|8^Klc#W_BR(jEYJtji@43*|{kL!10Dh7DQJ| z!nR6kqqIXD>g*w>Fz*w9MOC-i1Q_7FLDW_M`s5-lK9)#bQJJlS0FpmHZfoaZ79e@m zf9FRR-ILApDrYWU{lV?sTm|^z=#Oe_T(f2ypt_qt`$@ZxcGBl+q-pSMo_NN5%5fuE zzh!avumJicl0-ixDKFAO+5jGEPkz(p(VHd=X^0vY^~vVN4{n=Tm5M9nLqhy{skpvT z(tm!(7ZH@wZ_U2}rDaW;3y`$DmBs)bsL#@E z+kgU)%(oJ{B#@-BqoVUWEmm>xaF?BGInLylk}PH+YzD9Vz;-Su9$%?T>a-Drs_T?d z1EP<;ZEUooR2b6iZAqJUNIT&=bJ0rY#0dbouT+syf5@te%=a%z^7|VBYa|AC%nNG3 z$L~5S+F$Cffa$!+)P%3sMn*Lo1@L65>?OaVzA<`}&iSG(&(bE(=WdwpaNX%|8zay; zSaw$0jA=%b4qjdJZYm+ZZoq-20!jF#aUfb>&h&x7fIv{%ec^5LzrAGdxu!NCsg237 z>6FaX%ulOW?_`cM1Z*h>Sc~KeB>mFRUP`3?-i)wg9FU};qn3A> zBshP5a-o1pzv$e6y6+|M0s$(ko1F3(X`a$6Z zi*}sU0348}LI4mvh#o6jy}h;`*7QC`_R)>UTP%mx&skjX7F)=1{r?UXDEi4!Q=H8w z;1p*wKhrT3m592ajxUpqBxK;{?@upsM_3S7H6W-`db|hFPm)d0C-)lb&Y&a@Mhu0d z$x$Z&K923+7>_%rEsm~wV7_ac0IiP+JRLA~L{)1Q4BW4h-6&FEq?-^1?C;uXWOStL zCO6MnI!&F=mqZ+u??>h=bAZ?-n&BS|&JWvhMD!u4dN|{A7-M|WJ?DL1rj4G<#S=CH zu&dln5=^B0O(81Huehcp+M+~!-nS?VJucZU$n&NHNoy4A3{2AZVI1V&7oK!{X7BB4 z-*7eN<2a~B)mF|lChDFtM!>ebsfsmE-bwe^_!`Xfh5|{eG|CXCCilYtB;yrO-|sF3 zBx!#f>W(Dx53-T#D+$Me+YNU%9C0?#RB^(?!S}a6yEy(j^*3|N5J}Gt+IDz!s?_qz zNu-<@(KS&CbABQL^67rY!~yALi)u( zy7r?Zw{ifD_-|5LKe;0tkQ^_t_8WO^g;)$dF2_nw$l(u1qb!hZ>^#-;5;+1|BCoxu zIx!g5OVs>^}t>vCEw%+tK~iPWF^X-_ZiQq<@0|@;y=oMjCnk z(OXycc4!e7ukhwCPb`w^@4RS^HcY4+Yz%R@bfWAKwoqPZqj?dVEjUj4(LZL(WAKU% z+GrUPKwbHZ;?En$5AGD2ff^6QpS*6G1OHoyKW7S<`! zAPd2PP5So{$nGrB&GLOIj5qGUb2d1ZRpFJh6pwDG7tU7A^9UOFLO;#w1rUvZu|xYc zM-|#Hd=I#98IYtSmX%CaVm`fvNIFwpK$1AyRC|Gb!<@{Rl9d?ih7IhUtM&@R3*PWM zZ^T=DbRNqYZkg{HO9JK00odM|<+&w7yK9(4GM-BsS0br^4J;!`1|XTp_?jPf86ZiM zTdJc4aI%8OPZ|O)yuWhL#AsKk&BX~vF&s;Aj=Z#HJ?eu25Xl*i1x|hQ7)gVQt(g~b z@;kKa5DJqJ%>N9K@X+jKlEl4Oa{7ZL@{O{~`|w-GL=)wyv)M#3I2MJ2>VF|sQ-DPy zh$BqSJ$!OBdDDT>YVqOElDhrywpkUE5__VFk`7*Y{L~F$#qaelpUSK1X3@%Z@+A9e z^q9`Dd{Ur@h3i5cO@dl;J%sdZuPMW#Gu}SdwKb|4Y4{gzd|qBx3r?HJA0U#Ahc{0e z>g)#}kd*oMXJ3iFdho=mfh74w!isYvY)Bc@DJpq+v+Q+0q;`oX-wI8ws$#Rid{EwF ze<}&FrI#fF!1hj3;r;4C6QW`2iycUL2GD%tmYD+9OC3nrO7-~Jea1#xj~cikXs5oV zlEn)L;|b^b*@jOGYfHV$LVVvTtt=mA3q#+=ZuiE=vZ-A674LQx0RPxqx5$=2S}5a< z-eW)fbDhunU=?SC`q2*5h8Er|(TK>4$kT;7>gT?q=0&-9sdhjt9(xjBrmCX>&O1ReP~yEXIIT#8e?j*kwhZt(o|dw;%!EZCpXKy!U&^?vyp2-LMWz*?heKoZu(=k!!| zsjVe9x706EU#N^FAbC}Awv)=IDqeIMAj!ab+cS$LIho}oW~>R36#e|zZQQXCewk^T zvt^_8)jv&lQW5`M+CA~%p7qI`y=Tn0Wlfgnyrs0Ov3Mch=JAd@a^z z>F5WDGif-4{71*ie46WH1`2=PLS4?(#<4mgfs_$ckp&296%T#Y5BPLd5ab}!_~mu1^;?cwzMlsU~+dk z-@$onHCHjS>oJLsXC0{)lH8tiheAcR*1H+ z%ecYOXZ9KA+Cgp;1Ci4Q-L>>j;dlIB+Dfs##9!6(8}R>kEx5jO%ZyCX&|apF9vJ=K zQCsJh9aOD9e(kfe*DZ`MnKI%9LPhy-sZoFQZFPcMFHWQxpStcjC%yL`C*D#mTgZm` zq7$YzPX#(LClwxM81E~@(300J2a@p3`e{WDFp${z>fiex)?p)gGNuy6cpEe(_&Kfi zo=wmzWft(8d$T#DBYw;v-Xq@%r@T4YUqrQeAUx|XG?mWJpgm;qqha;V?MFoa^Nz9h zC|vX40NsHm+dyJ{*i;~CWyw4)*axvIec1S8ak*!DXjktO%IUne1|aEirS{t{0VG+} za(3Z2{xZW!n4QM0v09{I;3>}guG;i0pUq};i4Dp4;(GH3^?7Qn-@ z=)1ShD)BY1e8AJ;0_NC#;(TUL?NA!u;KyxRbbmX;q8nAWZMEP=P1F&*rZS8?AZd@d zQnrW1bDS9=sl+?3_mv;C>^;@GnSk)u-Z{xRm?7{hl6HPsn-q^q#WqfWG|K$W?MF(D zbFgeE`(^gv8jp)IaOBGW35c26skNJrN`k$Gjwz{z*o9lLY>kte5>K4yXQ;U%nSN^S zisB*P@lYLq!yh(uzI*7zj_sIg6300@=JacyE7`F++e(3z#Lb$HQP=;Aw&E&1q2_Zw zE(G2_Gk;}t+Eq_?XrAQ?v8fy=T`ZODL9(%}i6~!j+@XXoY4hx)%bqIny4pAa`e=82 z=dj7uewrAbJk8fe&PkU&nMpgqv@^c-u1SgUwZ%h^=WUUnDl*Y>AW2?bpN#iM#v*&> z-&^7QXLet>)~(v=l2BYkSL{ocYAde+NVbyuZJKry#vYbdEdi3oa?02QqMQLp=Evx^ z2a>d_c~VvU!QW>^_s&>aD)}JUpaH@Ti8;fuj_|n~rX}e0mp(7uuy~m;qJMPQPMb!D zDy|OpTg66A)8;sgJDyt{y<6crodi;50%G!hTp$=pDqdQRP|N+&0TZG(PADFsU@vmM z0@_f=#HNtE9JKxL2yh0UI8*anNd*B9Mid40GE{sCgIX|WbYk0?mDm|YO?PiecahL> z7N<|-=}z(T>wkH{f1G#^Fxzp=#?HRd1@NSiQgDrW_3jvVJQ5ZfH$VQeQ{9~*NljKs zn;#FL>n%Ez`}6x1j)AfKf9KX2sf%{n751*!z2d>OL%Z@LuW(OVcRYurYo@C|f|H+j zNaYqAUO;YEBCdzzREIU&>m?Z^k8uJJvDxvBGCN4{=kbc!7BIBC82 z!D6YSe?k(e84EW^$u?2j`n1lbL;a~t*YRS>>6ZRn?9-(fa|DzeaQwl`pDuabEv1oi z!x(Um9EBmRuZbv2k%9DWRH{F(aj#Y)Dr{LVI$_&fB!Yzvz*nRH(MCcRV%#`V5|vYP zl&EA$x2iCVKW%DPSE(Fr0VK&}NyU{Pj6rJ0HB$XR(#F7IUux=rlwRlnB-42l-ZYK_ ztod3BBq^F34wA$n~Wi~@}`#W+8#)vdWi#*3#1b2H!U1} z{NRX!^A^A0G%#!^uaNi4a>Vq3glwuDsvw2r{Jm6SeV8d z5Q}mgvi#`wSxzeE$Il|3Gywy62({_V4^z)QSzIJlHyrx>Np@TC?(_R@=|COta9Z@s zyIzcLk(#DY@Z^vkMmoDqR1>EQ0N~h&vp6de#Rq`yCaK1;;^`FGLr^_owEzG>07*na zR3;IC1{=VyNUB$f0Fp@du&;Cr5DH=h(=sgTSU^1{>EVTUzvMuDEnsr6z%~4Po4^l* zBZSZ2@O<=i(P5H%82bmnK1Cqm%)Q47EDWl8e4(E3s><;kSKdFrgRL*%4UfVn>8w$X zR>?xd$ELz}Z=I>*az;z7TIV|^NG7fATrTgu0Dd-6e748aq8gCspL^Iu=f$@0UQhM^ za`ngfaV>yqq_*EUWK!#F;V2}3Mj6_X1x>pm@&EEo(;Wa$3*$e>A=4-K8W-(1HKR=; z`L!{|zgMKFpk?)h?B^kVPh0vwN&j(pQ!g=oWVMARE%@;%Z7^V7(3WKF#p<9fGnt;L zwgHmx(RkS@yNo9EOS@VC|M!Ob+HE9JZS|=bCw1Ef^&5bsUpL{tSsZ8!AZdjyjuBjz zzqVEzv}@hE3jql0*Y|7fQ!51^Su5v~ziVqCNo7x$eb`wyPVb<4$vBTX-G%R++Ci#9 zc+T_t^dF`=^+<$&DDR|?%Q25v>@1%L*pl6RNOlB!6)bNm22J2Z)6L{j^`~+RE|U&l?M` z?@PLm9VE7vJ4tE^NKPWkc#Ay9Ua$5)W6|oeQfVhm+8L?j=20(KC(5k;$BvXUNq-P? ztW>b)+0?1H!lRZF%%&188?>t$2++*gsBFAsA$Y(UxY*!kBJyc@^Y8U>UgxXQ7QP^J z0VMGC5}SIz(q`4~b!Kc9ViW3zMbFMz!Z$q(<4=wf>}Kb`nsL|i)-Z6-WLcSX z=42yTN`ii0>|@r?O7EI`6M$rM`5jUKsz6o0D{z2r*>Z`bvcmL+v%V!->tIrb^zcEM z`8+B!C4NsDIWYRwaYb{d8Y+)+28m=1j7#~Xt$`$f2V?WAW$)+{fb4BLa^WlT7U>fb zL&E-AlBYC6l7lMi0o#s{D(gtu3wB;Ks*O3PElXdSk1G*Ca(Ai!e)F9ZI=kWRJ@Vm^pk_1N<^Ex>-oje zH^l=~j*s7Uv;z%na3tZmwdzyP&R?!GAs0lC&3)B*!%a$qY8We<%^w~yS#krSKfW=CHnGNH%@aZ z?DfQDn-geh)JsTczos*Maeh^aXb;$mbIebYl)TdS4S!F&;4cTsb;I+Tl0aJlN#m!> zE4AQ;lE#hpxV9~jq(LKHJX7{ni{#wICl)&==uEv6cH1D@ zW*R~T?{n8ra~;7C&pnNAgd}E2hmZnnCzaMDVxj$_R9XKcd(5l|P@1GV zNd)m7z9mA-hksuT#5r##U;b37-*@=7iXZeh>~9$}>Lu#^BUe7{#^p+JF$V6U_WRw# zCRGaBn)gl`sYYsb(3)J-m1oj2j`tksi zOnIoa(E+cLyKn$7L^}q&yg^P?I0zoqM|kwlX>xM&=NCHd{~}TRgxqxlO70dgxaN~f81$QN4VY}z#A<^0UZz-kk7=UVt92?U7JR(@JM-lAMw@So#Pa6XhqusaDvPL@3(>W@gSAxrnN|IBlTMKiEY z5C{a|(pEQcDLExnpKq4RDr&hbE@>;2iz7||?PDYvg71!Ov8TM@c%D5MGoy z?joz5Yf_x_Q@re+CaG_|#CSDj)PU$`$7BGvWfFs3oV9wgoDccx^J$;hrou<0nbCGc zVXXc$w1KwEe=$RC2PBQJnHfg^Q(bseKah;aX}`TIw@t4103^Li4!2F?Kr4VGnuouT z2?QoEwEIdFfMg{OHUE8E0!gL{j%zqes*fBW5GO#-`A1K2i%@%q#N=Greqk4A#MqDB z&FciMz_H*zEX(Zu&f=|N-_LYiZKW7sf2MB&x{~iexAQIKeak5#>N^apRCpD*Cl?_Pl zEmhku$kC0F1CeC9Ml~~deb@BG?l>9lt0CIM+48pgriq(453m6EEE1?nk{;?Z3y8G5 zVvl!;oJ!pw$u|QrZD(gWCHl0^XaoqBBT9^9`ip;j-bp1bEOER}aU3Z?IaPpkq$K#g z))xnMJ`&5xC++A4NhklRvp{ES7m2p$pkw9fWs;w4pAx`_%@ydL| z`{qyplFi|BNTnkOS^*@}Hkv!;Y{M_QVOy)VlGP?}JZ<1kYwp?-NZN#Vwidb@mZ${= zF_e$iLix9{r7@`qYbzYveC+C{OCS)NvMqFmAF7B)%cVR3AWkfRIk5g=9f@$A973S# z=MxeZj-L3I&dB5Z$Wr4-Sj+*A@X&gWKqOL4+7Sz~BU`{&#dC>1l| z1;Eh`b$Zh71+{8`{7IKSsRd2>oiy45o-mO<^@-)1=2Q)cwCrFPcmAETqkl-989)rL z_LuE1s-j3t%MtD6?@uq%u{5(gsrb@YI8*h2sl%gjL;E^!nl3IH5quW`6dsbD?`4u) z;~5yR2q9TITt|Tb4vmnY;@k=Et#P7{;g$E>Iy=z%b39B}`i*t~=YIa_@r9YPjimZ? zsf2TYcPe>&Pujr3sSRi5a&~SW1i1aCz%4f2wGtX7*C;=DO3p&G*YC> z44sodIxv4-m~3AClIGQ{)G%i|mH`9l_B-(k-{}OMsdgagtF{tvJPoUB()HdosT~9$ z*}1O6lg4u(0LgS7BRDx(N1TBtGEo$ruZUcafc_legh>jESP&&hKoM`IwxWRmrXsRNrz)I#4X2PdV)1c7W} zQT%|Pb0rP@x$M?h)I%)B57y!kX(oAg6#K655aZ_R)La1#&n{RYXFl^v9$`shl$@Nr zRcfH`mHp^QfmokvSw#5X+daI*J1b6KPLhYtp%nm&edk}R8Laxr8PdT5HJ_9dAgBZ; zDR8`E{X{C~bhN7spVQh~|W9^+hL6 zjqqgKR%Ae@MYeKz@}g2dOiHWqK#~T|Uu{%BkfilNmWTN7!rM+@lE-z-KNf4+wXJ|; z$|hi1-s2Ab(!z!3?Z<&?)@GJ_)*Nx4CH5}MwPuOr@!J%;t@Yh3sTIOd&W3qy^|R5y zF~U!#)%R@&Bxw?JB{{>(BTir9l%yi)7A=yj{7tHM*gqoSU@@JvFlC`POGjh;TXuk) zyM{z5iCEz6CyC6bbOs=HLviqE-;m#Bk_=t@@cihv_sn(E5kMC3$*~?ul28}O<|}>T^gjv5`YP@KBvCSOTt=NnM$kF1>GFbeYZutd&S-ylhQztb;ur zAkq*wWyy4uYrnh zpx*bXkdLH90OL5V0Z3It@r?`?@p!j(3;j`7pJu zDYDfhZrU#(vR83&P5-;@;g@wB%F9mbO&y=}?yX$;h?90OO~?40DrtBUA>}<*67&yf zx38a6G^-)0ZBSe!o&oC|L9fEMDuj4P$eS0_@-I>8`tOL z(fZ@E>8+KJmcxU%mPb;2^eNP`zt35*?L_dKKPaX}PGQY-cGeFh%O%Qa zY8}w7gfHInI-x%jqFxF>vR)2`?`z=zb9J-5w$=qCDJ0#o@DDech;jxXnTb`I0<|5G zWPzXNG=~x;?cf7A&k*orQo#YwDSM3Rra z+A$tR0X7^{L6Py$b;56-NQ$PzGgsd`j)*?`mcm(kugX32cVr98Q6<=Aj+6Q_wtRrp zjkSru6<|W1%Ml=oV^TgT_10=gYu;$0&M>-=-7pd5*Ng{ZOGnhjK==a@b zxKq*Xt9Ix23Hkxj_{+3e!O=Htw~R{xS!g5iyHz$}NPoz5sd1nL?58wl-+G5!p&eP%%$rHAs*g($K zS%;P$^#<5IzIZ+zVUNA&@rqetk@+5}SDvaeLL6Q3zRR9=0FK{O3yy;DjEey_$E&a~ zA3Csiv`POyt}P^i6WYx)I;RLpPBlb&@cK8hb%X$t*csyNq#EK(%7di(jA!C{K%}L~ zCd0Lg>vBn)al}KJQ9tI$85~Zf5v_qu2JCe2lgHn3ScJB)gElSRD;v@6WIG(U!(^dK z9N6oPRUMf6FKJ_wda}S3*CZm3KbATy67Q}~s0?F&JFNm>vvT4*3{SwDmGgR>G6pfW z-K9+gyy8|O#zpLVeO3@X$X{RnAQT>GIN>}SWT-_NZ6 zJ58B9pqJPS?nSPh6mIMNx2=Gr)?(-1kxf;fatGDcdTU?b`|U7?=(0w^^03QEB&~4P zU+s69E9Gp8MAGum4dxFkO47CMfFz4rq(tnpClQMd-#G;fDeSXwR`Vf&4Wv;<4D(3F zIBMd`2j)c&WH{~tn~+1K9*P_KPAaWl=jImMwx8+w1IT?(>>NGIPnIhU zJW0(JHC@0L5+~Xuc6NITC;%dzx?!2f%_++*Pi6-@qygB$-VJHN+vPbG$q~eY1mH+r z0em?$7RM{tdM3I0=PUAy9zADxLNDvvqc41{G!?st3IAX-b&PCXKd^h@fb_*H)<&nw z+v{R2)~WkAkrwLB+sHf%kGmHPCK9C9l4p$N=yF_UFkCeZq+9 zfj!b`#u~IVvQR-4da_iZlh5|e5=ZV~O43Nh+zr%P;ZIuvNiyd1n%`AW?m)6!+Wtbd z!_?#bpzm7$Ef-gXcL7LNU{H5{?b;dbsQHCtUDRcPB<%A0Xc_iV&HyCKFsRB`Z3QH$ zTqIf_x#F2rH7$14?f3=C%H;T*7QxsE`XG|HIMa>Y`b#CH;l2{}>%CF5yN-4E>^@s= zkhah;ZDP=^b#A0SH%hvRnkhk$ob5Mtm|WP8E4yf~ln36E_c)le@5l;g&+RMw&6DLh z6tGarp9S)+CLQ?9AEsqewc}HE6!9>MD(VsPIExgLqOZ{IFSc|X`S9OaOP%!T`GqSx z^<5UN0Diy$z98st5l_d1UT}O%ay(Dd0D^H;dq8S1_ z9AQB{;3*R+^9sF-M+cAr48K|Rx~mR6$D=J91caL=hefAm@Eq&skFwF$el1l*sFDQT z|2FB~)LH8Vk;F}z=12;R&F0gRwlWW)_WMNvI*w^6N2Z#3!N2BoIv+CWJAmn)TMdhj zdBdiX0uSua=BZPp(m3m}Gh4BP;EY#Pvy+JU@UZ*^oe$g9347pcr9S^ljSX3dK76XY zA0J^GP&OGRj63o8SV(8t$S?^tPJP~g$&*e^J|36ocXfxPP1VtM>Peq9M3)AV6yEw|8AedfrUFUJON;8&l5fN!hL4S+cWV52sR2h zdZ#Omzty%arwS&uPR5=NPQlvh_z!X> zAPLLS&Y%p{u$yC-&eOPZOBJRCWmQ}2sV>*VXg?N-Zm5uQm103-*R}wX%Koag0+L-s zwUsW8$qGGuBQ>H5Jw3+p*8ijrtfMa|E4^GlDBqtOkz;rmfMhafS&LS6{D-2UF2M`5 z#lqafc#s@_SAN`wlK~b+meU@_w_mUbb(peV& z*g4)mW0_Pp7dg8}%Lfzw;Qkvq`#V%?0RcGUK|Kw1IPzJJ7Rm9^`{lKjMQ1s3omY}q z&f>JG!BvIw7bi9hrVC6ysrr9v?urO$DGrtZmvm-Sfxj#jLWqf)HUh}5hA0>6r{6ea zV(Bv^P#pPi@x5~^mZ$WQZr~w2|MEfOvpHt+KQ41m*{+bfKx$thoO7;2GVt*+YHvSGf=F?<*%(=Cdh|Mt0(EP+ZVj#NGhY9cL|L}pa zlWXBm_iB60EwC0X3DPY5^(x&n2f2yfA45rlkJ9QSArJ9K)Dih${K-OW&iI-&N#76^ zS{Q&RuFLedT;u3~zP+6aKMs|Ws9k_0O_{j`ReZEaR_UJg0DPie*f@d*j9ZNVwB5uF z0P)HJNvZR<1(1w0or1GVKckZx+Gp*dH<&Gu2h?6gOo9e`I&KxzPVaupj>P8*SAk^w=QNJ=8vmORA6FsM8xyG~Truob1;9CPuSo-^psDc&g1iXCSs zFiB+e67?do4^PjOlO0qIHkG5UW-ot-7^&>Uo0d}*<*BcgwEOnNS36M2|&_MpJV_+v@zNf zo@23J1?=mUQ*}Q3rsrKd^uMcgPx(1w<&5IFmKL4`%`c@Edh-*D++<+SD_xl+a1upb zBAv{GDBmlRMt)0!v-Ks^p;2+&O-FfDA_l`N1hQ{Z-6tKvlk`24G-pm?PrI2mR^r6s zzLK^9Z3v*xaU&3Qh?EyE%O~k*5ZXdlAtbtZlAfh@SBdCXqvg=5{qq?oKHAt9C%ASS`AMAopg#jz3+rb@)3=rpO@ z9-`w$Y9W$Xx@wJUC-iZ&H)t~)h2pNd$FAIf9Q_xqi_OFb+9?i>&?4cwh0aQ4qq0Lg zGj*9-GN*4CudyLVL#7hJb2cUMJf1{ITNdct)>+!5U_5t@%_NCt;m4wdh4WiJOB--BHSBY@P=8?a2=#b0D)4|lQu9t}K}bOT0Z7l& zW@}plNxu^PzL23m1t94&uW)aD9Wy0NTONCHxoi8@=b5*RU@>bm);1HhvCY~J6PL}^ zuIT@~YZlS(m=ADDh$a@}Bc@9nfyNkxRtcb(u_8`vaG{0A_`SKtr->s5x{dmA>JP)! zA2=_ZHAG&-(lKu!Ngw^Q)jVBb@>l>4}%<3@Yl>8b_;Z+4Ne3h(|t zQO>-8B<*sE<{(ZYc>JXmI-h=pTW`+MIEVR_&4VmihsiM{a}Dhg+`&Ke~OE8z{*qjf`_C zSsdY1C=-~}ck7j3zWKOR*%r#Skxs=Q$7CSop)>9*mBcs77IG^!XgU|XV}QO<>MV~b zEqDvD0AmoIDz(?QNVOJkv6;am5x`IW+aS14!x0xa7y-P&%d7-%j}Qnu ze%H|(Y;&`IoDz;Q<7A4B8S+KB8Ms(vrb!L`s8(uVyiN{tu9swTuB2XBh~3})WxI=K zUK||x)0^u%I(p`l*QSFW>iSgimNQC?*a-QqJj(7rb%b;Hm|DjKX4WIY&~{TS-JqhqGFMSA`)I>$Yt29O6`Py843LcT zsZ75nXaJHM7-sF~1#PN7ppD@>pIZ_=HE(&k2>_r z*{u7f14$M?H$Aq{+3aDjwy8RR5j#zsEr|3YiRko)NixL_whSY{?6_OuzNZJ+;!XGKbzDTM%-6`3?8yu z_N)duB#`jZ2D?65V6kJu;_6_5xm^T2(cjNRL`>}PlDpy+$s*Fik6rUzgqmsJOHWDC{MgVwdlK2=St8UfOjpYaQmE_KYvFY6;gek*a$M3!uX@_LWhxs{z4_WZ zCsuUS!Wz$y@Y+vL{B;1a(;;>2hEEC!wFW97q=PM1O9jYAf?Krakx1T;`m2nRb-V zzH09Ql-tXc>D`)Zu+L@)61knQUJ+C_xy`(7JK zHN_fF(uWDp9FJAL%e0_jv0E+C9PmDix*zsCaRT(P;KRvNmZN6k-w%~^=5(pdzFiYT z9y_IQ9b43I{AGruHnQi{Z`Ap|F8fYwGgAphxj#7*QlJNCzv}EipAqn8VNr?Ld_X-F zKo-ZIl29fO@G3+8qw^35*g|H@Ns7GgYc=d8*@ zu|Mu~`j$#979Vw}FG)Qc_11DkTRK#mKxgQzMhLs%lQP&Rv!QW{B*aH}65?{{@Q#K3 zPh_+9mkdV@Ip8FtC7LIknVNP)RF=3Zg)!;ikvoraXQyTby774FFMp7C z?+bMPZzZBx<3#S48efdy=ihZk;su)DeAPXB?_b*uNV@vc=F!b^uyv(uw%ORKmt0%k zaYS^S%rF1|-2zA^Fr}qH(i>x12_)If#^(X^DZ&TF)I5nX_W*5BAGYJB5e@Zi04rr)+K0-9HTzL{K@8Atwf&0v>;=Gw-vW7o8ky;VEN3 zW@_LYv{G0@btP&lkOb)c`tBFC!?jRSw&89E-k60n2b&2z5T+5kE#EwJlG{Zh43h{d zO;lzU5XnLnyC2S~<1lzT7qL@%ETRoW>RxUd1mIRiXA1z&(oQ%74vuA5kY`a7>=b{( z0~QJBk^f9(VE|9S1-I z>XF`Ji+SxsFGmj+7o!xL<2o2v_uhJFw7=Ak@y5z$#*#ur1=wiK9hMcSbYl+^uSh^Y zdEK<=g$lMq0R1!Hu|>462FMMnt@46}?NU5Li79Q!6@xsgVZZqIoSG&j>=ih61u1l# zC_mEGFW)p>PKm0QbP^xMK|0P64V)=h>*CeV8*K@dny*X674S|Uc)O16z*8&(V> z-&MHYiqEta+T3sCCQx#PLy^A&0H9MOWr*NC=^ zSKbfnNFY?PzxA$(&ep}=x9gRBGa+-l3}ag*qHXQ1zIN7r<0}O%y~p{lV$!C5yv(mpMD%}b0WW#qwk{|;-gj$b z>if6Nbahtg`*s47jE8{!tEA2F`-fjHX`@ssLzefpG4ej0EzFqFC2S9Pr93GE9Y`QA!m+1ly+hsAkvsd+hhD^eYvC7{#}Wh z1|*sIVLl5Oj89Rod%x#shXwCFFD!}9{^Rsi{;>mj;qg`Ugs?$@xgc*{-CvLxYHi z^CPhpdbf6ceE`dQlLm5c6n|#F<5$A_&yY@i`ugW(nB3V3kj2dvAo`o$Eq9rHD>2fJ!;%=9Z3rOAB1#Ih%XOUi3uC!AgbTxxc1goT#b5 z#;92xtVzI#!2`z>NKTT7g%);tEVKZf52+H*kyq17j&+z^0Y^BiIYynU;!aHrM6y_Z zQULf1f1KtfM>;3R9N+2%ahjGjRaur$vY7@Oe};;U{Ip z6BOUGV}FYzZ%80;B*Zf#)Qj+#i?s6JQfFn3=RG!~+ljx2>l>tD{x|lme>G58=~>$Q zr7PD(pVJwRPgSr}1oWJx0sbu$Hz@&0;&gVJ89XY&C!Ec2{v}7t)CwZ0YNXlcNez#M zCGjp1P+(I5qS*i#P-8qxNv)DaAI`1r(UCl7OKO`$Y@p!u3Dser zI4{)BK14$F4cSWKDY)GUF!gn*72m53vMj_#*>B|#hY70^kgNuvuo-dT@!J%flqe&N z0oQ8W_*DiwMpU6MK4EGmH|0pKId()Oc>wgzz0n<&ua6DLcXd(CII) zioPe?KRkD(5gm$!>ozh#K0>yPfIk~6)4p-fV*@FRSPoLZRREapanFwDOT2&8OC+^i zXA1pLyBj!-AkTxfU^()2qukC%rTj8QBLzb`!~%|m93Jla=)-Ftp6|TLIuCaWM_3lN zfB=kxZI_!J5IjY`L(-|kcN*a&w+h;Ul0ajJ04YE0JG)vie#6%<-1I{9xY|WIqOF`Q zCnUS;{5vCyuUGFF2(kdWQeMtPL?!uFwW}K+T~ODehCze_-2p@p016P#Q6RW<21H&j z5Q#02xqEg2>-dMs4X?&0zX``R$!Ei5jh?}e4F)_&vd}{sgrpGXRkXVjF_X|RLCz@+ zkRWW}P}aMqFOKHRt1J9YBW&$HC|hE91)om2{AqXgS3Eq)p_+Y>fQwH|%3qaQId-1# z1Urz=N}@{JZD&Ffj3&bsvYE+3fR!H{zEweWw?ff~`%*b@xm*rd$`LHW?fuUM&Mitd z;&1}-71>u-BJ%Wo<*C!rNC_V@hBJ;aHfJGU!z3*{V-_Ayf2BvAZIV=wdcd=(d?alD307H0zx`wfSIP#J9$mB}KKlf}nnD~AmgUQNsG zK*D#ty5Sxfz3sS)CTTL*AOR^yPVy=HvM))J!_F#TmOm4qK0cR=2= z5M!J>YC-MEU(6+a3r~>vpuS#?Xg{bIf9Ze;rC@Hcp!zyh_LY^?lgSe{lDN#TM2u&s zpCYZUM2x+RPyZ(klQaT^Veas40jg^I4RJCdvk`@3EXG#K%^A5!WQmWlq8dUgW*d2Q z{qlhmqA?l=vJn0LZh`hMX8`TQhsMk~YTJ0)ezL+QTReTr+iI_^j0xB4*dXTnT8TEx znV4MZL)e+7jV&yiH&G%ReBh=B#^ z4NfB7z0)Xxzm6j*pRtG_Jr?>M$RAYo0&w3JPD2KW%j2Y73z4GJb9jZtdOY+7>M%sd(_KhlU5>RNr!FfS-qYST*3V{#Z`$EUVZ&i%befLZppRA}q~6EM^B(qi zm58zF45^ULPC0Yez9-HT6C5GXS5A>FW2N)_SnM42`c0z`W$;c7xc#QavnxO~~z2z&*mA=p739}A1 z>yTFClN}JVAoP5oc_Uvw1^YocaBL&X|2zUdI_Pvk>FbK2l#lQ+^rP%&3;!2D!8k z9+ChePOJ?E_ut5E2oKl#YwS>MHfvlOp|$OBT>-)H8*Lvp!e7$HGh-D_#?t21cpCN_ zub+EJDv63K<3d)lddLk(D&cwRyJueaY-$!rlldqs;3p!=H%dIKL}(?Ry2lu|*7d`Z zX0_)?`rjwr!{y$}7Z`+bpLSR)(GK^O^S#e%eq?McQHLL;r!Bu}IFMxb_nHUiyM?!v z)&WWF`uIBBG$LHaCwaG{AB@+c;4^z~>CWg&b6&y3&Mr6SvCxU)M71u}#Kch-3_7TM zr4fw)RXU`REWitkyiuCu3t%GcyDZNc*IAe&edU-4+6JBC3?2QjXPN_)3K6@`sG}{| z)k38RM+f8|sV`;aEI=0h@Df09pnx_uqp6D_0g7tCqya>->EEYin+3twZ<*zs4Eey3 zftEpbvg#Y~IAzoT0c#!9n$UsNWTM4VUqzjS1vL(f_{%a8rR6LBya0d(I^$-!M^d+yx%Ya0=rSpn~sC*W$n0;e~O8g)!>jZ@_-lkGRTv7G@ktLEE4$ zOc0;X(fNXSM0Kc}#u>AXM2!Og{QucI4}d9(vyUG!28ks$KoO-0SUxpsG-?uiFEREm z)_@{{9iym-D0abK5XByQ@4dtlYhpoEnjk?%#e$vh|C_zJcW!TXclHV(yiX!`@80h0 z?Ci`lPyIjC)$6Qx5+^SCR3#;@dufWvb0(+FN6a0vNWc=AMvON~);`yb%Je8=nLfq?5S1qI zxc6pL#Nb2?&n!Y%J2)_`3nK=lML@vw5#CK;^skYDA`ihQIxf~y^GwLx;&BL;C1T+8 zAG{J_4WO|nWSk&}IuGIbI6+Yot0_7ri}EUxjCV(QL$W*?zWdHp#Xh&McjMP4NKEy_Sx0J&Pj2Io{o((+eQFua=t^PeA@hSm;o;wJ`oqE1MM z2_?{&;q!ghTPpMtc@Y)OAcR%`4YP>uBSWq)a6t^^Hhsr;9dZWpClN!ow3+Wb_ZaOB z+Onewn|6?OhbqlR3Ju1&EIbf< zo&98Qyg+-TMNPNI(>~#i^$cz0UZfa3rxchZLcX{~hIrO^2r*O^Mhh&vVv8k)$tFIbhCEz75$GW8jzH{b-CAD9Gq5>;rj-ZejqvWaqAxI2JVInJ;GugkMLMu0_m z@`*y8fboI(1;mBctgh%TOJGbv&dgSCk#^U+bC7y2kiIcZ~JLtw+cOP<ld@{SQaUE;Qhp{>fDepUt`ODG73D8zgV2`sZSg(_@31AGSK)+MU1%l9N= zF8y0`3G00pG2STL@hAt@ANjIA&#>Dj?*t@6zbr z5K24`b8|0@Z{{94z(Eg15fxvkgxF*QH0L=b=+K<1NHPzo`-~Uf6`H++V%CIy@eg(B zlAkrF#wyzBzs2%kr5{qhis zXAuTHlvE6GX*|!@4tx7BKqV!o!jGuMjbUg#mE6KfPy)Au7rE~MMw>u5Ssv2fOGH^7 zWs<0_-r|K@3hXYFco+3nB(v_#9%(TUvd-mq*aK-fS7=WPA~Vi*u%jz@&RP{o_5q?F zNelbEbPpmdF>pY95JL1*JUml#KcC5pHs5cAzf2u}Z!Rp&A( zFXRk?z?Veyn=rkj#n`wX;azy|P*Q6p+9o{r1cf@;vL$$WPTZnHV&C)JlLhjj@}Gui z90~2T1e?M_)kmrD450u3KmbWZK~!E(pQ2;W^M2;^PI}vj9Ym->iNq?m^uqIrVaHC; zpS)>u1-{n1gV~VxKrY@}^6c?!6J)J(=T&73)gNJA;icO_VST&E!przEwlLYlZhyaQ z!-KIcEn$0q&5tCHGS^bV;O199F+du4q(cO5_X$`BC{7q0*i5S>#_-$lJT-rO8qTzN>gfHfb2{ z=VG#BW2IjhbCi~=VqiPQd;Q=zqlnvE!Nk{;Fn_Wv$9Xq<+s4fJ#Its}cupwdC_*k^ zLxedc5lRDAYIs>1F`h&pFrJLNOSExMp!W!#dZ{dG#n$N+$tL2SRpZo5FT~} z0Uy6c@B^TTaOqH@OGI^0gSCvml>|1pNhR@q04)NAFTS@_p51f=fe>RTU@vJ@FGZ5) zV@?pAK_m}p78tqk;Lj(7=T8*=N$C~d&7Wj+^-&`gN!or*A%sWY`M%*7zWc|IF^ib* zqzr7XFlR$DAf_od@Rui)cYL98Fhi7%_&xc1PE{m*&pIoPJmQjcBM3i2Xf)bT@l8&$lJp8nD zZt)BJny8>lg%85_5F#&}@;G_w09zTSUZJfa{cN}*NhcU{OZv(P)}lxve_*iLM=3|E z**r$uzVpd#2~&n&ks{}I!#U0S6?tzvMeI=Hw2XX>1k9nbHtPIGLlsFD72q!Ma0Oqu z6&u9U@_LXH6DJ0=gEaqlV+qWR9m2z=3Spvl4(G**=`&qcq8F5>!pkI2=ETiAroQ~I zrL+*9LtY{GV8cFh+b$+|Bi??Vzv&D4kf4%Lj)Jy-DSzR+!Z&#X`S@RV{$hbXifK^M!V@$LaP&BJ>LWe#uZ%M-pdIV7Oh zvMzjNj3tx5mZCFR;k@5eWz`&TP_5!*;5WENvZYq zZDt=sIeAEY1n`s)@`e4!uXC;5@!#CPnTu?4rwb%1P6+<5>RleKXpt;}Uk?D_Kp($Q zDCe3Tq@b{g>Hmh9D#iJNaC3)pUoVlMlSS~NuHr>_UVVgT>qr?NLqnZtgEdI09DvYD zGuZUicGh>N=uudoCp|D;xz$aEH~-m9M?;0>dMJ_z&v@-HmTo2F<7%T~8mUMc0a}KQ z+j5j>DdhnvAI+3=VlE}{pQe%5elEEJBLgL@d@_}LuJ3!ZBIz5I`W*{h8{CoiM-E^= z8E2DHBHW(ggy^?H`@)8vs2}&d_;(wkOOzRVau%^y@2A{4^276xG0+KAlD&ObVGnrg zQo1~p#@YA+2)XVgmB$OMUkKkIgcgN3lo*>i&Lhdg#~20A`JNmZJp)Tsx#P$FMM}`o zDoYnqy@7j8&>TNPI5D3p)g_d8e?)D9|fp;}Z%ff_Qxh z_J!KM{}eQS$s`g%DZ;hcEhq`Ai*J@+{%KX@pQ^!k-nD zQ6d`Pzao7j;r{%mKQhKQdo1ZQQXm#79Ieo?I5A#;WgUK-JX`S}6aHrYu@_LL#2|Fr ze%a52>+E6XCVBIN6~)2*Lx_7KBwj2}E#s3!wJMVEZbIfMpOfTiOuBdccq0`__!;kP zOkkc9eIr8VG@-YX!*3{-n;jjj{Fm2?L9d_IR35?1w$!Xh+L36?XC9e}eGd>ijQm-| zTAgO#xvCWX3ZJx<5^^7CFBKrSE25nSV<9OzF1fc0`Hze+Y7ht|3=x7@Mx0!1BZ{Y=Vv@^w zkt9i<_#75mGot0ya#Md_Y1pYRP$XZ-cP^qLgO5A3Qt!35G^uG5|a< zBFi9WwlZn^i7N>+d7RfY97SZh6n-t-;vVl7|Wfqk{xpJ67(s zD3hQGQ-_r>T32C-uW7DhZjx(2`2&}*#2(}UaiI?=w7{It&IFQh4*~8lSF#A@&l}F- zTuAah3Lr4|X_TdCGp@Zfu9GuR5>fmBk790D5EDcHk+e427H%!dGiU#y^<@AJ0nWcEVC$Z{|<=Ke)eK5R*`fLoSMX;vgl zL(z~gc@#+un#bQWw(yoBSh5JiJ6=8z%&Q?HIoOLHRD?(f0j@_)*RrtGkPDN}F}yPN zBa1x8yoXO6sy!G(N(cc0bMa2gDg-{P5`bOHb988{29D>fMv+7$1cT+g?U&7E$cOh5 z&GiqZesJ$l;{9E+OBGR9+=IDgKSOU=<#`QLBn=Ad+d^S|qB5k*Fa#-dJsbp7gib8% z2#jgOnj`FRCxsmBEU0|n8stThlngk?bua(V27 z^Pl?A*fgeSd{JuOnmpZvtK#*Y9f&zejYG;WtRr9@<_pC1 z@F|ffgS%)`ql^F{&16MtVbEd9wMQMF`b|>6bj%Sr^29H}h2awE)e95PXUp ze2klQA>T8ytaHqL_F$sTLd%E|wPb)TGjh4@^U=jQ&LfGiV~MXCbDp!B&{hn+JE#oX zfl6b_OL)Q$yz$*!0CHvzSINN@+NS5?r}l;C&oReR+e-McVTxqhg!eHTo)s$#0%H=f z<`z_r*w*qG0sHLpg0R7`5bjdA1lCH6a^?`u`rZ0p!0x?|{Vq4`+XrHkgDy9A92`VR|c3`@AHuhShjf@g4ik_i5DU-S% z^#)65s-AwMKp5pwN&pC+05QC({{Ud&x7meIngIS-S<3dF8Y>s^mu~u$NZ{$2e}5F3 zmQ?_sR>%qShxdu6kXmq7Sv2iPfgUPlp7IWxFIS0}%Q*n>ki&szK5b)-*10E=IAo$7Z)r!wcm-xljBki{STZD5*pp zgyvlG9*4`K&SvBzW8e_T1@QP;L|cINfQ}s}*7In+U!qS!2t(jyva*un>TYm&5-IJl zzZB9C&%C`CeY#iDNkHyG-fcOh*A&a~r{aF_!{m#wpE$P1fp7U9VBmxbDIbj(gmGXJM05h(`yD zW}IM5Z^^<%Skx;LcwOR!VA-ue^y8$Ww$6*jbMm;XR)%pY2WFU{^J@)lKwuxK8c9G< z!$YVw1GF^Wt6GWWK^QC0&>%TNj1!?yhbRvf;T&S&L}7;YQYNKFN|}rko@hK=|5Gtt z%5uCk{wssdY8CqU`LpV8Uim`G(*p&O0>qR(hvvc=m%!FxkW zYk!3n@!klT{kuYDw^iP868Stv%rFcWyRY8HtS{FaYujPtCWQAq89SI8J|gsd`FP3kw-L@<|xy*x4eC*g*9cr8ts5+DXgAbC%BZ-tyV$0?Fl zkh1SU42b867Jbtqdg+JCoS4g{0t-m!)k;Ga^ z9uJ#LoDgyV)d2LyB@`m^EPNJ5gl7;40cbGA)13>MALJiVj2rgb+QL(>k3fI=)O@!j%wGA5jSJ&?i5P zav;?{^)&l$yo>=eaQjYQ>Z(i@kz5&nl=vx95I&IS^%<3aKp^zJd$&Kc;yZKUcdh0z zIktaLL2*EJ;x+b|3*@2Q`QJ|pHx+?(PzbFj(khX*|0rY_Ooqst0a%buHAtezi2*Dn zcz(*(katPDfb~qB{*z#%+j;>5Xp4;%g9ag?K4K10m+H{I-*Q(Q6-7t4N~k;OSgeD8}`oMk$gA=j2Yq`$7ml^9Swa zr)}M_wEu=&7eB`sXq4xD!P67tKc)WNtVpH~Pt8AuD3a`j7-09mUeO0y_gTc=0QlYR zghJOq@Xyeig;s97NXEF>Ruq3?dA-426Qjz2p zI77{I<_&FyZ~aj?7laB|L+~pA770xbCF7A)s?X};m$Nf9M3KyzjJ!{SMzpukh@6GQ zM(#r+WI=aYtfiF5WeVNog>i{BO5smHb*@mD7Mog}5Q3;x<%0VdlLTg>B2pYLnNV2r z)F2S$2!r)m;N$J5{f&@?hx9rDNbua`X&x^qeFXMe2|g4CVf*1C$9DR>UBNi-ck$|0fKo)-s`#wF>SAsGI3%) z86{E*-%To1jwdxqiDWF9Zx}xCB2j$yLJ2j@W0(##=J0mnjlNW+4i?t^DK&7$BOglP zTBPt7Sy-LvU+M~*1=fAqLOJ)*BD&uY37YZs;5#?%7IJNNDnbk=bqmw$M{~7CvK}J%>*O2vBu*lb1M&Y`=P3`;Jh9`74=> zhfJR8UY`297>tI<8~LmZNLfU`dMJc^7Z(Axco80^^PZekctnPmP{QKgM;7-|9m3EH zJ?B+(f9C9=iu~BrK_GXVu11lxURKa4kBFS8QL3nFo0pkK8RYaAmj#@!GiDrBTkGvQlR z5kf)|A($l0e=Z}`pHHH4qQ46!T8|KXo*{(jcLm~h%7xr#j#MPwXJ$!udW>=clZa5bOO+?%*2FRb zi3S;nV@s?va@Z)s9%mv5{dh4S8TDCVgoO3!3L%YCq+GRpxkWofY zx__Ke2H40~QVjIj+jXwVYe@elNy$3m_74pBj}@}eHD~gISzm0{D5D6m7+R_&o*7SkZ+R40f02i;wJEfl z)FuKWiXg?28HYHbM6aUyM~NpR-*TduX=&gufi7T4^6R^+%IB%Ddf4B~5s@E-}<>^84Q~D%Hr%HH5@~X1jJm zaeCV>C0P0@3S*pdm(z%MidA%orzRylxX&%44f1eW8~jGUPS|v5Z{1uBFvlv)n)HNF zV$M)Pf_iDS5}py#53YJ~N^nzVy+|oe%2lpLku-{yuMl-`uly%ALXl)nj`?)D$vgAk zwel#+|G^5`-6{useq}4s5sZG|DugPrTs0>vlJG;;YP|^d{Igy%b0?HS6iE|(ptW|T z_O}qKSBPI4c89MYCI^2<<=`vLDL1jXB@7$;=5+C!Z)L#yLEouwj?7^HL+Rj{`P6ye z>2I##zfl6E1mG`(jNwkvIz;V+keZ(}6-nNMvn&Wk1Tnv72Dqm?W{hQ)an?OQ{+)OG zm}EbUuAyWUNkwh|m^nLBLlnu70W;xS%8?`t(-OIamka#k4guv@;^l3rk_iVZbg4`r z)x8x?c=lD>&u_fH?UktSjtUziOc|jKVhr041vH$j1?Ym>QFL=d_+G%3+*lIT~~R>UD?KN zhNnC@&VZ}f>oG1}q;Pjr3$S>QzNO_~(Jmkiz_icKWV~H6`VfYmMT{L03mCs#Vx2uZ z=8M8W8N9LxUPJ1DJC?p{%)3{9FA*JS1WReBc{XB?@|sr61tJo9$lDqsY$C*8qJFhr zKtMY&LLogs;3=QV&=5*I=M@&XC-kC(^WgpD+YJ%&btsW5vyr?cM1lCI8b#975|x*= zUWnedUyV>CX%hghqf?B=_Wt%0rC@-<{_C+1<_)W*4|A#_3E!Z6l|PzeUGA5+6&~QHiHp{Nr0h3^J=5eLV=yg0G*3qj0|~^ z`16||qEcam*CGP|`~wi-7fN-3_c510mtl{;*(2*g$QI2W$=F!x&uTo9wdw`zFUZSh zX}=AnxmuAl3Y3K3VZ|^}-=Lx3#eqHIRw@`HmgW-`BMkGm#G+*3p`=|cPh^rJgHTMZ zMnEDEI7);$0&>DyZ+`<1%Ot~U7gOnmb0tV8d5fZpv;T!z3{dC>HIjH1yqsrBIIPuT z2y-7TtJDA~BPc(#O$hEuLU*EWWGKO_@+y-sVn9Ah0onP1FB zLQTlg11227>NSP9lEc6ph3F%t4o*|ZBh|&k*=T&=lH@v}K@B55G@5AagqUfWXlJ{#Vk0QbQ2Nn5> zUAyaDRYs2xuDjdFFoo3KzqO)OZrD5fIqmsrpXOOU{JL23PL$yEMf4x-^EozfEtE?H+5_MTlIGyjfoUI z*Bn^vC_>M3;}nYfmO^m_egb3IL&^IHf`mu^Gb1O`J};Z#S&vO9^wF4;t4Qesz-qRW z2b=d{t)4dvq1Adl@kRpN#3sv(1&pfyU1N*^;7F(3g}q18Cmy6TWzj-;MKJHITt>W- zj7PNuf1vcpLH~T$SVIv=c2>9^Of!khGiY-Js0XiX67jxJ>!aXScvA1&gl8i;1j9~arDU#f4b|nNDz`!U-970BE6JqpI@-SEeQ0xrN zyQkhu_a0^`H?}=K8P`z6RiAI%N(5*0Q(2H$n;ajp1m7 z5N_*1@acCIu71$X?*%tU^as4>0x8%&s#cLaPGRqHP%mHmd5$$gkz~)t&^5FebraH` z$RMG)9atnitxdxZ1J;Dw#$2gLx&x5od!rOd420CeMWLFV2^j&!eEU_J0N@h)3p<0K z>Hn;?$=bUB;d^fEm&W*x(PL)QT(3y7vG883Xi)rK@<`@YB#CbHoeeC4?G6tOhCM4Mh_~&3@~(FY7Zx`r}Giy+DeT zFDKHrg;0qHXRzXn2^A_)5oy#7YbC^hdQ>n?fG)^0{F`!AY9TyE0GLp`oiWF|IduDF zE09$4-U9~pf~?8|rT8*lgjQ`r?LC2%RGW8+Jm)Ht+=JXz!jEh*bKdFm68I@$Ff)}% z<_X^G1@sQ7VTamGJcDWDh+;|AOO&^>o|t5;^7j0ezm620SLKO7 zkhH)$`xom(+Vk8`HU!FjbeH0~V#S1cfxoNS8ib% zkpp|vJ}ad5HSPMD@f*AsEBJobk4jaFZC`k=@f=5lufDfs=QF}P0Twf0Cbq$ZPv$%p z^4==1LLbuzp=3`1_)zA>5*~AmT7I5fIg~ioRX44xi&guy z9z<8hX)oCKhS9;zVY}!k1Ih3NWwu&HvL0(X{t)nsdV3_{W49~co5+Mv!Z-=|SepfF z^Dc2e_E}O#9+FWtl;%1`l67qb>Cizcp4TWv5@R^L5G4EAnWCtlHYPVNwV#Z!7ziKm z#CMeEeWwtGF_OY#XB9OolEty-!&w8(ie#N;By(H)a6=Tykj(|<3X9|j6}d*xgv>@K z>&<}s#;6E$OQ98YDhn?~h<Cgz)TPLaMaH+Pq&m(B~%O23b#KQtC;KP$c8&C?Wktk-Q`Zv=?%n?;M17jGOR@P@4M`Nlk2Io+_wO ziX?j&NWZ+l*_onn;l)h}jl_P!oW(rg9~jwD9P;^HE=T7~7L2gVxU5*NB2LE~Ks=s@TC$_}{qKxhTjgqo8G z8zr*dNGGh-4HZNX#{-Aw(7mj5ec%@(l*>YjhX-QgJXyd(l!K^+P=20J4Iv7D!?f^X zfg-hQAR<@Rz0LSb*#b%J9fGSJa@>kld*ti}W{e=PFp~m4@p z1tkzm_^zwBHgnaU!#w@(N8c3s$#di*j0z~}y%pw6-|)r}8kYxBIxf7SY@fel*P1|g zm`@1Ny%gRG=oK4KNc}0E7q1}zFd%@Yk+JS-t`Zu;cZmC<*rSXPqJ6dlFhlggaOF@Y zA-39kkw1FlKFhlXNBh(4^Qi~Ln1Lrd3)qHE!^4<|C=?L$jyx~`jIU`m8A$H^#?$|cXMNCFIXVI37oLhX9w z46mK56-lj8gLJE$`A}ltCkmrhkTC9tN0O3V56VCoN^_ke89FeY^BSv2zHRmz&uwR$ zL+sZ?r}g^NlKwuif$9G!CdeCiDKg`h*FO%5I`KDHeiZo#zKaZm;{YcJ_d*s7p=L!g zdOs!MpeRf>E0Q6zC;Xg-D3VO_kh~i#)F%ia22TxSg;GML&X6F4-~q8#0U2S#pwvYg zvDnzy0qDVlRU!#uGiF2&`s|e6fK0?UF8A56Hp5g`iPf?I!P#}2y{ag zCRmHdh`v(4?<9q^z9}Wf3U!PV8*{B>$C%oQ)K>(tmU|)~lIu!{ZoLTR2!rPR@?S^Y z4+VaC35Dc5@ocpc0>-s3e{7T-%78G({@iInC!z1&Y|y<4jE z0+z@)F&B$rT-CF&c_BIEa`ddad-tl zMZ=UQ$uKcSp}B~y1wI6dE&MfvSS#lRBFf_Z9kE9@&HZ1Sxy?HGyXsnI5lb2f{o%W# zgce`CbCFRb@klCfDwJpkBTPLN$?>0mTiECN@X%HsWo}m_ub21bnwS0;`r3?P^-_hf z1CmuM8AVbCJunkOX|7Tv+1NenEp)6JrbtSz*jpY+c>L^4Mv)Z8MlV$jC?m7Y=^y^D z|L{cKsHhssdhvH&!r{?M@&__Vt9j=!kw!#-%q!W2^c&;`@%R8Q?Kx3 z<&Sa?!k-RYX9*QZtu2?6_8C(`6j218`#_ua z)Mc@jg*Bzzts*b2H5jPr|!D5@Z}ey{pWkI8!rKrbkhZIzEhIB8so zL=hqPk`O)k4Plp{6rx1M6@SJZ4-86^L539+xi177#fmUd!mY-uJ|FYf5^b&^1>rR1 z2BWOv&BHiw*5A4)kFp$$#$Mz5MCs$bfS^m8%vth{ZJ4<48gqXV)BJ&d%<{8p069`wk%#LXcbGlcBkYCFLps{Ka?QxQE+!jy(pC9IQ}!qAPeF zfPYSTXq^2y@zaK2pD4qjkBA^Jp{+S`Bxje*J|COOokE>I^>it zs(qkVY7T8}8o?+GGXb@=>9kzm8m34pLTE3->3<1|r0bE?US}jG`>CChH9*O_%N5CG zQ&~a=nQa(34#NgfH6U8!{2)yUnTT})z6X1;C3tR#lg6Gu*DI2CAb4L0A4O_bB<)Dl z=d&S-Buc=zsZo()z9*4^iB|1H!U-X)(uCKsxNI2CE6>CjpQ4{hA*aw!OYAMR=`pj7PX#*yKlF-TZj#kk)p25KiFC{mR^#EGu zIcgWdu2y2RfH_^F@+Uj}zKuaLrA@*?0X`zPuoj}ffaD->{Za2{%?=9~rrETtBV`ul z@2l^AEPVOh&!%(+VP?Gl?N(Z>>Gnk>h-;ZzVsjW$7yQ3HMfgLOX808>66* zd)Z%M?6WNu$DJ_+%;i9Zf~Gx_eGa^S5AYg1 zt=+xdo*NX&>-7Ga2cZP7xAUTNY`w)Ts4F>OhNMN%1O9DEfwX;1#va zA_ka;P}^DvA^KD)eE*W?f#;)u?z!95mUD^F`L;Z@pjX03P-uFnZs9I<$c?1!cf<%O z4*#>hET)jY7)rd72@1o*V+TkIb0V|G5f`N>lH7Z$JcEQPQWPHHe>cssy*1ZD2oF4A z=?};go24j`k9xSuo@~%{;ZoD?+UGk4jI5{z6OOJvvL0qjVv@6)6~`T8Mb8^Y2Z2^$ zaG*2{`QC&{?=O_YEMXMx0T8vR9Pcy*-Jf|y?@Yfq(ol>~^ zg=}MjeMcroQscFxQ;*dCmiLo6IOJhU2xZSf+xA?eNCxnGJ0?k=jZ`G}y7p~(BqJkj z(*5mmc;^tn-k=PrPqzu)_iwEVm*VlY5#K z$s8{z;M9gGlE#95_Xh@)B&i=PDqrDkdp=C;0VUB7RsK$zd_y~U=9tJ8A+1G#9opo) z!aR`&kM=%Ra`XW=jxu45EQbBpT2cjls}B{WO@LT>%BoJNByH}gKJBhWRtph2afLuf z2t8#z5TZ$G21<0)LhLgLsN_e1x{2~McCGX>o%D1#( zjJ7TAjRN_s@)JfZCu{!QTlDWK%eqU>QD z$V-;_0~AHuo>|p~s%8!sv-z3=k}gav;Oa zGYWC0O`Fdd(lMH!q!Jf|+=c+Rbdxeoc^>la;uI>tpllrxQ%K`&&CtNP$*17KQpGm>p_qtJ;pgG3)r!Z*7n=!R6+tKCcOL=keIY}52vJ^cBN@~Wl&oo@$(+3*axKEbqiUZ+@EE8?2KE804|J zM0re7{QG2TlB!$U@B3ZoHE&E|SZYoMo83l;V?X+z=S9&vx*M@w= z7dg*{64YG+bG1a@Nv`g9+xte*;#oIQNaT?lE?sStrR&%v06Dqf>4}9_Qk>lSnRur9 z3W`5#>`RR~Ur-_eQrK3Wiyc;3tQ4}r;^n;}d|9FG*n5*1BIm8yVIiYzIL%jlr7aLG z@A%IrCOnyh_biVX4E+F=qM+U$M8B}a!Jy-)z%cw>b`-_B#=|e_MyB2}` zAIfq4ue|SRWaq?Hdn_ko%@0B4NSJm+35-zqXPO~~`GVJVs*FIP#QVQ|mu3BPKD3eI zc|;F9`tIk2GgQ_mlx&zb@5o1Ux+2M*_n6WmK=lqKa12hA5e>svt;C!;ND%%Q4MS#=GZ~M^pvviWaz`5eblYWn%7ymoD zj`WiI6n!&PD5X;%+F?8p-dy5c-YZnuTa}MEc^XKm z*`2nYEb8JR5YsMmk@-gWYn)7umqJmtm*P2pONG~zcOiay#os0bOv(eHw-93l;0$5d z^c|3!YxZ8QKqyTp@tk=64pk@~{kP9l3KwMhoQ#rg#!MX-V5a*xSW0tk%5J< z-caIM$vyt3Q0#a&Nkn(rDI6W-;kc*D4LeV}o;6Rd1e-JjFG5Hmzc9y8Cf%a8<8+2@ zIpfZI3I$6ryiNI$L?4WNaf(oe)0IzdV-z;k<|X7Z4-uku;nS1k)z3y}h6kOa5O}

tp9PZSHG%%c?E9!e-BgSYBXSjl=SLND~3$Gp8kb9SW40)-NWOQK*1EBDcy zu1H!VUPxIQJ3jEKKI^qBY_{B@_E1%y@F$F{dn+88brnj@ie%_WMTSM30o3XYr4Wy# z2}xGu%d?7n2_g1ourK}?lM_qVvcHw4KyVmJpgK?;Yh1Vy*$Q-ARwhHRto zRgh0noYz$W@S7#9qe%G(p_O`48!2avaZ={L?=%BH>p6*d4=Cpc2yBS?ZHdt2Ug8~7QalZjH)s)g?3%pu%#qh7er4*AR_i^seW>Y^ zXQtdxY>q_p;9G^MX6GYve~fb%s07H+CqGm;Y`VaLGL4{h%2pk@G#9bvUGH|<#V7)Y zDr^njL`kMBVx8`y(C~dS$|}K=&layk(GDf%XK#W3Y`H?y-V=Il{5*62$0rsZ7ZPnK z5i;LLz*(CsOx{Oxx*`c%0i~Q;qFGTOc6@BecCC5MMv2v0KT4jhJTzA*l6eLs36!oIN{{4A1p#Hujj^U-+Bv_LCOvcl*gPmnx5c^7Z$H1LO@432Viu zNnYPY;^j@Uo7!a0bM`&=j=t}_k36B|KKa_$u03XD?_Ye5B#a447+Wik_0;l&W@oC4B8fmjc;pcqEL{p?;>LwD}SuJr(5E&0BZm0-bhY75Oc=&3GHp%fr=tS|01TsCZCUahbL7FsBqyc{x#Vs3xu1kD38-n)iQ+etX`_H!n>qo<{{n*B?|^^(S&%4a($=5XK#?l zjdAY3(Ne}DhtTm~)x$jOjxmY1K-nVS5sx*5(uB}}b#gN)=_|CIUl8)YmH-nWt5P}! z@Fbo!i|8w%$AI!s=3pq?AUu!VxF`s@X;Hhzi4^m2k&_#?G0B+%(gy`->Nyx)_#+`Y>M$OvDB0{?QZ?sI|eDPQEuhR(c z*!GG7I4}ojlWh;79D~ZSs(+eA@S$xb(7~q>YO)A$3DOSMRhVuX#l7}v=i1-kDO*X2 zM479V*c1ARzl@bpDwHt%oF>J6g@lcMPFExuC+0DVBsF$J2p)&gE^khFylvJxX$+UC zu5TV{RwTnmt5J$12EV6-@=d;Y2<0-&vu9N78!%(`lK3ZgcaQP6dmev7?m1D44j_fS z1A)0r|Fuu`GkK%7{bIA8J;L15^A9|CxXO$WeHB7;r6OtGzea~wmN2%>ie$*_2|uSU ziX;jO0{&nDeGs;2DMTSei6JbB@GXcrKwciXi_s7_638&3HOdQo>O})=@UVKTCq1P0Np<*VRRE`JOib9){< zAHEkF9%-*@RwV66WPdhFk!1hJlif?}jeBH~HIl;bQOYvO@L+cx^POEI{^_<9@>_I1 zyzgm+7@#p=nskx3pgB+>5<(VPJ4C43Y+WfX~u)HJyE!p?QTERO<$fhf-qe$%_&*%Yb zSLbOSt59l?f>FR2V_P!9bcPp^!cfgQv44#4py#=u_&gL#9=T_C^Q^H`%l_ny&%Syz&vn72YxOoT-0W4dGeZfI)Ep06+jqL_t*QDI~=yDF!^+ z<$aNZ3Tk1}JGJ-cT*@+yP~N7^W3|7+siRKKcQ3J#Kq+I| ztVl*fRIh()RwUVg@x)O=!dJ)c3o(mh?tEVW3d!hPY$^a|EGq8|-pyl`H}~Er{_|0& z@bnN0+g-xCO9(b!3iJmL6&@a!-26y`wk1JzXi-qbs(iKb(<(fhZUY(LK|MT9sE1hS zQGhm5zUa|T?pDU--k%wZKJvg3-ipEk!e~$B=;bANDS2u8(#3WK)nRQO&SN-LG_I9KzZk{Ol|nyGtroWgPmp@mSi-qH9Uf8SV>Luk)s zTxuy{fr5ST&F>knDD#98Hl^@Jm}&|`wS90uQAl4^8HA&Y9znoWKt`qTdJ^$$c#1nN zHeYFrwCCa_1ex}p|4ub^I_+`y6C(t<&RYu^7s2#ud6s>kNA?=Vte-;1sZHt<8|)!6 zHnh_3Y&3ceGo5Bg32MQO6UH6G&O<``J3B|NM94$H$F7pXM&4dEl-JrFau3!)2=cOR z3*nMzlu$HBuA5(ThtSr|oDgT*Ug#%##svxyzh5~lp~PC-e&xjqfA<-HibjOFL6L-C zkPD5My(q$E4k7Ee%;1%IMfnN#o&$8xywt2nhL2by6-f-)@OYw#LWuRY)ryN2djDmq ze0-ff&`eDJu^U3#cY0&bb9>fw&38ZkB$W86riP?@M$&iYdtWJ%-e?hSm9SU1?J?&; zr_TdyHD@Z4EsU`gg!&2!P$IdeS&^(5xtb2ttVqHPKxo9n1p+35vr90dEDs|J$Qj#q zHXcFpbpD|{9kcG;hV-4aM#x?-37i%AHo9Q?_dgn?mN26~E9B87SCK?e9j>~JlsP~t zprG_c2?eFyHqySk1;bgq6qny#d6(4^VQeTJeWV~T76!F!GohBL97Yy#KJNvKIm$IT zKX?2XFsq4oOz0%@@O1$`TqGeBVbqfC``&9VVGwb7 zAMeT|%$)m5!tyKH5Fqvttn#NTWVwTsuxbcI+%t=SObG6)FQdA4vfLViu?B2X?tQt0 zP~9G?D~N)~+yl^tFyJJ@dp=w_x0Lcgp>c`%2>1?3=KqqwNtaxTA)(uNqt4a2 zlw$A^k3$aXFaZ}Z=Pc3e2N)*+nm}d06fU)}jsqSAZ<(oNo=qL0lL_O_^J9fSR5chG z>v|AtoeU;DAAY0Ww6;WX0UOu=UGV=p)Md10U?Bua7*g=rqmitYX^RFp^!xHmq8{kH7k zJuifi7xovn1?AA9`^4H6|IQ+K?_uxq){>nf5__}h5p<4iN)ChK-t zxNy9bv}%b-Nf`#}SwZCL4HN*wsuGN=B^Z@OQRG?42gAdXB^a}gr~&z+6ms&!@EDW3 zmli$}_n^ADhq338GaidVKUmj<==DB0+h-ouwQa#X-PAXQ;N~w|cLC zmsfdk5oEv!!7{)cD@6@upc-NmzDYTBR|$oeac-w^1_9PA!wiO+bU((L5JLp1K4dn4p}PQsw^Mc^?PmtopoCzUj8pexrWW6M?`Vw8=f;XBR7^HjO76&)K-I z3IjBsL+O{MNb+3lsjO`bMIi*MBYFWG0r*QEie!p!3r9-vcOz>;+h|rKLr1D{ zOccZeV+Hi(=k@kH`w8#gRx-f>Yb}`@n9k^mM$v$=u!1dvDgO>gBa!tOH=7hpdksCA zp?!RYF$!NH#V&;4&l`4Cl$wn7l#tgS2q zzk5F4xyK%VXruqC!z74utj8K$gm~LYe-phpTv3cfGnNtWH)R~{xy_2C9f>-8GUW1D zF-NN=6VfRQ=YNz7$%Z;aB{Z;%yM(eyz7usNePkfi<@P5Ou(v#LgmlIU27-kaluJ{3 z!8rlp?F%VSSG+LAVN+tSx4zvgqZk#Z2A9h5$R zRH`M$%tGPA(0(ta^h^m#S%gw?ixfvZuAyX<87X(iZ`Q$Ff>Lml!ja!i2}ky|9a-qx zo7_Q^Cs0}Y-!sl6(=Q-_5^vR3QUFjGm~{XE?J@ElUsL87@7zVx1?_S#0VLH+_)ffW zjX$s_EU{2adBnP#FlS@E)H@j=Mek3YeplE_D8qPGS$KG9|E}^H+q&g7%!=e6wM1hX z#Qei30%9#hDDB1aurDbz+7PB{E{gqQ3e;;|Q<{YLu%$wZ4lR0yW2c%w?VKUB^d#j< zujr}khfqz#!C5l)_yj;(7GOIG3WuwV&ifv;SB8U4gc28V&?$G#Fc(1z#b`0ph+Wuj zWEn;Q#;gC`$`8^SsRyx{&XK; zSmDWhh7xo1Z~wQb;Mv=j88Wl3=XFs>_Y8UTUri|c<7)$+xt`|Maq>u}kx?Y27!L?6 zAWmDqL`4!K1YyCXxP%gG^r#Jm=Bs@@l$amzCUUN+Q(Fx+E0W=()<};ey&G?GHZ*gW(4O`m_+J9$ruP94_MT8Bva; zyy3$F>ub`@c9IFslMJ``0w_PWUD_-XhZ3I0$e1$BpZf54dv?(0FF}#S2$dH!%ZmhV zR2dDTXK3St)vQRyN2G?owQy=yBn<$H65h$>EXL_mOW0g~9mRn_0&YGS`;EIB<&&#;Zcv2E2vjgpx;0UL~lw5F6I! z3M)R0dZS4U&?+Yh55RjLBX2zUrhG?0J3(t@jT*{d*hqs%-~G&3X0z%Oq8J?`Ybm+S z0B-e{ht=kWy4}Vjd+V#86t0yZ$aj}m=PSqvb%Mt25E+zwbC|ixa}Aav=>l0Xp9rrz zL?PK2qVUEapmILs70(pn9hv`hHg$jqhPe{u3Afg}`w?8c11a_9UT|0&r z%{uS(@$;F^u0bXKd(z*8h+if!BEs?W5TH9p$>P7JLc2q}`#djuz?}k?8u7ya3{MKZ zALD(byua&qNl!JHTNFvAJ`pCYTRaRQWY>FtDdV>EPu6vW_dTPU)#Rj4cTx$mu5*8H zRwUigNdMkwMUuO-uVYjTHC$VH@DN3$P@56?F&DA$nXsi5-@>F*fW7dhP}lDfe#X`- zET)`m^6%kdoa=7RGfc?(OQd1t$k9bU-ea{kg>J&=W`Em5d%QV&HWS}zkUE6-MB56mWKA$x!k}!ciu6f%qb!yiw zr+mY+g@B5M*rjROTu8?EEd&-A0w12HcwI8)1z}5l)@`pGt=OimiSx5!5XLCiZm<-V zF+#7z^L5mQOBMd&oa-XCMvLgeGmz(RfGM(s^a#k4kAkRxA82PyGg&lq=DgqZVgMgU{8wg|Mo^OKGl z5SrHW70%eEqY3Y&@9(OH=y|f*0e*70N)s$2&xB=_cpP>b@m5lE#xSv)7%xT!h`F|l z&i?^zX*MS26v{6i3zQ{Fpb##yiNHYcEDuw0d7J-dg(+%yMmAABSQ0a2VlaAk0G%;l zZ1$G779#-4dQW*d|LS@f(8SOccWkLVIrVraJfFB>pQBq7DXkYI=i15;i*a>R(2VBr+1^t;qk(L&yrpZW4K> z(IMi*SQ*EazQliTRwU!2Rps9dGE=tJ&{peJvJ)Jjo55RkGK<^o8iF3^u4g`08Nz_j zNBIfDV^IcOVghWVa7gO%IqOS%ccet(T^ufJ@&m=NS>ugS9m78?-ISl`Dv}5(AeT~) z5JE6T@m;ot(jN#UCB#-eOD!M*^a*Oh4~#rz_t~ z%!NWB0nlc5g~USSe(rds3;;%<%G3K*uu>`Kqa3ib5c{_ZRY6Rv%m!nNg@jE4k!TF5*E19nTAprG8)V>xH@ zD{le?cHjf5ZzU@&UFKc?LwV2C`iwt*u9&0WPG&qwa$AyP2p37O4mxf0|3YVF3)gYLMa(0W5z!u9C3?Z+aeL&*-WB2tMy6yFPWZA7x-bI33`L zwDDf6gTKVkR-VNm)Qz2mdu$2jLv>R{M!z<45IHPYAB*NWZP& z7#Rtp7q}l4#BIdK=;t^^nB6ZADR>$5KQH|fJd!+T-ul6e14gIzivHVE`I%I5XbIoY z-ur`iF6CLKYY&+$C7fu7c)DG)BAIt4rJrAuBFTP7eA|l_r=ZID)SBgV3aa-MdP)e!<&apx2drmu~eeGEB%!Ir-^ z0ui~OC}7<*hslBDISI?UNc9>2Bt_GP?j@GjumUL$k)$ASj(+<}dB1~IKasi3=DEHA zd{E@7CHjg|c1ke>mvwTraz4EqpKgNSPwwLr%6EaR(syh^*qRYgR1V~FlKB<$7=~PM=22!7vPz%gbnw*?R|NcBBg+KHc$y3LTnpO)*H!nPF$Lk->vmI`xioYDoJRL#iOq{!QSBdtC6Hyc__=y=KSyY+#>vxuD7+;PHDU8EOQe0?HSYl);PR2Q zdoQN8Z`psvv{PpJZw5duM`;W?%y?B>k2vXp4WDjM9ZC0|tP|uva^)~)SF0@bTNzH~(YtG*efw8t&!fNJ%3J#JS3eqLSd`pq2^orrE{wAw z#5$VUU^}d7QnE#+h`c~f5EyktV!+Rtyik4rDw%E;BcZN}$g|Om3^J^ z8Yq2hOYlu3UZx?f3>HU>P@pbWp20oJxkHItWvTfKXRA1UwZxoyP5Br{-cj_5i$POb zV(EqbUU5PLFMn>5YHKy+Ik35-MBu$aNQ@Ig=P5#Z#EWT(O%^W_zqujI@Cfpx$>T+# zbcu1jM&o*e!f-92Tmfu!qVfhCO1u~IU-2$H08()P;YCgY6$-e#bP59GPEIay>4z%5 zu#rEeyx7wp$sdgnznwuY);`c#*5YaienF}O`NercPu+X*CR#~QTX4Q#8KHtPuSQs* zO)Yc)#;Tfg;4!Pq2tD!h?~O1T(#GQR|GIGVe$9$x z$XLxRMUuX-#>th#1BYxmtH_k5k+Hk40hgm6a1r}SucGh#`-vhOj!_6c=~a1&ZDJuA zohfAk_6JHYQCCxBFz3Hdzy7hzu|oS?gIt8N8KS&mWC2li&p<@gS)oYsT=3x5!U}4CsZz81b-HOIXejm` zX(+OU1(BqUsE#Hgs{l_GeVq{0+bWpTV6t$1ci4W<){(T>Anx! zmYdgSkGY?OI31|4IG%@bp7@1wTa}MHI}&q={D)qDUebiMnmHTmC}aAV-UH~v2wW(V zSkDOOtUzv!U0eE-fw06)AsqvboO-S(R4f;)`onkc9{pa$zicQJh3|ROyXI;XLGpfA zSYm!}Yk1Z0I1i8IIq=?@0~je#v|YlOM0h75t{5&XnWxgTxgpFbkAz4P=I)YNf2w(T zloVdqbA<VgtJ?oyC;F09c>^Tz!*fdCGc-VVt;Xjp65`F}kYXj}kl;mnsBDo%}W_uNVH-;1O zZ=#H9jV$2~S%gePG}8;?rUixM8zZBz0`?2U3g8{gY>y<*jI#p(zU%(oWDL$4i;&-& z70HlMs{Nc6Kch&RwShjV#le4&{fz$d{)^Dz<{R3RxU{_#v@_&AK$vieh4-+$l0yYJ zk|Y>#J+A+gw&+;sCh!&nWdueRF`v}7yHtf>9~&LzL)rEbpz#O|S1n7ITtyP^1<>J4 zSd^z_r94slvRWcE>Yd5c1yB*ykVN1WVwG=RK|co`AGP^5aP_Fxk69>^^K z6&Hd1z_rWIb?fUTwZU;y|589FD1eMJ3i4qJ7pyiXh4+E?ao5$_8V?y>QWQ)}C{g=J znZop3+gqffsPo)#CZ0RDg|^zEWsZXIe}NP;P=HwNk@D-=nbL)4e(Qc>LdiYMrl4@F0~I!?MLA=~7nGWO)0QS%LNs*j9ONi`8ESrezoU^Aa7-xCjwWdk8B=$Jdl zc}@;re}NOzD72@X8#DB)o&L z-ed0`<&;ZCT0@|oGcm1}u zFW1aeCK=z~YVNNqFFRJ9^0!;4vKrM0V`(3u)&W+{?%kv->n?KyYIP+~#F zYUp~!rR??85hSmlxn{xcDo*qqfHz(*-bm!l>`HU1BFX!}5J72;5t8x1YGB^ZOhWcy zZk@Ajr{Znx!n6J0Z@x#LbdQ?HU=#q3(+FZeqcj$&UPRsXx@mM-1WwXDku5e-bQ*@- z5aL;8g(6AckT-`v|54!%$+7j~@y&{4$Xl=dobnt=)`n3i`BF}0-b#LwK>D+09pNNB zHL2r-yh^U*Xy83#DObi|C;%j!q6Ofl+P)w6(D385rWL(*46udGukf1qgZC655* zP*A1_-LU{Q@yqaPfarx+gXagO5(HeAc;={1PkPNdjZ$GTd9u!uCz%4`$S@P-l^k&Y z*uvNtny%Y^$amUiOfW2LyHcd+qDYcp4Tz49U;;MZ6b9#pTKdkP702vz?OqIdV@`!o z6xLWQ8H3VOEm#UKN%I?lm2w&<6wx7>hlI9beJ>*`n6f4^hXac|S3FEX+?kKfbZTIZ;j3>yigQO5*oN@_e9OK9>uYK$uHs7({ z{zbw+Xt{MK9@Y(MWhgnuyAK#w+aI14uP-6a@R4c=p=U*f8xP%~dSh7pzRbzzkwKJyhW*=bpwYMHye%Kq(sqWu1BkghKj;9-(HV_V4k$=!Lg=d%68&0c;msoYy|ui-J(Z8f_#ohd-g&`O6Kf7rB8h!-dEO4&U@6lLJg*k**4HnX0Ek-~ z2yqJrhcb)hnd@eTAnEIqd&~-&1;~Dn}pIis|ev5uF@4JVT98m7uFyrFS6(4MHhZReZRQ#v|yiXKKJd14BmUy=l zWXU~3d5+9|OPoOo6|AYClDdSTLAjs-ifmwh$0@HRHhz8T-*niHpL?R-W7>GSr`qq# z_{7~WT*DEdI4ZV8=wnlg> zn0M?~O9@y9zDtA$bGI6*n<5#%d2!vx52yWIS4GmjzxzGb0oEqD+bEOu5U}BuU6gab zzxJm!i(&Q{Tq!FC5^o5>8!z0cYlWdYxE|lC@+NA+Gdp^N&nzc|4|CVPyuox6VRVps9BM$W%R_zG$YCuej^TQHd{{QV2(F)V}cNP76xL(gkK>MD=_K2|YlrG?xQJUSi1|!lrUq4m)z3hbv~9_ODOFW zcz<2q+$`c90HY1s(yoLkD)FO?tc~L<9LSq5VxT*WIBf$M6i|89Nun>|6 zu@(%k6qv+UlSZ-jShQqQsJR@{GM<0Eb2a;tlSek-Yzj76eM=N zix@-J(7YccLk}CGCAtgWVa-wQ#7Df3zsewT@LwVnV&6Gc9pmOnyIYaRV3`X%f9`0uSl2vr3u8L%i`xBw?;M-FTqVpsH zruiZkvYO-FETDJOMX3?g_jAGQEZXP20)+`7j2veu-@3cr@$5>?ie%H9Vcxzjpg=MoPV3#?!LIv-wP%9p3r57Bm5M`c!bnNvO!iPXTl};9H-Y3AUK~HIaI-?X;Z4-X z!(lC<@ucJ&Eoa2KG2k+cl2L?PWi(~d5V4o-E6^ek(yO6RtP;0va7zYBA6li| z0`B42?t8i-X}haIFDaDvSn(5Kv&Rji%TO2HQz&22wat8mftxK;TntUWGC>B)vhs=w zLqiDW8+83$;h0#i7?vF@&?i1HAyJVr3ud8~g)4Sl))b>{x=Zw}#XONk*$8g(&OI&f z9D?eqOAA?4=(5!kLKh*06iSAE*J_@^satohwmHLeK32Zh!28FUHt+-;uy(rwU?Xwj zo#3TCRV5TG@k}eL^uvB@Eos;u$6-7dDx8;mgAg*~A_jJpP|I2uL1TDVAaXt`;jLO_ z(!5`%w%-@>VD(i_-MFdWdAo%oX=_`$C%^=Nd#CQyzb8yH-$4q*%QrI#Z_vg<%G^o< zXI_G-JS6KSA=cm;(u_n`{ccB2${r-Uv7B7k5BQL~aUA-~oo?sFga z5t=7M;3L{b;M`L{9CagZX8x;ek#4l8LXpIXcC)~OEdQu%IsFLlnK44(s2A}r$oau2 zku<((_cB&+l`I;vP4#>*v3+WGiWqMSPQNhjtHM*_mvpRU*3+_Z{+5Q_e-J`R33;^!ev!1GCG__HD%>PC8za+nw+9ATiLM3hf&YysNDFMbnf>z%W6L$!%9&tgN&bx3wO0fU80X zFGaoAOvrunoC9CDUC)C7w}Ra9cYd_SGwKG`i!hYqWy=Ey29MuZ2IGT-U|vtc*!b+2 zFBDldP2MULj2~4$`KPM(efo%!fpG#4HIWmmi-+R?#tuJ|)I*G0Vi|6w`$qiR3?AH(%rV!5upkzo? zg_f!D1p07Kl5RntiGtfnm?-rkBjd^F1PI?ND)R>b9P(la*>NO+*V&;(g#btd*6GFJ!^S+i?G8F{AuJ zc2T$ExF&hTzQecO_*O$LVJJJ;)^SYMsZa^ z>gV(>F+gEFId_L;je*JDlMR6Ra=b!X-EtrHcl(Jjez3yat5Nc88)csihWW4TXwx6e z%N#&E_Chme$^oJ*Of}RB-l`3pkotNO-evNWvVXGuDSHyb7PzHF#y!xaFI7$i@-_;~YwvR=^xc8~%JL5O@ z)9)nsWqS{7`zW>>Dx4og@p=+{8K=J7WBUT@VNg;CA$CI<%K%9$k$W9$BF>acCsuyp zeV|ZMzTizoP<$g7PPBgl81{4Yj`aMzr{C!Pw9-0WS?>l#w#(wJyxry9QrhZy3GE@& zsPPTCcj!5c$*UiJY09-!T$3>7%;{Bxl$=_RxT3N21B~sP%2#{(y>R}7tU{TnBw)7m zJ7)h1&zvCahPO0-m`ixj*hha9Z@?oMed7Fx5WksA^vSM!<`q#_%;|3YC(ks7Btu-p ze}-5be7B#`(el6TZ}zk49M&5ka8JB9O$P6;BzvkhvieD1nd`7J`ey#qoS#o?4V3$} zCGTJuME)tKs4qPKn5okX54>G`C)_%PP=ElwM6t>u9v$#TuK^?B;(4|25jnKFoHF$$ zo^`AY! z3r)4;S<{Q0p&!VJ>T}x|qX2YoE5T7nSxg8^Oq%D$epwjw(1cW>20{0Lwc0Ab((fIz z$gOcj(%z@}vvLFw#wlcrFitoSgn)UYtfUXCcG47C+F)&=#Cs*5@Wdhj3X17bcfM~t zQNA`zP0lSk7XBax#llB<{ht&?gyx0i`Hd`f(UmMxyeQ=2yrQrOaun!mGu3AVLKI2v zg!i(y5Qp)UClQR_{|AYXi!Bk!ogcGR871@d;1E>y4l_#}ackK2G*w(|)t(#6PRKCf-KzZ`M0PE1`-Abr_6ULh$!R zTFq-bGYG$P^!rH|o5aJ`kb?4_LxE3h?-%|9(-DI#`vM*-yWUy<%rEu<{zI0)fXOF+ zCpr%hG-%Xi_GXM&MCJ$cSJOXsaq*k|&adU?s*Bniqq#m+{D`?uznR~QC=w!?^S?G; z(x?^No^8jropO8*o)bJZ<7M9QH$N3V*Sp4v^`$;BpqO#gSn>(3Laojm-e5C@k3fD! z(zY$Zo&SBK4f-MpcK5yYnf=B4i4sBF`H=!zK`6CkKt~ks{g4!sJy&mC*j+AiOH3XX z94M`zwWbjWY~)9FRwBNiB=*UoU=&HA#gYTW(qxmW#hMS_A>;x98o~qAcA@} z$3MtQ*4rZ4$1DzaGu6C2CFb{2{~~05k;!0)p8ed-n(OB>KUVVEUAApdKBTQHp5~QxY~H3#%`)fXTBX z9BlzTqh+%wlphF`=N{z`;Gvi-g@$VzN!*(`4Fd}$-Vwqr^ARG{#%DPTZcitEuaFlD zR>QoZJ%s0K37KVz6n8AE#!#aWk$7pDc-si^78N=EoBMZEPNcl(I&TS&a_^f*8;|BW zD$C>MQt}@0KA#|Oq@DY2o9=hk14yRs_3rPvzB7M#VQIuTHw$)YBUJluyo30A;I)`3 zu77Hn>$P`oHg172OPiaeF${PH_uQ;@1Db0-CC3Q3^S{|>m1E#?oa&CTVJvpS+fUlE z-}y`;yYIT^`i^lu$L)FX_Uv){$?x_%pOC$tuYA{ke9Wn2AAe4LzS;G;QpUY{MY8y? z-+uq2Nus~>xyhN2Pdxh38!7k0$$3IJB+unsDF{Qh?jWF?rVtvVJdBs%c>nlRZzRea zp3Y(0cQPSyNgW|i5--)60=IZlu5vsh%gGD6)9=f@9!b~xj?>3C6jpOrG4UB|7rAM) zT`dv&Pp%vCD+(k)8r|D80Ry18UH|X@N!k2C_lW=^wvzk1b8+klaRl)Sa2>pfD3qWu z5&}{UwVHPx6Piq0#GLbFCgea08{jCQ=n}%gebNY}2GF3vDhUH&MNF&zg$40colAT; zZ9k{{h?9!BqqGGe26;pvp0*Xp5TVg_*g2mXeYZ>5CH%!IY-#s2*Z|M{rWSfwZzymhwW$9^RXzK z$2@D4>i4_#M$%%lB3Zw2jkg5PH_BT4hxp%2e$IuGzQ=##RL`O@>yC3R*>>&U`t%%f zel33GB(={ieD|rmp!rDi2xN~yaatvvShFIDBK4X=36EA$?W8^4-W=s>C83E9RER6y zCW!tK)^djOB!_I%p-d6PV?%DF&1WW;=bLUkTFYKdyzBD3F@@pw!=RPsffX3hw zueyF;@kR*FCq528j7c=+t!z#eGW9@YY*reysC9y!X=uE)rVq06>|`|24@J z-!-A0$_u7kLJ)ZbJ=URH+@3MGY?p3@*2@2?mOhi0eQ(V}lyDT&gH%h8(l8a|Fd4dr zQGtTV)=OV;e(?bBm-^ zZ#_rAo%_x6y`Cdm*;Yv~vJ9rUPD)l2-|@6#x&?|Il(e3rU&H@3U9$bsWzN^=4{oS~ z&2uGuOqS`N5D_2%SZ$|56>sz&5iD=u0(6%;Cfbk^(AgwDuX z28pka>e6L}P9nq)R=Enii)lnolftVFf+^q!2%M`cA$Q1MJEdKg`WxT@|56D86e0)# z{z?^sw_%{>V9tNY1w2T3W+;q|SI>3Y75-Yx{Y0RCMks~kiJd1U5f5RUc;^#U-}6Wz zU|z9Xck}a^^5jqt5_xygVoW}Ty*W3OPEklHlP&7D~qqY_Y;3ruG}j z$u=Aqpdp~cZ+qio<#jgIDfG2d?J*SXO;sba@A^vxg_B|=I8O!*aykk5MF}3Le9%lv zSkR0Qh;|n3mw9;gp39YTTQl4BoPa@Nx2xZhVPJ+aXdJ3CCxkeAsWg#V7y}4(pdQw< zr4gVPn=ijep`SeXYaL2oq502$wO6qu zG@zOOpS`mIwyLV)_^~vw2@@QJ_X>ELJjLk4#^@a>FWr(jEmE?`*zzoCTV}Sz4~sh z23+5#)XEy!T;0Y?Gawm_3ERfF@PGRU#J73B-S}|d{$Z_HcH@|`Yt>~zb)s5_s~()c zlA}ih)~}*IlyX&v3?wNRiv;%z0FPnaP)+sW#;o=En-1SPPj$j>JspPL% z#>xtS{D$xTA?OjCBa>o3jRBUdyPy2Cv6eZ@Ui>^*r=Ak1BVETgKHh1pu4|v@H}_lg zPuv*v@+&mi2dvlbIq`xLe$zr+<5ax}fR$~O0Gl7!%(;6s*@yP}X}Q*tP#DV;U=Dpl zuYE_PZ~D!xO8)|bUy?wCafiV2Y0BpW)7g)D_XmrWx+P2K1MClwfVB%MZG=E==(utH zY(`@2q&i?7rcJ{9Q!nqqI7BZ1Mkic5)>Ygz0ilxwLa&ddy>a{2eWy&|(9aK*zwv8Z z`)v0S%7=CT%(LpwSyxVh9|N*3Uvbax3{&B0^$~d@=_@=(69cmdirEKN#L<=oxM;g zQoCxO(i-q5(<+31VlT2v7g!y5kOt`gNzYN%J4xE^wpHKF*8sZr^((QsLa0wST`u=pn4D`S?V9~;g3BV~L zfI{K|rz&oeyp<&J_8B<27F;8-HUesQD}E0Pjfsuq%ZNyPgb zT+?1yXK?{OTke)lcv*nOm;}p~9!J3UDy7%R6@O5B%i)Wc7lJj4Y2-Q9COzX~T~;U> ziuIY@zqcZAMZZ~A|8oS+iwN8e^+u)qnRse4K&2jg#SVPamfc38lvNhn zcu|7u_3F#V)scGT9cSAO^y-BA@5Bd-{<7O%`>udwO%*L$fQ8IW(r6lQ=G=^)BaPR7~*&0CCHGM~gS3t7aTCOk8bj~XGAfS`GWq;R%^^BLKG2