«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > HLHealth седьмой уровень)

HLHealth седьмой уровень)

Опубликовано 2 ноября 2024 г.
Просматривать:167

HLHealth Level Seven)

HL7, также известный как Health Level 7, представляет собой стандарт обмена сообщениями и клинических стандартов, используемый для интеграции, обмена, управления и поиска электронной информации в различных системах здравоохранения. Это протокол, основанный на транзакциях, которые инициируются событиями, такими как поступление пациента в больницу. HL7 облегчает обмен информацией в области общественного здравоохранения.

Это широко признанный международный стандарт обмена данными в секторе здравоохранения, независимый от используемой платформы и технологии.

Зачем использовать HL7?

В системах здравоохранения обычно используются разные приложения, разработанные на разных языках программирования и обладающие разнообразным функционалом. Например, в больницах часто используются сложные, индивидуально адаптированные системы, а врачи общей практики часто используют готовое программное обеспечение для управления практикой. Медицинские научно-исследовательские институты, со своей стороны, могут использовать программное обеспечение, являющееся частью более крупной сети, например сети университета. Во многих случаях этим учреждениям необходимо обмениваться данными о пациентах.

Цель HL7 — предоставить организациям здравоохранения возможность генерировать согласованные данные, доступные любому уполномоченному лицу, независимо от используемой ими системы. Взаимодействие между организациями здравоохранения требует, чтобы интерфейсы различных систем использовали общий протокол, такой как HL7.

Кто использует HL7?

  • Больницы
  • Центры медицинской визуализации
  • Врачи
  • Государственные клиники
  • Лаборатории
  • Резиденции
  • Аптеки и др.

Типы сообщений HL7

  • ACK — Общее признание
  • ADT — Прием, выписка и перевод пациентов
  • BAR — создание/изменение платежного аккаунта
  • DFT — Подробная финансовая операция
  • МДМ — Управление медицинской документацией
  • MFN — Уведомление об основном файле
  • ОРМ — Заказ (Аптека/лечение)
  • ORU — Результат наблюдения (незапрошенный)
  • QRY — Запрос, исходный режим
  • РАН — Аптека/организация лечения
  • RDE — кодированный заказ на аптеку/лечение
  • РГВ — Аптека/организация лечения
  • 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: в методе 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, включая информацию об отправляющем приложении, принимающем приложении и сведениях о пациенте.

generateHL7Message: этот метод создает сообщение HL7, используя предоставленные поля, и форматирует их в стандартном формате HL7. Здесь генерируются два сегмента: MSH (заголовок сообщения)

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/fullsnacker/hl7-health-level-seven-1738?1. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3