1、仪器通讯示例
H<--M : MSH|^~\&|LabXpert|Mindray|||20240531085047||ORU^R01|13343|P|2.3.1||||||UNICODE
H-->M : ACK
H<--M : PID|1||0003117896^^^^MR||王迎桐^王迎桐||20201105000000|Fmale
H<--M : PV1|1|O|ENKMZ-儿内科门诊^^|||||||||||||||||Public
H<--M : OBR|1||3008950337|00001^Automated□Count^99MRC|||20240531085046|||林丽星||||||||||||||HM|NotValidated|||||||service
H<--M : OBX|1|IS|08001^Take□Mode^99MRC||A||||||F
H<--M : OBX|2|IS|08002^Blood□Mode^99MRC||M||||||F
H<--M : OBX|38|NM|32623-1^MPV^LN||9.7|fL|6.5-12.0|N|||F
H<--M : OBX|39|NM|32207-3^PDW^LN||16.1||15.0-17.0|N|||F
H<--M : OBX|40|NM|10002^PCT^99MRC||0.305|%|0.108-0.282|H~N|||F
H<--M : OBX|41|NM|10013^PLCC^99MRC||73|10*9/L|30-90|N|||F
H<--M : OBX|42|NM|10014^PLCR^99MRC||23.4|%|11.0-45.0|N|||F
H<--M : OBX|43|NM|30392-5^NRBC#^LN||0.000|10*9/L|0.000-9999.999|N|||F
H<--M : OBX|44|NM|26461-4^NRBC%^LN||0.00|/100WBC|0.00-9999.99|N|||F
H<--M : OBX|45|NM|10022^PLT-I^99MRC||313|10*9/L||N|||F
H<--M : OBX|65|NM|71426-1^FR-CRP^LN||20.54|mg/L|0.00-4.00|H~N|||F
H<--M : OBX|66|NM|71426-1-1^hs-CRP^99MRC||>10.00|mg/L|0.00-4.00|H~N|||F
H<--M : OBX|67|NM|71426-1-2^CRP^99MRC||20.54|mg/L|0.00-4.00|H~N|||F
H<--M : OBX|68|NM|12227-5^CORRECTED□WBC^LN||7.51|10*9/L|4.00-10.00|N|||F
H<--M :OBX|69|IS|15192-8^Atypical□Lymphs?^LN||T||||||F
H<--M :OBX|70|ED|15056^RBC□Histogram.□BMP^99MRC||^Image^BMP^Base64^Qk0OQgAAAAAAALYDAAAoAAAAlgAAAGkAA
根据通讯文档说明
OBX开头,以“|”分隔的第三位如图是IS则为仪器报警信息,是NM则为仪器结果信息,是ED则为图片数据。
仪器报警存储不分改造:
// 解析仪器报警信息,WKT 2023-08-31
I dataTye="IS" {
;D Trace^MI.MIF000(mi,epis_"^"_channe,"channe")
s value1=$$GetWarResult^MI.MIFZHCAL8000X(channe)
;S result1=result1_channel_par10_value_par11
i $l(result1) s result1=result1_par11_value1
e s result1=value1
;D Trace^MI.MIF000(mi,epis_"^"_result1,"result1")
}
保存仪器报警信息
Save
D Trace^MI.MIF000(mi,epis_"^"_result,"Test")
I $l(epis),$l(result) {
S QC=""
D Save^MI.MIF000(mi,epis,result,date,time,QC)
}
// 解析仪器报警信息,WKT 2023-08-31
D Trace^MI.MIF000(mi,epis_"^"_result1,"baojing")
I $l(epis),$l(result1) {
;SaveResultWarned
;D Trace^MI.MIF000(mi,epis_"^"_result1,"result2")
D SaveResultWarned^MI.MIFZHCAL8000X(epis,result1,mi)
}
S (sample,epis,surname,rec,res,result,date,time,QC,resultType)=""
Q
保存程序:
SaveResultWarned(labno, conclusion, predealMI)
s labno=$g(labno)
s conclusion=$g(conclusion)
s predealMI=$g(predealMI)
s curWorkGroupMachineDR=$lg($g(^dbo.BTMIMachineParameterD(predealMI)),6)
s hasFindRep=0
i $d(^dbo.RPVisitNumberI("IndexVisitNumber"," "_$zcvt(labno,"U"))) d
.s VisitNumberDR=$o(^dbo.RPVisitNumberI("IndexVisitNumber"," "_$zcvt(labno,"U"),""))
.i $d(^dbo.RPVisitNumberReportI("IndexReportID",VisitNumberDR)) d
..s WorkGroupMachineDR="" f s WorkGroupMachineDR=$o(^dbo.RPVisitNumberReportI("IndexReportID",VisitNumberDR,WorkGroupMachineDR)) q:WorkGroupMachineDR="" d
...s OrderNo="" f s OrderNo=$o(^dbo.RPVisitNumberReportI("IndexReportID",VisitNumberDR,WorkGroupMachineDR,OrderNo)) q:OrderNo="" d
....s ReportDR="" f s ReportDR=$o(^dbo.RPVisitNumberReportI("IndexReportID",VisitNumberDR,WorkGroupMachineDR,OrderNo,ReportDR)) q:ReportDR="" d
.....s Status=$lg($g(^dbo.RPVisitNumberReportD(ReportDR)),22)
.....i Status="3" q
.....s WorkGroupMachineDR=$lg($g(^dbo.RPVisitNumberReportD(ReportDR)),4)
.....s objrep=##Class(dbo.RPVisitNumberReport).%OpenId(ReportDR)
.....i $l(objrep.ResultWarned) s objrep.ResultWarned=objrep.ResultWarned_","_conclusion
.....e s objrep.ResultWarned=conclusion
.....s sc=objrep.%Save()
.....s hasFindRep=1
.....i ('$SYSTEM.Status.IsOK(sc)) d
......d Trace^MI.MIF000(predealMI,"-1^存仪器报警信息失败:"_$SYSTEM.Status.GetErrorText(sc),"H<--M")
i hasFindRep=0,$l(curWorkGroupMachineDR),$d(^dbo.RPVisitNumberReportI("IndexEpisodeNo",$zd($h,8),curWorkGroupMachineDR," "_$zcvt(labno,"U"))) d
.s ReportDR=$o(^dbo.RPVisitNumberReportI("IndexEpisodeNo",$zd($h,8),curWorkGroupMachineDR," "_$zcvt(labno,"U"),""))
.s objrep=##Class(dbo.RPVisitNumberReport).%OpenId(ReportDR)
.s objrep.ResultWarned=conclusion
.s sc=objrep.%Save()
.s hasFindRep=1
i hasFindRep=0 d Trace^MI.MIF000(predealMI,labno_":没有找到报告","H<--M")
q "1"
改造后效果
总结:
将仪器报警信息显示到界面,方便审核报告时做参考,已给审核医师明显的提醒,提高审核效率。