Skip to main content
تحجز العيادات والمستشفيات مرضاها عادةً في نظامها المعتمد. ينسخ الربط مع نظام المواعيد كل حجز من ذلك النظام إلى HueChat، فتصل تذكيرات واتساب والنماذج والمتابعة إلى كل مريض، بمن فيهم مرضى الحضور المباشر ومن حُجز لهم قبل الموعد بدقائق. يعمل الربط بالطريقة نفسها مع نظام عيادة صغيرة ومع محرك التكامل في مستشفى يستخدم Oracle Health (Cerner) أو Epic أو InterSystems TrakCare. أرسل JSON عبر REST، أو أرسل موارد HL7 FHIR R4 من نوع Appointment.

خطوات الربط

1

يعتمد فريق HueChat الحساب

يتاح الربط مع أنظمة المواعيد للحسابات التي يعتمدها فريق HueChat أثناء التهيئة. وقبل ذلك تُرفض طلبات المزامنة بالرمز 403.
2

ينشئ مدير الحساب مفتاحًا للنظام

من HueChat ← الحساب ← واجهة المطور اختر القالب نظام المواعيد، وهو يمنح appointments:sync وappointments:read وcontacts:read. أنشئ مفتاحًا واحدًا لكل نظام وسلّمه لفريق دعم ذلك النظام.
3

يرسل النظام حجوزاته

يُحفظ كل حجز يرسله النظام كما هو فيه. وتعرض المواعيد ← إعدادات الحجز ← الربط مع نظام المواعيد آخر حجز مستلم وأي حجز تعذّر على HueChat حفظه.
لا يُعامل كنظام مواعيد إلا مفتاح REST API يحمل appointments:sync على حساب معتمد. ويُرفض تسجيل دخول الموظفين ورموز الوصول الشخصية، فلا تعمل المزامنة بصلاحيات حساب شخص كاملة، ولا تتوقف عند دخوله من جهاز آخر، ولا يظهر موظف واحد كمنشئ لكل الحجوزات.

ما يحفظه HueChat

يُحفظ الحجز القادم من الربط كما هو في النظام، مع source: "sync":
  • الزيارات السابقة وزيارات نفس اليوم والحضور المباشر، والأوقات خارج شبكة الفترات أو خارج ساعات العمل في HueChat
  • الأطباء أو الغرف أو الخدمات المؤرشفة
  • أي حالة من حالات الموعد
  • الحجز المزدوج المقصود، حين يستقبل الطبيب مريضين في الوقت نفسه
أما قنوات الحجز في HueChat (وكلاء الذكاء الاصطناعي والنماذج والموظفون) فلا تتداخل حجوزاتها أبدًا، وتتجنب الأوقات التي تشغلها الحجوزات المتزامنة. ولا يُنقل الحجز المتزامن إلا من النظام الذي يملكه، فلا يمكن سحبه إلى وقت آخر داخل HueChat. ولا تُعرض الأطباء والغرف التي أنشأها النظام على قنوات الحجز في HueChat، لأن HueChat لا يستطيع إعادة كتابة الحجز في ذلك النظام.

إرسال حجز

ينشئ PUT /appointments/external/{externalId} الحجز أو يحدّثه إلى النسخة المرسلة. استخدم معرّف الحجز في نظامك قيمةً لـexternalId.
يعيد الطلب الأول 201، وتعيد الطلبات اللاحقة 200 مع الترويسة X-HueChat-Sync-Result التي تبيّن ما حدث:

ترتيب التحديثات

أرسل source_updated_at، وهو آخر وقت عدّل فيه نظامك الحجز (meta.lastUpdated في FHIR وMSH-7 في HL7). وإذا وصلت الرسائل بغير ترتيبها تجاهل HueChat التحديث الأقدم مما لديه، فلا تعيد رسالة متأخرة الحجز إلى حالة سابقة. أما إعادة إرسال النسخة نفسها بوقت أحدث فتسجّل الوقت فقط.

الأطباء والغرف والخدمات

يطابق HueChat المورد والخدمة بهذا الترتيب:
  1. معرّف HueChat (resource_id وservice_id).
  2. رمزك الخاص (resource_code وservice_code)، مثل معرّف الطبيب أو الموقع أو الإجراء.
  3. الاسم (resource_name وservice_name) مع تجاهل حالة الأحرف والمسافات وعلامات الترقيم، فيطابق Dr.Sara Ali الاسم Dr. Sara Ali.
وعند وصول رمز جديد يضيف HueChat الطبيب أو الغرفة أو الخدمة إلى الدليل، فلا يحتاج مستشفى فيه مئات الأطباء إلى تهيئة يدوية. وإذا وصل رمز مع اسم معروف تذكّر HueChat الرمز لذلك السجل. أما الاسم الذي لا يطابق شيئًا ويصل بلا رمز فيُرفض.

المرضى

يربط HueChat الحجز بجهة اتصال موجودة عبر contact_id، ثم عبر patient_identifier (معرّف جهة الاتصال مثل رقم الملف الطبي)، ثم عبر رقم الجوال. وتُكمل البيانات الناقصة من جهة الاتصال تلك. لا تنشئ المزامنة جهات اتصال؛ أنشئ المرضى عبر واجهة جهات الاتصال مع رقم الملف قيمةً لـidentifier إذا كانت دعوات النماذج يجب أن تصل إليهم.

الحالات

يقبل HueChat حالاته الخاصة، وحالات Appointment.status في HL7 FHIR R4، ورموز حالة المنفّذ في HL7 v2 SIU: أضف cancellation_reason إلى الحجز الملغى للاحتفاظ بسبب الإلغاء في نظامك.

حذف حجز

يُبقي DELETE /appointments/external/{externalId}?reason=… الحجز في HueChat ملغى مع سجله. ويعيد المعرّف غير المعروف 204.

إرسال حجوزات كثيرة

يقبل POST /appointments/sync حتى 200 حجز، ويتبع كل عنصر قواعد الطلب المفرد ويجب أن يحمل external_id. يُحفظ كل حجز وحده، فلا يوقف حجز مرفوض بقية الحجوزات.
تعرض الاستجابة نتيجة لكل حجز بترتيب الطلب، مع مجاميع created وupdated وunchanged وstale وfailed.

المطابقة

يعرض GET /appointments/sync?start=…&end=… كل حجز له معرّف خارجي يبدأ في الفترة (حتى 31 يومًا) مرتبًا حسب وقت البدء، ويُستخدم next_cursor للصفحة التالية. قارنه بجدولك وأعد إرسال ما يختلف.

متابعة حالة الربط

يعيد GET /appointments/sync/status:
  • مفاتيح أنظمة المواعيد في الحساب ووقت آخر استخدام لكل منها
  • آخر وقت تغيّر فيه حجز متزامن، وعدد ما تغيّر خلال آخر 24 ساعة
  • الحجوزات التي رفضها HueChat إلى أن تنجح نسخة لاحقة منها
وتظهر المعلومات نفسها في المواعيد ← إعدادات الحجز. ولا تحفظ قائمة الأخطاء إلا المعرّف الخارجي ونص الخطأ، ولا تحفظ بيانات المرضى.

HL7 FHIR R4

تستطيع محركات التكامل التي تنتج FHIR R4 إرسال موارد Appointment كما هي: العنوان الأساسي هو https://app.huechat.ai/api/v2/accounts/{accountId}/fhir/R4. أضف ?source= باسم قصير للنظام المرسل، مثل ?source=oracle-main، حتى لا يتشارك نظاما FHIR في الحساب نفسه المعرّفات. ويصبح المعرّف الخارجي للحجز <source>:Appointment:<id>.
تعود الأخطاء على شكل موارد OperationOutcome. وهذه النقطة جزء من FHIR مخصص للكتابة، وليست خادم FHIR عامًا.

HL7 v2 SIU

وجّه رسائل SIU عبر محرك التكامل لديك، مثل Rhapsody أو Mirth أو InterSystems أو Cloverleaf، إلى نقطة REST أو FHIR: استخدم MSH-7 قيمةً لـsource_updated_at، وحالة المنفّذ في SCH قيمةً لـstatus.

قائمة التحقق الأمنية

  • خصص لكل نظام مفتاحًا مستقلًا، وقيّده بعناوين IP الخاصة بالنظام من واجهة المطور.
  • امنح appointments:sync وappointments:read وcontacts:read فقط.
  • دوّر المفتاح من واجهة المطور دون توقف، وألغِه عند إيقاف النظام.
  • أرسل ما تحتاجه التذكيرات والنماذج فقط، وأبعد التفاصيل السريرية عن notes.