This page is part of the FHIR Specification v4.3.0-snapshot1: R4B Snapshot to support the Jan 2022 Connectathon. About the R4B version of FHIR. The current officially released version is 4.3.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3
FHIR Infrastructure | Maturity Level: 1 | Informative |
A pattern to be followed by resources that represent the performance of some activity, possibly in accordance with a request or service definition.
This is NOT a resource. It is not part of the FHIR schema and cannot appear directly in FHIR instances. It is a logical model that defines a pattern adhered to by other resources. This pattern serves two purposes:
An "event" is any description of an activity that has already taken place or that is currently ongoing. It includes resources that primarily describe the "result" of an activity or what was found (e.g. a condition or observation). Examples include encounters, procedures, completed questionnaires, representations of state transitions, etc. It does not include resources that describe objects or roles (e.g. patient, device, location).
This logical model is one of three common workflow patterns. The other two patterns are Request and Definition. This pattern is followed by (or is intended to be followed by a number of other FHIR resources
Events are distinct from requests in that an event is primarily focused on what has occurred or is occurring while requests deal with what is "desired" to occur. While creating a request or definition can be seen as a type of event, the focus of those other resources is not the "creation" but the desire/intention.
Events are related to Task in that events can be performed in fulfillment of a task and performing an event may involve the execution of one or more tasks. Events do not track the fulfillment of any requests they may be associated with. Tracking of fulfillment is managed through the Task resource.
This model represents a pattern. It provides a standard list of data elements with cardinalities, data types, definitions, rationale and usage notes that will ideally be adhered to by resources that fall into the "event" workflow category. However, adherence to this pattern is not mandatory. Not all healthcare domains are the same. Concepts that may be generally applicable (and thus are included in this standard pattern) might still not be relevant everywhere or may be sufficiently uncommon that they are more appropriate to include as extensions than as core properties of the resource. Work groups are encouraged to adjust descriptions, usage notes and rationale to be specific to their resource (e.g. use the term "procedure" or "observation" rather than "event"). As well, design notes in the comments column marked with [square brackets] identifies areas where domain variation is expected and encouraged. Other variation, including differences in names, cardinalities, data types and the decision to omit an element outright are also possible, but should be discussed with the FHIR Infrastructure work group's Workflow project to ensure the rationale for non-alignment is understood, to confirm that the deviation is necessary and to identify whether any adjustments to the pattern are appropriate.
This pattern provides a linkage to the W5 list of standard data elements. Resources that adhere to this pattern should ensure their w5 mappings are consistent, as is their data element ordering.
This pattern is implemented by AuditEvent, ChargeItem, ClaimResponse, ClinicalImpression, Communication, Composition, Condition, Consent, Coverage, CoverageEligibilityResponse, DetectedIssue, DeviceUseStatement, DiagnosticReport, DocumentManifest, DocumentReference, Encounter, EnrollmentResponse, EpisodeOfCare, ExplanationOfBenefit, FamilyMemberHistory, GuidanceResponse, ImagingStudy, Immunization, ImmunizationEvaluation, Media, MedicationAdministration, MedicationDispense, MedicationStatement, Observation, PaymentNotice, PaymentReconciliation, Procedure, Provenance, QuestionnaireResponse, RiskAssessment and SupplyDelivery.
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Event | I | Logical | Event Pattern + Rule: Not Done Reason can only be specified if status is 'not-done' + Rule: reason elements can only be specified if status is NOT 'not-done' | |
identifier | Σ | 0..* | Identifier | Business Identifier for {{title}} |
instantiatesCanonical | Σ | 0..* | canonical(Definition) | Instantiates FHIR protocol or definition |
instantiatesUri | Σ | 0..* | uri | Instantiates external protocol or definition |
basedOn | Σ | 0..* | Reference(Request) | Fulfills plan, proposal or order |
partOf | Σ | 0..* | Reference(Event) | Part of referenced event |
researchStudy | 0..* | Reference(ResearchStudy) | Associated research study | |
status | ?!Σ | 1..1 | code | preparation | in-progress | not-done | suspended | aborted | completed | entered-in-error | unknown EventStatus (Required) |
statusReason | 0..1 | CodeableConcept | Reason for current status | |
code | Σ | 0..1 | CodeableConcept | What was done |
subject | Σ | 1..1 | Reference(Patient | Group) | Individual service was done for/to |
encounter | Σ | 0..1 | Reference(Encounter) | Encounter created as part of |
occurrence[x] | Σ | 0..1 | When {{title}} occurred/is occurring | |
occurrenceDateTime | dateTime | |||
occurrencePeriod | Period | |||
occurrenceTiming | Timing | |||
recorded | Σ | 0..1 | dateTime | When {{title}} was first captured in the subject's record |
reported[x] | Σ | 0..1 | Reported rather than primary record | |
reportedBoolean | boolean | |||
reportedReference | Reference(Patient | RelatedPerson | Practitioner | PractitionerRole | Organization) | |||
performer | Σ | 0..* | BackboneElement | Who performed {{title}} and what they did |
function | Σ | 0..1 | CodeableConcept | Type of performance |
actor | Σ | 1..1 | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | Device | RelatedPerson) | Who performed {{title}} |
location | Σ | 0..1 | Reference(Location) | Where {{title}} occurred |
reasonCode | Σ | 0..* | CodeableConcept | Why was {{title}} performed? |
reasonReference | Σ | 0..* | Reference(Condition | Observation | Media | DiagnosticReport | DocumentReference) | Why was {{title}} performed? |
note | 0..* | Annotation | Comments made about the event | |
Documentation for this format |
UML Diagram (Legend)
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Event | I | Logical | Event Pattern + Rule: Not Done Reason can only be specified if status is 'not-done' + Rule: reason elements can only be specified if status is NOT 'not-done' | |
identifier | Σ | 0..* | Identifier | Business Identifier for {{title}} |
instantiatesCanonical | Σ | 0..* | canonical(Definition) | Instantiates FHIR protocol or definition |
instantiatesUri | Σ | 0..* | uri | Instantiates external protocol or definition |
basedOn | Σ | 0..* | Reference(Request) | Fulfills plan, proposal or order |
partOf | Σ | 0..* | Reference(Event) | Part of referenced event |
researchStudy | 0..* | Reference(ResearchStudy) | Associated research study | |
status | ?!Σ | 1..1 | code | preparation | in-progress | not-done | suspended | aborted | completed | entered-in-error | unknown EventStatus (Required) |
statusReason | 0..1 | CodeableConcept | Reason for current status | |
code | Σ | 0..1 | CodeableConcept | What was done |
subject | Σ | 1..1 | Reference(Patient | Group) | Individual service was done for/to |
encounter | Σ | 0..1 | Reference(Encounter) | Encounter created as part of |
occurrence[x] | Σ | 0..1 | When {{title}} occurred/is occurring | |
occurrenceDateTime | dateTime | |||
occurrencePeriod | Period | |||
occurrenceTiming | Timing | |||
recorded | Σ | 0..1 | dateTime | When {{title}} was first captured in the subject's record |
reported[x] | Σ | 0..1 | Reported rather than primary record | |
reportedBoolean | boolean | |||
reportedReference | Reference(Patient | RelatedPerson | Practitioner | PractitionerRole | Organization) | |||
performer | Σ | 0..* | BackboneElement | Who performed {{title}} and what they did |
function | Σ | 0..1 | CodeableConcept | Type of performance |
actor | Σ | 1..1 | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | Device | RelatedPerson) | Who performed {{title}} |
location | Σ | 0..1 | Reference(Location) | Where {{title}} occurred |
reasonCode | Σ | 0..* | CodeableConcept | Why was {{title}} performed? |
reasonReference | Σ | 0..* | Reference(Condition | Observation | Media | DiagnosticReport | DocumentReference) | Why was {{title}} performed? |
note | 0..* | Annotation | Comments made about the event | |
Documentation for this format |
alternate definitions: Master Definition XML + JSON.
Path | Definition | Type | Reference |
---|---|---|---|
Event.status | Codes identifying the lifecycle stage of an event. | Required | EventStatus |
Event.statusReason | Codes identifying the reason for the current state of an event. | Unknown | No details provided yet |
Event.code | Codes indicating the details of what is/was done. These will vary significantly based on the type of event resource and will often be example/preferred rather than extensible/required. | Unknown | No details provided yet |
Event.performer.function | Codes that describe the specific involvement of a performer in an event. E.g. Primary vs. secondary vs. supervising, etc. | Unknown | No details provided yet |
Event.reasonCode | Codes identifying why this event was necessary. These may be clinical reasons (e.g. diagnoses, symptoms) and/or administrative reasons. While the detailed constraints of relevant reasons will vary by resource, some degree of consistency across resources around recommended codes would be desirable. | Unknown | No details provided yet |
id | Level | Location | Description | Expression |
inv-1 | Rule | (base) | Not Done Reason can only be specified if status is 'not-done' | status='not-done' or notDoneReason.exists().not() |
inv-2 | Rule | (base) | reason elements can only be specified if status is NOT 'not-done' | status!='not-done' or (reasonCode.exists().not() and reasonReference.exists().not()) |
Not all resources that follow the 'Event' pattern will necessarily include all of the above elements. A set of standard extensions have been defined for use with resources where an element might be "applicable" but is not commonly supported. A list of these can be found on the Event Extensions(event-specific) and Workflow Extensions(shared by events and requests).
The following diagram shows the "typical" state machine diagram for resources following the Event pattern. Note that not all resources will support all states, some resources may choose different names for certain states and some resources may introduce sub-states to the listed states. As well, additional transitions may be supported, including from terminal nodes (e.g. from "completed" back to "in-progress"). That said, most resources should align with this state machine fairly well.
identifier | instantiatesCanonical | instantiatesUri | basedOn | partOf | researchStudy | status | statusReason | code | subject | encounter | occurrence[x] | recorded | reported[x] | performer | .function | .actor | location | reasonCode | reasonReference | note | |
AuditEvent | 1 N | 1 N | 1 N | 1 NC | 1 | 1 N | |||||||||||||||
ChargeItem | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 2 NC | 1 N | 1 N | 1 | |||||||||
ClaimResponse | 1 | 1 N | 1 | 1 N | 1 N | 1 N | |||||||||||||||
ClinicalImpression | 1 | 1 | 1 | 1 | 1 | 1 N | 1 NC | 1 | |||||||||||||
Communication | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 C | 2 N | 2 NC | 1 | 1 | 1 | ||||||||
Composition | 1 | E | 1 | 1 N | 1 NC | 1 N | 1 N | ||||||||||||||
Condition | 1 | E | E | 2 NC | 1 | 1 | 1 N | 1 N | 1 | ||||||||||||
Consent | 1 | E | 1 | 1 NC | 1 NC | 1 N | 2 N | ||||||||||||||
Contract | |||||||||||||||||||||
Coverage | 1 | 1 | 1 N | 1 N | |||||||||||||||||
CoverageEligibilityResponse | 1 | 1 N | 1 | 1 N | 1 N | ||||||||||||||||
DetectedIssue | 1 | 1 | 1 | 1 NC | 1 N | 1 NC | 1 N | 1 N | |||||||||||||
DeviceUseStatement | 1 | 1 | E | 1 | E | 1 | 1 N | 1 NC | 1 | 1 | 2 N | ||||||||||
DiagnosticReport | 1 | 1 | E | E | 1 | E | 1 | 1 C | 1 | 1 N | 2 NC | E | E | E | |||||||
DocumentManifest | 2 N | 1 | 1 N | 1 C | 1 N | 1 N | 1 NC | ||||||||||||||
DocumentReference | 2 N | 1 | 1 N | 1 C | 1 N | 3 NC | |||||||||||||||
Encounter | 1 | 2 N | 1 | E | 1 | 2 NC | 1 C | 2 N | 1 N | 1 NC | 2 NC | 1 | 2 N | 1 N | |||||||
EnrollmentResponse | 1 | 1 N | 1 C | 1 N | 1 N | 1 NC | |||||||||||||||
EpisodeOfCare | 1 | 1 N | 1 | 1 NC | 1 N | 1 N | 3 NC | 1 N | |||||||||||||
ExplanationOfBenefit | 1 | 1 | 1 N | 1 N | 1 N | ||||||||||||||||
FamilyMemberHistory | 1 | 1 | 1 | E | 1 | 1 N | 1 | 1 | 1 | ||||||||||||
GuidanceResponse | 1 | 1 N | 1 | 1 C | 1 | 1 N | 1 NC | 1 | 1 | 1 | |||||||||||
ImagingStudy | 1 | 1 | 1 N | 1 | 1 NC | 1 | 1 | 1 N | 1 | 1 | 1 | 1 | 1 | ||||||||
Immunization | 1 | E | 1 | 1 | 1 N | 1 N | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |||||||
ImmunizationEvaluation | 1 | 1 | 1 N | 1 N | |||||||||||||||||
Invoice | 3 N | 1 C | 1 | ||||||||||||||||||
Media | 1 | 1 | 1 | E | 1 | E | 1 N | 1 C | 1 | 1 N | 1 NC | E | 1 | E | 1 | ||||||
MedicationAdministration | 1 | 1 N | 1 | E | 1 | 1 C | 1 N | 1 | 1 N | 1 | 1 | 1 | 1 | 1 | 1 | ||||||
MedicationDispense | 1 | 1 N | 1 | E | 1 | 1 N | 1 N | 1 C | 1 N | 1 | 1 | 1 | |||||||||
MedicationStatement | 1 | 1 | 1 | E | 1 | 1 C | 1 N | 1 | 1 N | 1 | 1 | 1 | |||||||||
Observation | 1 | 1 | 1 | E | 1 | E | 1 | 1 C | 1 N | 1 NC | E | E | E | ||||||||
PaymentNotice | 1 | 1 N | 1 | 1 N | 1 N | ||||||||||||||||
PaymentReconciliation | 1 | 1 | 1 N | 1 NC | 1 N | ||||||||||||||||
Procedure | 1 | 1 | 1 | 1 | 1 | E | 1 | 1 | 1 | 1 | 1 N | 1 | 1 | 1 | 1 | 1 | 1 | ||||
Provenance | 1 N | 1 N | 1 N | 1 N | 1 | 1 N | |||||||||||||||
QuestionnaireResponse | 1 | 1 | 1 | E | 1 | 1 C | 1 | 1 N | 1 N | ||||||||||||
RiskAssessment | 1 | 1 | 1 N | E | 1 | 1 | 1 | 1 | 1 | 1 NC | 1 | 1 | 1 | ||||||||
SupplyDelivery | 1 | 1 | 1 | E | 1 C | E | 1 N | 1 NC | 1 | 1 N | E | ||||||||||
Task | 1 | E | 1 N | 1 NC | 1 N |