HL7 はヘルス レベル 7 とも呼ばれ、さまざまな医療システムにおける電子情報の統合、交換、管理、検索に使用されるメッセージングおよび臨床標準規格です。これは、患者の入院などのイベントによってトリガーされるトランザクションに基づくプロトコルです。 HL7 は、公衆衛生の分野での情報交換を促進します。
これは、使用されているプラットフォームやテクノロジーに依存しない、医療分野におけるデータ交換の国際標準として広く受け入れられています。
医療システムは通常、さまざまなプログラミング言語で開発され、さまざまな機能を備えたさまざまなアプリケーションを使用します。たとえば、病院は複雑なカスタマイズされたシステムを持っていることが多く、一般開業医は既製の診療管理ソフトウェアを使用することがよくあります。医療研究機関は、大学などのより大規模なネットワークの一部であるソフトウェアを使用する場合があります。多くの場合、これらの機関は患者に関するデータを交換する必要があります。
HL7 の目的は、医療機関が使用するシステムに関係なく、権限のある人であれば誰でもアクセスできる一貫したデータを生成できるようにすることです。医療機関間の相互運用性には、さまざまなシステムのインターフェイスが HL7 などの共通プロトコルを使用する必要があります。
一般に、HL7 メッセージは、病院ネットワーク内などのローカル ネットワーク上で TCP/IP プロトコルを使用して送信されます。 TCP/IP データはバイトのストリームとして送信されるため、複数のメッセージを連続ストリームで送信できます。これは混乱を引き起こす可能性があるため、各メッセージの開始点と終了点を明確に定義する必要があります。このために、Minimum Lower Layer Protocol (MLP) が使用され、各メッセージにヘッダーとフッターが追加されます。
最小下位層プロトコル (MLP) は、物理層やデータリンク層など、ネットワーク スタックの下位層で動作する基本プロトコルを指します。ネットワーク デバイス間の通信に必要な基本機能を提供し、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 メッセージが含まれており、メッセージ タイプ、患者 ID、患者名などの基本的な詳細を抽出して表示するメソッドを提供します。
getMessageType: このメソッドは、HL7 (フィールド 9) からメッセージ タイプを抽出します。
getPatientID: このメソッドは患者 ID (フィールド 4) を抽出します。
getPatientName: このメソッドは患者名 (フィールド 6) を抽出します。
printDetails: このメソッドは、HL7 メッセージの詳細を出力します。
main: main メソッドでは、サンプル HL7 メッセージを定義し、メッセージを含む HL7Message オブジェクトを作成し、詳細を出力します。
このプログラムは基本的なもので、非常に単純な HL7 メッセージのみを処理します。要件によっては、HL7 メッセージの完全な構造を処理するために、より高度な実装が必要になる場合があります。
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 形式でフォーマットします。ここでは 2 つのセグメントが生成されています: MSH (メッセージ ヘッダー)
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3