{
  "resourceType" : "Library",
  "id" : "CMS72FHIRSTKAntithromboticDay2",
  "text" : {
    "status" : "extensions",
    "div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n  <table class=\"narrative-table\">\n    <tbody>\n<tr>\n\n\n<th colspan=\"2\" scope=\"row\" class=\"row-header\"><a name=\"metadata\"> </a>Metadata</th>\n\n\n</tr>\n\n\n\n\n\n\n\n<tr>\n\n\n<th scope=\"row\" class=\"row-header\">Version</th>\n\n\n\n<td class=\"content-container\">1.1.000</td>\n\n\n</tr>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n<tr>\n\n\n<th scope=\"row\" class=\"row-header\">Status</th>\n\n\n\n<td class=\"content-container\">Draft</td>\n\n\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\n\n\n\n\n\n\n\n\n<tr>\n\n\n<th scope=\"row\" class=\"row-header\">Type</th>\n\n\n\n<td class=\"content-container\">\n    <a href=\"http://terminology.hl7.org/7.1.0/CodeSystem-library-type.html\">http://terminology.hl7.org/CodeSystem/library-type</a>#logic-library\n\n\n</td>\n\n\n</tr>\n\n\n\n\n\n\n\n\n\n\n\n\n\n<tr>\n\n\n<th colspan=\"2\" scope=\"row\" class=\"row-header\"><a name=\"parameters\"> </a>Parameters</th>\n\n\n</tr>\n\n\n<tr>\n\n\n<th scope=\"row\" class=\"row-header\">Parameter</th>\n\n\n\n<td class=\"content-container\">None</td>\n\n\n</tr>\n\n\n\n\n\n\n\n\n  <tr>\n\n\n<th colspan=\"2\" scope=\"row\" class=\"row-header\">Library Content</th>\n\n\n</tr>\n  \n    \n    <tr>\n      <th scope=\"row\" class=\"row-header\">CQL Content</th>\n      <td>\n        <a name=\"cql-content\"> </a>\n        <pre style=\"border: none;\" class=\"content-container highlight language-cql\"><code class=\"language-cql\">/*\nNOTE: For use by March 2026 US Realm Connectathon participants for internal use only. Not for use or distribution in commercial products.\n*/\nlibrary CMS72FHIRSTKAntithromboticDay2 version '1.1.000'\n\nusing USQualityCore version '0.1.0-cibuild'\nusing USCore version '6.1.0-derived'\nusing FHIR version '4.0.1'\n\ninclude hl7.fhir.uv.cql.FHIRHelpers version '4.0.1' called FHIRHelpers\ninclude hl7.fhir.uv.cql.FHIRCommon version '2.0.0' called FHIRCommon\ninclude hl7.fhir.us.cql.USCoreCommon version '2.0.0-ballot' called USCoreCommon\ninclude hl7.fhir.us.cql.USCoreElements version '2.0.0-ballot' called USCoreElements\n\ninclude CQMCommon version '5.1.000' called CQMCommon\ninclude USQualityCoreCommon version '0.1.0-cibuild' called USQualityCoreCommon\ninclude SupplementalDataElements version '6.1.000' called SDE\ninclude Status version '2.1.000' called Status\n\ninclude TJCOverall version '9.1.000' called TJC\n\nvalueset &quot;Antithrombotic Therapy for Ischemic Stroke&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.62'\nvalueset &quot;INR&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.213'\nvalueset &quot;Intravenous or Intraarterial Thrombolytic tPA Therapy Prior to Arrival&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.21'\nvalueset &quot;Intravenous or Intraarterial Thrombolytic tPA Therapy&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1045.21'\nvalueset &quot;Medical Reason for Not Providing Treatment&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.473'\nvalueset &quot;Patient Refusal&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.93'\nvalueset &quot;Pharmacological Contraindications For Antithrombotic Therapy&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.52'\nvalueset &quot;Thrombolytic tPA Therapy&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.226'\n\nparameter &quot;Measurement Period&quot; Interval&lt;DateTime&gt;\n  default Interval[@2026-01-01T00:00:00.000Z, @2027-01-01T00:00:00.000Z)\n\ncontext Patient\n\ndefine &quot;Initial Population&quot;:\n  TJC.&quot;Ischemic Stroke Encounter&quot;\n\ndefine &quot;Denominator&quot;:\n  &quot;Initial Population&quot;\n\ndefine &quot;Denominator Exclusions&quot;:\n  &quot;Encounter Less Than Two Days&quot;\n    union &quot;Encounter With Comfort Measures During Day Of Or Day After Arrival&quot;\n    union &quot;Encounter With Thrombolytic Therapy Given Prior To Arrival Or During Hospitalization&quot;\n\ndefine &quot;Encounter Less Than Two Days&quot;:\n  TJC.&quot;Ischemic Stroke Encounter&quot; IschemicStrokeEncounter\n    where IschemicStrokeEncounter.hospitalizationWithObservation ( ).lengthInDays ( ) &lt; 2\n\ndefine &quot;Encounter With Comfort Measures During Day Of Or Day After Arrival&quot;:\n  TJC.&quot;Ischemic Stroke Encounter&quot; IschemicStrokeEncounter\n    with TJC.&quot;Intervention Comfort Measures&quot; ComfortMeasure\n      such that Coalesce(start of ComfortMeasure.performed.toInterval(), ComfortMeasure.authoredOn) during day of ( start of IschemicStrokeEncounter.hospitalizationWithObservation ( ) ).calendarDayOfOrDayAfter ( )\n\ndefine &quot;Encounter With Thrombolytic Therapy Given Prior To Arrival Or During Hospitalization&quot;:\n  &quot;Encounter With Thrombolytic Therapy Medication Or Procedures&quot;\n    union &quot;Encounter With Thrombolytic Therapy Prior To Arrival&quot;\n    union &quot;Encounter With Thrombolytic Therapy Documented As Already Given&quot;\n\ndefine &quot;Encounter With Thrombolytic Therapy Medication Or Procedures&quot;:\n  TJC.&quot;Ischemic Stroke Encounter&quot; IschemicStrokeEncounter\n    with &quot;Thrombolytic Therapy Medication Or Procedures&quot; ThrombolyticTherapy\n      such that ThrombolyticTherapy.effective.toInterval ( ) starts during Interval[start of IschemicStrokeEncounter.hospitalizationWithObservation ( ) - 24 hours, end of IschemicStrokeEncounter.hospitalizationWithObservation ( ) )\n\ndefine &quot;Thrombolytic Therapy Medication Or Procedures&quot;:\n  ( [&quot;MedicationAdministration&quot;: &quot;Thrombolytic tPA Therapy&quot;] ThrombolyticMedication\n      where ThrombolyticMedication.status in { 'in-progress', 'completed' }\n      return {\n        id: ThrombolyticMedication.id,\n        effective: ThrombolyticMedication.effective\n      }\n  )\n    union ( [&quot;Procedure&quot;: &quot;Intravenous or Intraarterial Thrombolytic tPA Therapy&quot;] ThrombolyticProcedure\n        where ThrombolyticProcedure.status = 'completed'\n        return {\n          id: ThrombolyticProcedure.id,\n          effective: ThrombolyticProcedure.performed\n        }\n    )\n\ndefine &quot;Encounter With Thrombolytic Therapy Prior To Arrival&quot;:\n  TJC.&quot;Ischemic Stroke Encounter&quot; IschemicStrokeEncounter\n    where exists ( ( IschemicStrokeEncounter.encounterDiagnosis ( ) ) EncounterDiagnosis\n        where EncounterDiagnosis.code in &quot;Intravenous or Intraarterial Thrombolytic tPA Therapy Prior to Arrival&quot;\n    )\n\ndefine &quot;Encounter With Thrombolytic Therapy Documented As Already Given&quot;:\n  ( TJC.&quot;Ischemic Stroke Encounter&quot; IschemicStrokeEncounter\n      where exists [ConditionProblemsHealthConcerns: &quot;Intravenous or Intraarterial Thrombolytic tPA Therapy Prior to Arrival&quot;] PriorTPA\n        where PriorTPA.recordedDate during IschemicStrokeEncounter.hospitalizationWithObservation ( )\n          and PriorTPA.verificationStatus is not null implies ( PriorTPA.verificationStatus !~ Status.&quot;refuted&quot;\n            and PriorTPA.verificationStatus !~ Status.&quot;entered-in-error&quot; \n        )\n  )\n    union TJC.&quot;Ischemic Stroke Encounter&quot; IschemicStrokeEncounter\n      where exists ( ( IschemicStrokeEncounter.encounterDiagnosis ( ) ) EncounterDiagnosis\n          where EncounterDiagnosis.code in &quot;Intravenous or Intraarterial Thrombolytic tPA Therapy Prior to Arrival&quot;\n      )\n\ndefine &quot;Numerator&quot;:\n  &quot;Encounter With Antithrombotic Therapy&quot;\n\ndefine &quot;Encounter With Antithrombotic Therapy&quot;:\n  TJC.&quot;Ischemic Stroke Encounter&quot; IschemicStrokeEncounter\n    with [&quot;MedicationAdministration&quot;: &quot;Antithrombotic Therapy for Ischemic Stroke&quot;] Antithrombotic\n      such that Antithrombotic.status in { 'in-progress', 'completed' }\n        and Antithrombotic.effective.toInterval ( ) starts during day of ( start of IschemicStrokeEncounter.hospitalizationWithObservation ( ) ).calendarDayOfOrDayAfter ( )\n\ndefine &quot;Denominator Exceptions&quot;:\n  &quot;Encounter With Documented Reason For No Antithrombotic Ordered Or Administered Day Of Or Day After Hospital Arrival&quot;\n    union &quot;Encounter With Pharmacological Contraindications For Antithrombotic Therapy Given Day Of Or Day After Hospital Arrival&quot;\n    union &quot;Encounter With An INR Greater Than 3.5&quot;\n\ndefine &quot;Encounter With Documented Reason For No Antithrombotic Ordered Or Administered Day Of Or Day After Hospital Arrival&quot;:\n  TJC.&quot;Ischemic Stroke Encounter&quot; IschemicStrokeEncounter\n    with &quot;Documented Reason For No Antithrombotic Ordered Or Administered&quot; NoAntithrombotic\n      such that NoAntithrombotic.authoredOn during day of ( start of IschemicStrokeEncounter.hospitalizationWithObservation ( ) ).calendarDayOfOrDayAfter ( )\n\ndefine &quot;Documented Reason For No Antithrombotic Ordered Or Administered&quot;:\n  &quot;Reason For Not Ordering Antithrombotic&quot;\n    union &quot;Reason For Not Administering Antithrombotic&quot;\n\ndefine &quot;Reason For Not Administering Antithrombotic&quot;:\n  [&quot;MedicationAdministrationNotDone&quot;: &quot;Antithrombotic Therapy for Ischemic Stroke&quot;] MedicationAdm\n    where ( MedicationAdm.statusReason in &quot;Medical Reason for Not Providing Treatment&quot;\n        or MedicationAdm.statusReason in &quot;Patient Refusal&quot;\n    )\n    return {\n      id: MedicationAdm.id,\n      authoredOn: MedicationAdm.effective\n    }\n\ndefine &quot;Reason For Not Ordering Antithrombotic&quot;:\n  ( [&quot;MedicationNotRequested&quot;: &quot;Antithrombotic Therapy for Ischemic Stroke&quot;] NoAntithromboticOrder\n      where ( NoAntithromboticOrder.reasonCode in &quot;Medical Reason for Not Providing Treatment&quot;\n          or NoAntithromboticOrder.reasonCode in &quot;Patient Refusal&quot;\n      )\n        and NoAntithromboticOrder.status in { 'active', 'completed' }\n        and NoAntithromboticOrder.intent in { 'order', 'original-order', 'reflex-order', 'filler-order', 'instance-order' }\n      return {\n        id: NoAntithromboticOrder.id,\n        authoredOn: NoAntithromboticOrder.authoredOn\n      }\n  )\n    union ( [&quot;MedicationRequest&quot;: &quot;Antithrombotic Therapy for Ischemic Stroke&quot;] MedReqAntithrombotic\n        with [&quot;TaskRejected&quot;] TaskReject\n          such that TaskReject.focus.references ( MedReqAntithrombotic )\n            and ( TaskReject.statusReason in &quot;Medical Reason for Not Providing Treatment&quot;\n                or TaskReject.statusReason in &quot;Patient Refusal&quot;\n            )\n            and ( MedReqAntithrombotic.status in { 'active', 'completed' }\n                and TaskReject.code ~ USQualityCoreCommon.&quot;Fulfill&quot;\n            )\n        return {\n          id: MedReqAntithrombotic.id,\n          authoredOn: MedReqAntithrombotic.authoredOn\n        }\n    )\n\ndefine &quot;Encounter With Pharmacological Contraindications For Antithrombotic Therapy Given Day Of Or Day After Hospital Arrival&quot;:\n  TJC.&quot;Ischemic Stroke Encounter&quot; IschemicStrokeEncounter\n    with [&quot;MedicationAdministration&quot;: &quot;Pharmacological Contraindications For Antithrombotic Therapy&quot;] PharmacologicalContraindications\n      such that PharmacologicalContraindications.status in { 'in-progress', 'completed' }\n        and PharmacologicalContraindications.effective.toInterval ( ) starts during day of ( start of IschemicStrokeEncounter.hospitalizationWithObservation ( ) ).calendarDayOfOrDayAfter ( )\n\ndefine &quot;Encounter With An INR Greater Than 3.5&quot;:\n  TJC.&quot;Ischemic Stroke Encounter&quot; IschemicStrokeEncounter\n    with [&quot;LaboratoryResultObservation&quot;: &quot;INR&quot;] INR\n      such that INR.value as Quantity &gt; 3.5\n        and INR.status in { 'final', 'amended', 'corrected' }\n        and INR.issued during day of ( start of IschemicStrokeEncounter.hospitalizationWithObservation ( ) ).calendarDayOfOrDayAfter ( )\n\ndefine &quot;SDE Ethnicity&quot;:\n  SDE.&quot;SDE Ethnicity&quot;\n\ndefine &quot;SDE Payer&quot;:\n  SDE.&quot;SDE Payer&quot;\n\ndefine &quot;SDE Race&quot;:\n  SDE.&quot;SDE Race&quot;\n\ndefine &quot;SDE Sex&quot;:\n  SDE.&quot;SDE Sex&quot;</code></pre>\n      </td>\n    </tr>\n    \n  \n\n\n\n<tr>\n  <th colspan=\"2\" scope=\"row\" class=\"row-header\">Generated using version 0.5.6 of the sample-content-ig Liquid templates</th>\n</tr>\n\n    </tbody>\n  </table>\n</div>"
  },
  "extension" : [{
    "url" : "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-softwaresystem",
    "valueReference" : {
      "reference" : "Device/cqf-tooling"
    }
  }],
  "url" : "https://madie.cms.gov/Library/CMS72FHIRSTKAntithromboticDay2",
  "version" : "1.1.000",
  "name" : "CMS72FHIRSTKAntithromboticDay2",
  "status" : "draft",
  "type" : {
    "coding" : [{
      "system" : "http://terminology.hl7.org/CodeSystem/library-type",
      "code" : "logic-library"
    }]
  },
  "date" : "2026-09-19T16:31:14+00:00",
  "content" : [{
    "contentType" : "text/cql",
    "data" : "LyoKTk9URTogRm9yIHVzZSBieSBNYXJjaCAyMDI2IFVTIFJlYWxtIENvbm5lY3RhdGhvbiBwYXJ0aWNpcGFudHMgZm9yIGludGVybmFsIHVzZSBvbmx5LiBOb3QgZm9yIHVzZSBvciBkaXN0cmlidXRpb24gaW4gY29tbWVyY2lhbCBwcm9kdWN0cy4KKi8KbGlicmFyeSBDTVM3MkZISVJTVEtBbnRpdGhyb21ib3RpY0RheTIgdmVyc2lvbiAnMS4xLjAwMCcKCnVzaW5nIFVTUXVhbGl0eUNvcmUgdmVyc2lvbiAnMC4xLjAtY2lidWlsZCcKdXNpbmcgVVNDb3JlIHZlcnNpb24gJzYuMS4wLWRlcml2ZWQnCnVzaW5nIEZISVIgdmVyc2lvbiAnNC4wLjEnCgppbmNsdWRlIGhsNy5maGlyLnV2LmNxbC5GSElSSGVscGVycyB2ZXJzaW9uICc0LjAuMScgY2FsbGVkIEZISVJIZWxwZXJzCmluY2x1ZGUgaGw3LmZoaXIudXYuY3FsLkZISVJDb21tb24gdmVyc2lvbiAnMi4wLjAnIGNhbGxlZCBGSElSQ29tbW9uCmluY2x1ZGUgaGw3LmZoaXIudXMuY3FsLlVTQ29yZUNvbW1vbiB2ZXJzaW9uICcyLjAuMC1iYWxsb3QnIGNhbGxlZCBVU0NvcmVDb21tb24KaW5jbHVkZSBobDcuZmhpci51cy5jcWwuVVNDb3JlRWxlbWVudHMgdmVyc2lvbiAnMi4wLjAtYmFsbG90JyBjYWxsZWQgVVNDb3JlRWxlbWVudHMKCmluY2x1ZGUgQ1FNQ29tbW9uIHZlcnNpb24gJzUuMS4wMDAnIGNhbGxlZCBDUU1Db21tb24KaW5jbHVkZSBVU1F1YWxpdHlDb3JlQ29tbW9uIHZlcnNpb24gJzAuMS4wLWNpYnVpbGQnIGNhbGxlZCBVU1F1YWxpdHlDb3JlQ29tbW9uCmluY2x1ZGUgU3VwcGxlbWVudGFsRGF0YUVsZW1lbnRzIHZlcnNpb24gJzYuMS4wMDAnIGNhbGxlZCBTREUKaW5jbHVkZSBTdGF0dXMgdmVyc2lvbiAnMi4xLjAwMCcgY2FsbGVkIFN0YXR1cwoKaW5jbHVkZSBUSkNPdmVyYWxsIHZlcnNpb24gJzkuMS4wMDAnIGNhbGxlZCBUSkMKCnZhbHVlc2V0ICJBbnRpdGhyb21ib3RpYyBUaGVyYXB5IGZvciBJc2NoZW1pYyBTdHJva2UiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzNzYyLjEuNC4xMTEwLjYyJwp2YWx1ZXNldCAiSU5SIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjExNy4xLjcuMS4yMTMnCnZhbHVlc2V0ICJJbnRyYXZlbm91cyBvciBJbnRyYWFydGVyaWFsIFRocm9tYm9seXRpYyB0UEEgVGhlcmFweSBQcmlvciB0byBBcnJpdmFsIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzc2Mi4xLjQuMTExMC4yMScKdmFsdWVzZXQgIkludHJhdmVub3VzIG9yIEludHJhYXJ0ZXJpYWwgVGhyb21ib2x5dGljIHRQQSBUaGVyYXB5IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzc2Mi4xLjQuMTA0NS4yMScKdmFsdWVzZXQgIk1lZGljYWwgUmVhc29uIGZvciBOb3QgUHJvdmlkaW5nIFRyZWF0bWVudCI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy4xMTcuMS43LjEuNDczJwp2YWx1ZXNldCAiUGF0aWVudCBSZWZ1c2FsIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjExNy4xLjcuMS45MycKdmFsdWVzZXQgIlBoYXJtYWNvbG9naWNhbCBDb250cmFpbmRpY2F0aW9ucyBGb3IgQW50aXRocm9tYm90aWMgVGhlcmFweSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM3NjIuMS40LjExMTAuNTInCnZhbHVlc2V0ICJUaHJvbWJvbHl0aWMgdFBBIFRoZXJhcHkiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuMTE3LjEuNy4xLjIyNicKCnBhcmFtZXRlciAiTWVhc3VyZW1lbnQgUGVyaW9kIiBJbnRlcnZhbDxEYXRlVGltZT4KICBkZWZhdWx0IEludGVydmFsW0AyMDI2LTAxLTAxVDAwOjAwOjAwLjAwMFosIEAyMDI3LTAxLTAxVDAwOjAwOjAwLjAwMFopCgpjb250ZXh0IFBhdGllbnQKCmRlZmluZSAiSW5pdGlhbCBQb3B1bGF0aW9uIjoKICBUSkMuIklzY2hlbWljIFN0cm9rZSBFbmNvdW50ZXIiCgpkZWZpbmUgIkRlbm9taW5hdG9yIjoKICAiSW5pdGlhbCBQb3B1bGF0aW9uIgoKZGVmaW5lICJEZW5vbWluYXRvciBFeGNsdXNpb25zIjoKICAiRW5jb3VudGVyIExlc3MgVGhhbiBUd28gRGF5cyIKICAgIHVuaW9uICJFbmNvdW50ZXIgV2l0aCBDb21mb3J0IE1lYXN1cmVzIER1cmluZyBEYXkgT2YgT3IgRGF5IEFmdGVyIEFycml2YWwiCiAgICB1bmlvbiAiRW5jb3VudGVyIFdpdGggVGhyb21ib2x5dGljIFRoZXJhcHkgR2l2ZW4gUHJpb3IgVG8gQXJyaXZhbCBPciBEdXJpbmcgSG9zcGl0YWxpemF0aW9uIgoKZGVmaW5lICJFbmNvdW50ZXIgTGVzcyBUaGFuIFR3byBEYXlzIjoKICBUSkMuIklzY2hlbWljIFN0cm9rZSBFbmNvdW50ZXIiIElzY2hlbWljU3Ryb2tlRW5jb3VudGVyCiAgICB3aGVyZSBJc2NoZW1pY1N0cm9rZUVuY291bnRlci5ob3NwaXRhbGl6YXRpb25XaXRoT2JzZXJ2YXRpb24gKCApLmxlbmd0aEluRGF5cyAoICkgPCAyCgpkZWZpbmUgIkVuY291bnRlciBXaXRoIENvbWZvcnQgTWVhc3VyZXMgRHVyaW5nIERheSBPZiBPciBEYXkgQWZ0ZXIgQXJyaXZhbCI6CiAgVEpDLiJJc2NoZW1pYyBTdHJva2UgRW5jb3VudGVyIiBJc2NoZW1pY1N0cm9rZUVuY291bnRlcgogICAgd2l0aCBUSkMuIkludGVydmVudGlvbiBDb21mb3J0IE1lYXN1cmVzIiBDb21mb3J0TWVhc3VyZQogICAgICBzdWNoIHRoYXQgQ29hbGVzY2Uoc3RhcnQgb2YgQ29tZm9ydE1lYXN1cmUucGVyZm9ybWVkLnRvSW50ZXJ2YWwoKSwgQ29tZm9ydE1lYXN1cmUuYXV0aG9yZWRPbikgZHVyaW5nIGRheSBvZiAoIHN0YXJ0IG9mIElzY2hlbWljU3Ryb2tlRW5jb3VudGVyLmhvc3BpdGFsaXphdGlvbldpdGhPYnNlcnZhdGlvbiAoICkgKS5jYWxlbmRhckRheU9mT3JEYXlBZnRlciAoICkKCmRlZmluZSAiRW5jb3VudGVyIFdpdGggVGhyb21ib2x5dGljIFRoZXJhcHkgR2l2ZW4gUHJpb3IgVG8gQXJyaXZhbCBPciBEdXJpbmcgSG9zcGl0YWxpemF0aW9uIjoKICAiRW5jb3VudGVyIFdpdGggVGhyb21ib2x5dGljIFRoZXJhcHkgTWVkaWNhdGlvbiBPciBQcm9jZWR1cmVzIgogICAgdW5pb24gIkVuY291bnRlciBXaXRoIFRocm9tYm9seXRpYyBUaGVyYXB5IFByaW9yIFRvIEFycml2YWwiCiAgICB1bmlvbiAiRW5jb3VudGVyIFdpdGggVGhyb21ib2x5dGljIFRoZXJhcHkgRG9jdW1lbnRlZCBBcyBBbHJlYWR5IEdpdmVuIgoKZGVmaW5lICJFbmNvdW50ZXIgV2l0aCBUaHJvbWJvbHl0aWMgVGhlcmFweSBNZWRpY2F0aW9uIE9yIFByb2NlZHVyZXMiOgogIFRKQy4iSXNjaGVtaWMgU3Ryb2tlIEVuY291bnRlciIgSXNjaGVtaWNTdHJva2VFbmNvdW50ZXIKICAgIHdpdGggIlRocm9tYm9seXRpYyBUaGVyYXB5IE1lZGljYXRpb24gT3IgUHJvY2VkdXJlcyIgVGhyb21ib2x5dGljVGhlcmFweQogICAgICBzdWNoIHRoYXQgVGhyb21ib2x5dGljVGhlcmFweS5lZmZlY3RpdmUudG9JbnRlcnZhbCAoICkgc3RhcnRzIGR1cmluZyBJbnRlcnZhbFtzdGFydCBvZiBJc2NoZW1pY1N0cm9rZUVuY291bnRlci5ob3NwaXRhbGl6YXRpb25XaXRoT2JzZXJ2YXRpb24gKCApIC0gMjQgaG91cnMsIGVuZCBvZiBJc2NoZW1pY1N0cm9rZUVuY291bnRlci5ob3NwaXRhbGl6YXRpb25XaXRoT2JzZXJ2YXRpb24gKCApICkKCmRlZmluZSAiVGhyb21ib2x5dGljIFRoZXJhcHkgTWVkaWNhdGlvbiBPciBQcm9jZWR1cmVzIjoKICAoIFsiTWVkaWNhdGlvbkFkbWluaXN0cmF0aW9uIjogIlRocm9tYm9seXRpYyB0UEEgVGhlcmFweSJdIFRocm9tYm9seXRpY01lZGljYXRpb24KICAgICAgd2hlcmUgVGhyb21ib2x5dGljTWVkaWNhdGlvbi5zdGF0dXMgaW4geyAnaW4tcHJvZ3Jlc3MnLCAnY29tcGxldGVkJyB9CiAgICAgIHJldHVybiB7CiAgICAgICAgaWQ6IFRocm9tYm9seXRpY01lZGljYXRpb24uaWQsCiAgICAgICAgZWZmZWN0aXZlOiBUaHJvbWJvbHl0aWNNZWRpY2F0aW9uLmVmZmVjdGl2ZQogICAgICB9CiAgKQogICAgdW5pb24gKCBbIlByb2NlZHVyZSI6ICJJbnRyYXZlbm91cyBvciBJbnRyYWFydGVyaWFsIFRocm9tYm9seXRpYyB0UEEgVGhlcmFweSJdIFRocm9tYm9seXRpY1Byb2NlZHVyZQogICAgICAgIHdoZXJlIFRocm9tYm9seXRpY1Byb2NlZHVyZS5zdGF0dXMgPSAnY29tcGxldGVkJwogICAgICAgIHJldHVybiB7CiAgICAgICAgICBpZDogVGhyb21ib2x5dGljUHJvY2VkdXJlLmlkLAogICAgICAgICAgZWZmZWN0aXZlOiBUaHJvbWJvbHl0aWNQcm9jZWR1cmUucGVyZm9ybWVkCiAgICAgICAgfQogICAgKQoKZGVmaW5lICJFbmNvdW50ZXIgV2l0aCBUaHJvbWJvbHl0aWMgVGhlcmFweSBQcmlvciBUbyBBcnJpdmFsIjoKICBUSkMuIklzY2hlbWljIFN0cm9rZSBFbmNvdW50ZXIiIElzY2hlbWljU3Ryb2tlRW5jb3VudGVyCiAgICB3aGVyZSBleGlzdHMgKCAoIElzY2hlbWljU3Ryb2tlRW5jb3VudGVyLmVuY291bnRlckRpYWdub3NpcyAoICkgKSBFbmNvdW50ZXJEaWFnbm9zaXMKICAgICAgICB3aGVyZSBFbmNvdW50ZXJEaWFnbm9zaXMuY29kZSBpbiAiSW50cmF2ZW5vdXMgb3IgSW50cmFhcnRlcmlhbCBUaHJvbWJvbHl0aWMgdFBBIFRoZXJhcHkgUHJpb3IgdG8gQXJyaXZhbCIKICAgICkKCmRlZmluZSAiRW5jb3VudGVyIFdpdGggVGhyb21ib2x5dGljIFRoZXJhcHkgRG9jdW1lbnRlZCBBcyBBbHJlYWR5IEdpdmVuIjoKICAoIFRKQy4iSXNjaGVtaWMgU3Ryb2tlIEVuY291bnRlciIgSXNjaGVtaWNTdHJva2VFbmNvdW50ZXIKICAgICAgd2hlcmUgZXhpc3RzIFtDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zOiAiSW50cmF2ZW5vdXMgb3IgSW50cmFhcnRlcmlhbCBUaHJvbWJvbHl0aWMgdFBBIFRoZXJhcHkgUHJpb3IgdG8gQXJyaXZhbCJdIFByaW9yVFBBCiAgICAgICAgd2hlcmUgUHJpb3JUUEEucmVjb3JkZWREYXRlIGR1cmluZyBJc2NoZW1pY1N0cm9rZUVuY291bnRlci5ob3NwaXRhbGl6YXRpb25XaXRoT2JzZXJ2YXRpb24gKCApCiAgICAgICAgICBhbmQgUHJpb3JUUEEudmVyaWZpY2F0aW9uU3RhdHVzIGlzIG5vdCBudWxsIGltcGxpZXMgKCBQcmlvclRQQS52ZXJpZmljYXRpb25TdGF0dXMgIX4gU3RhdHVzLiJyZWZ1dGVkIgogICAgICAgICAgICBhbmQgUHJpb3JUUEEudmVyaWZpY2F0aW9uU3RhdHVzICF+IFN0YXR1cy4iZW50ZXJlZC1pbi1lcnJvciIgCiAgICAgICAgKQogICkKICAgIHVuaW9uIFRKQy4iSXNjaGVtaWMgU3Ryb2tlIEVuY291bnRlciIgSXNjaGVtaWNTdHJva2VFbmNvdW50ZXIKICAgICAgd2hlcmUgZXhpc3RzICggKCBJc2NoZW1pY1N0cm9rZUVuY291bnRlci5lbmNvdW50ZXJEaWFnbm9zaXMgKCApICkgRW5jb3VudGVyRGlhZ25vc2lzCiAgICAgICAgICB3aGVyZSBFbmNvdW50ZXJEaWFnbm9zaXMuY29kZSBpbiAiSW50cmF2ZW5vdXMgb3IgSW50cmFhcnRlcmlhbCBUaHJvbWJvbHl0aWMgdFBBIFRoZXJhcHkgUHJpb3IgdG8gQXJyaXZhbCIKICAgICAgKQoKZGVmaW5lICJOdW1lcmF0b3IiOgogICJFbmNvdW50ZXIgV2l0aCBBbnRpdGhyb21ib3RpYyBUaGVyYXB5IgoKZGVmaW5lICJFbmNvdW50ZXIgV2l0aCBBbnRpdGhyb21ib3RpYyBUaGVyYXB5IjoKICBUSkMuIklzY2hlbWljIFN0cm9rZSBFbmNvdW50ZXIiIElzY2hlbWljU3Ryb2tlRW5jb3VudGVyCiAgICB3aXRoIFsiTWVkaWNhdGlvbkFkbWluaXN0cmF0aW9uIjogIkFudGl0aHJvbWJvdGljIFRoZXJhcHkgZm9yIElzY2hlbWljIFN0cm9rZSJdIEFudGl0aHJvbWJvdGljCiAgICAgIHN1Y2ggdGhhdCBBbnRpdGhyb21ib3RpYy5zdGF0dXMgaW4geyAnaW4tcHJvZ3Jlc3MnLCAnY29tcGxldGVkJyB9CiAgICAgICAgYW5kIEFudGl0aHJvbWJvdGljLmVmZmVjdGl2ZS50b0ludGVydmFsICggKSBzdGFydHMgZHVyaW5nIGRheSBvZiAoIHN0YXJ0IG9mIElzY2hlbWljU3Ryb2tlRW5jb3VudGVyLmhvc3BpdGFsaXphdGlvbldpdGhPYnNlcnZhdGlvbiAoICkgKS5jYWxlbmRhckRheU9mT3JEYXlBZnRlciAoICkKCmRlZmluZSAiRGVub21pbmF0b3IgRXhjZXB0aW9ucyI6CiAgIkVuY291bnRlciBXaXRoIERvY3VtZW50ZWQgUmVhc29uIEZvciBObyBBbnRpdGhyb21ib3RpYyBPcmRlcmVkIE9yIEFkbWluaXN0ZXJlZCBEYXkgT2YgT3IgRGF5IEFmdGVyIEhvc3BpdGFsIEFycml2YWwiCiAgICB1bmlvbiAiRW5jb3VudGVyIFdpdGggUGhhcm1hY29sb2dpY2FsIENvbnRyYWluZGljYXRpb25zIEZvciBBbnRpdGhyb21ib3RpYyBUaGVyYXB5IEdpdmVuIERheSBPZiBPciBEYXkgQWZ0ZXIgSG9zcGl0YWwgQXJyaXZhbCIKICAgIHVuaW9uICJFbmNvdW50ZXIgV2l0aCBBbiBJTlIgR3JlYXRlciBUaGFuIDMuNSIKCmRlZmluZSAiRW5jb3VudGVyIFdpdGggRG9jdW1lbnRlZCBSZWFzb24gRm9yIE5vIEFudGl0aHJvbWJvdGljIE9yZGVyZWQgT3IgQWRtaW5pc3RlcmVkIERheSBPZiBPciBEYXkgQWZ0ZXIgSG9zcGl0YWwgQXJyaXZhbCI6CiAgVEpDLiJJc2NoZW1pYyBTdHJva2UgRW5jb3VudGVyIiBJc2NoZW1pY1N0cm9rZUVuY291bnRlcgogICAgd2l0aCAiRG9jdW1lbnRlZCBSZWFzb24gRm9yIE5vIEFudGl0aHJvbWJvdGljIE9yZGVyZWQgT3IgQWRtaW5pc3RlcmVkIiBOb0FudGl0aHJvbWJvdGljCiAgICAgIHN1Y2ggdGhhdCBOb0FudGl0aHJvbWJvdGljLmF1dGhvcmVkT24gZHVyaW5nIGRheSBvZiAoIHN0YXJ0IG9mIElzY2hlbWljU3Ryb2tlRW5jb3VudGVyLmhvc3BpdGFsaXphdGlvbldpdGhPYnNlcnZhdGlvbiAoICkgKS5jYWxlbmRhckRheU9mT3JEYXlBZnRlciAoICkKCmRlZmluZSAiRG9jdW1lbnRlZCBSZWFzb24gRm9yIE5vIEFudGl0aHJvbWJvdGljIE9yZGVyZWQgT3IgQWRtaW5pc3RlcmVkIjoKICAiUmVhc29uIEZvciBOb3QgT3JkZXJpbmcgQW50aXRocm9tYm90aWMiCiAgICB1bmlvbiAiUmVhc29uIEZvciBOb3QgQWRtaW5pc3RlcmluZyBBbnRpdGhyb21ib3RpYyIKCmRlZmluZSAiUmVhc29uIEZvciBOb3QgQWRtaW5pc3RlcmluZyBBbnRpdGhyb21ib3RpYyI6CiAgWyJNZWRpY2F0aW9uQWRtaW5pc3RyYXRpb25Ob3REb25lIjogIkFudGl0aHJvbWJvdGljIFRoZXJhcHkgZm9yIElzY2hlbWljIFN0cm9rZSJdIE1lZGljYXRpb25BZG0KICAgIHdoZXJlICggTWVkaWNhdGlvbkFkbS5zdGF0dXNSZWFzb24gaW4gIk1lZGljYWwgUmVhc29uIGZvciBOb3QgUHJvdmlkaW5nIFRyZWF0bWVudCIKICAgICAgICBvciBNZWRpY2F0aW9uQWRtLnN0YXR1c1JlYXNvbiBpbiAiUGF0aWVudCBSZWZ1c2FsIgogICAgKQogICAgcmV0dXJuIHsKICAgICAgaWQ6IE1lZGljYXRpb25BZG0uaWQsCiAgICAgIGF1dGhvcmVkT246IE1lZGljYXRpb25BZG0uZWZmZWN0aXZlCiAgICB9CgpkZWZpbmUgIlJlYXNvbiBGb3IgTm90IE9yZGVyaW5nIEFudGl0aHJvbWJvdGljIjoKICAoIFsiTWVkaWNhdGlvbk5vdFJlcXVlc3RlZCI6ICJBbnRpdGhyb21ib3RpYyBUaGVyYXB5IGZvciBJc2NoZW1pYyBTdHJva2UiXSBOb0FudGl0aHJvbWJvdGljT3JkZXIKICAgICAgd2hlcmUgKCBOb0FudGl0aHJvbWJvdGljT3JkZXIucmVhc29uQ29kZSBpbiAiTWVkaWNhbCBSZWFzb24gZm9yIE5vdCBQcm92aWRpbmcgVHJlYXRtZW50IgogICAgICAgICAgb3IgTm9BbnRpdGhyb21ib3RpY09yZGVyLnJlYXNvbkNvZGUgaW4gIlBhdGllbnQgUmVmdXNhbCIKICAgICAgKQogICAgICAgIGFuZCBOb0FudGl0aHJvbWJvdGljT3JkZXIuc3RhdHVzIGluIHsgJ2FjdGl2ZScsICdjb21wbGV0ZWQnIH0KICAgICAgICBhbmQgTm9BbnRpdGhyb21ib3RpY09yZGVyLmludGVudCBpbiB7ICdvcmRlcicsICdvcmlnaW5hbC1vcmRlcicsICdyZWZsZXgtb3JkZXInLCAnZmlsbGVyLW9yZGVyJywgJ2luc3RhbmNlLW9yZGVyJyB9CiAgICAgIHJldHVybiB7CiAgICAgICAgaWQ6IE5vQW50aXRocm9tYm90aWNPcmRlci5pZCwKICAgICAgICBhdXRob3JlZE9uOiBOb0FudGl0aHJvbWJvdGljT3JkZXIuYXV0aG9yZWRPbgogICAgICB9CiAgKQogICAgdW5pb24gKCBbIk1lZGljYXRpb25SZXF1ZXN0IjogIkFudGl0aHJvbWJvdGljIFRoZXJhcHkgZm9yIElzY2hlbWljIFN0cm9rZSJdIE1lZFJlcUFudGl0aHJvbWJvdGljCiAgICAgICAgd2l0aCBbIlRhc2tSZWplY3RlZCJdIFRhc2tSZWplY3QKICAgICAgICAgIHN1Y2ggdGhhdCBUYXNrUmVqZWN0LmZvY3VzLnJlZmVyZW5jZXMgKCBNZWRSZXFBbnRpdGhyb21ib3RpYyApCiAgICAgICAgICAgIGFuZCAoIFRhc2tSZWplY3Quc3RhdHVzUmVhc29uIGluICJNZWRpY2FsIFJlYXNvbiBmb3IgTm90IFByb3ZpZGluZyBUcmVhdG1lbnQiCiAgICAgICAgICAgICAgICBvciBUYXNrUmVqZWN0LnN0YXR1c1JlYXNvbiBpbiAiUGF0aWVudCBSZWZ1c2FsIgogICAgICAgICAgICApCiAgICAgICAgICAgIGFuZCAoIE1lZFJlcUFudGl0aHJvbWJvdGljLnN0YXR1cyBpbiB7ICdhY3RpdmUnLCAnY29tcGxldGVkJyB9CiAgICAgICAgICAgICAgICBhbmQgVGFza1JlamVjdC5jb2RlIH4gVVNRdWFsaXR5Q29yZUNvbW1vbi4iRnVsZmlsbCIKICAgICAgICAgICAgKQogICAgICAgIHJldHVybiB7CiAgICAgICAgICBpZDogTWVkUmVxQW50aXRocm9tYm90aWMuaWQsCiAgICAgICAgICBhdXRob3JlZE9uOiBNZWRSZXFBbnRpdGhyb21ib3RpYy5hdXRob3JlZE9uCiAgICAgICAgfQogICAgKQoKZGVmaW5lICJFbmNvdW50ZXIgV2l0aCBQaGFybWFjb2xvZ2ljYWwgQ29udHJhaW5kaWNhdGlvbnMgRm9yIEFudGl0aHJvbWJvdGljIFRoZXJhcHkgR2l2ZW4gRGF5IE9mIE9yIERheSBBZnRlciBIb3NwaXRhbCBBcnJpdmFsIjoKICBUSkMuIklzY2hlbWljIFN0cm9rZSBFbmNvdW50ZXIiIElzY2hlbWljU3Ryb2tlRW5jb3VudGVyCiAgICB3aXRoIFsiTWVkaWNhdGlvbkFkbWluaXN0cmF0aW9uIjogIlBoYXJtYWNvbG9naWNhbCBDb250cmFpbmRpY2F0aW9ucyBGb3IgQW50aXRocm9tYm90aWMgVGhlcmFweSJdIFBoYXJtYWNvbG9naWNhbENvbnRyYWluZGljYXRpb25zCiAgICAgIHN1Y2ggdGhhdCBQaGFybWFjb2xvZ2ljYWxDb250cmFpbmRpY2F0aW9ucy5zdGF0dXMgaW4geyAnaW4tcHJvZ3Jlc3MnLCAnY29tcGxldGVkJyB9CiAgICAgICAgYW5kIFBoYXJtYWNvbG9naWNhbENvbnRyYWluZGljYXRpb25zLmVmZmVjdGl2ZS50b0ludGVydmFsICggKSBzdGFydHMgZHVyaW5nIGRheSBvZiAoIHN0YXJ0IG9mIElzY2hlbWljU3Ryb2tlRW5jb3VudGVyLmhvc3BpdGFsaXphdGlvbldpdGhPYnNlcnZhdGlvbiAoICkgKS5jYWxlbmRhckRheU9mT3JEYXlBZnRlciAoICkKCmRlZmluZSAiRW5jb3VudGVyIFdpdGggQW4gSU5SIEdyZWF0ZXIgVGhhbiAzLjUiOgogIFRKQy4iSXNjaGVtaWMgU3Ryb2tlIEVuY291bnRlciIgSXNjaGVtaWNTdHJva2VFbmNvdW50ZXIKICAgIHdpdGggWyJMYWJvcmF0b3J5UmVzdWx0T2JzZXJ2YXRpb24iOiAiSU5SIl0gSU5SCiAgICAgIHN1Y2ggdGhhdCBJTlIudmFsdWUgYXMgUXVhbnRpdHkgPiAzLjUKICAgICAgICBhbmQgSU5SLnN0YXR1cyBpbiB7ICdmaW5hbCcsICdhbWVuZGVkJywgJ2NvcnJlY3RlZCcgfQogICAgICAgIGFuZCBJTlIuaXNzdWVkIGR1cmluZyBkYXkgb2YgKCBzdGFydCBvZiBJc2NoZW1pY1N0cm9rZUVuY291bnRlci5ob3NwaXRhbGl6YXRpb25XaXRoT2JzZXJ2YXRpb24gKCApICkuY2FsZW5kYXJEYXlPZk9yRGF5QWZ0ZXIgKCApCgpkZWZpbmUgIlNERSBFdGhuaWNpdHkiOgogIFNERS4iU0RFIEV0aG5pY2l0eSIKCmRlZmluZSAiU0RFIFBheWVyIjoKICBTREUuIlNERSBQYXllciIKCmRlZmluZSAiU0RFIFJhY2UiOgogIFNERS4iU0RFIFJhY2UiCgpkZWZpbmUgIlNERSBTZXgiOgogIFNERS4iU0RFIFNleCI=",
    "url" : "https://madie.cms.gov/Library-CMS72FHIRSTKAntithromboticDay2.cql"
  }]
}