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 dos perfis FHIR e os armazenou. O serviço FHIR nos Serviços de Dados de Saúde do Azure (aqui chamado de serviço FHIR) permite validar recursos em perfis para ver se os recursos estão em conformidade com os perfis. Este artigo irá orientá-lo 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 básicos de recursos ou um perfil especificado. Essa operação garante que os dados no serviço FHIR tenham os atributos e valores esperados. Para obter informações sobre como validar a operaçã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 para 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/UPDATE usando cabeçalho.
Na validação bem-sucedida de um recurso existente/novo com a operação validar, o recurso não é persistido no serviço FHIR. Use a Opção 3: Validar no recurso CREATE/UPDATE usando o cabeçalho para persistir o recurso validado com êxito para o serviço FHIR.
O Serviço FHIR sempre retornará um OperationOutcome
como os resultados de validação para $validate operação. O serviço FHIR faz a validação em duas etapas, uma vez que um recurso é passado para $validate ponto de extremidade - a primeira etapa é uma validação básica para garantir que o recurso possa ser analisado. Durante a análise de recursos, os erros individuais precisam ser corrigidos antes de prosseguir para a próxima etapa. Uma vez que o recurso é analisado com êxito, a validação completa é conduzida como segunda etapa.
Observação
Todos os conjuntos de valores que devem ser usados para validação devem ser carregados no servidor FHIR. Isso inclui quaisquer Conjuntos de Valores que fazem parte da especificação FHIR, bem como quaisquer Conjuntos de Valores definidos nos Guias de Implementação. Somente 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: Validando 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 em conformidade com o perfil de paciente fornecido, que exigia um valor de identificador de paciente e gênero.
Se desejar especificar um perfil como parâmetro, você poderá 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: Validando um novo recurso
Se você quiser validar um novo recurso que está carregando no servidor, faça uma POST
solicitação:
POST http://<your FHIR service base URL>/{Resource}/$validate
Por exemplo:
POST https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/Patient/$validate
Essa solicitação primeiro validará o recurso. O novo recurso que você está especificando na solicitação será criado após a validação.
O servidor sempre retornará um OperationOutcome
como resultado.
Opção 3: Validar no recurso CREATE/UPDATE usando cabeçalho
Você pode escolher quando deseja validar seu recurso, como no recurso CREATE
ou UPDATE
no . Por padrão, o serviço FHIR é configurado para desativar a validação no recurso Create/Update
. Esse recurso permite validar no Create/Update
, usando o x-ms-profile-validation
cabeçalho. Defina 'x-ms-profile-validation' como true para validação.
Observação
No serviço FHIR de código aberto, você pode alterar a definição de configuração do servidor, em CoreFeatures.
{
"FhirServer": {
"CoreFeatures": {
"ProfileValidationOnCreate": true,
"ProfileValidationOnUpdate": false
}
}
Para habilitar a validação estrita, use o cabeçalho 'Prefer: handling' com valor estrito. Ao definir esse cabeçalho, o aviso de validação será relatado como um erro.
Próximas etapas
Neste artigo, você aprendeu como validar recursos em perfis usando $validate
o . Para saber mais sobre os outros recursos compatíveis com o serviço FHIR, consulte
FHIR® é uma marca registrada da HL7 e é usado com a permissão da HL7.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de