Resolver erros com os registos do serviço MedTech
Nota
Fast Healthcare Interoperability Resources (FHIR®) é uma especificação de cuidados de saúde aberta.
Este artigo fornece passos de resolução de problemas e correções para erros encontrados nos registos do serviço MedTech.
Dica
Ter acesso aos registos do serviço MedTech é essencial para resolver problemas e avaliar o estado de funcionamento geral e o desempenho do seu serviço MedTech.
Para saber como aceder aos registos do serviço MedTech, veja Como ativar as definições de diagnóstico para o serviço MedTech.
Gravidade do erro do serviço MedTech
Esta propriedade representa a gravidade do erro ocorrido. Eis uma lista de valores possíveis para esta propriedade:
Gravidade | Descrição |
---|---|
Sem bloqueio | Existe um problema no processo de fluxo de dados, mas o processamento de mensagens do dispositivo não para. |
Bloqueio | Existe um problema no processo de fluxo de dados e não se espera que nenhuma mensagem do dispositivo processe. |
Operação que está a ser executada pelo serviço MedTech
Esta propriedade representa a operação que está a ser executada pelo serviço MedTech quando ocorreu o erro. Geralmente, uma operação representa a fase do fluxo de dados na qual uma mensagem do dispositivo é processada. A fase do fluxo de dados é apresentada nos registos de erros como OperationName. Eis uma lista de valores possíveis para esta propriedade:
OperationName | Description |
---|---|
Normalização | A fase do fluxo de dados onde a mensagem do dispositivo é normalizada. |
FHIRConversion | A fase do fluxo de dados em que os dados agrupados normalizados são transformados num recurso de Observação. |
Nota
Para saber mais sobre a transformação de dados de mensagens do dispositivo do serviço MedTech, veja Descrição geral das fases de processamento de dados do dispositivo do serviço MedTech.
Exceções e correções de verificação do estado de funcionamento do serviço MedTech
As verificações de estado de funcionamento são realizadas de forma automática e periódica para verificar se um serviço MedTech pode normalizar e transformar mensagens do dispositivo. Se uma verificação de estado de funcionamento não passar, ocorre uma HealthCheckException e é registada.
Nos registos do serviço MedTech, é registada uma falha de verificação de estado de funcionamento com um LogType de HealthCheckException e o nome da verificação de estado de funcionamento com falha é registado na Mensagem.
Os nomes das verificações de estado de funcionamento estão listados na tabela seguinte e as correções para qualquer uma das suas falhas são descritas abaixo da tabela:
Verificação de Estado de Funcionamento |
---|
CredentialStore:IsCustomerFacingMiCredentialBundlePresent |
ExternalEventHub:IsAuthenticated |
FhirService:IsAuthenticated |
Nota
Embora um HealthCheckException seja um problema de bloqueio, pode ser transitório e pode resolver-se sem intervenção.
CredentialStore:IsCustomerFacingMiCredentialBundlePresent
Descrição: verifica se a identidade gerida atribuída pelo sistema de um serviço MedTech foi ativada ou se está configurada uma identidade gerida atribuída pelo utilizador.
Gravidade: Bloqueio
Correção: siga a correção descrita em ManagedIdentityCredentialNotFound.
ExternalEventHub:IsAuthenticated
Descrição: verifica se o hub de eventos é válido e que o serviço MedTech tem acesso ao mesmo.
Gravidade: Bloqueio
Correção: certifique-se de que o hub de eventos é válido ao seguir a correção descrita em InvalidEventHubException. Em seguida, certifique-se de que o serviço MedTech tem acesso ao seu hub de eventos ao seguir a correção descrita em UnauthorizedAccessEventHubException.
FhirService:IsAuthenticated
Descrição: verifica se o destino FHIR é válido e se o serviço MedTech tem acesso de escrita ao mesmo.
Gravidade: Bloqueio
Correção: certifique-se de que o destino FHIR é válido ao seguir a correção descrita em InvalidFhirServiceException. Em seguida, certifique-se de que o seu serviço MedTech tem acesso de escrita ao seu destino FHIR ao seguir a correção descrita em UnauthorizedAccessFhirServiceException.
Erros e correções do serviço MedTech
Se ocorrer um erro ao normalizar ou transformar mensagens do dispositivo, é registado.
Nos registos do serviço MedTech, o nome do erro é registado no LogType.
Os nomes dos erros estão listados na tabela seguinte e as correções para os mesmos são fornecidas abaixo da tabela:
CorrelationIdNotDefinedException
Descrição: se for especificada uma CorrelationIdExpression (que é a expressão para analisar o identificador de correlação da mensagem do dispositivo) no mapeamento do dispositivo, este erro ocorre quando o identificador de correlação não está presente numa mensagem do dispositivo ou quando o CorrelationIdExpression não está configurado corretamente no mapeamento do dispositivo. Nota: o CorrelationIdExpression é opcional. Este erro ocorre ao agrupar as medições que partilham o mesmo dispositivo, tipo e identificador de correlação num único recurso de Observação FHIR.
Gravidade: Bloqueio
Correção:
Se for necessária a CorrelationIdExpression: certifique-se de que as mensagens do dispositivo contêm o identificador de correlação. Além disso, no portal do Azure, aceda ao painel Mapeamento de dispositivos do seu serviço MedTech e certifique-se de que o
correlationIdExpression
valor no mapeamento do dispositivo existe e referencia corretamente a chave do identificador de correlação nas mensagens do dispositivo.Se a CorrelationIdExpression não for necessária: na portal do Azure, aceda ao painel Mapeamento de dispositivos do serviço MedTech e remova a linha que
correlationIdExpression
contém o mapeamento do dispositivo.
FhirDataMappingException
Descrição: ocorreu um erro ao transformar dados normalizados com o mapeamento de destino FHIR. Este erro ocorre quando um modelo que corresponde aos dados normalizados não é definido no mapeamento de destino FHIR.
Gravidade: Bloqueio
Correção: no portal do Azure, aceda ao painel Mapeamento de dispositivos e ao painel Destino do seu serviço MedTech e certifique-se de que, para cada modelo no mapeamento do dispositivo, existe um modelo com o mesmo typeName
valor no mapeamento de destino FHIR. Além disso, corrija quaisquer erros de validação que sejam apresentados ao editar e guardar o mapeamento de destino FHIR no painel Destino .
FhirResourceNotFoundException
Descrição: este erro ocorre quando um recurso FHIR com o identificador indicado na mensagem do dispositivo não pode ser encontrado no destino FHIR. Se o tipo do recurso FHIR for Paciente, o erro poderá ser o facto de o recurso FHIR do Dispositivo com o identificador do dispositivo indicado na mensagem do dispositivo não referenciar um recurso FHIR do Paciente. O tipo do recurso FHIR (por exemplo, Dispositivo, Paciente, Encontro ou Observação) é especificado na mensagem de erro. Nota: este erro só pode ocorrer quando o tipo de resolução do serviço MedTech está definido como Pesquisa.
Gravidade: Sem bloqueio
Correção: certifique-se de que as mensagens do dispositivo contêm o identificador do recurso FHIR que tem o tipo especificado na mensagem de erro. Além disso, no portal do Azure, aceda ao painel Mapeamento de dispositivos do seu serviço MedTech e certifique-se de que o {FHIR resource’s type specified in the error message}IdExpression
valor (por exemplo, deviceIdExpression
) no mapeamento do dispositivo existe e referencia corretamente a chave do identificador nas mensagens do dispositivo.
IncompatibleDataException
Descrição: existe uma incompatibilidade entre a mensagem do dispositivo e o mapeamento do dispositivo (por exemplo, uma propriedade necessária pode estar em falta ou em branco na mensagem do dispositivo e/ou no mapeamento do dispositivo). A propriedade de mapeamento de dispositivos com o erro é especificada na mensagem de erro.
Gravidade: Sem bloqueio
Correção: certifique-se de que as mensagens do dispositivo contêm:
A chave referenciada pela propriedade de mapeamento do dispositivo especificada na mensagem de erro.
Um valor que não está em branco para a chave.
Além disso, no portal do Azure, aceda ao painel Mapeamento de dispositivos do seu serviço MedTech e certifique-se de que a propriedade de mapeamento de dispositivos especificada na mensagem de erro tem um valor que referencia corretamente a chave correspondente nas mensagens do dispositivo.
InvalidDataFormatException
Descrição: uma mensagem de dispositivo não está num formato que possa ser analisado num objeto JSON.
Gravidade: Sem bloqueio
Correção: certifique-se de que as mensagens do dispositivo estão no formato JSON. Uma forma de confirmar o formato JSON é utilizar um validador JSON online.
InvalidEventHubException
Descrição: o hub de eventos é inválido por um dos seguintes motivos:
Pelo menos um dos detalhes do hub de eventos (espaço de nomes dos Hubs de Eventos, nome do hub de eventos ou grupo de consumidores) está formatado incorretamente ou não existe. O espaço de nomes dos Hubs de Eventos deve conter o hub de eventos e o hub de eventos deve conter o grupo de consumidores.
Mais do que um serviço está a ler a partir do grupo de consumidores do hub de eventos.
Gravidade: Bloqueio
Correção: no portal do Azure, aceda ao painel Hubs de Eventos do seu serviço MedTech e certifique-se de que todos os campos dos detalhes do hub de eventos estão preenchidos. Para garantir que apenas o seu serviço MedTech lê a partir do grupo de consumidores:
Percorra os seus serviços e certifique-se de que o seu serviço MedTech é o único serviço que acede ao grupo de consumidores.
Aceda ao seu hub de eventos no portal do Azure, crie um novo grupo de consumidores ao qual apenas o serviço MedTech acede, aceda ao painel Hubs de Eventos do seu serviço MedTech e selecione o seu novo grupo de consumidores no campo Grupo de consumidores.
InvalidFhirServiceException
Descrição: o destino FHIR é inválido porque está formatado incorretamente, não existe ou não é um serviço FHIR nos Serviços de Dados de Saúde do Azure.
Gravidade: Bloqueio
Correção: no portal do Azure, aceda ao painel Destino do seu serviço MedTech e certifique-se de que o campo do servidor FHIR está corretamente preenchido.
InvalidQuantityFhirValueException
Descrição: o valor com um tipo de dados de recurso Quantidade é inválido (por exemplo, pode estar num formato que não é suportado). O valor com o erro é especificado na mensagem de erro.
Gravidade: Sem bloqueio
Correção: certifique-se de que os valores nas mensagens do dispositivo estão em tipos de dados suportados de acordo com as especificações FHIR Quantity.value.
InvalidTemplateException
Descrição: existe um erro com um modelo no mapeamento do dispositivo ou no mapeamento de destino FHIR. Os erros incluem:
O tipo de modelo de um modelo (representado pela
templateType
propriedade) está em falta ou tem um valor em branco.Um modelo (representado pela
template
propriedade) no modelo de coleção de raiz não tem um objeto JSON, que é identificado pelas chavetas , como o respetivo{}
valor.O tipo de modelo (representado pela
typeName
propriedade) está em falta ou tem um valor em branco.Mais do que um modelo num mapeamento tem o mesmo tipo (tem o mesmo valor para a respetiva
typeName
propriedade).
O tipo e a linha do modelo com o erro são especificados na mensagem de erro.
Gravidade: Bloqueio
Correção: no portal do Azure, aceda ao painel Mapeamento de dispositivos (se o erro estiver no mapeamento do dispositivo) ou ao painel Destino (se o erro estiver no mapeamento de destino FHIR) do serviço MedTech e corrija o modelo especificado na mensagem de erro.
ManagedIdentityCredentialNotFound
Descrição: quando o serviço MedTech está a ligar ao hub de eventos, a identidade gerida atribuída pelo sistema do serviço MedTech está desativada ou não existe, ou uma identidade gerida atribuída pelo utilizador não está configurada para o serviço MedTech. Nota: este erro pode ocorrer se o serviço MedTech tiver sido implementado com um modelo do Azure Resource Manager (ARM) mal configurado.
Gravidade: Bloqueio
Correção: a correção depende do tipo de identidade gerida que pretende utilizar. A diferença entre uma identidade gerida atribuída pelo sistema e uma identidade gerida atribuída pelo utilizador pode ser revista em Tipos de identidade gerida. Nota: o serviço MedTech suporta apenas uma identidade: uma identidade gerida atribuída pelo sistema ou uma única identidade gerida atribuída pelo utilizador.
Se quiser utilizar uma identidade gerida atribuída pelo sistema:
Se estiver a implementar um serviço MedTech com um modelo do ARM, certifique-se de que o recurso de serviço MedTech no modelo do ARM tem uma
identity
propriedade que contém o valor de"SystemAssigned"
(veja otype
modelo do ARM de exemplo no ficheiro azuredeploy.json no GitHub).No portal do Azure, aceda ao painel Identidade do seu serviço MedTech, aceda ao separador Sistema atribuído e certifique-se do seguinte:
- O Estado está definido como Ativado.
- As atribuições de funções do Azure mostram que o hub de eventos tem uma função de Recetor de Dados Hubs de Eventos do Azure atribuída à identidade gerida atribuída pelo sistema do serviço MedTech. Caso contrário, siga estas instruções.
Se quiser utilizar uma identidade gerida atribuída pelo utilizador:
Certifique-se de que tem uma identidade gerida atribuída pelo utilizador. Caso contrário, crie um com o portal do Azure ou um modelo do ARM.
Se estiver a implementar um serviço MedTech com um modelo do ARM, certifique-se de que o recurso de serviço MedTech no modelo do ARM tem uma
identity
propriedade que contém 1) otype
valor de"userAssigned"
e 2) umuserAssignedIdentities
valor que inclui o nome da identidade gerida atribuída pelo utilizador (veja o exemplo em Atribuir uma identidade gerida atribuída pelo utilizador a uma VM do Azure).No portal do Azure, aceda ao painel Identidade do seu serviço MedTech, aceda ao separador Utilizador atribuído e certifique-se de que a identidade gerida atribuída pelo utilizador é apresentada. Caso contrário, adicione a identidade gerida atribuída pelo utilizador (veja exemplo em Atribuir uma identidade gerida atribuída pelo utilizador a uma VM existente).
No portal do Azure, aceda ao hub de eventos e atribua a função Recetor de Dados Hubs de Eventos do Azure à identidade gerida atribuída pelo utilizador do serviço MedTech (veja as instruções, mas utilize a identidade gerida atribuída pelo utilizador em vez da identidade gerida atribuída pelo sistema).
MultipleResourceFoundException
Descrição: vários recursos FHIR com o mesmo identificador, que é retirado da mensagem do dispositivo, encontram-se no destino FHIR, mas apenas deveria ter sido encontrado um recurso FHIR. O tipo do recurso FHIR (por exemplo, Dispositivo, Paciente, Encontro ou Observação) é especificado na mensagem de erro.
Gravidade: Sem bloqueio
Correção: certifique-se de que um identificador não está atribuído a mais do que um recurso FHIR que tenha o tipo especificado na mensagem de erro.
NormalizationDataMappingException
Descrição: ocorreu um erro ao normalizar uma mensagem de dispositivo com o mapeamento do dispositivo.
Gravidade: Bloqueio
Correção: no portal do Azure, aceda ao painel Mapeamento de dispositivos do seu serviço MedTech e corrija quaisquer erros de validação apresentados ao editar e guardar o mapeamento do dispositivo.
PatientDeviceMismatchException
Descrição: um recurso de dispositivo no destino FHIR referencia um recurso FHIR do Paciente com um identificador que não corresponde ao identificador do paciente fornecido na mensagem do dispositivo (ou seja, o dispositivo está ligado a outro paciente).
Gravidade: Sem bloqueio
Correção: certifique-se de que o identificador de um paciente não está atribuído a mais do que um dispositivo.
ResourceIdentityNotDefinedException
Descrição: este erro ocorre quando o identificador do recurso FHIR não está presente numa mensagem de dispositivo ou quando a expressão para analisar o identificador do recurso FHIR a partir da mensagem do dispositivo não está configurada no mapeamento do dispositivo. O tipo do recurso FHIR (por exemplo, Dispositivo, Paciente, Encontro ou Observação) é especificado na mensagem de erro. Nota: este erro só pode ocorrer quando o tipo de resolução do serviço MedTech está definido como Criar.
Gravidade: Sem bloqueio
Correção: certifique-se de que as mensagens do dispositivo contêm o identificador do recurso FHIR que tem o tipo especificado na mensagem de erro. Além disso, no portal do Azure, aceda ao painel Mapeamento de dispositivos do seu serviço MedTech e certifique-se de que o {FHIR resource’s type specified in the error message}IdExpression
valor (por exemplo, deviceIdExpression
) no mapeamento do dispositivo existe e referencia corretamente a chave do identificador nas mensagens do dispositivo.
TemplateExpressionException
Descrição: existe um erro com uma expressão num modelo no mapeamento do dispositivo. Os erros incluem:
Falta uma expressão necessária.
O idioma de uma expressão (representado pela
language
propriedade) não é suportado. Todos os tipos de modelo suportam expressões no JSONPath; apenas o tipo de modelo CalculatedContent suporta expressões no JMESPath.O valor de uma expressão (representado pela
value
propriedade) é formatado incorretamente de acordo com a sintaxe do idioma da expressão.
A expressão e a linha com o erro são especificadas na mensagem de erro.
Gravidade: Bloqueio
Correção: no portal do Azure, aceda ao painel Mapeamento de dispositivos do seu serviço MedTech e corrija a expressão especificada na mensagem de erro no mapeamento do dispositivo.
TemplateNotFoundException
Descrição: um modelo no mapeamento de dispositivos não tem um modelo correspondente com o mesmo tipo no mapeamento de destino FHIR. O tipo do modelo é especificado na mensagem de erro.
Gravidade: Sem bloqueio
Correção: no portal do Azure, aceda ao painel Mapeamento de dispositivos e ao painel Destino do seu serviço MedTech e certifique-se de que, para cada modelo no mapeamento do dispositivo, existe um modelo com o mesmo typeName
valor no mapeamento de destino FHIR.
UnauthorizedAccessEventHubException
Descrição: o serviço MedTech está em falta ao receber acesso ao hub de eventos.
Gravidade: Bloqueio
Correção: no portal do Azure, aceda ao seu hub de eventos e atribua a função recetor de dados Hubs de Eventos do Azure ao serviço MedTech (consulte as instruções).
UnauthorizedAccessFhirServiceException
Descrição: o serviço MedTech não tem acesso de escrita ao destino FHIR.
Gravidade: Bloqueio
Correção: no portal do Azure, aceda ao seu serviço FHIR e atribua a função de Escritor de Dados FHIR ao seu serviço MedTech (ver instruções).
Nota
Se não conseguir corrigir o problema do serviço MedTech com este guia de resolução de problemas, pode abrir um pedido de suporte técnico do Azure anexando cópias da mensagem do dispositivo e mapeamentos de destino FHIR ao seu pedido para ajudar melhor na determinação do problema.
Passos seguintes
Neste artigo, aprendeu a resolver problemas e a corrigir erros com os registos do serviço MedTech.
Para saber mais sobre as perguntas mais frequentes (FAQs) do serviço MedTech, consulte
A FHIR® é uma marca registada do Health Level Seven International, registada no Escritório de Marcas Registadas dos EUA e é utilizada com a sua permissão.