| 注册
home doc ppt pdf
请输入搜索内容

热门搜索

年终总结个人简历事迹材料租赁合同演讲稿项目管理职场社交

医院住院信息管理系统

文***享

贡献于2021-04-21

字数:70112

医院住院信息理系统


医院住院病区理包括病出入院理住院病区病医嘱录入发药计费中心药房药品理等工作医院理重环计算机技术医院理工作中应越广泛住院病区理计算技术实现信息传递网络化计费电算化提高理水提高收费透明度现实意义
文述医院住院信息理系统构建程该系统基实现病资料办理出入院手续医嘱录入中心药房发药计算机网络理
关键词
医院信息理 UML 三层技术 分布式运算
Abstract
This article introduces how to construct a Hospital Ward Information System with threetiered technology The System applies to UML BDE MIDAS distributed compute theory and a special architecture to make such functions patients check in and check out prescription input drugdelivery at center pharmacy and information of patient manage with computer networking
Keywords
Hospital Information System UML threetiered technologydistributed compute
目录
第章 前言1
11 课题项目背景1
12 课题现实意义1
第二章 综述1
第三章 系统需求分析1
31 系统目标1
32 前系统1
321出入院收费处……1
322住院病区…………2
323住院部中心药房……2
324西药库……………3
325问题总结…………3
33建议系统……4
331 概述……………………………………………………………4
332 出入院收费处子系统…………………………………………4
333 病区理子系统……………………………………………12
334 中心药房子系统……………………………………………15
335 西药库子系统………………………………………………20
第四章 方案证……………………………………………………………24
41 系统架构……………………………………………………………24
411客户机服务器(CS)体系结构基概念…………………25
412两层三层结构CS系统较……………………………25
412系统架构描述…………………………………………………27
42 开发工具选择………………………………………………………28
43 数库台选择……………………………………………………28
44系统开发关键技术………………………………………30
441 Delphi数库访问技术……………………………………30
442 Delphi5 三层结构开发技术………………………………32
第五章 总体设计……………………………………………………………35
51 系统模块设计………………………………………………………35
511 出入院收费应程序服务器…………………………………35
512 出入院收费系统客户端………………………………………40
513 病区理应服务器…………………………………………42
514 住院病区理客户端…………………………………………46
515 中心药房应服务器…………………………………………48
516 中心药房客户端………………………………………………49
52 数结构设计………………………………………………………50
521 系统数库ER图……………………………………………50
522 系统数表结构………………………………………………51
第六章 详细设计……………………………………………………………59
61 医嘱录入……………………………………………………………59
62产生发药记录……………………………………………………………62
63中心药房发药……………………………………………………………63
64住院费结算……………………………………………………………65
65印费清单………………………………………………………………67
第七章 测试性分析……………………………………………………68
71 功测试……………………………………………………………68
72 系统测试……………………………………………………………68
73 性分析……………………………………………………………68
结束语………………………………………………………………………68
致谢…………………………………………………………………………69
参考文献…………………………………………………………………………69

第章 前 言
11 课题项目背景
该医院二级甲等医院现门诊部住院部住院部设住院病区8设固定病床500张病床率80医院时设手术室住院部中心药房药库检验室CT室财务科出入院收费处等功辅助科室
适应中国加入WTO医疗服务市场激烈竞争环境级部门医院建设需必须采先进信息技术加强病住院期间费理增加收费准确性透明度加快处理病入院出院手续速度量满足病需求提高医院医疗市场中竞争力时需完善药品理减少药品损耗减少药品积压
医院部门中出入院收费处住院病区中心药房构成住院病服务链住院病出入院收费处办理入院手续入住某住院病区接受医院服务时产生医疗费出入院收费处核价收费办理出院手续出院住院病区项医疗服务执行者出入院收费处构成住院信息系统两部分住院病服务程中住院部中心药房根住院部医师开出医嘱配药药库作医院药品采购保供应部门中心药房供应药品间接住院病提供服务没中心药房药库子系统加入整住院信息理系统片面完善功辅助科室手术室CT室等然病提供服务减低项目复杂程度暂部门纳入项目范围
12 课题现实意义
医院实现信息化势趋济条件医院CS模式医院信息理系统传统两层结构CS系统中心服务器网络赖性需投入笔资金量力物力着业务量增加需断升级软硬件设备样投入资金较紧张中型医院说难负担课题目标利三层分布式计算技术较低档计算机硬件设备实现功性稳定性较完善医院信息理系统
第二章 综 述
医院信息理系统采CS模式两层结构CS应程序网络服务器赖性较延展性差程序发布较麻烦分布式结构出现解决两层CS结构存户数量增导致系统效率降延展性差等缺点现软件发展趋势采分布式结构已避免趋势
目前流行分布式系统结构分MicroSoft制定COMDCOMCOM+SUNIBM等众厂商倡导CORBA结构前者Windows台者UNIX台系统运行Windows台采COMDCOMCOM+结构
第三章 系统需求分析
31 系统目标
总体说系统目标提高医院住院病区理水提高医院住院费结算动化水提高工作效率加住院费透明度具体目标包括:
l 加快办理病入院出院速度实现病医嘱费资料住院全程动化理
l 准确记录病项医嘱费记录实现病费日清单住院费清单
l 快速提供准确项统计
l 准确记录种药品购入消耗情况实现病区药品理电算化网络化
32 前系统
受实际条件制约目前情况出入院收费处住院病区中心药房药库均手操作部门间通传统医嘱治疗单传递信息速度慢容易造成差错面分介绍部门情况
321 出入院收费处
行政隶属财务科出入院收费处担负工作包括:病办理入院手续终核住院费收取项住院费病办理出院手续财务科提供财务收入数病提供服务第环节环节住院费计算准确性直接影响医院济收入医院声誉出入院收费处特点:
(1)入院病住院号正确:住院号住院病唯标识关系续项病历医疗收费医疗统计正确性出入院处需办理入院时安排病住院号新入院新号重入院安排次住院住院号
(2)病住院费结算求样化:病住院费出院时次结清外住院时间长病费般会住院期间作中途结算中途结算时间范围根病求确定情况出入院算某段时间住院费病家属求结算中某段时间费余费留作次结算交出入院收费处需记录位病费收费情况
(3)出入院收费处根病区医嘱计算病费知道医嘱实际执行情况特殊情况造成收漏收病费情况
(4)级求医院需住院病列出住院费明细清单
(5)未社保网络联网情况需计算参加社保病住院费中社保支付部分负部分金额
(6)病办理入院出院集中某天某时刻高峰期会造成办理出入院手续积压出入院收费处办理出入院手续时间延长
322 住院病区
住院病区责病项治疗工作执行住院医师开出医嘱护士核执行具体治疗护理作相应治疗记录病治疗包括:口服药物项点滴注射检查化验手术治疗口服药物注射治疗需药物中心药房提供住院病区负责执行检查化验手术部分治疗项目功科室执行住院病区负责开出治疗单种治疗治疗项目身收费外外材料附加收费药物注射药物身收费外注射费部分血液化验项目化验项目费外抽血费费项目费起收取
医嘱容包括:执行时间治疗项目名称规格单位剂量次数开出医嘱医师姓名核执行医嘱护士签名
病医嘱分长期医嘱时医嘱两种
长期医嘱指需天执行医嘱时医嘱区长期医嘱医嘱开始执行时间外医嘱停止时间没停止时间医嘱直执行长期医嘱容种口服注射药物治疗床位诊金护理等治疗项目中口服药物注射药物需病区护士根长期医嘱记录天服药治疗单中然服药治疗单送中心药房领取药物长期医嘱治疗天执行次早新开出口服药物医嘱中午时候送服药中心药房午领药物执行注射立执行医嘱通治疗单中心药房领药立执行果午新开出长期医嘱午新入院病长期医嘱通治疗单中心药房领药保证医嘱午时候开始执行
时医嘱指天效医嘱执行次没停止时间时医嘱容药物口服注射治疗种检验化验治疗收费项目口服注射药物需根时医嘱开出治疗单中心药房领药立执行治疗
现市场济情况住院病区病治疗工作外监测病费情况发现费超交住院押金应通知病补交押金级求住院病区需位住院病印住院费日清单病清楚解费情况
综合面情况知道病区理系统必须中心药房系统联系知道药品发放情况药品规格单位否缺药必须出入院系统联系解病费情况
323 住院部中心药房
中心药房隶属药剂科理负责住院病区药品供应指导病区正确药物工作中心药房根病区提供长期医嘱服药治疗单发药长期医嘱服药中记录病区中病天口服药物项目包括名称规格单位剂量次数天发次治疗单中药物时医嘱需立执行药物发药次数限中心药房配药病区护士核误治疗单服药签名交病区执行
遇缺药情况中心药房应药库领药果药库缺药通知住院病区缺药更改医嘱
324 西药库
西药库负责全院药物购入保发放工作西药库药品公司送货单核药品名称规格价格数量填写药品进仓单医院药部门根需药库领药药库根发药情况开出药品出仓单西药库工作涉医院药品理方面包括:
药品价格理根物价部门指示关规定调整药品价格统计药品调价带差价
药品理新药通知门诊中心药房淘汰药品需通知停止接期限药品安排快期变质药品时报废
季度盘点月度结算报表月度结算报表统计药库中心药房西药房中种药品库存进销差价率实现差价季度盘点报表药品实际库存量帐面库存量作较
西药库工作难点药部门常需知道某种药品中药库否库存药库需时解药部门药品情况(存量量等)
325 问题总结
面住院部部门描述知现手工操作流程存着列缺陷:
l 作核算病住院费出入院收费处仅医生开出医嘱计算病住院费实际执行者病区护士中心药房出入院收费处收费员解医嘱实际执行情况现实操作中常存着医嘱漏开医嘱开出某种原没执行情况样造成计费准确病家属怀疑医院医疗收费准确性合理性
l 病医嘱病住院期间放住院病区办理病出院阶段结算时交出入院收费处核价程需定时间病住院时间长医嘱较时尤甚样造成办理出院高峰期出入院收费处积压许病家属等办理出院壮观场面
l 医嘱病历没实现电子化法医院系统实现病资料交换享
l 作住院部病区药品供应部门中心药房动病区护士转抄医嘱服药治疗单配药病区服药治疗单否医嘱相符药品发病区情况中心药房知道没效机制保证没执行治疗药物时退中心药房造成病区药品理混乱局面
l 负责供应药品西药库知道中心药房实际库存药品情况药品效期理实际做法医院药品进行科学效理
l 手操作缘统计报表手工计算制作效率低容易差错更法作型复杂统计先进理模式法医院应直接影响医院理水提高
出入院收费处住院病区中心药房西药库信息彼间效沟通形成信息孤岛造成问题原需四者间建立快速效信息交换通道数动快速处理传递减少手操作
33 建议系统
图31 系统活动图
331 概述
通医院住院部原系统解知道医院住院部业务财务病区药剂三部门组成传统手工信息交换处理手段已满足业务增长需
系统改进重点引入计算机网络技术数库技术部门紧密连接起计算机取代手计算通网络进行信息传递取代手写传递达提高理服务水增强效率减少差错目
通病住院系统活动图知道住院信息理系统出入院收费系统住院病区理系统中心药房发药系统药库理系统组成系统运行信息病资料医嘱信息治疗记录费信息药品资料药品信息病交费记录等信息组成活动包括:办理入院手续录入医嘱执行治疗计算费收取费办理出院药品购入药品发出等信息保存子系统中分系统处理需信息交换时通网络实现信息资料享交换实现分布式计算
332 出入院收费处子系统
3321系统功需求
编号

分类
R11
记录位住院病资料
明显
R12
录入新入院病资料
明显
R13
查询住院病资料
明显
R15
根病入院时间住院病区病办理入院
明显
R16
记录收取病笔住院押金时供查阅收费结算
明显
R17
区已结算未结算住院押金
隐藏
R18
显示病现处状态:未入院等入院住院阶段结算办理出院出院
明显
R19
记录病次住院资料
隐藏
R110
修改病基资料住院号住院次数修改
隐藏
R111
保证位病唯住院号
隐藏
R112
通核医嘱核病费
明显
R113
通补充医嘱补充费
明显
R114
减病费记录
明显
R115
删修改病区原医嘱
隐藏
R116
标记核完成医嘱费记录作收取病费
明显
R117
显示病费情况
明显
R118
费价格产生费天价格新生成费现行价格
隐藏
R119
新补充医嘱产生费果药品应扣减中心药房库存
明显
R120
核完成病印交款通知单
明显
R121
核完成应系统中改变病状态便步操作
隐藏
R122
收款结算时灵活选择结算住院押金
明显
R123
根实际需选择结算费时间阶段
明显
R124
计算结算范围住院费
明显
R126
病交款印收
明显
R127
记录次收款资料
明显
R128
记录次收款中现金IC卡金额
明显
R129
保存收款收查阅作废重新印
明显
R130
区费记录中已收款未收款部分
明显
R131
收款收时间范围印费清单
明显
R132
结算等出院病办理出院
明显
R136
位收款员印缴款日报表阶段报表
明显
R137
位收款员独立帐号密码收款员必须输入正确帐号密码操作出入院收费系统
明显
R138
查询医疗项目名称规格单位价格等资料
明显
3322 非功性需求
户界面素 系统操作界面话框窗口鼠标键盘进行操作数录入求操作员具定windows系统操作力够阅读医嘱基财务知识
文件 系统终EXE执行文件发布外操作说明书开发活动相关文档
硬件 服务器求1G CPU256M存40G硬盘空间求兼容windows2000 操作系统SQL SERVER2000数库系统客户端求600MHz CPU128M存20G硬盘空间求兼容windows98网络连接设备求100M10M太网络技术兼容
性特征 求时少5台客户端连接住院病区客户端连接少20台计算位病费1分钟般应10秒系统力保证繁忙时间系统响应速度
安全 系统通操作员帐号密码操作权限保证系统会户操作
3323 伪需求
数服务器windows2000 操作系统SQL SERVER2000数库系统客户端windows98操作系统开发工具delphi5
3324 系统模型
33241 例模型

例图32
例说明
例:
病办理入院
参者:
住院病收费员住院理子系统
目:
需住院病办理入院手续记录相关住院信息
概述:
需住院病出入院收费处求办理入院手续收费员病安排住院号住院病区病区理系统接收住院病
类型:

交叉引:
R11R12R13R14R15R18R19R110R111录入病资料例
典型事件发生程:
参者动作
系统响应
1 入院病出入院收费处求办理入院

2 收费员根姓名住院号查找病资料
3 返回病资料(住院号姓名址等)
4.收费员根系统返回信息选择操作:
a 没病信息应输入病资料
b 病信息应核病资料

5 收费员安排住院病区输入住院时间
6 修改病资料相关属性

7 保存入院记录
8 住院病区理系统接收病
9 设定病住院状态
供选择程:
第4点系统没入院病信息应录入病资料
入院病参加社会医疗保险办理入院设定病社保相关属性

例:
收取住院押金
参者:
住院病(发起者)收费员
目:
记录住院病交纳住院押金
概述:
住院病办理入院出入院收费处交纳住院押金收费员记录病交纳住院押金情况
类型:

交叉引:
R16R17R18
典型事件发生程
参者动作
系统响应
1 住院病出入院收费处交纳住院押金

2 收费员住院号查找病资料
3 返回病资料
4 收费员手写份押金收

5 收费员根收容输入押金信息确认
6 保存押金信息
供选择程:
收费员输入错误押金资料作作废处理

例:
计算住院费
参者:
住院病区理系统(发起者)收费员
目:
计算病住院费
概述:
住院病区理系统传送病医嘱费记录求出入院收费处计算病住院费收费员核病医嘱指示计算费完成保存病医嘱住院费
类型:

交叉引:
R112R113R114R115R116R117R118R119R120R121R138核医嘱例正费例
典型事件发生程
参者动作
系统响应
1 住院病区理系统传送病医嘱费记录
2 系统更新病状态
3 收费员核病医嘱收费应正少收费应补开医嘱
4 作相应补发药退药处理
5 收费员指示计算费
6 计算显示费分类合计
7 收费员完成计算操作
8 更新病状态保存医嘱费记录计算费记录做标记
9 收费员印交款通知单病


例:
费结算
参者:
住院病(发起者)收费员
目:
结算病住院费
概述:
住院病出入院收费处求结算住院费收费员根计算费记录计算住院费金额收款印收款收
类型:

交叉引:
R122R123R124R125R126R127R128R129R130R131R133R134R135
典型事件发生程
参者动作
系统响应
1 住院病出入院收费处求结算住院费

2 收费员根病住院号查询病住院费
3 显示计算病住院费
4 收费员设定需结算住院押金
5显示未结算住院押金
6 收费员根实际情况进行操作:
a补充病费
b正病费
c病求设定结算费时间范围
7 重新计算显示病费病应补交金额
8 病交款选择:
a 现金交款
b 通IC卡交款
9 显示费结余情况
10 收费员完成结算印收款收
11 保存结算信息标识次结算费记录保存交款(现金IC卡)发票资料
12 收费员根病求印住院费清单


例:
办理出院手续
参者:
住院病区理系统(发起者)收费员住院病
目:
住院病办理出院手续
概述:
住院病区理系统定义病办理出院收费员病住院费已全部结清情况住院病办理出院手续
类型:

交叉引:

典型事件发生程
参者动作
系统响应
1 住院病区理系统定义病办理出院传送未结算医嘱费记录
2 更新病状态
2 收费员计算病费
3 保存医嘱显示计算病住院费
4 收费员结算病费
5 保存结算信息
6 办理病出院
7 保存病出院时间出院病区更新病状态

例:
录入病资料
参者:
收费员(发起者)
目:
新增修改病基资料
概述:
收费员输入新病资料修改已病资料
类型:

交叉引:

典型事件发生程
参者动作
系统响应
1 收费员输入病住院号
2 系统返回病信息
3 收费员选择:
a新增加位病
b修改病资料

4 收费员保存病资料
5 保存病资料返回结果:
a 住院号没重复保存
b 住院号重复求重新输入外住院号

例:
核录入医嘱
参者:
收费员(发起者)
目:
核住院病医嘱发现漏掉医嘱应补充
概述:
收费员计算机记录医嘱实际医嘱发现少录入应补充录入
类型:

交叉引:
R23R24
典型事件发生程
参者动作
系统响应
1 收费员启动核录入操作输入病住院号
2 返回病已医嘱显示已产生费情况
3 收费员发现需增加条新医嘱
4 动写入默认字段容
5 收费员输入执行时间治疗项目代码
6 返回项目信息包括:名称规格单位价格等

7 根返回情况系统选择:
a 药品库存缺药求重新输入
b 没治疗项目求重新输入代码
8 收费员输入剂量次数法
9 法附加治疗项目动增加附加项目
10 长期医嘱应输入停止时间

11 收费员指示保存医嘱
12 保存医嘱

例:
费正
参者:
收费员
目:
正医嘱错误录入等原造成收病费
概述:
收费员找出需正费医嘱然输入正数量价格产生正记录
类型:

交叉引:

典型事件发生程
参者动作
系统响应
1 收费员病住院号住院次数查找病未结算医嘱
2 返回病医嘱
3 收费员选择正医嘱
4 计算显示医嘱产生费情况
5 收费员输入正数量价格
5 重新计算显示正费情况
6 收费员确认正操作
7 保存正记录作退药处理
33242 出入院收费子系统类图:

图33 出入院系统类图
33243 动态模型

图34核费序图


图35结算费序图



图36收取住院押金序图
333 病区理子系统
3331 功性需求
编号

分类
R21
出入院子系统接收等入院病
明显
R22
保存病区前收住病医嘱费资料
明显
R23
住院病区操作员录入病长期医嘱时医嘱根医嘱法生成附加医嘱项目
明显
R24
录入医嘱必须确认产生执行记录
明显
R25
产生发药记录住院病区操作员驱动长期医嘱天发药次时医嘱次数限
明显
R26
药物治疗项目执行记录发中心药房子系统项目系统保存
隐藏
R27
中心药房标示缺药药品发药录入医嘱
明显
R28
保存中心药房发回发药记录作治疗记录
隐藏
R29
根治疗记录产生住院费
明显
R210
位位院病印日费清单
明显
R211
显示病费情况交费住院押金情况
明显
R212
定义病出院阶段结算
明显
R213
出入院处提供病医嘱费记录
明显
R214
病办理转科手续
明显
R215
区病次结算医嘱费
隐藏
R216
清理出院病医嘱费记录保持系统运行速度
明显
3332 非功性需求
户界面素 系统操作界面话框窗口鼠标键盘进行操作数录入求操作员具定windows系统操作力够阅读医嘱基财务知识
文件 系统终EXE执行文件发布外操作说明书开发活动相关文档
硬件 服务器求1G CPU256M存40G硬盘空间求兼容windows2000 操作系统SQL SERVER2000数库系统客户端求600MHz CPU128M存20G硬盘空间求兼容windows98网络连接设备求100M10M太网络技术兼容
性特征 求系统繁忙时间操作基保持流畅住院病区客户端连接少20台开位病医嘱2秒整病区做发药处理1分钟
安全 系统通操作员帐号密码操作权限保证系统会户操作
3333 伪需求
数服务器windows2000 操作系统SQL SERVER2000数库系统客户端windows98操作系统开发工具delphi5
3334 系统模型
33341 例模型

图37病区理例图
例说明:
例:
接收病入院
参者:
住院病区护士(发起者)出入院收费系统
目:
接收已出入院收费系统办理入院手续病
概述:
出入院收费系统办理病入院住院病区护士病区理系统中接收病信息住院押金信息费信息通知住院收费系统病已入院
类型:

交叉引:
R21R22
典型事件发生程
参者动作
系统响应
1 住院病区护士查询病区等入院病空病床
2 返回病区空病床等入院病科医生列表
3 选操作空病床够增加病床

4 护士选择接收病床位医生

5 护士确认操作
6 出入院收费系统接收病信息住院押金信息费信息更改出入院收费系统中病状态住院

例:
医嘱录入
参者:
住院病区护士(发起者)
目:
住院医生开出医嘱录入计算机中保存产生费记录提供
概述:
住院病区护士医生开出医嘱录入计算机中核确认作产生发药记录
类型:

交叉引:
R23R24
典型事件发生程
参者动作
系统响应
1 住院病区护士启动录入操作输入病住院号
2 返回病已医嘱显示已产生费情况
3 护士增加条新医嘱
4 动写入默认字段容
5 护士输入执行时间治疗项目代码
6 返回项目信息包括:名称规格单位价格等

7 根返回情况系统选择:
a 药品库存缺药求重新输入
b 没治疗项目求重新输入代码
8 护士输入剂量次数法
9 法附加治疗项目动增加附加项目
10 长期医嘱应输入停止时间

11 护士指示保存医嘱
12 保存医嘱

例:
发药
参者:
住院病区护士(发起者)中心药房发药系统
目:
病区护士核确认医嘱产生计算住院费治疗记录
概述:
住院病区护士指示病区理系统扫描保存医嘱产生求中心药房发药信息
类型:

交叉引:
R23R24
典型事件发生程
参者动作
系统响应
1 住院病区护士指示发药
2 返回未发药医嘱

3 扫描医嘱根医嘱类型容产生请求发药信息系统根治疗项目情况选择操作:
a 项目缺药需执行产生发药信息
b 缺药提示停止医嘱
c 需执行产生发药信息

4 中心药房理系统传送请求发药信息

5 已产生发药信息医嘱作发药标记防止天次产生发药信息
6 中心药房系统发送消息发药成功
7 接收发药信息

例:
产生费
参者:
住院病区护士(发起者)
目:
利发药信息治疗记录产生费记录
概述:
住院病区护士指示病区理系统动扫描发药记录产生费记录
类型:

交叉引:
R23R24
典型事件发生程
参者动作
系统响应
1 住院病区护士系统动指示产生费
2 返回天发药记录

3 扫描记录产生费记录

4 扫描发药记录产生附加费记录

5 保存费记录

例:
办理出院
参者:
住院病区护士(发起者)出入院收费系统
目:
需出院病办理出院
概述:
住院病区护士定义病出院时间出入院传送医嘱费记录等出入院病办理出院手续出入院收费处办理出院手续病区护士清空床位
类型:

交叉引:
R212R213R215R216
典型事件发生程
参者动作
系统响应
1 住院病区护士输入出院病住院号出院时间
2 停止病全部长期医嘱

3 出入院收费处传送医嘱费记录
4 出入院收费处病计算住院费结算

5 出入院收费处办理病出院
5 保存费记录
6 住院病区护士清空病床
7 修改病病床信息
33342 病区理子系统类图:

图38病区理子系统类图












33343 动态模型:

图39病区发药序图
334 中心药房子系统
3341 功性需求
编号

分类
R31
记录种药品库存量
明显
R32
根病区传送治疗记录产生发药记录扣减库存
明显
R33
种药品设定保证库存量库存足药品应提示需领药生成领药申请
明显
R34
发药记录科室印出方便病区核
明显
R35
保存发药记录备查
明显
R36
提示病区缺药
明显
R37
动接收保存西药库发药信息
明显
R38
手工输入西药库出仓单
明显
R39
根输入药品盘点数量生成盘点报表
明显
R310
根盘点数量校正药品库存量
明显
R311
药库发药信息确认增加药品库存
明显
3342 非功性需求
户界面素 系统操作界面话框窗口鼠标键盘进行操作数录入求操作员具定windows系统操作力够阅读医嘱基财务知识
文件 系统终EXE执行文件发布外操作说明书开发活动相关文档
硬件 服务器求1G CPU256M存40G硬盘空间求兼容windows2000 操作系统SQL SERVER2000数库系统客户端求600MHz CPU128M存20G硬盘空间求兼容windows98网络连接设备求100M10M太网络技术兼容台工作站配备窄行印机台
性特征 求系统繁忙时间操作基保持流畅中心药房客户端连接少4台接收病区传送发药信息时够立提示配药员
安全 系统通操作员帐号密码操作权限保证系统会户操作
3343 伪需求
数服务器windows2000 操作系统SQL SERVER2000数库系统客户端windows98操作系统开发工具delphi5
3344 系统模型
33441 例模型

图310 中心药房系统例图
例说明:
例:
领药
参者:
中心药房(发起者)药库理系统
目:
药库领取药品增加中心药房药品库存
概述:
中心药房提出领药请求药库理系统根领药请求发药开出药品出仓单中心药房核出仓单药品确认领药中心药房增加药品库存
类型:

交叉引:
R31R33R37R38R36
典型事件发生程
参者动作
系统响应
1 中心药房查询系统记录领药需求
2 返回领药需求记录
3 中心药房修改系统记录领药需求
4 保存领药需求记录
5 中心药房印发送数形式药库理系统发送领药请求

6 药库理系统接收发药请求

7 药库理系统发药传送发药信息中心药房输入出仓单
8 接收保存发药信息
9 中心药房确认药库发药信息
10 增加药品库存量
11 需提示病区缺药病区理系统发送缺药信息
12 病区系统发送缺药信息

例:
发药
参者:
病区理系统(发起者)配药员
目:
根病区理系统发送发药请求配药相应减少药品库存量发药信息发送回病区理系统
概述:
病区理系统系统发送发药请求配药员查发药请求配药确认系统扣减药品库存病区理系统回传发药信息系统印配药单方便核
类型:

交叉引:
R32R33R34R35
典型事件发生程
参者动作
系统响应
1 病区理系统传送请求发药信息
2 保存请求发药信息
3 配药员查阅请求发药信息
4 保存请求发药信息
5 配药员确认发药
6 扣减药品库存生成发药记录
缺药系统查询药库理系统药库否库存产生领药信息没提示病区理系统缺药

7 系统根药品库存情况选择
a 库存库存限作处理
b 库存库存限生成领药信息
8 配药员印发药单

10 病区理系统接收发药信息

33442 中心药房发药子系统类图
图311 中心药房发药子系统类图
33443 动态模型:

图312药房发药序图
335 西药库子系统
3351 功性需求
编号

分类
R41
保存笔药品进仓记录增加库存
明显
R42
保存笔药品出仓记录减少库存
明显
R43
产生保存进仓单
明显
R44
产生保存出仓单
明显
R45
根药品供应商发票选择结算进仓记录
明显
R46
保存次结算数
明显
R47
药品进仓时登记药品批号效期增加药品库存
明显
R48
药品出仓时仓员选择发出批号减少药品库存
明显
R411
根输入药品盘点数量生成盘点报表
明显
R412
根盘点数量校正药品库存量
明显
R413
种药品设定保证库存量库存足药品应提示需领药生成采购计划
明显
R414
接收药部门领药申请
明显
R415
根领药申请动生成出库单扣减库存
明显
R416
药品进行价格调整通知药部门调整价格
明显
R417
统计药品价格调整带差额
明显
R418
录入保存修改药品信息
明显
3352 非功性需求
户界面素 系统操作界面话框窗口鼠标键盘进行操作数录入求操作员具定windows系统操作力够熟悉药库日常理运作
文件 系统终EXE执行文件发布外操作说明书开发活动相关文档
硬件 服务器求1G CPU256M存40G硬盘空间求兼容windows2000 操作系统SQL SERVER2000数库系统客户端求600MHz CPU128M存20G硬盘空间求兼容windows98网络连接设备求100M10M太网络技术兼容台工作站配备窄行印机台
性特征 求系统繁忙时间操作基保持流畅中心药房客户端连接少4台接收病区传送发药信息时够立提示配药员
安全 系统通操作员帐号密码操作权限保证系统会户操作
3353 伪需求
数服务器windows2000 操作系统SQL SERVER2000数库系统客户端windows98操作系统开发工具delphi5
3354 系统模型
33541 例模型

图313药库理系统例图
例说明:
例:
药品进仓
参者:
药品供应商(发起者)仓员
目:
登记药品入库
概述:
药品供应商仓员提供入库药品货行联仓员根货行核药品品种产规格数量资料输入计算机中印药品入库单
类型:

交叉引:
R41R43R47R418
典型事件发生程
参者动作
系统响应
1 药品供应商提供货行

2 仓员输入供应商代码
3 显示供应商资料
4 仓员生成进仓单
5 生成张进仓单写入进仓单资料
6 仓员输入条药品进仓信息包括:单号编码数量批号产进货价

7 仓员提示确认输入
8 保存进仓单容相应增加药品库存
8 仓员印进仓单


例:
购药货款结算
参者:
药品供应商(发起者)药品会计
目:
结算购药货款
概述:
药品供应商药品会计提供入库药品发票联求结算购药款药品会计根药品进仓记录发票联核结算货款余未结算进仓记录留作结算
类型:

交叉引:
R45R46
典型事件发生程
参者动作
系统响应
1 药品供应商提供发票联

2 药品会计查询供应商供药记录
3 显示该供应商药品进仓资料
4 药品会计核发票进仓记录标记结算进仓记录
5 计算货款总额
6 药品会计指示完成结算
8 保存结算信息

例:
发药
参者:
中心药房理系统(发起者)仓员
目:
中心药房发药
概述:
中心药房药库提出领药求仓员根求药品库存情况发药中心药房开出出仓单发送发药信息
类型:

交叉引:
R42R44R413R414R415
典型事件发生程
参者动作
系统响应
1 中心药房系统传送请求领药信息印领药申请单
2 显示申请领药信息
3 仓员指示生成出仓单
4 生成张出仓单
5 仓员输入发出药品代号数量

6 仓员确认输入
7 保存保存出仓记录发出发药信息
8 中心药房系统确认发药
9 扣减库存量

例:
盘点
参者:
药品供应商(发起者)药品会计
目:
结算购药货款
概述:
药品供应商药品会计提供入库药品发票联求结算购药款药品会计根药品进仓记录发票联核结算货款余未结算进仓记录留作结算
类型:

交叉引:
R45R46
典型事件发生程
参者动作
系统响应
1 药品供应商提供发票联

2 药品会计查询供应商供药记录
3 显示该供应商药品进仓资料
4 药品会计核发票进仓记录标记结算进仓记录
5 计算货款总额
6 药品会计指示完成结算
8 保存结算信息

例:
药价调整
参者:
药品供应商(发起者)药品会计
目:
结算购药货款
概述:
药品供应商药品会计提供入库药品发票联求结算购药款药品会计根药品进仓记录发票联核结算货款余未结算进仓记录留作结算
类型:

交叉引:
R45R46
典型事件发生程
参者动作
系统响应
1 药品供应商提供发票联

2 药品会计查询供应商供药记录
3 显示该供应商药品进仓资料
4 药品会计核发票进仓记录标记结算进仓记录
5 计算货款总额
6 药品会计指示完成结算
8 保存结算信息





33542 药房理系统类图:

第四章 方案证
医院信息化建设需投入量力财力完备医院信息系统中心服务器数通讯网络数库台客户端计算机客户端应程序构成规模较医院投入数百万计资金构建功完备性高系统系统型机作中心服务器光纤作干昂贵网络设备中型医院说难负担笔费负担配置较低较简单系统家需建立现代化理医院说规模功需求实样数处理量寡已
传统信息处理系统数处理服务器完成数通网络传输服务器网络求较高系统投入着业务量储存数客户端连接数量断增加系统负荷会越越种负荷达定程度时候会造成系统运行稳定性降需投入笔资金升级系统
课题研究思路利价格相低廉设备构建系统量减少服务器网络负荷业务量增加会整系统负荷太影响
41 系统架构
讨医院信息系统架构前首先回顾计算机网络发展程计算机网络历发展阶段:
机终端(MainframeTerminal)模式
文件服务器工作站(FileServerWorkstation)模式
客户机服务器(ClientServer)模式
浏览器服务器(BrowserServer)模式
应软件角度客户机服务器网络模式软件结构简称CS结构浏览器服务器网络模式软件结构简称BS结构现CS结构BS结构广泛应机终端(MainframeTerminal)模式文件服务器工作站(FileServerWorkstation)模式新构建系统中已少
ClientServer(CS)前数库应程序中极流行种方式尤网络技术充分发展前系统采种方式进行构造优点计算机工作务分客户端服务器端完成样利充分合理利系统资源常提Browserserver(BS)结构采CS结构基思想浏览器作系统前端实现理想中瘦客户系统工作量没真正减少部分客户端工作量交付服务器端完成考虑技术风险问题系统采CS结构
411客户机服务器(CS)体系结构基概念
典型客户机服务器包括客户机(称前端)服务器(称端)客户机作访问处理远程服务器数服务器作接收处理客户机数请求时客户服务器时请求服务需服务器决定样处理请求许客户机服务器结构中客户机服务器外部分通常讲三层客户机服务器结构中中间层
4111 企业逻辑
企业逻辑系统处理访问数定义属性行关系法政策限制企业逻辑整系统核心决定整系统数组织处理保存没企业逻辑系统数堆序数已医院信息理系统中典型企业逻辑:
病资料录入保存理规
病办理出入院手续流程
医嘱录入规
病医嘱产生治疗记录规
中心药房发药制度
费生成规
病费理制度等
企业逻辑设计源需求分析中系统功需求约束定义系统模型面象分布式处理概念中企业逻辑功象实现象包括专门存取数数象(Data Object)代表实际世界中实体事物实体象(Entity Object)负责企业功企业法象(Business Rule Object)等象功象统称企业象(Business Object)
4112客户机
客户机(Client)指请求服务计算机微型机型机型机具服务器发送服务请求显示相关数功客户机软件少包括两类:访问服务器数应程序网络接口软件应程序服务器发送服务请求显示相关数网络接口软件提供种数传输协议没少实现企业逻辑客户机称瘦客户(ThinClient)然客户非完全没处理企业逻辑力相反部分全部企业逻辑设计客户机中承担定数处理力样客户胖客户(flatclient)
4113 服务器
服务器(Server)指提供服务计算机够等客户请求然处理请求服务器必须够根企业逻辑处理客户请求服务器软件少包括两类:处理客户机请求应程序网络接口软件传统两层结构CS系统中企业逻辑数库台存储程触发器视图完整性约束完成
三层结构CS系统中服务器分专门负责数储存数服务器运行企业逻辑中间层应服务器组成
412 两层三层结构CS系统较
两层CS结构客户端应程序通ODBCSQL LinkTCPIP直接连接数库服务器进行通信完成数添加修改删检索等操作系统结构图开发验两层CS结构存缺点:
(1)两层CS结构中客户端应程序直接连接数库服务器样数库服务器消耗定资源处理客户端连接工作行方式处理客户端处理求连接客户端达定数量时数库服务器运行效率会断降
(2)两层CS结构中唯线数库服务器种结构成系统性重隐患果数库服务器某种原停止工作整系统趋瘫痪
(3)两层CS结构应程序分发较麻烦需*.d11支持DELPHI例客户端需安装BDE dll文件外客户端需配置ODBCBDE
(4)采瘦客户模式CS系统处理集中服务器系统中计算机时候处空闲状态CPU资源存储空间没效利系统升级服务器原数库服务器法利造成资源投资浪费果胖客户模式然利系统中客户机资源减少数库库服务器负荷企业逻辑存台客户机中更新程序修改企业逻辑客户端程序更新系统中客户端计算机分布广泛数量众会维护工作带便
正两层CS结构存述缺点足CS结构问世日起研究员断致力改进完善述存问题解决方法客户端数库服务器间加入企业逻辑(Business Logic)层该层通常存放台称应服务器(Application Server)机器三层CS逻辑结构图41示

图41
新加入企业逻辑层负责企业逻辑执行工作数服务器连接工作方面接收客户端处理请求转送数库服务器方面数服务器查询结果处理返回送客户端数库服务器需专心响应应服务器数访问请求方面减少连接数量方面负责企业逻辑执行工作样幅度减轻数库服务器工作负担加快响应速度系统整体工作效率提高企业逻辑功划分子模块分置应服务器中实现企业逻辑分布式计算样提高系统响应速度充分利系统中配置较高计算机处理力
外应服务器提供负载衡容错处理Database Pooling(连接池)Object Pooling(象池)等技术限度增加系统资源利程度()ng t Pooooling
综述采三层CS结构具优点:
(1)提高系统安全性三层CS结构数连接放应服务器两层结构数连接放客户端样程度提高数库服务器安全性
(2)网络负载衡许客户端应程序需连接应程序服务器时候MIDAS够分配客户端应程序应服务器中均应程序负荷
(3)容错处理系统中某应程序服务器发生障时客户端应程序够动寻找外应程序服务器维持运作时客户端应程序编辑数文件形式保存磁盘中
(4)分发简单客户端应程序须MIDAS.d11支持果需更改企业逻辑话需更新应服务器程序
(5)实现分布式计算方面充分利系统中计算机资源方面减少障引起系统功丧失
结合医院信息理系统实际情况采三层结构数台较高档PC作数服务器应服务完全建立功较完善医院信息理系统
413 系统架构描述
需求规格说明书描述医院住院信息理系统分成出入院收费系统住院病区理系统中心药房发药系统等三功相独立子系统子系统均数服务器应服务器客户端实现独立运行操作子系统间通特定接口彼交换数系统架构图42示:

整系统台机器实现数服务器应服务器客户端放计算机实现出入院收费系统中心药房发药系统台数服务器应服务器加干客户端组成住院病区理系统组数服务器应服务器干住院病区服务病区理位置相(楼层栋楼)系统理员根病区处理负荷灵活配置病床数病区单独安排组数服务器应服务器数病床较少病区组数服务器应服务器客户端根需连接应服务器
样架构系统构建带灵活性根病区病区医嘱般会病区计算机录入实际情况果该病区住院病区理系统数服务器应服务器客户端均台计算机实现该病区系统部分操作均机完成需发送接收数时网络采种结构处减轻系统网络负担二业务量增加整系统影响少某病区服务器负荷增加病区服务器基没什影响需升级时需升级负荷重服务器三某病区服务器出现障时影响该服务器病区病区没影响种结构存着类似胖客户存维护困难等缺点
三层结构应服务器提供数接口方法接口供客户端访问调应服务器根企业逻辑数服务器存取数处理数结果返回客户端应器器完全完全
42 开发工具选择
现流行RAD(Rapid Application Develop)工具MicroSoft公司Visual BasicVisual C++Inprise 公司DelphiC++ Builder然开发工具特点易性开发速度应程序运行速度方面考虑Delphi疑中佼佼者选择开发工具时需考虑问题包括:
l 开发工具身性
l 稳定性性
l 视化开发
l 面象技术
l 提供4GL
l 开放性
l 团队开发力
l 数库访问力
l 支持ODBC数库访问接口
l 支持ADOOLE DB
l 支持数库产品扩展力
l 数访问速度
l 解决方案支持力
l 支持Windows DNA
l 支持CORBA
l 支持分布式结构
l 技术支持市场环境等
DelphiInprise公司1995年推出RAD开发工具现版已升级70DelphiObject Pascal语言基础加强IDE功增加VCL(视化组件库)非常适合快速开发windows应程序Delphi开发windows应程序代码控件件形式封装VCL中开发员时需控件拖拉设计窗口中然输入属性值拉LdowsVisual C++相开发工作简单程序运行速度相差简单易语言ect Pascal著称Visual Basic相易性毫逊色Delphi终产生程序机器码计算机直接执行运行速度Visual Basic产生伪代码高Delphi优势体现:
面象软件工程 开发基组件软件已成软件开发趋势Delphi仅开发出功强基VCL组件支持MicroSoft组件象模型COM轻松开发出ActiveX控件样通创建集成组装组件满足基象重象分布解决方案真正实现面象高效软件开发
层分布式系统开发 基层结构分布式系统CS应程序开发需求断增长Delphi支持MicroSoftWindows分布式Internet应程序体系结构Windows DNA支持CORBACORBAObject Management Group90年代初开发规范IBMSUN等众厂商支持适种操作系统台网络环境
强数库编程力 数库编程Delphi强项Delphi5著名BDE引擎外提供ActiveX数象ADO支持数库编程提供更灵活性外新改进层分布式应程序组件MIDAS开发基数库动态Web应程序提供方便
InternetIntranet开发 软件分布通讯Windows 环境进行CS应程序开发问题Internet技术够减少两问题Delphi5提供Internet开发技术解决方案包括:支持HTML4XMLInternet Express支持Web中间件Internet控件VCL等户方便开发出Web应程序创建电子商务系统
智开发环境 包括IDE种导调试踪技术等
外Woll2Woll Software公司开发InforPower2000第三方控件组件Delphi中原Data AccessData Controls组件功增强版开发数库应程序更加方便快捷
43 数库台选择
数库台选MicroSoft 公司SQL Server 2000SQL Server 2000SQL Server新版前版提高性性质量易性Microsoft SQL Server 2000 增加种新功成规模联机事务处理 (OLTP)数仓库电子商务应程序优秀数库台SQL Server 2000拥型数库系统基特征保持windows环境界面友操作简单优点成windows环境开发中型CS系统较流行数库系统传统桌面数库系统相SQL Server 2000区:
⑴.面集合面记录面集合面记录应该CS系统桌面数库系统质区桌面数库系统中整数表面整数表记录桌面数库系统中第条条条条等概念非常普遍CS系统中没概念客户程序服务器发送服务请求时数数表字段构成服务器数子集请求通SQL语句实现CS系统中面整数库子集合
CS系统中TTable组件桌面数库系统通发出数库操作命令必须通BDE转换成SQL代码数库识执行仅限制数库访问降低系统运行效率面举简单事例加说明:假设TTable组件访问SQL数库数表中获条条记录时者字段时需首先执行Tablel.Open命令BDE转换成SQL语句数表开数时(数字段数记录)服务器会返回庞数集系统消耗包括网络消耗想知
⑵.数安全理SQL数库数安全性理方面桌面数库系统强仅数库访问进行口令验证够特定数库象进行限制包括视图数表存储程更重设置户权限通GrantRevoke命令户组户授权收权
⑶.数完整性理SQL数库言允许服务器端定义业务规验证数完整性强制客户端程序必须接受相业务规约束样利集中维护规然桌面数库系统进行数完整性理应程序中定义验证规需验证方必须写入相相似代码样利维护样规外SQL数库完整性约束般创建数表时定义定义数表部分通存储程触发器等形式数表中独立出
⑷.数库发访问理SQL数库采优化锁定策略允许户时访问服务器互相干扰种技术限制客户访问前正户访问数表常进行编辑(增删改)请求服务器保存修改数桌面数库系统明确完全锁定策略说前正户数法访问更法编辑果试图访问修改数系统产生错误提示信息
⑸ 事务控制系统发生错误时保持数库致性完整性更新 SQL Server 数库数应程序事务完成务事务系列语句(选择插入更新删)构成逻辑工作单元果事务执行程中没遇错误事务中修改成数库永久部分果遇错误数库做修改桌面数库系统般提供事务控制功
44 系统开发关键技术
441 Delphi数库访问技术
Delphi5通BDE(Borland Database Engine)ADO(ActiveX Data Object)访问数库项目BDE访问数面重点介绍Delphi5基BDE数访问技术
l 基BDE层两层结构Delphi应程序包括列组件:
l 包含数感知(dataaware)控件户界面
l 物理数表访问数数集(dataset)
l 数集数源(datasource)象连接数集数感知控件
l 数库组件事务控制连接理
l 会话组件语分隔数访问操作
BDE架构图43示:

4411数库数集
数库包含存数表信息包含信息表说明数库中包含信息例数表索引象SQL存储程象
组件面板DataAccess页中包含数集组件代表数库中包含数表者存储数表数构成逻辑数表必须程序中包含数集组件数库信息
DataAccess页中基BDE数集组件公开DatabaseName属性指定数库该数库包含数表处理数集中信息数表设置应程序时数集绑定数库特定信息前必须属性指定数库设置值赖值
数库BDE名DatabaseName属性指定BDE名BDE名代表数库加数库设置信息名相关联设置信息数库类型(QraclcSybaseInterBaseParadoxdBASE等)决定BDE系统理工具者SQL创建理BDE名
数库Paradox者dBASE数库果ParadoxdBASE数库DatabaseName值设数库表目录
明确数库组件数库组件(TDatabase)表示应程序中数库果没明确加入数库组件根DatabaseName属性动创建时数库组件果明确数库组件DatabaseName值该数库组件DatabaseName属性值
4412 session
session(会话)隔离数库数存取操作数库连接理数库群组BDE发生session环境中session指定应session中数库设置信息允许覆盖BDE系统理工具指定缺省行
session:
理BDE名创建新名删名修改已名更改缺省设置会影响session够编写更新永久加入BDE配置文件中
二级应程序数库连接结束时进行控制数库没数集动作时保持数库连接占会释放资源样会改善速度减少网络流量没数集动作时保持数库连接KeepConnections属性应设true(缺省值)
理存取级应程序中口令保护ParadoxdBASE文件存取口令保护ParadoxdBASE数表数集必须开数表时数集需session组件提供口令覆盖缺省行(否需口令口令话框会出现)程序提供口令果级应程序扩展二级级应程序创建通户接口取户授权信息转服务器(表)层次需户名口令远程数库服务器时授权信息改变
指定特定Paradox目录位置网络享Paradox数库存放数表记录锁定信息时文件网络目录Paradox数库存放查询结果时文件私目录
果应程序需时次存取数库必须session隔离数库否扰乱数库理事务逻辑(包括动性事务)执行查询线程时应程序会步存取危险
非需session否缺省session
4413 数库连接
BDE包括数库连接驱动程序Delphi标准版包括数库驱动程序:ParadoxdBASEFoxProAccessODBC适配器允许BDEODBC驱动程序通支持ODBC驱动程序应程序够ODBC兼容数库Delphi企业版包括远程数库服务器驱动程序SQLLinks安装驱动程序远程数库服务器(InterBaseOracleSybaseInformixMicrosoftSQL服务器DB2)进行联系
基BDE级应程序基BDE二级应程序唯区:数库远程数库服务器
4414 事务
事务作数库数表组动作组动作确认(永久效)前必须全部成功执行果动作失败动作恢复(未做)事务确保事务某动作发生问题时数库会停留致状态
例银行应程序中金额帐户转帐户需利事务保护动作果帐户金额减少时帐户余额增加时发生错误时恢复事务数库然正确总余额
缺省时BDE应程序提供隐含事务控制应程序隐含事务控制时独立事务会数集中写数库记录隐含事务时保证少记录更新突致数库视图方面写入数库行数发生事务隐含事务控制导致网络传输量较低程序效率时隐含事务控制会保护记录逻辑操作前述金额转帐
果显式控制事务选择效时间启动确认恢复事务环境中开发应程序时尤应程序远程SQL服务器工作时应该显式控制事务利缓存更新方法需事务次数降低
4415 缓存更新
DE缓存更新提供支持进行缓存更新时应程序数库接收数做修改暂存数然缓存更新数集缓存更新单事务中应数库
缓存更新够降低事务次数减少网络流量缓存数应程序受事务控制意味着存中数时应程序改变数表数做改变直进行缓存更新止缓存更新易变数应程序适合想更新合数库时会产生遇突
CachedUpdates属性告诉基BDE数集进行缓存更新更新完成时通数集组件数库组件者某特定更新象进行没外处理(:联合查询时)程更新作数库时必须OnUpdateRecord事件联合视窗(joinedview)构成数表执行更新
442 Delphi5 三层结构开发技术
4421 三层应系统结构
三层CS应程序分离运行机器逻辑单元三层应程序通局域网Internet通讯交换数具备集中企业逻辑分布式数处理瘦客户端等优点三层应程序包括列三部分:
l 客户端应程序:户计算机提供户操作界面
l 应程序服务器:存客户端访问网络中心提供数服务
l 远程数服务器:提供关系数库理系统

图44 三层应程序结构图
三层应程序开发员Delphi开发客户端应程序应程序服务器终户说三层应程序客户端应程序外观操作传统两层结构缓存更新(cached update)应程序没什区结构客户端应程序更象单层结构应程序均dataaware控件显示数集数三层应程序客户端数集应服务器IAppServer界面获取保存数客户端通连接组件获IAppServer界面连接组件理应服务器连接通讯协议连接组件组件包括:TDCOMConnectionTSocketConnectionTWebConnectionTOLEnterpriseConnectionTCorbaConnection三层应程序客户端数集ClientDataSet利ClientDataSetRemoteServer属性指定连接应服务器连接组件名称利ProviderName指定数集提供数应服务器DatasetProvider象名称
应程序服务器包括提供客户端应程序访问IAppServer界面远程数模块远程数模块三种类型:
TRemoteDataModule:双重接口动操作服务器(dualinterface Automation server)果客户端应程序DCOMHTTPSockets者OLEnterprise种类型
TMTSDataModule:双重接口动操作服务器(dualinterface Automation server)种远程数模块时应程序服务器DLL动态连接库形式MTS起安装客户端应程序DCOMHTTPSockets者OLEnterprise
TCorbaDataModule:CORBA服务器CORBA客户端提供数
数模块样远程数模块放置非视化控件外需应程序服务器中客户端访问数集设置dataset provider组件
接收客户端数请求数库服务器取请求数数包然传送客户端数集操作做Providing(提供)
客户端应程序接收更新数数库源数集提交数标记未提交数未更新数返回客户端应程序作处理操作Resolving
dataset provider通常象单层两层应程序样BDEADO数集根需数库会话组件
4422 MIDAS技术简介
Delphi三层应程序开发技术基Multitier Distributed Application Services Suite(MIDAS)客户端应程序应程序服务器间通MIDASDLL通讯MIDASDLL必须存windows\SystemWINNT\System32目录
MIDAS层应系统中应服务器会输出Provider接口客户端应程序接口中提供许方法客户端应程序调便远程应程序服务器通讯处理数
层应系统中客户端应程序应程序服务器间传递数通种Inprise定义数类型OleVariant数封包形式传递客户端应程序应程序服务器间传递数包括应程序服务器传递客户端数客户端更新数更新数发生错误造成错误数MIDAS传递数时会先压缩然次传送节省网络资源
客户端开始连接应程序服务器应程序服务器会数库中取出客户端需数建立新数封包然通IAppServer接口OleVariant形式传递客户端应程序客户端收数封包会通客户端MIDASServer整理加入ClientDataSet数快储存中
数封包达客户端解析成ClientDataSet数户数进行修改更新工作客户端数数库服务器数没联系客户端应程序服务器间网络连接会断开网络资源客户端中客户数存贮客户端存硬盘空间客户端处理数速度会非常迅速
客户端完成数更新操作客户端应程序调TClientDataSetApplyUpdate方法更新数提交应程序服务器请求数更新客户端应程序服务器传递更新数没更新数会提交样节省网络资源加快执行速度回传更新数封装名字Delta数封包中应程序服务器Resolver负责解析Delta数封包中数更新回数库

图45 三层读取数流程图

图46 三层更新数流程图
果更新程中发生错误先调应服务器TdataSetProvider组件OnUpdateError事件处理函数调客户端TclientDataSet组件OnReconcileError事件处理函数
4423 MIDAS 30 新功
Delphi5 30 版MIDASMIDAS 30 MIDAS 20 重改善MIDAS 30 实现三重目标执行效率兼状态象状态象属性予程序更弹性控制权
MIDAS 30 中远程数模块实现IAppServer接口代Delphi 34 中IDaraBroker接口时取消TProvider组件实现IProvider接口客户端TClientDataSet取数更新数时直接IAppServer接口中方法取IAppServer接口需通存取TClientDataSetAppServer实现MIDAS 30减少客户端应程序服务器通讯时访问网络接口次数
状态象状态象MIDAS 30 远程数模块默认状态象TclientDataSetTdataSetProvider取数TclientDataSetTdataSetProvider联系会断开TdataSetProvider维护TclientDataSet信息TdataSetProviderTclientDataSet提供服务Delphi5 远程数模块MTS时加入象pooling机制客户端应程序重复
第五章 总体设计
系统架构设计方案医院住院信息理系统分成出入院收费系统住院病区理系统中心药房发药系统子系统台数库系统应程序服务器客户端程序组成应程序服务器负责客户端程序提供企业象访问服务客户端程序负责数输入显示操作
51 系统模块设计
511 出入院收费应程序服务器
出入院收费应程序服务器运行窗体FinServer远程数模块DM数模块RmeciveRec线程类组成功结构图51示:

图51 出入院收费应程序服务器功结构图
5111 运行窗体
作启动应程序服务器包含定时器(TTimer)象定时启动ReciveRec线程中心药房发药系统数接口接收中心药房系统发药信息
5112 DM数模块
作ReciveRec线程类提供数访问象包括TSession数会话象ses1两TDatabase数库连接象medicalfin分连接中心药房数库出入院收费数库四TwwQuery象分接收发药信息模块Tdm类ReceiveRec公方法ReciveRec线程调接收发药信息DMDoRecieve公模块创建ReciveRec线程
5113 ReciveRec线程类
作中心药房数库接收发药信息成员方法包括:Create线程初始化Execute执行线程oncomplete线程结束释放界区
5114 FinServer远程数模块
作出入院收费客户端提供数访问服务TFinServer类包括数访问接口服务调接口供类方法调私成员函数面TFinServer类声明:
TFinServer class(TRemoteDataModule IFinServer)
Fin TDatabase出入院数库连接象
NewReqRec TwwQuery插入新发药请求
NewReqRecMX TwwQuery插入新发药记录
qryPLorder TwwQuery病需发药长嘱
qryPSorder TwwQuery病需发药嘱
bm1 TBatchMove数传输象
qryPReqRec TwwQuery病次发药请求
qryPReqMX TwwQuery病次发药非药品发药记录
NeedAddCost TwwQuery次发药中需产生附加治疗记录
upLPerformtime TwwQuery更新长嘱执行时间
upSPerformtime TwwQuery更新嘱执行时间
qryPatInf TwwQuery病前住院属性
qryGen TwwQuery动态SQL查询象
dspGen TDataSetProvider动态SQL查询接口
upReqRec TwwQuery传输发药请求更新状态
upReqMX TwwQuery传输发药记录更新状态
medical TDatabase中心药房数库连接象
tabMReqMX TwwTable中心药房发药记录接口
tabReqRec TwwTable中心药房发药请求接口
qryPMedReqMX TwwQuery病次发药药品发药记录
qryPatient TwwQuery病资料象
upPatient TUpdateSQL病资料更新象
dspPatient TDataSetProvider病资料接口
qryCostArea TwwQuery病未结费起止时间
qryPayInf TwwQuery病交费信息
dspPayInf TDataSetProvider病交费信息接口
qryPay TwwQuery病结算记录
dspPay TDataSetProvider病结算记录接口
qryCostList1 TwwQuery病费清单类型1
qryCostList2 TwwQuery病费清单类型2
dspCostList1 TDataSetProvider病费清单类型1接口
dspCostList2 TDataSetProvider病费清单类型2接口
qrySumCount TwwQuery病费分类汇总
qrySumPrepay TwwQuery病住院押金合计
qryUnPay TwwQuery病未结费汇总
dspUnPay TDataSetProvider病未结费汇总接口
dspPrepay TDataSetProvider病住院押金明细接口
qryPrepay TwwQuery病住院押金明细
SetPatientIO TwwQuery更新病出院信息
SetPatientdata TwwQuery更新病资料
qrySorder TwwQuery病嘱
dspSOrder TDataSetProvider病嘱接口
tabOrdertimes TwwTable医嘱执行次数表
dspOrdertimes TDataSetProvider医嘱执行次数表接口
tabInsurance TwwTable报销类型表
tabInsuKind TwwTable社保类型表
tabInsuArea TwwTable社保区域表
dspInsurance TDataSetProvider报销类型表接口
dspInsuKind TDataSetProvider社保类型表接口
dspInsuArea TDataSetProvider社保区域表接口
tabSex TwwTable性表
dspSex TDataSetProvider性表接口
upPrepay TUpdateSQL住院押金更新象
PatientIn TQuery生成病住院记录
upPatientInf TQuery更新病资料
upPatientIO TQuery更新病住院记录
qryPALOrder TwwQuery病长嘱
dspPALOrder TDataSetProvider病长嘱接口
dspPASOrder TDataSetProvider病嘱接口
qryPASOrder TwwQuery病嘱
qryCZD TwwQuery正记录明细
qryCZM TwwQuery正记录汇总
dspCZD TDataSetProvider正记录明细接口
dspCZM TDataSetProvider正记录汇总接口
qryACost TwwQuery查询正附加费
dspACost TDataSetProvider查询正附加费接口
dspCZCost TDataSetProvider查询费正数量接口
sumCZCost TwwQuery查询费正数量
sumCZACost TwwQuery查询附加费正数量
dspCZACost TDataSetProvider查询附加费正数量接口
qryPCZ TwwQuery查询某医嘱正记录
dspPCZ TDataSetProvider查询某医嘱正记录接口
qryPCZA TwwQuery查询某医嘱附加治疗正记录
dspPCZA TDataSetProvider查询某医嘱附加治疗正记录接口
upPCZ TUpdateSQL费正记录更新象
upPCZA TUpdateSQL附加费正记录更新象
qryPCZCost TQuery病次正记录
upCZPerform TwwQuery更新正记录执行状态
qryIncomeInf TwwQuery统计收入分类汇总
qryOtherFee TwwQuery查询病区伙食生活品收入情况
qryCashIn TwwQuery统计现金收入
qryTotDayprepay TwwQuery统计住院押金收入
qryDayPrepay TwwQuery查询收费员天住院押金明细
qryFaP TwwQuery收费员天开出发票明细
dspDayPrepay TDataSetProvider查询收费员天住院押金明细接口
dspFaP TDataSetProvider收费员天开出发票明细接口
upDayPrepay TUpdateSQL收费员住院押金更新象
upSOrder TUpdateSQL更新病嘱象
InsCost TwwQuery保存费记录
dspInsCost TDataSetProvider保存费记录接口
InsCZ TwwQuery保存费正记录
dspInsCZ TDataSetProvider保存费正记录接口
deleCost TwwQuery删时费记录
dspdeleCost TDataSetProvider删时费记录接口
deleCZ TwwQuery删时费正记录
dspDeleCZ TDataSetProvider删时费正记录接口
dspInsFP TDataSetProvider保存发票接口
InsFP TwwQuery保存发票
InsPay TwwQuery保存结算信息
InsCash TwwQuery保存现金信息
dspInsPay TDataSetProvider保存结算信息接口
dspInsCash TDataSetProvider保存现金信息接口
InsICCard TwwQuery保存ICCARD信息
dspInsICCard TDataSetProvider保存ICCARD信息接口
upFPNo TwwQuery更新发票号码
dspupFPNo TDataSetProvider更新发票号码接口
updatePrepay TwwQuery更新住院押金记录状态
dspupPrepay TDataSetProvider更新住院押金记录状态接口
qryPay2 TwwQuery结算信息
dspPay2 TDataSetProvider结算信息接口
dspFP TDataSetProvider发票信息接口
qryFP TwwQuery发票信息
qryIC TwwQuery结算中ICCard收款
qryCash TwwQuery结算中现金收款
dspIC TDataSetProvider结算中ICCard收款接口
dspCash TDataSetProvider结算中现金收款接口
upPaydata TQuery更新结算记录中交款金额字段
dspUpPaydata TDataSetProvider更新结算记录中交款金额字段接口
LoadOC TwwQuery时费表装入费记录
delOrdercost TwwQuery删费记录表中费记录
delePay TwwQuery作废结算记录
delePrepay TwwQuery作废结算记录接口
SaveLOrder TwwQuery保存长嘱
SaveSOrder TwwQuery保存嘱
SaveAOrder TwwQuery保存附加治疗医嘱
SaveCZ TwwQuery保存正记录
DeleteLOrder TwwQuery删长嘱
DeleteSOrder TwwQuery删嘱
DeleteAOrder TwwQuery删附加治疗医嘱
DeleteCZ TwwQuery删正记录
qryUnperfrom TwwQuery查询未确认费记录
dspUnPerform TDataSetProvider查询未确认费记录接口
qryBank TwwQuery银行表
dspBank TDataSetProvider银行表接口
qryIntimes TwwQuery病历次住院明细
dspIntimes TDataSetProvider病历次住院明细接口
dspTimesFee TDataSetProvider汇总住院费接口
qryTimesFee TwwQuery汇总住院费
qryCode TwwQuery代码查询
dspCode TDataSetProvider 代码查询接口
procedure dspPatientBeforeUpdateRecord(Sender TObject
SourceDS TDataSet DeltaDS TClientDataSet UpdateKind TUpdateKind
var Applied Boolean)
procedure dspPrepayBeforeUpdateRecord(Sender TObject
SourceDS TDataSet DeltaDS TClientDataSet UpdateKind TUpdateKind
var Applied Boolean)
procedure dspPCZBeforeUpdateRecord(Sender TObject SourceDS TDataSet
DeltaDS TClientDataSet UpdateKind TUpdateKind
var Applied Boolean)
procedure dspPCZABeforeUpdateRecord(Sender TObject
SourceDS TDataSet DeltaDS TClientDataSet UpdateKind TUpdateKind
var Applied Boolean)
procedure dspSOrderBeforeUpdateRecord(Sender TObject
SourceDS TDataSet DeltaDS TClientDataSet UpdateKind TUpdateKind
var Applied Boolean)
private
{ Private declarations }
判定医嘱否需执行
function NeedCreatRec(DDayTDatetimeSourceTDataset)integer
产生发药记录
function CreatReqRecMX(DDayTDatetimeSourceTDatasetlorsinteger)integer
产生发药请求
function CreatReqRec(DDayTDatetimeinidintegerlorsinteger)integer
产生附加治疗费
Procedure CreatAddCost(DDayTDatetimeinidintegerintimesinteger)
设定更新字段值
procedure SetParams(FUpdateSQLTUpdateSQLDeltaDSTClientDataSetUpdateKindTUpdateKind)
保存医嘱
Procedure SaveOrder(inidintimesinteger)
protected
class procedure UpdateRegistry(Register Boolean const ClassID ProgID string) override
病医嘱产生发药记录
procedure PerformOrder(inid intimes Integer wardid OleVariant
dday TDateTime) safecall
病发药
procedure PPerformOrder(inid intimes Integer wardid OleVariant)
safecall
统计病费
procedure CountPatientFee (inid intimes Integer var totfee OleVariant
day1 day2 TDateTime) safecall
办理病出院
procedure SetPatientOut(inid intimes Integer OutDoc
OutWard OleVariant var ReValue OleVariant) safecall
办理病入院
procedure PatientCheckIn(inid intimes payid state Integer inward
indoc OleVariant indate TDateTime) safecall
病执行正
procedure PerformCZ(inid intimes Integer wardid OleVariant) safecall
查询收费员业务资料
procedure GetDayInfo(var Dec OleVariant op Integer day
day1 TDateTime) safecall
作废结算
procedure SetPayDelete(Inid intimes op Integer pay Double) safecall
public
{ Public declarations }
end
512 出入院收费系统客户端
出入院收费系统客户端功办理病出入院手续收费等操作提供操作界面模块结构图52示:
图52 出入院收费系统客户端模块结构图
5121 全局数模块dm:Tdm
作提供出入院收费应服务器连接finance TDCOMConnection供模块调通程包括:
procedure CountQianKuan(inidintegerintimesintegervar dataQianFeeDan)
作计算病欠费单参数
function SmallToBig(smalldouble)string
作写金额转变成写
procedure StoreFPNo(SourTDataset DecTstrings columninteger ninteger
spacstring)
作发票单号码连续号码分组然写目TStrings象中
function Uplimit(xdouble)integer
作求浮点数整数
qryGen TwwClientDataSet作出入院收费应服务器传送动态SQL语句接收返回结果
5122 收费员操作模块 fShouFee TfShouFee
客户端程序控模块作显示前收费员天业务发生情况调功模块
5123 病资料理模块 frmPatient TfrmPatient
作查询增加病修改病资料调病交费查询模块病住院押金理模块病住院费汇总模块病费结算模块办理病入院转科模块社保病社保属性设定模块
模块中利象qryPatient TwwClientDataSet应服务器dspPatient TDataSetProvider接口取病基资料模块部调成员方法:
procedure EnableEdit()
作激活病资料属性修改
procedure DisableEdit()
作关闭病资料属性修改
procedure EnableButton()
作激活功模块调钮
procedure DisableButton()
作关闭功模块调钮
5124 病交费查询模块frmPay TfrmPay
作显示病历次结算信息印欠费单住院费清单
5125病住院押金理模块 frmPrepay TfrmPrepay
作理病次住院住院押金增加作废
5126办理病入院转科模块 frmCheckIn TfrmCheckIn
作设定办理病入院转科参数:入院时间入院科室办理入院医师然调应服务器PatientCheckIn程办理病入院
5127病住院费汇总模块 frmPIntimes TfrmPIntimes
作显示病历次住院费汇总印
5128社保病社保属性设定模块 frmSetInsu TfrmSetInsu
作设定参加社保病次住院社保类型工作序号住院次数
5129病费结算模块 fPatientFee TfPatientFee
作病办理结算设定病结算费时间阶段结算住院押金单计算病应补交金额输入病实际补交数模块中调补充病费模块正费模块查阅发票模块印发票模块病住院费汇总模块
模块成员方法:
procedure GetUnpay(inidinteger)计算未结算费阶段
procedure ShowData()显示费信息
procedure ComputFee()计算费包括住院费社保费
function GetPrepay()double计算结算金金额
procedure ShowPatInf (inidintegerintimesinteger)
procedure ShowCost (inidintegerintimesinteger)显示病费信息
procedure SetFP ()设定发票数
procedure SetPatientOut ()设定出院结算
51210 补充病费模块 fAddition TfAddition
作需补充录入医嘱追加时医嘱中然作补充发药
51211 病住院费正模块
作显示病次住院长期医嘱时医嘱供操作员执行具体正操作时选择显示医嘱费正情况执行具体医嘱正操作时调执行正模块
51212 医嘱正模块 frmOPCZ TfrmOPCZ
作选定医嘱做费正操作模块中显示前医嘱费情况附加治疗费情况操作员正前医嘱属附加治疗执行次数正确认调应服务器退药程PerformCZ中心药房系统确认退药减费
512 13印发票模块 FP TFP
作做结算确认操作记录结算信息发票信息现金收款ICCard收款信息参加结算
费记录保存历史表中然时表中删原费记录
51214 查阅发票模块 fFPInf TfFPInf
作显示某次结算资料包括发票信息收款信息重新印发票次结算病立欠(交款足)补交款调服务器SetPayDelete方法作废发票
513 病区理应服务器
病区理应程序服务器结构出入院收费应程序服务器相似运行窗体WardServer远程数模块DM数模块MakeDailyList线程类组成

图53病区理应服务器功结构图
5131 WardServer远程数模块
作住院病区客户端提供数访问服务TWardServer类包括数访问接口方法调接口供类方法调私成员函数面TWardServer类声明:
TWardServer class(TRemoteDataModule IWardServer)
WardDB TDatabase病区数库连接
qryPLorder TwwQuery病发药长期医嘱
NewReqRecMX TwwQuery新增条发药记录
NewReqRec TwwQuery新增条发药请求
qryPatInf TwwQuery病资料
finance TDatabase出入院数库连接
medical TDatabase中心药房数库连接
NeedAddCost TwwQuery需执行附加治疗
upLPerformtime TwwQuery更新长嘱执行时间
upSPerformtime TwwQuery更新嘱执行时间
qryPSorder TwwQuery病发药时医嘱
qryLorder TwwQuery病前长嘱
UpdateSQLlorder TUpdateSQL病前长嘱更新象
dspLorder TDataSetProvider病前长嘱接口
qrySorder TwwQuery病前嘱
UpdateSQLSorder TUpdateSQL病前长嘱更新象
dspSorder TDataSetProvider病前长嘱接口
qryAddorder TwwQuery病前附加医嘱
qryCostInfo TwwQuery 病费资料
qryWardPatient TwwQuery病区病床
dspWardPatient TDataSetProvider病区病床接口
tabOTimes TwwTable医嘱执行次数表
tabPerform TwwTable医嘱法表
dspOTimes TDataSetProvider医嘱执行次数接口
dspPerform TDataSetProvider医嘱法表接口
tabOperator TwwTable操作员表
dspOperator TDataSetProvider操作员表接口
tabDoctor TwwTable医生表
dspDoctor TDataSetProvider医生表接口
qryGen TwwQuery动态SQL语句查询
dspGen TDataSetProvider 动态SQL语句查询接口
dspAddorder TDataSetProvider病前附加医嘱接口
qryCode TwwQuery代码查询
dspCode TDataSetProvider代码查询接口
upPatio TwwQuery更新病入院记录
upPatin TwwQuery更新病资料
qryPatientIn TwwQuery病住院信息
bm1 TBatchMove数传送象
tabPatient TTable病资料表
upBed TQuery病转入病床
qryPReqMX TwwQuery病非药物治疗记录
qryPMedReqMX TwwQuery病药物发药记录
qryPReqRec TwwQuery病发药请求
tabMReqMX TwwTable中心药房数库接口
tabFReqMX TwwTable出入院数库接口
tabReqRec TwwTable中心药房发药请求接口
upReqMX TwwQuery更新发药记录状态
upReqRec TwwQuery更新发药请求状态
qryPPatient TwwQuery查询病资料
qryWReqMX TwwQuery病区发药非药物发药记录
qryWMedReqMX TwwQuery病区发药药物发药记录
qryWReqRec TwwQuery病区发药请求
upWReqMX TwwQuery更新病区发药记录状态
upWReqRec TwwQuery更新病区发药请求状态
qryPALorder TwwQuery病长嘱
qryPASorder TwwQuery病嘱
dspPALorder TDataSetProvider病长嘱接口
dspPASorder TDataSetProvider病嘱接口
qryCZM TwwQuery正记录汇总
qryCZD TwwQuery正记录明细
dspCZD TDataSetProvider正记录明细接口
dspCZM TDataSetProvider正记录汇总接口
sumCZCost TwwQuery查询费正数量
dspCZCost TDataSetProvider查询费正数量接口
dspCZACost TDataSetProvider查询附加费正数量
sumCZACost TwwQuery查询附加费正数量接口
qryACost TwwQuery查询正附加费
dspACost TDataSetProvider查询正附加费接口
dspPCZ TDataSetProvider查询某医嘱正记录
qryPCZ TwwQuery查询某医嘱正记录接口
qryPCZA TwwQuery查询某医嘱附加治疗正记录
dspPCZA TDataSetProvider查询某医嘱附加治疗正记录接口
upAddOrder TUpdateSQL附加治疗项目更新象
qryGen2 TwwQuery出入院数库动态SQL语句查询
dspGen2 TDataSetProvider出入院数库动态SQL语句查询接口
cleanPatient TwwQuery病床删病
qryBed TwwQuery科室病床
dspBed TDataSetProvider科室病床接口
UpdateBed TUpdateSQL科室病床更新象
qryNurseClass TwwQuery病护理级
updateNurse TwwQuery更新病护理级
qryPReqMX2 TwwQuery病发药药物发药记录
upPCZ TUpdateSQL费正记录更新象
upPCZA TUpdateSQL附加费正记录更新象
qryPCZCost TQuery病次正记录
upCZPerform TwwQuery更新正记录执行状态
qryWReqMX2 TQuery病区发药药物发药记录
StopOrder TwwQuery停止长期医嘱
qryAllLorder TwwQuery病长嘱
qryAllSorder TwwQuery病嘱
qryAllCZ TwwQuery病正记录
qryAllADD TwwQuery病附加治疗项目
tabFLOrder TwwTable出入院接收长嘱接口
tabFSOrder TwwTable出入院接收嘱接口
tabFAOrder TwwTable出入院接收附加治疗项目接口
tabFCZ TwwTable出入院接收正记录接口
upStat1 TwwQuery更新病区数库病状态
upStat2 TwwQuery更新出入院数库病状态
qryDailyList TwwQuery病费日清单
dspDailyList TDataSetProvider病费日清单接口
procedure dspSorderBeforeUpdateRecord(Sender TObject
SourceDS TDataSet DeltaDS TClientDataSet UpdateKind TUpdateKind
var Applied Boolean)
procedure dspLorderBeforeUpdateRecord(Sender TObject
SourceDS TDataSet DeltaDS TClientDataSet UpdateKind TUpdateKind
var Applied Boolean)
procedure dspAddorderBeforeUpdateRecord(Sender TObject
SourceDS TDataSet DeltaDS TClientDataSet UpdateKind TUpdateKind
var Applied Boolean)
procedure dspBedBeforeUpdateRecord(Sender TObject SourceDS TDataSet
DeltaDS TClientDataSet UpdateKind TUpdateKind
var Applied Boolean)
procedure dspPCZBeforeUpdateRecord(Sender TObject SourceDS TDataSet
DeltaDS TClientDataSet UpdateKind TUpdateKind
var Applied Boolean)
procedure dspPCZABeforeUpdateRecord(Sender TObject
SourceDS TDataSet DeltaDS TClientDataSet UpdateKind TUpdateKind
var Applied Boolean)
private
{ Private declarations }
判定医嘱否需执行
function NeedCreatRec(DDayTDatetimeSourceTDataset)integer
产生发药记录
function CreatReqRecMX(DDayTDatetimeSourceTDatasetlorsinteger)integer
产生发药请求
function CreatReqRec(DDayTDatetimeinidintegerlorsinteger)integer
产生附加治疗费
Procedure CreatAddCost(DDayTDatetimeinidintegerintimesinteger)
设定更新字段值
procedure SetParams(FUpdateSQLTUpdateSQLDeltaDSTClientDataSetUpdateKindTUpdateKind)
protected
class procedure UpdateRegistry(Register Boolean const ClassID ProgID string) override
病医嘱产生发药记录
procedure PerformOrder(inid intimes Integer Wardid OleVariant
DDay TDateTime) safecall
查询病住院费
procedure PatientCostInf(inid intimes Integer var info OleVariant)
safecall
接收入院病
procedure PatientCheckIn(inid intimes Integer wardid docnum
bed OleVariant) safecall
病发药
procedure PPerformOrder(inid intimes Integer wardid OleVariant)
safecall
病区发药
procedure WPerformOrder(wardid OleVariant) safecall
更新护理级
procedure UpdateNurseClass(inid intimes payid Integer) safecall
病执行正
procedure PerfromCZ(inid intimes Integer wardid OleVariant) safecall
病办理出院转科阶段结帐
procedure PatientOut(inid intimes payid Integer wardid OleVariant
Mode Integer) safecall
病区生成日费清单
procedure WardMakeDailyList(wardid OleVariant listdate TDateTime)
safecall
public
{ Public declarations }
end
5132 DM数模块
作MakeDailyList线程类提供数访问象包括TSession数会话象ses2两TDatabase数库连接象db1db2分连接中心药房数库出入院收费数库三TwwQuery象分产生日费清单模块Tdm类MakeDaily公方法MakeDailyList线程调接收发药信息DMWMakeDailyList公模块创建MakeDailyList线程
5133 MakeDailyList线程类
作出入院收费数库接收费信息然产生日费清单成员方法包括:Create线程初始化Execute执行线程oncomplete线程结束释放界区
5134 运行窗体
作启动应程序服务器包含定时器(TTimer)象定时启动MakeDailyList线程产生日费清单
514 住院病区理客户端
住院病区理客户端作住院病区接收病入院录入医嘱发药办理出院等操作提供操作界面




图54住院病区理客户端模块结构图
5141 全局数模块dm:Tdm
作提供出入院收费应服务器连接ward TDCOMConnection供模块数访问象
5142 运行窗体 frmMain TfrmMain
客户端程序控模块负责显示病区现病床情况院病状态护理级调功模块模块成员方法包括:
开前病医嘱
procedure openorder
刷新床位情况病状态护理级
procedure BedListRefesh(wardidstring)
清空前床位
procedure ClearBed()
病转床
ChangeBed(sourceTlistitemdecTlistitem)
5143 医嘱录入模块 frmOrderIn TfrmOrderIn
作录入病医嘱单病发药病长期医嘱时医嘱网格控件显示窗体左方网格控件显示前医嘱应附加治疗项目通网格控件控制医嘱录入实现输入修改删控制动输入等功
5144 病住院费正模块
作显示病次住院长期医嘱时医嘱供操作员执行具体正操作时选择显示医嘱费正情况执行具体医嘱正操作时调执行正模块
5145 医嘱正模块 frmOPCZ TfrmOPCZ
作选定医嘱做费正操作模块中显示前医嘱费情况附加治疗费情况操作员正前医嘱属附加治疗执行次数正确认调应服务器退药程PerformCZ中心药房系统确认退药减费
5146 日费清单模块 frmMDL TfrmMDL
选择产生印某天日费清单
5147 办理出院模块 frmPatientOut TfrmPatientOut
作设定应服务器方法PatientOut参数办理病出院转科阶段结帐
5148 接收入院病模块 frmPatientIn TfrmPatientIn
作设定入院病床位住院医生然调服务器方法PatientCheckIn接收入院病
515 中心药房应服务器
中心药房应程序服务器结构出入院收费应程序服务器相似运行窗体MeddServer远程数模块DM数模块PerformMedReq线程类组成

图55 中心药房应服务器功结构图
5151 窗体
启动应服务器
5152 远程数模块 TMedServer
作中心药房客户端提供数访问服务TMedServer类包括数访问接口方法调接口供类方法调私成员函数面TMedServer类声明:
TMedServer class(TRemoteDataModule IMedServer)
db1 TDatabase中心药房数库连接
qryReqRecGroup TwwQuery发药请求分类
qryReqRec TwwQuery发药请求
qryReqRecMX TwwQuery前发药请求发药记录集
dspReqRecGroup TDataSetProvider发药请求分类接口
dspReqRec TDataSetProvider发药请求接口
dspReqRecMX TDataSetProvider前发药请求发药记录集接口
qryGen TwwQuery动态SQL查询
dspGen TDataSetProvider动态SQL查询接口
ses3 TSession会话象
procedure RemoteDataModuleCreate(Sender TObject)
procedure RemoteDataModuleDestroy(Sender TObject)
private
{ Private declarations }
performThreadPerformMedReq发药线程
procedure CompletePerform(SenderTObject)发药处理程
protected
class procedure UpdateRegistry(Register Boolean const ClassID ProgID string) override
执行发药方法
procedure PerformReq(inid Integer Reqid TDateTime data OleVariant
op Integer) safecall
public
{ Public declarations }
end
5153 全局数模块 dmTdm
发药线程PerformMedReq提供数访问象
5154 发药线程类 PerformMedReq
客户端触发根客户端发药记录设定情况作确认扣减药品库存量操作时间条发药线程运行
516 中心药房客户端程序
中心药房客户端程序功显示病区传送发药信息中心药房应服务器指示发药操作

图56 中心药房客户端程序模块结构图56
5161 全局数模块 dmTdm
提供模块数访问象
5162 发药操作模块 frmMain TfrmMain
发药科室发药时间分类发药请求位病发药请求长期医嘱时医嘱正药品分类显示调应服务器方法PerformReq出发应服务器发药操作



















52 数结构设计
521 系统数库ER图


522 系统数表结构
(1)病资料表Patientdata
KEY:Inid
序号
字段名
字段含义
数类型
否空
1
Inid
住院号
int

2
Name
姓名
Varchar(10)

3
IDcard
身份证号
Varchar(18)

4
Sex

smallint

5
Brithday
生日
datetime

6
Hometown
籍贯
Varchar(10)

7
Address

varchar(50)

8
Post
邮政编码
varchar(6)

9
Phone
电话
varchar(30)

10
Unit
单位
varchar(50)

11
dwaddr
单位址
varchar(50)

12
dwtele
单位电话
varchar(13)

13
dwpost
单位邮编
varchar(6)

14
Country
国籍
varchar(10)

15
Insurance
医疗保险
smallint

16
Iccard
社保ICCard号
varchar(20)

17
Intimes
住院次数
int

18
Payid
结算次数
int

19
Preout
预出院
int

20
Inward
住院科室
varchar(4)

21
Stat
状态
int

22
Indate
入院时间
datetime

23
Outdate
出院时间
datetime

24
connect
联系
varchar(10)

25
ConAddress
联系址
varchar(50)

26
ConPhone
联系电话
varchar(30)

27
ConUnit
联系单位
varchar(50)

28
Relationship
病关系
varchar(10)

29
Operator
操作员
int

30
Nurse
护理级
int

31
InsuArea
社保区域
smallint

32
PatientKind
病类型
smallint

33
Docnum
住院医生
varchar(10)

附:Stat:0新病1等入院2住院3阶段结算4办理出院5已出院6转科
Sex:0女1男
Insurance:0公费1劳保2医疗保险3费
(2)病住院记录表 PatientIO
KEY:Inid+Intimes
序号
字段名
字段含义
数类型
否空
1
Inid
住院号
int

2
Intimes
住院次数
int

3
InWard
入院科室
varchar(4)

4
OutWard
出院科室
varchar(4)

5
InDate
入院时间
datetime

6
OutDate
出院时间
datetime

7
InsuNo
社保工作序号
Varchar(10)

8
InsuKind
社保类型
smallint

9
InsuTimes
社保住院次数
smallint

10
InDoc
介绍入院医生
varchar(5)

11
WardDoc
住院医生
varchar(5)

12
OutDoc
出院医生
varchar(5)


(3)病住院押金表 Prepay
Key Inid+timestemp
序号
字段名
字段含义
数类型
否空
1
Inid
住院号
int

2
Intimes
住院次数
int

3
PayDate
交款日期
datetime

4
BillNo
收号
varchar(20)

5
Prepay
押金金额
numeric(18 2)

6
OperatorNo
操作员号
int

7
Delet
作废标志
smallint

8
DeleDate
作废日期
datetime

9
DeleOperator
作废操作员号
int

10
timestemp
录入时间
datetime

11
State
状态
smallint

12
Pay
结算标识
float


(4)病结算表 Paydata
KeyPay
序号
字段名
字段含义
数类型
否空
1
Inid
住院号
int

2
Wardid
病区号
Varchar(4)

3
Intimes
住院次数
int

4
Payid
结算次数
int

5
begindat
费开始日期
datetime

6
Enddate
费结束日期
datetime

7
Drugfe
药费
numeric(18 2)

8
CDrugfee
中药费
numeric(18 2)

9
Treatfee
治疗费
numeric(18 2)

10
Examfee
化验费
numeric(18 2)

11
Checkfee
检查费
numeric(18 2)

12
CTfee
CT费
numeric(18 2)

13
Bedfee
床位费
numeric(18 2)

14
Diagnosefee
诊金
numeric(18 2)

15
Nursfee
护理费
numeric(18 2)

16
Foodfee
膳食费
numeric(18 2)

17
Lifefee
生活品费
numeric(18 2)

18
Operatfee
手术费
numeric(18 2)

19
Otherfee

numeric(18 2)

20
Prepay
住院押金
numeric(18 2)

21
Paytype
结算方式
int

22
Paydate
计算时间
datetime

23
Billno
发票号码
varchar(20)

24
Operator
收费员号
int

25
Isdele
作废标志
int

26
Deledate
作废时间
datetime

27
Deleoperator
作废收费员号
int

28
timestemp
产生时间
datetime

29
Insurance
社保负担金额
numeric(18 2)

30
Self
负金额
numeric(18 2)

31
Sumcost
住院费总额
numeric(18 2)

32
Sumpay
总支付额
numeric(18 2)

33
Pay
结算标识
float

34
State
状态
smallint

35
InsuType
社保结算类型
smallint

36
Paied
已支付
numeric(18 2)

附:State 0正常1欠款2作废

(5)发票容表 Paydata
Key Pay
序号
字段名
字段含义
数类型
否空
1
Pay
结算标识
float

2
FpNo
发票号码
int

3
timestemp
产生时间
datetime

4
FPdat
发票日期
datetime

5
Drugfe
药费
numeric(18 2)

6
CDrugfee
中药费
numeric(18 2)

7
Treatfee
治疗费
numeric(18 2)

8
Examfee
化验费
numeric(18 2)

9
Checkfee
检查费
numeric(18 2)

10
CTfee
CT费
numeric(18 2)

11
Bedfee
床位费
numeric(18 2)

12
Diagnosefee
诊金
numeric(18 2)

13
Nursfee
护理费
numeric(18 2)

14
Foodfee
膳食费
numeric(18 2)

15
Lifefee
生活品费
numeric(18 2)

16
Operatfee
手术费
numeric(18 2)

17
Otherfee

numeric(18 2)

18
Inid
住院号
int

19
Intimes
住院次数
int


(6)现金收款记录 Cashpay
Key Pay+timestemp
序号
字段名
字段含义
数类型
否空
1
Pay
结算标识
float

2
timestemp
产生时间
datetime

3
Inid
住院号
int

4
Intimes
住院次数
int

5
Paydate
发票日期
datetime

6
Cash
收款金额
numeric(18 2)

7
Operator
收费员号
int

8
Billno
发票号
int


(7)ICCard收款记录 ICCard
Key Pay+timestemp
序号
字段名
字段含义
数类型
否空
1
Pay
结算标识
float

2
timestemp
产生时间
datetime

3
Inid
住院号
int

4
Intimes
住院次数
int

5
Bank
银行号
int

6
CardNo
Card号码
varchar(20)

7
JE
收款金额
numeric(18 2)

8
Operator
收费员号
int

9
Paydate
收款日期
datetime


(8)长期医嘱表 Lorderitem
Key Inid+timestemp
序号
字段名
字段含义
数类型
否空
1
Inid
住院号
float

2
timestemp
产生时间
datetime

3
Intimes
住院次数
int

4
Wardid
住院病区
varchar(4)

5
StartTime
开始时间
datetime

6
StopTime
结束时间
datetime

7
Ordercode
项目代码
varchar(6)

8
Dose
剂量
numeric(18 2)

9
Ordertimes
次数号
int

10
Performcode
法号
int

11
Performid
执行序号
int

12
Payid
结算号
int

13
PerformPlace
执行点
varchar(4)

14
isstop
停止标志
smallint

15
sure
确认标志
smallint

16
Operator
录入
int

17
sureop
确认
int

18
Docnum
住院医生号
varchar(5)

19
LastPerform
执行时间
datetime


(9)时医嘱表 Sorderitem
Key Inid+timestemp
序号
字段名
字段含义
数类型
否空
1
Inid
住院号
inid

2
Intimes
住院次数
int

3
timestemp
产生时间
datetime

4
Wardid
住院病区
varchar(4)

5
OrderTime
医嘱执行时间
datetime

6
Ordercode
项目代码
varchar(6)

7
Dose
剂量
numeric(18 2)

8
Ordertimes
次数号
int

9
Performcode
法号
int

10
Performid
执行序号
int

11
Payid
结算号
int

12
PerformPlace
执行点
varchar(4)

13
sure
确认标志
smallint

14
Operator
录入
int

15
sureop
确认
int

16
Docnum
住院医生号
varchar(5)

17
LastPerform
执行时间
datetime


(10)附加治疗表 Addorderitem
Key Inid+timestemp
序号
字段名
字段含义
数类型
否空
1
Inid
住院号
inid

2
Intimes
住院次数
int

3
Payid
结算号
int

4
Wardid
住院病区
varchar(4)

5
lors
医嘱执行时间
smallint

6
Performid
执行序号
int

7
Ordercode
项目代码
varchar(6)

8
Dose
剂量
numeric(18 2)

9
timestemp
产生时间
datetime

10
Docnum
住院医生号
varchar(5)


(11)正记录表 CZCost
Key Inid+Itemid+timestemp
序号
字段名
字段含义
数类型
否空
1
Inid
住院号
inid

2
Intimes
住院次数
int

3
Payid
结算次数
int

4
Wardid
住院病区
varchar(4)

5
timestemp
产生时间
datetime

6
Costdate
费时间
datetime

7
Performid
执行序号
int

8
Ordercode
项目代码
varchar(6)

9
lors
确认标志
smallint

10
Amount
正数量
numeric(18 2)

11
price
单价
numeric(18 2)

12
Operator
录入
int

13
Itemid
医嘱标识
datetime

14
Pay
结算标识
float

15
Docnum
住院医生号
varchar(5)

16
Performed
执行标志
smallint


(12)费记录表 OrderCost
Key Inid+Itemid+Costdate
序号
字段名
字段含义
数类型
否空
1
Inid
住院号
float

2
Wardid
住院病区
varchar(4)

3
Intimes
住院次数
int

4
Costdate
费时间
datetime

5
Ordercode
项目代码
varchar(6)

6
Dose
剂量
numeric(18 2)

7
PTimes
执行次数
numeric(18 2)

8
OrderPrice
单价
numeric(18 2)

9
Lors
长嘱嘱
smallint

10
Performid
执行序号
int

11
Payid
结算次数
int

12
Itemid
医嘱产生时间
datetime

13
Pay
结算标识
float

14
Type
费类型
smallint

15
Docnum
住院医生号
varchar(5)

16
Performop
发药
int

17
Performed
发药标志
smallint

18
Performtime
发药时间
datetime

19
TimesID
法号
smallint


(13)医嘱执行次数表 OrderTimes
Key TimesID
序号
字段名
字段含义
数类型
否空
1
TimesId
次数号
inid

2
TimesName
次数名称
varchar(10)

3
UnitTimes
单位次数
int

4
FactorTimes
时间子
numeric(18 4)


(14)发药请求表 ReqRec
Key Inid+ReqID
序号
字段名
字段含义
数类型
否空
1
Inid
住院号
inid

2
Name
姓名
int

3
Bed
床号
int

4
Intimes
住院次数
int

5
Payid
结算次数
int

6
Wardid
住院病区
varchar(4)

7
lors
长嘱嘱
smallint

8
Reqid
医嘱产生时间
datetime

9
ReqWard
发药病区
varchar(4)

10
Performed
执行标志
smallint

11
Accepted
接收标志
smallint


(15)发药记录表 ReqRecMX
Key Inid+Itemid+Costdate
序号
字段名
字段含义
数类型
否空
1
Inid
住院号
float

2
Wardid
住院病区
varchar(4)

3
Intimes
住院次数
int

4
Costdate
费时间
datetime

5
Ordercode
项目代码
varchar(6)

6
Dose
剂量
numeric(18 2)

7
PTimes
执行次数
numeric(18 2)

8
OrderPrice
单价
numeric(18 2)

9
Lors
长嘱嘱
smallint

10
Performid
执行序号
int

11
Payid
结算次数
int

12
Itemid
医嘱产生时间
datetime

13
Pay
结算标识
float

14
Type
费类型
smallint

15
Docnum
住院医生号
varchar(5)

16
Performop
发药
int

17
Performed
发药标志
smallint

18
Performtime
发药时间
datetime

19
TimesID
法号
smallint



第六章 详细设计
61 医嘱录入
病医嘱医院住院理系统中重输入数病切医疗费记录均医嘱产生医疗费记录记录病费外记录着住院病区医生实际收益工作量病医嘱病住院费计算科室核算中属原始数
医院住院信息理系统中病医嘱分长期医嘱时医嘱附加治疗项目长期医嘱需长期执行医嘱开始停止时间执行次时医嘱时执行医嘱执行次医嘱执行时间没停止时间附加治疗项目指附带长期医嘱时医嘱执行程中执行治疗项目例药物注射治疗医嘱执行物治疗外需执行附带注射治疗收费中计算药物费外需计算注射治疗费
录入医嘱点般住院病区客户端录入长期医嘱时医嘱根法情况动产生附加治疗项目出入院收费客户端作补充医嘱录入时医嘱动产生附加治疗项目
医嘱例规包括:
l 早前时间20时医嘱
l 长期医嘱时医嘱未确认前修改删确认删医嘱长期医嘱修改停止时间停止医嘱时确认作修改长期医嘱停止停止时间修改
l 医嘱必须录入效治疗项目中心药房提示缺药药物输入
l 医嘱执行序号区组附加治疗项目组执行医嘱相序号分执行序号

图61医嘱录入流程图:
程序中医嘱录入操作TwwClientDataSet象作数源应服务器请求数TwwDBGrid网格象显示数TwwDataSource象建立数源数显示象联系程序中通象事件处理程序编程实现医嘱录入操作控制
TwwClientDataSet象AfterInsert事件处理程序般负责动输入数字段默认值字段数输入工作:病住院号(inid)住院次数(intimes)医嘱开始执行时间(starttime)住院医生工号(docnum)等动输入字段值输入修改病住院号住院次数等默认值字段医嘱开始时间次数法等操作员行修改面长期医嘱数访问象qrylorderAfterInsert事件处理程序程序片段:
qrylorderFieldByName('inid') asintegerinid
qrylorderFieldByName('intimes') asintegerintimes
qrylorderFieldByName('payid')asintegerpayid
qrylorderFieldByName('wardid') asstringcurrentward
qrylorderFieldByName('timestemp') asdatetimetime
qrylorderFieldByName('starttime')asdatetimetime
qrylorderFieldByName('docnum')asstringdocnum
TwwClientDataSet象BeforePost事件处理程序实现保存前输入数正确性检查面长期医嘱数访问象qrylorderBeforePost事件处理程序:
procedure TfrmOrderInqryLorderBeforePost(DataSet TDataSet)
begin
if (datasetfieldbyname('starttime')value00) then
begin
showmessage('必须输入开始日期')
abort
end
if ((datasetFieldByName('ordercode')value'') or
(DatasetFieldByName('ordername')value' ')) then
begin
showmessage('必须输入效治疗项目')
abort
end
if ((DatasetFieldByName('ordertimes')value0)) then
begin
showmessage('请输入量')
abort
end
if ((DatasetFieldByName('isstop')value1)
and (Datasetfieldbyname('stoptime')value begin
showmessage('停止时间必须开始时间')
abort
end
if ((DatasetFieldByName('isstop')value1)
and (DatasetFieldByName('stoptime')value999990)) then
begin
showmessage('请输入停止时间')
abort
end
if (DataSetFieldByName('dose')value>DataSetFieldByName('maxamount')value) then
begin
showmessage('剂量超出允许范围请改正')
abort
end
if (datasetFieldByName('dose')value00) then
begin
showmessage('请输入剂量')
abort
end
end
医嘱容动输入否允许输入显示数网格象事件处理程序实现网格象OnCellChanged编程通判前字段否允许修改然设定字段ReadOnly否True实现控制输入目
OnKeyPress事件处理程序编程实现动操作事件处理程序中般先判断键盘输入参数keyASCII码值判段键盘输入键然网格SelectedFieldname属性判前输入字段名决定步执行段代码面输入嘱中操作员输入项目代码动填入项目信息代码:
if key#13 then begin if press Enter key
if the field is 'ordercode'
if gridLorderSelectedFieldname'qryLorderordercode' then begin
if (getitems(qryLordergridlorderselectedfieldvalue1))1 then begin
gridlorderRefreshDisplay
gridlorderSelectedIndex5
end
else
gridlorderSelectedIndex1
end
条判定字段名称代码
end
代码中果户Enter键前字段ordercode调动填入项目信息getitems函数调成功刷新显示设定SelectedIndex属性值控制光标停留需录入字段
OnKeyDown事件处理函数编程输入中设定热键输入中F2键开项目代码模糊查询窗口代码:
procedure TfrmOrderIngridLorderKeyDown(Sender TObject var Key Word
Shift TShiftState)
begin
if keyvk_F2 then
begin
qryLorderEdit
if ((gridlorderSelectedFieldname'qryLorderordercode') and
(gridLorderSelectedFieldReadOnlyfalse)) then
begin
qryLorderEdit
执行模糊查询
qryLorderFieldByName('ordercode')valuelookupcode(qrylorder)
end
end
end
输入操作完成需新修改数保存数库中根Delphi三层结构技术原理客户端TwwClientDataSet象数仅保存客户端计算机存中客户端数修改会动保存数库中需调TwwClientDataSetApplyUpdate方法数提交回应服务器应服务器数保存数库中
62产生发药记录
图62 发药流程图
录入医嘱需发药操作会产生住院费非药物治疗医嘱项目产生发药记录操作发送出入院数库tmpOrderCost表中直接产生费药物治疗医嘱项目需中心药房确认发药出入院收费系统接收会产生费条医嘱天产生发药记录次次产生条发药记录发药成功执行时间写入医嘱记录表LastPerform字段中新录入医嘱LastPerform值’18991230’
执行产生发药记录代码应服务器运行病区发药病区应服务器运行出入院收费处补充发药出入院收费应服务器(单病补充发药)运行发药规模分成病区发药(调WPerformorder程)单病发药(调PPerformOrder程)流程基相
扫描需发药医嘱然产生发药记录发药请求工作PerformOrder程完成PerformOrder完成单病医嘱发药操作单病发药PPerformOrder程调PerformOrder次病区发药WPerformorder程病区位病调PerformOrder次
确定需发药医嘱参考字段:LastPerformsureisstopstoptime时医嘱执行次判定表达式较简单:sure1 and LastPerform’18991230’长期医嘱涉医嘱停止时间问题判定表达式较复杂:
sure1
and (aLastPerformor (isstop1 and stoptime>PTime and alastperform产生发药记录时需知道剂量外知道执行次数数时执行次数天执行次等准确计算医嘱执行次数需医嘱次数表中设置UnitTimesFactorTimes两字段分表示次发药中执行次数发药时间换算子Delphi中时间浮点数表示1表示1天124表示1时类推(次发药执行时间次发药执行时间)*FactorTimes出次发药单位执行次数UnitTimes医嘱次发药实际执行次数
长期医嘱产生发药记录时需先NeedCreatRec函数判定天否执行医嘱然产生发药记录果(次发药执行时间次发药执行时间)*FactorTimes1NeedCreatRec返回0表示医嘱执行
函数CreatReqRecMX产生发药记录发药医嘱LastPerform字段值改次日9点治疗项目类型函数部处理类型码1项目药品类型需中心药房确认发药价格字段OrderPrice值0类型项目直接产生费写入项目价格CreatReqRecMX返回值项目类型码果返回值药品类型PerformOrder需产生条发药请求记录
产生完发药记录需调CreatAddCost次产生附加费记录
发药记录产生通发送操作完成发药程住院病区应服务器完成产生发药记录药物非药物治疗发药记录Performed字段值0表示新生成未传送状态非药物治疗项目发药记录直接发送出入院数库tmpOrderCost表Performed字段值改2产生费药物治疗项目发药记录需时发中心药房数库tmpReqRecMX表出入院数库tmpOrderCost表Performed字段值改1表示完成发送等中心药房确认发药tmpOrderCost表中相应发药记录Performed字段值2会产生费次发药产生发药请求会发送中心药房数库tmpReqRec表中Performed字段值改1Accepted字段值0
出入院收费应服务器发药记录直接产生tmpOrderCost表中发送较简单需药物治疗项目发药记录发药请求发送中心药房数库相应表中
63中心药房发药
中心药房发药系统工作病区药品治疗发药记录作发药确认处理作药品消耗数科室产生发药记录发药请求分存放中心药房数库tmpReqRecMX表tmpReqRec表中中心药房发药处理根发药请求搜索应发药记录做发药处理
发药操作中心药房客户端触发中心药房客户端操作员利客户端浏览发药请求信息决定否发药然触发客户端发药程客户端发药程根操作员发药记录设定发药选择产生发药信息数组作Variant类型参数发调中心药房应服务器发药服务 PerformReq触发应程序服务器发药线程PerformMedReq
次发药病条发药请求记录单位发药处理流程:搜索发药请求应发药记录查找药品价格更新发药记录发药标记价格条发药记录扣减药品库存表中应药品库存发药记录完成发药请求作发药标记次发药单独事务控制保证操作完整性发药前发药记录发药请求记录Performed字段值1完成Performed字段值2
中心药房应服务器时客户端服务客户端时某药品作发药操作防止发处理引起脏数发生理发药线程时应程序服务器界区机制保证时条发药线程运行
线程执行函数Execute开头调windows API函数EnterCriticalSection线程进入界区线程结束处理函数中调windows API函数LeaveCriticalSection离开界区线程进入界区面线程PerformMedReq执行发药代码:
procedure PerformMedReqExecute
var iinteger
okVariant
begin
进入界区
EnterCriticalSection(cs)
dmIsPerformedclose
dmIsPerformedParamByName('inid')asintegerinid
dmIsPerformedParamByName('reqid')asdatetimereqid
dmIsPerformedopen
if (dmIsPerformedFieldByName('performed')asinteger1) then
try
dmdb2StartTransaction
for iVarArrayLowBound(data1) to VarArrayHighBound(data1) do
begin
okdata[i]
dmupReqMXclose
查找药品价格
dmqryPriceclose
dmqryPriceParamByName('ordercode')asstringok[5]
dmqryPriceopen
if not dmqryPriceIsEmpty then
dmupReqMXParamByName('price')asfloat
dmqryPricefieldbyname('orderprice')asfloat
else
dmupReqMXParamByName('price')asfloat0
dmqryPriceclose
更新发药记录
dmupReqMXParamByName('performed')asintegertrunc(ok[4])
dmupReqMXParamByName('op')asintegerop
dmupReqMXParamByName('inid')asintegerinid
dmupReqMXParamByName('itemid')asdatetimeok[0]
dmupReqMXParamByName('costdate')asdatetimeok[1]
dmupReqMXParamByName('reqid')asdatetimereqid
dmupReqMXParamByName('type')asintegertrunc(ok[3])
dmupReqMXExecSQL
dmupReqMXclose
更新库存量
dmupMedAmountclose
dmupMedAmountParamByName('ordercode')asstringok[5]
dmupMedAmountParamByName('dose')asfloatok[2]
dmupMedAmountExecSQL
dmupMedAmountclose
end
更新发药请求
dmupReqRecclose
dmupReqRecParamByName('inid')asintegerinid
dmupReqRecParamByName('reqid')asdatetimereqid
dmupReqRecExecSQL
dmupReqRecclose
dmdb2Commit
except
dmdb2Rollback
raise
end
end
发药请求完成发药发药请求记录Accepted字段值0开始等出入院应程序服务器接收发药信息
64住院费结算
出入院应程序服务器中设置Ttimer象隔分钟启动ReciveRec线程次中心药房数库接收发药信息ReciveRec线程先查询中心药房发药系统接口tmpReqRec表中完成发药未出入院收费系统接收发药请求记录查询SQL语句:
select inidintimespayidwardidlorsreqidreqward
from tmpReqRec
where accepted0
and performed2
条完成发药发药请求查询tmpReqRecMX表中发药记录Update语句更新出入院数库tmpOrdercost表中应记录(产生发药信息时保存tmpOrdercost表中)OrderpricePerformed字段发药请求记录Accepted字段值更新1完成条发药记录接收工作
新cepteddest接收病补充发药处理会启动ReciveRec线程次防止重复接收ReciveRec线程会采中心药房发药线程PerformMedReq样界区机制保证时刻条ReciveRec线程运行
病住院费计算出入院应程序服务器CountPatientFee方法完成CountPatientFee出入院客户端调未结费记录收费分类汇总合计统计未结住院押金计算出病结余金额:
病结余金额未结住院押金未结费总额
费信息保存数组中OleVariant类型返回客户端
查询病费分类汇总SQL查询语句:
select aIncomeTypeisnull(c10) as c1
from IncomeType a
left join (select cIncomeType as i1sum(bdose*bptimes*borderprice) as c1
from ordercode ctmpordercost b
where cordercodebordercode
and inidinid
and intimesintimes
and costdate between d1 and d2
and pay0
and performed2
group by cIncomeType) as cost on aIncomeTypecosti1
order by aIncomeType
出入院客户端病费结算操作中作CountPatientFee提供查询参数病住院号住院次数病资料提供关键设定结算费起止日期客户端设定费结算时间范围方式三种:
默认出院结算方式系统会统计病tmpOrderCost表中未结算费记录早迟时间然操作界面中设定结算时间DataTimePicker控件值设定两时间CountPatientFee会统计病未结费
客户端程序会网格控件中显示病段未结算费起止时间操作员鼠标右键开快捷菜单快速设定结算起止时间
DataTimePicker控件中设定结算起止时间
两种方法出院结算模式效情况设定效
出院结算模式效情况选择结算住院押金客户端调完CountPatientFee统计操作窗口中选择结算押金金额作次结算未结住院押金金额
完成统计费进入收款操作收款方式现金收款通ICCard收款两者病补交款总金额果补交款总额应补交金额交款足次结算作立欠处理
完成结算标志印收款收印收前做系列保存费处理处理包括保存结算信息收信息现金收款信息ICCard收款信息参加结算费记录结算标识tmpOrderCost保存OrderCost表中参加结算住院押金记录结算标识
次结算操作唯结算标识结算标识字段Pay存结算关PaydataFPCashPayICCardOrderCost表中Pay浮点数病住院号结算时间构成:
paystrtofloat(inttostr(inid)+inttostr(trunc(timestemp*1000000)))
现实情况病时间结算两次采算法保证结算标识唯完成结算通调应服务器SetPayDelete方法费记录押金记录返回未结算状态次结算Paydata表中记录作废标志State2
图63 住院费结算流程图费CardmeCost
65印费清单
印费清单查询费记录表OrderCosttmpOrderCost中符合时间范围费记录费类型项目代码分类汇总然报表形式印出该查询SQL:
select ainid
aordercode
bordername
bspecification
borderunit
sum(aamount) as tamount
round(sum(acost)2) as tcost
cincomename
from
(select inid
intimes
ordercode
sum(dose*ptimes) amount
sum(dose*ptimes*orderprice) as cost
from tmpordercost
where inidinid
and pay0
and performed2
and costdate between day1 and day2
group by inidintimesordercode
union all
select inid
intimes
ordercode
sum(dose*ptimes) amount
sum(dose*ptimes*orderprice) as cost
from ordercost
where inidinid
and costdate between day1 and day2
group by inidintimesordercode) as a
left join (select ordercodeordernamespecificationorderunitincometype
from ordercode) as b on bordercodeaordercode
left join incometype as c on cincometypebincometype
group by inidaordercodeordernamespecificationorderunitincomename
第七章 测试性分析
71 功测试
功测试容实际操作数系统功模块输入数检测输出结果否符合预期求
72 系统测试
模块测试完成整系统作完整测试检验模块联合运行时运行结果否符合预期求
73 性分析
三层分布式系统特点数访问层企业逻辑层分开运行企业逻辑务分布应程序服务器数库服务器专职访问数两层系统相数库台企业逻辑计算机运行减轻数库服务器负担系统具强延展性系统处理数量断增情况系统处理速度致影响太
然三层结构客户端直接访问数时需应程序服务器转换速度两层结构分布式处理容易维护方面优势完全抵消缺点通升级应程序服务器硬件优化应程序服务器软件完全加快数访问速度
实际测试中开病医嘱概需1~2秒病区名病发药需1~2秒计算病住院费1秒
结束语
篇文阐述医院住院信息理系统开发程需求提出分析析1 dderCost 总体设计详细设计测试然时间足问题整系统作完整述基次开发活动核心技术设计思想较完整描述
医院住院信息理系统开发工作中担需求分析系统总体设计数结构设计详细设计编码测试等工作然开发工作量较时间较紧迫克服困难完成医院住院信息理系统基功模块开发工作
开发工作中应UML作需求分析工具构建系统三层结构前采结构化分析两层结构技术提高层次然新技术理解应够全面毕竟迈出重步次开发工作系统继续完善系统开发积累宝贵验
次开发医院信息理系统雏形方完善方需改进总结面点:
(1) 面象软件工程UML技术够完整仅需求分析阶段应总体设计详细设计阶段时间技术掌握等原采结构化开发技术
(2) 三层技术应够全面仅三层技术基技术三层技术强功负载衡技术容错技术连接池象池等技术基没应
(3) 开发时间关系系统完成出入院收费病区医嘱录入发药中心药房发药等基功系统维护数备份恢复等功没完成系统数分散干数库服务器中数备份较复杂SQL Server数复制功建立接收数库数订阅服务器定时服务器复制数
(4) 系统功进步扩展扩展病区应服务器功变成整病区数服务中心病区理客户端服务医生工作站服务病医嘱XML文件形式输出方便系统交换数增加统计报表种类利医院住院病区理系统产生保存数完善医院科室核算工作理工作服务
(5) 住院病区客户端够选择连接住院病区应程序服务器方便手术室录入手术医嘱出入院收费处录入记帐医嘱病医嘱办理结帐前医嘱数保存住院病区数库中医嘱手术室出入院收费处录入时需根病住院病区选择客户端连接应程序服务器解决方法台病区服务器配置INI文件INI文件中保存客户端应程序连接住院病区应程序服务器信息操作员登陆时选择外结合操作员操作权限手术室出入院收费处操作员选择登录病区应程序服务器
(6)药品理方面完成发药扣减中心药房库存功盘点效期理药库理等功没完成
致谢
非常感谢课题指导老师XX老师次开发中指导支持佛山电科研处位老师指导第5组学帮助佛山市第三民医院位领导财务科住院病区四科药剂科中心药房西药库志课题提供极资料特感谢妈妈没勤支援法完成次开发务
参考文献
[1] BBrueggeAHDutoit面象软件工程清华学出版社2002
[2] Craig LarmanUML模式应面象分析设计导机械工业出版社2002
[3]Grady BoochJames RumbaughIvar JacobsonUML户指南机械工业出版社2002
[4] Grady BoochJames RumbaughIvar JacobsonUML参考手册机械工业出版社2002
[5] 郑杰实软件工程清华学出版社2000
[6] Kent Reisdorph轻松掌握Delphi 4电子工业出版社1999
[7] 李维Delphi 5 分布式层应系统篇2000
[8] 李存斌Delphi深度编程应项目开发中国水利出版社2002
[9] BorlandDelhi 5 联机帮助文档Inprise1999
[10] MicrosoftMicrosoft SQL Server 2000 联机帮助文档2000
[11] 赵起超医院信息理系统哈尔滨工业学出版社2001phi 5 dorph
文档香网(httpswwwxiangdangnet)户传

《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 5 香币 [ 分享文档获得香币 ]

该文档为用户出售和定价!

购买文档

相关文档

医院信息管理系统HIS方案

医院信息管理系统HIS方案 目 录第1章 前 言 3第2章 项目概述 42.1 项目背景和基本需求 42.2 项目范围 42.3 项目方式 52.4 项目建议 52.5 带给医院的价值 5第3章 整体解决方案 63.1 方案概述 63.1.1 系统平台架构 63.1.2 应用系统架构 73.2 实施策略 93.3 成功的关键 9第4章 应用

文***品 3年前 上传926   0

医院信息管理系统分析报告

医院信息管理系统分析报告班级:14电子商务小组成员:目录一、需求计划 21、医院管理系统的目的 22、背景分析 33、需求的确立 3二、详细分析 41、用户需求分析 42、系统功能需求分析 43、目标分析 6三.用户的特点 71.本系统的用户包括三类 7四、UML 81.基于UML的建模 82.语义规则 84.子系统UML模

文***享 3年前 上传895   0

医院病人住院规则

医院病人住院规则一、住院病人应遵守住院规则,听从医务人员的指导,与医务人员密切合作,服从治疗和护理。二、住院病人应遵守病房作息时间,经常保持室内外环境整洁安静,不随地吐痰,不往窗外倒水,不在室内丢果皮、吸烟和喧哗。三、住院病人的饮食应遵守医嘱,由营养室配膳供应,外面带来的食物需经医生或护士同意方可食用。病员饮食应按疾病需要,由医嘱规定,分类饮食未经医生或护士同意不得任意更改。 四

Y***Y 9年前 上传1832   0

医院住院病历

策勒县人民医院住院病历   姓名: **    科室: 急诊科 床号: 1 住院号: 20102839     姓名 ** 住址 **县乡镇企业局   性别 男性 工作单位 **县乡镇企业局   年龄 67岁 联系人 麦吐送   婚姻 已婚 入院日期 2010年5月28日13:22   民族 维族 记录日期 2010年5月

w***w 9年前 上传6467   0

科研信息管理系统

 摘 要 在作了充分的需求分析的基础上,采用ASP技术,结合Access数据库,开发了一个高校教职工发表论文情况的科研信息管理系统。 该系统能实现初始数据的录入、修改、删除等操作。同时还能完成对论文情况的查询、统计、打印等功能,并对数据库做了一定的安全维护工作。 本人主要负责系统的查询模块,主要包括:教职工信息查询,期刊信息查询,论文信息查询。其中最主要的是论文查询。它可以

山***1 5年前 上传1512   0

医院住院合同条款

医院住院合同条款  一、医院应订有各该医院住院须知,提供住院病人参阅。  二、各该医院的住院通知,至少应包括下列事项:   (一)住院手续。   (二)病房守则。   (三)供应事项。   (四)收费原则。   (五)文件申请。   (六)出院手续。   三、住院手续的说明,至少应包括下列事项:   (一)办理住院手续的地点。   (二)办理住院手续应

j***s 9年前 上传501   0

信息管理系统实验报告

信息管理系统实验报告班级: 财务管理班 成员: 指导老师: 2012食堂信息系统调查大纲• 一、引言• 二、系统需求分析• 三、可行性分析• 四、概念结构设计• 五、逻辑结构设计• 六、物理结构设计• 七、数据库结构的实现• 注:本设计暂只完成到第三步一、引言1.1 背景随着高校办学规模不断扩大,高校的后勤管理工作

文***品 2年前 上传560   0

信息管理系统——关键术语

关键术语 □ 常用的关键术语的定义 计算机工业和信息处理产业令人吃惊的相似之处是都把新造的词汇和缩写词引入专业词汇表中。本章的很大部分致力于介绍和阐明这类术语。各业务领域的管理人员和公司的决策人应该知道,从事信息服务的所有专业人员不可能对这些术语有统一的理解。通常在使用这些术语时,很少有人给这些术语下明确的定义,这样就容易产生各种各样的误解。 有数百个信息服

f***n 10年前 上传894   0

基于Web的学生信息管理系统

在现如今这个网络技术高度普及和信息全球化的年代,信息化的程度和互联网技术在国际竞争中充当着重要的角色,华为5G的实例告诉我们,谁先掌握技术谁就有话语权。

平***苏 3年前 上传756   0

员工信息管理系统java

云南大学2019年春季学期信息学院电子信息工程2018级《面向对象信息系统开发》期末检测(堂下测试)试卷A满分100分 考试时间:150分钟 任课教师:高莲学院:__信息学院__ 专业:__电子信息工程__ 学号:_20181060261_ 姓名:_李康,周五班,33号_题号1234总分得分

Y***r 4年前 上传868   0

基于java的学生信息管理系统

科技带动计算机行业不断地发展,计算机行业的发展也给每个行业带来了巨大的收益,使其工作效率得到提高,同时方便了人们的生活。本系统使用SSM框架,主要采用自顶向下的相关研究的方法。

爱***享 3年前 上传803   0

学生社团信息管理系统

学生社团信息管理系统 第一章 课题背景 1.1开发背景 1.2选题说明 1.3.需求分析 第二章 设计简介及设计方案论述 2.1总体设计 2.1.1 流程图 2.2数据库设计 2.2.1数据库ER图 2.2.2数据库详细设计 2.3系统方案论述 第三章 详细设计 3.1 整体功能模块设计 3.1.1 登录设计 3.1.3管理员操作界面设计 第四章 设计结果及分析 4.1 登陆结果 4.2 查

文***享 5年前 上传2893   0

医院住院病案院内交接制度

一、凡出院病案,应与病人出院后24小时内全部回收到病案室。二、临床科室每天到住院处给出院病人转帐时,由值班人员一并送交出院者病案,住院处负责查收签字妥为保管。无出院者的病案,住院处概不结帐。三、病案室每日到住院处回收出院病案,并

平***7 3周前 上传303   0

医院住院病历质量检查评分表

a.在病史中发现有病症而未写或不能导出第一诊断,扣1分。 b.无近况描述扣0.5分。C.时间不准确扣0.5分。

0***狗 2年前 上传571   0

医院住院医生规章制度

医院住院医生规章制度  工作人员守则  1、努力学习xxxx重要思想,坚持科学发展观,在政治上,思想上与党中央保持一致。  2、认真执行党和国家的政策、法律、法规,依法管理,以德治院。  3、树立高度的事业心和工作责任感,服从领导,听从指挥,团结互助,爱岗敬业,无私献。  4、热爱本职工作,立志振兴卫生事业,坚持中西医并重,实行中西医结合,发展专科专色。  5、以病人为中

n***l 9年前 上传638   0

“大数据”时代下医院病案信息管理

“大数据”时代下医院病案信息管理  摘要  :进入新时期后,信息化手段正在全面融入当前各个领域。从医院管理的视角来讲,病案信息管理构成了医院管理中的关键点,医院针对全过程的病案管理都要运用信息化手段。通常情形下,各个医院科室都会保存相应的病案信息,通过运用大数据手段来帮助实现病案信息管理。与传统模式相比,建立于大数据前提下的新型管理模式表达为独特的病案管理优势,医院对此有必要结合自身现状来

回***人 2年前 上传508   0

《医院信息管理制度》

医院信息管理制度(试行)1 总则 1.1 目的 为安全管理各种软硬件资源,提高医院所属各部门信息处理和业务运行的效率,最大限度预防和减少各种故障造成的业务中断时间,特制定本制度。 1.2 适用范围 本制度适用于全医院各部门。 2 术语3.1 IT设备:包括计算机产品、网络设备、计算机外部设备等。3.2 计算机产品:包括服务器、PC机、笔记本电脑等。3.3 计算机硬件:包括光

徐***计 3年前 上传651   0

信息管理系统——信息服务的范围

信息服务的范围 信息服务的范围包括受信息服务影响或在信息服务控制下的所有事情和活动。那些不重视信息服务职责范围的用户,看问题往往有一定的片面性,他们认为信息服务只与局部业务领域的那些事情和活动有关系。而事实上,信息服务要牵涉到整个公司。当今,哪怕是一个小公司,其业务部门都要依靠公司的数据处理和信息服务系统来处理问题。 我们最好还是通过某一个公司中信息服务所适用的那些业务

阿***本 9年前 上传655   0

人才信息管理系统毕业论文开题报告

一、课题研究背景与研究意义:研究背景:当今社会是一个知识推动社会发展和经济进步的时代,每个毕业生都希望可以找到一个能够施展才华的招聘

文艺范书香满屋 3年前 上传679   0

国内类似“项目信息管理系统”合同情况

国内类似“项目信息管理系统”合同情况 序号 合同名称 甲方 所属行业 合同价(万元) 用户数 软件价(万元) 服务价(万元) 其它 备注 1 汉江水电开发有限责任公司项目信息管理系统合同书 **堵**水电发展有限公司 水电 0 未详细注明 2 国电**流域水电开发有限公司信息管理系

l***1 13年前 上传14395   0

教师档案信息管理系统的设计与实现

摘要 近年来,随着计算机科学技术和计算机网络技术的发展,高校对教师档案的管理逐渐被人们所重视,计算机技术已越来越广泛地在高校管理的各个领域得到应用。教师档案信息管理系统的设计与实现对高等院校的决策者和管理者来说都至关重要,对教育系统来说更是不可缺少。一个功能齐全的教师信息管理系统不仅可以节约人力物力资源,还可以减轻管理者的工作压力,提高工作效率。本系统采用PHP和MySQL数据库技术,基于B

平***苏 3年前 上传801   0

药店药品信息管理系统

目录目录 IIIAbstract VI第一章 绪 论 11.1 背景及意义 11.2药店药品管理系统现状 11.3药店药品管理系统发展前景 21.4 论文总体结构 22.1 MyEclipce简介 32.2 MySQL数据库 32.3 JSP技术简介 32.1 MyEclipce简介 32.2 MySQL数据库 32.3 JSP技术简介

平***苏 3年前 上传1191   0

教师信息管理系统需求分析

 教师信息管理系统 需求分析报告 (V1.0) 目 录 1.引言 3 1.1编写目的 3 1.2项目背景 3 1.3参考资料 4 2.任务概述 4 2.1待开发软件的一般描述 4 2.2待开发软件的功能 4 2.3用户特征 4 2.4运行环境 4 2.5条

文***品 5年前 上传1330   0

企业员工信息管理系统

本科毕业设计说明书企业员工信息管理系统的设计与实现EMPLOYEE INFORMATION MANAGEMENT SYSTEM DESIGN AND IMPLEMENTATION 学院〔部〕:专业班级: 学生姓名: 指导教师: 2012年 5月25日企业员工信息管理系统的设计与实现摘要 现今互联网开展越来越迅速,

郭***林 3年前 上传589   0

南京港口信息管理系统

 南京港口信息管理系统 技术报告 《南京港口信息管理系统》项目组 二○○五年十二月 目 录 1 概述 5 1.1 文档说明 5 1.2 立项依据 5 1.3 研究目的 6 2 整体技术方案 7 2.1 指导思想和设计原则 7 2.2 运行环境 8 2.3 需求分析 9 2.

l***1 9年前 上传24298   0