LIS系统是医院检验科用的系统,主要是处理仪器的原始数据,生成检验报告,给临床做诊断用。本套系统是支持自动审核、自动打印、批量打印,报告单设置等多项功能,包含的模块有:主任管理、条码系统、血库系统、检验系统、自助打印终端,功能模块齐全,功能强大,适用于大型三甲医院,二级医院以及卫生院等各个医疗机构,并且还可以对外提供报告查询等服务。现在诚意寻合作,源码可售,也可项目合作,仪器接口,his接口,条码双工都可以做,源码或合作 ( dynn2018 )
下面是fla8000的解码程序代码:
blob lb_data
blob lb_start
long ll_i
long ll_len
long ll_start
long ll_flag
long ll_year
long ll_month
long ll_day
long ll_hour
long ll_min
long ll_sec
long ll_resultflag
string ls_result
ll_len = len(ib_data)
if ll_len < 44 then
return 0
end if
lb_start = blob(space(2) + char(253))
ll_len -= 43
for ll_i = 1 to ll_len
if blobmid(ib_data,ll_i,3) = lb_start then
ll_start = ll_i
exit
end if
next
if ll_start <= 0 then
return 1
end if
//从第一个位置开始 截取44位
lb_data = blobmid(ib_data,ll_start,44)
//截取第一条数据之外的剩余数据
ib_data = blobmid(ib_data,44 + ll_start)
ll_resultflag = in_dec.uf_getblobasc(blobmid(lb_data,4,1))
ll_flag = in_dec.uf_getblobasc(blobmid(lb_data,42,1))
if ll_flag <> 3 then
else
if is_samplenomode = “1” then
is_sampleno = string(in_dec.uf_getblobasc(blobmid(lb_data,6,1)) + in_dec.uf_getblobasc(blobmid(lb_data,7,1)) * 256)
else
is_sampleno = string(in_dec.uf_getblobasc(blobmid(lb_data,36,1)) + in_dec.uf_getblobasc(blobmid(lb_data,37,1)) * 256) + string(in_dec.uf_getblobasc(blobmid(lb_data,38,1)) + in_dec.uf_getblobasc(blobmid(lb_data,39,1)) * 256) + string(in_dec.uf_getblobasc(blobmid(lb_data,40,1)) + in_dec.uf_getblobasc(blobmid(lb_data,41,1)) * 256)
end if
event ue_dealsampleno(is_sampleno,true)
ll_year = 2000 + in_dec.uf_getblobasc(blobmid(lb_data,29,1))
ll_month = in_dec.uf_getblobasc(blobmid(lb_data,30,1))
ll_day = in_dec.uf_getblobasc(blobmid(lb_data,31,1))
idt_sampleda = datetime(date(ll_year,ll_month,ll_day),00:00:00)
ll_hour = in_dec.uf_getblobasc(blobmid(lb_data,32,1))
ll_min = in_dec.uf_getblobasc(blobmid(lb_data,33,1))
ll_sec = in_dec.uf_getblobasc(blobmid(lb_data,34,1))
idt_sampleresulttime = datetime(date(idt_sampleda),time(ll_hour,ll_min,ll_sec))
wf_getsampleresulttime(string(idt_sampleresulttime,"yyyymmddhhmmss"))
ls_result = string(in_dec.uf_getfloat(blobmid(lb_data,8,4)),"0.00##")
choose case ll_resultflag
case 1, 4, 5
if dec(ls_result) < 1 then
ls_result = "<1.00"
else
if dec(ls_result) > 50 then
ls_result = ">50.00"
end if
end if
wf_addresult("cTnI",ls_result)
case 6
goto label_0
case 7
if dec(ls_result) < 0.10 then
ls_result = "<0.10"
else
if dec(ls_result) > 2.0 then
ls_result = ">2.00"
end if
end if
wf_addresult("D-Dimer",ls_result)
case else
if dec(ls_result) <> 0 then
wf_addresult(string(ll_resultflag),ls_result)
end if
end choose
ls_result = string(in_dec.uf_getfloat(blobmid(lb_data,12,4)),"0.00##")
if ((ll_resultflag = 5) or (dec(ls_result) <> 0)) then
if dec(ls_result) < 5 then
ls_result = "<5.0"
else
if dec(ls_result) > 100 then
ls_result = ">100.0"
end if
end if
wf_addresult("CKMB",ls_result)
end if
ls_result = string(in_dec.uf_getfloat(blobmid(lb_data,16,4)),"0.00##")
if ((ll_resultflag = 5) or (dec(ls_result) <> 0)) then
if dec(ls_result) < 50 then
ls_result = "<50.0"
else
if dec(ls_result) > 1000 then
ls_result = ">1000.0"
end if
end if
wf_addresult("Myo",ls_result)
end if
ls_result = string(in_dec.uf_getfloat(blobmid(lb_data,20,4)),"0.00##")
if ((ll_resultflag = 3) or (dec(ls_result) <> 0)) then
if dec(ls_result) < 0.5 then
ls_result = "<0.5"
else
if dec(ls_result) > 64 then
ls_result = ">64.0"
end if
end if
wf_addresult("CRP",ls_result)
end if
ls_result = string(in_dec.uf_getfloat(blobmid(lb_data,24,4)),"0.00##")
choose case ll_resultflag
case 2, 4
if dec(ls_result) < 100 then
ls_result = "<100"
else
if ll_resultflag = 2 and dec(ls_result) > 15000 then
ls_result = ">15000"
else
if ll_resultflag = 4 and dec(ls_result) > 12000 then
ls_result = ">12000"
end if
end if
end if
wf_addresult("NT-proBNP",ls_result)
case else
if dec(ls_result) <> 0 then
wf_addresult("NT-proBNP",ls_result)
end if
end choose
wf_calcsample()
wf_sendrecmsg()
end if
label_0:
if len(ib_data) >= 44 then
event ue_redecode()
end if
return 0