MedConnect

دليل تكامل MedConnect لنظام المعلومات المخبرية

توثيق واجهة البرمجة ومرجع التكامل — الإصدار 2.0.0

لمزوّدي أنظمة المعلومات المخبرية ونظم معلومات المستشفيات

يوفر هذا الدليل كل ما تحتاجه لربط نظام المعلومات المخبرية (LIS) أو نظام معلومات المستشفيات (HIS) مع MedConnect.

Sham Software Consultancy — 2026

1. نظرة عامة والمصادقة

1.1 ما هو MedConnect؟

MedConnect هو محرك تنسيق يربط أجهزة المختبر الطبية (المحللات) بأنظمة المعلومات المخبرية (LIS/HIS) بتجريد تعقيد بروتوكولات الأجهزة خلف واجهات API بسيطة. يتولى ترجمة البروتوكولات، وربط الاختبارات، وتوجيه الطلبات، وتسليم النتائج، وإعادة المحاولة التلقائية — بحيث لا تحتاج أنظمة HIS/LIS أبداً لفهم ASTM أو HL7 أو البروتوكولات الخاصة مباشرة.

1.2 تدفق الاتصال

يتبع التكامل سير عمل ثلاثي المراحل بغض النظر عن الوضع:

MedConnect Communication Flow
MedConnect End-to-End Sequence

1.3 المصادقة

مصادقة Bearer Token

يدعم MedConnect مصادقة Bearer token اختيارياً. عند التفعيل، يضمّن MedConnect الرمز في كل طلب:

POST /api/orders HTTP/1.1
Authorization: Bearer <your-token-here>
Content-Type: application/json
الإعدادمطلوبالوصف
Bearer Tokenلارمز ثابت يُرسل في ترويسة Authorization
إذا تُرك حقل Bearer Token فارغاً، لن يُرسل MedConnect ترويسة Authorization.

ترويسات الطلب المخصصة

يُرسل MedConnect الترويسات التالية مع كل طلب لتتبع المعاملات:

الترويسةالوصف
X-Request-IDمعرّف فريد لكل طلب (لربط السجلات)
X-Request-Timestampطابع زمني UTC لوقت إنشاء الطلب
X-Expected-Sampleرقم العينة المطلوب الاستعلام عنه (في طلبات الطلبات فقط)
Content-Typeapplication/json
Acceptapplication/json

1.4 سلوك إعادة المحاولة

يطبق MedConnect منطق إعادة المحاولة للتعامل مع الأعطال المؤقتة:

السيناريوعدد المحاولاتاستراتيجية التراجع
استرجاع الطلباتحتى 3 محاولاتخطي: 100ms × رقم المحاولة
أخطاء HTTP العابرة (5xx، مهلة)محاولتان إضافيتانأسي: 2^n ثانية
إرسال النتائج واسترجاع الاختبارات يستخدمان محاولة واحدة. تأكد من موثوقية نقاط النهاية الخاصة بك.

2. مرجع REST API

يوثق هذا القسم REST API الذي يجب على مزود LIS/HIS تنفيذه. يعمل MedConnect كعميل HTTP ويستدعي نقاط النهاية هذه.

جميع نقاط النهاية تستخدم HTTP POST مع حمولات JSON.

2.1 ملخص نقاط النهاية

#اسم نقطة النهايةالغرضمطلوب
1اختباراتاسترجاع اختبارات LIS المتاحة للربطنعم
2طلباتاسترجاع تفاصيل الطلب حسب رقم العينةنعم
3نتائجإرسال نتائج الاختباراتنعم
4معالجةإعلام LIS بمعالجة الطلبلا

2.2 Tests API

يستخدمها MedConnect للبحث واسترجاع كتالوج اختبارات LIS. يتيح ذلك ربط أكواد اختبارات الأجهزة بأكواد اختبارات LIS.

الطلب

POST <LabTestsAPI URL>
Content-Type: application/json
Authorization: Bearer <token>
الحقلالنوعمطلوبالوصف
Namestringلافلتر بحث باسم الاختبار (تطابق جزئي)
Codestringلافلتر بحث بكود الاختبار (تطابق جزئي)
{"Name": "", "Code": "cbc"}

الاستجابة

الحقلالنوعمطلوبالوصف
IDstringنعممعرّف اختبار LIS الفريد
Namestringنعماسم الاختبار المقروء
Codestringنعمكود اختبار LIS
Typestringلانوع العينة لهذا الاختبار
{"tests": [{"ID": "101", "Name": "COMPLETE BLOOD COUNT (CBC)", "Code": "CBC", "Type": "EDTA Whole Blood"}]}

2.3 Orders API

يستخدمها MedConnect لاسترجاع تفاصيل الطلب لعينة محددة. يُرسل MedConnect هذا الطلب عندما يمسح جهاز ما باركود.

POST <TransactionInfoAPI URL>
Content-Type: application/json
X-Request-ID: <unique-uuid>
X-Expected-Sample: <sample-number>
الحقلالنوعمطلوبالوصف
SampleNumberstringنعمرقم الباركود/العينة المطلوب البحث عنها
allTestsstringلاأرسل "1" لاسترجاع جميع الاختبارات. مناسب فقط عند استخدام Processed API.
{"SampleNumber": "2071720201"}
يجب أن يتطابق SampleNumber في الاستجابة مع SampleNumber في الطلب. إذا اختلفا، سيرفض MedConnect الاستجابة ويعيد المحاولة.

2.4 Results API

يستخدمها MedConnect لإرسال نتائج الاختبارات المكتملة إلى LIS.

POST <ResultAPI URL>
Content-Type: application/json
الحقلالنوعمطلوبالوصف
SampleNumberstringنعمرقم العينة التي تنتمي لها النتيجة
TestCodestringنعمكود اختبار LIS
SubTestCodestringلاكود الاختبار الفرعي (مستخدم في لوحات الفحوصات)
Resultstringنعمقيمة نتيجة الاختبار
{"results": [{"SampleNumber": "2071630101", "TestCode": "15/11012", "SubTestCode": "", "Result": "36.19"}]}

2.5 Processed API (اختياري)

يستخدمها MedConnect لإعلام LIS بأن الطلب قد تم استلامه ومعالجته بواسطة الجهاز. يتيح ذلك لـ LIS تتبع حالة الطلب ومنع المعالجة المكررة.

POST <OrderCompletedAPI URL>
Content-Type: application/json
الحقلالنوعمطلوبالوصف
SampleNumberstringنعمرقم عينة الطلب المعالج
Testsstringنعمسلسلة JSON لمصفوفة معرّفات الاختبارات التي تمت معالجتها
{"SampleNumber": "2071720201", "Tests": "[\"100\",\"102\",\"300\"]"}

2.6 خادم API المحلي (دفع وارد)

يمكن لـ MedConnect تشغيل خادم HTTP محلي لاستقبال دفع الطلبات من LIS. هذا مفيد لأنظمة LIS التي تفضل دفع الطلبات بدلاً من انتظار MedConnect للاستقصاء.

POST http://<LocalAPIAddress>:<LocalAPIPort>/api/getSampleData
Content-Type: application/json
الحالةالشرط
422بيانات الطلب مفقودة أو فارغة
404مسار غير معروف
405طريقة HTTP خاطئة (فقط POST مقبول)
500خطأ داخلي في الخادم
يتطلب خادم API المحلي صلاحيات مسؤول للتشغيل والربط بالعنوان/المنفذ المحدد.

2.7 معالجة الأخطاء

تنسيق استجابة الخطأ HTTP

عندما يُرجع LIS خطأ، يتوقع MedConnect بنية JSON التالية:

{"message": "Description of what went wrong", "errors": ["Detailed error 1"]}

رموز حالة HTTP

الرمزالمعنىسلوك MedConnect
200نجاحمعالجة الاستجابة بشكل طبيعي
400طلب خاطئفشل مع رسالة خطأ
401غير مصرحفشل (تحقق من Bearer token)
404غير موجودفشل — عنوان URL خاطئ
408مهلة الطلبإعادة محاولة (حتى محاولتين إضافيتين)
5xxخطأ خادمإعادة محاولة مع تراجع أسي
الأخطاء العابرة (5xx، 408) تؤدي إلى إعادة محاولة تلقائية مع تراجع أسي. الأخطاء غير العابرة (4xx) تفشل فوراً.

3. البيانات المرجعية

يحدد هذا القسم جداول الأكواد والقوائم والقواميس المستخدمة عبر MedConnect API.

3.1 أنواع العينات

القيمةالوصف
EDTAدم كامل مع EDTA
Serumمصل (دم متخثر، بدون مضاد تخثر)
Plasmaبلازما (هيبارين، سيترات، إلخ)
Urineعينة بول
CSFسائل نخاعي
Whole bloodدم كامل (بدون مضاد تخثر)
Otherأخرى / غير محدد

3.2 ربط الاختبارات

ربط الاختبارات هو عملية ربط أكواد اختبارات LIS بأكواد اختبارات الأجهزة. هذه خطوة إعداد حاسمة.

مخطط ربط الاختبارات

عملية الربط:

  1. MedConnect يستدعي Tests API لاسترجاع كتالوج اختبارات LIS
  2. يربط المشرف كل اختبار LIS باختبار الجهاز المقابل في واجهة MedConnect
  3. يُخزَّن هذا الربط داخلياً ويُستخدم لتحويل أكواد اختبارات LIS إلى أكواد اختبارات الأجهزة والعكس

4. أمثلة وسير العمل

4.1 أمثلة API تفاعلية — مجموعة Postman

مجموعة Postman كاملة وجاهزة للاستخدام مقدمة مع هذا المستند:

ملف: MedConnect_LIS_API.postman_collection.json

تتضمن المجموعة كل نقطة نهاية API مع أمثلة واقعية للطلبات والاستجابات، وترويسات المصادقة، ومتغيرات البيئة.

4.2 سير عمل التكامل الكامل

يتبع التكامل من طرف إلى طرف أربع خطوات متسلسلة:

  1. ربط الاختبارات — استرجاع كتالوج الاختبارات: يستدعي MedConnect Tests API لاسترجاع كتالوج اختبارات LIS، ثم يربط المشغل كل اختبار LIS باختبار الجهاز المقابل.
  2. استرجاع الطلب — الحصول على الطلب بواسطة الباركود: عند مسح جهاز لباركود، يستعلم MedConnect من LIS عن تفاصيل الطلب.
  3. إرسال النتائج — إرسال النتائج إلى LIS: بعد اكتمال الاختبار على الجهاز، يُرسل MedConnect النتائج إلى LIS.
  4. وضع علامة معالجة (اختياري): إعلام LIS بأن الطلب قد تم استلامه ومعالجته بواسطة الجهاز.
تسلسل التكامل من طرف إلى طرف