Condividi tramite


Risolvere gli errori usando i log del servizio MedTech

Nota

Fast Healthcare Interoperability Resources (FHIR®) è una specifica sanitaria aperta.

Questo articolo fornisce i passaggi di risoluzione dei problemi e le correzioni per gli errori trovati nei log del servizio MedTech.

Suggerimento

L'accesso ai log dei servizi MedTech è essenziale per la risoluzione dei problemi e la valutazione dell'integrità complessiva e delle prestazioni del servizio MedTech.

Per informazioni su come accedere ai log del servizio MedTech, vedere Come abilitare le impostazioni di diagnostica per il servizio MedTech.

Gravità dell'errore del servizio MedTech

Questa proprietà rappresenta la gravità dell'errore verificatosi. Ecco un elenco di valori possibili per questa proprietà:

Gravità Descrizione
Senza blocco Un problema esiste nel processo di flusso di dati, ma l'elaborazione dei messaggi del dispositivo non si arresta.
Processi bloccati Un problema esiste nel processo di flusso di dati e non è previsto alcun messaggio del dispositivo.

Operazione eseguita dal servizio MedTech

Questa proprietà rappresenta l'operazione eseguita dal servizio MedTech quando si è verificato l'errore. Un'operazione rappresenta in genere la fase del flusso di dati in cui viene elaborato un messaggio del dispositivo. La fase del flusso di dati viene visualizzata nei log degli errori come OperationName. Ecco un elenco di valori possibili per questa proprietà:

OperationName Descrizione
Normalization Fase del flusso di dati in cui viene normalizzato il messaggio del dispositivo.
FHIRConversion Fase del flusso di dati in cui i dati normalizzati raggruppati vengono trasformati in una risorsa di osservazione.

Nota

Per informazioni sulla trasformazione dei dati dei messaggi del dispositivo del servizio MedTech, vedere Panoramica delle fasi di elaborazione dei dati dei dispositivi del servizio MedTech.

Eccezioni e correzioni del controllo dell'integrità del servizio MedTech

I controlli di integrità vengono eseguiti automaticamente e periodicamente per verificare se un servizio MedTech può normalizzare e trasformare i messaggi del dispositivo. Se non è stato superato un controllo integrità, si verifica un'eccezione HealthCheckException e viene registrata.

Nei log del servizio MedTech viene registrato un errore di controllo integrità con un LogType di HealthCheckException e il nome del controllo integrità non riuscito viene registrato nel messaggio.

I nomi dei controlli di integrità sono elencati nella tabella seguente e le correzioni per uno degli errori sono descritte sotto la tabella:

HealthCheck
CredentialStore:IsCustomerFacingMiCredentialBundlePresent
ExternalEventHub:IsAuthenticated
FhirService:IsAuthenticated

Nota

Anche se un healthCheckException è un problema di blocco, può essere temporaneo e può risolversi senza alcun intervento.

CredentialStore:IsCustomerFacingMiCredentialBundlePresent

Descrizione: verifica se è stata abilitata l'identità gestita assegnata dal servizio MedTech o se è configurata un'identità gestita assegnata dall'utente.

Gravità: Blocco

Correzione: seguire la correzione descritta in ManagedIdentityCredentialNotFound.

ExternalEventHub:IsAuthenticated

Descrizione: verifica che l'hub eventi sia valido e che il servizio MedTech abbia ricevuto l'accesso.

Gravità: Blocco

Correzione: assicurarsi che l'hub eventi sia valido seguendo la correzione descritta in InvalidEventHubException. Assicurarsi quindi che il servizio MedTech riceva l'accesso all'hub eventi seguendo la correzione descritta in UnauthorizedAccessEventHubException.

FhirService:IsAuthenticated

Descrizione: verifica che la destinazione FHIR sia valida e che il servizio MedTech disponga dell'accesso in scrittura.

Gravità: Blocco

Correzione: assicurarsi che la destinazione FHIR sia valida seguendo la correzione descritta in InvalidFhirServiceException. Assicurarsi quindi che il servizio MedTech abbia accesso in scrittura alla destinazione FHIR seguendo la correzione descritta in UnauthorizedAccessFhirServiceException.

Errori e correzioni del servizio MedTech

Se si verifica un errore durante la normalizzazione o la trasformazione dei messaggi del dispositivo, viene registrato.

Nei log del servizio MedTech il nome dell'errore viene registrato nel LogType.

I nomi degli errori sono elencati nella tabella seguente e le correzioni per le quali sono disponibili sotto la tabella:

LogType
CorrelationIdNotDefinedException
FhirDataMappingException
FhirResourceNotFoundException
IncompatibiliDataException
InvalidDataFormatException
InvalidEventHubException
InvalidFhirServiceException
InvalidQuantityFhirValueException
InvalidTemplateException
ManagedIdentityCredentialNotFound
MultipleResourceFoundException
NormalizzazioneDataMappingException
PatientDeviceMismatchException
ResourceIdentityNotDefinedException
TemplateExpressionException
TemplateNotFoundException
Non autorizzatoAccessEventHubException
Non autorizzatoAccessFhirServiceException

CorrelationIdNotDefinedException

Descrizione: se un oggetto CorrelationIdExpression (espressione da analizzare l'identificatore di correlazione dal messaggio del dispositivo) viene specificato nel mapping del dispositivo, questo errore si verifica quando l'identificatore di correlazione non è presente in un messaggio del dispositivo o quando l'identificatore di correlazione non è configurato correttamente nel mapping del dispositivo. Nota: l'oggetto CorrelationIdExpression è facoltativo. Questo errore si verifica quando si raggruppano le misurazioni che condividono lo stesso dispositivo, tipo e identificatore di correlazione in una singola risorsa di osservazione FHIR.

Gravità: Blocco

Correzione:

  • Se è necessario CorrelationIdExpression: assicurarsi che i messaggi del dispositivo contengano l'identificatore di correlazione. Inoltre, nel portale di Azure passare al pannello Mapping dispositivi del servizio MedTech e assicurarsi che il correlationIdExpression valore nel mapping del dispositivo esista e faccia riferimento correttamente alla chiave dell'identificatore di correlazione nei messaggi del dispositivo.

  • Se l'oggetto CorrelationIdExpression non è necessario: nel portale di Azure passare al pannello Mapping del dispositivo del servizio MedTech e rimuovere la riga contenente correlationIdExpression il mapping del dispositivo.

FhirDataMappingException

Descrizione: si è verificato un errore durante la trasformazione dei dati normalizzati con il mapping di destinazione FHIR. Questo errore si verifica quando un modello che corrisponde ai dati normalizzati non è definito nel mapping di destinazione FHIR.

Gravità: Blocco

Correzione: nel portale di Azure passare al pannello Mapping dispositivi e al pannello Destinazione del servizio MedTech e assicurarsi che, per ogni modello nel mapping dei dispositivi, sia presente un modello con lo stesso typeName valore nel mapping di destinazione FHIR. Correggere anche eventuali errori di convalida visualizzati durante la modifica e il salvataggio del mapping di destinazione FHIR nel pannello Destinazione .

FhirResourceNotFoundException

Descrizione: questo errore si verifica quando non è possibile trovare una risorsa FHIR con l'identificatore specificato nel messaggio del dispositivo nella destinazione FHIR. Se il tipo di risorsa FHIR è Paziente, l'errore potrebbe essere che la risorsa Device FHIR con l'identificatore del dispositivo specificato nel messaggio del dispositivo non fa riferimento a una risorsa FHIR paziente. Il tipo della risorsa FHIR (ad esempio, Device, Patient, Encounter o Observation) viene specificato nel messaggio di errore. Nota: questo errore può verificarsi solo quando il tipo di risoluzione del servizio MedTech è impostato su Ricerca.

Gravità: Blocco non bloccato

Correzione: assicurarsi che i messaggi del dispositivo contengano l'identificatore per la risorsa FHIR con il tipo specificato nel messaggio di errore. Inoltre, nel portale di Azure passare al pannello Mapping del dispositivo del servizio MedTech e assicurarsi che il {FHIR resource’s type specified in the error message}IdExpression valore (ad esempio, deviceIdExpression) nel mapping del dispositivo esista e faccia riferimento correttamente alla chiave dell'identificatore nei messaggi del dispositivo.

IncompatibleDataException

Descrizione: esiste un'incompatibilità tra il messaggio del dispositivo e il mapping del dispositivo( ad esempio, una proprietà obbligatoria potrebbe essere mancante o vuota nel messaggio del dispositivo e/o nel mapping del dispositivo). La proprietà di mapping del dispositivo con l'errore viene specificata nel messaggio di errore.

Gravità: nessun blocco

Correzione: assicurarsi che i messaggi del dispositivo contengano:

  • Chiave a cui fa riferimento la proprietà di mapping del dispositivo specificata nel messaggio di errore.

  • Valore non vuoto per la chiave.

Inoltre, nel portale di Azure passare al pannello Mapping del dispositivo del servizio MedTech e assicurarsi che la proprietà di mapping del dispositivo specificata nel messaggio di errore abbia un valore che fa correttamente riferimento alla chiave corrispondente nei messaggi del dispositivo.

InvalidDataFormatException

Descrizione: un messaggio del dispositivo non è in un formato che può essere analizzato in un oggetto JSON.

Gravità: nessun blocco

Correzione: assicurarsi che i messaggi del dispositivo siano in formato JSON. Un modo per confermare il formato JSON consiste nell'usare un validator JSON online.

InvalidEventHubException

Descrizione: l'hub eventi non è valido per uno dei motivi seguenti:

  • Almeno uno dei dettagli dell'hub eventi (spazio dei nomi di Hub eventi, nome dell'hub eventi o gruppo di consumer) non è formattato correttamente o non esiste. Lo spazio dei nomi di Hub eventi deve contenere l'hub eventi e l'hub eventi deve contenere il gruppo di consumer.

  • Più di un servizio sta leggendo dal gruppo di consumer dell'hub eventi.

Gravità: blocco

Correzione: nel portale di Azure passare al pannello Hub eventi del servizio MedTech e assicurarsi che tutti i campi per i dettagli dell'hub eventi siano compilati. Per assicurarsi che solo il servizio MedTech legga dal gruppo di consumer, uno dei seguenti:

  • Passare attraverso i servizi e assicurarsi che il servizio MedTech sia l'unico servizio che accede al gruppo di consumer.

  • Passare all'hub eventi nel portale di Azure, creare un nuovo gruppo di consumer a cui accede solo il servizio MedTech, passare al pannello Hub eventi del servizio MedTech e selezionare il nuovo gruppo di consumer nel campo Gruppo consumer.

InvalidFhirServiceException

Descrizione: la destinazione FHIR non è valida perché non è formattata correttamente, non esiste o non è un servizio FHIR in Servizi dati di integrità di Azure.

Gravità: blocco

Correzione: nel portale di Azure passare al pannello Destinazione del servizio MedTech e assicurarsi che il campo del server FHIR sia compilato correttamente.

InvalidQuantityFhirValueException

Descrizione: il valore con un tipo di dati della risorsa Quantity non è valido, ad esempio in un formato non supportato. Il valore con l'errore viene specificato nel messaggio di errore.

Gravità: nessun blocco

Correzione: verificare che i valori nei messaggi del dispositivo siano nei tipi di dati supportati in base alle specifiche FHIR Quantity.value.

InvalidTemplateException

Descrizione: si è verificato un errore con un modello nel mapping del dispositivo o nel mapping di destinazione FHIR. Gli errori includono:

  • Il tipo di modello di un modello (rappresentato dalla templateType proprietà) è mancante o ha un valore vuoto.

  • Un modello (rappresentato dalla template proprietà) nel modello di raccolta radice non ha un oggetto JSON, identificato da parentesi graffe {}, come valore.

  • Il tipo di un modello (rappresentato dalla typeName proprietà) è mancante o ha un valore vuoto.

  • Più di un modello in un mapping ha lo stesso tipo (ha lo stesso valore per la relativa typeName proprietà).

Il tipo e la riga del modello con l'errore vengono specificati nel messaggio di errore.

Gravità: blocco

Correzione: nel portale di Azure passare al pannello Mapping del dispositivo (se si verifica un errore nel mapping del dispositivo) o al pannello Destinazione (se si verifica un errore nel mapping di destinazione FHIR) del servizio MedTech e correggere il modello specificato nel messaggio di errore.

ManagedIdentityCredentialNotFound

Descrizione: quando il servizio MedTech si connette all'hub eventi, l'identità gestita assegnata dal sistema del servizio MedTech è disabilitata o non esiste oppure un'identità gestita assegnata dall'utente non è configurata per il servizio MedTech. Nota: questo errore può verificarsi se il servizio MedTech è stato distribuito usando un modello di Azure Resource Manager (ARM) non configurato correttamente.

Gravità: blocco

Correzione: la correzione dipende dal tipo di identità gestita che si vuole usare. La differenza tra un'identità gestita assegnata dal sistema e un'identità gestita assegnata dall'utente può essere esaminata in Tipi di identità gestite. Nota: il servizio MedTech supporta una sola identità: un'identità gestita assegnata dal sistema o una singola identità gestita assegnata dall'utente.  

Se si vuole usare un'identità gestita assegnata dal sistema:

  1. Se si distribuisce un servizio MedTech usando un modello arm, assicurarsi che la risorsa del servizio MedTech nel modello arm abbia una identity proprietà contenente il type valore di "SystemAssigned" (vedere il modello arm di esempio nel file azuredeploy.json in GitHub).

  2. Nel portale di Azure passare al pannello Identità del servizio MedTech, passare alla scheda Assegnata dal sistema e verificare quanto segue:

    • Lo stato è impostato su .
    • Le assegnazioni di ruolo di Azure indicano che l'hub eventi ha un ruolo Hub eventi di Azure ricevitore dati assegnato all'identità gestita assegnata dal sistema del servizio MedTech. In caso contrario, seguire queste istruzioni

Se si vuole usare un'identità gestita assegnata dall'utente:

  1. Assicurarsi di avere un'identità gestita assegnata dall'utente. In caso contrario, crearne uno usando il portale di Azure o un modello di Resource Manager.

  2. Se si distribuisce un servizio MedTech usando un modello arm, assicurarsi che la risorsa del servizio MedTech nel modello arm abbia una identity proprietà contenente 1) il valore e "userAssigned" 2) un userAssignedIdentities valore che includa il type nome dell'identità gestita assegnata dall'utente (vedere l'esempio in Assegnare un'identità gestita assegnata dall'utente a una macchina virtuale di Azure).

  3. Nella portale di Azure passare al pannello Identità del servizio MedTech, passare alla scheda Assegnata dall'utente e assicurarsi che venga visualizzata l'identità gestita assegnata dall'utente. In caso contrario, aggiungere l'identità gestita assegnata dall'utente( vedere l'esempio in Assegnare un'identità gestita assegnata dall'utente a una macchina virtuale esistente).

  4. Nel portale di Azure passare all'hub eventi e assegnare il ruolo Hub eventi di Azure Ricevitore dati all'identità gestita assegnata dall'utente del servizio MedTech (vedere le istruzioni, ma usare l'identità gestita assegnata dall'utente anziché l'identità gestita assegnata dal sistema).

MultipleResourceFoundException

Descrizione: più risorse FHIR con lo stesso identificatore, ottenuto dal messaggio del dispositivo, sono disponibili nella destinazione FHIR, ma dovrebbe essere stata trovata una sola risorsa FHIR. Il tipo di risorsa FHIR , ad esempio Device, Patient, Encounter o Observation, viene specificato nel messaggio di errore.

Gravità: nessun blocco

Correzione: assicurarsi che un identificatore non sia assegnato a più risorse FHIR con il tipo specificato nel messaggio di errore.

NormalizationDataMappingException

Descrizione: si è verificato un errore durante la normalizzazione di un messaggio del dispositivo con il mapping del dispositivo.

Gravità: blocco

Correzione: nel portale di Azure passare al pannello Mapping del dispositivo del servizio MedTech e correggere eventuali errori di convalida visualizzati durante la modifica e il salvataggio del mapping del dispositivo.

PatientDeviceMismatchException

Descrizione: una risorsa del dispositivo nella destinazione FHIR fa riferimento a una risorsa FHIR paziente con un identificatore che non corrisponde all'identificatore del paziente specificato nel messaggio del dispositivo (ovvero il dispositivo è collegato a un altro paziente).

Gravità: nessun blocco

Correzione: assicurarsi che un identificatore del paziente non sia assegnato a più dispositivi.

ResourceIdentityNotDefinedException

Descrizione: questo errore si verifica quando l'identificatore della risorsa FHIR non è presente in un messaggio del dispositivo o quando l'espressione per analizzare l'identificatore della risorsa FHIR dal messaggio del dispositivo non è configurato nel mapping del dispositivo. Il tipo di risorsa FHIR , ad esempio Device, Patient, Encounter o Observation, viene specificato nel messaggio di errore. Nota: questo errore può verificarsi solo quando il tipo di risoluzione del servizio MedTech è impostato su Crea.

Gravità: nessun blocco

Correzione: assicurarsi che i messaggi del dispositivo contengano l'identificatore per la risorsa FHIR con il tipo specificato nel messaggio di errore. Inoltre, nel portale di Azure passare al pannello Mapping del dispositivo del servizio MedTech e assicurarsi che il {FHIR resource’s type specified in the error message}IdExpression valore (ad esempio, deviceIdExpression) nel mapping del dispositivo esista e faccia riferimento correttamente alla chiave dell'identificatore nei messaggi del dispositivo.

TemplateExpressionException

Descrizione: si è verificato un errore con un'espressione in un modello all'interno del mapping del dispositivo. Gli errori includono:

  • Manca un'espressione obbligatoria.

  • Il linguaggio di un'espressione (rappresentato dalla language proprietà) non è supportato. Tutti i tipi di modello supportano le espressioni in JSONPath; solo il tipo di modello CalculatedContent supporta espressioni in JMESPath.

  • Il valore di un'espressione (rappresentato dalla value proprietà) viene formattato in modo non corretto in base alla sintassi del linguaggio dell'espressione.

L'espressione e la riga con l'errore vengono specificate nel messaggio di errore.

Gravità: blocco

Correzione: nel portale di Azure passare al pannello Mapping del dispositivo del servizio MedTech e correggere l'espressione specificata nel messaggio di errore all'interno del mapping del dispositivo.

TemplateNotFoundException

Descrizione: un modello nel mapping dei dispositivi non ha un modello corrispondente con lo stesso tipo all'interno del mapping di destinazione FHIR. Il tipo del modello viene specificato nel messaggio di errore.

Gravità: nessun blocco

Correzione: nel portale di Azure passare al pannello Mapping del dispositivo e al pannello Destinazione del servizio MedTech e assicurarsi che, per ogni modello nel mapping del dispositivo, sia presente un modello con lo stesso typeName valore all'interno del mapping di destinazione FHIR.

UnauthorizedAccessEventHubException

Descrizione: il servizio MedTech non riceve l'accesso all'hub eventi.

Gravità: blocco

Correzione: nel portale di Azure passare all'hub eventi e assegnare il ruolo Hub eventi di Azure Ricevitore dati al servizio MedTech (vedere le istruzioni).

UnauthorizedAccessFhirServiceException

Descrizione: il servizio MedTech non ha accesso in scrittura alla destinazione FHIR.

Gravità: blocco

Correzione: nel portale di Azure passare al servizio FHIR e assegnare il ruolo FHIR Data Writer al servizio MedTech (vedere le istruzioni).

Nota

Se non è possibile risolvere il problema del servizio MedTech usando questa guida alla risoluzione dei problemi, è possibile aprire un ticket di supporto tecnico di Azure allegando copie dei mapping di destinazione del messaggio e del dispositivo e del dispositivo e FHIR alla richiesta per facilitare la determinazione dei problemi.

Passaggi successivi

In questo articolo si è appreso come risolvere e correggere gli errori usando i log del servizio MedTech.

Per informazioni sulle domande frequenti sul servizio MedTech (domande frequenti), vedere

FHIR® è un marchio registrato di Health Level Seven International, registrato in U.S. Trademark Office e viene usato con la loro autorizzazione.