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:
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:
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ą
identity
type
wartość"SystemAssigned"
(zobacz przykładowy szablon usługi ARM w pliku azuredeploy.json w usłudze GitHub).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:
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.
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).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).
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.