يحتوي هذا المستودع على وثائق واجهة برمجة التطبيقات (API) العامة الخاصة بتنفيذ Cerner لمعيار HL7 ® FHIR ® ، والمعروف أيضًا باسم Cerner's Ignite APIs.
يمكن الاطلاع على الوثائق المنشورة على https://fhir.cerner.com/.
يتم الترحيب بتقارير الأخطاء أو الملاحظات الخاصة بالمناطق التي تكون التوثيق فيها غير واضحة باعتبارها مشكلات تتعلق بالمستودع.
تثبيت التبعيات مع المجمع.
$ bundle install
تجميع الموقع باستخدام nanoc.
$ bundle exec nanoc
ابدأ تشغيل خادم ويب محلي باستخدام nanoc.
$ bundle exec nanoc view
انتقل إلى http://localhost:3000/ لعرض الموقع. عند إجراء تغييرات على الموقع، كرر الخطوتين الأخيرتين لإعادة ترجمة المحتوى الجديد وعرضه.
لقد أضفنا سمات في الجزء العلوي من بعض ملفات تخفيض السعر لتعيين تخطيط. عادةً ما تكون هذه مطلوبة فقط للصفحات التي ليست وثائق API فعلية (تستخدم قاعدة التجميع الخاصة بنا سمة التخطيط هذه قبل الرجوع إلى تخطيط API).
يتم تعريف التخطيطات نفسها في دليل التخطيطات. يتم استخدام بعض التخطيطات (مثل تخطيطات واجهة برمجة التطبيقات أو الأسئلة الشائعة) كقوالب للصفحات كما هو مذكور أعلاه. يتم استخدام التخطيطات الأخرى (مثل تخطيطات فئة الموارد أو تخطيطات الرأس/التذييل) لتضمين المحتوى في الصفحات الأخرى.
توجد قواعد معالجة مسبقة تستخدم مطابقة المجلدات لإضافة سمات الإصدار والحل لجميع ملفات تخفيض السعر لواجهة برمجة التطبيقات (API). الشيء الوحيد الذي عليك القيام به لإنجاز هذا العمل هو وضع وثائق الموارد في مسار المجلد /[solution]/[version]/.
تُستخدم سمات الإصدار والحل حاليًا لثني فئات CSS وروابط الصفحات وأشرطة أدوات التنقل/الأشرطة الجانبية لوثائق واجهة برمجة التطبيقات.
تتطلب عمليات الإنشاء والتحديث عادةً نصوص JSON التي يمكن أن تكون مملة للتوثيق يدويًا من خلال تخفيض السعر. لتبسيط هذه العملية وتحسين الاتساق، أضفنا مساعد definition_table
لإنشاء جدول من ملف محتوى yaml.
يتطلب مساعد definition_table
3 معلمات: المحتوى والإجراء والإصدار.
content
إلى ملف المحتوى الذي سيتم تحميله.version
إلى إصدار ملف المحتوى.action
إلى التباينات المحددة للإجراء المحددة في ملف المحتوى لتنعكس في الجدول الذي تم إنشاؤه. عادةً ما يكون الإجراء: إنشاء أو: تحديث. يتم تعريف الإجراءات المتاحة في ملفات المحتوى نفسها. يتم إنشاء جدول حقل عن طريق استدعاء الأسلوب definition_table
من خلال استدعاء ERB في أي ملف وثائق يحتاج إلى الجدول.
على سبيل المثال، يمكن إنشاء إصدار DSTU2 من DocumentReference Create باستخدام:
<%= definition_table(:document_reference, :create, :dstu2) %>
بينما يمكن إنشاء إصدارات أخرى من AllergyIntolerance Update (بافتراض توفر التعريفات المناسبة) باستخدام:
<%= definition_table(:allergy_intolerance, :update, :r4) %>
في الواقع، تشير معلمة version
إلى مجلد فرعي في lib/resources
حيث يتم تخزين ملفات المحتوى الخاصة بهذا الإصدار. وبالتالي فإن definition_table(:document_reference, :create, :dstu2)
يشير إلى lib/resources/dstu2/document_reference.yaml
. إن إضافة إصدارات جديدة أو ملفات محتوى جديدة هي ببساطة مسألة إنشاء مجلد وملف محتوى مسمى بشكل مناسب.
يقرأ definition_table
هذه الحقول من تعريف yaml لمحتوى المورد:
يتوفر مساعد terminolgy_table
لإنشاء جدول ربط المصطلحات من نفس ملف محتوى yaml مثل definition_table
.
يتطلب المساعد terminolgy_table
معلمتين: المحتوى والإصدار.
content
إلى ملف المحتوى الذي سيتم تحميله.version
إلى إصدار ملف المحتوى. يتم إنشاء جدول المصطلحات عن طريق استدعاء الأسلوب terminology_table
من خلال استدعاء ERB في أي ملف وثائق يحتاج إلى الجدول.
على سبيل المثال، يمكن إنشاء إصدار DSTU2 من AllergyIntolerance باستخدام:
<%= terminology_table(:allergy_intolerance, :dstu2) %>
تتم معالجة معالجة معلمة version
بنفس الطريقة التي تتم بها معالجة definition_table
.
يقرأ terminology_table
هذه الحقول من تعريف yaml لمحتوى المورد:
يتم تعريف المحتوى في ملفات YAML وتكون معظم الحقول اختيارية. إذا لم يتم توفيرها، ستكون خلية الجدول الناتجة فارغة.
definition_table
بإنشاء روابط متداخلة لكل حقل مُلحق بعنوان URL هذا.field_name_base_url
.lib/resources//types.yaml
، فسيتم ربط هذا الحقل بالمورد المحدد.للحفاظ على التنسيق.
fields
هذه.field_name_base_url
إذا تم تعريفه.تنطبق قواعد تنسيق YAML القياسية.
بالإضافة إلى الحقول المذكورة أعلاه، يمكن أن يحتوي كل حقل على حقل action
يشير إلى الإجراء أو الإجراءات التي ينطبق عليها الحقل. عند تحديد الحقل، سيتم تضمينه فقط عند إنشاء جدول يتضمن الإجراء المحدد. يتم دعم الإجراءات المتعددة أيضًا ويمكن تعريفها كقائمة:
Make the field apply to a single action
- name: subject
...
action: create
Make the field apply to multiple actions
- name: subject
...
action:
- create
- update
وبالمثل، يمكن ثني قيم الحقول لكل إجراء أيضًا:
Alter the required and note values for update and create
- name: id
required:
- update: 'Yes'
- create: 'No'
type: id
description: The logical id of the resource to update.
example: |
{
"id": "123412"
}
note:
- update: The id value must match the AllergyIntolerance/ value.
- create: The id field must not be set when performing an update operation.
لا يقتصر اسم الإجراء على الإنشاء والتحديث، ولكن يمكن استخدام إجراء واحد فقط في كل مرة عند إنشاء جدول حقل.
يتم دعم الارتباط في أشكال قليلة.
سيتم ربط أسماء الحقول تلقائيًا استنادًا إلى base_field_name_url
ما لم يتم تجاوزها بواسطة قيمة url
للحقل.
ستقوم خلية جدول النوع بإنشاء روابط بناءً على أزواج قيمة المفتاح لعناوين URL المحددة في lib/resources/
. سيتم استبدال أي كلمة يتم العثور عليها في حقل type
بعنوان URL المحدد.
يدعم حقلا description
note
أيضًا الارتباط عبر استخدام علامتي `` و []
. سيتم ربط الكلمات المضمنة في العلامات `` وفقًا لملف types.yaml
، إن أمكن، أو سيتم تنسيقها كعلامات فقط إذا لم يكن الأمر كذلك. سيتم افتراض أن الكلمات المضمنة في
[]
هي إشارات إلى حقول أخرى في نفس الجدول.
بشكل عام، من الأفضل عدم استخدام العلامات في حقل type
، رغم أن ذلك ممكن. من الممكن أن تكون هناك تعارضات قد تؤدي إلى عمليات استبدال مكررة ونتائج غير مقصودة.