← يتطلب: محرك التكامل التكامل متقدم ⏱ 5 ساعات الدورة 15

إدارة تدفقات المراسلة

Messaging Architecture

🎯 أهداف التعلم

1فهم بنية المراسلة
2إدارة قوائم الانتظار
3تصميم مسارات معقدة
4مراقبة التدفق

01 بنية المراسلة

إدارة الرسائل بشكل فعال أمر أساسي.

Class MyApp.Message.Request Extends Ens.Request {
  Property MessageType As %String;
  Property Payload As %Stream.GlobalCharacter;
  Property Priority As %Integer;
}

02 Message Routing المتقدم

توجيه الرسائل بشكل ذكي أمر أساسي للأنظمة المتكاملة.

// Rule Engine لتوجيه الرسائل
Class MyApp.RoutingRule Extens Ens.Rule.Definition {
  XData RuleDefinition {
    
      
        
          
          
        
        
          
        
        
          
        
      
    
  }
}
03

معالجة رسائل الخطأ وإعادة المحاولة

معالجة رسائل الخطأ بشكل فعال أمر ضروري لموثوقية النظام.

// معالجة رسائل الخطأ
Class Hospital.Messaging.ErrorHandler
{
    ClassMethod HandleError(msgId As %String, error As %String)
    {
        // تسجيل الخطأ
        Set log = ##class(Hospital.Models.ErrorLog).%New()
        Set log.MessageId = msgId
        Set log.ErrorMessage = error
        Set log.Timestamp = $HOROLOG
        Set log.Status = "pending"
        Do log.%Save()
        
        // إعادة المحاولة بعد انتظار
        Job ..RetryAfterDelay(msgId, 30)
    }
    
    ClassMethod RetryAfterDelay(msgId As %String, delay As %Integer)
    {
        Hang delay
        Set sc = ##class(Ens.MessageHeader).ResendMessage(msgId)
        If $$$ISERR(sc) {
            // تسجيل فشل إعادة المحاولة
            &sql(UPDATE Hospital.Models.ErrorLog SET Status = 'failed' WHERE MessageId = :msgId)
        }
    }
    
    // تنظيف رسائل الخطأ القديمة
    ClassMethod PurgeErrors(days As %Integer = 30)
    {
        Set cutoff = $HOROLOG - days
        &sql(DELETE FROM Hospital.Models.ErrorLog WHERE Timestamp < :cutoff)
        Write "تم حذف ", %ROWCOUNT, " رسالة خطأ قديمة", !
    }
}

📝 اختبار التحقق

1. لماذا نحتاج إدارة مراسلة متقدمة؟

تضمن تسليم الرسائل بشكل موثوق حتى عند الأخطاء

ما هو Rule Engine في محرك التكامل؟

Rule Engine يطبق قواعد محددة لتوجيه الرسائل إلى وجهاتها المناسبة

ما هي أنواع رسائل HL7 الرئيسية؟
💡 الشرح

HL7 يدعم أنواع رسائل كثيرة: ADT (adm/discharge), ORM (orders), ORU (results), MDM (docs), SIU (scheduling)

💡 النقاط الرئيسية

  • IRIS يدعم المراسلة المتزامنة وغير المتزامنة
  • Routing Rules تحدد معالجة الرسائل بناءً على محتواها
  • Message Queues تدير الرسائل المعلقة والفاشلة
  • نمط Pub/Sub يتيح إرسال أحداث لعدة مشتركين
  • يمكنك تنظيف الرسائل القديمة تلقائياً