This
page
is
part
of
the
FHIR
Specification
(v3.0.2:
(v4.0.1:
R4
-
Mixed
Normative
and
STU
3).
)
in
it's
permanent
home
(it
will
always
be
available
at
this
URL).
The
current
version
which
supercedes
this
version
is
5.0.0
.
For
a
full
list
of
available
versions,
see
the
Directory
of
published
versions
.
Page
versions:
R5
R4B
R4
R3
R4
R3
R2
FHIR
Infrastructure
Work
Group
|
Maturity Level : 3 |
|
This page describes several issues around lifecycle management for the resources and the content they contain. Specifically, this page describes:
Many FHIR resources have a status element that represents the lifecycle state of the resource or the clinical process represented by the resource. Work groups can specify status values appropriate to the individual resource. Although consistency between resources is not the primary objective, it is helpful to users and developers to have well-crafted value sets that cover all possible states (since the value sets are typically required and non-extensible).
To understand existing status elements, and to help create extensions and resources involving resource states, we note that status value sets follow one of the following life cycles:
For additional information about managing resource life cycles, see:
Describes the lifecycle states of complex activities common in healthcare. Typically, these states follow a chronological life cycle that leads from initiation to the conclusion of the action. A characteristic (but non-exhaustive) set of states for the clinical workflow process life cycle include:
Examples of the clinical workflow life cycle:
Some resources in FHIR represent orders or requests. The request lifecycle can be generalized in terms of four stages: creating the request, sending the request, receiving acceptance or refusal of the request, and fulfillment of the request. A characteristic (but non-exhaustive) set of states for the request/order pattern include:
Examples of the request/order life cycle:
The entity availability life cycle indicates if the resource, or the entity described by the resource, is ready for use, not yet ready for use, or has been retired from use. A characteristic (but non-exhaustive) set of states for the entity availability life cycle include:
Examples of the entity availability life cycle:
Clinical status is somewhat different than the previous status values, since it does not deal with workflow or lifecycle. Instead, it indicates how evidence is affecting a clinical interpretation. Here are two examples:
Many clinical systems maintain current lists of some kind of resources for a patient. Some of the commonly maintained lists include:
Because of the way that resources are used, there is no simple way to determine, from examination of a resource, whether it is 'current' or not. Take, as an example, the Condition resource. In a typical EHR, condition resources might be published on the RESTful interface for the following reasons:
There
is
no
element
on
the
Condition
resource
than
that
can
convey
the
difference
between
these
usages.
In
particular,
there
can
be
no
way
to
differentiate
between
current
and
past
resources
without
having
to
retrospectively
alter
resources,
which
is
problematic
with
regard
to
integrity
and
digital
signatures.
One consequence of this is that searching the condition resource for a given patient will return more than just the patient's current problems. Though this is somewhat counter-intuitive to some implementers, restricting searches on Condition to only include the patient's current curated problem list excludes all the other - important - uses of the Condition resource.
Determining whether a Condition is an entry on a patient's current problem list is done by checking with the Condition resource is referenced from the correct list.
On the RESTful API, this is done using the list search mechanism :
GET [base]/AllergyIntolerance?patient=42&_list=$current-allergies
This
is
a
request
to
fetch
all
the
allergies
in
the
patient
42's
"Current
"Current
Problem
List".
List".
Note
that
the
server
is
not
required
to
actually
make
a
resource
representation
of
the
current
allergy
list
available,
though
doing
so
assists
clients
in
their
audit/integrity
tasks.
See
List
Operation
"Find"
"Find"
for
further
information.
In a document, current lists are determined by the code on a Composition section.
FHIR defines the following names for functional lists:
| List | ResourceType | Description | Possible LOINC codes in documents / sections |
| $current-problems | Condition |
The
|
46105-3 (Problem conditions Set) |
| $current-medications | MedicationStatement / MedicationRequest | A list of all medications that the patient is taking. The 'current medications list' sometimes may include a mix of prescribed and over-the-counter medications - or only some of them. The list may contain a mix of prescriptions and more general statements , or only one of the two. The list may also correspond to a formal reconciled medication administration schedule, but more often does not | 57828-6 (Prescription list), 10160-0 (History of medication) |
| $current-allergies | AllergyIntolerance | A list of known or suspected propensities to medications, foods, or environmental agents that is provided to help prevent reactions while care is occurring | 18716-1 (Allergy studies (set)), 52472-8 (Allergies and Adverse Drug Reactions), and 48765-2 (Allergies and adverse reactions Document) |
| $current-drug-allergies | AllergyIntolerance | A list of known or suspected propensities to medications that is provided to help prevent reactions while care is occurring. This list is a subset of the full allergies list | (same as above?) |
The
entered-in-error
state
indicates
the
resource
was
created
accidentally,
accidentally
and
should
be
ignored.
This
state
can
apply
to
resources
created
by
manual
entry.
It
is
usually
not
associated
with
the
Clinical
Workflow
Process
life
cycle,
but
can
be
associated
with
the
Request/Order
and
the
Entity
Availability
life
cycles.
This table summarizes what is expected to happen for each resource in the case that the data it contains is subsequently found to be an erroneous entry.
| Resource | Status |
| Account | .status = entered-in-error |
| ActivityDefinition | .status = retired |
| AdverseEvent | |
| AllergyIntolerance | .verificationStatus = entered-in-error |
| Appointment | .status=entered-in-error |
| AppointmentResponse | .participantStatus=entered-in-error |
| AuditEvent | Audit Events are recorded, there is no update or delete. |
| Basic | There are no fixed arrangements for Basic - profiles should describe how this works as arrangements will depend on the 'type' of Basic resource |
| Binary | n/a (This would be handled where the binary is linked from) |
|
| .verificationStatus = entered-in-error |
| BodyStructure | .active = false |
| Bundle | Depends on the type: document - see for Composition; message - see for MessageHeader; transaction / transaction-response / history / searchset - not expected to be stored; collection: just delete it if it's stored, and in error |
| CapabilityStatement | .status = retired |
| CarePlan | .status = entered-in-error |
| CareTeam | .status = entered-in-error |
| CatalogEntry | .status = retired |
| ChargeItem | .status = entered-in-error |
| ChargeItemDefinition | .status = retired |
| Claim | .status = entered-in-error |
| ClaimResponse | .status = entered-in-error |
| ClinicalImpression | |
| CodeSystem | .status = retired |
| Communication | .status = entered-in-error |
| CommunicationRequest | .status = entered-in-error |
| CompartmentDefinition | .status = retired |
| Composition | .status = entered-in-error |
| ConceptMap | .status = retired |
| Condition | .verificationStatus = entered-in-error |
| Consent | .status = entered-in-error |
| Contract | .status = entered-in-error |
| Coverage | .status = entered-in-error |
|
|
.status
=
|
| CoverageEligibilityResponse | .status = entered-in-error |
| DetectedIssue | .status = entered-in-error |
| Device | .status = entered-in-error |
|
|
.operationalStatus = entered-in-error |
| DeviceMetric | .operationalStatus = entered-in-error |
| DeviceRequest | .status = entered-in-error |
| DeviceUseStatement | .status = entered-in-error |
| DiagnosticReport | .status = entered-in-error |
| DocumentManifest | .status = entered-in-error |
| DocumentReference | .status = entered-in-error |
|
|
.status
=
|
| Encounter | .status=entered-in-error |
| Endpoint | .status=entered-in-error |
| EnrollmentRequest | .status = entered-in-error |
| EnrollmentResponse | .status = entered-in-error |
| EpisodeOfCare | .status=entered-in-error |
|
|
.status = retired |
| Evidence | Delete the report if it is |
| EvidenceVariable | Delete the report if it is |
| ExampleScenario | .status = retired |
| ExplanationOfBenefit | .status = entered-in-error |
| FamilyMemberHistory | .status = entered-in-error |
| Flag | .status = entered-in-error |
| Goal | .status = entered-in-error |
| GraphDefinition | .status = retired |
| Group | .active = false |
| GuidanceResponse | .status = entered-in-error |
| HealthcareService | .active = false |
|
|
Imaging
|
|
|
.status = entered-in-error |
|
|
.status = entered-in-error |
| ImmunizationRecommendation |
Immunization
recommendations
are
generated
on
|
| ImplementationGuide | .status = retired |
| InsurancePlan | .status = retired |
| Invoice | .status = entered-in-error |
| Library | .status = retired |
| Linkage | .active = false |
| List | .status = entered-in-error |
| Location | .status = inactive |
| Measure | Delete the report if it is |
| MeasureReport | Delete the report if it is |
| Media | n/a - this would be handled whereever the media is linked from |
| Medication | Medication does not have a status |
| MedicationAdministration | .status = entered-in-error |
| MedicationDispense | .status = entered-in-error |
| MedicationKnowledge | .status = entered-in-error |
| MedicationRequest | .status = entered-in-error |
| MedicationStatement | .status = entered-in-error |
| MedicinalProduct | |
| MedicinalProductAuthorization | |
| MedicinalProductContraindication | |
| MedicinalProductIndication | |
| MedicinalProductIngredient | |
| MedicinalProductInteraction | |
| MedicinalProductManufactured | |
| MedicinalProductPackaged | |
| MedicinalProductPharmaceutical | |
| MedicinalProductUndesirableEffect | |
| MessageDefinition | mostly n/a, but in the cases where messages are stored in error, they would simply be deleted |
| MessageHeader | mostly n/a, but in the cases where messages are stored in error, they would simply be deleted |
| MolecularSequence | .status = entered-in-error |
| NamingSystem | .status = retired |
| NutritionOrder | .status = entered-in-error |
| Observation | .status = entered-in-error |
| ObservationDefinition | |
| OperationDefinition | .status = retired |
| OperationOutcome | n/a - this resource is not expected to be stored |
| Organization | .active = false |
| OrganizationAffiliation | .active = false |
| Patient | .active = false |
| PaymentNotice | .status = entered-in-error |
| PaymentReconciliation | .status = entered-in-error |
| Person | .active = false |
| PlanDefinition | .status = retired |
| Practitioner | .active = false |
| PractitionerRole | .active = false |
| Procedure | .status = entered-in-error |
|
|
Provenance are recorded, there is no update or delete. |
|
|
.status
=
|
|
|
.status = entered-in-error |
|
|
.active
=
|
|
|
.status = entered-in-error |
|
|
Delete the report if it is |
|
|
Delete the report if it is |
|
|
.status = entered-in-error |
|
|
.status = entered-in-error |
|
|
.status = entered-in-error |
|
|
.status
=
|
| Schedule | .active = false |
| SearchParameter | .status = retired |
|
|
.status = entered-in-error |
|
|
.status
=
|
|
|
.status = entered-in-error |
|
|
|
| StructureDefinition | .status = retired |
| StructureMap | .status = retired |
| Subscription | .status = off (just turn it off, maybe update the error message) |
| Substance | .status = entered-in-error |
| SubstanceNucleicAcid | |
| SubstancePolymer | |
| SubstanceProtein | |
| SubstanceReferenceInformation | |
| SubstanceSourceMaterial | |
| SubstanceSpecification | |
| SupplyDelivery | .status = entered-in-error |
| SupplyRequest | .status = entered-in-error |
| Task | .status = entered-in-error |
| TerminologyCapabilities | .status = retired |
| TestReport | .status = entered-in-error |
| TestScript | .status = retired |
| ValueSet | .status = retired |
| VerificationResult | |
| VisionPrescription | .status = entered-in-error |
Note: Resources that are not listed in this table do not have any explicit documentation with regard to being entered in error.