mirth: الكتابة فوق كائن MSG مع محتويات في كائن XML
سؤال
المهمة هي إرسال كائن 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 );
سؤال: هل لديك أي اقتراحات حول كيفية الكتابة فوق كائن 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 من الموصل.