List
Maturity Level | Security Category | Resource Category |
---|---|---|
Unclassified | Base Resources |
A list is a curated collection of resources.
Resource Content
Name | Required | Type | Description & Constraints |
---|---|---|---|
identifier | Identifier[] | Business identifier | |
status | ✓ | code | current | retired | entered-in-error ListStatus (Required) |
mode | ✓ | code | working | snapshot | changes ListMode (Required) |
title | string | Descriptive name for the list | |
code | CodeableConcept | What the purpose of this list is Example Use Codes for List (Example) | |
subject | Reference<Patient|Group|Device|Location> | If all resources have the same subject | |
encounter | Reference<Encounter> | Context in which list created | |
date | dateTime | When the list was prepared | |
source | Reference<Practitioner|PractitionerRole|Patient|Device> | Who and/or what defined the list contents (aka Author) | |
orderedBy | CodeableConcept | What order the list has List Order Codes (Preferred) | |
note | Annotation[] | Comments about the list | |
entry | BackboneElement[] | Entries in the list | |
└─ flag | CodeableConcept | Status/Workflow information about this item Patient Medicine Change Types (Example) | |
└─ deleted | boolean | If this item is actually marked as deleted | |
└─ date | dateTime | When item added to list | |
└─ item | ✓ | Reference<Any> | Actual entry |
emptyReason | CodeableConcept | Why list is empty List Empty Reasons (Preferred) |
Search Parameters
Name | Type | Description | Expression |
---|---|---|---|
code | token | What the purpose of this list is | List.code |
date | date | When the list was prepared | List.date |
identifier | token | Business identifier | List.identifier |
patient | reference | If all resources have the same subject | List.subject.where(resolve() is Patient) |
encounter | reference | Context in which list created | List.encounter |
empty-reason | token | Why list is empty | List.emptyReason |
item | reference | Actual entry | List.entry.item |
notes | string | The annotation - text content (as markdown) | List.note.text |
source | reference | Who and/or what defined the list contents (aka Author) | List.source |
status | token | current | retired | entered-in-error | List.status |
subject | reference | If all resources have the same subject | List.subject |
title | string | Descriptive name for the list | List.title |
Scope and Usage
The List resource is a flat, possibly ordered collection of records. List resources are used in many places, including allergies, medications, alerts, family history, medical history, etc. List resources can be used to support patient-specific clinical lists as well as lists that manage workflows such as tracking patients, managing teaching cases, etc. Resources supported by the List resource can be homogeneous – consisting of only one type of resource (e.g. allergy lists) as well as heterogeneous – containing a variety of resources (e.g. a problem list including Conditions, AllergyIntolerances, recent Procedures, etc.).
Lists will typically include references to the resources that make up the list, however in some cases the details of the content of the list might be expressed in narrative only; e.g. a text record of a family history. The List resource is only needed if there is a need to filter the set of resources by a mechanism that cannot be accomplished via a simple query; e.g. there is no need to have a list for all AllergyIntolerances that exist on a server for a given patient. However, List is an appropriate mechanism to provide a filtered list of the subset of AllergyIntolerances that are deemed to be "current". Lists are allowed to contain other Lists, to create a nested collection of Lists.
Querying a List of resources such as AllergyIntolerance, Condition or Medication-related resources is different than querying the resource-specific endpoint. For example, a List of AllergyIntolerance resources would represent a curated point-in-time snapshot of the patient's allergies and intolerances. On the other hand, querying the AllergyIntolerance endpoint would typically produce a larger set of records as it would both be non-curated (potentially containing duplicate or out-of-date records) and current - generated based on information as of "now" rather than the last time a human manually revised the List resource instance. Which mechanism is most appropriate for data retrieval will vary by use-case. In some cases, systems might not have an appropriate curated List to query.
Note that the presence of an item in a List resource SHALL NOT change the meaning of any information that would be understood by looking at the item outside the context of the List, because items may be accessed directly outside the List by RESTful means or after a document is processed. For example, a List with a code that means "refuted conditions" cannot have items that are Condition resources that do not have a verificationStatus of refuted.
Boundaries and Relationships
There are five mechanisms in FHIR for communicating collections of resources:
-
This List resource
- Enumerates a flat collection of resources
- Provides features for managing the collection
- Can represent snapshots but is dynamically maintained
- References other resources
- Lists may be curated and have specific business meaning
-
The Group resource
- Defines groups of specific people, animals, devices, etc.
- Can enumerate members or describe qualifying characteristics
- Refers to other resources (possibly implicitly)
- Intended for collective actions (e.g., group therapy, risk calculations)
- Common uses:
- Public health (describing at-risk populations)
- Clinical trials (defining test subject pools)
-
The Composition resource
- Defines healthcare-related information assembled as a logical document
- Provides single coherent statement of meaning
- Establishes its own context
- Has clinical attestation
- Provides basic structure of a FHIR document
- Full content expressed using a bundle
- Often references Lists as section focus points
-
The Bundle resource
- Infrastructure container for resource groups
- No narrative content
- Used for grouping collections for:
- Transmission
- Persistence
- Processing (messages, documents, transactions, query responses)
- Content typically determined algorithmically
-
The DomainResource.contained element
- Allows nesting of multiple resources inside any DomainResource
- Grouped resources lose independent existence:
- No individual identifiers
- Cannot be easily queried independently
- Technical mechanism for managing resource independence
- No impact on meaning (contained, bundled, and remote references convey same meaning)
Referenced Elements
This resource is referenced by: