【如何提高门诊条码打印速度】 如何提高门诊量

【www.zhangdahai.com--妇联公文】

  【关键词】 信息系统; LIS系统; 条码      医院根据信息技术发展的需要,在2006年换上了LIS系统(即实验室信息系统,LaboratoryInformationSystem,LIS),它是基于HIS系统(即医院信息系统InformationSystem,HIS)的,两系统集成后的数据通信是双向的,如图1所示。
  
  数据流程一:病区通过HIS输入住院病人的检验申请单,提交后该病人的基本信息及检验申请信息等自动传送到LIS系统(门诊病人的检验申请单是在病人到收费窗口交纳检验费用后,病人的基本信息、检验申请信息和交费信息等自动传到LIS系统)。
  数据流程二:检验科室工作人员根据病人住院号从LIS端调出病人信息,并与病人化验申请单对照,同时LIS系统从化验仪器读取相应化验结果,审核无误后标本确认,则病人化验结果传到病区HIS系统(门诊病人,处理相对简单。检验科室工作人员根据病人交费的发票号或门诊号调出病人信息,LIS系统从仪器读取化验结果,标本确认后,门诊化验室利用LIS系统检验综合查询功能查询病人化验结果,打印化验结果。
  从以上流程中不难看出,无数次的提取病人信息和校对检验项目以及分析仪与计算机之间的双向数据传输靠简单的传统模式是无法实现的,因此,在这里我们引进了在其他领域诸如商品包装的标识上已渐趋风行的条码技术,使仪器能识别标本的有关信息,自动按条码信息或是主机发送信息执行各种操作,免除了人工在仪器上输入各种检测指令的过程,而且简化了工作程序,使全自动分析可能成为现实。
  然而,随着医院信息化业务的不断发展,数据量每天在不断的上升。近10年来处方库的数据已多达几十万条之多。数据量的增多必然会导致速度的减慢。特别是在系统和系统之间存有接口的情况下,它所关联的库、表较多,终于有1 d,突然门诊治疗室报系统提取病人的申请信息居然要等上10 s(甚至更久)才能显示出来。使得系统几乎处于瘫痪状态。使用部门纷纷质疑条码技术是否可行,甚至有人提出系统退回旧模式下运行,那么如何提高门诊条码的打印速度呢?
  由于问题是出在病人申请信息的那个点上,所以首先我们在程序中找到申请信息的这条语句。这条语句存在于检验服务器上C:/xhlis/xhlisserver/sercerA.ini中(SQL=select * from(select a.FADVSEQ hisid,b.patient_id patient_id,b.patient_unique_id patient_unique_id,b.patient_name patient_name,b.patient_sex patient_sex,b.patient_age patient_age,b.patient_ksdm patient_ksdm,b.patient_bqdm patient_bqdm,b.patient_bed patient_bed,a.Fitemno jyxmdm,a.FITEMNAME jyxmmc,a.FSUM jyxmje,"1" jyxmzt,to_char(a.finputtime,"yyyy-mm-ddmm-ss")charge_time,a.FOPNO charge_person,a.FSAMPLENAME bbzl,b.patient_zd patient_zd,b.patient_kdys patient_kdys from ht.yj_tbs_jycomapplym a,v_jy_mz_patient_info b where(a.FADVSEQ not in(select rtrim(ltrim(his_id))from his_requisition where outpatient_id =:PatientID))and(a.FPATNO=b.patient_unique_id)and(a.FSOURCE="1")and(b.patient_cardid =:PatientID or b.patient_id =:PatientID or b.patient_unique_id =:PatientID or b.patient_name =:PatientID)and(a.Fitemno<>"9998")and(a.finputtime>sysdate -14)minus
  select a.FADVSEQ hisid,b.patient_id patient_id,b.patient_unique_id patient_unique_id,b.patient_name patient_name,b.patient_sex patient_sex,b.patient_age patient_age,b.patient_ksdm patient_ksdm,b.patient_bqdm patient_bqdm,b.patient_bed patient_bed,a.Fitemno jyxmdm,a.FITEMNAME jyxmmc,a.FSUM jyxmje,"1" jyxmzt,to_char(a.finputtime,"yyyy-mm-ddmm-ss")charge_time,a.FOPNO charge_person,a.FSAMPLENAME bbzl,b.patient_zd patient_zd,b.patient_kdys patient_kdys from ht.yj_tbs_jycomapplym a,v_jy_mz_patient_info b,his_requisition c where(a.FADVSEQ not in(select rtrim(ltrim(his_id))from his_requisition where outpatient_id =:PatientID))and(a.FPATNO=b.patient_unique_id)and(a.FSOURCE="1")and a.FADVSEQ= c.his_id and(b.patient_cardid =:PatientID or b.patient_id =:PatientID or b.patient_unique_id =:PatientID or b.patient_name =:PatientID)and(a.Fitemno<>"9998"))order by patient_unique_id desc。
  我们首先对着条查询语句进行分析,申请病人信息在HIS数据库中有关联的表GHK(挂号库)、CFK(处方库)、视图v_jy_mz_patient、中间表ht.HSJYCOMAPPLYM。用语言来描述即通过病人唯一号取出GHK中的病人基本资料和CFK库中的检验项目。通过GHK建立了一个视图v_jy_mz_patient,语句为create or replace view v_jy_mz_patient_info as select distinct ghk.blh patient_id,ghk.lsh patient_unique_id,"" charge_class,ghk.dname patient_name,ghk.sex patient_sex,oraf_gf_change_age(ghk.nl)patient_age,"" patient_nation,"" patient_ABO_blood,"" patient_RH_blood,c.fapplydpt patient_ksdm,"" patient_bqdm,"" patient_bed,"" patient_special_info,"" patient_yj_info,"" patient_cr_info,"" patient_zd,"" patient_jybs,c.fempno patient_kdys,"" patient_cardid from ghk,ht.HSJYCOMAPPLYM c where(c.fpatno=ghk.lsh)。通过CFK建立一个触发器tr_mzjy将检验项目插到ht.HSJYCOMAPPLYM表里。然后通过那条申请信息的语句将病人的申请信息在门诊条码系统里面显示出来,打印之后就插到HIS_requsetion表中。通过申请信息的语句我们可以查看一下WHERE后面所跟的检索条件在数据库
  中是否建立了索引。结果我们观察到his_requisition表里的outpatient_id字段没有建立索引,刚才我们提到条码打印之后才插入这个表,而调取病人申请信息为何要用到这个表中的数据呢?因为通过过滤这个表我们可以将打印过的检验项目不能再次出现在系统里面以免检验项目可以再次调出打印。如需再次打印应该是利用重打功能而不是输入门诊号才可以再把打印过的检验项目调出来,所以索引对于数据的检索速度是非常关键的。因为医院信息系统的数据量非常的大,没有索引的话由于数据的增大会造成系统速度变慢。将它建立之后速度明显快了许多。但还是没有达到很理想的状态。上面我们提到与申请信息有关联的表有CFK和GHK,这两个表在HIS数据库中的数据量非常大。我们已经建立了视图和触发器,可以通过日期过滤一下。假设一个病人开了一张检验单需分几次来医院检验,只要把病人来院检验的间隔最长的一个时间段的数据取出来就可以了。而不需要将所有GHK的数据都放在视图里面。一般取半个月的数据量就可以。所以我们可以在视图里面WHERE后面跟GHK.XTRQ>SYSDATE-14作为限制时间段的条件。注意后面所检索的条件必须是在表中建立了索引的。如GHK表中的XTRQ建立了索引,而GHRQ没有,我们将XTRQ做为检索条件。我们也将申请信息那条语句加上了(a.finputtime>sysdate -14)也可以减少它的数据量以便达到更快的速度。当这些工作做好之后再进入系统,测试结果是速度完全正常。现已安全使用半年,反映良好。
  综上所述:导致数据慢的原因是由于数据量的增大,通常提取病人信息我们不需要通过检索表中所有的数据,只检索此前一段日期即可。当然索引的建立是至关重要的。查数据问题时通常需要先把一个系统的流程数据的流向理清楚,对系统的流程与后台数据有清晰的概念对于工作者是非常有帮助的。
  
  “本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”

推荐访问:条码 门诊 打印速度 提高

本文来源:http://www.zhangdahai.com/gongwendaquan/fuliangongwen/2019/0403/53899.html

  • 相关内容
  • 热门专题
  • 网站地图- 手机版
  • Copyright @ www.zhangdahai.com 大海范文网 All Rights Reserved 黔ICP备2021006551号
  • 免责声明:大海范文网部分信息来自互联网,并不带表本站观点!若侵害了您的利益,请联系我们,我们将在48小时内删除!