WHO SMART Guidelines - HIV
0.3.0 - ci-build

WHO SMART Guidelines - HIV - Local Development build (v0.3.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

: HIV.IND.92 Logic - TTL Representation

Draft as of 2024-12-06

Raw ttl | Download

@prefix fhir: <http://hl7.org/fhir/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

# - resource -------------------------------------------------------------------

 a fhir:Library ;
  fhir:nodeRole fhir:treeRoot ;
  fhir:id [ fhir:v "HIVIND92Logic"] ; # 
  fhir:meta [
    ( fhir:profile [
fhir:v "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary>     ] [
fhir:v "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary>     ] [
fhir:v "http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library>     ] [
fhir:v "http://hl7.org/fhir/uv/cql/StructureDefinition/cql-module"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/uv/cql/StructureDefinition/cql-module>     ] )
  ] ; # 
  fhir:text [
fhir:status [ fhir:v "extensions" ] ;
fhir:div "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n<div>\n    <table class=\"grid dict\">\n        \n        \n        <tr>\n            <th scope=\"row\"><b>Title: </b></th>\n            <td style=\"padding-left: 4px;\">HIV.IND.92 Logic</td>\n        </tr>\n        \n\n        \n        \n        <tr>\n            <th scope=\"row\"><b>Id: </b></th>\n            <td style=\"padding-left: 4px;\">HIVIND92Logic</td>\n        </tr>\n        \n\n        \n        \n        <tr>\n            <th scope=\"row\"><b>Version: </b></th>\n            <td style=\"padding-left: 4px;\">0.3.0</td>\n        </tr>\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Url: </b></th>\n            <td style=\"padding-left: 4px;\"><a href=\"Library-HIVIND92Logic.html\">HIV.IND.92 Logic</a></td>\n        </tr>\n        \n\n        \n\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Status: </b></th>\n            <td style=\"padding-left: 4px;\">draft</td>\n        </tr>\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Experimental: </b></th>\n            <td style=\"padding-left: 4px;\">true</td>\n        </tr>\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Type: </b></th>\n            <td style=\"padding-left: 4px;\">\n                \n                    \n                        \n                        <p style=\"margin-bottom: 5px;\">\n                            <b>system: </b> <span><a href=\"http://hl7.org/fhir/R4/codesystem-library-type.html\">http://terminology.hl7.org/CodeSystem/library-type</a></span>\n                        </p>\n                        \n                        \n                        <p style=\"margin-bottom: 5px;\">\n                            <b>code: </b> <span>logic-library</span>\n                        </p>\n                        \n                        \n                    \n                \n                \n            </td>\n        </tr>\n        \n\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Date: </b></th>\n            <td style=\"padding-left: 4px;\">2024-12-06 22:28:12+0000</td>\n        </tr>\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Publisher: </b></th>\n            <td style=\"padding-left: 4px;\">WHO</td>\n        </tr>\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Description: </b></th>\n            <td style=\"padding-left: 4px;\"><div><p>% of people living with HIV and co-infected with HCV who were confirmed to be cured of HCV during the reporting period</p>\n</div></td>\n        </tr>\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n        \n        <tr>\n          <td colspan=\"2\">\n            <table>\n              <tr><th><a id=\"cql-content\"><b>Content: </b></a> text/cql</th></tr>\n              <tr><td><pre><code class=\"language-cql\">/**\n * Library: HIV.IND.92 Logic\n * Ref No: HEP.7\n * Short Name: HCV cured among people living with HIV\n *\n * Definition: % of people living with HIV and co-infected with HCV who were confirmed to be cured of HCV during the reporting period\n *\n * Numerator: Number of people living with HIV diagnosed with HCV infection who have completed HCV treatment and had a sustained virological response (SVR). SVR is assessed by a viral load measurement 12–24 weeks after the end of treatment.\n * Numerator Calculation: COUNT of clients with &quot;HIV status&quot;='HIV-positive' with &quot;HCV treatment completion date&quot; in the reporting period AND with &quot;HCV viral load test date&quot; is BETWEEN '12, 24' weeks after &quot;HCV treatment completion date&quot; AND &quot;HCV viral load test result&quot;='Not detected'\n * Numerator Exclusions: \n *\n * Denominator: Number of people living with HIV and co-infected with HCV who completed HCV treatment and were assessed for sustained virological response\n * Denominator Calculation: COUNT of clients with &quot;HIV status&quot;='HIV-positive' with &quot;HCV treatment completion date&quot; in the reporting period AND with &quot;HCV viral load test date&quot; is BETWEEN '12, 24' weeks after &quot;HCV treatment completion date&quot;\n * Denominator Exclusions: \n *\n * Disaggregations:\n * • Gender (female, male, other*) \n *  • Age (15–19, 20–24, 25–29, 30–49, 50+ years) \n *  • 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)** \n *  • Cities and other administrative regions of epidemiologic importance \n *  • Medicine type (interferon or direct acting antivirals)\n *\n * Disaggregation Elements: Gender | Age | Key population member type | HCV medicine type\n *\n * Numerator and Denominator Elements:\n * HCV treatment completion date \n *  HCV viral load test date \n *  HCV viral load test result \n *  HIV status\n *\n * Reference: Consolidated guidelines on person-centred HIV strategic information: strengthening routine data for impact. Geneva: World Health Organization; 2022\n * \n * Data Concepts:\n * HIV.A.DE17: Age | Calculated age (number of years) of the client based on date of birth\n * HIV.A.DE18: Gender* | Gender of the client*\n * HIV.A.DE19: Female | Client identifies as female\n * HIV.A.DE20: Male | Client identifies as male\n * HIV.A.DE21: Transgender male | Client identifies as transgender male\n * HIV.A.DE22: Transgender female | Client identifies as transgender female\n * HIV.A.DE23: Other | Additional category\n * HIV.B.DE50: Key population member type* | The type of key population that the client is included in\n * HIV.B.DE51: Sex worker | Client is a sex worker\n * HIV.B.DE52: Men who have sex with men | Client is a man who has sex with men\n * HIV.B.DE53: Trans and gender-diverse people | Client identifies as trans and gender-diverse\n * HIV.B.DE54: People who inject drugs | Client is a person who injects drugs\n * HIV.B.DE55: People living in prisons and other closed settings | Client lives in a prison or another closed setting\n * HIV.B.DE115: HIV status | HIV status reported after applying the national HIV testing algorithm. No single HIV test can provide an HIV-positive diagnosis.\n * HIV.B.DE116: HIV-positive | Client is HIV-positive\n * HIV.B.DE117: HIV-negative | Client is HIV-negative\n * HIV.B.DE118: Unknown | Client has unknown HIV status\n * HIV.D.DE176: HCV treatment completion date | Date when client completed treatment for hepatitis C virus (HCV)\n * HIV.D.DE178: HCV viral load test date | Hepatitis C viral load test date\n * HIV.D.DE179: HCV viral load test result | Hepatitis C viral load test result (qualitative)\n * HIV.D.DE180: Detected | HCV was detected\n * HIV.D.DE181: Not detected | HCV was not detected\n * HIV.D.DE182: HCV medicine type | Type of medicine client is prescribed\n * HIV.D.DE183: Interferon | Client is prescribed interferon\n * HIV.D.DE184: Direct acting antivirals | Client is prescribed direct acting antivirals\n * HIV.E.DE114: Key population member type* | The type of key population that the infant's mother is included in\n * HIV.E.DE115: Sex worker | Infant's mother is a sex worker\n * HIV.E.DE116: People who inject drugs | Infant's mother is a person who injects drugs\n * HIV.E.DE117: Trans and gender-diverse people | Infant's mother identifies as trans and gender-diverse\n * HIV.E.DE118: People living in prisons and other closed setting | Infant's mother is in a prison or closed setting\n * HIV.G.DE47: HCV viral load test date | Hepatitis C viral load test date\n * HIV.G.DE48: HCV viral load test result | Hepatitis C viral load test result (qualitative)\n * HIV.G.DE49: Detected | HCV was detected\n * HIV.G.DE50: Not detected | HCV was not detected\n *\n * Additional Context\n * - what it measures: Measures how many are cured among all those who completed treatment.\n * - rationale: Short courses of HCV treatment with direct acting antivirals (DAAs) lead to cure in &gt;90% of patients and reduce mortality. Information on sustained viral response (cure) for HCV will measure treatment effectiveness and provide an incentive system, for example, cure certificates.\n * - method: Programme records, cohort studies, patient monitoring tools (electronic or paper), EMR/ electronic information systems, combined with best estimates for the population with no viral load data\n * \n * Suggested Scoring Method: proportion | http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/proportion-measure-cqfm\n */\n\n/*\n * Profiles:\n * - HivStatus\n * - HcvTreatment\n * - HcvViralLoadResult\n */\n \nlibrary HIVIND92Logic\n\n// Included Libraries\nusing FHIR version '4.0.1'\n\ninclude HIVCommon version '0.0.1' called HIC\ninclude FHIRHelpers version '4.0.1'\n\ninclude WHOCommon called WCom\ninclude HIVElements called HE\ninclude HIVIndicatorElements called HIE\ninclude HIVConfig called Config\n\n// Indicator Definition\nparameter &quot;Measurement Period&quot; Interval&lt;Date&gt; default Interval[@2023-01-01, @2023-01-30]\n\ncontext Patient\n/* Populations */\n\n/*\n *Initial Population\n */\n\ndefine &quot;Initial Population&quot;:\n  true\n\n/**\n * Numerator\n * \n * Definition: Number of people living with HIV diagnosed with HCV infection who have completed HCV treatment and had a sustained virological response (SVR). SVR is assessed by a viral load measurement 12–24 weeks after the end of treatment.\n * Calculation: COUNT of clients with &quot;HIV status&quot;='HIV-positive' with &quot;HCV treatment completion date&quot; in the reporting period AND with &quot;HCV viral load test date&quot; is BETWEEN '12, 24' weeks after &quot;HCV treatment completion date&quot; AND &quot;HCV viral load test result&quot;='Not detected'\n */\n\ndefine &quot;Numerator&quot;:\n  HIE.&quot;Has HIV-positive Status&quot; and\n  exists(HIE.&quot;HCV treatment completion date&quot; d) and\n  exists(\n    HE.&quot;Not detected D.DE181&quot; O \n    with HE.&quot;HCV viral load test date D.DE178&quot; P\n    such that O.partOf.references(P) and (weeks between end of P.performed.toInterval() and date from end of Last(HE.&quot;HCV treatment completion date&quot;).effective.toInterval()&gt; 12 weeks) and \n    (weeks between end of P.performed.toInterval() and date from end of Last(HE.&quot;HCV treatment completion date&quot;).effective.toInterval()&lt; 24 weeks)\n  )\n\n\n/**\n * Denominator\n *\n * Definition: Number of people living with HIV and co-infected with HCV who completed HCV treatment and were assessed for sustained virological response\n * Calculation: COUNT of clients with &quot;HIV status&quot;='HIV-positive' with &quot;HCV treatment completion date&quot; in the reporting period AND with &quot;HCV viral load test date&quot; is BETWEEN '12, 24' weeks after &quot;HCV treatment completion date&quot;\n */\n\ndefine &quot;Denominator&quot;:\n  HIE.&quot;Has HIV-positive Status&quot; and\n  exists(HE.&quot;Positive D.DE171&quot; G\n  with HE.&quot;HCV test date D.DE169&quot; P\n  such that G.partOf.references(P) and P.performed.toInterval() during &quot;Measurement Period&quot;) and\n  HIE.&quot;HCV treatment completion date&quot; and\n  exists(\n    HE.&quot;HCV viral load test date D.DE178&quot; P\n    where (weeks between end of P.performed.toInterval() and date from end of Last(HE.&quot;HCV treatment completion date&quot;).effective.toInterval()&gt; 12 weeks) and \n    (weeks between end of P.performed.toInterval() and date from end of Last(HE.&quot;HCV treatment completion date&quot;).effective.toInterval()&lt; 24 weeks)\n  )\n    \n\n/* end Populations */\n\n\n/*\n * Disaggregators\n */\n\ndefine &quot;Administrative Gender Stratifier&quot;:\n	HIE.&quot;By Administrative Gender Stratifier&quot;\n\ndefine &quot;Age Stratifier&quot;:\n	HIE.&quot;By Age Stratifier 2&quot;\n\ndefine &quot;Geographic Region Stratifier&quot;:\n	HIE.&quot;By Geographic Region Stratifier&quot;\n\ndefine &quot;patientGroups Stratifier&quot;:\n	HIE.&quot;patientGroups&quot;\n\ndefine &quot;By HCV medicine type Stratifier&quot;:\n	HIE.&quot;By HCV medicine type Stratifier&quot;\n\n\ndefine &quot;Stratification&quot;:\n HIE.&quot;By Administrative Gender Stratifier&quot;.code \n  + ':' + HIE.&quot;By Age Stratifier 2&quot;\n+ ':' + HIE.&quot;By Geographic Region Stratifier&quot;\n+ Combine(HIE.patientGroups, ':')\n+ HIE.&quot;By HCV medicine type Stratifier&quot;.code </code></pre></td></tr>\n            </table>\n          </td>\n        </tr>\n        \n        \n        \n        \n        \n        <tr>\n          <td colspan=\"2\">\n            <table>\n              <tr><th><b>Content: </b> application/elm+xml</th></tr>\n              <tr><td><pre><code/></pre></td></tr>\n            </table>\n          </td>\n        </tr>\n        \n        \n    </table>\n</div>\n</div>"
  ] ; # 
  fhir:extension ( [
fhir:url [ fhir:v "http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability"^^xsd:anyURI ] ;
fhir:value [ fhir:v "computable" ]
  ] ) ; # 
  fhir:url [ fhir:v "http://smart.who.int/hiv/Library/HIVIND92Logic"^^xsd:anyURI] ; # 
  fhir:version [ fhir:v "0.3.0"] ; # 
  fhir:name [ fhir:v "HIVIND92Logic"] ; # 
  fhir:title [ fhir:v "HIV.IND.92 Logic"] ; # 
  fhir:status [ fhir:v "draft"] ; # 
  fhir:experimental [ fhir:v "true"^^xsd:boolean] ; # 
  fhir:type [
    ( fhir:coding [
fhir:system [ fhir:v "http://terminology.hl7.org/CodeSystem/library-type"^^xsd:anyURI ] ;
fhir:code [ fhir:v "logic-library" ]     ] )
  ] ; # 
  fhir:date [ fhir:v "2024-12-06T22:28:12+00:00"^^xsd:dateTime] ; # 
  fhir:publisher [ fhir:v "WHO"] ; # 
  fhir:contact ( [
fhir:name [ fhir:v "WHO" ] ;
    ( fhir:telecom [
fhir:system [ fhir:v "url" ] ;
fhir:value [ fhir:v "http://who.int" ]     ] )
  ] ) ; # 
  fhir:description [ fhir:v "% of people living with HIV and co-infected with HCV who were confirmed to be cured of HCV during the reporting period"] ; # 
  fhir:content ( [
fhir:contentType [ fhir:v "text/cql" ] ;
fhir:data [ fhir:v "LyoqCiAqIExpYnJhcnk6IEhJVi5JTkQuOTIgTG9naWMKICogUmVmIE5vOiBIRVAuNwogKiBTaG9ydCBOYW1lOiBIQ1YgY3VyZWQgYW1vbmcgcGVvcGxlIGxpdmluZyB3aXRoIEhJVgogKgogKiBEZWZpbml0aW9uOiAlIG9mIHBlb3BsZSBsaXZpbmcgd2l0aCBISVYgYW5kIGNvLWluZmVjdGVkIHdpdGggSENWIHdobyB3ZXJlIGNvbmZpcm1lZCB0byBiZSBjdXJlZCBvZiBIQ1YgZHVyaW5nIHRoZSByZXBvcnRpbmcgcGVyaW9kCiAqCiAqIE51bWVyYXRvcjogTnVtYmVyIG9mIHBlb3BsZSBsaXZpbmcgd2l0aCBISVYgZGlhZ25vc2VkIHdpdGggSENWIGluZmVjdGlvbiB3aG8gaGF2ZSBjb21wbGV0ZWQgSENWIHRyZWF0bWVudCBhbmQgaGFkIGEgc3VzdGFpbmVkIHZpcm9sb2dpY2FsIHJlc3BvbnNlIChTVlIpLiBTVlIgaXMgYXNzZXNzZWQgYnkgYSB2aXJhbCBsb2FkIG1lYXN1cmVtZW50IDEy4oCTMjQgd2Vla3MgYWZ0ZXIgdGhlIGVuZCBvZiB0cmVhdG1lbnQuCiAqIE51bWVyYXRvciBDYWxjdWxhdGlvbjogQ09VTlQgb2YgY2xpZW50cyB3aXRoICJISVYgc3RhdHVzIj0nSElWLXBvc2l0aXZlJyB3aXRoICJIQ1YgdHJlYXRtZW50IGNvbXBsZXRpb24gZGF0ZSIgaW4gdGhlIHJlcG9ydGluZyBwZXJpb2QgQU5EIHdpdGggIkhDViB2aXJhbCBsb2FkIHRlc3QgZGF0ZSIgaXMgQkVUV0VFTiAnMTIsIDI0JyB3ZWVrcyBhZnRlciAiSENWIHRyZWF0bWVudCBjb21wbGV0aW9uIGRhdGUiIEFORCAiSENWIHZpcmFsIGxvYWQgdGVzdCByZXN1bHQiPSdOb3QgZGV0ZWN0ZWQnCiAqIE51bWVyYXRvciBFeGNsdXNpb25zOiAKICoKICogRGVub21pbmF0b3I6IE51bWJlciBvZiBwZW9wbGUgbGl2aW5nIHdpdGggSElWIGFuZCBjby1pbmZlY3RlZCB3aXRoIEhDViB3aG8gY29tcGxldGVkIEhDViB0cmVhdG1lbnQgYW5kIHdlcmUgYXNzZXNzZWQgZm9yIHN1c3RhaW5lZCB2aXJvbG9naWNhbCByZXNwb25zZQogKiBEZW5vbWluYXRvciBDYWxjdWxhdGlvbjogQ09VTlQgb2YgY2xpZW50cyB3aXRoICJISVYgc3RhdHVzIj0nSElWLXBvc2l0aXZlJyB3aXRoICJIQ1YgdHJlYXRtZW50IGNvbXBsZXRpb24gZGF0ZSIgaW4gdGhlIHJlcG9ydGluZyBwZXJpb2QgQU5EIHdpdGggIkhDViB2aXJhbCBsb2FkIHRlc3QgZGF0ZSIgaXMgQkVUV0VFTiAnMTIsIDI0JyB3ZWVrcyBhZnRlciAiSENWIHRyZWF0bWVudCBjb21wbGV0aW9uIGRhdGUiCiAqIERlbm9taW5hdG9yIEV4Y2x1c2lvbnM6IAogKgogKiBEaXNhZ2dyZWdhdGlvbnM6CiAqIOKAosKgR2VuZGVyIChmZW1hbGUsIG1hbGUsIG90aGVyKikgCiAqICDigKIgQWdlICgxNeKAkzE5LCAyMOKAkzI0LCAyNeKAkzI5LCAzMOKAkzQ5LCA1MCsgeWVhcnMpIAogKiAg4oCiwqBLZXkgcG9wdWxhdGlvbnMgKG1lbiB3aG8gaGF2ZSBzZXggd2l0aCBtZW4sIHBlb3BsZSBsaXZpbmcgaW4gcHJpc29ucyBhbmQgb3RoZXIgY2xvc2VkIHNldHRpbmdzLCBwZW9wbGUgd2hvIGluamVjdCBkcnVncywgc2V4IHdvcmtlcnMsIHRyYW5zIGFuZCBnZW5kZXIgZGl2ZXJzZSBwZW9wbGUpKiogCiAqICDigKLCoENpdGllcyBhbmQgb3RoZXIgYWRtaW5pc3RyYXRpdmUgcmVnaW9ucyBvZiBlcGlkZW1pb2xvZ2ljIGltcG9ydGFuY2UgCiAqICDigKLCoE1lZGljaW5lIHR5cGUgKGludGVyZmVyb24gb3IgZGlyZWN0IGFjdGluZyBhbnRpdmlyYWxzKQogKgogKiBEaXNhZ2dyZWdhdGlvbiBFbGVtZW50czogR2VuZGVyIHwgQWdlIHwgS2V5IHBvcHVsYXRpb24gbWVtYmVyIHR5cGUgfCBIQ1YgbWVkaWNpbmUgdHlwZQogKgogKiBOdW1lcmF0b3IgYW5kIERlbm9taW5hdG9yIEVsZW1lbnRzOgogKiBIQ1YgdHJlYXRtZW50IGNvbXBsZXRpb24gZGF0ZSAKICogIEhDViB2aXJhbCBsb2FkIHRlc3QgZGF0ZSAKICogIEhDViB2aXJhbCBsb2FkIHRlc3QgcmVzdWx0IAogKiAgSElWIHN0YXR1cwogKgogKiBSZWZlcmVuY2U6IENvbnNvbGlkYXRlZCBndWlkZWxpbmVzIG9uIHBlcnNvbi1jZW50cmVkIEhJViBzdHJhdGVnaWMgaW5mb3JtYXRpb246IHN0cmVuZ3RoZW5pbmcgcm91dGluZSBkYXRhIGZvciBpbXBhY3QuIEdlbmV2YTogV29ybGQgSGVhbHRoIE9yZ2FuaXphdGlvbjsgMjAyMgogKiAKICogRGF0YSBDb25jZXB0czoKICogSElWLkEuREUxNzogQWdlIHwgQ2FsY3VsYXRlZCBhZ2UgKG51bWJlciBvZiB5ZWFycykgb2YgdGhlIGNsaWVudCBiYXNlZCBvbiBkYXRlIG9mIGJpcnRoCiAqIEhJVi5BLkRFMTg6IEdlbmRlciogfCBHZW5kZXIgb2YgdGhlIGNsaWVudCoKICogSElWLkEuREUxOTogRmVtYWxlIHwgQ2xpZW50IGlkZW50aWZpZXMgYXMgZmVtYWxlCiAqIEhJVi5BLkRFMjA6IE1hbGUgfCBDbGllbnQgaWRlbnRpZmllcyBhcyBtYWxlCiAqIEhJVi5BLkRFMjE6IFRyYW5zZ2VuZGVyIG1hbGUgfCBDbGllbnQgaWRlbnRpZmllcyBhcyB0cmFuc2dlbmRlciBtYWxlCiAqIEhJVi5BLkRFMjI6IFRyYW5zZ2VuZGVyIGZlbWFsZSB8IENsaWVudCBpZGVudGlmaWVzIGFzIHRyYW5zZ2VuZGVyIGZlbWFsZQogKiBISVYuQS5ERTIzOiBPdGhlciB8IEFkZGl0aW9uYWwgY2F0ZWdvcnkKICogSElWLkIuREU1MDogS2V5IHBvcHVsYXRpb24gbWVtYmVyIHR5cGUqIHwgVGhlIHR5cGUgb2Yga2V5IHBvcHVsYXRpb24gdGhhdCB0aGUgY2xpZW50IGlzIGluY2x1ZGVkIGluCiAqIEhJVi5CLkRFNTE6IFNleCB3b3JrZXIgfCBDbGllbnQgaXMgYSBzZXggd29ya2VyCiAqIEhJVi5CLkRFNTI6IE1lbiB3aG8gaGF2ZSBzZXggd2l0aCBtZW4gfCBDbGllbnQgaXMgYSBtYW4gd2hvIGhhcyBzZXggd2l0aCBtZW4KICogSElWLkIuREU1MzogVHJhbnMgYW5kIGdlbmRlci1kaXZlcnNlIHBlb3BsZSB8IENsaWVudCBpZGVudGlmaWVzIGFzIHRyYW5zIGFuZCBnZW5kZXItZGl2ZXJzZQogKiBISVYuQi5ERTU0OiBQZW9wbGUgd2hvIGluamVjdCBkcnVncyB8IENsaWVudCBpcyBhIHBlcnNvbiB3aG8gaW5qZWN0cyBkcnVncwogKiBISVYuQi5ERTU1OiBQZW9wbGUgbGl2aW5nIGluIHByaXNvbnMgYW5kIG90aGVyIGNsb3NlZCBzZXR0aW5ncyB8IENsaWVudCBsaXZlcyBpbiBhIHByaXNvbiBvciBhbm90aGVyIGNsb3NlZCBzZXR0aW5nCiAqIEhJVi5CLkRFMTE1OiBISVYgc3RhdHVzIHwgSElWIHN0YXR1cyByZXBvcnRlZCBhZnRlciBhcHBseWluZyB0aGUgbmF0aW9uYWwgSElWIHRlc3RpbmcgYWxnb3JpdGhtLiBObyBzaW5nbGUgSElWIHRlc3QgY2FuIHByb3ZpZGUgYW4gSElWLXBvc2l0aXZlIGRpYWdub3Npcy4KICogSElWLkIuREUxMTY6IEhJVi1wb3NpdGl2ZSB8IENsaWVudCBpcyBISVYtcG9zaXRpdmUKICogSElWLkIuREUxMTc6IEhJVi1uZWdhdGl2ZSB8IENsaWVudCBpcyBISVYtbmVnYXRpdmUKICogSElWLkIuREUxMTg6IFVua25vd24gfCBDbGllbnQgaGFzIHVua25vd24gSElWIHN0YXR1cwogKiBISVYuRC5ERTE3NjogSENWIHRyZWF0bWVudCBjb21wbGV0aW9uIGRhdGUgfCBEYXRlIHdoZW4gY2xpZW50IGNvbXBsZXRlZCB0cmVhdG1lbnQgZm9yIGhlcGF0aXRpcyBDIHZpcnVzIChIQ1YpCiAqIEhJVi5ELkRFMTc4OiBIQ1YgdmlyYWwgbG9hZCB0ZXN0IGRhdGUgfCBIZXBhdGl0aXMgQyB2aXJhbCBsb2FkIHRlc3QgZGF0ZQogKiBISVYuRC5ERTE3OTogSENWIHZpcmFsIGxvYWQgdGVzdCByZXN1bHQgfCBIZXBhdGl0aXMgQyB2aXJhbCBsb2FkIHRlc3QgcmVzdWx0IChxdWFsaXRhdGl2ZSkKICogSElWLkQuREUxODA6IERldGVjdGVkIHwgSENWIHdhcyBkZXRlY3RlZAogKiBISVYuRC5ERTE4MTogTm90IGRldGVjdGVkIHwgSENWIHdhcyBub3QgZGV0ZWN0ZWQKICogSElWLkQuREUxODI6IEhDViBtZWRpY2luZSB0eXBlIHwgVHlwZSBvZiBtZWRpY2luZSBjbGllbnQgaXMgcHJlc2NyaWJlZAogKiBISVYuRC5ERTE4MzogSW50ZXJmZXJvbiB8IENsaWVudCBpcyBwcmVzY3JpYmVkIGludGVyZmVyb24KICogSElWLkQuREUxODQ6IERpcmVjdCBhY3RpbmcgYW50aXZpcmFscyB8IENsaWVudCBpcyBwcmVzY3JpYmVkIGRpcmVjdCBhY3RpbmcgYW50aXZpcmFscwogKiBISVYuRS5ERTExNDogS2V5IHBvcHVsYXRpb24gbWVtYmVyIHR5cGUqIHwgVGhlIHR5cGUgb2Yga2V5IHBvcHVsYXRpb24gdGhhdCB0aGUgaW5mYW50J3MgbW90aGVyIGlzIGluY2x1ZGVkIGluCiAqIEhJVi5FLkRFMTE1OiBTZXggd29ya2VyIHwgSW5mYW50J3MgbW90aGVyIGlzIGEgc2V4IHdvcmtlcgogKiBISVYuRS5ERTExNjogUGVvcGxlIHdobyBpbmplY3QgZHJ1Z3MgfCBJbmZhbnQncyBtb3RoZXIgaXMgYSBwZXJzb24gd2hvIGluamVjdHMgZHJ1Z3MKICogSElWLkUuREUxMTc6IFRyYW5zIGFuZCBnZW5kZXItZGl2ZXJzZSBwZW9wbGUgfCBJbmZhbnQncyBtb3RoZXIgaWRlbnRpZmllcyBhcyB0cmFucyBhbmQgZ2VuZGVyLWRpdmVyc2UKICogSElWLkUuREUxMTg6IFBlb3BsZSBsaXZpbmcgaW4gcHJpc29ucyBhbmQgb3RoZXIgY2xvc2VkIHNldHRpbmcgfCBJbmZhbnQncyBtb3RoZXIgaXMgaW4gYSBwcmlzb24gb3IgY2xvc2VkIHNldHRpbmcKICogSElWLkcuREU0NzogSENWIHZpcmFsIGxvYWQgdGVzdCBkYXRlIHwgSGVwYXRpdGlzIEMgdmlyYWwgbG9hZCB0ZXN0IGRhdGUKICogSElWLkcuREU0ODogSENWIHZpcmFsIGxvYWQgdGVzdCByZXN1bHQgfCBIZXBhdGl0aXMgQyB2aXJhbCBsb2FkIHRlc3QgcmVzdWx0IChxdWFsaXRhdGl2ZSkKICogSElWLkcuREU0OTogRGV0ZWN0ZWQgfCBIQ1Ygd2FzIGRldGVjdGVkCiAqIEhJVi5HLkRFNTA6IE5vdCBkZXRlY3RlZCB8IEhDViB3YXMgbm90IGRldGVjdGVkCiAqCiAqIEFkZGl0aW9uYWwgQ29udGV4dAogKiAtIHdoYXQgaXQgbWVhc3VyZXM6IE1lYXN1cmVzIGhvdyBtYW55IGFyZSBjdXJlZCBhbW9uZyBhbGwgdGhvc2Ugd2hvIGNvbXBsZXRlZCB0cmVhdG1lbnQuCiAqIC0gcmF0aW9uYWxlOiBTaG9ydCBjb3Vyc2VzIG9mIEhDViB0cmVhdG1lbnQgd2l0aCBkaXJlY3QgYWN0aW5nIGFudGl2aXJhbHMgKERBQXMpIGxlYWQgdG8gY3VyZSBpbiA+OTAlIG9mIHBhdGllbnRzIGFuZCByZWR1Y2UgbW9ydGFsaXR5LiBJbmZvcm1hdGlvbiBvbiBzdXN0YWluZWQgdmlyYWwgcmVzcG9uc2UgKGN1cmUpIGZvciBIQ1Ygd2lsbCBtZWFzdXJlIHRyZWF0bWVudCBlZmZlY3RpdmVuZXNzIGFuZCBwcm92aWRlIGFuIGluY2VudGl2ZSBzeXN0ZW0sIGZvciBleGFtcGxlLCBjdXJlIGNlcnRpZmljYXRlcy4KICogLSBtZXRob2Q6IFByb2dyYW1tZSByZWNvcmRzLCBjb2hvcnQgc3R1ZGllcywgcGF0aWVudCBtb25pdG9yaW5nIHRvb2xzIChlbGVjdHJvbmljIG9yIHBhcGVyKSwgRU1SLyBlbGVjdHJvbmljIGluZm9ybWF0aW9uIHN5c3RlbXMsIGNvbWJpbmVkIHdpdGggYmVzdCBlc3RpbWF0ZXMgZm9yIHRoZSBwb3B1bGF0aW9uIHdpdGggbm8gdmlyYWwgbG9hZCBkYXRhCiAqIAogKiBTdWdnZXN0ZWQgU2NvcmluZyBNZXRob2Q6IHByb3BvcnRpb24gfCBodHRwOi8vaGw3Lm9yZy9maGlyL3VzL2NxZm1lYXN1cmVzL1N0cnVjdHVyZURlZmluaXRpb24vcHJvcG9ydGlvbi1tZWFzdXJlLWNxZm0KICovCgovKgogKiBQcm9maWxlczoKICogLSBIaXZTdGF0dXMKICogLSBIY3ZUcmVhdG1lbnQKICogLSBIY3ZWaXJhbExvYWRSZXN1bHQKICovCiAKbGlicmFyeSBISVZJTkQ5MkxvZ2ljCgovLyBJbmNsdWRlZCBMaWJyYXJpZXMKdXNpbmcgRkhJUiB2ZXJzaW9uICc0LjAuMScKCmluY2x1ZGUgSElWQ29tbW9uIHZlcnNpb24gJzAuMC4xJyBjYWxsZWQgSElDCmluY2x1ZGUgRkhJUkhlbHBlcnMgdmVyc2lvbiAnNC4wLjEnCgppbmNsdWRlIFdIT0NvbW1vbiBjYWxsZWQgV0NvbQppbmNsdWRlIEhJVkVsZW1lbnRzIGNhbGxlZCBIRQppbmNsdWRlIEhJVkluZGljYXRvckVsZW1lbnRzIGNhbGxlZCBISUUKaW5jbHVkZSBISVZDb25maWcgY2FsbGVkIENvbmZpZwoKLy8gSW5kaWNhdG9yIERlZmluaXRpb24KcGFyYW1ldGVyICJNZWFzdXJlbWVudCBQZXJpb2QiIEludGVydmFsPERhdGU+IGRlZmF1bHQgSW50ZXJ2YWxbQDIwMjMtMDEtMDEsIEAyMDIzLTAxLTMwXQoKY29udGV4dCBQYXRpZW50Ci8qIFBvcHVsYXRpb25zICovCgovKgogKkluaXRpYWwgUG9wdWxhdGlvbgogKi8KCmRlZmluZSAiSW5pdGlhbCBQb3B1bGF0aW9uIjoKICB0cnVlCgovKioKICogTnVtZXJhdG9yCiAqIAogKiBEZWZpbml0aW9uOiBOdW1iZXIgb2YgcGVvcGxlIGxpdmluZyB3aXRoIEhJViBkaWFnbm9zZWQgd2l0aCBIQ1YgaW5mZWN0aW9uIHdobyBoYXZlIGNvbXBsZXRlZCBIQ1YgdHJlYXRtZW50IGFuZCBoYWQgYSBzdXN0YWluZWQgdmlyb2xvZ2ljYWwgcmVzcG9uc2UgKFNWUikuIFNWUiBpcyBhc3Nlc3NlZCBieSBhIHZpcmFsIGxvYWQgbWVhc3VyZW1lbnQgMTLigJMyNCB3ZWVrcyBhZnRlciB0aGUgZW5kIG9mIHRyZWF0bWVudC4KICogQ2FsY3VsYXRpb246IENPVU5UIG9mIGNsaWVudHMgd2l0aCAiSElWIHN0YXR1cyI9J0hJVi1wb3NpdGl2ZScgd2l0aCAiSENWIHRyZWF0bWVudCBjb21wbGV0aW9uIGRhdGUiIGluIHRoZSByZXBvcnRpbmcgcGVyaW9kIEFORCB3aXRoICJIQ1YgdmlyYWwgbG9hZCB0ZXN0IGRhdGUiIGlzIEJFVFdFRU4gJzEyLCAyNCcgd2Vla3MgYWZ0ZXIgIkhDViB0cmVhdG1lbnQgY29tcGxldGlvbiBkYXRlIiBBTkQgIkhDViB2aXJhbCBsb2FkIHRlc3QgcmVzdWx0Ij0nTm90IGRldGVjdGVkJwogKi8KCmRlZmluZSAiTnVtZXJhdG9yIjoKICBISUUuIkhhcyBISVYtcG9zaXRpdmUgU3RhdHVzIiBhbmQKICBleGlzdHMoSElFLiJIQ1YgdHJlYXRtZW50IGNvbXBsZXRpb24gZGF0ZSIgZCkgYW5kCiAgZXhpc3RzKAogICAgSEUuIk5vdCBkZXRlY3RlZCBELkRFMTgxIiBPIAogICAgd2l0aCBIRS4iSENWIHZpcmFsIGxvYWQgdGVzdCBkYXRlIEQuREUxNzgiIFAKICAgIHN1Y2ggdGhhdCBPLnBhcnRPZi5yZWZlcmVuY2VzKFApIGFuZCAod2Vla3MgYmV0d2VlbiBlbmQgb2YgUC5wZXJmb3JtZWQudG9JbnRlcnZhbCgpIGFuZCBkYXRlIGZyb20gZW5kIG9mIExhc3QoSEUuIkhDViB0cmVhdG1lbnQgY29tcGxldGlvbiBkYXRlIikuZWZmZWN0aXZlLnRvSW50ZXJ2YWwoKT4gMTIgd2Vla3MpIGFuZCAKICAgICh3ZWVrcyBiZXR3ZWVuIGVuZCBvZiBQLnBlcmZvcm1lZC50b0ludGVydmFsKCkgYW5kIGRhdGUgZnJvbSBlbmQgb2YgTGFzdChIRS4iSENWIHRyZWF0bWVudCBjb21wbGV0aW9uIGRhdGUiKS5lZmZlY3RpdmUudG9JbnRlcnZhbCgpPCAyNCB3ZWVrcykKICApCgoKLyoqCiAqIERlbm9taW5hdG9yCiAqCiAqIERlZmluaXRpb246IE51bWJlciBvZiBwZW9wbGUgbGl2aW5nIHdpdGggSElWIGFuZCBjby1pbmZlY3RlZCB3aXRoIEhDViB3aG8gY29tcGxldGVkIEhDViB0cmVhdG1lbnQgYW5kIHdlcmUgYXNzZXNzZWQgZm9yIHN1c3RhaW5lZCB2aXJvbG9naWNhbCByZXNwb25zZQogKiBDYWxjdWxhdGlvbjogQ09VTlQgb2YgY2xpZW50cyB3aXRoICJISVYgc3RhdHVzIj0nSElWLXBvc2l0aXZlJyB3aXRoICJIQ1YgdHJlYXRtZW50IGNvbXBsZXRpb24gZGF0ZSIgaW4gdGhlIHJlcG9ydGluZyBwZXJpb2QgQU5EIHdpdGggIkhDViB2aXJhbCBsb2FkIHRlc3QgZGF0ZSIgaXMgQkVUV0VFTiAnMTIsIDI0JyB3ZWVrcyBhZnRlciAiSENWIHRyZWF0bWVudCBjb21wbGV0aW9uIGRhdGUiCiAqLwoKZGVmaW5lICJEZW5vbWluYXRvciI6CiAgSElFLiJIYXMgSElWLXBvc2l0aXZlIFN0YXR1cyIgYW5kCiAgZXhpc3RzKEhFLiJQb3NpdGl2ZSBELkRFMTcxIiBHCiAgd2l0aCBIRS4iSENWIHRlc3QgZGF0ZSBELkRFMTY5IiBQCiAgc3VjaCB0aGF0IEcucGFydE9mLnJlZmVyZW5jZXMoUCkgYW5kIFAucGVyZm9ybWVkLnRvSW50ZXJ2YWwoKSBkdXJpbmcgIk1lYXN1cmVtZW50IFBlcmlvZCIpIGFuZAogIEhJRS4iSENWIHRyZWF0bWVudCBjb21wbGV0aW9uIGRhdGUiIGFuZAogIGV4aXN0cygKICAgIEhFLiJIQ1YgdmlyYWwgbG9hZCB0ZXN0IGRhdGUgRC5ERTE3OCIgUAogICAgd2hlcmUgKHdlZWtzIGJldHdlZW4gZW5kIG9mIFAucGVyZm9ybWVkLnRvSW50ZXJ2YWwoKSBhbmQgZGF0ZSBmcm9tIGVuZCBvZiBMYXN0KEhFLiJIQ1YgdHJlYXRtZW50IGNvbXBsZXRpb24gZGF0ZSIpLmVmZmVjdGl2ZS50b0ludGVydmFsKCk+IDEyIHdlZWtzKSBhbmQgCiAgICAod2Vla3MgYmV0d2VlbiBlbmQgb2YgUC5wZXJmb3JtZWQudG9JbnRlcnZhbCgpIGFuZCBkYXRlIGZyb20gZW5kIG9mIExhc3QoSEUuIkhDViB0cmVhdG1lbnQgY29tcGxldGlvbiBkYXRlIikuZWZmZWN0aXZlLnRvSW50ZXJ2YWwoKTwgMjQgd2Vla3MpCiAgKQogICAgCgovKiBlbmQgUG9wdWxhdGlvbnMgKi8KCgovKgogKiBEaXNhZ2dyZWdhdG9ycwogKi8KCmRlZmluZSAiQWRtaW5pc3RyYXRpdmUgR2VuZGVyIFN0cmF0aWZpZXIiOgoJSElFLiJCeSBBZG1pbmlzdHJhdGl2ZSBHZW5kZXIgU3RyYXRpZmllciIKCmRlZmluZSAiQWdlIFN0cmF0aWZpZXIiOgoJSElFLiJCeSBBZ2UgU3RyYXRpZmllciAyIgoKZGVmaW5lICJHZW9ncmFwaGljIFJlZ2lvbiBTdHJhdGlmaWVyIjoKCUhJRS4iQnkgR2VvZ3JhcGhpYyBSZWdpb24gU3RyYXRpZmllciIKCmRlZmluZSAicGF0aWVudEdyb3VwcyBTdHJhdGlmaWVyIjoKCUhJRS4icGF0aWVudEdyb3VwcyIKCmRlZmluZSAiQnkgSENWIG1lZGljaW5lIHR5cGUgU3RyYXRpZmllciI6CglISUUuIkJ5IEhDViBtZWRpY2luZSB0eXBlIFN0cmF0aWZpZXIiCgoKZGVmaW5lICJTdHJhdGlmaWNhdGlvbiI6CiBISUUuIkJ5IEFkbWluaXN0cmF0aXZlIEdlbmRlciBTdHJhdGlmaWVyIi5jb2RlIAogICsgJzonICsgSElFLiJCeSBBZ2UgU3RyYXRpZmllciAyIgorICc6JyArIEhJRS4iQnkgR2VvZ3JhcGhpYyBSZWdpb24gU3RyYXRpZmllciIKKyBDb21iaW5lKEhJRS5wYXRpZW50R3JvdXBzLCAnOicpCisgSElFLiJCeSBIQ1YgbWVkaWNpbmUgdHlwZSBTdHJhdGlmaWVyIi5jb2RlIA=="^^xsd:base64Binary ]
  ] [
fhir:contentType [ fhir:v "application/elm+xml" ]
  ] ) . #