إجابة مختصرة: محرك الواجهة (محرك التكامل) هو برنامج وسيط مصمم لتبادل الرسائل في مجال الرعاية الصحية. يقوم بالاستماع عبر العديد من البروتوكولات (MLLP لـ HL7 v2، HTTP لـ FHIR و SOAP، الملفات، قواعد البيانات، قوائم الانتظار)، ويحول الرسائل (تعيين الحقول، ترجمة الرموز، تحويل التنسيق مثل HL7 v2 إلى FHIR)، ويوجهها إلى وجهة واحدة أو أكثر مع عوامل تصفية، ويحتفظ بـ قوائم الانتظار، وإعادة المحاولة، والسجلات، ولوحات المعلومات لضمان عدم فقدان أي رسالة وأن كل فشل يكون مرئيًا. تستخدم المستشفيات واحدًا لربط كل نظام بالمحرك مرة واحدة بدلاً من ربطه بكل نظام آخر. المنتجات المعروفة هي Mirth Connect (NextGen Connect، مفتوحة المصدر تاريخيًا)، Rhapsody، InterSystems HealthShare / IRIS for Health، Infor Cloverleaf، Qvera QIE، Orion، وغيرها الكثير؛ تقدم شركات الخدمات السحابية بدائل مُدارة.
المكونات الأساسية
تتكون المكونات الأساسية لمحرك الواجهات من قنوات (تدفق واحد من مصدر إلى وجهاته)، وموصلات مصدر أو مستمعين مثل MLLP و HTTP، وفلاتر تقرر ما إذا كانت الرسالة ستستمر، ومحولات تقوم بتعيين الحقول والرموز، وموصلات وجهة، وطوابير مع إعادة المحاولة، ومراقبة مع تنبيهات، وسجل تدقيق لتغييرات القنوات وسجل الرسائل.
كل محرك، مهما اختلفت المصطلحات، له نفس الأجزاء:
- القناة (الواجهة): تدفق واحد من مصدر إلى وجهة واحدة أو أكثر، مع إعداداتها وإحصائياتها الخاصة.
- موصل المصدر / المستمع: MLLP (TCP مع تأطير لـ HL7 v2)، نقاط نهاية HTTP(S)، SFTP واستطلاع الملفات، استعلامات قواعد البيانات، JMS أو قوائم انتظار أخرى، DICOM في بعض المنتجات.
- عامل التصفية: قاعدة تقرر ما إذا كانت الرسالة ستستمر (فقط ADT^A01 لهذه الفئة من المرضى).
- المحول: نصوص برمجية أو تعيينات تغير الرسالة: إعادة تسمية الحقول، تعيين الرموز المحلية إلى LOINC عبر جدول بحث، بناء FHIR Observation من مقطع OBX، إضافة مقطع Z يتوقعه نظام قديم.
- موصل الوجهة: حيث تذهب النتيجة، مع بروتوكولها الخاص ومعالجة الأخطاء.
- قائمة الانتظار وإعادة المحاولة: تظل الرسائل محفوظة حتى يتم الاعتراف بها؛ يتم إعادة محاولة حالات الفشل مع تراجع تدريجي؛ تقع الرسائل السامة في قائمة انتظار أخطاء للبشر.
- المراقبة والتنبيه: عدادات لكل قناة، زمن الاستجابة، معدلات الخطأ، تنبيهات عندما تصبح القناة صامتة (التنبيه الأكثر فائدة في تكامل الرعاية الصحية).
- التدقيق: من قام بتغيير أي قناة، وتاريخ الرسائل لاستكشاف الأخطاء وإصلاحها، مع الاحتفاظ بالبيانات وضوابط الوصول لأنها بيانات مريض.
المهام النموذجية
تشمل المهام النموذجية لمحرك واجهات الرعاية الصحية توزيع رسائل ADT من نظام معلومات المستشفى (HIS) إلى الأقسام، وتوجيه نتائج المختبر إلى عدة مستلمين، وترجمة الرموز المحلية إلى LOINC و ATC و UCUM، وربط تنسيقات HL7 v2 و FHIR و CDA و CSV، وعرض واجهة FHIR فوق قاعدة بيانات قديمة، وتطبيع تغذيات الأجهزة، وتكييف MLLP داخليًا مع HTTPS خارجيًا.
- توزيع ADT: استقبال حالات القبول من نظام معلومات المستشفى (HIS)، التصفية والترجمة حسب القسم، التسليم للمختبر، الأشعة، الصيدلية، إدارة الأسرة، وبوابة المرضى.
- توجيه النتائج: ORU من نظام معلومات المختبر (LIS) إلى السجل الصحي الإلكتروني (EHR)، إلى نظام الطبيب المعالج، إلى السجل الإقليمي، إلى سجل FHIR للمريض، كل منها بمجموعة فرعية وتنسيق مختلف.
- ترجمة الرموز: رموز الاختبارات المحلية إلى LOINC، رموز الأدوية المحلية إلى ATC، وحدات النص الحر إلى UCUM، من خلال جداول بحث مُصانة (تعيين رموز المختبر إلى LOINC).
- جسر التنسيق: HL7 v2 إلى FHIR والعكس، CDA إلى FHIR، CSV من نظام قديم إلى أي شيء.
- واجهة FHIR: يكشف المحرك عن نقاط نهاية FHIR ويجيب عليها عن طريق الاستعلام من قاعدة البيانات القديمة أو إرسال استعلامات v2، بحيث ترى التطبيقات خادم FHIR حيث لا يوجد واحد.
- تكامل الأجهزة: تغذية أجهزة المراقبة الخاصة يتم تطبيعها إلى ملاحظات IHE PCD.
- تكييف البروتوكول: MLLP داخل المبنى، HTTPS مع OAuth للخارج.
اختيار واحد
يعتمد اختيار محرك الواجهات على ستة معايير: حجم الرسائل ومدى أهمية زمن الاستجابة والانقطاعات، والبروتوكولات والمعايير المدعومة بشكل مباشر (HL7 v2 و FHIR R4 و DICOM والتنسيقات الوطنية)، وتجربة المطور، والعمليات مثل التجميع والتحويل الفاشل، وشروط الترخيص، التي تغيرت لبعض المنتجات في عام 2025، والمهارات المتاحة لصيانة القنوات.
- الحجم والأهمية: الرسائل في اليوم، زمن الاستجابة المقبول، وما إذا كان انقطاع لمدة دقيقتين مهمًا (وهو كذلك بالنسبة لـ ADT والنتائج).
- البروتوكولات والمعايير الجاهزة: إصدارات HL7 v2 والمحللات، دعم FHIR R4 مع التحقق، DICOM، X12 في الولايات المتحدة، التنسيقات الوطنية.
- تجربة المطور: لغة البرمجة النصية (JavaScript في Mirth، خاصة في الآخرين)، التحكم في الإصدار لتعريفات القنوات، أدوات الاختبار، النشر على بيئات متعددة.
- العمليات: التجميع، تجاوز الفشل، تكاملات المراقبة، مسار الترقية، نموذج الدعم.
- الترخيص: إصدارات مفتوحة المصدر أو مجتمعية، اشتراك لكل قناة أو لكل نواة، عروض سحابية مُدارة؛ تغير ترخيص بعض المنتجات التي كانت مفتوحة المصدر تاريخيًا في عام 2025، لذا تحقق من الشروط الحالية.
- المهارات المتاحة: المحرك لا يكون جيدًا إلا بقدر الأشخاص الذين يقومون بصيانة القنوات.
تشغيل واحد بأمان
يعني تشغيل محرك الواجهات بأمان معاملة تعريفات القنوات كتعليمات برمجية تحت التحكم في الإصدار، والاختبار برسائل اصطناعية قبل الإنتاج، وإدارة جداول البحث عن التعليمات البرمجية مع مالكين محددين، والتنبيه عند توقف قناة عن العمل، وتقييد وتنقية سجل الرسائل لأنه بيانات للمرضى، وتوثيق الغرض من كل قناة، وعدم السماح للمحرك أبدًا بأن يصبح نظام السجل.
عامل تعريفات القنوات كـ تعليمات برمجية: في التحكم في الإصدار، تمت مراجعتها، وتم نشرها عبر الاختبار والمرحلة التجريبية باستخدام رسائل اصطناعية. احتفظ بـ جداول البحث (خرائط الرموز) تحت الإشراف مع أصحابها. قم بتعيين تنبيهات على الصمت، وليس فقط على الأخطاء. قم بتقييد الوصول إلى سجل الرسائل، وهو بيانات مريض ويجب حمايته وحذفه. وثق الغرض من كل قناة وصاحبها؛ القناة غير الموثقة هي التي توقف قسمًا عندما يغادر مؤلفها. ولا تسمح أبدًا بأن يصبح المحرك هو نظام السجل: فهو ينقل ويحول البيانات، ولا يمتلكها.
عندما لا تحتاج إليه
لا يلزم وجود محرك واجهات عندما تتحدث جميع الشركاء في نظام جديد بلغة FHIR، وفي هذه الحالة يغطي خادم FHIR مع الاشتراكات (Subscriptions) وبوابة واجهة برمجة التطبيقات (API gateway) التوجيه والمصادقة، أو عندما يمكن التعامل مع واجهة HL7 v2 واحدة بواسطة مكتبة مثل HAPI HL7v2 أو hl7apy. يكتسب المحرك مكانه مع العديد من الأنظمة والتنسيقات.
نظام جديد تمامًا يتحدث فيه جميع الشركاء لغة FHIR يمكنه استخدام خادم FHIR مع الاشتراكات (Subscriptions) و بوابة API للمصادقة، تحديد المعدل، والتوجيه، مع التحويلات في الخدمات العادية. يمكن التعامل مع واجهة HL7 v2 واحدة بواسطة مكتبة صغيرة (HAPI HL7v2 في Java، hl7apy أو python-hl7 في Python) داخل التطبيق. يكتسب المحرك مكانه عندما تكون هناك أنظمة متعددة، وتنسيقات متعددة، والحاجة إلى وحدة تحكم عمليات يمكن لغير المطورين مراقبتها.
في Anpheros
منصة Anpheros تقع على جانب FHIR من المحرك: تقوم المستشفيات بتوجيه التدفقات التي ترغب في مشاركتها (النتائج، المستندات، اللقاءات) إليها عبر محركها أو عبر موصل المختبر، وتقرأ مرة أخرى عبر واجهات برمجة تطبيقات FHIR و webhooks. يعرض موقع المطور تعيين HL7 v2 إلى FHIR الذي يطبقه الموصل.
صفحات ذات صلة
- تكامل أنظمة المستشفيات مشروحًا
- كيفية دمج نظام مختبر مع سجل صحي إلكتروني
- رسائل HL7 v2 مشروحة: ADT و ORU
- كيفية تعيين رموز المختبر المحلية إلى LOINC
- اشتراكات FHIR مشروحة
- تعيين HL7 v2 إلى FHIR (موقع المطور)
مصادر
- NextGen Connect (Mirth Connect)
- Rhapsody Integration Engine
- InterSystems IRIS for Health
- Infor Cloverleaf
- مكتبة HAPI HL7v2
- دليل تنفيذ HL7 v2 إلى FHIR
الأسئلة الشائعة
هل محرك الواجهة هو نفسه ESB أو iPaaS؟
نفس العائلة، ولكن متخصص: يأتي محرك الواجهة مزودًا بدعم HL7 v2، DICOM، CDA، و FHIR، و MLLP، ومراقبة خاصة بالرعاية الصحية، وتكامل المفردات الذي تستخدمه فرق العمل. يمكن لمنتجات ESB و iPaaS العامة القيام بالمهمة بمزيد من البناء.
هل يمكن للمحرك تحويل HL7 v2 إلى FHIR تلقائيًا؟
تتضمن العديد من المحركات تعيينات بناءً على دليل HL7 v2 إلى FHIR، وهي تتعامل مع المقاطع الشائعة. تتطلب الاتفاقيات المحلية، ومقاطع Z، وتعطيل الرموز دائمًا عملًا خاصًا بالمشروع.
هل يخزن المحرك بيانات المرضى؟
يقوم بتخزين الرسائل أثناء النقل ويحتفظ بسجل الرسائل لاستكشاف الأخطاء وإصلاحها، وهي بيانات مريض ويجب حمايتها وحذفها. لا ينبغي استخدامه كمخزن طويل الأجل أو كنظام سجل.
مفتوح المصدر أم تجاري؟
كلاهما قيد الإنتاج في المستشفيات الكبيرة. يعتمد القرار عادةً على الدعم، والمهارات، واحتياجات التجميع، وشروط الترخيص الحالية، التي تغيرت لبعض المنتجات؛ تحقق قبل الالتزام.
جرّبه مجانًا في بيئة الاختبار
أول طلب FHIR خلال 5 دقائق. واجهة برمجة تطبيقات HL7 FHIR R4 مع موافقة المريض مدمجة: جربها في بيئة الاختبار، ثم اربط تطبيقك الخاص أو نظام عيادتك.
مجاني · 30 مريضًا اصطناعيًا · دون بطاقة

