Felsöka fel med hjälp av MedTech-tjänstloggarna

Anteckning

FHIR® (Fast Healthcare Interoperability Resources) är en öppen hälsospecifikation.

Den här artikeln innehåller felsökningssteg och korrigeringar för fel som finns i MedTech-tjänstloggarna.

Tips

Att ha åtkomst till MedTech-tjänstloggar är viktigt för felsökning och bedömning av den övergripande hälsan och prestandan för din MedTech-tjänst.

Information om hur du kommer åt MedTech-tjänstloggarna finns i Så här aktiverar du diagnostikinställningar för MedTech-tjänsten.

Allvarlighetsgrad för MedTech-tjänstfel

Den här egenskapen representerar allvarlighetsgraden för det inträffade felet. Här är en lista över möjliga värden för den här egenskapen:

Allvarlighetsgrad Beskrivning
Icke-blockerande Det finns ett problem i dataflödesprocessen, men bearbetningen av enhetsmeddelanden stoppas inte.
Blockering Det finns ett problem i dataflödesprocessen och inga enhetsmeddelanden förväntas bearbetas.

Åtgärd som utförs av MedTech-tjänsten

Den här egenskapen representerar den åtgärd som utförs av MedTech-tjänsten när felet inträffade. En åtgärd representerar vanligtvis dataflödessteget där ett enhetsmeddelande bearbetas. Dataflödessteget visas i felloggarna som OperationName. Här är en lista över möjliga värden för den här egenskapen:

OperationName Description
Normalisering Dataflödessteget där enhetsmeddelandet normaliseras.
FHIRConversion Dataflödessteget där grupperade normaliserade data omvandlas till en observationsresurs.

Anteckning

Mer information om dataomvandlingen för MedTech-tjänstens enhetsmeddelanden finns i Översikt över databearbetningsstegen för MedTech-tjänstens enhet.

Hälsokontrollsfel och korrigeringar för MedTech-tjänsten

Hälsokontroller utförs automatiskt och regelbundet för att kontrollera om en MedTech-tjänst kan normalisera och transformera enhetsmeddelanden. Om en hälsokontroll inte har godkänts inträffar en HealthCheckException och loggas.

I MedTech-tjänstloggarna loggas ett hälsokontrollfel med en LogType of HealthCheckException och namnet på den misslyckade hälsokontrollen loggas i meddelandet.

Hälsokontrollernas namn visas i följande tabell och korrigeringarna för eventuella fel beskrivs under tabellen:

Hälsokontroll
CredentialStore:IsCustomerFacingMiCredentialBundlePresent
ExternalEventHub:IsAuthenticated
FhirService:IsAuthenticated

Anteckning

Även om ett HealthCheckException är ett blockerande problem kan det vara tillfälligt och kan lösa sig själv utan någon åtgärd.

CredentialStore:IsCustomerFacingMiCredentialBundlePresent

Beskrivning: Kontrollerar om en MedTech-tjänsts systemtilldelade hanterade identitet har aktiverats eller om en användartilldelad hanterad identitet har konfigurerats.

Allvarlighetsgrad: Blockera

Åtgärda: Följ korrigeringen som beskrivs i ManagedIdentityCredentialNotFound.

ExternalEventHub:IsAuthenticated

Beskrivning: Kontrollerar att händelsehubben är giltig och att MedTech-tjänsten har åtkomst till den.

Allvarlighetsgrad: Blockera

Åtgärda: Kontrollera att händelsehubben är giltig genom att följa korrigeringen som beskrivs i InvalidEventHubException. Kontrollera sedan att Din MedTech-tjänst har åtkomst till din händelsehubb genom att följa korrigeringen som beskrivs i UnauthorizedAccessEventHubException.

FhirService:IsAuthenticated

Beskrivning: Kontrollerar att FHIR-målet är giltigt och att MedTech-tjänsten har skrivåtkomst till den.

Allvarlighetsgrad: Blockera

Åtgärda: Kontrollera att FHIR-målet är giltigt genom att följa korrigeringen som beskrivs i InvalidFhirServiceException. Kontrollera sedan att Din MedTech-tjänst har skrivåtkomst till ditt FHIR-mål genom att följa korrigeringen som beskrivs i UnauthorizedAccessFhirServiceException.

Fel och korrigeringar för MedTech-tjänsten

Om ett fel inträffar när enhetsmeddelanden normaliseras eller transformeras loggas det.

I MedTech-tjänstloggarna loggas felets namn i LogType.

Felnamnen visas i följande tabell och korrigeringarna för dem anges under tabellen:

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

CorrelationIdNotDefinedException

Beskrivning: Om ett CorrelationIdExpression (som är uttrycket för att parsa korrelationsidentifieraren från enhetsmeddelandet) anges i enhetsmappningen uppstår det här felet när korrelationsidentifieraren inte finns i ett enhetsmeddelande eller när CorrelationIdExpression inte är korrekt konfigurerat i enhetsmappningen. Obs! CorrelationIdExpression är valfritt. Det här felet uppstår när du grupperar mått som delar samma enhet, typ och korrelationsidentifierare i en enda FHIR-observationsresurs.

Allvarlighetsgrad: Blockera

Åtgärda:

  • Om CorrelationIdExpression behövs: Kontrollera att dina enhetsmeddelanden innehåller korrelationsidentifieraren. På Azure Portal går du också till bladet Enhetsmappning i MedTech-tjänsten och ser till att correlationIdExpression värdet i enhetsmappningen finns och korrekt refererar till korrelationsidentifierarens nyckel i dina enhetsmeddelanden.

  • Om CorrelationIdExpression inte behövs: Gå till bladet Enhetsmappning i MedTech-tjänsten på Azure Portal och ta bort raden som innehåller correlationIdExpression i enhetsmappningen.

FhirDataMappingException

Beskrivning: Ett fel uppstod vid transformering av normaliserade data med FHIR-målmappningen. Det här felet uppstår när en mall som motsvarar normaliserade data inte definieras i FHIR-målmappningen.

Allvarlighetsgrad: Blockera

Åtgärda: På Azure Portal går du till bladet Enhetsmappning och Målbladet för Din MedTech-tjänst och ser till att det för varje mall i enhetsmappningen finns en mall med samma typeName värde i FHIR-målmappningen. Åtgärda även eventuella valideringsfel som visas när du redigerar och sparar FHIR-målmappningen på målbladet .

FhirResourceNotFoundException

Beskrivning: Det här felet uppstår när en FHIR-resurs med identifieraren som anges i enhetsmeddelandet inte kan hittas i FHIR-målet. Om FHIR-resursens typ är Patient kan felet vara att enhets-FHIR-resursen med enhetsidentifieraren som anges i enhetsmeddelandet inte refererar till en Patient FHIR-resurs. FHIR-resursens typ (till exempel Enhet, Patient, Möte eller Observation) anges i felmeddelandet. Obs! Det här felet kan bara inträffa när Lösningstypen för MedTech-tjänsten är inställd på Uppslag.

Allvarlighetsgrad: Icke-blockerande

Åtgärda: Kontrollera att enhetsmeddelandena innehåller identifieraren för FHIR-resursen som har den typ som anges i felmeddelandet. På Azure Portal går du också till bladet Enhetsmappning i MedTech-tjänsten och kontrollerar att {FHIR resource’s type specified in the error message}IdExpression värdet (till exempel deviceIdExpression) i enhetsmappningen finns och korrekt refererar till identifierarens nyckel i dina enhetsmeddelanden.

IncompatibleDataException

Beskrivning: Det finns en inkompatibilitet mellan enhetsmeddelandet och enhetsmappningen (till exempel kan en obligatorisk egenskap saknas eller vara tom i enhetsmeddelandet och/eller i enhetsmappningen). Egenskapen för enhetsmappning med felet anges i felmeddelandet.

Allvarlighetsgrad: Icke-blockerande

Åtgärda: Kontrollera att enhetsmeddelandena innehåller:

  • Nyckeln som refereras av egenskapen för enhetsmappning som anges i felmeddelandet.

  • Ett värde som inte är tomt för nyckeln.

På Azure Portal går du också till bladet Enhetsmappning i MedTech-tjänsten och kontrollerar att enhetsmappningsegenskapen som anges i felmeddelandet har ett värde som refererar till motsvarande nyckel i dina enhetsmeddelanden.

InvalidDataFormatException

Beskrivning: Ett enhetsmeddelande är inte i ett format som kan parsas till ett JSON-objekt.

Allvarlighetsgrad: Icke-blockerande

Åtgärda: Kontrollera att enhetsmeddelandena är i JSON-format. Ett sätt att bekräfta JSON-formatet är att använda en JSON-onlineverifierare.

InvalidEventHubException

Beskrivning: Händelsehubben är ogiltig av någon av följande orsaker:

  • Minst en av händelsehubbens information (Event Hubs-namnrymd, händelsehubbnamn eller konsumentgrupp) är felaktigt formaterad eller finns inte. Event Hubs-namnområdet ska innehålla händelsehubben och händelsehubben ska innehålla konsumentgruppen.

  • Mer än en tjänst läser från händelsehubbens konsumentgrupp.

Allvarlighetsgrad: Blockera

Åtgärda: På Azure Portal går du till Event Hubs-bladet för Din MedTech-tjänst och ser till att alla fält för händelsehubbens information är ifyllda. För att säkerställa att endast Din MedTech-tjänst läser från konsumentgruppen, antingen:

  • Gå igenom dina tjänster och se till att din MedTech-tjänst är den enda tjänsten som har åtkomst till konsumentgruppen.

  • Gå till din händelsehubb i Azure Portal, skapa en ny konsumentgrupp som endast din MedTech-tjänst har åtkomst till, gå till Event Hubs-bladet för Din MedTech-tjänst och välj din nya konsumentgrupp i fältet Konsumentgrupp.

InvalidFhirServiceException

Beskrivning: FHIR-målet är ogiltigt eftersom det är felaktigt formaterat, inte finns eller inte är en FHIR-tjänst i Azure Health Data Services.

Allvarlighetsgrad: Blockera

Korrigering: På Azure Portal går du till målbladet för Din MedTech-tjänst och kontrollerar att FHIR-serverfältet är korrekt ifyllt.

InvalidQuantityFhirValueException

Beskrivning: Värdet med resursdatatypen Quantity är ogiltigt (det kan till exempel vara i ett format som inte stöds). Värdet med felet anges i felmeddelandet.

Allvarlighetsgrad: Icke-blockerande

Åtgärda: Kontrollera att värdena i dina enhetsmeddelanden finns i datatyper som stöds enligt specifikationerna för FHIR Quantity.value.

InvalidTemplateException

Beskrivning: Det finns ett fel med en mall i enhetsmappningen eller FHIR-målmappningen. Här är några fel:

  • Malltypen för en mall (representeras av templateType egenskapen) saknas eller har ett tomt värde.

  • En mall (representeras av template egenskapen) under rotsamlingsmallen har inte ett JSON-objekt, som identifieras av klammerparenteser {}, som dess värde.

  • En malls typ (representeras av typeName egenskapen) saknas eller har ett tomt värde.

  • Fler än en mall i en mappning har samma typ (har samma värde för sin typeName egenskap).

Mallens typ och rad med felet anges i felmeddelandet.

Allvarlighetsgrad: Blockera

Korrigering: På Azure Portal går du till bladet Enhetsmappning (om felet finns i enhetsmappningen) eller målbladet (om felet finns i FHIR-målmappningen) för MedTech-tjänsten och korrigerar mallen som anges i felmeddelandet.

ManagedIdentityCredentialNotFound

Beskrivning: När MedTech-tjänsten ansluter till händelsehubben är MedTech-tjänstens systemtilldelade hanterade identitet inaktiverad eller finns inte, eller så har en användartilldelad hanterad identitet inte konfigurerats för MedTech-tjänsten. Obs! Det här felet kan inträffa om MedTech-tjänsten har distribuerats med en felkonfigurerad Arm-mall (Azure Resource Manager).

Allvarlighetsgrad: Blockera

Korrigering: Korrigeringen beror på vilken typ av hanterad identitet du vill använda. Skillnaden mellan en systemtilldelad och en användartilldelad hanterad identitet kan granskas i Hanterade identitetstyper. Obs! MedTech-tjänsten stöder bara en identitet: antingen en systemtilldelad hanterad identitet eller en enda användartilldelad hanterad identitet.  

Om du vill använda en systemtilldelad hanterad identitet:

  1. Om du distribuerar en MedTech-tjänst med hjälp av "SystemAssigned" en ARM-mall kontrollerar du att Din MedTech-tjänstresurs i ARM-mallen har en identity egenskap som innehåller type värdet för (se exempel på ARM-mall i filen azuredeploy.jsonGitHub).

  2. På Azure Portal går du till bladet Identitet för Din MedTech-tjänst, går till fliken Systemtilldelad och kontrollerar följande:

    • Status har angetts till .
    • Azure-rolltilldelningarna visar att din händelsehubb har en roll för Azure Event Hubs datamottagare tilldelad till MedTech-tjänstens systemtilldelade hanterade identitet. Annars följer du de här anvisningarna

Om du vill använda en användartilldelad hanterad identitet:

  1. Kontrollera att du har en användartilldelad hanterad identitet. Om inte skapar du en med hjälp av Azure Portal eller en ARM-mall.

  2. Om du distribuerar en MedTech-tjänst med hjälp av en ARM-mall kontrollerar du att din MedTech-tjänstresurs i ARM-mallen har en identity egenskap som innehåller 1) type värdet och 2) ett userAssignedIdentities värde som innehåller namnet på den användartilldelade hanterade identiteten (se exemplet i Tilldela en användartilldelad hanterad identitet till en virtuell Azure-dator)."userAssigned"

  3. På Azure Portal går du till bladet Identitet för Din MedTech-tjänst, går till fliken Användartilldelad och kontrollerar att din användartilldelade hanterade identitet visas. Om inte lägger du till din användartilldelade hanterade identitet (se exemplet i Tilldela en användartilldelad hanterad identitet till en befintlig virtuell dator).

  4. På Azure Portal går du till din händelsehubb och tilldelar rollen Azure Event Hubs Data Receiver till MedTech-tjänstens användartilldelade hanterade identitet (se anvisningarna, men använd den användartilldelade hanterade identiteten i stället för den systemtilldelade hanterade identiteten).

MultipleResourceFoundException

Beskrivning: Flera FHIR-resurser med samma identifierare, som hämtas från enhetsmeddelandet, finns i FHIR-målet, men endast en FHIR-resurs bör ha hittats. FHIR-resursens typ (till exempel Enhet, Patient, Möte eller Observation) anges i felmeddelandet.

Allvarlighetsgrad: Icke-blockerande

Korrigering: Kontrollera att en identifierare inte har tilldelats till fler än en FHIR-resurs som har den typ som anges i felmeddelandet.

NormalizationDataMappingException

Beskrivning: Ett fel uppstod vid normalisering av ett enhetsmeddelande med enhetsmappningen.

Allvarlighetsgrad: Blockera

Korrigering: På Azure Portal går du till bladet Enhetsmappning i MedTech-tjänsten och åtgärdar eventuella valideringsfel som visas när du redigerar och sparar enhetsmappningen.

PatientDeviceMismatchException

Beskrivning: En enhetsresurs i FHIR-målet refererar till en Patient FHIR-resurs med en identifierare som inte matchar patientidentifieraren som anges i enhetsmeddelandet (vilket innebär att enheten är länkad till en annan patient).

Allvarlighetsgrad: Icke-blockerande

Korrigering: Se till att en patientidentifierare inte har tilldelats till fler än en enhet.

ResourceIdentityNotDefinedException

Beskrivning: Det här felet uppstår när FHIR-resursens identifierare inte finns i ett enhetsmeddelande, eller när uttrycket för att parsa FHIR-resursens identifierare från enhetsmeddelandet inte har konfigurerats i enhetsmappningen. FHIR-resursens typ (till exempel Enhet, Patient, Möte eller Observation) anges i felmeddelandet. Obs! Det här felet kan bara inträffa när Lösningstypen för MedTech-tjänsten är inställd på Skapa.

Allvarlighetsgrad: Icke-blockerande

Åtgärda: Kontrollera att enhetsmeddelandena innehåller identifieraren för FHIR-resursen som har den typ som anges i felmeddelandet. På Azure Portal går du också till bladet Enhetsmappning i MedTech-tjänsten och kontrollerar att {FHIR resource’s type specified in the error message}IdExpression värdet (till exempel deviceIdExpression) i enhetsmappningen finns och korrekt refererar till identifierarens nyckel i dina enhetsmeddelanden.

TemplateExpressionException

Beskrivning: Det finns ett fel med ett uttryck i en mall i enhetsmappningen. Här är några fel:

  • Ett obligatoriskt uttryck saknas.

  • Ett uttrycks språk (representeras av language egenskapen) stöds inte. Alla malltyper stöder uttryck i JSONPath; endast malltypen CalculatedContent stöder uttryck i JMESPath.

  • Ett uttrycks värde (representeras av value egenskapen) är felaktigt formaterat enligt syntaxen för uttryckets språk.

Uttrycket och raden med felet anges i felmeddelandet.

Allvarlighetsgrad: Blockera

Korrigering: På Azure Portal går du till bladet Enhetsmappning i MedTech-tjänsten och korrigerar uttrycket som anges i felmeddelandet i enhetsmappningen.

TemplateNotFoundException

Beskrivning: En mall i enhetsmappningen har ingen matchande mall med samma typ i FHIR-målmappningen. Mallens typ anges i felmeddelandet.

Allvarlighetsgrad: Icke-blockerande

Korrigering: På Azure Portal går du till bladet Enhetsmappning och Målbladet för Din MedTech-tjänst och ser till att det finns en mall med samma typeName värde i FHIR-målmappningen för varje mall i enhetsmappningen.

UnauthorizedAccessEventHubException

Beskrivning: MedTech-tjänsten saknar åtkomst till händelsehubben.

Allvarlighetsgrad: Blockera

Åtgärda: På Azure Portal går du till din händelsehubb och tilldelar rollen Azure Event Hubs datamottagare till Din MedTech-tjänst (se anvisningarna).

UnauthorizedAccessFhirServiceException

Beskrivning: MedTech-tjänsten saknar skrivåtkomst till FHIR-målet.

Allvarlighetsgrad: Blockera

Åtgärda: På Azure Portal går du till din FHIR-tjänst och tilldelar rollen FHIR-dataskrivare till Din MedTech-tjänst (se anvisningarna).

Anteckning

Om du inte kan åtgärda problemet med MedTech-tjänsten med hjälp av den här felsökningsguiden kan du öppna en Azure Technical Support-biljett som bifogar kopior av ditt enhetsmeddelande och enhets- och FHIR-målmappningar till din begäran för att bättre hjälpa till med problembestämning.

Nästa steg

I den här artikeln har du lärt dig hur du felsöker och åtgärdar fel med hjälp av MedTech-tjänstloggarna.

Mer information om vanliga frågor och svar om MedTech-tjänsten finns i

FHIR® är ett registrerat varumärke som tillhör Health Level Seven International, registrerat i U.S. Trademark Office och används med deras tillstånd.