استكشاف الأخطاء وإصلاحها باستخدام سجلات خدمة MedTech

ملاحظة

Fast Healthcare Interoperability Resources (FHIR®) هي مواصفات رعاية صحية مفتوحة.

توفر هذه المقالة خطوات استكشاف الأخطاء وإصلاحها وإصلاحها للأخطاء الموجودة في سجلات خدمة MedTech.

تلميح

يعد الوصول إلى سجلات خدمة MedTech أمرا ضروريا لاستكشاف الأخطاء وإصلاحها وتقييم الصحة والأداء العامين لخدمة MedTech الخاصة بك.

لمعرفة كيفية الوصول إلى سجلات خدمة MedTech، راجع كيفية تمكين إعدادات التشخيص لخدمة MedTech.

خطورة خطأ خدمة MedTech

تمثل هذه الخاصية خطورة الخطأ الذي حدث. فيما يلي قائمة بالقيم المحتملة لهذه الخاصية:

الخطورة الوصف
غير محظور توجد مشكلة في عملية تدفق البيانات، ولكن معالجة رسائل الجهاز لا تتوقف.
حظر توجد مشكلة في عملية تدفق البيانات، ولا يتوقع أن تتم معالجة رسائل الجهاز.

العملية التي يتم تنفيذها بواسطة خدمة MedTech

تمثل هذه الخاصية العملية التي تقوم بها خدمة MedTech عند حدوث الخطأ. تمثل العملية بشكل عام مرحلة تدفق البيانات التي تتم فيها معالجة رسالة الجهاز. يتم عرض مرحلة تدفق البيانات في سجلات الخطأ باسم OperationName. فيما يلي قائمة بالقيم المحتملة لهذه الخاصية:

اسم العملية الوصف
التسوية مرحلة تدفق البيانات حيث تتم تسوية رسالة الجهاز.
FHIRConversion مرحلة تدفق البيانات حيث يتم تحويل البيانات التي تمت تسويتها مجمعة إلى مورد مراقبة.

ملاحظة

للتعرف على تحويل بيانات رسالة جهاز خدمة MedTech، راجع نظرة عامة على مراحل معالجة بيانات جهاز خدمة MedTech.

استثناءات وإصلاحات التحقق من صحة خدمة MedTech

يتم إجراء الفحوصات الصحية تلقائيا ودوريا للتحقق مما إذا كانت خدمة MedTech يمكنها تطبيع رسائل الجهاز وتحويلها. إذا لم يتم تمرير فحص السلامة، فسيحدث HealthCheckException ويتم تسجيله.

في سجلات خدمة MedTech، يتم تسجيل فشل التحقق من الصحة باستخدام LogType من HealthCheckException، ويتم تسجيل اسم التحقق من الصحة الفاشل في الرسالة.

يتم سرد أسماء عمليات التحقق من الصحة في الجدول التالي، ويتم وصف إصلاحات أي من حالات الفشل الخاصة بها أسفل الجدول:

التحقق من الصحة
CredentialStore:IsCustomerFacingMiCredentialBundlePresent
ExternalEventHub:IsAuthenticated
FhirService:IsAuthenticated

ملاحظة

في حين أن HealthCheckException هي مشكلة حظر، فقد تكون عابرة وقد تحل نفسها دون تدخل.

CredentialStore:IsCustomerFacingMiCredentialBundlePresent

الوصف: يتحقق مما إذا تم تمكين الهوية المدارة المعينة من قبل النظام لخدمة MedTech أو إذا تم تكوين هوية مدارة معينة من قبل المستخدم.

الخطورة: الحظر

الإصلاح: اتبع الإصلاح الموضح في ManagedIdentityCredentialNotFound.

ExternalEventHub:IsAuthenticated

الوصف: يتحقق من أن مركز الأحداث صالح وأن خدمة MedTech تتلقى حق الوصول إليها.

الخطورة: الحظر

الإصلاح: تأكد من أن مركز الأحداث صالح باتباع الإصلاح الموضح في InvalidEventHubException. بعد ذلك، تأكد من أن خدمة MedTech الخاصة بك تتلقى الوصول إلى مركز الأحداث الخاص بك باتباع الإصلاح الموضح في UnauthorizedAccessEventHubException.

FhirService:IsAuthenticated

الوصف: يتحقق من أن وجهة FHIR صالحة وأن خدمة MedTech لديها حق الوصول للكتابة إليها.

الخطورة: الحظر

الإصلاح: تأكد من أن وجهة FHIR صالحة باتباع الإصلاح الموضح في InvalidFhirServiceException. بعد ذلك، تأكد من أن خدمة MedTech لديها حق الوصول للكتابة إلى وجهة FHIR باتباع الإصلاح الموضح في UnauthorizedAccessFhirServiceException.

أخطاء وإصلاحات خدمة MedTech

إذا حدث خطأ أثناء تسوية رسائل الجهاز أو تحويلها، فسيتم تسجيله.

في سجلات خدمة MedTech، يتم تسجيل اسم الخطأ في LogType.

يتم سرد أسماء الأخطاء في الجدول التالي، ويتم توفير الإصلاحات لها أسفل الجدول:

نوع السجل
CorrelationIdNotDefinedException
FhirDataMappingException
FhirResourceNotFoundException
IncompatibleDataException
InvalidDataFormatException
InvalidEventHubException
InvalidFhirServiceException
InvalidQuantityFhirValueException
InvalidTemplateException
ManagedIdentityCredentialNotFound
MultipleResourceFoundException
NormalizationDataMappingException
PatientDeviceMismatchException
ResourceIdentityNotDefinedException
TemplateExpressionException
TemplateNotFoundException
UnauthorizedAccessEventHubException
UnauthorizedAccessFhirServiceException

CorrelationIdNotDefinedException

الوصف: إذا تم تحديد CorrelationIdExpression (وهو تعبير لتحليل معرف الارتباط من رسالة الجهاز) في تعيين الجهاز، فسيحدث هذا الخطأ عندما لا يكون معرف الارتباط موجودا في رسالة الجهاز، أو عندما لا يتم تكوين CorrelationIdExpression بشكل صحيح في تعيين الجهاز. ملاحظة: CorrelationIdExpression اختياري. يحدث هذا الخطأ عند تجميع القياسات التي تشترك في نفس الجهاز والنوع ومعرف الارتباط في مورد مراقبة FHIR واحد.

الخطورة: الحظر

الإصلاح:

  • إذا كانت CorrelationIdExpression مطلوبة: تأكد من أن رسائل جهازك تحتوي على معرف الارتباط. أيضا، في مدخل Microsoft Azure، انتقل إلى جزء تعيين الجهاز لخدمة MedTech، وتأكد من correlationIdExpression وجود القيمة في تعيين الجهاز والإشارة بشكل صحيح إلى مفتاح معرف الارتباط في رسائل جهازك.

  • إذا لم تكن هناك حاجة إلى CorrelationIdExpression: في مدخل Microsoft Azure، انتقل إلى شفرة تعيين الجهاز لخدمة MedTech، وقم بإزالة السطر الذي يحتوي على correlationIdExpression تعيين الجهاز.

FhirDataMappingException

الوصف: حدث خطأ أثناء تحويل البيانات التي تمت تسويتها باستخدام تعيين وجهة FHIR. يحدث هذا الخطأ عندما لا يتم تعريف قالب يتوافق مع البيانات التي تمت تسويتها في تعيين وجهة FHIR.

الخطورة: الحظر

الإصلاح: في مدخل Microsoft Azure، انتقل إلى شفرة تعيين الجهاز وشفرة الوجهة لخدمة MedTech، وتأكد من وجود قالب بنفس typeName القيمة في تعيين وجهة FHIR لكل قالب في تعيين الجهاز. أيضا، قم بإصلاح أي أخطاء التحقق من الصحة التي تظهر عند تحرير وحفظ تعيين وجهة FHIR في شفرة الوجهة .

FhirResourceNotFoundException

الوصف: يحدث هذا الخطأ عندما لا يمكن العثور على مورد FHIR مع المعرف المحدد في رسالة الجهاز في وجهة FHIR. إذا كان نوع مورد FHIR هو Patient، فقد يكون الخطأ هو أن مورد Device FHIR مع معرف الجهاز المحدد في رسالة الجهاز لا يشير إلى مورد Patient FHIR. يتم تحديد نوع مورد FHIR (على سبيل المثال، الجهاز أو المريض أو اللقاء أو الملاحظة) في رسالة الخطأ. ملاحظة: لا يمكن أن يحدث هذا الخطأ إلا عند تعيين نوع دقة خدمة MedTech إلى Lookup.

الخطورة: عدم الحظر

الإصلاح: تأكد من أن رسائل جهازك تحتوي على معرف مورد FHIR الذي يحتوي على النوع المحدد في رسالة الخطأ. أيضا، في مدخل Microsoft Azure، انتقل إلى جزء تعيين الجهاز لخدمة MedTech، وتأكد من وجود {FHIR resource’s type specified in the error message}IdExpression (على سبيل المثال، deviceIdExpression) القيمة في تعيين الجهاز والإشارة بشكل صحيح إلى مفتاح المعرف في رسائل جهازك.

IncompatibleDataException

الوصف: هناك عدم توافق بين رسالة الجهاز وتعيين الجهاز (على سبيل المثال، قد تكون الخاصية المطلوبة مفقودة أو فارغة في رسالة الجهاز و/أو في تعيين الجهاز). يتم تحديد خاصية تعيين الجهاز مع الخطأ في رسالة الخطأ.

الخطورة: عدم الحظر

الإصلاح: تأكد من أن رسائل جهازك تحتوي على:

  • المفتاح المشار إليه بواسطة خاصية تعيين الجهاز المحددة في رسالة الخطأ.

  • قيمة غير فارغة للمفتاح.

أيضا، في مدخل Microsoft Azure، انتقل إلى جزء تعيين الجهاز لخدمة MedTech، وتأكد من أن خاصية تعيين الجهاز المحددة في رسالة الخطأ لها قيمة تشير بشكل صحيح إلى المفتاح المقابل في رسائل جهازك.

InvalidDataFormatException

الوصف: رسالة الجهاز ليست بتنسيق يمكن تحليله في كائن JSON.

الخطورة: عدم الحظر

الإصلاح: تأكد من أن رسائل جهازك بتنسيق JSON. إحدى الطرق لتأكيد تنسيق JSON هي استخدام مدقق JSON عبر الإنترنت.

InvalidEventHubException

الوصف: مركز الحدث غير صالح لأحد الأسباب التالية:

  • تم تنسيق واحد على الأقل من تفاصيل مركز الأحداث (مساحة اسم مراكز الأحداث أو اسم مركز الأحداث أو مجموعة المستهلكين) بشكل غير صحيح أو غير موجود. يجب أن تحتوي مساحة اسم مراكز الأحداث على مركز الحدث، ويجب أن يحتوي مركز الأحداث على مجموعة المستهلكين.

  • تقرأ أكثر من خدمة واحدة من مجموعة مستهلكين مركز الأحداث.

الخطورة: الحظر

الإصلاح: في مدخل Microsoft Azure، انتقل إلى شفرة مراكز الأحداث لخدمة MedTech، وتأكد من تعبئة جميع الحقول الخاصة بتفاصيل مركز الأحداث. للتأكد من أن خدمة MedTech الخاصة بك فقط تقرأ من مجموعة المستهلكين، إما:

  • انتقل إلى خدماتك وتأكد من أن خدمة MedTech هي الخدمة الوحيدة التي تصل إلى مجموعة المستهلكين.

  • انتقل إلى مركز الأحداث في مدخل Microsoft Azure، وأنشئ مجموعة مستهلكين جديدة تصل إليها خدمة MedTech فقط، وانتقل إلى شفرة مراكز الأحداث لخدمة MedTech، وحدد مجموعة المستهلكين الجديدة في حقل مجموعة المستهلكين .

InvalidFhirServiceException

الوصف: وجهة FHIR غير صالحة لأنها منسقة بشكل غير صحيح أو غير موجودة أو ليست خدمة FHIR في Azure Health Data Services.

الخطورة: الحظر

الإصلاح: في مدخل Microsoft Azure، انتقل إلى شفرة الوجهة لخدمة MedTech، وتأكد من تعبئة حقل خادم FHIR بشكل صحيح.

InvalidQuantityFhirValueException

الوصف: القيمة مع نوع بيانات مورد الكمية غير صالحة (على سبيل المثال، قد تكون بتنسيق غير مدعوم). يتم تحديد القيمة مع الخطأ في رسالة الخطأ.

الخطورة: عدم الحظر

الإصلاح: تأكد من أن القيم الموجودة في رسائل جهازك موجودة في أنواع البيانات المدعومة وفقا لمواصفات FHIR Quantity.value.

InvalidTemplateException

الوصف: يوجد خطأ في قالب في تعيين الجهاز أو تعيين وجهة FHIR. تتضمن الأخطاء ما يلي:

  • نوع قالب القالب (ممثل بالخاصية templateType ) مفقود أو له قيمة فارغة.

  • لا يحتوي القالب (ممثل بواسطة الخاصية template ) ضمن قالب مجموعة الجذر على كائن JSON، والذي يتم تعريفه بواسطة الأقواس {}، كقيمته.

  • نوع القالب (ممثل بالخاصية typeName ) مفقود أو له قيمة فارغة.

  • يحتوي أكثر من قالب واحد في التعيين على نفس النوع (له نفس القيمة لخاصيته typeName ).

يتم تحديد نوع القالب وخط الخطأ في رسالة الخطأ.

الخطورة: الحظر

الإصلاح: في مدخل Microsoft Azure، انتقل إلى جزء تعيين الجهاز (إذا كان الخطأ في تعيين الجهاز) أو شفرة الوجهة (إذا كان الخطأ في تعيين وجهة FHIR) لخدمة MedTech، وقم بتصحيح القالب المحدد في رسالة الخطأ.

ManagedIdentityCredentialNotFound

الوصف: عندما تتصل خدمة MedTech بمركز الأحداث، يتم تعطيل الهوية المدارة المعينة من قبل النظام لخدمة MedTech أو عدم وجودها، أو لم يتم تكوين هوية مدارة يعينها المستخدم لخدمة MedTech. ملاحظة: قد يحدث هذا الخطأ إذا تم نشر خدمة MedTech باستخدام قالب Azure Resource Manager (ARM) الذي تم تكوينه بشكل خاطئ.

الخطورة: الحظر

الإصلاح: يعتمد الإصلاح على نوع الهوية المدارة التي تريد استخدامها. يمكن مراجعة الفرق بين الهوية المدارة المعينة من قبل النظام والهوية المدارة المعينة من قبل المستخدم في أنواع الهوية المدارة. ملاحظة: تدعم خدمة MedTech هوية واحدة فقط: إما هوية مدارة معينة من قبل النظام أو هوية مدارة واحدة يعينها المستخدم.  

إذا كنت ترغب في استخدام هوية مدارة معينة من قبل النظام:

  1. إذا كنت تقوم بنشر خدمة MedTech باستخدام قالب ARM، فتأكد من أن مورد خدمة MedTech في قالب ARM يحتوي identity على خاصية تحتوي على type قيمة "SystemAssigned" (راجع مثال قالب ARM في ملف azuredeploy.json على GitHub).

  2. في مدخل Microsoft Azure، انتقل إلى شفرة Identity لخدمة MedTech، وانتقل إلى علامة التبويب System assigned ، وتأكد مما يلي:

    • تم تعيين الحالة إلى تشغيل.
    • تظهر تعيينات دور Azure أن مركز الأحداث الخاص بك يحتوي على دور Azure Event Hubs Data Receiver المعين للهوية المدارة المعينة من قبل النظام لخدمة MedTech. إذا لم يكن الأمر كما هو، فاتبع هذه الإرشادات

إذا كنت ترغب في استخدام هوية مدارة معينة من قبل المستخدم:

  1. تأكد من أن لديك هوية مدارة معينة من قبل المستخدم. إذا لم يكن الأمر كما هو، فقم بإنشاء واحد باستخدام مدخل Microsoft Azure أو قالب ARM.

  2. إذا كنت تقوم بنشر خدمة MedTech باستخدام قالب ARM، فتأكد من أن مورد خدمة MedTech الخاص بك في قالب ARM يحتوي identity على خاصية تحتوي على 1) type قيمة "userAssigned" و 2) userAssignedIdentities قيمة تتضمن اسم الهوية المدارة المعينة من قبل المستخدم (راجع المثال في تعيين هوية مدارة يعينها المستخدم لجهاز Azure الظاهري).

  3. في مدخل Microsoft Azure، انتقل إلى شفرة الهوية لخدمة MedTech، وانتقل إلى علامة التبويب تعيين المستخدم ، وتأكد من عرض الهوية المدارة المعينة من قبل المستخدم. إذا لم يكن لديك، أضف هويتك المدارة المعينة من قبل المستخدم (راجع المثال في تعيين هوية مدارة معينة من قبل المستخدم إلى جهاز ظاهري موجود).

  4. في مدخل Microsoft Azure، انتقل إلى مركز الأحداث، وقم بتعيين دور Azure Event Hubs Data Receiver إلى الهوية المدارة المعينة من قبل المستخدم لخدمة MedTech (راجع الإرشادات، ولكن استخدم الهوية المدارة المعينة من قبل المستخدم بدلا من الهوية المدارة المعينة من قبل النظام).

MultipleResourceFoundException

الوصف: يتم العثور على موارد FHIR متعددة بنفس المعرف، والتي تم أخذها من رسالة الجهاز، في وجهة FHIR، ولكن يجب العثور على مورد FHIR واحد فقط. يتم تحديد نوع مورد FHIR (على سبيل المثال، الجهاز أو المريض أو اللقاء أو الملاحظة) في رسالة الخطأ.

الخطورة: عدم الحظر

الإصلاح: تأكد من عدم تعيين معرف لأكثر من مورد FHIR واحد يحتوي على النوع المحدد في رسالة الخطأ.

NormalizationDataMappingException

الوصف: حدث خطأ أثناء تسوية رسالة جهاز باستخدام تعيين الجهاز.

الخطورة: الحظر

الإصلاح: في مدخل Microsoft Azure، انتقل إلى جزء تعيين الجهاز لخدمة MedTech، وقم بإصلاح أي أخطاء في التحقق من الصحة تظهر عند تحرير تعيين الجهاز وحفظه.

PatientDeviceMismatchException

الوصف: يشير مورد الجهاز في وجهة FHIR إلى مورد المريض FHIR بمعرف لا يتطابق مع معرف المريض المحدد في رسالة الجهاز (بمعنى أن الجهاز مرتبط بمريض آخر).

الخطورة: عدم الحظر

الإصلاح: تأكد من عدم تعيين معرف المريض لأكثر من جهاز واحد.

ResourceIdentityNotDefinedException

الوصف: يحدث هذا الخطأ عندما لا يكون معرف مورد FHIR موجودا في رسالة الجهاز، أو عندما لا يتم تكوين التعبير لتحليل معرف مورد FHIR من رسالة الجهاز في تعيين الجهاز. يتم تحديد نوع مورد FHIR (على سبيل المثال، الجهاز أو المريض أو اللقاء أو الملاحظة) في رسالة الخطأ. ملاحظة: لا يمكن أن يحدث هذا الخطأ إلا عند تعيين نوع دقة خدمة MedTech إلى Create.

الخطورة: عدم الحظر

الإصلاح: تأكد من أن رسائل جهازك تحتوي على معرف مورد FHIR الذي يحتوي على النوع المحدد في رسالة الخطأ. أيضا، في مدخل Microsoft Azure، انتقل إلى جزء تعيين الجهاز لخدمة MedTech، وتأكد من وجود {FHIR resource’s type specified in the error message}IdExpression (على سبيل المثال، deviceIdExpression) القيمة في تعيين الجهاز والإشارة بشكل صحيح إلى مفتاح المعرف في رسائل جهازك.

TemplateExpressionException

الوصف: يوجد خطأ مع تعبير في قالب داخل تعيين الجهاز. تتضمن الأخطاء ما يلي:

  • التعبير المطلوب مفقود.

  • لغة التعبير (ممثلة بالخاصية language ) غير مدعومة. تدعم جميع أنواع القوالب التعبيرات في JSONPath؛ يدعم نوع القالب CalculatedContent فقط التعبيرات في JMESPath.

  • يتم تنسيق قيمة التعبير (ممثلة value بالخاصية) بشكل غير صحيح وفقا لبناء جملة لغة التعبير.

يتم تحديد التعبير والخط مع الخطأ في رسالة الخطأ.

الخطورة: الحظر

الإصلاح: في مدخل Microsoft Azure، انتقل إلى جزء تعيين الجهاز لخدمة MedTech، وقم بتصحيح التعبير المحدد في رسالة الخطأ داخل تعيين الجهاز.

TemplateNotFoundException

الوصف: لا يحتوي القالب في تعيين الجهاز على قالب مطابق بنفس النوع داخل تعيين وجهة FHIR. يتم تحديد نوع القالب في رسالة الخطأ.

الخطورة: عدم الحظر

الإصلاح: في مدخل Microsoft Azure، انتقل إلى شفرة تعيين الجهاز وشفرة الوجهة لخدمة MedTech، وتأكد من وجود قالب بنفس typeName القيمة داخل تعيين وجهة FHIR لكل قالب في تعيين الجهاز.

UnauthorizedAccessEventHubException

الوصف: تفتقد خدمة MedTech إلى تلقي الوصول إلى مركز الأحداث.

الخطورة: الحظر

الإصلاح: في مدخل Microsoft Azure، انتقل إلى مركز الأحداث الخاص بك، وقم بتعيين دور Azure Event Hubs Data Receiver لخدمة MedTech (راجع الإرشادات).

UnauthorizedAccessFhirServiceException

الوصف: تفتقد خدمة MedTech إلى الوصول للكتابة إلى وجهة FHIR.

الخطورة: الحظر

الإصلاح: في مدخل Microsoft Azure، انتقل إلى خدمة FHIR، وقم بتعيين دور FHIR Data Writer لخدمة MedTech (راجع الإرشادات).

ملاحظة

إذا لم تتمكن من إصلاح مشكلة خدمة MedTech باستخدام دليل استكشاف الأخطاء وإصلاحها هذا، يمكنك فتح تذكرة Azure Technical Support التي ترفق نسخا من رسالة جهازك وجهازك وتعيينات وجهة FHIR لطلبك للمساعدة بشكل أفضل في تحديد المشكلة.

الخطوات التالية

في هذه المقالة، تعلمت كيفية استكشاف الأخطاء وإصلاحها باستخدام سجلات خدمة MedTech.

للتعرف على الأسئلة المتداولة حول خدمة MedTech، راجع

FHIR® هي علامة تجارية مسجلة ل Health Level Seven International، مسجلة في مكتب العلامات التجارية في الولايات المتحدة وتستخدم بإذن منهم.