Проверка операции: обзор

Важно!

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

В статьях о профилях магазина в Azure API для FHIR описаны основы профилей FHIR и их хранение. В этой статье описано, как использовать $validate для проверки ресурсов для профилей. Проверка ресурса для профиля означает проверка, если ресурс соответствует профилю, включая спецификации, перечисленные в Resource.meta.profile руководстве по реализации или в руководстве по реализации.

$validate — это операция в ресурсах быстрого взаимодействия со здравоохранением (FHIR), которая позволяет гарантировать соответствие ресурса FHIR® базовым требованиям или указанному профилю. Эта операция гарантирует, что данные в Azure API для FHIR имеют ожидаемые атрибуты и значения. Сведения об операции проверки см . в спецификации HL7 FHIR. Для каждой спецификации можно указать $validateрежим, например создание и обновление:

  • create. Azure API для FHIR проверка, что содержимое профиля уникально из существующих ресурсов, и что оно приемлемо для создания в качестве нового ресурса.
  • update: проверяет, является ли профиль обновлением для номинированного существующего ресурса (то есть изменения не вносятся в неизменяемые поля).

Существуют различные способы проверки ресурса:

  • Проверьте существующий ресурс с помощью операции проверки.
  • Проверьте новый ресурс с помощью операции проверки.
  • Проверьте ресурс CREATE/UPDATE с помощью заголовка.

Azure API для FHIR всегда возвращает OperationOutcome результаты проверки для операции $validate. Служба Azure API для FHIR выполняет двухфакторную проверку, после того как ресурс передается в конечную точку $validate. Первый шаг — это базовая проверка, чтобы убедиться, что ресурс можно проанализировать. Во время синтаксического анализа ресурсов необходимо исправить отдельные ошибки, прежде чем перейти к следующему шагу. После успешного анализа ресурса полная проверка проводится во втором шаге.

Примечание.

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

Проверка существующего ресурса

Чтобы проверить существующий ресурс, используйте $validate в запросе GET :

GET http://<your Azure API for FHIR base URL>/{resource}/{resource ID}/$validate

Например:

GET https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/Patient/a6e11662-def8-4dde-9ebc-4429e68d130e/$validate

В этом примере вы проверяете существующий ресурс a6e11662-def8-4dde-9ebc-4429e68d130e "Пациент" для базового ресурса "Пациент". Если это допустимо, вы получите OperationOutcome такой пример кода:

{
    "resourceType": "OperationOutcome",
    "issue": [
        {
            "severity": "information",
            "code": "informational",
            "diagnostics": "All OK"
        }
    ]
}

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

{
    "resourceType": "OperationOutcome",
    "issue": [
        {
            "severity": "error",
            "code": "invalid",
            "details": {
                "coding": [
                    {
                        "system": "http://hl7.org/fhir/dotnet-api-operation-outcome",
                        "code": "1028"
                    }
                ],
                "text": "Instance count for 'Patient.identifier.value' is 0, which is not within the specified cardinality of 1..1"
            },
            "location": [
                "Patient.identifier[1]"
            ]
        },
        {
            "severity": "error",
            "code": "invalid",
            "details": {
                "coding": [
                    {
                        "system": "http://hl7.org/fhir/dotnet-api-operation-outcome",
                        "code": "1028"
                    }
                ],
                "text": "Instance count for 'Patient.gender' is 0, which is not within the specified cardinality of 1..1"
            },
            "location": [
                "Patient"
            ]
        }
    ]
}

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

Если вы хотите указать профиль в качестве параметра, можно указать канонический URL-адрес профиля для проверки, например следующий пример базового профиля HL7 для heartrate:

GET https://myAzureAPIforFHIR.azurehealthcareapis.com/Observation/12345678/$validate?profile=http://hl7.org/fhir/StructureDefinition/heartrate

Проверка нового ресурса

Если вы хотите проверить новый ресурс, который вы отправляете в Azure API для FHIR, можно выполнить POST запрос: сервер всегда возвращает OperationOutcome в качестве результата.

POST http://<your Azure API for FHIR base URL>/{Resource}/$validate

Например:

POST https://myAzureAPIforFHIR.azurehealthcareapis.com/Patient/$validate

Этот запрос проверит ресурс. Если ресурсы проверки не создаются в службе FHIR, вам потребуется отправить запрос POST без $validate для создания ресурса.

Проверьте ресурс CREATE/UPDATE с помощью заголовка.

По умолчанию Azure API для FHIR настроен для отказа от проверки на ресурсе Create/Update. Эта возможность позволяет проверить Create/Update, используя x-ms-profile-validation заголовок. Задайте для проверки значение x-ms-profile-validation.

Примечание.

В службе FHIR с открытым исходным кодом можно изменить параметр конфигурации сервера в разделе CoreFeatures.

{
   "FhirServer": {
      "CoreFeatures": {
            "ProfileValidationOnCreate": true,
            "ProfileValidationOnUpdate": false
        }
}

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

Из этой статьи вы узнали, как проверить ресурсы на основе профилей.$validate Дополнительные сведения о других поддерживаемых функциях API Azure для FHIR см. в статье

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