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:
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:
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 latype
plantilla de ARM de ejemplo en el archivo azuredeploy.json en GitHub).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:
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.
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) eltype
valor de"userAssigned"
y 2) unuserAssignedIdentities
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).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).
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.