Atrius India Core FHIR Implementation Guide
0.1.0 - ci-build

Atrius India Core FHIR Implementation Guide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Library: Atrius ER Chest Pain Pathway CQL (Experimental)

Official URL: https://atrius.in/fhir/r4/atrius-in/Library/AtriusERChestPainPathway Version: 0.1.0
Draft as of 2026-07-24 Computable Name: AtriusERChestPainPathway
Other Identifiers: OID:1.3.6.1.4.1.66219.1.28.9

Applicability, classification, ACS troponin/ECG result logic, and aspirin fulfillment for the ER chest pain clinical pathway.

Exception generating Narrative: Unable to Parse HTML - node 'code' has unexpected content '=' (last text = '/* ER chest pain clinical pathway — applicability, classification, and ACS fulfillment. v0.4: ECG DiagnosticReport interpretation (STEMI), aspirin MedicationAdministration fulfillment. v0.3: Troponin result detection and elevated / not-elevated branching for ACS follow-up. v0.2: Primary classification from completed QuestionnaireResponse (Questionnaire/er-chest-pain-classification). Falls back to encounter diagnoses when no completed response exists for the active ED encounter. */ library AtriusERChestPainPathway version '0.4.2' using FHIR version '4.0.1' using AtriusIn version '0.1.0' include FHIRHelpers version '4.4.000' called FHIRHelpers include AtriusCommon version '0.1.0' codesystem "LOINC": 'http://loinc.org' codesystem "SNOMEDCT": 'http://snomed.info/sct' codesystem "ActCode": 'http://terminology.hl7.org/CodeSystem/v3-ActCode' codesystem "AtriusERChestPainClassification": 'https://atrius.in/fhir/r4/atrius-in/CodeSystem/atrius-in-er-chest-pain-classification-cs' code "Chest pain": '29857009' from "SNOMEDCT" display 'Chest pain' code "emergency": 'EMER' from "ActCode" display 'emergency' code "Acute coronary syndrome": '394659003' from "SNOMEDCT" display 'Acute coronary syndrome' code "Aortic dissection": '308546005' from "SNOMEDCT" display 'Dissection of aorta' code "Pericarditis": '3238004' from "SNOMEDCT" display 'Pericarditis' code "Pneumothorax": '36118008' from "SNOMEDCT" display 'Pneumothorax' code "Pneumonia": '233604007' from "SNOMEDCT" display 'Pneumonia' code "Pleurisy": '196075003' from "SNOMEDCT" display 'Pleurisy' code "Chest wall pain": '102588006' from "SNOMEDCT" display 'Chest wall pain' code "Heartburn": '16331000' from "SNOMEDCT" display 'Heartburn' code "ACS classification": 'acs' from "AtriusERChestPainClassification" display 'Acute coronary syndrome' code "Aortic dissection classification": 'aortic-dissection' from "AtriusERChestPainClassification" display 'Aortic dissection' code "Pericarditis classification": 'pericarditis' from "AtriusERChestPainClassification" display 'Pericarditis' code "Pneumothorax classification": 'pneumothorax' from "AtriusERChestPainClassification" display 'Pneumothorax' code "Pleurisy or pneumonia classification": 'pleurisy-pneumonia' from "AtriusERChestPainClassification" display 'Pleurisy or pneumonia' code "Musculoskeletal classification": 'musculoskeletal' from "AtriusERChestPainClassification" display 'Musculoskeletal chest pain' code "Heartburn classification": 'heartburn' from "AtriusERChestPainClassification" display 'Heartburn or GERD' code "Cardiac Troponin I": '10839-9' from "LOINC" display 'Troponin I.cardiac [Mass/volume] in Serum or Plasma' code "ECG report": '11524-6' from "LOINC" display 'EKG study' code "Aspirin product": '387458008' from "SNOMEDCT" display 'Aspirin' code "ECG procedure": '29303009' from "SNOMEDCT" display 'Electrocardiographic procedure' code "Cardiology service": '789718008' from "SNOMEDCT" display 'Cardiology service' code "ST segment elevation": '401303003' from "SNOMEDCT" display 'ST segment elevation' code "Normal sinus rhythm": '64730000' from "SNOMEDCT" display 'Normal sinus rhythm' define "Troponin Elevated Threshold": 0.04 'ng/mL' define "Chest Pain Classification Questionnaire Url": 'https://atrius.in/fhir/r4/atrius-in/Questionnaire/er-chest-pain-classification' define fluent function chestPainClassificationAnswer(qr QuestionnaireResponse): singleton from ( qr.item I where I.linkId = 'primary-classification' return First(I.answer A return FHIRHelpers.ToCode(A.value as Coding)) ) define fluent function hasChestPainClassificationAnswer(qr QuestionnaireResponse, answer Code): qr.chestPainClassificationAnswer() ~ answer define fluent function hasConclusionCode(report DiagnosticReportNote, finding Code): exists (report.conclusionCode CC where CC ~ finding) define "Active Emergency Encounter": [Encounter] E where E.status in { 'arrived', 'triaged', 'in-progress' } and E.class ~ "emergency" define "Encounter With Chest Pain Chief Complaint": "Active Emergency Encounter" E where exists (E.reasonCode R where R ~ "Chest pain") or exists ( E.reasonReference RR where exists ( ([ConditionEncounterDiagnosis] union [ConditionProblemsHealthConcerns]) C where RR.references(C.id) and C.code ~ "Chest pain" and C.isActive() ) ) define "In Scope": exists "Encounter With Chest Pain Chief Complaint" define "Classification Questionnaire Responses": [QuestionnaireResponse] QR where QR.status = 'completed' and exists ( QR.item I where I.linkId = 'primary-classification' and exists I.answer ) and exists ( "Encounter With Chest Pain Chief Complaint" E where QR.encounter.references(E) ) define "Latest Classification Response": First( "Classification Questionnaire Responses" QR where QR.authored is not null and not exists ( "Classification Questionnaire Responses" LaterQR where LaterQR.authored.value after QR.authored.value ) ) define "Has Classification Response": exists "Classification Questionnaire Responses" define "Classification Is ACS": ( "Has Classification Response" and "Latest Classification Response".hasChestPainClassificationAnswer("ACS classification") ) or ( not "Has Classification Response" and exists ( ([ConditionEncounterDiagnosis: "Acute coronary syndrome"] union [ConditionProblemsHealthConcerns: "Acute coronary syndrome"]) C where C.isActive() ) ) define "Classification Is Aortic Dissection": ( "Has Classification Response" and "Latest Classification Response".hasChestPainClassificationAnswer("Aortic dissection classification") ) or ( not "Has Classification Response" and exists ( ([ConditionEncounterDiagnosis: "Aortic dissection"] union [ConditionProblemsHealthConcerns: "Aortic dissection"]) C where C.isActive() ) ) define "Classification Is Pericarditis": ( "Has Classification Response" and "Latest Classification Response".hasChestPainClassificationAnswer("Pericarditis classification") ) or ( not "Has Classification Response" and exists ( ([ConditionEncounterDiagnosis: "Pericarditis"] union [ConditionProblemsHealthConcerns: "Pericarditis"]) C where C.isActive() ) ) define "Classification Is Pneumothorax": ( "Has Classification Response" and "Latest Classification Response".hasChestPainClassificationAnswer("Pneumothorax classification") ) or ( not "Has Classification Response" and exists ( ([ConditionEncounterDiagnosis: "Pneumothorax"] union [ConditionProblemsHealthConcerns: "Pneumothorax"]) C where C.isActive() ) ) define "Classification Is Pleurisy Or Pneumonia": ( "Has Classification Response" and "Latest Classification Response".hasChestPainClassificationAnswer("Pleurisy or pneumonia classification") ) or ( not "Has Classification Response" and ( exists ( ([ConditionEncounterDiagnosis: "Pleurisy"] union [ConditionProblemsHealthConcerns: "Pleurisy"]) C where C.isActive() ) or exists ( ([ConditionEncounterDiagnosis: "Pneumonia"] union [ConditionProblemsHealthConcerns: "Pneumonia"]) C where C.isActive() ) ) ) define "Classification Is Musculoskeletal": ( "Has Classification Response" and "Latest Classification Response".hasChestPainClassificationAnswer("Musculoskeletal classification") ) or ( not "Has Classification Response" and exists ( ([ConditionEncounterDiagnosis: "Chest wall pain"] union [ConditionProblemsHealthConcerns: "Chest wall pain"]) C where C.isActive() ) ) define "Classification Is Heartburn": ( "Has Classification Response" and "Latest Classification Response".hasChestPainClassificationAnswer("Heartburn classification") ) or ( not "Has Classification Response" and exists ( ([ConditionEncounterDiagnosis: "Heartburn"] union [ConditionProblemsHealthConcerns: "Heartburn"]) C where C.isActive() ) ) define "Classification Is Other Cardiac": "Classification Is Aortic Dissection" or "Classification Is Pericarditis" define "Classification Is Non Cardiac Pulmonary": "Classification Is Pneumothorax" or "Classification Is Pleurisy Or Pneumonia" define "Classification Is Other Non Cardiac": "Classification Is Musculoskeletal" or "Classification Is Heartburn" define "Service Requests For Active Chest Pain Encounter": [ServiceRequest] SR where exists ( "Encounter With Chest Pain Chief Complaint" E where SR.encounter.references(E) ) define "Medication Requests For Active Chest Pain Encounter": [MedicationRequest] MR where exists ( "Encounter With Chest Pain Chief Complaint" E where MR.encounter.references(E) ) define "Troponin Observations For Active Chest Pain Encounter": [Observation] O where exists ( "Encounter With Chest Pain Chief Complaint" E where O.encounter.references(E) ) and O.status in { 'final', 'amended', 'corrected' } and O.code ~ "Cardiac Troponin I" and O.value is Quantity define "Latest Troponin For Active Chest Pain Encounter": First( [Observation] O where exists ( "Encounter With Chest Pain Chief Complaint" E where O.encounter.references(E) ) and O.status in { 'final', 'amended', 'corrected' } and O.code ~ "Cardiac Troponin I" and O.value is Quantity sort by effective.earliest() descending ) define "Has Troponin Result For Active Chest Pain Encounter": exists "Troponin Observations For Active Chest Pain Encounter" define "Latest Troponin Quantity": FHIRHelpers.ToQuantity("Latest Troponin For Active Chest Pain Encounter".value as Quantity) define "Troponin Elevated": "Has Troponin Result For Active Chest Pain Encounter" and "Latest Troponin Quantity" > "Troponin Elevated Threshold" define "Troponin Not Elevated": "Has Troponin Result For Active Chest Pain Encounter" and "Latest Troponin Quantity" ' at line 1846 column 37