Partilhar via


Validar recursos FHIR em relação a perfis nos Serviços de Dados de Saúde do Azure

Nos perfis de loja no artigo de serviço FHIR®, você percorreu os conceitos básicos de perfis FHIR e armazená-los. O serviço FHIR nos Serviços de Dados de Saúde do Azure permite validar recursos em relação a perfis para ver se os recursos estão em conformidade com os perfis. Este artigo orienta você sobre como usar $validate para validar recursos em relação a perfis.

$validate é uma operação no Fast Healthcare Interoperability Resources (FHIR) que permite garantir que um recurso FHIR esteja em conformidade com os requisitos de recursos básicos ou com um perfil especificado. Esta operação garante que os dados em um serviço FHIR tenham os atributos e valores esperados. Para obter informações sobre a operação de validação, visite HL7 FHIR Specification.

Por especificação, o Modo pode ser especificado com $validate, como criar e atualizar:

  • create: O serviço FHIR verifica se o conteúdo do perfil é exclusivo dos recursos existentes e se é aceitável ser criado como um novo recurso.
  • update: Verifica se o perfil é uma atualização em relação ao recurso existente nomeado (ou seja, nenhuma alteração é feita nos campos imutáveis).

Há diferentes maneiras fornecidas para você validar o recurso:

  • Opção 1: Validar um recurso existente com a operação validar.
  • Opção 2: Validar um novo recurso com a operação validar.
  • Opção 3: Validar no recurso CREATE ou UPDATE usando um cabeçalho.

Na validação bem-sucedida de um recurso existente ou novo com a operação validar, o recurso não é persistido no serviço FHIR. Use a Opção 3 para persistir com êxito recursos validados para o serviço FHIR.

O serviço FHIR sempre retorna um OperationOutcome como os resultados de validação para uma operação $validate. Depois que um recurso é passado para $validate ponto de extremidade, o serviço FHIR faz a validação em duas etapas. A primeira etapa é uma validação básica para garantir que o recurso possa ser analisado. Durante a análise de recursos, erros individuais precisam ser corrigidos antes de prosseguir para a próxima etapa. Quando um recurso é analisado com sucesso, a validação completa é conduzida como a segunda etapa.

Nota

Todos os conjuntos de valores a serem usados para validação devem ser carregados no servidor FHIR. Isso inclui quaisquer Valuesets que fazem parte da especificação FHIR, bem como quaisquer ValueSets definidos em guias de implementação. Apenas conjuntos de valores totalmente expandidos que contêm uma lista completa de todos os códigos são suportados. Não há suporte para quaisquer definições de ValueSet que façam referência a fontes externas.

Opção 1: Validar um recurso existente

Para validar um recurso existente, use $validate em uma GET solicitação.

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

Por exemplo:

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

Neste exemplo, você está validando o recurso a6e11662-def8-4dde-9ebc-4429e68d130e Paciente existente em relação ao recurso Paciente base. Se for válido, você obterá um OperationOutcome exemplo de código a seguir.

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

Se o recurso não for válido, você receberá um código de erro e uma mensagem de erro com detalhes sobre por que o recurso é inválido. Um exemplo OperationOutcome é retornado com mensagens de erro e pode se parecer com o exemplo de código a seguir.

{
    "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"
            ]
        }
    ]
}

Neste exemplo, o recurso não estava de acordo com o perfil de paciente fornecido, que exigia um valor de identificador de paciente e sexo.

Se quiser especificar um perfil como parâmetro, você pode especificar a URL canônica para o perfil a ser validado, como o exemplo a seguir para o perfil base HL7 para heartrate.

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

Opção 2: Validar um novo recurso

Se você quiser validar um novo recurso que está carregando para o servidor, você pode fazer uma POST solicitação.

POST http://<your FHIR service base URL>/{Resource}/$validate

Por exemplo:

POST https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/Patient/$validate

Esta solicitação valida o recurso. O novo recurso especificado na solicitação será criado após a validação. O servidor sempre retorna um OperationOutcome como resultado.

Opção 3: Validar no recurso CREATE ou UPDATE usando um cabeçalho

Você pode escolher quando deseja validar seu recurso, como on resource CREATE ou UPDATE. Por padrão, o serviço FHIR é configurado para desativar a validação no recurso Create/Update. Esse recurso permite a validação ao Create/Update usar o x-ms-profile-validation cabeçalho. Defina x-ms-profile-validation como true para validação.

Nota

No serviço FHIR de código aberto, você pode alterar a definição de configuração do servidor, sob CoreFeatures.

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

Para habilitar a validação estrita, use um cabeçalho 'Prefer: manipulação' com valor restrito. Ao definir esse cabeçalho, um aviso de validação é relatado como um erro.

Próximos passos

Neste artigo, você aprendeu como validar recursos em perfis usando $validateo . Para saber mais sobre os outros recursos suportados pelo serviço FHIR, consulte

Nota

FHIR® é uma marca registada da HL7 e é utilizada com a permissão da HL7.