医院不良事件上报信息化的程序设计思路 刘国栋 宜兴市肿瘤医院,江苏 宜兴 214206 摘要:随着我国医疗信息化的不断进步,计算机已经成为人们生活不可或缺的一部分。为了有效地利用信息系统这一整合工具,充分发挥信息化带给临床医疗业务人员以及管理人员的便利,必须要加强对医院信息化的研究。本文主要讲述在医院信息化中占有一定比重的不良事件上报系统在本院的设计思路,抛弃传统的纸质填写模式,采用全电子、无纸化的上报审核模式。 关键词:信息化;不良事件;程序设计;系统 中图分类号:R318文献标识码:A文章编号:1671-5675(2017)05-0317-01 结合本院的实际情况,我将整个不良事件上报拆分成四个部分:药品、护理、医疗器械和其他,这四个部分既有可以通用的功能点,又有彼此区别的地方。本文将从四个方面来阐述本院不良事件报告系统的设计思想,分别是:业务流程设计、界面设计、数据库设计、代码设计。 1 业务流程设计 业务是所有信息化实施的基础,没有相应的业务场景,程序设计就是空中楼阁。不良事件报告的四个类别,分别是药品、护理、医疗器械和其他,需要临床业务人员,如:医生、护士、药师等填写提交。
有医院将这四个类别做成四个不同的菜单,让临床业务人员选择相应上报类别的填写。这种做法虽然有助于代码的管理,互不干涉,维护起来比较方便,而且可以特殊化某一种类别的上报,但是它的硬伤在于界面太多,不简便,不直观,临床业务人员觉得比较麻烦,影响体验。所以在业务设计之初,我提出简洁化,就是在一个界面上能够完成所有的上报。 另外一块的业务是对上报表格的审核。因为审核的管理部门有不同的功能区分,本着简便、直观的原则,我们也是通过同一个界面,不同参数的设定来确定。 2 界面设计 (1)医疗业务人员填报界面 在界面中设置四个单选按钮用来控制业务人员填报的类别,这个单选按钮和页面中的 tab 页是相关联的,也就是说,选择单选按钮,会出现相应的 tab 填写页面。这样,我们的业务人员在填写报告卡的时候,不需要切换界面那么麻烦,直接选择需要填写的报告卡类型即可。报卡的人员信息是医疗信息系统HIS 中通过门诊卡号或住院病历号来调取的,为此,我设计输入门诊卡号或者住院病历号回车的方式来调取患者信息,同时生成报告单 ID 号。不过有些报告卡是不需要病人信息的,比如医疗器械损坏等。所以报告单 ID 也可以直接回车,单独生成,这样就满足了医疗业务人员对于特殊不良事件的上报填报,因为报告单的 ID 是数据库表的核心字段,所以这个不能缺失。
(2)审核界面 审核界面的不良事件类别是按照程序右下角的设置类别来区分的,这样的设计是保证代码精简的同时,又可以很有效地区分各个类别。在审核界面中,我使用不同的颜色来标注报告卡的状态,黑色字体是上报未审核的,蓝色字体表示已审核,红色字体表示作废。我将未审核的报告卡始终显示在界面上,与开始时间和结束时间无关,已审核和作废的报卡通过开始时间和结束时间来查找。这样可以减少管理审核人员跨菜单操作,提升体验度。 审核界面中初始显示的是报告卡的基本信息,考虑到计算机显示器的显示区域有限,并没有将报告卡的详细内容列在表格内,为此我设计了双击某一条报卡信息,调出完整报卡表格的功能,这样的设计直观,且操作简单,管理人员不需要跨菜单操作,同一个界面就能看到需要的信息。 3 数据库设计 我采用和医院信息系统相同的数据库 oracle 10g,方便数据的转换与传输。根据上述界面的设计思路,我相应的设计了5 张数据库表来存放这些数据:.adv_ main 用来存放除 tab 页内(也就是 4 种类型公用)的数据;.adv_drug 用来存放药品不良事件 tab 页中的数据;.adv_nurse 用来存放护理不良事件 tab 页中的数据;adv_equ 用来存放医疗器械不良事件 tab 页中的数据;.adv_other 用来存放其他不良事件 tab 页中的数据。
其中 adv_main 中用报告卡 ID 来与其他四个表关联,这样的设计是出于以下考虑:(1)方便统计,主表 adv_ main 存放公用数据,报表在统计数据时,统计的语句表精简,写法简单,减轻数据库的运行压力;(2)附表 2/3/4/5 保证自己类别数据的独立性。 在主表中,ID 是唯一索引、主键,也是其他四个表的外键,通过最后一列 classtype(报告卡类别)来寻找相应的附表。 4 代码设计 代码部分使用 microsoft visual studio 2005 作为编程工具,语言使用 C#,具体代码不展开,我这边截取一段护理不良事件的保存方式代码: stringsqlNurse=@"insertintoADV_NURSE (ID,BRSF,SSZJMZ,SXSJ,YNGR,JYBL,YLCZ,SYSS,FYQSJ,YLGT,OTHER) values ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}')"; stringNurseYLGT=string.Empty; if(this.chkNurseYLGT.Checked==true) {NurseYLGT="1";} else{NurseYLGT="0";} ……sqlNurse=string.Format (sqlNurse,advID,NurseSFQR,NurseSS,NurseSX,NurseYNGR,NurseYJ,NurseYLCZ,NurseSY,NurseFYQ,NurseYLGT,this.txtNurseOther.Text); if(ADVERSE_TYPE=="2") {if ( sqlManager.ExecNoQuery ( sqlNurse )==-1||sqlManager.ExecNoQuery(sqlmain)==-1) {Neusoft.NFC.Management.PublicTrans.RollBack(); MessageBox.Show(sqlManager.Err); return;} else {Neusoft.NFC.Management.PublicTrans.Commit();} 5 结语 现今医疗技术的快速发展,已经是信息化的时代,信息化系统的使用已经是医疗发展决策的支撑点,只有本着以业务为本,提高医疗业务人员使用体验为纲,最终实现通过有效的数据统计来指定合理的决策为目标,才能更好地发挥信息化系统的作用,才能更好地为医院的良性发展做出更大的贡献。