典型问题分析报告ZLHIS典型问题分析报告第1期中联信息产业重庆公司2006年7月第2页共19页-典型问题分析报告地址:重庆市北部新区高新园海王星科技大厦A区5搂电话:023-67031919服务部分机:800服务销售单元分机:821传真:023-67031165服务热线:67031117-2-篇首寄语在今年6月份的一次用户沟通会上,许多用户提到,希望中联公司能够定期提供一份分析典型问题的资料,用于指导用户自已解决问题,提升医院的信息化水平,同时也可减轻公司的服务压力,正是用户的建议性意见催生了展现在您面前的这份《典型问题分析报告》的诞生。我们将典型的ZLHIS产品应用相关的技术问题进行分类整理,组织资深工程师对重庆区域内的典型问题进行总结分析,集结成册,为用户解决问题提供正确、高效的解决方案。报告分析的问题主要来源于中联技术论坛和一线服务人员的经验总结。中联公司一直致力于探询新的服务方式,提高医院的信息化应用水平,我们寄希望于这份资料,能够为医院解决ZLHIS产品应用中的问题提供实实在在的帮助。中联公司的每一次发展,都离不开广大用户的支持。如果您对本刊有什么意见或建议可以通过登录中联技术论坛()或致电:67031919-830发表您的意见。第3页共19页-典型问题分析报告地址:重庆市北部新区高新园海王星科技大厦A区5搂电话:023-67031919服务部分机:800服务销售单元分机:821传真:023-67031165服务热线:67031117-3-本期内容导读医保业务东软“住院门诊号”错误处理办法在重庆市东软医保中,如果住院病人曾经作为医保病人登记过,同一次住院过程中再进行补充登记时,会出现“违反唯一约束”的错误提示,为了解决该问题,10.11.0以上版本的医保部件改变了“住院门诊号”的生成方式,增加了“就诊序号”,将其作为住院门诊号的一部分。处理该问题的过程中,给系统中原有的病人处理带来了一些问题,导致不能正常结算,成为7月份最主要的东软件医保问题之一,本文将对问题产生原因做深入的分析并提出解决方法。药品系统盘点金额与入出汇总表的库存金额不符的分析在ZLHIS产品应用中,经常有用户反映入出汇总表的金额与盘点金额不等的现象,这也成为药品系统中的“老大难”问题,本文将对此问题进行深入分析,并指导用户解决问题。费用系统“发现已被其他人操作的费用”结帐错误的处理某些住院病人使用同一住院号多次入院后,在最后一次结帐时出现“发现已经被其他人结帐的费用”错误,导致不能进行正常结帐操作,本文将详细说明此问题的解决过程。数据库管理病人费用汇总表的解决方案由于医保业务的启用,导致一个事务持续时间过长,造成“病人费用汇总”的锁定,影响其他事务的提交。表现出来的就是HIS客户端多台连续死机,影响了医院的正常业务开展,本文将对此问题作深入的分析并对目前的采用的解决方案进行介绍。附录7月份ZLHIS典型问题QA集我们对7月份的一些处理较为简单的问题进行分析,给出了解决办法,主要集中医保结口方面的问题。第4页共19页-典型问题分析报告地址:重庆市北部新区高新园海王星科技大厦A区5搂电话:023-67031919服务部分机:800服务销售单元分机:821传真:023-67031165服务热线:67031117-4-第一章东软医保“住院门诊号”错误处理作者:贺学兵一、适用范围适用版本:ZLHIS10.11及以上版本适用医保:重庆市东软医保二、问题现象在“病人费用查询”模块中进行预结算或出院结帐时,出现错误提示:“医保结口调用失败,找不到住院门诊号为XXX的就诊信息”。三、原因分析1.10.11版本以前住院门诊号生成规则存在的问题住院门诊号是东软医保中作为身份登记的标识号,一次就诊只能产生一个住院门诊号,不允许重复。在医保前置服务器的kc21(就诊信息登记表)的AKC190(住院门诊号)和AKB020(医保号)的字段上设置了主键约束。约束SQL如下;altertableHIS_PRO.KC21addconstraintPK_KC21primarykey(AKC190,AKB020)10.11以前,住院门诊号的生成规则是:病人id_主页id,,当医保病人撤消医保登记后,再进行补充登记时,会出现下述错误:第一次医保登记时,已经在KC21表中生成一条记录,进行撤消操作时,打上作废标志,但未删除登记信息。当再进行补充登记时,由于是使用的相同住院门诊号,写入前置机数据库,违反了唯一约束,就出现了上述的错误提示。第5页共19页-典型问题分析报告地址:重庆市北部新区高新园海王星科技大厦A区5搂电话:023-67031919服务部分机:800服务销售单元分机:821传真:023-67031165服务热线:67031117-5-2、10.11以后的住院门诊号生成规则为了解决住院门诊号重复的问题,在10.11中,改变了住院门诊号的生成规则,生成规则为:病人id_主页id_就诊序号。具体的处理过程为,在“保险帐户”表中增加“就诊序号”字段,每次医保登记时,读取“就诊序号”字段的值加上1作为本次的就诊序号,按照新规则生成病人的住院门诊号。这样就解决了病人再次补充登记时,住院门诊号重复的问题。如:病人ID为6574主页ID为2,而第一次正常登记时,生成的住院门诊号为6547_2_1,再次补充登记时,生成的住院门诊号为6547_2_2。产生的住院门诊号,将会记录到“保险帐户”中的住院门诊号字段,在进行预结算等医保交易时,会读取“住院门诊号”作为参数完成医保交易。如果此字段为空,或值与前置机KC21表记录的不一致,就不能正常结算了。3、新规则下在院医保病人存在的问题10.11中更改了住院门诊号生成的规则,但在院医保病人住院门诊号已经生成,“住院门诊号”字段为空。为解决此问题,在更换部件前,必须对当前在院病人进行处理,将住院门诊号更新到保险帐户的“住院门诊号”院字段,才能进行费用上传和预结算:declarecursorcur_在院病人isselect*from病案主页where出院日期isnulland险类=10;beginforv_在院病人incur_在院病人loopupdate保险帐户set住院门诊号=v_在院病人.病人id||'_'||v_在院病人.主页idwhere病人id=v_在院病人.病人idand险类=10;endloop;commit;end;由于可能以下特殊情况,可以导致HIS端记录的住院门诊号与前置机不一致,导致进行医保交易时出现错误:在执行更新脚本时,“病案主页”的险类字段为空,导致脚本没有更新保险帐户病人已输出院,但未结帐,导致脚本没有更新相保险帐户医院部件没有更换完成,使用老部件登记了医保病人,按老规则生成了住院门诊号医院重新安装了ZLHIS客户端,没有更新医保部件。其他特殊原因四、解决办法由于各种原因造成的住院门诊号填写错误,都可以通过修改保险帐户“住院门诊号”字段解决。如下例:第6页共19页-典型问题分析报告地址:重庆市北部新区高新园海王星科技大厦A区5搂电话:023-67031919服务部分机:800服务销售单元分机:821传真:023-67031165服务热线:67031117-6-SQLupdate保险帐户set住院门诊号='65437_2_2'where病人id=65437;1rowsupdatedSQLcommit;Commitcomplete第二章对历史时点的盘点金额与入出汇总表金额不一致的解决办法作者:李俊一、适用范围适用版本:ZLHIS10.14以下版本二、问题现象在对所有药品设置了药品存储库房和盘点属性的情况下,对历史时点盘点的盘点金额与入出汇总表金额不一致,如下图:在2006-7-22日,对中西药库在2006-7-2123:59:59的所有药品盘点的盘点金额与药品入出汇总表的金额不等,药品入出汇总表中期末库存金额为3217646.21,盘点金额为3179351.21。第7页共19页-典型问题分析报告地址:重庆市北部新区高新园海王星科技大厦A区5搂电话:023-67031919服务部分机:800服务销售单元分机:821传真:023-67031165服务热线:67031117-7-三、原因分析1、某一药品在生成盘点表的当前时间无库存,而在历史时点有库存,造成对历史某一时点盘存时出现漏盘现象。比如第一行药品抗克胶囊在2006-7-21有库存,而在2006-7-22无库存数量。第8页共19页-典型问题分析报告地址:重庆市北部新区高新园海王星科技大厦A区5搂电话:023-67031919服务部分机:800服务销售单元分机:821传真:023-67031165服务热线:67031117-8-2、某些药品在盘点表生成时已停用,而在历史时点有库存且在用。在7月21日药品‘诺氟沙星氯化钠针’有库存,如下图:第9页共19页-典型问题分析报告地址:重庆市北部新区高新园海王星科技大厦A区5搂电话:023-67031919服务部分机:800服务销售单元分机:821传真:023-67031165服务热线:67031117-9-在7月22日药品‘诺氟沙星氯化钠针’已停用,如下图:四、解决办法1、药品盘点时,必须选择‘盘无库存药品’方式第10页共19页-典型问题分析报告地址:重庆市北部新区高新园海王星科技大厦A区5搂电话:023-67031919服务部分机:800服务销售单元分机:821传真:023-67031165服务热线:67031117-10-2、通过自定义报表,查出漏盘的药品,并在《药品目录》管理中启用该药品。[REPORT_525]查询漏盘药品.ZLR3、重新对启用的药品进行手工盘点操作。第三章住院结帐出现“发现已经被其他人结帐的费用”错误的解决方案作者:邓朝雄一、适用范围适用版本:ZLHIS10.1.0以上版本二、问题现象操作员在‘病人结帐处理’模块中输入病人住院号,点‘确定’时出现如下错误:第11页共19页-典型问题分析报告地址:重庆市北部新区高新园海王星科技大厦A区5搂电话:023-67031919服务部分机:800服务销售单元分机:821传真:023-67031165服务热线:67031117-11-三、原因分析由于以前程序设计的问题(典型的是四舍五入和金额保留位数的不一致)导致在特殊情况下,让使用同一住院号多次入院的病人进行结帐时会出现‘实收金额’与‘结帐金额’不等的情况,现在程序加入判断后就会再次将这些记录提出并认为是未结帐费用而再次结帐。具体过程及SQL:--检查多次结帐后结帐金额是否高于原金额SelectNvl(Sum(实收金额),0),Nvl(Sum(结帐金额),0)Intov_实收金额,v_结帐金额From病人费用记录WHERENO=NO_INAND序号=序号_INAND记录状态=记录状态_INANDSUBSTR(记录性质,LENGTH(记录性质),1)=记录性质_INAndNvl(执行状态,0)=执行状态_IN;Ifv_结帐金额v_实收金额Thenv_Error:='发现已经被其他人结帐的费用,当前结帐操作不能继续。';RaiseErr_Custom;EndIF;第12页共19页-典型问题分析报告地址:重庆市北部新区高新园海王星科技大厦A区5搂电话:023-67031919服务部分机:800服务销售单元分机:821传真:023-67031165服务热线:67031117-12-四、解决办法1、发现异常费用进入‘病人结帐处理’模块,在‘结帐表’清单中,此类费用都会出现在费用清单的最后,‘时间’与‘单据号’和本次住院的单据号明显不同:时间远远大于本次住院的入院时间、单据号数小于本次费用的最小单据号数,还有可能开始字符都会不相同(跨年费用)。2、查找病人ID在‘病人费用查询’中找到此病人的ID号(在窗口最下方)。3、对比错误记录及更改3.1进入PL/SQL,执行以下SQL:SelectNo,姓名,实收金额,结帐金额From病人费用记录Where病人id