This page is part of the FHIR Specification (v0.4.0: DSTU 2 Draft). 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 R2
This resource maintained by the FHIR Management Group Work Group
A set of information summarized from a list of other resources.
List resources are used in many places, including allergies, medications, alerts, medical history, etc.
There are 2 resources that provide for constructing collections of other resources:
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
List | I | DomainResource | Information summarized from a list of other resources The deleted flag can only be used if the mode of the list is "changes" A list can only have an emptyReason if it is empty | |
identifier | 0..* | Identifier | Business identifier | |
code | 0..1 | CodeableConcept | What the purpose of this list is ListPurpose (Example) | |
subject | 0..1 | Patient | Group | Device | Location | If all resources have the same subject | |
source | 0..1 | Practitioner | Patient | Device | Who and/or what defined the list contents | |
date | 0..1 | dateTime | When the list was prepared | |
ordered | M | 0..1 | boolean | Whether items in the list have a meaningful order |
mode | M | 1..1 | code | working | snapshot | changes ListMode (Required) |
entry | I | 0..* | Element | Entries in the list |
flag | 0..* | CodeableConcept | Workflow information about this item ListItemFlag (Example) | |
deleted | M I | 0..1 | boolean | If this item is actually marked as deleted |
date | 0..1 | dateTime | When item added to list | |
item | 1..1 | Any | Actual entry | |
emptyReason | I | 0..1 | CodeableConcept | Why list is empty ListEmptyReason (Incomplete) |
UML Diagram
XML Template
<List xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <identifier><!-- 0..* Identifier Business identifier --></identifier> <code><!-- 0..1 CodeableConcept What the purpose of this list is --></code> <subject><!-- 0..1 Reference(Patient|Group|Device|Location) If all resources have the same subject --></subject> <source><!-- 0..1 Reference(Practitioner|Patient|Device) Who and/or what defined the list contents --></source> <date value="[dateTime]"/><!-- 0..1 When the list was prepared --> <ordered value="[boolean]"/><!-- 0..1 Whether items in the list have a meaningful order --> <mode value="[code]"/><!-- 1..1 working | snapshot | changes --> <entry> <!-- 0..* Entries in the list --> <flag><!-- 0..* CodeableConcept Workflow information about this item --></flag> <deleted value="[boolean]"/><!-- 0..1 If this item is actually marked as deleted --> <date value="[dateTime]"/><!-- 0..1 When item added to list --> <item><!-- 1..1 Reference(Any) Actual entry --></item> </entry> <emptyReason><!-- 0..1 CodeableConcept Why list is empty --></emptyReason> </List>
JSON Template
{ "resourceType" : "List", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "identifier" : [{ Identifier }], // Business identifier "code" : { CodeableConcept }, // What the purpose of this list is "subject" : { Reference(Patient|Group|Device|Location) }, // If all resources have the same subject "source" : { Reference(Practitioner|Patient|Device) }, // Who and/or what defined the list contents "date" : "<dateTime>", // When the list was prepared "ordered" : <boolean>, // Whether items in the list have a meaningful order "mode" : "<code>", // R! working | snapshot | changes "entry" : [{ // C? Entries in the list "flag" : [{ CodeableConcept }], // Workflow information about this item "deleted" : <boolean>, // C? If this item is actually marked as deleted "date" : "<dateTime>", // When item added to list "item" : { Reference(Any) } // R! Actual entry }], "emptyReason" : { CodeableConcept } // C? Why list is empty }
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
List | I | DomainResource | Information summarized from a list of other resources The deleted flag can only be used if the mode of the list is "changes" A list can only have an emptyReason if it is empty | |
identifier | 0..* | Identifier | Business identifier | |
code | 0..1 | CodeableConcept | What the purpose of this list is ListPurpose (Example) | |
subject | 0..1 | Patient | Group | Device | Location | If all resources have the same subject | |
source | 0..1 | Practitioner | Patient | Device | Who and/or what defined the list contents | |
date | 0..1 | dateTime | When the list was prepared | |
ordered | M | 0..1 | boolean | Whether items in the list have a meaningful order |
mode | M | 1..1 | code | working | snapshot | changes ListMode (Required) |
entry | I | 0..* | Element | Entries in the list |
flag | 0..* | CodeableConcept | Workflow information about this item ListItemFlag (Example) | |
deleted | M I | 0..1 | boolean | If this item is actually marked as deleted |
date | 0..1 | dateTime | When item added to list | |
item | 1..1 | Any | Actual entry | |
emptyReason | I | 0..1 | CodeableConcept | Why list is empty ListEmptyReason (Incomplete) |
XML Template
<List xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <identifier><!-- 0..* Identifier Business identifier --></identifier> <code><!-- 0..1 CodeableConcept What the purpose of this list is --></code> <subject><!-- 0..1 Reference(Patient|Group|Device|Location) If all resources have the same subject --></subject> <source><!-- 0..1 Reference(Practitioner|Patient|Device) Who and/or what defined the list contents --></source> <date value="[dateTime]"/><!-- 0..1 When the list was prepared --> <ordered value="[boolean]"/><!-- 0..1 Whether items in the list have a meaningful order --> <mode value="[code]"/><!-- 1..1 working | snapshot | changes --> <entry> <!-- 0..* Entries in the list --> <flag><!-- 0..* CodeableConcept Workflow information about this item --></flag> <deleted value="[boolean]"/><!-- 0..1 If this item is actually marked as deleted --> <date value="[dateTime]"/><!-- 0..1 When item added to list --> <item><!-- 1..1 Reference(Any) Actual entry --></item> </entry> <emptyReason><!-- 0..1 CodeableConcept Why list is empty --></emptyReason> </List>
JSON Template
{ "resourceType" : "List", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "identifier" : [{ Identifier }], // Business identifier "code" : { CodeableConcept }, // What the purpose of this list is "subject" : { Reference(Patient|Group|Device|Location) }, // If all resources have the same subject "source" : { Reference(Practitioner|Patient|Device) }, // Who and/or what defined the list contents "date" : "<dateTime>", // When the list was prepared "ordered" : <boolean>, // Whether items in the list have a meaningful order "mode" : "<code>", // R! working | snapshot | changes "entry" : [{ // C? Entries in the list "flag" : [{ CodeableConcept }], // Workflow information about this item "deleted" : <boolean>, // C? If this item is actually marked as deleted "date" : "<dateTime>", // When item added to list "item" : { Reference(Any) } // R! Actual entry }], "emptyReason" : { CodeableConcept } // C? Why list is empty }
Alternate definitions: Schema/Schematron, Resource Profile (XML, JSON), Questionnaire
Path | Definition | Type | Reference |
---|---|---|---|
List.code | What the purpose of a list is | Example | http://hl7.org/fhir/vs/list-example-codes |
List.mode | The processing mode that applies to this list | Fixed | http://hl7.org/fhir/list-mode |
List.entry.flag | Codes that provide further information about the reason and meaning of the item in the list | Example | http://hl7.org/fhir/vs/list-item-flag |
List.emptyReason | If a list is empty, why it is empty | Incomplete | http://hl7.org/fhir/vs/list-empty-reason |
There are several different kinds of uses for a List resource:
working | This list is the master list, maintained in an ongoing fashion with regular updates as the real world list it is tracking changes. |
snapshot | This list was prepared as a snapshot. It should not be assumed to be current. |
changes | The list is prepared as a statement of changes that have been made or recommended. |
The final mode - a changes list, may include deleted items. A typical case is a medication list in a discharge summary, where the list includes items that have been both added and deleted. In order to ensure that the list is safe to process, any item where the flag implies that the item has actually been deleted SHALL have the deleted element set to true.
Note that there is no implication about the status of a resource that has been deleted. The only statement that is made is that the resource has been dropped from the list. However applications should ensure that the implication of adding or deleting items from the list is consistent with the logical status of the resource and its contents.
A proper use of List.mode = "changes" with a deleted resource is in a medications list for a discharge summary. See Example "med-list". An improper use would be if the list was a working list of patient medications in a clinical tracking system, and list item flags were used to implement version tracking history within the resource.
The narrative portion of the List resource should contain a summary of key properties of the items in the list, along with a human-readable summary of their flags (if present).
An HTML table is the recommended approach, though this is not required. Each List.item should appear in the narrative for the resource. I.e. It should not be necessary to retrieve the list items in order to have a human-readable rendering of the content. In addiiton, the narrative should not suggest the list contains items for which there are no corresponding List.item elements. If the list has flags, the representation should make clear use of visual hints (borders, lines, bullet marks, etc.) to ensure that human readers do not get confused about which flags belong with which item on space-poor displays (e.g. to prevent wrapping from separating the flags from the items).
This means that the narrative content of the list will be limited to the version of the contained resources at the time the list was last updated. It may be even earlier if the narrative isn't updated to reflect the most recent version of all referenced resources at each update. Best practice for 'working' lists is to update the narrative to reflect the most recent content of all list elements each time the list is revised. Lists should therefore not be relied on as a real-time view of the referenced content. There are a few possible approaches to work around this issue:
If the list is empty, there could be several different reasons why this is so. For example:
Given these possibilities, and the common and significant first case, source systems SHOULD provide an empty reason if the list is empty. Because of the importance of this case, the special value "nil-known" should be used when there are no (significant) entries in this context of care. Note that this concept is sometimes described differently, such as "patient denies taking medications", or "patient was unable to identify any relevant medical history".
When receiving a list, systems should not assume that the list is complete (some entries may have been withheld for a variety of reasons), unless there are specific trading partner arrangements in place or, if the list is empty, that there are actually nil known, unless the "nil-known" code is present.
If the list is empty, the narrative should contain text equivalent to the empty reason.
Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.
Name | Type | Description | Paths |
code | token | What the purpose of this list is | List.code |
date | date | When the list was prepared | List.date |
empty-reason | token | Why list is empty | List.emptyReason |
item | reference | Actual entry | List.entry.item (Any) |
patient | reference | If all resources have the same subject | List.subject (Patient) |
source | reference | Who and/or what defined the list contents | List.source (Device, Patient, Practitioner) |
subject | reference | If all resources have the same subject | List.subject (Device, Location, Patient, Group) |