US Public Health PlanDefinition - Alternative Expression
US Public Health Profiles Library, published by HL7 International / Public Health. This guide is not an authorized publication; it is the continuous build for version 2.0.0-ballot built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/fhir-us-ph-library/ and changes regularly. See the Directory of published versions
Start the reporting workflow in response to an encounter-start event
When:Named Event: encounter-start
Check suspected disorders for immediate reportability and setup jobs for future reportability checks.
Then:
Check Trigger Codes based on Suspected Reportable Value set.
If:Applicability:(%modifiedConditions.exists() or %modifiedLabResults.exists() or %modifiedMedicationOrders.exists())
: If:Applicability:(%encounter.where((status = 'in-progress' and period.start + 1 day * %normalReportingDuration >= now()) or (status = 'finished' and period.end + 72 hours >= now())).select(true))
Check Reportability and setup jobs for future reportability checks.
Then:
Check Trigger Codes based on RCTC Value sets.
If:Applicability:(%encounter.where(period.start + 1 day * %normalReportingDuration >= now()).select(true) and (%conditions.exists() or %encounters.exists() or %immunizations.exists() or %procedures.exists() or %procedureOrders.exists() or %labOrders.exists() or %labTests.exists() or %labResults.exists() or %medicationAdministrations.exists() or %medicationOrders.exists() or %medicationDispenses.exists()))
: If:Applicability:(((%lasteicr.last().entry[2].resource as Bundle).entry.first().resource as Composition).date < now() - 72 hours)
: If:Applicability:(%inprogressencounter.where(status = 'in-progress' and period.start + 1 day * %normalReportingDuration >= now() or (status = 'finished' and period.end + 72 hours >= now())).exists())
Create eICR
Then:
Anonymize the report.
Validate eICR
Route and send eICR
Start the reporting workflow in response to an encounter-modified event
When:Named Event: encounter-modified
If:Applicability:(%encounter.where(period.start + 1 day * %normalReportingDuration < now()).select(true))