Résoudre les erreurs à l’aide des journaux du service MedTech

Notes

Fast Healthcare Interoperability Resources (FHIR®) est une spécification de soins de santé ouverte.

Cet article fournit des étapes de résolution des problèmes et des correctifs pour les erreurs trouvées dans les journaux du service MedTech.

Conseil

L’accès aux journaux du service MedTech est essentiel pour résoudre les problèmes et évaluer l’intégrité globale et les performances de votre service MedTech.

Pour savoir comment accéder aux journaux du service MedTech, consultez Comment activer les paramètres de diagnostic pour le service MedTech.

Gravité des erreurs du service MedTech

Cette propriété représente la gravité de l’erreur qui s’est produite. Voici la liste des valeurs possibles pour cette propriété :

Gravité Description
Non bloquant Il existe un problème dans le processus de flux de données, mais le traitement des messages d’appareil ne s’arrête pas.
Blocage Il existe un problème dans le processus de flux de données et aucun message d’appareil n’est censé être traité.

Opération effectuée par le service MedTech

Cette propriété représente l’opération effectuée par le service MedTech lorsque l’erreur s’est produite. Une opération représente généralement l’étape de flux de données au cours de laquelle un message d’appareil est traité. La phase de flux de données s’affiche dans les journaux d’erreur sous la forme OperationName. Voici la liste des valeurs possibles pour cette propriété :

NomOpération Description
Normalisation Étape de flux de données où le message de l’appareil est normalisé.
FHIRConversion Étape de flux de données dans laquelle les données groupées normalisées sont transformées en ressource Observation.

Notes

Pour en savoir plus sur la transformation des données des messages des appareils de service MedTech, consultez Vue d’ensemble des étapes de traitement des données des appareils de service MedTech.

L’intégrité du service MedTech case activée exceptions et correctifs

Les vérifications d’intégrité sont effectuées automatiquement et régulièrement pour case activée si un service MedTech peut normaliser et transformer les messages d’appareil. Si une case activée d’intégrité n’a pas réussi, une exception HealthCheckException se produit et est journalisée.

Dans les journaux du service MedTech, une défaillance d’intégrité case activée est enregistrée avec un LogType de HealthCheckException, et le nom du case activée d’intégrité défaillant est enregistré dans le message.

Les noms des contrôles d’intégrité sont répertoriés dans le tableau suivant, et les correctifs pour l’un de leurs échecs sont décrits sous le tableau :

Healthcheck
CredentialStore:IsCustomerFacingMiCredentialBundlePresent
ExternalEventHub:IsAuthenticated
FhirService:IsAuthenticated

Notes

Bien qu’un HealthCheckException soit un problème bloquant, il peut être temporaire et peut se résoudre sans intervention.

CredentialStore:IsCustomerFacingMiCredentialBundlePresent

Description : vérifie si l’identité managée affectée par le système d’un service MedTech a été activée ou si une identité managée affectée par l’utilisateur est configurée.

Gravité : blocage

Correctif : suivez le correctif décrit dans ManagedIdentityCredentialNotFound.

ExternalEventHub:IsAuthenticated

Description : vérifie que le hub d’événements est valide et que le service MedTech y a accès.

Gravité : blocage

Correctif : vérifiez que votre hub d’événements est valide en suivant le correctif décrit dans InvalidEventHubException. Vérifiez ensuite que votre service MedTech a accès à votre hub d’événements en suivant le correctif décrit dans UnauthorizedAccessEventHubException.

FhirService:IsAuthenticated

Description : vérifie que la destination FHIR est valide et que le service MedTech y a accès en écriture.

Gravité : blocage

Correctif : vérifiez que votre destination FHIR est valide en suivant le correctif décrit dans InvalidFhirServiceException. Vérifiez ensuite que votre service MedTech dispose d’un accès en écriture à votre destination FHIR en suivant le correctif décrit dans UnauthorizedAccessFhirServiceException.

Erreurs et correctifs du service MedTech

Si une erreur se produit lors de la normalisation ou de la transformation des messages d’appareil, elle est journalisée.

Dans les journaux du service MedTech, le nom de l’erreur est enregistré dans le LogType.

Les noms des erreurs sont répertoriés dans le tableau suivant, et les correctifs pour ces erreurs sont fournis sous le tableau :

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

CorrelationIdNotDefinedException

Description : si un CorrelationIdExpression (qui est l’expression permettant d’analyser l’identificateur de corrélation à partir du message d’appareil) est spécifié dans le mappage de l’appareil, cette erreur se produit lorsque l’identificateur de corrélation n’est pas présent dans un message d’appareil ou lorsque la correlationIdExpression n’est pas configurée correctement dans le mappage de l’appareil. Remarque : La propriété CorrelationIdExpression est facultative. Cette erreur se produit lors du regroupement des mesures qui partagent le même appareil, le même type et le même identificateur de corrélation en une seule ressource d’observation FHIR.

Gravité : blocage

Correctif :

  • Si l’objet CorrelationIdExpression est nécessaire : assurez-vous que les messages de votre appareil contiennent l’identificateur de corrélation. En outre, sur le Portail Azure, accédez au panneau Mappage des appareils de votre service MedTech et vérifiez que la valeur dans le correlationIdExpression mappage des appareils existe et référence correctement la clé de l’identificateur de corrélation dans les messages de votre appareil.

  • Si le CorrelationIdExpression n’est pas nécessaire : dans le Portail Azure, accédez au panneau Mappage des appareils de votre service MedTech et supprimez la ligne contenant correlationIdExpression le mappage d’appareil.

FhirDataMappingException

Description : une erreur s’est produite lors de la transformation de données normalisées avec le mappage de destination FHIR. Cette erreur se produit lorsqu’un modèle qui correspond aux données normalisées n’est pas défini dans le mappage de destination FHIR.

Gravité : blocage

Correctif : dans le Portail Azure, accédez au panneau Mappage des appareils et au panneau Destination de votre service MedTech, puis vérifiez que, pour chaque modèle dans le mappage d’appareil, il existe un modèle avec la même typeName valeur dans le mappage de destination FHIR. Corrigez également les erreurs de validation qui s’affichent lors de la modification et de l’enregistrement du mappage de destination FHIR dans le panneau Destination .

FhirResourceNotFoundException

Description : cette erreur se produit lorsqu’une ressource FHIR avec l’identificateur donné dans le message de l’appareil est introuvable dans la destination FHIR. Si le type de la ressource FHIR est Patient, l’erreur peut être que la ressource FHIR d’appareil avec l’identificateur d’appareil indiqué dans le message de l’appareil ne référence pas une ressource FHIR patient. Le type de la ressource FHIR (par exemple, Appareil, Patient, Rencontre ou Observation) est spécifié dans le message d’erreur. Remarque : Cette erreur ne peut se produire que lorsque le type de résolution du service MedTech est défini sur Recherche.

Gravité : non bloquant

Correctif : vérifiez que les messages de votre appareil contiennent l’identificateur de la ressource FHIR qui a le type spécifié dans le message d’erreur. En outre, sur le Portail Azure, accédez au panneau Mappage des appareils de votre service MedTech et vérifiez que la {FHIR resource’s type specified in the error message}IdExpression valeur (par exemple, deviceIdExpression) dans le mappage d’appareil existe et référence correctement la clé de l’identificateur dans les messages de votre appareil.

IncompatibleDataException

Description : Il existe une incompatibilité entre le message de l’appareil et le mappage d’appareil (par exemple, une propriété requise peut être manquante ou vide dans le message de l’appareil et/ou dans le mappage de l’appareil). La propriété de mappage d’appareil avec l’erreur est spécifiée dans le message d’erreur.

Gravité : non bloquant

Correctif : vérifiez que les messages de votre appareil contiennent :

  • Clé référencée par la propriété de mappage d’appareil spécifiée dans le message d’erreur.

  • Valeur non vide pour la clé.

En outre, sur le Portail Azure, accédez au panneau Mappage des appareils de votre service MedTech et vérifiez que la propriété de mappage d’appareil spécifiée dans le message d’erreur a une valeur qui référence correctement la clé correspondante dans les messages de votre appareil.

InvalidDataFormatException

Description : Un message d’appareil n’est pas dans un format qui peut être analysé dans un objet JSON.

Gravité : non bloquant

Correctif : vérifiez que les messages de votre appareil sont au format JSON. Une façon de confirmer le format JSON consiste à utiliser un validateur JSON en ligne.

InvalidEventHubException

Description : Le hub d’événements n’est pas valide pour l’une des raisons suivantes :

  • Au moins un des détails du hub d’événements (espace de noms Event Hubs, nom du hub d’événements ou groupe de consommateurs) est mal mis en forme ou n’existe pas. L’espace de noms Event Hubs doit contenir le hub d’événements et le hub d’événements doit contenir le groupe de consommateurs.

  • Plusieurs services sont lisant à partir du groupe de consommateurs du hub d’événements.

Gravité : blocage

Correctif : sur le Portail Azure, accédez au panneau Event Hubs de votre service MedTech et vérifiez que tous les champs pour les détails du hub d’événements sont renseignés. Pour vous assurer que seul votre service MedTech lit à partir du groupe de consommateurs, soit :

  • Passez par vos services et assurez-vous que votre service MedTech est le seul service qui accède au groupe de consommateurs.

  • Accédez à votre hub d’événements dans le Portail Azure, créez un groupe de consommateurs auquel seul votre service MedTech accède, accédez au panneau Event Hubs de votre service MedTech et sélectionnez votre nouveau groupe de consommateurs dans le champ Groupe de consommateurs.

InvalidFhirServiceException

Description : la destination FHIR n’est pas valide, car elle est mise en forme incorrecte, n’existe pas ou n’est pas un service FHIR dans Azure Health Data Services.

Gravité : blocage

Correctif : dans le Portail Azure, accédez au panneau Destination de votre service MedTech et vérifiez que le champ serveur FHIR est correctement renseigné.

InvalidQuantityFhirValueException

Description : La valeur avec un type de données de ressource Quantity n’est pas valide (par exemple, elle peut être dans un format qui n’est pas pris en charge). La valeur avec l’erreur est spécifiée dans le message d’erreur.

Gravité : non bloquant

Correctif : vérifiez que les valeurs dans les messages de votre appareil sont dans des types de données pris en charge conformément aux spécifications FHIR Quantity.value.

InvalidTemplateException

Description : Une erreur s’affiche avec un modèle dans le mappage d’appareil ou le mappage de destination FHIR. Les erreurs sont les suivantes :

  • Le type de modèle d’un modèle (représenté par la templateType propriété) est manquant ou a une valeur vide.

  • Un modèle (représenté par la propriété) sous le template modèle de collection racine n’a pas d’objet JSON, qui est identifié par des accolades {}, comme valeur.

  • Le type d’un modèle (représenté par la typeName propriété) est manquant ou a une valeur vide.

  • Plusieurs modèles d’un mappage ont le même type (a la même valeur pour sa typeName propriété).

Le type et la ligne du modèle avec l’erreur sont spécifiés dans le message d’erreur.

Gravité : blocage

Correction : dans le Portail Azure, accédez au panneau Mappage des appareils (si l’erreur se trouve dans le mappage d’appareil) ou au panneau Destination (si l’erreur se trouve dans le mappage de destination FHIR) de votre service MedTech, puis corrigez le modèle spécifié dans le message d’erreur.

ManagedIdentityCredentialNotFound

Description : Lorsque le service MedTech se connecte au hub d’événements, l’identité managée affectée par le système du service MedTech est désactivée ou n’existe pas, ou une identité managée affectée par l’utilisateur n’est pas configurée pour le service MedTech. Remarque : Cette erreur peut se produire si le service MedTech a été déployé à l’aide d’un modèle Azure Resource Manager (ARM) mal configuré.

Gravité : blocage

Correctif : le correctif dépend du type d’identité managée que vous souhaitez utiliser. La différence entre une identité managée affectée par le système et une identité managée affectée par l’utilisateur peut être examinée dans Types d’identité managée. Remarque : Le service MedTech ne prend en charge qu’une seule identité : une identité managée affectée par le système ou une seule identité managée affectée par l’utilisateur.  

Si vous souhaitez utiliser une identité managée affectée par le système :

  1. Si vous déployez un service MedTech à l’aide d’un modèle ARM, vérifiez que votre ressource de service MedTech dans le modèle ARM possède une identity propriété contenant la valeur de (voir l’exemple type de "SystemAssigned" modèle ARM dans le fichier azuredeploy.json sur GitHub).

  2. Dans le Portail Azure, accédez au panneau Identité de votre service MedTech, accédez à l’onglet Affecté par le système et vérifiez ce qui suit :

    • L’état est défini sur Activé.
    • Les attributions de rôles Azure indiquent que votre hub d’événements a un rôle récepteur de données Azure Event Hubs attribué à l’identité managée affectée par le système de votre service MedTech. Si ce n’est pas le cas, suivez ces instructions

Si vous souhaitez utiliser une identité managée affectée par l’utilisateur :

  1. Vérifiez que vous disposez d’une identité managée affectée par l’utilisateur. Si ce n’est pas le cas, créez-en un à l’aide de la Portail Azure ou d’un modèle ARM.

  2. Si vous déployez un service MedTech à l’aide d’un modèle ARM, assurez-vous que votre ressource de service MedTech dans le modèle ARM possède une identity propriété contenant 1) la valeur et 2) une userAssignedIdentities valeur qui inclut le type nom de "userAssigned" votre identité managée affectée par l’utilisateur (voir l’exemple d’affectation d’une identité managée affectée par l’utilisateur à une machine virtuelle Azure).

  3. Dans le Portail Azure, accédez au panneau Identité de votre service MedTech, accédez à l’onglet Utilisateur affecté et vérifiez que votre identité managée affectée par l’utilisateur s’affiche. Si ce n’est pas le cas, ajoutez votre identité managée affectée par l’utilisateur (voir exemple dans Attribuer une identité managée affectée par l’utilisateur à une machine virtuelle existante).

  4. Sur le Portail Azure, accédez à votre hub d’événements et attribuez le rôle récepteur de données Azure Event Hubs à l’identité managée affectée par l’utilisateur de votre service MedTech (consultez les instructions, mais utilisez l’identité managée affectée par l’utilisateur au lieu de l’identité managée affectée par le système).

MultipleResourceFoundException

Description : Plusieurs ressources FHIR avec le même identificateur, qui est extrait du message de l’appareil, se trouvent dans la destination FHIR, mais une seule ressource FHIR doit avoir été trouvée. Le type de la ressource FHIR (par exemple, Appareil, Patient, Rencontre ou Observation) est spécifié dans le message d’erreur.

Gravité : non bloquant

Correctif : Vérifiez qu’un identificateur n’est pas affecté à plusieurs ressources FHIR ayant le type spécifié dans le message d’erreur.

NormalizationDataMappingException

Description : une erreur s’est produite lors de la normalisation d’un message d’appareil avec le mappage d’appareil.

Gravité : blocage

Correctif : sur le Portail Azure, accédez au panneau Mappage des appareils de votre service MedTech et corrigez les erreurs de validation qui s’affichent lors de la modification et de l’enregistrement du mappage d’appareils.

PatientDeviceMismatchException

Description : une ressource Appareil dans la destination FHIR référence une ressource Patient FHIR avec un identificateur qui ne correspond pas à l’identificateur du patient donné dans le message de l’appareil (ce qui signifie que l’appareil est lié à un autre patient).

Gravité : non bloquant

Correctif : vérifiez qu’un identificateur de patient n’est pas attribué à plusieurs appareils.

ResourceIdentityNotDefinedException

Description : cette erreur se produit lorsque l’identificateur de la ressource FHIR n’est pas présent dans un message d’appareil ou lorsque l’expression permettant d’analyser l’identificateur de la ressource FHIR à partir du message d’appareil n’est pas configurée dans le mappage de l’appareil. Le type de la ressource FHIR (par exemple, Appareil, Patient, Rencontre ou Observation) est spécifié dans le message d’erreur. Remarque : Cette erreur ne peut se produire que lorsque le type de résolution du service MedTech est défini sur Créer.

Gravité : non bloquant

Correctif : vérifiez que les messages de votre appareil contiennent l’identificateur de la ressource FHIR qui a le type spécifié dans le message d’erreur. En outre, sur le Portail Azure, accédez au panneau Mappage des appareils de votre service MedTech et vérifiez que la {FHIR resource’s type specified in the error message}IdExpression valeur (par exemple, deviceIdExpression) dans le mappage d’appareil existe et référence correctement la clé de l’identificateur dans les messages de votre appareil.

TemplateExpressionException

Description : une erreur s’affiche avec une expression dans un modèle dans le mappage d’appareil. Les erreurs sont les suivantes :

  • Une expression requise est manquante.

  • La langue d’une expression (représentée par la language propriété) n’est pas prise en charge. Tous les types de modèles prennent en charge les expressions dans JSONPath ; seul le type de modèle CalculatedContent prend en charge les expressions dans JMESPath.

  • La valeur d’une expression (représentée par la value propriété) est incorrectement mise en forme conformément à la syntaxe du langage de l’expression.

L’expression et la ligne avec l’erreur sont spécifiées dans le message d’erreur.

Gravité : blocage

Correctif : sur le Portail Azure, accédez au panneau Mappage des appareils de votre service MedTech et corrigez l’expression spécifiée dans le message d’erreur dans le mappage d’appareil.

TemplateNotFoundException

Description : un modèle dans le mappage d’appareil n’a pas de modèle correspondant avec le même type dans le mappage de destination FHIR. Le type du modèle est spécifié dans le message d’erreur.

Gravité : non bloquant

Correctif : dans le Portail Azure, accédez au panneau Mappage des appareils et au panneau Destination de votre service MedTech, et vérifiez que, pour chaque modèle du mappage d’appareil, il existe un modèle avec la même typeName valeur dans le mappage de destination FHIR.

UnauthorizedAccessEventHubException

Description : Le service MedTech ne reçoit pas l’accès au hub d’événements.

Gravité : blocage

Correctif : sur le Portail Azure, accédez à votre hub d’événements et attribuez le rôle Récepteur de données Azure Event Hubs à votre service MedTech (voir les instructions).

UnauthorizedAccessFhirServiceException

Description : le service MedTech n’a pas accès en écriture à la destination FHIR.

Gravité : blocage

Correctif : sur le Portail Azure, accédez à votre service FHIR et attribuez le rôle Enregistreur de données FHIR à votre service MedTech (voir les instructions).

Notes

Si vous n’êtes pas en mesure de résoudre votre problème de service MedTech à l’aide de ce guide de résolution des problèmes, vous pouvez ouvrir un ticket de support technique Azure en joignant des copies du message de votre appareil et des mappages de destination FHIR à votre demande pour mieux vous aider à déterminer le problème.

Étapes suivantes

Dans cet article, vous avez appris à dépanner et à corriger les erreurs à l’aide des journaux du service MedTech.

Pour en savoir plus sur les questions fréquentes (FAQ) sur le service MedTech, consultez

FHIR® est une marque déposée de la Health Level Seven International, enregistrée auprès de l’U.S. Trademark Office et utilisée avec leur autorisation.