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:
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:
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 enidentity
egenskap som innehållertype
värdet för (se exempel på ARM-mall i filen azuredeploy.json på GitHub).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 På.
- 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:
Kontrollera att du har en användartilldelad hanterad identitet. Om inte skapar du en med hjälp av Azure Portal eller en ARM-mall.
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) ettuserAssignedIdentities
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"
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).
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.