图5 职工登陆界面
用户必须通过职工登录窗口才能够进入主界面。系统登录窗口主要实现功能是确认用户身份及级别,并根据用户级别主界面菜单中该用户可以进行的操作。
本系统根据医院具体情况将医院职工分为种5种职位,院长、医生、放射员收费员和化验员。其中,院长级别最高,可以使用主界面菜单中的任何一种操作,其他各种职位级别都只能享有各自级别的权限。医生可以进行病人就诊的信息录入、查询和维护,定义主诉病历处方模板的定义和查询,化验检验结果的查询、费用的查询等;收费员可以进行挂号收费及统计,预付费用的收缴和统计等;放射员可以对病人的各项检查结果进行录入、查询、维护等;化验员则是对病人的各项化验结果进行录入、查询、维护。
在登录界面的OPEN()函数中定义一个游标declare guser cursor,该游标在ygb表中搜索ygm然后添加到员工名的下拉控件中,其代码如下:
string ls_user
declare guser cursor for select ygm from ygb order by ygh; open guser;
if SQLCA.SQLCode=-1 then
MessageBox(\数据错误\else do
if ls_user<>'' then ddlb_1.additem(ls_user) fetch guser into :ls_user; loop while sqlca.sqlcode=0 if sqlca.sqlcode=-1 then
messageBOX(\数据错误\ end if end if
第 8 页 共 30 页
close guser;
ddlb_1.selectitem(0)
在“确定”按纽中当判断员工登录条件正确时则根据员工的职位判断那些菜单功能将能被使用。
3.3 主界面
首先设计主菜单m_zhujiemian,根据各模块设计好菜单项和各菜单项下面的子菜单项,并可添加为用户登录和退出以及挂号Toolbar,提供快捷操作。然后在主窗口w_zhujiemian将menuname中选择设计好的主菜单m_zhujiemian。应用程序的主要功能都是在主窗口w_zhujiemian及在其下打开的众多窗口中完成的。主界面如图6所示。
图6 医院管理系统主界面
不同用户登录后,由于职位级别不同,主界面也会有些差异,不能操作的菜单项为灰色,因此,下面我们选用的都是“院长”级别登录后的主界面,将主窗口的WindowType属性设立为mdi型,以便在其下以特定方式打开其他窗口。
主界面设计中主要是主菜单m_zhujiemian的设计,该菜单结构及代码如下:
⑴登录: ① 用户登录:
Clicked事件程序代码:
opensheet(w_zhigong,w_zhujiemian,8,original!) ② 退出:
Clicked事件程序代码:close(w_zhujiemian) ⑵挂号系统:
第 9 页 共 30 页
① 挂号:
Clicked事件程序代码:opensheet(w_guahao,w_zhujiemian,8,original!) ② 预付:
Clicked事件程序代码:opensheet(w_yufu,w_zhujiemian,8,original!) ⑶就诊管理: ① 就诊入口:
Clicked事件程序代码:
opensheet(w_jiuzhenrukou,w_zhujiemian,8,original!) ② 就诊历史:
Clicked事件程序代码:
opensheet(w_lishi,w_zhujiemian,8,original!) ③ 检查报告:
Clicked事件程序代码:
opensheet(w_hyjc_jcbg,w_zhujiemian,8,original!) ④ 化验:
? 血常规报告:Clicked事件程序代码 openSheet(w_hyjc_twd,w_main,8,Layered!) ? 尿常规报告:Clicked事件程序代码
opensheet(w_hyjc_ncg,w_zhujiemian,8,original!) ? 生化检查报告:Clicked事件程序代码
opensheet(w_hyjc_shjc,w_zhujiemian,8,original!) ⑷模板管理:
① 定义完整模板:Clicked事件程序代码: opensheet(w_jb,w_zhujiemian,8,original!) ② 定义主诉模板:Clicked事件程序代码: opensheet(w_dingyizs,w_zhujiemian,8,original!)
③ 定义病历模板:Clicked事件程序代码: opensheet(w_dingyibl,w_zhujiemian,8,original!) ④ 定义处方模板:Clicked事件程序代码:
opensheet(w_dingyicf,w_zhujiemian,8,original!) ⑤ 模板查询:Clicked事件程序代码:
opensheet(w_blzsmb,w_zhujiemian,8,original!) ⑸数据管理:
① 挂号人数统计:Clicked事件程序代码:
第 10 页 共 30 页
opensheet(w_ghtongjilb,w_zhujiemian,8,original!) ② 病人基本信息查询:Clicked事件程序代码: opensheet (w_jbxx_cx,w_zhujiemian,8,original!)
③ 预付款查询:Clicked事件程序代码: opensheet(w_yufucx,w_zhujiemian,8,original!) ④ 病人血常规查询:Clicked事件程序代码:
opensheet(w_hyjc_xcg_cx,w_zhujiemian,8,original!)
⑤ 病人尿常规查询:Clicked事件程序代码:
opensheet(w_hyjc_ncg_cx,w_zhujiemian,8,original!) ⑥ 病人生化查询:Clicked事件程序代码:
opensheet(w_hyjc_shjc_cx,w_zhujiemian,8,original!)
⑦ 病人检查结果查询:Clicked事件程序代码: opensheet(w_hyjc_jcbg_cx,w_zhujiemian,8,original!)
⑹数据管理:
① 用户安全维护:Clicked事件程序代码: opensheet(w_change,w_zhujiemian,8,original!) ② 常用维护药字典维护:Clicked事件程序代码: opensheet(w_yaodian,w_zhujiemian,8,original!)
③ 病人基本信息维护:Clicked事件程序代码: opensheet(w_jbxx_wh,w_zhujiemian,8,original!)
④ 血常规检查结果维护:Clicked事件程序代码: opensheet(w_hyjc_xcg_wh,w_zhujiemian,8,original!)
⑤ 尿常规检查结果维护:Clicked事件程序代码: opensheet(w_hyjc_ncg_wh,w_zhujiemian,8,original!)
⑥ 生化检查结果维护:Clicked事件程序代码: opensheet(w_hyjc_shjc_wh,w_zhujiemian,8,original!) ⑦ 检查结果维护:Clicked事件程序代码:
opensheet(w_hyjc_jcbg_wh,w_zhujiemian,8,original!)
⑺报表:
① 病人预付款报表:Clicked事件程序代码: opensheet(w_yufu_bb,w_zhujiemian,8,original!)
② 病人费用报表:Clicked事件程序代码:
opensheet(w_chufangjj_bb,w_zhujiemian,8,original!) ⑻窗口:没有代码,用来显示已经打开的窗口名称。
第 11 页 共 30 页
3.4 挂号系统模块
根据医院科室及挂号类型类设计挂号系统,自动产生病历号。先根据数据库表ghb建立挂号系统的数据窗,然后建立挂号窗口,并使用该数据窗。挂号病人要进入医院门诊就诊的第一步就是进行挂号,只有进行挂号后才能获得病历号,得到其他服务。挂号界面如图7所示:
图7 挂号系统界面
主要实现功能有自动分配病历号,录入员无法修改。单击“保存” 按钮的时候,如图8所示:
图8 挂号保存界面
“保存”按钮中的代码最主要的通过设置过滤条件来使数据窗口只能显示当前一条记录。
本系统中,需要处理的数据繁多,如果仅是靠普通控件来进行输入、查询和维护等操作,只能依靠纯粹的手写代码来进行与数据库数据之间的交互,将会带来极大的不便。为此,采用数据窗口来进行对数据的处理。通过数据窗口,可以对数据库进行操作,不但可以对每个数据库的表进行检索、查询、插入、删除和更新,而且还可以为数据指定输入格式、输出格式和显示风格等。图7
第 12 页 共 30 页