从 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 连接的情况下获取实时数据