住院管理系统是整个HIS的核心部分,其他大部分业务就从住院开始。这个子系统包含了70多个业务功能点,其中我们主要精讲了入院登记、预交款管理、划价记账、住院退费、转科转床、账目结算、出院等大的业务。每个功能点我们都是从需求出发,分析业务,同时在分析过程中经常性会引入现场客户案例,并目前HIS市场的现状等。然后由于本部分属于开始引入部分,入手难度尽可能的降低,为的是让大家的业务理解和技术结合这个过度能够顺利些。
一、本部分,我们主要讲述了下面业务:
1、入院登记
涉及表名: h_inhos_record, t_patient_info
系统配置: 住院号产生方式
业务流程:
1、打开入院登记界面,点击新增,进行入院登记。在费用类别处有病人类型的选择,注意一下。在入院登记界面上的菜单操作有查找,用这个按钮可以查询登记过的入院号,以便进行删除、编辑的操作。入院登记的住院号写在h_inhos_record和t_patient_info
2 、住院管理里有一个“入院登记许可项设置”。打开这个界面可以对入院登记界面上需要输入的项进行调整。
注意入院记一次的情况,同时会影响到h_inhoscharge_detail表,出院时也要注意导到出院表的情况
2、预交款管理
涉及表名: h_inhos_record,h_advance_record.
系统配置: 预交款票据是否使用发票管理。
业务流程: 在预交款界面。输入住院号进行交费。分为支票交款和现金交款。退预交款同样在这个界面上,输入住院号,调出该住院号所交的款项以后,点击复选框。进行退费。
收费:CANCELMARK=0退费:CANCELMARK=2(冲账负记录) 同时 CANCELMARK=1(原来的记录)
3、划价记账
涉及表名: h_inhos_record, h_inhoscharge_detail,
h_inhosleechdom_record, h_inhosleechdom_detail.
系统配置:住院是否允许记负帐(暂未启用);
数据权限: 是否允许欠费记帐,和操作员绑定
业务流程:
1、住院划价记账,输入住院号,或者左边列表里选择需要划价的入院号,进行划价,检治费和和药费可以用代码,拼音码检索。
2、按划价号收费时,在药房划价后,产生的划价号,在住院划价界面用“+”号加上划价号,就可以进行收费。例如:+0000000123。
3、组合收费时,在系统里维护好组合收费,在住院划价界面输入“]”调出组合收费,然后选择相应的项目,进行收取。
4、使用快捷键:F2 速查当前操作员的前十笔费用。F5 删除选中项目。F6 草药剂量 F8分处方 F12切换药房\执行科室。
5、划中草药时,输入数量以后,在付数一栏,输入相应的付数,系统会把付数和数量相乘,相乘后得出的数量就是划价需要的总数量。
6、挂起。如果病人由于种种原因,划完价,暂时没有收费,但稍后还需要,可以暂时挂起,等病人可以收费时,在挂起界面上调出后,可以继续收费。还可以在挂起界面上做修改。
4、住院退费
涉及表名:h_inhoscharge_detail, h_inhosleechdom_record,
h_inhosleechdom_detail., h_inhos_record
系统配置:临床科室退费设置
业务流程:
1 、配置为0:可退全部费用 时,在操作员权限里有三个配置:
A能否退其他科室发生的费用
B允许退其他操作员的费用
C能否退执行科室为医技科室的费用
有四种情况出现:
A B C 退费说明
是 可以退全部的费用
否 是 是 可以退本科室所有的费用
否 是 否 可以退本科室所有的费用(医技科室的除外)
否 否 是 只能退本操作员自己发生的所有费用
否 否 否 只能退本操作员本科室发生的费用(医技除外)
2、 配置为1:只能退药品费 时,在操作员权限里三个配置
A、能否退其他科室发生的费用
B、允许退其他操作员的费用
C、能否退执行科室为医技科室的费用
有四种情况出现:
A B C 退费说明
是 可以退全部的费用
否 是 是 可以退本科室所有的费用
否 是 否 可以退本科室所有的费用(医技科室的除外)
3 退费申请 ,有的医院需要先申请一个退费单,然后在住院退费界面上载入申请,调出退费单,进行退费。
4 退费时,如果药品明细为黄色,代表该药品已经发放,不能退费,如果要退费,就要先退药然后才能退费
5、转科转床
涉及表名:h_transfer_info, h_inhos_record, h_inhos_rollfee
业务流程:输入住院号,进行转科转床,转入的新科室需要有床位,才可以转科成功。在h_transfer_info会记录它的转出科室和转入科室,如果转科两次,会有两条记录。
在h_inhos_record会有住院科室和入院科室这两个字段,住院科室记录的是该病人当前所在的科室。
注意:提前办理转科手续的情况,会影响到h_inhoscharge_detail表中的滚动费,同时更新h_inhos_record 表中的总花费
6 、账目结算
涉及表名: h_balance_record h_balance_detail h_inhos_record表中的inhosstate字段
系统配置: 有未发药品是否允许办理结帐 ;结算时床位如何处理
业务流程:
1 配置为1:允许 时,输入住院号,进行结算,有未发药品时,可以进行结算。
配置为0不允许 时,输入住院号,进行结算,如果有未发药品,要先发药,然后才可以进行结算。
2 0:自动空出床位1:提示操作员是空出床位还是继续保留
3 博爱医院的医保病人,在结算时,有一个配置,是否启用院内医保。如果不启用时,在统筹挂帐一栏,输入医院承担的部分,出院以后,在h_balance_record表里是该病人的预交款+统筹,如果它们之和大于总花费,就在应退金额里写值。写的值是总花费-(预交款+统筹)所得出的金额。否则在应补金额里写。
注意:提前办理结算的情况,会影响H_inhoscharge_detail表中的滚动费,同时更新h_inhos_record表中的总花费字段
7、出院
涉及表名:h_balance_record h_leavehos_record h_leaveleechdom_detail
h_leaveleechdom_record h_leavehoscharge_detail h_deal_advance
系统配置:出院发票作废有效天数;出院发票是否使用发票管理(0:不使用1:使用);出院招回有效天数; 出院发票是否预览(0:预览1:不预览)
业务流程:
1 打开出院界面,在左边列表里选择需要出院的住院号或在右边的选框里输入需要的住院号。如果该病人已经结算直接办出院,如果该病人还没有结算,系统会提示先结算再出院。出院以后,该病人的会在h_balance_record插一条记录,字段operatetype的标识变为3。该病人所有的费用会记录在h_leavehoscharge_detail表里。h_leaveleechdom_detail和h_leaveleechdom_record里记录药品费。如果有未发药品,出院以后,在药房的出院发药界面上进行发药。但出院病人只可以发药,不能退药退费。
2 系统配置里:出院发票作废有效天数。根据医院的不同要求,输入具体的天数。
出院召回有效天数,根据医院的不同的要求,输入具体的天数。
出院发票是否预览,配置为0:预览是,进行出院操作以后,保存,会出现发票预览界面。否则,不出现。
二、涉及到的技能点
1. 多层开发技术;
2. 大事务处理;
3. 界面布局和美化技术;
4. 一些实用的算法;
5. 用代码去描述思想
6. 报表打印技术;
三、课程和分析过程截图:
每个具体功能点都是从业务分析角度入手,基本可以说是手把手教着大家来完成每一个业务点,对于遇到的每一个问题、错误、异常等不回避,不掩饰,逐步分析,引导大家来解决这个问题。如下面的分析过程:
账目结算业务:
计算出病人在院期间费用信息并结清相关费用。可以理解为“预出院”,其在院所有数据记录暂时不变(只是标志位变化),所有费用明细均可查询,同时,计费终止。
业务:
1、判断账目是否平衡;
2、计算滚动费:从H_INHOS_ROLLFEE表中COUNTPRICEENDDATE计费截止日期开始到今天,计算该病人的滚动费,插入明细账,结果如图:
3. 上面的DetailAccountId和BillID来自H_PATIENTBUSINESSID(病人最大号表);
4.删除床位滚动费:H_INHOS_ROLLFEE
5.更改病人档案表H_INHOS_RECORD中的床位号:OFFICEBEDID=’’
6.更改床位档案H_BED_FILE的BedIsUse为0;
7.设置在院病人档案的住院状态InHosState (1 结算),床位日期为当前日期;
8. 获取结算ID:
Select maxid Into v_BalanceID From H_INHOS_MAXID Where businessmark='BalanceID'
9. 插入病人结算主记录:h_balance_record,其中:
发票号为000000000,出院时才出具正式发票,此处为0占位用;
交款结余=应收金额-现金预交款-支票预交款
10. 插入病人结算明细记录H_BALANCE_DETAIL,数据来自:
Select T_InHosInvoiceItem.INVOICEID,Sum(H_INHOSCHARGE_DETAIL.MONEY)As MONEY
From D_SUMMARY_INFO,T_InHosInvoiceItem,H_INHOSCHARGE_DETAIL
Where D_SUMMARY_INFO.INHOSINVOICEID=T_InHosInvoiceItem.INVOICEID And H_INHOSCHARGE_DETAIL.ITEMID=
D_SUMMARY_INFO.ITEMID
And H_INHOSCHARGE_DETAIL.INHOSID='0000284921' and H_INHOSCHARGE_DETAIL.currentinhosmark = 1
Group By T_InHosInvoiceItem.INVOICEID;
11.然后打印票据,结果如:
12、难点在于插入结算记录表的数据
注:难点在于票据打印