Solución de errores mediante los registros del servicio MedTech

Nota:

Fast Healthcare Interoperability Resources (FHIR®) es una especificación sanitaria abierta.

En este artículo se proporcionan los pasos de solución de problemas y las correcciones de errores encontrados en los registros del servicio MedTech.

Sugerencia

Tener acceso a los registros del servicio MedTech es esencial para solucionar problemas y evaluar el estado general y el rendimiento de su servicio MedTech.

Para obtener información sobre cómo acceder a los registros del servicio MedTech, consulte Habilitación de la configuración de diagnóstico para el servicio MedTech.

Gravedad del error del servicio MedTech

Esta propiedad representa la gravedad del error generado. Esta es una lista de valores posibles para esta propiedad:

severity Descripción
Sin bloqueo Existe un problema en el proceso de flujo de datos, pero el procesamiento de mensajes del dispositivo no se detiene.
Bloqueos Existe un problema en el proceso de flujo de datos y no se espera que procese ningún mensaje de dispositivo.

Operación que realiza el servicio MedTech

Esta propiedad representa la operación que realiza el servicio MedTech cuando se produjo el error. Normalmente, una operación representa la fase de flujo de datos en la que se procesa un mensaje de dispositivo. La fase de flujo de datos se muestra en los registros de error como OperationName. Esta es una lista de valores posibles para esta propiedad:

OperationName Descripción
Normalización Fase de flujo de datos donde se normaliza el mensaje del dispositivo.
FHIRConversion Fase de flujo de datos en la que los datos normalizados agrupados se transforman en un recurso de observación.

Nota:

Para obtener información sobre la transformación de datos de mensajes de dispositivo del servicio MedTech, consulte Información general sobre las fases de procesamiento de datos de dispositivos del servicio MedTech.

Correcciones y excepciones de comprobación de estado del servicio MedTech

Las comprobaciones de estado se realizan automáticamente y periódicamente para comprobar si un servicio MedTech puede normalizar y transformar mensajes de dispositivo. Si no se ha superado una comprobación de estado, se produce una excepción HealthCheckException y se registra.

En los registros del servicio MedTech, se registra un error de comprobación de estado con un LogType of HealthCheckException y el nombre de la comprobación de estado con errores se registra en el mensaje.

Los nombres de las comprobaciones de estado se enumeran en la tabla siguiente y las correcciones de cualquiera de sus errores se describen debajo de la tabla:

Healthcheck
CredentialStore:IsCustomerFacingMiCredentialBundlePresent
ExternalEventHub:IsAuthenticated
FhirService:IsAuthenticated

Nota:

Aunque healthCheckException es un problema de bloqueo, puede ser transitorio y resolverse sin intervención.

CredentialStore:IsCustomerFacingMiCredentialBundlePresent

Descripción: comprueba si se ha habilitado una identidad administrada asignada por el sistema del servicio MedTech o si se configura una identidad administrada asignada por el usuario.

Gravedad: bloqueo

Corrección: siga la corrección descrita en ManagedIdentityCredentialNotFound.

ExternalEventHub:IsAuthenticated

Descripción: comprueba que el centro de eventos es válido y que el servicio MedTech recibe acceso a él.

Gravedad: bloqueo

Corrección: asegúrese de que el centro de eventos es válido siguiendo la corrección descrita en InvalidEventHubException. A continuación, asegúrese de que el servicio MedTech recibe acceso al centro de eventos siguiendo la corrección descrita en UnauthorizedAccessEventHubException.

FhirService:IsAuthenticated

Descripción: comprueba que el destino de FHIR es válido y que el servicio MedTech tiene acceso de escritura a él.

Gravedad: bloqueo

Corrección: asegúrese de que el destino de FHIR es válido siguiendo la corrección descrita en InvalidFhirServiceException. A continuación, asegúrese de que el servicio MedTech tenga acceso de escritura al destino de FHIR siguiendo la corrección descrita en UnauthorizedAccessFhirServiceException.

Errores y correcciones del servicio MedTech

Si se produce un error al normalizar o transformar mensajes de dispositivo, se registra.

En los registros del servicio MedTech, el nombre del error se registra en logType.

Los nombres de los errores se enumeran en la tabla siguiente y las correcciones para ellos se proporcionan debajo de la tabla:

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

CorrelationIdNotDefinedException

Descripción: si se especifica correlationIdExpression (que es la expresión para analizar el identificador de correlación del mensaje del dispositivo) en la asignación de dispositivos, este error se produce cuando el identificador de correlación no está presente en un mensaje de dispositivo o cuando CorrelationIdExpression no está configurado correctamente en la asignación de dispositivos. Nota: CorrelationIdExpression es opcional. Este error se produce al agrupar medidas que comparten el mismo dispositivo, tipo e identificador de correlación en un único recurso de observación de FHIR.

Gravedad: bloqueo

Corrección:

  • Si se necesita CorrelationIdExpression: asegúrese de que los mensajes del dispositivo contengan el identificador de correlación. Además, en el Azure Portal, vaya a la hoja Asignación de dispositivos del servicio MedTech y asegúrese de que el correlationIdExpression valor de la asignación de dispositivos exista y haga referencia correctamente a la clave del identificador de correlación en los mensajes del dispositivo.

  • Si no se necesita CorrelationIdExpression: en el Azure Portal, vaya a la hoja Asignación de dispositivos del servicio MedTech y quite la línea que contiene correlationIdExpression en la asignación de dispositivos.

FhirDataMappingException

Descripción: error al transformar los datos normalizados con la asignación de destino de FHIR. Este error se produce cuando una plantilla que corresponde a los datos normalizados no se define en la asignación de destino de FHIR.

Gravedad: bloqueo

Corrección: en el Azure Portal, vaya a la hoja Asignación de dispositivos y a la hoja Destino del servicio MedTech y asegúrese de que, para cada plantilla de la asignación de dispositivos, hay una plantilla con el mismo typeName valor en la asignación de destino de FHIR. Además, corrija los errores de validación que se muestran al editar y guardar la asignación de destino de FHIR en la hoja Destino .

FhirResourceNotFoundException

Descripción: este error se produce cuando un recurso de FHIR con el identificador especificado en el mensaje del dispositivo no se encuentra en el destino de FHIR. Si el tipo del recurso FHIR es Paciente, el error puede ser que el recurso Device FHIR con el identificador de dispositivo especificado en el mensaje del dispositivo no haga referencia a un recurso de FHIR del paciente. El tipo del recurso FHIR (por ejemplo, Dispositivo, Paciente, Encuentro o Observación) se especifica en el mensaje de error. Nota: Este error solo puede producirse cuando el tipo de resolución del servicio MedTech está establecido en Lookup.

Gravedad: sin bloqueo

Corrección: asegúrese de que los mensajes del dispositivo contienen el identificador del recurso FHIR que tiene el tipo especificado en el mensaje de error. Además, en el Azure Portal, vaya a la hoja Asignación de dispositivos del servicio MedTech y asegúrese de que el {FHIR resource’s type specified in the error message}IdExpression valor (por ejemplo, deviceIdExpression) de la asignación de dispositivos existe y hace referencia correctamente a la clave del identificador en los mensajes del dispositivo.

IncompatibleDataException

Descripción: hay una incompatibilidad entre el mensaje del dispositivo y la asignación de dispositivos (por ejemplo, una propiedad necesaria puede faltar o estar en blanco en el mensaje del dispositivo o en la asignación de dispositivos). La propiedad de asignación de dispositivos con el error se especifica en el mensaje de error.

Gravedad: sin bloqueo

Corrección: asegúrese de que los mensajes del dispositivo contienen:

  • Clave a la que hace referencia la propiedad de asignación de dispositivos especificada en el mensaje de error.

  • Valor que no está en blanco para la clave.

Además, en el Azure Portal, vaya a la hoja Asignación de dispositivos del servicio MedTech y asegúrese de que la propiedad de asignación de dispositivos especificada en el mensaje de error tenga un valor que haga referencia correctamente a la clave correspondiente en los mensajes del dispositivo.

InvalidDataFormatException

Descripción: un mensaje de dispositivo no está en un formato que se puede analizar en un objeto JSON.

Gravedad: sin bloqueo

Corrección: asegúrese de que los mensajes del dispositivo están en formato JSON. Una manera de confirmar que el formato JSON es usar un validador JSON en línea.

InvalidEventHubException

Descripción: el centro de eventos no es válido por una de estas razones:

  • Al menos uno de los detalles del centro de eventos (espacio de nombres de Event Hubs, nombre del centro de eventos o grupo de consumidores) tiene un formato incorrecto o no existe. El espacio de nombres de Event Hubs debe contener el centro de eventos y el centro de eventos debe contener el grupo de consumidores.

  • Más de un servicio lee del grupo de consumidores del centro de eventos.

Gravedad: bloqueo

Corrección: en el Azure Portal, vaya a la hoja Event Hubs del servicio MedTech y asegúrese de que todos los campos de los detalles del centro de eventos estén rellenados. Para asegurarse de que solo el servicio MedTech lee del grupo de consumidores, haga lo siguiente:

  • Recorra los servicios y asegúrese de que el servicio MedTech es el único servicio que accede al grupo de consumidores.

  • Vaya al centro de eventos en el Azure Portal, cree un nuevo grupo de consumidores al que solo acceda el servicio MedTech, vaya a la hoja Event Hubs del servicio MedTech y seleccione el nuevo grupo de consumidores en el campo Grupo de consumidores.

InvalidFhirServiceException

Descripción: el destino de FHIR no es válido porque tiene un formato incorrecto, no existe o no es un servicio FHIR en Azure Health Data Services.

Gravedad: bloqueo

Corrección: En el Azure Portal, vaya a la hoja Destino del servicio MedTech y asegúrese de que el campo del servidor FHIR esté rellenado correctamente.

InvalidQuantityFhirValueException

Descripción: el valor con un tipo de datos de recurso Quantity no es válido (por ejemplo, puede estar en un formato que no se admita). El valor con el error se especifica en el mensaje de error.

Gravedad: sin bloqueo

Corrección: asegúrese de que los valores de los mensajes del dispositivo están en tipos de datos admitidos según las especificaciones de FHIR Quantity.value.

InvalidTemplateException

Descripción: hay un error con una plantilla en la asignación de dispositivos o la asignación de destino de FHIR. Los errores incluyen:

  • Falta el tipo de plantilla de una plantilla (representado por la templateType propiedad) o tiene un valor en blanco.

  • Una plantilla (representada por la template propiedad) en la plantilla de colección raíz no tiene un objeto JSON, que se identifica mediante llaves {}, como su valor.

  • Falta el tipo de plantilla (representado por la typeName propiedad) o tiene un valor en blanco.

  • Más de una plantilla de una asignación tiene el mismo tipo (tiene el mismo valor para su typeName propiedad).

El tipo y la línea de la plantilla con el error se especifican en el mensaje de error.

Gravedad: bloqueo

Corrección: en el Azure Portal, vaya a la hoja Asignación de dispositivos (si el error está en la asignación de dispositivos) o la hoja Destino (si el error está en la asignación de destino de FHIR) del servicio MedTech y corrija la plantilla especificada en el mensaje de error.

ManagedIdentityCredentialNotFound

Descripción: cuando el servicio MedTech se conecta al centro de eventos, la identidad administrada asignada por el sistema del servicio MedTech está deshabilitada o no existe, o no existe una identidad administrada asignada por el usuario no está configurada para el servicio MedTech. Nota: Este error puede producirse si el servicio MedTech se implementó mediante una plantilla de Azure Resource Manager (ARM) mal configurada.

Gravedad: bloqueo

Corrección: la corrección depende del tipo de identidad administrada que quiera usar. La diferencia entre una identidad administrada asignada por el sistema y una identidad administrada asignada por el usuario se puede revisar en Tipos de identidad administrada. Nota: El servicio MedTech solo admite una identidad: una identidad administrada asignada por el sistema o una única identidad administrada asignada por el usuario.  

Si quiere usar una identidad administrada asignada por el sistema:

  1. Si va a implementar un servicio MedTech mediante una plantilla de ARM, asegúrese de que el recurso del servicio MedTech en la plantilla de ARM tiene una identity propiedad que contiene el valor de "SystemAssigned" (consulte la type plantilla de ARM de ejemplo en el archivo azuredeploy.json en GitHub).

  2. En el Azure Portal, vaya a la hoja Identidad del servicio MedTech, vaya a la pestaña Asignado por el sistema y asegúrese de lo siguiente:

    • El estado se establece en Activado.
    • Las asignaciones de roles de Azure muestran que el centro de eventos tiene un rol receptor de datos Azure Event Hubs asignado a la identidad administrada asignada por el sistema del servicio MedTech. Si no es así, siga estas instrucciones

Si quiere usar una identidad administrada asignada por el usuario:

  1. Asegúrese de que tiene una identidad administrada asignada por el usuario. Si no es así, cree uno mediante el Azure Portal o una plantilla de ARM.

  2. Si va a implementar un servicio MedTech mediante una plantilla de ARM, asegúrese de que el recurso del servicio MedTech en la plantilla de ARM tiene una identity propiedad que contiene 1) el type valor de "userAssigned" y 2) un userAssignedIdentities valor que incluye el nombre de la identidad administrada asignada por el usuario (consulte el ejemplo en Asignación de una identidad administrada asignada por el usuario a una máquina virtual de Azure).

  3. En el Azure Portal, vaya a la hoja Identidad del servicio MedTech, vaya a la pestaña Usuario asignado y asegúrese de que se muestra la identidad administrada asignada por el usuario. Si no es así, agregue la identidad administrada asignada por el usuario (consulte el ejemplo en Asignación de una identidad administrada asignada por el usuario a una máquina virtual existente).

  4. En el Azure Portal, vaya al centro de eventos y asigne el rol receptor de datos Azure Event Hubs a la identidad administrada asignada por el usuario del servicio MedTech (consulte las instrucciones, pero use la identidad administrada asignada por el usuario en lugar de la identidad administrada asignada por el sistema).

MultipleResourceFoundException

Descripción: se encuentran varios recursos de FHIR con el mismo identificador, que se toma del mensaje del dispositivo, en el destino de FHIR, pero solo se debe encontrar un recurso de FHIR. El tipo del recurso FHIR (por ejemplo, Dispositivo, Paciente, Encuentro o Observación) se especifica en el mensaje de error.

Gravedad: sin bloqueo

Corrección: asegúrese de que un identificador no está asignado a más de un recurso de FHIR que tenga el tipo especificado en el mensaje de error.

NormalizationDataMappingException

Descripción: error al normalizar un mensaje de dispositivo con la asignación de dispositivos.

Gravedad: bloqueo

Corrección: En el Azure Portal, vaya a la hoja Asignación de dispositivos del servicio MedTech y corrija los errores de validación que se muestran al editar y guardar la asignación de dispositivos.

PatientDeviceMismatchException

Descripción: un recurso de dispositivo en el destino de FHIR hace referencia a un recurso de FHIR del paciente con un identificador que no coincide con el identificador de paciente especificado en el mensaje del dispositivo (es decir, el dispositivo está vinculado a otro paciente).

Gravedad: sin bloqueo

Corrección: asegúrese de que un identificador de paciente no está asignado a más de un dispositivo.

ResourceIdentityNotDefinedException

Descripción: este error se produce cuando el identificador del recurso FHIR no está presente en un mensaje de dispositivo o cuando la expresión para analizar el identificador del recurso de FHIR desde el mensaje del dispositivo no está configurado en la asignación de dispositivos. El tipo del recurso FHIR (por ejemplo, Dispositivo, Paciente, Encuentro o Observación) se especifica en el mensaje de error. Nota: Este error solo puede producirse cuando el tipo de resolución del servicio MedTech está establecido en Crear.

Gravedad: sin bloqueo

Corrección: asegúrese de que los mensajes del dispositivo contienen el identificador del recurso FHIR que tiene el tipo especificado en el mensaje de error. Además, en el Azure Portal, vaya a la hoja Asignación de dispositivos del servicio MedTech y asegúrese de que el {FHIR resource’s type specified in the error message}IdExpression valor (por ejemplo, deviceIdExpression) de la asignación de dispositivos existe y hace referencia correctamente a la clave del identificador en los mensajes del dispositivo.

TemplateExpressionException

Descripción: hay un error con una expresión en una plantilla dentro de la asignación de dispositivos. Los errores incluyen:

  • Falta una expresión necesaria.

  • No se admite el lenguaje de una expresión (representado por la language propiedad ). Todos los tipos de plantilla admiten expresiones en JSONPath; solo el tipo de plantilla CalculatedContent admite expresiones en JMESPath.

  • El valor de una expresión (representado por la value propiedad) tiene un formato incorrecto según la sintaxis del lenguaje de la expresión.

La expresión y la línea con el error se especifican en el mensaje de error.

Gravedad: bloqueo

Corrección: En el Azure Portal, vaya a la hoja Asignación de dispositivos del servicio MedTech y corrija la expresión especificada en el mensaje de error dentro de la asignación de dispositivos.

TemplateNotFoundException

Descripción: una plantilla de la asignación de dispositivos no tiene una plantilla coincidente con el mismo tipo dentro de la asignación de destino de FHIR. El tipo de la plantilla se especifica en el mensaje de error.

Gravedad: sin bloqueo

Corrección: en el Azure Portal, vaya a la hoja Asignación de dispositivos y a la hoja Destino del servicio MedTech y asegúrese de que, para cada plantilla de la asignación de dispositivos, hay una plantilla con el mismo typeName valor dentro de la asignación de destino de FHIR.

UnauthorizedAccessEventHubException

Descripción: falta el servicio MedTech para recibir acceso al centro de eventos.

Gravedad: bloqueo

Corrección: En el Azure Portal, vaya al centro de eventos y asigne el rol receptor de datos Azure Event Hubs al servicio MedTech (consulte las instrucciones).

UnauthorizedAccessFhirServiceException

Descripción: falta acceso de escritura al servicio MedTech al destino de FHIR.

Gravedad: bloqueo

Corrección: En el Azure Portal, vaya al servicio FHIR y asigne el rol FHIR Data Writer al servicio MedTech (consulte las instrucciones).

Nota:

Si no puede corregir el problema del servicio MedTech mediante esta guía de solución de problemas, puede abrir una incidencia de soporte técnico de Azure que adjunta copias de las asignaciones de destino de dispositivo y dispositivo y FHIR a la solicitud para ayudar mejor con la determinación del problema.

Pasos siguientes

En este artículo, ha aprendido a solucionar y corregir errores mediante los registros del servicio MedTech.

Para obtener información sobre las preguntas más frecuentes sobre el servicio MedTech (P+F), consulte

FHIR® es una marca registrada de Health Level Seven International, registrada en la Oficina de Patentes y Marcas Registradas de Estados Unidos, y se usa con su permiso.