1、医院门诊管理信息系统分析与设计医院门诊管理信息系统分析与设计LT1.3 定义(1) 所有的表名的命名规则所有的表名用具有实际含义的英文单词组成,且首个字母必须大写,如Employee .本系统共有10张表:Department2253:科室,记录部门相关信息表;Patient2253: 病人表,记录病人的相关信息;Register2253:挂号表,记录挂号信息;Employee2253:员工表,记录医护人员、收费员、财务人员的主要基本信息;CsRecord2253:病历表,描述病人病历;Medicine2253:用于记录药品的相关信息;PrescriptionMaster2253:处方主表,用
2、于描述医生对病人写的处方;PrescriptionDetail2253:处方明细表,用于描述医生对病人写的处方的详细信息;Login2253:登入表,登入该系统的用户;Audit2253:审计表,系统员查询登入该系统的用户信息。(2) 所有的主键命名规则: 所有的主键名用 表名_PK,例Employee_PK。(3)所有外键的命名规则所有的外键名用 本表名外键表_FKn,n外键序号变量,如Department_FK1。(4) 所有规则的命名规则:所有的约束名用 列名_Check,如BirthDay_Check。(5) 所有字段的命名规则所有的属性名用具有实际含义的英文单词组成,且首个字母必须大
3、写,如EmployeeName。系统数据流图的一些定义: 数据流图中的功能模块; 数据流图中的实体; 数据流。2 登陆模块 frmLogin2.1功能对用户输入登录信息进行验证,并根据不同的用户权限显示相同的主菜单,但是其权限是不同的,对用户名、密码不正确的用户进行提示。2.2时间开始时间 2010. 5. 10 最后修改时间 2010.5.17。2.3界面安馨医院门诊管理系统登录界面,如图2.1:图 2.1 登录界面2.4输入项(1) 用户名、密码、登录身份;(2) 通过键盘,鼠标输入相应数据。2.5输出项如果用户信息验证正确,系统将根据“登录为”输出唯一的用户主界面,如:frm Hospi
4、talMain。主界面根据用户类型的不同,相应权限功能不一样。2.6主要算法用户验证通过过程单击确定按钮事件TfrmLogin.funOk()实验,主要实现方法是通过在数据库中查找LoginNo2253用户名,Password密码,和UserType登录身份三者一致是否存在,并返回结果值。通过调用showMenu(i:integer)函数,根据用户类型的不同,显示相同但功能不同的主界面。3 业务模块3.1 系统主界面frmHospitalMain3.1.1功能根据在登入界面选择的不同用户身份,进入唯一的主界面,但是对系统的权限处理不同。3.1.2时间开始时间 2010. 5. 10 最后修改时
5、间 2010.5.17。3.1.3界面安馨门诊管理系统主界面,如图3.1:图 3.1 安馨门诊管理系统主界面3.1.4输入项(1)选择业务处理:菜单栏:登入;医院基础数据管理(部门管理、员工管理、药品管理)挂号单管理;病历管理;处方管理;查询功能(查看日志、查询部门、查询员工、查询药品、查询处方、查询部门员工浏览表、查询病人信息)用户管理(增删用户、修改密码);新用户注册;注销用户。(2) 通过鼠标选择对应于该用户具备的功能权限,进行业务操作。(3) 涉及到的表:Department2253(部门表)、Patient2253(病人表)、Employee2253(员工表)、EmployeeOth
6、er2253(员工附加表)、Medicine2253(药品表)、CsRecord2253(病历表)、Register2253(挂号单表)、PrescriptionMaster2253(处方主表)、PrescriptionDetail2253(处方明细表)、Login2253(登入表)、Audit2253 (审计表)。3.1.5输出项各个业务处理对应的窗口。3.1.6主要算法(1) 与登录界面相连接gfunOpenLogin()的接口函数;(2) 存储过程aproInsert,自动记录用户的登录信息,放在审计表中;(3) 设置日期的显示格式,读取服务器中的时间;(4) 业务处理,通过tag值的设
7、定。3.1.7限制条件必须根据登入界面的正确性,才能在主界面上操作。3.2 部门管理frmOperateDepartment3.2.1功能系统管理员查看部门员工信息,有新增、删除、更新、保存、查询、退出的功能。3.2.2时间开始时间 2010. 5 10 最后修改时间 2010. 5.17。3.2.3界面图3.2 部门管理界面3.2.4输入项(1) 作为查询条件:直接在网格上选中,或是选择树结构上的部门信息,可以根据你选择的员工信息显示所在的部门的上级部门;(2) 新增,删除、保存界面。在网格中选中要处理的员工信息,在点击相应按钮即可。图 3.3新增,删除、保存界面 (3) 涉及到的表:Dep
8、artment2253(部门表)、Employee2253(员工表)。3.2.5输出项(1) 根据查询输出对应结果;(2) 根据业务按钮的不同选择,进行操作;(3) 涉及到的表: Department2253(部门表)、Employee2253(员工表)、EmployeeOther2253(员工附加表)。3.2.6主要算法(1) 供外界访问该表单的接口函数gfunOpenDepartment;(2) 函数生成部门树结构proCreateTree(),调用查找部门树父结点的位置函数funFindparentSite();(3) 通过继承表单,重新编写新增、删除等按钮。新增函数funNew()、删
9、除函数 funDelete()、保存函数funSave()、退出函数funExit();(4)刷新部门树结构,则调用函数proCreateTree()。3.3 员工管理frmOperateEmployee3.3.1功能系统管理员查看部门员工信息,有新增、删除、更新、保存、查询、退出的功能。3.3.2时间开始时间 2010. 5 10 最后修改时间 2010. 5.17。3.3.3界面图3.4 员工管理界面3.3.4输入项(1) 作为查询条件:直接在网格上选中员工信息;(2) 新增,删除、保存界面。在网格中选中要处理的员工信息,在点击相应按钮即可。图 3.5新增,删除、保存界面 (3) 涉及到的
10、表:Department2253(部门表)、Employee2253(员工表)、EmployeeOther2253(员工附加表)。3.4.5输出项(1) 根据查询输出对应结果;(2) 根据业务按钮的不同选择,进行操作;(3) 涉及到的表: Department2253(部门表)、Employee2253(员工表)。3.5.6主要算法(1) 供外界访问该表单的接口函数gfunOpenEmployee;(2) 函数生成部门树结构proCreateTree(),调用查找部门树父结点的位置函数funFindparentSite();(3) 通过继承表单,重新编写新增、删除等按钮。新增函数funNew(
11、)、删除函数 funDelete()、保存函数funSave()、退出函数funExit(),并且相应控件按钮的变化,变灰效果;(4) 查找图片后,显示并装入数据库点击按钮事件sbtnImageClick;(5) 保存图片到数据库,点击按钮事件bbtnSaveClick;(6) 清除选中的图片,点击按钮事件bbtnClearClick;(7) 对网格的处理,双击DBGrid1网格,显示选中的员工的名称,照片,备注信息,双击按钮事件DBGrid1DblClick;(8) 自动产生员工编号,点击按钮事件sbtnCreateEmployeeNoClick,利用存储过程astpEmployeeNo。3
12、.4药品管理frmOperateModul13.4.1功能药品管理员可以查看药品信息,添加、删除、保存、查询药品信息。3.4.2时间开始时间 2010. 5. 10 最后修改时间 2010.5.17。3.4.3界面图 3.6 药品管理界面3.4.4输入项(1) 各项输入信息:新增药品信息时,输入药品编号、药品名称、药品类别、单价、生成日期、有效日期、库存量这些必填信息,灰色标识得控件信息可填可不填。查询某一药品信息,可以根据药品编号或是药品名称;(2) 通过鼠标点击对应位置,按钮,页面;(3) 涉及到的表:Medicine2253(药品表)。3.4.5输出项(1) 当前药品简要信息浏览; (2
13、) 在操作界面上通过不同页面page的切换,以看到不同的信息,如图3.7;图 3.7 药品信息查询(3) 将新增相应数据保存到数据库对应位置;3.4.6主要算法(1) 供外界访问该表单的接口函数gfunOpenMedicine1;(2)根据查询条件的选择,单击按钮事件BitBtn1Click,动态SQL检索条件,将对应的数据信息aqryQuery显示在网格中;(3) 通过继承表单,重新编写新增、删除等按钮。新增函数funNew()、删除函数 funDelete()、保存函数funSave()、退出函数funExit()。3.5挂号单管理frmDCRegister3.5.1功能操作员根据已经注册
14、的用户信息,进行挂号功能业务。3.5.2时间开始时间 2010. 5. 10 最后修改时间 2010. 5.173.5.3界面图 3.8 挂号单管理界面3.5.4输入项(1) 通过鼠标点击网格信息,查看过往以挂号的病人信息;(2) 新增挂号单,输入病人编号、挂号时间、就诊科室编号(可以根据树结构上的信息查询)、挂号费,灰色控件则是自动产生挂号单编号;(3) 涉及到的表:Department2253(部门表)、Patient2253(病人表)、Register2253(挂号单表)。3.5.5输出项(1) 显示相应的数据库内容;(2) 自动产生挂号编号;(3) 先判断该病人的信息是否注册,如果没有
15、,则先进行注册; (4) 涉及到的表:Department2253(部门表)、Patient2253(病人表)、Register2253(挂号单表)。3.5.6主要算法(1) 供外界访问该表单的接口函数gfunOpenRegister();(2) 函数生成部门树结构proCreateTree(),调用查找部门树父结点的位置函数funFindparentSite();(3) 通过继承表单,重新编写新增、删除等按钮。新增函数funNew()、删除函数 funDelete()、保存函数funSave()、退出函数funExit();(4) 自动产生挂号单编号,通过点击按钮事件SpeedButton1
16、Click,调用存储过程astpRegister。(5) 检验用户信息是否已经注册,调用ADOQuery1,动态建立SQL语句,查询匹配。3.6病历管理frmDCCsRecord3.6.1功能医生根据已经挂了号的病人信息,进行病历单填写的功能业务。3.6.2时间开始时间 2010. 5. 10 最后修改时间 2010. 5.173.6.3界面图 3.9 病历管理界面3.6.4输入项(1) 通过鼠标点击网格信息,查看过往挂号的病人病历信息;(2) 新增病历,输入病人编号、就诊医生编号、就诊时间、主要症状,灰色控件则是自动产生病历单编号,医生姓名不必填写;(3) 涉及到的表:CsRecord225
17、3(病历表)、Patient2253(病人表)、Register2253(挂号单表)、Employee2253(员工表)。3.6.5输出项(1) 显示相应的数据库内容;(2) 自动产生病历表编号;(3) 先判断该病人是否已经挂号,如果没有,则先进行挂号;(4) 如果输入的用户编号已经挂号成功,则自动显示该病人的姓名; (5) 涉及到的表:CsRecord2253(病历表)、Patient2253(病人表)、Register2253(挂号单表)、Employee2253(员工表)。3.6.6主要算法(1) 供外界访问该表单的接口函数gfunOpenCsRecord(); (2) 通过继承表单,重
18、新编写新增、删除等按钮。新增函数funNew()、删除函数 funDelete()、保存函数funSave()、退出函数funExit();(3) 自动产生病历表编号,通过点击按钮事件SpeedButton2Click,调用存储过程astpCsRecord。(4) 检验用户信息是否已经注册,调用ADOQuery1,动态建立SQL语句,查询匹配。3.7处方管理frmDCPrescription3.7.1功能医生根据已经挂了号的病人信息,进行病历单填写后,开始填写处方信息,涉及处方明细表的操作业务。3.7.2时间开始时间 2010. 5. 10 最后修改时间 2010. 5.173.7.3界面图
19、3.10 处方明细表管理界面3.7.4输入项(1) 通过鼠标点击网格信息,查看过往病人处方信息;(2) 新增处方主表信息,输入病人编号、就诊医生编号、就诊时间,灰色控件则是自动产生处方单编号,病人姓名、医生姓名不必填写;(3) 涉及到的表:Medicine2253(药品表)、PrescriptionMaster2253(处方主表)、PrescriptionDetail2253(处方明细表)、Patient2253(病人表)、Employee2253(员工表)。3.7.5输出项(1) 显示相应的数据库内容;(2) 自动产生处方表编号;(3) 如果输入的医生编号已经存在,则自动显示该医生的姓名;(
20、4) 如果输入的用户编号已经存在,则自动显示该病人的姓名; (5) 涉及到的表:CsRecord2253(病历表)、Patient2253(病人表)、Register2253(挂号单表)、Employee2253(员工表)。3.7.6主要算法(1) 供外界访问该表单的接口函数gfunOpenPrescription; (2) 通过继承表单,重新编写新增、删除等按钮。新增函数funNew()、删除函数 funDelete()、保存函数funSave()、退出函数funExit(),通过主明细表之间的联系;(3) 自动产生处方编号,通过点击按钮事件SpeedButton1Click,调用存储过程a
21、stpPrescriptionMaster;(4) 主表与明细表通过atbPrescriptionMaster、atbPrescriptionDetail相联系,新增、删除等事务处理绑定在一起,一并触发。4 查询模块4.1 部门查询frmQueryDepartment4.1.1功能任何用户类型都可以查询安馨医院的部门情况。4.1.2时间开始时间 2010. 5 10 最后修改时间 2010. 5.17。4.1.3界面图4.1 部门查询界面4.1.4输入项(1) 作为查询条件:选择科室编号或是科室名称。(2) 点击查询按钮,相应信息显示,预览则生成报表。图 4.2部门情况信息报表(3) 涉及到的
22、表:Department2253(部门表)。4.1.5输出项(1) 根据查询输出对应结果;(2) 根据业务按钮的不同选择,进行操作;(3) 涉及到的表: Department2253(部门表)。4.1.6主要算法(1) 供外界访问该表单的接口函数gfunOpenQueryDepartment();(2) 查询功能,根据选择的不同条件,点击查询按钮事件funQuery(),aqryQuery动态SQL语句的建立,显示相应的结果;(3)根据不同的查询结果,生成不同的报表,利用控件rvpDepartment.Execute的实行。4.2 员工查询frmQueryEmployee4.2.1功能任何用户
23、类型都可以查询安馨医院的员工情况。4.2.2时间开始时间 2010. 5 10 最后修改时间 2010. 5.17。4.2.3界面图4.3 员工查询界面4.2.4输入项(1) 作为查询条件:选择员工编号、员工薪水或是员工职位。(2) 点击查询按钮,相应信息显示,预览则生成报表。(3) 涉及到的表:Department2253(部门表)、Employee2253(员工表)。4.2.5输出项(1) 根据查询输出对应结果;(2) 根据业务按钮的不同选择,进行操作;(3) 涉及到的表: Department2253(部门表)、Employee2253(员工表)。4.2.6主要算法(1) 供外界访问该表
24、单的接口函数gfunOpenQueryEmployee();(2) 查询功能,根据选择的不同条件,点击查询按钮事件funQuery(),aqryQuery动态SQL语句的建立,显示相应的结果;(3)根据不同的查询结果,生成不同的报表,利用控件rvpEmployee.Execute的实行。4.3 药品查询frmQueryMedicine4.3.1功能任何用户类型都可以查询安馨医院的药品情况。4.3.2时间开始时间 2010. 5 10 最后修改时间 2010. 5.17。4.3.3界面图4.4 药品查询界面4.3.4输入项(1) 作为查询条件:选择药品编号或是药品名称。(2) 点击查询按钮,相应
25、信息显示,预览则生成报表。(3) 涉及到的表:Medicine2253(药品表)。4.3.5输出项(1) 根据查询输出对应结果;(2) 根据业务按钮的不同选择,进行操作;(3) 涉及到的表: Medicine2253(药品表)。4.3.6主要算法(1) 供外界访问该表单的接口函数gfunOpenQueryMedicine();(2) 查询功能,根据选择的不同条件,点击查询按钮事件funQuery(),aqryQuery动态SQL语句的建立,显示相应的结果;(3)根据不同的查询结果,生成不同的报表,利用控件rvpgMedicine().Execute的实行。4.4 处方查询frmQueryPre
26、scription4.4.1功能除了普通用户,其他身份的操作员都可以查询安馨医院的医生开的处方情况。4.4.2时间开始时间 2010. 5 10 最后修改时间 2010. 5.17。4.4.3界面图4.5 处方查询界面4.4.4输入项(1) 点击主表中网格的信息,则相对应的明细表的信息会显示出来。(2) 涉及到的表:Medicine2253(药品表)、PrescriptionMaster2253(处方主表)、PrescriptionDetail2253(处方明细表)。4.4.5输出项(1) 根据查询输出对应结果;(2) 涉及到的表: Medicine2253(药品表)、Prescription
27、Master2253(处方主表)、PrescriptionDetail2253(处方明细表)。4.4.6主要算法(1) 供外界访问该表单的接口函数gfunOpenQueryPrescription();(2) 点击主表中网格的信息,则相对应的明细表的信息会显示出来。通过atbPrescriptionMaster与atbPrescriptionDetail相联系,建立主明细关系。4.5 部门-员工浏览表frm QueryDepartmentEmployee4.5.1功能任何用户都可以查询安馨医院的部门与员工的详细情况。4.5.2时间开始时间 2010. 5 10 最后修改时间 2010. 5.1
28、7。4.5.3界面图4.6 部门-员工浏览界面4.5.4输入项(1) 点击主表中网格的信息,则相对应的明细表的信息会显示出来;(2) 涉及到的表:Department2253(部门表)、Employee2253(员工表)。4.5.5输出项(1) 根据查询输出对应结果;(2) 涉及到的表: Department2253(部门表)、Employee2253(员工表)。4.5.6主要算法(1) 供外界访问该表单的接口函数gfunOpenQueryDepartmentEmployee();(2) 点击主表中网格的信息,则相对应的明细表的信息会显示出来。通过aqryQueryEMPLOYEENO2253
29、与atbDepartment相联系,建立主明细关系。4.6病人信息查询表frm QueryPatient4.6.1功能除了普通用户没有权限,任何用户都可以查询安馨医院的病人信息的详细情况。4.6.2时间开始时间 2010. 5 10 最后修改时间 2010. 5.17。4.6.3界面图4.7 病人查询界面4.6.4输入项(1) 作为查询条件:选择病人编号或是病人姓名;(2) 涉及到的表:Patient2253(病人表)、Employee2253(员工表)。4.6.5输出项(1) 根据查询输出对应结果;(2) 涉及到的表:Patient2253(病人表)、Employee2253(员工表)。4.
30、6.6主要算法(1) 供外界访问该表单的接口函数gfunOpenQueryPatient();(2) 查询功能,根据选择的不同条件,点击查询按钮事件funQuery(),aqryQuery动态SQL语句的建立,显示相应的结果;5用户管理模块5.1 增删用户frmOperateLogin5.1.1功能系统管理员维护该系统的人员的使用情况,添加登入用户信息,初始密码。5.1.2时间开始时间 2010. 5 10 最后修改时间 2010. 5.17。5.1.3界面图5.1 增删用户界面5.1.4输入项(1) 增添用户,输入用户账号、用户类型和用户初始密码。(2) 点击新增、删除、更新、保存按钮,相应信息添加或从数据库中修改。(3) 涉及到的表:Login2253(登入表)。5.1.5输出项(1) 供外界访问该表单的接口函数gfunOpenLoginUser(2) 根据业务按钮的不同选择,进行操作;(3) 涉及到的表:Login2253(登入表)。5.1.6主要算法(1) 供外界访问该表单的接口函数供外界访问该表单的接口函数gfunOpenLoginUser();(2) 通过继承表单,重新编写新增、删除等按钮。新增函数funNew()、删除函数 funDelete()、更新函数funUpdate()、保存函数funSave()