This
page
is
part
of
the
FHIR
Specification
(v3.0.2:
STU
3).
The
current
version
which
supercedes
this
version
is
5.0.0
.
For
a
full
list
Continuous
Integration
Build
of
available
versions,
see
FHIR
(will
be
incorrect/inconsistent
at
times).
See
the
Directory
of
published
versions
.
Page
versions:
R5
R4B
R4
R3
Responsible
Owner:
FHIR
Infrastructure
![]() | 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"
"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"
"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"
"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"
"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"
"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"
"procedure"
or
"observation"
"observation"
rather
than
"event").
"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.
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
I | Logical |
Event
Pattern
+ Rule: Not Done Reason can only be specified if + Rule: reason elements can only be specified if status is NOT 'not-done' |
|
|
Σ | 0..* | Identifier |
Business
|
|
Σ | 0..* |
Reference
(
|
Fulfills
plan,
proposal
or
|
|
Σ | 0..* |
Reference
(
|
Part
of
referenced
event
|
|
0..* |
Reference
(
|
Associated
research
study
|
|
|
?! Σ | 1..1 | code |
preparation
|
in-progress
|
not-done
|
suspended
|
aborted
|
completed
|
entered-in-error
|
unknown
Binding: EventStatus ( Required ) |
|
0..1 |
|
Reason
for
current
status
|
|
|
Σ
|
0..* | CodeableConcept |
High
level
categorization
of
{{title}}
|
|
Σ | 0..1 | CodeableConcept |
What
service
was
done
|
| Σ | 0..1 | CodeableReference ( BiologicallyDerivedProduct | Device | DeviceDefinition | Medication | NutritionProduct | Substance ) |
Product
used/provided
|
|
Σ | 1..1 | Reference ( Patient | Group ) |
Individual
service
was
done
for/to
|
|
Σ | 0..1 |
Reference
(
Encounter
|
Encounter
|
|
Σ | 0..1 |
When
|
|
|
dateTime | |||
|
Period | |||
|
Timing | |||
|
Σ | 0..1 | dateTime |
When
{{title}}
was
first
captured
in
the
subject's
record
|
![]() ![]() | Σ | 0..1 |
Reported
rather
than
primary
record
| |
![]() ![]() ![]() |
|
|
||
| Reference ( Patient | RelatedPerson | Practitioner | PractitionerRole | Organization ) | |||
![]() ![]() | Σ | 0..* | BackboneElement |
Who
performed
|
|
Σ | 0..1 | CodeableConcept |
Type
of
performance
|
|
Σ | 1..1 | Reference ( Practitioner | PractitionerRole | Organization | CareTeam | Patient | Device | RelatedPerson ) |
Who
performed
{{title}}
|
|
Σ | 0..1 |
Reference
(
|
Where
{{title}}
occurred
|
|
Σ | 0..* |
|
Why
was
|
|
0..* |
|
Comments
made
about
the
event
|
|
|
0..* |
|
Key
events
in
history
of
{{title}}
|
|
Documentation
for
this
format
|
||||
UML Diagram ( Legend )
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
I | Logical |
Event
Pattern
+ Rule: Not Done Reason can only be specified if + Rule: reason elements can only be specified if status is NOT 'not-done' |
|
|
Σ | 0..* | Identifier |
Business
|
|
Σ | 0..* |
Reference
(
|
Fulfills
plan,
proposal
or
|
|
Σ | 0..* |
Reference
(
|
Part
of
referenced
event
|
|
0..* |
Reference
(
|
Associated
research
study
|
|
|
?! Σ | 1..1 | code |
preparation
|
in-progress
|
not-done
|
suspended
|
aborted
|
completed
|
entered-in-error
|
unknown
Binding: EventStatus ( Required ) |
|
0..1 |
|
Reason
for
current
status
|
|
|
Σ
|
0..* | CodeableConcept |
High
level
categorization
of
{{title}}
|
|
Σ | 0..1 | CodeableConcept |
What
service
was
done
|
| Σ | 0..1 | CodeableReference ( BiologicallyDerivedProduct | Device | DeviceDefinition | Medication | NutritionProduct | Substance ) |
Product
used/provided
|
|
Σ | 1..1 | Reference ( Patient | Group ) |
Individual
service
was
done
for/to
|
|
Σ | 0..1 |
Reference
(
Encounter
|
Encounter
|
|
Σ | 0..1 |
When
|
|
|
dateTime | |||
|
Period | |||
|
Timing | |||
|
Σ | 0..1 | dateTime |
When
{{title}}
was
first
captured
in
the
subject's
record
|
![]() ![]() | Σ | 0..1 |
Reported
rather
than
primary
record
| |
![]() ![]() ![]() |
|
|
||
| Reference ( Patient | RelatedPerson | Practitioner | PractitionerRole | Organization ) | |||
![]() ![]() | Σ | 0..* | BackboneElement |
Who
performed
|
|
Σ | 0..1 | CodeableConcept |
Type
of
performance
|
|
Σ | 1..1 | Reference ( Practitioner | PractitionerRole | Organization | CareTeam | Patient | Device | RelatedPerson ) |
Who
performed
{{title}}
|
|
Σ | 0..1 |
Reference
(
|
Where
{{title}}
occurred
|
|
Σ | 0..* |
|
Why
was
|
|
0..* |
|
Comments
made
about
the
event
|
|
|
0..* |
|
Key
events
in
history
of
{{title}}
|
|
Documentation
for
this
format
|
||||
Alternate definitions: Master Definition XML + JSON .
| Path |
|
Type |
|
|
|---|---|---|---|---|
| Event.status | EventStatus | Required |
Codes
identifying
the
|
|
| Event.statusReason | Unknown | No details provided yet |
|
|
| Event.code | Unknown | No details provided yet | Example |
Codes
indicating
the
details
of
what
is/was
done.
These
will
vary
significantly
based
on
the
type
of
|
| Event.performer.function | Unknown | No details provided yet | Example |
|
|
| Unknown | No details provided yet | Example | 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. |
| UniqueKey | Level | Location | Description | Expression |
inv-1
| Rule | (base) |
Not
Done
Reason
can
only
be
specified
if
|
|
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"
"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"
"completed"
back
to
"in-progress").
"in-progress").
That
said,
most
resources
should
align
with
this
state
machine
fairly
well.
This pattern contains an element called "eventHistory" that points to Provenance . This allows the resource to summarize key events that have happened over the lifespan of the resource. For example, when the event started, when it was suspended, when it was resumed, etc. The list of referenced Provenence entries don't necessarily include all events that have occurred over the lifespan of the resource. Instead, they list those the author considers 'significant' and relevant to downstream users. Modifications to drafts or small corrections that do not impact fulfillment might not be needed. In some cases, Provenance for changes to other resources (e.g. component events) might also be included if the source system tracks those as 'events' tied to the Event.
IMPORTANT: the eventHistory generally excludes the most recent change on 'pure' FHIR repositories. That is because in pure FHIR environments, the Provenance instance must be created after the update has been made - because it needs to point to the new 'version' of the resource that has been created. This means that if there is a desire to include the 'current' change in relevant history, it is necessary to first make the change, then update the resource to add the event to recentHistory. More typically, recentHistory simply won't include the most recent event. If the full history is needed, the system will need to retrieve both the history as well as the Provenance that points to the current release.
For systems that don't store history separately from the base resource, the eventHistory Provenance instances can be conveyed as contained resources . In this circumstance, there might also not be an issue with eventHistory also including the 'most recent' change as the history is updated at the same time the change is applied.
The full set of potential Provenance information may be overkill for those systems that are only interested in it from a eventHistory perspective. The Provenance Relevant History profile is included to give guidance on what data elements are most likely to be relevant for systems looking at Provenance from the perspective of eventHistory.
The 'identifier' element is intended to be able to uniquely point to a single instance, however there are exceptions:
Identifiers are not intended to act as 'classifiers' or 'categories', nor are they intended to convey identifiers for other business objects.
Some systems may contain legacy information that puts inappropriate content in identifier elements (e.g. placing an insurance subscriber id in Patient.identifier when that should instead go in Coverage.subscriber). In these situations, it is possible that values that are not actually 'proper' identifiers may still show up in identifier elements. While this is not 'correct', systems should still be tolerant of identifiers that prove to be non-unique.
Systems may choose to enforce that some identifiers systems must be unique within their system and only in the presence of such system enforcement can identifiers be safely used with a presumption that they will always resolve to only a single distinct record. If there is a need to convey 'categories' for resources, those can be conveyed in elements other than Resource.identifier. Examples include .code, .category, special elements like .groupIdentifier, extensions, or meta.tags.
| identifier | basedOn | partOf | researchStudy | status | statusReason | category | code | product | subject | encounter | occurrence[x] | recorded | reported[x] | performer | .function | .actor | location | reason | note | relevantHistory | |
| AdverseEvent | 1 | 1 | 1 | 1 T | 1 | 2 NT | 1 N | 1 NT | 1 | 1 T | 1 | ||||||||||
| AuditEvent | 1 T | 1 NC | 1 NC | 1 NTC | 1 | 1 NT | 1 NTC | 1 N | 1 NT | 1 | 1 NT | ||||||||||
| ClaimResponse | 1 | 1 NTC | 1 | 1 NTC | 1 NTC | 1 NTC | |||||||||||||||
| Communication | 1 | 1 T | 1 T | 1 | 1 | 1 C | 1 | 2 NT | 2 NTC | 1 | 1 | ||||||||||
| Composition | 1 | 1|1 ET | 0|1 E | 1 | 1 NC | 1 TC | 1 | 1 NTC | 1 NT | ||||||||||||
| Consent | 1 | 0|1 ET | 0|1 E | 1 | 1 NC | 1 TC | 1 NT | ||||||||||||||
| Contract | 2 C | 1 C | 2 N | 1 TC | 2 NT | 2 N | 1 NTC | 1 NT | 1 NTC | ||||||||||||
| Coverage | 1 | 0|1 ET | 1 | 1 NT | 1 NT | ||||||||||||||||
| CoverageEligibilityResponse | 1 | 1 NTC | 1 | 1 NT | 1 NTC | ||||||||||||||||
| DetectedIssue | 1 | 1 | 1 | 1 | 1 TC | 1 | 1 N | 1 NTC | 1 NT | 1 NTC | |||||||||||
| DeviceAlert | 1 | 1 NT | 1 | 1 | 1 C | 1 NT | 1 T | 1 | 1 T | 1 | 1 NTC | ||||||||||
| DiagnosticReport | 1 | 1 T | 0|1 ET | 0|1 E | 1 | 0|1 E | 1 | 1 C | 1 TC | 1 | 1 NT | 2 NTC | 0|1 E | 1 | |||||||
| DocumentReference | 1 | 1 T | 0|1 E | 1 | 0|1 E | 1 | 1 N | 1 TC | 1 NTC | 1 NT | 1 N | 1 NT | 1 NC | 2 NTC | 0|1 E | ||||||
| Encounter | 1 | 2 NT | 1 TC | 0|1 E | 1 | 2 NTC | 1 C | 2 NT | 1 NT | 1 NC | 2 NTC | 1 C | 2 N | ||||||||
| EnrollmentResponse | 1 | 1 NTC | 1 C | 1 NT | 1 NT | 1 NTC | |||||||||||||||
| EpisodeOfCare | 1 | 1|1 ENT | 1 | 1 NC | 1 | 1 NT | 3 NTC | 2 N | |||||||||||||
| ExplanationOfBenefit | 1 | 0|1 ET | 1 | 1 NC | 1 | 1 NTC | |||||||||||||||
| FamilyMemberHistory | 1 | 0|1 ET | 0|1 E | 1 | 1 NT | 1 | 1 | ||||||||||||||
| GuidanceResponse | 1 | 1 | 1 C | 1 | 1 NT | 1 NTC | 1 | 1 | 1 | ||||||||||||
| ImagingSelection | 1 | 1 T | 1 | 1 | 1 C | 1 TC | 1 T | 1 | 1 T | ||||||||||||
| ImagingStudy | 1 | 1 T | 1 NT | 1 | 1 T | 1 | 1 NT | 1 T | 1 | 1 T | 1 | 1 | 1 | ||||||||
| Immunization | 1 | 1 T | 0|1 E | 1 | 1 | 2 NT | 1 NT | 1 | 1 TC | 2 NT | 1 T | 1 | 1 T | 1 | 1 | 1 | |||||
| Invoice | 1 N | 1 C | 1 | ||||||||||||||||||
| MedicationAdministration | 1 | 1 NTC | 1 T | 0|1 E | 1 | 1 C | 1 NTC | 1 | 1 | 1 C | 1 T | 1 | 1 T | 0|1 E | 1 | 1 | |||||
| MedicationDispense | 1 | 1 NT | 1 T | 0|1 E | 1 | 1 NTC | 1 | 1 | 1 NT | 1 T | 1 T | 0|1 E | 1 | ||||||||
| MedicationStatement | 1 | 0|1 ET | 0|1 E | 1 | 1 NTC | 1 | 1 | 1 N | 1 | 1 | |||||||||||
| MessageHeader | 1 NTC | 1 TC | |||||||||||||||||||
| NutritionIntake | 1 | 1 T | 1 T | 1 | 1 C | 1 NT | 1 | 1 | 1 T | 1 | 1 | ||||||||||
| Observation | 1 | 1 T | 1 T | 0|1 E | 1 | 0|1 E | 1 | 1 C | 1 TC | 1 | 1 NT | 1 NTC | 0|1 E | 1 | |||||||
| PaymentNotice | 1 | 1|1 ENT | 1 | 1 NTC | 1 NTC | ||||||||||||||||
| PaymentReconciliation | 1 | 0|1 ET | 1 | 1 NTC | 1 NTC | 1 NTC | |||||||||||||||
| Procedure | 1 | 1 T | 1 T | 0|1 E | 1 | 1 | 1 | 1 T | 1 | 1 T | 1 | 1 | 1 T | 1 | 1 T | 1 | 1 | ||||
| Provenance | 1 T | 1 N | 1 NTC | 1 | 1 NT | 1 NTC | 1 N | 1 NT | 1 | 2 NTC | |||||||||||
| QuestionnaireResponse | 1 | 1 T | 1 T | 0|1 E | 1 | 1 TC | 1 | 1 N | 1 NTC | ||||||||||||
| RiskAssessment | 1 | 1 TC | 1 NTC | 0|1 E | 1 | 1 | 1 | 1 | 1 T | 1 NTC | 1 | 1 | |||||||||
| Task | 1 | 1 T | 1 T | 0|1 E | 1 | 1 TC | 1 | 1 NTC | 1 NTC | 1 | 1 NT | 1 N | 1 NTC | 1|1 ENTC | 1 | 1 | 1 |
Each non-grey cell contains a number, the number of elements and extensions (if > 0) mapped in the resource that are mapped to the pattern element in the column. If there are 0 elements and extensions, the number is not shown. In addition, the cell has a color and some character flags.
Colors:
Flags: