HL7 FHIR® Implementation Guide: Electronic Case Reporting (eCR) - US Realm
2.1.2 - STU 2 United States of America flag

HL7 FHIR® Implementation Guide: Electronic Case Reporting (eCR) - US Realm, published by HL7 International / Public Health. This guide is not an authorized publication; it is the continuous build for version 2.1.2 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/case-reporting/ and changes regularly. See the Directory of published versions

Example PlanDefinition: eRSD PlanDefinition Instance Example

Active as of 2020-07-31
Id: plandefinition-ersd-instance-example
Url: eRSD PlanDefinition Instance Example
Version: 2.1.2

urn:oid:2.16.840.1.113883.4.642.40.46.34.3

Title: eRSD PlanDefinition Instance Example
Experimental: true
Type:

system: http://terminology.hl7.org/CodeSystem/plan-definition-type

code: workflow-definition

display: Workflow Definition

Date: 2020-07-31 12:32:29-0500
Publisher: HL7 International / Public Health
Description:

An example ersd PlanDefinition

Jurisdiction: US
Effective Period: 2020-12-01..
Related Artifacts:

Dependencies

Actions:
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())
:
If: Applicability: (%completedEncounter.exists(status = 'finished'))
Create eICR
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))