تعريف معلمات البحث المخصصة لواجهة برمجة تطبيقات Azure ل FHIR

تحدد مواصفات موارد التشغيل التفاعلي للرعاية الصحية السريعة (FHIR®) مجموعة من معلمات البحث لجميع الموارد ومعلمات البحث الخاصة بالمورد (الموارد). ومع ذلك، هناك سيناريوهات قد ترغب فيها في البحث مقابل عنصر في مورد لم يتم تعريفه بواسطة مواصفات FHIR كمعلمة بحث قياسية. توضح هذه المقالة كيف يمكنك تحديد معلمات البحث الخاصة بك لاستخدامها في واجهة برمجة تطبيقات Azure ل FHIR.

ملاحظة

في كل مرة تقوم فيها بإنشاء معلمة بحث أو تحديثها أو حذفها، ستحتاج إلى تشغيل مهمة إعادة التشغيل لتمكين معلمة البحث لاستخدامها في الإنتاج. سنوضح أدناه كيف يمكنك اختبار معلمات البحث قبل إعادة فهرسة خادم FHIR بأكمله.

إنشاء معلمة بحث جديدة

لإنشاء معلمة بحث جديدة، يمكنك POSTSearchParameter المورد إلى قاعدة البيانات. يوضح مثال التعليمات البرمجية أدناه كيفية إضافة US Core Race SearchParameter إلى Patient المورد.

POST {{FHIR_URL}}/SearchParameter

{
  "resourceType" : "SearchParameter",
  "id" : "us-core-race",
  "url" : "http://hl7.org/fhir/us/core/SearchParameter/us-core-race",
  "version" : "3.1.1",
  "name" : "USCoreRace",
  "status" : "active",
  "date" : "2019-05-21",
  "publisher" : "US Realm Steering Committee",
  "contact" : [
    {
      "telecom" : [
        {
          "system" : "other",
          "value" : "http://www.healthit.gov/"
        }
      ]
    }
  ],
  "description" : "Returns patients with a race extension matching the specified code.",
  "jurisdiction" : [
    {
      "coding" : [
        {
          "system" : "urn:iso:std:iso:3166",
          "code" : "US",
          "display" : "United States of America"
        }
      ]
    }
  ],
  "code" : "race",
  "base" : [
    "Patient"
  ],
  "type" : "token",
  "expression" : "Patient.extension.where(url = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-race').extension.value.code"
}

ملاحظة

ستظهر معلمة البحث الجديدة في بيان القدرة لخادم FHIR بعد نشر معلمة البحث في قاعدة البيانات وإعادة فهرسة قاعدة البيانات الخاصة بك. SearchParameter عرض في عبارة الإمكانية هو الطريقة الوحيدة لمعرفة ما إذا كانت معلمة البحث مدعومة في خادم FHIR الخاص بك. إذا كان يمكنك العثور على معلمة البحث عن طريق البحث عن معلمة البحث ولكن لا يمكنك رؤيتها في عبارة القدرة، فلا تزال بحاجة إلى فهرسة معلمة البحث. يمكنك نشر معلمات بحث متعددة قبل تشغيل عملية إعادة التشغيل.

العناصر الهامة SearchParameterل :

  • url: مفتاح فريد لوصف معلمة البحث. تستخدم العديد من المؤسسات، مثل HL7، تنسيق URL قياسيا لمعلمات البحث التي تحددها، كما هو موضح أعلاه في معلمة البحث عن سباق CORE الأمريكية.

  • التعليمات البرمجية: القيمة المخزنة في التعليمات البرمجية هي ما ستستخدمه عند البحث. على سبيل المثال أعلاه، يمكنك البحث مع GET {FHIR_URL}/Patient?race=<code> للحصول على جميع المرضى من سباق معين. يجب أن تكون التعليمات البرمجية فريدة للمورد (الموارد) التي تنطبق عليها معلمة البحث.

  • الأساس: يصف المورد (الموارد) التي تنطبق عليها معلمة البحث. إذا كانت معلمة البحث تنطبق على جميع الموارد، يمكنك استخدام Resource؛ وإلا، يمكنك سرد جميع الموارد ذات الصلة.

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

  • تعبير: يصف كيفية حساب قيمة البحث. عند وصف معلمة بحث، يجب تضمين التعبير، على الرغم من أنه غير مطلوب من قبل المواصفات. وذلك لأنك تحتاج إما التعبير أو بناء جملة xpath وواجهة برمجة تطبيقات Azure ل FHIR تتجاهل بناء جملة xpath.

اختبار معلمات البحث

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

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

GET https://{{FHIR_URL}}/{{RESOURCE}}/{{RESOUCE_ID}}/$reindex

على سبيل المثال، للعثور على جميع معلمات البحث للمريض:

GET https://{{FHIR_URL}}/Patient/{{PATIENT_ID}}/$reindex

ستبدو النتيجة كما يلي:

{
  "resourceType": "Parameters",
  "id": "8be24e78-b333-49da-a861-523491c3437a",
  "meta": {
    "versionId": "1"
  },
  "parameter": [
    {
      "name": "deceased",
      "valueString": "http://hl7.org/fhir/special-values|false"
    },
    {
      "name": "language",
      "valueString": "urn:ietf:bcp:47|en-US"
    },
    {
      "name": "race",
      "valueString": "2028-9"
    },
...

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

POST https://{{FHIR_URL}/{{RESOURCE}}/{{RESOURCE_ID}}/$reindex

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

تابعا لمثالنا أعلاه، يمكنك فهرسة مريض واحد لتمكين السباق SearchParameterالأساسي للولايات المتحدة :

POST https://{{FHIR_URL}/Patient/{{PATIENT_ID}}/$reindex

ثم ابحث عن المرضى الذين لديهم سباق معين:

GET https://{{FHIR_URL}}/Patient?race=2028-9
x-ms-use-partial-indices: true

بعد الاختبار والتأكد من أن معلمة البحث تعمل كما هو متوقع، قم بتشغيل أو جدولة مهمة إعادة التشغيل بحيث يمكن استخدام معلمات البحث في خادم FHIR لحالات استخدام الإنتاج.

تحديث معلمة بحث

لتحديث معلمة بحث، استخدم PUT لإنشاء إصدار جديد من معلمة البحث. يجب تضمين في SearchParameter IDid عنصر النص الأساسي PUT للطلب وفي PUT الاستدعاء.

ملاحظة

إذا كنت لا تعرف معرف معلمة البحث، يمكنك البحث عنه. سيؤدي استخدام GET {{FHIR_URL}}/SearchParameter إلى إرجاع جميع معلمات البحث المخصصة، ويمكنك التمرير عبر معلمة البحث للعثور على معلمة البحث التي تحتاجها. يمكنك أيضا تقييد البحث بالاسم. باستخدام المثال أدناه، يمكنك البحث عن الاسم باستخدام USCoreRace: GET {{FHIR_URL}}/SearchParameter?name=USCoreRace.

PUT {{FHIR_URL}}/SearchParameter/{SearchParameter ID}

{
  "resourceType" : "SearchParameter",
  "id" : "SearchParameter ID",
  "url" : "http://hl7.org/fhir/us/core/SearchParameter/us-core-race",
  "version" : "3.1.1",
  "name" : "USCoreRace",
  "status" : "active",
  "date" : "2019-05-21",
  "publisher" : "US Realm Steering Committee",
  "contact" : [
    {
      "telecom" : [
        {
          "system" : "other",
          "value" : "http://www.healthit.gov/"
        }
      ]
    }
  ],
  "description" : "New Description!",
  "jurisdiction" : [
    {
      "coding" : [
        {
          "system" : "urn:iso:std:iso:3166",
          "code" : "US",
          "display" : "United States of America"
        }
      ]
    }
  ],
  "code" : "race",
  "base" : [
    "Patient"
  ],
  "type" : "token",
  "expression" : "Patient.extension.where(url = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-race').extension.value.code"
}

ستكون النتيجة محدثة SearchParameter وسيتزايد الإصدار.

تحذير

كن حذرا عند تحديث SearchParameters التي تمت فهرستها بالفعل في قاعدة البيانات الخاصة بك. قد يكون لتغيير سلوك SearchParameter موجود تأثيرات على السلوك المتوقع. نوصي بتشغيل مهمة إعادة التشغيل على الفور.

حذف معلمة بحث

إذا كنت بحاجة إلى حذف معلمة بحث، فاستخدم ما يلي:

Delete {{FHIR_URL}}/SearchParameter/{SearchParameter ID}

تحذير

كن حذرا عند حذف SearchParameters التي تمت فهرستها بالفعل في قاعدة البيانات الخاصة بك. قد يكون لتغيير سلوك SearchParameter موجود تأثيرات على السلوك المتوقع. نوصي بتشغيل مهمة إعادة التشغيل على الفور.

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

في هذه المقالة، تعلمت كيفية إنشاء معلمة بحث. بعد ذلك، يمكنك معرفة كيفية إعادة تثبيت خادم FHIR الخاص بك.

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