Draft dQM CMS Content Implementation Guide
2025.1.0 - CI Build
Draft dQM CMS Content Implementation Guide, published by cqframework. This guide is not an authorized publication; it is the continuous build for version 2025.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/cqframework/dqm-content-cms-2025/ and changes regularly. See the Directory of published versions
| Draft as of 2026-09-19 |
{
"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 "Antithrombotic Therapy for Ischemic Stroke": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.62'\nvalueset "INR": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.213'\nvalueset "Intravenous or Intraarterial Thrombolytic tPA Therapy Prior to Arrival": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.21'\nvalueset "Intravenous or Intraarterial Thrombolytic tPA Therapy": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1045.21'\nvalueset "Medical Reason for Not Providing Treatment": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.473'\nvalueset "Patient Refusal": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.93'\nvalueset "Pharmacological Contraindications For Antithrombotic Therapy": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.52'\nvalueset "Thrombolytic tPA Therapy": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.226'\n\nparameter "Measurement Period" Interval<DateTime>\n default Interval[@2026-01-01T00:00:00.000Z, @2027-01-01T00:00:00.000Z)\n\ncontext Patient\n\ndefine "Initial Population":\n TJC."Ischemic Stroke Encounter"\n\ndefine "Denominator":\n "Initial Population"\n\ndefine "Denominator Exclusions":\n "Encounter Less Than Two Days"\n union "Encounter With Comfort Measures During Day Of Or Day After Arrival"\n union "Encounter With Thrombolytic Therapy Given Prior To Arrival Or During Hospitalization"\n\ndefine "Encounter Less Than Two Days":\n TJC."Ischemic Stroke Encounter" IschemicStrokeEncounter\n where IschemicStrokeEncounter.hospitalizationWithObservation ( ).lengthInDays ( ) < 2\n\ndefine "Encounter With Comfort Measures During Day Of Or Day After Arrival":\n TJC."Ischemic Stroke Encounter" IschemicStrokeEncounter\n with TJC."Intervention Comfort Measures" ComfortMeasure\n such that Coalesce(start of ComfortMeasure.performed.toInterval(), ComfortMeasure.authoredOn) during day of ( start of IschemicStrokeEncounter.hospitalizationWithObservation ( ) ).calendarDayOfOrDayAfter ( )\n\ndefine "Encounter With Thrombolytic Therapy Given Prior To Arrival Or During Hospitalization":\n "Encounter With Thrombolytic Therapy Medication Or Procedures"\n union "Encounter With Thrombolytic Therapy Prior To Arrival"\n union "Encounter With Thrombolytic Therapy Documented As Already Given"\n\ndefine "Encounter With Thrombolytic Therapy Medication Or Procedures":\n TJC."Ischemic Stroke Encounter" IschemicStrokeEncounter\n with "Thrombolytic Therapy Medication Or Procedures" ThrombolyticTherapy\n such that ThrombolyticTherapy.effective.toInterval ( ) starts during Interval[start of IschemicStrokeEncounter.hospitalizationWithObservation ( ) - 24 hours, end of IschemicStrokeEncounter.hospitalizationWithObservation ( ) )\n\ndefine "Thrombolytic Therapy Medication Or Procedures":\n ( ["MedicationAdministration": "Thrombolytic tPA Therapy"] ThrombolyticMedication\n where ThrombolyticMedication.status in { 'in-progress', 'completed' }\n return {\n id: ThrombolyticMedication.id,\n effective: ThrombolyticMedication.effective\n }\n )\n union ( ["Procedure": "Intravenous or Intraarterial Thrombolytic tPA Therapy"] ThrombolyticProcedure\n where ThrombolyticProcedure.status = 'completed'\n return {\n id: ThrombolyticProcedure.id,\n effective: ThrombolyticProcedure.performed\n }\n )\n\ndefine "Encounter With Thrombolytic Therapy Prior To Arrival":\n TJC."Ischemic Stroke Encounter" IschemicStrokeEncounter\n where exists ( ( IschemicStrokeEncounter.encounterDiagnosis ( ) ) EncounterDiagnosis\n where EncounterDiagnosis.code in "Intravenous or Intraarterial Thrombolytic tPA Therapy Prior to Arrival"\n )\n\ndefine "Encounter With Thrombolytic Therapy Documented As Already Given":\n ( TJC."Ischemic Stroke Encounter" IschemicStrokeEncounter\n where exists [ConditionProblemsHealthConcerns: "Intravenous or Intraarterial Thrombolytic tPA Therapy Prior to Arrival"] PriorTPA\n where PriorTPA.recordedDate during IschemicStrokeEncounter.hospitalizationWithObservation ( )\n and PriorTPA.verificationStatus is not null implies ( PriorTPA.verificationStatus !~ Status."refuted"\n and PriorTPA.verificationStatus !~ Status."entered-in-error" \n )\n )\n union TJC."Ischemic Stroke Encounter" IschemicStrokeEncounter\n where exists ( ( IschemicStrokeEncounter.encounterDiagnosis ( ) ) EncounterDiagnosis\n where EncounterDiagnosis.code in "Intravenous or Intraarterial Thrombolytic tPA Therapy Prior to Arrival"\n )\n\ndefine "Numerator":\n "Encounter With Antithrombotic Therapy"\n\ndefine "Encounter With Antithrombotic Therapy":\n TJC."Ischemic Stroke Encounter" IschemicStrokeEncounter\n with ["MedicationAdministration": "Antithrombotic Therapy for Ischemic Stroke"] 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 "Denominator Exceptions":\n "Encounter With Documented Reason For No Antithrombotic Ordered Or Administered Day Of Or Day After Hospital Arrival"\n union "Encounter With Pharmacological Contraindications For Antithrombotic Therapy Given Day Of Or Day After Hospital Arrival"\n union "Encounter With An INR Greater Than 3.5"\n\ndefine "Encounter With Documented Reason For No Antithrombotic Ordered Or Administered Day Of Or Day After Hospital Arrival":\n TJC."Ischemic Stroke Encounter" IschemicStrokeEncounter\n with "Documented Reason For No Antithrombotic Ordered Or Administered" NoAntithrombotic\n such that NoAntithrombotic.authoredOn during day of ( start of IschemicStrokeEncounter.hospitalizationWithObservation ( ) ).calendarDayOfOrDayAfter ( )\n\ndefine "Documented Reason For No Antithrombotic Ordered Or Administered":\n "Reason For Not Ordering Antithrombotic"\n union "Reason For Not Administering Antithrombotic"\n\ndefine "Reason For Not Administering Antithrombotic":\n ["MedicationAdministrationNotDone": "Antithrombotic Therapy for Ischemic Stroke"] MedicationAdm\n where ( MedicationAdm.statusReason in "Medical Reason for Not Providing Treatment"\n or MedicationAdm.statusReason in "Patient Refusal"\n )\n return {\n id: MedicationAdm.id,\n authoredOn: MedicationAdm.effective\n }\n\ndefine "Reason For Not Ordering Antithrombotic":\n ( ["MedicationNotRequested": "Antithrombotic Therapy for Ischemic Stroke"] NoAntithromboticOrder\n where ( NoAntithromboticOrder.reasonCode in "Medical Reason for Not Providing Treatment"\n or NoAntithromboticOrder.reasonCode in "Patient Refusal"\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 ( ["MedicationRequest": "Antithrombotic Therapy for Ischemic Stroke"] MedReqAntithrombotic\n with ["TaskRejected"] TaskReject\n such that TaskReject.focus.references ( MedReqAntithrombotic )\n and ( TaskReject.statusReason in "Medical Reason for Not Providing Treatment"\n or TaskReject.statusReason in "Patient Refusal"\n )\n and ( MedReqAntithrombotic.status in { 'active', 'completed' }\n and TaskReject.code ~ USQualityCoreCommon."Fulfill"\n )\n return {\n id: MedReqAntithrombotic.id,\n authoredOn: MedReqAntithrombotic.authoredOn\n }\n )\n\ndefine "Encounter With Pharmacological Contraindications For Antithrombotic Therapy Given Day Of Or Day After Hospital Arrival":\n TJC."Ischemic Stroke Encounter" IschemicStrokeEncounter\n with ["MedicationAdministration": "Pharmacological Contraindications For Antithrombotic Therapy"] 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 "Encounter With An INR Greater Than 3.5":\n TJC."Ischemic Stroke Encounter" IschemicStrokeEncounter\n with ["LaboratoryResultObservation": "INR"] INR\n such that INR.value as Quantity > 3.5\n and INR.status in { 'final', 'amended', 'corrected' }\n and INR.issued during day of ( start of IschemicStrokeEncounter.hospitalizationWithObservation ( ) ).calendarDayOfOrDayAfter ( )\n\ndefine "SDE Ethnicity":\n SDE."SDE Ethnicity"\n\ndefine "SDE Payer":\n SDE."SDE Payer"\n\ndefine "SDE Race":\n SDE."SDE Race"\n\ndefine "SDE Sex":\n SDE."SDE Sex"</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"
}
]
}