"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > HLHealth المستوى السابع)

HLHealth المستوى السابع)

تم النشر بتاريخ 2024-11-02
تصفح:980

HLHealth Level Seven)

HL7، المعروف أيضًا باسم المستوى الصحي 7، هو معيار للمراسلة والمعايير السريرية يستخدم لتكامل المعلومات الإلكترونية وتبادلها وإدارتها واسترجاعها في الأنظمة الصحية المختلفة. وهو عبارة عن بروتوكول يعتمد على المعاملات التي تنشأ عن أحداث، مثل دخول المريض إلى المستشفى. HL7 يسهل تبادل المعلومات في مجال الصحة العامة.

هذا معيار دولي مقبول على نطاق واسع لتبادل البيانات في القطاع الصحي، كونه مستقلاً عن المنصة والتكنولوجيا المستخدمة.

لماذا استخدام HL7؟

عادةً ما تستخدم أنظمة الرعاية الصحية تطبيقات مختلفة، تم تطويرها بلغات برمجة مختلفة وبوظائف متنوعة. على سبيل المثال، غالبًا ما يكون لدى المستشفيات أنظمة معقدة ومخصصة، بينما يستخدم الممارسون العامون غالبًا برامج إدارة الممارسات الجاهزة. وقد تستخدم معاهد البحوث الطبية، من جانبها، برامج تشكل جزءًا من شبكة أكبر، مثل شبكة الجامعة. وفي العديد من المناسبات، تحتاج هذه المؤسسات إلى تبادل البيانات حول المرضى.

الغرض من HL7 هو تمكين مؤسسات الرعاية الصحية من إنشاء بيانات متسقة، يمكن لأي شخص مرخص له الوصول إليها، بغض النظر عن النظام الذي يستخدمه. تتطلب قابلية التشغيل البيني بين مؤسسات الرعاية الصحية أن تستخدم واجهات الأنظمة المختلفة بروتوكولًا مشتركًا مثل HL7.

من يستخدم HL7؟

  • المستشفيات
  • مراكز التصوير الطبي
  • الأطباء
  • العيادات الحكومية
  • المختبرات
  • المساكن
  • الصيدليات وغيرها

أنواع رسائل HL7

  • ACK — شكر عام
  • ADT — قبول المريض وخروجه ونقله
  • الشريط — إنشاء/تغيير حساب الفوترة
  • DFT — معاملة مالية مفصلة
  • MDM — إدارة المستندات الطبية
  • MFN — إشعار الملف الرئيسي
  • ORM — الطلب (صيدلية/علاج)
  • ORU — نتيجة المراقبة (غير مرغوب فيها)
  • QRY — الاستعلام، الوضع الأصلي
  • RAS — الصيدلة/إدارة العلاج
  • RDE — طلب مشفر للصيدلة/العلاج
  • RGV — الصيدلة/إدارة العلاج
  • SIU — معلومات جدولة غير مرغوب فيها

رسائل ADT الأكثر شيوعًا:

  • ADT-A01: قبول المريض.
  • ADT-A02: نقل المريض.
  • ADT-A03: خروج المريض.
  • ADT-A04: تسجيل المريض.
  • ADT-A05: القبول المسبق للمريض.
  • ADT-A08: تحديث معلومات المريض.
  • ADT-A11: إلغاء قبول المريض.
  • ADT-A12: إلغاء نقل المريض.

كيف يتم نقل رسائل HL7؟

بشكل عام، يتم إرسال رسائل HL7 باستخدام بروتوكول TCP/IP عبر شبكة محلية، مثل شبكة المستشفى. يتم إرسال بيانات TCP/IP كتدفق من البايتات، مما يسمح بإرسال رسائل متعددة في دفق مستمر. يمكن أن يسبب هذا ارتباكًا، لذا من الضروري تحديد نقطة البداية والنهاية لكل رسالة بوضوح. ولهذا الغرض، يتم استخدام بروتوكول الطبقة الدنيا الأدنى (MLP)، الذي يضيف رأسًا وتذييلًا لكل رسالة.

يشير الحد الأدنى من بروتوكول الطبقة السفلية (MLP) إلى بروتوكول أساسي يعمل في الطبقات السفلية من مكدس الشبكة، مثل الطبقة المادية أو طبقة ارتباط البيانات. يوفر الوظائف الأساسية اللازمة للاتصال بين أجهزة الشبكة، مع تحديد كيفية تغليف رسالة HL7 برأس وتذييل لضمان تحديد بداية ونهاية كل رسالة، وكذلك بداية الرسالة التالية، بشكل صحيح.

مثال أساسي لبرنامج Java الذي يأخذ رسالة HL7، ويحفظها في كائن، ثم يطبع تفاصيلها على وحدة التحكم:

public class HL7Message {
    private String message;

    public HL7Message(String message) {
        this.message = message;
    }

    public String getMessageType() {
        return message.split("\\|")[8];
    }

    public String getPatientID() {
        return message.split("\\|")[3];
    }

    public String getPatientName() {
        return message.split("\\|")[5];
    }

    public void printDetails() {
        System.out.println("HL7 Message Details:");
        System.out.println("Message Type: "   getMessageType());
        System.out.println("Patient ID: "   getPatientID());
        System.out.println("Patient Name: "   getPatientName());
    }

    public static void main(String[] args) {
        String hl7Message = "MSH|^~\\&|HIS|RIH|EKG|EKG|202308120830||ADT^A01|MSG00001|P|2.5|"
                            "PID|1||123456||DOE^JOHN^A||19680219|M|||123 MAIN ST^^ANYTOWN^OH^12345|(555)555-1234|||M|NON|||123-45-6789";

        HL7Message message = new HL7Message(hl7Message);
        message.printDetails();
    }
}

توضيح:

فئة HL7Message: تحتوي هذه الفئة على رسالة HL7 وتوفر طرقًا لاستخراج وعرض بعض التفاصيل الأساسية مثل نوع الرسالة ومعرف المريض واسم المريض.

getMessageType: تستخرج هذه الطريقة نوع الرسالة من HL7 (الحقل 9).

getPatientID: تستخرج هذه الطريقة معرف المريض (الحقل 4).

getPatientName: تستخرج هذه الطريقة اسم المريض (الحقل 6).

printDetails: هذه الطريقة تطبع تفاصيل رسالة HL7.

main: في الطريقة الرئيسية، يمكنك تحديد نموذج رسالة HL7، وإنشاء كائن HL7Message مع الرسالة، وطباعة التفاصيل.

هذا البرنامج أساسي ويتعامل فقط مع رسالة HL7 البسيطة جدًا. اعتمادًا على المتطلبات، قد تحتاج إلى تطبيق أكثر تقدمًا للتعامل مع البنية الكاملة لرسائل HL7.

برنامج Java الأساسي الذي يقوم بإنشاء رسالة HL7 من كائن HL7Message المعبأ مسبقًا:

public class HL7Message {
    private String sendingApplication;
    private String sendingFacility;
    private String receivingApplication;
    private String receivingFacility;
    private String messageDateTime;
    private String messageType;
    private String messageControlID;
    private String processingID;
    private String versionID;
    private String patientID;
    private String patientLastName;
    private String patientFirstName;
    private String patientDOB;
    private String patientGender;
    private String patientAddress;
    private String patientPhoneNumber;
    private String patientSSN;

    // Constructor
    public HL7Message(String sendingApplication, String sendingFacility, String receivingApplication,
                      String receivingFacility, String messageDateTime, String messageType,
                      String messageControlID, String processingID, String versionID, String patientID,
                      String patientLastName, String patientFirstName, String patientDOB, String patientGender,
                      String patientAddress, String patientPhoneNumber, String patientSSN) {
        this.sendingApplication = sendingApplication;
        this.sendingFacility = sendingFacility;
        this.receivingApplication = receivingApplication;
        this.receivingFacility = receivingFacility;
        this.messageDateTime = messageDateTime;
        this.messageType = messageType;
        this.messageControlID = messageControlID;
        this.processingID = processingID;
        this.versionID = versionID;
        this.patientID = patientID;
        this.patientLastName = patientLastName;
        this.patientFirstName = patientFirstName;
        this.patientDOB = patientDOB;
        this.patientGender = patientGender;
        this.patientAddress = patientAddress;
        this.patientPhoneNumber = patientPhoneNumber;
        this.patientSSN = patientSSN;
    }

    // Método para generar el mensaje HL7
    public String generateHL7Message() {
        StringBuilder hl7Message = new StringBuilder();

        // MSH Segment
        hl7Message.append("MSH|^~\\&|")
                  .append(sendingApplication).append("|")
                  .append(sendingFacility).append("|")
                  .append(receivingApplication).append("|")
                  .append(receivingFacility).append("|")
                  .append(messageDateTime).append("||")
                  .append(messageType).append("|")
                  .append(messageControlID).append("|")
                  .append(processingID).append("|")
                  .append(versionID).append("\r");

        // PID Segment
        hl7Message.append("PID|1||")
                  .append(patientID).append("||")
                  .append(patientLastName).append("^")
                  .append(patientFirstName).append("||")
                  .append(patientDOB).append("|")
                  .append(patientGender).append("|||")
                  .append(patientAddress).append("|")
                  .append(patientPhoneNumber).append("|||||||")
                  .append(patientSSN).append("\r");

        return hl7Message.toString();
    }

    public static void main(String[] args) {
        // Llenar los datos del objeto HL7Message
        HL7Message message = new HL7Message(
            "HIS",               // sendingApplication
            "RIH",               // sendingFacility
            "EKG",               // receivingApplication
            "EKG",               // receivingFacility
            "202308120830",      // messageDateTime
            "ADT^A01",           // messageType
            "MSG00001",          // messageControlID
            "P",                 // processingID
            "2.5",               // versionID
            "123456",            // patientID
            "DOE",               // patientLastName
            "JOHN",              // patientFirstName
            "19680219",          // patientDOB
            "M",                 // patientGender
            "123 MAIN ST^^ANYTOWN^OH^12345", // patientAddress
            "(555)555-1234",     // patientPhoneNumber
            "123-45-6789"        // patientSSN
        );

        // Generar y mostrar el mensaje HL7
        String hl7Message = message.generateHL7Message();
        System.out.println("Generated HL7 Message:\n"   hl7Message);
    }
}

توضيح:

فئة HL7Message: تحتوي هذه الفئة على الحقول الضرورية لرسالة HL7 البسيطة، بما في ذلك معلومات حول التطبيق المرسل، والتطبيق المتلقي، وتفاصيل المريض.

إنشاء رسالة HL7: تقوم هذه الطريقة بإنشاء رسالة HL7 باستخدام الحقول المتوفرة وتنسيقها بتنسيق HL7 القياسي. يتم إنشاء مقطعين هنا: MSH (رأس الرسالة)

بيان الافراج تم نشر هذه المقالة على: https://dev.to/fullsnacker/hl7-health-level-seven-1738?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3