小型医院信息管理系统的设计与开发研讨.docx
某小型医院信息管理系统的设计与开发摘 要本文所介绍的小型医院信息管理系统旨在改善某小型医院的信息管理,改变医院的信息处理基本还停留在手工方式的状况,降低劳动强度,提高工作效率。本系统不仅适用于医院的行政管理业务,也适用于具体的就诊事务业务。本系统可以使医务人员空出更多的精力和时间服务于病人,同时保证病人和医院的经济利益,从而使医院能够以少的投入获得更好的社会效益与经济效益。本系统是利用PowerBuilder并结合医院病人管理制度,严格按照软件生命周期来设计的一个信息管理系统。实现了一个包括就诊管理、模板处理、数据统计等模块在内的小型医院信息管理系统,实现不同员工登录、病人挂号就医、病人信息查询、医生出具处理处方及划价、门诊收费与统计等功能。本文简要介绍了医院管理系统的项目背景和意义,着重阐述了该系统的开发实现过程,从系统目标,需求分析、总体设计、详细设计、到系统测试等各个环节都进行了详细的分析和描述。关键词:数据库;PowerBuilder;就诊The Design and Implementation of a Small Scale Hospital Information Management System AbstractThe small scale hospital information management system is designed for improving the information management of small hospital, reducing the labor intensity and enhancing working efficiency. This system can support the administration of the hospital and manage the business. In addition, it can help facilitate the patient, and bring social and economic interest to the hospital. This system uses PowerBuilder as developing language ,which is designed according to software life cycle. The system can implement the patients registration before his going to see a doctor, doctors processing prescription and management of expense. The thesis introduces the systems project background and significance briefly, elaborates the systems implementation process. It also analyses and describes all the stages of the system, including feasibility study, demand analysis, outline design, detailed design and system test. Key words: database; PowerBuilder; prescription 目 录论文总页数:30页1引言11.1课题背景11.2国内外研究现状11.3本课题研究的意义12关键技术介绍12.1开发工具及运行环境12.1.1总体开发工具及环境12.1.2开发工具简介12.2系统需求分析22.3系统功能结构设计32.4数据库设计与实现43本系统功能模块设计与实现73.1应用程序对象设计73.2职工登录界面83.3主界面93.4挂号系统模块123.5就诊管理模块153.6模板管理模块183.7数据管理模块193.8报表模块224关键功能点的测试234.1登录模块测试234.2用户密码修改功能点测试244.3病人费用报表功能测试26结 论27参考文献28致 谢29声 明30更多全套设计联系QQ:1042897696最新设计大全 W.BYLW168.COM/SF/20100915/3539.HTML1 引言1.1 课题背景随着科学的不断进步,计算机应用已经遍布整个社会的每个角落。人们的身体健康也在不断受到重视。因此,医院进行现代化管理就变得尤为重要。目前社会正处于健保发展方兴未艾的时代,各医疗院所莫不兢兢业业地改善本身的体制或管理方式,以因应健保越来越严格的规范。小型医院信息管理系统是适应时代发展的需要,提高管理的效率而开发设计的。1.2 国内外研究现状一个完整的医院信息管理系统应该既包括医院管理信息系统,又包括临床医疗信息系统,国外研究机构在力求实现医院信息管理系统的完整性。临床信息管理系统在数据处理的实时性要求、相应速度、安全保密等方面一般要比管理信息系统有更苛刻的要求。而医院管理信息系统的计算机技术较为单纯和简单,也由于医院管理信息系统以处理文字和数字类数据为主,较少设计声音、图象、多媒体数据的动态传递等复杂要求,实现起来容易的多。1.3 本课题研究的意义本系统通过对病人信息管理系统方案的设计和实施,提出一种对病人在就诊过程中产生的信息进行数字化管理的技术,为门诊建立起信息高速公路,促使医院门诊逐步形成方便、科学、合理的管理模式。从根本上改变传统的依靠文件等信息的传递方式,实现无纸化办公,简化就诊手续,加快信息流通速度,提高治疗效率,基本实现医院系统的数字化管理。同时,本系统对病人既往病史以及用药记录存档,既便于医生更加准确的对当前病人的诊断,同时也有利于医生对各种病例进行分析研究。病历模板的套餐制更具灵活性。2 关键技术介绍2.1 开发工具及运行环境2.1.1 总体开发工具及环境本系统采用的软件开发工具及环境如下:Ø 操作系统:WINDOWSXPØ 编程工具:PowerBuilder9.0Ø 数据库:ACCESS2.1.2 开发工具简介PowerBuilder是一个图形化的应用程序开发环境。使用PowerBuilder开发的应用软件由窗口构成,窗口中不仅可以包含按钮、下拉列表框及单选按纽等标准的Windows控件,还可以有PowerBuilder提供的特殊控件。这些特殊控件可以使应用软件更容易使用,使应用软件的开发效率更高。例如,数据窗口就是PowerBuilder提供的一个集成度很高的控件,使用该控件可以很方便地从数据库中提取数据,很简单地检索数据,提供图形化的数据显示方式,创建统计功能非常强大的数据统计表。由于数据窗口对数据的操作是通过事务进行的,所以对数据的操作有很强的可靠性。这些都为开发功能强大的数据库应用软件提供了可靠的保证。商业化的软件开发要求有很好的移植性。PowerBuilder既可以跨平台开发,也可以发行跨平台软件。例如,在Windows 95下开发的程序,可以不修改源程序而形成UNIX下的执行文件或Macintosh下的执行文件。在开发小组中,不同成员可以使用不同的开发环境,但由于PowerBuilder的支持,在不同的开发环境下看到的共享PowerBuilder对象是相同的,所以仍可以同时开发同一个应用程序。随着软件技术的不断发展,PowerBuilder 9.0及时地强化了开发功能,并提供了一些配套的开发工具,成为一种易于使用的、可伸缩的并经实践证明的快速集成开发环境。它在给用户提供一条转移到下一代平台的途径的同时,使用户仍能够保护和扩展现有的技术和应用上的投资。2.2 系统需求分析病人在就诊过程中,基本的业务流程如图1所示:图1 业务流程图通过对病人就诊流程及管理的调查和了解,初步确定了该系统的基本需求情况:1. 在病人就诊之前,必须进行挂号,包括病人的最基本信息,挂号费用,预存费等。2. 在病人进行挂号的同时,可以自动为病人分配病历号,作为病人在就诊过程中的唯一标识。3. 在病人就诊时,医生可以对病人基本信息(包括简要病史等等)进行登记。4. 对病人每次就医的主诉,病历,处方进行输入,并可以进行查询和维护。5. 各种化验检查信息的输入、查询和维护,并可以进行异常提醒。6. 对病人的预付款进行管理,并且当预付金额不够时可以提醒补交预付款。7. 对病人就诊过程中的各种费用进行管理。8. 可以打印病人预付款单据和费用凭单。9. 医生可以查询病人治疗情况、化验检查结果,以便跟踪病人病情发展情况,同时也有助于医生对各种病例进行分析研究。2.3 系统功能结构设计本系统划分为7个功能模块,系统功能模块图如图2所示。商业源代码,全套计算机毕业设计免费下载 更多全套设计联系QQ:1042897696最新设计大全 各模块如下:1. 员工管理:主要包括员工登陆,修改密码,判别用户级别功能。2. 病人管理:主要包括病人的基本信息登记。主要包括对病人基本信息的录入、查询和维护等操作。病人基本信息的录入窗口可以从就诊窗口进入,系统可以记忆当前就诊病人病历号以及当前录入员的姓名。3. 就诊管理:主要包括对病人此次就诊病情的录入,过往病史的查询及检查和化验结果进行录入。4. 模板管理:主要医生针对各种典型病种所开具的主诉、病历、处方录入、查询。5. 化验检查管理:主要包括对病人每次所做化验和检查的结果进行录入、查询和维护。6. 费用管理:主要包括预付款管理和费用管理。Ø 预付款管理:主要包括对预付金额进行录入、查询和维护等操作。并且可以根据支出情况进行费用统计、查询余额和缺钱警示。Ø 费用支出管理:主要包括对病人药费、检查、化验等支出进行录入、查询和维护等操作。7. 报表打印:根据需要生成各种报表,并且打印出来。2.4 数据库设计与实现在仔细调查医院就诊管理过程的基础上,得到系统所要处理的数据流程图,如图3所示。图3 数据流图本系统根据上面的设计规划出的实体有4个:病人、医生、化验检查员、药品。下面为本系统实体之间关系的E-R图,如图4所示。图4 实体关系E-R图根据以上的分析设计得到实际数据库模型。数据库设计如下:1. 病人基本情况表(ghdj):就诊号(jzid)、病历号(blh),姓名(xm), 身份证号(sfzh),性别(xb),出生日期(sr),婚否 (hf),地址(dz),电话(dh),日期(ryrq),科别(kb),主诉(zs),现病史(xbs),病历(bl),处方(cf),医嘱(yz),医生(ys)。主码是就诊号(jzid)。此表字段用来保存病人的相关详细信息,包括病人基本信息和病人在医院就诊相关信息。表1 ghdj字段名数据类型字段大小必填字段jzid文本14是blh文本8是xm文本20否sfzh数字小数否xb文本4否sr日期/时间短日期否hf文本4否dz文本100否dh文本15否ryrq日期/时间短日期否kb文本10否zs文本200否xbs文本200否bl文本200否cf文本200否yz文本200否ygh文本5否2. 挂号表(ghb):流水号(id),病历号(blh),日期(rq),时间(sj),挂号费(ghf),金额(je)。主码是流水号(id)。此表字段用来记录病人在医院挂号就医时产生的相关数据。表2 ghb字段名数据类型字段大小必填字段id文本9是blh文本8否rq日期/时间 否sj日期/时间否ghf数字长整型否je数字长整型否3. 化验检查表(hyjc):病历号(blh),化验日期(hyrq),化验时间(hysj),检验员(jyy),状态(zt)等,其中化验检查中的具体项目由于数目众多,在此就不一一列出。主码是病历号(blh),化验日期(hyrq)。此表字段用来记录病人在院就医时不同状态的检查产生的结果表3 hyjc字段名数据类型字段大小必填字段blh文本8是hyrq日期/时间 是rq日期/时间 是zt数字长整型否jyy文本5否4. 费用表(fyb):费用凭单号(id),病历号(blh),项目内容(xmnl),数量(sl),收费科室(sfks)。主码是费用凭单号(id),项目内容(xmnl)。此表字段用来记录病人在院所做就医项目的相关信息。表4 fyb字段名数据类型字段大小必填字段id文本14是blh文本8是xmnl文本 13是 sfks文本20否sl数字长整型否5. 药品库表(ypkb):药品编号(ypbh),药品名(ypm),类别(lb),价格(jg),包装规格(bzgg),单位(dw),药用字典(yyzd)。主码是药品编号(ypbh)。此表字段用来记录医院各种项目药品的相关信息。表5 ypkb字段名数据类型字段大小必填字段ypbh文本13是ypm文本30是lb文本 4否jg数字小数否bzgg文本6否dw文本6否yyzd文本100否6. 病历处方表(blcfb):模板号(mbh),病症名称(bzmc),病历内容(blnr),处方内容(cfnr),主诉内容(zsnr),开方医生(ygh)。主码是模板号(mbh)。此表字段用来记录医生对病症的研究和描述,方便医生对同种病症不同情况进行对比研究,提高医生的工作效率,帮助医生进行诊断,判断更为准确。表6 ypkb字段名数据类型字段大小必填字段mbh文本14是bzmc文本100否blnr文本200否cfnr文本200否zsnr文本200否ygh文本5否7. 员工表(ygb):员工号(ygh),员工名(kb),科别(kb),职位(zw),密码(pwd),等级(dj)。主码是员工号(ygh)。此表字段用来记录医院员工的基本信息并在登陆时的根据登记判断其权限。表7 ypkb字段名数据类型字段大小必填字段ygh文本5是ygm文本20否kb文本10否zw文本10否pwd文本10否dj文本10否3 本系统功能模块设计与实现3.1 应用程序对象设计PowerBuilder9.0开发的应用程序的入口点是PowerBuilder9.0的应用程序对象,运行是程序从这个入口点启动,所以应用程序对象的设计是应用程序设计的开始。本应用程序对象中用到Open事件,输入如下程序代码:/ ProSQLCA.DBMS = "ODBC"SQLCA.AutoCommit = False SQLCA.DBParm = "ConnectString='DSN=mzys2;UID=;PWD='"connect;/打开程序登录窗口opensheet(w_zhigong,w_zhujiemian,8,original!)首先在应用程序对象的变量定义窗口中定义全局变量,如int G_input_time 定义的变量是登录时输入用户名和密码的次数,string yg_name定义的是用户名,string yg_ygh定义的是员工号,string g_pwd定义的是密码,string g_blh 定义病历号,string g_jzid 定义病人的就诊号等等。3.2 职工登录界面应用程序运行后第一个出现的窗口就是w_login登陆窗口,界面如图5所示。图5 职工登陆界面用户必须通过职工登录窗口才能够进入主界面。系统登录窗口主要实现功能是确认用户身份及级别,并根据用户级别主界面菜单中该用户可以进行的操作。本系统根据医院具体情况将医院职工分为种5种职位,院长、医生、放射员收费员和化验员。其中,院长级别最高,可以使用主界面菜单中的任何一种操作,其他各种职位级别都只能享有各自级别的权限。医生可以进行病人就诊的信息录入、查询和维护,定义主诉病历处方模板的定义和查询,化验检验结果的查询、费用的查询等;收费员可以进行挂号收费及统计,预付费用的收缴和统计等;放射员可以对病人的各项检查结果进行录入、查询、维护等;化验员则是对病人的各项化验结果进行录入、查询、维护。在登录界面的OPEN()函数中定义一个游标declare guser cursor,该游标在ygb表中搜索ygm然后添加到员工名的下拉控件中,其代码如下:string ls_userdeclare guser cursor forselect ygmfrom ygborder by ygh;open guser;if SQLCA.SQLCode=-1 then MessageBox("数据错误",SQLCA.SQLErrText)else do if ls_user<>'' then ddlb_1.additem(ls_user)fetch guser into :ls_user;loop while sqlca.sqlcode=0if sqlca.sqlcode=-1 then messageBOX("数据错误",sqlca.sqlerrtext)end ifend if 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)挂号系统: 挂号: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事件程序代码: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!)窗口:没有代码,用来显示已经打开的窗口名称。3.4 挂号系统模块根据医院科室及挂号类型类设计挂号系统,自动产生病历号。先根据数据库表ghb建立挂号系统的数据窗,然后建立挂号窗口,并使用该数据窗。挂号病人要进入医院门诊就诊的第一步就是进行挂号,只有进行挂号后才能获得病历号,得到其他服务。挂号界面如图7所示:图7 挂号系统界面主要实现功能有自动分配病历号,录入员无法修改。单击“保存” 按钮的时候,如图8所示:图8 挂号保存界面 “保存”按钮中的代码最主要的通过设置过滤条件来使数据窗口只能显示当前一条记录。本系统中,需要处理的数据繁多,如果仅是靠普通控件来进行输入、查询和维护等操作,只能依靠纯粹的手写代码来进行与数据库数据之间的交互,将会带来极大的不便。为此,采用数据窗口来进行对数据的处理。通过数据窗口,可以对数据库进行操作,不但可以对每个数据库的表进行检索、查询、插入、删除和更新,而且还可以为数据指定输入格式、输出格式和显示风格等。图7中左边显示数据的部分既为Grid风格的数据窗口。本系统中还用到Group风格的来制作报表,将在图9出现。图9 挂号打印界面如上图所示,在单击了图7图中的“打印”之后,系统会自动按照程序中的代码的要求将自动流水号传递到报表窗口,其中的“预付款(挂号)单据”所在的数据窗口即为Group窗口应用于数据报表的典型。在挂号过程中,除了会为病人的分配此次的自动流水号之外,也会要为病人分配一个病历号,由年份(4位)序列号(4位)构成。每到新的一年,序列号都是从0001开始;如果不是在新的一年,则序列号是已经在医院就诊的病人的人数加上1构成。为此,每次分配病历号时,从数据库中挂号表中提取最大的病历号,将其中的年份与当前计算机上的年份相比较,如果相等,则将后4位的序列号加1,如果是新的一年则直接让序列号位0001。具体实现是在窗口中定义,代码如下:/分配病历号string a,b,d,c,nSELECT max(ghb.blh) into :aFROM ghb;b=left(a,4) d=string(year(today()c=right(a,4)if b>d thenmessagebox('出错','当前系统时间有误,请先调整系统时间',stopsign!,OK!)elseif b=d thenc=string(integer(c)+1)n=fill('0',4 - len(c)c=n+celsec='0001'end ifa=d+cblh1=aend if 分配病人自动流水号,病历号的同时,也是要同时在病人基本信息表当中插入信息,首先也是先为表的主码“就诊号”分配号码。采用自定义的函数jzh():string a,b,c,d,e,f,g,h,iSELECT max(jzid)INTO :aFROM ghdj;b=string(year(today() /当前系统日期中年份的后两位c=string(month(today() /当前系统日期中的月份c=fill('0',2 - len(c)+cd=string(Day(today()/当前系统日期中的日期d=fill('0',2 - len(d)+de=left(a,8)/表中最大ID的前八位f=right(a,6)/表中最大ID的后六位,表示序列号g=right(e,4)h=right(e,2)/表中最大ID的七、八位,表示日期g=left(g,2) /表中最大ID的五、六位,表示月份e=left(e,4) /表中最大ID的前四位,表示年份if b<e thenmessagebox("出错","当前系统时间有误,请先调整系统时间")returnelseif b>e theni=b+c+d+'000001'elseif c<g thenmessagebox("出错","当前系统时间有误,请先调整系统时间")returnelseif c>g theni=b+c+d+'000001'elseif d<h thenmessagebox("出错","当前系统时间有误,请先调整系统时间")returnelseif d>h theni=b+c+d+'000001'else f=string(long(f)+1)i=b+c+d+fill('0',6 - len(f)+fend ifend ifend ifst_11.text=i3.5 就诊管理模块病人在进入所挂号的科室进行就诊入口的界面如图10所示。图10 就诊入口界面在该界面中两个按钮“简明信息填写”和“就诊”按钮提供了强大的病人就诊信息的录入的功能,方便日后医生的对病人病史的掌握,日后的临床科学研究以及病人对自己病史的了解。在界面中当输入病人ID(blh),之后按下“简明信息填写”按钮就进入病人基本信息得录入界面如图11所示。图11 病人基本信息录入界面该界面中使用了创建好的数据窗d_jbxx,就诊号和病历号是通过图10界面的“简明信息填写”按钮中的相关代码实现(主要是利用全局变量来传递值)::g_blh=trim(sle_1.text)jzh():g_jzid=trim(st_2.text)opensheet (w_jbxx,w_zhujiemian,8,original!)同理,在图10中如按下“就诊”按钮,在进入如图12所示的界面,病人ID号也将被传递。界面中可以通过“保存”、“新增”等系列按钮完成对病人此次就诊的记录工作,同时医生也可以通过“申请”按钮对需要进行进一步详细检查的病人提出检查申请,另外可以在“处方计价”当中对病人的药方进行计价。在医生对病人出具病历处方的同时可以随时查阅“病历处方模板”,以及可以通过“查看报告”查看病人的既往检查化验。图12 就诊界面上述的该功能模块中的相关功能都是“医生”的权限范围,以下将的检查化验的报告界面分别属于“放射员” 和“化验员”的职限。图13 病人检查结果录入界面在这个界面中最主要的就是“增加”、“退出”几个按钮中的相关代码完成了对数据的录入保存:/判断窗体记录是否需要保存int MCountint updateornotmcount=dw_hyjc_jcbg.modifiedcount()if mcount>0 thenupdateornot=messagebox("保存修改","您修改了数据窗口中的数据,现在是否保存?",Question!,YesNoCancel! )if updateornot=1 then if update(dw_hyjc_jcbg,true,false)=1 thendw_hyjc_jcbg.resetupdate() commit; else rollback; messagebox("错误!","数据保存失败")return end if elseif updateornot=2 then rollback;elseif updateornot=3 thenreturn; end ifend if3.6 模板管理模块在模板管理模块设计是为了医生可以完整的定义主诉病历处方模板,可以分别定义主诉、病历、处方的模板以及在必要的时候进行模板查询。此模块将更加方便医生平时的临床诊断,为临床科研提供依据。首先建立数据窗选择数据库表blcfb中的字段mbh,bzmc,bznr,cfnr,zsnr,ygh。在窗口中运用该数据窗,通过该数据窗可将数据保存到数据表中。以下的录入模板设计类似此病历处方模板录入模板如图14。图14 完整模板录入界面在前面提到的模板查询界面如图15所示:图15 病历主诉查询模板当医生输入病症名称之后,按下“确定”键就可以在数据窗口中显示相似病症的记录,如果相似病症是多条记录就可以通过“第一条”、“上一条”、“下一条”、 “最后一条”进行查询选择,代码如下:“第一条”dw_1.scrolltorow(1)st_4.text="1"“上一条”integer row_currentrow_current=dw_1.scrollpriorrow()st_4.text=string(row_current)“下一条”integer row_currentrow_current=dw_1.scrollnextrow()st_4.text=string(row_current)“最后一条”int row row = dw_1.rowcount()dw_1.scrolltorow(row)st_4.text= string(row)3.7 数据管理模块在医院门诊庞大的日常管理工作中,不可缺少的是对后台数据库中的数据进行管理,在该功能模块中就提供了对数据的统计,查询。对挂号人数的分类统计(示例如图16)在主界面中点击“数据管理”下的“挂号人数统计”,则通过如下代码进入统计方式选择界面:opensheet(w_ghtongjilb,w_zhujiemian,8,original!)根据不同选择然后判断打开何种统计图,如图16所示图16 挂号科室人数统计界面是挂号人数按照科室统计的饼状图。该类型统计先创建一个根据数据表ghdj中的jzid和kb字段来Graph类型的数据窗,通过对kb字段分类然后通过count(jzid for graph)然后在创建的统计窗口中使用该数据