mirth: الكتابة فوق كائن MSG مع محتويات في كائن XML

StackOverflow https://stackoverflow.com/questions/1916798

  •  20-09-2019
  •  | 
  •  

سؤال

المهمة هي إرسال كائن XML من القناة-إلى القناة-ب

<MyMessage>
<ID>42</ID>
<hl7v2>
    MSH|^~\&|LAB|....
    PID|1|....
</hl7v2>
</MyMessage>

خطوات اتصال القناة:

  • في محول مصدر القناة B، استخراج محتويات HL7V2
  • الكتابة فوق كائن MSG الحالي في قناة B مع المحتويات المستخرجة
  • تابع في محولات المصدر القناد الجوية الأخرى ويتوقع الرجوع إليها msg['PID']['PID.5'] كالطبيعي.

الأخبار الجيدة هي أنه يمكنني استخراج HL7V2 "الحمولة" في متغير. المشكلة أو الصعوبة هي إعادة تعيين msg كائن، أو أي كائن آخر لتتمكن من الرجوع إلى خصائص HL7 كما هو متوقع.

عندما أقوم بإنشاء متغير جديد مع SerializerFactory.getHL7Serializer, ، يلف مع العلامات <HL7Message>.

channelMap.put('MessageID', msg['ID']); //successful
channelMap.put('v2payload',msg['HL7v2']); //also looks good

var v2Msg = SerializerFactory.getHL7Serializer(false,false,true).toXML(msg['HL7v2']);

channelMap.put('v2Msg', v2Msg );

alt text رابط الصورة بالحجم الكامل

سؤال: هل لديك أي اقتراحات حول كيفية الكتابة فوق كائن MSG؟

كيف يمكنني البدء في الرجوع إلى MSG على هذا النحو:

msg['PID']['PID.5']

الحالات الحاضره أو حالات التيار

  • نوع إدخال القناة الاستقبال هو XML
  • الحاجة هي استخراج جميع الخصائص من كائن XML هذا؛ معرف هو قاعدة بيانات يتم استخدامها في وقت لاحق في الوجهة.
هل كانت مفيدة؟

المحلول

أنا آسف تم تجديد إجابتي الأصلية مع خصوصيات سيناريو الخاصة بي. لقد قمت بإعادة صياغة واختبارها للتأكد من أن هذا يعمل في السيناريو الخاص بك.

إرسال القناة - يلتف HL7 RAW في بنية XML الخاصة بك، وإعادة توجيهها إلى قناة تسمى CODECTXML. لقد ترميز هذا في محول المصدر، ولكن يجب عليك رميه حيث يعمل لك.

var wrappedHL7 = <MyMessage><ID>123</ID>
                      <hl7v2>{messageObject.getRawData()}</hl7v2>
                 </MyMessage>;

router.routeMessage("ReceiveXML", wrappedHL7);

تلقي القناة - مقتطفات HL7 من XML، وتحويلها إلى XML، وتعيين مرة أخرى إلى كائن MSG. لقد ترميز هذا في مرشح المصدر - وبالتالي "العودة TRUE؛"

msg = new XML(SerializerFactory.getHL7Serializer(false,false,true).toXML(msg['hl7v2'].toString()));
return true;

نصائح أخرى

كل ما عليك فعله هو وضع رسالتك XML الواردة في منطقة القالب الواردة في Mirth ثم استخدم شجرة الرسائل لسحب وإسقاط المعلومات من XML التي تحتاج إلى قسم JavaScript من الموصل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top