我目前在这里从事一个 hl7 项目,面临通过 telnet 连接实时连续数据的问题需要帮助

问题描述 投票:0回答:0

从 umec mindray12 获取实时数据时面临的问题 由于握手消息的格式出现问题

import telnetlib
import time
import json
import hl7
import asyncio
from datetime import datetime

HOST = "169.254.99.158"
PORT = 4601

while True:
    try:
        tn = telnetlib.Telnet(HOST, PORT)

        while True:
            tn.write(b"MSH|^~\&|||||||ADT^A01|101|P|2.3.1\r")

            data = tn.read_until(b"\r\n")
            print(data)

            hl7_message = hl7.parse(data)
            print("message :", hl7_message)

            # Extract patient name. and ID
            patient_height = str(hl7_message.segments('OBX')[0][5][0])
            patient_weight = str(hl7_message.segments('OBX')[1][5][0])
            patient_bloodGroup = str(hl7_message.segments('OBX')[2][5][0])
            patient_pace_maker_details = str(
                hl7_message.segments('OBX')[3][5][0])
        # p_data = str(hl7_message.segments('OBX')[0])

            patient_name = str(hl7_message.segments('PID')[0][5][0])
            patient_data = str(hl7_message.segments('PID')[0])
            patient_gender = str(hl7_message.segments('PID')[0][8][0])
            patient_dob = str(hl7_message.segments('PID')[0][7][0])
            patient_visit = str(hl7_message.segments('PV1')[0][2][0])
            patient_test_name = str(hl7_message.segments('PV1')[0][3][0])
            patient_monitor_name = str(hl7_message.segments('OBR')[0][4][0])
            pleth = str(hl7_message.segments('OBX')[25][3][0])
            spo2 = str(hl7_message.segments('OBX')[25][5][0])
            print("Patient Name :", patient_name.replace("^", " "))
            print("Patient DOB :", datetime.strptime(
                patient_dob, "%Y%m%d").strftime("%d/%m/%Y"))
            print("Patient Gender :", patient_gender)
            print("Patient Height :", patient_height + "cm")
            print("Patient no of visit :", patient_visit + " ")
            print("Patient test name :", patient_test_name.replace("^^", " ") + "")
            print("patient weight :", patient_weight + "kg")
            print("Patient blood group :", patient_bloodGroup)
            print("patient_pace_maker_details :", patient_pace_maker_details)
            print("Patient monitor name :", patient_monitor_name)
            print("Pleth: ", pleth)
            print("SpO2: ", spo2)

            # Save data to JSON file
            with open("hl7test123.json", "a") as f:
                data_dict = {
                    "patient_name": patient_name,
                    "dob": datetime.strptime(patient_dob, "%Y%m%d").strftime("%d/%m/%Y"),
                    "gender": patient_gender,
                    "height": patient_height + "cm",
                    "visit": patient_visit,
                    "test_name": patient_test_name.replace("^^", " "),
                    "pleth": pleth,
                    "spo2": spo2,
                    "patient_weigh": patient_weight,
                    "atient monitor name ": patient_monitor_name,
                    "patient pace maker details": patient_pace_maker_details,
                    "patient blood group": patient_bloodGroup
                }
                json.dump(data_dict, f)
                f.write("\n")

            # Send echo message
            tn.write(data)

            # # Wait for 1 second before sending next handshake message
            # time.sleep(1)

    except Exception as e:
        print("Exception occurred: ", e)

我正在尝试这个

这里我们需要在 10 秒之前发送回显消息以在没有 telnet 连接的情况下获取实时数据

python-3.x handshake hl7 hl7-v3 btahl7
© www.soinside.com 2019 - 2024. All rights reserved.