Хранение профилей в службе FHIR
HL7 Fast Healthcare Interoperability Resources (FHIR®) определяет стандартный и совместимый способ хранения и обмена данными здравоохранения. Даже в базовой спецификации FHIR можно определить другие правила или расширения на основе контекста, в котором используется FHIR. Для использования В контексте FHIR профили FHIR используются для дополнительного слоя спецификаций. Профиль FHIR позволяет сузить и настроить определения ресурсов с помощью ограничений и расширений.
Служба FHIR служб работоспособности Azure позволяет проверить ресурсы для профилей, чтобы узнать, соответствуют ли ресурсы профилям. В этой статье описаны основы профилей FHIR и их хранение. Дополнительные сведения о профилях FHIR см . в HL7.org.
Профиль FHIR: основы
Профиль задает дополнительный контекст ресурса, представленного StructureDefinition
как ресурс. Определяет StructureDefinition
набор правил содержимого ресурса или типа данных, таких как элементы ресурса и какие значения могут принимать эти элементы.
Ниже приведены некоторые примеры того, как профили могут изменять базовый ресурс.
- Ограничить кратность. Например, можно задать максимальное число элементов 0, что означает, что элемент исключен в определенном контексте.
- Ограничить содержимое элемента одним фиксированным значением.
- Определите необходимые расширения для ресурса.
A StructureDefinition
определяется по каноническому URL-адресу: http://hl7.org/fhir/StructureDefinition/{profile}
Например:
http://hl7.org/fhir/StructureDefinition/patient-birthPlace
— базовый профиль, требующий сведений о зарегистрированном адресе рождения пациента.http://hl7.org/fhir/StructureDefinition/bmi
— это другой базовый профиль, определяющий, как представлять наблюдения индекса массы тела (BMI).http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance
— это профиль US Core, который задает минимальные ожидания для ресурса, связанногоAllergyIntolerance
с пациентом, и определяет обязательные поля, такие как расширения и наборы значений.
Если ресурс соответствует профилю, профиль указывается внутри profile
элемента ресурса. В следующем примере можно увидеть начало ресурса "Пациент", который имеет http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-Patient профиль.
{
"resourceType" : "Patient",
"id" : "ExamplePatient1",
"meta" : {
"lastUpdated" : "2020-10-30T09:48:01.8512764-04:00",
"source" : "Organization/PayerOrganizationExample1",
"profile" : [
"http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-Patient"
]
},
Примечание.
Профили должны создаваться на основе базового ресурса и не могут конфликтовить с базовым ресурсом. Например, если элемент имеет кратность 1.1, профиль не может сделать его необязательным.
Профили также задаются различными руководствами по реализации (IG). Ниже приведен список распространенных IGS. Дополнительные сведения см. на определенном сайте IG, чтобы узнать больше о IG и профилях, определенных в нем.
Примечание.
Служба FHIR по умолчанию не сохраняет профили из руководств по реализации. Их необходимо загрузить в службу FHIR.
Доступ к профилям и хранению профилей
Хранение профилей
Для хранения профилей в службе FHIR можно PUT
StructureDefinition
использовать содержимое профиля в тексте запроса. Стандартные PUT
или условные обновления — это оба хороших метода хранения профилей в службе FHIR. Используйте условное обновление, если вы не уверены, какие из них следует использовать.
Стандартный PUT
: PUT http://<your FHIR service base URL>/StructureDefinition/profile-id
or
Условное обновление: PUT http://<your FHIR service base URL>/StructureDefinition?url=http://sample-profile-url
{
"resourceType" : "StructureDefinition",
"id" : "profile-id",
"url": "http://sample-profile-url"
…
}
Например, если вы хотите сохранить us-core-allergyintolerance
профиль, вы будете использовать следующую команду rest с профилем аллергии в основном в организме. Мы включили фрагмент этого профиля в пример.
PUT https://<your FHIR service base URL>/StructureDefinition?url=http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance
{
"resourceType" : "StructureDefinition",
"id" : "us-core-allergyintolerance",
"text" : {
"status" : "extensions"
},
"url" : "http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance",
"version" : "3.1.1",
"name" : "USCoreAllergyIntolerance",
"title" : "US Core AllergyIntolerance Profile",
"status" : "active",
"experimental" : false,
"date" : "2020-06-29",
"publisher" : "HL7 US Realm Steering Committee",
"contact" : [
{
"telecom" : [
{
"system" : "url",
"value" : "http://www.healthit.gov"
}
]
}
],
"description" : "Defines constraints and extensions on the AllergyIntolerance resource for the minimal set of data to query and retrieve allergy information.",
Дополнительные примеры см. в примере REST-файла US Core на сайте с открытым исходным кодом, который проходит по хранению профилей US Core. Чтобы получить самые актуальные профили, необходимо получить профили непосредственно из HL7 и руководства по реализации, определяющего их.
Просмотр профилей
Вы можете получить доступ к существующим пользовательским профилям с помощью GET
запроса, GET http://<your FHIR service base URL>/StructureDefinition?url={canonicalUrl}
где {canonicalUrl}
находится канонический URL-адрес профиля.
Например, если вы хотите просмотреть профиль ресурса "Основная цель США":
GET https://<your FHIR service base URL>/StructureDefinition?url=http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal
Это возвращает StructureDefinition
ресурс для профиля цели US Core, который начинается следующим образом.
{
"resourceType" : "StructureDefinition",
"id" : "us-core-goal",
"url" : "http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal",
"version" : "3.1.1",
"name" : "USCoreGoalProfile",
"title" : "US Core Goal Profile",
"status" : "active",
"experimental" : false,
"date" : "2020-07-21",
"publisher" : "HL7 US Realm Steering Committee",
"contact" : [
{
"telecom" : [
{
"system" : "url",
"value" : "http://www.healthit.gov"
}
]
}
],
"description" : "Defines constraints and extensions on the Goal resource for the minimal set of data to query and retrieve a patient's goal(s).",
}
Примечание.
Вы увидите только профили, загруженные в службу FHIR.
Служба FHIR не возвращает StructureDefinition
экземпляры для базовых профилей, но их можно легко найти на веб-сайте HL7, например на следующем.
http://hl7.org/fhir/Observation.profile.json.html
http://hl7.org/fhir/Patient.profile.json.html
Профили в инструкции возможностей
Список Capability Statement
всех возможных действий службы FHIR. Служба FHIR обновляет инструкцию возможности с подробными сведениями о сохраненных профилях в следующих формах.
CapabilityStatement.rest.resource.profile
CapabilityStatement.rest.resource.supportedProfile
Например, если вы POST
используете профиль основного пациента США, который начинается следующим образом:
{
"resourceType": "StructureDefinition",
"id": "us-core-patient",
"url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient",
"version": "3.1.1",
"name": "USCorePatientProfile",
"title": "US Core Patient Profile",
"status": "active",
"experimental": false,
"date": "2020-06-27",
"publisher": "HL7 US Realm Steering Committee",
И отправьте GET
запрос для вашего metadata
:
GET http://<your FHIR service base URL>/metadata
Возвращается CapabilityStatement
, включающее следующие сведения о профиле основного пациента США, который вы отправили на сервер FHIR.
...
{
"type": "Patient",
"profile": "http://hl7.org/fhir/StructureDefinition/Patient",
"supportedProfile":[
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
],
Привязки в профилях
Служба терминологии — это набор функций, которые могут выполнять операции с медицинскими "терминологиями", такими как проверка кодов, перевод кодов и расширение наборов значений. Служба FHIR не поддерживает службу терминологии. Сведения о поддерживаемых операциях ($), типах ресурсов и взаимодействии можно найти в службе CapabilityStatement. Типы ресурсов ValueSet, StructureDefinition и CodeSystem поддерживаются с основными операциями CRUD и поиском (как определено в CapabilityStatement), а также используются системой для использования в $validate.
ValueSets может содержать сложный набор правил и внешних ссылок. В настоящее время служба будет рассматривать только предварительно развернутые встроенные коды. Перед использованием операции $validate клиенты должны отправлять поддерживаемые наборы значений на сервер FHIR. Ресурсы ValueSet необходимо передать на сервер FHIR с помощью PUT или условного обновления, как упоминалось в разделе "Профили хранения" выше.
Следующие шаги
В этой статье вы узнали о профилях FHIR. Далее вы узнаете, как использовать $validate, чтобы обеспечить соответствие ресурсов этим профилям.
Примечание.
FHIR® является зарегистрированным товарным знаком HL7 и используется с разрешением HL7 .