Введение в HL7 FHIR
Мы продолжаем серию статей про стандарты обмена медицинскими данными рассказом непосредственно об HL7 FHIR.
В предыдущей статье мы рассмотрели историю развития стандартов обмена медицинскими данными от международной организации HL7. В этой статье мы предлагаем познакомиться с особенностями самого свежего и многообещающего стандарта из этого семейства – HL7 FHIR.
HL7 FHIR появился в 2011 году благодаря усилиям лидеров стандарта (Грэм Грив, Ллойд Маккензи, Эвут Краммер), которые участвовали в создании предыдущих версий стандартов HL7, хорошо понимают их “родовые травмы” и достоинства. HL7 FHIR соединяет в себе удачные решения из предыдущих версий и совершенно новую философию, архитектурную концепцию и открытый подход к разработке/развитию стандарта.
На данный момент стандарт уже обрел статус DSTU2 (Проект стандарта для пробного использования) и начинает активно применяться в США, Европе и России.
Философия дизайна HL7 FHIR
Если попробовать кратко сформулировать философию дизайна HL7 FHIR, то получится следующий список принципов:
- фокус на практическую реализуемость (удобен для разработчиков);
- следование за развивающимися веб-технологиями;
- включение в спецификацию только самых важных/общих концептов,, чтобы сохранить спецификацию небольшой и описать 20% концептов, участвующих в 80% информатизируемых сценариев;
- открытость стандарта и развитие в ключе Open Source;
- обязательный уровень "человекочитабельных данных" при обмене.
Этими принципами руководствуется международное сообщество, развивающее стандарт. Мы планируем написать отдельную статью об экосистеме, созданной вокруг HL7 FHIR, т.к. это один из принципиальных, отличительных аспектов нового, открытого подхода к развитию стандарта.
Анатомия HL7 FHIR
Сердцем стандарта являются ресурсы (FHIR Resources). Ресурс – это независимая структурированная единица информации, используемая при обмене медицинскими данными. Большинство ресурсов – это отображение реального мира в цифровых данных. Вот несколько примеров ресурсов: пациент (Patient), визит (Encounter), результат исследования (DiagnosticReport).
В рамках спецификации описываются клинические, административные, финансовые и технические ресурсы. На данный момент в стандарте специфицировано 106 ресурсов.
Каждый ресурс описывается набором стандартизованных атрибутов (элементов), в дополнение к этому в каждый ресурс встроен механизм расширения. Как упоминалось выше, одним из основных драйверов при разработке стандарта является следование правилу 80/20, поэтому в рамках ресурса описываются только общие атрибуты, независимые от специализированного контекста (страна, специализация и т.д.), для всего остального в ресурс встроен механизм расширений (extensions).
У каждого ресурса есть секция для представления структурированной информации, содержащейся в ресурсе, в человекочитабельном виде. Эта секция используется для гарантии интероперабельности на самом базовом уровне, т.е., получив такой ресурс, вы всегда можете отобразить его содержимое человеку на экране монитора, например в браузере, без какой-либо дополнительной обработки и раскладывания данных в свое хранилище в дискретном виде.
Ресурсы могут быть связаны между собой и таким образом отражать связи в реальном мире, например: пациент (Patient) пришел на обследование (Encounter) в клинику (Organization), ему поставили диагноз (Condition) и назначили исследования (DiagnosticOrder). При описании такого случая для обмена данными между системами потребуются следующие ресурсы, связанные между собой. Ресурсы связаны друг с другом через ссылку на другой ресурс в соответствующем элементе.
Подробнее о ссылках между ресурсами...
Организация обмена данными
Помимо модели данных и типов данных, спецификация HL7 FHIR описывает несколько поддерживаемых подходов к организации обмена данными между системами. Системы могут обмениваться как ресурсами по отдельности, так и собирать связанные ресурсы в группы (Bundles) и обмениваться этими группами ресурсов (Bundles).
Варианты организации обмена данными:
- RESTful API (HTTP) – взаимодействие между системами происходит посредством совершения операций над ресурсами с использованием REST-запросов (найти ресурс, получить ресурс, обновить ресурс и т.д.).
- Messaging – взаимодействие между системами организовано в виде пересылки сообщений между системами. Каждое сообщение содержит в себе информацию о произошедшем событии, отраженном в информационной системе, и о котором одна система хочет сообщить другой. Сообщение – это группа связанных между собой ресурсов определенного типа (message).
- Documents – взаимодействие между системами происходит на уровне документов, т.е. одна система запрашивает документы у другой системы и получает их. Документ – это группа ресурсов, объединенных в документ посредством специального ресурса composition и закрепленных на момент подписания документа.
В зависимости от архитектуры вашего решения, решаемых задач и требуемой гранулярности при обмене медицинскими данными, вы можете использовать подходящий вариант обмена.
Профилирование ресурсов
Ресурсы в рамках HL7 FHIR – это логически замкнутые блоки данных, предназначенные для обмена. По умолчанию в каждом ресурсе задано небольшое количество ограничений на обязательные элементы и обязательные к использованию словари (ValueSets). В рамках реальных ситуаций может потребоваться закрепить некоторые данные как обязательные. Для этого используется механизм профилирования ресурсов.
Используя специальный ресурс StructureDefinition, вы можете создать профиль для любого ресурса из спецификации тем самым задать ему ограничения:
- обязательность элементов данных (структура);
- используемый ValueSet для конкретного элемента ресурса (словари).
Например, нам требуется передавать номер российского паспорта в ресурсе Пациент (Patient), для этого мы создадим профиль (StructureDefinition), в котором зададим ограничение, что в элементе identifier должен передаваться номер паспорта. А в рамках описания ресурса Пациент укажем, что ресурс соответствует определенному профилю, прописав в нём идентификатор профиля.
Подробнее о профилировании ресурсов...
Профили (StructureDefinition), как и все другие ресурсы, доступны через RESTful API, поэтому любая система может получить как ресурс с данными (например Patient), так и профиль которому он соответствует. В связи с этим системы, поддерживающие HL7 FHIR, могут "изучаться" другими системами, с которыми производится обмен данными.
Похожим образом можно профилировать операции, совершаемые над ресурсами (RESTful API). Для этого используется ресурс OperationDefinition, в котором можно описать новую операцию. Используя этот механизм профилирования операций, мы можем определять новые операции и тем самым расширять стандартный набор операций, специфицированных в рамках стандарта.
Подробнее о профилировании операций...
Мы кратко рассмотрели особенности стандарта HL7 FHIR, для более глубокого изучения информации вы можете обратиться к официальной документации/спецификации на русском языке, которую мы регулярно обновляем и переводим.
Ссылка на спецификацию: http://fhir-ru.github.io/
В завершение нашей обзорной статьи хочется резюмировать и кратко ответить на один важный вопрос: "Что в итоге специфицирует HL7 FHIR?".
HL7 FHIR – это спецификация на:
- ресурсы (FHIR Resources) – атомарные блоки информации для обмена;
- механизм расширения ресурсов (extensions);
- профилирование ресурсов и операций (StructureDefinition и OperationDefinition);
- синтаксис (JSON, XML);
- несколько видов организации обмена: REST API, Messaging, Documents, Services;
- методологию: Conformance, Profiles, Bundles.
В следующей статье мы планируем рассказать об экосистеме, выстроенной вокруг стандарта HL7 FHIR – сообществе, инструментах, мероприятиях и т.д.
Авторы:
Михаил Рыжиков |
|
Health Samurai – команда экспертов в области разработки веб-решений для здравоохранения, работают на рынках США, Европы, России уже более 8 лет. Health Samurai, в рамках организации HL7 Россия, курируют направление HL7 FHIR: проводят обучение, консультируют и участвуют в реализации российских проектов по информатизации здравоохранения. Health Samurai являются активными участниками международного сообщества по развитию стандарта HL7 FHIR. Продуктовая линейка Health Samurai:
Сайт: http://health-samurai.io |