基础数据维护子系统的设计与实现

上传人:m**** 文档编号:129541701 上传时间:2022-08-03 格式:DOC 页数:16 大小:699KB
收藏 版权申诉 举报 下载
基础数据维护子系统的设计与实现_第1页
第1页 / 共16页
基础数据维护子系统的设计与实现_第2页
第2页 / 共16页
基础数据维护子系统的设计与实现_第3页
第3页 / 共16页
资源描述:

《基础数据维护子系统的设计与实现》由会员分享,可在线阅读,更多相关《基础数据维护子系统的设计与实现(16页珍藏版)》请在装配图网上搜索。

1、基础数据维护子系统的设计与实现2006 级信息管理与信息系统 1 班 1 号 张三、2 号 李四1 需求分析1.1 系统需求分析基础数据维护子系统是整个门诊系统运行的基础,是其它各个子系统的数据 来源,它提供整个门诊系统正常运行所需的基础数据集(公共代码),它服务于 门诊所有的子系统,是整个门诊系统的核心和基础。基础数据维护子系统完成基础信息(公共代码)的管理和维护,包括基础信 息的录入、修改、删除、查询、打印等操作。1.2 可行性分析项目合作公司已经有 10 年的医院管理软件开发经验,对医院门诊业务已经 非常熟悉;项目合作公司提供了大力的物力和人力方面的支持;本人已经设计并 实现了若干个管理

2、信息系统,技术水平也已经达到了开发该系统的要求。1.2.1 系统的实现平台为了让系统能够顺畅、高效的运行,计算机的硬件建议最低配置如下:CPU 1.7GHZ内存 512M硬盘 40G操作系统 WIN XP/2000 操作系统或更高1.2.2 开发工具的选择PowerBuilder 9.0 作为前台的开发工具,用 Microsoft SQL Server 2000 作为后台支持数据库,通过 PowerBuilder 9.0 提供的数据库连接专用接口连接SQL Server 2000 中的数据库,并对其编程来实现各种系统所有功能。1.2.3 开发工具概述1.2.3.1 PowerBuilder 9

3、.0 概述PowerBuilder 9.0 发布于 2003 年 6 月,它是业界第一个集设计、建模、开 发、部署、管理等各项功能为一体的新一代快速应用开发工具,为开发者提供了 更加简单易用、高效优质的应用开发环境。PowerBuilder 9.0 是一个开放的、适用于各类异质部署环境的快速应用开 发工具,它将管理理念和可重用的应用系统开发相互有机结合,是开发商业软件 的有力武器,标志一个新的开发模式的开始。利用PowerBuilder 9.0可以更容易的深入从事网络和N层数据库应用程序 的开发工作,同时还利于开发人员创建面向富客户( rich-client )的应用系统, 以满足当前市场对这

4、种系统的商业需求。此外 PowerBuilder 9.0 还支持 J2EE 和 Microsoft.Net 技术体系,并且能与 PowerDesigner 紧密地相结合。1.2.3.2 SQL Server 2000 数据库简介早期的一些数据库软件,无论是数据库的建立、数据库的维护,还是数据的 操作都相当复杂且不易实现,但是在具备了图形用户界面特性的 SQL Server 数 据库软件推出之后,以上列举的操作不再是困难的事情,我们可以快速地在数据 库服务器上建立起一个符合系统所需的数据库。SQL Server 2000是SQL Server系列中非常有代表性的一个版本,它是一 个大型关系数据库

5、管理系统,是微软公司在SQL Server 7.0版的基础上经过改 进和提高而推出的数据库产品。它的性能、可靠性、质量以及易用性都比以前的 版本大有提高。它提供了许多提高系统运行性能的新功能,并使数据库的管理工 作变得更加轻松容易。把 SQL Server 2000作为 OLTP 、数据仓库以及电子商务应用程序的后台数 据库是一个不错的选择。在SQL Server 2000关系数据库中,信息被存放在二维 表格结构的表(TABLE )中。数据库中的表之间可以是相互关联的,表之间的这 种关联性是通过主健和外键体现出来的参照关系来实现的。数据库中不仅包括 表,还包括其他数据库对象,如:视图、存储过程

6、、索引等。2 系统设计2.1 系统功能设计对医院门诊业务进行深入分析,可以发现系统用到的基础数据可以分为以下 几大类:(1)部门科室 主要包括:医院部门、科室信息,以及为了描述部门、科室所需的辅助(如: 部门类型、科室类别等);(2)人员 主要包括:医院人员信息,以及为了描述人员所需的辅助(如:性别、民族、 职业等);(3)药品 主要包括:医院药品信息,以及为了描述药品所需的辅助(如:药品类型、 剂型等);(4)诊疗 主要包括:各种诊疗项目信息,以及为了描述诊疗项目所需的辅助(医嘱类 型、医学符号、疾病类型等);(5)医疗保险 主要包括:各种医疗保险信息,以及为了描述医疗保险所需的辅助(如:医

7、 保类型、医保接口方式等);(6)财务 主要包括:各种医院收费项目信息,以及为了描述收费项目所需的辅助(如: 支付方式、票据类型、优惠方式等);(7)系统用户主要包括:系统用户信息,以及为了描述系统用户所需的辅助(如:用户角 色等);根据以上分析的结果,给出系统功能模块结构图如下:图 2-1 系统模块结构根据系统需求分析和系统功能模块结构图来看,该系统应具备如下基本功部门科室类信息添加、删除、修改、查询功能 人员类信息添加、删除、修改、查询功能 药品类信息添加、删除、修改、查询功能 诊疗类信息添加、删除、修改、查询功能 医疗保险类信息添加、删除、修改、查询功能 财务类信息添加、删除、修改、查询

8、功能 系统用户类信息添加、删除、修改、查询功能2.2 数据库设计经过对需求的详细分析,设计了 106个数据表,这些数据表基本上都符合 3NF 的要求,由于数据表数量较多,在这里我们仅给出一部分和人员信息有关的 数据表结构的描述。数据库名:JC表 2-1 性别表结构字段名数据类型长度可否为空说明xb_bmchrchar1No性别编码xb_mcchrvarchar20No性别名称xb_pymchrvarchar5Yes拼音码xb_sybzchrchar1Yes使用标志主键为:xb_bmchr表 2-2 民族表结构字段名数据类型长度可否为空说明mz_bmchrchar2No民族编码mz_mcchrv

9、archar20No民族名称mz_pymchrvarchar5Yes拼音码mz_sybzchrchar1Yes使用标志主键为: mz_bmchr表 2-3 职业表结构字段名数据类型长度可否为空说明zy_bmchrvarchar2No职业编码zy_mcchrvarchar20No职业名称zy_pymchrvarchar5Yes拼音码zy_sybzchrchar1Yes使用标志主键为: zy_bmchr表 2-4 职称表结构字段名数据类型长度可否为空说明zc_bmchrvarchar3No职称编码zc_mcchrvarchar20No职称名称zc_gszybmchrvarchar4Yes归属职业编

10、码zc_pymchrvarchar5Yes拼音码主键为: zc_bmchr表 2-5 政治面貌表结构字段名数据类型长度可否为空说明zzmm_bmchrvarchar2No政治面貌编码zzmm_mcchrvarchar100No政治面貌名称zzmm_pymchrvarchar30Yes拼音码zzmm_sybzchrchar1Yes使用标志主键为: zzmm_bmchr表 2-6 聘用方式表结构字段名数据类型长度可否为空说明pyfs_bmchrvarchar2No聘用方式编码pyfs_mcchrvarchar100No政治面貌名称pyfs_pymchrvarchar30Yes拼音码pyfs_syb

11、zchrchar1Yes使用标志主键为:pyfs_bmchr表 2-7 职工基本信息表结构字段名数据类型长度可否为空说明zgjbxx_bmchrvarchar4No职工编码zgjbxx_xmchrvarchar50No职工姓名zgjbxx_zjmchrvarchar30Yes助记码zgjbxx_xbchrvarchar1Yes职工性别zgjbxx_mzchrvarchar2Yes民族zgjbxx_csrqdtmdatetime8Yes出生日期zgjbxx_zzmmchrvarchar2Yes政治面貌zgjbxx_zylbchrvarchar2Yes职业类别(医师、护士)zgjbxx_zcchr

12、varchar3Yes职称zgjbxx_pyfschrvarchar2Yes聘用方式(正式、临时 等)zgjbxx_jtzzchrvarchar200Yes家庭住址zgjbxx_lxdhchrvarchar30Yes联系电话zgjbxx_jgchrvarchar200Yes籍贯zgjbxx_jjtxttext16Yes个人简介zgjbxx_qtsmtxttext16Yes其他说明zgjbxx_zgbzchrCHAR1Yes在岗标志主键为: zgjbxx _bmchr3 系统实现由于系统功能比较复杂,涉及到的窗口有 100 多个,我们仅仅列举其中的几 个,用于说明系统的实现。3.1 系统登窗口通

13、过该窗口实现对用户的身份进行验证,保证非法用户无法进入系统。图 3-1 系统登录界面3.2 系统主窗口通过系统主窗口上的菜单可以打开各个基础数据维护窗口,进行数据维护。图 3-2 系统主界面3.3 系统主菜单W _ain_di (jcjc ) (E: 基础数据维护jcjcqjapp. pbl) inherited 匸叵I区|n|xlS-.S-E-.m_main_mdi操任汨 特殊权限 部门科室部门类别錐护囱砲alx科室类别錐护操作p)特殊权限人员管理用户管理用户权限系统配置财务诊疗部门科室:田:由:由田:由:由:E:由:由:由田人员管理 用户管理 用户权限 丟统配置 财务 诊疗 药品医保农合帮

14、助 窗口 退出医院信息维护 部门信息錐护 病区信息錐护 诊区信息錐护 诊间信息錐护 科室信息錐护科室与科室类别关丢图 3-3 系统主菜单图 3-4 职工基本信息维护窗口Stringls_bmStringls_xmStringls_zjmStringls_xbdatetimeldt_cssjStringls_mzStringls_zzmmStringls_zyStringls_zcStringls_pyfsStringls_lxdhStringls_jtzzStringls_grjjStringls_qtsmstringls_zgbzdatetimeldt_xtsjIntegerli_count

15、stringls_errtextintli_rtstringls_sql_jcstringls_sql_mzdw_1.AcceptText()“保存”按钮中的代码如下:/编码/姓名/助记码/性别/出生时间/民族/政治面貌/职业/职称/聘用方式 /联系电话 /家庭住址 /个人简介/其他说明/在岗标志/系统时间/在基础库中执行/在门诊库中执行if dw_1.rowcount() 1 then return if dw_1.modifiedcount( ) 1 thenmessagebox(提示,数据没有发生变化!)return end if/数据合法性校验/编码ls_bm = dw_1.getit

16、emstring(dw_1.getrow(),zgjbxx_bmchr)ls_bm = string(integer(trim(ls_bm),0000)dw_1.setitem( dw_1.getrow(),zgjbxx_bmchr,ls_bm)if ib_bm_isvalid = false then messagebox(提示,请重新输入编码!) dw_1.setfocus() dw_1.setcolumn(zgjbxx_bmchr) dw_1.selecttext( 1,len(ls_bm) returnend if /判断该编码是否已经使用SELECT count(*) INTO :l

17、i_count FROM jcjc_tb_zgjbxx/姓名/在岗标志/民族WHERE zgjbxx_bmchr = :ls_bmUSING sqlca ;IF sqlca.SQLCode = 1 and str_czlx.czlx= new THENMessageBox(提示,该编码已经被使用,请重新输入编码!) dw_1.setcolumn( zgjbxx_bmchr)dw_1.selecttext( 1,len(ls_bm)RETURNEND IF /判断姓名是否为空ls_xm = dw_1.getitemstring(dw_1.getrow(),zgjbxx_xmchr) if tri

18、m(ls_xm) = or isnull(ls_xm) thenmessagebox(提示,姓名不能空!) dw_1.setcolumn(zgjbxx_xmchr) dw_1.selecttext( 1,len(ls_xm) returnend if/判断在岗标志是否为空ls_zgbz = dw_1.getitemstring(dw_1.getrow(),zgjbxx_zgbzchr) if isnull(ls_zgbz) thenmessagebox(提示:,在岗标志不能为空!) dw_1.setcolumn(zgjbxx_zgbzchr) returnend ifls_mz = dw_1.

19、getitemstring(dw_1.getrow(),zgjbxx_mzchr) if isnull(ls_mz) then ls_mz = /判断民族是否存在if ls_mz = or isnull(ls_mz) thenelseselect mz_bmchr into :ls_mz from jcjc_ta_mz where mz_mcchr =: ls_mz using sqlca;IF sqlca.SQLCode 0 THENls_errtext = sqlca.SQLErrTextMessageBox(错误信息,错误信息:+ ls_errtext) RETURNEND IFIF l

20、s_mz = or isnull(ls_mz) THENMessageBox(提示,民族输入有误,请重新输入!)dw_1.setfocus()dw_1.setcolumn( zgjbxx_mzchr)dw_1.selecttext( 1,len(ls_mz)RETURNEND IFend ifls_zjm = dw_1.getitemstring(dw_1.getrow(),zgjbxx_zjmchr)/助记码if isnull(ls_zjm) then ls_zjm = ls_xb = dw_1.getitemstring(dw_1.getrow(),zgjbxx_xbchr)/性别if i

21、snull(ls_xb) then ls_xb = ldt_cssj = dw_1.getitemdatetime(dw_1.getrow(),zgjbxx_csrqdtm)/出生日期if isnull(ldt_cssj) then ldt_cssj = datetime(date(1900-01-01)ls_zzmm = dw_1.getitemstring(dw_1.getrow(),zgjbxx_zzmmchr)/政治面貌if isnull(ls_zzmm) then ls_zzmm = ls_zy = dw_1.getitemstring(dw_1.getrow(),zgjbxx_zy

22、lbchr)/职业if isnull(ls_zy) then ls_zy = ls_zc = dw_1.getitemstring(dw_1.getrow(),zgjbxx_zcchr)/职称if isnull(ls_zc) then ls_zc = ls_pyfs = dw_1.getitemstring(dw_1.getrow(),zgjbxx_pyfschr)/聘用方式if isnull(ls_pyfs) then ls_pyfs = ls_lxdh = dw_1.getitemstring(dw_1.getrow(),zgjbxx_lxdhchr)/联系电话if isnull(ls_l

23、xdh) then ls_lxdh = ls_jtzz = dw_1.getitemstring(dw_1.getrow(),zgjbxx_jtzzchr)/家庭住址if isnull(ls_jtzz) then ls_jtzz = ls_grjj = dw_1.getitemstring(dw_1.getrow(),zgjbxx_jjtxt)/个人简介if isnull(ls_grjj) then ls_grjj = ls_qtsm = dw_1.getitemstring(dw_1.getrow(),zgjbxx_qtsmtxt)/其他说明if isnull(ls_qtsm) then l

24、s_qtsm = /ldt_zzsj = dw_1.getitemdatetime(dw_1.getrow(),zgjbxx_zzsjdtm)/终止时间if str_czlx.czlx = edit then/修改记录ls_sql_jc = update jcjc_tb_zgjbxx set zgjbxx_xmchr= +ls_xm+,zgjbxx_zjmchr = +ls_zjm+,zgjbxx_xbchr =+ls_xb+,&+zgjbxx_mzchr=+ls_mz+,zgjbxx_csrqdtm=+string(ldt_cssj)+,zgjbxx_zzmmchr=+ls_zzmm+,zg

25、jbxx_zyl bchr=+ls_zy+,&+zgjbxx_zcchr=+ls_zc+,zgjbxx_pyfschr=+ls_pyfs+,zgjbxx_jtzzchr=+ls_jtzz+,zgjbxx_lx dhchr=+ls_lxdh+,&+zgjbxx_jjtxt=+ls_grjj+,zgjbxx_qtsmtxt=+ls_qtsm+,zgjbxx_zgbzchr=+ls_zgbz+&!+ where zgjbxx_bmchr =+ls_bm+ls_sql_mz = update mzjc_tb_zgjbxx set zgjbxx_xmchr= +ls_xm+,zgjbxx_zjmchr

26、= +ls_zjm+,zgjbxx_xbchr =+ls_xb+,&+zgjbxx_mzchr=+ls_mz+,zgjbxx_csrqdtm=+string(ldt_cssj)+,zgjbxx_zzmmchr=+ls_zzmm+,zgjbxx_zyl bchr=+ls_zy+,& +zgjbxx_zcchr=+ls_zc+,zgjbxx_pyfschr=+ls_pyfs+,zgjbxx_jtzzchr=+ls_jtzz+,zgjbxx_lx dhchr=+ls_lxdh+,&+zgjbxx_jjtxt=+ls_grjj+,zgjbxx_qtsmtxt=+ls_qtsm+,zgjbxx_zgbz

27、chr=+ls_zgbz+&+ where zgjbxx_bmchr =+ls_bm+elseif str_czlx.czlx = new then/插入新记录ls_sql_jc = INSERT INTO jcjc_tb_zgjbxx( zgjbxx_bmchr,zgjbxx_xmchr,zgjbxx_zjmchr,zgjbxx_xbchr, zgjbxx_mzchr,zgjbxx_csrqdtm,zgjbxx_zzmmchr,zgjbxx_zylbchr,&+zgjbxx_zcchr,zgjbxx_pyfschr, zgjbxx_jtzzchr,zgjbxx_lxdhchr, zgjbxx

28、_jjtxt,zgjbxx_qtsmtxt,zgjbxx_zgbzchr)&+ VALUES ( +ls_bm+, +ls_xm+, +ls_zjm+, +ls_xb+, +ls_mz+, +string(ldt_cssj)+, +ls_zzmm+, +ls_zy+,&+ls_zc+, +ls_pyfs+, +ls_jtzz+, +ls_lxdh+, +ls_grjj+,+ls_qtsm+, +ls_zgbz+)ls_sql_mz = INSERT INTO mzjc_tb_zgjbxx( zgjbxx_bmchr,zgjbxx_xmchr,zgjbxx_zjmchr,zgjbxx_xbchr

29、, zgjbxx_mzchr,zgjbxx_csrqdtm,zgjbxx_zzmmchr,zgjbxx_zylbchr,&+zgjbxx_zcchr,zgjbxx_pyfschr, zgjbxx_jtzzchr,zgjbxx_lxdhchr, zgjbxx_jjtxt,zgjbxx_qtsmtxt,zgjbxx_zgbzchr)&+ VALUES ( +ls_bm+, +ls_xm+, +ls_zjm+, +ls_xb+, +ls_mz+, +string(ldt_cssj)+, +ls_zzmm+, +ls_zy+,&+ls_zc+, +ls_pyfs+, +ls_jtzz+, +ls_lx

30、dh+, +ls_grjj+,+ls_qtsm+, +ls_zgbz+)end if /数据保存和分发 li_rt = gf_execute_sql_not_commit(ls_sql_jc,ls_sql_mz) if li_rt = 0 thenMessageBox(提示:,参数传递有误!,StopSign!)Returnend ifdatetime dt_dqsjstring ls_czlxdt_dqsj = getdatetime()if str_czlx.czlx = new thenls_czlx = 新增elseif str_czlx.czlx = edit thenls_czlx

31、 = 修改end if/记录到历史表中INSERT INTO jcjc_tb_zgjbxx_ls( zgjbxx_bmchr,zgjbxx_xmchr,zgjbxx_zjmchr,zgjbxx_xbchr, zgjbxx_mzchr,zgjbxx_csrqdtm,zgjbxx_zzmmchr,zgjbxx_zylbchr, zgjbxx_zcchr,zgjbxx_pyfschr, zgjbxx_jtzzchr,zgjbxx_lxdhchr, zgjbxx_jjtxt,zgjbxx_qtsmtxt, zgjbxx_zgbzchr, zgjbxx_czlxchr,zgjbxx_czybmchr,z

32、gjbxx_czyxmchr, zgjbxx_macchr,zgjbxx_czsjdtm)VALUES ( :ls_bm, :ls_xm, :ls_zjm, :ls_xb,:ls_mz, :ldt_cssj, :ls_zzmm, :ls_zy,:ls_zc, :ls_pyfs, :ls_jtzz, :ls_lxdh,:ls_grjj,:ls_qtsm, :ls_zgbz,:ls_czlx,:gyhxx_yhxx.s_zgbm,:gyhxx_yhxx.s_zgxm,:gyhxx_yhxx.s_hostmac,:dt_dqsj)using sqlca;If sqlca.SQLCode 0 or l

33、i_rt 1 Thengf_rollback()MessageBox(提示:,保存数据失败!,StopSign!)Returnend if /提交事务gf_commit() messagebox(提示:,数据保存成功!)w_jcjc_tb_zgjbxx_list.dw_1.retrieve() /重新检索 /定位于刚刚修改过的或刚刚新增的记录 int li_row if w_jcjc_tb_zgjbxx_list.dw_1.rowcount() 0 thenfor li_row = 1 to w_jcjc_tb_zgjbxx_list.dw_1.rowcount()if ls_bm = w_j

34、cjc_tb_zgjbxx_list.dw_1.getitemstring(li_row,zgjbxx_bmchr) thenw_jcjc_tb_zgjbxx_list.dw_1.scrolltorow(li_row) exit end ifnextend ifIF str_czlx.czlx = new THEN/新增纪录f_insert_row( )elseclose(parent)end if3.5 职工基本信息查询窗口图 3-5 职工基本信息查询窗口“查找”按钮中的代码如下:String ls_bm string ls_filter ls_filter = ls_bm = Trim(s

35、le_bm.Text) /根据拼音码检索纪录IF ls_bm = OR IsNull(ls_bm) THEN dw_1.SetFilter() dw_1.Filter()ELSEls_filter = (zgjbxx_zjmchr like + +upper(ls_bm)+%) + or +(zgjbxx_zjmchr like + +lower(ls_bm)+%) dw_1.SetFilter(ls_filter) dw_1.Filter()END IF /如果根据拼音码查不到,则根据姓名检索纪录 if dw_1.rowcount() = 0 thendw_1.SetFilter(zgjbxx_xmchr like %+ls_bm+%) dw_1.Filter()END IFdw_1.retrieve()3.6 职工基本信息查询窗口图 3-6 职工基本信息查询窗口3.7 导出职工基本信息窗口点击“数据导出”图标,弹出“另存为”窗口,可以把职工信息保存成 Excel 文件。另存为b-1 1 n n IQ . 1取消文件名:保存类型(T):图 3-7 职工基本信息另存为 Excel 文件4 系统测试(略)5 总结(略)自动配置自动配置会覆盖手动设置。要确保使用手动设置,谙禁用自动配 置-使用自动配置脚本代理服务器回焉嚼!用代理服貓肚些设置不会应用于拨号或

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!