
مرحبًا. اسمي أندري ، أعمل في شركة تخلق حلول تكنولوجيا المعلومات في مجال الطب. بصفتنا لغة التطوير الرئيسية ، نستخدم Clojure ، وكذلك (اعتمادًا على المشروع / الوحدة) Python و Javascript و Go و C و C # و Rust و Objective-C وما إلى ذلك.
يشغل
FHIR المعيار الدولي (موارد التشغيل البيني السريع للرعاية الصحية) مكانًا مهمًا في مجموعتنا التكنولوجية ، والذي يحدد تنسيق تخزين / تبادل / توفير المعلومات الطبية في شكل إلكتروني
ويتضمن مواصفات
RESTful API للتفاعل بين العميل والخادم.
منذ بعض الوقت ، بدأت مشروعًا للحيوانات الأليفة لتطبيق يتخيل محتويات موارد خادم FHIR التعسفي ويسمح لك بإجراء عمليات CRUD الأساسية. يعرض KDPV لقطة شاشة لصفحة التحرير لعنصر مورد من نوع المريض.
تحت القطة ، يوجد وصف قصير ورابط إلى عرض توضيحي عبر الإنترنت - يمكنك أن تشعر بخادم FHIR المباشر الحقيقي ، وأزرار الوخز ، انظر / إنشاء / تحرير موارد مختلفة ، وحتى محاولة استدعاء نفس تأثير هابرا! )
بضع كلمات عن FHIR
لن أعيد كتابة وصف المعيار هنا ، أولئك الذين يرغبون في معرفة كل التفاصيل من الرابط أعلاه ، وقراءة مواد أخرى حول موارد مختلفة ، وكذلك طرح الأسئلة والانضمام إلى المناقشة في
دردشة FHIR . سأعطي فقط فكرة عامة: المفهوم المركزي هو مورد ، يتم تقسيم الموارد حسب الأنواع والمجموعات ، كل نوع له هيكل ميداني خاص به ، يمكن أن تكون قيمها أنواع بدائية أو مركبة وروابط لموارد أخرى. يمكن أن تكون الحقول إلزامية أو اختيارية ، وتحتوي على قيمة واحدة أو مجموعة من القيم. على سبيل المثال ، يحتوي مورد
المريض على حقول من النوع البدائي: تاريخ الميلاد / الجنس / ... ، النوع المركب: الاسم / العنوان / .... ، روابط إلى المنظمة وقائمة الأطباء المعالجين ، إلخ.
لكل مورد ، يتم تخزين محفوظات تغييراته كقائمة بالحالات مع تواريخ ملاءمتها ورقم إصدار الكائن. تتيح لك RESTful API طلب بيانات وصفية حول تكوين وهيكل الموارد التي يدعمها خادم FHIR هذا ، وقائمة بعناصر الموارد من أي نوع مع إمكانات تصفية واسعة وفقًا لقيم المعلمات الفردية ، وإدراج الموارد التابعة ، وتقييد إخراج النتائج إلى قيم الحقول المدرجة ، وفرز نتيجة الاستعلام حسب المعايير المعقدة ، و الخ. هناك أيضًا طرق لدعم CRUD على مستوى عنصر الموارد - إنشاء / تحديث مع التحقق من صحة الهيكل ووجود الحقول المطلوبة ، وحذف عنصر. توجد طرق API لعرض محفوظات التغييرات على مستوى العنصر وعلى مستوى نوع المورد.
في تطبيق نموذجي ، يتم تلخيص استخدام واجهة برمجة التطبيقات العامة هذه بواسطة طبقة سميكة من منطق الأعمال لعميل معين. على سبيل المثال ، عند تعيين زيارة المريض للطبيب ، يُطلب منهم الحصول على بيانات عن عدد التأمينات الطبية وفترات صلاحيتها ، وتاريخ الزيارات السابقة ، ومعلومات عن توازن المستوطنات بين المريض والعيادة ، وما إلى ذلك ، وبيانات عن الجدول الزمني للطبيب المختار وتوافر ساعات للقبول ، وما إلى ذلك. .p. ويتم عرض كل هذا بشكل ملائم على شاشة مكان عمل الموظف الذي يقوم بالتسجيل. أو ، يبدأ برنامج جدولة المهام بشكل دوري عملية وفقًا لجدول معين ، ويطلب قائمة بالزيارات القادمة ويرسل تلقائيًا رسائل نصية قصيرة للمرضى مع نص رسائل تذكير أو إشعارات وفقًا لقوالب محددة مسبقًا.
ولكني توصلت إلى فكرة عمل تصور عالمي لمحتويات موارد خادم FHIR ، وبالتالي مشروع يسمى ...
وجه Fhir
يتيح لك التطبيق الاتصال بأي خادم FHIR وعرض محتويات الموارد و CRUD الأساسية. إحدى صعوبات مثل هذا النهج العالمي هي أن الخوادم المختلفة يمكن أن يكون لها إصدارات مختلفة من معيار FHIR ، ولا تنفذها بالكامل ، ولديها انحرافات في القائمة ، وتكوين وهيكل الموارد وواجهات برمجة التطبيقات ، ولها أيضًا وظائف إضافية غير مدرجة في المواصفات . ولكن إذا كان هذا الخادم يسمح لك بطلب بيانات وصفية حول تكوين وهيكل الموارد المدعومة ، فيمكنك إضافة دعمه في هذا المشروع.
واجهة المشروع بديهية. يتم تحديد عنوان الخادم من خلال معلمة شريط العناوين ، ولكن في الإصدار التجريبي الحالي ،
يتم تحديد hapi.fhir.org بشكل افتراضي . من الصفحة الرئيسية ، يتم تنزيل تركيبة الموارد وهيكلها ، ويقترح تحديد نوع معين من الموارد لعرض محتوياتها. عند اختيار نوع المورد ، يتم تقديم طلب لعدد محدود من عناصره ، والتي يتم عرضها في جدول يحتوي على أعمدة: المعرف وتمثيل المستخدم الشرطي (إن أمكن) والحجم في أحرف تسلسل السلسلة. بحث النص الكامل على محتوى الموارد يعمل. عند النقر فوق صف جدول أو الزر لإنشاء عنصر جديد ، تحدث إعادة توجيه إلى صفحة محتوى عنصر المورد.
في الجزء العلوي من صفحة العنصر ، توجد أزرار للتكامل / الكشف الكامل عن المحتوى الهرمي وزر لتغيير نمط العرض التقديمي للتفاصيل. يتم تمثيل محتوى العنصر بقائمة من التفاصيل. كل سمة لها اسم ونوع ووصف قصير ومعنى. تعني الدائرة المليئة بالأسود على يمين السمة أن هذه السمة موجودة في المورد (حتى إذا لم يتم تحديد قيمتها - في هذه الحالة ، السمة لها هذه السمة ، ولكنها تحتوي على قيمة فارغة) ، تشير الدائرة الفارغة إلى عدم وجود هذه السمة في العنصر ، ولكن القائمة تفاصيل هيكل هذا النوع من الموارد. يمكن إضافة / إزالة أي سمة من العنصر بالنقر فوق رمز الدائرة الموجود على يسار الاسم. يتم تمييز التفاصيل غير المدرجة في بنية نوع المورد ، ولكنها متاحة في العنصر ، باللون الأرجواني.
يتم تمثيل قيم الأنواع البدائية باستخدام عناصر واجهة التعامل المكتوبة المقابلة - التاريخ والوقت والرقم والسلسلة وما إلى ذلك. يقوم الرمز الموجود على يمين تفاصيل السلسلة بتبديل وضع إدخال / تحرير النص - مع أو بدون موجز سطر. عند التعديل ، يتم تغيير حجم الأداة تلقائيًا وفقًا لمحتوياتها. عند البدء في ملء النموذج ، يتم تمثيل جميع حقول النص التي يزيد طولها عن 50 حرفًا بواسطة عناصر واجهة مستخدم textArea مع خلاصات سطر. يتم تمثيل عناصر واجهة تعامل الوصلة بنوع مورد الوصلة والقيمة ، عند اختيار قيمة ، يعمل بحث النص الكامل على محتويات مورد الوصلة.
يمكن طي تفاصيل الأنواع المركبة لتسليط الضوء على عدد التفاصيل الثانوية الممكنة والمعبأة أو نشرها مع عرض المحتويات. عندما تنقر على اسم / نوع / وصف المطلوب ، يتم تشغيل التفاف عميق / كامل للمحتويات ، عند النقر على التمييز ، فإن عدد الحقول هو الكشف عن المستوى التالي من التفاصيل. سمات المجموعة (مع عدد عشوائي من القيم) لها رمز
+ على يمين وصف السمة - لإضافة قيم جديدة إلى المجموعة. يتم تنفيذ الالتواء / الكشف عن عنصر المجموعة (إذا كان بدوره قيمة من النوع المركب) عن طريق النقر على الجزء الأيمن من الإطار المحيط بعنصر المجموعة. عندما تنقر على الصليب في الزاوية اليمنى العليا للإطار ، يتم حذف عنصر المجموعة.
تسمح لك هذه الواجهة بتحرير محتويات أي مورد. يوجد في الجزء السفلي من الصفحة زر لحفظ المورد في حالة التحرير. عندما تتم كتابة المورد ، يتحقق خادم FHIR من محتوياته ، وإذا كانت هناك أخطاء ، فإنه لا يسجل المورد ، ولكنه يعرض قائمة بأخطاء التحقق من الصحة. في هذه الحالة ، يتم عرض نص هذه الأخطاء باللون الأحمر أسفل زر الحفظ. يتم تحديد بنية كائن أخطاء التحقق من الصحة من خلال تنفيذ الخادم ؛ وبالتالي ، تم اختيار مجموعة متنوعة من تمثيلها النصي العالمي. في حالة عدم وجود أخطاء ، يتم تسجيل عنصر المورد وإعادة توجيهه إلى صفحة قائمة العناصر.
وأخيرًا ، الروابط الموعودة:
عرض توضيحي للمشروع عبر الإنترنتGithub للمشروع - القط ليس معرض حيوانات محشوة ، بل عامل حي ، لذلك هناك مناطق معلقة ، سقالات وعناصر أخرى ضرورية لأعمال البناء والتركيب ، وارتداء الخوذات)