Current Build

Переводит компания Health Samurai . Приглашаем поучаствовать в русификации стандарта FHIR: GitHub , Email.

2.39 Ресурс List - Назначение

FHIR Infrastructure Work GroupMaturity Level: 1 Trial UseSecurity Category: Not Classified Compartments: Device, Patient, Practitioner

A list is a curated collection of resources.

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 Condition.clinicalStatus of refuted.

There are five mechanisms in FHIR for communicating collections of resources:

  • This List resource - enumerates a flat collection of resources and provides features for managing the collection. While a particular List instance may represent a "snapshot", from a business process perspective the notion of "List" is dynamic – items are added and removed over time. The List resource references other resources. Lists may be curated and have specific business meaning.
  • The Group resource - defines a group of specific people, animals, devices, etc. by enumerating them, or by describing qualities that group members have. The group resource refers to other resources, possibly implicitly. Groups are intended to be acted upon or observed as a whole; e.g. performing therapy on a group, calculating risk for a group, etc. This resource will commonly be used for public health (e.g. describing an at-risk population), clinical trials (e.g. defining a test subject pool) and similar purposes.
  • The Composition resource - defines a set of healthcare-related information that is assembled together into a single logical document that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. The Composition resource provides the basic structure of a FHIR document. The full content of the document is expressed using a bundle. Compositions will often reference Lists as the focus of particular sections.
  • The Bundle resource - is an infrastructure container for a group of resources. It does not have a narrative and is used to group collections of resources for transmission, persistence or processing (e.g. messages, documents, transactions, query responses, etc.) The content of bundles is typically algorithmically determined for a particular exchange or persistence purpose.
  • The DomainResource.contained element - allows multiple resources to be nested inside any DomainResource. This is a special type of grouping where the grouped resources lose independent existence - they no longer have their own identifiers, can't easily be queried independently, etc. Use of this grouping is a technical mechanism for managing the independence of resources and has no impact on meaning. Contained, bundled, and remotely referenced resources convey the same meaning.

На этот ресурс ссылается MeasureReport

Структура

ИмяФлагиКард.ТипОписание и ограниченияdoco
.. List ITUDomainResourceA list is a curated collection of resources
+ Rule: Только пустой (нет элементов entry) ресурс List может содержать элемент emptyReason
+ Rule: Флаг "deleted" можно использовать только для списка в режиме изменений "changes"
+ Rule: An entry date can only be used if the mode of the list is "working"
Элементы, определённые в прародителе: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier 0..*IdentifierБизнес-идентификатор
... status ?!Σ1..1codecurrent | retired | entered-in-error
ListStatus (Required)
... mode ?!Σ1..1codeworking | snapshot | changes
ListMode (Required)
... title Σ0..1stringОписательное название списка
... code Σ0..1CodeableConceptНазначение этого списка
Example Use Codes for List (Example)
... subject Σ0..1Reference(Patient | Group | Device | Location)Если все ресурсы на одну и ту же тему
... encounter 0..1Reference(Encounter)Контекст, в котором был создан список
... date Σ0..1dateTimeКогда был подготовлен список
... source Σ0..1Reference(Practitioner | PractitionerRole | Patient | Device)Кто и/или что определили содержимое этого списка (также известный как автор)
... orderedBy 0..1CodeableConceptПорядок пунктов в списке
List Order Codes (Preferred)
... note 0..*AnnotationКомментарии ко всему списку в целом
... entry I0..*BackboneElementЗаписи в списке
.... flag 0..1CodeableConceptИнформация о статусе/рабочем процессе для этого пункта
Patient Medicine Change Types (Example)
.... deleted ?!I0..1booleanЕсли этот пункт действительно помечен как удалённый
.... date 0..1dateTimeКогда пункт был добавлен в список
.... item 1..1Reference(Any)Непосредственно сама запись
... emptyReason I0..1CodeableConceptПочему список пустой
List Empty Reasons (Preferred)

doco Документация по этому формату

UML-диаграмма (Legend)

List (DomainResource)Идентификатор этого ресурса List, назначенный в бизнес-целях вне FHIR-контекстаidentifier : Identifier [0..*]Показывает текущий статус списка (this element modifies the meaning of other elements)status : code [1..1] « Текущий статус списка. (Strength=Required)ListStatus! »Как этот список был подготовлен - или это действующий список, пригодный для поддержки на постоянной основе, или он представляет собой снимок (snapshot) перечня из другого ресурса, или это подготовленный список, в котором можно помечать пункты как добавленные, измененные или удаленные (this element modifies the meaning of other elements)mode : code [1..1] « Режим обработки, который применяется к этому списку. (Strength=Required)ListMode! »Название списка, присвоенное авторомtitle : string [0..1]Этот код определяет назначение списка - зачем он был созданcode : CodeableConcept [0..1] « Назначение списка. (Strength=Example)ExampleUseCodesForList?? »Общая тема (или пациент) ресурсов в списке, если таковая имеетсяsubject : Reference [0..1] « Patient|Group|Device|Location »Случай обслуживания, в контексте которого был создан этот списокencounter : Reference [0..1] « Encounter »Дата подготовки спискаdate : dateTime [0..1]Субъект, ответственный за решение о том, какое содержимое войдёт в этот список. Если список был создан человеком, тогда здесь указывается автор спискаsource : Reference [0..1] « Practitioner|PractitionerRole|Patient| Device »Какой порядок пунктов в спискеorderedBy : CodeableConcept [0..1] « Какой порядок сортировки применён к пунктам в списке. (Strength=Preferred)ListOrderCodes? »Комментарии ко всему списку в целомnote : Annotation [0..*]Если список пустой, то причины этогоemptyReason : CodeableConcept [0..1] « Если список пустой, то почему он пустой. (Strength=Preferred)ListEmptyReasons? »EntryЭтот флаг позволяет систем, составляющим список, указывать роль и важность этого пункта в спискеflag : CodeableConcept [0..1] « Коды для предоставления более подробной информации о причине и смысловому значению этого пункта в списке. (Strength=Example)PatientMedicineChangeTypes?? »Истина, если этот пункт помечен в списке как удалённый (this element modifies the meaning of other elements)deleted : boolean [0..1]Когда этот пункт был добавлен в списокdate : dateTime [0..1]Ссылка на сам ресурс, из которого берутся данныеitem : Reference [1..1] « Any »Записи в спискеentry[0..*]

XML-шаблон

<List xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier Бизнес-идентификатор --></identifier>
 <status value="[code]"/><!-- 1..1 current | retired | entered-in-error -->
 <mode value="[code]"/><!-- 1..1 working | snapshot | changes -->
 <title value="[string]"/><!-- 0..1 Описательное название списка -->
 <code><!-- 0..1 CodeableConcept Назначение этого списка --></code>
 <subject><!-- 0..1 Reference(Patient|Group|Device|Location) Если все ресурсы на одну и ту же тему --></subject>
 <encounter><!-- 0..1 Reference(Encounter) Контекст, в котором был создан список --></encounter>
 <date value="[dateTime]"/><!-- 0..1 Когда был подготовлен список -->
 <source><!-- 0..1 Reference(Practitioner|PractitionerRole|Patient|Device) Кто и/или что определили содержимое этого списка (также известный как автор) --></source>
 <orderedBy><!-- 0..1 CodeableConcept Порядок пунктов в списке --></orderedBy>
 <note><!-- 0..* Annotation Комментарии ко всему списку в целом --></note>
 <entry>  <!-- ?? 0..* Записи в списке -->
  <flag><!-- 0..1 CodeableConcept Информация о статусе/рабочем процессе для этого пункта --></flag>
  <deleted value="[boolean]"/><!-- ?? 0..1 Если этот пункт действительно помечен как удалённый -->
  <date value="[dateTime]"/><!-- 0..1 Когда пункт был добавлен в список -->
  <item><!-- 1..1 Reference(Any) Непосредственно сама запись --></item>
 </entry>
 <emptyReason><!-- ?? 0..1 CodeableConcept Почему список пустой --></emptyReason>
</List>

JSON-шаблон

{doco
  "resourceType" : "List",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // Бизнес-идентификатор
  "status" : "<code>", // R!  current | retired | entered-in-error
  "mode" : "<code>", // R!  working | snapshot | changes
  "title" : "<string>", // Описательное название списка
  "code" : { CodeableConcept }, // Назначение этого списка
  "subject" : { Reference(Patient|Group|Device|Location) }, // Если все ресурсы на одну и ту же тему
  "encounter" : { Reference(Encounter) }, // Контекст, в котором был создан список
  "date" : "<dateTime>", // Когда был подготовлен список
  "source" : { Reference(Practitioner|PractitionerRole|Patient|Device) }, // Кто и/или что определили содержимое этого списка (также известный как автор)
  "orderedBy" : { CodeableConcept }, // Порядок пунктов в списке
  "note" : [{ Annotation }], // Комментарии ко всему списку в целом
  "entry" : [{ // C? Записи в списке
    "flag" : { CodeableConcept }, // Информация о статусе/рабочем процессе для этого пункта
    "deleted" : <boolean>, // C? Если этот пункт действительно помечен как удалённый
    "date" : "<dateTime>", // Когда пункт был добавлен в список
    "item" : { Reference(Any) } // R!  Непосредственно сама запись
  }],
  "emptyReason" : { CodeableConcept } // C? Почему список пустой
}

Turtle-шаблон

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:List;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:List.identifier [ Identifier ], ... ; # 0..* Бизнес-идентификатор
  fhir:List.status [ code ]; # 1..1 current | retired | entered-in-error
  fhir:List.mode [ code ]; # 1..1 working | snapshot | changes
  fhir:List.title [ string ]; # 0..1 Описательное название списка
  fhir:List.code [ CodeableConcept ]; # 0..1 Назначение этого списка
  fhir:List.subject [ Reference(Patient|Group|Device|Location) ]; # 0..1 Если все ресурсы на одну и ту же тему
  fhir:List.encounter [ Reference(Encounter) ]; # 0..1 Контекст, в котором был создан список
  fhir:List.date [ dateTime ]; # 0..1 Когда был подготовлен список
  fhir:List.source [ Reference(Practitioner|PractitionerRole|Patient|Device) ]; # 0..1 Кто и/или что определили содержимое этого списка (также известный как автор)
  fhir:List.orderedBy [ CodeableConcept ]; # 0..1 Порядок пунктов в списке
  fhir:List.note [ Annotation ], ... ; # 0..* Комментарии ко всему списку в целом
  fhir:List.entry [ # 0..* Записи в списке
    fhir:List.entry.flag [ CodeableConcept ]; # 0..1 Информация о статусе/рабочем процессе для этого пункта
    fhir:List.entry.deleted [ boolean ]; # 0..1 Если этот пункт действительно помечен как удалённый
    fhir:List.entry.date [ dateTime ]; # 0..1 Когда пункт был добавлен в список
    fhir:List.entry.item [ Reference(Any) ]; # 1..1 Непосредственно сама запись
  ], ...;
  fhir:List.emptyReason [ CodeableConcept ]; # 0..1 Почему список пустой
]

Changes since R3

List
List.source
  • Type Reference: Added Target Type PractitionerRole
List.entry.deleted
  • Default Value "false" removed

See the Full Difference for further information

This analysis is available as XML or JSON.

See R3 <--> R4 Conversion Maps (status = 9 tests of which 4 fail to execute. All tests pass round-trip testing and 1 r3 resources are invalid (0 errors).)

Структура

ИмяФлагиКард.ТипОписание и ограниченияdoco
.. List ITUDomainResourceA list is a curated collection of resources
+ Rule: Только пустой (нет элементов entry) ресурс List может содержать элемент emptyReason
+ Rule: Флаг "deleted" можно использовать только для списка в режиме изменений "changes"
+ Rule: An entry date can only be used if the mode of the list is "working"
Элементы, определённые в прародителе: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier 0..*IdentifierБизнес-идентификатор
... status ?!Σ1..1codecurrent | retired | entered-in-error
ListStatus (Required)
... mode ?!Σ1..1codeworking | snapshot | changes
ListMode (Required)
... title Σ0..1stringОписательное название списка
... code Σ0..1CodeableConceptНазначение этого списка
Example Use Codes for List (Example)
... subject Σ0..1Reference(Patient | Group | Device | Location)Если все ресурсы на одну и ту же тему
... encounter 0..1Reference(Encounter)Контекст, в котором был создан список
... date Σ0..1dateTimeКогда был подготовлен список
... source Σ0..1Reference(Practitioner | PractitionerRole | Patient | Device)Кто и/или что определили содержимое этого списка (также известный как автор)
... orderedBy 0..1CodeableConceptПорядок пунктов в списке
List Order Codes (Preferred)
... note 0..*AnnotationКомментарии ко всему списку в целом
... entry I0..*BackboneElementЗаписи в списке
.... flag 0..1CodeableConceptИнформация о статусе/рабочем процессе для этого пункта
Patient Medicine Change Types (Example)
.... deleted ?!I0..1booleanЕсли этот пункт действительно помечен как удалённый
.... date 0..1dateTimeКогда пункт был добавлен в список
.... item 1..1Reference(Any)Непосредственно сама запись
... emptyReason I0..1CodeableConceptПочему список пустой
List Empty Reasons (Preferred)

doco Документация по этому формату

UML-диаграмма (Legend)

List (DomainResource)Идентификатор этого ресурса List, назначенный в бизнес-целях вне FHIR-контекстаidentifier : Identifier [0..*]Показывает текущий статус списка (this element modifies the meaning of other elements)status : code [1..1] « Текущий статус списка. (Strength=Required)ListStatus! »Как этот список был подготовлен - или это действующий список, пригодный для поддержки на постоянной основе, или он представляет собой снимок (snapshot) перечня из другого ресурса, или это подготовленный список, в котором можно помечать пункты как добавленные, измененные или удаленные (this element modifies the meaning of other elements)mode : code [1..1] « Режим обработки, который применяется к этому списку. (Strength=Required)ListMode! »Название списка, присвоенное авторомtitle : string [0..1]Этот код определяет назначение списка - зачем он был созданcode : CodeableConcept [0..1] « Назначение списка. (Strength=Example)ExampleUseCodesForList?? »Общая тема (или пациент) ресурсов в списке, если таковая имеетсяsubject : Reference [0..1] « Patient|Group|Device|Location »Случай обслуживания, в контексте которого был создан этот списокencounter : Reference [0..1] « Encounter »Дата подготовки спискаdate : dateTime [0..1]Субъект, ответственный за решение о том, какое содержимое войдёт в этот список. Если список был создан человеком, тогда здесь указывается автор спискаsource : Reference [0..1] « Practitioner|PractitionerRole|Patient| Device »Какой порядок пунктов в спискеorderedBy : CodeableConcept [0..1] « Какой порядок сортировки применён к пунктам в списке. (Strength=Preferred)ListOrderCodes? »Комментарии ко всему списку в целомnote : Annotation [0..*]Если список пустой, то причины этогоemptyReason : CodeableConcept [0..1] « Если список пустой, то почему он пустой. (Strength=Preferred)ListEmptyReasons? »EntryЭтот флаг позволяет систем, составляющим список, указывать роль и важность этого пункта в спискеflag : CodeableConcept [0..1] « Коды для предоставления более подробной информации о причине и смысловому значению этого пункта в списке. (Strength=Example)PatientMedicineChangeTypes?? »Истина, если этот пункт помечен в списке как удалённый (this element modifies the meaning of other elements)deleted : boolean [0..1]Когда этот пункт был добавлен в списокdate : dateTime [0..1]Ссылка на сам ресурс, из которого берутся данныеitem : Reference [1..1] « Any »Записи в спискеentry[0..*]

XML-шаблон

<List xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier Бизнес-идентификатор --></identifier>
 <status value="[code]"/><!-- 1..1 current | retired | entered-in-error -->
 <mode value="[code]"/><!-- 1..1 working | snapshot | changes -->
 <title value="[string]"/><!-- 0..1 Описательное название списка -->
 <code><!-- 0..1 CodeableConcept Назначение этого списка --></code>
 <subject><!-- 0..1 Reference(Patient|Group|Device|Location) Если все ресурсы на одну и ту же тему --></subject>
 <encounter><!-- 0..1 Reference(Encounter) Контекст, в котором был создан список --></encounter>
 <date value="[dateTime]"/><!-- 0..1 Когда был подготовлен список -->
 <source><!-- 0..1 Reference(Practitioner|PractitionerRole|Patient|Device) Кто и/или что определили содержимое этого списка (также известный как автор) --></source>
 <orderedBy><!-- 0..1 CodeableConcept Порядок пунктов в списке --></orderedBy>
 <note><!-- 0..* Annotation Комментарии ко всему списку в целом --></note>
 <entry>  <!-- ?? 0..* Записи в списке -->
  <flag><!-- 0..1 CodeableConcept Информация о статусе/рабочем процессе для этого пункта --></flag>
  <deleted value="[boolean]"/><!-- ?? 0..1 Если этот пункт действительно помечен как удалённый -->
  <date value="[dateTime]"/><!-- 0..1 Когда пункт был добавлен в список -->
  <item><!-- 1..1 Reference(Any) Непосредственно сама запись --></item>
 </entry>
 <emptyReason><!-- ?? 0..1 CodeableConcept Почему список пустой --></emptyReason>
</List>

JSON-шаблон

{doco
  "resourceType" : "List",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // Бизнес-идентификатор
  "status" : "<code>", // R!  current | retired | entered-in-error
  "mode" : "<code>", // R!  working | snapshot | changes
  "title" : "<string>", // Описательное название списка
  "code" : { CodeableConcept }, // Назначение этого списка
  "subject" : { Reference(Patient|Group|Device|Location) }, // Если все ресурсы на одну и ту же тему
  "encounter" : { Reference(Encounter) }, // Контекст, в котором был создан список
  "date" : "<dateTime>", // Когда был подготовлен список
  "source" : { Reference(Practitioner|PractitionerRole|Patient|Device) }, // Кто и/или что определили содержимое этого списка (также известный как автор)
  "orderedBy" : { CodeableConcept }, // Порядок пунктов в списке
  "note" : [{ Annotation }], // Комментарии ко всему списку в целом
  "entry" : [{ // C? Записи в списке
    "flag" : { CodeableConcept }, // Информация о статусе/рабочем процессе для этого пункта
    "deleted" : <boolean>, // C? Если этот пункт действительно помечен как удалённый
    "date" : "<dateTime>", // Когда пункт был добавлен в список
    "item" : { Reference(Any) } // R!  Непосредственно сама запись
  }],
  "emptyReason" : { CodeableConcept } // C? Почему список пустой
}

Turtle-шаблон

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:List;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:List.identifier [ Identifier ], ... ; # 0..* Бизнес-идентификатор
  fhir:List.status [ code ]; # 1..1 current | retired | entered-in-error
  fhir:List.mode [ code ]; # 1..1 working | snapshot | changes
  fhir:List.title [ string ]; # 0..1 Описательное название списка
  fhir:List.code [ CodeableConcept ]; # 0..1 Назначение этого списка
  fhir:List.subject [ Reference(Patient|Group|Device|Location) ]; # 0..1 Если все ресурсы на одну и ту же тему
  fhir:List.encounter [ Reference(Encounter) ]; # 0..1 Контекст, в котором был создан список
  fhir:List.date [ dateTime ]; # 0..1 Когда был подготовлен список
  fhir:List.source [ Reference(Practitioner|PractitionerRole|Patient|Device) ]; # 0..1 Кто и/или что определили содержимое этого списка (также известный как автор)
  fhir:List.orderedBy [ CodeableConcept ]; # 0..1 Порядок пунктов в списке
  fhir:List.note [ Annotation ], ... ; # 0..* Комментарии ко всему списку в целом
  fhir:List.entry [ # 0..* Записи в списке
    fhir:List.entry.flag [ CodeableConcept ]; # 0..1 Информация о статусе/рабочем процессе для этого пункта
    fhir:List.entry.deleted [ boolean ]; # 0..1 Если этот пункт действительно помечен как удалённый
    fhir:List.entry.date [ dateTime ]; # 0..1 Когда пункт был добавлен в список
    fhir:List.entry.item [ Reference(Any) ]; # 1..1 Непосредственно сама запись
  ], ...;
  fhir:List.emptyReason [ CodeableConcept ]; # 0..1 Почему список пустой
]

Changes since Release 3

List
List.source
  • Type Reference: Added Target Type PractitionerRole
List.entry.deleted
  • Default Value "false" removed

See the Full Difference for further information

This analysis is available as XML or JSON.

See R3 <--> R4 Conversion Maps (status = 9 tests of which 4 fail to execute. All tests pass round-trip testing and 1 r3 resources are invalid (0 errors).)

 

See the Profiles & Extensions and the Альтернативные определения: Основное определение XML + JSON, XML Schema/Schematron + JSON Schema, ShEx (for Turtle) + see the extensions & the Анализ зависимостей

PathОписаниеТипСсылка
List.status Текущий статус списка.RequiredListStatus
List.mode Режим обработки, который применяется к этому списку.RequiredListMode
List.code Назначение списка.ExampleExampleUseCodesForList
List.orderedBy Какой порядок сортировки применён к пунктам в списке.PreferredListOrderCodes
List.entry.flag Коды для предоставления более подробной информации о причине и смысловому значению этого пункта в списке.ExamplePatientMedicineChangeTypes
List.emptyReason Если список пустой, то почему он пустой.PreferredListEmptyReasons

idLevelLocationОпределениеExpression
lst-1Rule (base)Только пустой (нет элементов entry) ресурс List может содержать элемент emptyReasonemptyReason.empty() or entry.empty()
lst-2Rule (base)Флаг "deleted" можно использовать только для списка в режиме изменений "changes"mode = 'changes' or entry.deleted.empty()
lst-3Rule (base)An entry date can only be used if the mode of the list is "working"mode = 'working' or entry.date.empty()

When a client system is interested in a patient's medications, allergies, problems, family history or other information typically handled via List, they have three options:

  • They can query for List instances of the appropriate type; or
  • They can query against the resource endpoint for the resources that make up the list (e.g. AllergyIntolerance, Condition MedicationStatement, etc.), possibly filtering by time, etc.
  • They can query against the resource endpoint, requesting one of the Current resource lists

Querying directly against the clinical resource endpoints will provide an un-curated view of information. A server may contain records that were part of various clinical documents, referrals and other submission sources that might not necessarily be considered wholly accurate or current, but which must be retained "as is" to provide a record of what data was received or seen by a clinician at a particular point in time.

On the other hand, lists are almost always curated. They will include only those records deemed by the author of the list to be both current and accurate. This can be both an advantage and a disadvantage. Lists are less likely to include irrelevant content, but there's a risk that they won't be completely up-to-date (new content may have been added that's more recent than when a given list was last updated). It's also possible that the list author's notion of "current" or "relevant" may differ from the perspective of the user performing the query. Also, there's the challenge that multiple lists may exist, with different author and different perspectives

The Current resource lists get around the problem of multiple lists and make it clear which list is considered authoritative, but not all systems will necessarily support this capability, and there's still the possibility that the list won't be completely up-to-date or will exclude information that is of interest to the querying system.

There's no right and wrong way to retrieve allergy, medication and other such information. Sometimes retrieving the "current" medication list will provide the best results, sometimes querying the raw records will provide better results. Sometimes providing the contents of the list plus a filtered view of the raw records may give the most useful information. Determining the most appropriate approach will depend on the needs of the user as well as the types of data sources for information held on the server and patterns of list maintenance. Client systems may well need to adapt their behavior in different environments if they can't count on consistent server behavior.

All lists are considered ordered - the order in which items literally appear in the list may be an important part of the meaning of the list. Reordering the items in a list may change the meaning of the list.

While a list always contains an ordered set of items, the significance of the order may be unknown, or it may be insignificant. As an example, consider a list of patients for a practitioner to visit. The list may be in the order in which the patients are to be visited, or it may be an unsorted list of patients to be visited in any order.

The List resource has an orderedBy element that, if present, specifies the meaning of the item order. Note, however, that the meaning of the order may be known implicitly rather than specified in the orderedBy element.

Applications SHOULD NOT reorder the elements in a list unless they understand the impact of this on the meaning of the list.

There are several different kinds of uses for a List resource:

workingЭтот список является основным, поддерживаемым на постоянной основе с регулярными обновлениями по мере изменения реального списка, изменения в котором он отслеживает.
snapshotЭтот список был подготовлен в режиме моментального снимка. Его не следует считать текущим.
changesA point-in-time list that shows what changes have been made or recommended. E.g. a discharge medication list showing what was added and removed during an encounter.

The most common mode is "snapshot" - a list that is accurate within the context it is used in but not current or maintained after that; e.g., medications on discharge in a discharge summary. Note that these lists usually have a status of 'current' - they were current when they were prepared. Some kinds of lists may be explicitly retired (particularly if mode = working), but most will not be maintained after creation.

A change list may include deleted items. Some examples of change lists are a reconciled list of allergies, a discharge medication list and a list with new, updated and deleted items in it - though these might not be lists that include changes (this is an implementation decision). 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 section of 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.

Some kinds of List resources may grow to a considerable size, and handling them may require more care than typical resources. Some approaches to consider include:

The narrative portion of the List resource should contain a summary of the items in the list, their key information, along with a human-readable summary of their flags (if present). The narrative may be generated from the data content and/or narrative of the resources referred to in the list, or it may be a narrative written by a human, which is partially or completely matched by structured data in the linked resources. The human written narrative may be the only content if the list has no entries (which would equate to a narrative only section in a document).

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 SHALL NOT be necessary to retrieve the list items in order to have a human-readable rendering of the content. In addition, if the List.text.status is "generated", then 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).

Note that when a List resource is used in a Document, the narrative of the list is part of the attested content of the document.

In a dynamic environment, the narrative content of a list will be limited to the version of the linked 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:

  • Provide minimal information about the listed resources, possibly limited to only a link. (Not recommended as this severely limits the usefulness of the narrative and is particularly problematic for things like documents where the only attested content might be the List narrative.)
  • Include only "generated" narrative, so the retriever can easily generate their own "current" view of the list by retrieving the referenced resources, ignoring the fixed narrative.
  • The server hosting the list can subscribe to all referenced resources and auto-update the narrative each time one of the referenced resources changes (or at least on a semi-frequent basis).

If a list is empty, there could be several different reasons why this is so. For example:

  • There are no appropriate entries for the list (i.e. the patient has no known medications/allergies/history)
  • The sender (human or system) deemed that these were not related to this context of patient care (usually for privacy related reasons)
  • The source system doesn't support these types of entries
  • The information to populate the list wasn't gathered - i.e. "Not asked"

Given these possibilities - especially the common and significant first case - for many kinds of lists, source systems SHOULD provide an empty reason if the list is empty. Because of the importance of the first 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 a list is empty, the narrative should contain text equivalent to the empty reason.

Note that there are also many kinds of lists that can be empty with no need for an empty reason (example)

Параметры поиска для этого ресурса. Также к нему применяются общие параметры. Более подробную информацию о поиске в REST, обмене сообщениями и сервисах см. в разделе Поиск.

ИмяТипОпределениеВыражениеIn Common
codetokenНазначение этого спискаList.code13 Resources
datedateКогда был подготовлен списокList.date17 Resources
empty-reasontokenПочему список пустойList.emptyReason
encounterreferenceКонтекст, в котором был создан списокList.encounter
(Encounter)
12 Resources
identifiertokenБизнес-идентификаторList.identifier30 Resources
itemreferenceНепосредственно сама записьList.entry.item
(Any)
notesstringThe annotation - text content (as markdown)List.note.text
patientreferenceЕсли все ресурсы на одну и ту же темуList.subject.where(resolve() is Patient)
(Patient)
29 Resources
sourcereferenceКто и/или что определили содержимое этого списка (также известный как автор)List.source
(Practitioner, Device, Patient, PractitionerRole)
statustokencurrent | retired | entered-in-errorList.status
subjectreferenceЕсли все ресурсы на одну и ту же темуList.subject
(Group, Device, Patient, Location)
titlestringОписательное название спискаList.title