Rozwiązywanie problemów z błędami przy użyciu dzienników usługi MedTech

Uwaga

Fast Healthcare Interoperability Resources (FHIR®) to otwarta specyfikacja opieki zdrowotnej.

Ten artykuł zawiera kroki rozwiązywania problemów i poprawki błędów znalezionych w dziennikach usługi MedTech.

Porada

Posiadanie dostępu do dzienników usługi MedTech jest niezbędne do rozwiązywania problemów i oceny ogólnej kondycji i wydajności usługi MedTech.

Aby dowiedzieć się, jak uzyskać dostęp do dzienników usługi MedTech, zobacz Jak włączyć ustawienia diagnostyczne dla usługi MedTech.

Ważność błędu usługi MedTech

Ta właściwość reprezentuje ważność błędu, który wystąpił. Oto lista możliwych wartości dla tej właściwości:

Ważność Opis
Brak blokowania W procesie przepływu danych występuje problem, ale przetwarzanie komunikatów urządzenia nie jest zatrzymywane.
blokowanie Problem istnieje w procesie przepływu danych i nie oczekuje się przetwarzania komunikatów urządzenia.

Operacja wykonywana przez usługę MedTech

Ta właściwość reprezentuje operację wykonywaną przez usługę MedTech po wystąpieniu błędu. Operacja zazwyczaj reprezentuje etap przepływu danych, w którym jest przetwarzany komunikat urządzenia. Etap przepływu danych jest wyświetlany w dziennikach błędów jako OperationName. Oto lista możliwych wartości dla tej właściwości:

OperationName Opis
Normalizacja Etap przepływu danych, na którym jest znormalizowany komunikat urządzenia.
FHIRConversion Etap przepływu danych, w którym dane znormalizowane grupowane są przekształcane w zasób obserwacji.

Uwaga

Aby dowiedzieć się więcej na temat przekształcania danych komunikatów urządzenia w usłudze MedTech, zobacz Omówienie etapów przetwarzania danych urządzeń usługi MedTech.

Wyjątki i poprawki kontroli kondycji usługi MedTech

Testy kondycji są wykonywane automatycznie i okresowo w celu sprawdzenia, czy usługa MedTech może znormalizować i przekształcić komunikaty urządzeń. Jeśli kontrola kondycji nie zostanie przekazana, wystąpi błąd HealthCheckException i zostanie zarejestrowany.

W dziennikach usługi MedTech jest rejestrowany błąd sprawdzania kondycji z identyfikatorem LogTypehealthCheckException, a nazwa nieudanych kontroli kondycji jest rejestrowana w komunikacie.

Nazwy kontroli kondycji są wymienione w poniższej tabeli, a poprawki dotyczące któregokolwiek z ich niepowodzeń zostały opisane poniżej tabeli:

Sprawdzanie kondycji
CredentialStore:IsCustomerFacingMiCredentialBundlePresent
ExternalEventHub:IsAuthenticated
FhirService:IsAuthenticated

Uwaga

Chociaż element HealthCheckException jest problemem blokującym, może być przejściowy i może rozwiązać się bez interwencji.

CredentialStore:IsCustomerFacingMiCredentialBundlePresent

Opis: sprawdza, czy tożsamość zarządzana przypisana przez system usługi MedTech została włączona lub czy skonfigurowano tożsamość zarządzaną przypisaną przez użytkownika.

Ważność: blokowanie

Poprawka: postępuj zgodnie z poprawką opisaną w temacie ManagedIdentityCredentialNotFound.

ExternalEventHub:IsAuthenticated

Opis: sprawdza, czy centrum zdarzeń jest prawidłowe i czy usługa MedTech ma do niego dostęp.

Ważność: blokowanie

Poprawka: Upewnij się, że centrum zdarzeń jest prawidłowe, postępując zgodnie z poprawką opisaną w temacie InvalidEventHubException. Następnie upewnij się, że usługa MedTech ma dostęp do centrum zdarzeń, postępując zgodnie z poprawką opisaną w temacie Brak autoryzacjiAccessEventHubException.

FhirService:IsAuthenticated

Opis: sprawdza, czy miejsce docelowe FHIR jest prawidłowe i czy usługa MedTech ma do niego dostęp do zapisu.

Ważność: blokowanie

Poprawka: Upewnij się, że miejsce docelowe FHIR jest prawidłowe, postępując zgodnie z poprawką opisaną w temacie InvalidFhirServiceException. Następnie upewnij się, że usługa MedTech ma dostęp do zapisu do miejsca docelowego FHIR, postępując zgodnie z poprawką opisaną w temacie Brak autoryzacjiAccessFhirServiceException.

Błędy i poprawki usługi MedTech

Jeśli wystąpi błąd podczas normalizacji lub przekształcania komunikatów urządzenia, jest rejestrowany.

W dziennikach usługi MedTech nazwa błędu jest rejestrowana w logType.

Nazwy błędów są wymienione w poniższej tabeli, a poprawki dla nich są podane poniżej tabeli:

LogType
CorrelationIdNotDefinedException
FhirDataMappingException
FhirResourceNotFoundException
Niezgodna DataException
InvalidDataFormatException
InvalidEventHubException
InvalidFhirServiceException
InvalidQuantityFhirValueException
InvalidTemplateException
ManagedIdentityCredentialNotFound
MultipleResourceFoundException
NormalizacjaDataMappingException
PatientDeviceMismatchException
ResourceIdentityNotDefinedException
TemplateExpressionException
TemplateNotFoundException
Brak autoryzacjiAccessEventHubException
Brak autoryzacjiAccessFhirServiceException

CorrelationIdNotDefinedException

Opis: Jeśli w mapowaniu urządzenia zostanie określony identyfikator korelacji, jeśli w mapowaniu urządzenia zostanie określony identyfikator korelacji , ten błąd występuje, gdy identyfikator korelacji nie występuje w komunikacie urządzenia lub gdy identyfikator korelacji nie jest poprawnie skonfigurowany w mapowaniu urządzenia. Uwaga: Wartość CorrelationIdExpression jest opcjonalna. Ten błąd występuje podczas grupowania pomiarów, które współdzielą to samo urządzenie, typ i identyfikator korelacji w jednym zasobie obserwacji FHIR.

Ważność: blokowanie

Poprawka:

  • Jeśli jest wymagana wartość CorrelationIdExpression: upewnij się, że komunikaty urządzenia zawierają identyfikator korelacji. Ponadto w Azure Portal przejdź do bloku Mapowanie urządzeń usługi MedTech i upewnij się, że correlationIdExpression wartość mapowania urządzenia istnieje i poprawnie odwołuje się do klucza identyfikatora korelacji w komunikatach urządzenia.

  • Jeśli parametr CorrelationIdExpression nie jest potrzebny: w Azure Portal przejdź do bloku Mapowanie urządzenia usługi MedTech i usuń wiersz zawierający correlationIdExpression mapowanie urządzenia.

FhirDataMappingException

Opis: Wystąpił błąd podczas przekształcania znormalizowanych danych za pomocą mapowania docelowego FHIR. Ten błąd występuje, gdy szablon odpowiadający znormalizowanym danym nie jest zdefiniowany w mapowaniu docelowym FHIR.

Ważność: blokowanie

Poprawka: Na Azure Portal przejdź do bloku Mapowanie urządzenia i blok Docelowy usługi MedTech i upewnij się, że dla każdego szablonu mapowania urządzenia istnieje szablon o tej samej typeName wartości w mapowaniu miejsca docelowego FHIR. Ponadto usuń wszelkie błędy weryfikacji wyświetlane podczas edytowania i zapisywania mapowania miejsca docelowego FHIR w bloku Miejsce docelowe .

FhirResourceNotFoundException

Opis: ten błąd występuje, gdy nie można odnaleźć zasobu FHIR o identyfikatorze podanym w komunikacie urządzenia w miejscu docelowym FHIR. Jeśli typ zasobu FHIR to Pacjent, może to oznaczać, że zasób Device FHIR z identyfikatorem urządzenia podanym w komunikacie urządzenia nie odwołuje się do zasobu Patient FHIR. Typ zasobu FHIR (na przykład Urządzenie, Pacjent, Napotkanie lub Obserwacja) jest określony w komunikacie o błędzie. Uwaga: ten błąd może wystąpić tylko wtedy, gdy typ rozwiązania usługi MedTech jest ustawiony na Lookup.

Ważność: brak blokowania

Poprawka: Upewnij się, że komunikaty urządzenia zawierają identyfikator zasobu FHIR, który ma typ określony w komunikacie o błędzie. Ponadto w Azure Portal przejdź do bloku Mapowanie urządzeń usługi MedTech i upewnij się, że {FHIR resource’s type specified in the error message}IdExpression wartość (na przykład deviceIdExpression) w mapowaniu urządzenia istnieje i poprawnie odwołuje się do klucza identyfikatora w komunikatach urządzenia.

Niezgodna DataException

Opis: istnieje niezgodność między komunikatem urządzenia a mapowaniem urządzenia (na przykład brakuje wymaganej właściwości lub jest pusta w komunikacie urządzenia i/lub w mapowaniu urządzenia). Właściwość mapowania urządzenia z błędem jest określona w komunikacie o błędzie.

Ważność: brak blokowania

Poprawka: Upewnij się, że komunikaty urządzenia zawierają:

  • Klucz, do którego odwołuje się właściwość mapowania urządzenia określona w komunikacie o błędzie.

  • Wartość niepusta klucza.

Ponadto w Azure Portal przejdź do bloku Mapowanie urządzeń usługi MedTech i upewnij się, że właściwość mapowania urządzenia określona w komunikacie o błędzie ma wartość, która poprawnie odwołuje się do odpowiedniego klucza w komunikatach urządzenia.

InvalidDataFormatException

Opis: Komunikat urządzenia nie jest w formacie, który można przeanalizować w obiekcie JSON.

Ważność: brak blokowania

Poprawka: Upewnij się, że komunikaty urządzeń są w formacie JSON. Jednym ze sposobów potwierdzenia formatu JSON jest użycie modułu sprawdzania poprawności JSON w trybie online.

InvalidEventHubException

Opis: Centrum zdarzeń jest nieprawidłowe z jednego z następujących powodów:

  • Co najmniej jeden ze szczegółów centrum zdarzeń (przestrzeń nazw usługi Event Hubs, nazwa centrum zdarzeń lub grupa odbiorców) jest niepoprawnie sformatowany lub nie istnieje. Przestrzeń nazw usługi Event Hubs powinna zawierać centrum zdarzeń, a centrum zdarzeń powinno zawierać grupę odbiorców.

  • Więcej niż jedna usługa odczytuje z grupy odbiorców centrum zdarzeń.

Ważność: blokowanie

Poprawka: Na Azure Portal przejdź do bloku Event Hubs usługi MedTech i upewnij się, że wszystkie pola szczegółów centrum zdarzeń zostały wypełnione. Aby upewnić się, że tylko twoja usługa MedTech odczytuje dane z grupy odbiorców, albo:

  • Przejrzyj swoje usługi i upewnij się, że usługa MedTech jest jedyną usługą, która uzyskuje dostęp do grupy odbiorców.

  • Przejdź do centrum zdarzeń w Azure Portal, utwórz nową grupę odbiorców dostępną tylko do usługi MedTech, przejdź do bloku Event Hubs usługi MedTech i wybierz nową grupę odbiorców w polu Grupa odbiorców.

InvalidFhirServiceException

Opis: miejsce docelowe FHIR jest nieprawidłowe, ponieważ jest niepoprawnie sformatowane, nie istnieje lub nie jest usługą FHIR w usłudze Azure Health Data Services.

Ważność: blokowanie

Poprawka: Na Azure Portal przejdź do bloku Miejsce docelowe usługi MedTech i upewnij się, że pole serwera FHIR jest poprawnie wypełnione.

InvalidQuantityFhirValueException

Opis: Wartość z typem danych zasobu Quantity jest nieprawidłowa (na przykład może to być w formacie, który nie jest obsługiwany). Wartość z błędem jest określona w komunikacie o błędzie.

Ważność: brak blokowania

Poprawka: Upewnij się, że wartości w komunikatach urządzenia są w obsługiwanych typach danych zgodnie ze specyfikacjami FHIR Quantity.value.

InvalidTemplateException

Opis: wystąpił błąd podczas mapowania urządzenia lub mapowania docelowego FHIR. Błędy obejmują:

  • Brak typu szablonu szablonu (reprezentowanego przez templateType właściwość) lub ma pustą wartość.

  • Szablon (reprezentowany przez template właściwość) w szablonie kolekcji głównej nie ma obiektu JSON, który jest identyfikowany przez nawiasy klamrowe {}jako jego wartość.

  • Brak typu szablonu (reprezentowanego przez typeName właściwość) lub ma pustą wartość.

  • Więcej niż jeden szablon w mapowaniu ma ten sam typ (ma taką samą wartość dla jego typeName właściwości).

Typ i wiersz szablonu z błędem są określone w komunikacie o błędzie.

Ważność: blokowanie

Poprawka: W Azure Portal przejdź do bloku Mapowanie urządzenia (jeśli błąd znajduje się w mapowaniu urządzenia) lub bloku Miejsce docelowe (jeśli błąd znajduje się w mapowaniu docelowym FHIR) usługi MedTech i popraw szablon określony w komunikacie o błędzie.

ManagedIdentityCredentialNotFound

Opis: Gdy usługa MedTech łączy się z centrum zdarzeń, tożsamość zarządzana przypisana przez system usługi MedTech jest wyłączona lub nie istnieje albo tożsamość zarządzana przypisana przez użytkownika nie jest skonfigurowana dla usługi MedTech. Uwaga: ten błąd może wystąpić, jeśli usługa MedTech została wdrożona przy użyciu nieprawidłowo skonfigurowanego szablonu usługi Azure Resource Manager (ARM).

Ważność: blokowanie

Poprawka: Poprawka zależy od typu tożsamości zarządzanej, której chcesz użyć. Różnicę między tożsamością zarządzaną przypisaną przez system i przypisaną przez użytkownika można przejrzeć w sekcji Typy tożsamości zarządzanych. Uwaga: Usługa MedTech obsługuje tylko jedną tożsamość: tożsamość zarządzaną przypisaną przez system lub tożsamość zarządzaną przypisaną przez jednego użytkownika.  

Jeśli chcesz użyć przypisanej przez system tożsamości zarządzanej:

  1. Jeśli wdrażasz usługę MedTech przy użyciu szablonu usługi ARM, upewnij się, że zasób usługi MedTech w szablonie usługi ARM ma właściwość zawierającą identitytype wartość "SystemAssigned" (zobacz przykładowy szablon usługi ARM w pliku azuredeploy.json w usłudze GitHub).

  2. Na Azure Portal przejdź do bloku Tożsamość usługi MedTech, przejdź do karty Przypisane przez system i upewnij się, że:

    • Stan ma wartość Włączone.
    • Przypisania ról platformy Azure pokazują, że centrum zdarzeń ma rolę odbiornika danych Azure Event Hubs przypisaną do przypisanej przez system tożsamości zarządzanej usługi MedTech. Jeśli tak nie jest, postępuj zgodnie z tymi instrukcjami

Jeśli chcesz użyć tożsamości zarządzanej przypisanej przez użytkownika:

  1. Upewnij się, że masz tożsamość zarządzaną przypisaną przez użytkownika. Jeśli nie, utwórz go przy użyciu Azure Portal lub szablonu usługi ARM.

  2. Jeśli wdrażasz usługę MedTech przy użyciu szablonu usługi ARM, upewnij się, że zasób usługi MedTech w szablonie usługi ARM ma identity właściwość zawierającą 1) type wartość i 2) userAssignedIdentities wartość "userAssigned" zawierającą nazwę tożsamości zarządzanej przypisanej przez użytkownika (zobacz przykład Przypisywanie tożsamości zarządzanej przypisanej przez użytkownika do maszyny wirtualnej platformy Azure).

  3. Na Azure Portal przejdź do bloku Tożsamość usługi MedTech, przejdź do karty Przypisane przez użytkownika i upewnij się, że jest wyświetlana tożsamość zarządzana przypisana przez użytkownika. Jeśli nie, dodaj tożsamość zarządzaną przypisaną przez użytkownika (zobacz przykład Przypisywanie tożsamości zarządzanej przypisanej przez użytkownika do istniejącej maszyny wirtualnej).

  4. Na Azure Portal przejdź do centrum zdarzeń i przypisz rolę odbiornika danych Azure Event Hubs do przypisanej przez użytkownika tożsamości zarządzanej usługi MedTech (zobacz instrukcje, ale użyj przypisanej przez użytkownika tożsamości zarządzanej zamiast tożsamości zarządzanej przypisanej przez system).

MultipleResourceFoundException

Opis: Wiele zasobów FHIR o tym samym identyfikatorze, który jest pobierany z komunikatu urządzenia, znajduje się w miejscu docelowym FHIR, ale znaleziono tylko jeden zasób FHIR. Typ zasobu FHIR (na przykład Urządzenie, Pacjent, Napotkanie lub Obserwacja) jest określony w komunikacie o błędzie.

Ważność: brak blokowania

Poprawka: Upewnij się, że identyfikator nie jest przypisany do więcej niż jednego zasobu FHIR, który ma typ określony w komunikacie o błędzie.

NormalizacjaDataMappingException

Opis: Wystąpił błąd podczas normalizacji komunikatu urządzenia za pomocą mapowania urządzenia.

Ważność: blokowanie

Poprawka: Na Azure Portal przejdź do bloku Mapowanie urządzeń usługi MedTech i napraw wszelkie błędy weryfikacji wyświetlane podczas edytowania i zapisywania mapowania urządzenia.

PatientDeviceMismatchException

Opis: zasób urządzenia w miejscu docelowym FHIR odwołuje się do zasobu FHIR pacjenta z identyfikatorem, który nie jest zgodny z identyfikatorem pacjenta podanym w komunikacie urządzenia (co oznacza, że urządzenie jest połączone z innym pacjentem).

Ważność: brak blokowania

Poprawka: Upewnij się, że identyfikator pacjenta nie jest przypisany do więcej niż jednego urządzenia.

ResourceIdentityNotDefinedException

Opis: ten błąd występuje, gdy identyfikator zasobu FHIR nie jest obecny w komunikacie urządzenia lub gdy wyrażenie do przeanalizowania identyfikatora zasobu FHIR z komunikatu urządzenia nie jest skonfigurowane w mapowaniu urządzenia. Typ zasobu FHIR (na przykład Urządzenie, Pacjent, Napotkanie lub Obserwacja) jest określony w komunikacie o błędzie. Uwaga: ten błąd może wystąpić tylko wtedy, gdy typ rozwiązania usługi MedTech jest ustawiony na Utwórz.

Ważność: brak blokowania

Poprawka: Upewnij się, że komunikaty urządzenia zawierają identyfikator zasobu FHIR, który ma typ określony w komunikacie o błędzie. Ponadto w Azure Portal przejdź do bloku Mapowanie urządzeń usługi MedTech i upewnij się, że {FHIR resource’s type specified in the error message}IdExpression wartość (na przykład deviceIdExpression) w mapowaniu urządzenia istnieje i poprawnie odwołuje się do klucza identyfikatora w komunikatach urządzenia.

TemplateExpressionException

Opis: wystąpił błąd z wyrażeniem w szablonie w ramach mapowania urządzenia. Błędy obejmują:

  • Brak wymaganego wyrażenia.

  • Język wyrażenia (reprezentowany przez language właściwość) nie jest obsługiwany. Wszystkie typy szablonów obsługują wyrażenia w JSONPath; tylko typ szablonu CalculatedContent obsługuje wyrażenia w JMESPath.

  • Wartość wyrażenia (reprezentowana przez value właściwość) jest niepoprawnie sformatowana zgodnie ze składnią języka wyrażenia.

Wyrażenie i wiersz z błędem są określone w komunikacie o błędzie.

Ważność: blokowanie

Poprawka: Na Azure Portal przejdź do bloku Mapowanie urządzenia usługi MedTech i popraw wyrażenie określone w komunikacie o błędzie w mapowaniu urządzenia.

TemplateNotFoundException

Opis: Szablon w mapowaniu urządzenia nie ma pasującego szablonu o tym samym typie w mapowaniu docelowym FHIR. Typ szablonu jest określony w komunikacie o błędzie.

Ważność: brak blokowania

Poprawka: Na Azure Portal przejdź do bloku Mapowanie urządzenia i blok Docelowy usługi MedTech i upewnij się, że dla każdego szablonu mapowania urządzenia istnieje szablon o tej samej typeName wartości w mapowaniu lokalizacji docelowej FHIR.

Brak autoryzacjiAccessEventHubException

Opis: W usłudze MedTech brakuje dostępu do centrum zdarzeń.

Ważność: Blokowanie

Poprawka: Na Azure Portal przejdź do centrum zdarzeń i przypisz rolę odbiornika danych Azure Event Hubs do usługi MedTech (zobacz instrukcje).

Brak autoryzacjiAccessFhirServiceException

Opis: Usługa MedTech nie ma dostępu do zapisu do miejsca docelowego FHIR.

Ważność: Blokowanie

Poprawka: Na Azure Portal przejdź do usługi FHIR i przypisz rolę zapisywania danych FHIR do usługi MedTech (zobacz instrukcje).

Uwaga

Jeśli nie możesz rozwiązać problemu z usługą MedTech, korzystając z tego przewodnika rozwiązywania problemów, możesz otworzyć bilet pomocy technicznej platformy Azure , dołączając kopie komunikatów o urządzeniu i mapowaniach urządzeń i miejsc docelowych FHIR do żądania, aby lepiej pomóc w ustaleniu problemu.

Następne kroki

W tym artykule przedstawiono sposób rozwiązywania problemów i naprawiania błędów przy użyciu dzienników usługi MedTech.

Aby dowiedzieć się więcej o usłudze MedTech — często zadawane pytania, zobacz

FHIR® jest zastrzeżonym znakiem towarowym Health Level Seven International, zarejestrowanym w U.S. Trademark Office i jest używany z ich pozwoleniem.