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:

Tipo de Registo
CorrelationIdNotDefinedException
FhirDataMappingException
FhirResourceNotFoundException
IncompatibleDataException
InvalidDataFormatException
InvalidEventHubException
InvalidFhirServiceException
InvalidQuantityFhirValueException
InvalidTemplateException
ManagedIdentityCredentialNotFound
MultipleResourceFoundException
NormalizationDataMappingException
PatientDeviceMismatchException
ResourceIdentityNotDefinedException
TemplateExpressionException
TemplateNotFoundException
UnauthorizedAccessEventHubException
UnauthorizedAccessFhirServiceException

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:

  1. 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 o type modelo do ARM de exemplo no ficheiro azuredeploy.json no GitHub).

  2. 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:

  1. 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.

  2. 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) o type valor de "userAssigned" e 2) um userAssignedIdentities 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).

  3. 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).

  4. 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.