التحقق من صحة العملية: نظرة عامة

هام

سيتم إيقاف Azure API ل FHIR في 30 سبتمبر 2026. اتبع استراتيجيات الترحيل للانتقال إلى خدمة Azure Health Data Services FHIR بحلول ذلك التاريخ. بسبب إيقاف Azure API ل FHIR، لن يسمح بالنشرات الجديدة بدءا من 1 أبريل 2025. خدمة Azure Health Data Services FHIR هي الإصدار المتطور من Azure API ل FHIR الذي يمكن العملاء من إدارة خدمات FHIR وDICOM وMedTech مع عمليات التكامل في خدمات Azure الأخرى.

في مقالة ملفات تعريف المتجر في واجهة برمجة تطبيقات Azure ل FHIR ، تعرفت على أساسيات ملفات تعريف FHIR وتخزينها. سترشدك هذه المقالة إلى كيفية استخدام $validate للتحقق من صحة الموارد مقابل ملفات التعريف. يعني التحقق من صحة مورد مقابل ملف تعريف التحقق مما إذا كان المورد يتوافق مع ملف التعريف، بما في ذلك المواصفات المدرجة في Resource.meta.profile أو في دليل التنفيذ.

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

  • create: تتحقق واجهة برمجة تطبيقات Azure ل FHIR من أن محتوى ملف التعريف فريد من الموارد الموجودة وأنه من المقبول إنشاؤه كمورد جديد.
  • update: يتحقق من أن ملف التعريف هو تحديث مقابل المورد الحالي المرشح (لا يتم إجراء أي تغييرات على الحقول غير القابلة للتغيير).

هناك طرق مختلفة متوفرة لك للتحقق من صحة المورد:

  • التحقق من صحة مورد موجود من خلال عملية التحقق من الصحة.
  • التحقق من صحة مورد جديد من خلال عملية التحقق من الصحة.
  • التحقق من صحة المورد CREATE/ UPDATE باستخدام العنوان.

سوف ترجع OperationOutcome واجهة برمجة تطبيقات Azure ل FHIR دائما نتائج التحقق من الصحة لعملية $validate. تقوم واجهة برمجة تطبيقات Azure لخدمة FHIR بالتحقق من صحة خطوتين، بمجرد تمرير المورد إلى نقطة نهاية $validate - الخطوة الأولى هي التحقق الأساسي لضمان إمكانية تحليل المورد. أثناء تحليل الموارد، يجب إصلاح الأخطاء الفردية قبل المتابعة إلى الخطوة التالية. بمجرد تحليل المورد بنجاح، يتم إجراء التحقق الكامل كخطوة ثانية.

إشعار

يجب تحميل أي مجموعات قيم سيتم استخدامها للتحقق من الصحة إلى خادم FHIR.  يتضمن ذلك أي Valuesets التي تعد جزءا من مواصفات FHIR، بالإضافة إلى أي ValueSets محددة في دلائل التنفيذ.  يتم دعم مجموعات القيم الموسعة بالكامل التي تحتوي على قائمة كاملة بجميع الرموز فقط.  أي تعريفات ValueSet تشير إلى مصادر خارجية غير مدعومة.

التحقق من صحة مورد موجود

للتحقق من صحة مورد موجود، استخدم $validate في GET طلب:

GET http://<your Azure API for FHIR base URL>/{resource}/{resource ID}/$validate

على سبيل المثال:

GET https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/Patient/a6e11662-def8-4dde-9ebc-4429e68d130e/$validate

في هذا المثال، تقوم بالتحقق من صحة مورد a6e11662-def8-4dde-9ebc-4429e68d130e المريض الحالي مقابل مورد المريض الأساسي. إذا كان صالحا OperationOutcome ، فستحصل على مثل مثال التعليمات البرمجية التالي:

{
    "resourceType": "OperationOutcome",
    "issue": [
        {
            "severity": "information",
            "code": "informational",
            "diagnostics": "All OK"
        }
    ]
}

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

{
    "resourceType": "OperationOutcome",
    "issue": [
        {
            "severity": "error",
            "code": "invalid",
            "details": {
                "coding": [
                    {
                        "system": "http://hl7.org/fhir/dotnet-api-operation-outcome",
                        "code": "1028"
                    }
                ],
                "text": "Instance count for 'Patient.identifier.value' is 0, which is not within the specified cardinality of 1..1"
            },
            "location": [
                "Patient.identifier[1]"
            ]
        },
        {
            "severity": "error",
            "code": "invalid",
            "details": {
                "coding": [
                    {
                        "system": "http://hl7.org/fhir/dotnet-api-operation-outcome",
                        "code": "1028"
                    }
                ],
                "text": "Instance count for 'Patient.gender' is 0, which is not within the specified cardinality of 1..1"
            },
            "location": [
                "Patient"
            ]
        }
    ]
}

في هذا المثال، لم يتوافق المورد مع ملف تعريف المريض المقدم، والذي يتطلب قيمة معرف المريض والجنس.

إذا كنت ترغب في تحديد ملف تعريف كمعلمة، يمكنك تحديد عنوان URL المتعارف عليه لملف التعريف للتحقق من صحته، مثل المثال التالي لملف تعريف HL7 الأساسي ل heartrate:

GET https://myAzureAPIforFHIR.azurehealthcareapis.com/Observation/12345678/$validate?profile=http://hl7.org/fhir/StructureDefinition/heartrate

التحقق من صحة مورد جديد

إذا كنت ترغب في التحقق من صحة مورد جديد تقوم بتحميله إلى واجهة برمجة تطبيقات Azure ل FHIR، يمكنك إجراء POST طلب: سيعيد الخادم دائما OperationOutcome كنتيجة لذلك.

POST http://<your Azure API for FHIR base URL>/{Resource}/$validate

على سبيل المثال:

POST https://myAzureAPIforFHIR.azurehealthcareapis.com/Patient/$validate

سيقوم هذا الطلب بالتحقق من صحة المورد. عند عدم إنشاء موارد التحقق من الصحة في خدمة FHIR، ستحتاج إلى إرسال طلب POST دون $validate لإنشاء مورد.

التحقق من صحة المورد CREATE/ UPDATE باستخدام العنوان.

بشكل افتراضي، يتم تكوين واجهة برمجة تطبيقات Azure ل FHIR لإلغاء التحقق من الصحة على المورد Create/Update. تسمح هذه الإمكانية بالتحقق من صحة Create/Update، باستخدام x-ms-profile-validation العنوان. قم بتعيين "x-ms-profile-validation" إلى true للتحقق من الصحة.

إشعار

في خدمة FHIR مفتوحة المصدر، يمكنك تغيير إعداد تكوين الخادم، ضمن CoreFeatures.

{
   "FhirServer": {
      "CoreFeatures": {
            "ProfileValidationOnCreate": true,
            "ProfileValidationOnUpdate": false
        }
}

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

في هذه المقالة، تعلمت كيفية التحقق من صحة الموارد مقابل ملفات التعريف باستخدام $validate. للتعرف على واجهة برمجة تطبيقات Azure الأخرى للميزات المدعومة من FHIR، راجع

FHIR® هي علامة تجارية مسجلة ل HL7 وتستخدم بإذن من HL7.