Поделиться через


Хранение профилей в Azure API для FHIR

Внимание

Поддержка Azure API для FHIR будет прекращена 30 сентября 2026 г. Следуйте стратегиям миграции, чтобы перейти в службу FHIR® служб azure Health Data Services к этой дате. Из-за прекращения поддержки Azure API для FHIR с 1 апреля 2025 г. новые развертывания будут невозможны. Служба FHIR служб работоспособности Azure — это развивающаяся версия Azure API для FHIR, которая позволяет клиентам управлять службами FHIR, DICOM и MedTech с интеграцией с другими службами Azure.

HL7 Fast Healthcare Interoperability Resources (FHIR®) определяет стандартный и совместимый способ хранения и обмена данными здравоохранения. Даже в базовой спецификации FHIR можно определить другие правила или расширения на основе контекста, используемого FHIR. Для таких контекстных использования FHIR профили FHIR используются для дополнительного слоя спецификаций. Профиль FHIR позволяет сузить и настроить определения ресурсов с помощью ограничений и расширений.

Azure API для FHIR позволяет проверить ресурсы для профилей, чтобы узнать, соответствуют ли ресурсы профилям. В этой статье описаны основы профилей 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 элемента ресурса. Ниже приведен пример начала Patient ресурса, который имеет профиль 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 и профилях, определенных в нем.

Примечание.

По умолчанию API Azure для FHIR не сохраняет профили из руководств по реализации. Их необходимо загрузить в API Azure для FHIR.

Доступ к профилям и хранению профилей

Хранение профилей

Для хранения профилей в Azure API для FHIR можно PUT StructureDefinition использовать содержимое профиля в тексте запроса. Обновление или условное обновление — это оба хороших метода хранения профилей в службе FHIR. Используйте условное обновление, если вы не уверены, какой из них следует использовать.

Стандартный PUT: PUT http://<your Azure API for FHIR base URL>/StructureDefinition/profile-id

or

Условное обновление: PUT http://<your Azure API for FHIR base URL>/StructureDefinition?url=http://sample-profile-url

{ 
"resourceType" : "StructureDefinition",
"id" : "profile-id",
"url": "http://sample-profile-url"
	…
}

Например, если вы хотите сохранить us-core-allergyintolerance профиль, вы будете использовать следующую команду rest с профилем аллергии в основном в организме. Мы включили фрагмент этого профиля в пример.

PUT https://myAzureAPIforFHIR.azurehealthcareapis.com/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 Azure API for FHIR base URL>/StructureDefinition?url={canonicalUrl}где {canonicalUrl} находится канонический URL-адрес профиля.

Например, используйте следующую команду, если вы хотите просмотреть профиль ресурса Основной цели США.

GET https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/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).",

}

Примечание.

Вы увидите только профили, загруженные в AZURE API для FHIR.

Azure API для FHIR не возвращает StructureDefinition экземпляры для базовых профилей, но их можно найти на веб-сайте HL7.

  • http://hl7.org/fhir/Observation.profile.json.html
  • http://hl7.org/fhir/Patient.profile.json.html

Профили в инструкции возможностей

Список Capability Statement всех возможных действий Azure API для FHIR. Azure API для FHIR обновляет инструкцию возможностей с подробными сведениями о сохраненных профилях в следующих формах.

  • CapabilityStatement.rest.resource.profile
  • CapabilityStatement.rest.resource.supportedProfile

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

{
  "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 Azure API for FHIR base URL>/metadata

Вы вернелись CapabilityStatement , включив следующие сведения о профиле основного пациента США, который вы отправили в AZURE API для FHIR.

...
{
    "type": "Patient",
    "profile": "http://hl7.org/fhir/StructureDefinition/Patient",
    "supportedProfile":[
        "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
    ],

Привязки в профилях

Служба терминологии — это набор функций, которые могут выполнять операции с медицинскими "терминологиями", такими как проверка кодов, преобразование кодов, расширение наборов значений и другие операции.
Служба Azure API для FHIR не поддерживает службу терминологии. Сведения о поддерживаемых операциях ($), типах ресурсов и взаимодействии можно найти в службе CapabilityStatement. Типы ValueSetStructureDefinition CodeSystem ресурсов и поддерживаются с базовыми операциями создания, чтения, обновления и удаления (CRUD) и поиска (как определено в этом CapabilityStatementразделе), а также используется системой для использования.$validate

ValueSets может содержать сложный набор правил и внешних ссылок. Сегодня служба рассматривает только предварительно развернутые встроенные коды. Перед использованием $validate операции клиентам необходимо передать поддерживаемые наборы значений на сервер FHIR. Ресурсы ValueSet необходимо передать на сервер FHIR с помощью PUT или условного обновления, как упоминалось в разделе профилей хранения.

Следующие шаги

В этой статье вы узнали о профилях FHIR. Далее вы можете узнать, как использовать $validate ресурсы, соответствующие этим профилям.

Примечание.

FHIR® является зарегистрированным товарным знаком HL7 и используется с разрешением HL7 .