التحقق من صحة موارد FHIR مقابل ملفات التعريف في Azure Health Data Services

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

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

وفقا للمواصفات، يمكن تحديد الوضع باستخدام $validate، مثل الإنشاء والتحديث:

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

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

  • الخيار 1: التحقق من صحة مورد موجود باستخدام عملية التحقق من الصحة.
  • الخيار 2: التحقق من صحة مورد جديد باستخدام عملية التحقق من الصحة.
  • الخيار 3: التحقق من صحة إنشاء المورد أو تحديثه باستخدام عنوان.

عند التحقق الناجح من صحة مورد موجود أو جديد مع عملية التحقق من الصحة، لا يستمر المورد في خدمة FHIR. استخدم الخيار 3 لاستمرار الموارد التي تم التحقق من صحتها بنجاح في خدمة FHIR.

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

إشعار

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

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

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

GET http://<your FHIR service 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://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/Observation/12345678/$validate?profile=http://hl7.org/fhir/StructureDefinition/heartrate

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

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

POST http://<your FHIR service base URL>/{Resource}/$validate

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

POST https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/Patient/$validate

يتحقق هذا الطلب من صحة المورد. سيتم إنشاء مورد جديد تحدده في الطلب بعد التحقق من الصحة. يقوم الخادم دائما بإرجاع OperationOutcome كنتيجة لذلك.

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

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

إشعار

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

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

لتمكين التحقق الصارم من الصحة، استخدم عنوان "تفضيل: معالجة" بقيمة صارمة. من خلال تعيين هذا العنوان، يتم الإبلاغ عن تحذير التحقق من الصحة كخطأ.

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

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

إشعار

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