سؤال

أحاول استخدام هابي لتحليل الرسائل HL7 (v2.3) التي تم إنشاؤها بواسطة نظام خارجي. تتضمن هذه الرسائل شرائح Z مخصصة ، بما في ذلك الجزء الثاني من الرسالة (بين MSH و EVN).

MSH
Z
EVN
...

المشكلة هي أنه بالنسبة لأي شرائح يتم تحليلها بعد مواجهة هذا الجزء الأول Z ، ستقوم HAPI بإنشاء بنية الرسائل ولكن جميع البيانات في هذا الهيكل فارغة. لذلك ، لا يزال لدي كائن قطاع EVN ، لكن لن يحتوي على أي بيانات فيه.

لقد حاولت:

  • لا شيء ، فقط تحليل الرسالة مع Hapi خارج الصندوق ، وتجاهل هذا الجزء
  • تمديد HAPI عن طريق إنشاء فئات رسائل ADT الخاصة بي (تمديد الفئات الافتراضية) التي تواصل في قطاع Z مع:
    • addnonstandardSegment ()
    • إضافة () مع تنفيذ مخصص لـ AsstractSegress

الحل الحالي هو التخلص من الرسالة قبل أن يحصل عليها Hapi وقطع هذا الجزء ، ولكن هذا بالتأكيد هو النهج الخاطئ. هل لدى أي شخص أفكار حول ما يجب أن أفعله؟

هل كانت مفيدة؟

المحلول

فهمتك. اتضح أنه بسبب القطعة Z خارج المكان (المزيد على هذا أدناه) ، كان كائن EVN يتم فهرسته داخليًا على أنه "EVN2" وتم إضافة EVN فارغًا ثانٍ. لست متأكدًا تمامًا لماذا تصرف الرمز بهذه الطريقة ، لكنني سأخذ ذلك في تقرير قضية في مشروع HAPI.

الحل هو تغيير تمديد رسالة ADT. بدلاً من توسيعه وإضافة الجزء z مع هذا. add () في مُنشئ الفئة الفرعية الخاصة بي ، اضطررت إلى نسخ فئة ADT_A* الأصلية وتعديل طريقة init () لإضافة فئة Z في الترتيب الصحيح مثل المتوقع رسالة.

راجع للشغل ، يمكن القيام الحل السابق الذي ذكرته مع أ المحلل الفرعي, ، وهو أمر صالح لإصلاح الرسائل المكسورة - وليس فقط هذه الرسائل ، لأنها ليست "مكسورة" في حد ذاتها.

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