allgosts.ru35.240 Применение информационных технологий35 ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ

ПНСТ 995-2024 Системы киберфизические. Персональные медицинские помощники. Форматы обмена данными. Общие требования

Обозначение:
ПНСТ 995-2024
Наименование:
Системы киберфизические. Персональные медицинские помощники. Форматы обмена данными. Общие требования
Статус:
Действует
Дата введения:
01.02.2025
Дата отмены:
01.02.2028
Заменен на:
-
Код ОКС:
35.240.80

Текст ПНСТ 995-2024 Системы киберфизические. Персональные медицинские помощники. Форматы обмена данными. Общие требования

ФЕДЕРАЛЬНОЕ АГЕНТСТВО

ПО ТЕХНИЧЕСКОМУ РЕГУЛИРОВАНИЮ И МЕТРОЛОГИИ

ПРЕДВАРИТЕЛЬНЫЙ НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

пнет

995— 2024

Системы киберфизические

ПЕРСОНАЛЬНЫЕ МЕДИЦИНСКИЕ ПОМОЩНИКИ

Форматы обмена данными.

Общие требования

Издание официальное

Москва Российский институт стандартизации 2025

ПНСТ 995—2024

Предисловие

1 РАЗРАБОТАН Фондом «Технопарк Академгородка» (ИЦ НТИ Хелснет)

2 ВНЕСЕН Техническим комитетом по стандартизации ТК 194 «Кибер-физические системы»

3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 27 декабря 2024 г. № 126-пнст

Правила применения настоящего стандарта и проведения его мониторинга установлены в ГОСТР 1.16—2011 (разделы 5 и 6).

Федеральное агентство по техническому регулированию и метрологии собирает сведения о практическом применении настоящего стандарта. Данные сведения, а также замечания и предложения по содержанию стандарта можно направить не позднее чем за 4 мес до истечения срока его действия разработчику настоящего стандарта по адресу: 630090 г. Новосибирск, ул. Николаева, 12, и/или в Федеральное агентство по техническому регулированию и метрологии по адресу: 123112 Москва, Пресненская набережная, д. 10, стр. 2.

В случае отмены настоящего стандарта соответствующая информация будет опубликована в ежемесячном информационном указателе «Национальные стандарты» и также будет размещена на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.rst.gov.ru)

© Оформление. ФГБУ «Институт стандартизации», 2025

Настоящий стандарт не может быть полностью или частично воспроизведен, тиражирован и распространен в качестве официального издания без разрешения Федерального агентства по техническому регулированию и метрологии

II

ПНСТ 995—2024

Содержание

1 Область применения..................................................................1

2 Нормативные ссылки..................................................................2

3 Термины и определения................................................................2

4 Обозначения и сокращения.............................................................3

5 Форматы обмена данными с персональными медицинскими приборами........................5

6 Форматы обмена данными с сервисом хранения и обработки результатов измерений.............5

6.1 Общие требования.................................................................5

6.2 Требования к модели данных в формате взаимодействия.................................6

7 Метамодель данных хранилища результатов измерений....................................10

7.1 Источник.........................................................................10

7.2 Верхний уровень..................................................................10

7.3 Ресурсы данных...................................................................11

7.4 Типы данных.....................................................................13

7.5 Терминологические ресурсы........................................................15

7.6 REST API........................................................................16

8 Компоненты модели данных хранилища результатов измерений.............................17

8.1 Правила именования...............................................................17

8.2 Способы описания.................................................................18

9 Типы данных........................................................................19

9.1 Общие сведения..................................................................19

9.2 Простые типы данных..............................................................19

9.3 Комплексные типы данных общего назначения.........................................32

9.4 Специальные типы данных..........................................................57

9.5 Типы метаданных..................................................................84

10 Ресурсы REST......................................................................97

10.1 Общие сведения.................................................................97

10.2 Базисные ресурсы................................................................99

10.3 Ресурсы общего назначения.......................................................104

11 Модель данных хранилища результатов измерений......................................135

11.1 Состав данных хранилища результатов измерений....................................135

11.2 Ресурс CarePlan — план дистанционного мониторинга пациента.........................144

11.3 Ресурс Goal — цель..............................................................151

11.4 Ресурс ServiceRequest — назначение...............................................155

11.5 Ресурс Task — мероприятие.......................................................161

11.6 Ресурс Subscription — подписка на изменения экземпляров ресурсов.....................174

11.7 Ресурс Device — сведения о медицинском изделии....................................177

11.8 Ресурс DeviceAssociation — ассоциация медицинского изделия с пациентом...............189

11.9 Ресурс DeviceDefinition — описание медицинского изделия.............................192

11.10 Ресурс DeviceMetric — измерительная способность медицинского прибора...............199

11.11 Ресурс Observation — результат исследования.......................................201

11.12 Ресурс Patient — сведения о пациенте.............................................241

11.13 Ресурс Practitioner — сведения о медицинском специалисте...........................245

11.14 Ресурс DiagnosticReport — заключение врача.......................................249

11.15 Ресурс Medicationstatement — дневник приема лекарств..............................254

11.16 Ресурс QuestionnaireResponse — дневник самонаблюдения...........................258

11.17 Ресурс Questionnaire — описание дневника самонаблюдения..........................262

11.18 Ресурс Nutritionintake (дневник питания)............................................271

11.19 Ресурс Detectedlssue — предупреждение...........................................275

12 REST API и поиск..................................................................279

12.1 Общие сведения................................................................279

12.2 Взаимодействия.................................................................280

12.3 Метаданные и версионность ресурсов..............................................281

12.4 Коды статуса HTTP..............................................................281

12.5 Заголовки HTTP.................................................................281

III

ПНСТ 995—2024

12.6 Управление содержанием ответа...................................................282

12.7 Типы содержания и кодировки.....................................................282

12.8 Общие параметры...............................................................282

12.9 Поддержка версионности.........................................................283

12.10 Часовой пояс клиента...........................................................283

12.11 Взаимодействие чтения read.....................................................283

12.12 Взаимодействие чтения версии vread..............................................283

12.13 Взаимодействия изменения update................................................284

12.14 Взаимодействие исправления patch...............................................286

12.15 Взаимодействие удаления delete..................................................286

12.16 Взаимодействие создания create..................................................287

12.17 Взаимодействие поиска search...................................................289

12.18 Взаимодействие описания возможностей capabilities.................................290

12.19 Взаимодействие транзакции transaction............................................291

12.20 Взаимодействие истории history...................................................293

12.21 Транзакционная целостность.....................................................294

12.22 Постраничный вывод............................................................295

12.23 Нестандартные заголовки........................................................296

12.24 Сводная информация...........................................................297

12.25 Шаблон асинхронных запросов...................................................299

12.26 Обработка запросов поиска......................................................300

12.27 Простые варианты поиска.......................................................310

12.28 Обработка ошибок..............................................................313

12.29 Неподдерживаемые параметры...................................................313

12.30 Стандартные параметры.........................................................313

12.31 Управление результатами запроса.................................................314

12.32 Соответствие результата запросу.................................................317

12.33 Именованный поиск.............................................................318

12.34 Актуальность результатов запроса................................................319

12.35 Отображение типов данных на типы параметров.....................................319

12.36 Транзакции....................................................................320

12.37 Сообщения с запросами поиска...................................................321

13 Операции.........................................................................321

13.1 Общие требования..............................................................321

13.2 Выполнение операции............................................................322

13.3 Операции без параметров........................................................323

13.4 Определение операции...........................................................323

13.5 Синхронное выполнение операции.................................................323

13.6 Результат выполнения операции...................................................324

13.7 Асинхронное выполнение операции................................................324

13.8 Операции с системами кодирования................................................325

13.9 Операции с наборами значений....................................................333

14 Обмен сообщениями...............................................................342

14.1 Основные положения............................................................342

14.2 Механизмы передачи сообщений..................................................343

14.3 Воздействие сообщения..........................................................343

14.4 Влияние на получателей..........................................................343

14.5 Шаблоны обмена сообщениями....................................................344

14.6 Синхронное взаимодействие......................................................344

14.7 Асинхронное взаимодействие.....................................................344

14.8 Идентификаторы и штампы времени в заголовке сообщения...........................345

14.9 Отсутствие надежного транспорта сообщений........................................345

14.10 Вызов операций над ресурсами с помощью сообщений...............................346

14.11 Осуществление поиска с помощью сообщений......................................347

15 Терминологические ресурсы.........................................................348

15.1 Системы кодирования............................................................348

IV

ПНСТ 995—2024

15.2 Наборы значений................................................................359

16 Аутентификация и авторизация......................................................371

Приложение А (справочное) Профиль UML...............................................372

Приложение Б (справочное) Пример плана дистанционного мониторинга......................376

Приложение В (справочное) Сопоставление стандарта с HL7 FHIR R4.........................402

Библиография.......................................................................414

V

ПНСТ 995—2024

Введение

Актуальность настоящего стандарта связана с постоянно расширяющейся практикой дистанционного мониторинга лечащими врачами пациентов с различными хроническими заболеваниями, а также проходящими длительное амбулаторное лечение или нуждающимися в постоянном наблюдении (беременные, дети, пожилые граждане, инвалиды), реабилитации и информационной поддержке для поддержания здоровья, ведения здорового или рекомендованного образа жизни. Учитывая современные тенденции развития общества, технологий и здравоохранения, сегмент дистанционного мониторинга пациентов их лечащими врачами будет постоянно расти опережающими темпами относительно других технологий здравоохранения. Сегодня технологии дистанционного контроля, ведения и информационной поддержки пациентов находятся в зачаточном состоянии, равно как и рынок медицинских устройств, позволяющих пациентам самостоятельно измерять необходимые физиологические показатели и оперативно предоставлять к ним доступ врачам и системе здравоохранения. Кроме того, развитию систем дистанционного мониторинга здоровья препятствуют многие организационные и финансовые барьеры, однако в 2022 году в Российской Федерации стартовал масштабный проект «Персональные медицинские помощники», поставивший амбициозную цель — к 2030 году обеспечить услугами дистанционного мониторинга 20 % населения России. В настоящий момент в пилотный проект по «Персональным медицинским помощникам» вошли только две нозологии: артериальная гипертензия и диабет. А его основной целью является оперативная доставка в медорганизацию показателей артериального давления и глюкозы крови, самостоятельно измеренной пациентом. Однако сама масштабность принятого проекта, а также быстрое развитие рынка медицинских устройств для персонального использования, позволяющих пациентам измерять различные показатели своего организма, являются очевидным предвестником расширения сферы применения «Персональных медицинских помощников».

Также важно отметить, что для полноценного дистанционного врачебного мониторинга недостаточно объективных физиологических показателей, измеренных медицинскими устройствами. Нужны также субъективные оценки самочувствия и состояния, фиксируемые в дневниках самонаблюдения и питания, а также контроль приверженности назначенному лечению с помощью дневников медикаментозной терапии и других инструментов дистанционного обмена информацией между врачом и пациентом.

Настоящий стандарт описывает форматы обмена данными в экосистеме «Персональных медицинских помощников» и охватывает широкий круг дистанционных взаимодействий между пациентом и его лечащим врачом. Предложенные в нем форматы и процедуры информационного обмена должны обеспечить не только сегодняшний (пилотный) этап функционирования «Персональных медицинских помощников», но и перспективное развитие и распространение их действия на другие нозологии и клинические ситуации, подключение широкого круга персональных медицинских устройств, появляющихся на рынке, а также расширение спектра информационных взаимодействий врача и пациента.

Стандарт разработан на основе анализа зарубежного и отечественного опыта и базируется на существующих международных стандартах и иных документах, описывающих взаимодействие в указанной сфере.

Стандарт будет полезен как разработчикам информационных систем и платформ, реализующих различные составляющие «Персональных медицинских помощников», так и производителям персональных медицинских устройств, позволяя бесшовно включать их разработки в экосистему дистанционного мониторинга здоровья.

VI

ПНСТ 995—2024

ПРЕДВАРИТЕЛЬНЫЙ НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

Системы киберфизические

ПЕРСОНАЛЬНЫЕ МЕДИЦИНСКИЕ ПОМОЩНИКИ

Форматы обмена данными. Общие требования

Cyberphysical systems. Personal health assistants. Data exchange formats. General requirements

Срок действия — с 2025—02—01 до 2028—02—01

1 Область применения

Настоящий стандарт устанавливает общие требования к форматам обмена данными в коммуникационной инфраструктуре персональных медицинских помощников, обеспечивающей дистанционный мониторинг состояния здоровья пациентов — пользователей персональных медицинских приборов, включающей в себя персональные медицинские приборы, менеджеры персональных медицинских приборов и шлюзы Интернета вещей, сервисы хранения и обработки результатов измерений, медицинские информационные системы и обеспечивающей дистанционный мониторинг состояния здоровья пациентов — пользователей персональных медицинских приборов (рисунок 1).

Рисунок 1 — Коммуникационная инфраструктура персональных медицинских помощников

В качестве менеджеров персональных медицинских приборов могут выступать мобильные приложения, программное обеспечение персональных компьютеров, микропрограммы специализированных

Издание официальное

1

ПНСТ 995—2024

шлюзов (например, коммутаторов ЛВС). В качестве интерфейсов персональных/локальных вычислительных сетей (ПВС/ЛВС) чаще всего используются проводные интерфейсы Ethernet, USB и беспроводные интерфейсы WiFi, IrDA, Bluetooth, Bluetooth LE, Zigbee, NFC, а также российские стандартизованные протоколы для интернета вещей: NB-Fi, LoraWAN Ru, OpenUNB, NB-loT. Сервис хранения и обработки результатов измерений может быть реализован в составе медицинской информационной системы или как отдельная платформа персональных медицинских помощников.

Требования стандарта распространяются на форматы обмена данными при следующих информационных взаимодействиях:

а) между персональным медицинским прибором и шлюзом Интернета вещей или менеджером персональных медицинских приборов;

б) между шлюзом Интернета вещей и сервисом хранения и обработки результатов измерений;

в) между менеджером персонального медицинского прибора и сервисом хранения и обработки результатов измерений;

г) между медицинской информационной системой и сервисом хранения и обработки результатов измерений.

2 Нормативные ссылки

В настоящем стандарте использованы нормативные ссылки на следующие документы:

ГОСТ 7.67 Система стандартов по информации, библиотечному и издательскому делу. Коды названий стран

ГОСТ Р 7.0.64 (ИСО 8601:2004) Система стандартов по информации, библиотечному и издательскому делу. Представление дат и времени. Общие требования

ГОСТ Р 34.11 Информационная технология. Криптографическая защита информации. Функция хэширования

ГОСТ Р ИСО/МЭК 7498-1 Информационная технология. Взаимосвязь открытых систем. Базовая эталонная модель. Часть 1. Базовая модель

ГОСТ Р ИСО/МЭК 8824-1 Информационная технология. Абстрактная синтаксическая нотация версии один (АСН.1). Часть 1. Спецификация основной нотации

ГОСТ Р ИСО/МЭК 9834-1 Информационная технология. Взаимосвязь открытых систем. Процедуры действий уполномоченных по регистрации ВОС. Часть 1. Общие процедуры и верхние дуги дерева идентификатора объекта АСН.1

ГОСТ Р ИСО/МЭК 9834-8 Информационная технология. Взаимосвязь открытых систем. Процедуры работы уполномоченных по регистрации ВОС. Часть 8. Создание, регистрация универсально уникальных идентификаторов (УУИд) и их использование в качестве компонентов идентификатора объекта АСН.1

ГОСТ Р 56842/ISO/IEEE 11073-10101:2004 Информатизация здоровья. Информационное взаимодействие с персональными медицинскими приборами. Часть 10101. Номенклатура

ГОСТ Р 56845/ISO/IEEE 11073-20601:2016 Информатизация здоровья. Обмен данными с персональными медицинскими приборами. Часть 20601. Прикладной профиль. Оптимизированный протокол обмена

ОКВ ОК (МК (ИСО 4217) 003-97) 014 Общероссийский классификатор валют

Примечание — При пользовании настоящим стандартом целесообразно проверить действие ссылочных стандартов в информационной системе общего пользования — на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет или по ежегодному информационному указателю «Национальные стандарты», который опубликован по состоянию на 1 января текущего года, и по выпускам ежемесячного информационного указателя «Национальные стандарты» за текущий год. Если заменен ссылочный стандарт, на который дана недатированная ссылка, то рекомендуется использовать действующую версию этого стандарта с учетом всех внесенных в данную версию изменений. Если заменен ссылочный стандарт, на который дана датированная ссылка, то рекомендуется использовать версию этого стандарта с указанным выше годом утверждения (принятия). Если после утверждения настоящего стандарта в ссылочный стандарт, на который дана датированная ссылка, внесено изменение, затрагивающее положение, на которое дана ссылка, то это положение рекомендуется применять без учета данного изменения. Если ссылочный стандарт отменен без замены, то положение, в котором дана ссылка на него, рекомендуется принять в части, не затрагивающей эту ссылку.

2

ПНСТ 995—2024

3 Термины и определения

В настоящем стандарте применены следующие термины с соответствующими определениями:

3.1 персональные медицинские помощники: Комплексная система, включающая программные и технические средства для обеспечения дистанционного наблюдения за состоянием здоровья пациента, в том числе платформу, медицинские изделия с функцией дистанционной передачи данных, а также устройства, предназначенные для регистрации параметров состояния здоровья человека (вместе — медицинские приборы), и информационные системы, предназначенные для дистанционного наблюдения за состоянием здоровья пациентов.

3.2

медицинский прибор (medical device): Прибор (аппаратура или система приборов), используемый для мониторинга состояния, выполнения процедур или терапии пациента и обычно не оказывающий влияние на процессы метаболизма.

[ГОСТ Р 56843—2015/ISO/IEEE 11073-10201:2004, пункт 3.36]

3.3

персональный медицинский прибор (personal health device): Прибор, используемый для личного медицинского применения.

[ГОСТ Р 56845—2019/ISO/IEEE 11073-20601:2016, пункт 3.1.13]

3.4

Интернет вещей; loT (Internet of Things): Инфраструктура взаимосвязанных сущностей, систем и информационных ресурсов, а также служб, позволяющих обрабатывать информацию о физическом и виртуальном мире и реагировать на нее.

[ГОСТ Р 71777—2024 (ИСО/МЭК 20924:2024), статья 3.13]

_

менеджер (manager): Узел, получающий данные от одного или нескольких персональных медицинских приборов по локальной или персональной вычислительной сети.

[Адаптировано из ГОСТ Р 56845—2019/ISO/IEEE 11073-20601:2016, пункт 3.1.9]________________

3.6 шлюз Интернета вещей: Узел, получающий данные от одного или нескольких персональных медицинских приборов по протоколу Интернета вещей.

4 Обозначения и сокращения

АСН.1

— Абстрактная синтаксическая нотация версии один, определенная в стандарте ГОСТ Р ИСО/МЭК 8824-1;

ИВЛ

— аппарат искусственной вентиляции легких;

ИНН

— индивидуальный номер налогоплательщика;

ЛВС

— локальная вычислительная сеть;

мис

— медицинская информационная система;

МКБ

— международная классификация болезней и проблем, связанных со здоровьем;

ОГРН

— основной государственный регистрационный номер;

оид

— объектный идентификатор, структура которого описана в стандарте ГОСТ Р ИСО/МЭК 8824-1, а правила присваивания — в стандарте ГОСТ Р ИСО/МЭК 9834-1;

пве

— персональная вычислительная сеть;

пмп

— персональный медицинский прибор;

снилс

— страховой номер индивидуального лицевого счета;

УУИД

— универсальный уникальный идентификатор (см. UUID);

з

ПНСТ 995—2024

ЭКГ

API

- электрокардиограмма;

- прикладной программный интерфейс (Application Programming Interface);

ВСР

- лучшие текущие практики, рекомендации, публикуемые организацией Internet Engineering Task Force (IETF) для использования в сети Интернет (Best Current Practices);

FHIR

- ресурсы быстрой интероперабельности в здравоохранении, спецификация электронной передачи данных между медицинскими информационными системами (Fast Healthcare Interoperability Resources);

GPS

- система глобального позиционирования (Global Positioning System);

GUID

- глобально уникальный идентификатор, вариант реализации UUID (Globally Unique Identifier);

HL7

- Международная организация по разработке стандартов информатизации здоровья (Health Level Seven International);

HTML

- язык разметки гипертекста (HyperText Markup Language);

HTTP

- протокол передачи гипертекста, сетевой протокол прикладного уровня (Hypertext Transfer Protocol);

IrDA

- обмен данными по инфракрасному излучению, беспроводная передача информации с помощью инфракрасного излучения (Infrared Data Association);

JSON

LOINC

- нотация объектов JavaScript (JavaScript Object Notation);

- логические названия и коды идентификаторов исследований (Logical Observation Identifiers Names and Codes);

MDC

- коммуникация с медицинскими устройствами, номенклатура терминов коммуникация с медицинскими приборами (Medical Device Communication);

MDS

- система медицинского прибора, класс, описывающий сведения о медицинском приборе (Medical Device System);

MIME

- многоцелевые расширения электронной почты в сести Интернет, протокол передачи различных типов содержания по электронной почте (Multipurpose Internet Mail Extensions);

MQTT

- транспорт телеметрии с помощью очереди сообщений, протокол передачи сообщений Интернета вещей (Message Queuing Telemetry Transport);

NFC

- связь в близком поле, технология беспроводной передачи данных малого радиуса действия (Near field communication);

REST

- передача репрезентативного состояния, архитектурный стиль взаимодействия компонентов распределённого приложения (Representational State Transfer);

RFC

- документ, публикуемый организацией Internet Engineering Task Force (IETF) в качестве стандартов Интернет (Request for comment);

RPC

- удаленный вызов процедуры (Remote Procedure Call);

SNOMED CT -

- систематизированная номенклатура медицины, клинические термины (The Systematized Nomenclature of Medicine, Clinical Terms);

UCUM

UML

- унифицированные коды единиц измерений (Unified Code for Units of Measure); - унифицированный язык моделирования, визуальный язык моделирования данных и процессов (Unified Modeling Language);

URI

- унифицированный идентификатор ресурса (Uniform Resource Identifier);

4

ПНСТ 995—2024

URL

— унифицированный указатель местонахождения ресурса, адрес ресурса в сети Интернет (Uniform Resource Locator);

USB

— универсальная последовательная шина, последовательный интерфейс для подключения периферийных устройств к вычислительной технике (Universal Serial Bus);

UUID

— универсальный уникальный идентификатор, правила присваивания которого определены в стандарте ГОСТ Р ИСО/МЭК 9834-8 (Universally Unique Identifier);

WiFi

— беспроводная точность, технология беспроводной локальной сети (Wireless Fidelity);

XAdES

— представление усиленной квалифицированной электронной подписи на языке XML (XML Advanced Electronic Signatures);

XHTML

— расширяемый язык разметки гипертекста, серия спецификаций, усиливающих требования к представлению гипертекста, совместимому с требованиями языка XML (extensible HyperText Markup Language);

XML

XSD

— расширяемый язык разметки (extensible Markup Language);

— определение схемы XML-документа (XML Schema Definition).

5 Форматы обмена данными с персональными медицинскими приборами

Форматы обмена данными между персональным медицинским прибором (ПМП) и шлюзом Интернета вещей или менеджером персональных медицинских приборов (далее — менеджер ПМП или менеджер) регламентируются на прикладном уровне модели взаимосвязи открытых систем (см. ГОСТ Р ИСО/МЭК 7498-1). Общие требования к этим форматам установлены в стандарте ГОСТ Р 56845. Для ряда специализаций персональных медицинских приборов эти требования конкретизированы в [1]—[21].

В состав форматов обмена данными входят элементы с кодируемыми значениями. В качестве системы кодирования этих значений следует использовать номенклатуру коммуникаций с медицинскими приборами MDC, определенную в ГОСТ Р 56842. Стандарты специализаций приборов содержат дополнения к этой номенклатуре.

Если персональный медицинский прибор не поддерживает обмен данными в соответствии с ГОСТ Р 56845, то рекомендуется обеспечить преобразование его данных в форматы, предусмотренные ГОСТ Р 56845 и ГОСТ Р 56842. Такое преобразование может быть выполнено с помощью специализированного модуля в составе программного обеспечения менеджера ПМП или шлюза Интернета вещей.

6 Форматы обмена данными с сервисом хранения и обработки результатов измерений

6.1 Общие требования

Взаимодействия с сервисом хранения и обработки результатов измерений описаны на уровне архитектурного стиля REST с использованием протокола HTTP. В основу требований к этим взаимодействиям положена спецификация FHIR — ресурсы быстрой интероперабельности в здравоохранении версии 5.0 [22], разработанная организацией HL7. Эта спецификация предоставляется по лицензии Creative Commons «No Rights Reserved» [23], то есть без сохранения прав. Ограничения накладываются только на использование товарных знаков HL7® и FHIR®.

Настоящий стандарт не противоречит спецификации [22], и предложенные в нем форматы обмена могут быть реализованы с помощью свободно распространяемого программного обеспечения HAPI FHIR [24].

5

ПНСТ 995—2024

Примечание — Применение других версий спецификации FHIR, а также набора используемых ресурсов допустимо для существующих информационных систем в ПМП при наличии опубликованных интеграционных профилей (документов, регламентирующих порядок взаимодействия и описание ресурсов).

6.2 Требования к модели данных в форматах взаимодействия

Сервис хранения и обработки результатов измерений получает и предоставляет данные с помощью запросов HTTP в архитектурном стиле REST. Эти данные поступают в хранилище результатов измерений. Модель данных хранилища результатов измерений описана в терминах ресурсов данных и их профилей.

Выбор типов ресурсов данных определен исходя из следующего сценария:

а) основным назначением сервиса хранения и обработки результатов измерений (далее — сервис) является обеспечение информационного взаимодействия между пациентом и лечащим врачом в процессе дистанционного мониторинга;

б) для взаимодействия пациент использует персональные медицинские приборы и менеджеры этих приборов (в качестве менеджеров могут выступать смартфоны, планшеты, персональные компьютеры, облачные решения и шлюзы Интернета вещей), а врач использует рабочее место МИС;

в) дистанционный мониторинг осуществляется в соответствии с планом ведения, назначенным лечащим врачом;

г) план ведения ограничен следующими мероприятиями:

1) сбор результатов измерений, выполняемых ПМП,

2) ведение дневников питания, самонаблюдений, приема лекарств,

3) передача пациенту этапного эпикриза в процессе выполнения плана ведения и по его завершении;

д) в процессе выполнения плана пациенту и лечащему врачу могут выдаваться предупреждения и напоминания, например предупреждения об аномальном результате измерений или напоминания о необходимости приема лекарственного препарата;

е) состав информации, передаваемый сервису хранения и обработки результатов измерений, должен быть минимально достаточным для взаимодействия пациента с лечащим врачом в рамках назначенного плана ведения.

Концептуальная диаграмма хореографии данного сценария показана на рисунке 2.

6

ПНСТ 995—2024

V

Рисунок 2 — Диаграмма хореографии сценария взаимодействия

Взаимодействие менеджера ПМП с сервисом может осуществляться не только по подписке, например, с помощью запросов на получение данных, передаваемых сервису по расписанию.

МИС передает сервису запросы на регистрацию подписки участникам взаимодействия (рисунок 3), а затем отправляет сервису план ведения дистанционного мониторинга, который по подписке доставляется менеджеру ПМП (рисунок 4). Взаимодействие участников при выполнении плана ведения показано на рисунке 5.

7

ПНСТ 995—2024

Рисунок 3 — Регистрация подписок

8

Рисунок 4 — Назначение плана ведения

ПНСТ 995—2024

Рисунок 5 — Выполнение плана ведения

ПМП выполняет измерение и передает полученный результат менеджеру ПМП или шлюзу Интернета вещей, который преобразует результат в формат REST API и передает его сервису. Преобразованный результат по подписке или по запросу доставляется МИС. Если результат выходит за пределы целевого диапазона, указанного в плане ведения, то МИС передает сервису соответствующее предупреждение, которое по подписке доставляется менеджеру ПМП и затем пациенту. По событию, предусмотренному в плане ведения, например, по завершению плана ведения или по истечению определенного срока, в МИС формируется этапный эпикриз, который может быть передан сервису и в соответствии с порядком взаимодействия доставляется менеджеру ПМП и затем пациенту.

В процессе выполнения план может быть скорректирован (рисунок 6).

9

ПНСТ 995—2024

Менеджер ПМП

Получена коррекция

Рисунок 6 — Коррекция плана ведения

При реализации этой схемы должна быть использована машина рабочих процессов, контролирующая выполнение мероприятий, назначенных в плане ведения, и инициирующая передачу менеджеру ПМП (а через него пациенту) соответствующих предупреждений и напоминаний. Такая машина может быть развернута в менеджере ПМП, в сервисе, в МИС или в облачном решении. Размещение машины рабочих процессов и взаимодействие с ней не входит в область применения настоящего стандарта.

Персональный медицинский прибор может быть связан с менеджером ПМП, и в этом случае менеджер будет осуществлять преобразование результата измерений в формат REST API и передачу преобразованного результата сервису хранения результатов измерений.

Предупреждение об аномальном результате измерений или ином событии, требующем реакции от пациента, может формироваться автоматически, например, при получении от ПМП статуса ошибки позиционирования датчика, или с участием медицинского работника. Эти детали информационного взаимодействия влияют на содержание передаваемых данных и события передачи, но используемые типы ресурсов могут оставаться теми же самыми.

Для большей части выбранных типов ресурсов рекомендованы профили, которые могут быть доработаны с учетом особенностей реализации сервиса хранения и обработки результатов измерений и потенциального расширения специализаций персональных медицинских приборов и их функций. В связи с этим для выбранных типов ресурсов даются полные описания, которые могут быть использованы для решения более широких задач, и на основе этих описаний предлагаются профили, специфичные для задачи дистанционного мониторинга.

7 Метамодель данных хранилища результатов измерений

7.1 Источник

Метамодель данных хранилища результатов измерений основана на спецификации [22].

7.2 Верхний уровень

Верхний уровень метамодели данных хранилища результатов измерений показан на рисунке 7.

10

ПНСТ 995—2024

Терминологические ресурсы

§ +Набор значений

@ + Система кодирования

«use»

Рисунок 7 — Верхний уровень метамодели данных хранилища результатов измерений

Он представлен следующими пакетами сущностей:

а) ресурсы данных — ресурсы REST, с помощью которых хранилище импортирует и экспортирует результаты измерений;

б) терминологические ресурсы — коллекции кодируемых понятий, представленные в форме систем кодирования и наборов значений;

в) типы данных — простые и комплексные типы данных, используемые при описании элементов ресурсов данных;

г) Rest API — операции над экземплярами ресурсов данных.

7.3 Ресурсы данных

При описании ресурсов данных используются сущности, представленные на рисунке 8.

11

ПНСТ 995—2024

class Ресурсы данных

Рисунок 8 — Описание ресурсов данных

Центральной сущностью является ресурс. Экземпляр ресурса представляет собой информационный объект, обладающий следующими свойствами:

а) имеет определенную идентификацию, по которой его можно адресовать в информационных ресурсах;

б) имеет один из типов, определенных в информационной модели предметной области;

в) содержит совокупность структурированных элементов данных, описанных в определении типа ресурса;

г) имеет определенную версию, которая изменяется при изменении экземпляра ресурса;

д) имеет несколько представлений (XML, JSON).

Экземпляр ресурса может включать в себя другой экземпляр ресурса по ссылке или по значению. Вложение экземпляров может иметь только один уровень. Ссылка дается на весь экземпляр, сослаться на часть его элементов нельзя.

На элементы ресурса могут быть наложены ограничения. Каждое ограничение имеет:

а) уникальный идентификатор;

б) степень строгости (является ли нарушение ограничения ошибкой или предупреждением);

в) место применения ограничения (путь в описании структуры типа ресурса);

г) человеко-читаемое описание;

д) логическое выражение на формальном языке, которое должно быть истинным при выполнении ограничения (инвариант).

Специфическим видом ограничения является привязка элемента с кодированным значением к конкретному набору значений.

Для каждого типа ресурсов (не являющегося абстрактным) задаются параметры поиска его экземпляров. Определение параметра имеет следующие элементы:

а) имя параметра;

б) тип значения параметра;

в) человеко-читаемое описание;

г) индексное выражение.

Определение типа ресурса является рамочным и рассчитано на использование в различном контексте. Для конкретной предметной области обычно требуется адаптировать его определение, в том числе:

а) описать правила использования или неиспользования элементов ресурса;

12

ПНСТ 995—2024

б) добавить элементы, не предусмотренные в определении типа ресурса;

в) указать или изменить терминологические ресурсы, которые могут использоваться для элементов с кодированными значениями.

Такая адаптация называется профилем. Профиль может быть основан на типе ресурса или на другом профиле.

Типы ресурсов, используемые в хранилище результатов измерений, описаны в разделе 11.

7.4 Типы данных

Все типы данных являются потомками абстрактного типа Element. Простые типы данных являются потомками абстрактного типа PrimitiveType, а комплексные — потомками абстрактного типа DataType. В свою очередь комплексные типы данных подразделяются на комплексные типы данных общего назначения, специальные комплексные типы и типы метаданных. Комплексные типы данных могут иметь компоненты простого или комплексного типа общим числом не менее двух (рисунок 9).

Рисунок 9 —Типы данных

Тип Element является базовым для всех сущностей модели данных — типов данных, типов ресурсов, вспомогательных классов. Общие сведения о типе Element приведены в таблице 1, а состав элементов — в таблице 2.

К типу Element применяется ограничение, приведенное в таблице 3. Оно означает, что значение элемента экземпляра ресурса может отсутствовать только в том случае, если у него есть одно или несколько расширений. Пустой элемент должен исключаться из экземпляра ресурса.

13

ПНСТ 995—2024

Таблица 1 —Общие сведения о типе Element

Имя

Описание

Связи с другими элементами модели

Element

Базовый класс для всех элементов, типов ресурсов и типов данных

Таблица 2 — Состав элементов типа Element

Имя

Описание

Тип

Кратность

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Может использоваться для представления дополнительной информации, не являющейся частью базового определения ресурса. Существует строгий набор правил по определению и использованию расширений, обеспечивающий их безопасное и управляемое применение. Хотя каждый разработчик и может определить расширение, существует ряд требований, которых он должен придерживаться при определении расширения

Extension

0..*

Таблица 3 — Ограничение типа Element

id

Уровень

Путь

Описание

Выражение

eIe-1

Правило

Базовый

Все элементы должны иметь атрибут @value или потомков

hasValue() or (chidren().count() > id.countQ)

Идентификатор id должен быть уникальным в пределах конкретного экземпляра ресурса, включая вложенные в него экземпляры ресурсов, со следующими исключениями:

а) в экземпляре ресурса Bundle уникальность ограничена рамками элемента Bundle.entry, resource;

б) в экземпляре ресурса Parameters уникальность ограничена рамками элемента Parameters, parameter, resource.

Некоторые элементы данных не имеют фиксированный тип данных. В этом случае в табличном представлении вместо имени типа данных указывается символ «*». Такой элемент может иметь один из следующих типов данных:

а) простые типы:

1) base64Binary;

2) boolean;

3) canonical;

4) code;

5) date;

6) dateTime;

7) decimal;

8) id;

9) instant;

10) integer;

11) integer64;

12) markdown;

13) oid;

14) positivelnt;

15) string;

16) time;

17) unsignedlnt;

18) uri;

19) url;

20) uuid;

б) комплексные типы данных общего назначения:

14

ПНСТ 995—2024

1) Address;

2) Age;

3) Annotation;

4) Attachment;

5) CodeableConcept;

6) CodeableReference;

7) Coding;

8) ContactPoint;

9) Count;

10) Distance;

11) Duration;

12) HumanName;

13) Identifier;

14) Money;

15) Period;

16) Quantity;

17) Range;

18) Ratio;

19) RatioRange;

20) Reference;

21) SampledData;

22) Signature;

23) Timing;

в) типы метаданных:

1) ContactDetail;

2) DataRequirement;

3) Expression;

4) ParameterDefinition;

5) RelatedArtifact;

6) TriggerDefinition;

7) UsageContext;

8) Availability;

9) ExtendedContactDetail;

в) специальные типы данных:

1) Dosage;

2) Meta.

Имя такого элемента заканчивается символами «[х]», вместо которых в конкретном экземпляре ресурса подставляется имя типа данных, у которого первый символ переведен в верхний регистр, например, value[x] может быть заменено на valuestring, и этот вариант элемента value будет иметь тип данных string.

В других случаях допускается только ограниченное подмножество типов данных из приведенного выше списка. В табличном представлении допустимые типы данных перечислены в описании, а в UML-представлении они перечислены в атрибуте стереотипа TypeChoice.

Детальное описание типов данных приведено в разделе 9.

7.5 Терминологические ресурсы

Терминологические ресурсы подразделяются на системы кодирования и наборы значений (рисунок 10). Система кодирования описывает коллекцию кодированных понятий (справочник, классификатор). Каждое понятие имеет код, значение, определение и может иметь дополнительные свойства. Набор значений представляет собой объединение подмножеств, взятых из системы кодирования и других наборов значений. Правила формирования этих подмножеств сформулированы с помощью определения. Для получения полного списка понятий, описываемого набором значений, используется операция $expand (раскрыть).

15

ПНСТ 995—2024

Рисунок 10 — Терминологические ресурсы

Система кодирования описана в форме экземпляра ресурса CodeSystem (пункт 15.1.2), набор значений — в форме экземпляра ресурса ValueSet (пункт 15.2.2).

7.6 REST API

Прикладной программный интерфейс (Application Program Interface) хранилища результатов измерений предоставляет методы, приведенные на рисунке 11.

«utility»

Создать

«utility»

Заменить

«utility»

Исправить

«utility»

Прочитать

«utility»

Получить историю

«utility» Найти

«utility»

Удалить

«utility» Выполнить

операцию

«utility» Выполнить

транзакцию

Рисунок 11 — REST API

Метод Создать используется для создания нового экземпляра ресурса заданного типа. Он вызывается с помощью метода HTTP POST, например POST https://example.com/base/{TnnPecypca}.

Метод Заменить используется для замены всего содержания существующего экземпляра ресурса. Он вызывается с помощью метода HTTP PUT, например PUT https://example.com/base/{TnnPecypca}/ {id}, где id — уникальный логический идентификатор экземпляра ресурса.

Метод Исправить используется для изменения части содержания существующего экземпляра ресурса. Он вызывается с помощью метода HTTP PATCH, например PATCH https://example.com/base/ {™nPecypca}/{id}, где id — уникальный логический идентификатор экземпляра ресурса.

Метод Получить историю используется для получения истории изменения содержания экземпляра ресурса. Он вызывается с помощью метода HTTP GET, например GET https://example.com/base/ {TnnPecypca}/{id}/_history, где id — уникальный логический идентификатор экземпляра ресурса.

16

ПНСТ 995—2024

Метод Прочитать используется для получения текущего содержания экземпляра ресурса. Он вызывается с помощью метода HTTP GET, например GET https://example.com/base/{TnnPecypca}/{id}, где id — логический уникальный идентификатор экземпляра ресурса.

Метод Найти используется для поиска экземпляров ресурсов, удовлетворяющих заданным критериям. Он вызывается с помощью метода HTTP GET например GET https://example.com/base/ {типРесурса}?параметры_поиска....

Метод Вызвать операцию используется для применения операции к содержанию экземпляра ресурса. Он вызывается с помощью метода HTTP GET например https://example.com/base/{TnnPecypca}/ {1Ь}/${имяОперации}.

Метод Выполнить транзакцию используется для согласованного выполнения других методов над несколькими экземплярами ресурсов в одной транзакции. Он вызывается с помощью метода HTTP POST, например POST https://example.com/base/, где тело запроса содержит спецификацию транзакции, составленную из экземпляров ресурсов и действий, выполняемых над этими экземплярами. Спецификация задается с помощью экземпляра ресурса Bundle (контейнер).

Метод Удалить используется для удаления текущего содержания существующего экземпляра ресурса. Он вызывается с помощью метода HTTP DELETE, например DELETE https://example.com/base/ {TnnPecypca}/{id}, где id — уникальный идентификатор экземпляра ресурса.

Детальная спецификация REST API приведена в разделе 12.

8 Компоненты модели данных хранилища результатов измерений

8.1 Правила именования

При описании типов данных и ресурсов используются следующие правила именования:

а) имена типов данных, ресурсов и их элементов должны допускать использование в программном коде. Поэтому для них задан шаблон [A-Za-z0-9\-\.]{1,64}. Кроме того, эти имена не должны совпадать с ключевыми словами языков программирования или языков манипулирования данными;

б) имя типа данных или ресурса должно быть значащим для человека, читающего программный код или составляющего запрос к базе данных. Поскольку шаблон имени допускает только буквы латинского алфавита, цифры, дефисы и точки, то для составления значащих имен следует использовать слова и сочетания слов на английском языке. Так как пробельные символы в именах не разрешены, то словосочетания следует записывать слитно в одном из двух вариантов «верблюжьей» нотации: lowerCamelCase (первое слово начинается в нижнем регистре, следующие слова — в верхнем, например managingOrganization) или UpperCamelCase (каждое слово начинается в верхнем регистре, например StructureDefinition). Все символы слова, кроме первого, должны записываться в нижнем регистре. При именовании должны соблюдаться следующие требования:

1) для имени следует использовать «наиболее широко используемый» термин данной предметной области;

2) имя должно полностью отражать значение моделируемого понятия;

3) существительные должны использоваться в единственном числе, даже если элемент кратный;

4) сокращения должны использоваться в крайних случаях;

5) при использовании сокращение должно трактоваться как слово (например, targetUri для обозначения ссылки на унифицированный идентификатор ресурса URI);

6) имена должны быть краткими (полное описание понятия должно даваться в определении);

7) не следует использовать суффиксы, подчеркивающие тип данных элемента (например, typeCode или nameText);

8) если подбор соответствующего термина на английском языке вызывает затруднение, следует обратиться к толковому словарю Webster (https://www.webster-dictionary.org/), онлайновой платформе ISO (https://www.iso.org/obp/ui) и другим ресурсам сети Интернет;

в) имя простого типа данных записывается в нотации lowerCamelCase. Дефисы и точки в имени простого типа данных не допускаются;

г) имя комплексного типа данных или ресурса записывается в нотации UpperCamelCase. Дефисы и точки в имени комплексного типа данных не допускаются;

д) имя элемента комплексного типа данных или ресурса записывается в нотации lowerCamelCase. Дефисы и точки в имени элемента не допускаются.

17

ПНСТ 995—2024

8.2 Способы описания

Для каждого комплексного типа данных и ресурса дается описание в форме диаграммы классов на языке UML и в форме иерархической таблицы. В общем случае комплексный тип данных или ресурс представляется в виде нескольких классов, включая головной класс с именем типа данных или ресурса и вспомогательные классы, связанные с головным и между собой отношениями направленной композиции. Цель композиции именуется по правилам, принятым для элемента комплексного типа данных, указанным в подразделе 8.1. Имена вспомогательных классов уникальны только в пределах конкретного комплексного типа данных или ресурса.

При описании классов на языке UML используется пользовательский профиль, описанный в приложении А.

Независимо от числа вспомогательных классов каждый комплексный тип данных или ресурс описывается одной иерархической таблицей, формат которой описан в таблице 4.

Таблица 4 — Формат иерархической таблицы

Графа

Содержание

Имя

Имя элемента комплексного типа данных или ресурса (соответствует имени элемента в XML-представлении или имени свойства в JSON-представлении). Некоторые имена имеют суффикс «[х]», означающий полиморфизм. Для вспомогательных классов указывается имя целевого конца композиции, а за ним имена элементов вспомогательного класса, имеющие в качестве префикса имя целевого конца и символ точки, например entry, entry.resource, entry, link, entry.link.relation

Описание

Описание элемента и сведения об ограничениях, наложенных на элемент

Тип

Тип данных элемента. Для элемента, представляющего целевой конец композиции, в качестве имени типа данных используется BackboneElement (в отдельных случаях — Element). Для полиморфного элемента указывается тип данных Element, а в графе Описание перечисляются допустимые типы данных

Кратность

Нижняя и верхняя граница допустимого числа повторений элемента

На элементы структуры комплексного типа данных или типа ресурса могут быть наложены ограничения. Таблица ограничений имеет формат, приведенный в таблице 5.

Таблица 5 —Формат таблицы ограничений

Графа

Содержание

Идентификатор

Уникальный идентификатор ограничения

Вид

Вид ограничения

Путь

Путь к элементу ресурса, на который наложено ограничение

Описание

Описание ограничения

Выражение

Машинно-обрабатываемое представление ограничения

Для элементов структуры комплексного типа данных или типа ресурса, имеющих кодируемые значения, могут быть заданы привязки наборам значений. Таблица привязок имеет формат, приведенный в таблице 6.

Таблица 6 — Формат таблицы привязок к наборам значений

Графа

Содержание

Путь

Путь к элементу ресурса с кодируемым значением

Набор значений

Идентификация набора значений в форме адреса URL

Тип привязки

Степень обязательности привязки

Описание

Описание набора значений

18

ПНСТ 995—2024

Таблица критериев поиска экземпляров ресурсов имеет формат, приведенный в таблице 7.

Таблица 7 — Формат таблицы критериев поиска

Графа

Содержание

Имя

Имя критерия (параметра). Эквивалентно имени индекса, создаваемого для данного ресурса REST

Тип

Тип критерия(параметра)

Описание

Описание критерия

Выражение

Выражение, по которому строится критерий поиска

9 Типы данных

9.1 Общие сведения

В настоящем разделе представлены все типы данных, определенные в спецификации [22], вне зависимости от того, включены ли они в определение элементов ресурсов REST, составляющих хранилище результатов измерений. Это позволяет использовать настоящий раздел и для других предметных областей.

В нем приведены основные сведения о каждом типе данных, включая общие сведения, состав элементов (в форме диаграмм UML и в табличной форме), ограничения, наложенные на элементы, привязки к наборам значений. Дополнительные сведения, в том числе примеры, формальные описания в виде экземпляров ресурса StructureDefinition, схемы представлений в XML и JSON, приведены в спецификации [22].

Типы данных, определенные в [22], подразделяются на следующие категории:

а) простые типы данных;

б) комплексные типы данных:

1) типы данных общего назначения;

2) специальные типы данных;

3) типы метаданных.

Простые типы данных являются потомками абстрактного типа данных PrimitiveType, наследуют от него необязательный элемент уникального идентификатора id и возможность расширения.

Комплексные типы данных являются потомками абстрактного типа данных DataType (тип данных), наследуют от него необязательный элемент уникального идентификатора id и возможность расширения.

9.2 Простые типы данных

9.2.1 Общие сведения

Простые типы могут иметь элемент value (значение) и не имеют потомков (однако, как и любой другой тип данных, могут иметь расширения extension). Если расширения отсутствуют, то элемент value обязателен.

При описании простых типов элементу value сопоставляется примитивный тип данных спецификации схем XSD. Возможные значения элемента value могут быть ограничены регулярным выражением (regex), которое имеет рекомендательный характер и может уточняться на стадии реализации.

Диаграмма классов простых типов данных показана на рисунке 12. Перечень простых типов данных приведен в таблице 8.

Таблица 8 — Простые типы данных

Имя

Описание

Пункт

base64Binary

Двоичное содержание

9.2.2

boolean

Булевский тип данных

9.2.3

canonical

Ссылка на ресурс по его каноническому URL

9.2.4

19

ПНСТ 995—2024

Окончание таблицы 8

Имя

Описание

Пункт

code

Перечислимые значения

9.2.5

date

Дата в соответствии со стандартом ГОСТ Р 7.0.64, в том числе с уменьшенной точностью

9.2.6

dateTime

Дата и время в соответствии со стандартом ГОСТ Р 7.0.64, в том числе с уменьшенной точностью

9.2.7

decimal

Десятичное значение

9.2.8

id

Идентификатор

9.2.9

instant

Штамп даты и времени с точностью до секунды или более высокой

9.2.10

integer

Целочисленное значение в диапазоне -2 147 483 648..2 147 483 647 (32 бита)

9.2.11

integer64

Целочисленное значение в диапазоне

— 9 223 372 036 854 775 808 ..9 223 372 036 854 775 807 (64 бита)

9.2.12

markdown

Структурированный текст, размеченный в соответствии со спецификацией GitHub Flavored Markdown

9.2.13

oid

Объектный идентификатор в формате URI

9.2.14

positivelnt

Положительное целочисленное значение в диапазоне

1..2 147 483 647

9.2.15

string

Строковые данные в кодировке Unicode

9.2.16

time

Время суток

9.2.17

unsignedlnt

Неотрицательное целочисленное значение в диапазоне

0..2 147 483 647

9.2.18

uri

Унифицированный идентификатор ресурса

9.2.19

url

Унифицированный адрес ресурса

9.2.20

uuid

Универсально уникальный идентификатор в формате URI

9.2.21

20

ПНСТ 995—2024

Рисунок 12 — Простые типы данных

9.2.2 Тип данных base64Binary

Тип данных base64Binary предназначен для представления двоичного содержания. Общие сведения о типе данных base64Binary приведены в таблице 9, а состав элементов — в таблице 10.

Таблица 9 — Общие сведения о типе данных base64Binary

Имя

Описание

Связи с другими элементами модели

base64-Binary

Поток байтов, закодированных в соответствии с [25].

Для длины потока нет заданного верхнего предела, но в конкретной реализации она может быть ограничена, что обязательно должно документироваться.

В XML: xs:base64Binary.

В JSON — string.

Regex: (?:[A-Za-zO-9+/]{4})*(?:[A-Za-zO-9+/] {2}==|[A-Za-zO-9+/]{3}=)?

Отношение генерализации от base64Binary к PrimitiveType

Таблица 10 — Состав элементов типа данных base64Binary

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

value

Значение данного типа

xs:base64Binary

0..1

21

ПНСТ 995—2024

9.2.3 Тип данных boolean

Булевский тип данных (true/false). Общие сведения о типе данных boolean приведены в таблице 11, а состав элементов — в таблице 12.

Таблица 11 — Общие сведения о типе данных boolean

Имя

Описание

Связи с другими элементами модели

boolean

Значение true | false. Regex: true|false

Отношение генерализации от boolean к PrimitiveType

Таблица 12 — Состав элементов типа данных boolean

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

value

Значение данного типа

xs:boolean

0..1

9.2.4 Тип данных canonical

Тип данных canonical используется для ссылок на экземпляр ресурса по его каноническому URL (для ресурсов, имеющих компонент url). Общие сведения о типе данных canonical приведены в таблице 13, а состав элементов — в таблице 14.

Таблица 13 — Общие сведения о типе данных canonical

Имя

Описание

Связи с другими элементами модели

canonical

URI, предоставляющий ссылку на ресурс по его каноническому URL (блок с элементом url типа uri).

Тип canonical отличается тем, что в данной спецификации он имеет особый смысл и может иметь компонент версии, отделенный символом вертикальной черты (|). Следует учитывать, что тип canonical используется не для фактических канонических URL, являющихся целью данных ссылок, а только для URI, которые ссылаются на них, и может иметь суффикс версии. Как и другие URI, элементы типа canonical могут иметь ссылку #фраг-мент.

В XML — xs:anyURI.

В JSON — string.

Regex: \S*

Отношение генерализации от canonical к uri

Таблица 14 — Состав элементов типа данных canonical

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

value

Значение данного типа

xs:anyURI

0..1

22

ПНСТ 995—2024

9.2.5 Тип данных code

Тип данных code предназначен для представления перечислимых значений (контролируемых строк) и является специализацией строкового типа string. Общие сведения о типе данных code приведены в таблице 15, а состав элементов — в таблице 16.

Таблица 15 — Общие сведения о типе данных code

Имя

Описание

Связи с другими элементами модели

code

Указывает, что значение value берется из множества контролируемых строк, где-либо определенных.

Технически тип code ограничен строкой, в которой не меньше одного символа и отсутствуют ведущие и концевые пробельные элементы, и в содержании которой могут быть только единичные пробелы.

В XML — xs:token.

В JSON — string.

Regex: [A\s]+( [A\s]+)*

С этим типом данных может быть связан набор значений ValueSet

Отношение генерализации от code к string

Таблица 16 — Состав элементов типа данных code

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

value

Значение данного типа

xs:anyURI

0..1

9.2.6 Тип данных date

Тип данных date используется для представления дат в соответствии со стандартом ГОСТ Р 7.0.64. Допускается указание даты с уменьшенной точностью (до месяца или года). Общие сведения о типе данных date приведены в таблице 17, а состав элементов — в таблице 18.

Таблица 17 — Общие сведения о типе данных date

Имя

Описание

Связи с другими элементами модели

date

Дата или ее часть (например, только год или год + месяц), используемая для коммуникации с человеком.

Формат YYYY, YYYY-MM или YYYY-MM-DD, например, 2018, 1973-06 или 1905-08-23. В дате не должно быть часового пояса.

В XML: xs:gYear|xs:gYearMonth|xs:date.

В JSON: string.

Regex: ([0-9]([0-9]([0-9][1 -9]|[1 -9]0)|[1 -9]00)|[1-9]000)(-(0[1 -9]|1 [0-2])(-(0[1 -

9]|[1-2][0-9]|3[0-1]))?)?

Отношение генерализации от date к PrimitiveType

Таблица 18 — Состав элементов типа данных date

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

value

Значение данного типа

xs:gYear|xs:gYearMonth|xs:date

0..1

23

ПНСТ 995—2024

9.2.7 Тип данных dateTime

Тип данных dateTime используется для представления дат и времени в соответствии со стандартом ГОСТ Р 7.0.64. Допускается указание даты и времени с уменьшенной точностью (до минуты, часа, дня, месяца или года). Общие сведения о типе данных dateTime приведены в таблице 19, а состав элементов — в таблице 20.

Таблица 19 — Общие сведения о типе данных dateTime

Имя

Описание

Связи с другими элементами модели

dateTime

Дата, дата и время или часть даты (например, только год или год + месяц), используемые при коммуникации с человеком.

Формат YYYY, YYYY-MM, YYYY-MM-DD или YYYY-MM-DDThh:mm:ss+zz:zz, например, 2018, 1973-06, 1905-08-23, 2015-02-07Т13:28:17-05:00 или 2017-01-01T00:00:00.000Z.

Если часы и минуты указаны, то часовой пояс должен быть указан. Секунды могут быть указаны в соответствии с этой схемой, но могут быть заполнены нулями и могут игнорироваться получателем. Даты ДОЛЖНЫ быть валидными. Время «24:00» не разрешено. Дополнительные високосные секунды разрешены. В XML: xs:gYear|xs:gYearMonth|xs:date|xs:dateTime.

В JSON: string.

Regex: ([0-9]([0-9]([0-9][1 -9]|[1 -9]0)|[1 -9]00)|[1 -9]000)(-(0[1 -9]| 1 [0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(Т([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]+)?(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]| 14:00)))?)?)?

Отношение генерализации от dateTime к PrimitiveType

Таблица 20 — Состав элементов типа данных dateTime

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

value

Значение данного типа

xs:gYear|xs:gYearMonth|xs:date|xs:dateTime

0..1

9.2.8 Тип данных decimal

Тип данных decimal предназначен для представления десятичных значений. Общие сведения о типе данных decimal приведены в таблице 21, а состав элементов — в таблице 22.

Таблица 21 — Общие сведения о типе данных decimal

Имя

Описание

Связи с другими элементами модели

decimal

Рациональные числа, имеющие десятичное представление.

В XML — xs:decimal|xs:double.

В JSON — number.

Regex: -?(0|[1 -9][0-9]*)(\.[0-9]+)?([еЕ][+-]?[0-9]+)?

Отношение генерализации от decimal к PrimitiveType

Таблица 22 — Состав элементов типа данных decimal

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

24

Окончание таблицы 22

ПНСТ 995—2024

Имя

Описание

Тип

Кратность

Собственные элементы

value

Значение данного типа

xs:decimal|xs:double

0..1

9.2.9 Тип данных id

Тип данных id предназначен для представления идентификаторов. Общие сведения о типе данных id приведены в таблице 23, а состав элементов — в таблице 24.

Таблица 23 — Общие сведения о типе данных id

Имя

Описание

Связи с другими элементами модели

id

Любое сочетание символов в кодировке ASCII в нижнем или верхнем регистре ('A'...'Z', и 'a'...'z'), цифры ('О'...'9'), знаки '-' и '.', длина которого не превышает 64 символа. (Им может быть целое число, идентификатор ОИД или UUID без префикса или любой шаблон, удовлетворяющий этим ограничениям.)

В XML — xs:string.

В JSON — string.

Regex: [A-Za-z0-9\-\.]{1,64}

Отношение генерализации от id к string

Таблица 24 — Состав элементов типа данных id

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

value

Значение данного типа

xs:string

0..1

9.2.10 Тип данных instant

Тип данных instant предназначен для представления штампа даты и времени с точностью до секунды или более высокой. Общие сведения о типе данных instant приведены в таблице 25, а состав элементов — в таблице 26.

Таблица 25 — Общие сведения о типе данных instant

Имя

Описание

Связи с другими элементами модели

instant

Тип instant представляет собой время в формате YYYY-MM-DDThh:mm:ss.sss+zz:zz (например, 2015-02-07Т13:28:17.239+02:00 или 2017-01-01T00:00:00Z). Время должно быть указано с точностью до секунд или выше и должно указывать часовой пояс.

Примечание — Этот тип рассчитан на точное указание времени (например, для регистрационного журнала), а для вывода пользователю следует использовать типы date или dateTime (которые могут иметь ту же точность, что instant, но не обязательно).

В XML: xs:dateTime.

В JSON: string.

Regex: ([0-9]([0-9]([0-9][1 -9]|[1 -9]0)|[1 -9]00)|[1 -9]000)-(0[1 -9]|1 [0-2])-(0[1-9]|[1-2][0-9]|3[0-1])Т([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9] {1,9})?(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))

Отношение генерализации от instant к PrimitiveType

25

ПНСТ 995—2024

Таблица 26 — Состав элементов типа данных instant

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

value

Значение данного типа

xs:dateTime

0..1

9.2.11 Тип данных integer

Тип данных integer предназначен для передачи целочисленных значений. Общие сведения о типе данных integer приведены в таблице 27, а состав элементов — в таблице 28.

Таблица 27 — Общие сведения о типе данных integer

Имя

Описание

Связи с другими элементами модели

integer

Целое число со знаком в диапазоне -2 147 483 648..2 147 483 647 (32 бита; для больших значений используйте тип decimal) В XML: xs:int (без ведущих нулей).

В JSON: number (без десятичной точки).

Regex: [0]|[-+]?[1-9][0-9]*

Отношение генерализации от integer к PrimitiveType

Таблица 28 — Состав элементов типа данных integer

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

value

Значение данного типа

xs:int

0..1

9.2.12 Тип данных integer64

Тип данных integer64 предназначен для передачи больших целочисленных значений, которые могут принимать счетчики записей или таймеры. Общие сведения о типе данных integer64 приведены в таблице 29, а состав элементов — в таблице 30.

Таблица 29 — Общие сведения о типе данных integer64

Имя

Описание

Связи с другими элементами модели

integer

Целое число со знаком в диапазоне —9 223 372 036 854 775 808..

+ 9 223 372 036 854 775 807 (64 бита).

В XML: xs:long (без ведущих нулей).

В JSON: string.

Regex: [0]|[-+]?[1-9][0-9]*

Отношение генерализации от integer64 к PrimitiveType

26

Таблица 30 — Состав элементов типа данных integer64

ПНСТ 995—2024

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

value

Значение данного типа

xs:long

0..1

9.2.13 Тип данных markdown

Тип данных markdown предназначен для удобочитаемого представления структурированного текста в соответствии со спецификацией GitHub Flavored Markdown (https://github.github.com/gfm/). Общие сведения о типе данных markdown приведены в таблице 31, а состав элементов — в таблице 32.

Таблица 31 — Общие сведения о типе данных markdown

Имя

Описание

Связи с другими элементами модели

markdown

Строка, которая может содержать символы в синтаксисе markdown (облегченный язык разметки), представляющем расширение формата CommonMark, предложенное в GFM.

В XML: xs:string.

В JSON: string.

Regex: A[\s\S]+$ (в regex нельзя указать ограничение длины)

Отношение генерализации от markdown к string

Таблица 32 — Состав элементов типа данных markdown

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

value

Значение данного типа

xs:string

0..1

9.2.14 Тип данных oid

Тип данных oid представляет глобально уникальные объектные идентификаторы (ОИД), присваиваемые в соответствии с регламентом, описанным в стандарте ГОСТ Р ИСО/МЭК 9834-1. Структура ОИД описана в стандарте ГОСТ Р ИСО/МЭК 8824-1, хранилище верхних уровней дерева ОИД представлено по адресу https://oidref.com/, хранилище верхних уровней российской ветви 1.2.643 — по адресу https://oid.iitrust.ru. ОИД является одним из вариантов унифицированного идентификатора ресурса URI и может быть представлен в форме URI. Это представление используется в типе данных oid. Общие сведения о типе данных oid приведены в таблице 33, а состав элементов — в таблице 34.

Таблица 33 — Общие сведения о типе данных oid

Имя

Описание

Связи с другими элементами модели

oid

Представление объектного идентификатора (ОИД) в форме URI [26]; например, urn:oid:1.2.3.4.5.

В XML —xs:anyURI.

В JSON — string (в формате URI).

Regex: urn:oid:[0-2](\.(0|[1-9][0-9]*))+

Отношение генерализации от oid к uri

27

ПНСТ 995—2024

Таблица 34 — Состав элементов типа данных oid

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

value

Значение данного типа

xs:anyURI

0..1

9.2.15 Тип данных positivelnt

Тип данных positivelnt используется для представления положительных целых чисел. Общие сведения о типе данных positivelnt приведены в таблице 35, а состав элементов — в таблице 36.

Таблица 35 — Общие сведения о типе данных positivelnt

Имя

Описание

Связи с другими элементами модели

positivelnt

Любое положительное целое число в диапазоне 1 ...2 147 483 647

В XML — xs:positiveinteger.

В JSON — number.

Regex: [1-9][0-9]*

Отношение генерализации от positivelnt к integer

Таблица 36 — Состав элементов типа данных positivelnt

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

value

Значение данного типа

xs:positiveinteger

0..1

9.2.16 Тип данных string

Тип данных string представляет собой строковые данные в кодировке Unicode, которые могут быть записаны несколькими строками (то есть могут содержать символы возврата строки и перевода каретки). Общие сведения о типе данных string приведены в таблице 37, а состав элементов — в таблице 38.

28

Таблица 37 — Общие сведения о типе данных string

ПНСТ 995—2024

Имя

Описание

Связи с другими элементами модели

string

Последовательность символов Unicode.

Строка string ДОЛЖНА не превышать 1МВ (1024*1024 символов и не содержать символы Unicode с кодом меньше 32, за исключением и0009 (горизонтальная табуляция), иООЮ (возврат каретки) и и0013 (перевод строки). Ведущие и концевые пробельные символы разрешены, но ДОЛЖНЫ быть удалены, если используется формат XML.

Примечание — Это означает, что строка, состоящая только из пробельных элементов, должна быть превращена в пустую строку, но это будет трактоваться как недопустимое значение элемента. Поэтому строки ПО ВОЗМОЖНОСТИ ДОЛЖНЫ содержать не пробельные символы.

С этим типом данных может быть связан набор значений ValueSet.

В XML — xs:string.

В JSON — string.

Regex: A[\s\S]+$

Отношение генерализации от string к PrimitiveType

Таблица 38 — Состав элементов типа данных string

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

value

Значение данного типа

xs:string

0..1

9.2.17 Тип данных time

Тип данных time используется для представления времени. Общие сведения о типе данных time приведены в таблице 39, а состав элементов — в таблице 40.

Таблица 39 — Общие сведения о типе данных time

Имя

Описание

Связи с другими элементами модели

time

Время суток в формате hh:mm:ss. Дата не указывается. Секунды могут быть указаны в соответствии со схемой, но могут быть заполнены нулями и игнорироваться получателем. Время «24:00» не должно использоваться. Часовой пояс должен отсутствовать. Время может быть преобразовано в длительность Duration после полуночи.

В XML — xs:time.

В JSON — string (в формате xs:time).

Regex: ([01 ][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?

Отношение генерализации от time к Element

Таблица 40 — Состав элементов типа данных time

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

29

ПНСТ 995—2024

Окончание таблицы 40

Имя

Описание

Тип

Кратность

Собственные элементы

value

Значение данного типа

xs:time

0..1

9.2.18 Тип данных unsignedlnt

Тип данных unsignedlnt используется для представления целых чисел без знака. Общие сведения о типе данных unsignedlnt приведены в таблице 41, а состав элементов — в таблице 42.

Таблица 41 — Общие сведения о типе данных unsignedlnt

Имя

Описание

Связи с другими элементами модели

unsignedlnt

Любое неотрицательное целое число в диапазоне 0...2 147 483 647.

В XML — xs:nonNegativelnteger.

В JSON — number.

Regex: [0]|([1-9][0-9]*)

Отношение генерализации от unsignedlnt к integer

Таблица 42 — Состав элементов типа данных unsignedlnt

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

value

Значение данного типа

xs:time

0..1

9.2.19 Тип данных uri

Тип данных uri используется для представления унифицированных идентификаторов ресурсов. Он имеет три основные разновидности: объектные идентификаторы oid, универсальные уникальные идентификаторы uuid и унифицированные адреса ресурсов url. Общие сведения о типе данных uri приведены в таблице 43, а состав элементов — в таблице 44.

Таблица 43 — Общие сведения о типе данных uri

Имя

Описание

Связи с другими элементами модели

uri

Ссылка Uniform Resource Identifier Reference [27].

Примечание — URI чувствительны к регистру. Для UUID (urn:uuid:53fefa32-fcbb-4ff8-8a92-55ee120877b7) следует использовать нижний регистр.

BXML —xs:anyURI.

В JSON — string (в формате URI).

Regex: \S* (Это выражение разрешает очень многое, но URI должны быть валидными. Разработчики могут использовать более специфичные регулярные выражения. URI может быть абсолютным или относительным и может иметь необязательный идентификатор фрагмента. С этим типом данных может быть связан набор значений ValueSet)

Отношение генерализации от uri к Element

30

Таблица 44 — Состав элементов типа данных uri

ПНСТ 995—2024

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

value

Значение данного типа

xs:anyURI

0..1

9.2.20 Тип данных uri

Тип данных uri представляет унифицированные адреса ресурсов URL. Общие сведения о типе данных uri приведены в таблице 45, а состав элементов — в таблице 46.

Таблица 45 — Общие сведения о типе данных uri

Имя

Описание

Связи с другими элементами модели

uri

Uniform Resource Locator [28]. Следует учитывать, что URL может быть непосредственно доступен при использовании указанного в нем протокола. Наиболее распространены протоколы http{s}:, ftp:, mailto: и mllp:.

В XML — xs:anyURI.

В JSON — string (в формате URL).

Regex: \S*

Отношение генерализации от uri к uri

Таблица 46 — Состав элементов типа данных uri

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

value

Значение данного типа

xs:anyURI

0..1

9.2.21 Тип данных uuid

Тип данных uuid представляет универсально уникальные идентификаторы UUID (GUID) в форме URI. Общие сведения о типе данных uuid приведены в таблице 47, а состав элементов — в таблице 48.

Таблица 47 — Общие сведения о типе данных uuid

Имя

Описание

Связи с другими элементами модели

uuid

UUID (он же GUID), представленный как URI [29]; например, urn:uuid:c757873d-ec9a-4326-a141-556f43239520.

BXML —xs:anyURI.

В JSON — string (в формате URI).

Regex: urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}

Отношение генерализации от uuid к uri

Таблица 48 — Состав элементов типа данных uuid

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

31

ПНСТ 995—2024

Окончание таблицы 48

Имя

Описание

Тип

Кратность

extension

Дополнительное содержание

Extension

0..*

value

Значение данного типа

xsranyURI

0..1

9.2.22 Ограничения простых типов данных

Простые типы данных являются потомками типа данных PrimitiveType и наследуют его ограничение, представленное в таблице 49.

Таблица 49 — Ограничение типа данных PrimitiveType

id

Уровень

Путь

Описание

Выражение

eIe-1

Правило

Базовый

Все элементы должны иметь атрибут @value или потомков

hasValue() or (children().count() > id.count())

Применительно к типам данных это ограничение трактуется следующим образом: если значение типа данных не указано, то должно присутствовать как минимум расширение extension, представляющее дополнительное свойство значения (например, причину его отсутствия).

9.3 Комплексные типы данных общего назначения

9.3.1 Общие сведения

Диаграммы классов комплексных типов данных общего назначения показаны на рисунках 13 и 14. Перечень комплексных типов данных общего назначения приведен в таблице 50.

Таблица 50 — Комплексные типы данных общего назначения

Имя

Описание

Пункт

Address

Почтовый адрес лица или организации

9.3.2

Age

Возраст

9.3.13.2

Annotation

Примечания к содержанию ресурса

9.3.3

Attachment

Вложение в ресурс (по значению или по ссылке)

9.3.4

CodeableConcept

Кодированное понятие

9.3.5

Coding

Кодированное значение

9.3.6

ContactPoint

Контактная информация лица или организации

9.3.7

Count

Счетчик

9.3.13.3

Distance

Дистанция

9.3.13.1

Duration

Длительность

9.3.13.4

HumanName

Именование физического лица (фамилия, имя, отчество или другие имена)

9.3.8

Identifier

Идентификатор сущности (субъекта или объекта) в определенном пространстве имен

9.3.9

Money

Денежная сумма

9.3.10

MoneyQuantity

Представление денежной суммы в форме дроби

9.3.13.6

Period

Период времени или (неопределенный) момент времени внутри периода

9.3.11

Quantity

Физическая величина

9.3.12

32

Окончание таблицы 50

ПНСТ 995—2024

Имя

Описание

Пункт

Range

Диапазон значений физических величин

9.3.14

Ratio

Отношение между двумя физическими величинами, выраженное в форме числителя и знаменателя

9.3.15

RatioRange

Представление диапазона отношений двух физических величин

9.3.16

SampledData

Представление серии считываний, осуществляемых прибором

9.3.17

Signature

Подпись

9.3.19

SimpleQuantity

Ограничение типа данных Quantity, в котором отсутствует элемент comparator

9.3.13.5

Timing

Представление списка повторяющихся событий

9.3.18

33

ПНСТ 995—2024

class Типы датых общего назначения (начало) ^

Ratio

Attachment

34

«Constraint»

+ numerator Quantify [0.. 1 ]

+ denominator SimpleQuantify [0..1]

Money

+ value: decimal [0..1] «Binding»

+ currency: Coding [0..1]

Coding

+ system: uri [0..1 ]

+ version: string [0..1]

+ userSelected: boolean [0..1]

«Constraint»

+ code: code [0..1]

+ display: string [0..1]

Range

«Constraint»

+ low: SimpleQuantify [0..1 ]

+ high: SimpleQuantify [0..1

RatioRange

«Constraint»

+ lowNumerator SimpleQuantify [0..1]

+ highNumerator SimpleQuantify

+ denominator SimpleQuantify [0..1]

Age

Annotation

authorfx]: DataType [0..1] time: dateTime [0..1] text: markdown

Element

DataType

Quantify

+ value: decimal [0..1]

+ unit: string [0..1]

«Binding»

+ comparator, code [0..1]

«Constraint»

+ system: uri [0..1]

+ code: code [0..11

+ uri: uri [0..1]

+ size: integer64 [0..1]

+ hash: base64Binary [0..1]

+ title: string [0..1]

+ creation: dateTime [0..1]

+ height: positivelnt [0..1]

+ width: positivelnt [0..1]

+ frames: positivelnt [0..1]

+ duration: decimal [0..1]

+ pages: positivelnt [0..1] «Binding, Constraint»

+ contentType: code [0..1] «Binding»

+ language: code [0..1] «Constraint»

+ data: base64Binary [0..1]

Period

«Constraint»

+ start: dateTime [0..1]

+ end: dateTime [0..1]

Codea bl e Concept

+ coding: Coding [0..*]

+ text: string [0..1 ]

Distance

Duration

Count

MoneyQuantify

SimpleQuantify

Рисунок 13 — Комплексные типы данных общего назначения (начало)

HumanName

Address

ПНСТ 995—2024

ContactPoInt

+ text: string [0..1]

+ family: string [0..1]

+ given: string [0..*]

+ prefix: string [0..*]

+ suffix: string [0..*]

+ period: Period [0..1]

«Binding»

+ use: code [0..1]______

Identifier

+ system: uri [0..1]

+ period: Period [0..1] «Binding»

+ use: code [0..1]

text: string [0..1]

line: string [0..*]

city: string [0..1] district: string [0..1] state: string [0..1] postal Code: string [0..1] country: string [0..1] period: Period [0..1]

«Binding» use: code [0..1] type: code [0..1]

+ rank: positivelnt [0..1]

+ period: Period [0..1]

«Constraint, Binding»

+ system: code [0..1]

«Constraint»

+ value: string [0..1]

«Binding»

+ use: code [0..1]

ВаскЬомТура

+ modifierExtension: Extension [0..*]

+ type: Codea bl eConcept [0..1 «Constraint»

+ value: string [0..1]

«RefTarget»

+ assignor Reference [0.. 1 ]

Signature

type: Coding when: instant who: Reference onBehalfOf: Reference [0..1] targetFormat: code [0..1] sig Format: code [0..1] data: base64Binary [0..1]

Element

Data Туре

Timing

+ event: dateTime [0..*] «Binding»

+ code: CodeableConcept [0..1]

+repeat'

SampledData

Л.1

+ origin: SimpleQuantity

+ factor decimal [0..1]

+ lowerLimit: decimal [0..1]

+ upperLimit: decimal [0..1]

+ dimensions: positivelnt

+ data: string

«Constraint»

+ interval: decimal [0..1]

+ offsets: string [0..1]

«Binding»

+ interval Unit: code

«RefTarget»

+ codeMap: canonical [0..1]

Repeat

+ bounds(x]: Quantity [0..1]

+ frequency: positivelnt[0..1]

+ frequencyMax: positivelnt [0..1]

«Constraint»

+ count: positivelnt [0..1]

+ countMax: positivelnt [0..1]

+ duration: decimal [0..1]

+ durationMax: decimal [0..1]

+ period: decimal [0..1]

+ periodMax: decimal [0..1]

+ timeOfDay: time [0..*]

+ offset: unsignedlnt [0..1]

«Constraint, Binding»

+ du rati on Un it: code [0..1]

+ periodUnit: code [0..1]

+ when: code [0..*]

«Binding»

+ dayOfWeek code [0..*]

Рисунок 14 — Комплексные типы данных общего назначения (окончание)

9.3.2 Тип данных Address

Тип данных Address описывает почтовый адрес лица или организации, но может также использоваться для указания мест, куда почта не доставляется. Общие сведения о типе данных Address приведены в таблице 51, а состав элементов — в таблице 52.

35

ПНСТ 995—2024

Таблица 51 — Общие сведения о типе данных Address

Имя

Описание

Связи с другими элементами модели

Address

Адрес, представленный в формате почтовых соглашений (в отличие от координат GPS или других обозначений местонахождения). Этот тип данных может использоваться для почтовых адресов, а также для мест посещения, куда почта не доставляется

Отношение генерализации от Address к Element

Таблица 52 — Состав элементов типа данных Address

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

use

Использование адреса — одно из значений home (домашний) | work (служебный) | temp (временный) | old (прежний) | billing (для счетов)

code

0..1

type

Тип адреса: postal (почтовый) | physical (физический) | both (почтовый и физический)

code

0..1

text

Полный текст адреса

string

0..1

line

Строка адреса. Порядок строк должен соответствовать указанному на почтовом конверте

string

0..*

city

Наименование города или населенного пункта

string

0..1

district

Район

string

0..1

State

Административный субъект страны (область, край, республика)

string

0..1

postalCode

Почтовый индекс

string

0..1

country

Страна (код в соответствии с ГОСТ 7.67)

string

0..1

period

Срок действия адреса

Period

0..1

Привязки к наборам значений описаны в таблице 53.

Таблица 53 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

Address.use

http://hl7.org/fhir/ValueSet/address-use

Обязательная

Использование адреса

Address.type

http://hl7.org/fhir/ValueSet/address-type

Обязательная

Тип адреса

9.3.3 Тип данных Annotation

Тип данных Annotation используется для представления примечаний к содержанию ресурса. Общие сведения о типе данных Annotation приведены в таблице 54, а состав элементов — в таблице 55.

Таблица 54 — Общие сведения о типе данных Annotation

Имя

Описание

Связи с другими элементами модели

Annotation

Текстовое примечание, содержащее сведения о том, кто и когда его сделал

Отношение генерализации от Annotation к DataType

36

Таблица 55 — Состав элементов типа данных Annotation

ПНСТ 995—2024

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

autor[x]

Лицо или организация, сделавшая примечание. Тип х может принимать значения Reference или string

DataType

0..1

author-Reference

Ссылка на лицо или организацию, сделавшую примечание. Допустимые типы ссылочных ресурсов: Practitioner | PractitionerRole | Patient | Re-latedPerson | Organization

Reference

authorString

Информация о лице или организации, сделавшей примечание

string

time

Момент создания примечания

dateTime

0..1

text

Текст примечания в формате markdown

markdown

1

9.3.4 Тип данных Attachment

Тип данных Attachment используется для представления вложений в содержание экземпляров ресурсов или ссылок на эти вложения. Общие сведения о типе данных Attachment приведены в таблице 56, а состав элементов — в таблице 57.

Примечание —Для свертки данных рекомендуется использовать алгоритм ГОСТ Р 34.11.

Таблица 56 — Общие сведения о типе данных Attachment

Имя

Описание

Связи с другими элементами модели

Attachment

Этот тип данных предназначен для представления вложений или для ссылок на них. Под вложениями понимается дополнительное содержание данных, определенное в других форматах. Чаще всего он используется для представления изображений или представления документов в таких форматах, как PDF. Но он может использоваться для любых данных, тип которых специфицирован в MIME

Отношение генерализации от Attachment к DataType

Таблица 57 — Состав элементов типа данных Attachment

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

contentType

Тип содержания MIME, включая кодировку и т.д. Привязка к набору значений: http://hl7.org/fhir/ValueSet/ mimetypes (обязательная)

code

0..1

37

ПНСТ 995—2024

Окончание таблицы 57

Имя

Описание

Тип

Кратность

language

Код человеческое языка содержания. Тег языка из ВСР-47 [30]

code

0..1

data

Вложенные данные в формате base64

base64Binary

0..1

url

Адрес URL, откуда можно взять данные

url

0..1

size

Количество байтов в содержании (если указан url)

integer64

0..1

hash

Свертка данных (sha-1, base64ed, ГОСТ Р 34.11) в формате base64

base64Binary

0..1

title

Метка для изображения вместо данных

string

0..1

creation

Дата и время создания вложения

dateTime

0..1

height

Высота изображения в пикселах (фото/видео)

positivelnt

0..1

width

Ширина изображения в пикселах (фото/видео)

positivelnt

0..1

frames

Число кадров (фото)

positivelnt

0..1

duration

Длительность в секундах (аудио/видео)

decimal

0..1

pages

Число страниц при печати

positivelnt

0..1

Содержание, передаваемое в экземпляре ресурса Attachment, может передаваться по значению в элементе data или по ссылке в элементе url. Если указаны оба элемента, то ссылка должна указывать на те же самые данные, которое переданы в элементе data.

Элемент contentType должен быть заполнен, если данные передаются в элементе data, и может быть заполнен, если данные передаются по ссылке url.

Если элементы data и url отсутствуют, то это означает, что данные с указанным сочетанием типа содержания contentType и языка language отсутствуют.

Если данные передаются по ссылке, то в элементе hash можно задать их контрольную свертку, чтобы иметь возможность проверки целостности данных, возвращаемых по ссылке.

В ряде случаев кратность элемента ресурса, имеющего тип Attachment, может превышать 1. Правильное использование кратного элемента состоит в том, чтобы его экземпляры имели одно и то же содержание, но с разными типами содержания MIME и/или представленные на разных языках.

Ограничения типа данных Attachment описаны в таблице 58. Привязки к наборам значений описаны в таблице 59.

Таблица 58 — Ограничения типа данных Attachment

Идентификатор

Вид

Путь

Описание

Выражение

att-1

Правило

Базовый

Если элемент data присутствует, то элемент contentType обязателен

data.empty() or content-Type.exists()

Таблица 59 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

Attachment. contentType

https://hl7.org/fhir/valueset-mimetypes.html

Обязательная

Все допустимые коды из ВСР-13 (см. http://tools.ietf.org/html/bcp13)

Attachment, language

http://hl7.org/fhir/ValueSet/all-languages

Обязательная

Все допустимые коды языка из ВСР-47 (см. http://tools.ietf.org/html/bcp47)

http://hl7.org/fhir/ValueSet/ languages

Рекомендованная

Наиболее распространенные коды языка

38

ПНСТ 995—2024

9.3.5 Тип данных CodeableConcept

Тип данных CodeableConcept предназначен для представления кодированных понятий, при котором допускается указывать код, взятый из классификатора или справочника, код вместе с текстом, который детализирует значение кода (например, кода прочие), или только текст, если никакой код классификатора или справочника не может быть сопоставлен этому тексту. Общие сведения о типе данных CodeableConcept приведены в таблице 60, а состав элементов — в таблице 61.

В значении типа CodeableConcept можно передать несколько кодов из разных систем кодирования при условии, что все эти коды относятся к одному и тому же понятию. Например, в одном значении можно передать код из общероссийского классификатора и соответствующий ему код из местного справочника.

Таблица 60 — Общие сведения о типе данных CodeableConcept

Имя

Описание

Связи с другими элементами модели

CodeableConcept

Кодированное понятие (CodeableConcept) представляет значение, которое обычно принадлежит одной или нескольким терминологиям либо онтологиям, но может быть представлено только текстом text.

С этим типом данных может быть связан набор значений ValueSet

Отношение генерализации от CodeableConcept к DataType

Таблица 61 — Состав элементов типа данных CodeableConcept

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

coding

Код, определенный в терминологической системе. При представлении кодированного понятия может быть указано несколько кодов (понятие может быть описано кодами из разных систем кодирования или даже несколькими кодами в одной системе кодирования)

Coding

0..*

text

Текст, послуживший источником для кодирования

string

0..1

9.3.6 Тип данных Coding

Тип данных Coding предназначен для представления кодированных значений. В отличие от CodeableConcept наличие текста, детализирующего значение кода, не предусмотрено. Общие сведения о типе данных Coding приведены в таблице 62, а состав элементов — в таблице 63.

Таблица 62 — Общие сведения о типе данных Coding

Имя

Описание

Связи с другими элементами модели

Coding

Представление определенного понятия, используя символ из определенной «системы кодирования».

С этим типом данных может быть связан набор значений ValueSet

Отношение генерализации от Coding к DataType

39

ПНСТ 995—2024

Таблица 63 — Состав элементов типа данных Coding

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

system

Идентификация терминологической системы

uri

0..1

version

Идентификация версии системы — если применима

string

0..1

code

Символ в синтаксисе, определенном системой system

code

0..1

display

Представление символа, определенное в системе system

string

0..1

userSelected

Признак выбора кода пользователем

boolean

0..1

Элемент code является кодом понятия. Элемент system в сочетании с версией version (если указана) идентифицирует систему кодирования. Элемент display содержит человеко-читаемый текст, предназначенный для визуализации вместо кода.

Если с течением времени кодированные понятия остаются неизменными, то версия version не нужна. Если система кодирования описывает полную классификацию (например, Международная статистическая классификация болезней и проблем, связанных со здоровьем), то версия version обязательна, поскольку при добавлении нового понятия значение кода, присвоенного «другим и неуточнен-ным» понятиям, изменяется.

Элемент system должен содержать URI системы кодирования, а не набора значений (например, ValueSet.url), поскольку набор значений описывает множество допустимых кодов, но не связывает их с понятиями.

Элемент code должен являться символом, синтаксис которого определен в системе кодирования, идентифицируемой значением элемента system. В некоторых системах кодирования (например, пост-координируемых) коды могут представлять собой выражения, составленные из других заранее определенных кодов. Примером служат системы единиц измерения.

Если элемент display присутствует, то он должен содержать краткий человеко-читаемый текст, идентифицирующий понятие данной системы кодирования. С одним кодом может быть связано несколько текстов:

- основной, указанный в элементе CodeSystem.concept.display;

- дополнительные, указанные в элементах CodeSystem.concept.designation.value (например, переводы основного текста на другие языки).

Ограничения типа данных Coding описаны в таблице 64.

Таблица 64 — Ограничения типа данных Coding

Идентификатор

Вид

Путь

Описание

Выражение

cod-1

Предупреждение

Базовый

Если элемент code присутствует, то элемент display должен отсутствовать

code.exists().not() implies display.exists().not()

9.3.7 Тип данных ContactPoint

Тип данных ContactPoint предназначен для представления контактной информации лица или организации. Общие сведения о типе данных ContactPoint приведены в таблице 65, а состав элементов — в таблице 66.

40

Таблица 65 — Общие сведения о типе данных ContactPoint

ПНСТ 995—2024

Имя

Описание

Связи с другими элементами модели

ContactPoint

Детали всех видов технологий контактов с лицом или организацией, включая телефон, электронную почту и т. д.

Отношение генерализации от ContactPoint к DataType

Таблица 66 — Состав элементов типа данных ContactPoint

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

system

Тип контакта. Допустимые значения: phone (телефон) | fax (факс) | email (электронная почта) | uri (URL) | sms (CMC) | other (другой)

Coding

0..1

value

Номер или иной телекоммуникационный адрес

string

0..1

use

Код использования. Допустимые значения: home (домашний) | work (служебный) | temp (временный) | old (прежний) | mobile (мобильный)

Coding

0..1

rank

Приоритет контакта — (1 — наивысший)

positivelnt

0..1

period

Срок действия контактной информации

Period

0..1

Ограничения типа данных ContactPoint описаны в таблице 67. Привязки к наборам значений описаны в таблице 68.

Таблица 67 — Ограничения типа данных ContactPoint

Идентификатор

Вид

Путь

Описание

Выражение

cpt-2

Правило

Базовый

Если элемент value присутствует, то элемент system обязателен

value.empty() or system. exists()

Таблица 68 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

ContactPoint.system

https://hl7.org/fhir/valueset-contact-point-system.html

Обязательная

Тип контакта

ContactPoint.use

http://hl7.org/fhir/ValueSet/ contact-point-use

Обязательная

Код использования

9.3.8 Тип данных HumanName

Тип данных HumanName предназначен для описания именования физического лица (фамилия, имя, отчество или другие имена). Общие сведения о типе данных HumanName приведены в таблице 69, а состав элементов — в таблице 70.

Именование лица может иметь ограниченный срок действия, задаваемый в элементе period.

41

ПНСТ 995—2024

Таблица 69 — Общие сведения о типе данных HumanName

Имя

Описание

Связи с другими элементами модели

HumanName

Именование физического лица, включая полный текст, отдельные части и информацию о применении.

Именования лиц могут изменяться. Лица могут использовать разные именования в разных ситуациях. Именования могут делиться на отдельные части, имеющие разную значимость в разном контексте

Отношение генерализации от HumanName к DataType

Таблица 70 — Состав элементов типа данных HumanName

Имя

Описание

Тип

Кратность

Унаследованные элементы

Id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

use

Использование именования лица. Допустимые значения: usual (обычное) | official официальное) | temp (временное) | nickname (псевдоним) | anonymous (деперсонифицированное) | old (прежнее) | maiden (девичье)

code

0..1

text

Полное именование лица

string

0..1

family

Фамилия физического лица

string

0..1

given

Имя физического лица

string

0..*

middle

Отчества либо второе и следующие имена физического лица, разделяемые пробелом

string

0..1

period

Срок действия именования физического лица

Period

0..1

В элементе given передаются все имена лица в том порядке, как это указано в свидетельстве о рождении или паспорте. Для российских граждан первый экземпляр элемента given должен содержать имя, второй — отчество (при наличии).

Элемент text (полное именование) предусмотрен на тот случай, если выделить имя, фамилию и другие структурированные компоненты не представляется возможным. Если заполнены и элемент text, и другие компоненты именования, то элемент text не должен содержать иные компоненты.

Привязки к наборам значений описаны в таблице 71.

Таблица 71 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

HumanName.use

http://hl7.org/fhir/ValueSet/name-use

Обязательная

Использование именования лица

9.3.9 Тип данных Identifier

Тип данных Identifier представляет идентификатор сущности (субъекта или объекта) в пространстве имен, идентифицированном элементом system. Общие сведения о типе данных Identifier приведены в таблице 72, а состав элементов — в таблице 73.

Срок действия идентификатора задается элементом period. Компонент period.start указывает дату присвоения (выдачи) идентификатора, компонент period.end — дату прекращения его действия (например, дату выдачи и срок действия загранпаспорта). Элемент assigner содержит идентификатор организации, присвоившей идентификатор. Поскольку он имеет тип Reference, то в компоненте assigner. display можно передать наименование организации.

42

ПНСТ 995—2024

Элемент system содержит абсолютный URI, определяющий схему идентификации (структура идентификатора, правила присваивания и т.д.). Для глобально уникальных идентификаторов ОИД и УУИД (например, Global Unique Identifier) схема идентификации должна иметь значение urn:ietf:rfc:3986. Если system содержит URL, то он, по возможности, должен быть разрешимым. Значение элемента system чувствительно к регистру.

Значение элемента value должно быть уникальным в пространстве имен, определяемом схемой идентификации system. Оно должно быть чувствительным к регистру за исключением тех случаев, когда схема идентификации предусматривает иное. В некоторых случаях значение value известно, а элемент system отсутствует (например, элемент value содержит значение штрих-кода, считанного с упаковки лекарства). В таких случаях уникальность значения value должна обеспечиваться исходя из контекста применения идентификаторов. В качестве паллиатива вместо system можно использовать элемент type (тип идентификатора).

Таблица 72 — Общие сведения о типе данных Identifier

Имя

Описание

Связи с другими элементами модели

Identifier

Цифровая или буквенно-цифровая строка, ассоциируемая с одним объектом или сущностью в данной системе идентификации

Отношение генерализации от Identifier к DataType

Таблица 73 — Состав элементов типа данных Identifier

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

use

Тип использования идентификатора. Допустимые значения: usual (обычный) | official (официальный) | temp (временный) | secondary (вторичный) | old (прежний)

code

0..1

type

Тип идентификатора, описывающий его назначение

Codeable-Concept

0..1

system

Пространство имен для значений идентификатора. Оно представляет собой URI, например, https://id.edu.gov.ru/Organization/ ogrn или urn:ietf:rfc:3986, если значение value идентификатора само по себе является глобально уникальным (ОИД или UUID)

uri

0..1

value

Значение идентификатора (уникальное в пространстве имен)

string

0..1

period

Срок действия идентификатора

Period

0..1

assigner

Ссылка на организацию, присвоившую идентификатор

Reference

0..1

Ограничения типа данных Identifier описаны в таблице 74. Привязки к наборам значений описаны в таблице 75.

Таблица 74 — Ограничения типа данных Identifier

Идентификатор

Вид

Путь

Описание

Выражение

ident-1

Предупреждение

Базовый

Идентификаторы без компонента value имеют ограниченное применение. Если идентификатор не известен, то можно передать элемент value, у которого нет атрибута value, но есть расширение extension, указывающее причину отсутствия идентификатора

value. empty() or system.exists()

43

ПНСТ 995—2024

Таблица 75 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

Identifier.use

http://hl7.org/fhir/ValueSet/identifier-use

Обязательная

Тип использования идентификатора

Identifier.type

http://hl7.org/fhir/ValueSet/identifier-type

Расширяемая

Тип идентификатора, описывающий его назначение

9.3.10 Тип данных Money

Тип данных Money предназначен для представления денежной суммы. Общие сведения о типе данных Money приведены в таблице 76, а состав элементов — в таблице 77.

Таблица 76 — Общие сведения о типе данных Money

Имя

Описание

Связи с другими элементами модели

Money

Денежная сумма

Отношение генерализации от Money к DataType

Таблица 77 — Состав элементов типа данных Money

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

value

Величина суммы

decimal

0..1

currency

Код денежной единицы

Coding

0..1

Привязки к наборам значений описаны в таблице 78.

Таблица 78 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

Money.currency

http://hl7.org/fhir/

ValueSet/currencies

Обязательная

Код денежной единицы в соответствии с ОКВ ОК (МК(ИСО 4217) 003-97) 014

Иногда денежная сумма должна представляться как дробь, числителем которой является денежная единица. В этом случае денежная сумма имеет тип данных Quantity с профилем MoneyQuantity, описанным в таблице 93.

9.3.11 Тип данных Period

Тип данных Period предназначен для представления периода времени или (неопределенного) момента времени внутри периода. Общие сведения о типе данных Period приведены в таблице 79, а состав элементов — в таблице 80.

Таблица 79 — Общие сведения о типе данных Period

Имя

Описание

Связи с другими элементами модели

Period

Период времени, определенный датой/временем начала и конца. Период задает диапазон времени. По контексту использования определяется, имеется ли в виду весь диапазон или какой-то один момент времени внутри этого диапазона

Отношение генерализации от Period к DataType

44

Таблица 80 — Состав элементов типа данных Period

ПНСТ 995—2024

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

start

Дата и время начала периода (включительно)

dateTime

0..1

end

Дата и время конца периода (включительно)

dateTime

0..1

Если элемент start отсутствует, то начало периода не известно. Отсутствие элемента end означает текущий период. В элементе end может быть указана фактическая или планируемая дата завершения периода (включительно).

Ограничения типа данных Period описаны в таблице 81.

Таблица 81 — Ограничения типа данных Period

Идентификатор

Вид

Путь

Описание

Выражение

per-1

Правило

Базовый

Если элементы start и end присутствуют, то значение элемента start должно быть меньше значения элемента end или равно ему

start.hasValue().not() or end. hasValue().not() or (start.low-Boundary() <=end.highBound-ary())

9.3.12 Тип данных Quantity

Тип данных Quantity предназначен для представления значения физической величины. Может быть указано точное значение или его нижняя либо верхняя оценка (используя свойство comparator). Общие сведения о типе данных Quantity приведены в таблице 82, а состав элементов — в таблице 83.

Таблица 82 — Общие сведения о типе данных Quantity

Имя

Описание

Связи с другими элементами модели

Quantity

Измеримая величина (или потенциально измеримая величина). С этим типом данных может быть связан набор значений ValueSet

Отношение генерализации от Quantity к DataType

Таблица 83 — Состав элементов типа данных Quantity

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

value

Измеренная или измеримая величина

decimal

0..1

comparator

Оператор сравнения < | <= | >= | >

code

0..1

unit

Наименование единицы измерения

string

0..1

system

Система кодирования единиц измерения

uri

0..1

code

Код единицы измерения

code

0..1

Ограничения типа данных Quantity описаны в таблице 84. Привязки к наборам значений описаны в таблице 85.

45

ПНСТ 995—2024

Таблица 84 — Ограничения типа данных Quantity

Идентификатор

Вид

Путь

Описание

Выражение

qty-з

Правило

Базовый

Если элемент code присутствует, то элемент system также ДОЛЖЕН присутствовать

code.empty() or system. exists()

Таблица 85 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

Quantity.comparator

http://hl7.org/fhir/ValueSet/quantity-comparator

Обязателен

Интерпретация значения value

9.3.13 Специализации и профили типа данных Quantity

9.3.13.1 Специализация Distance (расстояние)

Специализация Distance ограничивает тип данных Quantity величинами расстояния.

Специализация Distance описана в таблице 86. Привязки к наборам значений описаны в таблице 87.

Таблица 86 — Специализация Distance

Имя типа данных

Правила

Идентификатор

Вид

Путь

Описание

Выражение

Distance

dis-1

Правило

Базовый

Если элемент value присутствует, то ДОЛЖЕН быть указан элемент code, представляющий единицу длины. Если элемент system присутствует, то он должен иметь значение http:// unitsofmeasure.org

(code.

exists() or value. empty()) and (system .emp-ty() or system = %ucum)

Таблица 87 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

Distance.code

http://hl7.org/fhir/ValueSet/ all-distance-units

Расширяемая

Все общие коды расстояния UCUM, являющиеся производными от метра

9.3.13.2 Специализация Аде (возраст)

Специализация Аде ограничивает тип данных Quantity величинами времени.

Специализация Аде описана в таблице 88. Привязки к наборам значений описаны в таблице 89.

Таблица 88 — Специализация Аде

Имя типа данных

Правила

Идентификатор

Вид

Путь

Описание

Выражение

Аде

аде-1

Правило

Базовый

Если элемент value присутствует, то должен быть указан элемент code, представляющий единицу времени. Если элемент system присутствует, то он должен иметь значение http:// unitsofmeasure.org. Если элемент value присутствует, то должен быть положительным

(code.exists() or value. empty()) and (system. empty() or system = %ucum) and (value. empty() or value.hasVal-ue().not() or value > 0)

46

Таблица 89 — Привязки к наборам значений

ПНСТ 995—2024

Путь

Набор значений

Тип привязки

Описание

Age.code

http://hl7.org/fhir/ ValueSet/age-units

Расширяемая

Все общие коды времени UCUM, являющиеся производными от года

9.3.13.3 Специализация Count (счетчик)

Специализация Count ограничивает тип данных Quantity безразмерными величинами с целочисленным значением.

Специализация Count описана в таблице 90.

Таблица 90 — Специализация Count

Имя типа данных

Правила

Идентификатор

Вид

Путь

Описание

Выражение

Count

cnt-3

Правило

Базовый

Если элемент value присутствует, то должен быть указан элемент code со значением '1'. Если элемент system присутствует, то он должен иметь значение http:// unitsofmeasure.org. Если элемент value присутствует, то его строковое представление не должно содержать десятичную точку

(code.exists() or value. empty()) and (system. empty() or system = %ucum) and (code.emp-ty() or code = ‘1’) and (value.empty() or value. hasValue().not() or val-ue.toString().contains(‘.’). not())

9.3.13.4 Специализация Duration (длительность)

Специализация Duration ограничивает тип данных Quantity величинами времени.

Специализация Duration описана в таблице 91. Привязки к наборам значений описаны в таблице 92.

Таблица 91 — Специализация Duration

Имя типа данных

Правила

Идентификатор

Вид

Путь

Описание

Выражение

Duration

drt-1

Правило

Базовый

Если элемент value присутствует, то должен быть указан элемент code, представляющий единицу времени. Если элемент system присутствует, то он должен иметь значение http:// unitsofmeasure.org

code.exists() implies ((system = %ucum) and value.exists())

Таблица 92 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

Duration.code

http://hl7.org/fhir/ValueSet/ duration-units

Расширяемая

Все общие коды времени UCUM, являющиеся производными от года

9.3.13.5 Профиль SimpleQuantity

В дополнение к специализациям типа данных Quantity определен профиль SimpleQuantity, описанный в таблице 93.

47

ПНСТ 995—2024

Таблица 93 — Профиль SimpleQuantity

Имя профиля

Правила

Идентификатор

Вид

Путь

Описание

Выражение

Simple-

Quantity

sqty-1

Правило

Базовый

Элемент comparator (оператор сравнения) не используется

comparator.emptyO

Это не отдельный тип данных, а ограничение типа данных Quantity.

9.3.13.6 Профиль MoneyQuantity

В дополнение к специализациям типа данных Quantity определен профиль MoneyQuantity, описанный в таблице 94.

Таблица 94 — Профиль MoneyQuantity

Имя профиля

Правила

Идентификатор

Вид

Путь

Описание

Выражение

Money-Quantity

mtqy-1

Правило

Базовый

Если элемент value присутствует, то должен быть указан элемент code, который ДОЛЖЕН представлять денежную единицу. Если элемент system присутствует, то он должен иметь значение urn:iso:std:iso:4217

(code.exists() or value. empty()) and

(system.empty() or system = ‘urn:iso:std:iso:4217’

Это не отдельный тип данных, а ограничение типа данных Quantity, используемое при представлении денежных сумм в форме дроби.

9.3.14 Тип данных Range

Тип данных Range предназначен для указания диапазона значений физических величин. Общие сведения о типе данных Range приведены в таблице 95, а состав элементов — в таблице 96.

Таблица 95 — Общие сведения о типе данных Range

Имя

Описание

Связи с другими элементами модели

Range

Множество упорядоченных величин, определенное нижним и верхним пределами. Обычно используется одно значение из этого диапазона. Диапазоны чаще всего указывают в инструкциях.

Единицы измерения unit и code/system элементов low и high должны совпадать. Если low или high отсутствуют, это означает, что нижний или верхний предел не определен. Флаг сравнения comparator в элементах low или high не должен присутствовать. Тип Range не следует использовать для указания значения за пределами диапазона. В этом случае следует использовать тип величины Quantity с элементом comparator.

Величины low и high включаются в диапазон и могут иметь произвольно высокую точность, например, диапазон от 1,5 до 2,5 включает в себя 1,50 и 2,50, но не 1,49 или 2,51

Отношение генерализации от Range к DataType

Таблица 96 — Состав элементов типа данных Range

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

48

Окончание таблицы 96

ПНСТ 995—2024

Имя

Описание

Тип

Кратность

Собственные элементы

low

Нижняя граница диапазона

SimpleQuantity

0..1

high

Верхняя граница диапазона

SimpleQuantity

0..1

Ограничения типа данных Range описаны в таблице 97.

Таблица 97 — Ограничения типа данных Range

Идентификатор

Вид

Путь

Описание

Выражение

rng-2

Правило

Базовый

Если элементы low и high присутствуют, то значение элемента low должно быть меньше значения элемента high или равно ему

low.value.emptyO or high.value. emptyQ or low.lowBoundary().

comparable(high.highBoundary()). not() or (low.lowBoundary() <= high.highBoundary())

9.3.15 Тип данных Ratio

Тип данных Ratio предназначен для представления отношения двух физических величин в форме дроби. Тип данных может использоваться для представления обычной дроби, например, «2/3». Общие сведения о типе данных Ratio приведены в таблице 98, а состав элементов — в таблице 99.

Таблица 98 — Общие сведения о типе данных Ratio

Имя

Описание

Связи с другими элементами модели

Ratio

Отношение между двумя величинами, выраженное числителем numerator и знаменателем denominator.

Тип данных Ratio следует использовать только для представления отношения двух чисел, если оно не может быть подходящим образом выражено с помощью типа данных Quantity и общей единицы измерения. Если знаменатель denominator имеет значение "1", то вместо Ratio следует использовать Quantity

Отношение генерализации от Ratio к DataType

Таблица 99 — Состав элементов типа данных Ratio

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

numerator

Числитель отношения

Quantity

0..1

denominator

Знаменатель отношения

SimpleQuantity

0..1

Ограничения типа данных Ratio описаны в таблице 100.

49

ПНСТ 995—2024

Таблица 100 — Ограничения типа данных Ratio

Идентификатор

Вид

Путь

Описание

Выражение

rat-1

Правило

Базовый

Элементы numerator and denominator должны одновременно присутствовать или отсутствовать. Если они отсутствуют, должно присутствовать хотя бы одно расширение extension

(numerator.exists() and de-nominator.exists()) or (nu-merator.emptyO and denom-inator.empty() and extension. exists())

9.3.16 Тип данных RatioRange

Тип данных RatioRange предназначен для представления диапазонов отношений двух физических величин, представленных в форме дроби. Общие сведения о типе данных RatioRange приведены в таблице 101, а состав элементов — в таблице 102.

Таблица 101 — Общие сведения о типе данных RatioRange

Имя

Описание

Связи с другими элементами модели

RatioRange

Диапазон отношений между двумя величинами, выраженный диапазоном числителя lowNumerator.. nmnmhighNumerator и знаменателем denominator.

Если знаменатель denominator имеет значение 'Г, то вместо RatioRange следует использовать Range

Отношение генерализации от RatioRange к DataType

Таблица 102 — Состав элементов типа данных RatioRange

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

lowNumerator

Нижний предел числителя

SimpleQuantity

0..1

highNumerator

Верхний предел числителя

SimpleQuantity

0..1

denominator

Знаменатель отношения

SimpleQuantity

0..1

Ограничения типа данных RatioRange описаны в таблице 103.

Таблица 103 — Ограничения типа данных RatioRange

Идентификатор

Вид

Путь

Описание

Выражение

ratrng-1

Правило

Базовый

Элементы numerator and denominator должны одновременно присутствовать или отсутствовать. Если они отсутствуют, должно присутствовать хотя бы одно расширение extension

((lowNumerator.exists() or highNu-merator.exists()) and denominator. exists()) or (lowNumerator.emptyO and highNumerator.empty() and de-nominator.emptyO and extension.exists())

ratrng-2

Правило

Базовый

Если оба элемента lowNumerator и highNumerator присутствуют, то значение элемента lowNumerator должно быть меньше значения элемента highNumerator или равно ему

lowNumerator.hasValue().not() or highNumerator.hasValue().not() or (lowNumerator.lowBoundaryO <= highNumerator. highBoundary()

50

ПНСТ 995—2024

9.3.17 Тип данных SampledData

Тип данных SampledData предназначен для представления серии считываний, осуществляемых приборами, например, кардиографами. Каждое считывание представляет собой десятичное значение или код. Результат измерения определяется по следующей формуле, содержащей значение i-ro считывания data с поправками на смещение базового значения origin.value и масштабный коэффициент factor:

измеряемое значение^] = SampledData.data[i] * SampledData.factor + SampledData.origin.value

Общие сведения о типе данных SampledData приведены в таблице 104, состав элементов — в таблице 105.

Таблица 104 — Общие сведения о типе данных SampledData

Имя

Описание

Связи с другими элементами модели

SampledData

Серия считываний, осуществленная прибором, с указанием верхней и нижней границы диапазона значений. Может быть многомерной

Отношение генерализации от SampledData к DataType

Таблица 105 — Состав элементов типа данных SampledData

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

origin

Смещение нулевого значения и его единицы

SimpleQuantity

1

interval

Число intervalunits между считываниями

decimal

0..1

intervalUnit

Единицы измерения интервала между считываниями

code

1

factor

Масштабирующий коэффициент, применяемый к считыванию до добавления базового смещения

decimal

0..1

lowerLimit

Нижний предел значения считывания

decimal

0..1

upperLimit

Верхний предел значения считывания

decimal

0..1

dimensions

Число считываний в каждый момент времени. Если оно больше единицы, то размерности будут чередоваться — все считывания в данный момент времени будут записаны сразу

positivelnt

1

codeMap

Ссылка на экземпляр ресурса CodeMap, описывающего коды, которые могут передаваться вместо числового значения считывания. Эти коды должны быть дополнительными к ‘Е’, ‘U’, ‘L’ (или ‘е’, ‘u’, Т).

canonical

0..1

offsets

Последовательность десятичных значений смещений во времени, разделенных пробелами (символ и20). Единицы, в которых выражаются эти значения, берутся из intervalUnit. Абсолютное время начала измерений задается за рамками данного типа данных, например, в элементе Observation. effectiveDateTime. Если этот элемент присутствует, то число считываний должно быть равно числу смещений, указанному в элементе offsets, умноженному на размерность dimensions

string

0..1

data

Последовательность считываний, разделенных пробелами (символ и20). Считывания могут быть десятичными значениями или кодами «Е» (ошибка), «L» (меньше нижнего предела измерений) или «U» (больше верхнего предела измерений)

string

1

51

ПНСТ 995—2024

В дополнение к кодам 'Е', 'U', 'L' могут использоваться другие коды, описанные в ссылочном экземпляре ресурса CodeMap, в котором должна быть только одна группа, не содержащая ни числовые значения, ни коды 'Е', 'U', 'L' (и для безопасности 'е', 'u', Т). Дополнительные коды не должны содержать пробелы и escape-последовательности и не должны начинаться с цифр.

Привязки к наборам значений описаны в таблице 106.

Таблица 106 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

SampledData.interval-Unit

http://unitsofmeasure.org

Расширяемая

Единицы измерения интервала между считываниями

9.3.18 Тип данных Timing

Тип данных Timing предназначен для представления списка повторяющихся событий. Правила повторения могут задаваться простыми кодом, указанным в поле code, или конструкцией типа Repeat, указанной в поле repeat. Общие сведения о типе данных Timing приведены в таблице 107, а состав элементов — в таблице 108.

Таблица 107 — Общие сведения о типе данных Timing

Имя

Описание

Связи с другими элементами модели

Timing

Расписание описывает наступление события, которое может совершаться несколько раз. Расписания используются, чтобы указать, когда события ожидаются или требуются, и могут также использоваться для представления сводки предшествующих или текущих событий. Определение компонентов типа данных Timing дается для «будущих» событий, но они могут использоваться и для описания истории или текущих событий.

Расписание Timing может быть списком событий и/или критериями наступления событий, которые могут быть представлены в структурированной форме и/или в форме кода. Если предусмотрены и событие, и спецификация повторения, то список событий следует понимать, как интерпретацию информации повторяющейся структуры.

Примечание — Тип данных Timing допускает модифицирующие расширения modifierExtension

Отношение генерализации от Timing к BackboneElement

Таблица 108 — Состав элементов типа данных Timing

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

modifierExtension

Модифицирующее расширение, которое нельзя игнорировать, даже если оно не распознано

Extension

0..*

Собственные элементы

event

Моменты наступления события

dateTime

0..*

repeat

Правила повторения события

Element

0..1

repeat.bound[x]

Продолжительность расписания, где [х] может принимать значения Duration|Range|Period

0..1

repeat.boundsDuration

Продолжительность

Duration

52

Окончание таблицы 108

ПНСТ 995—2024

Имя

Описание

Тип

Кратность

repeat.boundsRange

Интервал дат и времени

Range

repeat.boundsPeriod

Период времени

Period

repeat.count

Число повторений

positivelnt

0..1

repeat.countMax

Максимальное число повторений

positivelnt

0..1

repeat.duration

Длительность события

decimal

0..1

repeat.durationMax

Максимальная длительность события

decimal

0..1

repeat.durationllnit

Единица длительности события: s (секунда) | min (минута) | h (час) | d (сутки) | wk (неделя) | то (месяц) | а (год)

code

0..1

repeat.frequency

Частота повторения события в заданном периоде, то есть событие повторяется frequency раз в заданном периоде

positivelnt

0..1

repeat.frequencyMax

Максимальная частота повторения в заданном периоде

positivelnt

0..1

repeat.period

Период, в течение которого событие повторяется frequency раз

decimal

0..1

repeat.periodMax

Максимальный период, в течение которого событие повторяется frequency раз

decimal

0..1

repeat.periodUnit

Единица длительности периода: s (секунда) | min (минута) | h (час) | d (сутки) | wk (неделя) | то (месяц) | а (год)

code

0..1

repeat.dayOfWeek

День недели — одно из значений mon | tue | wed | thu | fri | sat | sun

code

0..*

repeat.timeOfDay

Время наступления события в течение дня

time

0..*

repeat.when

Код периода времени повторения события

code

0..*

repeat.offset

Минуты от заданного периода времени повторения события (до или после)

unsigned-lnt

0..1

code

Правило повторения в кодированной форме (например, BID | TID | QID | AM | PM | QD | QOD | +)

Codeable-Concept

0..1

Ограничения типа данных Timing описаны в таблице 109. Привязки к наборам значений описаны в таблице 110.

Таблица 109 — Ограничения типа данных Timing

Идентификатор

Вид

Путь

Описание

Выражение

tim-1

Правило

Timing, repeat

Если элемент duration присутствует, то элемент durationunit также должен присутствовать

duration. empty() or

durationUnit.exists()

tim-2

Правило

Timing, repeat

Если элемент period присутствует, то элемент periodunit также должен присутствовать

period. empty() or peri-odUnit.exists()

tim-4

Правило

Timing, repeat

Если элемент duration присутствует, то он должен иметь неотрицательное значение

duration.exists()

implies duration >= 0

tim-5

Прави

ло

Timing, repeat

Если элемент period присутствует, то он должен иметь неотрицательное значение

period.exists() implies period >= 0

53

ПНСТ 995—2024

Окончание таблицы 109

Идентификатор

Вид

Путь

Описание

Выражение

tim-6

Правило

Timing, repeat

Если элемент periodMax присутствует, то элемент period также должен присутствовать

periodMax.empty() or period. exists()

tim-7

Правило

Timing, repeat

Если элемент durationMax присутствует, то также должен присутствовать элемент duration

durationMax. empty() or duration.exists()

tim-8

Правило

Timing, repeat

Если элемент countMax присутствует, то элемент count также должен присутствовать

countMax.empty() or count.exists()

tim-9

Правило

Timing, repeat

Если элемент offset присутствует, то элемент when также должен присутствовать и не принимать значения С (постоянно) | CM | CD | CV

offset.empty() or (when.exists() and when.select($this in (‘C’ | ‘CM’ | ‘CD’ | ‘CV’)).allFalse())

tim-10

Правило

Timing, repeat

Элементы timeOfDay и when взаимно исключаемые

timeOfDay.emptyO or when.empty()

Таблица 110 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

Timing.repeat, durationllnit

http://hl7.org/fhir/ValueSet/ units-of-time

Обязателен

Единицы времени

Timing.repeat.day-OfWeek

http://hl7.org/fhir/ValueSet/ days-of-week

Обязателен

Дни недели

Timing.repeat.when

http://hl7.org/fhir/ValueSet/ event- timing

Обязателен

Реальные события, к которым привязано расписание

Timing.code

http://hl7.org/fhir/ValueSet/ timing-abbreviation

Предпочтителен

Аббревиатуры частоты событий

9.3.19 Тип данных Signature

9.3.19.1 Общие сведения и состав элементов

Тип данных Signature предназначен для представления подписи, в том числе образца собственноручной подписи, в виде графического файла или сертификата усиленной квалифицированной электронной подписи. Общие сведения о типе данных Signature приведены в таблице 111, а состав элементов — в таблице 112.

Таблица 111 — Общие сведения о типе данных Signature

Имя

Описание

Связи с другими элементами модели

Signature

Электронное представление подписи и ее контекста. Подпись может быть криптографической (XML DigSig или JWS), с помощью которой можно обеспечить неоспоримость, или быть графическим образом, представляющим подпись или процесс подписания

Отношение генерализации от Signature к DataType

Таблица 112 — Состав элементов типа данных Signature

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

54

Окончание таблицы 112

ПНСТ 995—2024

Имя

Описание

Тип

Кратность

Собственные элементы

type

Код причины подписи. Он может быть явно включен как часть подписи и использоваться для учетности различных действий с документом

Coding

0..*

when

Момент создания подписи

instant

0..1

who

Ссылка на лицо, организацию или прибор, поставивший подпись. Допустимые типы ссылочных ресурсов: Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization

Reference

0..1

onBehalfOf

Ссылка на лицо, организацию или прибор, от чьего имени поставлена подпись. Допустимые типы ссылочных ресурсов: Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization

Reference

0..1

targetFormat

Технический формат подписанного содержания ресурса (mime)

code

0..1

sigFormat

Технический формат подписи (mime). Важными типами mime являются application/signature+xml для XMLdSig, application/jose для JWS и image/* для графического образа подписи

code

0..1

data

Содержание подписи (XML DigSig, JWS, графический образ и т. д.).

base64Binary

0..1

9.3.19.2 Электронная подпись XML

Если для электронной подписи используется спецификация XML Digital Signature (contentType = application/signature+xml), то применяются следующие требования:

а) элемент Signature.data содержит представление подписи в формате base64;

б) электронная подпись является отсоединенной;

в) для целей длительного хранения электронная подпись должна соответствовать спецификации XAdES-X-L, добавляющей штамп даты и времени, цепочку сертификатов и результаты проверки отзыва сертификатов.

Подпись экземпляра ресурса применяется к канонической форме XML-представления его содержания.

9.3.19.3 Электронная подпись JSON

Если для электронной подписи используется спецификация JSON Digital Signature (contentType = application/jose), то применяются следующие требования:

а) элемент Signature.data содержит представление подписи JWS-Signature [31] в формате base64;

б) электронная подпись является отсоединенной;

в) для целей длительного хранения электронная подпись должна соответствовать спецификации JAdES-XL, добавляющей штамп даты и времени, цепочку сертификатов и результаты проверки отзыва сертификатов.

Подпись экземпляра ресурса применяется к канонической форме JSON-представления его содержания.

9.3.19.4 Каноническое представление содержания экземпляра ресурса в формате XML

Каноническое представление содержания экземпляра ресурса в формате XML должно удовлетворять следующим требованиям:

а) в значениях атрибутов и в XHTML представлении элемента не должно быть иных пробельных символов кроме пробела. При этом пробелы не должны быть кратными;

б) для пространств имен FHIR и XHTML должны использоваться пространства имен по умолчанию;

в) все комментарии должны быть опущены;

55

ПНСТ 995—2024

г) в escape-последовательностях должны использоваться исходные символы Unicode (например, &#39; вместо &quot;);

д) должна использоваться инструкция <?xml version=» 1.0» encoding=»UTF-8»?>;

е) должен быть применен метод каноникализации Canonical XML 1.1 (http://www.w3.org/TR/xml-c14n11).

Данный метод канонического представления идентифицируется, используя URI http://hl7.org/fhir/ canonicalization/xml. В дополнение к нему определены методы канонического представления, приведенные в таблице 113.

Таблица 113 —Дополнительные методы канонического представления содержания экземпляра ресурса в формате XML

URI

Дополнительная обработка содержания

http://hl7.org/fhir/canonicalization/ xml#data

Перед подписью должно быть удалено текстовое представление содержания ресурса (элемент text)

http://hl7.org/fhir/canonicalization/ xml#static

Кроме текстового представления содержания ресурса (элемент text) удаляются метаданные (элемент meta). Это позволяет сохранять целостность подписи при передаче содержания на другой сервер или при выполнении рабочих процессов, изменяющих значения тегов в метаданных

http://hl7.org/fhir/canonicalization/ xml#narrative

В содержании оставляются только элементы id и text (то есть подписывается только человеко-читаемое содержание)

http://hl7.org/fhir/canonicalization/ xml#document

В контейнере Bundle типа document подписывается все внутреннее содержание, кроме Bundle.id и Bundle.metadata (чтобы сохранять целостность подписи при передаче документа на другой сервер)

9.3.19.5 Каноническое представление содержания экземпляра ресурса в формате JSON

Каноническое представление содержания экземпляра ресурса в формате JSON должно удовлетворять следующим требованиям:

а) в значениях свойств объектов и в XHTML представлении объекта Narrative не должно быть иных пробельных символов кроме пробела. При этом пробелы не должны быть кратными;

б) внутри каждого объекта свойства сортируются по алфавиту.

Данный метод канонического представления идентифицируется, используя URI http://hl7.org/fhir/ canonicalization/json. В дополнение к нему определены методы канонического представления, приведенные в таблице 114.

Таблица 114 — Дополнительные методы канонического представления содержания экземпляра ресурса в формате JSON

URI

Дополнительная обработка содержания

http://hl7.Org/fhir/canonicalization/json#data

Перед подписью должно быть удалено текстовое представление содержания ресурса (элемент text)

http://hl7.Org/fhir/canonicalization/json#static

Кроме текстового представления содержания ресурса (элемент text) удаляются метаданные (элемент meta). Это позволяет сохранять целостность подписи при передаче содержания на другой сервер или при выполнении рабочих процессов, изменяющих значения тегов в метаданных

http://hl7.Org/fhir/canonicalization/json#narrative

В содержании оставляются только элементы id и text (то есть подписывается только человеко-читаемое содержание)

http://hl7.Org/fhir/canonicalization/json#document

В контейнере Bundle типа document подписывается все внутреннее содержание, кроме Bundle.id и Bundle.metadata (чтобы сохранять целостность подписи при передаче документа на другой сервер)

56

ПНСТ 995—2024

9.4 Специальные типы данных

9.4.1 Общие сведения

Специальные типы данных используются для вспомогательных целей. Диаграмма классов, описывающая эти типы данных, показана на рисунке 15.

Рисунок 15 — Специальные типы данных

Перечень специальных типов данных приведен в таблице 115.

Таблица 115 — Специальные типы данных

Имя

Описание

Пункт

BackboneType

Базовый тип вспомогательных классов

9.4.2

CodeableReference

Ссылка на кодированное понятие или экземпляр ресурса

9.4.3

DataType

Базовый тип данных

9.4.4

Dosage

Дозировка

9.4.5

ElementDefinition

Определение элемента типа данных или ресурса

9.4.6

Extension

Дополнительная информация, не являющаяся частью базового определения ресурса или типа данных

9.4.7

Meta

Метаданные экземпляра ресурса

9.4.8

Narrative

Форматированный текст с описанием содержания экземпляра ресурса

9.4.9

Reference

Ссылка на экземпляр ресурса

9.4.10

xhtml

Текст с упрощенной разметкой xhtml

9.4.11

57

ПНСТ 995—2024

9.4.2 Базовый тип вспомогательных классов BackboneType

Базовый тип вспомогательных классов BackboneType является детализацией типа данных Element, добавляющей к его свойствам еще одно — modifierExtension (модифицирующее расширение). Общие сведения о типе данных BackboneType приведены в таблице 116, а состав элементов — в таблице 117.

Таблица 116 — Общие сведения о типе данных BackboneType

Имя

Описание

Связи с другими элементами модели

BackboneType

Базовое определение комплексных типов данных, которые могут содержать модифицирующие расширения

Отношение генерализации от BackboneType к Element

Таблица 117 — Состав элементов типа данных BackboneType

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

modifierExtension

Расширение, которое нельзя игнорировать, даже если оно не распознано

Extension

0..*

9.4.3 Тип данных CodeableReference

Элемент записи электронной медицинской карты может представлять собой ссылку на конкретный экземпляр данных или на общее понятие. Например, лекарственный препарат может быть прописан в связи с головной болью, что указано кодом R51 классификации МКБ-10, или же в связи с результатами исследования, содержащимися в конкретном экземпляре ресурса Observation (исследование).

Возможность такой вариабельности предусмотрена в типе данных CodeableReference (ссылка на кодированное понятие или экземпляр ресурса). Общие сведения о типе данных CodeableReference приведены в таблице 118, а состав элементов — в таблице 119.

Таблица 118 — Общие сведения о типе данных CodeableReference

Имя

Описание

Связи с другими элементами модели

CodeableReference

Ссылка на кодированное понятие или экземпляр ресурса

Отношение генерализации от CodeableReference к DataType

Таблица 119 — Состав элементов типа данных CodeableReference

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

concept

Кодированное понятие

CodeableConcept

0..1

reference

Ссылка на экземпляр ресурса

Reference

0..1

58

ПНСТ 995—2024

Если кодированное понятие и ссылка на экземпляр ресурса присутствуют одновременно, то они должны быть согласованы друг с другом. Например, если в concept.coding.code указан код головной боли, то ссылочный экземпляр ресурса должен описывать головную боль.

9.4.4 Базовый тип данных DataType

Тип данных DataType является базовым для всех типов данных. Общие сведения о базовом типе данных DataType приведены в таблице 120, а состав элементов — в таблице 121.

Таблица 120 — Общие сведения о типе данных DataType

Имя

Описание

Связи с другими элементами модели

DataType

Базовое определение типов данных

Отношение генерализации от DataType к Element

Таблица 121 — Состав элементов типа данных DataType

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

9.4.5 Тип данных Dosage

Тип данных Dosage используется для представления структурированных сведений о дозировке, указываемой в рецептах и описаниях лекарственных средств. Общие сведения о типе данных Dosage приведены в таблице 122, состав элементов представлен на рисунке 16 и в таблице 123. Ограничения типа данных Dosage описаны в таблице 124.

Таблица 122 — Общие сведения о типе данных Dosage

Имя

Описание

Связи с другими элементами модели

Dosage

Дозировка

Отношение генерализации от Dosage к BackboneType

59

ПНСТ 995—2024

Рисунок 16 — Тип данных Dosage

Таблица 123 — Состав элементов типа данных Dosage

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

modifierExtension

Модифицирующее расширение, которое нельзя игнорировать, даже если оно не распознано

Extension

0..*

Собственные элементы

sequence

Порядковый номер инструкции по дозировке

integer

0..1

text

Человеко-читаемое описание дозировки (указанное в части Signature рецепта)

string

0..1

additionallnstruction

Дополнительная инструкция или указание пациенту, например, «принимать с едой»

Codeab-leConcept

0..*

patientinstruction

Описание применения, рассчитанное на пациента

string

0..1

timing

Кратность приема

Timing

0..*

60

Окончание таблицы 123

ПНСТ 995—2024

Имя

Описание

Тип

Кратность

asNeeded

Признак «принимать при необходимости»

boolean

0..*

asNeededFor

Принимать в случае ...

Codeable-Concept

0..*

site

Место применения

Codeable-Concept

0..1

route

Путь введения

Codeable-Concept

0..1

method

Способ приема

Codeable-Concept

0..1

doseAndRate

Принятое количество лекарства, назначенное количество или типичное количество

Element

0..*

doseAndRate.type

Вид дозы или скорости

Codeable-Concept

0..1

doseAndRate.dose[x]

Количество лекарства в одной дозе. Допустимые типы данных: Range|SimpleQuantity

*

0..1

doseAndRate.rate[x]

Количество лекарства за единицу времени (например в сутки). Допустимые типы данных: Ratio|Range|SimpleQuantity

*

0..1

maxDosePerPeriod

Максимальное количество лекарства в единицу времени

Ratio

0..*

maxDosePer-

Administration

Максимальная доза за прием

Simple-Quantity

0..1

maxDosePerLifetime

Максимальная доза за жизнь

Simple-Quantity

0..1

Таблица 124 — Ограничения типа данных Dosage

Идентификатор

Вид

Путь

Описание

Выражение

dos-1

Правило

Базовый

Элемент AsNeededFor может присутствовать только в том случае, если элемент AsNeeded пуст или имеет значение true

asNeeded For.empty() or asNeeded.empty() or asNeeded

9.4.6 Тип данных ElementDefinition

9.4.6.1 Общие сведения, состав, ограничения и привязки к наборам значений

Тип данных ElementDefinition используется в ресурсе StructureDefinition для формализованного описания элементов типов данных, ресурсов и расширений. Общие сведения о типе данных ElementDefinition приведены в таблице 125, состав элементов представлен на рисунке 17 и в таблице 126.

Таблица 125 — Общие сведения о типе данных ElementDefinition

Имя

Описание

Связи с другими элементами модели

ElementDefinition

Ссылка на экземпляр ресурса

Отношение генерализации от ElementDefinition к BackboneType

61

ПНСТ 995—2024

dass ElementDeflnMon /

BackboneType

ElementDefinition

♦base

Element

Base

62

+ path: string

+ label: string [0..1]

+ short: string [0..1]

+ definition: markdown [0..1]

+ comment: markdown [0..1]

♦ requirements: markdown [0 -1]

+ alias: string [0..*]

+ condition: id [0..*]

+ mustSupport: boolean [0..1]

+ isSummary: boolean [0..1]

«Binding»

+ representation: code [0..*]

+ code: Coding [0..*]

«Constraint»

+ sliceName: string

+ slicelsConstraining: boolean [0..1]

+ min: unsignedlnt [0..1]

+ max: string [0..1]

+ contentReference: uri [0..1]

+ meaningWhenMissing: markdown [0„1]

♦ orderMeaning: string [0..1]

+ maxLength: integer [0..1]

+ mustHaveValue: boolean [0..1]

+ isModifier: boolean [0..1]

+ isModifierReason: string [0..1]

«TypeChoice, Constraint»

+ defaultValue[x] [0..1]

+ fixed[x] [0..1]

+ pattem[x] [0..1]

+ minValue[x] [0..1]

+ maxValue[x] [0..1]

«RefTarget, Constraint»

+ valueAltematives: canonical

+ path: string

+ min: unsignedlnt

+ max: string

Element

♦slicing.

0..1

+type

o..*

♦exam pieifO..*

Element

Example [Q

+ label: string «TypeChoice»

+ value[x]

♦binding

Element

ElementDefinition Binding

«Binding»

+ strength: code «Constraint»

+ description: string [0..1]

«RefTarget, Constraint»

+ valueSet: canonical [0..1]

♦additionallo..*

Bement

Additional

+ documentation: markdown [0..1]

+ shortDoco: string [0..1]

+ usage: UsageContext [0..*]

+ any; boolean

«Binding»

+ purpose: code

«RefT arget»

+ valueSet: canonical

Slicing

+ description: string [0..1] «Constraint»

+ ordered: boolean [0..1] «Binding, Constraint»

+ rules: code

Element

♦discriminator 0..*

Bement Discriminator

Mapping

+ language: code [0..1]

+ map: string

+ comment: string [0.. 1 ] «Constraint»

+ identity: id

+ path: string «Binding»

+ type: code

Element

Ifo*

+ profile: canonical [0..*] versioning: code [0..1]

«Constraint» code:uri

«RefT arget»

targetProfile: canonical [0..*]

«Binding, Constraint» aggregation: code [0..*]

Constraint

Element

+ requirements: string [0..1]

+ human: string

«Constraint»

+ ley: Id

♦ suppress: boolean [0..1]

+ expression: string [0..1]

«Binding, Constraint»

+ severity: code

«RefTarget»

+ source: canonical [0..1]

Рисунок 17 — Тип данных ElementDefinition

Таблица 126 — Состав элементов типа данных ElementDefinition

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

Унаследованные элементы

id

Логический идентификатор элемента данных

id

0..1

extension

Дополнительное содержание, определенное при реализации

Extension

0..*

modifier-Extension

Модифицирующее расширение, которое не может быть проигнорировано

Extension

0..*

Собственные элементы

path

Путь к данному элементу, начиная от имени ресурса или расширения и заканчивая данным элементом. Компоненты пути разделяются точками

string

1

representation

Код, определяющий способ представления данного элемента в экземплярах, в случае отклонения от обычной ситуации. Допустимые значения: xmlAttr (элемент представляется в виде атрибута XML) | xmlText (элемент представляется в виде текста атрибута XML — только для простых типов данных) | typeAttr (тип элемента указывается с помощью xsi:type) | cdaText (в данной версии модели не используется) | xhtml (элемент представляется с помощью упрощенного XHTML)

code

0..*

sliceName

Имя варианта определения данного элемента, если вариабельность имеет место. Имя должно иметь формат токена без точек или пробелов. Оно должно быть уникальным и обозначать конкретный набор ограничений, применяемых к данному элементу. Это имя используется для назначения имен вариантам определения данного элемента

string

0..1

slicels-Constraining

Значение true указывает, что это определение варианта ограничивает определение варианта с тем же именем в наследуемом профиле. Значение false указывает, что это определение варианта не переопределяет определение варианта в наследуемом профиле. Если значение отсутствует, то вариант может переопределять или не переопределять вариант в наследуемом профиле в зависимости от значения sliceName

boolean

0..1

label

Предпочтительное имя элемента для визуализации его значения

string

0..1

code

Код конкретной терминологии, имеющий то же значение, что и данный элемент

Coding

0..*

slicing

Указывает, что определение элемента имеет несколько вариантов (например, применяются несколько разных ограничений к одному и тому же элементу базовой структуры). Вариабельность может задаваться для любого элемента, имеющего максимальную кратность "*" в базовом ресурсе, или для любого элемента, тип которого может выбираться из нескольких вариантов. Описания вариантов следуют за данным элементом и имеют тот же самый путь path, пока не встретится более короткий путь (завершающий список вариантов)

Element

0..1

63

ПНСТ 995—2024

Продолжение таблицы 126

Имя

Описание

Тип данных

Кратность

slicing, discriminator

Указывает, каким образом различаются варианты определения элемента данных

Element

0..*

slicing, discriminator, type

Способ различения вариантов определения элемента. Допустимые значения: value (по значению элемента) | exists (по существованию элемента) | type (по типу элемента) | profile (по соответствию элемента определенному профилю) | position (по индексу экземпляра элемента)

code

1

slicing, discriminator, path

Выражение FHIRPath, использующее простое подмножество языка и идентифицирующее элемент, на котором основано различение вариантов

string

1

slicing, description

Человеко-читаемый текст, описывающий вариабельность. Если дискриминатор не указан, наличие этого текста обязательно

string

0..1

slicing, ordered

Признак соответствия порядка следования вариантов в определении элемента и в экземпляре ресурса

boolean

0..1

slicing.rules

Разрешены ли дополнительные варианты, явно не описанные в спецификации. Допустимые значения: closed (дополнительные варианты запрещены) | орел (дополнительные варианты возможны) | openAtEnd (дополнительные варианты возможны в конце списка)

code

1

short

Краткое описание элемента (например, для представления в автоматически генерируемых отчетах)

string

0..1

definition

Полное описание семантики элемента данных. Если элемент произведен из существующего элемента (например, с помощью ограничения), то полное описание данного элемента ДОЛЖНО быть совместимо с полным описанием базового элемента, но при этом должно передавать специфику элемента в конкретном контексте использования ресурса

markdown

0..1

comment

Пояснения к использованию элемента данных, например, как использовать его значение, когда его следует исключить и т.д.

markdown

0..1

requirements

Это свойство предназначено для прослеживания того, почему элемент был создан и почему к нему применяются ограничения. Его можно использовать для ссылок на спецификацию, описывающую требования к структуре данного элемента

markdown

0..1

alias

Другое имя, употребляемое для идентификации данного элемента в иной системе

string

0..*

min

Минимальная кратность элемента в экземпляре

unsigned-lnt

0..1

max

Максимальная кратность элемента в экземпляре

string

0..1

64

Продолжение таблицы 126

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

base

Информация о базовом определении элемента. Если определение элемента не является оригинальным (например, представляет собой ограничение другого типа данных или является потомком типа), то содержание определения может отличаться от базового определения. Если элемент оригинален, то здесь указывается сам элемент

Element

0..1

base.path

Путь, идентифицирующий базовый элемент и представляющий собой список имен потомков, разделенных точками. Список начинается с имени ресурса или расширения

string

1

base.min

Минимальная кратность базового элемента, указанная в его определении

unsigned-lnt

1

base.max

Максимальная кратность базового элемента, указанная в его определении

string

1

content- Reference

Указывает другой элемент в определении ресурса, чей контекст применим к данному элементу

uri

0..1

type

Тип данных, который может иметь данный элемент

Element

0..*

type.code

Адрес URL определения типа данных или ресурса, используемого в качестве типа данных данного элемента. Адрес должен быть относителен к http://hl7.org/fhir/StructureDefinition, например "string" означает ссылку на http://hl7.org/fhir/ StructureDefinition/string

uri

1

type, profile

Идентификация профиля или руководства по реализации, которому должен соответствовать тип данного элемента. Если указано несколько профилей, то достаточно соответствия одному из них

canonical

0..*

type.target-Profile

Идентификация целевого профиля (только для элементов типа Reference, содержащих ссылку на другой ресурс, или типа canonical, ссылающихся на определение другой структуры)

canonical

0..*

type, aggregation

Способ агрегирования с целевым экземпляром ресурса. Допустимые значения: contained (ссылается на вложенный экземпляр ресурса) | referenced (ссылается на внешний экземпляр ресурса) | bundled (ссылается на экземпляр ресурса, вложенный в тот же контейнер Bundle)

code

0..*

type.versioning

Версионность ссылки на экземпляр ресурса. Допустимые значения: either (может включать или не включать версию) | independent (версия не включается)) | specific (версия включается)

code

0..1

defaultValue[x]

Значение элемента по умолчанию

*

0..1

meaningWhen-Missing

Трактовка отсутствия данного элемента

markdown

0..1

65

ПНСТ 995—2024

Продолжение таблицы 126

Имя

Описание

Тип данных

Кратность

orderMeaning

Если свойство присутствует, то оно указывает, что порядок следования экземпляров повторяющегося элемента существенен, и описывает его смысл. Его отсутствие означает, что порядок следования экземпляров не имеет значения

string

0..1

fixed [х]

Указывает значение, которое должен иметь элемент в экземпляре. При сравнении незначащие пробелы игнорируются, и все компоненты значения должны совпадать (сравнение чувствительно к регистру). Отсутствующий компонент должен отсутствовать и в экземпляре

0..1

pattern [х]

Указывает образцовое значение, которое должно присутствовать в экземпляре элемента, то есть любое значение, указанное в pattern, должно присутствовать в экземпляре. Указание pattern является «ограничением по образцу». Если pattern[x] используется для ограничения элемента с простым типом данных, то указанное в нем значение должно в точности совпадать со значением экземпляра элемента. Если pattern[x] используется для ограничения элемента, содержащего массива значений, то каждое значение, указанное в массиве pattern[x], должно (рекурсивно) совпадать по крайней мере с одним значением в массиве, содержащемся в элементе. Если pattern[x] используется для ограничения комплексного объекта, то каждое свойство, указанное в pattern[x], должно присутствовать в комплексном объекте и иметь (рекурсивно) то же самое значение. Если pattern[x] указано для повторяющегося элемента, то его значение применяется к каждому повторению элемента

0..1

example

Пример значения данного элемента

Element

0..*

example.label

Описание назначения примера

string

1

example. value[x]

Значение типа [х], допустимого для данного элемента, предлагаемое в качестве примера

*

1

minValue[x]

Минимальное значение элемента

*

0..1

maxValue[x]

Максимальное значение элемента

*

0..1

maxLength

Максимальное число символов, допускаемое для значения элемента со строковым типом данных

integer

0..1

condition

Ссылка на инвариант, описывающий дополнительные требования к кратности элемента или к его значению

id

0..*

constraint

Формальное ограничение, например, совместимость наличия элемента с наличием другого элемента, и иное ограничение, которое может быть вычислено в контексте экземпляра элемента

Element

0..*

constraint.key

Идентификатор ограничения, наложенного на кратность элементов

id

1

constraint, requirements

Описание причины ограничения

string

0..1

66

Продолжение таблицы 126

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

constraint, severity

Степень влияния ограничения на прикладную обработку. Допустимые значения: error (ошибка) | warning (предупреждение)

code

1

constraint, suppress

Указывает, что при профилировании элемента ограничение с кодом степени warning (предупреждение) может быть исключено

boolean

0..1

constraint, human

Текст сообщения о нарушении данного ограничения

string

1

constraint, expression

Выражение на языке FHIRPath, позволяющее проверить выполнение ограничения

string

0..1

constraint, source

Ссылка на источник ограничения

canonical

0..1

mustHave-Value

Указывает, что элемент с простым типом данных должен иметь значение, даже если имеет расширение

boolean

0..1

value-Alternatives

Расширение, которое может заменить значение элемента с простым типом данных

canonical

0..*

mustSupport

Значение true указывает, что потребитель или поставщик содержания экземпляра ресурса должен обеспечить какую-либо содержательную поддержку данного элемента. Значение false указывает, что присваивание значения оставлено на усмотрение поставщика, а использование — на усмотрение потребителя

boolean

0..1

isModifier

Значение true указывает, что значение данного элемента влияет на интерпретацию элемента или ресурса, который его содержит, и значение данного элемента не может игнорироваться. Обычно указывается для элементов, характеризующих статус экземпляра ресурса, квалифицирующих его или отрицающих его содержание

boolean

0..1

isModifier-Reason

Разъяснение причины, по которой значение данного элемента влияет на интерпретацию содержащего его ресурса или элемента

string

0..1

isSummary

Должен ли данный элемент включаться в результат запроса, в котором параметр _summary=true.

boolean

0..1

binding

Привязка кодируемого значения элемента (code, Coding, CodeableConcept, Quantity) или элемента типа string либо uri к набору значений

Element

0..1

binding, strength

Степень обязательности применения данной привязки к набору значений. Допустимые значения: обязателен | расширяемый (набор может быть расширен) | предпочтительный | пример (в качестве примера)

code

1

binding, description

Наименование набора значений

string

0..1

binding. valueSet

Ссылка на определение набора значений

canonical

0..1

mapping

Указывает понятие, определенное во внешней спецификации, примерно соответствующее данному элементу

Element

0..1

67

ПНСТ 995—2024

Окончание таблицы 126

Имя

Описание

Тип данных

Кратность

mapping, identity

Ссылка на идентификатор внешней спецификации, указанный в StructureDefinition.mapping, identity

id

1

mapping, language

Идентификация синтаксиса, на котором представлено отображение mapping.map

code

0..1

mapping.map

Указание той части внешней спецификации, которая соответствует данному элементу

string

1

mapping, comment

Примечание к спецификации отображения

string

0..1

Ограничения описаны в таблице 127, привязки к наборам значений — в таблице 128.

Таблица 127 — Ограничения типа данных ElementDefinition

Идентификатор

Вид

Путь

Описание

Выражение

eld-2

Правило

Базовый

min <= max

min.emptyO or max.empty() or (max = “*’) or iif(max != '*’, min <= max.tolnteger())

eld-3

Правило

Element-Definition.

max

Кратность max должна быть числом или символом "*"

empty() or ($this = “*’) or (tolnteger() >= 0)

eld-4

Правило

Element-Definition, type

Элемент aggregation может быть указан только в том случае, если одним из разрешенных типов данных является Reference или canonical

aggregation. empty() or (code = ‘Reference’) or (code = ‘canonical’) or (code = 'Co-deableReference’)

eld-5

Правило

Базовый

Если в определении элемента указан элемент contentReference, то в нем нельзя указать тип type, значение по умолчанию defaultvalue, фиксированное значение fixed, образцовое значение pattern, пример example, минимальное и максимальное значение minValue, maxValue, максимальную длину maxLength или привязку к набору значений binding

contentReference. empty() or (type.empty() and defaultVal-ue.emptyO and fixed.empty() and pattern.empty() and example. empty() and minValue.empty() and maxValue. empty() and maxLength. empty() and binding.empty())

eld-6

Правило

Базовый

Фиксированное значение fixed можно указать только в том случае, если элемент имеет единственный тип

fixed.empty() or (type.count()

<= 1)

eld-7

Правило

Базовый

Образцовое значение pattern можно указать только в том случае, если элемент имеет единственный тип

pattern.empty() or (type. count() <= 1)

68

Продолжение таблицы 127

ПНСТ 995—2024

Идентификатор

Вид

Путь

Описание

Выражение

eld-8

Правило

Базовый

Образцовое значение pattern и фиксированное значение fixed исключают друг друга

pattern.empty() or fixed.emp-ty()

eld-11

Правило

Базовый

Привязка к набору значений binding может быть указана только для элементов с кодируемыми значениями или имеющими тип string либо uri

binding.empty() or type.code. empty() or type.code.con-tains(":") or type.select((code = ‘code’) or (code = ‘Coding’) or (code=’Codeable-Con-cept’) or (code = ‘Quantity’) or (code = ‘string’) or (code = ‘uri’) or (code = ‘Dura-tion’)). exists()

eld-12

Правило

Element-Definition, binding

Значение свойства valueSet должно начинаться с http://, или https://, или urn:, или #

valueSet.exists() implies (val-ueSet.startsWith(‘http:’) or valueSet.startsWith('https’) or ueSet.startsWith(‘urn:’) or val-ueSet.startsWith(‘#’))

eld-13

Правило

Базовый

Значения свойства code типов type, допускаемых для данного элемента, не должны повторяться

type.select(code).isDistinct()

eld-14

Правило

Базовый

Значения свойства key ограничений constraint не должны повторяться

constraint.select(key). isDistinct()

eld-15

Правило

Базовый

Значение по умолчанию default и свойство семантики отсутствия элемента meaningWhenMissing исключают друг друга

defaultvalue.empty() or meaningWhenMissing. empty()

eld-16

Правило

Базовый

Значение имени варианта sliceName должно состоять из допустимых токенов, разделенных символом 7"

sliceName.empty() or sliceName.matches(‘A[a-zA-Z0-9\V\\-_\\[\\]\\@]+$’)

eld-17

Правило

Element-Definition, type

Свойство целевого профиля targetProfile допустимо только в том случае, если элемент имеет тип Reference, CodeableReference или canonical

(code=’Reference’ or code = ‘canonical’ or code = ‘CodeableReference’) or targetProfile. empty()

eld-18

Правило

Базовый

Если признак модификации семантики isModifier равен true, то должна быть указана причина модификации modifierReason

(isModifier.exists() and isModifier) implies isModifier-Reason.exists()

69

ПНСТ 995—2024

Окончание таблицы 127

Идентификатор

Вид

Путь

Описание

Выражение

eld-19

Правило

Базовый

Имя элемента не должно содержать определенные специальные символы

path.matches(‘[A\ \s\\.,:;\\\’»\V|?!@#$%&*()\\ [\\]{}]{1.64}(\\.

[A\\s\\.,: ;\\\’ »\V|?! @#$%&*()\\ [\\]{}]{1.64}(\\

[x\\])?(\\:[A\\s\\.]+)?)*’)

eld-20

Правило

Базовый

Рекомендуется, чтобы имя элемента состояло из букв латинского алфавита и цифр, а его длина не превышала 64 символа, иначе некоторые генераторы программного кода могут возвращать ошибки

path.matches(‘[A-Za-z] [A-Za-z0-9]*(\\.[a-z] [A-Za-z0-9]*(\\[x])?)*’)

eld-21

Правило

Element-Definition, constraint

Рекомендуется, чтобы в описании ограничения (constraint) присутствовало выражение expression, иначе программные валидаторы содержания элемента не смогут проверить выполнение ограничения

expression.exists()

eld-22

Правило

Базовый

Признак ограничивающего варианта (slicelsConstraining) может быть указано только в случае, если присутствует имя варианта sliceName

slicelsConstraining. exists() implies sliceName. exists()

eld-23

Правило

Element-Definition, binding

Элемент binding должен иметь свойство valueSet или description

description.exists() or value-Set. exists()

eld-24

Рекомендация

Базовый

Вместо fixed[x] следует использовать pattern[х]

fixed.exists().not()

eld-25

Предупреждение

Базовый

Если порядок следования экземпляров элемента не имеет значения, то упорядоченность вариантов элемента не должна задаваться

orderMeaning. emp-ty() implies slicing. where(rules=’openAtEnd’ or ordered).exists().not()

eld-26

Правило

Element-Definition, constraint

Ограничение с кодом степени error (ошибка) не может быть исключено

(severity = ‘error’) implies suppress.empty()

eld-27

Предупреждение

Базовый

Идентификатор identity элемента mapping должен быть уникальным

mapping.select (identity). isDistinct()

eld-28

Правило

Базовый

Если mustHaveValue = true, то элемент valueAltematives должен отсутствовать

mustHaveValue. value implies valueAltematives. emptyQ

70

Таблица 128 — Привязки к наборам значений

ПНСТ 995—2024

Путь

Набор значений

Тип привязки

Описание

ElementDefinition. representation

http://hl7.org/fhir/ValueSet/property-representation

Обязательная

Представление свойства при сериализации

ElementDefinition. slicing.discriminator, type

http://hl7.org/fhir/ValueSet/discriminator-type

Обязательная

Интерпретация значения элемента при вычислении дискриминатора

ElementDefinition. slicing.rules

http://hl7.org/fhir/ValueSet/resource-slicing-rules

Обязательная

Интерпретация вариантов определения элемента

ElementDefinition. type.code

http://hl7.org/fhir/ValueSet/ elementdefinition-types

Расширяемая

Допустимые типы элементов

ElementDefinition. type.aggregation

http://hl7.org/fhir/ValueSet/resource-aggregation-mode

Обязательная

Варианты ссылок на экземпляр ресурса

ElementDefinition. constraint.severity

http://hl7.org/fhir/ValueSet/constraint-severity

Обязательная

Степень нарушения ограничения

ElementDefinition. mapping.language

http://hl7.org/fhir/ValueSet/mime-type

Обязательная

Тип содержания Mime — все допустимые коды из ВСР-13 (http://tools.ietf. org/html/bcp13)

9.4.6.2 Использование пути ElementDefinition.path

Свойство пути path является важнейшим свойством определения элемента. Оно не только именует элемент, но еще и указывает его место в иерархии элементов. Для каждого пути path существует только одно исходное определение. Оно является главным определением, которому должны соответствовать все другие определения с этим же значением пути path.

Каждый элемент данных определен в экземпляре ресурса StructureDefinition, описывающем тип ресурса или тип данных. Он задает идентификацию элемента и представляет контекст, в котором значение элемента обретает определенный смысл. При определении элементов должны соблюдаться следующие правила:

а) имена элементов (части пути path, разделенные символом '.') не должны содержать пробельные символы (то есть символы Unicode, помеченные как пробельные);

б) имена элементов не должны содержать символы ,:;>»/|?!@#$%Л&*()[]{};

в) имена элементов не должны содержать символы, не входящие в таблицу-ASCII;

г) длина имен элементов не должна превышать 64 символа;

д) пути path не могут подразумевать элементы, не определенные явно (например, путь a.b.c.d не может быть задан, если не определен путь а.Ь.с);

е) по соглашению каждый путь начинается с прописной буквы, но все следующие имена (кроме имен типов) должны начинаться со строчной буквы. Имена всех типов ресурсов и типов данных (кроме примитивных) должны следовать этому соглашению.

Если элемент является полиморфным (может иметь несколько типов данных), то путь должен заканчиваться символами «[х]», означающими, что имя элемента при сериализации может изменяться.

Элементы могут быть определены, используя следующие конструкции:

а) с помощью экземпляра ресурса StructureDefinition, в котором элемент kind = resource, complextype или primitive-type, а элемент derivation = specialization. Это типы ресурсов или типы данных, определенные в спецификации;

б) в элементах данных.

В экземплярах ресурса StructureDefinition, имеющих свойство derivation = ограничение (то есть в профилях ресурсов и типов данных), не разрешается указывать или определять элементы типа ElementDefinition, у которых значение пути path отсутствует в определении базового типа, от которого они произведены.

71

ПНСТ 995—2024

9.4.6.3 Идентификатор ElementDefinition.id

Кроме элемента path, каждый элемент типа ланных ElementDefinition должен содержать унаследованный элемент id (идентификатор), которому должно быть присвоено уникальное значение в соответствии со следующим алгоритмом:

а) значение id должно конструироваться как строка, разделенная точками, у которой каждый компонент соответствует токену в пути path;

б) для каждого компонента пути path в идентификаторе id используется синтаксис pathpart:slicename/reslicename (то есть компонент:имя-варианта/имя-подварианта).

При отсутствии вариантов определения элемента значение идентификатора id должно в точности совпадать со значением пути path.

9.4.6.4 Интерпретация значений элементов типа данных ElementDefinition в разных контекстах

Тип данных ElementDefinition используется в ресурсе StructureDefinition. Способ использования и интерпретации полей типа данных ElementDefinition зависит от контекста в соответствии с таблицей 129.

Таблица 129 — Интерпретация элементов типа данных ElementDefinition в зависимости от контекста

Элемент типа данных Element-Definition

Определение типа, первый элемент

Определение типа, следующие элементы

Определение ограничения типа, первый элемент

Определение ограничения типа, следующие элементы

sliceName

запрещен

запрещен

запрещен

обязателен для варианта, иначе запрещен

label

не обязателен

не обязателен

рекомендован

рекомендован

code

не обязателен

не обязателен

не обязателен

не обязателен

slicing

запрещен

запрещен

запрещен

не обязателен

short/definition

обязателен

обязателен

обязателен!

обязателен!

requirements/ comments/alias

запрещен

не обязателен

запрещен!

не обязателен!

base

snapshot: обязателен differential: не обязателен

snapshot: обязателен differential: не обязателен

обязателен

обязателен

type

обязателен

обязателен

не обязателен

не обязателен

name-Reference

запрещен

не обязателен

запрещен

не обязателен

min/max

не обязателен (irrelevant)

обязателен

не обязателен

не обязателен!

default-Value[x]

запрещен

не обязателен

запрещен

не обязателен!

meaning-WhenMissing

запрещен

не обязателен

запрещен

не обязателен!

fixed[x]

запрещен

запрещен

запрещен

не обязателен

pattern[x]

запрещен

запрещен

запрещен

не обязателен

example[x]

запрещен

не обязателен

запрещен

не обязателен

minValue[x]

запрещен

запрещен

запрещен

не обязателен

maxValue[x]

запрещен

запрещен

запрещен

не обязателен

maxLength

запрещен

запрещен

запрещен

не обязателен

mustSupport

запрещен

запрещен

не обязателен

не обязателен

isModifier

запрещен

не обязателен

запрещен

не обязателен!

72

Окончание таблицы 129

ПНСТ 995—2024

Элемент типа данных Element-Definition

Определение типа, первый элемент

Определение типа, следующие элементы

Определение ограничения типа, первый элемент

Определение ограничения типа, следующие элементы

isSummary

запрещен

не обязателен

запрещен

не обязателен!

binding

запрещен

не обязателен

запрещен

не обязателен

constraint

не обязателен

не обязателен

не обязателенД

не обязателенД

condition

запрещен

не обязателен

запрещен

не обязателенД

mapping

не обязателен

не обязателен

не обязателенД

не обязателенД

Примечания

1 Графы Определение типа: экземпляр ресурса StructureDefinition без элемента baseDefinition или имеющий поле derivationType со значением специализация.

2 Графы Определение ограничения типа: экземпляр ресурса StructureDefinition с элементом baseDefinition, имеющий поле derivationType со значением ограничение, то есть описание структуры, ограничивающей другую структуру:

3 В графах Определение ограничения типа используются следующие обозначения:

t: присутствие и семантика элемента должны совпадать с определением в базовой структуре;

ф описание элемента должно быть согласовано с описанием совпадающего элемента базовой структуры;

Д: могут быть определены дополнительные ограничения и отображения, но они не должны заменять те, что уже присутствуют в базовой структуре.

Зависимость использования пути path и типа type от контекста, в котором они используются, представлена в таблице 130.

Таблица 130 — Зависимость использования пути path и типа type от контекста использования

Контекст

Путь path (первый элемент)

Путь path (следующие элементы)

Тип type (первый элемент)

Базовое определение типа данных

Имя типа

Путь внутри типа данных

Element

Ограничение типа данных

Имя базового типа

Путь внутри типа данных

Имя базового типа

Базовое определения ресурса

Имя ресурса

Путь внутри ресурса

DomainResource или иногда Resource

Ограничение ресурса

Имя ресурса

Путь внутри ресурса (в том числе с заходом внутрь типа данных)

Имя ресурса

Базовое определение ограничения (являющего стандартным типом данных)

Extension

Extension.value[x] илиг Extension.extension

Extension

Определение пользовательского расширения

Extension

Extension.value[x] или

Extension.extension (для комплексных расширений)

Extension

9.4.6.5 Правила описания вариантов элемента (slicing)

Спецификация вариантов (slicing) допускается только при ограничении существующей структуры. Свойство slicing может использоваться только при первом вхождении элемента. Все остальные вхождения должны иметь свойство sliceName. Специальное имя ©default применяется ко всем вхождениям, которые не входят в число других вхождений.

73

ПНСТ 995—2024

Первое вхождение (для которого указана спецификация slicing) описывает набор ограничений, применяемых ко всем вхождениям. Его описание следует обычным правилам, за исключением следующего:

а) должно присутствовать свойство slicing;

б) минимальная кратность (min) указывает общее число вхождений вариантов, включая число открытой порции вариантов (отдельные варианты могут иметь другое значение минимальной кратности min).

9.4.6.6 Ограничение элементов, для которых допускается выбор типа

Элементы, для которых допускается выбор из нескольких типов, могут ограничиваться. Существует два вида ограничений таких элементов:

а) ограничение, накладываемое на элемент в целом, например, ограничение кратности или ограничения выбора типа;

б) ограничение, применяемое к элементу конкретного типа, например, привязка к набору значений (binding).

При ограничении элемента, для которого допускается выбор из нескольких типов, применяются следующие правила:

а) ограничение списка допустимых типов должно применяться к исходному элементу, в имени которого указан признак "[х]";

б) включение в спецификацию пути path элемента, специфичного для типа (например, Patient. deceased[x]:deceasedBoolean) не должно интерпретироваться как ограничение допустимых типов. Оно описывает ограничение конкретного типа элемента;

в) исходный элемент всегда должен быть представлен в полном списке элементов snapshot; варианты, специфичные для типа, представляются по мере необходимости.

9.4.6.7 Правила, применяемые к кратностям min и max

К кратностям min и max применяются следующие правила:

а) если указание базового определения StructureDefinition.baseDefinition отсутствует, то min и max должны быть указаны;

б) в элементах StructureDefinition.differential.element кратности min и max всегда необязательны; если они отсутствуют, то по умолчанию их значения совпадают с кратностями min и max, указанными для базового определения;

в) в элементах StructureDefinition.snapshot.element кратности min и max должны быть указаны;

г) если элемент необязателен (min = 0) и в его определении указан элемент fixed (фиксированное значение) или pattern (образец значения), то их значения применяются только в том случае, если элемент присутствует.

9.4.6.8 Правила, применяемые к агрегированию

Если в определении структуры присутствует поле type.aggregation (способ агрегирования с целевым ресурсом), то это определение должно относиться к элементу типа Reference или CodeableReference и в нем должен быть указан целевой профиль targetProfile.

Если в определении присутствует поле type.versioning (зависимость от версии ссылочного ресурса), то это определение должно относиться к элементу типа Reference и в экземпляре элемента ссылка должна воплощаться в соответствии со спецификацией версионности.

9.4.6.9 Отсутствующие элементы

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

Это же применимо к ситуации, когда элемент присутствует, но его значение и все его дочерние элементы отсутствуют, а наличествуют только расширения.

Однако для некоторых элементов в настоящей спецификации можно указать особую трактовку отсутствия значения. Например, если конец периода (Period.end) не указан, то это означает, что период продолжается (никакое конкретное значение по умолчанию концу периода не может быть присвоено). Для указания такой трактовки предусмотрено текстовое свойство meaningWhenMissing.

9.4.7 Тип данных Extension

Тип данных Extension может использоваться для представления дополнительной информации, не являющейся частью базового определения ресурса или типа данных. Поскольку он наследует свойство extension с типом Extension и кратностью 0..* от типа данных Element, то внутри расширения могут быть

74

ПНСТ 995—2024

другие расширения и т.д. Общие сведения о типе данных Extension приведены в таблице 131, а состав элементов — в таблице 132.

Имя value[x] означает, что тип значения определяется в зависимости от назначения расширения. В конкретном экземпляре типа данных Extension это имя должно заменяться на одно из имен, перечисленных в таблице 133.

Таблица 131 — Общие сведения о типе данных Extension

Имя

Описание

Связи с другими элементами модели

Extension

Необязательный элемент, включаемый во все типы ресурсов

Отношение генерализации от Extension к Element

Таблица 132 — Состав элементов типа данных Extension

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

url

Идентификатор структуры расширения (url, откуда можно взять описание структуры расширения)

uri

1

value[x]

Значение, передаваемое в расширении, ДОЛЖНО иметь тип из ограниченного набора типов

*

0..1

Таблица 133 — Имена типов значений, передаваемых в расширении Extension

Имя

Описание

Тип

valueBase64Binary

Двоичное содержание

base64Binary

valueBoolean

Булевское значение

boolean

valueCanonical

Канонический URL

canonical

valueCode

Перечислимый тип

code

valueDate

Дата

date

valueDateTime

Дата и время

dateTime

valueDecimal

Десятичное значение

decimal

valueld

Идентификатор

id

valuelnstant

Штамп даты и времени

instant

valueinteger

Целочисленное значение (32 бита)

integer

valuelnteger64

Целочисленное значение (64 бита)

integer64

valueMarkdown

Структурированный текст с разметкой Markdown

markdown

valueOid

Объектный идентификатор

oid

valuePositivelnt

Положительное целое число

positivelnt

valuestring

Строка

string

valueTime

Время

time

valuellnsignedlnt

Неотрицательное целое число

unsignedlnt

valueUri

Унифицированный идентификатор ресурса

uri

75

ПНСТ 995—2024

Продолжение таблицы 133

Имя

Описание

Тип

valuellrl

Унифицированный адрес ресурса

uri

valueUuid

Унифицированный уникальный идентификатор

uuid

valueAddress

Адрес

Address

valueAge

Возраст в единицах длительности

Age

valueAnnotation

Аннотация

Annotation

valueAttachment

Вложение

Attachment

valueCodeableConcept

Кодированное понятие

CodeableConcept

valueCodeableReference

Ссылка на кодированное понятие или экземпляр ресурса

CodeableReference

valueCoding

Кодированное значение

Coding

valueContactPoint

Контактная информация

ContactPoint

valueCount

Количество подсчетов (в единицах)

Count

valueDistance

Дистанция (в единицах расстояния)

Distance

valueDuration

Длительность (в единицах длительности)

Duration

valueHumanName

Именование физического лица

HumanName

valueldentifier

Идентификатор

Identifier

valueMoney

Денежная сумма

Money

valuePeriod

Период

Period

valueQuantity

Физическая величина

Quantity

valueRange

Диапазон

Range

valueRatio

Отношение

Ratio

valueRatioRange

Диапазон отношений

RatioRange

valueReference

Ссылка на другой экземпляр ресурса

Reference

valueSampledData

Серия считываний

SampledData

valueSignature

Подпись

Signature

valueTiming

Расписание

Timing

valueContactDetail

Детальная контактная информация

ContactDetail

valueDataRequirement

Общие требования к данным ресурса знаний

DataRequirement

valueExpression

Выражение на определенном языке, которое может использоваться для получения значения

Expression

valueParameterDefinition

Определение параметра

ParameterDefinition

valueRelatedArtifact

Сведения об артефакте, связанном с ресурсами знаний

RelatedArtifact

valueTriggerDefinition

Описание события, инициирующего применение ресурса знаний

TriggerDefinition

valuellsageContext

Описание контекста использования

UsageContext

valueAvailability

Сведения о доступности физического места, службы или медицинского работника

Availability

76

Окончание таблицы 133

ПНСТ 995—2024

Имя

Описание

Тип

valueExtendedContactDetail

Детальная контактная информация лица или организации

ExtendedContactDetail

valueDosage

Дозировка

Dosage

valueMeta

Метаданные ресурса

Meta

9.4.8 Тип данных Meta

Тип данных Meta описывает метаданные экземпляра ресурса. Общие сведения о типе данных Meta приведены в таблице 134, а состав элементов — в таблице 135.

Таблица 134 — Общие сведения о типе данных Meta

Имя

Описание

Связи с другими элементами модели

Meta

Набор метаданных экземпляра ресурса. Все метаданные не обязательны, но некоторые из них могут быть объявлены обязательными при профилировании или в зависимости от контекста использования

Отношение генерализации от Meta к DataType

Таблица 135 — Состав элементов типа данных Meta

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

versionld

Логический идентификатор версии экземпляра ресурса. Может быть указан при ссылке на этот экземпляр

id

0..1

lastUpdated

Точные дата и время изменения содержания экземпляра ресурса

instant

0..1

source

Идентификатор источника, послужившего основой для содержания экземпляра ресурса

uri

0..1

profile

Ссылка на определение ресурса или его профиля, представленное экземпляром ресурса StructureDefinition

canonical

0..*

security

Категория конфиденциальности экземпляра ресурса. Привязка к набору значений http://hl7.org/fhir/ValueSet/security-labels (расширяемая)

Coding

0..*

tag

Тег, применяемый к данному экземпляру ресурса. Теги предназначены для дополнительной идентификации ресурсов сторонними процессами и потоками работ. Привязка к набору значений http://hl7.org/fhir/ValueSet/common-tags (пример)

Coding

0..*

9.4.9 Тип данных Narrative

9.4.9.1 Общие требования

Тип данных Narrative (повествование) может использоваться для представления форматированного текста, описывающего содержание экземпляра ресурса. Этот текст может генерироваться по структурированному содержанию экземпляра ресурса, может расширять или дополнять это содержание, или отсутствовать. Назначение текста определяется полем status. Форматированный текст представлен в поле div с использованием упрощенного формата XHTML.

77

ПНСТ 995—2024

Общие сведения о типе данных Narrative приведены в таблице 136, а состав элементов — в таблице 137.

Таблица 136 — Общие сведения о типе данных Narrative

Имя

Описание

Связи с другими элементами модели

Narrative

Человеко-читаемое представление содержания экземпляра ресурса

Отношение генерализации от Narrative к Element

Таблица 137 — Состав элементов типа данных Narrative

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

status

Одно из значений: generated (сгенерирован) | extensions (расширен) | additional (дополнен) | empty (пуст)

code

1

div

Текст в упрощенном формате XHTML

xhtml

1

9.4.9.2 Текст в формате XHTML

Значение элемента div должно представлять собой фрагмент XHTML, в котором используются только базовое форматирование, описанное в главах 7—11 (кроме раздела 4 главы 9) и в главе 15 стандарта HTML 4.0, элементы <а> (по имени или по ссылке href), изображения и внутренние атрибуты стилей. В содержании фрагмента должны отсутствовать элементы head и body, внешние ссылки на стили, запрещенные элементы, скрипты, формы, ссылки base/link/xlink, фреймы frame и iframe, объекты и атрибуты, относящиеся к событиям (например, onClick). Эти ограничения наложены, чтобы повествовательное описание экземпляра ресурса полностью содержалось в этом экземпляре, и чтобы не было активного содержания.

В представлении XML фрагмент XHTML воспроизводится как есть, например: <narrative>

<status value="additional"/>

<div xmlns="http://www.w3.org/19 99/xhtml">

<P>

Это <1>пример</1> с использованием <b>xhtml</b> форматирования </р>

</div>

</narrative>

В представлении JSON фрагмент XHTML воспроизводится как строковое значение, например: «div»: «<div xmlns=\»http://www.w3.org/1999/xhtml\»xp>3TO <i>пример</i> c использованием <b>xhtml</b> фopмaтиpoвaния</p></div>»

В обоих представлениях должна использоваться кодировка UTF-8.

9.4.9.3 Ссылки на изображения

Текст в формате XHTML может содержать ссылки на изображения при условии, что эти изображения представлены в экземпляре ресурса в форме вложенных экземпляров ресурсов DocumentReference или Binary, например:

<Patient xmlns="http://hl7.org/fhir">

<text>

<status value="generated"/>

<div xmlns="http://www.w3.org/1999/xhtml">

<p>... <img src="#picl"/>.....</p>

</div>

78

ПНСТ 995—2024

</text>

<contained>

<Binaryxid value="picl"/><contentType value="image/gif"/xdata value="MEKH. . . . SD/Z"/x/Binary>

</contained>

</Patient>

В этом примере атрибут src содержит значение идентификатора id вложенного экземпляра ресурса Binary. Это значение указано с префиксом #, который должен предшествовать любой ссылке на вложенный экземпляр ресурса.

Чтобы обозреватель Интернет мог воспроизвести повествовательное содержание с такими ссылками, оно должно быть предварительно обработано, например, можно сохранить изображение в виде файла в месте, доступном обозревателю, и заменить <img src ...> на соответствующую ссылку.

9.4.9.4 Перекрестные ссылки внутри экземпляра ресурса

Перекрестные ссылки между повествовательным содержанием и структурированным содержанием экземпляра ресурса (в обоих направлениях) осуществляются с помощью XML-конструкции id/idref. Соответственно цель ссылки (id) должна иметь имя, уникальное в пределах полного содержания экземпляра ресурса и начинающееся с буквы или подчеркивания. Пробельные элементы внутри имени не допускаются.

В представлении JSON свойство id эквивалентно XML-атрибуту id.

9.4.9.5 Рекомендованные стили

В таблице 138 приведены рекомендованные стили разметки повествовательного содержания экземпляра ресурса.

Таблица 138 — Рекомендованные стили разметки повествовательного содержания

Имя стиля

Описание

Представление

bold

Полужирный текст

{font-weight: bold }

italics

Курсив

{font-style: italic}

underline

Подчеркнутый текст

{text-decoration: underline}

strikethrough

Перечеркнутый текст

{text-decoration: line-through }

left

Выравнивание влево

{text-align : left}

right

Выравнивание вправо

{text-align : right}

center

Выравнивание по центру

{text-align : center}

justify

Выравнивание по ширине

{text-align : justify }

border-left

Граница слева

{ border-left: 1px solid grey }

border-right

Граница справа

{ border-right: 1px solid grey}

border-top

Граница сверху

{ border-top: 1px solid grey }

border-bottom

Граница снизу

{ border-bottom: 1px solid grey}

arabic

Нумерованный список (арабские цифры: 1, 2, 3, ...)

{list-style-type: decimal}

little-roman

Нумерованный список (римские цифры в нижнем регистре: i, ii, iii, ...)

{list-style-type: lower-roman }

little-roman

Нумерованный список (римские цифры в нижнем регистре: i, ii, iii, ...)

{list-style-type: lower-roman }

little-roman

Нумерованный список (римские цифры в нижнем регистре: i, ii, iii, ...)

{list-style-type: lower-roman }

big-roman

Нумерованный список (римские цифры в верхнем регистре: I, II, III, ...)

{list-style-type: upper-roman }

79

ПНСТ 995—2024

Окончание таблицы 138

Имя стиля

Описание

Представление

little-alpha

Нумерованный список (символы в нижнем регистре: а, Ь, с, ...)

{list-style-type: lower-alpha}

big-alpha

Нумерованный список (символы в верхнем регистре: А, В, С, ...)

{list-style-type: upper-alpha }

disc

Маркированный список (сплошные кружки)

{list-style-type: disc}

circle

Маркированный список (кружки с отверстиями)

{list-style-type : circle }

square

Маркированный список (сплошные квадраты)

{list-style-type: square}

unlist

Немаркированный список

{list-style-type: none}

9.4.9.6 Связывание повествовательного и структурированного содержания

В ряде случаев может оказаться полезным указание связи между повествовательным и структурированным содержанием экземпляра ресурса. Для этой цели используются расширения extension, имеющие следующие идентификаторы uri:

а) http://hl7.org/fhir/StructureDefinition/narrativeLink — ссылка из элемента структурированного содержания на фрагмент повествовательного содержания, не имеющая определенной семантики;

б) http://hl7.org/fhir/StructureDefinition/originalText — ссылка из кодированного элемента структурированного содержания на фрагмент повествовательного содержания, имеющая семантику «текст, послуживший основанием для присваивания кода».

Пример использования расширения originalText:

{

"resourceType" : "Condition",

"text" : {

"status" : "additional",

"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">B анамнезе <span id=\"al\">астма</span></div>"

},

"code" : {

"coding" : {

"system" : "urn:oid:1.2.643.5.1.13.13.11.1005",

"code" : "J45.9",

"display" : "астма неуточненная»

},

"extension" : [{

"uri" : "http://hl7.org/fhir/StructureDefinition/originalText", «valueUrl» : «# a1»

}]

} }

В этом примере фрагменту повествовательного содержания «астма» присвоен идентификатор а1. Элемент структурированного содержания code имеет тип CodeableConcept. Его кодированный компонент coding имеет тип Coding с компонентами system (идентификатор системы кодирования), code (код понятия) и display (краткое описание понятия). Компонент system имеет значение urn:oid: 1.2.643.5.1.13.13.11.1005 (объектный идентификатор классификации МКБ-10 в нормативносправочной информации Минздрава России), компонент code имеет значение J45.9, a display — «астма неуточненная».

В элемент структурированного содержания code добавлено расширение с идентификатором uri = http://hl7.org/fhir/StructureDefinition/originalText и значением valueUrl = #а1, представляющим собой

80

ПНСТ 995—2024

внутреннюю ссылку на фрагмент текста с идентификатором а1, послуживший основанием для присваивания кода МКБ.

Аналогичный метод может быть использован для ссылок в пределах контейнера Bundle. Но в этом случае идентификатору а1 должен предшествовать полный URL того экземпляра ресурса, внутри которого содержится ссылочный фрагмент:

<Bundle xmlns="http://hl7.org/fhir">

<entry>

<fullUrl value="http://example.org/fhir/Composition/abcdefghij"/>

<Composition>

<id value="cl"/>

<section>

<text>

<div xmlns="http://www.w3.org/1999/xhtml">

<p>B анамнезе <span id="al">acTMa</span></p>

</div>

</text>

</section>

</Composition>

</entry>

<entry>

<Condition>

<code>

<extension url="http://hl7.org/fhir/StructureDefinition/originalText">

<valueUrl value="http://example.org/fhir/Composition/abcdefghij #al"/> </extension> <coding>

<system value="urn:oid:1.2.643.5.1.13.13.11.1005"/>

<code value="J45.9"/>

<display value="AcTMa неуточненная"/>

</coding>

</code>

</Condition>

</entry>

</Bundle>

9.4.10 Тип данных Reference

9.4.10.1 Общие требования, состав и ограничения

Тип данных Reference используется для представления ссылки на экземпляр ресурса. Например, экземпляр ресурса Organization (организация) может ссылаться на экземпляр ресурса EndPoint, описывающий сервис, предоставляемый организацией в сети Интернет. Общие сведения о типе данных Reference приведены в таблице 139, а состав элементов — в таблице 140. Ограничения типа данных Reference описаны в таблице 141.

Таблица 139 — Общие сведения о типе данных Reference

Имя

Описание

Связи с другими элементами модели

Reference

Ссылка на экземпляр ресурса

Отношение генерализации от Reference к Element

Таблица 140 — Состав элементов типа данных Reference

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

81

ПНСТ 995—2024

Окончание таблицы 140

Имя

Описание

Тип

Кратность

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

reference

Литеральная ссылка (абсолютный, внутренний или относительный URL)

string

0..1

type

Тип ссылочного ресурса

uri

0..1

identifier

Логический идентификатор экземпляра ресурса, если литеральный идентификатор не известен

Identifier

0..1

display

Текстовая альтернатива ссылочного экземпляра ресурса

string

0..1

Таблица 141 — Ограничения типа данных Reference

Идентификатор

Вид

Путь

Описание

Выражение

ref-1

Правило

Базовый

Если ссылка является локальной, то она должна указывать на вложенный экземпляр ресурса

reference.exists() implies (reference. startsWith(‘#’).not() or (reference.sub-string(1 ).trace(‘url’) in %rootResource. contained.id.trace(‘ids’)) or (reference=’#’ and %rootResource!=%resource))

ref-2

Правило

Базовый

Если расширение отсутствует, то хотя бы один из элементов reference, identifier и display должен присутствовать

reference.exists() or identifier.exists() or display.exists() or extension.exists()

9.4.10.2 Тип целевого ресурса

В экземпляре ресурса элемент, имеющий тип данных Reference, всегда ссылается другой экземпляр фиксированного и известного типа. В принципе тип целевого ресурса может быть определен при разрешении ссылки с помощью анализа ссылочного содержания, но это может оказаться очень затратной операцией. Поэтому целесообразно тип указывать в ссылке, например: «subject»: {

«reference» : «http://someserver/some-path»,

«type» : «Patient» }

Если тип указан в ссылке, то он должен совпадать с типом ресурса, разрешенного по значению элемента reference. Элемент type имеет тип uri и должен представляться по отношению к базовому URL http://hl7.org/fhir/StructureDefinition/, то есть содержать просто имя типа ресурса, например Patient.

9.4.10.3 Литеральные ссылки

Экземпляры ресурсов идентифицируются и адресуются по их адресу URL. Элемент reference может содержать следующие варианты URL:

- абсолютный URL;

- относительный URL (дополняющий базовый URL сервера или, если экземпляр ресурса включен в контейнер Bundle, дополняющий значение базового URL, содержащегося в значении элемента Bundle.entry.fullUrl);

- фрагмент внутренней ссылки.

Литеральные ссылки могут содержать идентификатор версии экземпляра ресурса, например: <target>

<reference value="Observation/12/_history/2"/>

</target>

9.4.10.4 Логические ссылки

Во многих случаях литеральный идентификатор ссылочного объекта недоступен или не существует, например:

82

ПНСТ 995—2024

а) ссылочный объект имеет национальный идентификатор, к примеру, ОГРН, ИНН или СНИЛС, но для доступа к этому объекту не используется REST API, описанный в настоящем документе;

б) сервер, хранящий содержание ссылочного объекта, недоступен.

В этих случаях в ссылке может быть указан логический идентификатор ссылочного объекта, присвоенный какой-либо внешней организацией или информационной системой. Например, ссылка на объект, содержащий информацию о пациенте, имеющим СНИЛС 12345678901, может иметь следующий вид: <patient>

< ident i f i е г>

<system value="urn:oid:1.2.643.100.3" />

<value value=»1234 5 67 8901» />

</identifier>

</patient>

Компонент identifier ссылки типа Reference не обязан указывать на фактически существующий экземпляр ресурса REST, достаточно того, что ссылочный объект в принципе может быть представлен в виде такого экземпляра.

Поскольку ссылка по логическому идентификатору может оказаться не разрешаемой, то такие механизмы, как поиск по цепочке ссылок (chaining) или включение в результат поиска ссылочных экземпляров (include) со ссылками по логическому идентификатору не работают.

Если в ссылке указаны и литеральный, и логический идентификатор, то приоритет отдается литеральному идентификатору.

9.4.11 Тип данных xhtml

Тип данных xhtml используется для представления форматированного текста с упрощенной разметкой XHTML. Общие сведения о типе данных xhtml приведены в таблице 142. Этот тип данных не имеет собственных элементов.

Таблица 142 — Общие сведения о типе данных xhtml

Имя

Описание

Связи с другими элементами модели

xhtml

Текст в формате упрощенного XHTML

Отношение генерализации от Reference к Element

Примечания

1 Упрощенный XHTML содержит только базовые элементы и атрибуты HTML, описанные в главах 7-11 и 15 стандарта HTML 4.0 (исключая раздел 4 главы 9), элементы <а> (с атрибутами name или href), изображения и атрибуты стилей.

2 Допускается использовать только ссылки на стили, указываемые в атрибутах class и id элементов XHTML. Разрешены стили, приведенные в таблице 138.

3 При сериализации в XML следует указывать пространство имен http://www.w3.org/1999/xhtml, например:

<div xmln s=»http://www.w3.org/1999/xhtml»>

<p> Пример системы кодирования</р>

<table >

<tr>

<td>

<ЬЖод</Ь>

</td>

<td>

<Ь>Значение</Ь>

</td>

<td>

<Ь>Описание</Ь>

</td>

</tr>

<tr>

<td>l/<td>

<td>мyжcкoй</td>

<td>мyжcкoй пoл</td>

83

ПНСТ 995—2024

</tr>

<tr>

<td>2</td>

<td>жeнcкий</td>

<td>жeнcкий пoл</td>

</tr>

</table>

</div>

9.5 Типы метаданных

9.5.1 Общие сведения

Типы метаданных используются для представления метаданных описаний типов ресурсов и типов данных. Диаграмма классов, описывающая эти типы данных, показана на рисунке 18.

84

с1а$$Тилы метаданных

ПНСТ 995—2024

Рисунок 18 — Типы метаданных

Перечень типов метаданных приведен в таблице 143.

85

ПНСТ 995—2024

Таблица 143 — Типы метаданных

Имя

Описание

Пункт

Availability

Сведения о доступности

9.5.2

ContactDetail

Детальная контактная информация

9.5.3

Contributor

Сведения об участнике ресурса знаний

9.5.4

DataRequirement

Общие требования к данным ресурса знаний

9.5.5

Expression

Выражение на определенном языке, которое может использоваться для получения значения

9.5.6

ExtendedContactDetail

Детальная контактная информация лица или организации

9.5.7

MonetaryComponent

Компонент цены

9.5.8

ParameterDefinition

Определение параметра

9.5.9

RelatedArtifact

Сведения об артефакте, связанном с ресурсом знаний

9.5.10

TriggerDefinition

Описание события, инициирующего применение ресурса знаний

9.5.11

UsageContext

Контекст использования

9.5.12

VirtualServiceDetail

Идентификация службы дистанционной коммуникации

9.5.13

9.5.2 Тип данных Availability

Тип данных Availability используется для сведений о доступности физического места, службы или медицинского работника. Общие сведения о типе данных Availability приведены в таблице 144, а состав элементов — на рисунке 19 и в таблице 145.

Таблица 144 — Общие сведения о типе данных Availability

Имя

Описание

Связи с другими элементами модели

Availability

Сведения о доступности

Отношение генерализации от Availability к DataType

class Avalability

Рисунок 19 — Тип данных Availability

86

Таблица 145 — Состав элементов типа данных Availability

ПНСТ 995—2024

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

availabieTime

Доступные дни и время

Element

0..*

availabieTime.daysOfWeek

День недели. Допустимые значения: mon | tue | wed | thu | fri | sat | sun

code

0..*

availabieTime.allDay

Доступно 24/7

boolean

0..1

availabieTime.availableStartTime

Время начала доступности (игнорируется, если allDay=true)

time

0..1

availabieTime.availableEndTime

Время завершения доступности (игнорируется, если allDay=true)

time

0..1

notAvailabieTime

Недоступное время

Element

0..*

notAvailabieTime.description

Причина, по которой это время недоступно

string

0..1

notAvailabieTime.during

В течение этого интервала служба недоступна

Period

0..1

Ограничения описаны в таблице 146, привязки к наборам значений — в таблице 147.

Таблица 146 — Ограничения типа данных Availability

Идентификатор

Вид

Путь

Описание

Выражение

av-1

Правило

Availability. availabieTime

Если allDay = true, то элементы availableStartTime и availableEndTime должны отсутствовать

allDay.exists().not() or (allDay implies availableStartTime.

exists().not() and

availableEndTime.exists().not())

Таблица 147 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

Availability.availableTime. daysOfWeek

http://hl7.org/fhir/Value-Set/ days-of-week

Обязательная

Дни недели

9.5.3 Тип данных ContactDetail

Тип данных ContactDetail используется для представления списка контактных данных лица или организации. Общие сведения о типе данных ContactDetail приведены в таблице 148, а состав элементов — в таблице 149.

Таблица 148 — Общие сведения о типе данных ContactDetail

Имя

Описание

Связи с другими элементами модели

ContactDetail

Детальная контактная информация

Отношение генерализации от ContactDetail к DataType

87

ПНСТ 995—2024

Таблица 149 — Состав элементов типа данных ContactDetail

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

name

Ф.И.О. лица или наименование организации

string

0..1

telecom

Контактный телекоммуникационный адрес лица или организации

ContactPoint

0..*

9.5.4 Тип данных Contributor

Тип данных Contributor используется для представления сведений об участнике ресурса знаний. Общие сведения о типе данных Contributor приведены в таблице 150, а состав элементов — в таблице 151.

Таблица 150 — Общие сведения о типе данных Contributor

Имя

Описание

Связи с другими элементами модели

Contributor

Сведения об участнике ресурса знаний

Отношение генерализации от Contributor к DataType

Таблица 151 — Состав элементов типа данных Contributor

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

type

Тип участника. Допустимые значения: author (автор) | editor (редактор) | reviewer (рецензент) | endorser (рекомендатель)

code

0..1

name

Именование физического лица или наименование организации, ответственной за вклад в ресурс знаний

string

1

contact

Контактная информация участника ресурса знаний

ContactDetail

0..*

9.5.5 Тип данных DataRequirement

Тип данных DataRequirement определяет общие требования к данным ресурса знаний. Общие сведения о типе данных DataRequirement приведены в таблице 152, а состав элементов — на рисунке 20 и в таблице 153.

Таблица 152 — Общие сведения о типе данных DataRequirement

Имя

Описание

Связи с другими элементами модели

DataRequirement

Общие требования к данным ресурса знаний

Отношение генерализации от DataRequirement к DataType

88

ПНСТ 995—2024

dass DataRequirement^/

Рисунок 20 — Тип данных DataRequirement

Таблица 153 — Состав элементов типа данных DataRequirement

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

type

Тип требуемых данных

code

1

profile

Идентификация профиля требуемых данных

canonical

0..1

subject[x]

Объект данных (тип ресурса со сведениями об участнике)

*

0..1

mustSupport

Указывает специфичные структурные элементы, на которые ссылается модуль знаний

string

0..*

codeFilter

Ожидаемые коды

Element

0..*

89

ПНСТ 995—2024

Окончание таблицы 153

Имя

Описание

Тип

Кратность

codeFilter.path

Путь к кодированному элементу, используемому в фильтре

string

0..1

codeFilter.searchParam

Параметр поиска по кодированному значению (типа token)

string

0..1

codeFilter.valueSet

Набор допустимых значений, которые могут быть указаны в фильтре

canonical

0..*

codeFilter.code

Ожидаемые коды

Coding

0..*

dateFilter

Ожидаемые даты/интервалы дат/длитель-ность

Element

0..*

dateFilter.path

Путь к элементу, содержащему дату, интервал дат или длительность, используемому в фильтре

string

0..1

dateFilter.searchParam

Параметр поиска по значению даты, интервалу дат или длительности

string

0..1

dateFilter.value[x]

Значение фильтра. Допустимые типы данных: dateTime | Period | Duration

*

0..1

valueFilter

Ожидаемые значения

Element

0..*

valueFilter.path

Путь к элементу, используемому в фильтре

string

0..1

valueFilter.searchParam

Параметр поиска

string

0..1

valueFilter.comparator

Оператор сравнения eq (равно) | gt (больше) | It (меньше) | де (больше или равно) | Ie (меньше или равно) | sa (начинается после) | eb (завершается до)

code

0..1

valueFilter.value[x]

Значение периода, даты или длительности. Допустимые типы данных: dateTime | Period | Duration

0..1

limit

Число результатов

positivelnt

0..1

sort

Сортировка результатов

Element

0..*

sort.path

Путь к сортируемому элементу

string

0..1

sort.direction

Направление сортировки: ascending (по возрастанию) | descending (по убыванию)

code

0..1

Ограничения описаны в таблице 154, привязки к наборам значений — в таблице 155.

Таблица 154 — Ограничения типа данных DataRequirement

Идентификатор

Вид

Путь

Описание

Выражение

drq-1

Правило

DataRequi-rement.code-Filter

Должны быть указаны или путь path, или параметр поиска searchParam, но не оба вместе

path.exists() xor search-

Param.exists()

drq-2

Правило

DataRequi-rement.date-Filter

Должны быть указаны или путь path, или параметр поиска searchParam, но не оба вместе

path.exists() xor searchParam.exists

90

Таблица 155 — Привязки к наборам значений

ПНСТ 995—2024

Путь

Набор значений

Тип привязки

Описание

DataRequireme

http://hl7.org/fhir/ValueSet/fhir-types

Обязательная

Все типы данных и типы ресурсов

DataRequirement. subject[x]

http://hl7.org/fhir/ValueSet/participant-resource-types

Расширяемая

Типы ресурсов, содержащих сведения об участниках

DataRequirement.

valueFilter.comparator

http://hl7.org/fhir/ValueSet/value-filter-comparator

Обязательная

Операторы сравнения

DataRequirement. sort, direction

http://hl7.org/fhir/ValueSet/sort-di recti on

Обязательная

Направления сортировки

9.5.6 Тип данных Expression

Тип данных Expression описывает выражение на определенном языке (идентифицируемом типом среды MIME), которое может использоваться для получения значения. Общие сведения о типе данных Expression приведены в таблице 156, а состав элементов — в таблице 157.

Таблица 156 — Общие сведения о типе данных Expression

Имя

Описание

Связи с другими элементами модели

Expression

Выражение на определенном языке, которое может использоваться для получения значения

Отношение генерализации от Expression к DataType

Таблица 157 — Состав элементов типа данных Expression

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

description

Человеко-читаемое описание выражения

string

0..1

name

Имя, присвоенное выражению для последующих ссылок

code

0..1

language

Идентификация языка выражения

code

0..1

expression

Выражение на указанном языке

string

0..1

reference

Ссылка на определение выражения

uri

0..1

Ограничения описаны в таблице 158, привязки к наборам значений — в таблице 159.

Таблица 158 — Ограничения типа данных Expression

Идентификатор

Вид

Путь

Описание

Выражение

exp-1

Правило

Базовый

Должен быть указан хотя бы один из элементов expression и reference

expression.exists() or reference. exists()

exp-2

Правило

Базовый

Значение имени name должно быть валидным для большинства языков программирования

name.hasValue() implies name. matches(‘[A-Za-z][A-Za-zO-9\\_| {0,63}’)

91

ПНСТ 995—2024

Таблица 159 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

Expression.language

http://hl7.org/fhir/ValueSet/ expression-language

Расширяемая

Коды, описанные в таблице 160

Таблица 160 — Наиболее широко используемые коды языков программирования

Код

Значение

Определение

text/cql

CQL

Язык Clinical Quality Language

text/fhirpath

FHIRPath

Язык FHIRPath

text/x-fhir-query

FHIR Query

Синтаксис HTTP-запросов FHIR (обычно не включая базовый URL)

text/cql-identifier

CQL Identifier

Идентификатор выражения на языке Clinical Quality Language, обычно имя определения верхнего уровня

text/cql-expression

CQL Expression

Выражение на языке Clinical Quality Language

9.5.7 Тип данных ExtendedContactDetail

Тип данных ExtendedContactDetail описывает детальную контактную информацию лица или организации. Общие сведения о типе данных ExtendedContactDetail приведены в таблице 161, а состав элементов — в таблице 162.

Таблица 161 — Общие сведения о типе данных ExtendedContactDetail

Имя

Описание

Связи с другими элементами модели

Extended-ContactDetail

Детальная контактная информация лица или организации

Отношение генерализации от

ExtendedContactDetailK DataType

Таблица 162 — Состав элементов типа данных ExtendedContactDetail

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

purpose

Цель контакта

CodeableConcept

0..1

name

Именование контактного лица

HumanName

0..1

telecom

Контактный телекоммуникационный адрес лица или организации

ContactPoint

0..*

address

Контактный адрес

Address

0..1

organization

Ссылка на организацию, отвечающую за содержание контактной информации

Reference

0..1

period

Срок действия контактной информации

Period

0..1

Привязки к наборам значений описаны в таблице 163.

92

Таблица 163 — Привязки к наборам значений

ПНСТ 995—2024

Путь

Набор значений

Тип привязки

Описание

ExtendedContact-Detail. purpose

http://terminology.hl7.org/ValueSet/ contactentity-type

Предпочтительная

Цель контакта с лицом или организацией

9.5.8 Тип данных MonetaryComponent

Тип данных MonetaryComponent описывает компонент цены, например, скидка, налог, вычет. Общие сведения о типе данных MonetaryComponent приведены в таблице 164, а состав элементов — в таблице 165.

Таблица 164 — Общие сведения о типе данных MonetaryComponent

Имя

Описание

Связи с другими элементами модели

MonetaryComponent

Компонент цены

Отношение генерализации от MonetaryComponent к DataType

Таблица 165 — Состав элементов типа данных MonetaryComponent

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

type

Компонент цены. Допустимые значения: base (базовая цена) | surcharge (надбавка) | deduction (вычет) | discount (скидка) | tax (налог) | informational (сумма для информации, в цену не входит)

code

1

code

Подкатегория компонента цены, например, налог на добавленную стоимость

CodeableConcept

0..1

factor

Множитель

decimal

0..1

amount

Сумма (до умножения на множитель)

Money

0..1

Привязки к наборам значений приведены в таблице 166.

Таблица 166 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

MonetaryComponent.type

http://hl7.org/fhir/ValueSet/ price-component-type

Обязательная

Тип компонента цены

9.5.9 Тип данных ParameterDefinition

Тип данных ParameterDefinition используется для описания входных или выходных параметров. Общие сведения о типе данных ParameterDefinition приведены в таблице 167, а состав элементов — в таблице 168.

Таблица 167 — Общие сведения о типе данных ParameterDefinition

Имя

Описание

Связи с другими элементами модели

ParameterDefinition

Определение параметра

Отношение генерализации от ParameterDefinition к DataType

93

ПНСТ 995—2024

Таблица 168 — Состав элементов типа данных ParameterDefinition

Имя

Описание

Тип

Кратность

пате

Имя параметра. Используется для доступа к значению параметра

code

0..1

use

Вид параметра — in (входной) или out (выходной)

code

1

min

Минимальная кратность

integer

0..1

max

Максимальная кратность — число или * (не ограничена)

string

0..1

documentation

Краткое описание параметра

string

0..1

type

Тип значения параметра. Может принимать значение имени простого типа данных, комплексного типа данных, ресурса или any — любой тип

code

1

profile

Идентификация профиля

canonical

0..1

9.5.10 Тип данных RelatedArtifact

Тип данных RelatedArtifact описывает сведения о различных артефактах, связанных с ресурсами знаний, например, о версиях документов, библиографии и т.д. Общие сведения о типе данных RelatedArtifact приведены в таблице 169, а состав элементов — в таблице 170.

Таблица 169 — Общие сведения о типе данных RelatedArtifact

Имя

Описание

Связи с другими элементами модели

RelatedArtifact

Сведения об артефакте, связанном с ресурсом знаний

Отношение генерализации от RelatedArtifact к DataType

Таблица 170 — Состав элементов типа данных RelatedArtifact

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

type

Тип связи с артефактом

code

1

classifier

Дополнительный классификатор

Codeable-Concept

0..*

label

Краткое название

string

0..1

display

Краткое описание связанного артефакта

string

0..1

citation

Библиографическая ссылка на артефакт

markdown

0..1

document

Документ, на который дается ссылка

Attachment

0..1

resource

Ссылка на артефакт, являющийся экземпляром ресурса, имеющего канонический идентификатор

canonical

0..1

resourceReference

Ссылка на артефакт, являющийся экземпляром ресурса, не по каноническому идентификатору

Reference

0..1

publicationstatus

Статус публикации ссылочного артефакта. Допустимые значения: draft (проект) | active (действует) | retired (действие прекращено) | unknown (неизвестен)

code

0..1

publicationDate

Дата публикации ссылочного артефакта

date

0..1

94

ПНСТ 995—2024

Привязки к наборам значений описаны в таблице 171.

Таблица 171 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

RelatedArtifact.type

http://hl7.org/fhir/ValueSet/ related-artifact-type

Обязательная

Тип связи с артефактом

RelatedArtifact.classifier

http://hl7.org/fhir/ValueSet/ citation-artifact-classifier

Пример

Классификатор библиографии

RelatedArtifact.publication-Status

http://hl7.org/fhir/ValueSet/ publication-status

Обязательная

Статус жизненного цикла артефакта

9.5.11 Тип данных TriggerDefinition

Тип данных TriggerDefinition описывает события, инициирующие применение ресурса знаний. Общие сведения о типе данных TriggerDefinition приведены в таблице 172, а состав элементов — в таблице 173.

Таблица 172 — Общие сведения о типе данных TriggerDefinition

Имя

Описание

Связи с другими элементами модели

Trigger-Definition

Описание события, инициирующего применение ресурса знаний. Выделяются три типа событий: именованное событие;

расписание;

изменение данных или доступ к ним.

Для именованного события указывается имя, интерпретация которого оставляется на усмотрение среды вычислений.

Событие может инициироваться по расписанию, в том числе в фиксированный момент времени или периодически.

Событие может инициироваться изменением данных или доступом к ним. Уточнение наступления события может быть указано в элементе condition

Отношение генерализации от TriggerDefinitionK DataType

Таблица 173 — Состав элементов типа данных TriggerDefinition

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

type

Тип триггера. Допустимые значения: named-event (именованное событие) | periodic (расписание) | data-changed (любое изменение данных, включая добавление, модификацию, удаление) | data-added (добавление данных) | data-modified (модификация данных) | data-removed (удаление данных) | data-accessed (доступ к данным) | data-access-ended (завершение доступа к данным)

code

1

name

Идентификатор события — имя или URI

string

0..1

code

Код, идентифицирующий событие

CodeableConcept

0..1

subscription-Topic

Ссылка на экземпляр ресурса SubscriptionTopic, содержащий определение события

canonical

0..1

95

ПНСТ 995—2024

Окончание таблицы 173

Имя

Описание

Тип

Кратность

timing[x]

Расписание события (для периодического триггера)

0..1

data

Данные инициирующие событие (для триггера, срабатывающего по данным)

DataRequirement

0..*

Если указано несколько экземпляров элемента data, для срабатывания триггера должны быть выполнены все указанные в них условия

condition

Логическое выражение, формально описывающее условие срабатывания триггера

Expression

0..1

Ограничения описаны в таблице 174, привязки к наборам значений — в таблице 175.

Таблица 174 — Ограничения типа данных TriggerDefinition

Идентификатор

Вид

Путь

Описание

Выражение

trd-1

Правило

Базовый

Должны быть указаны или расписание timing, или инициирующие данные data, но не оба вместе

data.empty() or timing.empty()

trd-2

Правило

Базовый

Элемент condition может быть указан только при наличии элемента data

condition.exists() implies data. exists()

trd-3

Правило

Базовый

Для именованного события должен быть указан элемент name, для расписания — timing, для инициирующих данных — data

(type = ‘named-event’ implies name.exists()) and (type = ‘periodic’ implies timing.exists()) and (type.startsWith(‘data-’) implies data.exists())

Таблица 175 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

TriggerDefinition.type

http://hl7.org/fhir/ValueSet/trigger-type

Обязательная

Тип триггера

9.5.12 Тип данных UsageContext

Тип данных UsageContext используется для представления контекста, в котором используется ресурс. Примерами типов контекста служат пол, возраст, категория пользователя и т. д. Общие сведения о типе данных UsageContext приведены в таблице 176, а состав элементов — в таблице 177.

Таблица 176 — Общие сведения о типе данных UsageContext

Имя

Описание

Связи с другими элементами модели

UsageContext

Описание контекста использования

Отношение генерализации от

UsageContext к DataType

Таблица 177 — Состав элементов типа данных UsageContext

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

code

Тип контекста использования

Coding

1

96

Окончание таблицы 177

ПНСТ 995—2024

Имя

Описание

Тип

Кратность

value[x]

Значение контекста. Допустимые значения: valueCodeable-Concept | valueQuantity | valueRange | valueReference

*

1

9.5.13 Тип данных VirtualServiceDetail

Тип данных VirtualServiceDetail используется для идентификации службы дистанционной коммуникации. Общие сведения о типе данных VirtualServiceDetailnpMBefleHbi в таблице 178, а состав элементов — в таблице 179.

Таблица 178 — Общие сведения о типе данных VirtualServiceDetail

Имя

Описание

Связи с другими элементами модели

VirtualServiceDetail

Идентификация службы дистанционной коммуникации

Отношение генерализации от VirtualServiceDetailK DataType

Таблица 179 — Состав элементов типа данных VirtualServiceDetail

Имя

Описание

Тип

Кратность

Унаследованные элементы

id

Уникальный идентификатор для ссылок между элементами

string

0..1

extension

Дополнительное содержание

Extension

0..*

Собственные элементы

channelType

Тип службы дистанционной коммуникации

Coding

0..1

address[x]

Контактный адрес или номер. Допустимые значения: ad-dressllrl | addressString | addressContactPoint | addressEx-tendedContactDetail

*

0..1

additionallnfo

Адрес URL дополнительной информации о подключении

uri

0..*

maxParticipants

Максимальное число участников сеанса

positivelnt

sessionKey

Контактный адрес или номер. Допустимые значения: ad-dressUrl | addressString | addressContactPoint | addressEx-tendedContactDetail

string

0..1

Привязки к наборам значений описаны в таблице 180.

Таблица 180 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

VirtualServiceDetail. channelType

http://hl7.org/fhir/ValueSet/virtual-service-type

Пример

Тип службы дистанционной коммуникации

10 Ресурсы REST

10.1 Общие сведения

10.1.1 Принципы определения ресурсов REST

Ресурсы REST описывают элементы данных, ограничения и связи «объектов деятельности», наиболее релевантных для здравоохранения, например, «пациент», «медицинский работник», «процедура», «направление на исследование», «результат исследования».

Каждый тип ресурса описывается отдельной информационной моделью, имеющей представление в форме диаграммы классов UML и табличные представления. Все эти модели используют компактный набор типов данных, описанный в разделе 9.

97

ПНСТ 995—2024

При разработке типов ресурсов используются следующие архитектурные принципы:

а) повторное использование и композиция — типы ресурсов создаются исходя из правила 80/20 — акцент делается на 20 % требований, удовлетворяющим 80 % интероперабельности. Остальные 20 % интероперабельности могут быть обеспечены с помощью механизмов расширения и профилирования. Типы ресурсов обычно содержат ссылки на другие типы ресурсов, что улучшает возможности повторного использования и позволяет строить из атомарных типов ресурсов более сложные структуры, например документы или сообщения;

б) масштабируемость — спецификация [22] ориентирована на архитектурный стиль REST, чтобы все транзакции обмена данными могли осуществляться без сохранения состояния, что исключает необходимость поддержки сложных сеансов между серверами и тем самым способствует возможности горизонтального масштабирования;

в) производительность — экземпляры ресурсов могут передаваться по вычислительной сети с использованием оптимизированных форматов, что может способствовать повышению производительности выполнения комплексных транзакций;

г) понятность — описания типов ресурсов должны быть равным образом понятными техническим экспертам и нетехническим сотрудникам;

д) обеспечение точности данных — в спецификации [22] предусмотрены механизмы привязки кодируемых данных к наборам значений и валидации этих данных. Кроме того, предусмотрены механизмы валидации экземпляров ресурсов на соответствие схемам XML или JSON, а также ряду бизнес-пра-вил. Это способствует обеспечению точности данных и семантической интероперабельности;

е) простота внедрения — для внедрения спецификации пригодны стандартные решения, в том числе приложения с открытым кодом, например [24].

Принципы, положенные в основу спецификации [22], позволяют эффективно применять ее для построения микросервисных решений, а также для решений, обеспечивающих информационное взаимодействие с различными гаджетами и ПМП. В то же время она может использоваться и для традиционного обмена сообщениями. При этом вместо сложных и ограниченных синтаксисов запросов, предложенных в стандартах HL7 Version 2 и Version 3, может использоваться стандартный синтаксис запросов HTTP.

Спецификация [22] предоставляется по лицензии Creative Commons «No Rights Reserved», то есть без сохранения прав. Но при этом на использование торговых марок HL7® и FHIR® накладываются определенные ограничения.

10.1.2 Расширения

Возможность расширений типов данных и типов ресурсов является существенной частью парадигмы спецификации [22]. Каждый элемент экземпляра ресурса может иметь дочерние элементы расширения (extension), представляющие дополнительную информацию, не являющиеся частью базового определения типа ресурса. Приложения не должны отклонять экземпляр ресурса только на основании того, что он содержит расширения, однако могут отклонить его на основании содержания конкретного расширения.

Использование расширений позволяет сохранять компактность базисной модели, используемой для определения новых ресурсов. Спецификация [22] содержит реестр расширений, которые могут представлять интерес для разработчиков информационных систем.

10.1.3 Производные типы

Тип ресурса может производиться от другого типа ресурса следующими двумя способами:

а) специализация (specialization) базового типа ресурса, при которой вновь определяемый тип ресурса производится от базового объекта с помощью наследования его свойств и добавления к ним новых свойств;

б) ограничение (constraint) базового типа ресурса, при котором вновь определяемый тип ресурса производится от базового объекта с помощью ограничения кратности свойств базового объекта (в том числе удаления свойства), наложения дополнительных ограничений (к уже имеющимся) и при необходимости расширения уже существующих свойств и объектов.

Ограничение базового типа ресурса называется профилированием, а вновь полученный объект — профилем базового объекта.

В качестве базового ресурса можно выбрать ранее описанный профиль. Таким образом может быть создана иерархия профилей.

98

ПНСТ 995—2024

10.1.4 Ссылки между экземплярами ресурсов

Экземпляр ресурса может включать в себя другой экземпляр ресурса (или профиля) по ссылке или по значению. Например, тип ресурса Person (общие демографические данные гражданина) имеет свойство managingOrganization (организация — владелец данного экземпляра сведений о физическом лице), которое может содержать ссылку на экземпляр ресурса Organization (общие сведения об организации). Сослаться на часть свойств экземпляра ресурса нельзя, но можно описать профиль ссылочного объекта, содержащий только требуемые свойства.

10.1.5 Профилирование

Типы ресурсов, разработанные с помощью специализации базовых объектов, являются рамочными. Многие свойства этих объектов, например, унаследованные от базовых объектов, являются необязательными. Поэтому при сопоставлении вновь разработанного типа ресурса со сведениями об объекте учета на эти свойства должны быть наложены дополнительные ограничения, то есть одному типу объекта учета обычно соответствует не сам такой тип ресурса, а его профиль. Например, для типа ресурса Observation (результат исследования) определены профили, специфичные для конкретных исследований: observation-resprate (частота дыхания), observation-oxygensat (оксигенация) и другие.

Сведениям об объекте учета, имеющим простую структуру, целесообразно сопоставить один тип ресурса и один его профиль. Сведениям об объекте учета, имеющим более сложную структуру, может быть сопоставлено несколько типов ресурсов (каждый со своим профилем) или один тип ресурса с несколькими профилями. Для описания таких сведений в спецификации [22] предусмотрены так называемые руководства по реализации (implementation guide), в том числе руководство по реализации ресурсов REST для персональных медицинских приборов [32].

10.1.6 Описание типа ресурса

Описание типа ресурса содержит следующие разделы:

а) область применения и использования;

б) описание структуры ресурса (в виде диаграммы классов UML и иерархической таблицы);

в) ограничения (правила форматно-логического контроля);

г) комментарии к особенностям идентификации и связям;

д) привязки к наборам значений;

е) параметры поиска.

В зависимости от особенностей конкретного ресурса некоторые разделы могут быть опущены, а другие — добавлены.

Иерархическая таблица, описывающая структуру ресурса, имеет формат, приведенный в таблице 4. Таблица ограничений имеет формат, приведенный в таблице 5. Таблица привязок к наборам значений имеет формат, приведенный в таблице 6. Таблица критериев поиска имеет формат, приведенный в таблице 7.

10.1.7 Категории ресурсов

Можно выделить следующие категории ресурсов:

а) базисные ресурсы, на основе которых создаются определения остальных ресурсов;

б) ресурсы общего назначения, являющиеся компонентами инфраструктуры информационного взаимодействия;

в) предметные ресурсы, используемые в конкретных предметных областях.

Базисные ресурсы описаны в пункте 10.2, ресурсы общего назначения — в пункте 10.3, предметные ресурсы, используемые для взаимодействия с хранилищем результатов измерений — в разделе 11.

10.2 Базисные ресурсы

10.2.1 Общие сведения

Базисные ресурсы перечислены в таблице 181. Они представляют собой абстрактные классы и не имеют собственных экземпляров.

Таблица 181—Базисные ресурсы

Имя

Описание

Пункт

Resource

Общие элементы всех ресурсов

10.2.2

DomainResource

Дополнительные элементы, общие для большинства ресурсов

10.2.3

99

ПНСТ 995—2024

10.2.2 Ресурс Resource

10.2.2.1 Область применения и использования

Базисный ресурс Resource является родителем каждого конкретного ресурса. С помощью унаследованных от него необязательных элементов можно задать идентификатор экземпляра ресурса, ссылку на его метаданные, ссылку на правила, которым надо следовать при создании экземпляра, человеческий язык, на котором представлено содержание экземпляра ресурса.

10.2.2.2 Структура ресурса

Состав элементов ресурса Resource представлен на рисунке 21 и в таблице 182.

«Resource» Resource

+ id: id [0..1]

+ meta: Meta [0..1]

+ implicitRules: uri [0..1]

«Binding»

+ language: code [0..1]

Рисунок 21 — Ресурс Resource

Таблица 182 — Состав элементов ресурса Resource

Имя

Описание

Тип

Кратность

id

Логический идентификатор экземпляра ресурса, используемый в URL этого экземпляра. Будучи присвоенным, это значение никогда не изменяется

id

0..1

meta

Метаданные экземпляра ресурса. Их содержание обрабатывается инфраструктурой. Изменение метаданных ресурса не обязательно влечет за собой изменение экземпляра ресурса

Meta

0..1

implicitRules

Ссылка на набор правил, которым надо следовать при создании экземпляра ресурса и которые должны учитываться при обработке его содержания. Нередко это ссылка на руководство по реализации, определяющее специфичные правила наряду с другими профилями, и т. д.

uri

0..1

language

Основной человеческий язык, на котором представлено содержание ресурса

code

0..1

10.2.2.3 Привязки к наборам значений

Привязки к наборам значений перечислены в таблице 183.

Таблица 183 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

Resource, language

http://hl7.org/fhir/ValueSet/all-languages

Обязательная

Все допустимые коды языка из ВСР-47 (см. http://tools.ietf.org/ html/bcp47)

http://hl7.org/fhir/ValueSet/languages

Рекомендованная

Наиболее распространенные коды языка

10.2.2.4 Логический идентификатор id и другие идентификаторы экземпляров ресурсов

Экземпляр ресурса может быть идентифицирован двумя разными способами:

а) по адресу URL местонахождения экземпляра (основанному на «логическом» идентификаторе id). Этот адрес изменяется при перемещении экземпляра из одного места в другое;

100

ПНСТ 995—2024

б) по некоторому «внутренне присущему» идентификатору («бизнес-идентификатору» или «каноническому URL»), являющемуся значением одного из элементов ресурса и остающемуся неизменным при перемещении экземпляра из одного места в другое.

Каждый ресурс наследует элемент id (логический идентификатор) от ресурса Resource. При создании экземпляра ресурса сервер присваивает этому идентификатору определенное значение, уникальное среди всех экземпляров ресурса данного типа. Пока экземпляр хранится на этом сервере, значение идентификатора id не изменяется.

Местонахождение экземпляра задается абсолютным адресом URL, сконструированным из базового URL, имени типа ресурса и логического идентификатора, например: http://test.fhir.org/r5/rest/ Patient/123 (где 123 — логический идентификатор экземпляра ресурса Patient). Перекрестные ссылки между экземплярами ресурсов используют их местонахождение в форме абсолютного или относительного URL.

Бизнес-идентификаторы обычно позволяют связать содержание экземпляра ресурса с объектом «реального мира». Большинство типов ресурсов имеет элемент identifier типа Identifier, предназначенный для хранения бизнес-идентификаторов.

Некоторые типы ресурсов имеют элемент uri, предназначенный для хранения «канонического URL», идентифицирующий экземпляр ресурса данного типа. Это специальная разновидность бизнес-идентификатора. Элемент uri имеет тип uri и наряду с URL может содержать URI, но назван так по историческим причинам. Канонический идентификатор служит неизменным логическим идентификатором экземпляра ресурса.

10.2.2.5 Правила implicitRules

Элемент implicitRules содержит ссылку на набор правил, которым надо следовать при создании экземпляра ресурса и которые должны учитываться при обработке его содержания; например, это может быть ссылка на руководство по реализации, определяющее специфичные правила наряду с другими профилями, и т. д.

10.2.2.6 Язык language

Элемент language указывает основной человеческий язык, на котором представлено содержание ресурса. Его значение представляет собой код из ВСР-47 [30]. Этот же код по возможности должен быть указан в повествовательном содержании экземпляра ресурса, представленном элементом text, наследуемым от ресурса DomainResource. Поскольку код языка из ВСР-47 очень сложен, для элемента language рекомендована привязка к набору значений

http://hl7.org/fhir/ValueSet/languages, охватывающему наиболее распространенные коды языка.

10.2.2.7 Метаданные ресурса meta

Каждый тип ресурса наследует от ресурса Resource элемент метаданных meta типа Meta, значения которого имеют служебный характер и могут использоваться для ограничения доступа к экземпляру ресурса, форматно-логического контроля его содержания, обеспечения версионности, а также для других целей, в том числе определяемых пользователем. Компоненты типа данных Meta описаны в пункте 9.4.8.

10.2.3 Ресурс DomainResource

10.2.3.1 Область применения и использования

Базисный ресурс DomainResource является детализацией абстрактного ресурса Resource и в свою очередь является абстрактным. Он описывает расширения содержания экземпляра ресурса и вложенные в него экземпляры ресурсов.

10.2.3.2 Структура ресурса

Состав элементов ресурса DomainResource представлен на рисунке 22 и в таблице 184.

101

ПНСТ 995—2024

dass DomatoResource

Resound

«Resource» DomainResource

+ extension: Extension [0..*]

+ modifierExtension: Extension [0..*]

«Constraint»

+ text: Narrative [0..1]

+ contained: Resource [0..*]

Рисунок 22 — Ресурс DomainResource

Таблица 184 — Состав элементов ресурса DomainResource

Имя

Описание

Тип

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

0..1

implicitRules

Совокупность правил, по которым должен создаваться экземпляр ресурса

uri

0..1

language

Основной человеческий язык, на котором представлено содержание ресурса

code

0..1

Собственные элементы

text

Человеко-читаемый текст, содержащий сводные сведения о содержании экземпляра ресурса, который может использоваться для представления содержания человеку. Он не обязан содержать все структурированные данные, но должен содержать сведения, достаточные для получения представления о содержании ресурса. В определении ресурса может быть указано, какое содержание следует представить в элементе text

Narrative

0..1

contained

Экземпляры ресурсов, не существующие отдельно от данного экземпляра ресурса, который их содержит — они не могут быть идентифицированы отдельно от него и не могут самостоятельно входить в транзакции

Resource

0..*

extension

Может использоваться для представления дополнительной информации, не являющейся частью базового определения ресурса. Существует строгий набор правил по определению и использованию расширений, обеспечивающий их безопасное и управляемое применение. Хотя каждый разработчик и может определить расширение, существует ряд требований, которых он должен придерживаться при определении расширения

Extension

0..*

102

Окончание таблицы 184

ПНСТ 995—2024

Имя

Описание

Тип

Кратность

modifier-

Extension

Может использоваться для представления дополнительной информации, не являющейся частью базового определения ресурса, но модифицирующей семантику этого элемента и/или его потомков. Обычно модификация состоит в отрицании или уточнении. Существует строгий набор правил по определению и использованию расширений, обеспечивающий их безопасное и управляемое применение. Хотя каждый разработчик и может определить расширение, существует ряд требований, которых он должен придерживаться при определении расширения. Требуется, чтобы приложения, обрабатывающие экземпляр ресурса, проверяли наличие модифицирующих расширений. Модифицирующие расширения не должны изменять семантику любого элемента, унаследованного от класса Resource или DomainResource (в том числе семантику самого расширения modifierExtension)

Extension

0..*

10.2.3.3 Ограничения ресурса DomainResource

Ограничения ресурса DomainResource описаны в таблице 185.

Таблица 185 — Ограничения ресурса DomainResource

Идентификатор

Вид

Путь

Описание

Выражение

dom-2

Правило

Базовый

Допускается только один уровень вложения экземпляров ресурсов

contained, contained. empty()

dom-3

Правило

Базовый

Должна быть ссылка на вложенный экземпляр ресурса в содержащем его экземпляре или ссылка во вложенном экземпляре на содержащий его экземпляр

contained.where(((‘#’+id in (%resource. descendants().reference | %resource. descendants().ofType(canonical) | %re-source.descendants().ofType(uri) | %re-source.descendants().ofType(url))) or descendants().where(reference = ‘#’).ex-ists() or descendants().where(ofType(ca-nonical) = ‘#’).exists() or descendants(). where(ofType(canonical) = ‘#’).exists()). not()).trace(‘unmatched’, id).empty()

dom-4

Правило

Базовый

Во вложенном экземпляре ресурса должны отсутствовать элементы meta.versionld и meta. lastUpdated

contained.meta.versionld.empty() and

contained, meta. lastUpdated. empty()

dom-5

Правило

Базовый

Во вложенном экземпляре ресурса должен отсутствовать элемент meta.security

contained.meta.security.empty()

dom-6

Рекомендация

Базовый

У экземпляра ресурса должно быть повествовательное содержание

text.' div'. exists()

10.2.3.4 Использование вложенных ресурсов

Вложенный экземпляр ресурса существует только в содержащем его экземпляре. Обычно вложенные экземпляры используются, если у них отсутствует уникальный идентификатор. Например, в тонометре, рассчитанном на двух пациентов, в качестве идентификатора пациента используется номер группы памяти. Тогда в экземпляр ресурса Observation, содержащий результат измерения, можно вложить экземпляр ресурса Patient, в котором в качестве идентификатора указан номер группы памяти.

103

ПНСТ 995—2024

10.2.3.5 Параметры поиска

Параметры поиска, общие для всех потомков ресурса DomainResource, описаны в таблице 186.

Таблица 186 — Параметры поиска, общие для потомков ресурса DomainResource

Имя

Тип

Описание

Выражение

_text

special

Поиск экземпляра ресурса по повествовательному содержанию

10.3 Ресурсы общего назначения

10.3.1 Общие сведения

Ресурсы общего назначения, которые могут быть использованы в запросах REST API и в ответах на эти запросы, перечислены в таблице 187.

Таблица 187 — Ресурсы общего назначения

Имя

Описание

Пункт

Bundle

Контейнер экземпляров ресурсов

10.3.2

MessageHeader

Заголовок сообщения

10.3.3

OperationOutcome

Результат операции

10.3.4

Parameters

Параметры операции

10.3.5

Subscription

Подписка

10.3.6

Subscriptionstatus

Статус подписки

10.3.8

SubscriptionTopic

Тема подписки

10.3.7

10.3.2 Ресурс Bundle (контейнер экземпляров ресурсов)

10.3.2.1 Область применения и использования

Ресурс Bundle служит для сборки экземпляров ресурсов в единый контейнер. Такие контейнеры используются для разных целей, в том числе:

а) возвращение коллекции экземпляров ресурсов, отобранной в соответствии с критериями поиска;

б) возвращение коллекции версий экземпляра ресурса для целей анализа истории изменений;

в) передача нескольких экземпляров ресурсов в одном сообщении;

г) группировка экземпляров ресурсов в самодостаточный комплекс, обладающий семантической целостностью, например медицинский документ;

д) создание, изменение и удаление нескольких экземпляров ресурсов в одной транзакции;

е) передача уведомлений о событиях по теме подписки;

ж) сохранение коллекции экземпляров ресурсов.

10.3.2.2 Структура ресурса

Ресурс Bundle является детализацией абстрактного ресурса Resource. Состав элементов ресурса Bundle представлен на рисунке 23 и в таблице 188.

104

ПНСТ 995—2024

Рисунок 23 — Ресурс Bundle

Таблица 188 — Состав элементов ресурса Bundle

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

0..1

implicitRules

Совокупность правил, по которым должен создаваться экземпляр ресурса

uri

0..1

language

Основной человеческий язык, на котором представлено содержание ресурса

code

0..1

Собственные элементы

identifier

Постоянный идентификатор контейнера, не изменяемый при его передаче от одного субъекта к другому

Identifier

0..1

105

ПНСТ 995—2024

Продолжение таблицы 188

Имя

Описание

Тип данных

Кратность

type

Указывает назначение контейнера, то есть предполагаемое использование. Допустимые значения: document (документ) | message (сообщение) | transaction (транзакция) | transaction-response (результат транзакции) | batch (пакет)| batch-response (ответный пакет) | history (история) | searchset (результат поиска) | collection (коллекция) | subscription-notification (уведомление подписки)

code

1

timestamp

Штамп даты и времени создания контейнера

instant

0..1

total

Общее число совпадений

unsignedlnt

0..1

link

Связь, относящаяся ко всему контейнеру

Backbone-Element

0..*

link.relation

Имя, детализирующее функциональное назначение данной связи. Список значений берется из [33] (www.iana.org/ assignments/link-www.iana.org/assignments/link-relations/ link-relations.xhtml#link-relations-1)

string

1

link.url

Адрес детальной информации о данной связи

uri

1

entry

Запись, содержащая экземпляр ресурса или информацию

Backbo-neElement

0..*

entry.link

Связь, относящаяся к данной записи

Backbo-neElement

0..*

entry.link. relation

Имя, детализирующее функциональное назначение данной связи. Список значений берется из [33] (www. iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1)

string

1

entry.link.url

Адрес детальной информации о данной связи

uri

1

entry.fullUrl

Абсолютный URL или URN, идентифицирующий экземпляр ресурса

uri

0..1

entry, resource

Экземпляр ресурса, содержащийся в контейнере. Его назначение или смысл определяются типом контейнера Bundle.type

Resource

0..1

entry, search

Информация о поиске, в результате которого сформирована данная запись

BackboneElement

0..1

entry. search, mode

Причина включения записи в коллекцию результатов. Допустимые значения: match (соответствует параметрам поиска) | include (включена в соответствии с параметрами _include или _revinclude) | outcome (предназначена для передачи информации либо предупреждения о процессе поиска)

code

0..1

entry. search, score

Оценка степени совпадения с параметрами поиска, поставленная сервером при поиске (между 0 и 1)

decimal

0..1

entry, request

В контейнере пакета или транзакции — запрос обработки. В контейнере истории — метод, использованный для обработки версии экземлпяра ресурса

BackboneElement

0..1

106

Окончание таблицы 188

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

entry, request, method

При инициировании транзакции или пакета здесь должен быть указан метод HTTP, выполняемый для этой записи. В контейнере истории здесь должен быть указан выполненный метод HTTP. Допустимые значения: GET | HEAD | POST | PUT | DELETE | PATCH

code

1

entry, request, uri

Адрес URL относительно корня (адреса, по которому отправлен запрос)

uri

1

entry, request. ifNoneMatch

Если значения ETag совпадают, возвратить статус HTTP 304 Not Modified (не модифицировано)

string

0..1

entry.request.

ifModified-Since

Выполнять метод HTTP, если дата последнего изменения хранящегося экземпляра ресурса больше или равна значению данного элемента

instant

0..1

entry.request. ifMatch

Выполнять этот метод, если значение элемента meta, version Id хранящегося экземпляра ресурса, представленное в форме ETag, совпадает со значением данного элемента

string

0..1

entry.request. ifNoneExist

Указывает, что информационный ресурс не выполняет метод создания, если указанный экземпляр ресурса уже существует. Это часть URL, представляющая запрос, следующая за знаком вопроса (не включая этот знак)

string

0..1

entry, response

Указывает результаты обработки соответствующей записи запроса (request) контейнера пакета или транзакции, на которую дается ответ, или результаты операции при возвращении истории

Backbone-Element

0..1

entry, respon-se. status

Код статуса, возвращенный при обработке данной записи. Статус должен начинаться с трехзначного кода HTTP code (например, 404) и может содержать стандартное описание HTTP этого кода

string

1

entry, response, location

Заголовок Location, созданный выполненным методом и заполняемый, если он возвращает Location

uri

0..1

entry, response, etag

Если метод создает версию экземпляра ресурса, здесь возвращается его тег ETag

string

0..1

entry, response. lastModified

Дата и время изменения экземпляра ресурса сервером

instant

0..1

entry, response, outcome

Экземпляр ресурса Operationoutcome, содержащий указания и предупреждения, появившиеся в результате обработки данной записи в пакете или транзакции

Resource

0..1

signature

Электронная подпись содержания контейнера

Signature

0..1

issues

Описание проблем формирования содержания контейнера и предупреждения, относящиеся к контейнеру в целом

Resource

0..1

10.3.2.3 Привязки к наборам значений

Привязки к наборам значений описаны в таблице 189.

107

ПНСТ 995—2024

Таблица 189 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

Bundle.type

http://hl7.org/fhir/ValueSet/bundle-type

Обязательная

Тип контейнера

Bundle.link, relation

http://hl7.org/fhir/ValueSet/iana-link-relations

Обязательная

Функциональное назначение связи, определенное в https:// www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1

Bundle.entry, search.mode

http://hl7.org/fhir/ValueSet/search-entry-mode

Обязательная

Причина включения записи в коллекцию результатов

Bundle.entry, request.method

http://hl7.org/fhir/ValueSet/http-verb

Обязательная

Метод HTTP

10.3.2.4 Ограничения ресурса Bundle

Ограничения ресурса Bundle приведены в таблице 190.

Таблица 190 — Ограничения ресурса Bundle

Идентификатор

Вид

Путь

Описание

Выражение

bdl-1

Правило

Базовый

Указывать элемент total только при type = searchset или history

total. empty() or (type = 'searchset’) or (type = 'history')

bdl-2

Правило

Базовый

Указывать элемент entry.search только при type = searchset

entry.search.empty() or (type = ‘searchset’)

bdl-5

Правило

Bundle, entry

Если элементы request и response отсутствуют, то запись должна содержать элемент resource

resource.exists() or request. exists() or response.exists()

bdl-7

Правило

Базовый

Значение fullUrl должно быть уникальным в контейнере, или записи entry с одинаковыми значениями fullUrl должны содержать элементы resource с разными значениями элементов meta, versionld (за исключением контейнеров истории)

(type = ‘history’) or entry. where(fullUrl.exists()).se-lect(fullUrl&resource.meta. versionld).isDistinct()

bdl-8

Правило

Bundle, entry

Значение fullUrl не должно содержать компонент версии

fullUrl.contains(7_history/’). not()

bdl-9

Правило

Базовый

Идентификатор документа identifier должен иметь компоненты system и value

type = ‘document’ implies (identifier. system.exists() and identifier.value.exists())

bdl-10

Правило

Базовый

Документ должен иметь дату

type = ment’ implies (timestamp.hasValue())

bdl-11

Правило

Базовый

Первым ресурсом в контейнере документа должен быть Composition

type = ‘document’ implies entry.fi rst().resource.is(Com-position)

bdl-12

Правило

Базовый

Первым ресурсом в контейнере сообщения должен быть MessageHeader

type = ‘message’ implies entry.first(). resource. is(Mes-sageHeader)

108

Окончание таблицы 190

ПНСТ 995—2024

Идентификатор

Вид

Путь

Описание

Выражение

bdl-13

Правило

Базовый

Первым ресурсом в контейнере уведомления подписки должен быть SubscriptionStatus

type = ‘subscription-notification’ implies entry.first(). resource.is(SubscriptionSta-tus)

bdl-14

Правило

Базовый

Метод PATCH в контейнере истории не допустим

type = ‘history’ implies entry, request.method != ‘PATCH’

bdl-15

Правило

Базовый

Если тип контейнера Bundle.type = transaction | transaction-response | batch | batch-response или Bundle.request.method = POST, to элемент Bundle.entry.fullUrl обязателен

type=’transaction’ or type = ’transaction-re-sponse’ or type=’batch’ or type=’batch-response’ or entry.all(fullUrl.exists() or re-quest.method=’POST’)

bdl-16

Правило

Базовый

Если элемент issue представлен экземпляром ресурса Operationoutcome, то элементы issue.severity этого экземпляра должны иметь значение information (информация) или warning (предупреждение)

issues. exists() implies (issues.issue.severity = ‘information’ or issues.issue.severity = ‘warning’)

bdl-17

Правило

Базовый

В контейнере документа элемент issues должен отсутствовать

type = ‘document’ implies issues.empty()

bdl-18

Правило

Базовый

В контейнере результата поиска должен присутствовать элемент link со значением отношения self

type = ‘searchset’ implies link.where(relation = ‘self’ and url.exists()).exists()

bdl-3a

Правило

Базовый

В контейнере документа, сообщения, результата поиски или коллекции все элементы entry должны содержать элемент resource, а элементы request и response в них должны отсутствовать

type in (‘document’ | ‘message’ | ‘searchset’ | ‘collection’) implies entry.all(re-source.exists() and request. empty() and response.emp-ty())

bdl-3b

Правило

Базовый

В контейнере истории все элементы entry должны содержать элементы request и response, а если элемент request.method имеет значение POST или PUT, то элемент entry должен содержать элемент resource

type = ‘history’ implies en-try.all(request.exists() and re-sponse.exists() and ((request.method in (‘POST’ | ‘PUT’)) = re-source.exists()))

bdl-3c

Правило

Базовый

В контейнере транзакции или пакета все элементы entry должны содержать элемент request, а если элемент request.method имеет значение POST, PUT или PATCH, то элемент entry должен содержать элемент resource

type in (‘transaction’ | ‘batch’) implies entry.all(request. method. exists() and ((request.method in (‘POST’ | ‘PATCH’ | ‘PUT’)) = resource. exists()))

bdl-3d

Правило

Базовый

В контейнере результата транзакции или ответного пакета все элементы entry должны содержать элемент response

type in (‘transaction-response’ | ‘batch-response’) implies entry.all(response. exists())

109

ПНСТ 995—2024

10.3.2.5 Использование контейнеров Bundle

Документ

Контейнер документа, в котором Bundle.type = document, состоит из записей entry, первая из которых содержит экземпляр ресурса Composition. Каждая запись entry должна содержать элемент resource (экземпляр ресурса).

Сообщение

Контейнер документа, в котором Bundle.type = message, состоит из записей entry, первая из которых содержит экземпляр ресурса MessageHeader. Каждая запись entry должна содержать элемент resource (экземпляр ресурса).

Результаты поиска

Контейнер результата поиска, в котором Bundle.type = 'searchset', состоит из нуля или более записей entry. Каждая запись entry должна содержать экземпляр ресурса.

В элементе Bundle.total может быть указано общее число экземпляров ресурсов, удовлетворяющих условию поиска.

В каждой записи entry могут быть указаны два специфичных элемента, характеризующих поиск:

а) entry.search.mode указывает, удовлетворяет ли экземпляр ресурса условию поиска или он включен в результат поиска, поскольку в результате присутствует экземпляр ресурса, для которого данный экземпляр является ссылочным (что может иметь место, если к условию поиска добавлен параметр Jnclude или _revinclude);

б) entry.search.score содержит оценку степени релевантности результата поиска, которая может принимать значения от 0 (наименее релевантный) до 1 (наиболее релевантный). Обычно результаты поиска сортируются по убыванию степени релевантности, но клиент может задать иной порядок сортировки.

История

Контейнер истории изменений, где Bundle.type = 'history', состоит из нуля или более записей entry. Каждая запись entry должна содержать элемент request, описывающий выполненные изменения. Если значение элемента entry.request.method равно 'POST' или 'PUT', то запись entry должна содержать экземпляр ресурса, представляющий его состояние после выполнения этой операции. Чтобы потребители могли получить доступ к заголовку location, должен также присутствовать элемент response.

Кроме того, в элементе Bundle.total может быть указано общее число экземпляров ресурса, включенных в историю изменений.

Транзакция/пакет

Контейнер транзакции или пакета, где Bundle.type = 'transaction' или 'batch', состоит из нуля или более записей entry. Каждая запись entry должна содержать элемент request, детализирующий запрос HTTP и указывающий системе, выполняющей транзакцию, что следует делать с содержанием записи entry. Если значение элемента entry.request.method равно 'POST' или 'PUT', то запись entry должна содержать экземпляр ресурса, который служит телом запроса HTTP.

Результат транзакции/ответный пакет

Контейнер результата транзакции или ответного пакета, где Bundle.type = transaction-response или batch-response, состоит из нуля или более записей entry, по одной на каждую запись транзакции или пакета, на которую дается ответ. Каждая запись entry должна содержать элемент response, описывающий результат запроса HTTP, выполненного для соответствующей записи контейнера транзакции или пакета.

Коллекция

Контейнер коллекции, где Bundle.type = collection, состоит из нуля или более записей entry. Специального назначения у такого контейнера нет. Каждая запись entry должна содержать экземпляр ресурса.

URL ресурса и правила уникальности в контейнере

За исключением контейнеров транзакции или пакета, каждая запись entry контейнера Bundle должна иметь элемент fullUrl, идентифицирующий экземпляр ресурса, включенный в эту запись. Он идентифицирует экземпляр, но не его версию. Если экземпляру ресурса не присвоен постоянный идентификатор, который может быть использован в контейнере, то следует назначить ему идентификатор UUID (с префиксом urn:uuid:), областью действия которого является данный контейнер, и поместить его в элемент fullURL.

Если в контейнере Bundle транзакции или пакета элемент entry.request.method = POST и экземпляр ресурса не имеет уникального идентификатора, то запись entry может не иметь элемент fullUrl при условии, что на этот экземпляр ресурса нет ссылок из других записей entry. Если же такие ссылки

110

ПНСТ 995—2024

присутствуют, то следует назначить экземпляру ресурса идентификатор UUID (с префиксом urn:uuid:), областью действия которого является данный контейнер, и поместить его в элемент fullURL.

Конкретная версия экземпляра ресурса должна быть включена в контейнер Bundle не более одного раза. Однако в один и тот же контейнер могут быть включены разные версии одного и того же экземпляра ресурса. Например, это имеет место в контейнере истории, где Bundle.type = history.

Разрешение ссылок в контейнере Bundle

Экземпляры ресурсов, вложенные в контейнер Bundle, могут содержать ссылки на экземпляры других ресурсов. Ссылочные экземпляры ресурсов могут входить в тот же самый контейнер Bundle. Содержание ссылки от этого не изменяется.

Приложение сервера, читающее контейнер транзакции, сначала должно найти ссылочные экземпляры внутри контейнера, и только после этого выполнить поиск, используя полный адрес URL ссылки. Должен использоваться следующий алгоритм разрешения ссылок в контейнере Bundle:

Наряду с относительным адресом URL (например, Patient/123) ссылка на другой экземпляр ресурса может использовать любую схему URL Поэтому рекомендуется использовать следующий алгоритм обработки ссылок в контейнере транзакции:

Обработать ссылки reference.value, имеющие схему URN (например, urn:uuid:9d1714da-b7e6-455b-bfd2-69ce0ff5fb12):

а) выполнить поиск элемента entry.fullUrl, значение которого совпадает со значением ссылки reference.value;

б) если такой элемент найден, то в качестве ссылочного экземпляра ресурса следует использовать entry.resource.

Обработать ссылки reference.value, представляющие собой абсолютный URL:

а) если ссылка reference.value не содержит указание версии (то есть компонент /_history отсутствует, например, https://fhir.example.org/base/Patient/123), то выполнить поиск элемента entry.fullUrl, значение которого совпадает со значением ссылки reference.value;

б) если найден один такой элемент, то в качестве ссылочного экземпляра ресурса следует использовать entry.resource;

в) если найдено несколько таких элементов, то сервер может выбрать из них тот, который имеет наибольшее значение времени последнего изменения, указанного в элементе meta.IastUpdated;

г) если ссылка reference.value содержит указание версии (то есть компонент /_history присутствует, например: https://fhir.example.Org/base/Patient/123/_history/a), то разбить ее значение на две части: ссылка без указания версии (например, https://fhir.example.org/base/Patient/123) и идентификатор версии (например, «а»);

д) выполнить поиск элемента entry, у которого значение элемента fullUrl совпадает со ссылкой без указания версии и значение элемента resource.meta.versionld совпадает с идентификатором версии;

е) если найден единственный элемент, то в качестве ссылочного экземпляра ресурса следует использовать entry.resource;

ж) если найдено несколько элементов, сгенерировать ошибку транзакции;

и) если ссылочный экземпляр не найден, то сервер может выполнить взаимодействие чтения read или чтения версии vread, чтобы считать ссылочный экземпляр ресурса за пределами контейнера Bundle. Если такого экземпляра нет, сгенерировать ошибку транзакции.

Обработать ссылки reference.value, представляющие собой относительный URL вида «[type]/[id], например, Patient/123:

а) извлечь базовый URL из значения элемента fullUrl записи entry, в которую вложен экземпляр ресурса с проверяемой ссылкой, и вставить его перед относительным URL (например, https://fhir.example. org/ + Patient/123 --> https://fhir.example.org/Patient/123);

б) выполнить проверку, описанную для абсолютного URL;

в) если базовый URL выделить не удалось, и элемент entry.request.method записи entry, в которую вложен экземпляр ресурса с проверяемой ссылкой, имеет значение POST, PUT or PATCH, то взять URL сервера, которому адресована транзакция, вставить его перед относительным URL и выполнить проверку, описанную для абсолютного URL.

Обработать условные ссылки reference.value:

а) выполнить поиск по параметрам, указанным в относительной ссылке после типа ресурса;

б) если найден единственный экземпляр ресурса, то его следует использовать в качестве ссылочного экземпляра;

в) если найдено несколько экземпляров, сгенерировать ошибку транзакции;

111

ПНСТ 995—2024

г) если результат поиска пуст, сгенерировать ошибку транзакции.

Если ссылка не принадлежит ни к одной из указанных выше категорий, сгенерировать ошибку транзакции.

Для применения этого алгоритма требуется, чтобы запись entry содержала элемент fullUrl. Поэтому клиенты по возможности должны заполнять в контейнере транзакции элементы Bundle.entry.fullUrl.

Обработка контейнеров Bundle с использованием REST API

У контейнера Bundle есть своя конечная точка, как и у большинства других ресурсов. Она обслуживает обычные взаимодействия, при которых экземпляры контейнера Bundle рассматриваются как статические, то есть контейнер пакета, транзакции или сообщения может быть отправлена с помощью метода POST по адресу /Bundle. В этом случае содержание контейнера обрабатывается не как пакет, транзакция или сообщение, а как обычный экземпляр ресурса с индексированием и т.д. Операция GET/Bundle/[id] возвратит тот же самый экземпляр контейнера.

Параметры поиска экземпляров ресурса Bundle

Специальные параметры поиска экземпляров ресурса Bundle описаны в таблице 191. В дополнение к ним могут использоваться общие параметры поиска, описанные в подразделе 191.

Таблица 191 — Специальные параметры поиска экземпляров ресурса Bundle

Имя

Тип

Описание

Выражение

composition

reference

Если Bundle.type = document, то первая запись entry должна содержать экземпляр ресурса Composition, и этот параметр обеспечивает возможность сцепленного поиска его содержания

Bundle.entry[O].resource as Composition

identifier

token

Постоянный идентификатор контейнера

Bundle.identifier

message

reference

Если Bundle.type = message, то первая запись entry должна содержать экземпляр ресурса MessageHeader, и этот параметр обеспечивает возможность сцепленного поиска его содержания

Bundle. entry[O]. resource as Message Header

timestamp

date

Дата и время формирования содержания контейнера

Bundle.timestamp

type

token

Тип контейнера. Допустимые значения: document | message | transaction | transaction-response | batch | batch-response | history | searchset | collection | subscription-notification

Bundle.type

10.3.3 Заголовок сообщения MessageHeader

10.3.3.1 Область применения и использования

Ресурс MessageHeader используется в качестве заголовка сообщения в составе контейнера Bundle, у которого элемент type имеет значение message.

10.3.3.2 Структура ресурса

Ресурс MessageHeader является детализацией абстрактного ресурса DomainResource. Состав элементов ресурса MessageHeader представлен на рисунке 24 и в таблице 192.

112

DomainResource

«Resource»

MessageHeader

BackboneElement

Source

ПНСТ 995—2024

«TypeChoice»

+ eventfx]

«RefTarget»

+ sender: Reference [0..1]

+ author: Reference [0..1]

+ responsible: Reference [0..1]

+ focus: Reference [0..*]

+ definition: canonical [0..1]

«Binding»

+ reason: CodeableConcept [0..1]

♦source

♦response

1

0..1

name: string [0..1] software: string [0..1] version: string [0..1] contact: ContactPoint [0..1]

«TypeChoice» endpoint[x]

♦destination

BackboneElement

Response

BackboneElement

Destination

+ identifier id

«Binding»

+ code:code

«RefTarget»

+ details Reference [0..1]

+ name: string [0..1]

«TypeChoice»

+ endpoint[x]

«RefTarget»

+ target: Reference [0..1]

+ receiver: Reference [0..1]

Рисунок 24 — Ресурс MessageHeader

Таблица 192 — Состав элементов ресурса MessageHeader

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

0..1

implicitRules

Совокупность правил, по которым должен создаваться экземпляр ресурса

uri

0..1

language

Основной человеческий язык, на котором представлено содержание ресурса

code

0..1

Унаследованы от абстрактного класса DomainResource

text

Текстовое описание содержания экземпляра ресурса для интерпретации человеком

Narrattive

0..1

contained

Вложенный экземпляр ресурса

Resource

0..*

extension

Дополнительное содержание, определенное при реализации

Extension

0..*

modifierExtension

Модифицирующее расширение, которое не может быть проигнорировано

Extension

0..*

Собственные элементы

event[x]

Код события передачи сообщения. Допустимые типы данных: Coding | canonical (ссылка на экземпляр ресурса EventDefinition)

*

1

destination

Приложение-получатель

Backbone-Element

0..*

113

ПНСТ 995—2024

Окончание таблицы 192

Имя

Описание

Тип данных

Кратность

destination. endpoint[x]

Адресат сообщения. Допустимые типы данных: url | Reference (ссылка на экземпляр ресурса Endpoint)

*

1

destination.name

Человеко-читаемое имя целевой системы

string

0..1

destination.target

Ссылка на идентификацию конечной целевой системы

Reference

0..1

destination.receiver

Ссылка на конечного получателя

Reference

0..1

sender

Ссылка на отправителя

Reference

0..1

author

Ссылка на автора сообщения

Reference

0..1

source

Приложение-отправитель

Backbone-Element

1

source.endpoint[x]

Источник данных. Допустимые типы данных: url | Reference (ссылка на экземпляр ресурса Endpoint)

*

1

source.name

Человеко-читаемое имя системы-отправителя

string

0..1

source, software

Наименование программного обеспечения

string

0..1

source.version

Версия программного обеспечения

string

0..1

source.contact

Телекоммуникационный адрес службы технической поддержки

Contact-Point

0..1

responsible

Ответственный за содержание сообщения

Reference

0..1

reason

Причина события

Codeable-Concept

0..1

response

Исходное сообщение

Backbone-Element

0..1

response.identifier

Идентификатор исходного сообщения Bundle.identifier

id

1

response.code

Код типа ответа. Допустимые значения: без-ошибки | ошибка | фатальная-ошибка

code

1

response.details

Полные сведения о проблемах в исходном сообщении

Reference

0..1

focus

Ссылка на основной экземпляр ресурса в данном сообщении. Им может быть в том числе экземпляр ресурса Parameters

Reference

0..*

definition

Ссылка на экземпляр ресурса Messagedefinition, содержащий определение состава данного сообщения

canonical

0..1

10.3.3.3 Привязки к наборам значений

Привязки к наборам значений описаны в таблице 193.

Таблица 193 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

MessageHeader.event[x]

http://hl7.org/fhir/ValueSet/ message-events

Пример

Тип события

MessageHeader.reason

http://hl7.org/fhir/ValueSet/ message-reason-encounter

Пример

Причина события

MessageHeader.response. code

http://hl7.org/fhir/ValueSet/ response-code

Обязательная

Код типа ответа

114

ПНСТ 995—2024

10.3.3.4 Использование ресурса MessageHeader

Время события, инициировавшего передачу сообщения, должно быть указано в экземпляре ресурса, на который дана ссылка в элементе focus. Время формирования сообщения должно быть указано в элементе Bundle.timestamp.

Получатель сообщения не обязан отклонять его, если ссылка в элементе receiver относится к другому субъекту. Например, он может выполнять роль регистратора или маршрутизатора сообщений.

Все экземпляры ресурсов, на которые ссылаются элементы MessageHeader.focus, должны находиться внутри контейнера сообщения.

Ссылочные экземпляры ресурсов автора и ответственного могут быть включены в контейнер сообщения или находиться за его пределами, если получатель сообщения может получить к ним доступ. В качестве автора или ответственного могут выступать как информационные системы, так и лица или организации, использующие информационные системы.

10.3.3.5 Параметры поиска экземпляров ресурса MessageHeader

Специальные параметры поиска экземпляров ресурса MessageHeader описаны в таблице 194. В дополнение к ним могут использоваться общие параметры поиска, описанные в подразделе 12.27.

Таблица 194 — Специальные параметры поиска экземпляров ресурса MessageHeader

Имя

Тип

Описание

Выражение

author

reference

Логический автор сообщения

MessageHeader.author

code

token

Допустимые значения: ок (успешно) | transient-error (преходящая ошибка) | fatal-error (фатальная-ошибка)

MessageHeader.response.code

destination

string

Человеко-читаемое имя целевой системы

MessageHeader.destination.name

destination-uri

uri

Адрес получателя сообщения

MessageHeader.destination.endpoint

event

token

Код типа события

MessageHeader.event.ofType(Coding) |

MessageHeader.event.ofType(canonical)

focus

reference

Экземпляр ресурса, содержащийся в сообщении

MessageHeader.focus (любой тип ресурса)

receiver

reference

Получатель сообщения

MessageHeader.destination.receiver

response-id

token

Идентификатор исходного сообщения

MessageHeader.response.identifier

responsible

reference

Ответственный за содержание сообщения

MessageHeader.responsible

sender

reference

Система — отправитель сообщения

MessageHeader.sender (Person, Organization)

source

string

Наименование системы — отправителя сообщения

MessageHeader.source.name

target

reference

Идентификация конечной целевой системы

MessageHeader.destination.target

10.3.4 Результат операции OperationOutcome

10.3.4.1 Область применения и использования

Ресурс OperationOutcome (результат операции) служит для описания ошибок, предупреждений и информационных сообщений о результате предпринятой системой операции. Он используется в первую очередь для передачи следующих сведений:

- ошибка взаимодействия REST или выполнения операции;

- применения операции $validate (проверка содержания экземпляра ресурса на соответствие правилам);

115

ПНСТ 995—2024

- ошибка обработки сообщения;

- ошибка обработки транзакции или пакета;

- информация о поиске (в контейнере результата поиска Bundle).

10.3.4.2 Структура ресурса

Ресурс OperationOutcome является детализацией абстрактного ресурса DomainResource. Состав элементов ресурса OperationOutcome представлен на рисунке 25 и в таблице 195.

DomainResource

OperationOutcome

+issue

BackboneEiament

Issue

+ diagnostics: string [0..*]

+ location: string [0..*]

+ expression: siring [0..*]

«Binding»

+ severity: code

+ code: code

+ details: CodeableConcept [0..1]

Рисунок 25 — Ресурс OperationOutcome

Таблица 195 — Состав элементов ресурса OperationOutcome

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

0..1

implicitRules

Совокупность правил, по которым должен создаваться экземпляр ресурса

uri

0..1

language

Основной человеческий язык, на котором представлено содержание ресурса

code

0..1

Унаследованы от абстрактного класса DomainResource

text

Текстовое описание содержания экземпляра ресурса для интерпретации человеком

Narrattive

0..1

contained

Вложенный экземпляр ресурса

Resource

0..*

extension

Дополнительное содержание, определенное при реализации

Extension

0..*

modifier-

Extension

Модифицирующее расширение, которое не может быть проигнорировано

Extension

0..*

Собственные элементы

issue

Ошибка, предупреждение или информационное сообщение, создаваемые в результате действия системы

Issue

1..*

issue, severity

Серьезность отклонения от успешной обработки. Допустимые значения: fatal (фатальная ошибка) | error (ошибка) | warning (предупреждение) | information (информация)

code

1

116

Окончание таблицы 195

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

issue.code

Тип отклонения от нормальной обработки. Система, создающая экземпляр ресурса OperationOutcome, должна выбрать наиболее подходящий код отклонения и может предусмотреть дополнительный код ошибки в элементе details. Допустимые значения: invalid (несоответствие спецификации) | structure (ошибочная структура) | required (отсутствует обязательный элемент) | value (ошибочное значение элемента) | invariant (нарушено ограничение) | security (ошибка доступа) | login (требуется аутентификация) | unknown (неизвестный принципал) | expired (сеанс закончен) | forbidden (доступ запрещен) | suppressed (частичная информация) | processing (ошибка обработки) | not-supported (не поддерживается) | duplicate (попытка создания дубликата) | multiple-matches (несколько совпадений) | not-found (не найден) | deleted (ссылка на удаленный элемент) | too-long (слишком длинное) | code-invalid (ошибочный код) | extension (недопустимое расширение) | too-costly

(слишком затратное) | business-rule (нарушено бизнес-правило) | conflict (конфликт версий) | limited-filter (некоторые фильтры могут быть применены не ко всем результатам) | transient (преходящая ошибка) | lock-error (экземпляр блокирован) | no-store (хранилище данных недоступно) | exception (возникло исключение) | timeout (таймаут) | incomplete (неполные результаты) | throttled (система на обслуживании) | informational (информационное) | success (операция успешно завершена)

code

1

issue, details

Дополнительные сведения об ошибке, например ее описание или код, присвоенный системой

Codeable-Concept

0..1

issue.

diagnostics

Дополнительная диагностическая информация об отклонении

string

0..*

issue, location

Этот элемент запрещен, поскольку он специфичен для XML. Он заменен на элемент issue.expression, не зависящий от формата и более простой для разбора

string

0..*

issue.

expression

Выражение, использующее ограниченное подмножество языка FHIRPath и идентифицирующее один из элементов экземпляра ресурса, значение которого привело к данной ситуации

string

0..*

10.3.4.3 Привязки к наборам значений

Привязки к наборам значений описаны в таблице 196.

Таблица 196 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

OperationOutcome. issue.severity

http://hl7.org/fhir/ValueSet/ issue-severity

Обязательная

Серьезность отклонения от успешной обработки

OperationOutcome. issue.code

http://hl7.org/fhir/ValueSet/ issue-type

Обязательная

Тип отклонения от успешной обработки

OperationOutcome. issue.details

http://hl7.org/fhir/ValueSet/ operation-outcome

Пример

Примеры кодов дополнительных сведений об ошибке

10.3.4.4 Использование ресурса OperationOutcome

При передаче информации о результате выполнения запроса ресурс OperationOutcome полезен в тех случаях, если необходима более детальная информация по сравнению с кодами ответа HTTP. Такая детализация может содержать следующую информацию:

а) более точные сведения о месте возникновения проблемы;

б) несколько разных проблем;

117

ПНСТ 995—2024

в) более точные коды ошибок.

Сведения, передаваемые в экземпляре ресурса OperationOutcome, должны быть согласованы с кодом статуса HTTP. Например, если код статуса HTTP сигнализирует об ошибке (300+), то хотя бы один элемент issue должен иметь код серьезности error (ошибка) или fatal-error (фатальная ошибка) и указывать причину ошибки.

Ресурс OperationOutcome должен содержать хотя бы один элемент issue даже в случае успешного результата. В этом случае он должен иметь код серьезности information (информация).

10.3.4.5 Использование выражения expression

В случае предупреждения или ошибки рекомендуется указывать в элементе expression место возникновения проблемы, используя выражение на упрощенном языке FHIRPath. Такое выражение не должно содержать функцию .resolve(). Следующие выражения допустимы: Person.identifier

Person.identifier[2].value

Пример недопустимого выражения:

Person.identifier.where(system.value='http://example.com/mrn').value

При выполнении запросов на поиск сведения об ошибках могут возвращаться также в заголовках HTTP. Эти сведения возвращаются, используя выражение, чувствительное к регистру и состоящее из двух частей: префикс «http» и заголовок либо имя параметра запроса, отделенное от префикса точкой. Примеры таких выражений приведены в таблице 197.

Таблица 197 — Примеры выражений

Выражение

Описание

http."code"

Ссылка на параметр поиска code

http."name:exact"

Ссылка на параметр поиска name с модификатором ":exact"

http.Authorization

Ссылка на заголовок Authorization (например, чтобы указать его отсутствие и необходимость определенной формы аутентификации)

Эта нотация следует соглашениям, по которым заголовки HTTP должны начинаться символом в верхнем регистре, а параметры, передаваемые в адресной строке URL, должны начинаться символом в нижнем регистре.

10.3.5 Параметры операции Parameters

10.3.5.1 Область применения и использования

Ресурс Parameters (параметры операции) служит для описания параметров, которые могут передаваться операции или возвращаться ею. У этого ресурса нет собственной конечной точки.

10.3.5.2 Состав ресурса

Диаграмма классов UML ресурса Parameters показана на рисунке 26, состав элементов приведен в таблице 198.

118

dass Параметры операции

DomainResource

BackboneElement

+partO..*

«Entity,Resource» ^

Parameters

1..1

+pa га meter

0..*

«Entity»

Parameter

«Property»

+ name: string

+ value[x]: Element [0..1]

+ resource: Resource [0..1]

Рисунок 26 — Ресурс Parameters (параметры операции)

Таблица 198 — Состав элементов ресурса Parameters

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

0..1

implicitRules

Совокупность правил, по которым должен создаваться экземпляр ресурса

uri

0..1

language

Основной человеческий язык, на котором представлено содержание ресурса

code

0..1

Унаследованы от абстрактного класса DomainResource

text

Текстовое описание содержания экземпляра ресурса для интерпретации человеком

Narrattive

0..1

contained

Вложенный экземпляр ресурса

Resource

0..*

extension

Дополнительное содержание, определенное при реализации

Extension

0..*

modifierExtension

Модифицирующее расширение, которое не может быть проигнорировано

Extension

0..*

Собственные элементы

parameter

Параметр операции

Backbone-Element

0..*

parameter.name

Наименование параметра операции

string

1

parameter.value[x]

Значение параметра. Вместо [х] должно быть указано имя типа данных, в котором первый символ переведен в верхний регистр

0..1

parameter.resource

Экземпляр ресурса

Resource

0..1

parameter, part

Именованный компонент составного параметра. Допускается только один уровень вложения

См. элемент parameter

0..*

10.3.5.3 Ограничения

Ограничения ресурса Parameters приведены в таблице 199.

Таблица 199 — Ограничения ресурса Parameters

Идентификатор

Описание

Выражение

lnv-1

В элементе parameter должен присутствовать либо компонент vlaue, либо компонент resource, либо компоненты part

(part.exists() and value.empty() and resource. empty()) or (part.emptyO and (value.exists() x or resource.exists()))

10.3.6 Подписка Subscription

10.3.6.1 Область применения и использования

Тип ресурса Subscription описывает подписку на уведомления об изменении экземпляров ресурсов, предоставляемые сервером другой системе (клиенту). Темы подписки, поддерживаемые сервером, описаны с помощью экземпляров ресурса SubscriptionTopic, в которых может быть определен набор допустимых фильтров (в элементе SubscriptionTopic.canFilterBy). При регистрации подписки клиенты могут указать требуемые им фильтры (из числа допустимых) в элементе Subscription.filterBy. Как только подписка зарегистрирована, любое событие, удовлетворяющее теме подписки и фильтрам (если они указаны), вызывает отправку клиенту уведомления об этом событии по заданному каналу. Уведомле-

119

ПНСТ 995—2024

ние представляет собой контейнер Bundle типа subscription-notification, в котором первая запись Bundle, entry содержит экземпляр ресурса Subscriptionstatus (статус подписки).

Канал, по которому должны передаваться уведомления, указан в элементе Subscription.channel, а адрес передачи уведомлений — в элементе Subscription.endpoint (конечная точка). В спецификации [22] определены каналы, приведенные в таблице 200. При необходимости могут быть реализованы другие каналы уведомлений.

Таблица 200 — Система кодирования http://terminology.hl7.org/CodeSystem/subscription-channel-type

Код

Значение

Описание

rest-hook

Rest Hook

Сервер отправляет уведомление конечной точке с адресом URI помощью метода HTTP POST. Содержание уведомления имеет заданный тип среды MIME

websocket

Websocket

Сервер отправляет уведомление, используя соединение по веб-сокету с заданным адресом URL, установленное клиентом

email

Email

Сервер отправляет уведомление по электронной почте на заданный адрес URI

message

Message

Сервер отправляет уведомление в форме сообщения (то есть контейнер Bundle типа message) приложению, идентифицируемому адресом URI

10.3.6.2 Структура ресурса

Ресурс Subscription является детализацией абстрактного ресурса DomainResource. Состав элементов ресурса Subscription представлен на рисунке 27 и в таблице 201.

DomainResource

«Resource» Subscription

+ identifier Identifier [0..*]

+ name: string [0..1]

+ contact: ContactPoint [0..*]

+ end: instant [0..1]

+ reason: string

+ endpoint: uri [0..1]

+ heartbeatperiod: unsignedlnt [0..1]

+ timeout: unsignedlnt [0..1]

+ maxCount: positivelnt [0..1]

«Binding»

+ status: code

+ channelType: code

+ contentType: code [0..1]

+ content: code [9..1 ]

«RefTarget»

+ topic: canonical

+ managingEntity: Reference [0..1]

Рисунок 27 — Ресурс Subscription

Таблица 201 — Состав элементов ресурса Subscription

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

0..1

120

Продолжение таблицы 201

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

implicitRules

Совокупность правил, по которым должен создаваться экземпляр ресурса

uri

0..1

language

Основной человеческий язык, на котором представлено содержание ресурса

code

0..1

Унаследованы от абстрактного класса DomainResource

text

Текстовое описание содержания экземпляра ресурса для интерпретации человеком

Narrattive

0..1

contained

Вложенный экземпляр ресурса

Resource

0..*

extension

Дополнительное содержание, определенное при реализации

Extension

0..*

modifierExtension

Модифицирующее расширение, которое не может быть проигнорировано

Extension

0..*

Собственные элементы

identifier

Дополнительный идентификатор

Identifier

0..*

name

Человеко-читаемое наименование подписки

string

0..1

status

Статус подписки. Допустимые значения: requested (запрошена) | active (действует) | error (ошибка уведомления) | off (истекла или слишком много ошибок) | entered-in-error (создана по ошибке)

code

1

topic

Ссылка на тему подписки

canonical

1

contact

Контактная информация техподдержки подписки

ContactPoint

0..*

end

Дата и время завершения подписки

instant

0..1

managingEntity

Ссылка на субъект, ответственный за изменение подписки. Допустимые типы ресурсов: CareTeam | Health-careService | Organization | RelatedPerson | Patient | Practitioner | PractitionerRole

Reference

0..1

reason

Причина подписки

string

0..1

filterBy

Критерий фильтрации потока подписки

Element

0..*

filterBy.resourceType

Тип ресурса, допустимый для данного фильтра подписки

uri

0..1

filterBy.filterParameter

Имя фильтра, определенное в экземпляре ресурса SubscriptionTopic

string

filterBy.comparator

Оператор сравнения

code

0..1

filterBy.modifier

Поддерживаемый модификатор параметра поиска missing | exact | contains | not | text | in | not-in | below | above | type | identifier | of-type | code-text | text-advanced | iterate

code

0..1

filterBy.value

Значение параметра поиска или путь к элементу ресурса, указываемые в фильтре, например 1е1950 или Patient/123

string

1

channelType

Тип канала уведомлений

code

1

endpoint

Адрес конечной точки, получающей уведомления

uri

0..1

121

ПНСТ 995—2024

Окончание таблицы 201

Имя

Описание

Тип данных

Кратность

parameter.name

Наименование параметра

string

1

parameter.value

Значение параметра

string

1

heartbeatPeriod

Интервал между периодическими уведомлениями в секундах

unsignedlnt

0..1

timeout

Таймаут в секундах

unsignedlnt

0..1

contentType

Тип MIME содержания уведомления

code

0..1

content

Объем содержания, передаваемого в теле уведомления. Допустимые значения: empty

(пустое) | id-only (только id) | full-resource (весь экземпляр ресурса)

code

0..1

maxCount

Максимальное число событий в одном уведомлении

positivelnt

0..1

10.3.6.3 Привязки к наборам значений

Привязки к наборам значений описаны в таблице 202.

Таблица 202 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

Subscription.status

http://hl7.org/fhir/ValueSet/ subscription-status

Обязательная

Статус подписки

Subscription.filterBy. resourceType

http://hl7.org/fhir/ValueSet/ subscription-types

Расширяемая

Тип ресурса, допустимый для фильтра подписки

Subscription.filterBy. comparator

http://hl7.org/fhir/ValueSet/ search-comparator

Обязательная

Оператор сравнения, используемый в параметрах поиска

Subscription.filterBy. modifier

http://hl7.org/fhir/ValueSet/ search-modifier-code

Обязательная

Модификатор параметра поиска

Subscription.channelType

http://hl7.org/fhir/ValueSet/ subscription-channel-type

Расширяемая

Тип канала подписки

Subscription.contentType

http://hl7.org/fhir/ValueSet/ mimetypes

Обязательная

Тип MIME (все возможные коды из ВСР-13, см. http:// tools.ietf.org/html/ Ьср13

Subscription.content

http://hl7.org/fhir/ValueSet/ subscription-payload-content

Обязательная

Объем содержания, передаваемого в теле уведомления

10.3.6.4 Ограничения ресурса Subscription

Ограничения ресурса Subscription описаны в таблице 203.

Таблица 203 — Ограничения ресурса Subscription

Идентификатор

Вид

Путь

Описание

Выражение

scr-1

Правило

Subscription. filterBy

Элементы comparator и modifier взаимно исключающие

(comparator.exists() and modifier.exists()).not()

10.3.6.5 Параметры поиска экземпляров ресурса Subscription

Специальные параметры поиска экземпляров ресурса Subscription описаны в таблице 204. В дополнение к ним могут использоваться общие параметры поиска, описанные в подразделе 12.27.

122

Таблица 204 — Специальные параметры поиска экземпляров ресурса Subscription

ПНСТ 995—2024

Имя

Тип

Описание

Выражение

contact

token

Контактная информация техподдержки подписки

Subscription.contact

contentlevel

token

Объем содержания, передаваемого в теле уведомления

Subscription.content

filter-value

string

Значение параметра поиска или путь к элементу ресурса

Subscription.filterBy. value

identifier

token

Идентификатор подписки

Subscription.identifier

name

string

Человеко-читаемое наименование подписки

Subscription.name

owner

reference

Субъект, ответственный за изменение подписки

Subscription.managingEntity (Practitioner, Organization, Care-Team, Patient, HealthcareSer-vice, PractitionerRole, RelatedPerson)

payload

token

Тип MIME содержания уведомления

Subscription.contentType

status

token

Текущий статус подписки

Subscription.status

topic

uri

Канонический идентификатор темы подписки, инициирующей уведомления

SubscriptionTopic

type

token

Тип канала уведомлений

Subscription.channelType

url

uri

Адрес конечной точки, получающей уведомления

Subscription.endpoint

10.3.6.6 Объем содержания

В элементе content могут быть указаны три варианта объема содержания:

- empty (пустое);

- id-only (только идентификатор id);

- full-resource (весь экземпляр ресурса).

При выборе объема содержания следует принимать во внимание производительность обработки и безопасность персональных медицинских данных. Во многих случаях целесообразно выбрать вариант id-only, обеспечивающий хороший баланс безопасности и производительности. Если сервер не поддерживает запрошенный вариант объема содержания, он может отказать в создании экземпляра ресурса Subscription или принять его с изменением варианта объема содержания.

Если указан вариант объема содержания empty, то любая информация о событии, вызвавшем уведомление, может быть получена по другим каналам, например, с помощью REST API. Получив уведомление, клиент может передать серверу запрос на поиск экземпляров ресурсов, типы которых перечислены в теме подписки SubscriptionTopic, измененных после определенного момента времени. Это наилучший вариант с точки зрения безопасности персональных медицинских данных.

10.3.6.7 Передача пакета уведомлений

При частом обновлении информации по теме подписки сервер может объединить несколько уведомлений в один контейнер Bundle типа subscription-notification. При этом сервер должен не откладывать передачу пакета уведомлений дольше, чем указано в элементе Subscription.heartbeat.

10.3.6.8 Управление подписками

Клиент инициирует взаимодействие create или update, в котором тело запроса содержит экземпляр ресурса Subscription с начальным статусом status = requested (запрошена). При успешном взаимодействии клиент выделяет из заголовка Location, возвращенного сервером в ответ на запрос, логический идентификатор id созданного экземпляра ресурса Subscription для дальнейшего управления подпиской.

Сервер проверяет тело запроса на предмет возможности регистрации подписки. Если регистрация возможна, он создает экземпляр ресурса Subscription со статусом status = requested. В противном случае он по возможности должен возвратить экземпляр ресурса OperationOutcome с указанием причины отказа в регистрации.

123

ПНСТ 995—2024

При активации подписки сервер присваивает элементу status значение active (действует). Он может это сделать сразу при регистрации подписки, минуя статус requested.

При наличии соответствующей авторизации клиент может выполнить поиск экземпляров ресурса Subscription или чтение истории изменения экземпляра, например, чтобы найти свои действующие подписки. Если подписка более не нужна, клиент инициирует удаление соответствующего экземпляра ресурса Subscription.

Если при передаче уведомления возникла ошибка (например, конечная точка клиента, указанная в Subscription.endpoint, недоступна), то сервер может повторить уведомление фиксированное число раз. Если ошибка не исчезла, то сервер по возможности должен присвоить статусу подписки значение error и сохранить у себя сведения об ошибке, например, в экземпляре ресурса Subscriptionstatus. Сервер может повторить попытки уведомления спустя некоторое время. При успешной передаче уведомления он может присвоить подписке статус active и удалить сохраненные сведения об ошибке. Если повторы попыток не помогают, сервер может присвоить подписке статус off и прекратить дальнейшие попытки.

Сведения об ошибках передаются в экземпляре ресурса Subscriptionstatus, содержащемся в первой записи entry контейнера уведомления Bundle. Клиент может получить сведения об ошибках, запросив применение операции $status к соответствующему экземпляру ресурса Subscription. Для возобновления передачи уведомлений клиент может инициировать взаимодействие изменения update, передав в теле запроса экземпляр ресурса Subscription со статусом active.

10.3.7 Тема подписки SubscriptionTopic

10.3.7.1 Область применения и использования

Тип ресурса SubscriptionTopic описывает тему подписки на уведомления об изменении экземпляров ресурсов, предоставляемые сервером другой системе (клиенту).

10.3.7.2 Структура ресурса

Ресурс SubscriptionTopic является детализацией абстрактного ресурса DomainResource. Состав элементов ресурса SubscriptionTopic представлен на рисунке 28 и в таблице 205.

124

dassTeua подписки

DomainResource

«Resource»

SubscriptionTopic

+ uri: uri

+ identifier Identifier [0..*]

+ version: string [0..1]

+ name: string [0..1]

+ title: string [0..1]

+ experimental: boolean [0..1]

+ date: dateTime [0..1]

+ publisher: string [0..1]

+ contact: ContactDetail [0..*]

+ description: marldown [0..1]

+ useContext: UsageContext [0..*]

+ jurisdiction: CodeableConcept [0..*]

+ purpose: markdown [0..1]

+ copyright: marldown [0..1]

+ copyrightLabel: string [0..1]

+ approval Date: date [0..1]

+ lastReviewDate: date [0..1]

+ effectiveperiod: Period

«Binding»

+ versionAlgorithm [x] [0.. 1 ]

+ status: code

«RefTarget»

+ derivedFrom: canonical [0..1]

{■resource!rigger

0..*

ПНСТ 995—2024

BackboneElement

ResourceTrigger

+ description: maridown [0..1]

«Binding»

+ resource: uri

+ supported Interaction: code [0..*]

+q ueryCriteriaLo..*

BackboneElement

QueryCrlterla

+eventTrigger

0..*

+

previous: string [0..1]

current: string [0..1] resultForDelete: code [0..1] requireBoth: boolean [0..1]

«Binding»

+ resultForCreate: code [0..1]

BackboneElement

EvenfRIgger

+ description: marldown [0..1] «Binding»

+ event: CodeableConcept

+ resource: uri

+nottficatlonShape^ p..'

+canFilterBy. 0..*

BackboneElement

Notifications hape

BackboneElement

CanFllterBy

+ resource: uri

+ include: string [0..*]

+ revinclude: string [0..*]

+ description: markdown [0..1]

+ filterParameter string

+ filterDefinition: uri [0..1]

«Binding»

+ resource: uri [0..1]

+ comparator, code [0..*]

+ modifier, code [0..*]

Рисунок 28 — Ресурс SubscriptionTopic

Таблица 205 — Состав элементов ресурса SubscriptionTopic

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

0..1

implicitRules

Совокупность правил, по которым должен создаваться экземпляр ресурса

uri

0..1

language

Основной человеческий язык, на котором представлено содержание ресурса

code

0..1

125

ПНСТ 995—2024

Продолжение таблицы 205

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса DomainResource

text

Текстовое описание содержания экземпляра ресурса для интерпретации человеком

Narrattive

0..1

contained

Вложенный экземпляр ресурса

Resource

0..*

extension

Дополнительное содержание, определенное при реализации

Extension

0..*

modifierExtension

Модифицирующее расширение, которое не может быть проигнорировано

Extension

0..*

Собственные элементы

uri

Канонический идентификатор темы подписки в форме глобально уникального URI

uri

identifier

Формальный идентификатор, используемый для идентификации темы подписки при ее представлении в других форматах

Identifier

0..*

version

Версия темы подписки

string

0..1

versionAlgorithm[x]

Способ сравнения версий. Допустимые значения: versionAlgorithmString|version-AlgorithmCoding

0..1

name

Наименование темы подписки, предназначенное для компьютерной обработки

string

0..1

title

Человеко-читаемое наименование темы подписки

string

0..1

derivedFrom

Базовая тема подписки, полностью или частично используемая данной темой

canonical

0..1

status

Статус публикации. Допустимые значения: draft (проект) | active (действует) | retired (действие прекращено) | unknown (неизвестен)

code

experimental

Признак использования для целей тестирования или обучения

boolean

0..1

date

Дата (и необязательное время) публикации темы подписки. Она должна обновляться при изменении версии определения или ее статуса либо при существенном изменении его содержания

dateTime

0..1

publisher

Издатель — наименование организации или Ф.И.О. лица, опубликовавшего тему подписки

string

0..1

contact

Контактная информация издателя темы подписки

ContactDetail

0..*

description

Краткое описание темы подписки, ориентированное на потребителя

markdown

0..1

useContext

Контекст использования темы подписки

UsageContext

0..*

jurisdiction

Страна или регион, где предполагается использование темы подписки. Элемент запрещен, оставлен только для обратной совместимости. Вместо него следует использовать элемент useContext с соответствующим значением компонента code

CodeableConcept

0..*

purpose

Описание назначения темы подписки

markdown

0..1

126

Продолжение таблицы 205

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

copyright

Авторские права на тему подписки

markdown

0..1

copyrightLabel

Краткая характеристика авторских прав (до 50 символов), например, «Все права сохраняются»

string

0..1

approvalDate

Дата утверждения темы подписки

date

0..1

lastReviewDate

Дата последнего пересмотра темы подписки

date

0..1

effectivePeriod

Период действия темы подписки

Period

1

resourceTrigger

Определение триггера на основе ресурсов, используемого темой подписки

BackboneElement

0..*

resourceTrigger. description

Текстовое описание триггера на основе ресурсов

markdown

0..1

resourceTrigger. resource

Тип ресурса, который может использоваться в данном триггере

uri

1

resourceTrigger.

supportedlnteraction

Поддерживаемые взаимодействия. Допустимые значения: create (создать) | update (изменить) | delete (удалить)

code

0..*

resourceTrigger. queryCriteria

Правило срабатывания триггера, основанное на запросе

BackboneElement

0..1

resourceTrigger.

queryCriteria.previous

Условие в форме REST-запроса, применяемого к экземпляру ресурса в том состоянии, которое он имел до выполнения действия (например, до изменения). Указывается без базового URL и ведущей косой черты (/)

string

0..1

resourceTrigger. queryCriteria.result-ForCreate

Поведение сервера при создании экземпляра ресурса в случае выполнения условия, указанного в элементе previous. Допустимые значения: testpasses (тест проходит) | test-fails (тест не проходит)

code

0..1

resourceTrigger.

queryCriteria.current

Условие в форме REST-запроса, применяемого к экземпляру ресурса в том состоянии, которое он имеет после выполнения действия (например, после изменения). Указывается без базового URL и ведущей косой черты (/)

string

0..1

resourceTrigger. queryCriteria.result-ForDelete

Поведение сервера при удалении экземпляра ресурса в случае выполнения условия, указанного в элементе previous. Допустимые значения: testpasses (тест проходит) | test-fails (тест не проходит)

code

0..1

resourceTrigger.query-

Criteria.requireBoth

Если имеет значение true, то для инициации уведомления должны выполняться условия, указанные в элементах previous и current. Если имеет значение false или отсутствует, то уведомление инициируется, когда выполнено хотя бы одно из условий, указанных в previous и current

boolean

0..1

eventTrigger

Определение триггера на основе событий, используемого темой подписки

Backbone-Element

0..*

eventTrigger.description

Текстовое описание триггера на основе событий

markdown

0..1

127

ПНСТ 995—2024

Окончание таблицы 205

Имя

Описание

Тип данных

Кратность

eventTrigger. event

Событие, инициирующее срабатывание триггера

CodeableConcept

1

eventTrigger.resource

Имя типа ресурса, который может использоваться в данном триггере

uri

1

canFilterBy

Свойство, по которому может фильтроваться уведомление по данной теме

Backbone-Element

0..*

canFilterBy.description

Описание параметра фильтра

markdown

0..1

canFilterBy.resource

Имя основного типа ресурса, который может использоваться в данном фильтре

uri

0..1

canFilterBy.

filterParameter

Имя фильтра, определенное в экземпляре ресурса SubscriptionTopic

string

canFilterBy.filterDefinition

Адрес URL определения параметра фильтра

uri

0..1

canFilterBy.comparator

Оператор сравнения

code

0..*

canFilterBy.modifier

Поддерживаемый модификатор параметра фильтра. Допустимые значения: missing | exact | contains | not | text | in | not-in | below | above | type | identifier | of-type | code-text | text-advanced | iterate

code

0..*

notificationshape

Свойства, предназначенные для описания форм уведомлений по данной теме

Backbone-Element

0..*

notificationshape, resource

Имя основного типа ресурса, используемого в уведомлении

uri

1

notificationshape.include

Значение параметра Jnclude, инициирующего включение ссылочного экземпляра ресурса по прямой ссылке

string

0..*

notificationshape, revinclude

Значение параметра _revinclude, инициирующего включение ссылочного экземпляра ресурса по обратной ссылке

string

0..*

10.3.7.3 Привязки к наборам значений

Привязки к наборам значений описаны в таблице 206.

Таблица 206 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

Subscription.status

http://hl7.org/fhir/ValueSet/ subscription-status

Обязательная

Использование адреса

10.3.7.4 Ограничения ресурса SubscriptionTopic

Ограничения ресурса SubscriptionTopic описаны в таблице 207.

Таблица 207 — Ограничения ресурса SubscriptionTopic

Идентификатор

Вид

Путь

Описание

Выражение

scr-1

Правило

Subscription.filterBy

Элементы comparator и modifier взаимно исключающие

(comparator.exists() and modifier.exists()).not()

10.3.7.5 Параметры поиска экземпляров ресурса SubscriptionTopic

Специальные параметры поиска экземпляров ресурса SubscriptionTopic описаны в таблице 208.

В дополнение к ним могут использоваться общие параметры поиска, описанные в подразделе 12.27.

128

Таблица 208 — Специальные параметры поиска экземпляров ресурса SubscriptionTopic

ПНСТ 995—2024

Имя

Тип

Описание

Выражение

date

date

Дата публикации темы подписки

SubscriptionTopic.date

derived-or-self

uri

Канонический идентификатор темы подписки или базовой темы

SubscriptionTopic.url | SubscriptionTopic. derivedFrom

effective

date

Период действия темы подписки

SubscriptionTopic.effectivePeriod

event

token

Событие, инициирующее срабатывание триггера

SubscriptionTopic.eventTrigger.event

identifier

token

Формальный идентификатор темы подписки

SubscriptionTopic.identifier

resource

uri

Допустимый тип ресурса, который может использоваться в данном триггере

SubscriptionTopic.resourceTrigger.resource | SubscriptionTopic.eventTrigger.resource | SubscriptionTopic.canFilterBy.resource | SubscriptionTopic.notificationShape. resource

status

token

Статус публикации. Допустимые значения: draft | active | retired | unknown

SubscriptionTopic.status

title

string

Человеко-читаемое наименование темы подписки

SubscriptionTopic.title

triggerdescription

string

Текстовое описание триггера на основе ресурсов

SubscriptionTopic.resourceTrigger. description

uri

uri

Канонический идентификатор темы подписки

SubscriptionTopic.url

version

token

Версия темы подписки

SubscriptionTopic.version

10.3.8 Статус подписки Subscriptionstatus

10.3.8.1 Область применения и использования

Тип ресурса Subscriptionstatus описывает статус подписки на уведомления об изменении экземпляров ресурсов, предоставляемые сервером другой системе (клиенту). Он не имеет собственной конечной точки, и его экземпляры используются только в контейнере Bundle типа subscription-notification.

10.3.8.2 Структура ресурса

Ресурс Subscriptionstatus является детализацией абстрактного ресурса DomainResource. Состав элементов ресурса представлен на рисунке 29 и в таблице 209.

DomainResource

«Resource»

Subscriptionstatus

+ eventsSinceSubscripti о nStart: integer64 [0.. 1 ] «Binding»

+ status: code [o..1]

+ type: code

+ error CodeableConcept [0..*]

«RefTarget»

+ subscription: Reference

+ topic: canonical [0..1]

+notification Event

BackboneElement

NotiflcatlonEvent

+ eventNumber: integer64

+ timeStamp: instant [0..1]

«RefTarget»

+ focus: Reference [0..1]

+ additional Context: Reference [0..1]

0..*

Рисунок 29 — Ресурс Subscriptionstatus

129

ПНСТ 995—2024

Таблица 209 — Состав элементов ресурса Subscriptionstatus

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

0..1

implicitRules

Совокупность правил, по которым должен создаваться экземпляр ресурса

uri

0..1

language

Основной человеческий язык, на котором представлено содержание ресурса

code

0..1

Унаследованы от абстрактного класса DomainResource

Текстовое описание содержания экземпляра ресурса для интерпретации человеком

Narrattive

0..1

contained

Вложенный экземпляр ресурса

Resource

0..*

extension

Дополнительное содержание, определенное при реализации

Extension

0..*

Modifier-Extension

Модифицирующее расширение, которое не может быть проигнорировано

Extension

0..*

Собственные атрибуты

status

Статус подписки. Допустимые значения: requested | active | error | off | entered-in-error

code

0..1

type

Тип уведомления. Допустимые значения: handshake | heartbeat | event-notification | query-status | query-event

code

0..1

eventsSince-

SubscriptionStart

Число событий с момента начала подписки

integer64

0..1

notificationEvent

Детальные сведения о событиях, относящихся к данному уведомлению

Backbone-Element

0..*

notificationEvent. eventNumber

Порядковый номер события

integer64

notificationEvent. timestamp

Штамп даты и времени возникновения события

instant

0..1

notificationEvent. focus

Основной экземпляр ресурса в сведениях о событии

Reference

0..1

notificationEvent. additionalContext

Контекст события. Обычно содержит ссылку на экземпляр ресурса, связанный с основным экземпляром, указанным в элементе focus

Reference

0..1

subscription

Ссылка на экземпляр ресурса Subscription, инициировавший данное уведомление

Reference

topic

Ссылка на тему подписки, с которой связано данное уведомление

canonical

0..1

error

Ошибка подписки

Codeable-Concept

0..*

10.3.8.3 Привязки к наборам значений

Привязки к наборам значений описаны в таблице 210.

130

Таблица 210 — Привязки к наборам значений

ПНСТ 995—2024

Путь

Набор значений

Тип привязки

Описание

Subscriptionstatus.status

http://hl7.org/fhir/ValueSet/ subscription-status

Обязательная

Статус подписки

SubscriptionStatus.type

http://hl7.org/fhir/ValueSet/ subscription-notification-type

Обязательная

Тип уведомления

Subscriptionstatus.error

http://hl7.org/fhir/ValueSet/ subscription-error

Пример

Код ошибки

10.3.8.4 Ограничения ресурса Subscriptionstatus

Ограничения ресурса Subscriptionstatus описаны в таблице 211.

Таблица 211 —Ограничения ресурса Subscriptionstatus

Идентификатор

Вид

Путь

Описание

Выражение

sst-1

Правило

Базовый

При типе уведомления event-notification или query-event элемент notificationEvent обязателен

(type = ‘event-notification’ or type = ‘query-event’) implies notificationEvent.exists()

sst-2

Правило

Базовый

При типе уведомления querystatus элемент status обязателен

type = ‘query-status’ implies status. exists()

10.3.8.5 Нумерация уведомлений

Поскольку каналы уведомлений, перечисленные в таблице 200, не обеспечивают гарантированную доставку уведомлений, то использование монотонно возрастающей нумерации уведомлений позволяет выявлять некоторые виды ошибок доставки. Если используются другие каналы уведомлений (например, очереди сообщений), то нумерация уведомлений не обязательна, но может оказаться полезной. Поэтому элемент Subscriptionstatus.notificationEvent.eventNumber определен как обязательный. При этом нумерация может быть сквозной для всех уведомлений по данной подписке или же только для уведомлений, переданных в конкретном контейнере Bundle.

10.3.8.6 Типы уведомлений

Определены пять типов уведомлений:

a) event (уведомление о событии);

б) handshake (уведомление о соединении);

в) heartbeat (периодическое уведомление);

г) query-status (запрос статуса);

д) query-event (запрос события).

Во всех случаях тело уведомления представляет собой контейнер Bundle типа Issubscription-notification, в котором первая запись Bundle.entry содержит экземпляр ресурса Subscriptionstatus (статус подписки).

10.3.8.7 Уведомление о событии

При уведомлении о событии (Subscriptionstatus.type=event) к элементам ресурса Subscriptionstatus предъявляются требования, приведенные в таблице 212.

Таблица 212 — Требования к элементам ресурса Subscriptionstatus при уведомлении о событии

Элемент

Обязательность

Примечание

Subscriptionstatus, status

Рекомендован

Текущий статус соответствующей подписки (например, active)

Subscriptionstatus, type

Обязателен

Должен иметь значение event-notification

Subscriptionstatus. eventsSince-SubscriptionStart

Условно обязателен

Обязателен для каналов уведомлений, не гарантирующих доставку

131

ПНСТ 995—2024

Окончание таблицы 212

Элемент

Обязательность

Примечание

Subscriptionstatus. notificationEvent

Обязателен

При уведомлении о событии этот элемент обязателен

Subscriptionstatus. notificationEvent. eventNumber

Условно обязателен

Обязателен для каналов уведомлений, не гарантирующих доставку

Subscriptionstatus. notificationEvent. timestamp

Рекомендован

По значению этого элемента клиент может определить фактический момент возникновения события

Subscriptionstatus.

notificationEvent.focus

Условно обязателен

Обязательность зависит от объема содержания, передаваемого в теле уведомления:

empty: должен отсутствовать;

id-only: должен присутствовать;

full-resource: должен присутствовать

Subscriptionstatus .notificationEvent. additionalContext

Условно обязателен

Обязательность зависит от объема содержания, передаваемого в теле уведомления:

empty: должен отсутствовать;

id-only: по возможности должен присутствовать;

full-resource: по возможности должен присутствовать

SubscriptionStatus.topic

Необязателен

Если по человеко-читаемому описанию темы подписки можно определить, что в содержание уведомления включена персональная медицинская информация, то из соображений ее безопасности этот элемент лучше опустить

10.3.8.8 Соединение

При уведомлении о соединении (Subscriptionstatus.type=event) к элементам ресурса Subscriptionstatus предъявляются требования, приведенные в таблице 213. Действия клиента по получении такого уведомления зависят от канала уведомлений. Например, если уведомления передаются по каналу rest-hook, то конечная точка клиента должна возвратить серверу соответствующий код статуса HTTP.

Таблица 213 — Требования к элементам ресурса Subscriptionstatus при уведомлении о соединении

Элемент

Обязательность

Примечание

Subscriptionstatus, status

Рекомендован

Текущий статус соответствующей подписки (например, active)

Subscriptionstatus, type

Обязателен

Должен иметь значение handshake

Subscriptionstatus. eventsSince-SubscriptionStart

Необязателен

Если этот элемент присутствует, то для вновь созданной подписки он должен иметь значение 0. При повторном соединении его значение может быть ненулевым

Subscriptionstatus. notificationEvent

Условно обязателен

В контейнер Bundle с уведомлением о соединении могут быть включены уведомления о событиях (например, при возобновлении соединения сервер может включить в контейнер Bundle уведомления обо всех событиях, имевших место после завершения соединения)

Subscriptionstatus. notificationEvent. eventNumber

Условно обязателен

Обязателен для каналов уведомлений, не гарантирующих доставку

132

Окончание таблицы 213

ПНСТ 995—2024

Элемент

Обязательность

Примечание

Subscriptionstatus. notificationEvent. timestamp

Условно обязателен

Если в контейнер Bundle с уведомлением о соединении включены уведомления о предыдущих событиях, то рекомендуется передавать этот элемент, чтобы клиент мог обработать уведомления о предыдущих событиях в правильном контексте

Subscriptionstatus.

notificationEvent. focus

Условно обязателен

Обязательность зависит от объема содержания, передаваемого в теле уведомления:

empty: должен отсутствовать;

id-only: должен присутствовать;

full-resource: должен присутствовать

Subscriptionstatus. notificationEvent. additionalContext

Условно обязателен

Обязательность зависит от объема содержания, передаваемого в теле уведомления:

empty: должен отсутствовать;

id-only: по возможности должен присутствовать;

full-resource: по возможности должен присутствовать

Subscriptionstatus, topic

Необязателен

Если по человеко-читаемому описанию темы подписки можно определить, что в содержание уведомления включена персональная медицинская информация, то из соображений ее безопасности этот элемент лучше опустить

10.3.8.9 Периодическое уведомление

При периодическом уведомлении (Subscriptionstatus.type= heartbeat) к элементам ресурса Subscriptionstatus предъявляются требования, приведенные в таблице 214.

Таблица 214 — Требования к элементам ресурса Subscriptionstatus при периодическом уведомлении

Элемент

Обязательность

Примечание

Subscriptionstatus, status

Рекомендован

Текущий статус соответствующей подписки (например, active)

Subscriptionstatus, type

Обязателен

Должен иметь значение heartbeat

Subscriptionstatus. eventsSince-SubscriptionStart

Условно рекомендован

Наличие этого элемента позволяет клиенту выявить пропуск уведомлений. Рекомендован для подписок, не гарантирующих доставку уведомлений

Subscriptionstatus. notificationEvent

Условно обязателен

В контейнер Bundle с периодическим уведомлением могут быть включены уведомления о событиях (например, при возобновлении соединения сервер может включить в контейнер Bundle уведомления обо всех событиях, имевших место после завершения соединения)

Subscriptionstatus. notificationEvent. eventNumber

Условно обязателен

Если в контейнер Bundle с периодическим уведомлением включены уведомления о предыдущих событиях, то рекомендуется передавать этот элемент для каналов уведомлений, не гарантирующих доставку

Subscriptionstatus. notificationEvent. timestamp

Условно обязателен

Если в контейнер Bundle с периодическим уведомлением включены уведомления о предыдущих событиях, то рекомендуется передавать этот элемент, чтобы клиент мог обработать уведомления о предыдущих событиях в правильном контексте

Subscriptionstatus.

notificationEvent.focus

Условно обязателен

Обязательность зависит от объема содержания, передаваемого в теле уведомления:

empty: должен отсутствовать;

id-only: при наличии элемента notificationEvent должен присутствовать;

full-resource: при наличии элемента notificationEvent должен присутствовать

133

ПНСТ 995—2024

Окончание таблицы 214

Элемент

Обязательность

Примечание

Subscriptionstatus. notificationEvent. additionalContext

Условно обязателен

Обязательность зависит от объема содержания, передаваемого в теле уведомления:

empty: должен отсутствовать;

id-only: при наличии элемента notificationEvent по возможности должен присутствовать;

full-resource: при наличии элемента notificationEvent по возможности должен присутствовать

Subscriptionstatus, topic

Необязателен

Если по человеко-читаемому описанию темы подписки можно определить, что в содержание уведомления включена персональная медицинская информация, то из соображений ее безопасности этот элемент лучше опустить

10.3.8.10 Запрос статуса

Клиент может запросить у сервера текущий статус подписки с помощью операции $status. В ответ на этот запрос сервер должен возвратить уведомление, в котором Subscriptionstatus.type = query-status. К элементам возвращенного экземпляра ресурса Subscriptionstatus предъявляются требования, приведенные в таблице 215.

Таблица 215 — Требования к элементам ресурса Subscriptionstatus при запросе статуса

Элемент

Обязательность

Примечание

Subscriptionstatus, status

Обязателен

Текущий статус соответствующей подписки (например, active)

Subscriptionstatus, type

Обязателен

Должен иметь значение query-status

Subscriptionstatus. eventsSince-SubscriptionStart

Условно обязателен

Наличие этого элемента позволяет клиенту выявить пропуск уведомлений. Обязателен для подписок, не гарантирующих доставку уведомлений

Subscriptionstatus. notificationEvent

Условно обязателен

В контейнер Bundle с ответом на запрос статуса могут быть включены уведомления о недавних событиях

Subscriptionstatus, topic

Рекомендован

Если по человеко-читаемому описанию темы подписки можно определить, что в содержание уведомления включена персональная медицинская информация, то из соображений ее безопасности этот элемент лучше опустить. В остальных случаях этот элемент рекомендован

10.3.8.11 Запрос события

Сервер может обеспечивать обработку запроса сведений о событиях, которые уже произошли, переданного с помощью операции $events. В ответ на этот запрос сервер должен возвратить уведомление, в котором Subscriptionstatus.type = query-event. К элементам возвращенного экземпляра ресурса Subscriptionstatus предъявляются требования, приведенные в таблице 216.

Таблица 216 — Требования к элементам ресурса Subscriptionstatus при запросе события

Элемент

Обязательность

Примечание

Subscriptionstatus.status

Рекомендован

Текущий статус соответствующей подписки (например, active)

SubscriptionStatus.type

Обязателен

Должен иметь значение query-event

Subscriptionstatus. eventsSince-SubscriptionStart

Условно рекомендован

Наличие этого элемента позволяет клиенту выявить пропуск уведомлений. Рекомендован для подписок, не гарантирующих доставку уведомлений

134

Окончание таблицы 216

ПНСТ 995—2024

Элемент

Обязательность

Примечание

Subscriptionstatus. notificationEvent

Условно обязателен

Обязателен, если сведения о событиях найдены

Subscriptionstatus. notificationEvent. eventNumber

Условно обязателен

Обязателен для каналов уведомлений, не гарантирующих доставку

Subscriptionstatus. notificationEvent. timestamp

Рекомендован

По значению этого элемента клиент может определить фактический момент возникновения события

Subscriptionstatus.

notificationEvent.focus

Условно обязателен

Обязательность зависит от объема содержания, передаваемого в теле уведомления: empty: должен отсутствовать;

id-only: при наличии элемента notificationEvent должен присутствовать;

full-resource: при наличии элемента notificationEvent должен присутствовать

Subscriptionstatus. notificationEvent. additionalContext

Условно обязателен

Обязательность зависит от объема содержания, передаваемого в теле уведомления: empty: должен отсутствовать;

id-only: при наличии элемента notificationEvent по возможности должен присутствовать;

full-resource: при наличии элемента notificationEvent по возможности должен присутствовать

SubscriptionStatus.topic

Необязателен

Если по человеко-читаемому описанию темы подписки можно определить, что в содержание уведомления включена персональная медицинская информация, то из соображений ее безопасности этот элемент лучше опустить

11 Модель данных хранилища результатов измерений

11.1 Состав данных хранилища результатов измерений

11.1.1 Общий состав данных

Хранилище результатов измерений содержит данные трех основных служб (рисунок 30):

а) служба результатов измерений (сведения о состоянии здоровья пациента, о назначенных ему мероприятиях, о выполнении мероприятий, об используемых медицинских приборах);

б) служба подписки (темы подписки и подписки клиентов на заданные темы);

в) терминологическая служба (системы кодирования и наборы значений).

135

ПНСТ 995—2024

«use»

«use»

Рисунок 30 — Общий состав данных хранилища результатов измерений

11.1.2 Состав данных службы результатов измерений

11.1.2.1 Общие требования

Состав данных службы результатов измерений представлен в таблице 217.

Таблица 217 — Состав данных службы результатов измерений

Раздел хранилища

Описание

Дневники

Дневники самонаблюдения, приема лекарств, приема питания

Эпикризы и предупреждения

Этапные эпикризы, предупреждения и напоминания пациенту

Персональные медицинские приборы

Идентификация и свойства персональных медицинских приборов и менеджеров

Планы ведения

Планы ведения пациентов

Результаты измерений

Результаты измерений, выполненных ПМП

11.1.2.2 Дневники

Состав данных раздела «Дневники» приведен на рисунке 31 и в таблице 218. На рисунке показаны ссылки между экземплярами ресурсов, в том числе ссылки на экземпляры ресурсов, хранящихся в других разделах.

136

ПНСТ 995—2024

(from Результаты измерений)

Рисунок 31 — Состав данных раздела «Дневники»

Таблица 218 — Состав данных раздела «Дневники»

Имя

Описание

Ресурс/профиль

Пункт

Запись дневника

Абстрактный объект, используется для группировки видов записей дневников

Запись дневника питания

Запись дневника приема питания

Nutritionintake

11.18

Запись дневника приема лекарств

Запись дневника приема или применения лекарственных препаратов

Medicationstatement

11.15

Запись дневника самонаблюдений

Запись дневника самонаблюдений

Questionnaire-Response

11.16

Форма дневника

Форма дневника самонаблюдений

Questionnaire

11.17

11.1.2.3 Эпикризы и предупреждения

Состав данных раздела «Эпикризы и предупреждения» представлен на рисунке 32 и в таблице 219. На рисунке показаны ссылки между экземплярами ресурсов, в том числе ссылки на экземпляры ресурсов, хранящихся в других разделах.

137

ПНСТ 995—2024

object Эпикризы и предупреждения

(from Планы ведения) ^гот Планы ведения)

Рисунок 32 — Состав данных раздела «Эпикризы и предупреждения»

Таблица 219 — Состав данных раздела «Эпикризы и предупреждения»

Имя

Описание

Ресурс/профиль

Пункт

Заключение врача

Этапный эпикриз в процессе ведения пациента и по завершении плана ведения

DiagnosticReport-Dm

11.14.6

Результат исследования

Результат исследования, полученный вне рамок дистанционного мониторинга

Observation, вложен в экземпляр ресурса Diagno-sticReport

11.11

Предупреждение или напоминание

Предупреждение или напоминание, предназначенное пациенту

Detectedlssue-Dm

11.19

11.1.2.4 Персональные медицинские приборы

Состав данных раздела «Персональные медицинские приборы» представлен на рисунке 33 и в таблице 220. На рисунке показаны ссылки между экземплярами ресурсов, в том числе ссылки на экземпляры ресурсов, хранящихся в других разделах.

138

object Персональный медицинский прибор

ПНСТ 995—2024

Рисунок 33 — Состав данных раздела «Персональные медицинские приборы»

Таблица 220 — Состав данных раздела «Персональные медицинские приборы»

Имя

Описание

Ресурс/профиль

Пункт

Персональный медицинский прибор

Персональный медицинский прибор

Device-Phd

11.7.7

Менеджер ПМП

Менеджер персонального медицинского прибора

Device-Phg

11.7.8

11.1.2.5 Планы ведения

Состав данных раздела «Планы ведения» представлен на рисунке 34 и в таблице 220. На рисунке показаны ссылки между экземплярами ресурсов, в том числе ссылки на экземпляры ресурсов, хранящихся в других разделах.

139

ПНСТ 995—2024

object План ведения

(from Персональные медицинские приборы)

медицинские приборы)

Рисунок 34 — Состав данных раздела «Планы ведения»

Таблица 221 — Состав данных раздела «Планы ведения»

Имя

Описание

Ресурс/профиль

Пункт

План ведения ДМ

План ведения дистанционного мониторинга пациента

CarePlan-DM

11.2.5

Целевой показатель

Целевой показатель, который планируется достичь в результате выполнения плана ведения

Goal-DM

11.3.6

Результат исследования

Результат исследований, необходимый для вычисляемого результата измерений (например, рост пациента для весов, способных вычислить индекс массы тела)

Observation

11.11

140

Окончание таблицы 221

ПНСТ 995—2024

Имя

Описание

Ресурс/профиль

Пункт

Мероприятие

Мероприятие, выполняемое в рамках плана ведения

Task

11.5.8

Измерение с помощью ПМП

Task-Phd

11.5.10

Лекарственное назначение

Task-Medication

11.5.9

Ведение дневника приема лекарств

Task-MedStat

11.5.11

Ведение дневника питания

Task-Nutrlnt

11.5.12

Ведение дневника самонаблюдений

Task-QuestResp

11.5.13

Составление заключения врача

Task-DiagRep

11.5.14

Лечащий врач

Медицинский специалист, составивший план ведения и контролирующий его выполнение

Practitioner-Dm

11.13.5

Пациент

Пациент, которому назначен план дистанционного мониторинга

Patient-Dm

11.12.6

Привязка прибора к пациенту

Ассоциация между пациентом и персональным медицинскими прибором или менеджером ПМП

DeviceAssociation-Dm

11.8.5

Метрика прибора

Измерительная способность ПМП

DeviceMetric

11.10

11.1.2.6 Результаты измерений

Состав данных раздела «Результаты измерений» представлен на рисунке 35 и в таблице 222. На рисунке показаны ссылки между экземплярами ресурсов, в том числе ссылки на экземпляры ресурсов, хранящихся в других разделах.

141

ПНСТ 995—2024

object Результат измерения,

Числовой результат: Observation

Сверка показаний таймеров: Observation

tags

профиль = Observation-PhdNumeric

«derive»

«derive»

______________________________________________________________________________________________________________l_________________

Составной числовой результат Observation

tags

профиль = Observation-PhdCompoundNumeric

«derive»

! tags

«derive» профиль = Observation-PhdCoincidentTimeStamp

I ।-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

«derive»!

Строковый результат Observation

tags

профиль = Observation-PhdStringEnumeration

Кодированный результат Observation

tags

профиль = Observafion-PhdCcdedEnumeration

Битовый результат Observation

tags

профиль = Observation-PhdBitsEnumeration

Массивочитываний; Observation

tags профиль = Observation-PhdRtsa

Рисунок 35 — Состав данных раздела «Результаты измерений»

Таблица 222 — Состав данных раздела «Результаты измерений»

Имя

Описание

Ресурс/профиль

Пункт

Скалярная величина

Числовой результат: физическая величина, например, частота сердечных сокращений, процент заряда батареи прибора

Observation-PhdNumeric

11.11.24

Сверка показаний таймеров

Сверка показаний таймеров менеджера и ПМП

Observation-

PhdCoincidentTimeStamp

11.11.31

Массив скалярных величин

Совокупность связанных физических величин, например, систолическое и диастолическое артериальное давление

Observation-

PhdCompoundNumeric

11.11.25

Строковый результат

Человеко-читаемая строка, принадлежащая определенному списку

Observation-

PhdStringEnumeration

11.11.28

142

Окончание таблицы 222

ПНСТ 995—2024

Имя

Описание

Ресурс/профиль

Пункт

Кодируемый результат

Кодированное значение, принадлежащее определенному справочнику значений

Observation-

PhdCodedEnumeration

11.11.26

Битовый результат

Целое число, отдельные биты которого характеризуют определенные состояния, например, состояние источника питания, состояние датчика

Observation-

PhdBitsEnumeration

11.11.27

Массив считываний

Массив числовых считываний биосигнала, например, кардиограммы

Observation-PhdRtsa

11.11.29

Медиаданные

Медиаданные, например, растровое изображение или аудиоданные

Observation-PhdMedia

11.11.30

11.1.3 Состав данных службы подписки

Состав данных службы подписки приведен на рисунке 36 и в таблице 223.

object Служба подписки

Рисунок 36 — Состав данных службы подписки

Таблица 223 — Состав данных службы подписки

Имя

Описание

Ресурс

Пункт

Подписка

Подписка на уведомления по определенной теме

Subscription

10.3.6

Тема подписки

Тема, доступная для подписки

SubscriptionTopic

10.3.7

11.1.4 Состав данных терминологической службы

Состав данных терминологической службы приведен на рисунке 37 и в таблице 224.

143

ПНСТ 995—2024

obj ect Терми налог ическая служба /

Система кодирования: CodeSystem

+включаетв О-1 себя подмножество +включает в себя О..* подмножество ---------°"*

Набор значений: ValueSet _______________________ 1

Рисунок 37 — Состав данных терминологической службы

Таблица 224 — Состав данных терминологической службы

Имя Описание Ресурс

Пункт

Набор значе- Подмножество понятий из системы кодирования и (не- ValueSet ний обязательно) одного или нескольких наборов значений

15.2.2

Система коди- Коллекция кодированных понятий (справочник или CodeSystem рования классификатор)

15.1.2

11.2 Ресурс CarePlan — план дистанционного мониторинга пациента

11.2.1 Область применения и использования

Тип ресурса CarePlan описывает индивидуальный план ведения пациента, составляемый лечащим врачом на основе одного или нескольких типовых планов с учетом особенностей состояния здоровья и социального статуса пациента. Индивидуальный план ведения обычно включает в себя несколько мероприятий — визиты к врачам разных специальностей (явки), обследования и лечебных воздействий. Мероприятия должны проводиться в определенном порядке. Часть мероприятий должна проводиться строго одно после другого, часть мероприятий может проводиться независимо друг от друга или параллельно. Порядок проведения мероприятий задается правилами типа «визит к пульмонологу должен проводиться после рентгенографии легких» или «повторный визит к участковому терапевту должен проводиться после выполнения всех остальных мероприятий».

Для каждого мероприятия плана задают:

а) вид мероприятия (визит, обследование, лечение);

б) тип мероприятия (визит к офтальмологу, общий анализ крови, санаторно-курортное лечение и т. д.);

в) описание подготовки пациента к выполнению мероприятия;

г) описание действий пациента при самостоятельном выполнении мероприятия (например, видеоролик по правильному измерению артериального давления или по замене аккумуляторных батарей в приборе);

д) график выполнения (например, через две недели, а затем каждые 4 месяца);

е) признак контрольной точки (при проведении такого мероприятия обязательно проводится оценка эффективности плана, на основании которой план может быть скорректирован).

11.2.2 Структура ресурса

Ресурс CarePlan является детализацией абстрактного ресурса DomainResource. Состав элементов ресурса CarePlan представлен на рисунке 38 и в таблице 225.

144

ПНСТ 995—2024

DomainResource

«Resource» Ca rePlan

+ identifier Identifier [0..*]

+ instantiatesUri: uri [0..*]

+ tide: string [0..1]

+ description: string [0..1]

+ period: Period [O..1]

+ created: dateTime [0..1]

+ note: Annotation [0..*]

«RefTarget»

+ instantiatesCanonical: canonical [0..*]

+ basedOn: Reference [0..*]

+ replaces: Reference [0..*]

+ partOf: Reference [0..*]

+ subject: Reference

+ encounter Reference [0..1]

+ custodian: Reference [0..1]

+ contributor Reference [0..*]

+ careTeam: Reference [0..*]

+ supporting Info: Reference [0..*]

+ goal: Reference [0..*]

«Binding»

+ status: code

+ intent: code

+ category: CodeableConcept [0..*]

«Binding, RefTarget»

+ addresses: CodeableReference [0..*]

BackboneElement

Activity

4-actwjty + prog's- Annotation [0..*]

«RefTarget»

+ performedActivity: CodeableReference [0..*]

+ plannedActivityReference: Reference [0..*]

Рисунок 38 — Ресурс CarePlan

Таблица 225 — Состав элементов ресурса CarePlan

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

0..1

implicitRules

Совокупность правил, по которым должен создаваться экземпляр ресурса

uri

0..1

language

Основной человеческий язык, на котором представлено содержание ресурса

code

0..1

Унаследованы от абстрактного класса DomainResource

text

Текстовое описание содержания экземпляра ресурса для интерпретации человеком

Narrattive

0..1

contained

Вложенный экземпляр ресурса

Resource

0..*

extension

Дополнительное содержание, определенное при реализации

Extension

0..*

modifierExtension

Модифицирующее расширение, которое не может быть проигнорировано

Extension

0..*

Собственные элементы

identifier

Идентификатор плана ведения

Identifier

0..*

145

ПНСТ 995—2024

Окончание таблицы 225

Имя

Описание

Тип данных

Кратность

instantiatesCanonical

Ссылка на типовой план, представленный в виде экземпляра ресурса

canonical

0..*

instantiatesUri

Ссылка на URL типового плана

uri

0..*

basedOn

Ссылка на план, требование или направление, на котором основан данный план

Reference

0..*

replaces

Ссылка на заменяемый план

Reference

0..*

partOf

Ссылка на головной план

Reference

0..*

status

Статус плана. Допустимые значения: draft | active ] on-hold | revoked | completed | entered-in-error | unknown

code

1

intent

Роль плана. Допустимые значения: proposal | plan | order | option | directive

code

1

category

Тип плана ведения

CodeableConcept

0..*

title

Человеко-читаемое наименование плана

string

0..1

description

Описание плана

string

0..1

subject

Ссылка на субъект плана — пациент или группа

Reference

1

encounter

Ссылка на случай медицинской помощи

Reference

0..1

period

Период действия плана

Period

0..1

created

Дата и время создания плана

dateTime

0..1

custodian

Ссылка на ответственное лицо или организацию

Reference

0..1

contributor

Ссылка на лицо, роль, устройство или организацию, принявшие участие в составлении плана

Reference

0..*

careTeam

Ссылка на бригаду медицинских работников, участвующих в назначении и выполнении плана

Reference

0..*

addresses

Код клинического состояния пациента или ссылка на описание состояния, в связи с которым назначен данный план

Codeable-Reference

0..*

supportinginfo

Ссылка на экземпляр ресурса, являющийся частью данного плана

Reference

0..*

goal

Ссылка на желательный результат плана

Reference

0..*

activity

Мероприятие, которое уже выполнено или должно быть выполнено в рамках плана

Backbone-Element

0..*

performedActivity

Ссылка на мероприятие плана

Codeable-Reference

0..*

progress

Примечания к статусу или выполнению мероприятия

Annotation

0..*

plannedActivity-Reference

Ссылка на планируемое мероприятие

Reference

0..*

note

Примечание к плану

Annotation

0..*

11.2.3 Привязки к наборам значений

Привязки к наборам значений описаны в таблице 226.

146

Таблица 226 — Привязки к наборам значений

ПНСТ 995—2024

Путь

Набор значений

Тип привязки

Описание

CarePlan.status

http://hl7.org/fhir/ValueSet/ request-status

Обязательная

Состояния жизненного цикла требования

CarePlan.intent

http://hl7.org/fhir/ValueSet/ care-plan-intent

Обязательная

Степень директивности

CarePlan.category

http://hl7.org/fhir/ValueSet/ care-plan-category

Пример

Тип плана ведения

CarePlan.addresses

http://hl7.org/fhir/ValueSet/ clinical-findings

Пример

Клиническое состояние пациента

CarePlan.activity. performedActivity

http://hl7.org/fhir/ValueSet/ care-plan-activity-performed

Пример

Тип мероприятия плана ведения

11.2.4 Параметры поиска экземпляров ресурса CarePlan

Специальные параметры поиска экземпляров ресурса CarePlan описаны в таблице 227. В дополнение к ним могут использоваться общие параметры поиска, описанные в подразделе 12.27.

Таблица 227 — Специальные параметры поиска экземпляров ресурса CarePlan

Имя

Тип

Описание

Выражение

activity-reference

reference

Планируемое мероприятие

CarePlan .activity, planned Activity Reference (Appointment, MedicationRequest, Task, Nu-tritionOrder, RequestOrchestration, Vision-Prescription, DeviceRequest, ServiceReq-uest, CommunicationRequest, Immunization-Recommendation, SupplyRequest)

based-on

reference

Ссылка на план, требование или направление, на котором основан данный план

CarePlan.basedOn (CarePlan, RequestOrchestration, NutritionOrder, ServiceRequest)

care-team

reference

Ссылка на бригаду медицинских работников

CarePlan.careTeam (CareTeam)

category

token

Тип плана ведения

CarePlan.category

condition

reference

Ссылка на описание состояния пациента

CarePlan.addresses.reference

custodian

reference

Ссылка на ответственное лицо или организацию

CarePlan.custodian (Practitioner, Organization, CareTeam, Device, Patient, PractitionerRole, RelatedPerson)

date

date

Период действия плана

CarePlan.period

encounter

reference

Ссылка на случай медицинской помощи

CarePlan.encounter (Encounter)

goal

reference

Ссылка на желательный результат плана

CarePlan.goal (Goal)

identifier

token

Идентификатор плана ведения

CarePlan.identifier

instantiates-canonical

reference

Ссылка на типовой план, представленный в виде экземпляра ресурса

CarePlan.instantiatesCanonical (Questionnaire, Measure, PlanDefinition, OperationDefi-nition, ActivityDefinition)

147

ПНСТ 995—2024

Окончание таблицы 227

Имя

Тип

Описание

Выражение

instantiates-uri

uri

Ссылка на URL типового плана

CarePlan.instantiatesUri

intent

token

Роль плана. Допустимые значения: proposal | plan | order | option | directive

CarePlan.intent

part-of

reference

Ссылка на головной план

CarePlan.partOf (CarePlan)

patient

reference

Ссылка на пациента — субъекта плана

CarePlan.subject.where(resolve() is Patient) (Patient)

replaces

reference

Ссылка на заменяемый план

CarePlan.replaces (CarePlan)

status

token

Статус плана. Допустимые значения: draft | active | on-hold | revoked | completed | entered-in-er-ror | unknown

CarePlan.status

subject

reference

Ссылка на субъект плана

CarePlan.subject

11.2.5 Профиль плана дистанционного мониторинга пациента

Профиль плана дистанционного мониторинга пациента CarePlan-Dm ограничивает элементы ресурса CarePlan в соответствии с рисунком 39 и таблицей 228. Имя ресурса остается неизменным — CarePlan, имя профиля передается в элементе meta.profile.

148

dass Профиль ДМ

DomainResource

«Resource, Profile»

CarePlan

+ identifier Identifier

+ description: string

+ period: Period

«RefTarget»

+ replaces: Reference [0..1]

+ subject: Reference

+ custodian: Reference

+ supportinginfo: Reference [0..*]

+ goal: Reference [1..*]

«Binding»

+ status: code

+ intent: code = plan

+ category: CodeableConcept

Профиль плана ведения дистанционного мониторинга пациента

Рисунок 39 — Профиль CarePlan-Dm

Таблица 228 — Состав элементов профиля CarePlan-Dm

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

1

Унаследованы от абстрактного класса DomainResource

text

Полное описание плана ведения, ориентированное на пациента

Narrattivel

text.status

Статус повествовательного содержания. Фиксированное значение ’’additional"

code

1

text.div

Текст в формате xhtml с ограниченным форматированием

xhtml

1

Собственные элементы

identifier

Идентификатор плана ведения, присвоенный медицинской информационной системой

Identifier

1

status

Статус плана. Допустимые значения: draft | active | on-hold | revoked | completed | entered-in-error | unknown

code

1

intent

Роль плана. Фиксированное значение "plan”

code

1

category

Тип плана ведения

CodeableConcept

1

description

Краткое описание плана

string

1

subject

Ссылка на идентификацию пациента

Reference

1

period

Период действия плана

Period

1

custodian

Ссылка на идентификацию лечащего врача

Reference

1

supportinginfo

Ссылка на экземпляр ресурса Observation со сведениями о показателях, необходимых для интерпретации результатов измерений

Reference

0..*

goal

Ссылка на желательный результат плана

Reference

1..*

11.2.6 Контекст профиля

Содержание экземпляра ресурса CarePlan представляет собой только часть плана ведения. Полное содержание плана ведения может быть представлено направленным графом, включающим в себя ссылочные экземпляры ресурсов. Этот граф служит контекстом профиля.

Рекомендуемый контекст профиля плана дистанционного мониторинга пациента показан на рисунке 40.

149

ПНСТ 995—2024

object Профиль ДМ

Рисунок 40 — Контекст профиля CarePlan-DM

Согласно этому рисунку, полный план дистанционного мониторинга пациента должен включать в себя:

а) экземпляр ресурса CarePlan,

б) один или несколько экземпляров ресурса Goal, описывающих целевые показатели, которые должны быть достигнуты при выполнении плана;

в) идентификацию лечащего врача (экземпляр ресурса Practitioner);

г) идентификацию пациента (экземпляр ресурса Patient);

д) одно или несколько мероприятий (экземпляры ресурса Task), осуществляемых в процессе выполнения плана. Для каждого мероприятия должны быть указаны расписание выполнения (класс Input) и исполнитель (класс Performer). Исполнителями могут быть пациент, лечащий врач и персональный медицинский прибор (должен быть выбран ровно один);

е) один или несколько персональных медицинских приборов (экземпляры ресурса Device), привязанных к пациенту с помощью экземпляров ресурса DeviceAssociation.

ж) экземпляры ресурса Observation, содержащие показатели состояния пациента (например, вес и рост), требуемые для автоматической интерпретации результатов измерений.

11.2.7 Создание и изменение плана дистанционного мониторинга

Полный план дистанционного мониторинга пациента должен передаваться в контейнере транзакции Bundle, у которого элемент type имеет значение transaction. В процессе выполнения в план могут вноситься изменения, которые также должны передаваться в контейнере транзакции Bundle.

При завершении или прекращении выполнения плана следует присвоить элементу CarePlan. status значение revoked или completed, элементу CarePlan.period.end присвоить дату (дату и время) этого события, и внести соответствующие изменения во все экземпляры ресурсов Task, содержащие ссылки на данный экземпляр ресурса CarePlan. Все эти действия должны быть специфицированы в одном контейнере транзакции Bundle.

150

ПНСТ 995—2024

При приостановке выполнения плана следует присвоить элементу CarePlan.status значение on-hold, и внести соответствующие изменения статуса во все экземпляры ресурсов Task, содержащие ссылки на данный экземпляр ресурса CarePlan и имеющие значение статуса in-progress.

При возобновлении выполнения плана следует присвоить элементу CarePlan.status значение active и выполнить замену статуса на in-progress во всех экземплярах ресурса Task, содержащих ссылки на данный экземпляр ресурса CarePlan, у которых предыдущее значение статуса имело значение in-progress.

Действия по приостановке или возобновления выполнения должны быть специфицированы в одном контейнере транзакции Bundle.

В процессе выполнения плана не должны допускаться изменения следующих элементов ресурса CarePlan:

a) identifier— идентификатор плана ведения;

б) subject — ссылка на идентификацию пациента;

в) custodian — ссылка на идентификацию лечащего врача.

При необходимости таких изменений следует прекратить действие плана, включая все его мероприятия, и создать новые экземпляры ресурса CarePlan и связанных с ним мероприятий.

11,3 Ресурс Goal — цель

11.3.1 Область применения и использования

Тип ресурса Goal используется для описания целевого состояния здоровья субъекта медицинской помощи, которое планируется достичь за заданный период или к заданному моменту времени. Это целевое состояние может достигаться в результате лечения или естественного восстановления организма с течением времени.

Например, целью ведения пациента с диабетом может быть концентрация показателя гликированного гемоглобина не выше 5,6 % за три месяца в результате лекарственной терапии, контроля питания и увеличенной физической активности.

11.3.2 Структура ресурса

Ресурс Goal является детализацией абстрактного ресурса DomainResource. Состав элементов ресурса Goal представлен на рисунке 41 и в таблице 229.

DomainResource

«Resource»

Goal

+ Identifier. Identifier [0..*]

+ continuous boolean [0..1]

+ statusDate: date [0..1]

+ statusReason: string [0..1]

+ addresses: Reference [0..*]

+ note: Annotation [0..*]

+ outcome: CodeableReference [0..*]

«Binding» 4

+ lifecycleStatus code 1

+ achievementstatus CodeableConcept [0..1]

+ category: CodeableConcept [0..*]

+ priority: CodeableConcept [0..1]

+ description: CodeableConcept

«RefTargot»

+ subject* Reference

+ source: Reference [0..1]

«Type Cho ice, Binding»

+ start[x] [0..1]

BackboneElement

Target |?j

+ due[x][0..1]

«Binding, Constraint»

+ measure: CodeableConcept [0.. 1 ] «Constraint»

+ detail[x] [0..1]

Рисунок 41 — Ресурс Goal

151

ПНСТ 995—2024

Таблица 229 — Состав элементов ресурса Goal

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

0..1

implicitRules

Совокупность правил, по которым должен создаваться экземпляр ресурса

uri

0..1

language

Основной человеческий язык, на котором представлено содержание ресурса

code

0..1

Унаследованы от абстрактного класса DomainResource

text

Текстовое описание содержания экземпляра ресурса для интерпретации человеком

Narrattive

0..1

contained

Вложенный экземпляр ресурса

Resource

0..*

extension

Дополнительное содержание, определенное при реализации

Extension

0..*

modifierExtension

Модифицирующее расширение, которое не может быть проигнорировано

Extension

0..*

Собственные элементы

identifier

Внешний идентификатор цели

Identifier

0..*

lifecycleStatus

Состояние жизненного цикла цели. Допустимые значения: proposed (предложена) | planned (запланирована) | accepted (принята) | active (действует) | on-hold (приостановлена) | completed (достигнута) | cancelled (отменена) | entered-in-error (введена по ошибке) | rejected (отклонена)

code

1

achievement-Status

Состояние достижения цели. Рекомендованные значения: in-progress (в процессе) | improving (улучшение) | worsening (ухудшение) | no-change (без изменений) | achieved (достигнута) | sustaining (необходимо поддерживать) | not-achieved (не достигнута) | no-progress (без динамики) | not-attainable (недостижима)

CodeableConcept

0..1

category

Категория цели

CodeableConcept

0..*

continuous

После достижения цели требуется поддержка

boolean

0..1

priority

Приоритет цели. Рекомендованные значения: high-priority (высокий приоритет) | medium-priority (умеренный приоритет) | low-priority (низкий приоритет)

CodeableConcept

0..1

description

Код или текст описания цели

CodeableConcept

1

subject

Ссылка на субъект цели

Reference

1

start[x]

Начало движения к цели

*

0..1

target

Целевой показатель

Backbone-Element

0..*

target.measure

Код или наименование целевого параметра

CodeableConcept

0..1

152

Окончание таблицы 229

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

target.detail[x]

Значение целевого параметра

*

0..1

target.due[x]

Ожидаемая дата или длительность достижения цели

*

0..1

statusDate

Дата перехода в текущее состояние

date

0..1

statusReason

Причина перехода в текущее состояние

string

0..1

source

Ссылка на лицо, ответственное за достижение цели

Reference

0..1

addresses

Ссылка на состояние/диагноз, в связи с которым поставлена цель

Reference

0..*

note

Примечание к цели

Annotation

0..*

outcome

Код достигнутого показателя или ссылка на него

Codeable-

Reference

0..*

11.3.3 Привязки к наборам значений

Привязки к наборам значений описаны в таблице 230.

Таблица 230 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

Goal.lifecycle-Status

http://hl7.org/fhir/ValueSet/goal-status

Обязательная

Состояние жизненного цикла цели

Goal.achievementstatus

http://hl7.org/fhir/ValueSet/goal-achievement

Предпочтительная

Состояние достижения цели

Goal.category

http://hl7.org/fhir/ValueSet/goal-category

Пример

Категория цели

Goal.priority

http://hl7.org/fhir/ValueSet/goal-priority

Предпочтительная

Приоритет цели

Goal.description

http://hl7.org/fhir/ValueSet/ clinical-findings

Пример

Коды состояний, проблем и диагнозов, определенные в номенклатуре SNOMED СТ как потомки понятия с кодом 404684003

Goal.start[x]

http://hl7.org/fhir/ValueSet/goal-start-event

Пример

Начало движения к цели

Goal.target, measure

http://hl7.org/fhir/ValueSet/ observation-codes

Пример

Все коды LOINC

Goal.outcome

http://hl7.org/fhir/ValueSet/ clinical-findings

Пример

Коды состояний, проблем и диагнозов, определенные в номенклатуре SNOMED СТ как потомки понятия с кодом 404684003

11.3.4 Ограничения ресурса Goal

Ограничения ресурса Goal описаны в таблице 231.

Таблица 231 — Ограничения ресурса Goal

Идентификатор

Вид

Путь

Описание

Выражение

goi-1

Правило

Goal, target

Если элемент Goal.target.detail присутствует, то должен присутствовать элемент Goal.target.measure

(detail.exists() and measure.exists()) or detail. exists().not()

153

ПНСТ 995—2024

11.3.5 Параметры поиска экземпляров ресурса Goal

Специальные параметры поиска экземпляров ресурса Goal описаны в таблице 232. В дополнение к ним могут использоваться общие параметры поиска, описанные в подразделе 12.27.

Таблица 232 — Специальные параметры поиска экземпляров ресурса Goal

Имя

Тип

Описание

Выражение

achievement-status

token

Состояние достижения цели

Goal.achievementstatus

addresses

reference

Ссылка на состояние/диа-гноз, в связи с которым поставлена цель

Goal.addresses

(Condition, RiskAssessment, Medication-Request, NutritionOrder, Observation, Procedure, Medicationstatement, ServiceRe-quest)

category

token

Категория цели

Goal.category

description

token

Код или текст описания цели

Goal.description

identifier

token

Внешний идентификатор цели

Goal.identifier

lifecycle-status

token

Состояние жизненного цикла цели

Goal.lifecycleStatus

patient

reference

Ссылка на субъект цели — пациент

Goal.subject.where(resolve() is Patient) (Patient)

start-date

date

Дата начала движения к цели

(Goal.start.ofType(date))

subject

reference

Ссылка на субъект цели

Goal.subject

(Group, Organization, Patient)

target-date

date

Ожидаемая дата достижения цели

(Goal.target.due.ofType(date))

target-measure

token

Код или наименование целевого параметра

Goal.target.measure

11.3.6 Профиль цели дистанционного мониторинга пациента

Профиль цели дистанционного мониторинга пациента Goal-Dm ограничивает элементы ресурса Goal в соответствии с рисунком 42 и таблицей 233. Имя ресурса остается неизменным — Goal, имя профиля передается в элементе meta.profile.

154

class Цель-профиль ДМ ^

DomainResource

«Resource,Profile»

Goal

+ identifier Identifier

+ statusDate: date

«Binding»

+ llfecycleStatus code

♦ description: CodeableConcept

«RefTarget»

+ subject: Reference

BackboneElement

Target |F|

♦target-------------------------------------

^ «Binding, Constraint»

°-* + measure: CodeableConcept «Constraint»

+ detailRange: Range

Рисунок 42 — Профиль Goal-Dm

Таблица 233 — Состав элементов профиля Goal-Dm

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

1

Унаследованы от абстрактного класса DomainResource

text

Текстовое описание цели, ориентированное на пациента

Narrattive

0..1

text.status

Статус повествовательного содержания. Фиксированное значение ’’additional”

code

1

text.div

Текст в формате xhtml с ограниченным форматированием

xhtml

1

Собственные элементы

identifier

Уникальный идентификатор цели, присвоенный медицинской информационной системой

Identifier

1

lifecycleStatus

Состояние жизненного цикла цели. Допустимые значения: proposed (предложена) | planned (запланирована) | accepted (принята) | active (действует) | on-hold (приостановлена) | completed (достигнута) | cancelled (отменена) | entered-in-error (введена по ошибке) | rejected (отклонена)

code

1

description

Код или текст описания цели

CodeableConcept

1

subject

Ссылка на субъект цели

Reference

1

target

Целевой показатель

BackboneElement

0..*

target.measure

Код или наименование целевого параметра

CodeableConcept

1

target.detailRange

Диапазон значений целевого параметра

Range

1

statusDate

Дата перехода в текущее состояние

date

1

11.4 Ресурс ServiceRequest — назначение

11.4.1 Область применения и использования

В зависимости от значения элемента intent тип ресурса ServiceRequest описывает назначение, предложение или план диагностических и иных мероприятий, результаты которых представляются в виде экземпляров ресурсов Procedure (процедура), DiagnosticReport (заключение врача) и Observation (результат исследования).

Примерами мероприятий служат:

-диагностические исследования;

- эндоскопические процедуры;

- консультации;

- биопсии;

- хирургические процедуры;

- физиотерапевтические процедуры;

- патронаж;

-другие клинические вмешательства.

Основным применением ресурса ServiceRequest является обеспечение процессов назначения мероприятий в интересах одного пациента. Однако во многих случаях оказания медицинской помощи диагностические мероприятия выполняются для групп лиц, медицинских изделий и даже объектов окружающей среды. Состав ресурса ServiceRequest охватывает все эти случаи. Он может использо-

155

ПНСТ 995—2024

ваться для передачи назначений врача или предложений по диагностике, сформированных системой поддержки медицинских решений. Его экземпляры могут использоваться для описания планируемых мероприятий в составе плана ведения пациента.

11.4.2 Структура ресурса

Ресурс ServiceRequest является детализацией абстрактного ресурса DomainResource. Состав элементов ресурса ServiceRequest представлен на рисунке 43 и в таблице 234.

class Назначение

DomainResource

«Resource»

ServiceRequest

+ identifier. Identifier [0..*]

+ instantiates Uri: uri [0..*]

+ requisition: Identifier [0..1]

+ doNotPerform: boolean [0..1]

+ authoredOn: dateTime [0..1]

+ note: Annotation [0..*]

«RefTarget»

+ instantiatesCanonical: canonical [0..*]

+ basedOn: Reference [0..*]

+ replaces: Reference [0..*]

+ partOf: Reference [0..*]

+ subject: Reference [0..1]

+ focus: Reference [0..1]

+ encounter Reference [0..1]

+ requester: Reference [0..1]

+ performer. Reference [0..*]

+ insurance: Reference [0..*]

+ specimen: Reference [0..*]

+ bodystructure: Reference [0..1]

+ relevantHistory: Reference [0..*]

«Binding»

+ status: code

+ intent: code

+ category: CodeableConcept [0. .1 ]

+ priority: code [0..1]

+ performerType: CodeableConcept [0..1]

+ bodySIte: CodeableConcept [0..*]

«Binding, RefTarget»

+ code: CodeableReference [0..1]

+ location: CodeableReference [0..*]

+ reason: CodeableReference [0..*]

+ supportinginfo: CodeableReference [0..*]

«TypeChoice»

+ quantitylx] [0..1]

+ occurrence[x] [0..1]

+ asNeededfx] [0..1]

BackboneElement

OrderDetall

«Binding, RefTarget»

+ parameterFocus: Codeable Refers псе [0..1]

+orderiDetail 0..*

+para meter. ^1..*

BackboneElement Parameter

«Binding»

+ code: CodeableConcept

«TypeChoice»

+ value[x]

+patienti nstnjction

0..*

BackboneElement

Patientinstruction

«TypeChoice»

+ instruction[x] [0..1]

Рисунок 43 — Ресурс ServiceRequest

Таблица 234 — Состав элементов ресурса ServiceRequest

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

0..1

implicitRules

Совокупность правил, по которым должен создаваться экземпляр ресурса

uri

0..1

156

Продолжение таблицы 234

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

language

Основной человеческий язык, на котором представлено содержание ресурса

code

0..1

Унаследованы от абстрактного класса DomainResource

text

Текстовое описание содержания экземпляра ресурса для интерпретации человеком

Narrattive

0..1

contained

Вложенный экземпляр ресурса

Resource

0..*

extension

Дополнительное содержание, определенное при реализации

Extension

0..*

modifier-

Extension

Модифицирующее расширение, которое не может быть проигнорировано

Extension

0..*

Собственные элементы

identifier

Идентификатор назначения

Identifier

0..*

instantiates-Canonical

Ссылка на экземпляр ресурса, описывающий определение назначения

canonical

0..*

instantiatesllri

Ссылка на внешнее определение назначения

uri

0..*

basedOn

Ссылка на требование, для выполнения которого предназначено назначения

Reference

0..*

replaces

Заменяемое назначение

Reference

0..*

requisition

Общий идентификатор группы связанных назначений или требований

Identifier

0..1

status

Состояние выполнения назначения. Допустимые значения: draft (в процессе подготовки) | active (действует) | on-hold (приостановлено) | revoked (отозвано) | completed (завершено) | entered-in-error (создано по ошибке) | unknown (неизвестное)

code

1

intent

Категория требования, с которым связано выполнение назначения. Допустимые значения: proposal (предложение) | plan (план) | directive (указание) | order (требование) | original-order (исходное требование) | reflex-order (вторичное требование) | filler-order (требование исполнителя) | instance-order (частичное требование) | option (опция)

code

1

partOf

Ссылка на мероприятие, частью которого является данное мероприятие

Reference

0..*

category

Классификация назначения

CodeableConcept

0..1

priority

Срочность назначения. Допустимые значения: routine (обычная) | urgent (ургентная) | asap (как можно скорее) | stat (немедленно). По умолчанию — обычная

code

0..1

doNot-Perform

Значение true указывает, что данное назначение в определенных случаях не должно выполняться. Эти случаи определяются значениями элементов code, occurrence, bodySite и performer. Например, если присутствует элемент occurrence — не должно выполняться в течение данного периода, если присутствует элемент performer — не должно выполняться данным исполнителем

boolean

0..1

157

ПНСТ 995—2024

Продолжение таблицы 234

Имя

Описание

Тип данных

Кратность

code

Код назначения или ссылка на определение плана или действия

Codeable-Reference

0..1

orderDetail

Дополнительные детали и указания по выполнению назначения

Backbone-Element

0..*

orderDetail.

Parameter-Focus

Код контекста назначения или ссылка на контекст

Codeable-Reference

0..1

orderDetail. parameter

Дополнительная информация, требуемая для выполнения данного назначения

Backbone-Element

1..*

orderDetail.

parameter, code

Тип параметра, например, device-configuration (детали конфигурации прибора)

CodeableConcept

1

orderDetail. parameter. value[x]

Значение параметра

*

1

quantity[x]

Назначенное количество

*

0..1

subject

Ссылка на субъект назначения. Обычно субъектом является пациент, но им может быть группа лиц, устройство, например, гемодиализный аппарат, или даже местонахождение, например, при анализе окружающей среды

Reference

0..1

focus

Ссылка на фокус назначения, если он отличается от субъекта назначения, например, плод или донор

Reference

0..1

encounter

Ссылка на случай медицинской помощи

Reference

0..1

occurrence[x]

Ожидаемые дата и время выполнения назначения

*

0..1

asNeeded[x]

Признак выполнения назначения при необходимости или кодируемое условие выполнения

*

0..1

authoredOn

Дата и время создания данного экземпляра ресурса

dateTime

0..1

requester

Ссылка на инициатора назначения

Reference

0..1

performerType

Требуемый тип исполнителя назначения

CodeableConcept

0..1

performer

Ссылка на требуемого исполнителя назначения. Если указано несколько экземпляров данного элемента, то они трактуются как альтернативные исполнители без учета порядка указания. Если требуется несколько исполнителей, то ссылка должна указывать на экземпляр ресурса CareTeam

Reference

0..*

location

Ссылка на предпочтительное место выполнения назначения

Codeable-

Reference

0..*

reason

Причина назначения — кодируемое значение типа CodeableConcept или ссылка на экземпляр ресурса Condition | Observation | DiagnosticReport | DocumentReference | Detectedlssue

Codeable-

Reference

0..*

supportinginfo

Дополнительная клиническая информация

Codeable-Reference

0..*

insurance

Ссылка на страховой план, покрытие расходов или авторизацию, имеющую отношение к назначению

Reference

0..*

specimen

Ссылка на идентификацию и описание биоматериала

Reference

0..*

158

Окончание таблицы 234

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

bodySite

Целевая анатомическая область назначенной процедуры

CodeableConcept

0..*

body-Structure

Ссылка на идентификацию и описание целевой анатомической области назначенной процедуры

Reference

0..1

note

Примечание

Annotation

0..*

patientinstruction

Указания в терминах, доступных пациенту, например, подготовка к проведению исследования или выполнению процедуры

Backbone-Element

0..*

patientinstruction, instruction^

Содержание указаний

*

0..1

relevantHistory

Ссылка на экземпляр ресурса, описывающий динамику изменения назначения, например, переходы состояний выполнения

Reference

0..*

11.4.3 Привязки к наборам значений

Привязки к наборам значений описаны в таблице 235.

Таблица 235 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

ServiceRequest.status

http://hl7.org/fhir/ValueSet/ request-status

Обязательная

Состояние выполнения назначения

ServiceRequest.intent

http://hl7.org/fhir/ValueSet/ request-intent

Обязательная

Категория требования, с которым связано выполнение назначения

ServiceRequest.category

http://hl7.org/fhir/ValueSet/ servicerequest-category

Пример

Классификация назначения

ServiceRequest.priority

http://hl7.org/fhir/ValueSet/ request-priority

Пример

Срочность назначения

ServiceRequest.code

http://hl7.org/fhir/ValueSet/ procedure-code

Пример

Код процедуры

ServiceRequest.orderDetail. parameter.code

http://hl7.org/fhir/ValueSet/ servicerequest-orderdetail-parameter-code

Пример

Тип параметра назначения

ServiceRequest.asNeeded[x]

http://hl7.org/fhir/Value Set/ medication-as-needed-reason

Пример

Условие выполнения назначения

ServiceRequest.performerType

http://hl7.org/fhir/ValueSet/ participant-role

Пример

Тип исполнителя назначения

ServiceRequest.location

ServiceDeliveryLocationRole Type

Пример

Место выполнения назначения

ServiceRequest.reason

http://hl7.org/fhir/ValueSet/ procedure-reason

Пример

Причина назначения

ServiceRequest.bodySite

http://hl7.org/fhir/ValueSet/ body-site

Пример

Анатомическая область

159

ПНСТ 995—2024

11.4.4 Ограничения ресурса ServiceRequest

Ограничения ресурса ServiceRequest описаны в таблице 236.

Таблица 236 — Ограничения ресурса ServiceRequest

Идентификатор

Вид

Путь

Описание

Выражение

bdystr-1

Правило

Базовый

Элемент bodystructure может присутствовать только в том случае, если элемент bodySite отсутствует

bodySite. exists() implies

bodystructure. empty()

prr-1

Правило

Базовый

Элемент orderDetail может присутствовать только в том случае, если элемент code присутствует

orderDetail.empty() or code. exists()

11.4.5 Параметры поиска экземпляров ресурса ServiceRequest

Специальные параметры поиска экземпляров ресурса ServiceRequest описаны в таблице 237. В дополнение к ним могут использоваться общие параметры поиска, описанные в подразделе 12.27.

Таблица 237 — Специальные параметры поиска экземпляров ресурса ServiceRequest

Имя

Тип

Описание

Выражение

authored

date

Дата и время создания экземпляра ресурса

ServiceRequest.authoredOn

based-on

reference

Ссылка на требование, для выполнения которого предназначено назначение

ServiceRequest.basedOn (CarePlan, MedicationRequest, ServiceRequest)

body-site

token

Целевая анатомическая область назначенной процедуры

ServiceRequest.bodySite

body-structure

reference

Ссылка на идентификацию и описание целевой анатомической области назначенной процедуры

ServiceRequest.bodystructure (Bodystructure)

category

token

Классификация назначения

ServiceRequest.category

code-concept

token

Код назначения

ServiceRequest.code.concept

codereference

reference

Ссылка на определение плана или действия

ServiceRequest.code.reference

encounter

reference

Ссылка на случай медицинской помощи

ServiceRequest.encounter (Encounter)

identifier

token

Идентификатор назначения

ServiceRequest.identifier

instantiates-canonical

reference

Ссылка на экземпляр ресурса, описывающий определение назначения

ServiceRequest.instantiatesCanonical (PlanDefinition, ActivityDefinition)

instantiates-uri

uri

Ссылка на внешнее определение назначения

ServiceRequest.instantiatesUri

intent

token

Категория требования, с которым связано выполнение назначения

ServiceRequest.intent

occurrence

date

Ожидаемые дата и время выполнения назначения

ServiceRequest.occurrence.ofType (dateTime) | ServiceRequest.occur-rence.ofType(Period) | ServiceReq-uest.occurrence.ofType(Timing)

patient

reference

Ссылка на субъект назначения — пациент

ServiceRequest.subject.where(re-solve() is Patient)

(Patient)

160

Окончание таблицы 237

ПНСТ 995—2024

Имя

Тип

Описание

Выражение

performer

reference

Ссылка на требуемого исполнителя

ServiceRequest.performer (Practitioner, Organization, Care-Team, Device, Patient, Healthcare-Service, PractitionerRole, Related-Person)

performer-type

token

Тип исполнителя назначения

ServiceRequest.performerType

priority

token

Срочность назначения

ServiceRequest.priority

replaces

reference

Ссылка на заменяемое назначение

ServiceRequest.replaces (ServiceRequest)

requester

reference

Заменяемые назначения

ServiceRequest.requester (Practitioner, Organization, Device, Patient, PractitionerRole, RelatedPer-son)

requisition

token

Идентификатор группы связанных назначений

ServiceRequest.requisition

specimen

reference

Ссылка на идентификацию и описание биоматериала

ServiceRequest.specimen (Specimen)

status

token

Состояние выполнения назначения

ServiceRequest.status

subject

reference

Ссылка на субъект назначения

ServiceRequest.subject (Group, Device, Patient, Location)

11.5 Ресурс Task — мероприятие

11.5.1 Область применения и использования

Тип ресурса Task идентифицирует мероприятие и состояние его выполнения. Экземпляры ресурса Task могут использоваться при управлении рабочими процессами, включающими в себя комплексы связанных мероприятий по выполнению таких требований, как заказ лабораторных исследований, лекарственные назначения и т. д.

Экземпляр ресурса Task отражает шаг рабочего процесса, например отмену заказа, получение результата лабораторного исследования, заказ вторичных исследований в зависимости от полученного результата и т. д.

Основной предмет мероприятия описывается по ссылке, содержащейся в элементе focus. Для выполнения мероприятия могут требоваться определенные входные данные, передаваемые в элементе input. Результат выполнения мероприятия может быть передан в элементе output. Его содержание может служить входными данными для следующего мероприятия.

11.5.2 Структура ресурса

Ресурс Task является детализацией абстрактного ресурса DomainResource. Состав элементов ресурса Task представлен на рисунке 44 и в таблице 238.

161

ПНСТ 995—2024

class Мероприятие

Task

+

identifier Identifier [0..*]

+

instantiatesUri: uri [0..*]

+

groupldentifier Identifier [0..1]

+

doNotPerform: boolean [0..1]

+

description: string [0..1]

+

requestedPeriod: Period [0..1]

+

executionPeriod: Period [0..1]

+

authoredOn: dateTime [0..1]

+

lastModffled: dateTime [0..1]

+

note: Annotation [0..*] «RefTarget»

+

instantiatesCanonical: canonical [0..*]

+

basedOn: Reference [0..*]

+

partOf: Reference [0..*]

+

focus Reference [0..1]

+

for Reference [0..1]

+

encounter. Reference [0..1]

+

requester Reference [0..1]

+

owner Reference [0..1]

+

location: Reference [0..1]

+

insurance: Reference [0..*]

+

relevantHistory: Reference [0..*] «Binding»

+

status: code

+

statusReason: CodeableConcept [0..*]

+

businessstatus: CodeableConcept [0..1]

+

intent: code

+

priority: code [0..1]

+

code: CodeableConcept [0..1] «Binding, RefTarget»

+

requestedPerformer: CodeableReference [0..*]

+

reason: CodeableReference [0..*]

1

1

1

I1

Performer

«Binding»

+ function: CodeableConcept [0..1] «RefTarget»

+ actor Reference

+restrictlon

0..1

о..*

Restriction

+ repetitions positive Int [0.. 1 ]

+ period: Period

«RefTarget»

+ recipient: Reference [0..*]

,+input

input

0..*

+output

Рисунок 44 — Ресурс Task

Таблица 238 — Состав элементов ресурса Task

«Binding»

+ type: CodeableConcept «TypeChoice»

+ valuefx]

Output

«Binding»

+ type: CodeableConcept

«TypeChoice»

+ valuefx]

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

0..1

implicitRules

Совокупность правил, по которым должен создаваться экземпляр ресурса

uri

0..1

language

Основной человеческий язык, на котором представлено содержание ресурса

code

0..1

Унаследованы от абстрактного класса DomainResource

text

Текстовое описание содержания экземпляра ресурса для интерпретации человеком

Narrattive

0..1

contained

Вложенный экземпляр ресурса

Resource

0..*

extension

Дополнительное содержание, определенное при реализации

Extension

0..*

162

Продолжение таблицы 238

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

modifier-Extension

Модифицирующее расширение, которое не может быть проигнорировано

Extension

0..*

Собственные элементы

identifier

Идентификатор мероприятия

Identifier

0..*

instantiates-Canonical

Ссылка на экземпляр ресурса, описывающий определение мероприятия

canonical

0..*

instantiatesUri

Ссылка на внешнее определение мероприятия

uri

0..*

basedOn

Ссылка на требование, для выполнения которого предназначено мероприятие

Reference

0..*

groupldentifier

Общий идентификатор группы мероприятий или требований

Identifier

0..1

partOf

Ссылка на мероприятие, частью которого является данное мероприятие

Reference

0..*

status

Состояние выполнения мероприятия. Допустимые значения: draft (в процессе подготовки) | requested (назначено) | received (получено исполнителем) | accepted (принято к исполнению) | rejected (отклонено) | ready (готово к выполнению) | cancelled (отменено) | in-progress (выполняется) | on-hold (приостановлено) | failed (прекращено) | completed (завершено) | entered-in-error (создано по ошибке)

code

1

statusReason

Причина перехода в данное состояние

Codeable-Concept

0..*

businessStatus

Детали состояния выполнения

Codeable-Concept

0..1

intent

Категория требования, с которым связано выполнение мероприятия. Допустимые значения: unknown (неизвестная) | proposal (предложение) | plan (план) | order (требование) | original-order (исходное требование) | reflex-order (вторичное требование) | fillerorder (требование исполнителя) | instance-order (частичное требование) | option (опция). Значение этого элемента не должно изменяться после создания экземпляра ресурса Task

code

1

priority

Срочность мероприятия. Допустимые значения: routine (обычная) | urgent (ургентная) | asap (как можно скорее) | stat (немедленно). По умолчанию — обычная

code

0..1

doNotPerform

Значение true указывает, что данное мероприятие в определенных случаях не должно выполняться. Эти случаи определяются значениями элементов code, subject, occurrence, requestedPerformer и performer. Например, если присутствует элемент requestedPeriod — не должно выполняться в течение данного периода, если присутствует элемент requestedPerformer — не должно выполняться данным исполнителем

boolean

0..1

code

Тип мероприятия

Codeable-Concept

0..1

description

Описание мероприятия

string

0..1

163

ПНСТ 995—2024

Продолжение таблицы 238

Имя

Описание

Тип данных

Кратность

focus

Ссыпка на экземпляр ресурса, содержащий выполняемое требование или подлежащий манипуляции данным мероприятием. Если таких экземпляров должно быть несколько, следует использовать подчиненные мероприятия

Reference

0..1

for

Ссылка на экземпляр ресурса, для которого выполняется данное мероприятие

Reference

0..1

encounter

Ссылка на случай медицинской помощи

Reference

0..1

requestedPeriod

Ожидаемый период выполнения мероприятия

Period

0..1

executionPeriod

Фактический период выполнения мероприятия

Period

0..1

authoredOn

Дата и время создания данного экземпляра ресурса

dateTime

0..1

lastModified

Дата и время последнего изменения данного экземпляра ресурса

dateTime

0..1

requester

Ссылка на инициатора мероприятия

Reference

0..1

requested-Performer

Ссылка на требуемого исполнителя мероприятия

Codeable-Reference

0..*

owner

Ссылка на ответственного за выполнение мероприятия

Reference

0..1

performer

Исполнитель мероприятия

Backbone-Element

0..*

performer, function

Функция исполнителя

Codeable-Concept

0..1

performer.actor

Ссылка на исполнителя мероприятия

Reference

1

location

Ссылка на место проведения мероприятия

Reference

0..1

reason

Причина мероприятия — кодируемое значение типа CodeableConcept или ссылка на экземпляр ресурса

Codeable-Reference

0..*

insurance

Ссылка на страховой план, покрытие расходов или авторизацию, имеющую отношение к мероприятию

Reference

0..*

note

Дополнительная информация об акте питания

Annotation

0..*

relevantHistory

Ссылка на экземпляр ресурса, описывающий динамику изменения мероприятия, например, переходы состояний выполнения

Reference

0..*

restriction

Ограничения на выполнение мероприятия

Backbone-Element

0..1

restriction, repetitions

Число повторений мероприятия

positivelnt

0..1

restriction, period

Требуемый период выполнения мероприятия. Должен содержаться в периоде, указанном в требовании, для выполнения которого предназначено данное мероприятие

Period

1

restriction, recipient

Если у требования, для выполнения которого предназначено данное мероприятие, несколько субъектов, то в этом элементе могут быть указаны конкретные субъекты, затрагиваемые данным мероприятием

Reference

0..*

164

Окончание таблицы 238

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

input

Дополнительная информация, требуемая для выполнения данного мероприятия

Backbone-Element

0..*

input.type

Имя входного параметра

Codeable-Concept

1

input.value[x]

Значение входного параметра

*

1

output

Выходная информация, произведенная данным мероприятием

Backbone-Element

0..*

output.type

Имя выходного параметра

Codeable-Concept

1

output.value[x]

Значение выходного параметра

*

1

11.5.3 Привязки к наборам значений

Привязки к наборам значений описаны в таблице 239.

Таблица 239 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

Task.status

http://hl7.org/fhir/ValueSeU task-status

Обязательная

Состояние выполнения мероприятия

Task.statusReason

http://hl7.org/fhir/ValueSeU task-status-reason

Пример

Причина перехода в данное состояние

Task.intent

http://hl7.org/fhir/ValueSeU task-intent

Обязательная

Категория требования, с которым связано выполнение мероприятия

Task.priority

http://hl7.org/fhir/ValueSeU request-priority

Обязательная

Срочность мероприятия

Task.code

http://hl7.org/fhir/ValueSeU task-code

Пример

Тип мероприятия

Task.requestedPerformer

http://hl7.org/fhir/ValueSet/ performer-role

Предпочтительная

Роль исполнителя

11.5.4 Ограничения ресурса Task

Ограничения ресурса Task описаны в таблице 240.

Таблица 240 — Ограничения ресурса Task

Идентификатор

Вид

Путь

Описание

Выражение

tsk-1

Правило

Базовый

Элемент Task.restriction допустим, если мероприятие представляет собой выполнение действия над экземпляром ресурса, указанным в элементе focus

restriction.exists() implies code. coding.where(code='fulfiH' and system='http://hl7.org/fhir/

CodeSystem/task-code').exists() and focus.exists()

inv-1

Правило

Базовый

Значение элемента lastModified должно быть больше значения элемента authoredOn или равно ему

lastModified.exists().not() or authoredOn.exists().not() or lastModified >= authoredOn

11.5.5 Переходы состояний выполнения мероприятий

На рисунке 45 приведена «типичная» диаграмма перехода состояний мероприятия. На практике могут использоваться не все переходы, и некоторые переходы могут быть добавлены, включая обратные переходы из терминальных состояний (failed или completed) в состояние выполнения in-progress.

165

ПНСТ 995—2024

Рисунок 45 — Переходы состояний выполнения мероприятия

Вновь созданный экземпляр ресурса Task, идентифицирующий мероприятие, имеет состояние draft (в процессе подготовки). Если оказалось, что он создан по ошибке, то может быть переведен в состояние entered-in-error (создано по ошибке). Для подготовки к выполнению мероприятия может понадобиться несколько предварительных этапов, например назначение исполнителя (requested), получение исполнителем (received), принятие к исполнению (accepted). Вместо такой детализации переходов состояния мероприятию может быть присвоено состоянию ready (готово к выполнению). На любом из предварительных этапов мероприятие может быть отменено (cancelled). Из состояний ready и accepted возможен переход в состояние in-progress (выполняется). Выполнение мероприятия может быть приостановлено (on-hold) и возобновлено (обратный переход в состояние in-progress). Отменить уже начатое мероприятие нельзя — оно должно завершиться успешно (completed) или быть прекращено досрочно (failed).

11.5.6 Статистика переходов состояний

Экземпляр ресурса Task хранит текущее состояние выполнения мероприятия. Для анализа процесса выполнения мероприятия, например времени выполнения отдельных этапов, может понадо-

166

ПНСТ 995—2024

биться статистика переходов состояний. Такая статистика может сохраняться в экземплярах ресурса Provenance (происхождение), и ссылки на них могут храниться в элементах relevantHistory.

11.5.7 Параметры поиска экземпляров ресурса Task

Специальные параметры поиска экземпляров ресурса Task описаны в таблице 227. В дополнение к ним могут использоваться общие параметры поиска, описанные в подразделе 12.27.

Таблица 241 — Специальные параметры поиска экземпляров ресурса Task

Имя

Тип

Описание

Выражение

actor

reference

Ссылка на исполнителя мероприятия

Task.performer.actor (Practitioner, Organization, Care-Team, Patient, Practitioner-Role, RelatedPerson)

authored-on

date

Дата создания

Task.authoredOn

based-on

reference

Ссылка на требование, для выполнения которого предназначено данное мероприятие

Task.basedOn (Any)

business-status

token

Детали состояния выполнения

Task.businessStatus

code

token

Тип мероприятия

Task.code

encounter

reference

Ссылка на случай медицинской помощи

Task.encounter (Encounter)

focus

reference

Ссылка на экземпляр ресурса, содержащий выполняемое требование или подлежащий манипуляции данным мероприятием

Task.focus (Any)

group-identifier

token

Общий идентификатор группы мероприятий или требований

Task.groupldentifier

identifier

token

Идентификатор мероприятия

Task.identifier

intent

token

Категория требования, с которым связано выполнение мероприятия

Task.intent

modified

date

Дата и время последнего изменения

Task.lastModified

output

reference

Ссылка на экземпляр ресурса в выходных данных

Task.output.value.ofType(Refer-ence)

owner

reference

Ссылка на ответственного за выполнение мероприятия

Task.owner (Practitioner, Organization, CareTeam, Patient, Practi-tionerRole, RelatedPerson)

part-of

reference

Ссылка на мероприятие, частью которого является данное мероприятие

Task.partOf (Task)

patient

reference

Ссылка на пациента

Task.for.where(resolve() is Patient) (Patient)

performer

token

Тип исполнителя мероприятия

Task.requestedPerformer.concept

period

date

Фактический период выполнения мероприятия

Task.executionPeriod

priority

token

Срочность мероприятия

Task.priority

requested-performer-reference

reference

Ссылка на требуемого исполнителя

Task.requestedPerformer. reference

167

ПНСТ 995—2024

Окончание таблицы 241

Имя

Тип

Описание

Выражение

requester

reference

Ссылка на инициатора мероприятия

Task.requester (Practitioner, Organization, Device, Patient, Practi-tionerRole, RelatedPerson)

status

token

Состояние мероприятия

Task.status

subject

reference

Ссылка на субъект мероприятия

Task.for (Any)

11.5.8 Профили мероприятий

Профили мероприятий, назначаемых в рамках планов дистанционного мониторинга пациентов, перечислены в таблице 242.

Таблица 242 — Профили мероприятий дистанционного мониторинга

Имя профиля

Описание

Пункт

Task-Medication

Лекарственное назначение

11.5.9

Task-Phd

Выполнение измерений

11.5.10

Task-MedStat

Ведение дневника приема лекарств

11.5.11

Task-Nutrlnt

Ведение дневника питания

11.5.12

Task-QuestResp

Ведение дневника самонаблюдений

11.5.13

Task-DiagRep

Составление этапного эпикриза

11.5.14

Общая структура профилей мероприятий дистанционного мониторинга показана на рисунке 46 и приведена в таблице 243.

168

class Профиль ДМ

DomainResource

«Profile,Resource» Task

+ Identifier Identifier

+ description: string

+ requested Period: Period

«RefTarget»

+ basedOn: Reference [1. .2]

+ for Reference

«Binding»

+ status: code

+ intent: code = order

+ code: CodeableConcept

«Binding, RefTarget»

+ requested Performer CodeableReference

Профиль мероприятий дистанционного мониторинга

+input( ^1

BackboneElement

Input

+ valueTiming: Timing «Binding»

+ type: CodeableConcept

Рисунок 46 — Профиль мероприятий дистанционного мониторинга

Таблица 243 — Состав элементов профиля мероприятий дистанционного мониторинга

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

1

Унаследованы от абстрактного класса DomainResource

text

Полное описание мероприятия, ориентированное на пациента

Narrattive

1

text.status

Статус повествовательного содержания. Фиксированное значение ’’additional”

code

1

text.div

Текст в формате xhtml с ограниченным форматированием

xhtml

1

Собственные элементы

identifier

Идентификатор мероприятия, присвоенный медицинской информационной системой

Identifier

1

basedOn[1]

Ссылка на экземпляр ресурса CarePlan

Reference

1

basedOn[2]

Ссылка на экземпляр ресурса Questionnaire (только для ведения дневника самонаблюдений)

Reference

0..1

169

ПНСТ 995—2024

Окончание таблицы 243

Имя

Описание

Тип данных

Кратность

status

Состояние выполнения мероприятия. Допустимые значения: draft (в процессе подготовки) | requested (назначено) | received (получено исполнителем) | accepted (принято к исполнению) | rejected (отклонено) | ready (готово к выполнению) | cancelled (отменено) | in-progress (выполняется) | on-hold (приостановлено) | failed (прекращено) | completed (завершено) | entered-in-error (создано по ошибке)

code

1

intent

Категория требования, с которым связано выполнение мероприятия. Фиксированное значение "order” (требование)

code

1

code

Тип мероприятия

Codeable-Concept

1

description

Указания по выполнению мероприятия

string

1

for

Ссылка на экземпляр Person — субъект мероприятия

Reference

1

requested-Period

Ожидаемый период выполнения мероприятия

Period

1

requestedPerformer

Ссылка на требуемого исполнителя

Codeable-Reference

1

requestedPerformer. reference

Ссылка на экземпляр ресурса исполнителя

Reference

1

requestedPerformer. reference, reference

Относительный URL экземпляра ресурса

string

1

input

Входной параметр

Backbone-Element

0..*

input.type

Расписание выполнения мероприятия

CodeableConcept

1

input.type. text

Повествовательное описание расписания

string

1

input.

valueTiming

Структурированное описание расписания

Timing

1

Профили отличаются друг от друга требованиями к заполнению следующих элементов:

- meta.profile — имя профиля;

- code — идентификация мероприятия;

- requestedPerformer — требуемый исполнитель.

11.5.9 Профиль Task-Medication

Профиль Task-Medication (лекарственное назначение) ограничивает элементы ресурса Task в соответствии с рисунком 46 и таблицей 243. Имя ресурса остается неизменным — Task, имя профиля передается в элементе meta.profile.

В элементе requestedPerformer (требуемый исполнитель) должна быть передана ссылка на экземпляр ресурса Patient, идентифицирующий лицо, применяющее назначенный лекарственный препарат (обычно сам пациент).

Требования к заполнению элемента code приведены в таблице 244. В первом экземпляре элемента code.coding должны быть переданы код анатомо-терапевтическо-химической классификации (ATX) назначенного лекарственного препарата (при наличии). В следующих экземплярах элемента code, coding должны передаваться торговые наименования лекарственного препарата (синонимы). Международное непатентованное наименование должно передаваться в элементе code.text.

170

Таблица 244 — Требования к заполнению элемента code в профиле Task-Medication

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

code.coding[1]

Анатомо-терапевтическо-химическая классификация назначенного лекарственного препарата

Coding

0..1

code.coding[1].system

Фиксированное значение ’’https://www.whocc.no” (при наличии кода ATX)

uri

0..1

code.coding[1].code

Код ATX (при наличии)

code

0..1

code.coding[2-n]

Торговое наименование лекарственного препарата

Coding

0..П-1

code.coding[2-n].display

Торговое наименование

string

1

code.text

Международное непатентованное наименование

string

1

11.5.10 Профиль Task-Phd

Профиль Task-Phd (выполнение измерений) ограничивает элементы ресурса Task в соответствии с рисунком 46 и таблицей 243. Имя ресурса остается неизменным — Task, имя профиля передается в элементе meta.profile.

В элементе requestedPerformer (требуемый исполнитель) должна быть передана ссылка на экземпляр ресурса Device, идентифицирующий персональный медицинский прибор, выполняющий измерения.

Требования к заполнению элемента code приведены в таблице 245.

Таблица 245 — Требования к заполнению элемента code в профиле Task-Phd

Имя

Описание

Тип данных

Кратность

code.coding

Код специализации ПМП (таблица 246)

Coding

1

code.coding.system

Фиксированное значение ”urn:iso:std:iso: 11073:10101” (номенклатура терминов MDC, определенная в ГОСТ Р 56842)

uri

1

code.coding.code

Числовой код из номенклатуры MDC

code

1

code.coding.display

Мнемокод из номенклатуры MDC

string

1

code.text

Наименование специализации ПМП

string

1

Таблица 246 — Коды специализации ПМП в номенклатуре MDC

Наименование специализации

Числовой код

Мнемокод

Активность при одиноком проживании

528455

MDC_DEV_SPEC_PROFILE_AI_ACTIVITY_HUB

Анализатор мочи

528406

MDC_DEV_SPEC_PROFILE_URINE_ANALYZER

Весы

528399

MDC_DEV_SPEC_PROFILE_SCALE

Глюкометр

528401

MDC_DEV_SPEC_PROFILE_GLUCOSE

Дыхательная терапия апноэ сна

528408

MDC_DEV_SPEC_PROFILE_SABTE

Инсулиновая помпа

528403

MDC_DEV_SPEC_PROFILE_INSULIN_PUMP

Коагулометр

528402

MDC_DEV_SPEC_PROFILE_COAG

Монитор кровяного давления

528391

MDC_DEV_SPEC_PROFILE_BP

Монитор медикаментов

528456

MDC_DEV_SPEC_PROFILE_AI_MED_MINDER

Монитор состава тела

528404

MDC_DEV_SPEC_PROFILE_BCA

Непрерывный мониторинг глюкозы

528409

MDC_DEV_SPEC_PROFILE_CGM

171

ПНСТ 995—2024

Окончание таблицы 246

Наименование специализации

Числовой код

Мнемокод

Пикфлоуметр

528405

MDC_DEV_SPEC_PROFILE_PEAK_FLOW

Пульсоксиметр

528388

MDC_DEV_SPEC_PROFILE_PULS_OXIM

Сердечно-сосудистый фитнес

528425

MDC_DEV_SPEC_PROFILE_HF_CARDIO

Силовой фитнес

528426

MDC_DEV_SPEC_PROFILE_HF_STRENGTH

Термометр

528392

MDC_DEV_SPEC_PROFILE_TEMP

Частота дыхания

528397

MDC_DEV_SPEC_PROFILE_RESP_RATE

Электрокардиограф (1-3 отведения)

528390

MDC_DEV_SPEC_PROFILE_MIN_ECG

11.5.11 Профиль Task-MedStat

Профиль Task-MedStat (ведение дневника приема лекарств) ограничивает элементы ресурса Task в соответствии с рисунком 46 и таблицей 243. Имя ресурса остается неизменным — Task, имя профиля передается в элементе meta.profile.

В элементе requestedPerformer (требуемый исполнитель) должна быть передана ссылка на экземпляр ресурса Patient, идентифицирующий лицо, заполняющее записи дневника (обычно сам пациент).

Требования к заполнению элемента code приведены в таблице 247.

Таблица 247 — Требования к заполнению элемента code в профиле Task-MedStat

Имя

Описание

Тип данных

Кратность

code.coding

Тип мероприятия дистанционного мониторинга

Coding

1

code.coding, system

URI справочника типов мероприятий дистанционного мониторинга (URL или объектный идентификатор). Рекомендуемое значение ’’http://loinc.org”

uri

1

code.coding, code

Код мероприятия в справочнике. Рекомендуемое значение ”87232-5”

code

1

code.coding, display

Наименование мероприятия в справочнике. Рекомендуемое значение ’’Medication administration, brief’

string

0..1

code.text

Фиксированное значение ’’Ведение дневника приема лекарств”

string

1

11.5.12 Профиль Task-Nutrlnt

Профиль Task-Nutrlnt (ведение дневника питания) ограничивает элементы ресурса Task в соответствии с рисунком 46 и таблицей 243. Имя ресурса остается неизменным — Task, имя профиля передается в элементе meta.profile.

В элементе requestedPerformer (требуемый исполнитель) должна быть передана ссылка на экземпляр ресурса Patient, идентифицирующий лицо, заполняющее записи дневника (обычно сам пациент).

Требования к заполнению элемента code приведены в таблице 248.

Таблица 248 — Требования к заполнению элемента code в профиле Task-Nutrlnt

Имя

Описание

Тип данных

Кратность

code.coding

Тип мероприятия дистанционного мониторинга

Coding

1

code.coding, system

URI справочника типов мероприятий дистанционного мониторинга (URL или объектный идентификатор). Рекомендуемое значение ’’http://loinc.org”

uri

1

172

Окончание таблицы 248

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

code.coding.code

Код мероприятия в справочнике. Рекомендуемое значение ”84282-3”

code

1

code.coding, display

Наименование мероприятия в справочнике. Рекомендуемое значение ’’Nutrition and dietetics Patient’s home Note”

string

0..1

code.text

Фиксированное значение ’’Ведение дневника питания”

string

1

11.5.13 Профиль Task-QuestResp

Профиль Task-QuestResp (ведение дневника самонаблюдений) ограничивает элементы ресурса Task в соответствии с рисунком 46 и таблицей 243. Имя ресурса остается неизменным — Task, имя профиля передается в элементе meta.profile.

В элементе requestedPerformer (требуемый исполнитель) должна быть передана ссылка на экземпляр ресурса Patient, идентифицирующий лицо, заполняющее записи дневника (обычно сам пациент). Во втором экземпляре элемента basedOn должна быть передана ссылка на экземпляр ресурса Questionnaire, описывающий форму дневника самонаблюдений.

Требования к заполнению элемента code приведены в таблице 249.

Таблица 249 — Требования к заполнению элемента code в профиле Task-QuestResp

Имя

Описание

Тип данных

Кратность

code.coding

Тип мероприятия дистанционного мониторинга

Coding

1

code.coding, system

URI справочника типов мероприятий дистанционного мониторинга (URL или объектный идентификатор). Рекомендуемое значение ’’http://loinc.org”

uri

1

code.coding.code

Код мероприятия в справочнике. Рекомендуемое значение ”74465-6”

code

1

code.coding, display

Наименование мероприятия в справочнике. Рекомендуемое значение ’’Questionnaire response Document”

string

0..1

code.text

Фиксированное значение ’’Ведение дневника самонаблюдений”

string

1

11.5.14 Профиль Task-DiagRep

Профиль Task-DiagRep (составление этапного эпикриза) ограничивает элементы ресурса Task в соответствии с рисунком 46 и таблицей 243. Имя ресурса остается неизменным — Task, имя профиля передается в элементе meta.profile.

В элементе requestedPerformer (требуемый исполнитель) должна быть передана ссылка на экземпляр ресурса Practitioner, идентифицирующий лечащего врача, составляющего заключение.

Требования к заполнению элемента code приведены в таблице 250.

Таблица 250 — Требования к заполнению элемента code в профиле Task-DiagRep

Имя

Описание

Тип данных

Кратность

code.coding

Тип мероприятия дистанционного мониторинга

Coding

1

code.coding, system

URI справочника типов мероприятий дистанционного мониторинга (URL или объектный идентификатор). Рекомендуемое значение ’’http://loinc.org”

uri

1

code.coding.code

Код мероприятия в справочнике. Рекомендуемое значение ”75498-6”

code

1

173

ПНСТ 995—2024

Окончание таблицы 250

Имя

Описание

Тип данных

Кратность

code.coding, display

Наименование мероприятия в справочнике. Рекомендуемое значение ’’Telehealth Summary note”

string

0..1

code.text

Фиксированное значение ’’Составление этапного эпикриза”

string

1

11.6 Ресурс Subscription — подписка на изменения экземпляров ресурсов

11.6.1 Общие сведения

Экземпляр ресурса Subscription передается клиентом серверу для регистрации подписки на одну из тем, предоставляемых сервером в форме экземпляров ресурса SubscriptionTopic. Он содержит элементы данных, задающие канал передачи уведомлений по этой теме. Состав элементов ресурса Subscription описан в 10.3.6, состав элементов ресурса SubscriptionTopic — в 10.3.7.

В настоящем подразделе приведены примеры протоколов взаимодействия клиента и сервера при использовании каналов передачи уведомлений rest-hook и websocket.

11.6.2 Канал rest-hook

Диаграмма последовательности UML при использовании канала rest-hook приведена на рисунке 47.

sd REST hook

Рисунок 47 — Взаимодействие при использовании канала rest-hook

174

ПНСТ 995—2024

На диаграмме показан пример последовательности взаимодействий при подписке по каналу resthook:

а) клиент передает серверу запрос HTTP POST на создание экземпляра ресурса Subscription, в котором элементу channelType присвоено значение rest-hook, а элементу endpoint — адрес URL конечной точки клиента, поддерживающей протокол HTTP/S;

б) сервер возвращает клиенту созданный экземпляр ресурса Subscription, у которого элементу state присвоено значение requested (запрошена);

в) сервер отправляет запрос HTTP POST конечной точке, указанной клиентом в элементе Subscription.endpoint, с целью проверки соединения. Запрос содержит контейнер Bundle типа subscription-notification, содержащий экземпляр ресурса Subscriptionstatus, у которого элемент type имеет значение handshake;

г) конечная точка клиента принимает запрос и возвращает код успеха HTTP 200;

д) при циклических уведомлениях сервер передает конечной точке клиента запрос HTTP POST, содержащий уведомление в форме контейнера Bundle типа subscription-notification, не реже одного раза в течение интервала, указанного в элементе heartbeatperiod;

е) конечная точка клиента принимает запрос и возвращает код успеха HTTP 200;

ж) при уведомлениях о событии сервер передает конечной точке клиента запрос HTTP POST, содержащий уведомление в форме контейнера Bundle типа subscription-notification, при возникновении события;

и) конечная точка клиента принимает запрос и возвращает код успеха HTTP 200.

В целях безопасности рекомендуется, чтобы сервер отказывал в регистрации подписки, если конечная точка клиента не обеспечивает взаимодействие по протоколу HTTPS.

11.6.3 Канал websocket

Диаграмма последовательности UML при использовании канала websocket приведена на рисунке 48.

175

ПНСТ 995—2024

sd websocket /

Рисунок 48 — Взаимодействие при использовании канала websocket

На диаграмме показана возможная последовательность взаимодействий при подписке по каналу websocket:

а) клиент передает серверу запрос HTTP POST на создание экземпляра ресурса Subscription, в котором элементу channelType присвоено значение websocket;

б) сервер возвращает клиенту созданный экземпляр ресурса Subscription, у которого элементу state присвоено значение active;

в) клиент запрашивает токен для соединения по веб-сокету, передавая запрос HTTP GET, в котором указано применение операции $get-ws-binding-token к созданному экземпляру ресурса Subscription;

г) сервер передает клиенту экземпляр ресурса Parameters, содержащий токен, время жизни токена и URL веб-сокета;

176

ПНСТ 995—2024

д) клиент соединяется с сервером по веб-сокету, используя возвращенный URL (предпочтительно имеющий протокол wss://);

е) клиент передает по веб-сокету сообщение bind-with-token;

ж) сервер возвращает клиенту по веб-сокету контейнер Bundle типа subscription-notification, содержащий экземпляр ресурса Subscriptionstatus, у которого элемент type имеет значение handshake;

и) при циклических уведомлениях сервер передает клиенту по веб-сокету уведомление в форме контейнера Bundle типа subscription-notification не реже одного раза в течение интервала, указанного в элементе heartbeatperiod;

к) при уведомлениях о событии сервер передает клиенту по веб-сокету уведомление в форме контейнера Bundle типа subscription-notification при возникновении события;

л) по завершении сеанса «уведомление» клиент прекращает соединение по веб-сокету (это может сделать и сервер по истечении срока жизни токена).

Если сеанс должен быть продолжен, а срок жизни токена истекает, то клиент должен заново передать серверу запрос HTTP GET, в котором указано применение операции $get-ws-binding-token к созданному экземпляру ресурса Subscription. Сервер передаст клиенту ответ, содержащий токен, время жизни токена и URL веб-сокета. Токен и URL могут быть теми же или новыми.

11.7 Ресурс Device — сведения о медицинском изделии

11.7.1 Область применения и использования

Тип ресурса Device используется для передачи сведений об идентификации медицинского изделия и его местонахождении. Согласно статье 38 [34] медицинскими изделиями являются любые инструменты, аппараты, приборы, оборудование, материалы и прочие изделия, применяемые в медицинских целях отдельно или в сочетании между собой, а также вместе с другими принадлежностями, необходимыми для применения указанных изделий по назначению, включая специальное программное обеспечение, и предназначенные производителем для профилактики, диагностики, лечения и медицинской реабилитации заболеваний, мониторинга состояния организма человека, проведения медицинских исследований, восстановления, замещения, изменения анатомической структуры или физиологических функций организма, предотвращения или прерывания беременности, функциональное назначение которых не реализуется путем фармакологического, иммунологического, генетического или метаболического воздействия на организм человека.

Состав элементов ресурса Device позволяет передавать сведения и об изделиях немедицинского назначения, например, о смартфонах, компьютерах и программном обеспечении.

Изделие может быть отнесено к одной или нескольким категориям, например, коммуникационные изделия, медицинские аппараты, изделия для домашнего использования, для диагностики in vitro, имплантаты, одноразовые, многоразовые, программное обеспечение. Одним из классов коммуникационных изделий являются персональные медицинские приборы, используемые пациентами или иными лицами, не являющимися медицинскими работниками, в целях наблюдения за состоянием организма и передачи результатов наблюдения.

11.7.2 Структура ресурса

Ресурс Device является детализацией абстрактного ресурса DomainResource. Состав элементов ресурса Device представлен на рисунке 49 и в таблице 251.

177

ПНСТ 995—2024

class Медицинское изделие

DomainResource

BackboneElement

«Resource» Device

Name

identifier Identifier [0..*]

displayName: string [0..1]

biologicalSourceEvent: Identifier [0..1]

manufacturer: string [0..1]

manufactureDate: dateTime [0..1]

expiration Date: dateTime [0..1]

lotNumber: string [0..1]

serialNumber: string [0..1]

modelNumber: string [0..1]

partNumber: string [0..1]

cycle: Count [0..1]

duration: Duration [0..1]

contact: ContactPoint [0..*]

uri: uri [0..1]

note: Annotation [0..*]

«RefTarget»

definition: CodeableReference [0..1]

owner Reference [0..1]

location: Reference [0..1]

endpoint: Reference [0..*]

gateway: CodeableReference [0..*]

parent: Reference [0..1]

«Binding»

status: code [0..1]

availabilityStatus: CodeableConcept [0..1]

category: CodeableConcept [0..*]

type: CodeableConcept [0..*]

mode: CodeableConcept [0..1]

safety: CodeableConcept [0..*]

■♦•name

'0..*

+ value: string «Binding»

+ type: code «Constraint»

+ display: boolean [0..1]

1

1

+version

BackboneElement

Version

+ component: Identifier [0..1]

+ installDate: dateTime [0..1]

+ value: string

«Binding»

+ type: CodeableConcept [0..1]

0..*

■♦property

0..’ ■

+udiCamer 0..*

+conformsT<

1

BackboneElement

ConformsTo

+ version: string [0..1]

«Binding»

+ category: CodeableConcept [0..1]

+ specification: CodeableConcept

BackboneElement

Properly

«Binding»

+ type: CodeableConcept

«TypeChoice»

+ value[x]

BackboneElement

UdiCarrier

+ deviceidentifier string

+ issuer uri

+ jurisdiction: uri [0..1]

+ carrierAlDC: base64Binary [0..1]

+ carrierHRF: string [0..1]

«Binding»

+ entryType: code [0..1]

Рисунок 49 — Ресурс Device

Таблица 251 — Состав элементов ресурса Device

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

0..1

implicitRules

Совокупность правил, по которым должен создаваться экземпляр ресурса

uri

0..1

178

Продолжение таблицы 251

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

language

Основной человеческий язык, на котором представлено содержание ресурса

code

0..1

Унаследованы от абстрактного класса DomainResource

text

Текстовое описание содержания экземпляра ресурса для интерпретации человеком

Narrattive

0..1

contained

Вложенный экземпляр ресурса

Resource

0..*

extension

Дополнительное содержание, определенное при реализации

Extension

0..*

modifier-Extension

Модифицирующее расширение, которое не может быть проигнорировано

Extension

0..*

Собственные элементы

identifier

Идентификатор экземпляра медицинского изделия

Identifier

0..*

displayName

Наименование медицинского изделия, используемое по умолчанию для представления в элементе display ссылки на него

string

0..1

definition

Код описания медицинского изделия или ссылка на его описание

CodeableReference

0..1

udiCarrier

Уникальный идентификатор медицинского изделия (UDI)

Backbone-Element

0..*

udiCarrier.

deviceidentifier

Обязательный фиксированный компонент UDI

string

1

udiCarrier.issuer

Идентификатор организации, присвоившей UDI

uri

1

udiCarrier.jurisdiction

Идентификатор организации, регулирующей применение UDI

uri

0..1

udiCarrier.carrierAlDC

Машиночитаемое представление штрихкода. Тип base64Binary используется в связи с тем, что оно может содержать символы, отсутствующие в представлении на языке XML

base64-Binary

0..1

udiCarrier.carrierHRF

Человеко-читаемое представление штрихкода. Если для представления модели изделия и его серийного номера используются отдельные штрихкоды, то их подписи должны быть объединены, и первой следует указать модель изделия

string

0..1

udiCarrier.entryType

Тип источника UDI. Допустимые значения: barcode (штрихкод) | rfid (радиочастотная метка) | manual (введен вручную с этикетки) | card (введен вручную с карточки имплантата) | self-reported (со слов пациента) | electronic-transmission (считан с медицинского прибора) | unknown (неизвестный)

code

0..1

status

Статус данного экземпляра ресурса. Допустимые значения: active (действителен) | inactive (недействителен) | entered-in-error (введен по ошибке)

code

0..1

availabilitystatus

Статус доступности медицинского изделия. Рекомендованные значения: lost (утрачен) | damaged (поврежден) | destroyed (уничтожен) | available (доступен)

Codeable

Concept

0..1

179

ПНСТ 995—2024

Продолжение таблицы 251

Имя

Описание

Тип данных

Кратность

biologicalSource-Event

Идентификатор биологического источника

Identifier

0..1

manufacturer

Наименование производителя медицинского изделия

string

0..1

manufactureDate

Дата и время производства медицинского изделия

dateTime

0..1

expirationDate

Срок годности медицинского изделия

dateTime

0..1

lotNumber

Номер партии медицинских изделий

string

0..1

serialNumber

Серийный номер медицинского изделия

string

0..1

name

Наименование медицинского изделия

Backbone-Element

0..*

name.value

Наименование

string

1

name.type

Тип наименования

code

1

name.display

Признак предпочтительного наименования

boolean

0..1

modelNumber

Номер модели медицинского изделия

string

0..1

partNumber

Артикул медицинского изделия

string

0..1

category

Категория медицинского изделия

CodeableConcept

0..*

type

Тип медицинского изделия

Codeable

Concept

0..*

version

Модификация медицинского изделия или версия его программного обеспечения

Backbone-Element

0..*

version.type

Тип модификации или версии

CodeableConcept

0..1

version.component

Идентификация аппаратного модуля или программного обеспечения, к которому относится данная версия

Identifier

0..1

version.install-Date

Дата установки аппаратного модуля или программного обеспечения

dateTime

0..1

version.value

Обозначение версии

string

1

conformsTo

Соответствие медицинского изделия стандартам или спецификациям

Backbone-Element

0..*

conformsTo.category

Тип стандарта или спецификации

CodeableConcept

0..1

conformsTo. specification

Обозначение стандарта или спецификации

CodeableConcept

1

conformsTo.version

Версия стандарта или спецификации, например год публикации или номер

string

0..1

property

Статическое или практически постоянное свойство медицинского изделия, например разрешающая способность, точность, физические атрибуты

Backbone-Element

0..*

property.type

Тип свойства

CodeableConcept

1

180

Окончание таблицы 251

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

property.value[x]

Значение свойства

*

1

mode

Режим работы. Рекомендованные значения: normal (нормальный) | demo (демонстрационный) | service (сервисный) | maintenance (на обслуживании) | test (тестовый)

CodeableConcept

0..1

cycle

Количество циклов

Count

0..1

duration

Длительность

Duration

0..1

owner

Ссылка на организацию — владельца медицинского изделия

Reference

0..1

contact

Контактная информация технической поддержки

ContactPoint

0..*

location

Ссылка на местонахождение медицинского изделия

Reference

0..1

url

Сетевой адрес медицинского прибора

uri

0..1

endpoint

Ссылка на описание конечной точки, предназначенной для доступа к функциям медицинского изделия

Reference

0..*

gateway

Код типа менеджера или ссылка на описание менеджера

CodeableReference

0..*

note

Примечание

Annotation

0..*

safety

Класс безопасности медицинского изделия

CodeableConcept

0..*

parent

Ссылка на медицинское изделие, частью которого служит данное изделие

Reference

0..1

11.7.3 Привязки к наборам значений

Привязки к наборам значений описаны в таблице 252.

Таблица 252 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

Device.udiCarrier. entryType

http://hl7.org/fhir/ValueSet/udi-entry-type

Обязательная

Тип источника UDI

Device.status

http://hl7.org/fhir/ValueSet/ device-status

Обязательная

Статус экземпляра ресурса Device

Device.availabilityStatus

http://hl7.org/fhir/ValueSet/ device-availability-status

Расширяемая

Статус доступности медицинского изделия

Device.name.type

http://hl7.org/fhir/ValueSet/ device-nametype

Обязательная

Тип наименования медицинского изделия

Device.category

http://hl7.org/fhir/ValueSet/ device-category

Пример

Категория медицинского изделия

Device.type

http://hl7.org/fhir/ValueSet/de-vice-type

Пример

Тип медицинского изделия

Device.version.type

http://hl7.org/fhir/ValueSet/ device-versiontype

Пример

Тип модификации или версии

Device.conformsTo.category

http://hl7.org/fhir/ValueSet/ device-specification-category

Пример

Тип стандарта или спецификации

181

ПНСТ 995—2024

Окончание таблицы 252

Путь

Набор значений

Тип привязки

Описание

Device.conformsTo. specification

http://hl7.org/fhir/ValueSet/ device-specification-type

Пример

Обозначение стандарта или спецификации

Device.property.type

http://hl7.org/fhir/ValueSet/ device-property-type

Пример

Тип свойства

Device.mode

http://hl7.org/fhir/ValueSet/ device-operation-mode

Пример

Режим работы

Device.safety

http ://h I7. org/fh i r/Val u eSet/ device-safety

Пример

Класс безопасности прибора

11.7.4 Ограничения ресурса Device

Ограничения ресурса Device описаны в таблице 253.

Таблица 253 — Ограничения ресурса Device

Идентификатор

Вид

Путь

Описание

Выражение

dev-1

Правило

Базовый

Признак Device.name.display должен быть истинным не более чем для одного экземпляра элемента Device.name

name.where(dis-play=true).count() <= 1

11.7.5 Идентификация медицинских изделий и типы изделий

Почти всем изделиям присвоены различные идентификаторы и коды, обычно прикрепленные к самому изделию или к его упаковке. Они могут представлять собой напечатанные этикетки, таблички, штрих-коды или радиочастотные метки. Идентификаторы и коды могут присваиваться производителями или поставщиками изделий (например, серийный номер или артикул), другими организациями и реестрами. Эти идентификаторы и коды по возможности должны быть представлены в экземпляре ресурса Device. Это не всегда просто, поскольку в составе ресурса предусмотрено несколько семантически отличающихся элементов для представления кодов и идентификаторов, а в документации на изделия термины «код» и «идентификатор» могут быть перемешаны.

Элемент identifier предназначен только для идентификации экземпляра изделия, например с помощью инвентарного номера, присвоенного владельцем изделия. Для серийного номера, присвоенного производителем изделия, должен использоваться элемент serialNumber. Такие идентификаторы, как артикул или глобальный номер товарной продукции GTIN, представляют тип изделия и должны передаваться в элементе type.

Одним из источников типов изделий является глобальная номенклатура медицинских изделий GMDN (Global Medical Device Nomenclature, https://www.gmdnagency.org/).

Для машиночитаемой маркировки медицинских изделий в целях их прослеживания могут использоваться уникальные идентификаторы устройства UDI (Unique Device Identifier, https://www.imdrf.org/ consultations/udi-system-medical-devices). Для хранения UDI предусмотрен элемент udiCarrier. В соответствии с [35] принята собственная система маркировки, согласно которой каждому изделию присваивается идентификатор, состоящий из четырех компонентов. Этот идентификатор также может быть представлен в элементе udiCarrier.

11.7.6 Параметры поиска экземпляров ресурса Device

Специальные параметры поиска экземпляров ресурса Device описаны в таблице 254. В дополнение к ним могут использоваться общие параметры поиска, описанные в подразделе 12.27.

Таблица 254 — Специальные параметры поиска экземпляров ресурса Device

Имя

Тип

Описание

Выражение

biological-source-event

token

Идентификатор биологического источника

Device. biologicalSourceEvent

code

token

Код описания медицинского изделия

Device.definition.concept

182

Окончание таблицы 254

ПНСТ 995—2024

Имя

Тип

Описание

Выражение

definition

reference

Ссылка на описание медицинского изделия

Device.definition.reference

device-name

string

Поиск по строковым полям элемента Device.name или Device.type

Device.name.value | Device.type,

coding.display | Device.type.text

expiration-date

date

Срок годности медицинского изделия

Device.expirationDate

identifier

token

Идентификатор экземпляра медицинского изделия

Device.identifier

location

reference

Ссылка на местонахождение прибора

Device.location (Location)

lot-number

string

Номер партии медицинских изделий

Device.lotNumber

manufacture-date

date

Дата и время производства медицинского изделия

Device.manufactureDate

manufacturer

string

Наименование производителя медицинского изделия

Device.manufacturer

model

string

Номер модели медицинского изделия

Device.modelNumber

organization

reference

Ссылка на организацию — владельца медицинского изделия

Device.owner (Organization)

parent

reference

Ссылка на медицинское изделие, частью которого служит данное изделие

Device.parent (Device)

serial-number

string

Серийный номер медицинского изделия

Device.serialNumber | Device.identifier. where(type=’SNO’)

specification

token

Обозначение стандарта или спецификации

Device.conformsTo.specification

specificationversion

composite

Комплекс из обозначения стандарта или спецификации и версии

On Device.conformsTo: specification: specification version: version

status

token

Статус данного экземпляра ресурса. Допустимые значения: active (действителен) | inactive (недействителен) | entered-in-error (введен по ошибке)

Device.status

type

token

Тип медицинского изделия

Device.type

udi-carrier

string

Человеко-читаемое представление штрихкода или радиометки, используемой для уникального идентификатора медицинского изделия

Device.udiCarrier.carrierHRF

udi-di

string

Обязательный фиксированный компонент UDI

Device.udiCarrier.deviceldentifier

url

uri

Сетевой адрес медицинского прибора

Device.url

version

string

Обозначение версии

Device.version.value

183

ПНСТ 995—2024

11.7.7 Профиль Device-Phd

11.7.7.1 Общие требования

Аппаратное и программное обеспечение ПМП может содержать сведения о приборе, включая идентификацию ПМП. Эти сведения должны передаваться между участниками информационного взаимодействия по сценарию, показанному на рисунке 50.

МИС передает сервису сведения о ПМП, предоставленном пациенту, в форме экземпляра ресурса Device. Пока пациент пользуется прибором, эти сведения могли измениться, например, обновилась прошивка прибора или загруженное в него программное обеспечение. Поэтому после установления связи со шлюзом Интернета вещей или с менеджером прибор может передать ему актуальные сведения о себе. Эта передача осуществляется в соответствии со стандартом ГОСТ Р 56845.

Шлюз или менеджер должен преобразовать сведения о ПМП в экземпляр ресурса Device и передать его сервису хранения и обработки результатов измерений. Сервис должен обновить сведения о ПМП в своем хранилище. По подписке обновленные сведения передаются МИС в форме экземпляра ресурса Device.

Если ПМП не имеет возможности передачи сведений по стандарту ГОСТ Р 56845, то шлюз или менеджер может сначала преобразовать сведения о ПМП в формат, предписанный этим стандартом, а затем преобразовать их в экземпляр ресурса Device. Описание преобразования, специфичного для ПМП с интерфейсом Bluetooth Low Energy, приведено в [36].

Рисунок 50 — Сценарий передачи данных о ПМП

Рекомендуемый состав сведений о ПМП, передаваемых сервису хранения и обработки результатов измерений в форме экземпляра ресурса Device, включает в себя:

- идентификаторы ПМП;

- производителя, модель и серийный номер ПМП;

- идентификаторы и версии аппаратных и программных компонентов ПМП;

- специализации ПМП;

- ссылку на сведения о шлюзе или менеджере, взаимодействующем с ПМП.

184

ПНСТ 995—2024

11.7.7.2 Преобразование сведений о ПМП

Согласно стандарту ГОСТ Р 56845, состав сведений о ПМП определяется классом MDS (Medical device system — система медицинского прибора). Каждый ПМП обладает одним экземпляром класса MDS.

Атрибуты верхнего уровня класса MDS идентифицируются с помощью 32-разрядного целочисленного кода, принадлежащего номенклатуре MDC (medical device communication — коммуникация с медицинским прибором). Каждому целочисленному коду соответствует строковый номенклатурный код и его описание. Номенклатура MDC определена в стандарте ГОСТ Р 56842. Стандарты, описывающие специализации ПМП, могут содержать дополнения к номенклатуре MDC, которые еще не успели войти в текущую версию стандарта ГОСТ Р 56842.

ПМП передает шлюзу или менеджеру экземпляр класса MDS, который может использоваться для обеспечения эффективного взаимодействия с ПМП. Для передачи сервису хранения и обработки результатов измерений должна использоваться часть атрибутов этого класса, перечисленная в таблице 255.

Таблица 255 — Атрибуты класса MDS, предназначенные для передачи сервису хранения и обработки результатов измерений

Имя атрибута

Номенклатурный код

Тип атрибута

Примечание

Кратность

System-Model

MDC_ATTR_ID_

MODEL

SystemModel

Производитель и модель

ПМП

1

System-Id

MDC_ATTR_SYS_ID

OCTET STRING

Идентификатор ПМП в формате EUI-64

1

Production-Specification

MDC_ATTR_ID_ PROD_SPECN

ProductionSpec

Список сведений о компонентах ПМП, включая серийные номера и т.д. в формате, заданном производителем

0..1

System-Type-Spec-List

MDC_ATTR_SYS_ TYPE_SPEC_LIST

TypeVerList

Список специализаций ПМП

0..1

11.7.7.3 Отображение атрибута System-Model

Отображение атрибута System-Model на элементы ресурса Device приведено в таблице 256.

Таблица 256 — Отображение атрибута System-Model на элементы ресурса Device

Номенклатурный код или имя компонента

Отображение на элемент ресурса Device

MDC_ID_MODEL_NUMBER

modelNumber

MDC_ID_MODEL_MANUFACTURER

manufacturer

11.7.7.4 Отображение атрибута System-Id

Отображение атрибута System-Id на компоненты элемента identifier ресурса Device приведено в таблице 257.

Таблица 257 — Отображение атрибута System-Id на компоненты элемента identifier ресурса Device

Компонент

Значение

identifier.system

”urn:oid:1.2.840.10004.1.1.1.0.0.1.0.0.1.2680”

identifier.type.coding.system

’’http://hl7.org/fhir/uv/phd/CodeSystem/ContinuaDevice-ldentifiers”

identifier.type.coding.code

’’SYSID”

identifier.value

значение System-Id в формате EUI-64 (восемь пар шестнадцатеричных цифр, разделенных дефисами, например, FE-ED-AB-EE-DE-AD-77-C3)

185

ПНСТ 995—2024

11.7.7.5 Отображение атрибута Production-Specification

Атрибут Production-Specification содержит список сведений о приборе, тип которых определяется значением компонента spec-type. Отображение атрибута Production-Specification на элементы ресурса Device в зависимости от значения этого компоненты приведено в таблице 258.

Таблица 258 — Отображение атрибута Production-Specification на элементы ресурса Device

Экземпляр Production-Specification

Отображение на элементы ресурса Device

Production-Specification.spec-type = 1 (серийный номер) Production-Specification.value

serialNumber=Production-Specification.value

Production-Specification.spec-type = 2 (номер партии) Production-Specification.value

partNumber=Production-Specification.value

Production-Specification.spec-type = 3 (версия аппаратного обеспечения)

Production-Specification.value

version.type.coding.code=”531974” version.type.coding.system=”urn.iso.std. iso:11073:10101”

version.type.text=”MDC_ID_PROD_SPEC_HW” version.value=Production-Specification.value

Production-Specification.spec-type = 4 (программное обеспечение)

Production-Specification.PrivateOid

Production-Specification.value

version.type.coding.code=”531975” version.type.coding.system-’urn.iso.std. iso:11073:10101”

version.type.text=”MDC_ID_PROD_SPEC_SW” version.value=Production-Specification.value

Production-Specification.spec-type = 5 (версия прошивки)

Production-Specification.value

version.type.coding.code=”531976” version.type.coding.system=”urn.iso.std. iso:11073:10101"

version.type.text=”MDC_ID_PROD_SPEC_FW” version.value=Production-Specification.value

Production-Specification.spec-type = 6 (версия протокола)

Production-Specification.value

version.type.coding.code=”531977” version.type.coding.system-’urn.iso.std. iso:11073:10101”

version.type.text=”MDC_ID_PROD_SPEC_ PROTOCOL”

version.value=Production-Specification.value

11.7.7.6 Отображение атрибута System-Type-Spec-List

Атрибут System-Type-Spec-List содержит список специализаций прибора. Отображение атрибута System-Type-Spec-List на элементы ресурса Device приведено в таблице 259.

Таблица 259 — Отображение атрибута System-Type-Spec-List на элементы ресурса Device

Экземпляр System-Type-Spec-List

Отображение на элемент ресурса Device

System-Type-Spec-List, type

conformsTo.specification.coding.system =”urn.iso.std.iso:11073:10101 ”

conformsTo.specification.coding.code = System-Type-Spec-List.type

conformsTo.specification.coding.text=<3Ha4eHne номеклатурного кода MDC, соответ

ствующее System-Type-Spec-List.type>

System-Type-Spec-List, version

conformsTo.specification.version= System-Type-Spec-List.version

11.7.7.7 Дополнительная информация о приборе

Шлюз Интернета вещей или менеджер ПМП должны дополнить сведения, полученные от ПМП, следующими атрибутами:

а) тип прибора;

б) идентификация шлюза или менеджера.

Тип прибора указывает, что это ПМП. Он отображается на элемент Device.type в соответствии с таблицей 260.

186

Таблица 260 — Тип прибора (ПМП)

ПНСТ 995—2024

Элемент ресурса Device

Значение

Device.type.coding.code

”65573”

Device.type.coding.system

”urn.iso.std.iso:11073:10101”

Device.type.text

”MDC_MOC_VMS_MDS_SIMP"

Идентификация шлюза или менеджера отображается на элемент Device.gateway в соответствии с таблицей 261.

Таблица 261 — Идентификация шлюза или менеджера

Элемент ресурса Device

Значение

Device.gateway.reference.type

"Device”

Device.gateway.reference. identifier, type.coding, system

’’http://hl7.org/fhir/uv/phd/CodeSystem/ContinuaDeviceldentifi-ers”

Device.gateway.reference. identifier, type.coding, code

’’SYSID”

Device.gateway.reference.identifier.system

”urn:oid:1.2.840.10004.1.1.1.0.0.1.0.0.1.2680”

Device.gateway.reference.identifier, value

значение System-Id в формате EUI-64 (восемь пар шестнадцатеричных цифр, разделенных дефисами, например, FE-ED-AB-EE-DE-AD-77-C3)

11.7.7.8 Состав элементов профиля Device-Phd

Профиль Device-Phd (персональный медицинский прибор) оставляет в ресурсе Device только те элементы, которые задействованы в 11.7.7.3-11.7.7.7 (рисунок 51 и таблица 262). Имя ресурса остается неизменным — Device, имя профиля передается в элементе meta.profile.

Рисунок 51 — Профиль Device-Phd

187

ПНСТ 995—2024

Таблица 262 — Состав элементов профиля Device-Phd

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

1

Собственные элементы

identifier

Идентификатор медицинского прибора

Identifier

1

manufacturer

Наименование производителя медицинского изделия

string

0..1

serialNumber

Серийный номер медицинского прибора

string

0..1

modelNumber

Номер модели медицинского прибора

string

0..1

partNumber

Артикул медицинского прибора

string

0..1

type

Тип медицинского прибора

CodeableConcept

1

conformsTo

Специализация медицинского прибора

Backbone-

Element

0..*

conformsTo.category

Тип стандарта или спецификации

CodeableConcept

0..1

conformsTo. specification

Обозначение стандарта или спецификации

CodeableConcept

1

conformsTo.version

Версия стандарта или спецификации, например, год публикации или номер

string

0..1

gateway

Код типа менеджера (шлюза) или ссылка на описание менеджера (шлюза)

CodeableReference

0..1

11.7.8 Профиль Device-Phg

МИС передает сервису сведения о шлюзе Интернета вещей или менеджере ПМП, предоставленном пациенту, в форме экземпляра ресурса Device, соответствующего профилю Device-Phg (шлюз). Он используется только для проверки значения элемента Device.gateway, передаваемого в сведениях о ПМП. Состав элементов профиля Device-Phg приведен на рисунке 52 и в таблице 263. Имя ресурса остается неизменным — Device, имя профиля передается в элементе meta.profile.

188

class Шлюз

DomainResource

« Resource,Profile» Device

+ identifier Identifier

+ note: Annotation [0..1]

«Binding»

+ type: CodeableConcept = um.iso.std.iso...

Рисунок 52 — Профиль Device-Phg

Таблица 263 — Состав элементов профиля Device-Phg

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

1

Собственные элементы

identifier

Идентификатор медицинского прибора

Identifier

1

type

Тип медицинского прибора (таблица 264)

CodeableConcept

note

Краткое описание медицинского прибора

Annotation

0..1

Тип прибора указывает, что это шлюз Интернета вещей или менеджер ПМП. Он отображается на элемент Device.type в соответствии с таблицей 264.

Таблица 264 — Тип прибора (шлюз Интернета вещей или менеджер ПМП)

Элемент ресурса Device

Значение

Device.type.coding.code

”531981”

Device.type.coding.system

”urn.iso.std.iso:11073:10101”

Device.type.text

”MDC_MOC_VMS_MDS_AHD”

11.8 Ресурс DeviceAssociation — ассоциация медицинского изделия с пациентом

11.8.1 Область применения и использования

Тип ресурса DeviceAssociation используется для описания ассоциации медицинского изделия с субъектом и/или оператором. К числу медицинских изделий, для которых может понадобиться такое описание, относятся, например, имплантаты, каталки, персональные медицинские приборы.

Субъектами ассоциаций могут быть:

а) пациенты, использующие имплантаты, протезы, регистраторы активности, персональные медицинские приборы и т.д.;

б) группы лиц — некоторые персональные медицинские приборы, например, весы или тонометр, могут быть ассоциированы с членами семьи или группой лиц;

в) медицинские работники, использующие мобильные телефоны, планшеты и т.д.;

г) изделия — изделие может быть ассоциировано с другим изделием и при этом не являться его неотъемлемой частью. Примером может служить радиочастотная метка, используемая для отслеживания местонахождения каталки;

д) близкие лица — изделие, например, аварийный оповещатель, может быть ассоциировано с близким лицом пациента.

11.8.2 Структура ресурса

Ресурс DeviceAssociation является детализацией абстрактного ресурса DomainResource. Состав элементов ресурса DeviceAssociation представлен на рисунке 53 и в таблице 265.

189

ПНСТ 995—2024

class Медицинское изделие - ассоциация

DomainResource

«Resource»

Dev Ice Association

+ identifier: Identifier [0..*]

+ category: CodeableConcept [0..*]

+ period: Period [0..1]

«RefTarget»

+ device: Reference

+ subject: Reference [0..1]

+ bodystructure: Reference [0..1]

«Binding»

+ status: CodeableConcept

+ statusReason: CodeableConcept [0..*]

+ope ration

BackboneElement

Operation

+ period: Period [0..1] «Binding»

+ status: CodeableConcept «RefTarget»

+ operator: Reference [0..*]

Рисунок 53 — Ресурс DeviceAssociation

Таблица 265 — Состав элементов ресурса DeviceAssociation

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

0..1

implicitRules

Совокупность правил, по которым должен создаваться экземпляр ресурса

uri

0..1

language

Основной человеческий язык, на котором представлено содержание ресурса

code

0..1

Унаследованы от абстрактного класса DomainResource

text

Текстовое описание содержания экземпляра ресурса для интерпретации человеком

Narrattive

0..1

contained

Вложенный экземпляр ресурса

Resource

0..*

extension

Дополнительное содержание, определенное при реализации

Extension

0..*

modifier-Extension

Модифицирующее расширение, которое не может быть проигнорировано

Extension

0..*

Собственные элементы

identifier

Идентификатор ассоциации

Identifier

0..*

device

Ссылка на медицинское изделие, ассоциированное с пациентом или группой

Reference

1

category

Вид ассоциации

Codeable-Concept

0..*

status

Состояние ассоциации изделия с пациентом/группой

Codeable-Concept

1

statusReason

Причина перехода в данное состояние

Codeable-Concept

0..*

subject

Ссылка на лицо, группу лиц или изделие, с которым ассоциировано данное изделие

Reference

0..1

bodyStructure

Ссылка на анатомическую область субъекта, в которой или на которой находится медицинское изделие

Reference

0..1

190

Окончание таблицы 265

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

period

Период ассоциации медицинского изделия с субъектом

Period

0..1

operation

Функционирование медицинского изделия

BackboneElement

0..*

operation.status

Состояние функционирования медицинского изделия

Codeable-Concept

1

operation.operator

Ссылка на оператора (лицо, использующее функции медицинского изделия)

Reference

0..*

operation.period

Период функционирования медицинского изделия

Period

0..1

11.8.3 Привязки к наборам значений

Привязки к наборам значений описаны в таблице 266.

Таблица 266 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

DeviceAssociation. status

http://hl7.org/fhir/ValueSet/ deviceassociation-status

Обязательная

Состояние ассоциации изделия

DeviceAssociation. statusReason

http://hl7.org/fhir/ValueSet/ deviceassociation-status-reason

Обязательная

Причина состояния ассоциации

DeviceAssociation. operation.status

http://hl7.org/fhir/ValueSet/ deviceassociation-operationstatus

Пример

Статус функционирования изделия

11.8.4 Параметры поиска экземпляров ресурса DeviceAssociation

Специальные параметры поиска экземпляров ресурса DeviceAssociation описаны в таблице 267. В дополнение к ним могут использоваться общие параметры поиска, описанные в подразделе 12.27.

Таблица 267 — Специальные параметры поиска экземпляров ресурса DeviceAssociation

Имя

Тип

Описание

Выражение

device

reference

Ссылка на изделие

DeviceAssociation.device (Device)

identifier

token

Идентификатор ассоциации

DeviceAssociation.identifier

operator

reference

Ссылка на оператора

DeviceAssociation.operation.operator (Practitioner, Patient, RelatedPerson)

patient

reference

Ссылка на пациента

DeviceAssociation.subject.where(resolve() is Patient)

status

token

Состояние ассоциации

DeviceAssociation.status

subject

reference

Ссылка на субъект ассоциации

DeviceAssociation.subject.where(resolve() is (Practitioner, Group, Device, Patient, RelatedPerson))

11.8.5 Профиль DeviceAssociation-Dm

Профиль DeviceAssociation-Dm ограничивает экземпляр ресурса DeviceAssociation элементами, необходимыми для привязки персонального медицинского прибора, шлюза Интернета вещей или менеджера ПМП к пациенту. Состав профиля DeviceAssociation-Dm приведен на рисунке 54 и в таблице 268. Имя ресурса остается неизменным — DeviceAssociation, имя профиля передается в элементе meta.profile.

191

ПНСТ 995—2024

class Медицинский прибор - ассоциация

DomainResource

«Resource,Profile» Dev iceAssociation

+ identifier Identifier

+ period: Period [0..1]

«RefTarget»

+ device: Reference

+ subject: Reference

«Binding»

+ status: CodeableConcept

Рисунок 54 — Профиль DeviceAssociation-Dm

Таблица 268 — Состав элементов профиля DeviceAssociation-Dm

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

1

Собственные элементы

identifier

Уникальный идентификатор ассоциации, присвоенный медицинской информационной системой

Identifier

1

device

Ссылка на ПМП, шлюз или менеджер, ассоциированный с пациентом или группой

Reference

1

status

Состояние ассоциации прибора с пациентом/группой

CodeableConcept

1

status.coding

Кодированное значение

Coding

1

status.coding, system

Фиксированное значение ’’http://hl7.org/fhir/ deviceassociation-status”

uri

1

status.coding, code

Фиксированное значение ’’unknown” (неизвестно)

code

1

subject

Ссылка на лицо, группу лиц, с которыми ассоциирован данный прибор

Reference

0..1

period

Период ассоциации медицинского прибора с субъектом

Period

0..1

11.9 Ресурс DeviceDefinition — описание медицинского изделия

11.9.1 Область применения и использования

Тип ресурса DeviceDefinition используется для описания общих характеристик и функций определенной модели изделия или класса изделий, например, модели персонального кардиомонитора. Он применяется в основном для описания медицинских изделий, но может описывать смартфоны, компьютеры, программное обеспечение и т.д. Экземпляр ресурса DeviceDefinition содержит описание изделия, обычно включаемого в каталоги или регистрационные удостоверения. При необходимости с его помощью можно описывать составные части изделия.

Примечание — Поскольку тип ресурса Device предназначен для описания конкретного экземпляра изделия, в нем предусмотрены такие элементы, как номер партии или серийный номер. Подобные элементы в типе ресурса DeviceDefinition отсутствуют.

192

ПНСТ 995—2024

11.9.2 Структура ресурса

Ресурс DeviceDefinition является детализацией абстрактного ресурса DomainResource. Состав элементов ресурса DeviceDefinition представлен на рисунке 55 и в таблице 269.

chu Медицинское изделие-описание

♦packaging 0..*

MarketDlstrbutton

♦marketDistribution

UdDovfceldentifier

marketperiod: Period subJurisdiction: uri

0..*

-^^ + device Identifier string

1

+ issuer: uri

♦ jurisdiction: uri

♦udlDevlceldentifler

Packaging

0..*

1

♦packaging ^^

+ identifier. Identifier [0..1]

+ type: CodeableConcept [0.. 1]

+ count: Integer[0..1]

Products heHUfe

♦udiDevice Identifier

+ type: CodeableConcept [0.. 1]

+ period[x][0..1J

♦ spedalPrecautlonsForSto«age: CodeableConcept [0..*]

♦shelfLifeStorage

♦distributer

Distrbuter

DevIceName

+ name: string «Binding»

+ type: code

Version

+ name: string [0..1]

«RefTarget»

+ organlzationReference: Reference [0..*]

+device Name

♦version

DomainResaunx

«Resource»

DevIceDeftaition

Regulatoryldentifler

♦ type: CodeableConcept [0.. 1] + component: identifier [0.. 1]

+ value: string

0..*

♦classification 0..*

Classification

+ justification: RelatedArtifact [0.. *] «Binding»

+ type: CodeableConcept

HasPart

------------------------♦haspart

+ count integer[0..1] г

«RefTarget»

+ reference: Reference

♦link jO..*

Unk

«Binding»

relation: Coding

«RefTarget»

rebtedDevice: CodeableReference

Property

+ valuelx]

«Binding»

+ type: CodeableConcept

property

О..*

description: markdown [0..1]

Identifier. Identifier [0..*]

partNumber: string [0..1]

modelNumber: string [0..1]

contact ContactPoint [0..*]

note: Annotation [0. .*]

«RefTarget»

manufacturer Reference [0..1]

owner: Reference [0..1]

«Binding»

safety: CodeableConcept [0..*]

languagecode: CodeableConcept [0..*]

production! dentifierl nil DI: code [0..*]

+regulatory Identifier

♦material /0..’

Material

+ substance: CodeableConcept

+ alternate: boolean [0..1]

+ allergenidndicatoR boolean [0..1]

+ deviceldentrfier: string

+ issuer uri

+ Jurisdiction: uri

«Binding»

+ type: code

♦correctiveAction

CorrectiveActton

0..1

+ recall: boolean

+ period: Period

«Binding»

♦ scope: code [0..1]

♦conformsTo 0..*

Confer msTo

+ version: string [0..*]

+ source: RelatedArtifact [O..*]

«Binding»

+ category: CodeableConcept [0..1]

+ specification: CodeableConcept

♦guideline^).. 1

♦chatgeltem^O^

Guide Ine

Chargeitem

useContext UsageContext [0..*] usageinstruction: markdown[0..1] relatedArtlfact RelatedArtifact [£>..*] indication: CodeableConcept [0..*] contraindication: CodeableConcept [0.. *] warning: CodeableConcept [0,.*| Intended Use: string [0..1]

+ count Quantity

+ effectiveperiod: Period [0..1]

+ useContext: Usagecontext [0..*]

«RefTarget»

+ charge I temCode: CodeableReference

Рисунок 55 — Ресурс DeviceDefinition

193

ПНСТ 995—2024

Таблица 269 — Состав элементов ресурса DeviceDefinition

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

0..1

implicitRules

Совокупность правил, по которым должен создаваться экземпляр ресурса

uri

0..1

language

Основной человеческий язык, на котором представлено содержание ресурса

code

0..1

Унаследованы от абстрактного класса DomainResource

text

Текстовое описание содержания экземпляра ресурса для интерпретации человеком

Narrattive

0..1

contained

Вложенный экземпляр ресурса

Resource

0..*

extension

Дополнительное содержание, определенное при реализации

Extension

0..*

modifierExtension

Модифицирующее расширение, которое не может быть проигнорировано

Extension

0..*

Собственные элементы

description

Дополнительная информация о медицинском изделии

markdown

0..1

identifier

Идентификатор модели медицинского изделия

Identifier

0..*

udiDeviceldentifier

Уникальный идентификатор медицинского изделия (UDI). Предназначен для штрих-кодирования

Backbone-Element

0..*

udiDeviceldentifier. deviceidentifier

Идентификатор каждого изделия, на которое распространяется данное описание. Назначается организацией, присваивающей идентификаторы на данной территории

string

1

udiDeviceldentifier. issuer

Идентификатор организации, присвоившей UDI

uri

1

udiDeviceldentifier. jurisdiction

Идентификатор организации, регулирующей применение UDI

uri

1

udiDeviceldentifier. marketDistribution

Сведения о вводе в обращение

Backbone-Element

0..*

udiDeviceldentifier. marketDistribution. marketPeriod

Период обращения

Period

1

udiDeviceldentifier. marketDistribution. subJurisdiction

Территория обращения

uri

1

regulatoryldentifier

Идентификация регистрационного удостоверения

Backbone-Element

0..*

regulatoryldentifier. type

Тип регистрации: basic (обычная) | master (генеральная) | license (лицензия)

code

1

regulatoryldentifier. deviceidentifier

Номер регистрационного удостоверения

string

1

regulatoryldentifier. issuer

Идентификация регуляторного органа

uri

1

194

Продолжение таблицы 269

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

regulatoryldentifier. jurisdiction

Идентификация территории регистрации

uri

1

partNumber

Артикул медицинского изделия

string

0..1

manufacturer

Ссылка на идентификацию производителя медицинского изделия

Reference

0..1

deviceName

Наименование медицинского изделия у производителя

Backbone-Element

0..*

deviceName.name

Наименование медицинского изделия

string

1

deviceName.type

Тип наименования: registered-name (наименование в регистрационном удостоверении) | user-friendly-name (краткое наименование для пользователя) | patient-reported-name (наименование для пациента)

code

1

modelNumber

Артикул модели медицинского изделия

string

0..1

classification

Классификация медицинского изделия

Backbone-Element

0..*

classification.type

Классификация модели медицинского изделия или класс риска

CodeableConcept

1

classification.

Justification

Уточнение классификации медицинского изделия

Related-

Artifact

0..*

conformsTo

Соответствие медицинского изделия стандартам или спецификациям

Backbone-Element

0..*

conformsTo.category

Тип стандарта или спецификации

CodeableConcept

0..1

conformsTo. specification

Обозначение стандарта или спецификации, которой соответствует медицинское изделие

CodeableConcept

1

conformsTo.version

Версия стандарта или спецификации, например, год публикации или номер

string

0..*

conformsTo.source

Стандарт, нормативный документ, методические указания или иная публикация, содержащая описание соответствия

Related-

Artifact

0..*

hasPart

Составная часть данного медицинского изделия

Backbone-Element

0..*

hasPart.reference

Ссылка на описание составной части медицинского изделия

Reference

1

hasPart.count

Количество экземпляров составной части в данном медицинском изделии

integer

0..1

packaging

Сведения об упаковке медицинского изделия

Backbone-Element

0..*

packaging.identifier

Идентификатор упаковки медицинского изделия

Identifier

0..1

packaging.type

Вид упаковки

CodeableConcept

0..1

packaging.count

Количество экземпляров изделия в упаковке

integer

0..1

packaging, distributor

Поставщик упакованного медицинского изделия

Backbone-Element

0..*

195

ПНСТ 995—2024

Продолжение таблицы 269

Имя

Описание

Тип данных

Кратность

packaging, distributor, name

Наименование поставщика

string

0..1

packaging, distributor, organization-Reference

Ссылка на экземпляр ресурса Organization со сведениями о поставщике

Reference

0..*

packaging.

udiDevice-ldentifier

Уникальный идентификатор медицинского изделия (UDI). Предназначен для штрих-кодирования

udiDevice-ldentifier

0..*

packaging, packaging

Вложенная упаковка

packaging

0..*

version

Версия медицинского изделия или программного обеспечения

Backbone-Element

0..*

version.type

Тип версии, например, присвоена производителем, одобрена регуляторным органом, внутренняя

CodeableConcept

0..1

version.component

Идентификатор аппаратного или программного модуля изделия, к которому относится версия

Identifier

0..1

version.value

Идентификатор версии

string

1

safety

Класс безопасности медицинского изделия

CodeableConcept

0..*

shelfLifeStorage

Срок годности и требования к хранению

Backbone-Element

0..*

shelfLifeStorage.type

Тип срока годности, например, срок годности упакованного изделия, срок годности после распаковки и т.д.

CodeableConcept

0..1

shelfLifeStorage. period[x]

Срок годности. Допустимы варианты periodDuration (длительность типа Duration) | periodstring (текстовое описание типа string)

0..1

shelfLifeStorage. special-Precautions-ForStorage

Требования к хранению. Если требования взяты из справочника, то должны быть указаны код и его значение

CodeableConcept

0..*

languageCode

Код языка человеко-читаемого текста, выводимого изделием

CodeableConcept

0..*

property

Характеристика медицинского изделия, например, разрешающая способность, точность, размеры

Backbone-Element

0..*

property.type

Вид характеристики

Codeable

Concept

1

property.value[x]

Значение характеристики. Допустимые варианты элемента: valueQuantity | valueCodeableConcept | valuestring | valueBoolean | valuelnteger | valueRange | valueAttachment

1

owner

Ссылка на организацию — владельца медицинского изделия

Reference

0..1

contact

Контактная информация технической поддержки

Contact-Point

0..*

link

Ассоциированное изделие, например присоединенное к данному изделию, взаимодействующее с ним, заменяющее его

Backbone-Element

0..*

link.relation

Вид ассоциации с данным изделием

Coding

1

link.related-Device

Ссылка на описание ассоциированного изделия или код вида ассоциированного изделия

CodeableReference

1

196

Окончание таблицы 269

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

note

Примечание

Annotation

0..*

material

Субстанция, использованная для производства материала или материалов, из которых изготовлено изделие

Backbone-

Element

0..*

material.substance

Субстанция, которую изделие содержит или может содержать либо из которой оно изготовлено

CodeableConcept

1

material.alternate

Признак альтернативы

boolean

0..1

material.allergenic-Indicator

Признак аллергенности

boolean

0..1

production-

IdentifierlnUDI

Вид идентификатора, представленного штрихкодом. Допустимые значения: lot-number (партия) | manufactured-date (дата производства) | serial-number (серийный номер) | expirationdate (срок годности) | biological-source (биологический источник) | software-version (версия программного обеспечения)

code

0..*

guideline

Руководство по применению данной модели изделия

Backbone-Element

0..1

guideline.useContext

Условие использования

Usage-Context

0..*

guideline.

usageinstruction

Детальные указания по применению

markdown

0..1

guideline.

relatedArtifact

Источник информации или ссылка на руководство

Related-

Artifact

0..*

guideline.indication

Показания к применению

CodeableConcept

0..*

guideline.

contraindication

Противопоказания к применению

CodeableConcept

0..*

guideline warning

Предостережение

CodeableConcept

0..*

guideline.

intendedllse

Основное назначение медицинского изделия

string

0..1

correctiveAction

Прослеживание последнего корректирующего действия по обеспечению безопасности

Backbone-

Element

0..1

correctiveAction. recall

Является ли корректирующее действие отзывом изделия

boolean

1

correctiveAction. scope

Охват действия: model (модель) | lot-numbers (партии) | serialnumbers (серийные номера)

code

0..1

correctiveAction. period

Даты начала и завершения корректирующего действия

Period

1

chargeitem

Код оплаты или ссылка на сведения об оплате, относящиеся к данной модели изделия

Backbone-Element

0..*

chargeltemCode

Код оплаты или ссылка на сведения об оплате

CodeableReference

1

count

Коэффициент, применяемый к коду оплаты

Quantity

1

effectivePeriod

Период оплаты

Period

0..1

useContext

Контекст оплаты

Usage-Context

0..*

197

ПНСТ 995—2024

11.9.3 Привязки к наборам значений

Привязки к наборам значений описаны в таблице 270.

Таблица 270 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

DeviceDefinition. regulatoryldentifier. type

http://hl7.org/fhir/ValueSet/ devicedefinition-regulatory-identifier-type

Обязательная

Тип регистрации медицинского изделия

DeviceDefinition. deviceName.type

http://hl7.org/fhir/ValueSet/device-nametype

Обязательная

Тип наименования медицинского изделия

DeviceDefinition. classification.type

http://hl7.org/fhir/ValueSet/device-type

Пример

Тип медицинского изделия. Включает понятия, определенные в номенклатуре SNOMED СТ (http://www.snomed. org/) с кодом 49062001 и дочерними кодами

DeviceDefinition.

conformsTo.category

http://hl7.org/fhir/ValueSet/device-specification-category

Пример

Тип стандарта или спецификации

DeviceDefinition. conformsTo. specification

http://hl7.org/fhir/ValueSet/device-specification-type

Пример

Обозначение стандарта или спецификации

DeviceDefinition.safety

http://hl7.org/fhir/ValueSet/device-safety

Пример

Класс безопасности медицинского изделия

DeviceDefinition. property.type

http://hl7.org/fhir/ValueSet/device-property-type

Пример

Вид характеристики медицинского изделия

DeviceDefinition.link, relation

http://hl7.org/fhir/ValueSet/ devicedefinition-relationtype

Расширяемая

Вид ассоциации с данным изделием

DeviceDefinition. productionldentifier-InUDI

http://hl7.org/fhir/ValueSet/device-productidentifierinudi

Обязательная

Вид идентификатора медицинского изделия, представленного штрихкодом

DeviceDefinition.

correctiveAction.scope

http://hl7.org/fhir/ValueSet/device-correctiveactionscope

Обязательная

Охват корректирующего действия

11.9.4 Параметры поиска экземпляров ресурса DeviceDefinition

Специальные параметры поиска экземпляров ресурса DeviceDefinition описаны в таблице 271. В дополнение к ним могут использоваться общие параметры поиска, описанные в подразделе 12.27.

Таблица 271 — Специальные параметры поиска экземпляров ресурса DeviceDefinition

Имя

Тип

Описание

Выражение

devicename

string

Поиск по строковым полям элементов DeviceDefinition.name или DeviceDefinition. classification.type. Способ реализации зависит от сервера

DeviceDefinition.deviceName.name

| DeviceDefinition.classification.type. coding.display | DeviceDefinition.classi-fication.type.text

identifier

token

Идентификатор модели медицинского изделия

DeviceDefinition.identifier

manu

facturer

reference

Ссылка на идентификацию производителя медицинского изделия

DeviceDefinition.manufacturer (Organization)

organization

reference

Ссылка на организацию — владельца медицинского изделия

DeviceDefinition.owner (Organization)

198

Окончание таблицы 271

ПНСТ 995—2024

Имя

Тип

Описание

Выражение

specification

token

Обозначение стандарта или спецификации, которой соответствует медицинское изделие

DeviceDefinition.conformsTo. specification

specification-version

composite

Сочетание обозначения стандарта или спецификации и версии

DeviceDefinition.conformsTo: specification: specification version: version

type

token

Тип стандарта или спецификации

DeviceDefinition.conformsTo.category

11.10 Ресурс DeviceMetric — измерительная способность медицинского прибора

11.10.1 Область применения и использования

Тип ресурса DeviceMetric используется для описания динамических свойств медицинского прибора, характеризующих его настройку или измерительную способность (метрику), в том числе непосредственную или вычисляемую. Кроме того, с его помощью можно описать операционный статус метрики, тип калибровки, время последней калибровки, состояние калибровки, цвет графика при выводе на монитор.

11.10.2 Структура ресурса

Ресурс DeviceMetric является детализацией абстрактного ресурса DomainResource. Состав элементов ресурса DeviceMetric представлен на рисунке 56 и в таблице 272.

class Медицинское изделие - ассоциация

DomainResource

Dev IceAssoclation

+ identifier Identifier [0..*]

+ category: CodeableConcept [0..*]

+ period: Period [0..1]

«RefTarget»

+ device: Reference

+ subject: Reference [0..1]

+ bodyStructure: Reference [0..1]

«Binding»

+ status: code

+ statusReason: CodeableConcept [0..*]

BackboneElement

Operation

-♦-operation

+ period: Period [0..1] «Binding»

+ status: CodeableConcept

«RefTarget»

+ operator Reference [0..*]

Рисунок 56 — Ресурс DeviceMetric

Таблица 272 — Состав элементов ресурса DeviceMetric

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

0..1

implicitRules

Совокупность правил, по которым должен создаваться экземпляр ресурса

uri

0..1

language

Основной человеческий язык, на котором представлено содержание ресурса

code

0..1

199

ПНСТ 995—2024

Окончание таблицы 272

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса DomainResource

text

Текстовое описание содержания экземпляра ресурса для интерпретации человеком

Narrattive

0..1

contained

Вложенный экземпляр ресурса

Resource

0..*

extension

Дополнительное содержание, определенное при реализации

Extension

0..*

modifierExtension

Модифицирующее расширение, которое не может быть проигнорировано

Extension

0..*

Собственные элементы

identifier

Идентификатор метрики

Identifier

0..*

type

Идентификация метрики

CodeableConcept

1

unit

Единица измерения

CodeableConcept

0..1

device

Ссылка на медицинский прибор

Reference

1

operationalStatus

Операционный статус. Допустимые значения: on (метрика функционирует, и результаты будут передаваться) ] off (метрика не функционирует) | standby (метрика функционирует, но передача результатов приостановлена) | entered-in-error (метрика введна по ошибке)

code

0..1

color

Наименование цвета отображения на мониторе или графике (из системы CSS Color Module Level 4) либо код цвета в системе RGB (#RRGGBB в шестнадцатеричной системе)

code

0..1

category

Категория метрики. Допустимые значения: measurement (измерение) | setting (параметр прибора) | calculation (вычисление) | unspecified (неизвестная)

CodeableConcept

1

measurement-Frequency

Частота опроса

Quantity

0..1

calibration

Калибровка

BakboneElement

0..*

type

Тип калибровки. Допустимые значения: unspecified (не указан) | offset (сдвиг) | gain (коэффициент) | two-point (сдвиг и коэффициент)

code

0..1

state

Состояние калибровки. Допустимые значения: not-calibrated (не калибрована) | calibration-required (требуется калибровка) | calibrated (калибрована) | unspecified (не указано)

code

0..1

time

Дата и время последней калибровки

instant

0..1

11.10.3 Привязки к наборам значений

Привязки к наборам значений описаны в таблице 273.

200

Таблица 273 — Привязки к наборам значений

ПНСТ 995—2024

Путь

Набор значений

Тип привязки

Описание

DeviceMetric.type

http://hl7.org/fhir/ValueSet/ devicemetric-type

Предпочтительная

Подмножество кодов номенклатуры терминов MDC, определенной в ГОСТ Р 56845, описывающее типы метрик и их компонентов, а также единицы измерения

DeviceMetric.unit

http://hl7.org/fhir/ValueSet/ ucum-units

Предпочтительная

Коды, определенные в системе UCUM (Unified Code for Units of Measure — унифицированные коды единиц измерения)

DeviceMetric.

operationalStatus

http://hl7.org/fhir/Value Set/ metric-operational-status

Обязательная

Операционный статус метрики

DeviceMetric.color

http://hl7.org/fhir/ValueSet/ color-codes

Обязательная

Наименование цвета из системы CSS Color Module Level 4 либо код цвета в системе RGB (#RRGGBB в шестнадцатеричной системе)

DeviceMetric. category

http://hl7.org/fhir/ValueSet/ metric-category

Обязательная

Категория метрики

DeviceMetric. calibration.type

http://hl7.org/fhir/ValueSet/ metric-calibration-type

Обязательная

Тип калибровки

DeviceMetric. calibration.state

DeviceMetric-

CalibrationState

Обязательная

Состояние калибровки

11.10.4 Параметры поиска экземпляров ресурса DeviceMetric

Специальные параметры поиска экземпляров ресурса DeviceMetric описаны в таблице 274. В дополнение к ним могут использоваться общие параметры поиска, описанные в подразделе 12.27.

Таблица 274 — Специальные параметры поиска экземпляров ресурса DeviceMetric

Имя

Тип

Описание

Выражение

category

token

Категория метрики

DeviceMetric.category

device

reference

Ссылка на медицинский прибор

DeviceMetric.device (Device)

identifier

token

Идентификатор метрики

DeviceMetric.identifier

type

token

Тип метрики

DeviceMetric.type

11.11 Ресурс Observation — результат исследования

11.11.1 Область применения и использования

Тип ресурса Observation используется для передачи результатов клинических исследований, в том числе:

а) жизненно важные показатели, например вес, температура, артериальное давление;

б) результаты лабораторных анализов, например концентрация глюкозы в капиллярной крови;

в) медицинские изображения;

г) результаты измерений, выполненных медицинским прибором, например, кардиографом или пульсоксиметром;

д) настройка приборов, например ИВЛ;

е) оценка по шкалам и индексам, например по шкале комы Глазго или шкале Апгар.

Тип ресурса Observation не должен использоваться, если клиническая информация может быть передана с помощью других ресурсов; например, ресурс Allergylntolerance описывает аллергии пациента, ресурс Medicationstatement — применение лекарственного препарата, ресурс

201

ПНСТ 995—2024

FamilyMemberHistory — семейный анамнез; ресурс Procedure — сведения о выполненной процедуре, ресурс QuestionnaireResponse — ответы на вопросник, ресурс Condition — диагноз или общее состояние пациента, ресурс Clinicallmpression — клиническое описание.

11.11.2 Структура ресурса

Ресурс Observation является детализацией абстрактного ресурса DomainResource. Состав элементов ресурса Observation представлен на рисунке 57 и в таблице 275.

class Исследование

DomainResource

«Resource»

Observation

+

identifier Identifier [0..*]

+

instantiates[x] [0..1]

+

category: CodeableConcept [0..*]

+

issued: instant

+

note: Annotation [0..*]

«RefTarget»

+

basedOn: Reference [0..*]

+

partOf: Reference [0..*]

+

subject: Reference [0..1]

+

focus: Reference [0..*]

+

encounter Reference [0..1]

+

device: Reference [0..1]

+

hasMember: Reference [0..*]

+

derived From: Reference [0..*]

«Binding»

+

status: code

+

interpretation: CodeableConcept [0..*]

+

method: CodeableConcept [0..1]

«Binding, Constraint»

+

code: CodeableConcept

+

dataAbsentReason: CodeableConcept [0..1]

+

bodySite: CodeableConcept [0..1]

«TypeChoice»

+

effect!ve[x] [0..1]

«Binding, RefTarget»

+

performer Reference [0..*]

«TypeChoice, Constraint»

+

value[x] [0..1]

«RefTarget, Constraint»

+

bodyStructure: Reference [0..1]

+

specimen: Reference [0..1]

BackboneElement

TriggeredBy

+triggeredBy

1

1

+reference Range

0..*

+ reason: string [0..1] «RefTarget»

+ observation: Reference «Binding»

+ type: code

BackboneElement

ReferenceRange

+ normalvalue: CodeableConcept [0..1]

+ age: Range

+ low. SimpleQuantity [0..1]

+ high: SimpleQuantity [0..1]

+ text: markdown [0..1]

«Binding»

+ type: CodeableConcept [0.. 1 ]

+ appiiesTo: CodeableConcept [0..*]

+refe re nee Range/ \ 0..*

Komponent^ q

1

BackboneElement

Component

«Binding, Constraint»

+ code: CodeableConcept

«TypeChoice»

+ value[x] [0..1]

«Binding»

+ dataAbsentReason: CodeableConcept [0..1]

+ interpretation: CodeableConcept [0..*]

Рисунок 57 — Ресурс Observation

Таблица 275 — Состав элементов ресурса Observation

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

0..1

202

Продолжение таблицы 275

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

implicitRules

Совокупность правил, по которым должен создаваться экземпляр ресурса

uri

0..1

language

Основной человеческий язык, на котором представлено содержание ресурса

code

0..1

Унаследованы от абстрактного класса DomainResource

text

Текстовое описание содержания экземпляра ресурса для интерпретации человеком

Narrattive

0..1

contained

Вложенный экземпляр ресурса

Resource

0..*

extension

Дополнительное содержание, определенное при реализации

Extension

0..*

modifierExtension

Модифицирующее расширение, которое не может быть проигнорировано

Extension

0..*

Собственные элементы

identifier

Идентификатор результата исследования

Identifier

0..*

instantiates[x]

Ссылка на определение исследования

*

0..1

basedOn

Ссылка на план или требование, для выполнения которого предназначено данное исследование

Reference

0..*

triggeredBy

Исследование, инициировавшее данное исследование

Backbone-Element

0..*

triggeredBy. observation

Ссылка на экземпляр ресурса Observation

Reference

1

triggeredBy.type

Тип инициации. Допустимые значения: reflex (в связи с результатом исследования) | repeat (повторение исследования с теми же настройками) | re-run (повторение исследования с другими настройками)

code

1

triggeredBy. reason

Описание причины инициации исследования

string

0..1

partOf

Ссылка на исследование, частью которого является данное исследование

Reference

0..*

status

Состояние исследования. Допустимые значения: registered (исследование выполнено, но результат пока не доступен) | preliminary (предварительный результат, может быть неполным или не проверенным) | final (исследование выполнено и результат доступен) | amended (результат выполненного исследования изменен или дополнен) | corrected (исправлена ошибка в результате исследования) cancelled (исследование отменено) | entered-in-error (результат исследования введен по ошибке) | unknown (состояние результата исследования не известно)

code

1

category

Категория исследования

CodeableConcept

0..*

code

Вид исследования

CodeableConcept

1

subject

Ссылка на субъект исследования

Reference

0..1

203

ПНСТ 995—2024

Продолжение таблицы 275

Имя

Описание

Тип данных

Кратность

focus

Ссылка на экземпляр ресурса, описывающего предмет исследования, если он отличается от субъекта

Reference

0..*

encounter

Ссылка на случай медицинской помощи

Reference

0..1

effective[x]

Физиологически релевантные дата и время либо период, к которому относится результат исследования (например, дата и время взятия биоматериала)

0..1

issued

Дата и время доступности текущей версии результата исследования

instant

0..1

performer

Ссылка на исполнителя исследования

Reference

0..*

value[x]

Результат исследования

*

0..1

dataAbsent-Reason

Причина отсутствия результата исследования

CodeableConcept

0..1

interpretation

Интерпретация результата исследования (норма, выше нормы и т. д.)

CodeableConcept

0..*

note

Примечание к исследованию

Annotation

0..*

bodySite

Код анатомической области субъекта, к которой относится результат исследования

CodeableConcept

0..1

bodystructure

Ссылка на описание анатомической области субъекта, к которой относится результат исследования

Reference

0..1

method

Методика исследования

CodeableConcept

0..1

specimen

Ссылка на идентификацию исследованного биоматериала

Reference

0..1

device

Ссылка на медицинский прибор, с помощью которого получен результат исследования, или на его измерительную способность

Reference

0..1

referenceRange

Справочный диапазон

Backbone-Element

0..*

referenceRange. low

Нижняя граница диапазона

SimpleQuantity

0..1

referenceRange. high

Верхняя граница диапазона

SimpleQuantity

0..1

referenceRange. normalValue

Качественное значение нормы (например, ‘отрицательный результат’)

CodeableConcept

0..1

referenceRange. type

Вид справочного диапазона

CodeableConcept

0..1

referenceRange. appliesTo

Популяция для данного справочного диапазона

CodeableConcept

0..*

referenceRange. age

Возрастная группа (диапазон)

Range

0..1

referenceRange. text

Повествовательное описание справочного диапазона

markdown

0..1

hasMember

Ссылка на экземпляр ресурса, являющийся частью результата данного исследования, например на запись дневника самонаблюдений

Reference

0..*

204

Окончание таблицы 275

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

derivedFrom

Ссылка на экземпляр ресурса, используемого для получения данного результата исследования

Reference

0..*

component

Компонент результата исследования

Backbone-Element

0..*

component.code

Вид исследования

CodeableConcept

1

component. value[x]

Результат исследования

0..1

component.data-AbsentReason

Причина отсутствия результата исследования

CodeableConcept

0..1

component, interpretation

Интерпретация результата исследования (норма, выше нормы и т. д.)

CodeableConcept

0..*

component.

referenceRange

Справочный диапазон

Backbone-Element

0..*

component.

referenceRange.low

Нижняя граница диапазона

Simple-Quantity

0..1

component.

referenceRange. high

Верхняя граница диапазона

Simple-Quantity

0..1

component. referenceRange. normalValue

Качественное значение нормы (например, ‘отрицательный результат’)

CodeableConcept

0..1

component.

referenceRange. type

Вид справочного диапазона

CodeableConcept

0..1

component. referenceRange. appliesTo

Популяция для данного справочного диапазона

CodeableConcept

0..*

component.

referenceRange.age

Возрастная группа (диапазон)

Range

0..1

component.

referenceRange.text

Повествовательное описание справочного диапазона

markdown

0..1

11.11.3 Привязки к наборам значений

Привязки к наборам значений описаны в таблице 276.

Таблица 276 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

Observation. triggeredBy. type

http://hl7.org/fhirA/alueSet/ observation-triggeredbytype

Обязательная

Тип инициации исследования

Observation.status

http://hl7.org/fhir/ValueSet/ observation-status

Обязательная

Состояние исследования

Observation.category

http://hl7.org/fhir/ValueSet/ observation-category

Предпочтительная

Категория исследования

Observation.code

http://hl7.org/fhir/ValueSet/ observation-codes

Пример

Все коды LOINC

Observation. dataAbsentReason

http://hl7.org/fhir/ValueSet/data-absent-reason

Расширяемая

Причина отсутствия результата исследования

205

ПНСТ 995—2024

Окончание таблицы 276

Путь

Набор значений

Тип привязки

Описание

Observation, interpretation

http://hl7.org/fhir/ValueSet/ observation-interpretation

Расширяемая

Интерпретация результата исследования

Observation.bodySite

http://hl7.org/fhir/ValueSet/body-site

Пример

Все коды анатомических областей, определенные в номенклатуре SNOMED СТ как потомки понятия с кодом 442083009

Observation.method

http://hl7.org/fhir/ValueSet/ observation-methods

Пример

Коды методик, определенные в номенклатуре SNOMED СТ как потомки понятия с кодом 272394005, или 129264002, или 386053000

Observation. referen ce-Range.normalValue

http://hl7.org/fhir/ValueSet/ observation-referencerangenormalvalue

Расширяемая

Коды, описывающие нормальные значения, например Absent(отсутствует)

Observation, reference-Range.type

http://hl7.org/fhir/ValueSet/ referencerange-meaning

Предпочтительная

Тип справочного диапазона

Observation. reference-Range.appliesTo

http://hl7.org/fhir/ValueSet/ referencerange-appliesto

Пример

Популяция

Observation, component, code

http://hl7.org/fhir/ValueSet/ observation-codes

Пример

Все коды LOINC

Observation, component. dataAbsentReason

http://hl7.org/fhir/ValueSet/data-absent-reason

Расширяемая

Причина отсутствия результата исследования

Observation, component, interpretation

http://hl7.org/fhir/ValueSet/ observation-interpretation

Расширяемая

Интерпретация результата исследования

11.11.4 Ограничения ресурса Observation

Ограничения ресурса Observation описаны в таблице 277.

Таблица 277 — Ограничения ресурса Observation

Идентификатор

Вид

Путь

Описание

Выражение

obs-3

Правило

Observation. referenceRange

Должен присутствовать хотя бы один из компонентов low, high или text

low.exists() or high.ex-ists() or text.exists()

obs-6

Правило

Базовый

Если отсуствует элемент Observation.valuefx], должен присутствовать элемент dataAbsentReason

dataAbsentReason.emp-ty() or value.empty()

obs-7

Правило

Базовый

Если значение элемента Observation.component.code совпадает со значением элемента Observation.code, то элемент Observation, value должен отсутствовать (результат исследования возвращается в элементе Observation.component.value[x])

value.empty() or component.code. where(coding. intersect(%resource.code. coding).exists()).empty()

206

Окончание таблицы 277

ПНСТ 995—2024

Идентификатор

Вид

Путь

Описание

Выражение

obs-8

Правило

Базовый

Элемент bodystructure должен присутствовать только при отсутствии элемента Observation. bodySite

bodySite. exists() implies bodystructure. empty()

obs-9

Правило

Observation, specimen

Если элемент Observation, specimen ссылается на экземпляр ресурса Group, то его членами должны быть экземпляры ресурса Specimen

(reference.resolve(). exists() and reference. resolve() is Group) implies reference.resolve(). member.entity.resolve(). all($this is Specimen)

11.11.5 Использование элемента Observation.component

Элемент Observation.component используется для передачи компонентов результата исследования, которые должны интерпретироваться совместно. Компоненты могут быть отдельными частями результата или могут детализировать исследование, указанное в элементе Observation.code. Компоненты могут использоваться только в том случае, если исследование выполняется по одной методике, одним исполнителем, одним прибором и в одно и то же время.

Примерами результатов исследований, имеющих компоненты, служат:

а) измерение артериального давления, компонентами которого служат систолическое и диастолическое давление;

б) оценка по шкале Апгар, представленная в виде одного экземпляра ресурса Observation с пятью компонентами;

в) представление нескольких ответов на один вопрос.

В то же время исследование индекса массы тела не должно содержать компоненты веса и роста, поскольку они являются самостоятельными измерениями и должны быть представлены отдельными экземплярами ресурса Observation.

11.11.6 Использование элементов Observation.hasMember и Observation.derivedFrom

Элементы Observation.hasMember и Observation.derivedFrom используются для ссылок на результаты исследований, которые могут интепретироваться и использоваться сами по себе и различаются хотя бы одним из элементов method, performer, device, effective. Примерами могут служить:

а) панели лабораторных исследований. В этом случае элемент Observation.code содержит код панели, элемент Observation.value[x] обычно отсутствует, компоненты панели представляются в виде отдельных экземпляров ресурса Observation, а в экземплярах элемента Observation.hasMember даются ссылки на эти компоненты. Например, результат микробиологического исследования содержит ссылки на идентификацию изолята и на исследование чувствительности к антибиотикам;

б) вычисляемые результаты. В этом случае оба элемента Observation.code и Observation.value[x] присутствуют, а результаты исследований, использованные для вычислений, передаются по ссылке в экземплярах элемента Observation.derivedFrom.

11.11.7 Результаты с кодированными значениями

Результат исследования может представляться в форме кода из определенной системы кодирования. Например, медицинский прибор вместо количественного значения (или вместе с ним) может передать код 8574682, определенный в системе кодирования MDC (ГОСТ Р 56842) и указывающий на низкий заряд батареи. Этот же код в другой системе кодирования может иметь иное значение. И наоборот, это же состояние заряда батареи может иметь другой код в местной системе кодирования.

В таких случаях в качестве value[x] должен использоваться вариант valueCodeableConcept, в котором можно указать несколько эквивалентных кодов из разных систем кодирования.

Если код подобного события отсутствует или указан код, означающий «прочее», то в компоненте valueCodeableConcept.text можно передать подходящее текстовое значение.

11.11.8 Варианты типа данных результата исследования

В экземпляре ресурса Observation вместо value[x] должен быть подставлен один из следующих элементов, определяющих тип данных:

a) valueQuantity;

б) valueCodeableConcept;

207

ПНСТ 995—2024

в) valuestring;

г) valueBoolean;

д) valuelnteger;

е) valueRange;

ж) valueRatio;

и) valueSampledData;

к) valueTime;

л) valueDateTime;

м) valuePeriod;

н) valueAttachment.

Вариант valueAttachment представляет двоичный результат исследования, например изображение.

Вариант valueBoolean используется редко, поскольку большинство результатов исследований кроме ответов да/нет могут содержать исключительное значение, например «неизвестно». Поэтому вместо valueBoolean рекомендуется использовать вариант valueCodeableConcept, привязанный к набору значений с трехзначной логикой, например http://hl7.org/fhir/R4/valueset-example-yesnodontknow.html.

11.11.9 Физиологически релевантное время результата исследования

Варианты effectiveDateTime или effectivePeriod указывают физиологически релевантное время результата исследования. Для результата исследования биоматериала должны быть указаны начало и завершение сбора материала (к примеру, при суточном анализе мочи), но если время сбора достаточно короткое, например при анализе венозной крови, то вместо интервала может быть указан момент времени. Если исследование выполнено непосредственно с пациентом (например, измерение артериального давления или рентген грудной клетки), то обычно вместо интервала указывают момент времени.

11.11.10 Отмененное или прекращенное исследование

Если измерение или анализ не могут быть выполнены (например, недостаточно биоматериала), то элементу status должно быть присвоено значение cancelled и должна быть указана причина, желательно кодированная. Для этого можно опустить элемент value[x] и использовать элемент dataAbsentReason или указать соответствующий код в варианте valueCodeableConcept.

11.11.11 Параметры поиска экземпляров ресурса Observation

Специальные параметры поиска экземпляров ресурса Observation описаны в таблице 278. В дополнение к ним могут использоваться общие параметры поиска, описанные в подразделе 12.27.

Таблица 278 — Специальные параметры поиска экземпляров ресурса Observation

Имя

Тип

Описание

Выражение

based-on

reference

Ссылка на план или требование, для выполнения которого предназначено данное исследование

Observation.basedOn

(CarePlan, MedicationRequest, Nu-tritionOrder, DeviceRequest, Service-Request, ImmunizationRecommen-dation)

category

token

Категория исследования

Observation.category

code

token

Вид исследования

Observation.code

code-value-concept

composite

Вид исследования и кодированное значение результата

On Observation: code: code-value-concept: value.ofType(CodeableCon-cept)

code-value-date

composite

Вид исследования и значение результата в форме даты и времени или диапазона дат и времени

On Observation: code: code-value-date: value.ofType(dateTime) | value. ofType(Period)

code-value-quantity

composite

Вид исследования и количественное значение результата

On Observation: code: code-value-quantity: value.ofType(Quantity)

code-value-string

composite

Вид исследования и строковое значение результата

On Observation: code: code-value-string: value.ofType(string)

208

Продолжение таблицы 278

ПНСТ 995—2024

Имя

Тип

Описание

Выражение

combo-code

token

Вид исследования, в том числе у компонентов исследования

Observation.code | Observation, component.code

combo-code-value-concept

composite

Вид исследования и кодированное значение результата, в том числе у компонентов исследования

On Observation | Observation.component: combo-code: code combo-value-concept: value.ofType(CodeableCon-cept)

combo-code-value-quantity

composite

Вид исследования и количественное значение результата, в том числе у компонентов исследования

On Observation | Observation.component: combo-code: code combo-value-quantity: value.ofType(Quantity)

combo-data-absent-reason

token

Причина отсутствия элемента Observation. value[x] или Observation.component.value[x]

Observation.dataAbsentReason |

Observation.component.dataAbsent

Reason

combovalueconcept

token

Значение результата исследования или компонента исследования, если оно имеет тип данных CodeableConcept

Observation.value.ofType(Codeable-Concept) | Observation.component, value.ofType(CodeableConcept)

combovaluequantity

quantity

Значение результата исследования или компонента исследования, если оно имеет тип данных Quantity или SampledData

Observation.value.ofType(Quantity) | Observation.value.ofType(Sampled-Data) | Observation.component.value. ofType(Quantity) | Observation.component.value. ofType(SampledData)

componentcode

token

Вид исследования у компонента

Observation.component.code

component-code-value-concept

composite

Вид исследования и кодированное значение результата у компонента исследования

On Observation.component: component-code: code component-value-concept: value.

ofType(CodeableConcept)

component-code-value-quantity

composite

Вид исследования и количественное значение результата у компонента исследования

On Observation.component: component-code: code component-value-quantity: value.

otType(Quantity)

component-data-absent-

reason

token

Причина отсутствия элемента Observation. component.value[x]

Observation.component. dataAbsentReason

componentvalue-canonical

uri

Значение URL элемента valueCanonical у компонента исследования

Observation.component.value. ofType(canonical)

componentvalueconcept

token

Значение результата компонента исследования, если оно имеет тип данных CodeableConcept

Observation.component.value. ofType(CodeableConcept)

componentvaluequantity

quantity

Значение результата компонента исследования, если оно имеет тип данных Quantity или SampledData

Observation.component.value.

ofType(Quantity) | Observation.com-ponent.value.ofType(SampledData)

compo-nent-value-reference

reference

Значение результата компонента исследования, если оно имеет тип данных Reference

Observation.component, value.ofType(Reference) (MolecularSequence)

data-absent-reason

token

Причина отсутствия элемента Observation. value[x]

Observation.dataAbsentReason

209

ПНСТ 995—2024

Продолжение таблицы 278

Имя

Тип

Описание

Выражение

date

date

Физиологически релевантные дата и время либо период, к которому относится результат исследования

Observation.effective.ofType(da-teTime) | Observation.effective. ofType(Period) | Observation.effective.ofType(Timing) | Observation, effective.ofType(instant)

derived-from

reference

Ссылка на экземпляр ресурса, используемого для получения данного результата исследования

Observation.derivedFrom (GenomicStudy, Observation, Imag-ingStudy, MolecularSequence, Im-agingSelection, QuestionnaireRe-sponse, DocumentReference)

device

reference

Ссылка на медицинский прибор, с помощью которого получен результат исследования, или на его измерительную способность

Observation.device (Device, DeviceMetric)

encounter

reference

Ссылка на случай медицинской помощи

Observation.encounter (Encounter)

focus

reference

Ссылка на экземпляр ресурса, описывающего предмет исследования, если он отличается от субъекта

Observation.focus (Any)

has-member

reference

Ссылка на экземпляр ресурса, являющийся частью результата данного исследования

Observation.hasMember (Observation, MolecularSequence, QuestionnaireResponse)

identifier

token

Идентификатор результата исследования

Observation.identifier

method

token

Методика исследования

Observation.method

part-of

reference

Ссылка на исследование, частью которого является данное исследование

Observation. partOf

(GenomicStudy, Immunization, Med-icationDispense, MedicationAd-ministration, Procedure, Imaging-Study, Medicationstatement)

patient

reference

Ссылка на субъект исследования (если это пациент)

Observation.subject.where(resolve() is Patient) (Patient)

performer

reference

Ссылка на исполнителя исследования

Observation.performer (Practitioner, Organization, Care-Team, Patient, PractitionerRole, RelatedPerson)

specimen

reference

Ссылка на идентификацию исследованного биоматериала

Observation.specimen (Specimen, Group)

status

token

Состояние исследования

Observation.status

subject

reference

Ссылка на субъект исследования

Observation.subject

(Practitioner, Group, Organization, BiologicallyDerivedProduct, Nu-tritionProduct, Device, Medication, Patient, Procedure, Substance, Location)

value-canonical

uri

Значение URL элемента valueCanonical

Observation.value.ofType(canonical)

valueconcept

token

Значение результата исследования, если оно имеет тип данных CodeableConcept

Observation.value.

offype(CodeableConcept)

210

Окончание таблицы 278

ПНСТ 995—2024

Имя

Тип

Описание

Выражение

value-date

date

Значение результата исследования, если оно имеет тип данных dateTime или Period

Observation.value.ofType(dateTime) |

Observation.value.otType(Period)

valuemarkdown

string

Значение результата исследования, если оно имеет тип данных string, а также поиск по компоненту text значения результата типа CodeableConcept

Observation.value.ofType(markdown) | Observation.value.ofType(Codeable-Concept).text

valuequantity

quantity

Значение результата исследования, если оно имеет тип данных Quantity или SampledData

Observation.value.ofType(Quantity) | Observation, value.ofType(Sampled-Data)

valuereference

reference

Значение результата исследования, если оно имеет тип данных Reference.

Observation.value.ofType(Reference) (MolecularSequence)

11.11.12 Передача результатов измерений

Примерный процесс передачи результата измерений показан на рисунке 58.

211

ПНСТ 995—2024

мис

Сверка таймеров сохранена

Результат измерения сохранен

Обработать результат измерения

Рисунок 58 — Процесс передачи результата измерений

ПМП устанавливает связь с менеджером ПМП или шлюзом интернета вещей (далее для краткости упоминается только менеджер). Затем ПМП передает протокольные данные, необходимые для интерпретации результатов измерений или управления прибором, например выбранные единицы измерения или процент заряда батареи. Если за время, прошедшее с предыдущего сеанса связи, у ПМП прервалась линия времени (например, таймер был сброшен или пациент изменил дату и время таймера), то ПМП должен передать менеджеру показания своего таймера в формате ГОСТ Р 56845. Менеджер формирует экземпляр ресурса Observation, содержащий сверку показаний таймера ПМП и таймера менеджера, и передает его сервису обработки и хранения результатов измерений (далее — сервис).

212

ПНСТ 995—2024

Сервис сохраняет сверку таймеров, а МИС получает сохраненный экземпляр ресурса Observation по подписке.

ПМП осуществляет измерение показателей состояния пациента или среды его обитания и передает менеджеру результат измерения в формате ГОСТ Р 56845. Менеджер преобразует полученный результат в экземпляр ресурса Observation, в том числе добавляет в него идентификатор ПМП, дату и время поступления результата измерения, а также идентификатор последней сверки таймеров. Затем менеджер передает сервису сформированный экземпляр ресурса Observation. Сервис сохраняет результат измерений, а МИС получает сохраненный экземпляр ресурса Observation по подписке.

11.11.13 Варианты типов результатов измерений

Взаимодействие ПМП с менеджером, осуществляемое в соответствии со стандартом ГОСТ Р 56845, может включать в себя обмен данными, не являющимися результатами измерений. Например, пользователь может изменить на своих весах единицы веса с фунтов на килограммы. Весы информируют об этом шлюз. В передаче этого события сервису нет никакой необходимости. Передача требуется, если по событию измерения ПМП передает менеджеру один из 12 атрибутов, перечисленных в таблице 279.

Таблица 279 — Атрибуты, передаваемые по событию измерения

Атрибут

Описание

Basic-Nu-Observed-Value

Одно число, представленное в формате SFLOAT

Simple-Nu-Observed-Value

Одно число, представленное в формате FLOAT

Compound-Basic-Nu-Observed-Value

Несколько чисел, представленных в формате SFLOAT

Compound-Simple-Nu-Observed-Value

Несколько чисел, представленных в формате FLOAT

Nu-Observed-Value

Одно число, представленное в формате FLOAT и дополненное единицами измерения и типом данных

Compound Nu-Observed-Value

Несколько чисел, представленных в формате FLOAT и дополненных единицами измерения и типом данных

Simple-Sa-Observed-Value

Последовательность масштабируемых периодических числовых считываний

Enum-Observed-Value-Simple-OID

Результат измерения, представленный номенклатурным кодом

Enum-Observed-Value-Basic-Bit-Str

Поле из 16 битов, каждый из которых описывает определенное состояние или событие

Enum-Observed-Value-Simple-Bit-Str

Поле из 32 битов, каждый из которых описывает определенное состояние или событие

Enum-Observed-Value-Simple-Str

Человеко-читаемая строка

Enum-Observed-Value

Поле из 32 битов, каждый из которых описывает определенное состояние или событие, дополненное номенклатурным кодом или строкой, а также типом данных

Каждый результат измерения представлен одним и только одним из этих атрибутов. Если ПМП передает данные, не содержащие такой атрибут, то эта информация адресована менеджеру, чтобы он мог декодировать переданный затем результат измерения, и сервису не передается.

Некоторые атрибуты, например Basic-Nu-Observed-Value и Simple-Nu-Observed-Value, представляют один и тот же тип измерений, отличающийся только длиной представления чисел с плавающей точкой. Поэтому варианты типов результатов измерений сводятся к следующим шести вариантам:

а) число (Basic-, Simple-, and Nu-Observed-Value);

б) вектор (Compound-*-Nu-Observed-Value);

в) последовательность периодических считываний (Simple-Sa-Observed-Value);

г) код (Enum-Observed-Value-Simple-OID);

д) группа двоичных состояний или событий (Enum-Observed-Value-*-Bit-Str);

е) человеко-читаемая строка (Enum-Observed-Value-Simple-Str).

213

ПНСТ 995—2024

11.11.14 Представления чисел с плавающий точкой FLOAT и SFLOAT

В стандарте ГОСТ Р 56845 для чисел с плавающей точкой определены форматы FLOAT и SFLOAT Формат SFLOAT использует 16 битов, a FLOAT — 32 бита. Для передачи некоторых типов ошибок зарезервированы пять специальных значений, приведенных в таблице 280.

Таблица 280 — Зарезервированные значения чисел с плавающей точкой

FLOAT

SFLOAT

Описание

Представление в экземпляре ресурса Observation

0x007FFFFF

0x7FF

He число (NaN)

dataAbsentReason.coding.code = ‘not-a-number’

0x007FFFFE

0x7FE

Положительная бесконечность (+inf)

dataAbsentReason.coding.code = ‘positive-infinity’

0x00800002

0x802

Отрицательная бесконечность (-inf)

dataAbsentReason.coding.code = ‘negative-infinity’

0x00800000

0x800

He может быть представлено с данной точностью

dataAbsentReason.coding.code = ‘error’

0x00800001

0x801

Зарезервировано для будущего использования

dataAbsentReason.coding.code = ‘error’

11.11.15 Номенклатурные коды

Согласно стандарту ГОСТ Р 56845 типы измерений, единицы измерения и ряд других характеристик, относящихся к результатам измерений, должны передаваться в виде номенклатурных кодов, определенных в стандарте ГОСТ Р 56842. Эти коды представляют собой 32-битовые целые числа без знака. Старшие 16 битов задают раздел номенклатуры, а младшие 16 битов — код термина в этом разделе. С каждым номенклатурным кодом связан «почти человеко-читаемый» мнемокод; например, с кодом 147842 связан мнемокод MDC_ECG_HEART_RATE (частота сокращений сердца, определенная по ЭКГ). ПМП передает шлюзу только числовой номенклатурный код, а при передаче сервису шлюз по возможности дополняет номенклатурный код мнемокодом. В ряде случаев ПМП передает только код термина, если раздел можно определить из контекста передачи.

При передаче результатов измерений ПМП использует в качестве единиц измерений соответствующий номенклатурный код. При передаче сервису шлюз должен указать код единицы измерения, определенный в стандарте UCUM [37].

11.11.16 Отображение номенклатурного кода в элементы с типом данных CodeableConcept

При отображении номенклатурных кодов в элементы ресурса Observation, имеющие тип данных CodeableConcept, он должен представляться в компонентах этого типа данных следующим образом:

a) coding.code = номенклатурный код;

б) coding.system = "urn:iso:std:iso:11073:10101’’;

в) text = мнемокод (необязательный компонент).

Мнемокод может быть дополнен его кратким описанием на русском языке, например, "MDC_ECG_ HEART_RATE: частота сокращений сердца, определенная по ЭКГ”.

Согласно стандарту ГОСТ Р 56845, в составе каждого результата измерений должен присутствовать атрибут Туре, указывающий тип измерения. Однако в составе результата измерений могут быть атрибуты, модифицирующие или изменяющие значение атрибута Туре. Поэтому рекомендуется использовать следующий алгоритм присваивания номенклатурного кода элементу Observation.code, coding.code:

a) partition = Type.partition;

6) termCode = Type.code;

в) если присутствует атрибут Metric-Id:

1) termCode = Metric-Id;

2) если присутствует атрибут Metric-Id-Partition:

3) partition = Metric-Id-Partition;

г) если результат измерения задается атрибутом Nu-Observed-Value или Enum-Observed-Value:

1) termCode = *-Observed-Value.metric;

2) Observation.code.coding.code = partition*216+termCode.

214

ПНСТ 995—2024

В элементах, имеющих тип данных CodeableConcept, группа компонентов coding.code и coding, system может повторяться при условии, что они относятся к одному и тому же понятию, возможно, с разной степенью общности. Если номенклатурному коду соответствует понятие, определенное в профиле жизненно важных показателей (https://www.hl7.org/fhir/observation-vitalsigns.html), то во второй группе компонентов coding.code и coding.system должен быть передан код, указанный в этом профиле. В еще одной группе следует передать код измерения, взятый из нормативно-справочной информации Минздрава России.

11.11.17 Представление единиц измерения

Результаты измерений, представляющие физические величины, могут содержать единицы измерения. Они передаются в атрибуте Unit-Code, но атрибуты Nu-Observed-Value и Compound-Nu-Observed-Value содержат собственные компоненты единиц измерения, которые переопределяют значение атрибута Unit-Code.

Все коды единиц измерения определены в разделе 4 номенклатуры MDC (см. 11.11.17), поэтому ПМП передает менеджеру только код термина. При формировании экземпляра ресурса Observation менеджер должен преобразовать код термина в эквивалентный код системы UCUM. Если эквивалентный код отсутствует, то в экземпляр ресурса Observation должен быть помещен полный 32-битовый номенклатурный код, вычисляемый по коду термина для раздела 4.

11.11.18 Преобразование битовых полей

Результаты измерений могут содержать битовые поля, в которых каждый бит описывает состояние или событие. Например, результат измерения, переданный пульсоксиметром, может содержать 16-битовое поле, в котором установлен бит 11 (то есть имеет значение 1), означающий плохой сигнал.

Битовые поля в нотации АСН.1 могут быть определены следующим образом (см. [1]—[21]): Measurementstatus ::= BITS-16 { invalid(0), questionable (1), not— available (2), calibration-ongoing (3), test-data (4), demo-data (5), validated-data (8), early-indication(9), msmt-ongoing (10), msmt—state—in—alarm(14), msmt-state-al-inhibited(15) }

Здесь каждому значащему биту присвоено имя, например test-data (тестовые данные), а в скобах указан номер бита. Номер 0 соответствует старшему значащему биту. Для некоторых битов определение пропущено, они могут быть задействованы в следующих версиях стандартов. В данном примере использованы 11 битов из 16.

Преобразование битового поля осуществляется следующим образом. Номенклатурный код битового поля помещается в элемент Observation.code в соответствии с таблицей 281.

Таблица 281 — Преобразование номенклатурного кода битового поля

Компонент элемента Observation.code

Значение

Observation.code.coding.system

"urn:iso:std:iso:11073:10101”

Observation.code.coding.code

номенклатурный код, например 150604

Observation.code.text

мнемокод, соответствующий номенклатурному коду (необязателен), дополненный текстом, например «MDC_PULS_ OXIM_DEV_STATUS: Состояние процесса измерений»

Затем для каждого значащего бита создается отдельный экземпляр элемента Observation, component, компоненты которого заполняются в соответствии с таблицей 282.

215

ПНСТ 995—2024

Таблица 282 — Преобразование значения отдельного бита

Компонент элемента Observation.code

Значение

Observation.component.code.coding.system

"http://hl7.org/fhir/uv/phd/CodeSystem/ASN1 ToHL7”

Observation.component.code.coding.code

Номенклатурный код, дополненный точкой и номером бита, например «150604.11»

Observation.component.code.text

Имя бита в определении АСН.1 (необязательно), например, «signal-poor»

Observation.component. valueCodeableConcept. coding.system

«http://terminology.hl7.org/CodeSystem/v2-0136»

Observation.component. valueCodeableConcept. coding.code

«У», если бит установлен, «N», если бит снят

Observation.component. valueCodeableConcept. text

Человеко-читаемый текст, соответствующий значению бита, например «Плохой сигнал»

Если бит описывает событие (event), например, signal-poor (плохой сигнал), то экземпляр элемента Observation.component создается только для установленного бита. Если бит описывает состояние (state), например lim-low-off (обнаружение нижнего предела отключено), то экземпляр элемента Observation.component создается при любом значении бита.

11.11.19 Идентификатор результата измерения

Некоторые ПМП повторно передают старые данные. Чтобы исключить появление дубликатов результатов измерений в базе данных сервиса, менеджер ПМП должен присваивать элементу Observation, identifier значение, одинаковое для всех дубликатов, и при передаче экземпляра Observation сервису использовать контейнер транзакции Bundle, в котором указан элемент ifNoneExists с соответствующим фильтром.

11.11.20 Статус результата измерений

Атрибут Measurement-Status передается как 16-битовое поле. Он определяет 11 событий, идентифицирующих ошибки или особые условия измерения. Он имеет тип данных Measurementstatus, имеющий следующее определение на языке АСН.1: Measurementstatus ::= BITS-16 { invalid(0) , questionable (1), not— available (2), calibration-ongoing (3), test-data(4), demo-data (5), validated-data(8), early-indication(9), msmt-ongoing (10), msmt—state—in—alarm(14), msmt-state-al-inhibited(15) }

Биты могут быть установлены параллельно, но не все сочетания битов имеют смысл.

Для передачи статуса результата измерений используются три элемента ресурса Observation: dataAbsentReason, interpretation и meta.security (таблица 283).

Таблица 283 — Передача статуса результатов измерений в элементах ресурса Observation

Бит

Имя

Описание

Элемент ресурса Observation

0

invalid

Ошибочный результат

dataAbsentReason.coding.system=”http://terminology. hl7.org/CodeSystem/data-absent-reason” dataAbsentReason.coding.code=”error”

216

Окончание таблицы 283

ПНСТ 995—2024

Бит

Имя

Описание

Элемент ресурса Observation

1

questionable

Достоверность результата под вопросом

interpretation.coding.system=http://hl7.org/fhir/uv/pocd/

CodeSystem/measurement-status

interpretation.coding.code=”questionable”

2

not-available

Результат недоступен

dataAbsentReason.coding.system=”http://terminology. hl7.org/CodeSystem/data-absent-reason” dataAbsentReason.coding.code=”not-performed”

3

calibration-ongoing

В процессе калибровки

interpretation.coding.system=”http://hl7.org/fhir/uv/pocd/

CodeSystem/measurement-status”

interpretation.coding.code=”calibration-ongoing”

4

test-data

Тестовый результат

meta.security.code=”HTEST”

meta.security.system=”http://terminology.hl7.org/

CodeSystem/v3-ActReason”

5

demo-data

Демонстрационный результат

meta.security.code=”HTEST”

meta.security.system=”http://terminology.hl7.org/

CodeSystem/v3-ActReason”

8

validated-data

Результат проверен

interpretation.coding.system=”http://hl7.org/fhir/uv/pocd/

CodeSystem/measurement-status”

interpretation.coding.code=”validated-data”

9

early-indication

Предварительный результат

interpretation.coding.system=”http://hl7.org/fhir/uv/pocd/

CodeSystem/measurement-status”

interpretation.coding.code=”early-indication”

10

msmt-ongoing

В процессе измерения

dataAbsentReason.coding.code-’temp-unknown” dataAbsentReason.coding.system=”http://terminology.hl7.org/ CodeSystem/data-absent-reason”

14

msmt-value-exceed-boundaries

Результат за пределами диапазона

interpretation.coding.system=”http://hl7.org/fhir/uv/pocd/

CodeSystem/measurement-status”

interpretation.coding.code=”in-alarm”

15

msmt-state-ann-inhibited

Оповещение о выходе за пределы диапазона отключено

interpretation.coding.system=”http://hl7.org/fhir/uv/pocd/

CodeSystem/measurement-status”

interpretation.coding.code=”alarm-inhibited”

Если результат измерения передается в атрибуте Nu-Observed-Value или Enum-Observed-Value, то статус результата измерений берется из компонента state этого атрибута.

11.11.21 Сверка таймеров

Сверка таймеров представляет собой значение таймера менеджера, считанное при получении от ПМП значения таймера ПМП. В предположении, что таймер менеджера синхронизирован с мировым временем (например, по протоколу Network Time Protocol) лучше, чем таймер ПМП (что обычно имеет место), менеджер должен корректировать время выполнения измерения на разность между показаниями двух таймеров. Иными словами, менеджер должен поместить момент измерения на свою линию времени.

Сверка таймеров должна осуществляться после каждого прерывания линии времени у ПМП, например после ручной переустановки даты и времени на ПМП.

Сверка таймеров передается сервису в форме экземпляра ресурса Observation, структура которого описана в пункте 0. При передаче сервису результата измерений идентификатор последней сверки таймеров должен передаваться в элементе Observation.derivedFrom.

Экземпляр ресурса Observation, содержащий сверку таймеров, должен заполняться следующим образом:

а) текущее время менеджера передается в элементе Observation.effectiveDateTime;

б) текущее время ПМП передается в элементе Observation.valueDateTime.

217

ПНСТ 995—2024

Если ПМП в результатах измерений не передает штампы даты и времени, то экземпляр сверки таймеров не создается и менеджер передает сервису дату и время получения от ПМП результата измерений.

Если ПМП не сообщает менеджеру свое текущее время, но при этом передает в результатах измерений штампы даты и времени, то создается экземпляр сверки таймеров, заполняемый следующим образом:

а) текущее время менеджера передается в элементе Observation.effectiveDateTime;

б) элемент Observation.valueDateTime не передается;

в) в элементе Observation.dataAbsentReason.coding.system передается значение http://terminology. hl7.org/CodeSystem/data-absent-reason;

г) в элементе Observation.dataAbsentReason.coding.code передается значение ’’unknown”.

При передаче результата измерений сервису менеджер указывает дату и время получения от ПМП результата измерений.

11.11.22 Сверка таймера и тактового счетчика

Вместо таймера ПМП может использовать тактовый счетчик («относительное время»). Стандарт ГОСТ Р 56845 предусматривает два типа счетчиков: обычный 32-битовый с величиной такта 1/8 миллисекунды и 64-битовый с величиной такта 1 микросекунда. Текущее значение счетчика, приведенное к микросекундам, передается в элементе Observation.valueQuantity. Оно используется менеджером для преобразования в дату и время с часовым поясом.

Если ПМП не сообщает менеджеру текущее значение тактового счетчика, но при этом передает в результатах измерений штампы относительного времени, то создается экземпляр сверки таймеров, в котором Observation.valueQuantity не передается, а в элементе Observation.dataAbsentReason.coding, code передается значение unknown.

11.11.23 ПМП, не соответствующие стандарту ГОСТ Р 56845

Ряд моделей ПМП, например использующие протокол связи Bluetooth Low Energy, не соответствует стандарту ГОСТ Р 56845. Менеджер должен преобразовать информацию, передаваемую такими ПМП, в объекты MDS и Metric, определенные в этом стандарте, а затем передать эти объекты сервису в форме экземпляров ресурса Observation. Один из вариантов такого преобразования описан в [36].

11.11.24 Профиль Observation-PhdNumeric

11.11.24.1 Общие требования

Профиль Observation-PhdNumeric (скалярная величина) используется для передачи скалярных физических величин, в том числе безразмерных. Примерами таких величин могут служить температура тела, вес, рост, концентрация глюкозы, частота сердечных сокращений и т. д.

Результат измерений, передаваемый ПМП, является скалярным, если он содержит один из атрибутов, перечисленных в таблице 284.

Таблица 284 — Атрибуты скалярных результатов измерений

Атрибут

Тип данных

Примечание

Basic-Nu-Observed-Value

SFLOAT

16-битовое число с 12-битовой мантиссой

Simple-Nu-Observed-Value

FLOAT

32-битовое число с 24-битовой мантиссой

Nu-Observed-Value

FLOAT

Комплексный атрибут. Содержит компоненты value (значение), metric-id (идентификатор метрики), state (статус результата измерения) и unit-code (единица измерения)

11.11.24.2 Отображение скалярных результатов измерений на элементы ресурса Observation

Отображение скалярных результатов измерений на элементы ресурса Observation приведено в таблице 285. Единицы измерения должны быть преобразованы в коды UCUM. В некоторых случаях потребуются определенные ухищрения. Например, для кардиографа единица измерения интервала R-R может быть определена мнемокодом MDC_DIM_TICK, означающим число тактов. В этом случае результат измерения должен содержать атрибут с мнемокодом MDC_ATTR_TICK_RES, содержащий число тактов в секунду. Таким образом, если этот атрибут имеет значение 2048, а результат измерения интервала R-R равен 3092, то длительность интервала R-R равна 1,5 секунды.

218

ПНСТ 995—2024

Таблица 285 — Отображение скалярных результатов измерений на элементы ресурса Observation

Атрибут

Отображение на элементы ресурса Observation

Basic-Nu-Observed-Value.value

Observation.valueQuantity. value

Unit-Code

Observation.valueQuantity.code (код UCUM)

Observation.valueQuantity.system=”http://unitsofmeasure.org”

Simple-Nu-Observed-Value.value

Observation.valueQuantity. value

Nu-Observed-Value.value

Observation.valueQuantity. value

Nu-Observed-Value.unit

Observation.valueQuantity.system="http://unitsofmeasure.org" Observation. valueQuantity.code

Nu-Observed-Value.metric-id

Значение компонента metric-id влияет на Observation.code, см. 11.11.16

Nu-Observed-Value.state

Преобразование компонента state приведено в таблице 283

11.11.24.3 Дополнительная информация к числовому результату

Согласно [38], числовые результаты могут содержать дополнительные атрибуты, предоставляющие дальнейшие сведения об измерении, а именно:

a) Accuracy (точность);

б) Alert-Op-State (состояние предупреждений о выходе результата измерения за нижнюю или верхнюю границу);

в) Alert-Op-Text-String (тексты предупреждений о выходе результата измерения за нижнюю или верхнюю границу);

г) Current-Limits (границы контролируемого диапазона);

д) Measurement-Confidence-95 (границы диапазона достоверности 95%);

е) Threshold-Notification-Text-String (предупреждение о выходе за границу).

11.11.24.4 Атрибут Accuracy

Атрибут Accuracy (точность) имеет абсолютное значение и определяет максимальное отклонение фактического значения от сообщенного наблюдаемого значения (если оно может быть указано) во всем диапазоне измерений. Выражается в тех же единицах измерения, что и результаты наблюдений. При передаче результатов измерений с определенной точностью сообщаемое значение должно обладать определенным числом разрядов, достаточным для представления такой точности.

Отображение атрибута Accuracy на элементы ресурса Observation представлено в таблице 286.

Таблица 286 — Отображение атрибута Accuracy на элементы ресурса Observation

Компонент элемента Observation.component

Значение

Примечание

code.coding.code

”67914”

Номенклатурный код атрибута

Accuracy

code.coding.system

”urn:iso:std:iso: 11073:10101”

Идентификатор системы кодирования MDC

code.text

”MDC_ATTR_NU_ACCUR_MSMT: точность”

Необязательный текст

valueQuantity.value

Значение атрибута Accuracy

valueQuantity.system

’’http://unitsofmeasure.org”

Идентификатор системы кодирования UCUM

valueQuantity.code

Код единицы измерения

Должен использоваться тот же код, что у результата измерения

11.11.24.5 Атрибут Alert-Op-State

Атрибут Alert-Op-State (состояние предупреждений о выходе результата измерения за нижнюю или верхнюю границу) используется при передаче результатов измерений, выполненных пульсоксиме-

219

ПНСТ 995—2024

тром. Он представляет собой битовое поле, идентифицирующее состояние предупреждений о выходе результата измерения за нижнюю или верхнюю границу заданного диапазона.

Отображение атрибута Alert-Op-State на элементы ресурса Observation представлено в таблице 287.

Таблица 287 — Отображение атрибута Alert-Op-State на элементы ресурса Observation

Компонент элемента Observation.component

Значение

Примечание

code.coding.code

”68746.n”

Атрибут Alert-Op-State имеет номенклатурный код 68746. Номер бита п может принимать значение 0, 1 или 2

code.coding.system

’’http://hl7.org/fhir/uv/phd/CodeSystem/

ASN1ToHL7”

Идентификатор системы кодирования ASN1ToHL7

code.text

”lim-alert-off” (предупреждение о выходе за границы отключено) | ”lim-low-off” (предупреждение о выходе за нижнюю границу отключено) | ”lim-high-off” (предупреждение о выходе за верхнюю границу отключено) для битов 0 | 1 |2 соответственно

Необязательный текст

valueCodeableConcept. coding.code

”У”или ”N”

”Y” — бит установлен, ”N” — бит снят

valueCodeableConcept. coding.system

’’http://terminology.hl7.org/CodeSystem/v2-0203”

Идентификатор системы кодирования V2-0203

11.11.24.6 Атрибут Alert-Op-Text-String

Атрибут Alert-Op-Text-String (тексты предупреждений о выходе результата измерения за нижнюю или верхнюю границу) используется при передаче результатов измерений, выполненных пульсоксиметром. Он содержит тексты предупреждений о выходе результата измерения за нижнюю или верхнюю границу заданного диапазона.

Отображение атрибута Alert-Op-Text-Stringe на элементы ресурса Observation представлено в таблице 288.

Таблица 288 — Отображение атрибута Alert-Op-Text-String на элементы ресурса Observation

Компонент элемента Observation, component

Значение

Примечание

code.coding.code

”68104”

Номенклатурный код атрибута Alert-Op-Text-String

code.coding.system

”urn:iso:std:iso:11073:10101”

Идентификатор системы кодирования MDC

code.text

”MDC_ATTR_AL_OP_TEXT_STRING: строки предупреждений о выходе за границы”

Необязательный текст

valuestring

Alert-Op-Text-String.lower-text + ” ” +

Alert-Op-Text-String.upper-text

Конкатенация текстов предупреждений о выходе результата измерений за нижнюю и верхнюю границу

11.11.24.7 Атрибут Current-Limits

Атрибут Current-Limits (границы контролируемого диапазона) используется при передаче результатов измерений, выполненных пульсоксиметром. Он содержит границы диапазона, выход за которые должен контролироваться.

Отображение атрибута Current-Limits на элементы ресурса Observation представлено в таблице 289.

220

Таблица 289 — Отображение атрибута Current-Limits на элементы ресурса Observation

ПНСТ 995—2024

Компонент элемента Observation, component

Значение

Примечание

code.coding.code

”67892”

Номенклатурный код атрибута

Current-Limits

code.coding.system

”urn:iso:std:iso:11073:10101”

Идентификатор системы кодирования MDC

code.text

”MDC_ATTR_LIMIT_CURR: нижняя и верхняя граница”

Необязательный текст

valueRange.low. value

Current-Limits.lower

Нижняя граница

valueRange.low.system

’’http://unitsofmeasure.org”

Идентификатор системы кодирования UCUM

valueRange.low.code

Код единицы измерения

Должен использоваться тот же код, что у результата измерения

valueRange.high.value

Current-Limits.upper

Верхняя граница

valueRange.high.system

’’http://unitsofmeasure.org”

Идентификатор системы кодирования UCUM

valueRange.high.code

Код единицы измерения

Должен использоваться тот же код, что у результата измерения

11.11.24.8 Атрибут Measurement-Confidence-95

Атрибут Measurement-Confidence-95 (границы диапазона достоверности 95%) используется при передаче результатов измерений, выполненных глюкометром непрерывного действия. Он содержит нижнюю и верхнюю границу диапазона, в который производитель прибора с вероятностью 95% гарантирует вхождение результата измерения.

Отображение атрибута Measurement-Confidence-95 на элементы ресурса Observation представлено в таблице 290.

Таблица 290 — Отображение атрибута Measurement-Confidence-95 на элементы ресурса Observation

Компонент элемента Observation.component

Значение

Примечание

code.coding.code

”68236”

Номенклатурный код атрибута

Measurement-Confidence-95

code.coding.system

”urn:iso:std:iso:11073:10101”

Идентификатор системы кодирования MDC

code.text

”MDC_ATTR_MSMT_CONFIDENCE_95: доверительный интервал 95%”

Необязательный текст

valueRange.low. value

Measurement-Confidence-95.lower-bound

Нижняя граница

valueRange.low.system

’’http://unitsofmeasure.org”

Идентификатор системы кодирования UCUM

valueRange.low.code

Код единицы измерения

Должен использоваться тот же код, что у результата измерения

valueRange.high.value

Measurement-Confidence-95.upper-bound

Верхняя граница

valueRange.high.system

’’http://unitsofmeasure.org”

Идентификатор системы кодирования UCUM

valueRange.high.code

Код единицы измерения

Должен использоваться тот же код, что у результата измерения

221

ПНСТ 995—2024

11.11.24.9 Атрибут Threshold-Notification-Text-String

Атрибут Threshold-Notification-Text-String (предупреждение о выходе за границу) используется при передаче результатов измерений, выполненных глюкометром непрерывного действия. Он содержит текст текущего предупреждения о выходе за границу заданного диапазона.

Отображение атрибута Threshold-Notification-Text-String на элементы ресурса Observation представлено в таблице 291.

Таблица 291 — Отображение атрибута Threshold-Notification-Text-String на элементы ресурса Observation

Компонент элемента Observation.component

Значение

Примечание

code.coding.code

”68232”

Номенклатурный код атрибута Thresh-old-Notification-Text-String

code.coding.system

”urn:iso:std:iso:11073:10101”

Идентификатор системы кодирования MDC

code.text

”MDC_ATTR_THRES_NOTIF_TEXT_ STRING: предупреждение о выходе за границу”

Необязательный текст

valuestring

Threshold-Notification-Text-String

Текст текущего предупреждения о выходе за границы заданного диапазона

11.11.24.10 Состав элементов профиля Observation-PhdNumeric

Профиль Observation-PhdNumeric (скалярный результат измерения) оставляет в ресурсе Observation только те элементы, которые могут использоваться при преобразовании скалярного результата измерения из формата, предусмотренного стандартом ГОСТ Р 56845 (рисунок 59 и таблица 292). Имя ресурса остается неизменным — Observation, имя профиля передается в элементе meta.profile.

Рисунок 59 — Профиль Observation-PhdNumeric

Таблица 292 — Состав элементов профиля Observation-PhdNumeric

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

222

Окончание таблицы 292

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

meta

Метаданные экземпляра ресурса

Meta

1

meta.profile

Фиксированное значение ’’Observation-PhdNumeric”

string

1

meta.security

Статус результата измерения (если тестовый или демонстрационный)

Coding

0..1

meta.security, system

Система кодирования значений статуса. Фиксированное значение ’’http://terminology.hl7.org/CodeSystem/v3-ActReason”

uri

1

meta.security, code

Код статуса. Фиксированное значение ’’HTEST”

code

1

Собственные элементы

identifier

Идентификатор результата измерения

Identifier

1

status

Состояние измерения. Фиксированное значение unknown (состояние результата измерения не известно). Фактическое состояние измерения передается в других элементах в соответствии с таблицей 283

code

1

category

Категория измерения. Заполняется кодом LOINC, если измеряются жизненно важные показатели

CodeableConcept

0..1

code

Вид измерения. Заполняется в соответствии с 11.11.16

CodeableConcept

1

effective[x]

Дата и время или диапазон даты и времени выполнения измерения. Допустимые значения: effectiveDateTime | effectivePeriod

1

valueQuantity

Результат измерения

SimpleQuantity

0..1

dataAbsent-Reason

Причина отсутствия результата измерения (см. таблицу 280)

CodeableConcept

0..1

interpretation

Статус результата измерений (см. таблицу 283)

CodeableConcept

0..1

device

Ссылка на экземпляр ресурса Device, идентифицирующий персональный медицинский прибор, с помощью которого получен результат измерения

Reference

0..1

derivedFrom

Ссылка на экземпляр ресурса Observation, содержащий сверку таймеров ПМП и менеджера

Reference

0..1

component

Дополнительные сведения о результате измерения

Backbone-Element

0..*

component.code

Вид сведений

CodeableConcept

1

component. value[x]

Значение сведений. Допустимые значения: valueQuantity (скалярная величина) | valueCodeableConcept (битовое поле) | valuestring (текст) | valueRange (границы)

*

0..1

component.

dataAbsentReason

Причина отсутствия значения сведений (см. таблицу 280)

CodeableConcept

0..1

11.11.25 Профиль Observation-PhdCompoundNumeric

11.11.25.1 Общие требования

Профиль Observation-PhdCompoundNumeric (массив скалярных величин) используется для пере

дачи вектора или массива связанных скалярных величин, измеренных примерно в один и тот же мо-

223

ПНСТ 995—2024

мент времени, например вектора ускорения или показателей артериального давления (систолическое, диастолическое, среднее).

Результат измерений, передаваемый ПМП, является массивом скалярных величин, если он содержит один из атрибутов, перечисленных в таблице 293.

Таблица 293 — Атрибуты массива скалярных результатов измерений

Атрибут

Тип данных

Примечание

Compound-Basic-Nu-Ob-served-Value

Массив SFLOAT

Массив 16-битовых чисел с 12-битовой мантиссой

Compound-Simple-Nu-Ob-served-Value

Массив FLOAT

Массив 32-битовых чисел с 24-битовой мантиссой

Compound-Nu-Observed-Value

Массив FLOAT

Массив комплексных атрибутов, содержащих компоненты value (значение), metric-id (идентификатор метрики), state (статус результата измерения) и unit-code (единица измерения)

Каждый элемент массива передается в отдельном экземпляре элемента Observation.component. Если результат измерения содержит атрибут Compound-Basic-Nu-Observed-Value или Compound-Simple-Nu-Observed-Value, то он должен содержать атрибут Metric-Id-List, содержащий список кодов, идентифицирующих виды измеренных величин. Порядок следования кодов совпадает с порядком следования элементов массива. Если результат измерения содержит атрибут Compound-Nu-Observed-Value, то код вида измерений берется из его компонента metric-id. Полученный код вида измерений преобразуется в 32-битовый номенклатурный код в соответствии с 11.11.16. Результат преобразования передается в элементе Observation.component.code.

Результат измерений включает в себя атрибут Туре. Его значение преобразуется в 32-битовый номенклатурный код в соответствии с 11.11.16. Результат преобразования передается в элементе Observation.code. Элемент Observation.value не заполняется. Если в атрибуте Measurement-Status установлены биты 0 (Ошибочный результат), 2 (Результат недоступен) или 10 (В процессе измерения), то соответствующий код должен быть передан в элементе Observation.dataAbsentReason. В этом случае компоненты массива не передаются.

11.11.25.2 Отображение массива скалярных результатов измерений на элементы ресурса Observation

Отображение массива скалярных результатов измерений на элементы ресурса Observation приведено в таблице 294. Атрибут Metric-Id-List содержит список атрибутов Metric-Id и его n-й элемент обозначается как Metric-ld[n].

Таблица 294 — Отображение массива скалярных результатов измерений на элементы ресурса Observation

Атрибут

Отображение на элементы ресурса Observation

Compound-Basic-Nu-Ob-served-Value.value[n]

Observation.component[n].valueQuantity.value

Unit-Code

Observation.component[1 ..n].valueQuantity.system=”http://unitsofmeasure.org”

Observation.component[1 ..n].valueQuantity.code (эквивалентный код UCUM)

Metric-ld[n]

Observation.component[n].code.coding.code

Simple-Nu-Observed-Value.val-ue[n]

Observation.component[n].valueQuantity. value

Nu-Observed-Value.value[n]

Observation.component[n].valueQuantity. value

Nu-Observed-Value.unit[n]

Observation.component[n].valueQuantity.system="http://unitsofmeasure.org"

Observation.component[n].valueQuantity.code (эквивалентный код UCUM)

Nu-Observed-Value.metric-id[n]

Observation. component[n], code, coding, code

Nu-Observed-Value.state[n]

Преобразование компонента state осуществляется по аналогии с таблицей 283. При этом биты 4 и 5 игнорируются

224

ПНСТ 995—2024

11.11.25.3 Дополнительная информация к массиву скалярных результатов

Вместе с массивом числовых результатов может быть передан атрибут Accuracy (точность). Он имеет абсолютное значение и определяет максимальное отклонение фактического значения от сообщенного наблюдаемого значения (если оно может быть указано) во всем диапазоне измерений. Этот атрибут применим только в тех случаях, если все элементы массива имеют одинаковые единицы измерения, и выражается в этих же единицах. При передаче результатов измерений с определенной точностью сообщаемое значение должно обладать определенным числом разрядов, достаточным для представления такой точности.

Отображение атрибута Accuracy на элементы ресурса Observation представлено в таблице 286.

11.11.25.4 Состав элементов профиля Observation-PhdCompoundNumeric

Профиль Observation-PhdCompoundNumeric (скалярный результат измерения) оставляет в ресурсе Observation только те элементы, которые могут использоваться при преобразовании массива скалярных результатов измерения из формата ГОСТ Р 56845 (рисунок 60 и таблица 295). Имя ресурса остается неизменным — Observation, имя профиля передается в элементе meta.profile.

dass Массив числовых измерений

Рисунок 60 — Профиль Observation-PhdCompoundNumeric

Таблица 295 — Состав элементов профиля Observation-PhdCompoundNumeric

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

1

meta.profile

Фиксированное значение ’’Observation-

PhdCompoundNumeric”

string

1

meta.security

Статус результата измерения (если тестовый или демонстрационный)

Coding

0..1

meta.security.system

Система кодирования значений статуса. Фиксированное значение ’’http://terminology.hl7.org/ CodeSystem/v3-ActReason”

uri

1

meta.security.code

Код статуса. Фиксированное значение ’’HTEST”

code

1

Собственные элементы

identifier

Идентификатор результата измерения

Identifier

1

225

ПНСТ 995—2024

Окончание таблицы 295

Имя

Описание

Тип данных

Кратность

status

Состояние измерения. Фиксированное значение ’’unknown” (состояние результата измерения не известно). Фактическое состояние измерения передается в других элементах в соответствии с таблицей 283

code

1

category

Категория измерения. Заполняется кодом LOINC, если измеряются жизненно важные показатели

Codeable-Concept

0..1

code

Вид измерения. Заполняется в соответствии с 11.11.16

Codeable-Concept

1

effective[x]

Дата и время или диапазон даты и времени выполнения измерения. Допустимые значения: effective DateTime | effectivePeriod

1

dataAbsentReason

Причина отсутствия результата измерения

Codeable-Concept

0..1

interpretation

Статус результата измерений (см. таблицу 283)

Codeable-Concept

0..1

device

Ссылка на экземпляр ресурса Device, идентифицирующий персональный медицинский прибор, с помощью которого получен результат измерения

Reference

0..1

derivedFrom

Ссылка на экземпляр ресурса Observation, содержащий сверку таймеров ПМП и менеджера

Reference

0..1

component

Компонент результата измерений или точность результатов

Backbone-Element

0..*

component.code

Вид измерения. Заполняется в соответствии с 11.11.16

Codeable-Concept

1

component.value-Quantity

Результат измерения

SimpleQuantity

0..1

component.data-AbsentReason

Причина отсутствия результата измерений (см. таблицу 280)

Codeable-Concept

0..1

component, interpretation

Статус результата измерений (см. таблицу 283)

Codeable-Concept

0..1

11.11.26 Профиль Observation-PhdCodedEnumeration

11.11.26.1 Общие требования

Профиль Observation-PhdCodedEnumeration (кодируемый результат) используется для передачи результата измерений, представленного кодом из определенного перечня. Примером может служить контекст питания, ассоциированный с измерением концентрации глюкозы и определяемый кодами: fasting (натощак), preprandial (перед едой), postprandial (после еды) и т. д.

Результат измерений, передаваемый ПМП, является кодируемым результатом, если он содержит один из атрибутов, перечисленных в таблице 296.

Таблица 296 — Атрибуты кодируемого результата

Атрибут

Тип данных

Примечание

Enum-Observed-Value-Simple-OID

16-битовый код термина

Номер раздела берется из атрибута Туре или Enum-Observed-Value-Partition

226

Окончание таблицы 296

ПНСТ 995—2024

Атрибут

Тип данных

Примечание

Enum-Observed-Value (вариант с типом значения OID-Type)

16-битовый код термина

Комплексный атрибут. Содержит компоненты metric-id (идентификатор метрики), state (статус результата измерения), value (значение). Номер раздела для значения берется из атрибута Туре или Enum-Observed-Value-Partition

Атрибут Enum-Observed-Value-Simple-OID содержит 16-битовый код термина. Код раздела, требуемый для вычисления 32-битового номенклатурного кода, берется из атрибута Туре или Enum-Observed-Value-Partition.

Атрибут Enum-Observed-Value содержит полиморфный компонент value. При передаче кодированного результата этот компонент должен иметь тип OID-Type.

Если результат измерения содержит атрибут Enum-Observed-Value-Simple-OID, то он должен содержать атрибут Metric-Id, содержащий код, идентифицирующий вид измерения. Если результат измерения содержит атрибут Enum-Observed-Value, то код вида измерений берется из его компонента metric-id. Полученный код вида измерения преобразуется в 32-битовый номенклатурный код в соответствии с 11.11.16. Результат преобразования передается в элементе Observation.code.

11.11.26.2 Отображение кодируемых результатов измерений на элементы ресурса Observation

Отображение кодируемых результатов измерений на элементы ресурса Observation приведено в таблице 297.

Таблица 297 — Отображение кодируемых результатов измерений на элементы ресурса Observation

Атрибут

Отображение на элементы ресурса Observation

Enum-Observed-

Observation.valueCodeableConcept.coding.system=”urn:iso:std:iso:11073:10101”

Value-Simple-OID или Enum-Observed-Value, value

Observation.valueCodeableConcept.coding.code

Observation.valueCodeableConcept.text = мнемокод, соответствующий номенклатурному коду (необязателен), дополненный текстом, например «MDC_ CTXT_GLU_MEAL_POSTPRANDIAL: После еды»

Enum-Observed-Value, metric-id

Значение компонента metric-id влияет на Observation.code, см. 11.11.16

Enum-Observed-Value, state

Преобразование компонента state приведено в таблице 283

11.11.26.3 Состав элементов профиля Observation-PhdCodedEnumeration

Профиль Observation-PhdCodedEnumeration (кодируемый результат измерения) оставляет в ресурсе Observation только те элементы, которые могут использоваться при преобразовании кодируемых результатов измерения из формата ГОСТ Р 56845 (рисунок 61 и таблица 298). Имя ресурса остается неизменным — Observation, имя профиля передается в элементе meta.profile.

227

ПНСТ 995—2024

dass Кодированный результат

DomainResource

«Profile,Resource»

Observation

+ identifier Identifier

+ category: CodeableConcept [0..1]

«Binding»

+ status: code

+ code: CodeableConcept

+ dataAbsentReason: CodeableConcept [0..1]

+ interpretation: CodeableConcept [0..1]

«TypeChoice»

+ effectivefx]

+ valueCodeableConcept: CodeableConcept [0..1] «RefTarget»

+ device: Reference

+ derivedFrom: Reference [0..1]

Рисунок 61 — Профиль Observation-PhdCodedEnumeration

Таблица 298 — Состав элементов профиля Observation-PhdCodedEnumeration

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

1

meta.profile

Фиксированное значение ’’Observation-PhdCodedEnumeration”

string

1

meta.security

Статус результата измерения (если тестовый или демонстрационный)

Coding

0..1

meta.security.system

Система кодирования значений статуса. Фиксированное значение ’’http://terminology.hl7.org/CodeSystem/ v3-ActReason”

uri

1

meta.security.code

Код статуса. Фиксированное значение ’’HTEST”

code

1

Собственные элементы

identifier

Идентификатор результата измерения

Identifier

1

status

Состояние измерения. Фиксированное значение ’’unknown” (состояние результата измерения не известно). Фактическое состояние измерения передается в других элементах в соответствии с таблицей 283

code

1

category

Категория измерения. Заполняется кодом LOINC, если измеряются жизненно важные показатели

Codeable-Concept

0..1

code

Вид измерения. Заполняется в соответствии с 11.11.16

Codeable-Concept

1

effective[x]

Дата и время или диапазон даты и времени выполнения измерения. Допустимые значения: effectiveDateTime | effectivePeriod

1

dataAbsentReason

Причина отсутствия результата измерения (см. таблицу 280)

Codeable-Concept

0..1

228

Окончание таблицы 298

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

interpretation

Статус результата измерений (см. таблицу 283)

Codeable-Concept

0..1

device

Ссылка на экземпляр ресурса Device, идентифицирующий персональный медицинский прибор, с помощью которого получен результат измерения

Reference

0..1

derivedFrom

Ссылка на экземпляр ресурса Observation, содержащий сверку таймеров ПМП и менеджера

Reference

0..1

11.11.27 Профиль Observation-PhdBitsEnumeration

11.11.27.1 Общие требования

Профиль Observation-PhdBitsEnumeration (битовый результат) используется для передачи результата измерений, представленного битовым полем. Примером могут служить сведения о состоянии датчика пульсоксиметра, содержащие признаки sensor-displaced (неправильная установка датчика) и т. д. Несколько таких признаков может быть передано в одном результате.

Результат измерений, передаваемый ПМП, является битовым результатом, если он содержит один из атрибутов, перечисленных в таблице 299.

Таблица 299 — Атрибуты битового результата

Атрибут

Тип данных

Примечание

Enum-Observed-Value-Simple-Bit-Str

32-битовое значение

Каждый бит может означать отдельный признак

Enum-Observed-Value-Basic-Bit-Str

16-битовое значение

Каждый бит может означать отдельный признак

Enum-Observed-Value (вариант с типом значения BITS-32)

32-битовое значение

Комплексный атрибут. Содержит компоненты metric-id (идентификатор метрики), state (статус результата измерения), value (значение). Каждый бит значения может означать отдельный признак

Атрибут Enum-Observed-Value-Basic-Bit-Str содержит 16-битовый код термина, а атрибут Enum-Observed-Value-Simple-Bit-Str — 32-битовый код термина. Код раздела, требуемый для вычисления 32-битового номенклатурного кода, берется из атрибута Туре или Enum-Observed-Value-Partition.

Атрибут Enum-Observed-Value содержит полиморфный компонент value. При передаче кодированного результата этот компонент должен иметь тип BITS-32.

Если результат измерения содержит атрибут Enum-Observed-Value-Basic-Bit-Str или Enum-Observed-Value-Simple-Bit-Str, то он должен содержать атрибут Metric-Id, содержащий код, идентифицирующий вид измерения. Если результат измерения содержит атрибут Enum-Observed-Value, то код вида измерений берется из его компонента metric-id. Полученный код вида измерения преобразуется в 32-битовый номенклатурный код в соответствии с 11.11.16. Результат преобразования передается в элементе Observation.code.

Результат измерений включает в себя атрибут Туре. Его значение преобразуется в 32-битовый номенклатурный код в соответствии с 11.11.16. Результат преобразования передается в элементе Observation.code. Элемент Observation.value не заполняется. Если в атрибуте Measurement-Status установлены биты 0 (Ошибочный результат), 2 (Результат недоступен) или 10 (В процессе измерения), то соответствующий код должен быть передан в элементе Observation.dataAbsentReason. В этом случае компоненты битового результата не передаются.

11.11.27.2 Отображение битовых результатов измерений на элементы ресурса Observation

Отображение битовых результатов измерений на элементы ресурса Observation приведено в таблице 300. Бит результата измерения с номером п обозначается через bit[n], номер соответствующего ему экземпляра компонента обозначается через т. Поскольку не все биты результата могут быть значащими и снятые биты состояний не должны отображаться в компонентах ресурса Observation, то m < п.

229

ПНСТ 995—2024

Таблица 300 — Отображение битовых результатов измерений на элементы ресурса Observation

Атрибут

Отображение на элементы ресурса Observation

Enum-Observed-Value-Ba-sic-Bit_str.bit[n] (0 < n< 15), Enum-Observed-Value-Sim-ple-Bit_str.bit[n] (0 < n<31), Enum-Observed-Value, value. bit[n] (0 < n < 31)

Observation.component[m],code.coding.system=”http://hl7.org/fhir/uv/phd/CodeSys-tem/ASN1ToHL7”

Observation.component[m].code.coding.code= номенклатурный код измерения, дополненный точкой и значением л

Observation.component[m].code.text= имя бита п в определении АСН.1 битового результата (необязательно), например «sensor-displaced»

Observation.component[m].valueCodableConcept.coding.system=”http://terminology. hl7.org/CodeSystem/v2-0136”

Observation.component[m].valueCodableConcept.coding.code=”Y”, если бит п установлен, ”N”, если бит п снят

Observation.valueCodeableConcept.text = текст на русском языке, соответствующий имени и значению бита (необязательно), например «Неправильная установка датчика»

Enum-Observed-Value.metric-id

Значение компонента metric-id влияет на Observation.code, см. 11.11.16

Enum-Observed-Value.state

Преобразование компонента state приведено в таблице 283

Если бит n не поддерживается

Observation. component[m]. dataAbsentReason. coding. system=”http://terminology.hl7. org/CodeSystem/data-absent-reason”

Observation.component[m].dataAbsentReason.coding.code=”unsupported”

11.11.27.3 Состав элементов профиля Observation-PhdBitsEnumeration

Профиль Observation-PhdBitsEnumeration (кодируемый результат измерения) оставляет в ресурсе Observation только те элементы, которые могут использоваться при преобразовании кодируемых результатов измерения из формата ГОСТ Р 56845 (рисунок 62 и таблица 301). Имя ресурса остается неизменным — Observation, имя профиля передается в элементе meta.profile.

Рисунок 62 — Профиль Observation-PhdBitsEnumeration

Таблица 301 — Состав элементов профиля Observation-PhdBitsEnumeration

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

1

230

Окончание таблицы 301

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

meta, profile

Фиксированное значение ’’Observation-

PhdBitsEnumeration”

string

1

meta.security

Статус результата измерения (если тестовый или демонстрационный)

Coding

0..1

meta.security, system

Система кодирования значений статуса. Фиксированное значение ’’http://terminology.hl7.org/CodeSystem/v3-ActReason”

uri

1

meta.security.code

Код статуса. Фиксированное значение ’’HTEST”

code

1

Собственные элементы

identifier

Идентификатор результата измерения

Identifier

1

status

Состояние измерения. Фиксированное значение ’’unknown” (состояние результата измерения не известно). Фактическое состояние измерения передается в других элементах в соответствии с таблицей 283

code

1

category

Категория измерения. Заполняется кодом LOINC, если измеряются жизненно важные показатели

CodeableConcept

0..1

code

Вид измерения. Заполняется в соответствии с 11.11.16

CodeableConcept

1

effective[x]

Дата и время или диапазон даты и времени выполнения измерения. Допустимые значения: effectiveDateTime | effectivePeriod

1

dataAbsentReason

Причина отсутствия результата измерения (см. таблицу 280)

CodeableConcept

0..1

interpretation

Статус результата измерений (см. таблицу 283)

CodeableConcept

0..1

device

Ссылка на экземпляр ресурса Device, идентифицирующий персональный медицинский прибор, с помощью которого получен результат измерения

Reference

0..1

derivedFrom

Ссылка на экземпляр ресурса Observation, содержащий сверку таймеров ПМП и менеджера

Reference

0..1

component

Бит результата измерений

Backbone-Element

0..*

component.code

Вид измерения. Заполняется в соответствии с таблицей 300

Codeable

Concept

1

component. valueCoding

Результат измерения. Заполняется в соответствии с таблицей 300

Value-Coding

0..1

component.

dataAbsentReason

Причина отсутствия результата измерений

CodeableConcept

0..1

component.

dataAbsentReason. coding.system

Фиксированное значение ’’http://terminology.hl7.org/

CodeSystem/data-absent-reason”

uri

1

component. dataAbsentReason. coding.code

Фиксированное значение ’’unsupported”

code

1

231

ПНСТ 995—2024

11.11.28 Профиль Observation-PhdStringEnumeration

11.11.28.1 Общие требования

Профиль Observation-PhdStringEnumeration (строковый результат) используется для передачи результата измерений, представленного строкой теста. Примером может служить наименование физического упражнения, контролируемого монитором сердечно-сосудистой активности.

Результат измерений, передаваемый ПМП, является строковым результатом, если он содержит один из атрибутов, перечисленных в таблице 302.

Таблица 302 — Атрибуты кодируемого результата

Атрибут

Тип данных

Примечание

Enum-Observed-Value-Simple-Str

Строка печатаемых символов в кодировке ASCII

Номер раздела берется из атрибута Туре или Enum-Observed-Value-Partition

Enum-Observed-Value (вариант с типом значения OCTET STRING)

Строка печатаемых символов в кодировке ASCII

Комплексный атрибут. Содержит компоненты metric-id (идентификатор метрики), state (статус результата измерения), value (значение). Номер раздела для значения берется из атрибута Туре или Enum-Observed-Value-Partition

Атрибут Enum-Observed-Value содержит полиморфный компонент value. При передаче строкового результата этот компонент должен иметь тип OCTET STRING.

Если результат измерения содержит атрибут Enum-Observed-Value-Simple-Str, то он должен содержать атрибут Metric-Id, содержащий код, идентифицирующий вид измерения. Если результат измерения содержит атрибут Enum-Observed-Value, то код вида измерений берется из его компонента metric-id. Полученный код вида измерения преобразуется в 32-битовый номенклатурный код в соответствии с 11.11.16. Результат преобразования передается в элементе Observation.code.

11.11.28.2 Отображение строковых результатов измерений на элементы ресурса Observation

Отображение строковых результатов измерений на элементы ресурса Observation приведено в таблице 303.

Таблица 303 — Отображение строковых результатов измерений на элементы ресурса Observation

Атрибут

Отображение на элементы ресурса Observation

Enum-Observed-Value-Simple-Str или

Enum-Observed-Value.value

Observation.valuestring

Enum-Observed-Value.metric-id

Значение компонента metric-id влияет на Observation.code, см. 11.11.16

Enum-Observed-Value.state

Преобразование компонента state приведено в таблице 283

11.11.28.3 Состав элементов профиля Observation-PhdStringEnumeration

Профиль Observation-PhdStringEnumeration (строковый результат измерения) оставляет в ресурсе Observation только те элементы, которые могут использоваться при преобразовании кодируемых результатов измерения из формата ГОСТ Р 56845 (рисунок 63 и таблица 304). Имя ресурса остается неизменным — Observation, имя профиля передается в элементе meta.profile.

232

dass Строковый результат

DomainRasourca

«Profile, Resource»

Observation

+ identifier Identifier

«Binding»

+ status: code

+ code: CodeableConcept

+ dataAbsentReason: CodeableConcept [0..1]

+ interpretation: CodeableConcept [0.. 1 ]

«TypeChoice»

+ effectively]

+ valueStrtng [0..1]

«RefTarget»

+ device: Reference

+ derivedFrom: Reference [0..1 ]

Рисунок 63 — Профиль Observation-PhdStringEnumeration

Таблица 304 — Состав элементов профиля Observation-PhdStringEnumeration

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

1

meta.profile

Фиксированное значение "Observation-PhdStringEnumeration”

string

1

meta.security

Статус результата измерения (если тестовый или демонстрационный)

Coding

0..1

meta, security, system

Система кодирования значений статуса. Фиксированное значение ’’http://terminology.hl7.org/ CodeSystem/v3-ActReason”

uri

1

meta.security, code

Код статуса. Фиксированное значение ’’HTEST”

code

1

Собственные элементы

identifier

Идентификатор результата измерения

Identifier

1

status

Состояние измерения. Фиксированное значение ’’unknown” (состояние результата измерения не известно). Фактическое состояние измерения передается в других элементах в соответствии с таблицей 283

code

1

code

Вид измерения. Заполняется в соответствии с 11.11.16

CodeableConcept

1

effectiveDateTime

Дата и время или диапазон даты и времени выполнения измерения. Допустимые значения: effectiveDateTime | effectivePeriod

*

1

valuestring

Результат измерения

string

0..1

dataAbsent-Reason

Причина отсутствия результата измерения (см. таблицу 280)

CodeableConcept

0..1

interpretation

Статус результата измерений (см. таблицу 283)

CodeableConcept

0..1

233

ПНСТ 995—2024

Окончание таблицы 304

Имя

Описание

Тип данных

Кратность

device

Ссылка на экземпляр ресурса Device, идентифицирующий персональный медицинский прибор, с помощью которого получен результат измерения

Reference

0..1

derivedFrom

Ссылка на экземпляр ресурса Observation, содержащий сверку таймеров ПМП и менеджера

Reference

0..1

11.11.29 Профиль Observation-PhdRtsa

11.11.29.1 Общие требования

Профиль Observation-PhdRtsa (массив считываний) используется для передачи периодических считываний биосигнала, например, плетизмограмм или кардиограмм. Массив считываний является одномерным. Для передачи векторов ускорения или считываний нескольких отведений кардиограммы должны использоваться отдельные экземпляры ресурса Observation

Результат измерений, передаваемый ПМП, является массивом считываний, если он содержит атрибут Simple-Sa-Observed-Value. Перечень его атрибутов, учитываемых при преобразовании в экземпляр ресурса Observation, приведен в таблице 305.

Таблица 305 — Атрибуты массива считываний

Атрибут

Тип данных

Примечание

Simple-Sa-Observed-Value

OCTET STRING

Строка байтов, содержащая считывания в формате, определяемом атрибутами Sa-Specification и Scale-and-Range-Specification

Sample-Period.period

integer

Интервал между считываниями, выраженный в 1/8 миллисекунды. Таким образом, 8000 = 1 с

Unit-Code

OID-Type

16-битовый термин для единиц измерения. Для получения номенклатурного кода следует использовать раздел 4 номенклатуры MDC (см. 11.11.17)

Sa-Specification.sampletype.significant-bits

integer

Число значащих битов в считывании

Sa-Specification. sampletype, sample-size

integer

Число битов в считывании; задает значение X в атрибутах Scale-and-Range-SpecificationX

Sa-Specification.array-size

integer

Число считываний, содержащихся в атрибуте Simple-Sa-Observed-Value

Scale-and-Range-SpecificationX. upper-absolute-value

FLOAT

Верхняя граница результата измерений (необязательная)

Scale-and-Range-SpecificationX. lower-absolute-value

FLOAT

Нижняя граница результата измерений (необязательная)

Scale-and-Range-SpecificationX. upper-scaled-value

Х-битовое целое число

Верхняя граница считываний (необязательная)

Scale-and-Range-SpecificationX. lower-scaled-value

Х-битовое целое число

Нижняя граница считываний (необязательная)

Считывание представляет собой целое число, полученное с помощью аналого-цифрового преобразователя. Для преобразования считывания в результат измерения используется следующая формула:

у = ((А - B)x)/(l - J) + А - (A-B)l/(l-J),

где у = результат измерения;

х = считывание;

А= верхняя граница результатов измерений;

234

ПНСТ 995—2024

В = нижняя граница результатов измерений;

I = верхняя граница считываний;

J = нижняя граница считываний.

Эта формула может быть приведена к следующему виду:

у = sx + Ь,

где s — коэффициент масштабирования, а b — смещение нулевого значения считывания. Величин s определяется как (А - В)/(1 - J), а b — как (BI-AJ)Z(I-J). Единицы измерения определяются кодом термина, переданным в атрибуте Unit-Code.

Если атрибут significant-bits равен 255, то считывания, а также значения атрибутов lower-scaled-value и upper-scaled-value должны интерпретироваться как целые числа со знаком, представленные в форме дополнения до двух.

11.11.29.2 Отображение массива считываний на элементы ресурса Observation

Отображение массива считываний на элементы ресурса Observation приведено в таблице 306. Считывание с номером i обозначается как data[i].

Таблица 306 — Отображение массива считываний на элементы ресурса Observation

Атрибут

Отображение на элементы ресурса Observation

Simple-Sa-Observed-Value.data[i]

Observation.valueSampledData.data[i]

Unit-Code.code

Observation.valueSampledData.origin.system = ="http:// unitsofmeasure.org"

Observation.valueSampledData.origin.code (эквивалентный код UCUM)

Смещение b

Observation.valueSampledData.origin.value = b

Коэффициент масштабированя s

Observation.valueSampledData.factor = s

Sample-Period.period/8

Observation.valueSampledData.interval

Observation.valueSampledData.intervalUnit = ”ms”

Observation.valueSampledData.dimensions = 1

Scale-and-Range-SpecificationX.upper-absolute-value

Observation.referenceRange.high.value

Unit-Code.code

Observation.referenceRange.high.system = ="http://unit-sofmeasure.org"

Observation.referenceRange.high.code ((эквивалентный код UCUM))

Scale-and-Range-SpecificationX.lower-absolute-value

Observation.referenceRange.low. value

Unit-Code.code

Observation.referenceRange.low.system = ="http://unit-sofmeasure.org"

Observation.referenceRange.low.code ((эквивалентный код UCUM))

11.11.29.3 Состав элементов профиля Observation-PhdRtsa

Профиль Observation-PhdRtsa (массив считываний) оставляет в ресурсе Observation только те элементы, которые могут использоваться для передачи результатов измерения биосигнала (рисунок 64 и таблица 307). Имя ресурса остается неизменным — Observation, имя профиля передается в элементе meta.profile.

235

ПНСТ 995—2024

dass Массив считываний

Рисунок 64 — Профиль Observation-PhdRtsa

Таблица 307 — Состав элементов профиля Observation-PhdRtsa

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

1

meta, profile

Фиксированное значение ’’Observation-PhdRtsa”

string

1

meta.security

Статус результата измерения (если тестовый или демонстрационный)

Coding

0..1

meta.security.system

Система кодирования значений статуса. Фиксированное значение ’’http://terminology.hl7.org/ CodeSystem/v3-ActReason”

uri

1

meta.security.code

Код статуса. Фиксированное значение "HTEST”

code

1

Собственные элементы

identifier

Идентификатор результата измерения

Identifier

1

status

Состояние измерения. Фиксированное значение ’’unknown” (состояние результата измерения не известно). Фактическое состояние измерения передается в других элементах в соответствии с таблицей 283

code

1

code

Вид измерения. Заполняется в соответствии с 11.11.16

CodeableConcept

1

effectiveDateTime

Дата и время или диапазон даты и времени выполнения измерения. Допустимые значения: effectiveDateTime | effectivePeriod

*

1

valueSampledData

Результат измерения

string

0..1

valueSampledData.origin

Смещение нулевого значения и его единицы

SimpleQuantity

1

236

Окончание таблицы 307

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

valueSampledData. origin, value

Значение смещения

decimal

1

valueSampledData. origin, system

Система кодирования единиц измерения. Фиксированное значение "http://unitsofmeasure.org"

uri

1

valueSampledData. origin, code

Код единицы измерения в системе UCUM

code

1

valueSampledData. interval

Число intervalunits между считываниями

decimal

0..1

factor

Масштабирующий коэффициент, применяемый к считыванию до добавления базового смещения

decimal

0..1

valueSampledData. intervalUnit

Единицы измерения интервала между считываниями. Фиксированное значение ”ms” (миллисекунды)

code

1

valueSampledData. factor

Масштабирующий коэффициент, применяемый к считыванию до добавления базового смещения

decimal

0..1

dimensions

Число считываний в каждый момент времени. Фиксированное значение ”1”

positivelnt

1

dataAbsentReason

Причина отсутствия результата измерения (см. таблицу 280)

CodeableConcept

0..1

interpretation

Статус результата измерений (см. таблицу 283)

CodeableConcept

0..1

device

Ссылка на экземпляр ресурса Device, идентифицирующий персональный медицинский прибор, с помощью которого получен результат измерения

Reference

0..1

referenceRange

Диапазон значений считываний

Backbone-Element

0..1

referenceRange.low

Нижняя граница диапазона

Simple

Quantity

0..1

referenceRange.low. value

Значение нижней границы

decimal

1

referenceRange.low. system

Система кодирования единиц измерения. Фиксированное значение "http://unitsofmeasure.org"

uri

1

referenceRange.low. code

Код единицы измерения в системе UCUM (должен совпадать с valueSampledData.origin.code)

code

1

referenceRange.high

Верхняя граница диапазона

SimpleQuantity

0..1

referenceRange.high, value

Значение верхней границы

decimal

1

referenceRange.high, system

Система кодирования единиц измерения. Фиксированное значение "http://unitsofmeasure.org"

uri

1

referenceRange.high, code

Код единицы измерения в системе UCUM (должен совпадать с valueSampledData.origin.code)

code

1

derivedFrom

Ссылка на экземпляр ресурса Observation, содержащий сверку таймеров ПМП и менеджера

Reference

0..1

237

ПНСТ 995—2024

11.11.30 Профиль Observation-PhdMedia

11.11.30.1 Общие требования

Профиль Observation-PhdMedia (медиаданные) может использоваться для передачи растровых изображений, например, плетизмограмм или кардиограмм, аудиосигналов фетального допплера, видеоданных.

Предполагается, что ПМП, передающий медиаданные, способен вместе с ними передать следующую информацию:

а) уникальный идентификатор медицинского прибора, например, МАС-адрес или его эквивалент для интерфейсов Bluetooth и ZigBee, идентификатор PID.VID устройства USB, международный идентификатор мобильного абонента IMSI;

б) дату и время выполнения измерения.

Менеджер ПМП или шлюз, получающий медиаданные, должен добавить к ним следующую информацию:

а) свой идентификатор (может совпадать с идентификатором ПМП, если ПМП интегрирован в менеджер или шлюз);

б) тип среды MIME,

в) дату и время получения медиаданных от ПМП;

г) вид измерения.

11.11.30.2 Состав элементов профиля Observation-PhdMedia

Профиль Observation-PhdMedia (медиаданные) оставляет в ресурсе Observation только те элементы, которые могут использоваться для передачи медиаданных и сопутствующей информации (рисунок 65 и таблица 308). Имя ресурса остается неизменным — Observation, имя профиля передается в элементе meta.profile.

DomainResource

« Profi I e, Resou roe» Observation

+ identifier Identifier

«Binding»

+ status: code

+ code: CodeableConcept

«TypeChoice»

+ effectiveDateTime: dateTime

+ valueAttachment: Attachment

«RefTarget»

+ device: Reference

Рисунок 65 — Профиль Observation-PhdMedia

Таблица 308 — Состав элементов профиля Observation-PhdMedia

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

1

meta.profile

Фиксированное значение ’Observation-PhdMedia”

string

1

Собственные элементы

status

Состояние измерения. Фиксированное значение ’’final” (окончательный результат)

code

1

238

Окончание таблицы 308

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

code

Вид измеренний

CodeableConcept

1

code.coding

Кодированное представление вида измерений

Coding

0..1

code.coding.system

Система кодирования. Фиксированное значение ’’http://loinc.org”

uri

1

code.coding.code

Код вида измерений в системе LOINC

code

1

code.text

Наименование вида измерений

string

0..1

effectiveDateTime

Показание таймера менеджера на момент получения результата измерения

dateTime

1

valueAttachment

Медиаданные

Attachment

1

valueAttachment. contentType

Тип содержания MIME, включая кодировку и т.д. Привязка к набору значений: http://hl7.org/fhir/ ValueSet/mimetypes (обязательная)

code

1

valueAttachment.data

Вложенные данные в формате base64

base64Binary

1

valueAttachment.title

Наименование данных

string

0..1

valueAttachment. creation

Дата и время выполнения измерения

dateTime

1

device

Ссылка на экземпляр ресурса Device, идентифицирующий ПМП

Reference

1

device.type

Фиксированное значение ’’Device”

string

1

device.identifier

Уникальный идентификатор ПМП

Identifier

1

device.identifier, value

Значение идентификатора

string

1

11.11.31 Профиль Observation-PhdCoincidentTimeStamp

11.11.31.1 Общие требования

Профиль Observation-PhdCoincidentTimeStamp (сверка таймеров) используется для сравнения линий времени ПМП и менеджера или шлюза. Элемент Observation.effectiveDateTime должен содержать текущее значение таймера менеджера, a Observation.valueDateTime или Observation.valueQuantity — текущее значение таймера ПМП. Вариант Observation.valueDateTime выбирается, если ПМП использует таймер даты и времени, а вариант Observation.valueQuantity — если ПМП использует тактовый счетчик.

Если результат измерения, передаваемый ПМП, содержит штамп даты и времени или значение тактового счетчика, то соответствующий ему экземпляр ресурса Observation должен в себя ссылку на экземпляр ресурса Observation, содержащий наиболее актуальный результат сверки таймеров. В противном случае ссылка не создается.

11.11.31.2 Код вида измерений

В элементе Observation.code передается тип таймера, используемый ПМП. Менеджер ПМП определяет тип таймера, считывая атрибуты объекта MDS, приведенным в таблице 309.

Таблица 309 — Атрибуты объекта MDS, указывающие тип таймера ПМП

Атрибут

Тип таймера

Описание

Отображение на элементы ресурса Observation

Date-and-Time

Абсолютное время

Дата и время со смещением относительно UTC

Observation.code.coding.code = 67975

Base-Offset-Time

Базовое смещение

Дата и время со смещением относительно другой базы

Observation.code.coding.code = 68226

239

ПНСТ 995—2024

Окончание таблицы 309

Атрибут

Тип таймера

Описание

Отображение на элементы ресурса Observation

Relative-Time

Тактовый счетчик

Последовательность тактов длительностью 1/8 миллисекунды

Observation.code.coding.code = 67983

HiRes-

Relative-Time

Тактовый счетчик с высоким разрешением

Последовательность тактов длительностью 1 микросекунда

Observation.code.coding.code = 68072

Элемент Observation.code.coding.system должен иметь значение "urn:iso:std:iso: 11073:10101 ”.

11.11.31.3 Состав элементов профиля Observation-PhdCoincidentTimeStamp

Профиль Observation-PhdCoincidentTimeStamp (сверка таймеров) оставляет в ресурсе Observation только те элементы, которые могут использоваться для передачи результата сверки таймеров (рисунок 66 и таблица 310). Имя ресурса остается неизменным — Observation, имя профиля передается в элементе meta.profile.

dass Сверка таймеров 7

DomainResource

«Profile, Resource»

Observation

«Binding»

+ status: code

+ code: CodeableConcept

«TypeChoice»

+ DateTime: dateTime

+ value[x] [0..1]

«RefTarget»

+ device: Reference

Рисунок 66 — Профиль Observation-PhdCoincidentTimeStamp

Таблица 310 — Состав элементов профиля Observation-PhdCoincidentTimeStamp

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

1

meta.profile

Фиксированное значение ’’Observation-

PhdCoincidentTimeStamp”

string

1

Собственные элементы

status

Состояние измерения. Фиксированное значение ’’final” (окончательный результат)

code

1

code

Тип таймера ПМП. Заполняется в соответствии с таблицей 309

CodeableConcept

1

effectiveDateTime

Показание таймера менеджера на момент сверки

dateTime

1

value[x]

Показание таймера ПМП на момент сверки. Допустимые значения: valueDateTime (для таймера даты и времени) | valueQuantity (для тактового счетчика)

string

1

device

Ссылка на экземпляр ресурса Device, идентифицирующий ПМП

Reference

1

240

ПНСТ 995—2024

11.12 Ресурс Patient — сведения о пациенте

11.12.1 Область применения и использования

Тип ресурса Patient используется для описания общих демографических данных пациента и его идентификации в различных реестрах, в первую очередь в списках пациентов организаций здравоохранения. В его элементах отсутствуют сведения о гражданстве, этнической группе, статусе донора органов и т. д. Эти сведения могут быть переданы в экземплярах ресурсов других типов или в расширениях.

11.12.2 Структура ресурса

Ресурс Patient является детализацией абстрактного ресурса DomainResource. Состав элементов ресурса Patient представлен на рисунке 67 и в таблице 311.

DomainResource

«Resource» Patient

BackboneElement

Unk

+ Identifier Identifier [0..*]

+ active: boolean [0..1]

+ name: HumanName [0..*]

+ telecom: ContactPoint [0..*]

+ blrthDate: date [0..1]

+ address: Address [0..*]

+ multipleBirth[x] [0..1]

+ general Practitioner. Reference [0..*]

+ managingOrganization: Reference [0..1]

«Binding»

+ gender code [0..1]

+ maritalStatus: CodeableConcept [0.. 1 ]

«TypeChoice»

+ deceased[x] [0..1]

«Property»

+ photo: Attachment [0..*]

+link

0..*

«RefTarget»

+ other Reference

«Binding»

+ type: code

1..1

+contact

0..*

-communication

BackboneElement

Communication

+ preferred: boolean [0..1] «Binding»

+ language: CodeableConcept

BackboneElement

Contact

+ period: Period [0.. 1 ]

+ relationship: CodeableConcept [0..*]

+ gender code [0..1]

«Constraint»

+ name: HumanName [0..1]

+ address: Address [0..1]

+ telecom: ContactPoi nt [0..*]

«RefTarget, Constraint»

+ organization: Reference [0..1]

Рисунок 67 — Ресурс Patient

Таблица 311 — Состав элементов ресурса Patient

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

0..1

implicitRules

Совокупность правил, по которым должен создаваться экземпляр ресурса

uri

0..1

language

Основной человеческий язык, на котором представлено содержание ресурса

code

0..1

241

ПНСТ 995—2024

Продолжение таблицы 311

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса DomainResource

text

Текстовое описание содержания экземпляра ресурса для интерпретации человеком

Narrattive

0..1

contained

Вложенный экземпляр ресурса

Resource

0..*

extension

Дополнительное содержание, определенное при реализации

Extension

0..*

modifierExtension

Модифицирующее расширение, которое не может быть проигнорировано

Extension

0..*

Собственные элементы

identifier

Идентификатор пациента

Identifier

0..*

active

Признак активности данной записи о пациенте

boolean

0..1

name

Именование пациента

HumanName

0..*

telecom

Контактная информация пациента

ContactPoint

0..*

gender

Пол пациента. Допустимые значения: male (мужской) | female (женский) | other (другой) | unknown (неизвестный)

code

0..1

birthDate

Дата рождения пациента (с точностью до дня, месяца или года)

date

0..1

deceased[x]

Признак или дата и время смерти пациента

*

0..1

address

Адрес пациента

Address

0..*

maritalStatus

Семейное положение пациента

CodeableConcept

0..1

multipleBirth[x]

Признак или номер близнеца

*

0..1

photo

Фотография пациента

Attachment

0..*

contact

Контактное лицо или организация

BackboneElement

0..*

contact, relationship

Отношение контактного лица к пациенту

CodeableConcept

0..*

contact.name

Именование контактного лица

HumanName

0..1

contact.address

Адрес контактного лица

Address

0..1

contact.telecom

Контактная информация контактного лица

ContactPoint

0..*

contact.gender

Пол контактного лица. Допустимые значения: male (мужской) | female (женский) | other (другой) | unknown (неизвестный)

code

0..1

contact, organization

Ссылка на организацию, ассоциированную с контактным лицом

Reference

0..1

contact.period

Период действия информации о контактном лице

Period

0..1

communication

Язык общения с пациентом

BackboneElement

0..*

communication, language

Язык

CodeableConcept

1

communication, preferred

Признак предпочтительного языка общения

boolean

0..1

242

Окончание таблицы 311

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

general-Practitioner

Ссылка на участкового терапевта или врача общей практики пациента

Reference

0..*

managing-Organization

Ссылка на организацию, ответственную за сведения о пациенте

Reference

0..1

link

Ссылка на другой экземпляр сведений о пациенте или на сведения о близком лице

BackboneElement

0..*

link.other

Ссылка на другой экземпляр ресурса Person или экземпляр ресурса RelatedPerson

Reference

1

link.type

Тип связи с другим экземпляром ресурса. Допустимые значения: replaced-by (заменен ссылочным экземпляром | replaces (заменяет ссылочный экземпляр) | refer (ссылочный экземпляр содержит дополнительные сведения) | seealso (ссылочный экземпляр содержит сведения об этом же лице)

code

1

11.12.3 Привязки к наборам значений

Привязки к наборам значений описаны в таблице 312.

Таблица 312 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

Patient.gender

http://hl7.org/fhir/ValueSet/ administrative-gender

Обязательная

Пол лица, указываемый в административных целях

Patient.maritalStatus

http://hl7.org/fhir/ValueSet/ marital-status

Extensible

Семейное положение

Patient.contact. relationship

http://hl7.org/fhir/ValueSet/ patient-contactrelationship

Extensible

Отношение контактного лица к пациенту

Patient.contact. gender

http://hl7.org/fhir/ValueSet/ administrative-gender

Обязательная

Пол лица, указываемый в административных целях

Patient, communication, language

http://hl7.org/fhir/ValueSet/ all-languages

Обязательная

Все коды из ВСР-47 [30] (см. http://tools.ietf.org/html/ Ьср47)

http://hl7.org/fhir/ValueSet/ languages

Рекомендованная

Коды наиболее распространенных языков

Patient.link.type

http://hl7.org/fhir/ValueSet/ link-type

Обязательная

Тип связи с другим экземпляром ресурса

11.12.4 Ограничения ресурса Patient

Ограничения ресурса Patient описаны в таблице 313.

Таблица 313 — Ограничения ресурса Patient

Идентификатор

Вид

Путь

Описание

Выражение

pat-1

Правило

Patient.contact

Хотя бы один из компонентов name, telecom, address или organization должен присутствовать

name.exists() or telecom.ех-ists() or address.exists() or organization.exists()

243

ПНСТ 995—2024

11.12.5 Параметры поиска экземпляров ресурса Patient

Специальные параметры поиска экземпляров ресурса Patient описаны в таблице 314. В дополнение к ним могут использоваться общие параметры поиска, описанные в подразделе 12.27.

Таблица 314 — Специальные параметры поиска экземпляров ресурса Patient

Имя

Тип

Описание

Выражение

active

token

Признак активности данной записи о пациенте

Patient.active

address

string

Поиск по строковым компонентам, включая line, city, district, state, country, postalCode, text

Patient.address

address-city

string

Город

Patient.address.city

address-country

string

Страна

Patient.address.country

address-postalcode

string

Почтовый индекс

Patient.address.postalCode

address-state

string

Единица административного деления верхнего уровня, например, область, край, республика

Patient.address.state

address-use

token

Код использования адреса

Patient.address.use

birthdate

date

Дата рождения

Patient.birthDate

death-date

date

Дата и время смерти

(Patient.deceased. ofType(dateTime))

deceased

token

Наличие признака или даты и времени смерти

Patient.deceased.exists() and

Patient.deceased != false

email

token

Электронная почта

Patient.telecom.where (sys-tem-email’)

family

string

Фамилия

Patient.name.family

gender

token

Пол

Patient.gender

general practitioner

reference

Ссылка на участкового терапевта или врача общей практики

Patient.generalPractitioner (Practitioner, Organization, PractitionerRole)

given

string

Имя или отчество

Patient.name.given

identifier

token

Идентификатор пациента

Patient.identifier

language

token

Код языка общения (независимо от предпочтительности)

Patient.communication. language

link

reference

Ссылка на другой экземпляр сведений о пациенте или на сведения о близком лице

Patient.link.other

(Patient, RelatedPerson)

name

string

Поиск по строковым компонентам именования, включая family, given, prefix, suffix, text

Patient.name

organiza-tion

reference

Ссылка на организацию, ответственную за сведения о пациенте

Patient.managingOrganization (Organization)

phone

token

Телефон

Patient.telecom.where(sys-tem=’phone’)

phonetic

string

Фонетический поиск по фамилии, имени или отчеству

Patient.name

telecom

token

Телекоммуникационный адрес (независимо от типа)

Patient.telecom

244

ПНСТ 995—2024

11.12.6 Профиль пациента при дистанционном мониторинге

Профиль пациента при дистанционном мониторинге Patient-Dm ограничивает элементы ресурса Patient в соответствии с рисунком 68 и таблицей 315. Имя ресурса остается неизменным — Patient, имя профиля передается в элементе meta.profile.

dass Пациент - профиль ДМ

DomainResource

«Resource.Profile»

Patient

+ identifier Identifier

Рисунок 68 — Профиль Patient-Dm

Таблица 315 — Состав элементов Patient-Dm

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

1

Собственные элементы

identifier

Уникальный идентификатор пациента в медицинской информационной системе

Identifier

1

11.13 Ресурс Practitioner— сведения о медицинском специалисте

11.13.1 Область применения и использования

Тип ресурса Practitioner используется для описания общих демографических данных медицинского работника, контактной информации и квалификации.

11.13.2 Структура ресурса

Ресурс Practitioner является детализацией абстрактного ресурса DomainResource. Состав элементов ресурса Practitioner представлен на рисунке 69 и в таблице 316.

245

ПНСТ 995—2024

dass Медицинский рабопмк

Рисунок 69 — Ресурс Practitioner

Таблица 316 — Состав элементов ресурса Practitioner

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

0..1

implicitRules

Совокупность правил, по которым должен создаваться экземпляр ресурса

uri

0..1

language

Основной человеческий язык, на котором представлено содержание ресурса

code

0..1

Унаследованы от абстрактного класса DomainResource

text

Текстовое описание содержания экземпляра ресурса для интерпретации человеком

Narrattive

0..1

contained

Вложенный экземпляр ресурса

Resource

0..*

extension

Дополнительное содержание, определенное при реализации

Extension

0..*

modifier-Extension

Модифицирующее расширение, которое не может быть проигнорировано

Extension

0..*

Собственные элементы

identifier

Идентификатор медицинского работника

Identifier

0..*

active

Признак активности данной записи о медицинском работнике

boolean

0..1

name

Именование медицинского работника

HumanName

0..*

telecom

Контактная информация медицинского работника

ContactPoint

0..*

246

Окончание таблицы 316

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

gender

Пол медицинского работника. Допустимые значения: male (мужской) | female (женский) | other (другой) | unknown (неизвестный)

code

0..1

birthDate

Дата рождения медицинского работника (с точностью до дня, месяца или года)

date

0..1

deceased[x]

Признак или дата и время смерти медицинского работника

*

0..1

address

Адрес медицинского работника

Address

0..*

photo

Фотография медицинского работника

Attachment

0..*

qualification

Квалификация медицинского работника

BackboneElement

0..*

qualification.identifier

Ссылка на другой экземпляр ресурса Person или экземпляр ресурса RelatedPerson

Identifier

0..*

qualification.code

Код квалификации

CodeableConcept

1

qualification.period

Период действия квалификации

Period

0..1

qualification.issuer

Ссылка на организацию, удостоверившую квалификацию

Reference

0..1

11.13.3 Привязки к наборам значений

Привязки к наборам значений описаны в таблице 317.

Таблица 317 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

Practitioner.gender

http://hl7.org/fhir/ValueSefi' administrative-gender

Обязательная

Пол лица, указываемый в административных целях

Practitioner.qualification.code

http://terminology.hl7.org/

ValueSet/v2-0360

Обязательная

Код квалификации

Practitioner, communication, language

http://hl7.org/fhir/ValueSet/all-languages

Обязательная

Все коды из ВСР-47 [30] (см. http://tools.ietf.org/ html/ Ьср47)

http://hl7.org/fhir/ValueSeU languages

Рекомендованная

Коды наиболее распространенных языков

11.13.4 Параметры поиска экземпляров ресурса Practitioner

Специальные параметры поиска экземпляров ресурса Practitioner описаны в таблице 318. В дополнение к ним могут использоваться общие параметры поиска, описанные в подразделе 12.27.

Таблица 318 — Специальные параметры поиска экземпляров ресурса Practitioner

Имя

Тип

Описание

Выражение

active

token

Признак активности данной записи о медицинском работнике

Practitioner.active

address

string

Поиск по строковым компонентам, включая line, city, district, state, country, postalCode, text

Practitioner.address

address-city

string

Город

Practitioner.address.city

address-country

string

Страна

Practitioner.address. country

247

ПНСТ 995—2024

Окончание таблицы 318

Имя

Тип

Описание

Выражение

address-postalcode

string

Почтовый индекс

Practitioner.address. postalCode

address-state

string

Единица административного деления верхнего уровня, например, область, край, республика

Practitioner.address.state

address-use

token

Код использования адреса

Practitioner.address.use

communication

token

Язык общения с медицинским работником

Practitioner.

communication.language

death-date

date

Дата и время смерти

(Practitioner.deceased. ofType(dateTime))

deceased

token

Наличие признака или даты и времени смерти

Practitioner.deceased. exists() and Practitioner, deceased != false

email

token

Электронная почта

Practitioner.telecom.

where(system=’email’)

family

string

Фамилия

Practitioner.name.family

gender

token

Пол

Practitioner.gender

given

string

Имя или отчество

Practitioner.name.given

identifier

token

Идентификатор медицинского работника

Practitioner.identifier |

Practitioner.qualification. identifier

name

string

Поиск по строковым компонентам именования, включая family, given, prefix, suffix, text

Practitioner.name

phone

token

Телефон

Practitioner.telecom.

where(system=’phone’)

phonetic

string

Фонетический поиск по фамилии, имени или отчеству

Practitioner.name

qualification-period

date

Срок действия квалификации

Practitioner.qualification. period

telecom

token

Телекоммуникационный адрес (независимо от типа)

Practitioner.telecom

11.13.5 Профиль медицинского работника при дистанционном мониторинге

Профиль медицинского работника при дистанционном мониторинге Practitioner-Dm ограничивает элементы ресурса Practitioner в соответствии с рисунком 70 и таблицей 319. Имя ресурса остается неизменным — Practitioner, имя профиля передается в элементе meta.profile.

248

class Медицинский работник - профи...

DomainResource

«Profile, Resource» Practitioner

+ identifier Identifier

+ telecom: ContactPoint [1 ..*]

Рисунок 70 — Профиль Practitioner-Dm

Таблица 319 — Состав элементов Practitioner-Dm

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

1

Собственные элементы

identifier

Идентификатор медицинского работника

Identifier

1

telecom

Контактная информация медицинского работника

ContactPoint

1..*

11.14 Ресурс DiagnosticReport — заключение врача

11.14.1 Область применения и использования

Тип ресурса DiagnosticReport используется для описания заключения врача. В его структуре предусмотрены сведения о самом заключении, о субъекте заключения и, если это заключение врача-лаборанта или патологоанатома, о биоматериале.

11.14.2 Структура ресурса

Ресурс DiagnosticReport является детализацией абстрактного ресурса DomainResource. Состав элементов ресурса DiagnosticReport представлен на рисунке 71 и в таблице 320.

DomainResource

«Resource»

DiagnosticReport

+ identifier Identifier [0..*]

+ issued: instant [0..1]

+ note: Annotation [0..*]

+ conclusion: markdown [0..1]

+ conclusionCode: CodeableConcept [0..*]

+ preserrtedForm: Attachment [0..*]

«RefTargot»

+ basedOn: Reference [0..*]

+ encounter Reference [0..1]

+ subject: Reference [0..1]

+ performer Reference [0..*]

+ resultslnterprster: Reference [0..*]

+ specimen: Reference [0..*]

+ study: Reference [0..*]

«Binding»

+ category: CodeableConcept [0..1]

+ status: code

«Binding, RefTarget»

+ code: CodeableConcept [0..1]

«TypeChoice»

+ effectivejx] [0..1]

«RefTargot, Constraint»

+ result: Reference [0..*]

+ composition: Reference [0..1]

+supportinglrrfo

BackboneElement

Supportinginfo

1

1

«Binding»

+ type: CodeableConcept

«RefTarget»

+ reference: Reference

+media

BackboneElement

Media

0..*

+ comment: string [0..1] «RefTarget»

+ link Reference

Рисунок 71 — Ресурс DiagnosticReport

249

ПНСТ 995—2024

Таблица 320 — Состав элементов ресурса DiagnosticReport

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

0..1

implicitRules

Совокупность правил, по которым должен создаваться экземпляр ресурса

uri

0..1

language

Основной человеческий язык, на котором представлено содержание ресурса

code

0..1

Унаследованы от абстрактного класса DomainResource

text

Текстовое описание содержания экземпляра ресурса для интерпретации человеком

Narrattive

0..1

contained

Вложенный экземпляр ресурса

Resource

0..*

extension

Дополнительное содержание, определенное при реализации

Extension

0..*

modifier-Extension

Модифицирующее расширение, которое не может быть проигнорировано

Extension

0..*

Собственные элементы

identifier

Внешний идентификатор заключения

Identifier

0..*

basedOn

Ссылка на требование, для выполнения которого предназначено заключение

Reference

0..*

category

Категория клинической дисциплины, отделения или службы, составившей заключение (например, гематология, банк крови)

CodeableConcept

0..1

code

Код/наименование заключения

CodeableConcept

0..1

encounter

Ссылка на случай медицинской помощи

Reference

0..1

subject

Ссылка на субъект назначения. Обычно субъектом является пациент, но не всегда

Reference

0..1

status

Состояние составления заключения. Допустимые значения: registered (составлено, но пока не доступно) | partial (частичное) | preliminary (предварительное, может быть неполным или не проверенным) | modified (изменено до того, как стало окончательным) | final (окончательное) | amended (изменено после того, как стало окончательным) | corrected (исправлено) | appended (дополнено) | cancelled (отменено) | entered-in-error (введено по ошибке) | unknown (неизвестное)

code

1

effective[x]

Физиологически релевантные дата и время либо период, к которому относится заключение (например, дата и время взятия биоматериала)

0..1

issued

Дата и время создания текущей версии заключения

instant

0..1

performer

Ссылка на составителя заключения

Reference

0..*

resultslnterpreter

Ссылка на лицо или организацию, ответственную за содержание заключения

Reference

0..*

250

Продолжение таблицы 320

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

specimen

Ссылка на идентификацию и описание биоматериала, по которому составлено заключение

Reference

0..*

result

Ссылка на результат исследования, вошедший в заключение

Reference

0..*

note

Примечание к заключению

Annotation

0..*

study

Ссылка на исследование генома или лучевое исследование

Reference

0..*

supportinginfo

Дополнительные сведения, использованные для обоснования заключения

Backbone-Element

0..*

supportinginfo, type

Тип дополнительных сведений

CodeableConcept

1

supportinginfo, reference

Ссылка на экземпляр ресурса, содержащий дополнительные сведения

Reference

1

media

Ссылка на источник изображения или двоичных данных

Backbone-Element

0..*

media.comment

Причина включения изображения или данных в заключение либо иные комментарии к ним

string

0..1

media.link

Ссылка на источник изображения или данных

Reference

1

composition

Ссылка на экземпляр ресурса Composition, описывающий структуру содержания заключения

Reference

0..1

conclusion

Текст заключения

markdown

0..1

conclusionCode

Код, представляющий заключение (например, код диагноза)

CodeableConcept

0..*

presentedForm

Форматированное представление заключения

Attachment

0..*

11.14.3 Привязки к наборам значений

Привязки к наборам значений описаны в таблице 321.

Таблица 321 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

DiagnosticReport.status

http://hl7.org/fhir/ValueSet/ diagnostic-report-status

Обязательная

Состояние составления заключения

DiagnosticReport.category

http://hl7.org/fhir/ValueSet/ diagnostic-service-sections

Пример

Категория клинической дисциплины, отделения или службы

DiagnosticReport.code

http://hl7.org/fhir/ValueSet/report-codes

Предпочтительная

Все коды LOINC, относящиеся к диагностическим исследова-ням

DiagnosticReport.

supportinglnfo.type

http://terminology.hl7.org/

ValueSet/v2-0936

Пример

Тип дополнительных сведений.

DiagnosticReport. conclusionCode

SNOMEDCTCIinicalFindings

Пример

Коды состояний, проблем и диагнозов, определенные в номенклатуре SNOMED СТ как потомки понятия с кодом 404684003

251

ПНСТ 995—2024

11.14.4 Ограничения ресурса DiagnosticReport

Ограничения ресурса DiagnosticReport описаны в таблице 322.

Таблица 322 — Ограничения ресурса DiagnosticReport

Идентификатор

Вид

Путь

Описание

Выражение

dgr-1

Правило

Базовый

Если элемент DiagnosticReport. composition содержит ссылку на экземпляр ресурса Composition, то на все экземпляры ресурсов Observation, содержащиеся в элементах Composition.entry, должны быть ссылки из элементов DiagnosticReport.entry или из элементов Observation.hasMember

composition. exists() implies (composition. resolve().section.entry. reference.where(resolve() is Observation) in (result. reference|result.reference. resolve().hasMember. reference))

11.14.5 Параметры поиска экземпляров ресурса DiagnosticReport

Специальные параметры поиска экземпляров ресурса DiagnosticReport описаны в таблице 323.

В дополнение к ним могут использоваться общие параметры поиска, описанные в подразделе 12.27.

Таблица 323 — Специальные параметры поиска экземпляров ресурса DiagnosticReport

Имя

Тип

Описание

Выражение

based-on

reference

Ссылка на требование, для выполнения которого предназначено заключение

DiagnosticReport.basedOn (CarePlan, MedicationRequest, Nutri-tionOrder, ServiceRequest, Immuniza-tionRecommendation)

category

token

Категория клинической дисциплины, отделения или службы, составившей заключение

DiagnosticReport.category

code

token

Вид заключения

DiagnosticReport.code

conclusion

token

Код, представляющий заключение

DiagnosticReport.conclusionCode

date

date

Физиологически релевантные дата и время, к которым относится заключение

DiagnosticReport.effective.ofType(da-teTime) | DiagnosticReport.effective. ofType(Period)

encounter

reference

Ссылка на случай медицинской помощи

DiagnosticReport.encounter (Encounter)

identifier

token

Внешний идентификатор заключения

DiagnosticReport.identifier

issued

date

Дата и время создания заключения

DiagnosticReport.issued

media

reference

Ссылка на источник изображения или двоичных данных

DiagnosticReport.media.Iink (DocumentReference)

patient

reference

Ссылка на субъект заключения (если это пациент)

DiagnosticReport.subject.where(re-solve() is Patient)

(Patient)

performer

reference

Ссылка на составителя заключения

DiagnosticReport.performer (Practitioner, Organization, Care-Team, PractitionerRole)

result

reference

Ссылка на результат исследования, вошедший в заключение

DiagnosticReport.result (Observation)

252

Окончание таблицы 323

ПНСТ 995—2024

Имя

Тип

Описание

Выражение

results-interpreter

reference

Ссылка на лицо или организацию, ответственную за содержание заключения

DiagnosticReport. results Interpreter (Practitioner, Organization, CareTeam, PractitionerRole)

specimen

reference

Ссылка на идентификацию и описание биоматериала, по которому составлено заключение

DiagnosticReport.specimen (Specimen)

status

token

Состояние составления заключения

DiagnosticReport.status

study

reference

Ссылка на исследование генома или лучевое исследование

DiagnosticReport.study

(GenomicStudy, ImagingStudy)

subject

reference

Ссылка на субъект заключения

DiagnosticReport.subject (Practitioner, Group, Organization, BiologicallyDerivedProduct, Device, Medication, Patient, Substance, Location)

11.14.6 Профиль заключения врача при дистанционном мониторинге

При дистанционном мониторинге заключение врача представляет собой этапный эпикриз, подводящий итоги выполнения плана ведения и содержащий рекомендации по дальнейшему ведению пациента. Полное содержание заключения должно храниться в медицинской информационной системе, а в хранилище результатов измерений должно передаваться сокращенное содержание в объеме, рассчитанном на восприятие пациентом. Это требование отражено в профиле заключения врача при дистанционном мониторинге DiagnosticReport-Dm, ограничивающем элементы ресурса DiagnosticReport в соответствии с рисунком 72 и таблицей 324. Имя ресурса остается неизменным — DiagnosticReport, имя профиля передается в элементе meta.profile.

В целях безопасности персональных данных исключена возможность приложения скана оригинала заключения или представления оригинала заключения в формате pdf, предусмотренная в элементе presentedForm. Сокращен список допустимых значений состояния составления заключения.

class Заключение врача - профиль ДМ

DomainResource

«Resource,Profile»

DiagnosticReport

+ identifier: Identifier

+ issued: instant

+ conclusion: markdown

«RefTarget»

+ basedOn: Reference

+ subject: Reference

+ performer Reference

«Binding, RefTarget»

+ code: CodeableConcept

«Binding»

+ status: code

Рисунок 72 — Профиль DiagnosticReport-Dm

253

ПНСТ 995—2024

Таблица 324 — Состав элементов DiagnosticReport-Dm

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

1

Собственные элементы

identifier

Уникальный идентификатор заключения, присвоенный медицинской информационной системой

Identifier

1

basedOn

Ссылка на план ведения пациента

Reference

1

code

Код/наименование заключения

CodeableConcept

1

subject

Ссылка на экземпляр ресурса Patient, идентифицирующий пациента — субъекта дистанционного мониторинга

Reference

1

status

Состояние составления заключения. Допустимые значения: final (окончательное) | amended (изменено после того, как стало окончательным) | corrected (исправлено) |appended (дополнено)

code

1

issued

Дата и время создания текущей версии заключения

instant

1

performer

Ссылка на составителя заключения

Reference

1

conclusion

Текст заключения

markdown

1

11.15 Ресурс MedicationStatement — дневник приема лекарств

11.15.1 Область применения и использования

Тип ресурса MedicationStatement описывает запись дневника приема лекарств. Эта запись может относиться к прошлому, текущему или будущему применению лекарственного препарата. Источником информации может быть пациент, близкое лицо или медицинский работник. Информация может браться по памяти, с упаковки лекарственного препарата или инструкции по его применению, из листа лекарственных назначений.

В отличие от ресурса MedicationAdministration (применение лекарственного препарата) ресурс MedicationStatement рассчитан на менее точную и менее полную информацию о применении (или не применении) лекарственного препарата. Например, дата и время применения не является обязательной, равно и такие детали, как количество препарата или скорость введения.

В состав ресурса MedicationStatement входит элемент adherence, с помощью которого можно указать степень соответствия указаниям по применению лекарственного препарата, специфичную для этого ресурса.

11.15.2 Структура ресурса

Ресурс MedicationStatement является детализацией абстрактного ресурса DomainResource. Состав элементов ресурса MedicationStatement представлен на рисунке 73 и в таблице 325.

254

ПНСТ 995—2024

da$s Дневник приема лекарств У

DomainResource

Medicationstatement

+ identifier Identifier [0..*]

+ effect! ve[x] [0..1]

+ dateAsserted: dateTime pX-1]

+ reason: CodeableReference [0..*]

+ note: Attachment [0..*]

+ renderedDosagelnstruction: maridown [0..1]

+ dosage: Dosage

«RefTarget»

+ partOf: Reference [0..*]

+ medication: CodeableReference [0..*]

+ subject: Reference

+ encou nter Reference [0.. 1 ]

+ informationsource: Reference [0..*]

+ derived From: Reference [0..*]

♦ retatedClinicalInformation: Reference [0..*]

«Binding, Constraint»

+ status: code

«Binding»

+ category: CodeableConcept [0..*]

+adherente

BackboneElement

Adherence

+ reason: CodeableConcept [0..1] «TypeChoice»

+ code: CodeableConcept

1 0..1

Рисунок 73 — Ресурс Medicationstatement

Таблица 325 — Состав элементов ресурса Medicationstatement

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

0..1

implicitRules

Совокупность правил, по которым должен создаваться экземпляр ресурса

uri

0..1

language

Основной человеческий язык, на котором представлено содержание ресурса

code

0..1

Унаследованы от абстрактного класса DomainResource

text

Текстовое описание содержания экземпляра ресурса для интерпретации человеком

Narrattive

0..1

contained

Вложенный экземпляр ресурса

Resource

0..*

extension

Дополнительное содержание, определенное при реализации

Extension

0..*

modifierExtension

Модифицирующее расширение, которое не может быть проигнорировано

Extension

0..*

Собственные элементы

identifier

Внешний идентификатор записи дневника приема лекарств

Identifier

0..*

partOf

Ссылка на экземпляр ресурса, содержащий сведения о процедуре, или на другой экземпляр записи дневника приема лекарств

Reference

0..*

255

ПНСТ 995—2024

Окончание таблицы 325

Имя

Описание

Тип данных

Кратность

status

Статус записи дневника приема лекарств. Допустимые значения: recorded (внесена) | entered-in-error (введена по ошибке) | draft (черновик)

code

1

category

Тип записи о применении лекарственного препарата

CodeableConcept

0..*

medication

Код или наименование лекарственного препарата или ссылка на его описание в форме экземпляра ресурса Medication

CodeableReference

0..*

subject

Ссылка на экземпляр ресурса, идентифицирующего субъект применения лекарственного препарата

Reference

1

encounter

Ссылка на случай медицинской помощи

Reference

0..1

effective[x]

Дата и время (интервал дат и времени) применения (или не применения) лекарственного препарата

0..1

dateAsserted

Дата и время регистрации применения (или не применения) лекарственного препарата

dateTime

0..1

informationsource

Ссылка на идентификацию лица или организации, представившей информацию о применении лекарственного препарата

Reference

0..*

derivedFrom

Ссылка на информацию, предоставленную для регистрации применения лекарственного препарата

Reference

0..*

reason

Код понятия или ссылка на экземпляр ресурса, описывающего причину применения лекарственного препарата

CodeableReference

0..*

note

Дополнительная информация о применении лекарственного препарата, не отраженная в других элементах

Attachment

0..*

relatedClinicallnformation

Ссылка на сопутствующую клиническую информацию, например, срок беременности

Reference

0..*

renderedDosagelnstruction

Полный текст инструкции по дозировке

markdown

0..1

dosage

Дозировка примененного или применяемого лекарственного препарата

Dosage

1

adherence

Применение или отсутствие применения лекарственного препарата

Backbone-Element

0..1

adherence.code

Код соответствия указаниям по применению

CodeableConcept

1

adherence.reason

Причина данного варианта соответствия

CodeableConcept

0..1

11.15.3 Привязки к наборам значений

Привязки к наборам значений описаны в таблице 326.

256

Таблица 326 — Привязки к наборам значений

ПНСТ 995—2024

Путь

Набор значений

Тип привязки

Описание

MedicationStatement. status

http://hl7.org/fhir/ValueSet/ medication-statement-status

Обязательная

Статус записи дневника приема лекарств

MedicationStatement. category

http://hl7.org/fhir/ValueSet/ medicationrequest-admin-location

Пример

Тип записи о применении лекарственного препарата

MedicationStatement. medication

http://hl7.org/fhir/ValueSet/ medication-codes

Пример

Коды лекарственных препаратов и субстанций, определенные в номенклатуре SNOMED СТ как потомки понятия с кодом 763158003

MedicationStatement. reason

http://hl7.org/fhir/ValueSet/ condition-code

Пример

Коды состояний, проблем и диагнозов, определенные в номенклатуре SNOMED СТ как потомки понятия с кодом 404684003

MedicationStatement. adherence.code

http://hl7.org/fhir/ValueSet/ medication-statement-adherence

Пример

Коды соответствия указаниям по применению лекарственных препаратов

MedicationStatement. adherence.reason

http://hl7.org/fhir/ValueSet/ medication-statement-adherence

Пример

Коды соответствия указаниям по применению лекарственных препаратов (в качестве примера)

11.15.4 Параметры поиска экземпляров ресурса MedicationStatement

Специальные параметры поиска экземпляров ресурса MedicationStatement описаны в таблице 327.

В дополнение к ним могут использоваться общие параметры поиска, описанные в подразделе 12.27.

Таблица 327 — Специальные параметры поиска экземпляров ресурса MedicationStatement

Имя

Тип

Описание

Выражение

adherence

token

Код соответствия указаниям по применению

MedicationStatement.adherence.code

category

token

Тип записи о применении лекарственного препарата

MedicationStatement.category

code

token

Код лекарственного препарата

MedicationStatement.medication. concept

effective

date

Дата и время применения (или не применения) лекарственного препарата

MedicationStatement.effective. ofType(dateTime) | ment.effective. ofType(Period)

encounter

reference

Ссылка на случай медицинской помощи

MedicationStatement.encounter (Encounter)

identifier

token

Внешний идентификатор записи дневника приема лекарств

MedicationStatement.identifier

medication

reference

Ссылка на описание лекарственного препарата

MedicationStatement.medication. reference

patient

reference

Ссылка на экземпляр ресурса, идентифицирующего пациента

MedicationStatement.subject. where(resolve() is Patient) (Patient)

257

ПНСТ 995—2024

Окончание таблицы 327

Имя

Тип

Описание

Выражение

source

reference

Ссылка на идентификацию лица или организации, представившей информацию о применении лекарственного препарата

MedicationStatement. informationsource (Practitioner, Organization, Patient, PractitionerRole, RelatedPerson)

status

token

Статус записи дневника приема лекарств

MedicationStatement.status

subject

reference

Ссылка на экземпляр ресурса, идентифицирующего субъект применения лекарственного препарата

MedicationStatement.subject (Group, Patient)

11.16 Ресурс QuestionnaireResponse — дневник самонаблюдения

11.16.1 Область применения и использования

Тип ресурса QuestionnaireResponse описывает структуру ответов на вопросник, позволяющую включать вопросы по значению или по ссылке на вопросник.

При заполнении ответов о состоянии конкретного субъекте в определенный момент времени должен создаваться отдельный экземпляр ресурса QuestionnaireResponse. При необходимости в него могут вноситься изменения и дополнения.

В предметной области дистанционного мониторинга состояния пациента экземпляр ресурса QuestionnaireResponse может использоваться в качестве строки дневника самонаблюдений.

Если экземпляр ресурса QuestionnaireResponse содержит ссылку на вопросник, то его содержание может быть проверено на соответствие вопроснику, например, что на обязательные пункты даны ответы, что кратность и тип данных ответов соответствуют их описанию в вопроснике.

Содержание экземпляров ресурса QuestionnaireResponse может заполняться медицинскими работниками, пациентами или их близкими. Ответы на вопросы могут предоставляться другими лицами от имени пациента. Эти ответы могут содержать сведения о родственниках (например, при заполнении семейного анамнеза). Поэтому в структуре ресурса QuestionnaireResponse проводится различие между оператором (author), субъектом ответов (subject) и источником информации.

Для ссылки на случай медицинской помощи, к которому относятся ответы, может использоваться элемент encounter. Это позволяет соотносить ответы на вопросник с направлениями на исследования и с результатами исследований в рамках того же случая медицинской помощи.

Для указания языка, на котором даны ответы, может использоваться элемент language.

Порядок вопросов в группах и вложенных группах должен сохраняться при сборе и визуализации ответов. Иерархия пунктов в экземпляре ресурса QuestionnaireResponse должна воспроизводить иерархию пунктов в ссылочном экземпляре ресурса Questionnaire (при наличии ссылки).

11.16.2 Структура ресурса

Ресурс QuestionnaireResponse является детализацией абстрактного ресурса DomainResource. Состав элементов ресурса QuestionnaireResponse представлен на рисунке 74 и в таблице 328.

258

ПНСТ 995—2024

Рисунок 74 — Ресурс QuestionnaireResponse

Таблица 328 — Состав элементов ресурса QuestionnaireResponse

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

0..1

implicitRules

Совокупность правил, по которым должен создаваться экземпляр ресурса

uri

0..1

language

Основной человеческий язык, на котором представлено содержание ресурса

code

0..1

Унаследованы от абстрактного класса DomainResource

text

Текстовое описание содержания экземпляра ресурса для интерпретации человеком

Narrattive

0..1

contained

Вложенный экземпляр ресурса

Resource

0..*

extension

Дополнительное содержание, определенное при реализации

Extension

0..*

modifierExtension

Модифицирующее расширение, которое не может быть проигнорировано

Extension

0..*

Собственные элементы

identifier

Глобально уникальный идентификатор ответа на вопросник или иной идентификатор, не зависящий от версии

Identifier

0..*

basedOn

Ссылка на экземпляр ресурса, содержащий сведения о плане ведения или назначении, при выполнении которого даны ответы на вопросник

Reference

0..*

questionnaire

Ссылка на экземпляр вопросника

canonical

0..1

259

ПНСТ 995—2024

Окончание таблицы 328

Имя

Описание

Тип данных

Кратность

partOf

Ссылка на экземпляр ресурса, содержащий сведения о процедуре или результате исследования, частью которых являются данные ответы на вопросник

Reference

0..*

subject

Ссылка на экземпляр ресурса, идентифицирующего субъект ответа на вопросник

Reference

0..1

encounter

Ссылка на случай медицинской помощи

Reference

0..1

authored

Дата сбора ответов

dateTime

0..1

status

Статус ответов на вопросник. Позволяет прослеживать жизненный цикл ответа. Допустимые значения: in-progress (в процессе заполнения) | completed (заполнены) | amended (дополнены) | entered-in-error (введены по ошибке) | stopped (заполнение прекращено)

code

1

author

Ссылка на оператора по вводу ответов (лицо или устройство)

Reference

0..1

source

Ссылка на лицо или устройство, предоставившее ответы на вопросник

Reference

0..1

item

Пункт вопросника (вопрос, группа)

Backbone-Element

0..*

item.linkld

Уникальный идентификатор пункта вопросника

string

1

item.definition

Ссылка на определение пункта

uri

0..1

item.text

Текст пункта

string

0..1

item.answer

Ответ на вопрос

Backbone-Element

0..*

value[x]

Содержание ответа

*

1

11.16.3 Привязки к наборам значений

Привязки к наборам значений описаны в таблице 329.

Таблица 329 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

Questionnaire-Response.status

http://hl7.org/fhir/ValueSet/ questionnaire-answers-status

Обязательная

Жизненный статус дневника

QuestionnaireResponse.item.answer. value[x]

http://hl7.org/fhir/ValueSet/question-naire-answers

Пример

Примеры вариантов ответа

11.16.4 Ограничения ресурса QuestionnaireResponse

Ограничения ресурса QuestionnaireResponse описаны в таблице 330.

260

Таблица 330 — Ограничения ресурса QuestionnaireResponse

ПНСТ 995—2024

Идентификатор

Вид

Путь

Описание

Выражение

qrs-1

Правило

QuestionnaireResponse. item

Элемент item не может содержать элементы item и answer одновременно

(answer.exists() and item. exists()).not()

qrs-2

Правило

QuestionnaireResponse. item

Ответы на повторяющийся вопрос должны собираться в массив ответов, привязанных к единственному экземпляру вопроса

repeat(answer|item). select(item.

where(answer. value. exists()). linkld. isDistinct()).allTrue()

11.16.5 Ссылки на экземпляры ресурса Questionnaire

Содержание экземпляра ресурса QuestionnaireResponse может быть автономным или включать ссылка на описание вопросника Questionnaire. При наличии такой ссылки должны выполняться следующие требования:

- структура экземпляра ресурса QuestionnaireResponse должна быть совместимой со структурой вопросника, описанной в экземпляре ресурса (например, ответы на вопросы должны быть организованы в те же самые группы, ответы на вложенные вопросы должны оставаться вложенными и т.д.);

- связь между вопросами, группами и ответами задается с помощью элементов linkld. Значение этих элементов уникальны в экземпляре ресурса Questionnaire, но могут повторяться в экземпляре ресурса QuestionnaireResponse, если допускается повторение соответствующего пункта или его родителя;

- все пункты вопросника Questionnaire, в том числе пункты типа display, релевантные для интерпретации ответов, по возможности должны быть включены в экземпляре ресурса QuestionnaireResponse. Пока статус завершенности экземпляра ресурса QuestionnaireResponse не получит значение completed, это могут быть пункты, которые должны быть пропущены в зависимости от текущих ответов. Когда QuestionnaireResponse.status = completed, все пропускаемые пункты должны быть исключены.

11.16.6 Валидация ответов на вопросник

Требования к ответам, описанные в экземпляре ресурса Questionnaire, не обязаны выполняться, пока заполнение ответов не будет завершено, то есть элемент QuestionnaireResponse.status не получит значение completed или amended. Например, ответы на обязательные вопросы могут быть пропущены, требования к длине ответов могут не выполняться и т.д. Такие экземпляры QuestionnaireResponse могут сохраняться сервером для будущей доработки. Если же элемент QuestionnaireResponse.status имеет значение completed или amended, то сервер по возможности должен обеспечить валидацию содержания экземпляра QuestionnaireResponse на соответствие требованиям в ссылочном экземпляре ресурса Questionnaire.

В ресурсе QuestioinnaireResponse предусмотрены два разных способа представления вложенных пунктов: item.item и item.answer.item. Первый предназначен для пунктов, вложенных в пункты типа group, а второй — для пунктов, вложенных в пункты типа question, то есть в вопросы. Это связано с тем, что пункты, вложенные в вопросы, всегда вложены в каждый ответ на вопрос. Если вопрос допускает несколько ответов, то каждый из них должен иметь свое множество вложенных пунктов.

11.16.7 Параметры поиска экземпляров ресурса QuestioinnaireResponse

Специальные параметры поиска экземпляров ресурса QuestioinnaireResponse описаны в таблице 331. В дополнение к ним могут использоваться общие параметры поиска, описанные в подразделе 12.27.

Таблица 331 — Специальные параметры поиска экземпляров ресурса QuestioinnaireResponse

Имя

Тип

Описание

Выражение

author

reference

Ссылка на оператора по вводу ответов

QuestionnaireResponse.author (Practitioner, Organization, Device, Patient, PractitionerRole, RelatedPerson)

authored

date

Дата сбора ответов

QuestionnaireResponse.authored

261

ПНСТ 995—2024

Окончание таблицы 331

Имя

Тип

Описание

Выражение

based-on

reference

Ссылка на экземпляр ресурса, содержащий сведения о плане ведения или назначении, при выполнении которого даны ответы на вопросник

QuestionnaireResponse.basedOn (CarePlan, ServiceRequest)

encounter

reference

Ссылка на случай медицинской помощи

QuestionnaireResponse.encounter (Encounter)

identifier

token

Глобально уникальный идентификатор ответа на вопросник

QuestionnaireResponse.identifier

item-subject

reference

Ссылка на экземпляр ресурса, идентифицирующего субъект ответа на вопросник

QuestionnaireResponse.item. where(extension(‘http://hl7. org/fhir/StructureDefinition/ questionnaireresponse-isSubject’). exists()).answer, value.ofType(Reference)

part-of

reference

Ссылка на экземпляр ресурса, содержащий сведения о процедуре или результате исследования, частью которых являются данные ответы на вопросник

QuestionnaireResponse.partOf (Observation, Procedure)

patient

reference

Ссылка на экземпляр ресурса со сведениями о пациенте, являющемся субъектом вопросника

QuestionnaireResponse.subject. where(resolve() is Patient) (Patient)

questionnaire

reference

Ссылка на экземпляр вопросника

QuestionnaireResponse.questionnaire (Questionnaire)

source

reference

Ссылка на лицо или устройство, предоставившее ответы на вопросник

QuestionnaireResponse.source (Practitioner, Organization, Device, Patient, PractitionerRole, RelatedPerson)

status

token

Статус ответов на вопросник

QuestionnaireResponse.status

subject

reference

Ссылка на экземпляр ресурса, идентифицирующего субъект вопросника

QuestionnaireResponse.subject (Any)

11.17 Ресурс Questionnaire — описание дневника самонаблюдения

11.17.1 Область применения и использования

Тип ресурса Questionnaire описывает вопросник, то есть организованную коллекцию вопросов, предназначенную для сбора информации от пациентов, медицинских работников или иных участников процесса оказания медицинской помощи, для описания вопросников широкого профиля, в том числе дневника самонаблюдения. Одним из важных приложений ресурса является описание дневника самонаблюдения.

Экземпляр ресурса Questionnaire тесно связан с экземплярами ресурса QuestionnaireResponse: в нем представлены вопросы и правила ответов, а экземпляры ресурса QuestionnaireResponse содержат ответы на эти вопросы, полученные от определенного пользователя в определенный момент времени.

Вопросник, определяемый с помощью экземпляра ресурса Questionnaire, состоит из пунктов, типы которых представлены в таблице 332.

262

Таблица 332 — Типы пунктов вопросника (система кодирования http://hl7.org/fhir/item-type)

ПНСТ 995—2024

Уровень

Код

Значение

Описание

1

group

группа

Пункт, не требующий прямого ответа и содержащий хотя бы один дочерний пункт

1

display

текст

Текст, не требующий ответа и не содержащий дочерние пункты

1

question

вопрос

Пункт, требующий ответа. Может иметь дочерние пункты. Тип question является абстрактным — в экземпляре ресурса Questionnaire могут быть указаны только его потомки, соответствующие конкретным типам данных ответа

2

boolean

булевский

Пункт с бинарным ответом true/false (элемент valueBoolean)

2

decimal

десятичный

Пункт с десятичным ответом (элемент valueDecimal)

2

integer

целочисленный

Пункт с целочисленным ответом (элемент valueinteger)

2

date

дата

Пункт с ответом в виде даты (элемент valueDate)

2

dateTime

дата и время

Пункт с ответом в виде даты и времени (элемент valueDateTime)

2

time

время

Пункт с ответом в виде времени, не зависящего от даты (элемент valueTime)

2

string

строка

Пункт с коротким однострочным ответом (элемент valuestring, не содержащий символы перехода на новую строку/возврата каретки)

2

text

текст

Пункт с длинным многострочным ответом (элемент valuestring)

2

uri

адрес URL

Пункт с ответом в форме адреса URL, например, адресом вебсайта, службы FTP и т.д. (элемент valueUri)

2

coding

перечисляемый

Пункт с перечисляемыми вариантами ответа (элемент valueCoding)

2

attachment

вложение

Пункт с двоичным ответом, например, изображением, PDF и т. д. (элемент valueAttachment)

2

reference

ссылка

Пункт с ответом в виде ссылки на экземпляр ресурса (элемент valueReference)

2

quantity

физическая величина

Пункт с ответом в форме сочетания числа и единицы измерения (элемент valueSimpleQuantity). Для ограничения допустимых единиц измерения, передаваемых в компонентах valueSimpleQuantity.system и valueSimpleQuantity.code, используются расширения http://hl7.org/fhir/StructureDefinition/ questionnaire-unitOption и http://hl7.org/fhir/StructureDefinition/ questionnaire-unitValueSetity.code

С каждым пунктом могут быть связаны правила его предъявления при заполнении, например, пункт может быть пропущен в зависимости от ответа на тот или иной вопрос. Экземпляр ресурса Questionnaire содержит только описание вопросника, заполняется в соответствии с этим описанием экземпляр ресурса QuestionnaireResponse.

11.17.2 Структура ресурса

Ресурс Questionnaire является детализацией абстрактного ресурса DomainResource. Состав элементов ресурса Questionnaire представлен на рисунке 75 и в таблице 333.

263

ПНСТ 995—2024

class Описание дневника самонаблюдений

DomainResource

«Resource»

Questionnaire

+

identifier Identifier [0..*]

+

version: string [0..1]

+

title: string [0..1]

+

experimental: boolean [0..1]

+

date: dateTime [0..1]

+

publisher: string [0..1]

+

contact: ContactDetail [0..*]

+

description: markdown [0..1]

+

useContext: UsageContext [0..*]

+

purpose: markdown [0..1]

+

copyright: markdown [0..1]

+

copyrightLabel: string [0..1]

+

approvalDate: date [0..1]

+

lastReviewDate: date [0—1]

+

effectivePeriod: Period [0..1]

«Constraint»

+

uri: uri [0..1]

+

name: string [0..1]

«TypeChoice»

+

versionAlgorithm[x] [0..1]

«RefTarget»

+

derivedFrom: canonical [0..*]

«Binding, Constraint»

+

status: code

«Binding»

+

subjectType: code [0..*]

+

jurisdiction: CodeableConcept [0..*]

+

code: Coding [0..*]

+item

1

0..*

BackboneElement

Item |^

+

definition: uri [0..1]

+

prefix: string [0..1]

+

text: string [0..1]

«Constraint»

+

linkld: string

+

required: boolean [0..1]

+

repeats: boolean [0..1]

+

readonly: boolean [0..1]

+

maxLength: integer [0..1]

+

answerconstraint: code [0..1]

+

answerValueSet: canonical [0..1]

«Binding, Constraint»

+

code: Coding [0..*]

+

type: code

+

enableBehavior code [0..1]

«Binding»

+

disabledDisplay: code [0..1]

+item 0..*

1

1

1

^initial ^0..*

BackboneElement

Initial

+answerO ption 0..*

BackboneElement

AnswerOption

«TypeChoice» + value[x]

+ initial Selected: boolean [0..1] «TypeChoice»

+ value[x]

+enabteWhen^0..*

BackboneElement

EnableWhen |T|

+ question: string «Binding»

+ operator code

«TypeChoice, Constrai...

+ answerjx]

Рисунок 75 — Ресурс Questionnaire

Таблица 333 — Состав элементов ресурса Questionnaire

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

0..1

implicitRules

Совокупность правил, по которым должен создаваться экземпляр ресурса

uri

0..1

language

Основной человеческий язык, на котором представлено содержание ресурса

code

0..1

264

Продолжение таблицы 333

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса DomainResource

text

Текстовое описание содержания экземпляра ресурса для интерпретации человеком

Narrattive

0..1

contained

Вложенный экземпляр ресурса

Resource

0..*

extension

Дополнительное содержание, определенное при реализации

Extension

0..*

modifierExtension

Модифицирующее расширение, которое не может быть проигнорировано

Extension

0..*

Собственные элементы

url

Канонический идентификатор вопросника, представленный в форме URI

uri

0..1

identifier

Глобально уникальный идентификатор вопросника или иной идентификатор, не зависящий от версии

Identifier

0..*

version

Версия вопросника

string

0..1

versionAlgorithm[x]

Алгоритм сравнения версий

*

0..1

name

Имя вопросника (для компьютера)

string

0..1

title

Краткое описательное имя вопросника (для человека)

string

0..1

derivedFrom

Ссылка на вопросник, взятый за основу данного вопросника

canonical

0..*

status

Статус версии вопросника. Позволяет прослеживать жизненный цикл содержания вопросника. Допустимые значения: draft (проект) | active (действует) | retired (действие прекращено) | unknown (статус неизвестен)

code

experimental

Признак тестового вопросника

boolean

0..1

subjectType

Тип ресурса, разрешенный в качестве субъекта для экземпляра ресурса QuestionnaireResponse

code

0..*

date

Дата (и необязательное время) публикации вопросника. Должна изменяться при смене версии и кода статуса. Кроме того, она должна изменяться, если содержание вопросника претерпевает существенные изменения

dateTime

0..1

publisher

Наименование организации или Ф.И.О. издателя, опубликовавшего вопросник

string

0..1

contact

Контактная информация издателя

Contact-Detail

0..*

description

Описание вопросника для его потребителя

markdown

0..1

useContext

Контекст использования вопросника (по умолчанию — не ограничен)

Usage-Context

0..*

jurisdiction

Юрисдикция, в которой применяется вопросник. Может задавать страну, регион или иную единицу административного деления. Использование запрещено. Вместо него рекомендуется использовать элемент useContext, у которого компонент code имеет значение http://terminology.hl7.org/ CodeSystem/usage-context-type#jurisdiction, а компонент val-ueCodeableConcept — юрисдикцию

CodeableConcept

0..*

265

ПНСТ 995—2024

Продолжение таблицы 333

Имя

Описание

Тип данных

Кратность

purpose

Назначение вопросника

markdown

0..1

copyright

Авторские права на вопросник

markdown

0..1

copyrightLabel

Торговая марка и год(ы)

string

0..1

approvalDate

Дата утверждения

date

0..1

lastReviewDate

Дата последнего пересмотра

date

0..1

effectivePeriod

Период действия

Period

0..1

code

Тема вопросника

Coding

0..*

item

Пункт вопросника (вопрос, группа)

Backbone-Element

0..*

item.linkld

Уникальный идентификатор пункта вопросника

string

1

item.definition

Ссылка на определение пункта

uri

0..1

item.code

Тема пункта

Coding

0..*

item, prefix

Номер пункта, например 1а, 2.5.3

string

0..1

item, text

Текст пункта

string

0..1

item.type

Тип пункта. Допустимые значения: group | display | boolean | decimal | integer | date | dateTime

code

1

item.enableWhen

Условие предъявления пункта при заполнении вопросника

Backbone-Element

0..*

item.enableWhen. question

Значение элемента linkld для вопроса, чей ответ (или отсутствие ответа) влияет на предъявление данного пункта

string

1

item.enableWhen. operator

Оператор сравнения. Допустимые значения: exists | = | != | > I < I >= I <=

code

1

item.enableWhen. answer[x]

Значение, с которым сравнивается ответ на вопрос, идентифицированный элементом question. Если ответов несколько, достаточно положительного сравнения хотя бы с одним из них. Допустимые типы значения: boolean | decimal | integer | date | dateTime | time | string | Coding | Quantity | Reference

1

item.enableBehavior

Интерпретация нескольких экземпляров элемента enableWhen. Допустимые значения: all (все должны быть истинными) | any (хотя бы один должен быть истинным)

code

0..1

item.disabledDisplay

Способ представления пропускаемых пунктов. Допустимые значения: hidden (скрыт) | protected (защищен от ввода)

code

0..1

item.required

Значение true указывает, что пункт должен присутствовать в «заполненном» вопроснике, a false — что пункт может быть пропущен при заполнении вопросника. По умолчанию false

boolean

0..1

item.repeats

Значение true указывает, что на один пункт можно дать несколько ответов (если это вопрос) или что пункт может повторяться (если это группа пунктов). По умолчанию false

boolean

0..1

item.readonly

Значение true указывает, что значение пункта не может быть изменено респондентом. Если указано для пункта, то распространяется на все подчиненные пункты и вопросы

boolean

0..1

item.maxLength

Максимальное число символов в ответе на вопрос

integer

0..1

266

Окончание таблицы 333

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

item.

answerconstraint

Для вопросов с ограниченными вариантами ответов (заданными в элементе Option или answerValueSet) указывает возможность дополнительных вариантов. Допустимые значения: optionsOnly (только заданные значения) | optionsOrType (заданные значения и значения типа, указанного в элементе type) | optionsOrString (заданные значения и произвольная строка)

code

0..1

item.

answerValueSet

Ссылка на набор значений с вариантами ответа

canonical

0..1

item.answerOption

Вариант ответа

Backbone-Element

0..*

item.answerOption. value[x]

Вариант ответа. Допустимые значения: integer|date|time| string|Coding|Reference

*

1

item.answerOption. initialSelected

Значение true указывает, что этот вариант должен быть заранее предложен

boolean

0..1

item.initial

Заранее заполненный ответ

Backbone-Element

0..*

item.initial.value[x]

Заранее заполненный ответ

*

1

item.item

Вложенный пункт или вопрос (см. item)

Backbone-Element

0..*

11.17.3 Привязки к наборам значений

Привязки к наборам значений описаны в таблице 334.

Таблица 334 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

Questionnaire.

versionAlgorithm[x]

http://hl7.org/fhir/ValueSet/ version-algorithm

Расширяемая

Алгоритм сравнения версий

Questionnaire.status

http://hl7.org/fhir/ValueSet/ publication-status

Обязательная

Статус жизненного цикла системы кодирования

Questionnaire. subjectType

http://hl7.org/fhir/ValueSet/ resource-types

Обязательная

Тип ресурса

Questionnaire, jurisdiction

http://hl7.org/fhir/ValueSet/ jurisdiction

Расширяемая

Страны и регионы, для которых предназначена данная система кодирования

Questionnaire.code

http://hl7.org/fhir/ValueSet/ questionnaire-questions

Пример

Примеры типов групп и вопросов

Questionnaire.item, code

http://hl7.org/fhir/ValueSet/ questionnaire-questions

Пример

Примеры типов групп и вопросов

Questionnaire.item, type

http://hl7.org/fhir/ValueSet/ item-type

Обязательная

Тип пункта

Questionnaire.item. enableWhen.operator

http://hl7.org/fhir/ValueSet/ questionnaire-enable-operator

Обязательная

Оператор сравнения

Questionnaire, item. enableWhen. answer[x]

http://hl7.org/fhir/ValueSet/ questionnaire-answers

Пример

Примеры типов сравниваемых значений

267

ПНСТ 995—2024

Окончание таблицы 334

Путь

Набор значений

Тип привязки

Описание

Questionnaire.item. enableBehavior

http://hl7.org/fhir/ValueSet/ questionnaire-enable- behavior

Обязательная

Интерпретация нескольких экземп-пляров элемента enableWhen

Questionnaire.item. disabledDisplay

http://hl7.org/fhir/ValueSet/

questionnaire-disabled-display

Обязательная

Способ представления пропускаемых пунктов

Questionnaire.item, answerconstraint

http://hl7.org/fhir/ValueSet/ questionnaire-answer-constraint

Обязательная

Возможность дополнительных вариантов ответа

Questionaire.item.

answerOption.value[x]

http://hl7.org/fhir/ValueSet/ questionnaire-answers

Пример

Примеры вариантов ответа

Questionaire.item. initial.value[x]

http://hl7.org/fhir/ValueSet/ questionnaire-answers

Пример

Примеры вариантов ответа

11.17.4 Ограничения ресурса Questionnaire

Ограничения ресурса Questionnaire описаны в таблице 335.

Таблица 335 — Ограничения ресурса Questionnaire

Идентификатор

Вид

Путь

Описание

Выражение

cnl-0

Предупреждение

Базовый

Значение элемента name должно быть пригодно в качестве идентификатора программного модуля

name.exists() implies name. matches(‘A[A-Z]([A-Za-zO-9J) {1,254}$’)

cnl-1

Предупреждение

Questionnaire.url

Адрес URL не должен содержать символы | или #

exists() implies matches(‘A[A|# ]+$’)

que-1a

Правило

Questionn aire.item

В экземпляре ресурса Questionnaire, имеющим статус завершенности complete, пункты типа group должны иметь вложенные пункты

(type=’gro

up’ and %re-source.

status=’complete’) implies item. empty().not()

que-1b

Предупреждение

Questionnaire, item

Пункты типа group по возможности должны иметь вложенные пункты

type=’group’ implies item. empty().not()

que-1c

Правило

Questionnaire, item

Пункты типа display не должны содержать дочерние пункты

type=’display’ implies item. empty()

que-2

Правило

Базовый

Значения идентификаторов linkld пунктов типа group и question должны быть уникальными в пределах вопросника

descendants().linkld.isDistinct()

que-3

Правило

Questionnaire, item

У пунктов типа display должен отсутствовать элемент code

type!=’display’ or code.empty()

268

Продолжение таблицы 335

ПНСТ 995—2024

Идентификатор

Вид

Путь

Описание

Выражение

que-4

Правило

Questionn aire.item

Пункт типа question не может одновременно иметь элементы answerOption и answerValueSet

answer

Option.empty() or answerVal-ueSet.empty()

que-5

Правило

Questionnaire, item

Элементы answerOption или answerValueSet могут быть только у пунктов типа coding, decimal, integer, date, dateTime, time, string или quantity

(type=’coding’ ortype = ‘decimal’ or type = ‘integer’ or type = ‘date’ or type = ‘dateTime’ or type = ‘time’ or type = ‘string’ or type = ‘quantity’) or (answerValueSet. empty() and answerOption. empty())

que-6

Правило

Questionnaire, item

У пунктов типа display должны отсутствовать признаки обязательности required и повторения repeat

type!=’display’ or (required. empty() and repeats.empty())

que-7

Правило

Questionnaire, item.

enableWhen

Если элемент operator имеет значение exists, то элемент answer должен иметь тип boolean

operator = ‘exists’ implies (answer is boolean)

que-8

Правило

Questionnaire, item

У пунктов типа group или display должны отсутствовать заранее заполненные ответы

(type!=’group’ and

type!=’display’) or initial.empty()

que-9

Правило

Questionnaire, item

У пунктов типа display должен отсутствовать признак readonly

type!=’display’ or readonly. empty()

que-10

Правило

Questionnaire, item

Ограничение максимальной длины maxLength может быть задано только для пунктов с простым ответом

(type in (‘boolean’ | ‘decimal’ | ‘integer’ | ‘string’ | ‘text’ | ‘uri’)) or answerConstraint=’optionOrStri

ng’ or maxLength.empty()

que-11

Правило

Questionnaire, item

Элемент initial должен отсутствовать, если присутствует хотя бы один элемент answerOption. Вместо элемента initial в этом случае следует использовать элемент answerOption. initialSelected

answerOption.empty() or initial. empty()

269

ПНСТ 995—2024

Окончание таблицы 335

Идентификатор

Вид

Путь

Описание

Выражение

que-12

Правило

Questionnaire, item

Если присутствует несколько элементов enableWhen, то должен присутствовать элемент enableBehavior

enableWhen.count() > 1 implies enableBehavior.exists()

que-13

Правило

Questionnaire, item

Несколько заранее заданных ответов может присутствовать только при наличии признака повторения repeats со значением true

repeats=true or initial.count()

<= 1

que-14

Предупреждение

Questionnaire, item

Элемент answerconstraint может присутствовать только при наличии элемента answerOption или answerValueSet

answerConstraint.exists() implies answerOption.exists() or an-swerValueSet.exists()

que-15

Предупреждение

Questionnaire, item, linkld

Длина значения идентификатора linkld не должна превышать 255 символов

$this.length() <= 255

11.17.5 Параметры поиска экземпляров ресурса Questionnaire

Специальные параметры поиска экземпляров ресурса Questionnaire описаны в таблице 336. В дополнение к ним могут использоваться общие параметры поиска, описанные в подразделе 12.27.

Таблица 336 — Специальные параметры поиска экземпляров ресурса Questionnaire

Имя

Тип

Описание

Выражение

combo-code

token

Тема вопросника или пункта

Questionnaire.code |

Questionnaire.item.code

context

token

Контекст использования, назначенный системе кодирования

(Questionnaire.

useContext.value.

ofType(CodeableConcept))

context-quantity

quantity

Количественное значение контекста или диапазон количественных значений (если имеются), назначенных вопроснику

(Questionnaire.useContext. value.ofType(Quantity)) | (Questionnaire.useContext. value. ofType(Range))

context-type

token

Тип контекста, назначенного вопроснику

Questionnaire.useContext. code

context-type-quantity

composite

Сочетание типа контекста данного вопросника и его количественного значения или диапазона значений

On Questionnaire. useContext: context-type: code context-quantity: value. ofType(Quantity) | value. ofType(Range)

270

Окончание таблицы 336

ПНСТ 995—2024

Имя

Тип

Описание

Выражение

context-type-value

composite

Сочетание типа контекста данного вопросника и его значения

On Questionnaire.

useContext: context-type: code context: value.

ofType(CodeableConcept)

date

date

Дата публикации вопросника

Questionnaire.date

definition

uri

Ссылка на определение пункта

Questionnaire.item.definition

description

string

Описание вопросника

Questionnaire.description

effective

date

Предполагаемый период использования

Questionnaire.effectivePeriod

identifier

token

Внешний идентификатор вопросника

Questionnaire.identifier

item-code

token

Тема пункта

Questionnaire.item.code

jurisdiction

token

Страна или регион, для которого предназначен вопросник

Questionnaire.jurisdiction

name

string

Имя вопросника, предназначенное для машинной обработки

Questionnaire.name

publisher

string

Наименование издателя вопросника

Questionnaire.publisher

question-naire-code

token

Тема вопросника

Questionnaire.code

status

token

Текущий статус вопросника

Questionnaire.status

subject-type

token

Ссылка на субъект вопросника

Questionnaire.subjectType

title

string

Имя вопросника, предназначенное для человека

Questionnaire.title

url

uri

Значение URI, идентифицирующее данный вопросник

Questionnaire.url

version

token

Версия вопросника

Questionnaire.version

11.18 Ресурс Nutritionintake (дневник питания)

11.18.1 Область применения и использования

Ресурс Nutritionintake описывает общую структуру однократной регистрации акта питания (приема пищи или потребления жидкости) как в стационаре, так и на дому или в системе общественного питания. В область применения ресурса Nutritionintake не входит парентеральное питание.

Состав элементов ресурса Nutritionintake рассчитан на потребности анализа медицинским специалистом (например, диетологом или эндокринологом). Источником информации может быть сам пациент, лицо, обеспечивающее уход за ним или медицинский работник. Информация может заполняться постфактум или непосредственно во время акта питания. Она может вводиться в информационную систему медицинской организации, в мобильное приложение или в приложение на персональном компьютере. Сведения о составе и калорийности продукта (пищи или жидкости) могут браться из справочников, с товарных этикеток или из меню.

Учитывая многообразие продуктов питания и причин контроля питания, все элементы с кодируемыми значениями (за исключением состояния питания status) имеют тип данных CodeableConcept, позволяющий вводить текст в дополнение к коду или вместо кода. Привязки этих элементов к наборам значений даются в качестве примеров.

11.18.2 Структура ресурса

Ресурс Nutritionintake является детализацией абстрактного ресурса DomainResource. Состав элементов ресурса Nutritionintake представлен на рисунке 76 и в таблице 337.

271

ПНСТ 995—2024

class Дневни к питания

Nutritionintake

+ identifier: Identifier [0..*]

+ instantiatesUri: uri [0..*]

+ recorded: dateTime [0..1]

+ note: Annotation [0..*]

«RefTarget»

+ instantiatesCanonical: canonical [0..*]

+ basedOn: Reference [0..*]

+ partOf: Reference [0..*]

+ subject: Reference

+ encounter Reference [0..1]

+ derived From: Reference [0..*]

«Binding»

+ status: code

+ statusReason: CodeableConcept [0..*]

+ code: CodeableConcept [0..1]

«TypeChoice»

+ occurrence!*] [0-1]

+ re ported [x]

«Binding, RefTarget»

+ reason: CodeableReference [0..*]

Consumedltem

1

+consumedltem

nutrition Product: CodeableReference

schedule: Timing [0..1]

amount: SimpleQuantity [0..1]

rate: SimpleQuantity [0..1] notConsumed: boolean

«Binding»

type: CodeableConcept

notConsumedReason: CodeableConcept

+ingredientLabel

0..*

+performerlO..*

IngredientLabel

Performer

«RefTarget»

+ actor. Reference

+ location: Reference [0..1]

+ amount: SimpleQuantity «Binding, RefTarget»

+ nutrient: CodeableReference

Рисунок 76 — Ресурс Nutritionintake

Таблица 337 — Состав элементов ресурса Nutritionintake

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

0..1

implicitRules

Совокупность правил, по которым должен создаваться экземпляр ресурса

uri

0..1

language

Основной человеческий язык, на котором представлено содержание ресурса

code

0..1

Унаследованы от абстрактного класса DomainResource

text

Текстовое описание содержания экземпляра ресурса для интерпретации человеком

Narrattive

0..1

contained

Вложенный экземпляр ресурса

Resource

0..*

272

Продолжение таблицы 337

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

extension

Дополнительное содержание, определенное при реализации

Extension

0..*

modifierExtension

Модифицирующее расширение, которое не может быть проигнорировано

Extension

0..*

Собственные элементы

identifier

Идентификатор акта питания

Identifier

0..*

instantiates-Canonical

Ссылка на экземпляр ресурса, описывающий протокол или определение

canonical

0..*

instantiatesUri

Ссылка на внешний протокол или определение

uri

0..*

basedOn

Ссылка на план ведения, назначение или заказ питания

Reference

0..*

partOf

Ссылка на дневник питания, процедуру или исследование, частью которого является заполнение дневника питания

Reference

0..*

status

Состояние питания. Допустимые значения: preparation (приготовление) | in-progress (в процессе) | not-done (не принято) | on-hold (приостановлено) | stopped (остановлено) | completed (выполнено) | entered-in-error (введено по ошибке) | unknown (неизвестно)

code

1

statusReason

Причина текущего состояния питания

CodeableConcept

0..*

code

Тип питания

CodeableConcept

0..1

subject

Ссылка на субъект питания (пациент, группа или животное)

Reference

1

encounter

Ссылка на случай медицинской помощи

Reference

0..1

occurrence^

Интервал времени, в течение которого осуществлялся или осуществляется акт питания (или имел место отказ от питания)

0..1

recorded

Дата и время регистрации акта питания источником информации

dateTime

0..1

reported [x]

Источник информации об акте питания (лицо, роль или организация)

*

0..1

consumedltem

Потребленный продукт

Backbone-Element

1..*

consumedltem.type

Тип потребленного продукта

CodeableConcept

1

consumedltem. nutritionProduct

Идентификация потребленного продукта (код или ссылка на описание продукта)

CodeableReference

1

consumedltem. schedule

Расписание потребления продукта

Timing

0..1

consumedltem. amount

Количество продукта

Simple

Quantity

0..1

consumedltem.rate

Скорость потребления

Simple

Quantity

0..1

273

ПНСТ 995—2024

Окончание таблицы 337

Имя

Описание

Тип данных

Кратность

consumedltem. notConsumed

Признак, что продукт не был потреблен (например, госпитализированный пациент отказался от него). В дневнике, заполняемом пациентом, этот элемент отсутствует

boolean

0..1

consumedltem.

notConsumedReason

Причина отказа от потребления продукта

CodeableConcept

0..1

ingredientLabel

Состав продукта

Backbone-Element

0..*

ingredientLabel. nutrient

Компонент продукта (белок, жир, гидрокарбонат, витамин, минерал и т. д.) или калории

CodeableReference

1

ingredientLabel. amount

Количество компонента или калорий

SimpleQuantity

1

performer

Лицо, роль, организация или медицинское изделие, обеспечившее или обеспечивающее акт питания

Backbone-Element

0..*

performer.function

Тип лица, роли или организации, обеспечившей или обеспечивающей акт питания

CodeableConcept

0..1

performer.actor

Ссылка на лицо, роль, организацию или медицинское изделие, обеспечившее или обеспечивающее акт питания

Reference

1

location

Ссылка на место акта питания

Reference

0..1

derivedFrom

Ссылка на экземпляр ресурса NutritionOrder (заказ питания) или иную информацию, имеющую отношение к данному акту питания, например, на экземпляры ресурсов Allergylntolerance (непереносимость), Observation (результат исследования) или QuestionnaireAnswers (дневник самонаблюдения)

Reference

0..*

reason

Причина акта питания (состояние пациента или результат исследования) — кодируемое значение типа CodeableConcept или ссылка на экземпляр ресурса Condition | Observation | DiagnosticReport | DocumentReference

CodeableReference

0..*

note

Дополнительная информация об акте питания

Annotation

0..*

11.18.3 Привязки к наборам значений

Привязки к наборам значений описаны в таблице 338.

Таблица 338 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

tritionintake.status

http://hl7.org/fhir/ValueSet/ event-status

Обязательная

Коды состояний жизненного цикла события

Nutritionintake. statusReason

http://hl7.org/fhir/ValueSet/ clinicalimpression-status-reason

Пример

Примеры кодов причин отсутствия описания состояния пациента

Nutritionintake.code

http://hl7.org/fhir/ValueSet/ diet-type

Пример

Примеры типов питания, включая типы диет

Nutritionintake.

consumedltem.type

http://hl7.org/fhir/ValueSet/ edible-substance-type

Пример

Примеры съедобных субстанций

274

Окончание таблицы 338

ПНСТ 995—2024

Путь

Набор значений

Тип привязки

Описание

Nutritionintake, consumedltem. nutritionProduct

http://hl7.org/fhir/ValueSet/ food-type

Пример

Примеры типов продуктов

Nutritionintake, consumedltem. notConsumedReason

http://hl7.org/fhir/ValueSet/ not-consumed-reason

Пример

Примеры причин отказа от продукта

Nutritionintake.

ingredientLabel.nutrient

http://hl7.org/fhir/ValueSet/ nutrient-code

Пример

Примеры питательных веществ

Nutritionintake, performer, function

http://hl7.org/fhir/ValueSet/ performer-role

Пример

Примеры кодов ролей лиц, обеспечивших обеспечивающих акт питания

Nutritionintake.reason

http://hl7.org/fhir/ValueSet/ condition-code

Пример

Пример набора значений с кодами диагнозов/состояний

11.18.4 Параметры поиска экземпляров ресурса Nutritionintake

Специальные параметры поиска экземпляров ресурса Nutritionintake описаны в таблице 339.

В дополнение к ним могут использоваться общие параметры поиска, описанные в подразделе 12.27.

Таблица 339 — Специальные параметры поиска экземпляров ресурса Nutritionintake

Имя

Тип

Описание

Выражение

code

token

Тип питания

Nutritionintake.code

date

date

Интервал времени, в течение которого осуществлялся или осуществляется акт питания (или имел место отказ от питания)

Nutritionintake.occurrence.ofType(dateTime) |

Nutritionintake.occurrence.ofType(Period)

encounter

reference

Ссылка на случай медицинской помощи

Nutritionintake.encounter (Encounter)

identifier

token

Идентификатор акта питания

Nutritionintake.identifier

nutrition

token

Идентификация потребленного продукта

Nutritionintake.consumedltem.nutritionProduct. concept

patient

reference

Ссылка на идентификацию пациента

Nutritionintake.subject.where(resolve() is Patient) (Patient)

source

reference

Ссылка на источник информации об акте питания

(Nutritionintake.reported as Reference) (Practitioner, Organization, Patient, PractitionerRole, RelatedPerson)

status

token

Состояние питания

Nutritionintake.status

subject

reference

Ссылка на субъект акта питания (пациент, группа)

Nutritionintake.subject (Group, Patient)

11.19 Ресурс Detectedlssue — предупреждение

11.19.1 Область применения и использования

Тип ресурса Detectedlssue описывает предупреждение о выявленной проблеме, которое может быть выдано системой поддержки принятия медицинских решений или сформулировано медицинским работником. Такое предупреждение может быть направлено другому медицинскому работнику или пациенту.

275

ПНСТ 995—2024

11.19.2 Структура ресурса

Ресурс Detectedlssue является детализацией абстрактного ресурса DomainResource. Состав элементов ресурса Detectedlssue представлен на рисунке 77 и в таблице 340.

Рисунок 77 — Ресурс Detectedlssue

Таблица 340 — Состав элементов ресурса Detectedlssue

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

0..1

implicitRules

Совокупность правил, по которым должен создаваться экземпляр ресурса

uri

0..1

language

Основной человеческий язык, на котором представлено содержание ресурса

code

0..1

Унаследованы от абстрактного класса DomainResource

text

Текстовое описание содержания экземпляра ресурса для интерпретации человеком

Narrattive

0..1

contained

Вложенный экземпляр ресурса

Resource

0..*

extension

Дополнительное содержание, определенное при реализации

Extension

0..*

modifierExtension

Модифицирующее расширение, которое не может быть проигнорировано

Extension

0..*

Собственные элементы

identifier

Уникальный идентификатор предупреждения

Identifier

0..*

category

Категория проблемы

CodeableConcept

0..*

code

Тип проблемы

CodeableConcept

0..1

severity

Серьезность выявленной проблемы. Допустимые значения: high (высокая) | moderate (умеренная) | low (низкая)

code

0..1

276

Окончание таблицы 340

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

subject

Ссылка на экземпляр ресурса, к которому относится предупреждение

Reference

0..1

encounter

Ссылка на случай медицинской помощи

Reference

0..1

status

Статус предупреждения. Допустимые значения: preliminary (предварительное) | final (окончательное) | entered-in-error (создано по ошибке) | mitigated (учтено)

code

1

identified[x]

Дата и время или период выявления проблемы

*

0..1

author

Ссылка на экземпляр ресурса, описывающего лицо или прибор, выявивший проблему

Reference

0..1

implicated

Ссылка на экземпляр ресурса, представляющего потенциально проблемную планируемую или текущую деятельность

Reference

0..*

evidence

Основание признания деятельности проблемной

BackboneElement

0..*

evidence.code

Код основания признания деятельности проблемной

CodeableConcept

0..*

evidence.detail

Ссылка на экземпляр ресурса, содержащего сведения об основании признания деятельности проблемной

Reference

0..*

detail

Текстовое описание выявленной проблемы

markdown

0..1

reference

Ссылка на источник, описывающий возможную причину выявленной проблемы

uri

0..1

mitigation

Действие, необходимое для смягчения или исключения выявленной проблемы

BackboneElement

0..*

mitigation.action

Кодируемое представление или текст описания необходимого действия

CodeableConcept

1

mitigation.date

Дата и время выполнения необходимого действия

dateTime

0..1

mitigation.author

Ссылка на исполнителя необходимого действия

Reference

0..1

mitigation.note

Примечание к выполненному действию

Annotation

0..*

11.19.3 Привязки к наборам значений

Привязки к наборам значений описаны в таблице 341.

Таблица 341 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

Detectedlssue.status

http://hl7.org/fhir/ValueSet/ detectedissue-status

Обязательная

Статус предупреждения

Detectedlssue.category

http://hl7.org/fhir/ValueSet/ detectedissue-category

Предпочтительная

Категория проблемы или противопоказаний, например, межлекарственное взаимодействие

277

ПНСТ 995—2024

Окончание таблицы 341

Путь

Набор значений

Тип привязки

Описание

Detectedlssue.code

http://hl7.org/fhir/ValueSet/ detectedissue-category

Предпочтительная

Вид проблемы или противопоказаний, например, межлекарственное взаимодействие

Detectedlssue.severity

http://hl7.org/fhir/ValueSet/ detectediss

Обязательная

Указывает потенциальную степень воздействия выявленной проблемы на пациента

Detectedlssue. evidence, code

http://hl7.org/fhir/ValueSet/ manifestation-or-symptom

Пример

Коды состояний, проблем и диагнозов, определенные в номенклатуре SNOMED СТ как потомки понятия с кодом 404684003

Detectedlssue. mitigation, action

http://hl7.org/fhir/ValueSet/ detectedissue-mitigation-action

Предпочтительная

Вид необходимого действия

11.19.4 Параметры поиска экземпляров ресурса Detectedlssue

Специальные параметры поиска экземпляров ресурса Detectedlssue описаны в таблице 342. В дополнение к ним могут использоваться общие параметры поиска, описанные в подразделе 12.27.

Таблица 342 — Специальные параметры поиска экземпляров ресурса Detectedlssue

Имя

Тип

Описание

Выражение

author

reference

Ссылка на лицо или прибор, выявивший проблему

Detectedlssue.author

(Practitioner, Device, Patient, PractitionerRole, RelatedPerson)

category

token

Категория проблемы

Detected Issue.category

code

token

Тип проблемы

Detected Issue.code

identified

date

Дата и время выявления проблемы

Detectedlssue.identified.ofType(dateTime) |

Detectedlssue.identified.ofType(Period)

identifier

token

Уникальный идентификатор предупреждения

Detected Issue.identifier

implica-ted

reference

Ссылка на экземпляр ресурса, представляющего потенциально проблемную планируемую или текущую деятельность

Detectedlssue.implicated (Any)

patient

reference

Ссылка на экземпляр ресурса Patient, к которому относится предупреждение

Detected Issue.subject.where(resolve() is

Patient)

(Patient)

status

token

Статус предупреждения

Detected Issue.status

subject

reference

Ссылка на экземпляр ресурса, к которому относится предупреждение

Detected Issue.subject

(Practitioner, Group, Organization, BiologicallyD erivedProduct, NutritionProduct, Device, Medicat ion, Patient, Procedure, Substance, Location)

11.19.5 Профиль Detectedlssue-Dm

Состав элементов профиля Detectedlssue-Dm приведен на рисунке 78 и в таблице 343. Имя ресурса остается неизменным — Detectedlssue, имя профиля передается в элементе meta.profile.

278

ПНСТ 995—2024

class Предупреждение • профиль ДМ/

Detectedlssue

+ identifier Identifier

+ identifiedDateTime: dateTime [0..1]

+ detail: markdown

«Binding»

+ severity: code

+ status: code

«RefTarget»

+ subject: Reference

+ author Reference [0..1]

+mrtigation

Mitigation

1

«Binding»

+ action: CodeableConcept

Рисунок 78 — Профиль Detectedlssue-Dm

Таблица 343 — Состав элементов профиля Detectedlssue-Dm

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

1

Собственные элементы

identifier

Уникальный идентификатор предупреждения

Identifier

1

severity

Серьезность выявленной проблемы. Допустимые значения: high (высокая) | moderate (умеренная) | low (низкая)

code

1

subject

Ссылка на экземпляр ресурса Patient, к которому относится предупреждение

Reference

1

status

Статус предупреждения. Допустимые значения: final (окончательное) | entered-in-error (создано по ошибке)

code

1

identifiedDateTime

Дата и время выявления проблемы

dateTime

0..1

author

Ссылка на экземпляр ресурса Practitioner или Device, описывающего лицо или прибор, выявивший проблему

Reference

0..1

detail

Текстовое описание выявленной проблемы

markdown

1

mitigation

Действие, необходимое для смягчения или исключения выявленной проблемы

Backbone-Element

0..*

mitigation.action

Кодируемое представление или текст описания необходимого действия

CodeableConcept

1

12 REST API и поиск

12.1 Общие сведения

Для каждого типа ресурсов определен один и тот же комплекс взаимодействий, основанный на архитектурном стиле REST. При описании REST API предполагается, что отдельные экземпляры ресурсов организованы в коллекции по их типу. REST API позволяет выполнять операции как на уровне экземпляров ресурсов, так и на уровне типов ресурсов, а также на уровне системы в целом. Эти операции далее называются взаимодействиями. Все взаимодействия являются синхронными.

279

ПНСТ 995—2024

12.2 Взаимодействия

12.2.1 Общие сведения

Возможные взаимодействия на уровне экземпляров ресурсов перечислены в таблице 344, взаимодействия на уровне типов ресурсов — в таблице 345, взаимодействия на уровне системы — в таблице 346.

Таблица 344 — Взаимодействия на уровне экземпляров ресурсов

Взаимодействие

Описание

read

Чтение текущего содержания экземпляра ресурса

vread

Чтение содержания конкретной версии экземпляра ресурса

update

Изменение содержания экземпляра ресурса с заданным логическим идентификатором (или создание, если экземпляра с таким идентификатором не существует)

patch

Исправление содержания экземпляра ресурса с заданным логическим идентификатором

delete

Удаление экземпляра ресурса

history

Получение истории изменения содержания экземпляра ресурса

Таблица 345 — Взаимодействия на уровне типов ресурсов

Взаимодействие

Описание

create

Создание нового экземпляра ресурса с логическим идентификатором, присвоенным сервером

search

Поиск экземпляров ресурса данного типа, используя определенные критерии

delete

Удаление коллекции экземпляров ресурса данного типа, используя определенные критерии

history

Получение истории изменения содержания экземпляров ресурса данного типа

Таблица 346— Взаимодействия на уровне системы

Взаимодействие

Описание

capabilities

Получение описания возможностей системы

batch/transaction

Выполнение нескольких действий или операций в одном взаимодействии

delete

Удаление коллекции экземпляров ресурса независимо от типа, используя определенные критерии

history

Получение истории изменения содержания экземпляров ресурса независимо от типа

search

Поиск экземпляров ресурса независимо от типа, используя определенные критерии

В дополнение к этим взаимодействиям определена система операций, представленная системой конечных точек, обеспечивающих валидацию экземпляров ресурсов, обработку сообщений и документов.

12.2.2 Описание формата взаимодействия

Далее используется следующий стиль описания формата взаимодействия:

Глагол [base]/[type]/[id]{?_format=[mime-type]}

Здесь «Глагол» соответствует методу HTTP, используемому для взаимодействия, компоненты, заключенные в квадратные скобки, обязательны, в фигурные — необязательны. При описании формата могут использоваться следующие компоненты:

a) base: базовый URL;

б) mime-type: тип среды MIME;

в) type: имя типа ресурса (например, Patient)

г) id: логический идентификатор экземпляра ресурса;

д) vid: идентификатор версии экземпляра ресурса;

е) parameters: параметры, определенные для данного взаимодействия.

280

ПНСТ 995—2024

При конструировании адреса URL, соответствующего этому формату, следует использовать представление символов, описанное в [27].

12.2.3 Базовый URL

Базовый URL представляет собой адрес, по которому обеспечивается доступ ко всем экземплярам ресурсов. Он имеет следующий формат

ЬКр{з}://сервер{/путь}

Компонент пути необязателен и не содержит концевую косую черту. У каждого типа ресурса есть конечная точка с адресом /<тип ресурса>. Например, конечная точка для типа ресурса Patient имеет следующий адрес:

https://server/path/Patient

Для адресации конечной точки типа ресурса допускаются два варианта: с концевой косой чертой и без нее.

Все логические взаимодействия определены относительно базового URL. Все URL и идентификаторы, являющиеся компонентами URL, чувствительны к регистру. В качестве кодировки используется UTF-8.

12.3 Метаданные и версионность ресурсов

В структуре каждого типа ресурса предусмотрены элементы метаданных. Эти элементы отображаются на запросы и ответы HTTP в соответствии с таблицей 347.

Таблица 347 — Отображение метаданных на запросы и ответы HTTP

Элемент метаданных

Описание

Отображение

.id

Логический идентификатор экземпляра ресурса

Содержится в адресе URL

.meta.versionld

Идентификатор версии экземпляра ресурса

Заголовок ETag

.meta.IastUpdated

Дата и время последнего изменения экземпляра ресурса

Заголовок Last-Modified

Идентификатор версии экземпляра ресурса трактуется как «слабый» ETag и должен представляться заключенным в кавычки с префиксом W/, например ETag: W/»3141».

12.4 Коды статуса HTTP

Правила использования специфичных кодов статуса HTTP приводятся ниже в тех случаях, когда требуется правильное отображение этих кодов на конкретные состояния ответов на запросы. Для передачи детальной информации об ошибках в ряде случаев должен использоваться экземпляр ресурса OperationOutcome, однако это не всегда возможно для ответов с кодом статуса HTTP 4хх или 5хх.

12.5 Заголовки HTTP

В таблице приведено использование нескольких заголовков HTTP для изменения обработки или формата запросов или результатов.

Таблица 348 — Использование заголовков HTTP

Заголовок

Направление

Описание

Accept

запрос

Согласование типа MIME содержания

ETag

ответ

Значение элемента .meta.versionld в форме «слабого» ETag

If-Match

запрос

Совпадение значений ETag при условных запросах

If-Modified-Since

запрос

Чтение при условии, что экземпляр ресурса изменился после заданного момента времени

281

ПНСТ 995—2024

Окончание таблицы 348

Заголовок

Направление

Описание

If-None-Exist

запрос

Нестандартный заголовок, определенный организацией Health Level Seven в целях предотвращения дублей экземпляров ресурса

If-None-Match

запрос

Несовпадение значений ETag при условных запросах

Last-Modified

ответ

Значение элемента .meta.lastUpdated, преобразованное в требуемый формат

Prefer

запрос

Задает различные варианты поведения, специфичные для отдельных запросов

Location

ответ

Указывает адрес URL вновь созданного экземпляра ресурса

Content-Location

ответ

Используется в схеме асинхронной обработки для указания адреса, по которому можно получить ответ на запрос

12.6 Управление содержанием ответа

Если сервер использует часовой пояс по умолчанию, то следует возвращать его значение в заголовке Date ответа HTTP.

Для улучшения пропускной способности в спецификации предусмотрены средства сокращения возвращаемого содержания (параметры управления ответом _summary и _elements, см. таблицу 349).

12.7 Типы содержания и кодировки

Формальные типы среды MIME для передачи содержания экземпляров ресурсов имеют значения application/fhir+xml (передача содержания в формате XML) или application/fhir+json (передача содержания в формате JSON).

При передаче запросов на поиск с помощью HTTP POST может использоваться тип среды MIME application/x-www-form-urlencoded.

Если клиент передает в заголовке Accept более общий тип среды MIME (application/xml, text/json или application/json), то сервер по возможности должен указать в ответе запрошенный тип.

Если в заголовке Accept указан формат, который сервер не поддерживает, то должен быть возвращен статус HTTP 406 Not Acceptable. Если неподдерживаемый формат указан в запросе на поиск, передаваемом с помощью HTTP POST, то должен быть возвращен статус HTTP 415 Unsupported Media Type.

Содержание экземпляров ресурсов должно представляться в кодировке UTF-8.

12.8 Общие параметры

В таблице 349 перечислены параметры, которые могут использоваться во всех взаимодействиях.

Таблица 349 — Общие параметры

Имя параметра

Описание

_format

Задает альтернативное представление тела ответа, используемое вместо типа среды MIME, указанного в заголовке Accept. Значения xml, text/xml, application/xml, application/ fhir+xml должны трактоваться как представление тела ответа в формате XML, а значения json, application/json, application/fhir+json — как представление тела ответа в формате JSON

_pretty

Допустимые значения true и false. Значение true указывает, что тело ответа должно представляться в формате, удобном для чтения человеком

_summary

Задает заранее определенное сокращенное представление экземпляра ресурса в теле ответа

_elements

Перечисляет конкретные элементы экземпляра ресурса, которые должны быть возвращены в теле ответа. Обязательные элементы возвращаются, даже если не указаны в этом перечислении

282

ПНСТ 995—2024

12.9 Поддержка версионности

Сервер по возможности должен поддерживать версионность, то есть присваивать соответствующие значения элементам meta.versionld, поддерживать чтение версий экземпляра ресурса и изменения с учетом номера версии.

Информация о поддержке версионности экземпляров конкретного типа ресурса возвращается сервером в ответ на запрос GET [base]/metadata в элементе Capabilitystatement.rest.resource.versioning, который может принимать следующие значения:

a) no-version: версионность и элемент meta.versionld не поддерживаются;

б) versioned: версионность и элемент meta.versionld поддерживаются;

в) versioned-update: версионность, элемент meta.versionld и изменения с учетом номера версии поддерживаются.

12.10 Часовой пояс клиента

Рекомендуется указывать часовой пояс клиента в нестандартном заголовке client-timezone запроса HTTP. Формат заголовка определен в проекте RFC draft-sharhalakis-httptz-05 (https://datatracker.ietf. org/doc/html/draft-sharhalakis-httptz-05).

12.11 Взаимодействие чтения read

Взаимодействие read обеспечивает чтение текущего содержания экземпляра ресурса. Оно выполняется с помощью метода HTTP GET:

GET [base]/[type]/[id] {?_format=[mime-type]}

По данному запросу сервер возвратит единичный экземпляр, содержание которого определяется типом ресурса. Соответствующий URL этого экземпляра может быть доступен обозревателю Интернет. Возвращаемый экземпляр ресурса должен иметь элемент id со значением [id]. Сервер по возможности должен возвратить заголовок ETag с номером версии (если версионность поддерживается) и заголовок Last-Modified (дата и время последнего изменения экземпляра ресурса).

Неизвестные экземпляры ресурса и удаленные экземпляры ресурса трактуются по-разному: при применении метода GET к удаленному экземпляру ресурса должен возвращаться код статуса HTTP 410 Gone, а при применении метода GET к неизвестному экземпляру ресурса должен возвращаться код статуса HTTP 404 Not Found.

При взаимодействии read может быть указан параметр summary. Запрос

GET [base]/[type]/[id] {?_зиттагу=<значение>}

возвратит подмножество элементов экземпляра ресурса, определяемое кодом <значение>:

a) true: передать сокращенное содержание, указанное в определении типа ресурса;

б) false: передать полное содержание;

в) text: передать только человеко-читаемое значение элемента text, логический идентификатор id, метаданные meta и обязательные элементы верхнего уровня;

г) count: передать только число возвращенных экземпляров (0 или 1);

д) data: передать все содержание, кроме элемента text.

При взаимодействии read может быть указан параметр _elements, в значении которого перечислены все передаваемые элементы экземпляра ресурса.

Следует иметь в виду, что сокращенное содержание экземпляра ресурса может быть не пригодно для использования во взаимодействии изменения update. Сервер по возможности должен передать элемент meta.tag со значением SUBSETTED в качестве признака сокращенного содержания.

Вместо метода GET может использоваться метод HEAD. В этом случае передаются только заголовки HTTP, а тело ответа отсутствует.

12.12 Взаимодействие чтения версии vread

Взаимодействие чтения версии vread предоставляет содержание заданной версии экземпляра ресурса. Оно выполняется с помощью метода HTTP GET:

GET [base]/[type]/[id]/_history/[vid] {?_format=[mime-type]}

Сервер возвратит единичный экземпляр, содержание которого определяется типом ресурса type, идентификатором экземпляра id и идентификатором версии vid. Возвращаемый экземпляр ресурса должен иметь элемент id со значением [id] и элемент meta.versionld, содержащий значение [vid].

283

ПНСТ 995—2024

Сервер по возможности должен возвратить заголовок ETag с номером версии (если версионность поддерживается) и заголовок Last-Modified (дата и время последнего изменения экземпляра ресурса).

Если версия содержания экземпляра ресурса ровно та, при которой этот экземпляр был удален, то сервер по возможности должен возвратить код статуса HTTP 410 Gone, а если версия с таким идентификатором отсутствует — код статуса HTTP 404 Not Found.

Даже если сервер не поддерживает версионность, он, по возможности, должен поддерживать чтение текущей версии содержания экземпляра ресурса. Если при этом сделан запрос предыдущей версии содержания, то сервер должен возвратить код статуса 404 Not Found и экземпляр ресурса OperationOutcome, уточняющий, что для данного типа или экземпляра ресурса история изменения не поддерживается.

Вместо метода GET может использоваться метод HEAD.

12.13 Взаимодействия изменения update

12.13.1 Общие требования

Взаимодействие изменения update создает новую текущую версию существующего содержания ресурса или создает начальную версию содержания, если экземпляр ресурса с данным [id] не существует. Оно выполняется с помощью метода HTTP PUT:

PUT [base]/[type]/[id] {?_format=[mime-type]}.

Тело запроса должно содержать экземпляр ресурса, у которого элемент id имеет значение [id]. Если элемент id отсутствует или его значение не равно [id], то сервер должен возвратить код статуса HTTP 400 и по возможности должен возвратить экземпляр ресурса OperationOutcome, идентифицирующий причину ошибки. Если тело запроса содержит элемент meta, то сервер должен игнорировать элементы meta.versionld и meta.IastUpdated. Если сервер поддерживает версионность, он должен заполнить элементы meta.versionld и meta.IastUpdated новыми правильными значениями.

Изменение предшествующих версий экземпляра ресурса не поддерживается. Измененное содержание передается целиком, вместе с неизмененными элементами.

При успешном выполнении запроса сервер должен возвратить код статуса HTTP 200 ОК, если содержание ресурса было изменено, или HTTP 201 Created, если экземпляр ресурса был создан либо возвращен к жизни. При этом должны быть возвращены заголовки Last-Modified и ETag, в котором указан новый идентификатор версии versionld содержания ресурса. Если экземпляр ресурса был создан (то есть возвращен код статуса HTTP 201 Created), сервер по возможности должен возвратить заголовок Location следующего вида:

Location: [base]/[type]/[id]/_history/[vid],

где [id] — существующий или вновь созданный логический идентификатор экземпляра ресурса, а [vid] — новый номер версии экземпляра. Если сервер не поддерживает версионность ресурса данного типа, то заголовок Location должен иметь следующий вид:

Location: [base]/[type]/[id].

При выполнении изменения сервер может сохранять комментарии, инструкции, форматирование содержания, передаваемого в формате XML, либо пробельные элементы содержания, передаваемого в формате JSON, но не обязан это делать. Это должно быть учтено при использовании электронной подписи.

12.13.2 Использование update для создания нового экземпляра ресурса

Сервер может позволить клиенту выполнить запрос PUT с указанием еще не существующего идентификатора [id] и тем самым позволить клиенту самостоятельно назначить идентификатор экземпляра ресурса. Такое поведение сервера не является обязательным, но в отдельных случаях может потребоваться.

Если сервер не создал новый экземпляр ресурса, он не должен возвращать код статуса HTTP 201 Created. При создании нового экземпляра ресурса должен быть возвращен заголовок Location, описанный в 12.13.1.

12.13.3 Отклонение взаимодействия изменения

Сервер может отклонить запрос изменения update из-за возможного нарушения целостности данных или по иным бизнес-правилам и возвратить соответствующий код статуса HTTP (обычно 422 Unprocessable Entity).

В дополнение к обычным кодам статуса HTTP, относящимся к безопасности, заголовку и согласованию типу содержания, могут быть возвращены следующие коды статуса HTTP:

284

ПНСТ 995—2024

- 400 Bad Request — содержание ресурса не может быть разобрано или нарушает наложенные на него ограничения (или условное изменение относится более чем к одному экземпляру ресурса);

- 401 Not Authorized — для данного взаимодействия требуется авторизация;

- 404 Not Found — тип ресурса не поддерживается;

- 405 Method Not allowed — изменяемый экземпляр ресурса не существует, а сервер не позволяет клиенту самостоятельно назначать идентификатор экземпляра ресурса;

- 409 Conflict/412 Precondition Failed — конфликт версий;

- 422 Unprocessable Entity — переданное содержание не соответствует профилю ресурса или нарушает иные бизнес-правила сервера.

Для каждой из этих ошибок сервер по возможности должен передать экземпляр ресурса OperationOutcome, детализирующий причину ошибки.

12.13.4 Условное изменение

Условное изменение позволяет клиенту запросить изменение существующего экземпляра ресурса не по его идентификатору [id], а по некоторым критериям поиска, то есть передать запрос следующего вида:

PUT [Ьа5е]фуре]?[параметры поиска].

При выполнении такого запроса сервер осуществляет поиск, определенный для данного типа ресурса. Дальнейшие действия зависят от числа найденных экземпляров ресурса:

а) не найдены, в теле запроса элемент id не указан. Сервер создает новый экземпляр ресурса;

б) не найдены, в теле запроса указан элемент id. Сервер трактует это как взаимодействие update для создания нового экземпляра ресурса (см. 0) или отклоняет его, если не поддерживает такое взаимодействие;

в) найден один экземпляр, в теле запроса элемент id не указан или имеет значение, совпадающее со значением элемента id в найденном экземпляре. Сервер выполняет изменение найденного экземпляра ресурса;

г) найден один экземпляр, в теле запроса элемент id указан, но имеет значение, не совпадающее со значением элемента id в найденном экземпляре. Сервер возвращает код статуса HTTP 400 Bad Request и по возможности возвращает экземпляр ресурса OperationOutcome, детализирующий причину ошибки;

д) найдено несколько экземпляров. Сервер возвращает код статуса HTTP 412 Precondition Failed и по возможности возвращает экземпляр ресурса OperationOutcome, детализирующий причину ошибки.

Если сервер не поддерживает условное изменение, то он должен возвратить код статуса HTTP 400 Bad Request и может возвратить экземпляр ресурса OperationOutcome, детализирующий причину ошибки.

Клиент может запросить изменение экземпляра ресурса при условии, что заданная версия экземпляра отсутствует на сервере. Такой запрос осущствляется с помощью нестандартного заголовка HTTP If-None-Match, указав версию экземпляра в форме «слабого» ETag, например:

If-None-Match: W/»[идeнтификaтop версии]».

Если вместо «слабого» ETag указан символ звездочки (If-None-Match: *), то новый экземпляр ресурса не создается, если на сервере нет существующих версий экземпляра.

12.13.5 Обеспечение целостности изменений

Если один и тот же экземпляр ресурса изменяется несколькими клиентами, то потерю изменений можно предотвратить с помощью использования сочетания заголовков ETag и If-Match. В этом случае сервер должен возвращать заголовок ETag с каждым экземпляром ресурса, например:

HTTP 200 ОК

Date: Sat, 09 Feb 2013 16:09:50 GMT

Last-Modified: Sat, 02 Feb 2013 12:02:47 GMT

ETag: W/”23”

Content-Type: application/fhir+json

Если заголовок ETag присутствует, то он должен содержать идентификатор версии экземпляра ресурса. Сервер может генерировать номер версии любым способом, с теми ограничениями, что он должен соответствовать типу данных id и быть уникальным в пространстве идентификаторов версий ресурса данного типа. Если экземпляры ресурсов возвращаются в контейнере Bundle, то к ним заголовок ETag не относится и элемент идентификатора версии ресурса versionld должен использоваться напрямую.

285

ПНСТ 995—2024

Если клиент запрашивает изменение с использованием алгоритма обеспечения целостности, то он должен включить в запрос заголовок If-Match, повторяющий значение заголовка ETag, полученного от сервера, например:

PUT [base]/Patient/347

If-Match: W/”23”

Если идентификатор версии, указанный в заголовке If-Match, не совпадает с идентификатором версии текущего содержания экземпляра ресурса, то сервер должен возвратить код статуса HTTP 412 Precondition Failed и не выполнять изменение содержания ресурса.

Сервер может требовать, чтобы клиент передавал заголовок If-Match, возвращая код статуса HTTP 400 Bad Request, если этот заголовок отсутствует. Если сервер обнаружил, что изменение не может быть выполнено в силу внутренних причин (например, изменение экземпляра ресурса заблокировано), то должен быть возвращен код статуса HTTP 409 Conflict.

12.14 Взаимодействие исправления patch

12.14.1 Общие требования

При взаимодействии изменения update клиент передает серверу полное содержание экземпляра ресурса, даже если в нем изменился всего один элемент. При больших объемах содержания это приводит к снижению эффективности пропускной способности канала передачи данных. В качестве альтернативы может использоваться взаимодействие исправления patch, при котором клиент передает серверу только измененные элементы экземпляра ресурса.

Взаимодействие исправления выполняется с помощью метода HTTP PATCH:

PATCH [base]/[type]/[id] {?_format=[mime-type]}.

Тело запроса должно содержать экземпляр ресурса Parameters, описывающий выполняемые изменения.

Сервер должен представить хранящийся у него экземпляр ресурса в формате, указанном в параметре _format, и применить к этому представлению изменения, указанные в экземпляре ресурса Parameters. Затем сервер должен использовать измененное представление как тело запроса на изменение хранящегося у него экземпляра ресурса. Соответственно применяются все требования к обработке ошибок и идентификаторов версий, описанные в подразделе 12.13.

Взаимодействие исправления определено не для всех типов ресурсов. Примером может служить ресурс Binary.

12.14.2 Условное исправление

Если сервер поддерживает взаимодействие patch и условное изменение, то по возможности он должен поддерживать условное исправление. При выполнении такого запроса сервер осуществляет поиск, определенный для данного типа ресурса. Дальнейшие действия зависят от числа найденных экземпляров ресурса:

а) не найдены. Сервер возвращает код статуса HTTP 404 Not Found;

б) найден один экземпляр. Сервер выполняет исправление найденного экземпляра ресурса;

в) найдено несколько экземпляров. Сервер возвращает код статуса HTTP 412 Precondition Failed, указывающее, что заданное клиентом условие недостаточно избирательное.

12.14.3 Обеспечение целостности человеко-читаемого представления

Исправление может привести к тому, что человеко-читаемое представление экземпляра ресурса (значение элемента text.div) перестанет соответствовать обновленному содержанию. Если text.div отсутствует среди исправляемых элементов и значение text.status в исправляемом экземпляре ресурса отличается от generated (сгенерировано), то сервер может или отклонить взаимодействие patch, или сгенерировать значение text.div самостоятельно и присвоить элементу text.status значение generated.

12.15 Взаимодействие удаления delete

12.15.1 Общие требования

Взаимодействие удаления delete удаляет существующий экземпляр ресурса. Оно выполняется с помощью метода HTTP DELETE:

DELETE [base]/[type]/[id].

Тело запроса должно быть пустым.

Взаимодействие удаления delete означает, что последующие запросы на чтение экземпляра ресурса, неспецифичные для версии, должны возвращать код статуса HTTP 410 Gone, а запросы на по-

286

ПНСТ 995—2024

иск не должны возвращать этот экземпляр. При успешном удалении либо при отсутствии экземпляра ресурса с заданным идентификатором сервер должен возвратить один из следующих кодов статуса:

- HTTP 200 ОК, если ответ содержит дополнительные сведения;

- HTTP 204 No Content, если ответ содержит дополнительные сведения;

- HTTP 202 Accepted, если серверу запрещено сообщать факт удаления.

Поддержка удаления ресурса любого типа, ресурса конкретного типа или конкретного экземпляра ресурса зависит от политики безопасности и бизнес-правил сервера. Если серверу запрещено удалять ресурсы определенного типа в соответствии с общей политикой, то он должен возвратить код статуса HTTP 405 Method not allowed. Если он отказывает в удалении конкретного экземпляра ресурса по причинам, специфичным для этого экземпляра, например если удаление нарушает ссылочную целостность, то он должен возвратить код статуса HTTP 409 Conflict.

Применение взаимодействия удаления delete к уже удаленному экземпляру ресурса не приводит ни к какому эффекту, и сервер по возможности должен возвратить один из следующих кодов статуса:

a) HTTP 200 ОК, если ответ содержит дополнительные сведения;

б) HTTP 204 No Content, если ответ не содержит дополнительные сведения.

В составе многих типов ресурсов присутствует элемент status, описывающий возможные состояния экземпляра ресурса. Эти состояния могут перекрываться с идеей удаления. Семантика удаления должна быть описана для каждого типа ресурса, имеющего элемент status. Если такое описание отсутствует, то взаимодействие удаления delete должно трактоваться как удаление экземпляра ресурса вне зависимости от значения элемента status.

Если сервер обеспечивает ведение истории версий, то взаимодействие delete не удаляет историю версий конкретного экземпляра ресурса. В этом случае удаление эквивалентно созданию специальной записи истории, у которой нет содержания и которая помечена как удаленная. Удаление предыдущих версий не поддерживается. Если сервер разрешает создание экземпляров ресурсов с заданными логическими идентификаторами id, то история изменений экземпляра может быть продолжена после удаления. Для обеспечения целостности идентификаторов версий сервер может включить в ответ на запрос удаления заголовок ETag, позволяющий управлять версиями после удаленного экземпляра ресурса.

Это правило не является обязательным и сервер может удалить как экземпляр ресурса, так и историю его версий, если это соответствует политике или бизнес-правилам.

12.15.2 Условное удаление

Условное удаление позволяет клиенту запросить удаление существующего экземпляра ресурса не по его идентификатору [id], а по некоторым критериям поиска, то есть передать запросы следующего вида:

- для удаления экземпляров ресурса заданного типа:

DELETE [base]/[type]?[search parameters];

- для удаления экземпляров ресурса независимо от их типа:

DELETE [base]?[search parameters].

При выполнении такого запроса сервер выполняет поиск, определенный для данного типа ресурса или для любых типов ресурсов. Дальнейшие действия зависят от числа найденных экземпляров ресурса:

а) не найдены или найден единственный экземпляр. Сервер удаляет найденный экземпляр ресурса;

б) найдено несколько экземпляров. Сервер может удалить все найденные экземпляры или возвратить код статуса HTTP 412 Precondition Failed, указывающий, что переданные ему параметры поиска недостаточно избирательные.

Если сервер не поддерживает условное удаление, то он по возможности должен возвратить код статуса HTTP 400 Bad Request и может возвратить экземпляр ресурса OperationOutcome, детализирующий причину ошибки.

12.16 Взаимодействие создания create

12.16.1 Общие требования

Взаимодействие создания create создает новый экземпляр ресурса в хранилище, определяемом сервером. Если клиенту требуется управлять присваиванием логических идентификаторов экземплярам ресурсов, то вместо create следует использовать update. Взаимодействие create выполняется с помощью запроса HTTP POST следующего вида:

POST [base]/[type] {?_format=[mime-type]}.

287

ПНСТ 995—2024

Тело запроса должно содержать экземпляр ресурса. Он не должен иметь элемент id. Если элемент id присутствует, сервер должен игнорировать его. Если тело запроса имеет элемент meta, сервер должен игнорировать значения его компонентов versionld и lastUpdated. Сервер должен заполнить элементы id, meta.versionld и meta.IastUpdated правильными новыми значениями.

При выполнении взаимодействия create сервер по возможности должен воспринимать экземпляр ресурса в том виде, как он получен, и при последующем чтении возвращать то же самое содержание.

При успешном создании экземпляр ресурса сервер возвращает код статуса HTTP 201 Created. Кроме того, он должен возвратить заголовок Location, содержащий новый логический идентификатор созданного экземпляра ресурса и новый идентификатор версии:

Location: [base]/[type]/[id]/_history/[vid],

где [id] — идентификатор экземпляра ресурса, a [vid] — идентификатор версии содержания экземпляра ресурса. Если сервер не поддерживает версионность, то заголовок Location должен иметь следующий вид:

Location: [base]/[type]/[id].

Заголовок Location может содержать абсолютный или относительный URL.

Сервер по возможности должен возвратить заголовок ETag, содержащий идентификатор версии содержания экземпляра ресурса (если версионность поддерживается), и заголовок Last-Modified.

Если синтаксис содержания ресурса не валиден или не корректен и не может быть использован для создания нового экземпляра ресурса, сервер возвращает код статуса HTTP 400 Bad Request. Если сервер отклоняет содержание ресурса в связи с тем, что оно нарушает бизнес-правила, то он возвращает код статуса HTTP 422 Unprocessable Entity. В каждом из этих случаев сервер по возможности должен возвратить тело ответа, содержащее экземпляр ресурса OperationOutcome, детализирующий причину ошибки.

При создании экземпляра ресурса сервер может сохранять комментарии, инструкции, форматирование содержания, передаваемого в формате XML, либо пробельные элементы содержания, передаваемого в формате JSON, но не обязан это делать. Это должно быть учтено при использовании электронной подписи.

В дополнение к обычным кодам статуса HTTP, относящимся к безопасности, заголовку и согласованию типу содержания, могут быть возвращены следующие коды статуса HTTP:

а) 400 Bad Request — содержание тела запроса не может быть разобрано или нарушает наложенные на него ограничения;

б) 404 Not Found — тип ресурса не поддерживается;

в) 422 Unprocessable Entity — переданное содержание не соответствует профилю ресурса или нарушает иные бизнес-правила. Сервер по возможности должен передать экземпляр ресурса OperationOutcome, детализирующий причину ошибки.

12.16.2 Условное создание

Это взаимодействие позволяет клиенту инициировать создание нового экземпляра ресурса при условии, что на сервере еще нет некоторого эквивалентного экземпляра ресурса. Клиент задает эквивалентность с помощью заголовка If-None-Exist, являющегося расширением спецификации HTTP:

If-None-Exist: [параметры поиска],

где [параметры поиска] представляют собой ту часть URL, которая следует за знаком вопроса «?»).

При обработке запроса на условное создание сервер сначала выполняет поиск экземпляра ресурса данного типа, соответствующего заданным параметрам поиска. Дальнейшие действия зависят от числа найденных экземпляров:

а) не найдены. Сервер создает новый экземпляр ресурса в соответствии с 12.16.1;

б) найден один экземпляр. Сервер игнорирует запрос, возвращает код статуса HTTP 200 ОК, текущее содержание этого экземпляра и все заголовки, как если бы экземпляр был создан;

в) найдено несколько экземпляров. Сервер возвращает код статуса HTTP 412 Precondition Failed, указывающий, что переданные ему параметры поиска недостаточно избирательные.

Этот вариант создания призван понизить риск создания дубликатов. Например, клиент может запросить создание экземпляра ресурса Person (демографические данные физического лица) при условии, что на сервере еще нет экземпляра ресурса Person, имеющего заданный СНИЛС или ИНН.

Если сервер не поддерживает условное создание, то он должен возвратить код статуса HTTP 400 Bad Request и может возвратить экземпляр ресурса OperationOutcome, детализирующий причину ошибки.

288

ПНСТ 995—2024

12.17 Взаимодействие поиска search

12.17.1 Общие требования

Взаимодействие поиска search выполняет поиск экземпляров ресурса, соответствующих определенным параметрам, с помощью запросов HTTP GET. Параметры поиска представляют собой пары вида «имя=значение», закодированные в соответствии с правилами URL.

Параметры поиска могут применяться к ресурсам любого типа (например, параметр _id определен для каждого типа ресурсов), к ресурсам конкретного типа (например, параметр даты рождения birthDate используется для поиска экземпляров ресурса Patient). Может осуществляться текстовый поиск по человеко-читаемому содержанию экземпляру ресурса или по всем его строковым элементам. Некоторые параметры управляют выводом результатов поиска.

В типичном REST API коллекция найденных экземпляров ресурсов представляется в форме массива. В данном предварительном стандарте требуется, чтобы результаты поиска возвращались в форме контейнера Bundle, у которого элемент type имеет значение searchset. Это позволяет иметь в результате поиска дополнительную информацию (например, число найденных экземпляров), обеспечивать дополнительную функциональность (например, постраничный вывод) и включать в результат поиска экземпляры ресурсов разных типов.

Структура контейнера результатов поиска показана на рисунке 79. Экземпляры ресурсов, содержащиеся в этом контейнере, представляются в элементе resource в составе отдельных записей entry. Ссылки на страницы результатов поиска представлены элементами link. Причина включения экземпляра ресурса в результат поиска представлена элементом search. Его компонент mode может иметь следующие значения: match (экземпляр ресурса удовлетворяет критериям поиска) | include (экземпляр ресурса включен по прямой или обратной ссылке) | outcome (запись entry содержит экземпляр ресурса OperationOutcome с дополнительной информацией об обработке запроса на поиск).

12.17.2 Контекст поиска

Операции поиска осуществляются в одном из следующих контекстов:

а) система — все типы ресурсов;

б) тип ресурса.

Если параметры поиска отсутствуют, например, GET [base], GET [base]/Patient, то сервер должен включить в результат поиска все экземпляры ресурсов данного контекста. Если число найденных экземпляров слишком велико, сервер может отклонить такой запрос или использовать постраничный вывод результатов.

Рисунок 79 — Контейнер результатов поиска

289

ПНСТ 995—2024

12.17.3 Запрос HTTP GET

Клиент выполняет поиск с помощью запроса HTTP GET, в котором параметры поиска включены в адресную строку URL (таблица 350).

Таблица 350 — Поиск с помощью запроса HTTP GET

Контекст

Описание

Система

GET [base]?param 1 =value&...{&_format=[mime-type]}

Тип ресурса

GET [base]/[resource-type]/?param1=value&...{&_format=[mime-type]}

12.17.4 Возвращаемые коды статуса HTTP

При успешном поиске сервер должен возвратить код статуса HTTP 200 ОК, а тело ответа должно представлять собой контейнер Bundle, в который включена коллекция найденных экземпляров ресурсов. При этом элемент type ресурса Bundle должен иметь значение searchset. Экземпляры ресурсов, включенные в контейнер, могут быть получены от другого сервера, то есть базовый URL в элементе Bundle.entry.fullUrl может отличаться от базового URL, указанного в запросе поиска.

Коллекция, полученная в результате поиска, может быть очень большой, поэтому сервер может использовать постраничный вывод, описанный в 12.22. Сервер может также включить в контейнер Bundle экземпляры ресурсов OperationOutcome, содержащие дополнительную информацию о поиске. Они не должны содержать информацию о проблемах поиска, имеющих статус фатальной ошибки (OperationOutcome.severity = fatal), при этом в элементах Bundle.entry.search.mode записей Bundle.entry, содержащих эти экземпляры, должны быть указаны значения outcome.

Если поиск не может быть выполнен, то сервер должен возвратить код статуса HTTP 4хх или 5хх. Если такая ошибка возникла на уровне обработки ресурсов, то сервер по возможности должен включить в тело ответа экземпляр ресурса OperationOutcome, детализирующий ошибку.

В дополнение к обычным кодам статуса HTTP, относящимся к безопасности, заголовку и согласованию типу содержания, могут быть возвращены следующие коды статуса HTTP:

а) 400 Bad Request — запрос поиска не может быть выполнен или нарушает правила валидации;

б) 401 Not Authorized — для предпринятого взаимодействия требуется авторизация;

в) 404 Not Found — тип ресурса не поддерживается;

г) 405 Method Not Allowed — сервер не поддерживает выбранный тип запроса.

Для каждой из этих ошибок сервер по возможности должен передать экземпляр ресурса OperationOutcome, детализирующий причину ошибки.

12.17.5 Именованный поиск

Клиенту могут потребоваться возможности поиска, не укладывающиеся в стандартную схему. Для этой цели может использоваться именованный поиск, реализуемый специфичным образом. Именованный поиск задается с помощью параметра _query, например:

GET [Ьазе]/Регзоп?_риегу=имя&параметры.

При именованном поиске могут задаваться параметры, не определенные для каких-либо ресурсов. В строке запроса может быть указан только один экземпляр параметра _query. Сервер должен отказать в обработке запроса, если он не поддерживает параметр _query или не способен обработать запрос с данным именем.

12.17.6 Параметры управления содержанием

В дополнение к общим параметрам, описанным в таблице 349, могут быть указаны также параметры управления содержанием, перечисленные в таблице 367. Их описание приведено в подразделе 12.27.

12.18 Взаимодействие описания возможностей capabilities

Взаимодействие capabilities позволяет получить описание возможностей, обеспечиваемых сервером. Оно выполняется с помощью следующей команды HTTP GET:

GET [base]/metadata{?_format=[mime-type]}.

Ответ на запрос должен содержать экземпляр ресурса Capabilitystatement, описывающий типы ресурсов и взаимодействия, обеспечиваемые сервером для этих типов ресурсов.

По возможности в ответе на запрос должен возвращаться заголовок ETag, идентифицирующий версию описания возможностей.

290

ПНСТ 995—2024

12.19 Взаимодействие транзакции transaction

12.19.1 Общие требования

Взаимодействие транзакции transaction позволяет задать несколько взаимодействий в одном запросе HTTP. Все взаимодействия выполняются в одной транзакции: если при хотя бы одном взаимодействии возникла ошибка, результаты всех ранее выполненных взаимодействий откатываются.

Взаимодействие транзакции осуществляется с помощью запроса HTTP POST следующего вида:

POST [base] {?_format=[mime-type]}.

Тело запроса должно содержать контейнер Bundle, у которого элемент type имеет значение transaction. Структура контейнера транзакции показана на рисунке 80.

Рисунок 80 — Контейнер транзакции

Запрос на выполнение взаимодействия представляется в элементе request в составе записи entry. Если взаимодействие выполняется с помощью запроса PUT или POST, то элемент resource должен содержать экземпляр ресурса, представляющий тело запроса.

12.19.2 Правила выполнения транзакции

Сервер либо выполняет все запросы (то есть при обработке каждой записи entry возвращается код статуса HTTP 2хх или Зхх) и возвращает контейнер результата транзакции, либо отклоняет все запросы и возвращает ответ с кодом статуса HTTP 4хх или 5хх. Результат выполнения не должен зависеть от порядка следования экземпляров ресурсов в контейнере транзакции. В одной транзакции может присутствовать только один экземпляр ресурса сданным идентификатором.

Запросы, содержащиеся в транзакции, должны выполняться в следующем порядке:

а) все взаимодействия удаления (DELETE);

б) все взаимодействия создания (POST);

в) все взаимодействия изменения (PUT) или исправления (РАТОН);

г) все взаимодействия чтения, чтения версии, поиска, истории (GET или HEAD).

Экземпляры ресурсов, вложенные в контейнер транзакции, могут содержать перекрестные ссылки. Присвоив новый логический идентификатор id экземпляру ресурса, создаваемому с помощью запроса POST, сервер должен обновить все ссылки на него внутри контейнера Bundle. Ссылки на экземпляры ресурсов, не включенные в контейнер, оставляются неизменными.

Элемент fullUrl записи entry, содержащей создаваемый экземпляр ресурса, трактуется как идентификатор этого экземпляра внутри контейнера Bundle. При создании экземпляра сервер игнорирует этот идентификатор и присваивает собственный. При выполнении изменения сервер по возможности осуществляет преобразование значения элемента fullUrl в местный адрес URL, по которому находится

291

ПНСТ 995—2024

изменяемый экземпляр ресурса. Если такое преобразование не представляется возможным, сервер заменяет базовую часть значения fullUrl на собственный базовый адрес. Это позволяет передать контейнер транзакции нескольким серверам, не меняя значения элементов fullUrl, указанных внутри контейнера.

12.19.3 Условные ссылки

При формировании контейнера транзакции у клиента может отсутствовать логический идентификатор ссылочного экземпляра ресурса. На этот случай в транзакции (и только в транзакции) ссылка на экземпляр ресурса по логическому идентификатору может быть заменена на условие поиска, например, <reference value=»Patient?identifier=12345»/>. Это условие должно задаваться относительно базового пути [base] и начинаться с типа ресурса [type]. Параметры управления содержанием результата поиска должны отсутствовать.

При выполнении транзакции сервер должен осуществить следующие действия:

а) проверить все ссылки на предмет наличия в них условий поиска;

б) выполнить поиск по этим условиям;

в) если результат поиска пуст или содержит более одного экземпляра ресурса, откатить транзакцию и возвратить клиенту сообщение об ошибке;

г) если найден единственный экземпляр ресурса, заменить условие поиска на логический идентификатор этого экземпляра.

12.19.4 Результат транзакции

При успешном выполнении транзакции тело ответа должно содержать контейнер результата транзакции Bundle, у которого элемент type имеет значение transaction-response. Структура этого контейнера показана на рисунке 81.

object Результат транзакции

Рисунок 81 — Контейнер результата транзакции

Контейнер результата транзакции содержит по одной записи entry на каждую запись entry контейнера транзакции, и в том же порядке. Запись entry содержит информацию о результате транзакции в элементе response, включая код статуса HTTP и содержание заголовков Location, ETag, Last-Modified. В зависимости от значения заголовка Prefer, указанного при запросе транзакции, в запись entry может быть включен экземпляр ресурса.

Если при выполнении транзакции произошла ошибка, то вместо контейнера Bundle возвращается один экземпляр ресурса OperationOutcome, содержащий детальные сведения об ошибке.

292

ПНСТ 995—2024

12.20 Взаимодействие истории history

Взаимодействие истории history обеспечивает получение истории изменений конкретного экземпляра ресурса, истории изменения экземпляров ресурса данного типа или истории изменения экземпляров ресурсов всех типов. Эти три варианта выполняются с помощью следующих запросов HTTP GET:

a) GET [base]/[type]/[id]/_history{?[parameters]&_format=[mime-type]};

б) GET [base]/[type]/_history{?[parameters]&_format=[mime-type]};

в) GET [base]/_history{?[parameters]&_format=[mime-type]}.

Тело ответа должно представлять собой контейнер Bundle, у которого элемент type имеет значение history. Оно содержит историю изменения версий экземпляров ресурсов, включая удаленные, и должна быть отсортирована в обратном хронологическом порядке.

Структура контейнера истории показана на рисунке 82.

object Контейнер истории

Рисунок 82 — Контейнер истории

Каждая запись entry должна содержать хотя бы один из элементов resource и request. Элемент resource содержит версию экземпляра ресурса, а элемент request предоставляет информацию о взаимодействии, которое привело к данной версии, что позволяет клиенту-подписчику отличить вновь созданный экземпляр от изменения уже существующего экземпляра. Главная причина, почему элемент resource может отсутствовать, состоит в том, что содержание экземпляра могло быть изменено не с помощью REST API. Если элемент entry.request.method имеет значение PUT или POST, то элемент entry должен содержать элемент resource.

Взаимодействия create, update, patch и delete пополняют историю изменений. Другие взаимодействия не пополняют ее. Поскольку операция исправления patch в конечном счете приводит к изменению экземпляра ресурса, то соответствующий ей элемент entry.request.method будет иметь значение PUT.

Вместо GET может использоваться запрос HEAD.

Примечания

1 В истории изменений условные создания, изменения и удаления преобразуются в обычные взаимодействия.

2 Содержание ресурса, показанное в истории изменений, является тем, как оно сохранено сервером, а не тем, как оно было предоставлено клиентом (могут быть отличия).

3 Сервер по возможности должен как минимум заполнить элемент response.lastModified, чтобы можно было определить момент выполнения действия сервером.

Сервер может регистрировать только успешные взаимодействия. Сервер может указывать в истории только код статуса HTTP 200 ОК вместо более специфичных статусов успеха.

293

ПНСТ 995—2024

В дополнение к стандартному параметру _format могут быть указаны также параметры, перечисленные в таблице 351. Каждый из этих параметров не может быть указан более одного раза.

Таблица 351 — Дополнительные параметры в запросе истории

Параметр

Тип

Описание

_count

integer

Максимальное число элементов entry, указанных на одной странице

_offset

number

Число пропускаемых экземпляров ресурса (при постраничном выводе истории изменений)

_since

instant

Включить только те версии экземпляров ресурсов, которые были созданы в заданный момент времени или после него

_at

date(Time)

Включить только те версии экземпляров ресурсов, которые были текущими в некоторый момент интервала, заданного значением данного параметра

Jist

reference

Включить только те версии экземпляров ресурсов, на которые есть ссылки в данном списке

_sort

token

Сортировка версий экземпляра ресурса по дате и времени последнего изменения:

-JastUpdated (по умолчанию) — в порядке убывания

JastUpdated — в порядке возрастания попе — без сортировки

Историю версий можно ограничить определенным периодом времени, указав параметр _since, содержащий полные дату и время с часовым поясом. Клиент должен иметь в виду, что в связи с неточностью времени он может получить более одного уведомления об изменении содержания экземпляра в момент _since. Сервер не обязан указывать время с точностью менее секунды.

Поскольку список изменений может быть длинным, сервер может использовать постраничный вывод. В этом случае он должен использовать метод, описанный в [38] (https://tools.ietf.org/html/rfc5005), учитывая максимальное число записей entry на странице, указанное в параметре _count.

Взаимодействие истории history может использоваться для организации подписки, при которой подписчик синхронизирует свои данные с издателем.

История версий ведется последовательно для каждого экземпляра ресурса, она не предназначена для прослеживания ветвей. Соответственно, нет возможности изменить или удалить предыдущую версию, можно только изменить часть ее метаданных в целях управления доступом. Все предшествующие версии содержания экземпляра ресурса предполагаются устаревшими и неактивными, оставленными для целей аудита/целостности.

Если требуется явно указать, что предшествующая версия содержания экземпляра ресурса появилась по ошибке, то следует использовать ресурс Provenance (происхождение), содержащий ссылку на эту версию. При прослеживании истории конкретного экземпляра ресурса приложение по возможности должно извлекать экземпляры ресурсов Provenance, ссылающиеся на этот экземпляр или его версию.

Если сделан запрос на получении истории, не являющейся доступной (например, сервер не хранит историю версий ресурсов данного типа или конкретного экземпляра ресурса), то сервер должен возвратить код статуса HTTP 404 Not Found и по возможности возвратить экземпляр ресурса OperationOutcome, детализирующий причину ошибки.

12.21 Транзакционная целостность

При выполнении взаимодействий create и update сервер не обязан сохранять экземпляр ресурса в том виде, как его предоставил клиент. При последующем чтении с помощью взаимодействия содержание экземпляра ресурса может отличаться от исходного по нескольким причинам, например:

а) предоставленное содержание объединяется с текущим;

б) к предоставленному содержанию применяется форматно-логический контроль и по его результатам содержание может быть изменено;

в) сервер поддерживает не все возможные элементы содержания или значения этих элементов.

В связи с этим рекомендуется придерживаться следующих правил:

294

ПНСТ 995—2024

а) перед запросом на изменение клиенту следует считать последнюю версию экземпляра ресурса;

б) клиент вносит в него необходимые изменения, оставляя остальное содержание неизменным;

в) клиент передает полученный результат серверу, используя взаимодействие изменения update. При этом он должен быть способен обработать возвращенные коды статуса HTTP 409 или 412.

12.22 Постраничный вывод

12.22.1 Общие требования

Для снижения нагрузки на сервер, а также для снижения сетевого трафика может использоваться постраничный вывод результатов поиска или истории изменений. В этом случае возвращаемый результат содержит ссылки link с адресами URL, по которым можно запросить другие страницы результата, например:

<Bundle xmlns="http://hl7.org/fhir">

<id value="900ef882-8ec7-410d-85d2-e5e9dbae5e24"/>

<meta>

<lastUpdated value="2023-09-19T18:37:52.066+00:00"/>

</meta>

<type value="searchset"/>

<link>

<relation value="self"/>

<url value="https://hapi.fhir.org/baseR5/Patient?_format=xml&amp;birthdate =gel950"/>

</link>

<link>

<relation value="next"/>

<url value="https://hapi.fhir.org/baseR5?_getpages=900ef882-8ec7-410d-

8 5d2 — e5e 9dbae 5e2 4 & amp;_getpagesoffset=2 0 & amp;_count=2 0 & amp;_f о rma t=xml& amp;_ pre11y=t rue & amp;_bundletype=searchset"/>

</link>

<entry>

<fullUrl value="https://hapi.fhir.org/baseR5/Patient/3506"/>

<resource>

<Patient xmlns="http://h!7.org/fhir">

<id value=»3506»/>

С помощью параметра _count можно указать, сколько экземпляров ресурса следует возвратить на одной странице. Если _count имеет значение 0, то сервер должен возвратить экземпляр ресурса Bundle, в котором элемент total содержит общее число найденных экземпляров, но при этом в нем нет ни одного экземпляра ресурса и ссылок link на предыдущую/следующую страницу, например: <Bundle xmlns="http://hl7.org/fhir">

<id value="069elb59-1864-4395-b47d-6a06ed0c9c98"/>

<meta>

<lastUpdated value="2023-09-19T18:42:30.462+00:00"/>

<tag>

<system value="http://terminology.hl7.org/CodeSystern/v3-ObservationValue"/>

<code value="SUBSETTED"/>

<display value="Resource encoded in summary mode"/>

</tag>

</meta>

<type value="searchset"/>

<total value=»796»/>

</Bundle>

295

ПНСТ 995—2024

Следует учесть, что элемент total содержит общее число экземпляров ресурсов, соответствующих условию поиска. В это число не входят экземпляры ресурсов, включаемых в Bundle в соответствии с требованием, указанным в параметрах Jnclude или _revinclude.

Значение параметра _count никак не влияет на значение элемента Bundle.total, поскольку последний указывает общее число найденных экземпляров, а не число экземпляров ресурсов, включенных в конкретный экземпляр ресурса Bundle.

12.22.2 Смещение от начала вывода

С помощью параметра _offset можно указать смещение от начала вывода, то есть число экземпляров ресурса, пропускаемое перед формированием страницы вывода. В подсчете не участвуют экземпляры других ресурсов, включаемых в Bundle, например, ссылочные экземпляры ресурсов, включаемые в соответствии с требованием, указанным в параметре Jnclude или _revinclude.

12.22.3 Включение других экземпляров ресурсов в результат запроса (_include и _revinclude)

Для снижения числа последовательных запросов поиска, требуемых для получения нужной информации, и тем самым для ускорения поиска можно указать серверу, что вместе с искомым экземпляром ресурса необходимо возвратить экземпляры ресурсов, на которые он ссылается, или экземпляры, которые ссылаются на него. Для этого используются параметры Jnclude и _revinclude.

Значения параметров управления поиском Jnclude и _revinclude состоят из двух частей, разделенных двоеточием (:):

а)тип ресурса;

б) имя параметра поиска, определенного для этого ресурса и имеющего тип reference.

Значения параметров Jnclude и _revinclude не могут задаваться списком. Вместо этого должны быть указаны отдельные параметры управления поиском.

Для каждого ресурса, включенного в результат поиска вследствие применения параметров Jnclude и _revinclude, элементу entry.search.mode ресурса Bundle присваивается значение include. Если добавить нечего, то в результат поиска дополнительные экземпляры ресурсов не включаются и ошибка не генерируется.

При постраничном выводе результата поиска все экземпляры включенных экземпляров ресурсов должны быть на одной странице с найденными экземплярами, чтобы она была самодостаточной.

12.22.4 Актуальность результатов запроса

Результаты запроса актуальны только на момент выполнения запроса. После его выполнения экземпляры ресурсов могут изменяться и повторение запроса может привести к другим результатам.

12.23 Нестандартные заголовки

В таблице 352 приведены нестандартные заголовки HTTP, предназначенные для использования в целях технической поддержки или отладки.

Таблица 352 — Нестандартные заголовки HTTP

Заголовок

Направление

Примечания

X-Request-ld

обе стороны

Уникальный идентификатор запроса или ответа, присвоенный клиентом или сервером соответственно

X-Correlation-ld

обе стороны

Идентификатор запроса, присвоенный клиентом и возвращаемый сервером в ответе на запрос

X-Forwarded-For

запрос

Исходный IP-адрес клиента, передаваемый промежуточному узлу

X-Forwarded-Host

запрос

Исходный адрес хоста, указанный клиентом в заголовке HTTP Host

X-lntermediary

обе стороны

Используется активным промежуточным узлом, изменяющим содержание запроса или ответа

X-Forwarded-Proto

обе стороны

Идентификация исходного протокола, используемого клиентом для соединения с промежуточным узлом

X-Forwarded-Port

обе стороны

Идентификация исходного порта, используемого клиентом для соединения с промежуточным узлом

X-Forwarded-Prefix

обе стороны

Заголовок, позволяющий приложениям использовать суб-URL

296

ПНСТ 995—2024

Заголовок X-Request-ld предназначен для идентификации запросов или ответов в системных журналах. Клиент может присвоить запросу идентификатор и указать его в заголовке X-Request-ld. Сервер может использовать этот идентификатор или присвоить запросу собственный идентификатор, предназначенный для передачи в X-Request-ld ответа на запрос. Если идентификатор, присвоенный сервером, отличается от идентификатора, присвоенного клиентом, то сервер по возможности должен передать идентификатор, присвоенный клиентом, в заголовке X-Correlation-ld.

Протокол HTTP может маршрутизироваться, используя прокси. Такие прокси прозрачны для приложений, но при этом существует риск получения устаревшего содержания из-за кеширования.

На пути от поставщика к потребителю могут использоваться интерфейсные машины. Они отличаются от прокси тем, что активно меняют содержание передаваемых данных и не связаны требованиями, предъявляемыми к прокси. Такие агенты должны добавлять к запросу заголовки X-lntermediary, способствующие отладке или технической поддержке, например:

X-lntermediary : [идентификация агента, обычно полное доменное имя]

Конечные точки не должны использовать этот заголовок.

12.24 Сводная информация

Сводная информация по запросам HTTP приведена в таблице 353.

Таблица 353 — Сводная информация по запросам

Взаимодействие

Путь

Запрос

Глагол HTTP

Заголовок Content-Type

Тело

Заголовок Prefer

Заголовок условия

read (чтение)

/[type]/[id]

GET или HEAD

не применим

отсутствует

не применим

возможен: lf-Modified-Since, If-None-Match

vread (чтение версии)

/[type]/[id]/_history/ [vid]

GET или HEAD

не применим

отсутствует

не применим

не применим

update (изменение)

/[type]/[id]

PUT

обязателен

экземпляр ресурса

не обязателен

возможен: lf-Match

patch (исправление)

/[type]/[id]

PATCH

обязателен

экземпляр ресурса Parameters

обязателен

возможен: lf-Match

delete (удаление)

/[type]/[id]

DELETE

не применим

не применим

не применим

не применим

create (создание)

/[type]

POST

обязателен

экземпляр ресурса

обязателен

возможен: lf-None-Exist

search (поиск по типу)

/[type]?

GET

не применим

не применим

не применим

не применим

/[type]/_search?

POST

application/ x-www-form-urlencoded

параметры запроса

не применим

не применим

search (поиск по системе)

?

GET

не применим

не применим

не применим

не применим

/_search

POST

application/ x-www-form-urlencoded

параметры запроса

не применим

не применим

capabilities (возможности)

/metadata

GETt

не применим

не применим

не применим

не применим

297

ПНСТ 995—2024

Окончание таблицы 353

Взаимодействие

Путь

Запрос

Глагол HTTP

Заголовок Content-Type

Тело

Заголовок Prefer

Заголовок условия

transaction (транзакция)

/

POST

обязателен

экземпляр ресурса Bundle

не обязателен

не применим

batch (пакет)

/

POST

обязателен

экземпляр ресурса Bundle

не обязателен

не применим

history (история экземпляра)

/[type]/[id]/_history

GET

не применим

не применим

не применим

не применим

history (история типа)

/[type]/_hi story

GET

не применим

не применим

не применим

не применим

history (история системы)

/_hi story

GET

не применим

не применим

не применим

не применим

(операция)

/$[name], / [type]/$[name] или / [type]/[id]/$[name]

POST

обязателен

экземпляр ресурса Parameters

не применим

не применим

GET

не применим

не применим

не применим

не применим

POST

application/ x-www-form-urlencoded

параметры запроса

не применим

не применим

Сводная информация по ответам на запрос приведена в таблице 354. В графе «Коды статуса HTTP» приведены коды, описанные в настоящем предварительном стандарте. В дополнение к ним могут возвращаться другие коды, в том числе относящиеся к аутентификации и ошибкам сервера.

Таблица 354 — Сводная информация по ответам на запрос

Взаимодействие

Ответ на запрос

Заголовок Content-Type

Тело

Заголовок Location

Заголовок версионности

Коды статуса HTTP

read (чтение)

обязателен

экземпляр ресурса

не применим

О: ETag, Last-Modified

200, 202, 404, 410$

vread (чтение версии)

обязателен

экземпляр ресурса

не применим

О: ETag, Last-Modified

200, 202, 404, 410$

update (изменение)

обязателен при наличии тела

в зависимости от заголовка Prefer — экземпляр ресурса

не применим

О: ETag, Last-Modified

200, 201,202, 400,

404, 405, 409,

412, 422

patch (исправление)

обязателен при наличии тела

в зависимости от заголовка Prefer — экземпляр ресурса

не

применим

возможны:

ETag, Last-Modified

200, 201,202, 400,

404, 405, 409,

412, 422

298

Окончание таблицы 354

ПНСТ 995—2024

Взаимодействие

Ответ на запрос

Заголовок Content-Type

Тело

Заголовок Location

Заголовок версионности

Коды статуса HTTP

delete (удаление)

обязателен при наличии тела

возможен экземпляр ресурса OperationOutcome

не применим

не применим

200, 202, 204, 404,

405, 409, 412

create (создание)

обязателен при наличии тела

в зависимости от заголовка Prefer — экземпляр ресурса

обязателен

возможны:

ETag, Last-Modified

201, 202, 400, 404, 405, 422

search (поиск по типу)

обязателен

экземпляр ресурса Bundle

не применим

не применим

200, 202, 401, 404, 405

search (поиск по системе)

обязателен

экземпляр ресурса Bundle

не применим

не применим

200, 202, 401, 404, 405

capabilities (возможности)

обязателен

экземпляр ресурса Capabilitystatement

не применим

не применим

200, 202, 404

transaction (транзакция)

обязателен

экземпляр ресурса Bundle

не применим

не применим

200, 202, 400, 404,

405, 409, 412, 422

batch (пакет)

обязателен

экземпляр ресурса Bundle

не

применим

не применим

200, 202, 400, 404,

405, 409, 412, 422

history (история экземпляра)

обязателен

экземпляр ресурса Bundle

не применим

не применим

200, 202

history (история типа)

обязателен

экземпляр ресурса Bundle

не применим

не применим

200, 202

history (история системы)

обязателен

экземпляр ресурса Bundle

не применим

не применим

200, 202

(операция)

обязателен

Экземпляр ресурса Parameters

не применим

не применим

200, 202 и другие в зависимости от типа операции

12.25 Шаблон асинхронных запросов

Для выполнения асинхронного запроса сервер должен поддерживать заголовок Prefer со значением respond-async (асинхронный ответ). При этом в заголовке Accept может быть указан формат экземпляра ресурса Bundle, возвращаемого при успешном выполнении запроса, или экземпляра ресурса OperationOutcome, возвращаемого при ошибке приема или выполнении запроса.

При успешном приеме запроса сервер должен возвратить код статуса HTTP 202 Accepted и заголовок Content-Location, содержащий абсолютный URL конечной точки, которой должны направляться запросы статуса ответа. Тело ответа может содержать экземпляр ресурса OperationOutcome.

При ошибке приема (например, запрос содержит неподдерживаемый параметр поиска) должен возвращаться код статуса HTTP 4ХХ или 5ХХ, а тело ответа должно содержать экземпляр ресурса OperationOutcome с описанием ошибки.

После получения ответа об успешном приеме запроса клиент может выполнять следующие действия:

- отменить выполнение запроса с помощью отправки конечной точке запроса DELETE. При успешной отмене запроса в ответ на обращение к конечной точке должны возвращаться код статуса HTTP

299

ПНСТ 995—2024

404 Not Found и соответствующий ему экземпляр ресурса OperationOutcome. При ошибке отмены конечная точка должна возвратить код статуса HTTP 4ХХ или 5ХХ и может возвратить экземпляр ресурса OperationOutcome с описанием ошибки;

- запросить статус выполнения с помощью отправки конечной точке запроса GET. При частых запросах статуса конечная точка может возвратить код статуса HTTP 429 Too Many Requests. Если исходный запрос еще не выполнен, конечная точка должна возвратить код статуса HTTP 202 Accepted и может возвратить заголовок X-Progress с текстовым описанием состояния выполнения, например, процент выполнения. Если при обработке запроса статуса произошла ошибка, конечная точка должна возвратить код статуса HTTP 4ХХ или 5ХХ и может возвратить экземпляр ресурса OperationOutcome с описанием ошибки. Если выполнение исходного запроса завершено (успешно или нет), то конечная точка должна возвратить код статуса HTTP 200 ОК и тело, содержащее контейнер Bundle, у которого элемент type имеет значение batch-response. Результат исходного запроса должен возвращаться в первой записи контейнера Bundle.entry[O], а информация об ошибках его выполнения — в элементе Bundle. entry[O].response.

12.26 Обработка запросов поиска

12.26.1 Параметры поиска

Входные данные операции поиска именуются параметрами поиска. Параметр поиска может представлять собой:

а) фильтр, применимый к любому типу ресурса (например, _id);

б) фильтр, применимый к конкретному типу ресурса (например, параметр поиска birthdate применим к типу ресурса Patient и обеспечивает поиск по дате рождения Patient.birthDate);

в) фильтр поиска по текстовым элементам экземпляра ресурса;

г) параметр, управляющий результатами поиска.

Имена параметров поиска чувствительны к регистру. Параметры применяются в следующем порядке:

а) сначала параметры фильтрации (в произвольном порядке);

б) затем параметр сортировки _sort;

в) затем параметры постраничного вывода;

г) затем параметры включения ссылочных экземпляров ресурсов (Jnclude, _revinclude).

В отсутствие фильтров поиска, например, GET [base], GET [base]/Patient или POST [base]/_ search, POST [base]/Patient/_search без указания тела, сервер по возможности должен возвратить все экземпляры ресурсов данного контекста. Если их слишком много, сервер может отклонить запрос, возвратив статус HTTP 413 Payload Too Large, или использовать постраничный вывод с параметрами по умолчанию.

12.26.2 Контекст поиска

Операции поиска выполняются в одном из следующих контекстов:

а) все типы ресурсов: GET [Ьазе]?параметры. Если при поиске в этом контексте добавлен параметр Jype, то все остальные параметры поиска должны быть общими для всех типов ресурсов, перечисленных в значении этого параметра. Если параметр Jype отсутствует, то все параметры поиска должны быть общими для всех типов ресурсов, обрабатываемых данным сервером;

б) конкретный тип ресурса: GET [base]/[type]?napaMeTpbi.

12.26.3 Результаты поиска

Результаты поиска всегда возвращаются в контейнере Bundle, у которого элемент type имеет значение searchset. Они содержат экземпляры ресурсов и дополнительные метаданные. Структура контейнера результатов поиска показана на рисунке 79.

Параметры поиска, примененные сервером, могут отличаться от тех, что были заданы клиентом. Они возвращаются в элементе Bundle.link, у которого элемент relation имеет значение self.

Контейнер результатов поиска Bundle может содержать записи entry, тип которых определяется значением элемента entry.search.mode:

a) match: содержание элемента entry.resource соответствует фильтрам, указанным в запросе поиска;

б) include: элемент entry.resource содержит ссылочный экземпляр ресурса;

в) outcome: элемент entry.resource содержит экземпляр ресурса OperationOutcome с информацией о выполнении поиска.

300

ПНСТ 995—2024

12.26.4 Типы параметров поиска

Значения параметров поиска передаются в виде строк, закодированных в соответствии со спецификацией URL-Encoded. На содержание этих строк накладываются дополнительные ограничения в форме типа параметра. Допустимые типы параметров приведены в таблице 355.

Таблица 355 — Типы параметров

Тип

Описание

number

Значение параметра должно быть целым или десятичным числом

date

Значение параметра представляет дату или дату и время в стандартном формате XML

string

Значение параметра представляет собой строку символов, которая может содержать пробелы, но не запятые. Совпадающая строка должна начинаться со значения параметра или равняться ему, регистр и диакритические знаки игнорируются

token

Значением параметра является кодированное значение или идентификатор в форме строки или пары «пространство имен|значение»

reference

Значение параметра является ссылкой на другой экземпляр ресурса

composite

Значение параметра представляет собой сочетание нескольких критериев

quantity

Значение параметра представляет физическую величину

uri

Значение параметра представляет URI [27]

special

Специальное значение, состав которого приведен в описании параметра

12.26.5 Модификаторы

Модификаторы параметров поиска изменяют семантику параметров. Например, модифицированный параметр поиска birthdate:missing=true позволяет найти экземпляры ресурса Patient, у которых дата рождения отсутствует.

В запросах поиска модификаторы обозначаются как суффиксы имени параметра поиска в формате [имя]:[модификатор]. К одному параметру поиска может быть применен только один модификатор.

Поскольку модификаторы изменяют семантику параметров поиска, то сервер по возможности должен отклонить запрос поиска, если в нем указан модификатор, не поддерживаемый этим сервером. При отклонении должен быть возвращен код статуса HTTP 400 Bad Request и экземпляр ресурса OperationOutcome сточным описанием причины отклонения.

Возможность применения модификатора к параметру поиска зависит от реализации поиска конкретным сервером. Однако существуют общие ограничения применимости модификатора в зависимости от типа параметра. Например, модификатор exact (точное совпадение) имеет смысл для параметров типа string, но не может быть применен к параметру типа token. Исключение составляют параметры поиска типа special — для каждого такого параметра список допустимых модификаторов индивидуален.

Таблица 356 — Модификаторы параметров поиска

Имя

Тип параметра

Описание

above

uri

Значение параметра является продолжением значения элемента типа uri

below

uri

Значение параметра является началом значения элемента типа uri

contains

string, uri

Значение параметра является подстрокой в любом месте значения элемента, на который отображается параметр

exact

string

Значение параметра полностью совпадает со значением элемента, на который отображается параметр (включая регистр и диакритические знаки)

identifier

reference

Значение параметра совпадает со значением компонента identifier ссылочного элемента типа Reference, на который отображается параметр

301

ПНСТ 995—2024

Окончание таблицы 356

Имя

Тип параметра

Описание

in

token

Значение элемента, на который отображается параметр, принадлежит заданному набору значений

iterate

Параметр поиска означает включение (_include, _revinclude), применяемое к включенному экземпляру ресурса

missing

date, number, quantity, reference, string, token, uri

Присутствие элемента, на который отображается параметр (если значение параметра равно true), или отсутствие этого элемента (если значение параметра равно false)

not

token

Элемент, на который отображается параметр, отсутствует либо его значение не совпадает со значением параметра

text

token

Значение параметра совпадает со значением компонента типа string (CodeableConcept.text, Coding.display, ldentifier.type.text или Reference, display) элемента, на который отображается параметр, в соответствии с базовыми правилами (совпадающая строка должна начинаться со значения параметра или равняться ему, регистр и диакритические знаки игнорируются)

Если значением параметра является список, то модификатор применяется к каждому элементу списка.

12.26.6 Префиксы

Префиксы значений параметров используются для параметров типа number, date и quantity, имеющих упорядоченные области значений. Они позволяют избежать применения escape-последовательностей в строке URL и обеспечивают наглядность визуализации.

Допустимые префиксы приведены в таблице 357. При описании префиксов «значение параметра» обозначает значение параметра поиска, а «значение элемента» — значение элемента ресурса, на который отображается параметр.

Таблица 357 — Допустимые префиксы значений параметров поиска

Префикс

Описание

Формальное определение

eq

значение элемента равно значению параметра или полностью содержится в нем

диапазон значений параметра полностью содержит диапазон значений элемента

ne

значение элемента не равно значению параметра

диапазон значений параметра не полностью содержит диапазон значений элемента

gt

значение элемента больше значения параметра

диапазон над значением параметра пересекается с диапазоном значений элемента

It

значение элемента меньше значения параметра

диапазон под значением параметра пересекается с диапазоном значений элемента

ge

значение элемента больше значения параметра или равно ему

диапазон над значением параметра пересекается с диапазоном значений элемента или диапазон значений параметра полностью содержит диапазон значений элемента

Ie

значение элемента меньше значения параметра или равно ему

диапазон под значением параметра пересекается с диапазоном значений элемента или диапазон значений параметра полностью содержит диапазон значений элемента

sa

значение элемента начинается после значения параметра

диапазон значений параметра не пересекается с диапазоном значений элемента и диапазон над значением параметра содержит диапазон значений элемента

302

Окончание таблицы 357

ПНСТ 995—2024

Префикс

Описание

Формальное определение

eb

значение элемента заканчивается до значения параметра

диапазон значений параметра не пересекается с диапазоном значений элемента и диапазон под значением параметра содержит диапазон значений элемента

Использование префиксов предполагает, что элемент присутствует и его значение определено. Для поиска элементов с отсутствующими значениями следует использовать модификаторы missing или not.

Префиксы могут использоваться в списках значений параметра, подразумевающих логическое ИЛИ. В этих случаях префикс относится только к значению, которому он предшествует.

По умолчанию предполагается префикс eq. Следует иметь в виду, что применение префиксов отличается от аналогичных математических операций. Префиксы sa (начинается после) и eb (заканчивается до) применимы к десятичным значениям, но не применимы к целым.

Графа «формальное определение» содержит описание префикса в терминах диапазонов, применимых для десятичных значений и дат. Эти диапазоны могут быть явными или подразумеваемыми. Например, десятичное число 2.0 имеет подразумеваемый диапазон значений от 1.95 до 2.05, а для даты 2015-08-12 подразумевается диспазон времени в течение всего дня. У элемента с типом данных Range, Period или Timing диапазон значений задан явно. Варианты диапазонов приведены в таблице 358.

Таблица 358 — Варианты диапазонов

Диапазон

Описание

Примеры

Диапазон значений

Определяется точностью представления значения

Число 2.0 имеет диапазон значений от 1.95 до 2.05.

Дата 2015-08-12 имеет диапазон значений от 2015-08-12Т00:00:00.0000 включительно до 2015-08-1 ЗТ00:00:00.0000 исключительно

Диапазон под значением

Множество значений до заданного значения

Диапазон под значением 2.0 включает все значения меньше 2.00000000000000000000.

Диапазон под значением 2015-08-12Т05:23:45 включает все значения времени до 2015-08-12Т05:23:45.000000000000000

Диапазон над значением

Множество значений после заданного значения

Диапазон над значением 2.0 включает все значения, большие <2.00000000000000000000.

Диапазон над значением 2015-08-12Т05:23:45 включает все значения времени после 2015-08-12Т05:23:45.000000000000000

12.26.7 Использование escape-последовательностей в значении параметра поиска

В строке URL запроса поиска символы доллара ($), запятой (,) и вертикальной черты (|) имеют специальное значение. Если эти символы должны присутствовать в значении параметра поиска, то им должен предшествовать символ обратной косой черты (\), который должен предшествовать самому себе. Выражение param=xxx$xxx означает, что параметр имеет тип composite, а param=xx\$xx означает, что параметр имеет строковое значение хх$хх. Выражение param=xx\xx недопустимо, a param=xx\\xx означает, что параметр имеет строковое хх\хх. По запросу GET [base]/Observation?code=a,b должны быть найдены все экземпляры ресурса Observation, у которых элемент code принимает значение "а" или "Ь", а по запросу GET [base]/Observation?code=a\,b должны быть найдены все экземпляры ресурса Observation, у которых элемент code имеет значение "а,Ь".

12.26.8 Параметр типа date

Параметр типа date используется для поиска по заданной дате или дате и времени либо по заданному периоду.

Значение параметра типа date должно иметь представление даты и времени ГГГГ-ММ-ДДТЧЧ:ММ:СС.СССС[2|(+|-)ЧЧ:ММ] (стандартный формат даты и времени в XML). Допускаются также представления с уменьшенной точностью.

Поиск по дате всегда оперирует «диапазонами значений», зависящими от типа данных элемента, на который отображается параметр поиска (таблица 359).

303

ПНСТ 995—2024

Таблица 359 — Диапазоны значений даты и времени

Тип данных

Диапазон значений

date

Диапазон значений день (при полном представлении даты), месяц или год (при представлении даты с уменьшенной точностью)

dateTime

Тот же диапазон, что для типа данных date. Например, дата 2013-01-10 задает все моменты времени от 00:00 10 января 2013 года до 00:00 января 2013 года (исключая этот момент)

instant

Фиксированный момент времени с диапазоном значений, определяемым точностью системного таймера сервера

Period

Явно заданный диапазон, у которого верхняя или нижняя граница может отсутствовать

Timing

Детали расписания игнорируются и учитываются только внешне границы. Например, расписание «через день с 31 января 2013 года по 24 марта 2013 года» попадет в результат поиска по дате 1 февраля 2013 года, хотя эта дата не входит в расписание

Отсутствующая нижняя граница диапазона всегда «раньше» любой фактической даты (даты и времени). Отсутствующая верхняя граница диапазона всегда «позже» любой фактической даты (даты и времени). При поиске по значению параметра типа date могут использоваться префиксы. Примеры совпадений значения элемента со значением параметра приведены в таблице 360.

Таблица 360 — Примеры совпадений значения элемента со значением параметра типа date

Значение параметра

Примеры совпадений значения элемента

[па ра м етр]=eq2013-01 -14

2013-01-14Т00:00 совпадает (очевидно)

2013-01-14Т10:00 совпадает — входит в диапазон

2013-01-15Т00:00 не совпадает — не входит в диапазон

[параметр]=пе2013-01 -14

2013-01 -15Т00:00 совпадает — не входит в диапазон

2013-01-14Т00:00 не совпадает — входит в диапазон

2013-01-14Т10:00 не совпадает — входит в диапазон

[параметр]=К2013-01 -14Т10:00

2013-01-14 совпадает, поскольку включает моменты времени до 10:00 14 января 2013 года

Период от 2013-01-13Т12:00 до 2013-01-14Т12:00 совпадает, поскольку включает моменты времени до 10:00 14 января 2013 года

Период от 2013-01-14Т08:00 до 2013-01-15Т08:00 совпадает, поскольку включает

моменты времени до 10:00 14 января 2013 года

[napaMeTp]=gt2013-01 -14Т10:00

2013-01-14 совпадает, поскольку включает моменты времени после 10:00 14 января 2013 года

Период от 2013-01-13Т12:00 до 2013-01-14Т12:00 совпадает, поскольку включает моменты времени после 10:00 14 января 2013 года

Период от 2013-01 -14Т12:00 до 2013-01 -15Т12:00 совпадает, поскольку включает

моменты времени после 10:00 14 января 2013 года

[параметр]=де2013-03-14

Период «после 21 января 2013 года» совпадает, поскольку в него попадают моменты времени после 14 марта 2013 года

[параметр]=1е2013-03-14

Период «после 21 января 2013 года» совпадает, поскольку в него попадают моменты времени до 14 марта 2013 года

304

Окончание таблицы 360

ПНСТ 995—2024

Значение параметра

Примеры совпадений значения элемента

[параметр]=за2013-03-14

Период «после 15 марта 2013 года» совпадает, поскольку начинается после

14 марта 2013 года

Период «после 21 января 2013 года» не совпадает, поскольку начинается до

14 марта 2013 года

Период «до 21 января 2013 года включительно» не совпадает, поскольку начинается и завершается до 14 марта 2013 года

Период «с 2013-03-1ЗТ12:00 до 2013-03-14Т12:00» не совпадает, поскольку начинается до 14 марта 2013 года

Период «с 2013-03-14Т12:00 до 2013-03-15Т12:00» не совпадает, поскольку начинается до завершения суток 14 марта 2013 года

[parameter]=eb2013-03-14

Период «после 15 марта 2013 года» не совпадает, поскольку начинается после 14 марта 2013 года

Период «после 21 января 2013 года» не совпадает, поскольку начинается до

14 марта 2013 года, но не завершается до этой даты

Период «до 21 января 2013 года включительно» совпадает, поскольку завершается до 14 марта 2013 года

Период «с 2013-03-1ЗТ12:00 до 2013-03-14Т12:00» не совпадает, поскольку завершается после начала суток 14 марта 2013 года

Период «с 2013-03-14Т12:00 до 2013-03-15Т12:00» не совпадает, поскольку начинается до завершения суток 14 марта 2013 года

При выполнении поиска по дате и времени сервер по возможности должен учитывать часовые пояса. Если значения параметра и значение элемента не содержат часовой пояс, то должен использоваться местный часовой пояс сервера.

12.26.9 Параметр типа number

Параметр типа number используется для поиска по заданному числовому значению.

Примеры совпадений значения элемента со значением параметра приведены в таблице 361.

Таблица 361 — Примеры совпадений значения элемента со значением параметра типа number

Значение параметра

Примеры совпадений значения элемента

[параметр]=100

Совпадает, если равно 100 с точностью до 3 значащих цифр, то есть фактически поиск ведется по отрезку [99.5 ... 100.5])

[параметр]=100.00

Совпадает, если равно 100 с точностью до 5 значащих цифр, то есть фактически поиск ведется по отрезку [99.995 ... 100.005])

[параметр]=1е2

Совпадает, если равно 100 с точностью до 1 значащей цифры, то есть фактически поиск ведется по отрезку [50 ... 150])

[параметр]=И100

Совпадает, если меньше 100

[параметр]=1е100

Совпадает, если меньше или равно 100

[параметр]=дП00

Совпадает, если больше 100

[параметр]=де100

Совпадает, если больше или равно 100

[параметр]=пе100

Совпадает, если не равно 100 с точностью до 3 значащих цифр (то есть не принадлежит отрезку [99.5 ... 100.5])

Если числовой поиск ведется по элементу ресурса, значение которого является целым числом, и значение параметра поиска не представлено в экспоненциальной форме и не содержит ненулевые цифры после десятичной точки, то правило учета значащих цифр не применяется и поиск ведется по точному совпадению.

При использовании префиксов gt, It, ge, Ie, sa и eb неявно определяемая точность игнорируется и значения параметра трактуются как имеющие произвольно высокую точность. При использовании

305

ПНСТ 995—2024

остальных префиксов точность определяется по числу цифр в значении параметра поиска, исключая ведущие нули. Таким образом, 100 и 1.00е2 имеют три значащие цифры.

12.26.10 Параметр типа quantity

Параметр типа quantity используется для поиска по заданному значению физической величины, имеющему следующие форматы:

а) [параметр]={[префикс]}[число] для поиска значения элемента типа Quantity по компоненту value;

б) [параметр]={[префикс]}[число]|[зуз1ет]|[собе] для поиска значения элемента типа Quantity по сочетанию компонентов value, system и code;

в) [параметр]={[префикс]}[число]||[собе] поиска значения элемента типа Quantity по сочетанию компонентов value, system и code или unit.

Числовой компонент параметра поиска типа quantity может задаваться как в десятичном, так и в экспоненциальном формате.

Примеры запросов на поиск по значению физической величины приведены в таблице 362.

Таблица 362— Примеры запросов на поиск по значению физической величины

Запрос

Описание

GET [base]/Observation?value-quantity=5.4|http:// unitsofmeasure.org|mg

Поиск результатов исследования со значением 5.4(+/-0.05) mg, где mg — код из системы единиц измерения UCUM (вариант system/code)

GET [base]/Observation?value-quantity=5.40e-3|http:// unitsofmeasure.org|g

Поиск результатов исследования со значением 0.0054(+/-0.00005) д, где g — код из системы единиц измерения UCUM (вариант system/code)

GET [base]/Observation?value-quantity=5.4||mg

Поиск результатов исследования со значением 5.4(+/-0.05) mg, где единица измерения mg код, указанный в компоненте code (вариант code), или текст, указанный в компоненте unit (вариант unit)

GET [base]/Observation?value-quantity=5.4

Поиск результатов исследования со значением 5.4(+/-0.05) безотносительно к единице измерения (вариант value)

GET [base]/Observation?value-quantity=le5.4|http:// unitsofmeasure.org|mg

Поиск результатов исследования со значением, меньшим или равным 5.4 mg, где mg — код из системы единиц измерения UCUM (вариант system/code)

12.26.11 Параметр типа reference

Параметр типа reference используется для поиска по ссылке на экземпляр ресурса, используя следующие варианты:

а) [параметр]=[!б] — поиск по логическому идентификатору [id] экземпляра ресурса (относительная ссылка);

б) [napaMeTp]=[type]/[id] — поиск по логическому идентификатору [id] экземпляра ресурса (относительная ссылка, в которой могут быть указаны разные типы ресурсов);

в) [параметр]=[иг1] — поиск по абсолютному или каноническому URL.

Если относительная ссылка разрешается тем же самым адресом, что и абсолютный URL, то при поиске она считается совпадающей с абсолютным URL. Например, при запросе

GET http://example.org/fhir/Observation?subject=Patient/123

должны быть найдены экземпляры ресурса Observation, у которых элемент subject.reference имеет следующие значения:

a) Patient/123 — точное совпадение со значением параметра поиска;

б) http://example.org/fhir/Patient/123 — значение параметра поиска неявно разрешается этим URL по базовому URL сервера.

Аналогично при запросе

GET http://example.org/fhir/Observation?subject=http://example.org/fhir/Patient/123

должны быть найдены экземпляры ресурса Observation, у которых элемент subject.reference имеет следующие значения:

а) http://example.org/fhir/Patient/123 — точное совпадение со значением параметра поиска;

306

ПНСТ 995—2024

б) Patient/123 — значение элемента неявно разрешается значением параметра поиска по базовому URL сервера.

При запросе без указания типа ресурса

GET http://example.org/fhir/Observation?subject=123

должны быть найдены экземпляры ресурса Observation, у которых элемент subject.reference имеет следующие значения:

a) Patient/123 — относительный URL экземпляра ресурса Patient;

б) http://example.org/fhir/Patient/123 — абсолютный URL экземпляра ресурса Patient с базовым URL запроса;

a) Practitioner/123 — относительный URL экземпляра ресурса Practitioner;

б) http://example.org/fhir/Practitioner/123 — абсолютный URL экземпляра ресурса Practitioner с базовым URL запроса;

в) и др.

Некоторые ссылки могут указывать на экземпляры ресурсов нескольких типов, например, элемент Observation.subject может содержать ссылки на экземпляры ресурсов Patient, Group, Device, Location, Organization, Procedure, Practitioner, Medication, Substance, BiologicallyDerivedProduct, NutritionProduct. При этом экземпляры ресурсов разных типов могут иметь одинаковые логические идентификаторы id. Если по заданному значению параметра поиска найдены экземпляры ресурсов нескольких типов, то сервер по возможности должен отклонить такой запрос. Поэтому рекомендуется указывать тип ссылочного экземпляра ресурса в запросе, например:

GET [base]/Observation?subject:Patient/23.

В ряде случаев ограничение типа ссылочного ресурса присутствует в определении параметра поиска. Например, для ресурса Observation определен параметр поиска subject, отображаемый на элемент Observation.subject и допускающий ссылки на экземпляры ресурсов нескольких типов. Наряду с ним определен параметр поиска patient, который также отображается на элемент Observation.subject, но при этом допускает ссылки только на экземпляры ресурса Patient.

Параметры поиска типа reference могут иметь модификатор identifier. В этом случае поиск осуществляется по компоненту identifier ссылки. Например, по запросу

GET [base]/Observation?subject:identifier=http://acme.org/fhir/identifier/mrn| 123456

будет осуществлен поиск результатов исследований, у которых элемент subject.identifier.system = http://acme.org/fhir/identifier/mrn, a subject.identifier.value = 123456.

12.26.12 Параметр типа string

Параметр типа string используется для поиска по строковым значениям элементов. При поиске игнорируются регистр и диакритические символы. По умолчанию считается, что значение параметра типа string совпадает со значением элемента, если значение элемента начинается со значения параметра или равно ему (после нормализации регистра обоих значений и удаления диакритических символов. При применении модификатора contains поиск успешен, если значения параметра содержится в любом месте значения элемента. При применении модификатора exact поиск успешен, если значение параметра идентично значению элемента (с учетом регистра и диакритических символов).

Если параметр типа string отображается на элемент с комплексным типом данных (содержащим компоненты), то поиск значения параметра должен осуществляться по каждому компоненту типа string. Например, параметр name отображается на элемент Patient.name типа HumanName, содержащий строковые компоненты text, family, given, prefix, suffix. Тогда для успеха поиска по значению параметра name достаточно, чтобы был успешен поиск хотя бы по одному из этих компонентов.

Для ограничения поиска фамилией определен параметр поиска family, отображенный на элемент Patient.name.family.

12.26.13 Параметр типа token

Параметры типа token в основном используются для поиска по элементам, содержащим кодированные значения или идентификаторы. Такие элементы имеют компонент system, идентифицирующий систему кодирования или схему идентификации, и компонент code (код) или value (идентификатор), и поиск ведется по сочетанию этих компонентов. Параметры типа token используются также для поиска по элементам, имеющим типы данных uri, boolean, ContactPoints, id, когда требуется точное совпадение значения параметра со значением элемента.

Значения параметров типа token могут иметь следующие форматы:

а) [параметр]=[собе] — значение [code] совпадает с компонентом Coding.code или Identifier.value безотносительно к значению компонента Coding.system или Identifier.system;

307

ПНСТ 995—2024

б) [napaMeTp]=[system]|[code] — значение [code] совпадает с компонентом Coding.code или Identifier.value, а 3Ha4eHMe[system] совпадает с компонентом Coding.system или Identifier.system соответственно;

в) [napaMeTp]=|[code] — значение [code] совпадает с компонентом Coding.code или Identifier.value, а компоненты Coding.system или Identifier.system отсутствуют;

г) [napaMeTp]=[system]| — любой элемент, у которого значение [system] совпадает с компонентом Coding.system или Identifier.system.

Для поиска по значениям элементов, имеющих тип данных id, ContactPoint, uri или boolean, допустим только формат [napaMeTp]=[code],

Применение параметров типа token в зависимости от типа данных элемента представлено в таблице 363.

Таблица 363 — Применение параметров типа token в зависимости от типа данных элемента

Тип данных

Компонент system

Компонент code

Примечание

Coding

Coding.system

Coding.code

CodeableConcept

CodeableConcept. coding.system

CodeableConcept. coding.code

Для успешного поиска достаточно совпадения хотя бы с одним экземпляром элемента CodeableConcept.coding

Identifier

Identifier.system

Identifier.value

ContactPoint

не применим

ContactPoint. value

code

подразумеваемый

code

Компонент system определен в привязке элемента к набору значений, но по факту не используется

boolean

подразумеваемый

boolean

Для значений типа boolean подразумевается система кодирования http:// terminology.hl7.org/CodeSystem/special-values, но по факту не используется

id

не применим

id

uri

не применим

uri

string

не применим

string

Иногда параметры типа token отображаются на элементы типа string, чтобы указать поиск по точному совпадению с учетом регистра

Примеры запросов поиска с параметрами типа token приведены в таблице 364.

Таблица 364 — Примеры запросов поиска с параметрами типа token

Запрос

Описание

GET [base]/Patient?identifier=http://acme. org/patient|2345

Поиск пациентов с идентификатором 2345 в схеме идентификации http://acme.org/patient

GET [base]/Patient?gender=male

Поиск пациентов с кодом пола male

GET [base]/Patient?gender:not=male

Поиск пациентов, у которых код пола не равено male или отсутствует

GET [base]/Composition?section=48765-2

Поиск медицинских документов, содержащих раздел «Аллергии и побочные реакции» (код 48765-2 в системе кодирования LOINC http://loinc.org)

308

Окончание таблицы 364

ПНСТ 995—2024

Запрос

Описание

GET [base]/Composition?sec-tion:not=48765-2

Поиск медицинских документов, не содержащих раздел «Аллергии и побочные реакции» (код 48765-2 в системе кодирования LOINC http://loinc.org). Следует иметь в виду, что этот запрос нельзя трактовать как «документ, имеющий раздел, отличающийся от «Аллергии и побочные реакции», поскольку отрицание not применяется к коллекции значений section.code, а не к отдельному экземпляру

GET [base]/Patient?active=true

Поиск активных пациентов

GET [base]/Condition?code=http://acme.org/ condtions/codes|ha125

Поиск состояний с кодом ha125 в системе кодирования http://acme. org/conditions/codes

GET [base]/Condition?code=ha125

Поиск состояний с кодом ha125 безотносительно к системе кодирования

GET [base]/Condition?code:text=ronoBHan боль

Поиск состояний, у которых текстовый компонент элемента code (text или display) имеет значение «Головная боль»

12.26.14 Параметр типа uri

Параметр типа uri используется для поиска по значениям элементов с типом данных uri и url, содержащих идентификаторы URI [27]. Значение параметра должно полностью совпадать со значением элемента с учетом регистра и диакритических знаков. Для поиска с частичным совпадением используются модификаторы above или below. В следующих примерах параметр url имеет тип uri:

GET [base]/ValueSet?url=http://hl7.org/fhir/ValueSet/example-filter

GET [base]/ValueSet?url:below=http://hl7.org/fhir/ValueSet

GET [base]/ValueSet?url:above=http://hl7.org/fhir/ValueSet/example-filter/_history/1

GET [base]/ValueSet?url=urn:oid:1.2.3.4.5

Первый запрос означает поиск наборов значений ValueSet, у которых элемент url имеет значение http://acme.org/fhir/ValueSet/123.

Второй запрос означает поиск наборов значений ValueSet, у которых элемент url начинается со значения http://acme.org/fhir/.

В третьем запросе указано обратное условие: значение элемента url должно быть началом значения параметра запроса.

В четвертом запросе указан поиск по объектному идентификатору. Модификаторы above или below применимы только к адресам URL, но не идентификаторам URN, примером которых служит объектный идентификатор.

12.26.15 Параметры типа special

Некоторые параметры имеют тип special (особые). Способ использования каждого такого параметра уникален. К числу особых параметров относятся:

a) _filter (применим ко всем типам ресурсов);

б) section-text (применим к ресурсу Composition);

в) contains (применим к ресурсу Location);

г) near (применим к ресурсу Location).

12.26.16 Параметр типа composite

Значение параметра типа composite представляет собой сочетание нескольких критериев, накладываемых на компоненты элемента комплексного типа. В качестве разделителя используется знак доллара ($). Например, запрос

GET [base]/ Observation?component-code-value-quantity=http://www.radlex.org| RID49679$le1.7

означает поиск экземпляров ресурса Observation, у которых компонент code элемента component имеет значение RID49679 в системе кодирования http://www.radlex.org и компонент value имеет значение, меньшее или равное 1.7.

Модификаторы не применимы к параметрам типа composite.

Примеры запросов поиска с параметрами типа composite приведены в таблице 365.

309

ПНСТ 995—2024

Таблица 365 — Примеры запросов поиска с параметрами типа composite

Запрос

Описание

GET [base]/DiagnosticReport?result.code-value-q uantity=http://loi nc.org |2823-3$gt5.41 http:// unitsofmeasure.org|mmol/L

Поиск протоколов, содержащих результат исследования калия в крови выше 5.4 mmol/L (код единицы измерения в системе UCUM)

GET [base]/Observation?component-code-value-quantity=http://loinc.org|8480-6$lt60

Поиск результатов исследований, содержащих систолическое давление, меньшее 60. В качестве единиц измерения подразумевается код mmHg в системе UCUM (миллиметры ртутного столба)

GET [base]/Group?characteristic-value=gender$mixed

Поиск групп, у которых характеристика gender (пол) имеет текстовой значение mixed (смешанный)

GET [base]/Questionnaire?context-type-value=focus$http://snomed.info/sct|408934002

Поиск заполненных опросников с основной темой «Профилактика потребления психоактивных веществ» (код 408934002 в номенклатуре медицинских терминов SNOMED СТ)

12.27 Простые варианты поиска

12.27.1 Общие требования

В простом запросе поиска выделяются следующие компоненты:

а) значение параметра, с которым осуществляется сравнение,

б) тип сравнения;

в) нуль, одно или несколько значений, выделяемых из содержания экземпляра ресурса.

Например, поиск экземпляров ресурса Patient с параметром запроса given=value представляет собой запрос к серверу на сравнение значения имени пациента со значением параметра поиска value, используя сравнение строк по умолчанию.

Значения параметров поиска разбираются на компоненты в соответствии с типом параметра.

Способ сравнения определяется типом параметра поиска, модификатором или префиксом. Например, для параметра поиска типа number по умолчанию используется равенство, то есть «{значение элемента} равно {значение параметра поиска})». Модификатор изменяет способ сравнения, к примеру, модификатор not изменяет равенство на его отрицание, а именно, «не({значение элемента} равно {значение параметра поиска})». Наконец, префикс можно использовать для отношений типа «больше», то есть «{значение элемента} равно {значение параметра поиска})». В простом запросе не допускается указание модификатора одновременно с префиксом.

12.27.2 Совпадение и кратность

Многие элементы ресурсов определены как массивы (коллекции) значений. Например, у пациента может быть несколько имен или адресов. Совпадение значения параметра поиска с коллекцией значений считается успешным, если оно имеет место хотя бы с одним экземпляром в составе коллекции. Например, если экземпляр ресурса Patient содержит два экземпляра элемента name, то совпадение считается успешным, если значение параметра совпало хотя бы с одним из них.

12.27.3 Совпадение и субэлементы

Если параметр поиска отображается на элемент с комплексным типом данных (то есть элемент содержит субэлементы), то по умолчанию сравнение значения параметра со значением этого элемента интерпретируется как сравнение с одним или несколькими значениями субэлементов соответствующего типа.

12.27.4 Соединение параметров поиска операторами И и ИЛИ

Параметры поиска могут соединяться операторами И и ИЛИ. Соединение ИЛИ означает объединение найденных множеств, соединение И — пересечение. Соединения осуществляются на уровне экземпляров ресурсов и порядок параметров поиска не имеет значения.

Если в запросе указаны несколько параметров поиска, то они используются для получения пересечения результатов поиска по отдельным параметрам, то есть соединяются с помощью оператора И. При этом параметр поиска с одним и тем же именем может быть указан более одного раза.

310

ПНСТ 995—2024

Для объединения найденных множеств, то есть соединения с помощью оператора ИЛИ, в параметре поиска следует указать список значений, разделенных запятыми (,). Каждое значение в этом списке может иметь собственный префикс. Например, по запросу

GET [base]/0bservation?code=http://loinc.org|8867-4&value-quantity=lt60,gt100

должны быть возвращены результаты измерений частоты сердечных сокращений (код 8867-4 в системе кодирования LOINC), которые имеют значения ниже 60 или выше 100, то есть за пределами нормы для взрослого человека.

Если к параметру поиска применен модификатор, то его действие распространяется на все значения в списке. Например, по запросу

GET [base]/Patient?given:exact=Mиxaил,Пeтp

должны быть возвращены экземпляры ресурса Patient, у которых хотя бы один экземпляр элемента given в точности равен «Михаил» или «Петр». В отсутствии модификатора могут быть возвращены также экземпляры ресурса Patient, у которых второй экземпляр элемента given, в котором передается отчество или второе имя, имеет значение «Петрович».

В одном запросе могут быть указаны соединения параметров поиска как с операторами И, так и операторами ИЛИ. Но при этом отсутствует стандартная возможность соединения разноименных параметров поиска с помощью ИЛИ. Для объединения результатов запросов по разноименным параметрам можно выполнить последовательность запросов или передать несколько запросов в одном контейнере пакета Bundle, у которого элемент type имеет значение batch.

12.27.5 Поиск по идентификаторам

12.27.5.1 Общие требования

Ресурс может иметь идентификаторы нескольких типов: логический идентификатор id типа id, бизнес-идентификаторы типа Identifier или канонический uri типа canonical. Особенности поиск по идентификаторам этих типов представлены в следующих подпунктах.

12.27.5.2 Логические идентификаторы

Логический идентификатор id экземпляра ресурса служит уникальным ключом этого экземпляра в конкретном контексте (в хранилище экземпляров ресурсов данного типа на сервере, внутри контейнера Bundle). Для поиска по логическому идентификатору используется параметр поиска _id.

Поскольку логический идентификатор уникален в контексте поиска, то поиск по нему всегда возвращает нуль или один экземпляр ресурса. Это функционально эквивалентно простой операции чтения со следующими отличиями:

а) если экземпляр ресурса с таким логическим идентификатором существует и может быть возвращен, то результатом запроса будет не сам экземпляр, а контейнер результатов поиска Bundle, в который вложен этот экземпляр;

б) если экземпляр ресурса с таким логическим идентификатором не существует или не может быть возвращен, то результатом поиска также будет контейнер результатов поиска Bundle, в который может быть вложен экземпляр ресурса OperationOutcome с описанием причины отсутствия результата;

в) в контейнере результатов поиска Bundle могут быть возвращены дополнительные ссылочные экземпляры ресурсов;

г) поиск может быть ограничен дополнительными параметрами.

12.27.5.3 Идентификаторы типа Identifier и ссылки типа Reference

Обычно в составе ресурса присутствует единственный элемент identifier типа Identifier с кратностью 0..*. Для таких типов ресурса определен одноименный параметр поиска identifier типа token.

В ссылках типа Reference на экземпляр ресурса нередко присутствует компонент identifier со значением идентификатора ссылочного ресурса. Если для такой ссылки определен параметр поиска, то можно осуществить поиск по значению этого компонента, используя модификатор identifier. Например, по запросу

GET [base]/Patient?general-practitioner:identifier=urn:oid: 1.2.643.100.3| 12345678901

должны быть найдены все пациенты участкового врача со СНИЛС 12345678901.

12.27.5.4 Канонические идентификаторы типа canonical

Ресурсы, называемые каноническими, например, CodeSystem (система кодирования) и ValueSet (набор значений), имеют особую (каноническую) схему идентификации, дополняющую логический идентификатор id и бизнес-идентификаторы identifier. В их структуре присутствуют следующие элементы:

a) uri типа uri — глобально уникальный идентификатор типа URI (URL или UUID); б) version типа string — бизнес-версия содержания.

311

ПНСТ 995—2024

В отличие от версии экземпляра ресурса meta.vesrionld, присваиваемой сервером автоматически при создании или изменении экземпляра, бизнес-версия присваивается издателем содержания экземпляра канонического ресурса. Рекомендуется использовать схему присваивания Semantic Versioning 2.0.0 (https://semver.org), согласно которой номер бизнес-версии состоит их трех номеров в формате Главный.Младший.Исправление, которые последовательно увеличиваются по следующим правилам:

а) главный номер увеличивается, если содержание стало обратно несовместимым;

б) младший номер увеличивается, если добавлена новая функциональность, но содержание осталось обратно совместимым;

в) номер исправления увеличивается при исправлении ошибок содержания, не влияющих на обратную совместимость.

Ссылка на экземпляр канонического ресурса имеет тип canonical, а не Reference. Ее значение имеет следующие форматы:

a) <url экземпляра>;

б) <url экземпляра>|<номер бизнес-версии>.

Первый формат означает ссылку на последнюю (текущую) бизнес-версию экземпляр канонического ресурса, второй — ссылку на экземпляр с заданной версией.

Параметры поиска по элементам типа canonical имеют тип reference.

12.27.6 Сцепленный поиск

Для уменьшения числа операций запроса ссылочные параметры могут быть «сцеплены» с помощью добавления имени параметра поиска целевого ресурса ссылки с использованием точки (,) в качестве разделителя. Это можно делать рекурсивно, следуя по логическому пути в графе связей экземпляров ресурсов. К примеру, для ресурса DiagnosticReport (протокол исследования) определен параметр поиска subject. Соответствующий ему элемент DiagnosticReport.subject обычно содержит ссылку на экземпляр ресурса Patient, при этом для ресурса Patient определен параметр поиска name, отображаемый на элемент Patient.name. Тогда по запросу

GET [base]/DiagnosticReport?subject.name=HBaH

должны быть возвращены все протоколы, в которых элемент name субъекта исследования содержит «иван» (с начала элемента либо его компонентов, без учета регистра). Поскольку элемент DiagnosticReport.subject может содержать ссылку на разные типы ресурсов, то можно ограничить сцепленный поиск ресурсом определенного типа. Например, по запросу

GET [base]/DiagnosticReport?subject:Patient.name= иван

должны быть возвращены все протоколы, в которых субъектом является пациент и элемент Patient.name субъекта исследования содержит «иван».

Несмотря на то, что в простых запросах разделитель & означает логическое И, его использование между сцепленными параметрами поиска означает логическое ИЛИ, то есть сцепленные параметры поиска применяются не последовательно, а параллельно. По запросу

GET [base]/DiagnosticReport?subject:Patient.name=HBaH&subject:Patient.bithday=1970

должны быть возвращены все протоколы исследований пациентов, в которых компоненты именования пациента начинаются с «иван», и все протоколы исследований пациентов с годом рождения 1970.

К параметрам, участвующим в сцеплении, не должны применяться модификаторы.

12.27.7 Обратное сцепление

Параметр _has предоставляет ограниченные возможности обратного сцепления, то есть поиска экземпляров ресурсов по свойствах экземпляров ресурсов, которые на них ссылаются. Например, по запросу

GET [base]/Patient?_has:Оbservation:patient:code=1234-5

должны быть возвращены экземпляры ресурса Patient, на которые есть ссылки из экземпляров ресурса Observation с кодом исследования 1234-5.

Значения параметра _has могут задаваться списком, означающим логическое ИЛИ (например, _has:Observation:patient:code=123,456). Параметр _has может быть указан несколько раз (к примеру, _has:Observation:patient:code=123&_has:Observation:patient:code=456). Хотя разделитель & означает логическое И, его использование между параметрами поиска _has означает логическое ИЛИ, то есть параметры _has применяются не последовательно, а параллельно.

Параметры _has могут быть вложенными. Например, по запросу

GET [base]/Patient?_has:Observation:patient:_has:AuditEvent:entity:agent=Userld

312

ПНСТ 995—2024

должны быть возвращены экземпляры ресурса Patient, на которые есть ссылки из экземпляров ресурса Observation, являющихся целями ссылок из экземпляров ресурса AuditEvent (регистрируемое событие), у которых элемент agent (участник события) имеет идентификатор Userid.

Параметр _has может использоваться внутри сцепления. По запросу

GET [base]/Encounter?patient._has:Group:member:_id=102

должны быть возвращены экземпляры ресурса Encounter (случай медицинской помощи), относящиеся к пациентам, входящим в группу с идентификатором 102.

К параметрам, участвующим в обратном сцеплении, не должны применяться модификаторы.

12.28 Обработка ошибок

Если сервер не в состоянии выполнить запрос, он может возвратить код статуса HTTP, идентифицирующий ошибку, или может возвратить код статуса HTTP 200 ОК и контейнер результата запроса Bundle, в который вложен экземпляр ресурса OperationOutcome, содержащий сведения об ошибке. Код статуса HTTP 403 Forbidden означает, что сервер отказывается выполнить запрос, а другие коды 4хх или коды 5хх означают наличие ошибки какого-либо рода. Если запрос не выполнен, сервер по возможности должен возвратить экземпляр ресурса OperationOutcome, детализирующий причину. Пустой результат запроса ошибкой не является.

12.29 Неподдерживаемые параметры

Сервер может получить запрос с параметрами, которые он не распознает или не поддерживает (вообще или в данном запросе). В общем случае сервер по возможности должен игнорировать неизвестные или неподдерживаемые параметры, поскольку различные компоненты стека HTTP и прокси могут добавить к запросу параметры, которые клиент не в состоянии контролировать. Клиент может определить фактически примененные параметры, анализируя компонент url элемента link контейнера результата запроса Bundle, у которого компонент relation имеет значение self.

Клиент может указать серверу вариант обработки таких параметров с помощью заголовка HTTP Prefer:

a) Prefer: handling=strict означает требование возвращения ошибки при получении неизвестного или неподдерживаемого параметра;

б) Prefer: handling=lenient означает требование игнорирования неизвестного или неподдерживаемого параметра.

Сервер по возможности должен выполнить такое требования, не обязан это делать.

12.30 Стандартные параметры

Для всех типов ресурсов определены стандартные параметры поиска, приведенные в таблице 366.

Таблица 366 — Стандартные параметры поиска

Имя

Тип

Описание

Путь

_content

string

Текстовый поиск по всему содержанию экземпляра ресурса

_filter

special

Параметр, предоставляющий более содержательную грамматику поиска

_has

special

Ограниченная поддержка обратного сцепленного поиска

Jd

token

Логический идентификатор ресурса id (не полный URL)

Resource.id

Jn

reference

Принадлежность к группе, представленной экземпляром ресурса Group, List или CareTeam

Resource.id

Janguage

token

Основной язык содержания экземпляра ресурса

Resource.language

313

ПНСТ 995—2024

Окончание таблицы 366

Имя

Тип

Описание

Путь

JastUpdated

date

Дата и время последнего изменения содержания экземпляра ресурса

Resource.meta.lastUpdated

Jist

string

Все экземпляры ресурсов, идентификаторы id которых перечислены в данном списке

_profile

reference

Поиск экземпляров ресурсов с данным значением профиля meta, profile

Resource.meta.profile

_query

string

Пользовательский именованный запрос

_security

token

Поиск по значению категории доступа meta.security

Resource.meta.security

_source

uri

Поиск по источнику содержания экземпляра ресурса meta.source

Resource.meta.source

Jag

token

Поиск по тегу метаданных meta.tag

Resource.meta.tag

Jext

string

Текстовый поиск по повествовательному содержанию экземпляра ресурса

12.31 Управление результатами запроса

12.31.1 Общие требования

Для управления результатами запроса на поиск экземпляров ресурса используются параметры, перечисленные в таблице 367.

Таблица 367 — Параметры управления результатами поиска

Имя

Тип

Описание

Допустимое значение

_count

number

Число экземпляров ресурсов на одной странице (при постраничном выводе результатов запроса)

Неотрицательное целое число

_elements

token

Список элементов ресурса, которые должны быть возвращены в теле ответа. Обязательные элементы возвращаются, даже если не указаны в этом перечислении

Jnclude

string

Включение в результат поиска ссылочных экземпляров

SourceType:searchPar am(:targetType)

_maxresults

number

Максимальное число возвращаемых результатов поиска

Неотрицательное целое число

_offset

number

Число пропускаемых экземпляров ресурса (при постраничном выводе результатов запроса)

Неотрицательное целое число

_revinclude

string

Включение в результат поиска экземпляров ресурсов, содержащих ссылки на найденные экземпляры

SourceType:searchParam(:targ etType)

_score

token

Добавление оценки релевантности запросу

true | false

314

Окончание таблицы 367

ПНСТ 995—2024

Имя

Тип

Описание

Допустимое значение

_sort

string

Сортировка результатов поиска

Имя параметра поиска, допустимого для данного ресурса. Для сортировки по убыванию перед именем параметра должен быть указан знак минуса (-)

_summary

string

Возвращение элементов краткого содержания (для ресурсов, где они определены)

true | false (по умолчанию) text | data | count

Jotal

token

Точность подсчета общего числа результатов поиска

none | estimate | accurate

За исключением параметров Jnclude и _revinclude, параметры управления результатами поиска должны присутствовать в единственном экземпляре. Сервер может управлять результатами поиска в соответствии с первым экземпляром параметра или выдать сообщение об ошибке.

12.31.2 Параметр sort (сортировка)

Параметр _sort задает сортировку найденных экземпляров ресурса внутри контейнера Bundle. Его значение представляет собой список параметров поиска, по которым должна выполняться сортировка. Параметры перечисляются через запятую в порядке уровня сортировки. Например, по запросу

GET [base]/Observation?_sort=status,-date,category

должен быть возвращен контейнер результатов запроса Bundle, в котором найденные экземпляры ресурса Observation отсортированы в порядке возрастания статуса (лексикографически), затем в порядке убывания даты исследования, затем по категории исследования. Префикс '-' перед именем параметра поиска означает сортировку по убыванию.

Сортировка по параметрам поиска типа string по возможности должна выполняться без учета регистра.

В тех случаях, когда указана сортировка по параметру поиска типа date, отображаемому на элемент комплексного типа (например, Period), способ сортировки оставляется на усмотрение сервера. Например, сортировка может осуществляться по началу периода, указанному в компоненте start.

12.31.3 Параметр Jotal (общее число найденных экземпляров ресурса)

Общее число найденных экземпляров ресурса может возвращаться в элементе total контейнера результатов запроса Bundle. В это число не входят экземпляры добавленных ссылочных ресурсов.

Подсчет точного числа найденных экземпляров ресурса может создавать существенную нагрузку для сервера. Для управления подсчетом клиент может указать в запросе параметр Jotal, допустимые значения которого перечислены в таблице 368.

Таблица 368 — Допустимые значения параметра Jotal

Значение

Описание

none

Подсчет найденных экземпляров ресурса не требуется

estimate

Достаточна грубая оценка числа найденных экземпляров ресурса

accurate

Требуется точное число найденных экземпляров ресурса

Сервер может игнорировать параметр Jotal или какие-либо из его значений.

12.31.4 Параметры _count (размер страницы вывода) и _offset (смещение от начала вывода)

Использование параметров _count и _offset для управления постраничным выводом результатов запроса описано в подразделе 12.22.

Для возвращения наиболее позднего экземпляра ресурса, удовлетворяющего заданным критериям, может использоваться сочетание параметров _sort и _count. Для этого в запросе поиска по этим критериям можно задать сортировку по дате изменения в порядке обратной хронологии и указать _count=1.

315

ПНСТ 995—2024

12.31.5 Параметр _maxresults (максимальное число возвращаемых результатов поиска)

Параметр _maxresults задает максимальное число возвращаемых результатов поиска. Если сервер поддерживает применение этого параметра, то он должен возвратить его в компоненте url элемента link контейнера результатов поиска Bundle, у которого компонент relation имеет значение self.

Значение параметра _maxresults не оказывает никакого влияния на значение элемента Bundle, total, поскольку этот элемент содержит общее число экземпляров ресурса, удовлетворяющих критериям поиска.

Использование параметра _maxresults не отменяет постраничный вывод. Например, в запросе можно указать _maxresults=10&_count=5 для ограничения вывода до двух страниц по пять результатов на каждой.

12.31.6 Параметр summary (возвращение элементов краткого содержания)

Параметр _summary задает подмножество элементов ресурса, которые должны быть возвращены в контейнере результатов поиска Bundle. Допустимые значения параметра _summary приведены в таблице 369.

Таблица 369 — Допустимые значения параметра _summary

Значение

Описание

true

Возвращение подмножества элементов, помеченных как summary в определении ресурса (см. описание элемента ElementDefinition.isSummary в таблице 126)

text

Возвращение только человеко-читаемого значения элемента text, логического идентификатора id, метаданных meta и обязательных элементов верхнего уровня

data

Возвращение всего содержания, кроме элемента text

count

Возвращение только общего числа найденных экземпляров ресурса

false

Возвращение всех элементов экземпляров ресурса

Сервер не обязан возвращать результаты в соответствии с заданным значением параметра _ summary. Следует иметь в виду, что сокращенное содержание экземпляра ресурса может быть не пригодно для использования во взаимодействии изменения update. Сервер по возможности должен передать элемент meta.tag со значением SUBSETTED в качестве признака сокращенного содержания.

Поскольку для интерпретации результатов поиска важно знать фактически примененные параметры, то независимо от значения параметра _summary в контейнере результатов поиска Bundle должен быть возвращен элемент link, у которого компонент relation имеет значение self.

Параметры Jnclude и _revinclude не могут быть указаны, если _summary=text.

12.31.7 Параметр _score (добавление оценки релевантности запросу)

Параметр _score используется для добавления оценки релевантности запросу при недетерминированном поиске. Допустимые значения параметра _score приведены в таблице 370.

Таблица 370 — Допустимые значения параметра _score

Значение

Описание

true

Добавлять оценку релевантности запросу

false

Не добавлять оценку релевантности запросу (по умолчанию)

Пример оценки релевантности запросу приведен в подразделе 12.32.

12.31.8 Параметр _elements (вывод заданных элементов ресурса)

В параметре _elements перечисляются имена верхнеуровневых элементов ресурса, которые должны быть возвращены в теле ответа. Каждое имя должно быть базовым, без указания признака варианта типа данных [х]. Например, имя value допустимо, а имена value[x] и valueQuantity — нет.

Сервер по возможности должен возвратить запрошенные элементы содержания, логический идентификатор id, а также обязательные элементы, отсутствующие в списке, и элемент meta.tag со значением SUBSETTED в качестве признака сокращенного содержания.

316

ПНСТ 995—2024

Если элементы, перечисленные в значении параметра _elements, имеют префикс типа ресурса, например, _elements=Patient.gender, то сервер по возможности должен распространить ограничение на возвращаемые элементы на все экземпляры ресурсов, вложенные в контейнер результата поиска Bundle, в том числе на включенные ссылочные экземпляры.

12.31.9 Параметры _include и _revinclude (включение ссылочных экземпляров ресурсов)

Наряду с экземплярами ресурса, удовлетворяющими критериям поиска, в результат поиска могут быть включены ссылочные экземпляры ресурсов. Например, в дополнение к найденным экземплярам ресурса Observation, содержащим результаты исследований, в результат поиска могут быть включены экземпляры ресурса Patient, идентифицирующие субъектов этих исследований.

Параметр Jnclude используется для включения экземпляров ресурсов по ссылкам, содержащимся в найденных экземплярах (прямые ссылки). Параметр _revinclude используется для включения экземпляров ресурсов, ссылающихся на найденные экземпляры (обратные ссылки).

Значение этих параметров состоят из двух или трех компонентов, разделенных двоеточием (:).

Linclude|_revinclude]=[pecypc]:rfle [ресурс] — тип ресурса, а символ * (звездочка) указывает все параметры поиска типа reference, поддерживаемые сервером для этого типа ресурса и параметров Jnclude или _revinclude. Список этих параметров может не совпадать с общим списком параметров типа reference, поддерживаемые сервером для этого типа ресурса.

[_include|_revinclude]=[pecypc]:[napaMeTp]

где [ресурс] — тип ресурса, а [параметр] — параметр поиска типа reference.

|_include|_revinclude]= [ресурс]:[параметр]:[целевой тип]

где [ресурс] — тип ресурса, [параметр] — параметр поиска типа reference, а [целевой тип] — целевой тип ресурса.

Параметры Jnclude и _revinclude не могут иметь список значений, но могут повторяться с разными значениями в одном запросе поиска.

Добавленный экземпляр ресурса содержится в отдельной записи entry контейнера результата поиска Bundle. При этом элемент entry.search.mode имеет значение include, чтобы отличить добавленный экземпляр от найденного.

Для добавления ссылочных экземпляров ресурсов к уже добавленным экземплярам используется дополнительный параметр Jnclude или _revinclude с модификатором iterate.

Например, по запросу

GET [base]/DiagnosticReport?Jnclude=DiagnosticReport:result&_include:iterate=Observation:enc ounter

должны быть возвращены найденные экземпляры ресурса DiagnosticReport, экземпляры ресурса Observation, на которые ссылаются элементы DiagnosticReport.result, и экземпляры ресурса Encounter, на которые ссылаются элементы Observation.encounter добавленных экземпляров ресурса Observation. (В данном случае имена параметров поиска, указанных в параметрах Jnclude, совпадают с именами соответствующих им элементов.)

Возможность использования модификатора iterate и предельная глубина вложенности параметров Jnclude или _revinclude определяется сервером для каждого типа ресурса.

12.32 Соответствие результата запросу

Если поиск не является детерминированным, то алгоритм поиска может генерировать показатель соответствия найденного экземпляра ресурса критериям поиска. Эта оценка возвращается в элементе entry.score, например: "entry": {

"score": 0.45,

"resource": {

"resourceType": "Patient",

... patient data ...

}

}

Оценка представляет собой десятичное число между 0 и 1, где 1 — точное соответствие, а 0 — отсутствие соответствия.

317

ПНСТ 995—2024

12.33 Именованный поиск

Параметр _query идентифицирует именованную операцию, реализующую особую логику поиска. Для нее могут быть определены дополнительные параметры.

Именованные запросы разрешены в контексте системы или типа ресурса. Они не могут быть определены на уровне экземпляра ресурса.

При использовании именованного запроса по возможности должны быть доступны все стандартные параметры поиска, описанные в подразделе 12.30. Если именованный запрос определен для типа ресурса, то по возможности должны быть доступны специальные параметры поиска, определенные для этого типа.

Для определения именованного запроса используется экземпляр ресурса OperationDefinition, например:

<?xml version="l. 0" encoding="UTF-8"?>

<OperationDefinition xmlns="http://h!7.org/fhir">

<!-- Определение именованного запроса current-high-risk -->

<id value="current-high-risk" />

<url value="http://example.org/OperationDefinition/current-high-risk" /> <version value="0.0.1" />

<name уа1ие="Пациенты палат интенсивной терапии" />

<status value="draft" />

<kind value="query" />

<description value=»noncK пациентов по палатам интенсивной терапии» />

<code value="current-high-risk" />

<resource value="Patient" />

<system value="false" />

<type value="true" />

<instance value="false" />

<!-- Входной параметр -->

<parameter>

<name value="ward" />

<use value="in" />

<min value="0" />

<max value="*" />

<documentation value="Идeнтификaтop палаты интенсивной терапии" />

<type value="string" />

<searchType value="reference" />

</parameter>

<!-- Выходной параметр -->

<parameter>

<name value="return" />

<use value="out" />

<min value="l" />

<max value="l" />

<documentation value="Koнтeйнep результатов поиска" />

<type value="Bundle" />

</parameter>

</Ope rat i onDe f ini t i on>

Варианты вызова именованного запроса current-high-risk приведены в таблице 371.

Таблица 371 — Варианты вызова именованного запроса current-high-risk

Запрос

Описание

GET [base]/Patient?_query=current-high-risk

Запрос без дополнительных параметров

GET [base]/Patient?_query=cur-

rent-high-risk&ward=Location/A1

Запрос с параметром ward, содержащим ссылку на палату интенсивной терапии, идентифицируемую экземпляром ресурса Location/A1

318

Окончание таблицы 371

ПНСТ 995—2024

Запрос

Описание

GET [base]/Patient?_query=cur-rent-high-risk&birthdate=ge1970-01 -1

Запрос без параметра ward, но с дополнительным параметром birthdate (дата рождения), определенным для ресурса Patient. Сервер по возможности должен применять параметры, определенные для типа соответствующего типа ресурса, но может их игнорировать

GET [base]/Patient?_que-ry=current-high-risk&birth-date=ge1970-01-01 &ward=Location/A1

Запрос с параметром ward и дополнительным параметром birthdate, определенным для ресурса Patient. Параметры запроса не являются упорядоченными, поэтому параметр ward может быть указан в любом месте строки параметров поиска

12.34 Актуальность результатов запроса

Результаты операции поиска актуальны только на момент ее выполнения. Это особенно важно иметь в виду при постраничном выводе результатов, если каждая страница формируется в момент ее запроса, а не заранее.

12.35 Отображение типов данных на типы параметров

Отображение типов данных на типы параметров приведено в таблице 372.

Таблица 372 — Отображение типов данных на типы параметров

Тип данных

Тип параметра

number

date

reference

quantity

uri

string

token

Простые типы

base64Binary

He используется при поиске

boolean

Нет

Нет

Нет

Нет

Нет

Нет

Да, допустимые значения true|false)

canonical

Нет

Нет

Да

Нет

Да

Нет

Да

code

Нет

Нет

Нет

Нет

Нет

Нет

Да

date

Нет

Да

Нет

Нет

Нет

Нет

Нет

dateTime

Нет

Да

Нет

Нет

Нет

Нет

Нет

decimal

Да

Нет

Нет

Нет

Нет

Нет

Нет

id

Нет

Нет

Нет

Нет

Нет

Нет

Да

instant

Нет

Да

Нет

Нет

Нет

Нет

Нет

integer

Нет

Нет

Нет

Нет

Нет

Нет

Нет

markdown

Не используется при поиске

oid

См. тип данных uri

positivelnt

См. тип данных integer

string

Нет

Нет

Нет

Нет

Нет

Да

Да

time

Не используется при поиске

unsignedlnt

См. тип данных integer

uri

Нет

Нет

Да

Нет

Да

Нет

Нет

uri

См. тип данных uri

319

ПНСТ 995—2024

Окончание таблицы 372

Тип данных

Тип параметра

number

date

reference

quantity

uri

string

token

uuid

См. тип данных uri

Комплексные типы

Address

Нет

Нет

Нет

Нет

Нет

Да (поиск по строковым компонентам адреса)

Нет

Age

Нет

Нет

Нет

Да

Нет

Нет

Нет

Annotation

He используется при поиске

Attachment

Не используется при поиске

CodeableConcept

Нет

Нет

Нет

Нет

Нет

Нет

Да

CodeableReference

Не используется при поиске

Coding

Нет

Нет

Нет

Нет

Нет

Нет

Да

Count

Не используется при поиске

ContactPoint

Нет

Нет

Нет

Нет

Нет

Нет

Да

Distance

Не используется при поиске

Duration

Нет

Нет

Нет

Да

Нет

Нет

Нет

HumanName

Нет

Нет

Нет

Нет

Нет

Да (поиск по строковым компонентам именования)

Нет

Identifier

Нет

Нет

Нет

Нет

Нет

Нет

Да

Money

Нет

Нет

Нет

Да

Нет

Нет

Нет

Period

Нет

Да

Нет

Нет

Нет

Нет

Нет

Quantity

Нет

Нет

Нет

Да

Нет

Нет

Нет

Range

Нет

Нет

Нет

Да

Нет

Нет

Нет

Ratio

Не используется при поиске

Reference

Нет

Нет

Да

Нет

Нет

Нет

Нет

SampledData

Не используется при поиске

Signature

Не используется при поиске

Timing

Нет

Да

Нет

Нет

Нет

Нет

Нет

12.36 Транзакции

Несколько запросов поиска может быть передано в одном контейнере пакета или транзакции Bundle. Каждый запрос должен выполняться независимо от другого. Ответы на запросы возвращаются

320

ПНСТ 995—2024

в контейнере результата пакета или транзакции Bundle. При успешном выполнении всех запросов поиска контейнер результата пакета или транзакции должен иметь структуру, показанную на рисунке 83.

Рисунок 83 — Структура контейнера результата пакета или транзакции запросов поиска

Если при выполнении какого-либо запроса поиска возникла ошибка, то вместо контейнера результата транзакции должен быть возвращен экземпляр ресурса OperationOutcome с описанием ошибки, а в контейнере результатов пакета экземпляр ресурса OperationOutcome должен быть возвращен вместо соответствующего контейнера результата поиска Bundle.

12.37 Сообщения с запросами поиска

Для передачи запроса поиска в сообщении должен использоваться экземпляр Parameters, у которого элемент name имеет значение url, а элемент valuestring содержит часть строки поиска после базового URL (включая знак вопроса). Элемент event заголовка сообщения должен иметь значение search-type, если поиск осуществляется в контексте типа ресурса, или search-system, если поиск осуществляется в контексте системы.

Ответное сообщение может содержать контейнер результатов поиска Bundle или экземпляр ресурса Binary, содержащий двоичное представление результата поиска в ином формате, например, файл формата CSV, упакованный в архив ZIP.

13 Операции

13.1 Общие требования

В REST API определен общий набор взаимодействий (чтение, изменение, поиск и т.д.), обеспечиваемых сервисом хранения и обработки результатов измерений или иным сервером. Они следуют парадигме REST по управлению состоянием с помощью действий Create (создать)/Реаб (читать)/ Update (H3MeHHTb)/Delete (удалить), совершаемых над совокупностью идентифицированных экземпляров ресурсов. Хотя во многих случаях этого достаточно, существует определенная функциональность, которая более эффективно реализуется с помощью парадигмы, подобной RPC (Remote Procedure Call — удаленный вызов процедуры), согласно которой выполняются (Execute) именованные операции с входными и выходными параметрами,

Операции предпочтительны в следующих случаях:

а) требуется не просто возвращать существующую информацию, но еще и активно формировать возвращаемый контент;

321

ПНСТ 995—2024

б) необходимо инициировать побочное действие, например, автоматически создать экземпляр ресурса уведомлений при получении результата измерений, выходящего за заданные границы, или выполнить иные изменения, не укладывающиеся в рамки REST;

в) требуется применить форматно-логический контроль к нескольким экземплярам ресурсов разных типов;

г) необходимо выполнить скоординированные изменения нескольких экземпляров ресурсов (это можно сделать с помощью контейнеров Bundle типа transaction, но операции обеспечивают более гибкий подход).

Операции обладают следующими общими свойствами:

а) каждая операция имеет имя;

б) для каждой операции определены списки входных и выходных параметров;

в) параметрами могут служить экземпляры ресурсов, типизированные значения или параметры поиска;

г) к операциям предъявляются те же требования информационной безопасности, как и к REST API;

д) идентификаторы URI конечных точек операций основаны на существующей схеме адресации конечных точек REST API;

е) операции могут использовать все типы ресурсов, экземпляры которых содержатся в хранилище результатов измерений;

ж) операции могут применяться к экземпляру ресурса, к типу ресурса или ко всему хранилищу.

13.2 Выполнение операции

Для вызова операции используется адрес URL, произведенный от конечной точки сервера с помощью указания имени операции, которому предшествует знак доллара ('$'), например:

POST Ba3OBbM_URL/Observation/1/$everything

Если в определении операции элемент affectsState (воздействует на состояние) имеет значение false и все параметры операции имеют простые типы данных без расширений, то операцию можно вызвать и с помощью метода GET (или HEAD).

Операции могут вызываться для конечных точек следующих трех типов:

а) базовый URL-адрес сервера (например, http://localhost:8080). Такие операции манипулируют содержанием базы данных сервера, например, «получить все расширения, которыми может оперировать данный сервер»;

б) URL типа ресурса (например, (http://localhost:8080/0bservation). Такие операции манипулируют экземплярами ресурсов данного типа;

в) URL экземпляра ресурса (например, (http://localhost:8080/0bservation/1). Такие операции манипулируют конкретным экземпляром ресурса.

Тело вызова операции содержит экземпляр специального ресурса Parameters, представляющий коллекцию именованных параметров в форме <ключ, значение>, где значение может иметь простой или комплексный тип данных либо представлять собой экземпляр ресурса. Значения могут также представлять собой строки в формате параметров поиска.

По завершению операции возвращается код статуса HTTP, характеризующий результат ее выполнения, и может возвратиться другой экземпляр ресурса Parameters, содержащий один или несколько выходных параметров. Если определен единственный выходной параметр с именем return и максимального кратностью 1, и его типом является ресурс, то результатом операции должен быть экземпляр этого ресурса, без вложения в экземпляр ресурса Parameters. Если выходные параметры отсутствуют, то возвращается пустое тело ответа.

Таким образом, операция получает на вход коллекцию из нуля или нескольких параметров и возвращает коллекцию из нуля или нескольких параметров результата вызова. Тело метода POST и возвращаемого результата (при наличии) всегда является экземпляром ресурса.

Для вызова операция может использоваться метод GET с параметрами в адресной строке, если выполнены следующие условия:

а) все входные параметры являются простыми (то есть их значения не имеют комплексные типы данных наподобие Identifier или Reference;

б) операция не воздействует на состояние сервера.

322

ПНСТ 995—2024

Если тело ответа является экземпляром ресурса Bundle, не имеющим семантику результата поиска, то элемент Bundle.type должен иметь значение collection и может содержать ссылки на страницы результата.

13.3 Операции без параметров

Если операция не имеет входных параметров и не воздействует на состояние сервера, то она может быть вызвана с помощью метода GET, например:

GET [Ba3OBbM_URL]/Observation/1/$meta.

Если операция без входных параметров воздействует на состояние сервера, то она должна быть вызвана с помощью метода POST. В этом случае экземпляр ресурса Parameters не передается, поскольку он не может быть пустым. Поэтому при вызове такой операции следует указать, что тело отсутствует, например:

POST [Ba3OBb^_URL]/Observation/1 /$meta

Content-Length: 0.

13.4 Определение операции

Для каждой операция должна быть указана следующая информация:

а) уровень, на котором она вызывается — система, тип ресурса или экземпляр ресурса;

б)имя операции;

в) список параметров с их определениями.

Для каждого параметра необходимо указать следующую информацию:

а) имя параметра. Для удобства реализации имя должно быть валидным для наиболее распространенных языков программирования;

б) использование параметра — in (входной) | out (выходной) | both (входной и выходной) и его кратность;

в) тип значения параметра — тип данных или тип ресурса;

г) тип параметра поиска (не обязателен). Если параметр имеет строковое значение и используется как параметр поиска, то можно назначить ему один из типов number | date | string | token | reference | composite | quantity | uri | special и указать, какие модификаторы параметров поиска могут использоваться;

д) профиль (не обязателен) — экземпляр ресурса StructureDefinition, описывающий дополнительные ограничения, накладываемые на параметр. Может задаваться только в том случае, если значение параметра имеет тип данных или является экземпляром ресурса;

е) описание назначения параметра.

Параметры могут содержать вложенные компоненты. Для каждого компонента предоставляется та же информация, что и для параметра, кроме использования, которое наследуется от параметра, чьей частью является данный компонент.

Машинно-обрабатываемое описание операции представляет собой экземпляр ресурса Operation Definition.

13.5 Синхронное выполнение операции

13.5.1 Адрес конечной точки

Обычно операции выполняются синхронно: клиент отправляет серверу запрос на выполнение операции, содержащий ее входные параметры, а сервер возвращает выходные параметры результата выполнения операции.

Адрес URL конечной точки операции зависит от уровня ее выполнения:

а) система: [Базовый_иRL]/$[nMfl операции];

б) тип ресурса: [Базовый_иРЕ]/[тип ресурса]/$[имя операции];

в) экземпляр ресурса: [Базовый_иРЕ]/[тип ресурса]/[идентификатор экземпляра]/$[имя операции].

13.5.2 Запрос на выполнение операции

Обычно для вызова операции инициируется передача конечной точке операции запроса HTTP POST. Тело запроса содержит экземпляр ресурса Parameters, содержащий список именованных входных параметров. Если входной параметр имеет тип параметра поиска, то в имени параметра могут использоваться модификаторы (например, code:in).

К формату тела запроса операции предъявляются стандартные требования интерфейса REST.

323

ПНСТ 995—2024

Если элемент affectsState в определении операции имеет значение false и все параметры имеют простые типы данных без расширений, то операцию можно вызвать с помощью метода GET. При этом все значения параметров добавляются к URL в компоненте запроса (то есть после символа '?'), например:

GET [Ea3OBbM_URL]/ValueSet/$expand?url=http://hl7.org/fhir/ValueSet/body-site&filter=abdo.

Если параметр операции может повторяться, то при ее вызове с помощью HTTP GET имя параметра следует повторить для каждого его значения. Например, параметр resource (тип ресурса) операции $subset, применяемой к типу ресурса Capabilitystatement (объявление возможностей), имеет кратность 1..*. Тогда для получения подмножества объявления возможностей, включающего в себя сведения о типах ресурсов Person и Organization, следует сделать запрос

GET [Ea3OBbM_URL]/CapabilityStatement/$subset?resource=Person&resource=Organization.

Если при вызове операции задается ровно один входной параметр типа Resource (независимо от того, определены ли другие необязательные параметры), то операцию можно вызвать с помощью метода POST, указав входной экземпляр ресурса в теле запроса (при этом в URL не должно быть никаких параметров).

Сервер может поддерживать задание входных параметров, используя формат multi-part/form-data [40], что может оказаться полезным при отладке операций с использованием HTML-форм.

13.6 Результат выполнения операции

Если операция выполнена успешно, возвращается статус HTTP с кодом 2хх или 303 See Other. Другие значения кодов Зхх следует воспринимать, как признак ошибки выполнения операции и клиенту может потребоваться новый вызов, если он в состоянии обработать перенаправление (например, на страницу аутентификации). Коды статуса HTTP 4хх или 5хх означают ошибку и в этом случае должен быть возвращен экземпляр ресурса OperationOutcome с детальными сведениями об ошибке.

В общем случае результатом выполнения операции является экземпляр ресурса Parameters, содержащий один или несколько именованных выходных параметров.

В случае единственного выходного параметра типа Resource с именем return вместо экземпляра ресурса Parameters возвращается экземпляр ресурса другого типа.

Как и при других взаимодействиях, в заголовке Accept вызова операции может быть указан формат возвращаемого результата.

Сервер может сохранить экземпляр ресурса, возвращенный в качестве результата запроса. В этом случае экземпляр должен содержать элемент идентификатора id. Если возвращенный экземпляр ресурса не сохранен сервером, элемент id должен отсутствовать.

13.7 Асинхронное выполнение операции

13.7.1 Начальный запрос

При асинхронном выполнении начальный запрос операции передается так же, как при синхронном, только в нем должны быть указаны заголовок Accept, определяющий формат представления возвращаемых экземпляров ресурсов (application/xml или application/json), и заголовок Prefer со значением respond-async.

13.7.2 Успешный прием начального запроса

При успешном приеме начального запроса должен быть возвращен код статуса HTTP 202 Accepted и заголовок Location с абсолютным адресом URL конечной точки, которая должна опрашиваться для получения статуса и результата обработки запроса. В теле ответа может быть возвращен экземпляр ресурса OperationOutcome, содержащий какую-либо дополнительную информацию.

13.7.3 Ошибка приема начального запроса

При ошибке приема начального запроса (например, указан неподдерживаемый параметр поиска) должен быть возвращен код статуса HTTP 4ХХ или 5ХХ и экземпляр ресурса OperationOutcome с описанием ошибки.

13.7.4 Отмена начального запроса

После получения ответа об успешном приеме начального запроса клиент может отменить обработку запроса, передав запрос HTTP DELETE по адресу конечной точки, возвращенному в заголовке Location. Если после отмена начального запроса клиент направит на этот адрес новый запрос, то сервер должен возвратить код статуса HTTP 404 Not Found и экземпляр ресурса OperationOutcome с описанием ошибки.

324

ПНСТ 995—2024

Если запрос отмены обработан успешно, то сервер должен возвратить код статуса HTTP 202 Accepted и может возвратить в теле ответа экземпляр ресурса OperationOutcome, содержащий какую-либо дополнительную информацию. При ошибке обработки запроса отмены сервер должен возвратить код статуса HTTP 4ХХ или 5ХХ и может возвратить в теле ответа экземпляр ресурса OperationOutcome, содержащий информацию об ошибке.

13.7.5 Запрос статуса обработки

13.7.5.1 Общие требования

После получения ответа об успешном приеме начального запроса клиент может запросить статус обработки, передав запрос HTTP GET по адресу конечной точки, возвращенному в заголовке Location. Клиент должен придерживаться экспоненциального увеличения интервала между последовательными запросами статуса. Сервер может передать в заголовке Retry-After рекомендуемый интервал в секундах или рекомендуемые дату и время следующего запроса. Сервер по возможности должен вести статистику запросов статуса, получаемых от данного клиента, и при повышенной частоте запросов может в дополнение к заголовку Retry-After возвратить код статуса HTTP 429 Too Many Requests, а также экземпляр ресурса OperationOutcome, содержащий поясняющую информацию. При повторении частой передачи запроса статуса сервер может возвратить код статуса HTTP 429 Too Many Requests и отменить дальнейшую обработку начального запроса.

13.7.5.2 Ответ «в процессе»

Если обработка начального запроса продолжается, то сервер должен возвратить код статуса HTTP 202 Accepted и может возвратить заголовок X-Progress с текстовым описанием стадии обработки длиной до 100 символов, например, указать процент завершения обработки или более общий статус «в процессе».

13.7.5.3 Ответ «ошибка»

Если при обработке запроса статуса возникла ошибка, то сервер должен возвратить код статуса HTTP 4ХХ или 5ХХ и по возможности должен возвратить в теле ответа экземпляр ресурса OperationOutcome с описанием ошибки. Если ошибка возникла на инфраструктурном уровне и формирование экземпляра ресурса OperationOutcome не представляется возможным, то сервер может передать информацию об ошибке в ином формате и указать это формат в заголовке Content-Type.

Сервер не должен использовать такой ответ, если ошибка возникла не при обработке запроса статуса, а при обработке начального запроса. Код, возвращаемый в элементе OperationOutcome.issue, code, должен означать преходящую ошибку, означающий, что клиенту следует повторить запрос статуса позже.

13.7.5.4 Ответ «обработка завершена»

При завершении обработки начального запроса, даже в случае, если она была аварийно прекращена, сервер должен возвратить код статуса HTTP 200 ОК и экземпляр контейнера Bundle типа batchresponse. В элементе Bundle.entry[O].response по возможности должны быть возвращен код результата обработки и дополнительная информация, например, описании возникшей ошибки. В элементе Bundle. entry[O].resource может быть возвращен экземпляр ресурса, представляющий собой результат выполнения операции. Если в результате выполнения операции было создано, изменено или найдено несколько экземпляров ресурсов, то элемент Bundle.entry[O].resource может содержать контейнер Bundle соответствующего типа, в который вложены эти экземпляры.

13.8 Операции с системами кодирования

13.8.1 Операция $lookup

13.8.1.1 Общие сведения

Если на вход операции $lookup задана пара <система кодирования, код> или значение типа Coding, то операция возвратит детальные сведения о кодированном понятии, включая определение, статус, обозначения и свойства. Обязательными параметрами является или пара <система кодирования, код>, или значение типа Coding. Остальные параметры необязательны. Операция является идемпотентной. Ее параметры представлены в таблице 373.

325

ПНСТ 995—2024

Таблица 373 — Параметры операции $1оокир

Имя

Кратность

Тип данных

Описание

Входные параметры

code

0..1

code

Код, для которого требуется найти данные. Если код указан, обязательно должна быть указана система кодирования

system

0..1

uri

Система кодирования, из которой берется код. Если система кодирования указана, обязательно должен быть указан код

version

0..1

string

Версия системы кодирования, если она предусмотрена

property.

subproperty.code

1

code

Имя вложенного свойства

property

0..*

code

Имя свойства, значение которого должно быть возвращено в выходных параметрах. Если ни одно имя свойства не указано, сервер определяет список возвращаемых свойств по своему усмотрению.

Для всех систем кодирования определены следующие свойства:

uri (уникальный идентификатор);

name (имя);

version (версия);

display (значение для вывода);

definition (описание);

designation (обозначение);

parent (код родительского понятия);

child (код дочернего понятия).

Для обозначения designation указывается также язык обозначения).

Некоторые из свойств возвращаются на одном уровне с именем, а остальные (кроме языка обозначения) в группе элементов property

coding

0..1

Coding

Значение типа Coding, для которого требуется найти данные. Если оно указано, то параметры code и system должны отсутствовать

date

0..1

dateTime

Дата, на которую должна быть возвращены данные о кодированном понятии. Обычно данные ищутся на текущую дату, но иногда бывает важно знать, какими они были раньше

displayLanguage

0..1

code

Язык, на котором должны быть представлены данные

Выходные параметры

name

1

string

Наименование системы кодирования

version

0..1

string

Версия системы кодирования, для которой возвращены данные

display

1

string

Предпочтительное значение понятия для вывода

designation

0..*

Дополнительное обозначение понятия

designation, language

0..1

code

Язык обозначения

designation.use

0..1

Coding

Код, указывающий назначение обозначения

designation.value

1

string

Текстовое значение обозначения

326

Окончание таблицы 373

ПНСТ 995—2024

Имя

Кратность

Тип данных

Описание

property

0..*

Свойство, содержащее дополнительные данные о коде, включая статус

property.code

1

code

Имя свойства

property.value

0..1

code | Coding | string | integer | boolean | date-Time | decimal

Машиночитаемое значение свойства (например, code для свойства с кодированным значением)

property.

description

0..1

string

Человеко-читаемое значение свойства (например, display для свойства с кодированным значением)

property.

subproperty

0..*

Вложенное свойство (используется в основном для групп отношений в системе кодирования SNOMED СТ))

property.

subproperty.value

1

code | Coding | string | integer | boolean | date-Time | decimal

Машиночитаемое значение вложенного свойства (например, code для вложенного свойства с кодированным значением)

property, subproperty, description

0..1

string

Человеко-читаемое значение вложенного свойства (например, display для вложенного свойства с кодированным значением)

13.8.1.2 Примеры

Запрос на поиск данных о коде DSG из системы кодирования с uri = http://terminology.hl7.org/ CodeSystem/v2-0203:

https://hapi.fhir.org/baseR5/CodeSystem/$lookup?system=http://term inology.hl7.org/CodeSystem/v2-0203&code=DSG

Ответ (код найден):

HTTP 200 OK [заголовки]

"resourceType": "Parameters",

"parameter": [ {

"name": "name",

"valueString" : "Тип идентификатора"

"name": "version",

"valueString": "3.0.0"

"name": "display",

"valueString" : "Группа исследований"

"name": "abstract",

"valueBoolean": false

"name": "property",

"part": [ {

"name": "code",

"valueCode": "v2-concComment"

327

ПНСТ 995—2024

"name": "value", "valuestring": "Пример: группа лучевых исследований" } ] }, { "name": "property", "part": [ { "name": "code", "valueCode": "status" { "name": "value", "valuestring": "N" } ] } ] } Ответ: код не найден HTTP 404 Not Found [заголовки]

"resourceType": "OperationOutcome", "text": { "status": "generated",

"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\"><hl>Operation Outcome</hlxtable border=\"0\"xtrxtd style=\"font-weight: bold;\">ERROR</tdxtd> [ ] </tdxtd>HAPI-1738 : Unable to find code [null] in system [null ] </tdx/trx/table></div>" }, "issue": [ {

"severity": "error", "code": "processing", "diagnostics": "HAPI-1738: Unable to find code[null] in system[null]" } ] }

13.8.2 Операция $validate-code

13.8.2.1 Общие сведения

Операция $validate-code выполняет проверку принадлежности кода к системе кодирования. Если она вызывается на уровне системы или типа ресурса, то должен быть указан один из параметров url или codeSystem. Операция возвращает результат проверки (true/false), сообщение об ошибке и рекомендованное человеко-читаемое значение кода.

При вызове операции клиент должен предоставить один и только один параметр, задающий код (code+system, coding, or CodeableConcept). Другие параметры (включая версию version и человеко-читаемое значение кода display) не обязательны.

Варианты URL вызова:

[Ba3OBbM_URL]/CodeSystem/$validate-code

[Бaзoвый_URL]/CodeSystem/[идeнтификaтop]/$validate-code

Операция является идемпотентной. Ее параметры представлены в таблице 374.

Таблица 374 — Параметры операции $validate-code

Имя

Кратность

Тип данных

Описание

Входные параметры

url

0..1

uri

Канонический адрес URL системы кодирования

328

Окончание таблицы 374

ПНСТ 995—2024

Имя

Кратность

Тип данных

Описание

codeSystem

0..1

CodeSystem

Экземпляр системы кодирования, предоставленный как параметр операции

code

0..1

code

Код, требующий валидации

version

0..1

string

Версия системы кодирования, если она предусмотрена

display

0..1

string

Человеко-читаемое значение кода. Если параметр display указан, должен быть указан параметр code

coding

0..1

Coding

Значение типа Coding, требующее валидации. Его компонент system должен идентифицировать ту же систему кодирования, что и элемент uri

CodeableConcept

0..1

CodeableConcept

Значение типа CodeableConcept, требующее валидации. Сервер должен возвратить true, если хотя бы одно из кодируемых значений, указанных в компоненте coding, принадлежит системе кодирования, указанной в элементе uri

date

0..1

dateTime

Дата, на которую должен быть валидирован код. Обычно валидация осуществляется на текущую дату, но иногда бывает важно валидировать код по более раннему содержанию системы кодирования

abstract

0..1

boolean

Если этот параметр имеет значение true и валидация осуществляется для системы кодирования, в которой понятия имеют признак abstract, указывающий, может ли понятие быть выбрано пользователем, то сервер должен рассматривать эти понятия как действительные. Если этот параметр имеет значение true, то он должен их рассматривать как недействительные

display-Language

0..1

code

Язык представления человеко-читаемого представления кода (если требуется валидация свойства display)

Выходные параметры

result

1

boolean

Значение true, если кодируемое понятие успешно валидировано

message

0..1

string

Если result = false, то этот элемент описывает детали ошибки валидации. Если result = true, то в этом элементе могут быть переданы указания и предупреждения

display

0..1

string

Человеко-читаемое значения понятия, если требуется представить результат валидации пользователю

13.8.2.2 Валидация значения типа code

Запрос на валидацию кода DSG в системе кодирования с uri = http://terminology.hl7.org/CodeSystem/ V2-0203:

https://hapi.fhir.org/baseR5/CodeSystem/$validate-code?url=http://terminology. hl7.org/CodeSystem/v2-0203&code=DSG

Ответ (код валиден):

HTTP 200 ОК [заголовки] {

"resourceType": "Parameters",

"parameter": [ {

"name": "result", "valueBoolean": true }, {

329

ПНСТ 995—2024

"name": "display", "valueString" : "Группа исследований" } ] } Ответ (код не найден): HTTP 200 ОК [заголовки]

"resourceType": "Parameters", "parameter": [ { "name": "result", "valueBoolean": false "name": "message",

"valueString": "Unable to validate code http://terminology.hl7. org/CodeSystem/v2-0203#DSGl - Code is not found in CodeSystem: http:// terminology.hl7.org/CodeSystem/v2-0203" } ] }

Если в строке запроса указан дополнительный параметр display, например:

https://hapi.fhir.org/baseR5/CodeSystem/$validate-code?url=http://terminology. hl7.org/CodeSystem/v2-0203&code=DSG&display=Гpyппa%20иccлeдoвaний

то проверяется валидность пары <code, display>.

Если запрос неправилен, например, указан ошибочный параметр, то возвращается экземпляр ресурса OperationOutcome с сообщением об ошибке следующего вида: HTTP 400 Bad Request [заголовки]

"resourceType": "OperationOutcome", "text": { "status": "generated",

"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\"><hl>Operation Outcome</hlxtable border=\"0\"xtrxtd style=\"font-weight: bold;\">ERROR</tdxtd> [ ] </tdxtd>HAPI-0908 : Either CodeSystem ID or CodeSystem identifier must be provided. Unable to validate. </tdx/tr></ tablex/div>"

},

"issue": [ {

"severity": "error",

"code": "processing",

"diagnostics": "HAPI-0908: Either CodeSystem ID or CodeSystem identifier must be provided. Unable to validate." } ] }

13.8.2.3 Валидация значения типа Coding

Запрос на валидацию кода 85.1 в системе кодирования с url = https://rosstat.gov.ru/ opendata/7708234640-okved2:

POST localhost:8080/fhir/CodeSystem/$validate-code [другие заголовки]

"resourceType": "Parameters", "parameter": [

330

ПНСТ 995—2024

"name": "uri", "valueUri": "https://гоsstat.gov.ru/opendata/7708234 6 4 0 — о kved2" }, "name": "coding", "valueCoding": {

"system": "https://гоsstat.gov.ru/opendata/7 7 0 8234 64 0-okved2", «code»: «85.1», «display»: «Образование общее» } } ] } Ответ (код валиден): НТТР/1.1 200 ОК [другие заголовки] "resourceType": "Parameters", "parameter": [ { "name": "result", "valueBoolean": true "name": "display", "valueString": "Образование общее" } } Ответ (код не соответствует текстовому значению): НТТР/1.1 200 ОК [другие заголовки] { "resourceType": "Parameters", "parameter": [ { "name": "result", "valueBoolean": false }, { "name": "message", "valueString": "Unknown code {https://rosstat.gov.ru/opendata/7708234640-okved2}85.1 - Concept Display : Образование" } ] }

13.8.2.4 Валидация значения типа CodeableConcept

Запрос на валидацию значения типа CodeableConcept, содержащего коды Yes и Y в системе кодирования с uri = http://terminology.hl7.org/CodeSystem/v2-0532: POST localhost:8080/fhir/CodeSystem/$validate-code [заголовки] { "resourceType": "Parameters", "parameter": [

331

ПНСТ 995—2024

{ "name": "url", "valueUri": "http://terminology.hl7.org/CodeSystem/v2-0532"

"name": "CodeableConcept", "valueCodeableConcept": { "coding": [ { "code": "Yes", "display": "Да" { "code": "Y", "display": "Yes" } ] } } ]

Ответ (код валиден): HTTP/1.1 200 OK [ заголовки] { "resourceType": "Parameters", "parameter": [ { "name": "result", "valueBoolean": true }, { "name": "display", "valuestring": "Образование общее" } }

Примечание — Массив coding в теле запроса просматривается последовательно. Если первый элемент массива валиден, то другие не проверяются. Если первый элемент не принадлежит данной системе кодирования, то проверяется второй элемент и т. д.

Ответ (код не валиден): НТТР/1.1 200 ОК [заголовки] { "resourceType": "Parameters", "parameter": [ { "name": "result", "valueBoolean": false "name": "message", "valuestring": "Unknown code {https://rosstat.gov.ru/

332

ПНСТ 995—2024

opendata/7708234640-okved2}85.99 - Concept Display : Образование" } ]

}

Ответ (ошибка вызова):

НТТР/1.1 400 Bad Request [ заголовки] {

"resourceType": "OperationOutcome", "text": {

"status": "generated",

"div": "<div xmlns=\"http://www. w3 .org/1999/xhtml\"><hl>Operation Outcome</hlxtable border=\"0\"xtr><td style=\"font-weight: bold; \ ">ERROR</ tdxtd> [ ] </tdxtdxpre>Coding .system 'https://rosstat.gov.ru/ opendata/7708234640—оkved3' does not equal with CodeSystem.uri 'https://rosstat. gov.ru/opendata/7708234640-okved2'. Unable to validate.</prex/td>\n\t\t\t</tr>\ n\t\t</table>\n\t</div>" }, "issue": [ { "severity": "error", "code": "processing", "diagnostics": "Coding.system 'https://rosstat.gov.ru/

opendata/7708234640—оkved3' does not equal with CodeSystem.uri 'https://rosstat. gov.ru/opendata/7708234640-okved2'. Unable to validate." }

]

}

13.9 Операции с наборами значений

13.9.1 Операция $expand

13.9.1.1 Общие сведения

Операция $expand возвращает раскрытие набора значений, то есть список кодов, которые образуют набор значений в соответствии с его определением, заданным с помощью ресурса ValuSet. Если набор значений сохранен вместе с раскрытием, то она возвращает сохраненное раскрытие. Если набор значений сохранен без раскрытия, то она создает раскрытие динамически.

Если операция вызывается на уровне системы или типа ресурса, то должен быть задан один их входных параметров uri, context или valueSet. В ответ возвращается либо экземпляр ресурса ValueSet, описывающий раскрытие, либо экземпляр ресурса OperationOutcome, содержащий сообщение об ошибке.

Если набор значений сохранен вместе с раскрытием, то операция $expand является идемпотентной. Если раскрытие создается динамически, то при повторном вызове результат может измениться. Параметры операции $expand представлены в таблице 375.

Таблица 375 — Параметры операции $expand

Имя

Кратность

Тип данных

Описание

Входные параметры

uri

0..1

uri

Каноническая ссылка на набор значений

valueSet

0..1

ValueSet

Определение набора значений, включенное непосредственно в запрос

333

ПНСТ 995—2024

Продолжение таблицы 375

Имя Кратность Тип данных

Описание

valueSet- 0..1 string

Version

Версия набора значений, использованная при генерации раскрытия набора значений

context 0..1 uri

Контекст набора значений, то есть ссылка на определение элемента ресурса, содержащее привязку к набору значений. Ссылка должна иметь формат [URL экземпляра ресурса StructureDefinition>#<HMH элемента или путь к элементу>]

context- 0..1 code

Direction

Направление контекста. Допустимые значения: incoming (коды, которые клиент может отправлять серверу с помощью PUT/POST) | outgoing (коды, которые клиент может получать от сервера). В большинстве случаев эти наборы кодов совпадают, но иногда могут различаться

filter 0..1 string

Текстовый фильтр, применяемый к человеко-читаемым значениям кодов (передаваемым в элементе display) в целях ограничения числа возвращаемых кодов. Способ фильтрации определяется сервером, который может его документировать в элементе Terminologycapabilities.. expansion.textFilter. Типичными примерами фильтрации служат: - совпадение по началу значения

- использование заполнителей, например %, &, ?

filter 0..1 string

Текстовый фильтр, применяемый к человеко-читаемым значениям кодов (передаваемым в элементе display) в целях ограничения числа возвращаемых кодов. Способ фильтрации определяется сервером, который может его документировать в элементе Terminologycapabilities.. expansion.textFilter. Типичными примерами фильтрации служат: - совпадение по началу значения

- использование заполнителей, например %, &, ?

date 0..1 dateTime

Дата, по состоянию на которую должно быть выполнено раскрытие. Если дата указана, то сервер должен использовать определения набора значений и систем кодирования, имевшиеся на эту дату, либо возвратить ошибку, если это не представляется возможным. Обычно раскрытие осуществляется на текущую дату, но иногда требуется получить прошлое состояние набора значений. Трактовка этой даты зависит от реализации

offset 0..1 integer

Поддержка постраничного вывода — с какого места списка значений следует начать вывод (по умолчанию — 0). Место идентифицирует порядковый номер значения (с базой 0), а не номер страницы вывода

count 0..1 integer

Число кодов, выводимых на одной странице. Постраничный вывод применяется только к линейным наборам значений. Сервер игнорирует требование постраничного вывода, если набор значений не является линейным. Если count = 0, то это означает, что клиент запрашивает число элементов в раскрытии. В этом случае сервер по возможности должен возвратить размер и для иерархических наборов значений

include- 0..1 boolean

Designations

Признак включения обозначений (designation) в результат раскрытия набора значений

designation 0..* string

Строка в формате токена (system|code), задающая использование (use) или язык (language) обозначения, которое должно быть включено в результат раскрытия набора значений. Если язык не задан, то сервер возвращает обозначения по своему усмотрению

include- 0..1 boolean

Definition

Признак включения описания в результат раскрытия набора значений

334

Окончание таблицы 375

ПНСТ 995—2024

Имя

Кратность

Тип данных

Описание

activeOnly

0..1

boolean

Признак включения неактивных понятий в раскрытие набора значений. Если в определении набора значений указано, что неактивные понятия включены в него, то с помощью этого параметра можно исключить их из раскрытия. Но если в определении набора значений указано, что неактивные понятия исключены в него, то включить их в раскрытие с помощью этого параметра нельзя

exclude-Nested

0..1

boolean

Признак включения дочерних кодов (ValueSet.expansion.contains, contains) в раскрытие набора значений

exclude-

NotForUI

0..1

boolean

Признак, что раскрытый набор значений не используется в интерфейсе пользователя. Те наборы значений, что используются в интерфейсе пользователя, могут содержать «абстрактные» коды, которые помогают пользователю в навигации по иерархии кодируемых значений, но сами не могут быть выбраны пользователем. Наборы значений, не используемые в пользовательском интерфейсе, могут быть линейными, не содержащими «абстрактные» коды. Точная трактовка понятия «используется в пользовательском интерфейсе» зависит от системы кодирования и от того, какие коды включаются в набор значений

exclude-Post-Coordinated

0..1

boolean

Признак исключения пост-координируемых кодов из раскрытия набора значений

display-

Language

0..1

code

Код языка, на котором представляется человеко-читаемое значение (display) кода в раскрытии набора значений, то есть язык представления ValueSet.expansion.contains.display

exclude-system

0..*

canonical

Система кодирования или ее конкретная версия, исключаемая из раскрытия набора значений. Она задается по правилам канонического URL: [system]|[version]

systemversion

0..*

canonical

Версия системы кодирования, используемая при раскрытии набора значений (если версия не указана в определении набора значений) Она задается по правилам канонического URL: [system]|[version]

checksystemversion

0..*

canonical

Крайний случай: указывает версию системы кодирования, которую следует использовать. Если в определении набора значений указана другая версия, то вместо возвращения раскрытия должна генерироваться ошибка. Версия системы кодирования задается по правилам канонического URL: [system]|[version]

forcesystemversion

0..*

canonical

Крайний случай: указывает версию системы кодирования, которую следует использовать. Если в определении набора значений указана другая версия, то должна использоваться версия, указанная в этом параметре. Она задается по правилам канонического URL: [system]|[version]

Выходные параметры

return

1

ValueSet

Результат раскрытия набора значений. Сервер по возможности должен воспроизвести все входные параметры в списке элементов ValueSet.expansion.parameter list.

Поскольку это единственный выходной параметр, то он является экземпляром ресурса и поэтому имеет имя return

Возвращаемое раскрытие набора значений должно восприниматься как динамическое, которое может изменяться с течением времени (это зависит от того, как определен набор значений).

Если раскрытие слишком велико, то сервер может возвратить экземпляр ресурса OperationOutcome с кодом ошибки too-costly (слишком затратное). В этом случае клиент может запросить раскрытие набо-

335

ПНСТ 995—2024

ра значений по частям, указывая параметры offset и count. В отличие от запросов, где при постраничной выдаче указываются ссылки на другие страницы, сервер должен пропустить offset кодов и выдать следующие count кодов. Сервер не обязан поддерживать эти параметры, но если поддерживает, то должен обрабатывать оба этих параметра. К иерархическим раскрытиям эти параметры не применимы.

Если сервер не может правильно раскрыть набор значений, поскольку не имеет информации о содержании системы кодирования, указанной в определении набора значений, то он должен возвратить ошибку. Если набор значений не полон, поскольку включает в себя пост-координируемые коды, например, коды производных единиц измерения, то в раскрытие набора значений может быть включено расширение http://hl7.org/fhir/StructureDefinition/valueset-unclosed, указывающее, что раскрытие не является полным.

13.9.1.2 Примеры

Запрос на раскрытие набора значений с идентификатором 95507, применяя фильтр Ye:

http://hapi.fhir.org/baseR4/ValueSet/95507/$expand?filter=Ye

Запрос на раскрытие набора значений по его каноническому URL, применяя фильтр Ye:

http ://ha pi.fh ir. о rg/baseR4/ValueSet/$expand?url = http://term inology.hl7.org/ValueSet/ yndontknow&filter=Ye

Запрос на раскрытие набора значений, включенного в параметры запроса:

POST hapi.fhir.org/baseR5/ValueSet/$expand [заголовки]

"resourceType": "Parameters", "parameter": [ { "name": "valueSet", "resource": {

"resourceType": "ValueSet", "meta": { "versionld": "3"

"uri": "http://terminology.hl7.org/ValueSet/уesnodontknow", "status": "active", "compose": { "include": [ { "valueSet": [

"http://terminology.hl7,org/ValueSet/v2-0136" ]

{

"system": "http://terminology.hl7.org/CodeSystem/data-absent-reason", "concept": [ { "code": "asked—unknown", "display" : "Вопрос оставлен без ответа" } ] }

}

}

}

336

ПНСТ 995—2024

Результат запроса: HTTP 200 ОК [ заголовки]

"resourceType": "ValueSet", "id": "95507", "meta": { "extension": [ {

"uri": "http://hapifhir.io/fhir/StructureDefinition/valuesetexpansion-message ",

"valuestring": "ValueSet was expanded using an expansion that was pre-calculated at 2023-11-14T16:13:25.248+00:00 (00:50:52 ago)" } "versionld": "1" }/ "uri": "http://terminology.hl7.org/ValueSet/yndontknow", "status": "active", "compose": { "include": [ {

"valueSet": [ "http://terminology.hl7.org/ValueSet/v2-0136" ] {

"system": "http://terminology.hl7.оrg/CodeSystem/data-absent-reason" , "concept": [ { "code": "asked-unknown", "display" : "Вопрос оставлен без ответа" } ] } ]

"expansion": { "identifier": "59f11860-03f0-4ce4-8b7e-6349b7366190", "timestamp": "2023-11-14T17:04:17+00:00", "total": 1, "offset": 0, "parameter": [ { "name": "offset", "valuelnteger": 0 "name": "count", "valuelnteger": 1000 } ], "contains": [ { "system": "http://terminology.hl7.org/CodeSystem/v2-0532", "version": "2.1.0", "code": "Y", "display": "Yes" } ] }

337

ПНСТ 995—2024

13.9.2 Операция $validate-code

13.9.2.1 Общие сведения

Операция $validate-code выполняет проверку принадлежности кода к набору значений. Если она вызывается на уровне системы или типа ресурса, то должен быть указан один из параметров url, context или valueSet. Операция возвращает результат проверки (true/false), сообщение об ошибке и рекомендованное человеко-читаемое значение кода.

При вызове операции клиент ДОЛЖЕН предоставить один и только один параметр, задающий код (code+system, coding, or CodeableConcept). Другие параметры (включая версию version и человеко-читаемое значение кода display) не обязательны.

Варианты URL вызова:

[Ba3OBbM_URL]/ValueSet/$validate-code

[Ba3OBbM_URL]/ValueSet/[nfleHTH0HKaTop]/$validate-code

Операция не является идемпотентной, поскольку содержание набора значений может быть динамическим. Ее параметры представлены в таблице 376.

Таблица 376 — Параметры операции $validate-code

Имя

Кратность

Тип данных

Описание

Входные параметры

url

0..1

uri

Канонический адрес URL набора значений

context

0..1

uri

Контекст набора значений, то есть ссылка на определение элемента ресурса, содержащее привязку к набору значений. Ссылка должна иметь формат [URL экземпляра ресурса StructureDefinition>#<HMn элемента или путь к элементу>]

valueSet

0..1

ValueSet

Экземпляр набора значений, предоставленный как параметр операции

valueSet-

Version

0..1

string

Версия набора значений

code

0..1

code

Код, требующий валидации. Если он указан, то должны быть указаны либо система кодирования system, либо контекст context

system

0..1

uri

Система кодирования, которой принадлежит код

system-Version

0..1

string

Версия системы кодирования, если она предусмотрена

display

0..1

string

Человеко-читаемое значение кода. Если параметр display указан, должен быть указан параметр code. Если параметр display не указан, то сервер может возвратить рекомендуемое значение

coding

0..1

Coding

Значение типа Coding, требующее валидации

CodeableConcept

0..1

CodeableConcept

Значение типа CodeableConcept, требующее валидации. Сервер должен возвратить true, если хотя бы одно из кодируемых значений, указанных в компоненте coding, принадлежит набору значений

date

0..1

dateTime

Дата, на которую должен быть валидирован код. Обычно валидация осуществляется на текущую дату, но иногда бывает важно валидировать код по более раннему содержанию набора значений

abstract

0..1

boolean

Если этот параметр имеет значение true и валидация осуществляется для контекста, в котором понятия имеют признак abstract, указывающий, может ли понятие быть выбрано пользователем, то сервер должен рассматривать эти понятия как действительные. Если этот параметр имеет значение true, то он должен их рассматривать как недействительные

338

Окончание таблицы 376

ПНСТ 995—2024

Имя

Кратность

Тип данных

Описание

display-

Language

0..1

code

Язык представления человеко-читаемого представления кода (если требуется валидация свойства display)

Выходные параметры

result

1

boolean

Значение true, если кодируемое понятие успешно валидировано

message

0..1

string

Если result = false, то этот элемент описывает детали ошибки валидации. Если result = true, то в этом элементе могут быть переданы указания и предупреждения

display

0..1

string

Человеко-читаемое значения понятия, если требуется представить результат валидации пользователю

13.9.2.2 Валидация значения типа code

Запрос на валидацию кода Y, принадлежащего системе кодирования http://terminology.hl7.org/ CodeSystem/v2-0532, в наборе значений с url = http://hl7.org/fhir/ValueSet/yesnodontknow:

http ://h api.fh ir.org/baseR5/ValueSet/$val id ate-code?url = http://terminology.hl7.org/Valu eSet/ yndontknow&system=http://terminology.hl7.org/CodeSystem/v2-0532&code=Y

Ответ (код валиден): HTTP 200 OK [заголовки]

"resourceType": "Parameters", "parameter": [ { "name": "result", "valueBoolean": true "name": "display", "valuestring": "Yes" }

Ответ (код не валиден или система кодирования не найдена): HTTP 200 ОК [заголовки] { "resourceType": "Parameters", "parameter": [ { "name": "result", "valueBoolean": false { "name": "message", "valuestring": "Unable to validate code http://terminology.hl7.org/ CodeSystem/v2-0532#Yl - Unknown code \"http://terminology.hl7.org/CodeSystem/ v2-0532#Yl\". Code validation occurred using a ValueSet expansion that was precalculated at 2023-11-14T16:13:25.248+00:00 (00:35:19 ago)" } ] }

Если в строке запроса указан дополнительный параметр display, например:

hapi. fhir.org/baseR5/ValueSet/$validate-code?url=http://terminology. hl7.org/ValueSet/ yndontknow&system=http://terminology.hl7.org/CodeSystem/v2-0532&code=Y&display=Yes

339

ПНСТ 995—2024

то проверяется валидность пары <code, display> в системе кодирования, указанной вместе с кодом.

Если запрос неправилен, например, не указан проверяемый код, то возвращается экземпляр ресурса OperationOutcome с сообщением об ошибке, к примеру: HTTP 400 Bad Request [ заголовки]

"resourceType": "OperationOutcome", "text": { "status": "generated", "div": "<div xmlns = \"http : //www . w3 . org/1999/xhtml\"xhl>0peration Outcome</ hlxtable border=\"0\"xtrxtd style=\"font-weight: bold;\">ERROR</tdxtd> [ ] </ tdxtd>HAPI-0899: No code, coding, or CodeableConcept provided to validate</ tdx/tr></tablex/div>" }, "issue": [ { "severity": "error", "code": "processing", "diagnostics": "HAPI—0899: No code, coding, or CodeableConcept provided to validate" } ] }

13.9.2.3 Валидация значения типа Coding

Запрос на валидацию значения типа Coding, содержащего код Y в системе кодирования http://terminology.hl7.org/CodeSystem/v2-0532, в наборе значений с uri = http://hl7.org/fhir/ValueSet/ yesnodontknow: POST hapi.fhir.org/baseR5/ValueSet/$validate-code [ заголовки] { "resourceType": "Parameters", "parameter": [ { "name": "uri", "valueUri": "http://hl7.org/fhir/ValueSet/yesnodontknow" }, { "name": "coding", "valueCoding": { "code": "Y", "system": "http://terminology.hl7.org/CodeSystern/v2-0532", «display»: «Yes» } } ] }

Ответы те же, что приведены в 13.9.2.2.

13.9.2.4 Валидация значения типа CodeableConcept

Запрос на валидацию значения типа CodeableConcept, содержащего коды Yes и Y в системе кодирования http://terminology.hl7.org/CodeSystem/v2-0532, в наборе значений с uri = http://hl7.org/fhir/ ValueSet/yesnodontknow: POST hapi.fhir.org/baseR5/ValueSet/$validate-code [ заголовки] { "resourceType": "Parameters", "parameter": [ {

340

ПНСТ 995—2024

"name": "uri", "valueUri": "http://hl7.org/fhir/ValueSet/yesnodontknow" }, {

"name": "CodeableConcept", "valueCodeableConcept": { "coding": [ { "code": "Yes", "system": "http://terminology.hl7.org/CodeSystem/v2-0532", "display": "Да" { "code": "Y", "system": "http://terminology.hl7.org/CodeSystem/v2-0532", «display»: «Yes» } ] } } ] } Ответ (второй код валиден): HTTP 400 Bad Request [ заголовки] <Parameters xmlns="http://hl7.org/fhir"> <parameter> <name value="resu1t"/> <valueBoolean value="true"/> </parameter> <parameter> <name value="message"/> <valueString value="Code was validated against in-memory expansion of ValueSet: http://hl7.org/fhir/ValueSet/yesnodontknow"/> </parameter> <parameter>

<name value="display"/>

<valueString value=»Yes»/>

</parameter>

</Parameters

Примечание — Массив coding в теле запроса просматривается последовательно. Если первый элемент массива валиден, то другие не проверяются. Если первый элемент не принадлежит данной системе кодирования, то проверяется второй элемент и т. д.

Ответы в случае, если все коды не валидны: HTTP 400 Bad Request [ заголовки] <Parameters xmlns="http://hl7.org/fhir"> <parameter> <name value="result"/> <valueBoolean value="false"/> </parameter> <parameter>

341

ПНСТ 995—2024

<name value="message"/>

<valueString value="Unknown code 'http://terminology.hl7.org/CodeSystem/ v2-0532#Yl' for in-memory expansion of ValueSet 'http://hl7.org/fhir/ValueSet/ yesnodontknow'"/>

</parameter>

</Parameters>

В ответе последний ошибочный код.

Ответ (ошибка вызова):

HTTP 400 Bad Request

[ заголовки]

<OperationOutcome

xmlns="http://hl7.org/fhir">

<text>

<status value="generated"/>

<div

xmlns = "http://www.w3.org/19 9 9/xhtml">

<hl>Operation Outcome</hl>

<table border="0">

<tr>

<td style="font-weight: bold;">ERROR</td>

<td>[]</td>

<td>HAPI-0899: No code, coding, or CodeableConcept provided to va1idate</td>

</tr>

</table>

</div>

</text>

<issue>

<severity value="error"/>

<code value="processing"/>

<diagnostics value="HAPI-0899: No code, coding, or CodeableConcept provided to validate"/>

</issue>

</OperationOutcome>

14 Обмен сообщениями

14.1 Основные положения

Ресурсы могут использоваться в традиционном контексте обмена сообщениями. Сообщения требования передается приложением-источником приложению-получателю при возникновении некоторого события, обычно события реального мира. Сообщение требования состоит из экземпляра ресурса Bundle, имеющего тип message. В него вложены другие экземпляры ресурсов, первый из которых должен иметь тип MessageHeader (заголовок сообщения). Он содержит код события MessageHeader. code, характеризующий природу сообщения требования, и дополнительные метаданные. Какие другие ресурсы будут включены в сообщение, зависит от типа требования.

Приложение-получатель обрабатывает требование и возвращает одно или несколько ответных сообщений, которые также состоят из экземпляра ресурса Bundle типа message и включенных в него экземпляров ресурсов, первым из них должен быть заголовок сообщения MessageHeader, содержащий раздел результата обработки сообщения, за которым следуют экземпляры ресурсов других типов, составляющие содержание ответа. Среди них выделятся так называемые фокальные экземпляры, перечисленные в элементах MessageHeader.focus. Они являются центральными компонентами сообщения; другие экземпляры, включенные в сообщение, должны прямо или косвенно ссылаться на фокальные экземпляры либо (опять-таки прямо или косвенно) быть ссылочными для фокальных экземпляров.

342

ПНСТ 995—2024

14.2 Механизмы передачи сообщений

Содержание сообщения передается от одного приложения другому с помощью некоторого механизма доставки, после чего приложению-источнику возвращается один или несколько ответов. Точный механизм не имеет значения — им может быть обмен файлами, обмен по протоколу HTTP или что-нибудь другое. Единственное ограничение состоит в том, что требования передаются по известному адресу, а ответы возвращаются приложению-источнику.

Соглашения о содержании сообщений и поведению двух взаимодействующих приложений образуют «контракт», описывающий взаимодействие. Содержание контракта дополняет правила, описанные в настоящей спецификации.

Настоящая спецификация игнорирует существование шлюзов и агентов передачи сообщений, которые могут быть промежуточными узлами между источником и получателем. Они либо прозрачны для содержания сообщения/транзакции, либо активно манипулируют содержанием сообщения (в частности, нередко изменяют заголовки сообщения). Если промежуточные агенты модифицируют содержание сообщения, то они становятся ответственными за выполнение контракта (включая применяемые профили) в обоих направлениях.

Ключевой характеристикой сообщения является воздействие его содержания.

14.3 Воздействие сообщения

Категории воздействия сообщений показаны на рисунке 84 и представлены в таблице 377.

Сообщение

УВЕДОМЛЕНИЯ

Сообщение ЗАПРОСА

Сообщение ТРЕБОВАНИЯ

Рисунок 84 — Воздействия сообщений

Таблица 377 — Категории воздействия сообщений

Категория

Описание

Требование

Сообщение требует выполнения изменений, которые не следует осуществлять более одного раза, например, бронирование

Запрос

Сообщение запрашивает текущую информацию. Ретроспективная обработка ошибочна или бесполезна

Уведомление

Содержание не обязано быть актуальным и может быть обработано повторно, хотя при обработке старых уведомлений могут возникать проблемы версионности

Некоторые события обмена сообщениями могут быть отнесены к одной из этих категорий, но другим категории не могут быть присвоены заранее, поскольку могут зависеть от содержания, контекста или сценария использования.

14.4 Влияние на получателей

Другим ключевым аспектом сообщения является его влияние на получателей. В некоторых случаях достаточно направить сообщение конечной точке, в других может потребоваться, что сообщение

343

ПНСТ 995—2024

было направлено конкретной организации или конкретному лицу. Соотнесение влияния на получателей с категорией сообщения представлено в таблице 378.

Таблица 378 — Соотнесение влияния на получателей с категорией сообщения

Категория

Описание

Требование

Сообщение следует направлять одному и только одному получателю

Запрос

Сообщение может быть направлено одному и только одному получателю

Уведомление

Сообщение может быть направлено одному или нескольким получателям

14.5 Шаблоны обмена сообщениями

На каждое сообщение требования должно быть передано одно или несколько ответных сообщений. Должен быть дан хотя бы один ответ, чтобы отправитель знал, что сообщение было доставлено. В ответ на сообщение требования не должно возвращаться несколько сообщений. Не рекомендуется возвращать несколько ответов на сообщение запроса.

В принципе не требуется, чтобы приложение-источник ожидало ответа на транзакцию прежде чем инициировать новую транзакцию. Но во многих случаях определенный поток сообщений может требовать последовательной обработки. Кроме того, некоторые методы передачи также могут требовать последовательной доставки сообщений.

14.6 Синхронное взаимодействие

Шаблон синхронного взаимодействия, при котором отправитель передает сообщение и ожидает получение единственного ответа по тому же самому каналу передачи данных, а затем передает следующее сообщение, самый легкий для понимания и управления:

а) отправитель передает сообщение получателю (серверу);

б) сервер обрабатывает его и возвращает ответ.

Обычно (хотя не всегда) отправитель ждет ответа на текущее сообщение и только потом посылает новое.

14.7 Асинхронное взаимодействие

Синхронный обмен сообщениями не рассчитан на ситуацию, когда на одно сообщение передается несколько ответов, что имеет место при постраничной передаче результатов запроса, и ограничивает пропускную способность канала передачи данных, что может оказаться существенным при передаче большого объема данных. Кроме того, ожидание ответных сообщений может оказаться неприемлемым. В этих случаях следует использовать асинхронное взаимодействие.

При асинхронном взаимодействии сервер немедленно подтверждает получение сообщения, а ответ на него возвращает отдельно. На одно сообщение сервер может возвратить несколько ответов.

По содержанию заголовка сообщения получатель может определить, является ли оно новым, требующим обработки, или ответом на ранее переданное сообщение. Асинхронная передача сообщений сложнее по реализации, поскольку при ней больше вариантов ошибочных ситуаций. Настоящий стандарт не предписывает никакой протокол обработки ошибок; он оставляется на усмотрение разработчиков взаимодействия.

Обмен сообщениями можно реализовать, используя конечную точку REST в качестве центрального узла. Это не самый эффективный метод, но оно может быть полезен для реализации асинхронного обмена невысокой интенсивности.

Отправитель сообщения использует запрос HTTP POST для передачи ресурса Bundle, содержащего сообщение, конечной точке /Bundle, используя адрес uri, указанный в поле MessageHeader. destination.endpoint. Сервер REST принимает ресурс Bundle, сохраняет его как один ресурс и индексирует его по содержанию заголовка MessageHeader.

Для получения сообщений получатель выполняет поиск всех адресованных ему сообщений, принятых сервером с момента последней проверки:

GET [Ba3OBb^_URL]/Bundle?message.destination-uri=[rcv]&JastUpdated=>2021 -03-01Т02:00:02+01:00.

344

ПНСТ 995—2024

Получатель обрабатывает все сообщения, полученные в ответ на этот запрос. После обработки сообщения получатель создает ответ на него, меняя местами источник и получателя, и отправляет обратно на сервер.

Для получения этих ответов источник сообщений запрашивает все адресованные ему сообщения, принятые сервером с момента последней проверки:

GET [Базовый__и RI_]/Bundle?message.destination-uri=[snd]&message.response-id:missing=false&_ lastUpdated=>2021 -03-03Т06:03:522+01:00.

Этот простой протокол нуждается в администрировании, чтобы несколько взаимодействующих сторон не мешали друг другу, используя одинаковые идентификаторы, а также для исключения злоумышленных атак.

14.8 Идентификаторы и штампы времени в заголовке сообщения

Входящее сообщение имеет два идентификатора: Bundle.id и MessageHeader.id. При создании нового сообщения ему должен быть присвоен идентификатор (MessageHeader.id), уникальный для данного потока сообщений. Поскольку потоки сообщений нередко перемешиваются, рекомендуется присваивать глобально уникальный идентификатор. С этой целью можно использовать UUID или ОИД. При каждой передаче сообщения полю Bundle.id следует присваивать новое значение.

Когда получатель получил и обработал сообщение, он возвращает новое сообщение с новым идентификатором, включенное в экземпляр ресурса Bundle, также имеющий новый идентификатор. Заголовок ответного сообщения повторяет идентификатор сообщения требования MessageHeader.id в поле MessageHeader.response.identifier, чтобы система-источник могла соотнести ответ с требованием.

Сообщение имеет 2 важных штампа даты и времени:

a) Bundle.timestamp: время отправки сообщения;

б) Bundle.meta.lastUpdated: последнее время изменения сообщения (сохранения или модификации).

Кроме того, сообщение может иметь дополнительные штампы даты и времени в полях meta. lastUpdated или других полях вложенных ресурсов. Их назначение зависит от события, по которому передано сообщение.

14.9 Отсутствие надежного транспорта сообщений

Некоторые из механизмов передачи сообщений являются надежными — сообщение всегда доставляется или его источнику возвращается сообщение об ошибке. Однако в большинстве реализаций используются механизмы, не предусматривающие надежный транспорт сообщений и требование или ответ на него могут быть потеряны. Настоящая спецификация описывает простой подход, которому получателю по возможности должны следовать, чтобы обеспечить предсказуемую функциональность.

Если отправитель сообщения реализует надежный транспорт, то по истечению сконфигурированного таймаута ожидания ответного сообщения, заданного в элементе messaging.reliableCache ресурса Capabilitystatement, он должен выполнить действия, указанные в таблице 379.

Таблица 379 — Действия по истечению таймаута при надежном транспорте

Категория

Действие

Требование

Повторно отправить сообщение (с тем же самым Message.id) в экземпляре ресурса Bundle с тем же самым Bundle.id

Запрос

Повторно отправить сообщение (с тем же самым Message.id) в экземпляре ресурса с Bundle с другим Bundle.id

Уведомление

Повторно отправить сообщение (с тем же самым Message.id) в экземпляре ресурса с Bundle с другим Bundle.id

Если получатель сообщения реализует надежный транспорт, то он должен проверить Bundle.id и MessageHeader.id в кэше ранее полученных сообщений. Предпринимаемые действия зависят от результата проверки (таблица 380).

345

ПНСТ 995—2024

Таблица 380 — Проверка идентификаторов ранее полученных сообщений

Результат проверки

Действие

Сообщение с такими Bundle.id и

MessageHeader.id еще не получалось

Нормальная ситуация, сообщение следует обработать

Сообщение с такими Bundle.id и

MessageHeader.id уже было получено

Ранее посланный ответ не был получен источником требования (утерян). Он должен быть послан повторно

Сообщение с таким MessageHeader.id уже было получено, но Bundle.id новый

Сообщение было отправлено источником повторно для обработки. Сервер может либо выполнить повторную обработку, либо отклонить сообщение

Сообщение с таким Bundle.id уже было получено, но MessageHeader.id новый

Ошибка — идентификатор Bundle.id не должен использоваться для другого сообщения

Период кэширования обычно не должен быть слишком большим. Как минимум, он должен быть на 1 минуту дольше таймаута системы-отправителя, но в зависимости от политики повторной отправки сообщений, принятой системой-отправителем, он может быть и больше.

Приложения, реализующие надежный транспорт, объявляют длительность надежного кэша в элементе messaging.reliableCache экземпляра ресурса Capabilitystatement, описывающего возможности приложения.

14.10 Вызов операций над ресурсами с помощью сообщений

Сообщение можно следующим образом использовать для вызова операции, определенной в интерфейсе RESTful:

а) сторона, вызывающая операцию, отправляет сообщение, то есть ресурс Bundle, у которого поле type = message, содержащий ресурс заголовка MessageHeader, поля которого имеют следующие значения:

1) event.system = urn:ietf:rfc:3986;

2) event.code = адрес URL, указанный в поле.url экземпляра ресурса OperationDefinition, содержащего определение вызываемой операции;

3) MessageHeader.focus = ссылка на ресурс Parameters;

4) ресурс Parameters заполняется значениями в соответствии с определением операции;

б) получатель сообщения выполняет затребованную операцию и затем отправляет сообщение, то есть ресурс Bundle, у которого поле type = message, содержащий ресурс заголовка MessageHeader, поля которого имеют следующие значения:

1) тот же код события, что и в исходном сообщении;

2) в поле response заголовка MessageHeader указана ссылка на исходное сообщение и код результата вызова и при наличии — причины ошибки вызова;

3) MessageHeader.focus = ссылка на ресурс Parameters;

4) ресурс Parameters заполняется значениями в соответствии с определением ответа на вызов операции;

5) если в определении операции указано единственное возвращаемое значение, то оно возвращается непосредственно по ссылке из MesssageHeader.focus.

Ниже приведен пример:

<Bundle xmlns=»http://hl7.org/fhir»>

<id value="urn:uuid:77831928-2a35-4c08-9496-8232323bf48c"/>

<! — Обычное содержание Bundle -->

<entry>

<fullUrl value="urn:uuid:6080d4a7-5e05-45dc-96d5-f75329564dlf"/> <resource>

<MessageHeader>

<id value = "cac8143e-6138-4f45-b086-bb8ebf976aae”>

<!-- Обычное содержание заголовка -->

<event>

<system value=»urn:ietf:rfc:3986"/>

346

ПНСТ 995—2024

<!-- Раскрытие набора значений -->

<code value=»http://h!7.org/fhir/OperationDefinition/ValueSet-expand»/>

</event>

<!-- Ссылка на параметры раскрытия набора значений -->

<focus>

<reference value="urn:uuid:00213637-de7c-40d2-a7de-f4efleea5685"/>

</focus>

</MessageHeader>

</resource>

</entry>

<entry>

<fullUrl value="urn:uuid:00213637-dc7c-40d2-a7de-f4efleea5685"/>

<resource>

<Parameters>

<parameter>

<name value="identifier"/>

<valueUri value="http://hl7.org/fhir/ValueSet/identifier-type"/>

</parameter>

</Parameters>

</resource>

</entry>

</Bundle>

Следует учесть, что операцию нельзя вызвать по URL. Указанным выше способом можно вызывать только операции, определенные на уровне системы или ресурса для конкретного ресурса.

14.11 Осуществление поиска с помощью сообщений

Тем же способом, что вызывается операция, можно выполнить поиск. При поиске также используется ресурс Parameters со следующими правилами:

а) код события должен быть равен search-type или search-system, система кодирования http://hl7. org/fhir/restful-interaction;

б) если тип события равен search-type, то должен быть параметр resourceType, задающий тип искомого ресурса.

Типы параметров поиска преобразуются в типы данных FHIR в соответствии с таблицей 381.

Таблица 381 — Преобразование типов параметров поиска в типы данных

Тип параметра поиска

Тип данных

number

integer

date

dateTime

string

string

token

string или Coding (выделение системы кодирования system и кода code)

reference

uri

composite

string

quantity

string или Quantity (в случае разбора синтаксиса)

uri

uri

Пример:

<Bundle xmlns="http://hl7.org/fhir">

<id value="urn:uuid:77831928-2a35-4c08-9496-8232323bf48c"/>

<!— Обычное содержание Bundle -->

<entry>

347

ПНСТ 995—2024

<fullUrl value="urn:uuid:c4 667 54c-0 9c0-4 f5 9-9f7 6-a4 8bd0ea2 7c9"/>

<resource>

<MessageHeader>

<!-- Обычное содержание заголовка -->

<event>

<system value="http://hl7.org/fhir/restful-interaction"/>

<!-- Search against Patient -->

<code value="search-type"/>

</event>

<!-- Ссылка на параметры поиска -->

<data>

<reference value="urn:uuid:59al7al9-46eb-42d9-821a-f93a0c530cac"/> </data>

</MessageHeader>

</resource>

</entry>

<entry>

<fullUrl value="urn:uuid:59al7al9-46eb-42d9-821a-f93a0c530cac"/>

<resource>

<Parameters>

<parameter>

<name value="resourceType"/>

<valueString value="Person"/>

</parameter>

<parameter>

<name value="gender"/>

<valueString value="m"/>

</parameter>

</Parameters>

</resource>

</entry>

</Bundle>

15 Терминологические ресурсы

15.1 Системы кодирования

15.1.1 Общие требования

Многие элементы ресурсов имеют кодированные значения — строки символов, идентифицирующих определенные «понятия». В настоящем документе кодированные значения всегда трактуются как пары «система» и «код», где «система» идентифицирует систему кодирования, в которой определены «коды». Общий шаблон представления кодированного значения включает в себя следующие компоненты:

a) system — идентификатор URI, идентифицирующий систему кодирования;

б) version — строка, идентифицирующая версию системы кодирования;

в) code — код, однозначно идентифицирующий понятие в системе кодирования и предназначенный для компьютерной обработки;

г) display — имя понятия, определенное в системе кодирования и предназначенное для человеческого восприятия.

Для кодированных значений могут использоваться следующие типы данных:

a) Coding — полностью соответствует этому шаблону;

б) code — содержит только компонент code. Компонент system подразумевается — его значение приведено в определении элемента типа code и не передается в экземпляре ресурса;

в) CodeableConcept — представляет кодируемое понятия в виде текста (в компоненте text) и/или одного или нескольких компонентов типа Coding;

г) CodeableReference — содержит или ссылку на другой экземпляр ресурса (компонент reference) или кодируемое понятие типа CodeableConcept (компонент concept).

348

ПНСТ 995—2024

Кроме того, кодированные значения могут содержаться в элементах следующих типов:

a) Quantity — этот тип данных имеет компоненты system и code для представления единиц измерения;

б) string — в некоторых случаях значения элемента этого типа ограничены конечным множеством строк, которые могут рассматриваться как кодированные значения, у которых компоненты code и display совпадают;

в) uri — подобно типу данных string, идентификаторы URI также могут трактоваться как кодируемые элементы.

Формальное описание системы кодирования представляется экземпляром ресурса CodeSystem.

15.1.2 Ресурс CodeSystem (система кодирования)

15.1.2.1 Область применения и использования

Ресурс CodeSystem описывает систему кодирования — справочник или классификатор, в том числе иерархический или фасетный.

15.1.2.2 Структура ресурса

Ресурс CodeSystem является детализацией абстрактного ресурса DomainResource. Состав элементов ресурса CodeSystem представлен на рисунке 85 и в таблице 382.

dass Система кодирования у/

DomainResource

CodeSystem

+ identifier Identifier [0..*]

+ version: string [0..1]

+ title: string [0..1]

+ experimental: boolean [0..1]

+ date: dateTime [0..1]

+ publisher: string [0..1]

+ contact: ContactDetail [0.^

+ description: markdown [0..1]

+ useContext: UsageContext [0..*]

+ jurisdiction: CodeableConcept [0..*]

+ purpose: markdown [0..1]

+ copyright: maridown [0..1]

+ copyrightLabel: string [0..1]

+ approval Date: date

+ lastReviewDate: date

+ effectivePeriod: Period

+ topic: CodeableConcept [0..*]

+ author: ContactDetail [0..*]

+ editor. ContactDetail [0..*]

+ reviewer ContactDetail [0..*]

+ endorser. ContactDetail [0..*]

+ related Artifact: RelatedArtifact [0..*]

+ caseSensitive: boolean [0..1]

+ compositional: boolean [0..1]

+ version Needed: boolean [0..1]

+ count: unsignedlnt [0..1]

«Constraint»

+ uri: uri [0..1]

+ name: string [0..1 ]

«TypeChoice»

+ versionAlgorithmjx] [0..1]

«Binding»

+ status: code

«RefTarget»

+ valueSet: canonical [0..1]

«Binding, Constraint»

+ hierarchyMeaning: code [0..1]

+ content: code

«RefTarget, Constraint»

+ supplements: canonical [0..1]

tconceptO..*

+concept

1

1

1

0..*

♦property

0..*

BackboneElement

ConceptDefinltion (P)

+ display: string [0..1]

+ definition: string [0..1]

«Constraint»

+ code: code

♦property

BackboneElement

ConceptProperty

BackboneElement

Property

+ code: code

+ uri: uri [0..1 ]

+ description: string [0..1]

«Binding»

+ type: code

♦filter

BackboneElement

Filter

0..*

+ code: code

+ description: string [0.. 1 ]

+ value: string

«Binding»

+ operator, code [1..*]

Рисунок 85 — Ресурс CodeSystem

о..*

code:code

«TypeChoice» + valuejx]

♦designation

0..*

BackboneElement

Designation

+ value: string

«Binding»

+ language: code [0.. 1 ]

+ additionalUse: Coding [0..*]

«Binding, Constraint»

+ use: Coding [0..1]

349

ПНСТ 995—2024

Таблица 382 — Состав элементов ресурса CodeSystem

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

0..1

implicitRules

Совокупность правил, по которым должен создаваться экземпляр ресурса

uri

0..1

language

Основной человеческий язык, на котором представлено содержание ресурса

code

0..1

Унаследованы от абстрактного класса DomainResource

text

Текстовое описание содержания экземпляра ресурса для интерпретации человеком

Narrattive

0..1

contained

Вложенный экземпляр ресурса

Resource

0..*

extension

Дополнительное содержание, определенное при реализации

Extension

0..*

modifierExtension

Модифицирующее расширение, которое не может быть проигнорировано

Extension

0..*

Собственные элементы

url

Канонический идентификатор системы кодирования, представленный в форме URI

uri

0..1

identifier

Объектный идентификатор системы кодирования или иной идентификатор, не зависящий от версии

Identifier

0..*

version

Версия системы кодирования

string

0..1

versionAlgorithm[x]

Алгоритм сравнения версий

*

0..1

name

Имя системы кодирования (для компьютера)

string

0..1

title

Краткое описательное имя системы кодирования (для человека)

string

0..1

status

Статус версии системы кодирования. Позволяет прослеживать жизненный цикл содержания системы кодирования. Допустимые значения: draft (проект) | active (действует) | retired (действие прекращено) | unknown (статус неизвестен)

code

1

experimental

Признак тестовой системы кодирования

boolean

0..1

date

Дата (и необязательное время) публикации системы кодирования. Должна изменяться при смене версии и кода статуса. Кроме того, она должна изменяться, если содержание системы кодирования претерпевает существенные изменения

dateTime

0..1

publisher

Наименование организации или Ф.И.О. издателя, опубликовавшего систему кодирования

string

0..1

contact

Контактная информация издателя

Contact-Detail

0..*

description

Описание системы кодирования для ее потребителя

markdown

0..1

350

Продолжение таблицы 382

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

useContext

Контекст использования системы кодирования (по умолчанию — не ограничен)

Usage-Context

0..*

jurisdiction

Юрисдикция, в которой применяется набор значений. Может задавать страну, регион или иную единицу административного деления. Использование запрещено. Вместо него рекомендуется использовать элемент useContext, у которого компонент code имеет значение http://terminology.hl7. org/CodeSystem/usage-context-type#jurisdiction, а компонент valueCodeableConcept — юрисдикцию

Codeable-Concept

0..*

purpose

Назначение системы кодирования

markdown

0..1

copyright

Авторские права на систему кодирования

markdown

0..1

copyrightLabel

Торговая марка и год(ы)

string

0..1

approvalDate

Дата утверждения

date

1

lastReviewDate

Дата последнего пересмотра

date

1

effectivePeriod

Период действия

Period

1

topic

Тема. Использование запрещено. Вместо него рекомендуется использовать элемент useContext, у которого компонент code имеет значение http:// terminology.hl7.org/CodeSystem/usage-context-type#topic, а компонент valueCodeableConcept — тему

CodeableConcept

0..*

author

Контактная информация автора

ContactDetail

0..*

editor

Контактная информация редактора

ContactDetail

0..*

reviewer

Контактная информация рецензента

ContactDetail

endorser

Контактная информация одобрившей стороны

ContactDetail

0..*

relatedArtifact

Дополнительная документация, библиография и т.д.

RelatedArtifact

0..*

caseSensitive

Признак учета регистра при сравнении кодов

boolean

0..1

valueSet

Каноническая ссылка на набор значений, содержащий всю данную систему кодирования

canonical

0..1

hierarchyMeaning

Семантика иерархии понятий, представленной в данной системе кодирования. Допустимые значения: grouped-by (группировка) | is-a (детализация) | part-of (целое-часть) | classified-with (классификация) | попе (отсутствует)

code

0..1

compositional

Признак, определяет ли данная система кодирования композиционную (то есть пост-координируемую) грамматику

boolean

0..1

versionNeeded

Этот признак указывает, что система кодирования не гарантирует постоянство понятия, связанного с кодом, поэтому вместе с кодом всегда следует указывать номер версии системы кодирования

boolean

0..1

351

ПНСТ 995—2024

Продолжение таблицы 382

Имя

Описание

Тип данных

Кратность

content

Код, указывающий тип содержания системы кодирования. Допустимые значения: not-present (понятия не включены) | example (пример нескольких понятий) | fragment (фрагмент содержания) | complete (полное содержание) | supplement (дополнение)

code

1

supplements

Ссылка на систему кодирования, которую дополняет данный экземпляр ресурса CodeSystem. Чаще всего это используется при переводе системы кодирования на другой язык

canonical

0..1

count

Общее число понятий, описанных в данной системе кодирования. Для композиционной системы кодирования способ подсчета определяется организацией, ответственной за ведение системы кодирования

unsignedlnt

0..1

filter

Фильтр, который может использоваться при образовании набора значений из данной системы кодирования. Фильтрация обычно требует указания дополнительного свойства кода для каждого термина, по которому осуществляется фильтрация

Backbone-Element

0..*

filter.code

Код, идентифицирующий данный фильтр, когда он используется в элементе ValueSet.compose. include.filter

code

1

filter.description

Описание, как и почему используется фильтр

string

0..1

filter.operator

Оператор, который можно использовать в данном фильтре. Допустимые значения: = (Равно) | is-a (Является) | descendent-of (Потомок)! is-not-a (Не является) | regex (Регулярное выражение) | in (Принадлежит) | not-in (Не принадлежит) | generalizes (Обобщает) | exists (Существует)

code

1..*

filter.value

Описание значения, которое может использоваться в фильтре

string

1

property

Свойство, добавляемое к коду

Backbone-Element

0..*

property.code

Код, используемый для идентификации свойства. Он используется внутри системы кодирования (в элементе CodeSystem.concept.property. code), а также снаружи, например, при фильтрации свойств

code

1

property.uri

Ссылка на формальное описание смысла свойства

uri

0..1

property, description

Описание свойства — с какой целью оно определено и как использовать его значение

string

0..1

property.type

Тип значения свойства. Допустимые значения: code | Coding | string | integer | boolean | dateTime | decimal

code

1

concept

Понятие, включенное в систему кодирования

Backbone-

Element

0..*

352

Окончание таблицы 382

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

concept.code

Код — текстовый символ, однозначно идентифицирующий понятие в системе кодирования

code

1

concept.display

Человеко-читаемая строка, рекомендуемая для представления значения данного кода по умолчанию

string

0..1

concept.definition

Формальное определение понятия. Оно не всегда присутствует в унаследованных системах кодирования, но для новых систем настоятельно рекомендуется

string

0..1

concept, designation

Дополнительное представление понятия — на другом языке, синоним и т. д.

Backbone-Element

0..*

concept, designation, language

Язык обозначения понятия

code

0..1

concept.designation.use

Код, указывающий, как используется данное обозначение понятия

Coding

0..1

concept.designation. additionalUse

Дополнительное использование обозначения понятия

Coding

0..*

concept.designation.value

Текстовое значение данного обозначения

string

1

concept.property

Значение свойства данного понятия

Backbone-Element

0..*

concept.property. code

Код, являющийся ссылкой на CodeSystem, property.code

code

1

concept.property. value[x]

Значение данного свойства. Допустимые значения: code | Coding | string | integer | boolean | dateTime | decimal

*

1

15.1.2.3 Привязки к наборам значений

Привязки к наборам значений описаны в таблице 383.

Таблица 383 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

CodeSystem.

versionAlgorithm[x]

http://hl7.org/fhir/ValueSet/ version-algorithm

Расширяемая

Алгоритм сравнения версий

CodeSystem.status

http://hl7.org/fhir/ValueSet/ publication-status

Обязательная

Статус жизненного цикла системы кодирования

CodeSystem, jurisdiction

http://hl7.org/fhir/ValueSet/ jurisdiction

Расширяемая

Страны и регионы, для которых предназначена данная система кодирования

CodeSystem.topic

http://hl7.org/fhir/ValueSet/ definition-topic

Пример

Категория системы кодирования, используемая для поиска и фильтрации

CodeSystem. hierarchyMeaning

http://hl7.org/fhir/ValueSet/ codesystem-hierarchy-meaning

Обязательная

Семантика иерархии понятий в системе кодирования

CodeSystem, content

http://hl7.org/fhir/ValueSet/ codesystem-content-mode

Обязательная

Объем представления содержания системы кодирования в ресурсе CodeSystem

353

ПНСТ 995—2024

Окончание таблицы 383

Путь

Набор значений

Тип привязки

Описание

CodeSystem.filter, operator

http://hl7.org/fhir/ValueSet/ filter-operator

Обязательная

Вид операции, выполняемой как часть фильтра, основанного на значениях свойств

CodeSystem, property, type

http://hl7.org/fhir/ValueSet/ concept-property-type

Обязательная

Тип данных значения свойства

CodeSystem, concept, designation, language

http://hl7.org/fhir/ValueSet/ languages

Обязательная

Естественный язык

CodeSystem.concept, designation.use

http://hl7.0rg/fhir/V alueSet/ designation-use

Расширяемая

Детали использования обозначения понятия

CodeSystem, concept.designation. additionalllse

http://hl7.org/fhir/ValueSet/ designation-use

Расширяемая

Детали использования обозначения понятия

15.1.2.4 Ограничения ресурса CodeSystem

Ограничения ресурса CodeSystem описаны в таблице 384.

Таблица 384 — Ограничения ресурса CodeSystem

Идентификатор

Вид

Путь

Описание

Выражение

csd-0

Предупреждение

Базовый

Элемент name должен содержать машинно-обрабатываемое имя, соответствующее синтаксису идентификатора

name.exists() implies name. matches(‘A[A-Z]([A-Za-zO-9J) {1,254}$’)

csd-1

Правило

Базовый

Внутри системы кодирования все коды должны быть уникальными

concept.exists() implies concept.code.combine(%re-source.concept.descendants().

concept.code).isDistinct()

cnl-1

Предупреждение

CodeSystem.uri

Строка URL не должна содержать символы | или # — это препятствует обработке канонических ссылок

exists() implies matches(‘A[A|# ]+$')

csd-2

Предупреждение

Базовый

При наличии неявной иерархии следует заполнить элемент hierarchyMeaning

concept.concept.exists() implies hierarchyMeaning.ex-ists()

csd-3

Предупреждение

Базовый

При наличии неявной иерархии следует заполнить элемент hierarchyMeaning

concept.where(property.code = ‘parent’ or property.code = ‘child’).exists() implies hierar-chyMeaning.exists()

csd-4

Правило

Базовый

Если элемент content = supplement, то следует указать, какая система кодирования дополняется

CodeSystem.content = ‘supplement’ implies CodeSystem, supplements.exists()

csd-5

Правило

CodeSystem, concept, designation

Если элемент concept, designation.additionalUse присутствует, то должен присутствовать элемент concept.designation.use

additionalUse.exists() implies use.exists()

354

ПНСТ 995—2024

15.1.2.5 Особенности идентификации

В ресурсе CodeSystem предусмотрены три идентификатора системы кодирования:

a) CodeSystem.id: логический идентификатор системы кодирования в системе, которая ведет ее экземпляр. При переносе экземпляра ресурса CodeSystem на другой сервер он может измениться;

б) CodeSystem.url: канонический URL, который постоянен для данной системы кодирования и содержится в каждой ее копии. По возможности это должен быть адрес URL содержания исходной версии системы кодирования у ее первоисточника;

в) CodeSystem.identifier: пара system/value, которая используется для идентификации системы кодирования во внешнем контексте. Элемент system идентифицирует схему идентификации, а элемент value — идентификатор системы кодирования, присвоенный согласно данной схеме. Если для идентификации системы кодирования используется объектный идентификатор (ОИД), то system = urn:ietf:rfc:3986, a value = urn:oid:1.2.643.2.40.10.997.1.

15.1.2.6 Версии системы кодирования

Многие системы кодирования с течением времени изменяются. Если при этом меняется значение ранее назначенных кодов, то интерпретация системы кодирования становится зависимой от версии. Это существенно усложняет использование системы кодирования, поэтому такая практика нежелательна. Если значение кодов изменяется, то следует не только присвоить измененной системе кодирования идентификатор версии CodeSystem.version, но и указать признак необходимости учета версии CodeSystem.versionNeeded = true. При передаче кодов такой системы кодирования в экземплярах элементов типа Coding в дополнение к идентификатору системы кодирования system следует также указать идентификатор версии version.

15.1.2.7 Фрагментирование системы кодирования

Система кодирования может распространяться в форме нескольких фрагментов. Содержание такой системы кодирования представляется несколькими экземплярами ресурса CodeSystem, у которых элемент CodeSystem.content имеет значение fragment (фрагмент). Элементы CodeSystem.url у всех фрагментов должны иметь одно и то же значение.

15.1.2.8 Дополнение системы кодирования

Если элемент CodeSystem.content имеет значение supplement (дополнение), то ресурс описывает дополнение системы кодирования. К описанию дополнения применяются следующие правила:

а) элемент CodeSystem.supplements должен иметь значение URL дополняемой системы кодирования;

б) значение элемента CodeSystem.url дополнения не должно передаваться в экземплярах элементов типа Coding в качестве идентификатора системы кодирования system.

Дополнение не может определять новые коды, отсутствующие в дополняемой системе кодирования. Оно используется для добавления новых свойств к существующим кодам или для описания дополнительных обозначений этих кодов.

15.1.2.9 Краткое описание, определение и обозначение

Элемент concept, описывающий кодируемое понятие, имеет компоненты display и definition. Компонент display содержит краткий текст, который может быть представлен пользователю вместо кода. Компонент definition содержит формальное определение кодированного понятия. По возможности эти компоненты должны быть в каждом описании понятия.

В дополнение к краткому значению display и определению definition понятие может иметь несколько обозначений concept.designation. Обозначения могут представлять значения кодов на другом языке или синонимы.

15.1.2.10 Свойства понятий

В системе кодирования могут быть определены дополнительные свойства понятий. Каждое понятие, включенное в систему кодирования, может иметь несколько свойств их числа тех, что определены в этой системе кодирования. Примерами таких свойств могут служить:

а) контрольная цифра кода;

б) дата ввода понятия в действие;

в) дата прекращения действия понятия;

г) структурированная связь с другим понятием этой же или иной системы кодирования.

Идентификаторами свойства служат CodeSystem.property.uri (адрес формального определения свойства, должен быть глобально уникальным) и CodeSystem.property.code (идентификатор свойства, уникален в пределах данной системы кодирования). Код CodeSystem.property.code используется для внутренних ссылок в элементе CodeSystem.concept.property.code, а также для внешних ссылок, напри-

355

ПНСТ 995—2024

мер, при описании набора значений в элементе ValueSet.compose.include.filter.property, когда известно, к какой системе кодирования это свойство относится.

Описание свойства содержит элементы, приведенные в таблице 385.

Таблица 385 — Компоненты свойства понятия

Имя

Описание

Тип данных

Кратность

code

Идентификатор свойства

code

1

uri

Ссылка на формальное определение свойства, например, в системе кодирования https://www.hl7.org/ fhir/codesystem-concept-properties.html.

uri

0..1

description

Описание свойства

string

0..1

type

Тип данных значения свойства. Значения типа code | Coding представляют собой коды, определенные в системе кодирования (той же самой или другой), то есть являются ссылками на другие кодированные понятия

code | Coding | string | integer | boolean | dateTime

1

15.1.2.11 Определения стандартных свойств

Для гармонизации систем кодирования рекомендуется использовать стандартные свойства понятий, определенные в системе кодирования http://hl7.org/fhir/concept-properties (таблица 386).

Таблица 386 — Стандартные свойства понятий

URI

Тип значения

Описание

http://hl7.org/fhir/concept-properties#status

code

Статус понятия. Свойство, идентифицируемое данным URI, должно использовать как минимум следующие значения статуса: active — действующее понятие;

experimental — предусмотрено для тестирования, но в будущем может быть удалено;

deprecated — понятие устарело и в будущем будет удалено;

retired — присутствует по историческим причинам, но не должно использоваться

http://hl7.org/fhir/concept-properties#inactive

boolean

Если понятие не считается действующим, должно иметь значение true. По умолчанию используется значение false

http://hl7.org/fhir/concept-properties#effectiveDate

date

Дата последнего изменения статуса понятия

http://hl7.org/fhir/concept-

properties#deprecationDate

date

Дата признания понятия устаревшим

http://hl7.org/fhir/concept-properties#retirementDate

date

Дата запрета на использование понятия

http://hl7.org/fhir/concept-properties#notSelectable

boolean

Понятие используется для группировки других понятий и не должно использоваться самостоятельно (может использоваться для фильтрации и т.д.). Такое понятие именуется абстрактным

http://hl7.org/fhir/concept-properties#parent

code

Прямой родитель понятия в иерархии

http://hl7.org/fhir/concept-properties#child

code

Прямой потомок понятия в иерархии

http://hl7.org/fhir/concept-properties#partOf

code

Понятие, идентифицируемое значением этого свойства (по коду) содержит данное понятие в качестве компонента

http://hl7.org/fhir/concept-properties#synonym

code

Значение этого свойства содержит альтернативный код данного понятия

356

Окончание таблицы 386

ПНСТ 995—2024

URI

Тип значения

Описание

http://hl7.org/fhir/concept-properties#comment

code

Дополнительные сведения об использовании данного понятия

http://hl7.org/fhir/concept-properties#itemWeight

decimal

Числовое значение, позволяющее сравнивать понятия A numeric value that allows the comparison (меньше, больше) или выполнять иные манипуляции с понятиями

Свойства с идентификаторами http://hl7.Org/fhir/concept-properties#parent и http://hl7.org/fhir/ concept-properties#child используются для указания отношение родитель/потомок между понятиями.

15.1.2.12 Статус системы кодирования

Статус системы кодирования характеризует состояние ее жизненного цикла. Допустимые значения статуса приведены в таблице 387.

Таблица 387 — Состояния системы кодирования

Имя

Значение

Описание

unknown

Статус неизвестен

Статус неизвестен

draft

Проект

Создан проект

active

Действует

Проект утвержден и введен в действие

retired

Действие прекращено

Действие прекращено

15.1.2.13 Иерархии понятий

Система кодирования может иметь иерархическую структуру, используя вложенные элементы concept. Значение отношений иерархии в этом случае определяется элементом hierarchyMeaning. В такой структуре у каждого понятия имеется только один родитель.

В некоторых системах кодирования понятия могут иметь несколько родителей. В этих случаях вместо вложенных элементов concept надо использовать дополнительные свойства property понятий, содержащие ссылки на родительские коды. Можно также воспроизвести основную иерархию с помощью вложения элементов concept, а дополнительные связи обеспечить с помощью свойств property.

15.1.2.14 Параметры поиска экземпляров ресурса CodeSystem

Специальные параметры поиска экземпляров ресурса CodeSystem описаны в таблице 388. В дополнение к ним могут использоваться общие параметры поиска, описанные в подразделе 12.27.

Таблица 388 — Специальные параметры поиска экземпляров ресурса CodeSystem

Имя

Тип

Описание

Выражение

code

token

Код, определенный в системе кодирования

CodeSystem.concept.code

content-mode

token

not-present | example | fragment | complete | supplement

CodeSystem.content

context

token

Контекст использования, назначенный системе кодирования

(CodeSystem. useContext. value, of-Type(CodeableConcept))

contextquantity

quantity

Количественное значение контекста или диапазон количественных значений (если имеются), назначенных системе кодирования

(CodeSystem. useContext. value, of-Type(Quantity)) | (CodeSystem.useC-ontext.value.ofType(Range))

context-type

token

Тип контекста, назначенного системе кодирования

CodeSystem.useContext.code

357

ПНСТ 995—2024

Окончание таблицы 388

Имя

Тип

Описание

Выражение

context-type-quantity

compo-site

Сочетание типа контекста данной системы кодирования и его количественного значения или диапазона значений

On CodeSystem.useContext: context-type: code context-quantity: value.of-

Type(Quantity) | value.ofType(Range)

context-type-value

compo-site

Сочетание типа контекста данной системы кодирования и его значения

On CodeSystem.useContext: context-type: code

context: value.ofType(CodeableCon-cept)

date

date

Дата публикации системы кодирования

CodeSystem.date

derived-from

refe-rence

Ресурс, от которого произведена данная система кодирования

CodeSystem. relatedArtifact. where(-type=’derived-from’).resource (Any)

description

string

Описание системы кодирования

CodeSystem.description

effective

date

Предполагаемый период использования

CodeSystem.effectivePeriod

identifier

token

Внешний идентификатор системы кодирования

CodeSystem.identifier

jurisdiction

token

Страна или регион, для которого предназначена система кодирования

CodeSystem.jurisdiction

language

token

Язык обозначений в системе кодирования

CodeSystem.concept, designation, language

name

string

Имя системы кодирования, предназначенное для машинной обработки

CodeSystem.name

predecessor

refe-rence

Предшествующая система кодирования

CodeSystem. relatedArtifact.where(-type=’predecessor’).resource (Any)

publisher

string

Наименование издателя системы кодирования

CodeSystem.publisher

status

token

Текущий статус системы кодирования

CodeSystem.status

supplements

refe-rence

Поиск экземпляров ресурса CodeSystem, дополняющих данную систему кодирования

CodeSystem.supplements (CodeSystem)

system

uri

Схема кодирования всех кодов, определенных в данной системе кодирования (то же, что и ‘uri’)

CodeSystem, uri

title

string

Имя системы кодирования,

предназначенное для человека

CodeSystem, title

topic

token

Тема, ассоциированная сданной системой кодирования

CodeSystem.topic

uri

uri

Значение URI, идентифицирующее данную систему кодирования

CodeSystem.uri

version

token

Версия системы кодирования

CodeSystem.version

358

ПНСТ 995—2024

15.2 Наборы значений

15.2.1 Общие требования

Кодированные значения элемента ресурса могут быть ограничены набором значений, принадлежащих одной или нескольким системам кодирования. Например, значения элемента type ресурса Device, описывающего тип персонального медицинского прибора, могут быть ограничены релевантным подмножеством кодов номенклатуры MDC, описанной в ГОСТ Р 56842.

Наборы значений применяются для валидации содержания экземпляра ресурса при его создании или изменении и для представления списков допустимых значений в интерфейсе пользователя. Идентификаторы url наборов значений никогда не передаются в качестве компонентов system кодированных значений — в этих компонентах могут быть указаны только идентификаторы url систем кодирования. Привязка кодированного элемента ресурса к набору значений задается в экземпляре ресурса StructureDefinition, описывающем структуру ресурса или комплексного типа данных.

Формальное описание набора значений представляется экземпляром ресурса ValueSet.

15.2.2 Ресурс ValueSet (набор значений)

15.2.2.1 Область применения и использования

Ресурс ValueSet служит средством конструирования наборов значений, состоящих из подмножеств кодов, определенных в одной или нескольких системах кодирования. В нем выделяются два основных элемента:

a) compose (сборка), описывающий, какие коды должны быть включены в набор значений;

б) expansion (раскрытие), содержащий список кодов, фактически включенных в набор значений.

Экземпляр ресурса ValueSet может содержать элемент compose или элемент resource, или оба этих элемента одновременно. Для работы с ними предусмотрены следующие операции:

a) $expand, запрашивающая создание или обновление значений элемента expansion по правилам, определенным в содержании элемента compose;

б) $validate-code», запрашивающая проверку принадлежности конкретного кодированного значения к набору значений.

15.2.2.2 Структура ресурса

Ресурс ValueSet является детализацией абстрактного ресурса DomainResource. Состав элементов ресурса ValueSet представлен на рисунке 86 и в таблице 389.

359

ПНСТ 995—2024

dass Набор значений ^

DomainResource

ValueSet

BackboneElement

Scope

BackboneElement

Parameter

360

+ identifier Identifier [0..*]

+ version: string [0..1]

+ title: string [0..1]

+ experimental: boolean [0..1]

♦ date: dateTime [0..1]

+ publisher string [0..1]

+ contact: ContactDetail [0..*]

+ description: markdown [0..1]

+ useContext: UsageContext [0..*]

+ jurisdiction: CodeableConcept [0..*]

+ immutable: boolean [0..1]

+ purpose: markdown [0..1]

+ copyright: markdown [0..1]

+ copyrightLabel: string [0..1]

+ approval Date: date

♦ lastReviewDate: date

+ effective Period: Period

+ author. ContactDetail [0..*]

+ editor ContactDetail [0..*]

+ reviewer ContactDetail [0..*]

+ endorser: ContactDetail [0..*]

+ related Artifact: Re I a ted Artifact [0..*]

«Constraint»

+ uri: uri [0..1]

+ name: string [0..1]

«TypeChoice»

+ versionAlgorithm[x] [0..1]

«Binding»

+ status: code

+ topic: CodeableConcept [0..*]

+ inclusioncriteria: string [0..1]

+ exclusioncriteria: string [0..1]

♦scope' 0..1

+parameter

name: string

«TypeChoice»

—s’ + value[x] [0..1]

1

1

♦expansion

0..1

BackboneElement

Expansion

1

♦property

BackboneElement

Property

+ identifier uri [0..1]

+ next: uri [0..1]

+ timestamp: dateTime

+ total: integer [0..1]

+ offset: integer [0..1]

1 0..*

+ code:code

+ uri: uri [0..1]

♦contains

♦compose 0..1

BackboneElement

Compose

+ locked Date: date [0.. 1 ]

+ inactive: boolean [0..1]

+ property: string [0..*]

1

♦include +exdude 0..*

BackboneElement

ConceptSet

+ version: string [0..1]

+ copyright: siring

«Constraint»

+ system: uri [0..1]

«Constraint, RefTarget»

+ valueSet: canonical [0..1]

BackboneElement

Conceptproperty

♦property

BackboneElement

Contains

+ inactive: boolean [0..1]

+ version: string [0..1]

«Constraint»

+

system: uri [0..1]

+

abstract: boolean [0..1]

+

code: code [0..1]

+

display: string [0..1]

BackboneElement

ConceptReference

♦designation

♦concept

0..*

1..1

1..1

0..*

+ code: code

«TypeChoice» + value[x] [0..1]

1

♦subPropertylyO..*

BackboneElement

ConceptSubProperty

+ code:code

«TypeChoice»

+ value[x] [0..1]

0..*

BackboneElement

Designation

+ code:code

+ display: string [0..1]

BackboneElement

1..1

0..*

♦ value: string

«Binding»

♦ language: code [0..1]

+ use: Coding [0..1]

+ additionalUse: Coding [0..*]

♦filter

Filter

0..*

+ property: code

+ op: code

+ value: string

Рисунок 86 — Ресурс ValueSet

Таблица 389 — Состав элементов ресурса ValueSet

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

Унаследованы от абстрактного класса Resource

id

Логический идентификатор экземпляра ресурса

id

0..1

meta

Метаданные экземпляра ресурса

Meta

0..1

implicitRules

Совокупность правил, по которым должен создаваться экземпляр ресурса

uri

0..1

language

Основной человеческий язык, на котором представлено содержание ресурса

code

0..1

Унаследованы от абстрактного класса DomainResource

text

Текстовое описание содержания экземпляра ресурса для интерпретации человеком

Narrattive

0..1

contained

Вложенный экземпляр ресурса

Resource

0..*

extension

Дополнительное содержание, определенное при реализации

Extension

0..*

modifier-Extension

Модифицирующее расширение, которое не может быть проигнорировано

Extension

0..*

Собственные элементы

url

Канонический идентификатор набора значений, представленный в форме URI

uri

0..1

identifier

Формальный идентификатор набора значений, используемый при его представлении в других форматах или спецификациях

Identifier

0..*

version

Версия набора значений

string

0..1

version-Algorithm[x]

Алгоритм сравнения версий

*

0..1

name

Имя набора значений (для компьютера)

string

0..1

title

Имя набора значений (для человека)

string

0..1

status

Статус версии набора значений. Применяется к метаданным набора значений и к определению набора значений compose. Раскрытие набора значений не имеет статуса. Допустимые значения: draft (проект) | active (действует) | retired (действие прекращено) | unknown (статус неизвестен)

code

1

experimental

Признак тестового набора значений

boolean

0..1

date

Дата (и необязательное время) последнего изменения метаданных или определения набора значений compose

dateTime

0..1

publisher

Наименование организации или Ф.И.О. издателя, опубликовавшего набор значений

string

0..1

contact

Контактная информация издателя

Contact-Detail

0..*

description

Описание набора значений

markdown

0..1

useContext

Контекст использования набора значений (по умолчанию — не ограничен)

Usage-Context

0..*

361

ПНСТ 995—2024

Продолжение таблицы 389

Имя

Описание

Тип данных

Кратность

immutable

Признак возможности создания новых версий логического определения содержания набора значений

boolean

0..1

purpose

Назначение набора значений

markdown

0..1

copyright

Авторские права на набор значений

markdown

0..1

copyright-Label

Торговая марка и год(ы)

string

0..1

approvalDate

Дата утверждения

date

1

lastReview-Date

Дата последнего пересмотра

date

1

effective-Period

Период действия

Period

1

topic

Тема. Использование запрещено. Вместо него рекомендуется использовать элемент useContext, у которого компонент code имеет значение http:// terminology.hl7.org/CodeSystem/usage-context-type#topic, а компонент valueCodeableConcept — тему

CodeableConcept

0..*

author

Контактная информация автора

Contact-Detail

0..*

editor

Контактная информация редактора

Contact-Detail

0..*

reviewer

Контактная информация рецензента

Contact-Detail

endorser

Контактная информация одобрившей стороны

Contact-Detail

0..*

related-Artifact

Дополнительная документация, библиография и т. д.

Related

Artifact

0..*

compose

Комплекс критериев, определяющих содержание набора значений с помощью включения или исключения кодов из одной или нескольких систем кодирования. Его называют также логическим определением содержания

Backbone-Element

0..1

compose, lockeddate

Дата ввода в действие, используемая для определения версий определений всех ссылочных систем кодирования и наборов значений, включенных в сборку, но не привязанных к конкретной версии

date

0..1

compose, inactive

Признак включения в набор значений неактивных кодов, которые не должны использоваться. Если inactive = true, то неактивные коды должны быть представлены в экземплярах элемента expansion, если inactive = false, то они должны не представляться в экземплярах элемента expansion. Если этот признак отсутствует, то трактовка отсутствия зависит от реализации или от соответствующего параметра операции $expand. Обычно ожидается, что неактивные коды будут представлены

boolean

0..1

compose, include

Включение одного или нескольких кодов из системы кодирования или других наборов значений

Backbone-Element

1..*

362

Продолжение таблицы 389

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

compose, include.system

Канонический идентификатор ссылочной системы кодирования, представленный в форме URI

uri

0..1

compose, include.version

Версия ссылочной системы кодирования, из которой включаются понятия, или символ *, указывающий все версии

string

0..1

compose, include, concept

Включаемое понятие

Backbone-Element

0..*

compose.include.concept, code

Код включаемого понятия

code

0..1

compose.include.concept, display

Краткое описание кодированного понятия для пользователя. Если оно отсутствует, то программа при его визуализации должна использовать значение понятия, определенное в системе кодирования

string

0..1

compose.include.concept, designation

Дополнительное представление понятия — на другом языке, синоним и т. д

Backbone-Element

0..*

compose.include, concept, designation.language

Язык обозначения понятия

code

0..1

compose.include, concept, designation.use

Код использования данного обозначения понятия

Coding

0..1

compose.include, concept, designation.additionalUse

Код дополнительного использования данного обозначения понятия

Coding

0..*

compose.include, concept, designation.value

Текстовое значение обозначения понятия

string

1

compose.include, filter

Критерий отбора (фильтрации) кодированных понятий из системы кодирования, основанных на их свойствах (в том числе связях), или из результатов фильтрации по другому критерию. Если задано несколько критериев отбора, то все они должны быть истинными

Backbone-Element

0..*

compose.include, filter, property

Код, идентифицирующий свойство значения из системы кодирования или определенный в ней фильтр

code

1

compose.include, filter.op

Оператор, который можно использовать в данном фильтре. Допустимые значения: = (равно) | is-a (является) | descendent-of (потомок)| is-not-a (не является) | regex (регулярное выражение) | in (принадлежит) | not-in (не принадлежит) | generalizes (обобщает) | exists (существует)

code

1

compose.include, filter.value

Код из системы кодирования, или шаблон (для оператора regex), или булевское выражение (для оператора exists)

string

1

compose.include.valueSet

Ссылка на включаемый набор значений

canonical

0..*

compose.include.copyright

Авторские права на систему кодирования, включенную в набор значений

string

0..1

compose.exclude

Исключение одного или нескольких кодов из системы кодирования или из другого набора значений

Backbone-Element

1..*

363

ПНСТ 995—2024

Продолжение таблицы 389

Имя

Описание

Тип данных

Кратность

compose.exclude.system

Канонический идентификатор ссылочной системы кодирования, представленный в форме URI

uri

0..1

compose.exclude.version

Версия ссылочной системы кодирования, из которой берутся исключаемые понятия, или символ *, указывающий все версии

string

0..1

compose.exclude. concept

Исключаемое понятие

Backbone-Element

0..*

compose.exclude. concept, code

Код исключаемого понятия

code

0..1

compose.exclude. concept, display

Краткое описание кодированного понятия для пользователя. Если оно отсутствует, то программа при его визуализации должна использовать значение понятия, определенное в системе кодирования

string

0..1

compose.exclude. concept, designation

Дополнительное представление понятия — на другом языке, синоним и т.д

Backbone-Element

0..*

compose.exclude. concept, designation.language

Язык обозначения понятия

code

0..1

compose.exclude. concept, designation.use

Код использования данного обозначения понятия

Coding

0..1

compose.exclude. concept, designation.additionalUse

Код дополнительного использования данного обозначения понятия

Coding

0..1

compose.exclude. concept, designation.value

Текстовое значение обозначения понятия

string

1

compose.exclude. filter

Критерий отбора (фильтрации) кодированных понятий из системы кодирования, основанных на их свойствах (в том числе связях), или из результатов фильтрации по другому критерию. Если задано несколько критериев отбора, то все они должны быть истинными

Backbone-Element

0..*

compose.exclude. filter, property

Код, идентифицирующий свойство значения из системы кодирования или определенный в ней фильтр

code

1

compose.exclude. filter.op

Оператор, который можно использовать в данном фильтре. Допустимые значения: = (равно) | is-a (является) | descendent-of (потомок)| is-not-a (не является) | regex (регулярное выражение) | in (принадлежит) | not-in (не принадлежит) | generalizes (обобщает) | exists (существует)

code

1

compose.exclude. filter.value

Код из системы кодирования, или критерий (для оператора regex), или булевское выражение (для оператора exists)

string

1

compose.exclude. valueSet

Ссылка на исключаемый набор значений

canonical

0..*

compose.exclude. copyright

Авторские права на систему кодирования, включенную в набор значений

string

0..1

364

Продолжение таблицы 389

ПНСТ 995—2024

Имя

Описание

Тип данных

Кратность

compose.property

Свойство, возвращаемое в раскрытии набора значений, если клиент не запросил конкретные свойства. Может представлять собой код из определения свойства в системе кодирования или формальный URL со ссылкой на свойство. Особое значение * означает все свойства, известные серверу

string

0..*

compose.property

Свойство, возвращаемое в раскрытии набора значений, если клиент не запросил конкретные свойства. Может представлять собой код из определения свойства в системе кодирования или формальный URL со ссылкой на свойство. Особое значение * означает все свойства, известные серверу

string

0..*

expansion

Набор значений может быть также раскрыт, то есть превращен в простую коллекцию перечислимых значений. Результат раскрытия, если оно имело место, хранится в данном элементе

Backbone-Element

0..1

expansion, identifier

Уникальный идентификатор раскрытия набора значений

uri

0..1

expansion.next

Ссылка на следующую страницу вывода раскрытия набора значений

uri

0..1

expansion, timestamp

Момент времени, в который осуществлено раскрытие

dateTime

1

expansion.total

Общее число понятий в раскрытии набора значений

integer

0..1

expansion.offset

Если представление раскрытия набора значений осуществляется постранично, то здесь может быть указано смещение от начала раскрытия. Если постраничное представление раскрытия не используется, то этот элемент не должен использоваться

integer

0..1

expansion, parameter

Параметр, управляющий процессом раскрытия набора значений

Backbone-Element

0..*

expansion, parameter.name

Имя параметра, контролирующего раскрытие набора значений

string

1

expansion. parameter.value[x]

Значение параметра, контролирующего раскрытие набора значений. Допустимые типы данных: string | boolean | integer | decimal |uri | code | dateTime

0..1

expansion, property

Свойство, добавляемое к коду

Backbone-Element

0..*

expansion, property.code

Код, идентифицирующий свойство. Используется в элементе expansion.contains.property.code

code

1

expansion, property.uri

Ссылка на формальное описание семантики свойства, например, на систему кодирования http://hl7. org/fhir/concept-properties

uri

0..1

expansion, contains

Код понятия, входящий в раскрытие набора значений

Backbone-Element

0..*

expansion, contains.system

Абсолютный идентификатор URI системы кодирования, в которой определен код, включенный в данное раскрытие набора значений

uri

0..1

365

ПНСТ 995—2024

Окончание таблицы 389

Имя

Описание

Тип данных

Кратность

expansion, contains.abstract

Значение true указывает, что этот код включен только в целях навигации и пользователь не может его выбрать

boolean

0..1

expansion, contains.inactive

Признак неактивности кода в системе кодирования, где он определен

boolean

0..1

expansion, contains.version

Версия системы кодирования, из которой взят данный код

string

0..1

expansion, contains.code

Код значения в иерархии раскрытия набора значений. Если он отсутствует, то данный элемент expansion.contains используется как абстрактный и не представляет допустимый код значения

code

0..1

expansion, contains.display

Человеко-читаемая строка, рекомендуемая для представления значения данного кода

string

0..1

expansion.contains, designation

Дополнительное представление понятия — на другом языке, синоним и т.д.

Backbone-Element

0..*

expansion.contains, designation.language

Язык обозначения понятия

code

0..1

expansion.contains, designation.use

Код использования обозначения понятия

Coding

0..1

expansion.contains.

designation. additionalUse

Код дополнительного использования данного обозначения понятия

Coding

0..*

expansion.contains, designation.value

Текстовое значение обозначения понятия

string

0..1

expansion.contains, property

Свойство понятия

Backbone-Element

0..*

expansion.contains, property, code

Код, идентифицирующий свойство понятия. Должен принадлежать коллекции expansion.property, code

code

1

expansion.contains.property. value[x]

Значение свойства. Допустимые типы данных: string | boolean | integer | decimal |uri | code | date-Time

1

expansion.contains, property. subProperty

Субсвойство понятия

Backbone-Element

0..*

expansion.contains, property. subProperty code

Код, идентифицирующий субсвойство понятия. Должен принадлежать коллекции expansion, property.code

code

1

expansion.contains, property. subProperty. value[x]

Значение субсвойства. Допустимые типы данных: string | boolean | integer | decimal |uri | code | dateTime

1

expansion, contains.contains

Дочерний код или дочерняя запись в иерархии раскрытия набора значений

Backbone-Element

0..*

scope

Дополнительные пояснения к описанию набора значений

Backbone-Element

0..1

scope, inclusioncriteria

Описание критериев включения понятий или кодов

string

0..1

scope, exclusioncriteria

Описание критериев исключения понятий или кодов

string

0..1

366

ПНСТ 995—2024

15.2.2.3 Привязки к наборам значений

Привязки к наборам значений описаны в таблице 390.

Таблица 390 — Привязки к наборам значений

Путь

Набор значений

Тип привязки

Описание

ValueSet.

versionAlgorithm[x]

http://hl7.org/fhir/ValueSet/ version-algorithm

Расширяемая

Алгоритм сравнения версий

ValueSet.status

http://hl7.org/fhir/ValueSet/ publication-status

Обязательная

Статус жизненного цикла набора значений

ValueSet. jurisdiction

http://hl7.org/fhir/ValueSet/ jurisdiction

Расширяемая

Страны и регионы, для которых предназначен данный набор значений

ValueSet.topic

http://hl7.org/fhir/ValueSet/ definition-topic

Пример

Тема

ValueSet.compose. include.concept.desig-nation.language

http://hl7.org/fhir/ValueSet/lan-guages

Предпочтительная

Естественный язык

ValueSet.compose. include.concept.desig-nation.use

http://hl7.org/fhir/ValueSet/desig-nation-use

Расширяемая

Детали использования обозначения понятия

ValueSet.compose. include.concept.desig-nation.additionalllse

http://hl7.org/fhir/ValueSet/desig-nation-use

Расширяемая

Детали использования обозначения понятия

ValueSet.compose.

include.filter.op

http://hl7.org/fhir/ValueSet/fil-ter-operator

Обязательная

Вид операции, выполняемой как часть фильтра, основанного на значениях свойств

15.2.2.4 Ограничения ресурса ValueSet

Ограничения ресурса ValueSet приведены в таблице 391.

Таблица 391 — Ограничения ресурса ValueSet

Идентификатор

Вид

Путь

Описание

Выражение

cnl-0

Предупреждение

Базовый

Имя должно быть пригодным для использования в качестве идентификатора модуля приложениями машинной обработки, такими как генерация кода

name.exists() implies name. matches(‘A[A-Z] ([A-Za-zO-9J) {1,254}$’)

cnl-1

Предупреждение

ValueSet.url

URL не должен содержать | или # — эти символы затрудняют обработку канонических ссылок

exists() implies

matches('A[A|# ]+$’)

vsd-1

Правило

ValueSet. compose, include

Во включаемом или исключаемом множестве значений (include/exclude) должен быть указан компонент valueSet (ссылка на набор значений) или system (ссылка на систему кодирования)

valueSet.exists() or system.exists()

367

ПНСТ 995—2024

Окончание таблицы 391

Идентификатор

Вид

Путь

Описание

Выражение

vsd-2

Правило

ValueSet. compose, include

Во включаемом или исключаемом наборе значений, где указан элемент concept (понятие) или filter (фильтр) должен быть указан элемент system (ссылка на систему кодирования)

(concept.exists() or filter.exists()) implies system.exists()

vsd-3

Правило

ValueSet. compose, include

Элементы concept (понятие) и filter (фильтр) не могут быть указаны одновременно

concept.empty() or filter.emptyO

vsd-6

Правило

ValueSet. expansion, contains

Должен быть указан элемент code (код понятия) или display (значение понятия)

code.exists() or dis-play.exists()

vsd-9

Правило

ValueSet. expansion, contains

Если элемент раскрытия набора значений contains не является абстрактным (компонент abstract = true), то должен быть указан компонент code (код понятия)

code.exists() or abstract = true

vsd-10

Правило

ValueSet. expansion, contains

Если указан элемент code (код понятия), то должен быть указан элемент system (ссылка на систему кодирования)

code.emptyO or system. exists()

vsd-11

Правило

ValueSet. compose, include.concept. designation

Если элемент concept.designa-tion.additionalUse присутствует, то должен присутствовать элемент concept.designation.use

additionalUse.ex-ists() implies use.ex-ists()

15.2.2.5 Особенности идентификации

В ресурсе ValueSet предусмотрены три идентификатора набора значений:

a) ValueSet.id: логический идентификатор набора значений в системе, которая ведет его экземпляр. В качестве логического идентификатора используется UUID;

б) ValueSet.url: канонический URL который постоянен для данного набора значений и содержится в каждой его копии. В идеале это должен быть адрес URL содержания исходной версии набора значений у его первоисточника, но это не всегда возможно;

в) ValueSet.identifier: пара system/value, которая используется для идентификации набора значений во внешнем контексте. Элемент system идентифицирует схему идентификации, а элемент value — идентификатор системы кодирования, присвоенный согласно данной схеме. Обязательной парой является та, которая указывает объектный идентификатор (ОИД) системы кодирования. В этом случае system = urn:ietf:rfc:3986, а объектный идентификатор представляется в форме URI, например, urn:oid:1.2.643.2.40.10.996.1.

Кроме того, любое раскрытие набора значений имеет собственный идентификатор ValueSet. expansion.identifier, который однозначно идентифицирует это раскрытие.

Элементы identifier и version могут использоваться для ссылки на набор значений при разработке, в профиле или в сообщении.

При передаче кодированных значений (имеющих тип данных Coding или CodeableConcept) указывается только идентификатор системы кодирования, но не набора значений. Описание набора значений служит для форматно-логического контроля кодированного значения. Например, в описании набора значений Measurementunits может быть указано, что единица измерения должна браться из ОКЕИ или из UCUM. А в конкретном сообщении должен передаваться код из ОКЕИ или UCUM с указанием идентификатора выбранной системы кодирования. Наличие в сообщения кода из другой системы кодирования считается ошибкой.

368

ПНСТ 995—2024

15.2.2.6 Интенсиональные и экстенсиональные наборы значений

Набор значений может быть описан как интенсиональный или экстенсиональный. Эти термины восходят к понятиям, которыми оперируют математическая логика и теория множеств.

Интенсиональный набор значений обычно определен алгоритмически. Например, его состав может быть определен правилом «все европейские страны». Интенсиональные наборы значений имеют то достоинство, что они могут динамически обновляться. Если, к примеру, в системе кодирования стран мира появилась новая европейская страна, то она автоматически должна попасть в этот набор значений.

Экстенсиональный набор значений представляет собой перечисление входящих в него кодов. Это позволяет контролировать его состав, но затрудняет обеспечение актуальности.

15.2.2.7 Правила композиции

Правила композиции, то есть получения результирующего набора значений, формулируются следующим образом:

а) набор значений может представлять собой простой список кодов или же критерий выбора кодов из системы кодирования. К таким наборам значений предъявляются следующие требования:

б) операции include (включить) кумулятивны. Набор значений содержит объединение всех результатов применения этой операции;

в) к этому объединению применяются все фильтры и ссылки;

г) в операции include может задаваться одна система кодирования и несколько наборов значений;

д) если указаны только наборы значений (в элементах valueSet), то коды «выбираются» для включения, если они присутствуют в каждом из этих наборов значений (то есть образуется пересечение содержания этих наборов значений);

е) если указана только система кодирования, то применяются следующие правила:

ж) если понятия concept и фильтры filter не заданы, то включаются все коды из данной системы кодирования;

и) если заданы понятия concept, то только они и включаются;

к) если задан фильтр filter, то включаются все коды, удовлетворяющие критерию фильтрации;

л) если заданы и наборы значений, и система кодирования, то коды «включаются», если они выбраны из системы кодирования (после применения операций concept и filter) и входят в каждый ссылочный набор значений (то есть образуется пересечение отфильтрованного содержания системы кодирования с этими наборами значений);

м) если ссылка на систему кодирования не зависит от ее версии и присутствуют фильтры filter, то содержание результирующего набора значений является открытым и изменяется с течением времени по мере изменения ссылочной системы кодирования;

н) использование фильтров по свойствам кодов, описанным в системе кодирования, возможно только в случае, если соответствующее свойство в ней определено;

о) в дополнение к включению можно исключать коды. Операция исключения exclude трактуется также, как операция включения include, но выбранные с ее помощью коды исключаются из результирующего набора значений;

п) наборы значений могут включать в себя абстрактные коды, то есть коды, взятые из соответствующей системы кодирования, но помеченные как запрещенные для выбора пользователем. Они обычно используются в качестве механизма группировки и могут включаться в результирующий набор путем перечисления или с помощью фильтрации;

р) все операции исключения compose.exclude должны обрабатываться таким образом, чтобы исключенные коды не могли попасть в раскрытие набора значений expansion.

15.2.2.8 Набор значений, образованный из нескольких систем кодирования

В набор значений могут входить коды, принадлежащие разным системам кодирования. Типичным случаем является выборка основной части кодов из одной системы кодирования и добавление к ней нескольких дополнительных кодов [например, кода для Союзного государства в дополнение к ОКВ ОК (МК (ИСО 4217) 003-97) 014].

15.2.2.9 Раскрытие набора значений

Раскрытие набора значений представляет собой результат применения определения набора значений. Раскрытия наиболее полезны, если набор значений включает в себя все коды, определенные в системе кодирования, или отфильтрованное подмножество этих кодов.

Экземпляр ресурса ValueSet, представляющий собой раскрытый набор значений, содержит элемент ValueSet.expansion, содержащий список кодов, входящих в этот набор. Дополнительно он может

369

ПНСТ 995—2024

содержать элемент ValueSet.compose, описывающий алгоритм получения этого списка. Список кодов может быть иерархическим.

15.2.2.10 Параметры поиска экземпляров ресурса ValueSet

Специальные параметры поиска экземпляров ресурса ValueSet описаны в таблице 392. В дополнение к ним могут использоваться общие параметры поиска, описанные в подразделе 12.27.

Таблица 392 — Специальные параметры поиска экземпляров ресурса ValueSet

Имя

Тип

Описание

Выражение

code

token

Код, входящий в набор значений

ValueSet.expansion.contains.code | Value-Set.compose.include.concept.code

context

token

Контекст использования, назначенный набору значений

(ValueSet. useContext.value.ofType(Code-ableConcept))

contextquantity

quantity

Количественное значение контекста или диапазон количественных значений (если имеются), назначенных набору значений

(ValueSet.useContext.value.ofType(Quan-tity)) | (ValueSet.useContext.value.of-Type(Range))

context-type

token

Тип контекста, назначенного набору значений

ValueSet.useContext.code

context-type-quantity

composite

Тип использования контекста и количественное значение контекста или диапазон количественных значений (если имеются), назначенных набору значений

On ValueSet.useContext: context-type: code context-quantity: value.ofType(Quantity) | value.ofType(Range)

context-type-value

composite

Тип использования контекста и значение, входящее в набор значений

On ValueSet.useContext: context-type: code context: value.ofType(CodeableConcept)

date

date

Дата публикации набора значений

ValueSet.date

derived-from

reference

Экземпляр ресурса, от которого произведен набор значений

ValueSet.relatedArtifact. where(type=’de-rived-from’).resource

(Any)

description

string

Описание набора значений

ValueSet.description

effective

date

Предполагаемый период использования

ValueSet.effectivePeriod

expansion

uri

Идентификатор раскрытия набора значений

ValueSet.expansion.identifier

identifier

token

Внешний идентификатор набора значений

ValueSet.identifier

jurisdiction

token

Страна или регион, для которого предназначен набор значений

ValueSet.jurisdiction

name

string

Имя набора значений, предназначенное для машинной обработки

ValueSet.name

predecessor

reference

Предшественник набора значений

ValueSet.relatedArtifact.where(type=’pre-decessor’).resource

(Any)

publisher

string

Наименование издателя набора значений

ValueSet.publisher

370

Окончание таблицы 392

ПНСТ 995—2024

Имя

Тип

Описание

Выражение

reference

uri

Ссылка на систему кодирования, включенную в набор значений или исключенную из него, или ссылка на набор значений

ValueSet.compose.include.system

status

token

Текущий статус набора значений

ValueSet.status

title

string

Имя набора значений, предназначенное для человека

ValueSet.title

topic

token

Тема, ассоциированная с данным набором значений

ValueSet.topic

uri

uri

Идентификатор URI набора значений

ValueSet.url

version

token

Версия набора значений

ValueSet.version

16 Аутентификация и авторизация

Аутентификация персональных медицинских приборы осуществляется менеджерами ПМП и шлюзами Интернета вещей в соответствии с используемыми протоколами передачи данных, например, MQTT или Bluetooth. Варианты аутентификации и авторизации менеджеров (шлюзов) сервисом хранения и обработки результатов измерений предложены в технической статье [41], которую предполагается доработать до статуса стандарта ITU-T Н.812.5. В частности, рекомендуется использовать протокол OAuth 2.0 [42] и профиль JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants [43].

371

ПНСТ 995—2024

Приложение А (справочное)

Профиль UML

А.1 Общие сведения

При разработке типов данных и ресурсов на языке UML используется профиль, состав которого показан на рисунке А.1.

Рисунок А.1 —Состав профиля UML

Профиль UML состоит из стереотипов, перечисленных в таблице А.1.

Таблица А.1 —Стереотипы профиля UML

Имя

Применение

Описание

Подраздел

Binding

Элемент

Привязка элемента к набору значений

А.2

Constraint

Элемент, класс

Ограничение элемента или класса

А.З

Extension

Элемент, класс, тип данных

Метаданные расширения элемента, класса или типа данных

А.4

372

Окончание таблицы А. 1

ПНСТ 995—2024

Имя

Применение

Описание

Подраздел

Interface

Класс

Ресурс REST служит интерфейсом

А.5

Modifying

Элемент

Описание модификации семантики ресурса в зависимости от значения элемента

А.6

Profile

Класс

Метаданные профиля ресурса REST

А.7

RefTarget

Поле

Метаданные ссылки на ресурс REST

А.8

Resource

Класс

Ссылка на определение ресурса REST

А.9

Slice

Элемент

Метаданные группировок экземпляров повторяющегося элемента

А.10

TypeChoice

Элемент

Допустимые типы данных полиморфного элемента

А.11

А.2 Стереотип Binding

Стереотип Binding описывает привязку элемента к набору значений. Его атрибуты приведены в таблице А.2.

Таблица А.2 — Атрибуты стереотипа Binding

Имя

Описание

Тип

Кратность

valueSet

URL набора значений

String

1

strength

Степень привязки к набору значений: ?? (пример привязки) | ? (предпочтительная привязка) |+ (расширяемая привязка) | ! (обязательная привязка)

String

1

description

Описание привязки

String

1

А.З Стереотип Constraint

Стереотип Constraint описывает ограничение элемента или класса. Его атрибуты приведены в таблице А.З. В списках в качестве разделителей используется символ вертикальной черты (|).

Таблица А.З — Атрибуты стереотипа Constraint

Имя

Описание

Тип

Кратность

key

Список идентификаторов ограничений

String

1

level

Список строгости ограничений

String

1

location

Список мест применения ограничений

String

1

description

Список описаний ограничения

String

1

expression

Список логических выражений на языке FHIRPath, которые должны быть истинными (инварианты)

String

1

А.4 Стереотип Extension

Стереотип Extension описывает метаданные расширения элемента, класса или типа данных. Его атрибуты приведены в таблице А.4.

373

ПНСТ 995—2024

Таблица А.4 — Атрибуты стереотипа Extension

Имя

Описание

Тип

Кратность

identity

Идентификатор расширения

String

1

cardinality

Кратность расширения

String

1

type

Тип данных расширения

String

1

context

Контекст расширения

String

1

А.5 Стереотип Interface

Стереотип Interface указывает, что данный тип ресурса REST является интерфейсом.

А.6 Стереотип Modifying

Стереотип Modifying указывает, что значение элемента может изменять семантику экземпляра ресурса. Его атрибуты приведены в таблице А.5.

Таблица А.5 — Атрибуты стереотипа Modifying

Имя

Описание

Тип

Кратность

meaning

Описание изменения семантики

String

1

А.7 Стереотип Profile

Стереотип Profile указывает, что данный класс является профилем ресурса REST или другого профиля. Его атрибуты приведены в таблице А.6.

Таблица А.6 — Атрибуты стереотипа Profile

Имя

Описание

Тип

Кратность

baseDefinition

URL определения базового типа ресурса или профиля

String

1

derivation

Способ определения профиля: specialization (специализация) | constraint (ограничение)

String

1

А.8 Стереотип RefTarget

Стереотип RefTarget описывает допустимые типы ссылочных ресурсов. Его атрибуты приведены в таблице А.7. В списке в качестве разделителей используется символ вертикальной черты (|).

Таблица А.7 — Атрибуты стереотипа RefTarget

Имя

Описание

Тип

Кратность

target

Список типов ссылочных ресурсов или Any (любой)

String

1

А.9 Стереотип Resource

Стереотип Resource указывает, что данный класс является основным в определении типа ресурса. Его атрибуты приведены в таблице А.8.

Таблица А.8 — Атрибуты стереотипа Resource

Имя

Описание

Тип

Кратность

uri

URL описания типа ресурса

String

1

А.10 Стереотип Slice

Стереотип Slice указывает, что коллекция экземпляров данного элемента разбивается на непересекающиеся подмножества. Его атрибуты приведены в таблице А.9.

374

Таблица А.9 — Атрибуты стереотипа Slice

ПНСТ 995—2024

Имя

Описание

Тип

Кратность

discriminatorType

Тип дискриминатора: value (срезы различаются по значению элемента) | exists (срезы различаются по наличию или отсутствию элемента) | type (срезы различаются по типу элемента) | profile (срезы различаются по соответствию элемента заданному профилю) | position (срезы различаются по индексу элемента)

String

1

discriminatorPath

Путь к элементу, используемому для выделения срезов. Задается с использованием ограниченного подмножества языка FHIRPath

String

1

А.11 Стереотип TypeChoice

Стереотип TypeChoice описывает допустимые типы данных полиморфного элемента. Его атрибуты приведены в таблице А. 10. В списке в качестве разделителей используется символ вертикальной черты (|).

Таблица А. 10 — Атрибуты стереотипа TypeChoice

Имя

Описание

Тип

Кратность

datatype

Список допустимых типов данных

String

1

375

ПНСТ 995—2024

Приложение Б (справочное)

Пример плана дистанционного мониторинга

Б.1 Текстовое содержание плана для представления пациенту

Целевой уровень домашнего артериального давления:

- систолическое от 100 до 140;

- диастолическое от 60 до 90.

Лечение препаратом индапамид + рамиприл (0.625 мг + 2.5 мг), торговое наименование Консилар-Д24, один раз в день, предпочтительно утром. Капсулы необходимо проглатывать целиком и запивать достаточным количеством воды.

Ограничение потребления поваренной соли до 6 г/сут.

Аэробные нагрузки два раза в день по 30 мин.

Этапный эпикриз через две недели.

Измерение артериального давления 2 раза в день.

Ведение дневника приема лекарств.

Ведение дневника физической активности.

Для выполнения плана пациенту выдан тонометр ГемоДин-АКСМА (серийный номер 1234567).

Б.2 Структурированное содержание плана

Структурированное содержание плана дистанционного мониторинга включает в себя экземпляры ресурсов, перечисленные в таблице Б.1

Таблица Б.1 — Структурированное содержание плана дистанционного мониторинга

Ресурс

Профиль

Содержание

Patient

Patient-Dm

Идентификация пациента

Device

Device-Phg

Идентификация шлюза Интернета вещей

Device

Device-Phd

Идентификация персонального медицинского прибора

DeviceAssociation

DeviceAssociation-Dm

Привязка ПМП к пациенту

Goal

Goal-Dm

Целевой диапазон значений систолического артериального давления

Goal

Goal-Dm

Целевой диапазон значений диастолического артериального давления

Practitioner

Practitioner-Dm

Идентификация лечащего врача

CarePlan

CarePlan-Dm

План дистанционного мониторинга

Observation

http://hl7.org/fhir/Structure-Definition/vitalsigns

Рост пациента

Observation

http://hl7.org/fhir/Structu-reDefinition/vitalsigns

Вес пациента

Observation

http://hl7.org/fhir/Structu-reDefinition/vitalsigns

Возраст пациента (оценочный)

Task

Task-Medication

Лекарственное назначение

Task

Task-MedStat

Ведение дневника приема лекарств

Task

Task-Nutrlnt

Ведение дневника питания

Task

Task-QuestResp

Ведение дневника самонаблюдений

Task

Task-Phd

Измерение артериального давления

Task

Task-DiagRep

Составление этапного эпикриза

376

ПНСТ 995—2024

Между экземплярами ресурсов установлены ссылки, показанные на рисунке Б.2. Тем самым образован граф примера плана дистационного мониторинга. Наличие ссылок позволяет сократить число запросов HTTP GET, необходимых для считывания полного содержания плана, с помощью использования параметров управления результатами поиска include и revinclude.

object Плен ведения - примео

Рисунок Б.1 — Граф плана дистанционного мониторинга

Б.З Транзакция создания плана

Тело транзакции создания плана представляет собой контейнер Bundle типа transaction, в который вложены экземпляры ресурсов, перечисленные в таблице Б.1 Для каждого экземпляра указан метод создания HTTP POST и условие создания ifNoneExist, согласно которому экземпляр создается только в том случае, если на сервере отсутствует экземпляр с таким же идентификатором identifier.

Чтобы можно было воспользоваться параметрами управления результатами поиска _include и _revinclude и в то же время осуществлять поиск по идентификаторам identifier, каждая ссылка между экземплярами ресурсов имеет следующий вид:

<reference value=пoлный URL ссылочного экземпляра ресурса/>

<type value=Tnn ссылочного ресурса/>

< identi fie г>

<system value=cxeMa идентификации/>

377

ПНСТ 995—2024

<value value=3Ha4eHne идентификатора/> </identifier>

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

При проверке примера валидатором https://validator.fhir.org/ будут выданы ошибки и предупреждения. Ошибками помечены элементы profile, например, <profile value="Device-Phg"/>. Это связано с тем, что значение профиля должно представлять собой абсолютный URL, но указать базовый URL, который должен предшествовать имени профиля, в настоящем документе не представляется возможным — он должен вести на конкретную страницу платформы медицинских помощников. Большинство предупреждений связано с тем, что в кодируемых значениях указан компонент system, идентифицирующий систему кодирования, не известную валидатору, например, http:// hl7.org/fhir/uv/phd/CodeSystem/ContinuaDeviceldentifiers. <?xml version="1.О" encoding="UTF-8"?> <Bundle xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <!-- Тип контейнера - транзакция --> <type value="transaction"/> <!-- Дата и время формирования контейнера --> <timestamp value="2023-ll-10T12:15:23+03:00"/> <entry> <!-- В качестве адреса URL используется GUID - экземпляр еще не создан --> <fullUrl value="urn:uuid:e3c4b5fc-44al-4788-963c-4dla6bb6079d"/> <resource> <!-- Идентификация пациента --> <Patient> <meta> <!-- Имя профиля --> <profile value="Patient-Dm"/> </meta> <!-- Уникальный идентификатор (GUID) --> <identifier> <system value="urn:ietf:rfc:3986"/> <value va1ue="urn:uuid:ld5706bO-dO40-4602-b9fd-c6ff445c5793"/> </identifier> </Patient> </resource> <!-- Создать экземпляр ресурса Patient при условии, что нет экземпляра с таким же идентификатором --> <request> <method value="POST"/> <url value="Patient"/> <ifNoneExist value="identifier=urn:uuid:ld5706b0-dO40-4602-b9fd-

c6ff445c5793"/> </request> </entry> <entry> <!-- В качестве адреса URL используется GUID - экземпляр еще не создан --> <fullUrl value="urn:uuid:f9f2cab0-8a46-4 5 4d-b7Oa-cO6582bela61"/> <resource> <!-- Идентификация шлюза loT --> <Device> <meta> <!-- Имя профиля --> <profile value="Device-Phg"/> </meta> <!-- Уникальный идентификатор в формате EUI-64. В качестве идентификатора можно использовать МАС-адрес -->

378

ПНСТ 995—2024

<identifier>

<type>

<coding>

<system val-ue="http://hl7.org/fhir/uv/phd/CodeSystem/ ContinuaDeviceIdentifiers"/>

<code value="SYSID"/>

</coding>

</type>

<system value="urn:oid:1.2.840.10004.1.1.1.0.0.1.0.0.1.2680"/>

<value value="ED-AB-EE-DE-AD-77-C3-AA"/>

</identifier>

<!-- Тип прибора - шлюз -->

<type>

<coding>

<system value="urn:iso:std:iso:11073:10101"/>

<code value="531981"/>

</coding>

<text value="MDC_MOC_VMS_MDS_AHD: Шлюз loT или менеджер ПМП"/>

</type>

</Device>

</resource>

<!-- Создать экземпляр ресурса Device при условии, что нет экземпляра с таким же идентификатором -->

<request>

<method value="POST"/>

<url value="Device"/>

<ifNoneExist value="identifier=ED-AB-EE-DE-AD-77-C3-AA"/>

</request>

</entry>

<entry>

<!-- В качестве адреса URL используется GUID - экземпляр еще не создан -->

<fullUrl value="urn:uuid:bfc0c54d-aa0d-47bb-90fc-66d407fd81d0"/>

<resource>

<I —— Идентификация персонального медицинского прибора -->

<Device>

<meta>

<!-- Имя профиля -->

<profile value="Device-Phd"/>

</meta>

<!—— Уникальный идентификатор в формате EUI-64. Возвращается прибором по запросу.

Если прибор соответствует ГОСТ Р 56845-2019, то это атрибут System-Id объекта MDS

< i dent i f i е г>

<type>

<coding>

<system val-ue="http://hl7.org/fhir/uv/phd/CodeSystem/ ContinuaDeviceIdentifiers"/>

<code value="SYSID"/>

</coding>

</type>

<system va1ue="urn:oid:1.2.840.10004.1.1.1.0.0.1.0.0.1.2680"/>

<value value="FE-ED-AB-EE-DE-AD-77-C3"/>

</identifier>

<!-- Производитель прибора. Возвращается прибором по запросу -->

379

ПНСТ 995—2024

<manufacturer value="OOO &quot;AKCMA&quot;, г.Балашиха"/>

<!-- Серийный номер прибора. Возвращается прибором по запросу --> <serialNumber value=»1234567»/>

<!-- Модель прибора. Возвращается прибором по запросу -->

<modelNumber va1ие=»ГемоДин-АКСМА»/>

<!-- Тип прибора - ПМП -->

<type>

<coding>

<system value="urn:iso:std:iso:11073:10101"/>

<code value="65573"/>

</coding>

<text value="MDC_MOC_VMS_MDS_SIMP"/>

</type>

<!-- Версии компонентов прибора. Возвращаются прибором по запросу --> <version>

<!-- Версии аппарата -->

<type>

<coding>

<system value="urn:iso:std:iso:11073:10101"/>

<code value="531974"/>

</coding>

<text value="MDC_ID_PROD_SPEC_HW"/>

</type>

<value value="l.1.2"/>

</version>

<version>

<!-- Версии прошивки -->

<type>

<coding>

<system value="urn:iso:std:iso:11073:10101"/>

<code value="531976"/>

</coding>

<text value="MDC_ID_PROD_SPEC_FW"/>

</type>

<value value="6.3.4"/>

</version>

<conformsTo>

<!-- Специализация прибора -->

<specification>

<coding>

<system value="urn:iso:std:iso:11073:10101"/>

<code value="528391"/>

</coding>

<text value="MDC_DEV_SPEC_PROFILE_BP: Тонометр"/>

</specification>

</conformsTo>

<!-- Ссылка на шлюз, получающий данные от прибора -->

<gateway>

<reference>

<reference value="urn:uuid:f9f2cab0-8a46-454d-b70a-c06582bela61"/

<type value="Device"/>

<identifier>

<type>

<coding>

<system val-ue="http://hl7.org/fhir/uv/phd/CodeSystem/ ContinuaDeviceIdentifiers"/>

380

ПНСТ 995—2024

<code value="SYSID"/>

</coding>

</type>

<system value="urn:oid:1.2.840.10004.1.1.1.0.0.1.0.0.1.2680"/>

<value value = "ED-AB-EE-DE-AD-77-C3-AA"/>

</identifier>

</reference>

</gateway>

</Device>

</resource>

<!-- Создать экземпляр ресурса Device при условии, что нет экземпляра с таким же идентификатором -->

<request>

<method value="POST"/>

<url value="Device"/>

<ifNoneExist value="identifier=FE-ED-AB-EE-DE-AD-77-C3"/>

</request>

</entry>

<entry>

<!-- В качестве адреса URL используется GUID - экземпляр еще не создан -->

<fullUrl value="urn:uuid:0c20196d-92c0-4a6f-a3a8-44f452b3fbl9"/> <resource>

<!-- Привязка ПМП к пациенту -->

<DeviceAssociat1оп>

<meta>

<!-- Имя профиля -->

<profile value="DeviceAssociation-Dm"/>

</meta>

<!-- Уникальный идентификатор привязки (GUID) -->

<identifier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:6fc39ea7-06b4-4c61-95b2-3ealc0b37334"/> </identifier>

<!-- Ссылка на идентификацию ПМП -->

<device>

<reference value="urn:uuid:f9f2cab0-8a46-454d-b70a-c06582bela61"/>

<identifier>

<type>

<coding>

<system val-ue="http://hl7.оrg/fhir/uv/phd/CodeSуstem/ ContinuaDeviceIdentifiers"/>

<code value="SYSID"/>

</coding>

</type>

<system va1ue="urn:oid:1.2.840.10004.1.1.1.0.0.1.0.0.1.2680"/>

<value value="ED-AB-EE-DE-AD-77-C3-AA"/>

</identifier>

</device>

<!-- Статус привязки -->

<status>

<coding>

<system value="http://hl7.org/fhir/deviceassociation-status"/>

<code value="unknown"/>

</coding>

</status>

<!-- Ссылка на идентификацию пациента -->

381

ПНСТ 995—2024

<sub j ect>

<reference value="urn:uuid:e3c4b5fc-44al-4 788-963c-4dla6bb6079d"/>

<type value="Patient"/>

<identifier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:ld5706bO-dO40-4602-b9fd-c6ff445c5793"/> </identifier>

</subj ect>

</DeviceAssociation>

</resource>

<!-- Создать экземпляр ресурса DeviceAssociation при условии, что нет экземпляра с таким же идентификатором -->

<request>

<method value="POST"/>

<url value="DeviceAssociation"/>

<ifNoneExist value="identifier=urn:uuid:6fc39ea7-06b4-4c61-95b2-3ealc0b37334"/>

</request>

</entry>

<entry>

<!-- В качестве адреса URL используется GUID - экземпляр еще не создан --<fullUrl value="urn:uuid:le7d69b0-6985-4546-alb2-8c5bac31218c"/> <resource>

<!—— Цель ведения №1 -->

<Goal>

<meta>

<!-- Имя профиля -->

<profile value="Goal-Dm"/>

</meta>

<text>

<status value="additional"/>

<div xmlns="http://www.w3.org/1999/xhtml">

<р>Целевой уровень систолического артериального давления</р>

<р>больше 100 и меньше 140</р>

</div>

</text>

<!—— Уникальный идентификатор цели (GUID) -->

<identifier>

<system value="urn:ietf:rfс:3986"/>

<value value="urn:uuid:2cfl5749-7b55-4980-a856-6146740438f0"/>

</identifier>

<!-- Состояние жизненного цикла цели -->

<lifecycleStatus value="active"/>

<!-- Описание цели -->

<description>

<text value=»CncTonn4ecKoe артериальное давление от 100 до 140»/>

</description>

<!-- Ссылка на идентификацию пациента -->

<subj ect>

<reference value="urn:uuid:e3c4b5fc-44al-4788-963c-4dla6bb6079d"/>

<type value="Patient"/>

<identifier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:ld5706b0-dO40-4602-b9fd-c6ff445c5793"/> </identifier>

</subj ect>

382

ПНСТ 995—2024

<!-- Целевой показатель --> <target>

<!-- Вид измерения -->

<measure>

<!-- Код вида измерения в системе LOINC -->

<coding>

<system value="http://loinc.org"/>

<code value=»8480—6»/>

</coding>

<!-- Код вида измерения в НСИ Минздрава России --> <coding>

<system value="urn:oid:1.2.643.5.1.13.13.99.2.262"/>

<code value=»3»/>

<display уа1ие=»Артериальное давление систолическое»/> </coding> <text уа1ие=»Систолическое артериальное давление»/>

</measure>

<!-- Целевой диапазон -->

<detailRange>

<!-- Нижняя граница -->

<low>

<value value="100"/>

<unit value="MM.рт.ст."/>

<system value="http://unitsofmeasure.org"/>

<code value="mm[Hg]"/>

</low>

<!-- Верхняя граница -->

<high>

<value value="140"/>

<unit value="MM.рт.ст."/>

<system value="http://unitsofmeasure.org"/>

<code value="mm[Hg]"/>

</high>

</detailRange>

</target>

<!-- Дата текущего состояния цели -->

<statusDate value=»2023 —11 — 21»/>

</Goal>

</resource>

<!-- Создать экземпляр ресурса Goal при условии, что нет экземпляра с таким же идентифи-катором -->

<request>

<method value="POST"/>

<url value="Goal"/>

<ifNoneExist value="identifier=urn:uuid:2cfl5749-7b55-4980-a856-6146740438f0"/>

</request>

</entry>

<entry>

<!-- В качестве адреса URL используется GUID - экземпляр еще не создан --> <fullUrl value="urn:uuid:ac884dcl-6637-4 fle-97 5f-bede4 887 9fb5"/> <resource>

<!-- Цель ведения №2 -->

<Goal>

<meta>

<!-- Имя профиля -->

383

ПНСТ 995—2024

<profile value="Goal-Dm"/>

</meta>

<text>

<status value="additional"/>

<div xmlns="http://www.w3.org/1999/xhtml">

<р>Целевой уровень диастолического артериального давления</р> <р>больше 60 и меньше 90</р>

</div>

</1ext >

<!-- Уникальный идентификатор цели (GUID) --> <identifier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:Idbl8272-93ca-412d-81ed-bf46blc0713c"/> </identifier> <!-- Состояние жизненного цикла цели --> <lifecycleStatus value="active"/> <!-- Описание цели --> <description>

<text va 1 ие="Диастолическое артериальное давление от 60 до 90"/>

</descript!оп>

<!-- Ссылка на идентификацию пациента --> < subject>

<reference value="urn:uuid:e3c4b5fc-44al-4788-963c — 4dla6bb6079d"/>

<type value="Patient"/>

<identifier>

<system value="urn:ietf:rfc:3986"/>

<value va1ue="urn:uuid:ld5706bO-dO40-4602-b9fd-c6ff445c5793"/> </identif ier>

</subject>

<!-- Целевой показатель -->

<target>

<!-- Вид измерения -->

<measure>

<!-- Код вида измерения в системе LOINC -->

<coding>

<system value="http://loinc.org"/>

<code value="8462-4"/>

</coding>

<!-- Код вида измерения в НСИ Минздрава России --> <coding>

<system value="urn:oid:1.2.643.5.1.13.13.99.2.262"/>

<code value="2"/>

<display value="ApTepnanbHoe давление диастолическое"/> </coding>

<text уа1ие="Диастолическое артериальное давление"/>

</measure>

<!-- Целевой диапазон -->

<detailRange>

<!-- Нижняя граница -->

<low>

<value value="60"/>

<unit value="MM.рт.ст."/>

<system value="http://unitsofmeasure.org"/>

<code value="mm[Hg]"/>

</low>

<!-- Верхняя граница -->

384

ПНСТ 995—2024

<high>

<value value="90"/>

<unit value="MM.рт.ст."/>

<system value="http://unitsofmeasure.org"/>

<code value="mm[Hg]"/>

</high>

</de ta ilRange>

</target>

<!-- Дата текущего состояния цели -->

<statusDate value=»2023-l1-21»/>

</Goa1>

</resource>

<!-- Создать экземпляр ресурса Goal при условии, что нет экземпляра с таким же идентифи-катором -->

<request>

<method value="POST"/>

<url value="Goal"/>

<ifNoneExist value="identifier=urn:uuid:ldb18272-93ca-412d-81ed-

bf46blc0713c"/>

</request>

</entry>

<entry>

<!-- В качестве адреса URL используется GUID - экземпляр еще не создан -->

<fullUrl value = "urn:uuid:92fdce2b-8701-4dc2-aff7-1 Of13el5c44f"/>

<resource>

<!-- Идентификация лечащего врача -->

<Practitioner>

<meta>

<!-- Имя профиля -->

<profile value="Practitioner-Dm"/>

</meta>

<!-- Уникальный идентификатор лечащего врача (GUID) -->

<identifier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:5e0afd03-76e0-403e-9bl7-06f477fd9a55"/> </identifier> <!-- Телекоммуникационные адреса --> <telecom>

<system value="url"/>

<value value="https://t.me/practitionerl23"/>

</telecom>

<telecom>

<system value="email"/>

<value value="practitionerl23@mail.ru"/>

</telecom>

</Practitioner>

</resource>

<!-- Создать экземпляр ресурса Practitioner при условии, что нет экземпляра с таким же идентификатором -->

<request>

<method value="POST"/>

<url value="Practitioner"/>

<ifNoneExist value="identifier=urn:uuid:5e0afd03-76e0-403e-9bl7-06f477fd9a55"/>

</request>

</entry>

385

ПНСТ 995—2024

<entry>

<!-- В качестве адреса URL используется GUID - экземпляр еще не создан --> <fullUrl value="urn:uuid:e0144d84-172e-4514-811e-7e2546358977"/> <resource>

<!-- План дистанционного мониторинга --> <СагеР1ап>

<meta>

<profile value="CarePlan-Dm"/>

</meta>

<text>

<status value="additional"/>

<div xmlns = "http://www.w3.org/1999/xhtml">

<р>Целевой уровень домашнего артериального давления:</р>

<р>— систолическое от 100 до 140</р>

<р>— диастолическое от 60 до 90</р>

<р>Лечение препаратом индапамид + рамиприл (0.625 мг + 2.5 мг), торговое наименование Консилар-Д24, предпочтительно утром</р>

<р>Капсулы необходимо проглатывать целиком и запивать достаточным количеством воды</р>

<р>Ограничение потребления поваренной соли до 6 г/сут</р> <р>Аэробные нагрузки два раза в день по 30 мин</р> <р>Этапный эпикриз через две недели</р>

<р>Измерение артериального давления 2 раза в день</р>

<р>Ведение дневника приема лекарств</р>

<р>Ведение дневника физической активности</р>

<р>Тонометр ГемоДин-АКСМА серийный номер 1234567</р> </div>

</text>

<!-- Уникальный идентификатор плана ведения (GUID) --> <identifier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:c3eab073 — 5fe2 — 4a5d—bcbf — 6d59aeed4 004"/> </identifier> Otatus value="active"/> <intent value="plan"/>

<!-- Категория плана ведения -->

<category>

<text value="Диcтaнциoнный мониторинг"/>

</category>

<description value="Дocтижeниe целевого уровня артериального давления"/>

<!-- Ссылка на идентификацию пациента -->

<subj ect>

<reference value="urn:uuid:e3c4b5fc — 44a1 — 4788 — 963c — 4dla6bb607 9d"/> <type value="Patient"/> <identifier>

<sуstem value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:ld5706b0-dO40-4602-b9fd-c6ff445c5793"/>

</identi f ier>

</subj ect>

<!-- Начало действия плана -->

<period>

<start value="2023-ll-20"/>

</period>

<!-- Ссылка на идентификацию лечащего врача --> <custodian>

386

ПНСТ 995—2024

<reference value="urn:uuid:92fdce2b-8701-4dc2-aff7-10f13el5c44f"/>

<type value="Practitioner"/>

<identifier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:5e0afd03-76e0-403e-9bl7-06f477fd9a55"/>

</identifier>

</custodian>

<!-- Ссылка на цель ведения №1 -->

<goal>

<reference value="urn:uuid:Ie7d69b0-6985-4546-alb2-8c5bac31218c"/>

<type value="Goal"/>

<identifier>

<system va1ue="urn:ietf:rfc:3986"/>

<value value="urn:uuid:2cf!5749-7b55-4980-a856-6146740438f0"/>

</identifier>

</goal>

<!-- Ссылка на цель ведения №2 -->

<goal>

<reference value="urn:uuid:ac884dcl-6637-4fle-975f-bede48879fb5"/>

<type value="Goal"/>

<identifier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:ldbl8272-93ca-412d-81ed-bf46blc0713c"/>

</identifier>

</goal>

</CarePlan>

</resource>

<!-- Создать экземпляр ресурса CarePlan при условии, что нет экземпляра с таким же иден-тификатором -->

<request>

<method value="POST"/>

<url value="CarePlan"/>

<ifNoneExist value = "identifier=urn:uuid:сЗеаЬО73 — 5fe2 — 4a5d—bcbf— 6d59aeed4004"/>

</request>

</entry>

<entry>

<!-- В качестве адреса URL используется GUID - экземпляр еще не создан -->

<fullUrl value="urn:uuid:ld5ec929-ec43-4ef0-9ef6-0a80c9095312"/>

<resource>

<!-- Рост пациента -->

<Observation>

<meta>

<ргоfile value="http://hl7.org/fhir/StructureDefinition/ vitalsigns"/> </meta>

<!-- Уникальный идентификатор измерения (GUID) -->

<identifier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:b85497fe-14el-4dce-bae6-c7ea01e7c2ea"/> </identifier>

<!-- Ссылка на план ведения -->

<basedOn>

<reference value="urn:uuid:e0144d84-172e-4514-811e-7e2546358977"/>

<type value="CarePlan"/>

<identifier>

387

ПНСТ 995—2024

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:c3eab073-5fe2-4a5d-bcbf-6d59aeed4004"/>

</identifier>

</basedOn>

<status value="final"/>

<!-- Категория измерения -->

<category>

<coding>

<system value="http://terminology.hl7.org/CodeSystern/observationcategory" />

<code value="vital-signs"/>

</coding>

<text value='^H3HeHHO важные показатели"/>

</category>

<!-- Вид измерения -->

<code>

<!-- Код измерения по LOINC -->

<coding>

<system value="http://loinc.org"/>

<code value=»8302-2»/>

</coding>

<!-- Код измерения по НСИ Минздрава России -->

<coding>

<system value="urn:oid:1.2.643.5.1.13.13.99.2.262"/>

<code value="51"/>

<display value="flnnHa тела"/>

</coding>

<text value="PocT"/>

</code>

<!-- Ссылка на идентификацию пациента -->

<subj ect>

<reference value="urn:uuid:e3c4b5fc-44al-4788-963c-4dla6bb6079d"/>

<type value="Patient"/>

<identifier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:ld5706bO-dO40-4602-b9fd-c6ff445c5793"/> </identifier>

</subj ect>

<!-- Дата измерения -->

<effectiveDateTime value="2023-11-03"/>

<!-- Рост -->

<valueQuantity>

<value value="169"/>

<unit value="CM"/>

<system value="http://unitsofmeasure.org"/>

<code value="cm"/>

</valueQuantity>

</Observation>

</resource>

<!-- Создать экземпляр ресурса Observation при условии, что нет экземпляра с таким же идентификатором -->

<request>

<method value="POST"/>

<url value="Observation"/>

<ifNoneExist value = "identifier=urn:uuid:b854 97 fe-14el-4dce-bae6-c7ea01e7c2ea"/>

388

ПНСТ 995—2024

</request>

</entry>

<entry>

<!-- В качестве адреса URL используется GUID - экземпляр еще не создан -->

<fullUrl value="urn:uuid:79b5604b-c28e-4a7f-b90c-6274e7f51542"/>

<resource>

<!-- Вес пациента -->

<Observation>

<!-- Уникальный идентификатор измерения (GUID) -->

<identif ier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:117bc50b-2ab3-467b-8dbl-72e26e867e08"/>

</identifier>

<!-- Ссылка на план ведения -->

<basedOn>

<reference value="urn:uuid:e0144d84-172e-4514-811e-7e2546358977"/>

<type value="CarePlan"/>

<identifier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:сЗеаЬО73-5fe2-4a5d-bcbf-6d59aeed4004"/>

</identifier>

</basedOn>

<status value="final"/>

<!-- Категория измерения -->

<category>

<coding>

<system value="http://terminology.hl7.org/CodeSystem/observation-category"/>

<code value="vital-signs"/>

</coding>

<text value='^H3HeHHO важные показатели"/>

</category>

<!-- Вид измерения -->

<code>

<!-- Код измерения по LOINC -->

<coding>

<system value="http://loinc.org"/>

<code value=»29463-7»/>

</coding>

<!-- Код измерения по НСИ Минздрава России -->

<coding>

<system value="urn:oid:1.2.643.5.1.13.13.99.2.262"/>

<code value="50"/>

<display value="Macca тела"/>

</coding>

<text value="Bec"/>

</code>

<!-- Ссылка на идентификацию пациента -->

<subj ect>

<reference value="urn:uuid:e3c4b5fc-44al-4788-963c-4dla6bb6079d"/>

<type value="Patient"/>

<identifier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:ld5706bO-dO40-4602-b9fd-c6ff445c5793"/>

</identifier>

</subj ect>

389

ПНСТ 995—2024

<!-- Дата измерения -->

<effeetiveDateTime value="2023-11-03"/>

<!-- Bec -->

<valueQuantity>

<value value="72"/>

<unit value="Kr"/>

<system value="http://unitsofmeasure.org"/>

<code value="kg"/>

</valueQuantity>

</Observation>

</resource>

<!-- Создать экземпляр ресурса Observation при условии, что нет экземпляра с таким же идентификатором -->

<request>

<method value="POST"/>

<url value="Observation"/>

<ifNoneExist value="identifier=urn:uuid:117bc50b-2ab3-467b-8dbl-72e26e867e08"/>

</request>

</entry>

<entry>

<!-- В качестве адреса URL используется GUID - экземпляр еще не создан --> <fullUrl value = "urn:uuid:5с80d3ef-2се7-4Ь01-9af1-566bfdea38бе"/> <resource>

<!-- Возраст пациента (оценочный) -->

<Observation>

<!-- Уникальный идентификатор измерения (GUID) -->

<identif ier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:dd8e885d-93c9-4f6b-a582-b3531cfad62c"/> </identifier>

<!-- Ссылка на план ведения -->

<basedOn>

<reference value="urn:uuid:e0144d84-172e-4514-811e-7e2546358977"/>

<type value="CarePlan"/>

<identifier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:c3eab07 3-5fe2-4a5d-bcbf-6d59aeed4004"/>

</identifier>

</basedOn>

<status value="final"/>

<!-- Вид измерения -->

<code>

<!-- Код измерения no LOINC -->

<coding>

<system value="http://loinc.org"/>

<code value="21611-9"/>

</coding>

<text value="OueHKa возраста"/>

</code>

<!-- Ссылка на идентификацию пациента -->

<subj ect>

<reference value="urn:uuid:e3c4b5fc-4 4al-4788-963c-4dla6bb607 9d"/>

<type value="Patient"/>

<identifier>

<system value="urn:ietf:rfc:3986"/>

390

ПНСТ 995—2024

<value value="urn:uuid:ld5706b0-d040-4602-b9fd-c6ff445c5793"/> </identifier>

</subj ect>

<!-- Дата измерения -->

<effectiveDateTime value="2023-ll-03"/>

<!-- Bec -->

<valueQuantity>

<value value="72"/>

<unit value="лет"/>

<system value="http://unitsofmeasure.org"/>

<code value="a"/>

</valueQuantity>

</Observation>

</resource>

<!-- Создать экземпляр ресурса Observation при условии, что нет экземпляра с таким же идентификатором -->

<request>

<method value="POST"/>

<url value="Observation"/>

<ifNoneExist value="identifier=urn:uuid:dd8e885d—93c9—4f6b—a582— b3531cfad62c"/>

</request>

</entry>

<entry>

<!-- В качестве адреса URL используется GUID - экземпляр еще не создан --> <fullUrl value="urn:uuid:ed0a3c4b-af09-4Ь23-Ь034-9977dd76f2cc"/> <resource>

<!-- Лекарственное назначение -->

<Task>

<meta>

<profile value="Task-Medication"/>

</meta>

<!-- Полное описание мероприятия, ориентированное на пациента --> <text>

<status value="additional”/>

<div xmlns = "http://www.w3.org/1999/xhtml">

<р>Индапамид + рамиприл (0.625 мг + 2.5 мг), торговое наименование Консилар-Д24, предпочтительно утром</р>

<р>Капсулы необходимо проглатывать целиком и запивать достаточным количеством воды</р> </div> </text> <’—— Уникальный идентификатор мероприятия (GUID) --> <identifier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:19bdb0b6—de88-4f9d-bd62-7 57ffe2ad3ab"/> </identifier>

<!—— Ссылка на план ведения -->

<basedOn>

<reference value="urn:uuid:e0144d84-172e-4514-811e-7e2546358977"/>

<type value="CarePlan"/>

<identifier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:c3eab07 3-5fe2-4a5d-bcbf-6d5 9aeed4004"/> </identifier>

</basedOn>

391

ПНСТ 995—2024

<status value="ready"/>

<intent value="order"/>

<code>

<!-- Код ATX лекарственного препарата -->

<coding>

<system value="https://www.whocc.no"/>

<code value=»C09BA05»/>

</coding>

<!-- Торговое наименование лекарственного препарата -->

<coding>

<display value="Консилар-Д24"/>

</coding>

<!-- Международное непатентованное наименование -->

<text уа1ие="Рамиприл + Индапамид"/>

</code>

<description уа1ие="Консилар-Д24 1 капе. (0.625 мг + 2.5 мг) однократно утром»/>

<!-- Ссылка на пациента, которому назначен лекарственный препарат --> <f ог>

<reference value="urn:uuid:e3c4b5fc-44al-4788-963c-4dla6bb6 079d"/>

<type value="Patient"/>

<identifier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:ld5706bO-dO40-4602-b9fd-c6ff445c5793"/> </identifier>

</for>

<!-- Период выполнения мероприятия -->

<requestedPeriod>

<start value="2023-ll-20"/>

<end value="2023-12-04"/>

</requestedPeriod>

<!-- Ссылка на исполнителя мероприятия - пациента -->

<requestedPerformer>

<reference>

<reference value="urn:uuid:e3c4b5fc-4 4al-4 7 88-963c-4dla6bb6079d"/

<type value="Patient"/>

<identifier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:ld5706b0-dO40-4602-b9fd-c6ff445c5793"/> </identifier>

</reference>

</requestedPerformer>

<!-- Расписание выполнения мероприятия -->

<input>

<!-- Повествовательное описание расписания -->

<type>

<text уа!ие="Однократно утром"/>

</type>

<!-- Структурированное описание расписания -->

<valueTiming>

<code>

<coding>

<system value="http://terminology.hl7.org/CodeSystem/v3-GTSAbbreviation"/>

<code value="AM"/>

</coding>

392

ПНСТ 995—2024

</code>

</valueTiming>

</input>

</Task>

</resource>

<!-- Создать экземпляр ресурса Task при условии, что нет экземпляра с таким же идентифи-катором -->

<request>

<method value="POST"/>

<url value="Task"/>

<ifNoneExist value="identifier=urn:uuid:19bdb0b6-dc88-4f9d-bd62-757ffe2ad3ab"/>

</request>

</entry>

<entry>

<!-- В качестве адреса URL используется GUID - экземпляр еще не создан --> <fullUrl value="urn:uuid:2а815d96-eea0-4526-bb28-3861cld2b018"/> <resource>

<!-- Ведение дневника приема лекарств -->

<Task>

<meta>

<profile value="Task-MedStat"/>

</meta>

<!-- Полное описание мероприятия, ориентированное на пациента --> <text>

<status value="additional"/>

<div xmlns="http://www.w3.org/1999/xhtml">

<р>Вести дневник приема лекарств</р>

<р>3аполнять после каждого приема лекарства</р>

</div>

</text>

<!-- Уникальный идентификатор мероприятия (GUID) -->

<identifier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:d3dll735 — f6e9 — 462f—bOld—76e06d0d0f25"/> </identifier>

<!—— Ссылка на план ведения -->

<basedOn>

<reference value="urn:uuid:e0144d84-172e-4514-811e-7e2546358977"/>

<type value="CarePlan"/>

<identifier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:c3eab073 — 5fe2 — 4a5d—bcbf— 6d5 9aeed4004"/>

</identifier>

</basedOn>

<status va1ue="ready"/>

<intent value="order"/>

<code>

<!-- Код в справочнике типов мероприятий -->

<coding>

<system value="http://loinc.org"/>

<code value="87232-5"/>

<display value="Medication administration.brief"/>

</coding>

<!-- Текст типа мероприятия -->

<text value="' Ведение дневника приема лекарств"/>

393

ПНСТ 995—2024

</code>

<description value="BefleHwe дневника приема лекарств"/>

<!-- Ссылка на пациента, применяющего лекарственный препарат --> <f ог>

<reference value="urn:uuid:e3c4b5fc-44al-4788-963c-4dla6bb6079d"/>

<type value="Patient"/>

<identifier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:ld5706bO-dO40-4602-b9fd-c6ff445c5793"/> </identif ier>

</for>

<!-- Период выполнения мероприятия -->

<requestedPeriod>

<start value="2023-ll-20"/>

<end value="2023-12-04"/>

</requestedPeriod>

<!-- Ссылка на исполнителя мероприятия - пациента -->

<requestedPerformeг>

<reference>

<reference value="urn:uuid:e3c4b5fc-44al-4 7 8 8-963c-4dla6bb6079d"/>

<type value="Patient"/>

<identifier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:ld5706b0-d040-4602-b9fd-c6ff445c5793"/> </identifier>

</reference>

</requestedPerformer>

<!-- Расписание выполнения мероприятия -->

<input>

<!-- Повествовательное описание расписания -->

<type>

<text ча1ие="После каждого приема лекарственного препарата"/> </type> <!-- Структурированное описание расписания --> <valueTiming>

<repeat>

<when value="IMD"/>

</repeat>

</valueTiming>

</input>

</Task>

</resource>

<!-- Создать экземпляр ресурса Task при условии, что нет экземпляра с таким же идентификатором -->

<request>

<method value="POST"/>

<url value="Task"/>

<ifNoneExist value="identifier=urn:uuid:d3dll735-f6e9-462f-b01d-76e06d0d0f25"/>

</request>

</entry>

<entry>

<!-- В качестве адреса URL используется GUID - экземпляр еще не создан -->

<fullUrl value="urn:uuid:139ab70d-albb-4bc5-ab00-a841ebda7ebe"/> <resource>

<!-- Ведение дневника питания -->

394

ПНСТ 995—2024

<Task>

<meta>

<profile value="Task-Nutrlnt" / >

</meta>

<!-- Полное описание мероприятия, ориентированное на пациента --> <text>

<status value="additional"/>

<div xmlns="http://www.w3.org/1999/xhtml">

<р>Вести дневник приема питания</р>

<р>3аполнять после каждого приема лекарства</р> </div>

</text>

<!-- Уникальный идентификатор мероприятия (GUID) -->

<identifier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:4c8c91a7-d4aa-49a2-9ced-e9da7c5ad4f4"/> </identifier>

<!-- Ссылка на план ведения -->

<basedOn>

<reference value="urn:uuid:e0144d84-172e-4514-811e-7e2546358977"/>

<type value="CarePlan"/>

<identifier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:c3eab073 — 5fe2 — 4a5d—bcbf— 6d59aeed4 004"/> </identifier>

</basedOn>

<status va1ue="ready"/>

<intent value="order"/>

<code>

<! —— Код в справочнике типов мероприятий -->

<coding>

<sуstem value="http://loinc.org"/>

<code value="84282-3"/>

<display value="Nutrition and dietetics Patient's home Note"/> </coding>

<!—— Текст типа мероприятия -->

<text value="' Ведение дневника приема питания"/>

</code >

<description уа!ие="Ведение дневника приема питания"/>

<!-- Ссылка на пациента, принимающего питание --> < for >

<reference value="urn:uuid:e3c4b5fc — 44a1 — 4788 — 963c — 4dla6bb6079d"/>

<type value="Patient"/>

<identifier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:ld5706bO-dO40-4602-b9fd-c6ff445c5793"/>

</i denti f i e r>

< / f о r >

<!-- Период выполнения мероприятия -->

<requestedPeriod>

<start value="2023-ll-20"/>

<end value="2023-12-04"/>

</requestedPeriod>

<!-- Ссылка на исполнителя мероприятия - пациента -->

< гeque s tedPe г forme г>

<reference>

395

ПНСТ 995—2024

<reference value="urn:uuid:e3c4b5fc-44al-4788-963c-4dla6bb6079d"/>

<type value="Patient"/>

<identifier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:ld5706bO-dO40-4602-b9fd-c6ff445c5793"/> </identifier>

</reference>

</requestedPerformer>

<!-- Расписание выполнения мероприятия -->

<input>

<!-- Повествовательное описание расписания -->

<type>

<text value=»nocne каждого приема питания»/>

</type>

<!-- Структурированное описание расписания -->

<valueTiming>

<repeat>

<when value="IMD"/>

</repeat>

</valueTiming>

</input>

</Task>

</resource>

<!-- Создать экземпляр ресурса Task при условии, что нет экземпляра с таким же идентифи-катором -->

<request>

<method value="POST"/>

<url value="Task"/>

<ifNoneExist value="identifier=urn:uuid:4c8c91a7-d4aa-49a2-9ced-e9da7c5ad4f4"/>

</request>

</entry>

<entry>

<!-- В качестве адреса URL используется GUID - экземпляр еще не создан -->

<fullUrl value="urn:uuid:ec5c3376-db87-456f-b809-f629b4cd20cc"/> <resource>

<!-- Ведение дневника самонаблюдений -->

<Task>

<meta>

<profile value="Task-QuestResp"/>

</meta>

<!-- Полное описание мероприятия, ориентированное на пациента --> <text>

<status value="additional"/>

<div xmlns="http://www.w3.org/1999/xhtml">

<р>Вести дневник самонаблюдений</р>

<р>3аполнять в течение дня</р>

</div>

</text>

<!-- Уникальный идентификатор мероприятия (GUID) -->

<identifier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:654c8a9c-el5c-4Ibl-aaOf-cdad7e35ba8e"/> </identifier>

<!—— Ссылка на план ведения -->

<basedOn>

396

ПНСТ 995—2024

<reference value="urn:uuid:eO144d84-172е-4514-811е-7е2546358977"/>

<type value="CarePlan"/>

<identifier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:сЗеаЬО7 3-5fe2-4a5d-bcbf-6d59aeed4004"/>

</identifier>

</basedOn>

<status value="ready"/>

<intent value=»order»/>

<code>

<!-- Код в справочнике типов мероприятий -->

<coding>

<system value="http://loinc.org"/>

<code value="74465-6"/>

<display value="Questionnaire response Document"/>

</coding>

<!-- Текст типа мероприятия -->

<text value="' Ведение дневника самонаблюдений"/>

</code>

<description value="BefleHne дневника самонаблюдений"/>

<!-- Ссылка на пациента, принимающего питание -->

<f ог>

<reference value="urn:uuid:e3с4b5fc-44al-4788-9 63c-4dla6bb6079d"/>

<type value="Patient"/>

<identifier>

<system value="urn:ietf:rfc:3986"/>

<value va1ue="urn:uuid:ld5706bO-dO40-4602-b9fd-c6ff445c5793"/>

</identif ier>

</for>

<!-- Период выполнения мероприятия -->

<requestedPeriod>

<start value="2023-ll-20"/>

<end value="2023-12-04"/>

</requestedPeriod>

<!-- Ссылка на исполнителя мероприятия - пациента -->

<requestedPerformer>

<reference>

<reference value="urn:uuid:e3c4b5fc-4 4al-47 88-963c-4dla6bb607 9d"/>

<type value="Patient"/>

<identifier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:ld5706b0-d040-4602-b9fd-c6ff445c5793"/>

</identifier>

</reference>

</requestedPerformer>

<!-- Расписание выполнения мероприятия -->

<input>

<!-- Повествовательное описание расписания -->

<type>

<text value="B течение дня"/>

</type>

<!-- Структурированное описание расписания -->

<valueTiming>

<repeat>

<when value="IMD"/>

</repeat>

397

ПНСТ 995—2024

</valueTiming>

</input>

</Task>

</resource>

<!-- Создать экземпляр ресурса Task при условии, что нет экземпляра с таким же идентификатором -->

<request>

<method value="POST"/>

<url value="Task"/>

<ifNoneExist value="identifier=urn:uuid:654c8a9c-el5c-4Ibl-aaOf-cdad7e35ba8e"/>

</request>

</entry>

<entry>

<!-- В качестве адреса URL используется GUID - экземпляр еще не создан --> <fullUrl value="urn:uuid:d54a8662 — 9199 — 43ff—b9d4 — 6132a3a71c88"/> <resource>

<!-- Измерение артериального давления -->

<Task>

<meta>

<profile value="Task-Phd"/>

</meta>

<!-- Полное описание мероприятия, ориентированное на пациента --> < text>

<status value="additional"/>

<div xmlns="http://www.w3.org/1999/xhtml">

<р>Измерять артериальное давление</р>

<р>два раза в день</р>

</div>

</text>

<!-- Уникальный идентификатор мероприятия (GUID) --> < i dent i f i е г>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:9alffda7-8822-4790-9fdf-b8b07c94845a"/> </identifier>

<!-- Ссылка на план ведения -->

<basedOn>

<reference value="urn:uuid:e0144d84-172e-4514-811e-7e2546358977"/>

<type value="CarePlan"/>

<identifier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:c3eab07 3-5fe2-4a5d-bcbf-6d5 9aeed4004"/> </identifier>

</basedOn>

<status value="ready"/>

<intent value="order"/>

<code>

<!-- Код в справочнике типов мероприятий -->

<coding>

<system value="urn:iso:std:iso:11073:10101"/>

<code value="528391"/>

<display value="MDC_DEV_SPEC_PROFILE_BP"/>

</coding>

<!-- Текст типа мероприятия -->

<text уа!ие="Измерение артериального давления"/>

</code >

398

ПНСТ 995—2024

<description value="H3MepeHne артериального давления"/>

<!-- Ссылка на пациента -->

<f ог>

<reference value="urn:uuid:e3c4b5fc-4 4al-4 7 8 8-963c-4dla6bb607 9d"/>

<type value="Patient"/>

<identifier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:ld5706bO-dO40-4602-b9fd-c6ff445c5793"/>

</identifier>

</for>

<!-- Период выполнения мероприятия -->

<requestedPeriod>

<start value="2023-ll-20"/>

<end value="2023-12-04"/>

</requestedPeriod>

<!-- Ссылка на исполнителя мероприятия - персональный медицинский прибор -->

<requestedPerformer>

<reference>

<reference value="urn:uuid:bfc0c54d-aa0d-47bb-90fc-66d407fd81d0"/>

<type value="Device"/>

<identifier>

<type>

<coding>

<system val-ue="http://hl7.org/fhir/uv/phd/CodeSystem/ ContinuaDeviceIdentifiers"/>

<code value="SYSID"/>

</coding>

</type>

<system value="urn:oid:1.2.840.10004.1.1.1.0.0.1.0.0.1.2680"/>

<value value="FE-ED-AB-EE-DE-AD-77-C3"/>

</identifier>

</reference>

</requestedPerformer>

<!-- Расписание выполнения мероприятия -->

<input>

<!-- Повествовательное описание расписания -->

<type>

<text value=»flBa раза в день»/>

</type>

<!-- Структурированное описание расписания -->

<valueTiming>

<code>

<coding>

<system value="http://terminology.hl7.org/CodeSystem/v3-GTSAbbreviation"/>

<code value="BID"/>

</coding>

<text value="flBa раза в день"/>

</code>

</valueTiming>

</input>

</Task>

</resource>

<!-- Создать экземпляр ресурса Task при условии, что нет экземпляра с таким же идентификатором -->

399

ПНСТ 995—2024

<request>

<method value="POST"/>

<url value="Task"/>

<ifNoneExist value="identifier=urn:uuid:9alffda7-8822-4790-9fdf-

Ь8Ь0 7c94 84 5a"/>

</request>

</entry>

<entry>

<!-- В качестве адреса URL используется GUID - экземпляр еще не создан --

<fullUrl value="urn:uuid:03b50a6f-fa21-48e9-9103-fca514ca849e"/>

<resource>

<!-- Составление этапного эпикриза -->

<Task>

<meta>

<profile value="Task-DiagRep"/>

</meta>

<!-- Полное описание мероприятия, ориентированное на пациента --> <text>

<status value="additional"/>

<div xmlns="http://www.w3.org/1999/xhtml">

<р>Составить этапный эпикриз</р>

</div>

</text>

<!-- Уникальный идентификатор мероприятия (GUID) -->

<identifier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:6a7df814 — ffc7 — 48da —ab05 —5c4358fl801b"/> </identifier>

<!-- Ссылка на план ведения -->

<bas edOn>

<reference value="urn:uuid:e0144d84-172e-4514-811e-7e2546358977"/>

<type value="CarePlan"/>

<identifier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:c3eab073 — 5fe2 — 4a5d—bcbf — 6d59aeed4004"/>

</identifier>

</basedOn>

<status value="ready"/>

<intent value="order"/>

<code>

<!—— Код в справочнике типов мероприятий -->

<coding>

<system value="http://loinc.org"/>

<code value="75498-6"/>

<display value="Telehealth Summary note"/>

</coding>

<!—— Текст типа мероприятия -->

<text va 1ие="Этапный эпикриз дистанционного мониторинга"/>

</code>

<description уа1ие="Составление этапного эпикриза дистанционного мониторинга"/>

<!-- Ссылка на пациента --> < for >

<reference value="urn:uuid:e3c4b5fc — 44a1 — 4788 — 963c — 4dla6bb6079d"/>

<type value="Patient"/>

<identifier>

400

ПНСТ 995—2024

<system value="urn:ietf:rfc:3986"/>

<value va1ue="urn:uuid:ld5706bO-dO40-4602-b9fd-c6ff445c5793"/>

</identifier>

</for>

<!-- Период выполнения мероприятия -->

<requestedPeriod>

<start value="2023-12-04"/>

<end value="2023-12-06"/>

</requestedPeriod>

<!-- Ссылка на исполнителя мероприятия - лечащего врача -->

<requestedPerformeг>

<reference>

<reference value="urn:uuid:92fdce2b-8701-4dc2-aff7-10f13el5c44f"/>

<type value="Practitioner"/>

<identifier>

<system value="urn:ietf:rfc:3986"/>

<value value="urn:uuid:5e0afd03-76e0-403e-9bl7-06f477fd9a55"/> </identifier>

</reference>

</requestedPerformer>

</Task>

</resource>

<!-- Создать экземпляр ресурса Task при условии, что нет экземпляра с таким же идентификатором -->

<request>

<method value="POST"/>

<url value="Task"/>

<ifNoneExist value="identifier=urn:uuid:6a7df814-ffc7-48da-ab05-5c4358fl801b"/>

</request>

</entry>

</Bundle>

401

ПНСТ 995—2024

Приложение В (справочное)

Сопоставление стандарта с HL7 FHIR R4

В.1 Общие сведения

Во многих разработках медицинских информационных систем, включая прототип платформы персональных медицинских помощников, реализованы требования, содержащиеся в спецификации HL7 FHIR Release 4 (кратко FHIR R4, см. https://hl7.org/fhir/R4). В значительной мере это обусловлено тем, что офис национального координатора ONC (The Office of the National Coordinator for Health Information Technology) утвердил требование соответствия Руководству по базовой реализации в США (US Core Implementation Guide), основанное на FHIR R4, в программе сертификации медицинских информационных систем (https://www.federalregister.gov/documents/2024/01/09/2023-28857/ health-data-technology-and-interoperability-certification-program-updates-algorithm-transparency-and).

Для предметной области дистанционного мониторинга состояния пациента с помощью персональных медицинских приборов версия HL7 FHIR Release 5 (кратко R5, см. https://hl7.org/fhir/R5) является более предпочтительной по следующим причинам:

а) механизм подписок на новые или измененные результаты измерений, предложенный в FHIR R4, оказался недостаточно эффективным. В частности, он не позволял обеспечить режим регулярного опроса наличия новых или измененных данных. Поэтому уже в HL7 FHIR Release 4В (кратко R4B) к ресурсу Subscription (подписка) добавились ресурсы SubscriptionTopic (тема подписки) и Subscriptionstatus (статус подписки). Определения этих ресурсов затем были перенесены в R5;

б) использование ресурса Observation (результат исследования) для передачи содержания дневников питания, имевшее место в реализациях R4, было признано недостаточно состоятельным и в R5 появился специализированный ресурс Nutritionintake (дневник питания);

в) в версии R4 ресурс Device (сведения о медицинском изделии) содержал ссылку на пациента, использующего данный прибор, из-за чего требовалось создавать новые экземпляры этого ресурса при передаче от одного пациента к другому. Кроме того, этот ресурс содержал сведения о текущем состоянии использования. В R5 был определен ресурс DeviceAssociation (ассоциация медицинского изделия с субъектом). Субъектами ассоциаций могут быть пациенты, группы лиц (к примеру, весы или тонометр могут быть ассоциированы с членами семьи или группой лиц), медицинские работники, использующие мобильные приборы, изделия (например, радиочастотная метка, прикрепленная к переносному прибору), близкие лица пациента. В этом же ресурсе можно передать сведения о текущем состоянии использования прибора.

Для предметной области дистанционного мониторинга состояния пациента с помощью персональных медицинских приборов другие отличия R5 от R4 имеют менее принципиальный характер. При этом значительная часть профилей, определенных в настоящем стандарте, будет пригодна без каких-либо изменений как для R5, так и для R4.

Чтобы упростить миграцию с R4 на R5, в настоящем приложении приведены сведения об отличиях в описаниях ресурсов и их профилей между этими версиями спецификации. Они показывают, что за исключением приведенных выше принципиальных отличий миграция разработок в предметной области дистанционного мониторинга состояния пациента с помощью персональных медицинских приборов не должна вызвать сколько-нибудь существенных затруднений.

В.2 Базисные ресурсы

Определения базисных ресурсов Resource и DomainResource в R4 и R5 совпадают.

В.З Ресурсы общего назначения

В.3.1 Ресурс Bundle — контейнер экземпляров ресурсов

Изменения ресурса Bundle по сравнению с версиями R4 и R4B представлены в таблице В.1.

Таблица В.1 — Изменения ресурса Bundle по сравнению с версиями R4 и R4B

Путь

Изменение

Bundle.type

Добавлен вариант значения subscription-notification

Bundle.link.relation

Тип изменен со string на code. Задана обязательная привязка к набору значений http://hl7.Org/fhir/ValueSet/iana-link-relationsl5.0.0

Bundle.issues

Дополнительный необязательный элемент

В 3.2 Ресурс MessageHeader — заголовок сообщения

Изменения ресурса MessageHeader по сравнению с версиями R4 и R4B представлены в таблице В.2.

402

Таблица В.2 — Изменения ресурса MessageHeader по сравнению с версиями R4 и R4B

ПНСТ 995—2024

Путь

Изменение

MessageHeader.event[x]

Добавлен вариант типа значения canonical(EventDefinition). Вариант типа uri удален

MessageHeader.destination. endpoint[x]

Переименован с endpoint на endpoint[x] и тем самым значение может иметь несколько типов данных.

Элемент сделан необязательным

Добавлен вариант типа данных Reference(Endpoint)

MessageHeader.sender

Добавлен вариант ссылки на экземпляр ресурса Device

MessageHeader.author

Добавлен вариант ссылки на экземпляры ресурсов Device, Organization

MessageHeader.source. endpoint[x]

Переименован с endpoint на endpoint[x] и тем самым значение может иметь несколько типов данных.

Элемент сделан необязательным

Добавлен вариант типа данных Reference(Endpoint)

MessageHeader.response.identifier

Тип данных изменен с id на Identifier

MessageHeader.enterer

Необязательный элемент удален

В.3.3 Ресурс OperationOutcome — результат операции

Изменения ресурса OperationOutcome по сравнению с версиями R4 и R4B представлены в таблице В.З.

Таблица В.З — Изменения ресурса OperationOutcome по сравнению с версиями R4 и R4B

Путь

Изменение

OperationOutcome.issue.severity

Добавлен вариант значения success

OperationOutcome.issue.code

Добавлены варианты значения limited-filter, success

В.3.4 Ресурс Parameters — параметры операции

Изменения ресурса Parameters по сравнению с версиями R4 и R4B представлены в таблице В.4.

Таблица В.4 — Изменения ресурса Parameters по сравнению с версиями R4 и R4B

Путь

Изменение

Parameters.parameter. value[x]

Добавлены варианты типа значения integer64, CodeableReference, Ratio Range, Availability, ExtendedContactDetail, Meta.

Удален вариант типа значения Contributor

В.З.5 Ресурс Subscription — подписка

Изменения ресурса Subscription по сравнению с версиями R4 и R4B представлены в таблице В.5.

Таблица В.5 — Изменения ресурса Subscription по сравнению с версиями R4 и R4B

Путь

Изменение

Subscription.identifier

Добавлен необязательный элемент

Subscription.name

Добавлен необязательный элемент

Subscription.status

Добавлен вариант значения entered-in-error

Subscription.topic

Добавлен обязательный элемент

Subscription.managingEntity

Добавлен необязательный элемент

Subscription.reason

Элемент сделан необязательным

Subscription.filterBy

Добавлен необязательный элемент

403

ПНСТ 995—2024

Окончание таблицы В. 5

Путь

Изменение

Subscription.filterBy.resourceType

Добавлен необязательный элемент

Subscription.filterBy.filterParameter

Добавлен обязательный элемент

Subscription.filterBy.comparator

Добавлен необязательный элемент

Subscription.filterBy.modifier

Добавлен необязательный элемент

Subscription.filterBy. value

Добавлен обязательный элемент

Subscription.channelType

Добавлен обязательный элемент

Subscription.endpoint

Добавлен необязательный элемент

Subscription.parameter

Добавлен необязательный элемент

Subscription.parameter.name

Добавлен обязательный элемент

Subscription.parameter, value

Добавлен обязательный элемент

Subscription.heartbeatperiod

Добавлен необязательный элемент

Subscription.timeout

Добавлен необязательный элемент

Subscription.contentType

Добавлен необязательный элемент

Subscription.content

Добавлен необязательный элемент

Subscription.maxCount

Добавлен необязательный элемент

Subscription.criteria

Обязательный элемент удален

Subscription.error

Необязательный элемент удален

Subscription.channel

Обязательный элемент удален

В.3.6 Ресурс Subscriptionstatus — статус подписки

В R4 отсутствует.

В.3.7 Ресурс SubscriptionTopic — тема подписки

В R4 отсутствует.

В.3.8 Ресурс CarePlan — план ведения

Изменения ресурса CarePlan по сравнению с версиями R4 и R4B представлены в таблице В.6.

Таблица В.6 — Изменения ресурса CarePlan по сравнению с версиями R4 и R4B

Путь

Изменение

CarePlan.basedOn

Добавлены варианты ссылок на экземпляры ресурсов ServiceRequest, Requestorchestration, NutritionOrder

CarePlan.intent

Добавлен вариант значения directive

CarePlan.custodian

Переименован с author на custodian

CarePlan.addresses

Тип данных изменен с Reference(Condition) на CodeableReference

CarePlan. activity. performedActivity

Добавлен необязательный элемент

CarePlan. activity.outcomeCodeable-Concept

Элемент удален. Вместо него следует использовать элемент

CarePlan. activity.performedActivity

CarePlan.activity.outcomeReference

Элемент удален. Вместо него следует использовать элемент

CarePlan.activity.performedActivity

CarePlan.activity.detail

Элемент удален. Вместо него следует использовать элемент

CarePlan.activity.plannedActivityReference

404

ПНСТ 995—2024

В.3.9 Профиль CarePlan-Dm

Изменения ресурса CarePlan, требующие учета при реализации профиля CarePlan-Dm, приведены в таблице В.7.

Таблица В.7 — Изменения ресурса CarePlan, требующие учета при реализации профиля CarePlan-Dm

Путь

Изменение

CarePlan.basedOn

Добавлены варианты ссылок на экземпляры ресурсов ServiceRequest, RequestOrchestration, NutritionOrder

CarePlan.custodian

Переименован с author на custodian

В.3.10 Ресурс Goal — цель

Изменения ресурса Goal по сравнению с версиями R4 и R4B представлены в таблице В.8.

Таблица В.8 — Изменения ресурса Goal по сравнению с версиями R4 и R4B

Путь

Изменение

Goal.continuous

Добавлен необязательный элемент

Goal.source

Переименован с expressedBy на source

Добавлены вариант ссылки на экземпляр ресурса CareTeam

Goal.addresses

Добавлены варианты ссылок на экземпляры ресурсов MedicationRequest, Procedure

Goal.outcome

Добавлен необязательный элемент

Goal.outcomeCode

Элемент удален. Вместо него следует использовать элемент Goal.outcome

Goal.outcomeReference

Элемент удален. Вместо него следует использовать элемент Goal.outcome

В.3.11 Профиль цели дистанционного мониторинга пациента Goal-Dm

Изменения ресурса Goal не требуют учета при реализации профиля CarePlan-Dm.

В.3.12 Ресурс ServiceRequest — назначение

Изменения ресурса ServiceRequest по сравнению с версиями R4 и R4B представлены в таблице В.9.

Таблица В.9 — Изменения ресурса ServiceRequest по сравнению с версиями R4 и R4B

Путь

Изменение

ServiceRequest.code

Тип данных изменен с CodeableConcept на

CodeableReference

ServiceRequest.orderDetail

Тип данных изменен с CodeableConcept на BackboneElement

ServiceRequest.orderDetail.parameterFocus

Добавлен необязательный элемент

ServiceRequest.orderDetail.parameter

Добавлен обязательный элемент

ServiceRequest.orderDetail.parameter.code

Добавлен обязательный элемент

ServiceRequest.orderDetail.parameter. value[x]

Добавлен обязательный элемент

ServiceRequest.focus

Добавлен необязательный элемент

ServiceRequest.location

Добавлен необязательный элемент

ServiceRequest.reason

Добавлен необязательный элемент

ServiceRequest.supportinglnfo

Тип данных изменен с Reference(Resource) на CodeableReference

ServiceRequest.bodyStructure

Добавлен необязательный элемент

405

ПНСТ 995—2024

Окончание таблицы В. 9

Путь

Изменение

ServiceRequest.patientinstruction

Максимальная кратность изменена с 1 на * Тип данных изменен на BackboneElement

ServiceRequest.patientinstruction.instruction^]

Добавлен необязательный элемент

ServiceRequest.locationCode

Элемент удален

ServiceRequest.locationReference

Элемент удален

ServiceRequest.reasonCode

Элемент удален. Вместо него следует использовать элемент reason

ServiceRequest.reasonReference

Элемент удален. Вместо него следует использовать элемент reason

В.З.13 Ресурс Task — мероприятие

Изменения ресурса Task по сравнению с версиями R4 и R4B представлены в таблице В.10.

Таблица В.10 — Изменения ресурса Task по сравнению с версиями R4 и R4B

Путь

Изменение

Task.statusReason

Тип данных изменен с CodeableConcept на CodeableReference

Task.doNotPerform

Добавлен необязательный элемент

Task.requestedPeriod

Добавлен необязательный элемент

Task.requestedPerformer

Добавлен необязательный элемент

Task.owner

Удалены варианты ссылок на экземпляры ресурсов HealthcareService, Device

Task.performer

Добавлен необязательный элемент

Task.performer.function

Добавлен необязательный элемент

Task.performer.actor

Добавлен обязательный элемент

Task.reason

Добавлен необязательный элемент

Task.input.value[x]

Добавлены варианты типов данных integer64, CodeableReference, RatioRange, Availability, ExtendedContactDetail, Meta.

Удален вариант типа данных Contributor

Task.output.value[x]

Добавлены варианты типов данных integer64, CodeableReference, RatioRange, Availability, ExtendedContactDetail, Meta.

Удален вариант типа данных Contributor

Task.performerType

Элемент удален. Вместо него следует использовать элемент Task. requestedPerformer

Task.reasonCode

Элемент удален. Вместо него следует использовать элемент reason

Task.reasonReference

Элемент удален. Вместо него следует использовать элемент reason

В.3.14 Профиль Task-Medication

Изменения ресурса Task, требующие учета при реализации профиля Task-Medication, приведены в таблице В.11.

Таблица В.11 — Изменения ресурса Task, требующие учета при реализации профиля Task-Medication

Путь

Изменение

Task.requestedPerformer

Добавлен обязательный элемент

406

Окончание таблицы В. 11

ПНСТ 995—2024

Путь

Изменение

Task.reason

Добавлен необязательный элемент

Task.performerType

Элемент удален. Вместо него следует использовать элемент Task.requestedPerformer

Task.reasonCode

Элемент удален. Вместо него следует использовать элемент reason

Task.reasonReference

Элемент удален. Вместо него следует использовать элемент reason

В.3.15 Профиль Task-Phd

Изменения ресурса Task, требующие учета при реализации профиля Task-Phd, приведены в таблице В.11.

В.З.16 Профиль Task-MedStat

Изменения ресурса Task, требующие учета при реализации профиля Task-MedStat, приведены в таблице В.11.

В.3.17 Профиль Task-Nutrlnt

Изменения ресурса Task, требующие учета при реализации профиля Task-Nutrlnt, приведены в таблице В.11.

В.3.18 Профиль Task-QuestResp

Изменения ресурса Task, требующие учета при реализации профиля Task-QuestResp, приведены в таблице В.11.

В.3.19 Профиль Task-DiagRep

Изменения ресурса Task, требующие учета при реализации профиля Task-DiagRep, приведены в таблице В.11.

В.3.20 Ресурс Device — сведения о медицинском изделии

Изменения ресурса Device по сравнению с версиями R4 и R4B представлены в таблице В. 12.

Таблица В.12 — Изменения ресурса Device по сравнению с версиями R4 и R4B

Путь

Изменение

Device.displayName

Добавлен необязательный элемент

Device.definition

Тип данных изменен с Reference(DeviceDefinition) на CodeableReference

Device.udiCarrier.deviceldentifier

Элемент сделан обязательным

Device.udiCarrier.issuer

Элемент сделан обязательным

Device.udiCarrier.entryType

Добавлен вариант значения electronic-transmission

Device.status

Удален вариант значения unknown

Device.availabilityStatus

Добавлен необязательный элемент

Device.biologicalSourceEvent

Добавлен необязательный элемент

Device.name

Переименован с deviceName на name

Device.name.value

Добавлен обязательный элемент

Device.name.type

Перемещен из Device.deviceName в Device.name.

Удалены варианты значений udi-label-name, manufacturer-name, model-name, other.

Добавлен вариант значения registered-name

Device.name.display

Добавлен необязательный элемент

Device.category

Добавлен необязательный элемент

Device.type

Максимальная кратность изменена с 1 на *

Device.version.installDate

Добавлен необязательный элемент

Device.conformsTo

Переименован со specialization на conformsTo

407

ПНСТ 995—2024

Окончание таблицы В. 12

Путь

Изменение

Device. conformsTo. category

Добавлен необязательный элемент

Device.conformsTo.specification

Добавлен обязательный элемент

Device.conformsTo. version

Перемещен из Device.specialization в Device.conformsTo

Device.property. value[x]

Добавлен обязательный элемент

Device.mode

Добавлен необязательный элемент

Device.cycle

Добавлен необязательный элемент

Device.duration

Добавлен необязательный элемент

Device.endpoint

Добавлен необязательный элемент

Device.gateway

Добавлен необязательный элемент

Device.statusReason

Элемент удален. Вместо него можно использовать элемент operation.status ресурса DeviceAssociation

Device.distinctldentifier

Элемент удален

Device.deviceName.name

Элемент удален

Device.specialization.systemType

Элемент удален

Device.property. valueQuantity

Элемент удален

Device.property. valueCode

Элемент удален

Device.patient

Элемент удален. Для привязки прибора к пациенту можно использовать ресурс DeviceAssociation

В.3.21 Профиль Device-Phd

Изменения ресурса Device, требующие учета при реализации профиля Device-Phd, приведены в таблице В.13.

Таблица ВИЗ — Изменения ресурса Device, требующие учета при реализации профиля Device-Phd

Путь

Изменение

Device.conformsTo

Переименован c specialization на conformsTo

Device.conformsTo.specification

Добавлен обязательный элемент

Device.conformsTo.version

Перемещен из Device.specialization в Device.conformsTo

Device.gateway

Добавлен необязательный элемент

В.3.22 Профиль Device-Phg

Изменения ресурса Device не требуют учета при реализации профиля Device-Phg.

В.3.23 DeviceAssociation — ассоциация медицинского изделия с субъектом

В R4 отсутствует.

В.3.24 Профиль DeviceAssociation-Dm

К R4 неприменим.

В.3.25 Ресурс DeviceMetric — измерительная способность медицинского прибора

Изменения ресурса DeviceMetric по сравнению с версиями R4 и R4B представлены в таблице В. 14.

408

Таблица В. 14 — Изменения ресурса DeviceMetric по сравнению с версиями R4 и R4B

ПНСТ 995—2024

Путь

Изменение

DeviceMetric.device

Добавлен обязательный элемент

DeviceMetric.color

Привязка к набору значений http://hl7.org/fhir/ValueSet/metric-color|4.0.0 изменена на требование «Наименование цвета из системы CSS Color Module Level 4 либо код цвета в системе RGB (#RRGGBB в шестнадцатеричной системе)»

DeviceMetric.measurementFrequency

Добавлен необязательный элемент

DeviceMetric.source

Элемент удален

DeviceMetric.parent

Элемент удален

DeviceMetric.measurementPeriod

Элемент удален

В.3.26 Ресурс Observation — результат исследования

Изменения ресурса Observation по сравнению с версиями R4 и R4B представлены в таблице В. 15.

Таблица В. 15 — Изменения ресурса Observation по сравнению с версиями R4 и R4B

Путь

Изменение

Observation.instantiates[x]

Добавлен необязательный элемент

Observation.triggeredBy

Добавлен необязательный элемент

Observation.triggeredBy.observation

Добавлен обязательный элемент

Observation.triggeredBy.type

Добавлен обязательный элемент

Observation.triggeredBy.reason

Добавлен необязательный элемент

Observation. partOf

Добавлен вариант ссылки на экземпляр ресурса GenomicStudy

Observation.subject

Добавлены варианты ссылок на экземпляры ресурсов Organization, Procedure, Practitioner, Medication, Substance, Biological-lyDerivedProduct, NutritionProduct

Observation.value[x]

Добавлены варианты типов данных Attachment, Reference(Mo-lecularSequence)

Observation.bodystructure

Добавлен необязательный элемент

Observation.specimen

Добавлен вариант ссылки на экземпляр ресурса Group

Observation.referenceRange.normalValue

Добавлен необязательный элемент

Observation.referenceRange.text

Тип данных изменен со string на markdown

Observation.derivedFrom

Добавлены варианты ссылок на экземпляры ресурсов ImagingSelection, GenomicStudy.

Удален вариант ссылки на экземпляр ресурса Media

Observation.component. value[x]

Добавлены варианты типов данных Attachment, Reference(Mo-lecularSequence)

В.3.27 Профиль Observation-PhdNumeric

Изменения ресурса Observation не требуют учета при реализации профиля Observation-PhdNumeric.

В.3.28 Профиль Observation-PhdCompoundNumeric

Изменения ресурса Observation не требуют учета при реализации профиля Observation-PhdCompoundNumeric.

В.3.29 Профиль Observation-PhdCodedEnumeration

Изменения ресурса Observation не требуют учета при реализации профиля Observation-PhdCodedEnumeration.

В.3.30 Профиль Observation-PhdBitsEnumeration

Изменения ресурса Observation не требуют учета при реализации профиля Observation-PhdBitsEnumeration.

409

ПНСТ 995—2024

В.3.31 Профиль Observation-PhdStringEnumeration

Изменения ресурса Observation не требуют учета при реализации профиля Observation-PhdStringEnumeration.

В.3.32 Профиль Observation-PhdRtsa

Изменения ресурса Observation не требуют учета при реализации профиля Observation-PhdRtsa.

В.3.33 Профиль Observation-PhdMedia

Изменения ресурса Observation не требуют учета при реализации профиля Observation-PhdMedia.

В.3.34 Профиль Observation-PhdCoincidentTimeStamp

Изменения ресурса Observation не требуют учета при реализации профиля Observation-PhdCoincidentTimeStamp.

В.3.35 Ресурс Patient — сведения о пациенте

Изменения ресурса Patient по сравнению с версиями R4 и R4B представлены в таблице В. 16.

Таблица В.16 — Изменения ресурса Patient по сравнению с версиями R4 и R4B

Путь

Изменение

Patient.communication, language

Степень привязки изменена с предпочтительной на обязательную.

Набор значений изменен с http://hl7.org/fhir/ValueSet/common-languages на http://hl7. org/fhir/ValueSet/all-languages. Максимальный набор значений изменен с http://hl7. org/fhir/ValueSet/all-languages на попе

В.З.36 Профиль Patient-Dm

Изменения ресурса Patient не требуют учета при реализации профиля Patient-Dm.

В.3.37 Ресурс Practitioner — сведения о медицинском специалисте

Изменения ресурса Practitioner по сравнению с версиями R4 и R4B представлены в таблице В. 17.

Таблица В. 17 — Изменения ресурса Practitioner по сравнению с версиями R4 и R4B

Путь

Изменение

Practitioner.active

Элемент маркирован как модифицирующий (то есть его значение не может быть игнорировано)

Practitioner.deceased[x]

Добавлен необязательный элемент

Practitioner.communication

Тип значения изменен с CodeableConcept на BackboneElement Отменена предпочтительная привязка к набору значений 'http://hl7. org/fhir/ValueSet/languages. Максимальный набор значений заменен на http://hl7.org/fhir/ValueSet/all-languages

Practitioner.communication.language

Добавлен обязательный элемент

Practitioner.communication.preferred

Добавлен необязательный элемент

В.3.38 Профиль Practitioner-Dm

Изменения ресурса Practitioner не требуют учета при реализации профиля Practitioner-Dm.

В.З.39 Ресурс DiagnosticReport — заключение врача

Изменения ресурса DiagnosticReport по сравнению с версиями R4 и R4B представлены в таблице В. 18.

ТаблицаВ.18 — Изменения ресурса DiagnosticReport по сравнению с версиями R4 и R4B

Путь

Изменение

DiagnosticReport.status

Добавлен вариант значения modified

DiagnosticReport.subject

Добавлены варианты ссылок на экземпляры ресурсов Organization, Practitioner, Medication, Substance, BiologicallyDerived-Product

DiagnosticReport.note

Добавлен необязательный элемент

DiagnosticReport.study

Добавлен необязательный элемент

DiagnosticReport.supportinglnfo

Добавлен необязательный элемент

410

Окончание таблицы В.18

ПНСТ 995—2024

Путь

Изменение

DiagnosticReport.supportinglnfo.type

Добавлен обязательный элемент

DiagnosticReport.supportinglnfo.reference

Добавлен обязательный элемент

DiagnosticReport.media.Iink

Добавлен вариант ссылки на экземпляр ресурса

DocumentReference

Удален вариант ссылки на экземпляр ресурса Media

DiagnosticReport.composition

Добавлен необязательный элемент

DiagnosticReport.conclusion

Тип изменен со string на markdown

DiagnosticReport.imagingStudy

Элемент удален

В.3.40 Профиль DiagnosticReport-Dm

Изменения ресурса DiagnosticReport не требуют учета при реализации профиля DiagnosticReport-Dm.

В.3.41 Ресурс MedicationStatement — дневник приема лекарств

Изменения ресурса MedicationStatement по сравнению с версиями R4 и R4B представлены в таблице ВИЭ.

Таблица В.19 — Изменения ресурса MedicationStatement по сравнению с версиями R4 и R4B

Путь

Изменение

MedicationStatement.partOf

Удалены варианты ссылок на экземпляры ресурсов Medica-tionAdministration, MedicationDispense, Observation

MedicationStatement.status

Удалены варианты значений active, completed, intended, stopped, on-hold, unknown, not-taken

Добавлены варианты значений recorded, draft

MedicationStatement.category

Максимальная кратность изменена с 1 на *

MedicationStatement.medication

Переименован с medication[x] на medication.

Добавлен тип значения CodeableReference.

Удалены типы значения CodeableConcept, Reference(Medi-cation)

MedicationStatement.encounter

Переименован с context на encounter

Удален вариант ссылки на экземпляр ресурса EpisodeOfCare

MedicationStatement.effective[x]

Добавлен тип значения Timing

MedicationStatement.informationSource

Максимальная кратность изменена с 1 на *

MedicationStatement.reason

Добавлен необязательный элемент

MedicationStatement.relatedClinicallnformation

Добавлен необязательный элемент

MedicationStatement.renderedDosagelnstruction

Добавлен необязательный элемент

MedicationStatement.adherence

Добавлен необязательный элемент

MedicationStatement.adherence.code

Добавлен обязательный элемент

MedicationStatement.adherence.reason

Добавлен необязательный элемент

MedicationStatement.basedOn

Элемент удален

MedicationStatement.statusReason

Элемент удален

MedicationStatement.reasonCode

Элемент удален. Вместо него следует использовать reason

MedicationStatement.reasonReference

Элемент удален. Вместо него следует использовать reason

В.З.42 Ресурс QuestionnaireResponse — дневник самонаблюдения

Изменения ресурса QuestionnaireResponse по сравнению с версиями R4 и R4B представлены в таблице В.20.

411

ПНСТ 995—2024

Таблица В.20 — Изменения ресурса QuestionnaireResponse по сравнению с версиями R4 и R4B

Путь

Изменение

QuestionnaireResponse.identifier

Максимальная кратность изменена с 1 на *

QuestionnaireResponse.questionnaire

Элемент сделан обязательным

QuestionnaireResponse.source

Добавлены варианты ссылок на экземпляры ресурсов Device, Organization

QuestionnaireResponse.item.answer. value[x]

Элемент сделан обязательным.

Добавлен тип значения Quantity (http://hl7.org/fhir/ StructureDefinition/SimpleQuantity)

В.3.43 Ресурс Questionnaire — описание дневника самонаблюдения

Изменения ресурса Questionnaire по сравнению с версиями R4 и R4B представлены в таблице В.21.

Таблица В.21 — Изменения ресурса Questionnaire по сравнению с версиями R4 и R4B

Путь

Изменение

Questionnaire.versionAlgorithm[x]

Добавлен необязательный элемент

Questionnaire.subjectType

Удалены варианты значения CatalogEntry, DeviceUseStatement, DocumentManifest, DomainResource, EffectEvidenceSynthesis, Media, MedicinalProduct, MedicinalProductAuthorization, MedicinalPro-ductContraindication, MedicinalProductlndication, MedicinalProductln-gredient, MedicinalProductlnteraction, MedicinalProductManufactured, MedicinalProductPackaged, MedicinalProductPharmaceutical, Medici-nalProductUndesirableEffect, RequestGroup, ResearchDefinition, Re-searchElementDefinition, Resource, RiskEvidenceSynthesis, Substanc-eSpecification

Добавлены варианты значения ActorDefinition, AdministrableProduct-Definition, ArtifactAssessment, BiologicallyDerivedProductDispense, Citation, ClinicalUseDefinition, ConditionDefinition, DeviceAssociation, DeviceDispense, DeviceUsage, EncounterHistory, EvidenceReport, Formularyltem, GenomicStudy, ImagingSelection, Ingredient, Inventoryitem, InventoryReport, ManufacturedltemDefinition, MedicinalProduct-Definition, Nutritionintake, NutritionProduct, PackagedProductDefinition, Permission, RegulatedAuthorization, Requestorchestration, Requirements, Subscriptionstatus, SubscriptionTopic, SubstanceDefinition, TestPlan, Transport

Questionnaire.copyrightLabel

Добавлен необязательный элемент

Questionnaire.item.type

Удалены варианты значения choice, open-choice Добавлены варианты значения question, coding

Questionnaire.item.disabledDisplay

Добавлен необязательный элемент

Questionnaire.item.answerconstraint

Добавлен необязательный элемент

В.3.44 Ресурс Nutritionintake (дневник питания)

В R4 отсутствует.

В.3.45 Ресурс Detectedlssue — предупреждение

Изменения ресурса Detectedlssue по сравнению с версиями R4 и R4B представлены в таблице В.22.

412

Таблица В.22 — Изменения ресурса Detectedlssue по сравнению с версиями R4 и R4B

ПНСТ 995—2024

Путь

Изменение

Detectedlssue.status

Привязка к набору значений изменена с http://hl7.org/fhir/ValueSet/ observation-status|4.0.0 на http://hl7.org/fhir/ValueSet/detectedissue-status. Удалены варианты значения registered, amended, corrected, cancelled, unknown

Добавлен вариант значения mitigated

Detectedlssue.category

Добавлен необязательный элемент

Detectedlssue.subject

Добавлен необязательный элемент

Detectedlssue.encounter

Добавлен необязательный элемент

Detectedlssue.author

Добавлены варианты ссылок на экземпляры ресурсов Patient, RelatedPerson

Detectedlssue.detail

Тип значения изменен со string на markdown

Detectedlssue.mitigation.note

Добавлен необязательный элемент

Detectedlssue.patient

Элемент удален

В.3.46 Профиль Detectedlssue-Dm

Изменения ресурса Detectedlssue, требующие учета при реализации профиля Detectedlssue-Dm, приведены в таблице В.23.

Таблица В.23 — Изменения ресурса Detectedlssue, требующие учета при реализации профиля Device-Phd

Путь

Изменение

Detectedlssue.status

Привязка к набору значений изменена с http://hl7.org/fhir/ValueSet/observation-status|4.0.0 на http://hl7.org/fhir/ValueSet/detectedissue-status. Удалены варианты значения registered, amended, corrected, cancelled, unknown. Добавлен вариант значения mitigated

Detectedlssue.subject

Добавлен необязательный элемент

413

ПНСТ 995—2024

Библиография

[1] ISO/IEEE 11073-10404:2022 Информатизация здоровья. Совместимость приборов. Часть 10404. Связь с медицинскими приборами индивидуального контроля состояния здоровья. Специализация прибора. Пульсовой оксиметр (Health informatics — Device interoperability — Part 10404: Personal health device communication — Device specialization — Pulse oximeter)

[2] IEEE 11073-10406-2023 Информатизация здоровья. Информационное взаимодействие с персональными медицинскими приборами. Часть 10406. Специализация прибора: базовый электрокардиограф (ЭКГ с 1-3 отведениями) [Standard for Health Informatics-Device Interoperability Part 10406: Personal Health Device Communication-Device Specialization-Basic Electrocardiography (ECG) (1-to 3-lead ECG)]

[3] ISO/IEEE 11073-10407:2022 Информатизация здоровья. Взаимодействие с приборами. Часть 10407. Связь с медицинскими приборами индивидуального контроля состояния здоровья. Специализация прибора. Монитор артериального давления (Health informatics — Device interoperability — Part 10407: Personal health device communication — Device specialization — Blood pressure monitor)

[4] ISO/IEEE 11073-10408:2022 Информатизация здоровья. Взаимодействие с приборами. Часть 10408. Связь с медицинскими приборами индивидуального контроля состояния здоровья. Специализация прибора. Термометр (Health informatics — Device interoperability — Part 10408: Personal health device communication — Device specialization — Thermometer)

[5] ISO/IEEE 11073-10415:2022 Информатизация здоровья. Взаимодействие с приборами. Часть 10415. Связь с медицинскими приборами индивидуального контроля состояния здоровья. Специализация прибора. Весы (Health informatics — Device interoperability — Part 10415: Personal health device communication — Device specialization — Weighing scale)

[6] ISO/IEEE 11073-10417:2017 Информатизация здоровья. Информационное взаимодействие с персональными медицинскими приборами. Часть 10417. Специализация прибора. Глюкометр (Health informatics — Personal health device communication — Part 10417: Device specialization — Glucose meter)

[7] ISO/IEEE 11073-10418:2014 Информатика в здравоохранении. Связь с медицинскими приборами индивидуального контроля состояния здоровья. Часть 10418. Специализация прибора. Монитор международного нормализованного коэффициента (INR) (Health informatics — Personal health device communication — Part 10418: Device specialization — International Normalized Ratio (INR) monitor)

[8] ISO/IEEE 11073-10418:2014/Cor 1:2016 Информатика в здравоохранении. Связь с медицинскими приборами индивидуального контроля состояния здоровья. Часть 10418. Специализация прибора. Монитор международного нормализованного коэффициента (INR). Техническая поправка 1: описание стандарта и тендеры (Health informatics — Personal health device communication — Part 10418: Device specialization — International Normalized Ratio (INR) monitor — Technical Corrigendum 1)

[9] ISO/IEEE 11073-10419:2019 Информатизация здоровья. Связь с медицинскими приборами индивидуального контроля состояния здоровья. Часть 10419. Специализация прибора. Инсулиновая помпа (Health informatics — Personal health device communication — Part 10419: Device specialization — Insulin pump)

[10] ISO/IEEE 11073-10420:2022 Информатизация здоровья. Взаимодействие с приборами. Часть 10420. Связь с медицинскими приборами индивидуального контроля состояния здоровья. Специализация прибора. Анализатор композиционного состава организма (Health informatics — Device interoperability— Part 10420: Personal health device communication — Device specialization — Body composition analyzer)

[11] ISO/IEEE 11073-10421:2012 Информатизация здоровья. Связь с медицинскими приборами индивидуального контроля состояния здоровья. Часть 10421. Специализация прибора. Пневмотахометр [Health informatics — Personal health device communication — Part 10421: Device specialization — Peak expiratory flow monitor (peak flow)]

[12] ISO/IEEE 11073-10422:2017 Информатизация здоровья. Связь с медицинскими приборами индивидуального контроля состояния здоровья. Часть 10422. Специализация прибора. Уриноанализатор (Health informatics — Personal health device communication — Part 10422: Device specialization — Urine analyser)

[13] ISO/IEEE 11073-10424:2016 Информатизация здоровья. Связь с медицинскими приборами индивидуального контроля состояния здоровья. Часть 10424. Специализация прибора. Дыхательная терапевтическая аппаратура при приступах апноэ во сне [Health informatics — Personal health device communication — Part 10424: Device specialization — Sleep apnoea breathing therapy equipment (SABTE)]

414

ПНСТ 995—2024

[14] ISO/IEEE 11073-10424:2016/Cor 1:2018 Информатизация здоровья. Связь с медицинскими приборами индивидуального контроля состояния здоровья. Часть 10424. Специализация прибора. Дыхательная терапевтическая аппаратура при приступах апноэ во сне. Техническая поправка 1 [Health informatics — Personal health device communication — Part 10424: Device specialization — Sleep apnoea breathing therapy equipment (SABTE) — Technical Corrigendum 1]

[15] IEEE 11073-10425-2023 Информатизация здоровья. Совместимость приборов. Часть 10425. Обмен данными с персональными медицинскими приборами. Специализация прибора. Глюкометр непрерывного действия (CGM) [Health informatics-Device Interoperability Part 10425: Personal Health Device Communication-Device Specialization-Continuous Glucose Monitor (CGM)]

[16] IEEE P11073-10426 Информатика в здравоохранении. Персональные медицинские устройства связи. Специализация устройств. Домашний медицинский уход, окружающая среда, аппарат искусственной вентиляции легких (Health Informatics - Personal Health Device Communiction - Device Specialization -Home Healthcare Environment Ventilator)

[17] ISO/IEEE 11073-10427:2018 Информатика в здравоохранении. Связь с медицинскими приборами индивидуального контроля состояния здоровья. Часть 10427. Специализация прибора. Монитор состояния питания медицинских приборов индивидуального контроля (Health informatics — Personal health device communication — Part 10427: Device specialization — Power status monitor of personal health devices)

[18] IEEE 11073-10429-2022 Информатика в здравоохранении. Взаимодействие устройств. Часть 10429: Связь с персональными медицинскими устройствами. Специализация устройств. Спирометрия (Health Informatics — Device Interoperability — Part 10429: Personal Health Device Communication — Device Specialization — Spirometry)

[19] ISO/IEEE 11073-10441:2015 Информатика в здравоохранении. Связь с медицинскими приборами индивидуального контроля состояния здоровья. Часть 10441. Специализация прибора. Монитор физической активности пациентов, страдающих сердечно-сосудистыми заболеваниями (Health informatics — Personal health device communication — Part 10441: Device specialization — Cardiovascular fitness and activity monitor)

[20] ISO/IEEE 11073-10442:2015 Информатика в здравоохранении. Связь с медицинскими приборами индивидуального контроля состояния здоровья. Часть 10442. Специализация прибора. Силомер (Health informatics — Personal health device communication — Part 10442: Device specialization — Strength fitness equipment)

[21] IEEE 11073-10471-2023 Информатика в здравоохранении. Взаимодействие устройств. Часть 10471: Связь с персональными медицинскими устройствами. Специализация устройств. Центр независимой жизнедеятельности (IEEE Health Informatics-Device Interoperability-Part 10471: Personal Health Device Communication-Device Specialization-Independent Living Activity Hub)

[22] HL7 FHIR Release 5. — URL: https://hl7.org/fhir/index.html

[23] Creative Commons. CC0 1.0 Universal (CC0 1.0) Public Domain Dedication.— URL: https://creativecommons. org/publicdomain/zero/1.0/

[24] HAPI FHIR: Complete implementation of the HL7 FHIR standard for healthcare interoperability in Java.— URL: https://hapifhir.io/

[25] RFC 4648 The Basel6, Base32, and Base64 Data Encodings

[26] RFC 3001 A URN Namespace of Object Identifiers

[27] RFC 3986 Uniform Resource Identifier (URI): Generic Syntax

[28] RFC 1738 Uniform Resource Locators (URL)

[29] RFC 4122 A Universally Unique IDentifier (UUID) URN Namespace

[30] RFC 4647 Matching of Language Tags

[31] RFC 7515 JSON Web Signature (JWS)

[32] HL7 FHIR Personal Health Device Implementation Guide.— URL: https://github.com/HL7/phd/

[33] RFC 8288 Web Linking

[34] Федеральный закон от 21 ноября 2011 г. № 323-ФЗ «Об основах охраны здоровья граждан в Российской Федерации»

415

ПНСТ 995—2024

[35] Постановление Правительства Российской Федерации от 31 мая 2023 г. № 894 «Об утверждении Правил маркировки отдельных видов медицинских изделий средствами идентификации и особенностях внедрения государственной информационной системы мониторинга за оборотом товаров, подлежащих обязательной маркировке средствами идентификации, в отношении отдельных видов медицинских изделий»

[36] Personal Health Devices Transcoding.— URL: https://www.bluetooth.com/wp-content/uploads/2019/03/ PHD_Transcoding_WP_v16.pdf

[37] Unified Code for Units of Measure (UCUM).— URL: https://ucum.org/

[38] ISO/IEEE 11073-20601:2022 Информатизация здоровья. Взаимодействие с приборами. Часть 20601. Связь с медицинскими приборами индивидуального контроля состояния здоровья. Прикладной профиль. Оптимизированный протокол обмена (Health informatics — Device interoperability — Part 20601: Personal health device communication —Application profile — Optimized exchange protocol)

[39] RFC 5005 Feed Paging and Archiving

[40] RFC 2388 Returning Values from Forms: multipart/form-data

[41] ITU-T. Technical Paper (17 October 2019). HSTP-H812-FHIR In-teroperability design guidelines for personal health systems: Services interface: FHIR Observation Upload fortrial implementation

[42] RFC 6749 The OAuth 2.0 Authorization Framework

[43] RFC 7523 JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants

УДК 004:61:006.354

OKC 35.240.80

Ключевые слова: киберфизические системы, персональные медицинские помощники, форматы обмена данными

Технический редактор И.Е. Черепкова

Корректор О.В. Лазарева

Компьютерная верстка И.Ю. Литовкиной

Сдано в набор 10.01.2025. Подписано в печать 24.02.2025. Формат 60x84%. Гарнитура Ариал.

Усл. печ. л. 48,83. Уч-изд. л. 40,53.

Подготовлено на основе электронной версии, предоставленной разработчиком стандарта

Создано в единичном исполнении в ФГБУ «Институт стандартизации» , 117418 Москва, Нахимовский пр-т, д. 31, к. 2.