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 Simple Example

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

urn:oid:2.16.840.1.113883.4.642.40.46.34.4

Title: eRSD PlanDefinition Instance Simple 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
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 + %normalReportingDuration < now()) or status = 'finished' and period.end <= now() - 72 hours))
Check Reportability and setup jobs for future reportability checks.
Then:
Check Trigger Codes based on RCTC Value sets.
If: Applicability: (%encounter.where(period.start + %normalReportingDuration >= now()) 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: (%last-eicr.last().entry.first().resource.date < now() - 72 hours)
:
If: Applicability: (%`inprogress-encounter`.where(status = 'in-progress' and period.start + %normalReportingDuration >= now() and period.end <= now() - 72 hours))
:
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 + %normalReportingDuration < now()))