"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > HLHealth niveau sept)

HLHealth niveau sept)

Publié le 2024-11-02
Parcourir:879

HLHealth Level Seven)

HL7, également connu sous le nom de Health Level 7, est une norme de messagerie et de normes cliniques utilisée pour l'intégration, l'échange, la gestion et la récupération d'informations électroniques dans différents systèmes de santé. Il s'agit d'un protocole basé sur des transactions déclenchées par des événements, tels que l'admission d'un patient dans un hôpital. HL7 facilite l'échange d'informations dans le domaine de la santé publique.

Il s'agit d'une norme internationale largement acceptée pour l'échange de données dans le secteur de la santé, indépendante de la plate-forme et de la technologie utilisées.

Pourquoi utiliser HL7 ?

Les systèmes de santé utilisent généralement différentes applications, développées dans différents langages de programmation et dotées de fonctionnalités variées. Par exemple, les hôpitaux disposent souvent de systèmes complexes et personnalisés, tandis que les médecins généralistes utilisent souvent des logiciels de gestion de cabinet disponibles dans le commerce. Les instituts de recherche médicale, quant à eux, peuvent utiliser des logiciels faisant partie d'un réseau plus large, comme celui d'une université. À de nombreuses reprises, ces institutions doivent échanger des données sur les patients.

L'objectif de HL7 est de permettre aux établissements de santé de générer des données cohérentes, accessibles à toute personne habilitée, quel que soit le système qu'ils utilisent. L'interopérabilité entre les établissements de santé nécessite que les interfaces des différents systèmes utilisent un protocole commun tel que HL7.

Qui utilise HL7 ?

  • Hôpitaux
  • Centres d'imagerie médicale
  • Médecins
  • Cliniques gouvernementales
  • Laboratoires
  • Résidences
  • Pharmacies, entre autres

Types de messages HL7

  • ACK — Accusé de réception général
  • ADT — Admission, sortie et transfert des patients
  • BAR — Création/modification d'un compte de facturation
  • DFT — Transaction financière détaillée
  • MDM — Gestion des documents médicaux
  • MFN — Notification de fichier principal
  • ORM — Commande (Pharmacie/traitement)
  • ORU — Résultat de l'observation (non sollicitée)
  • QRY — Requête, mode original
  • RAS — Pharmacie/administration des traitements
  • RDE — Ordre codé de pharmacie/traitement
  • RGV — Pharmacie/administration des soins
  • SIU — Informations de planification non sollicitées

Messages ADT les plus courants :

  • ADT-A01 : Admission du patient.
  • ADT-A02 : Transfert de patients.
  • ADT-A03 : Sortie du patient.
  • ADT-A04 : Enregistrement des patients.
  • ADT-A05 : Pré-admission du patient.
  • ADT-A08 : Mettre à jour les informations sur le patient.
  • ADT-A11 : Annulation de l'admission du patient.
  • ADT-A12 : Annulation du transfert du patient.

Comment sont transmis les messages HL7 ?

Généralement, les messages HL7 sont transmis à l'aide du protocole TCP/IP sur un réseau local, par exemple au sein d'un réseau hospitalier. Les données TCP/IP sont envoyées sous forme de flux d'octets, ce qui permet d'envoyer plusieurs messages dans un flux continu. Cela peut prêter à confusion, il est donc nécessaire de définir clairement le début et la fin de chaque message. Pour cela, le protocole MLP (Minimum Lower Layer Protocol) est utilisé, qui ajoute un en-tête et un pied de page à chaque message.

Le protocole MLP (Minimum Lower Layer Protocol) fait référence à un protocole de base qui fonctionne au niveau des couches inférieures de la pile réseau, telles que la couche physique ou la couche de liaison de données. Fournit les fonctions fondamentales nécessaires à la communication entre les périphériques réseau, en spécifiant comment envelopper un message HL7 avec un en-tête et un pied de page pour garantir que le début et la fin de chaque message, ainsi que le début du suivant, sont correctement identifiés.

Exemple de base d'un programme Java qui prend un message HL7, l'enregistre dans un objet, puis imprime ses détails sur la console :

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();
    }
}

Explication:

Classe HL7Message : cette classe contient le message HL7 et fournit des méthodes pour extraire et afficher certains détails de base tels que le type de message, l'ID du patient et le nom du patient.

getMessageType : Cette méthode extrait le type de message de HL7 (champ 9).

getPatientID : Cette méthode extrait l'ID du patient (champ 4).

getPatientName : Cette méthode extrait le nom du patient (champ 6).

printDetails : cette méthode imprime les détails du message HL7.

main : dans la méthode principale, vous définissez un exemple de message HL7, créez un objet HL7Message avec le message et imprimez les détails.

Ce programme est basique et ne gère qu'un message HL7 très simple. En fonction des exigences, vous aurez peut-être besoin d'une implémentation plus avancée pour gérer la structure complète des messages HL7.

Programme Java de base qui génère un message HL7 à partir d'un objet HL7Message prérempli :

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);
    }
}

Explication:

Classe HL7Message : cette classe contient les champs nécessaires pour un simple message HL7, y compris des informations sur l'application émettrice, l'application réceptrice et les détails du patient.

generateHL7Message : cette méthode construit le message HL7 à l'aide des champs fournis et les formate dans un format HL7 standard. Deux segments sont générés ici : MSH (en-tête de message)

Déclaration de sortie Cet article est reproduit sur : https://dev.to/fullsnacker/hl7-health-level-seven-1738?1 En cas de violation, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3