数学与计算机学院实训报告课程名称: 软件开发设计实训课程代码:题目: 医院门诊管理系统年级/专业/班:组员姓名:组员学号:开始时间: 年月日完成时间:年月日实训成绩:指导教师签名:年月日目录1 需求分析模型重构 (3)1.1业务需求分析 (3)1.2非功能性需求分析 (4)2 业务分析模型 (5)2.1业务主角 (5)2.2业务用例分析 (6)2.3业务用例场景分析 (7)2.4业务用例实现 (9)2.5业务用例完整的包图 (10)3概念分析模型 (11)3.1核心业务活动图 (11)3.2关键业务概念用例图 (11)3.3概念用例分析(活动图) (12)3.4概念用例实现分析 (13)3.5概念用例完整的包图 (15)4 系统分析模型 (15)4.1系统用户分析 (15)4.2系统用例分析 (15)4.3系统用例实现分析 (16)4.4分析类 (17)4.5组件模型分析 (20)4.6系统分析完整的包图 (21)5系统设计模型 (22)5.1软件架构/框架选择 (22)5.2基于架构的设计类 (22)6设计类优化 (23)6.1采用的设计模式说明 (23)7面向对象数据库分析设计 (23)7.1概念数据模型 (23)7.2物理数据模型 (24)附录A 部分生成的SQL语句 (25)附录B 部分生成的程序结构性代码 (27)1 需求分析模型重构1.1 业务需求分析1.1.1.背景、业务概况随着计算机产业的发展,计算机在各个行业的应用也越来越普遍.采用计算机软件来管理代替了以前的人工操作。
随着医院的发展,当前使用的医院信息管理系统软件已经不能满足当前他们的需要。
在软件的升级和外网的访问和管理上都存在一些缺陷,使用比较麻烦。
所以考虑设计一个新的的医院信息管理系统软件,来填补当前正在使用的系统的缺陷。
1.1.2业务目标本系统为医院管理系统的子系统,主要分为四大功能模块:1、挂号收费功能:医院门诊部工作人员为前来挂号看病的患者,提供挂号服务。
医院门诊人员可根据患者的描述,选择适当的科室,选择专家门诊或普通门诊,查看当前值班医生,可以向需要的患者提供必要的医生的信息并进行挂号,并打印挂号凭证。
可以对前来咨询医生工作时间或医院药品情况的就诊人员提供必要的咨询服务;2、划价收费功能:医院门诊部工作人员为持有医生药单或处方前来划价或缴费的人员根据其所持有的药单或处方分别进行划价和收费。
医院门诊部工作人员可以向系统输入所有药品名,查看并选择药品规格,输入购买数量,系统将自动进行药品总费用统计,医院门诊部工作人员可根据系统显示的药品总费用进行收费,打印票据。
3、病例管理功能:对与长期在医院进行看病或治疗的患者,系统将保留患者的基本信息及就诊记录,便于医生和患者查询。
避免患者病历丢失所带来的损失。
4、权限管理:该系统具有权限管理功能,对进入系统的人员进行权限验证,门诊工作人员在进入系统前,必须输入其工作号及密码,经系统验证成功后方可登陆。
在门诊工作人员进行工作时,系统将自动记录其操作情况,统计其收费总额,门诊工作人员可以随时进行查看,便于门诊工作人员向财务部门交账时进行核对。
1.1.3涉众分析1.1.3.1 涉众通过需求陈述分析,得出医院门诊管理系统利益相关者(涉众)如图1.1以及涉众的信息如表1-1:图1.1涉众分析表1-1涉众概要信息1.1.3.2边界系统边界的划分如图1.2所示:图1.2系统边界划分1.2 非功能性需求分析1.2.1性能需求1. 应用系统过程中的数据库响应时间不超过10秒;2. 系统生成页面速率为1Mps ;3. 用户向系统录入信息、提交信息、查询信息等操作在5秒内完成。
1.2.2 安全性需求1. 系统用户必须要登录到“医院管理系统”才能完成后续的操作,不登陆不能查询到任何信息,不能做任何操作。
2. 所有涉及到系统功能和个人信息的内容,必须使用加密措施进行加密。
2 业务分析模型2.1 业务主角2.1.1划价收费管理业务主角如图2.1所示:系统管理员门诊工作人员图2.1划价收费管理业务主角2.1.2挂号收费管理业务主角如图2.2所示:病人(挂号收费管理模块)门诊工作人员(挂号收费管理模块)图2.2挂号收费管理业务主角2.1.3病例管理业务主角如图2.3所示:医生(病例管理模块)病人(病例管理模块)门诊工作人员(病例管理模块)图2.3病例管理业务主角2.1.4系统权限管理业务主角如图2.4所示:系统管理员(系统权限管理模块)门诊工作人员(系统权限管理模块)图2.4系统权限管理业务主角2.2 业务用例分析2.2.1 划价收费模块业务用例根据划价收费模块业务分析,得到其用例如图2.5所示:病人处方单图2.5 划价收费模块业务用例2.2.2挂号收费模块业务用例根据挂号收费模块业务分析,得到其用例如图2.6所示:病人图2.6 挂号收费模块业务用例2.2.3病例管理模块业务用例根据病例管理模块业务分析,得到其用例如图2.7所示:门诊工作人员病人信息医生病人图2.7挂号收费模块业务用例2.2.4系统权限管理模块业务用例根据系统权限管理模块业务分析,得到其用例如图2.8所示:系统管理员角色授权角色管理权限验证密码修改门诊工作人员查看门诊信息录入门诊信息图2.8系统权限管理模块业务用例2.3 业务用例场景分析2.3.1 划价收费业务用例场景分析划价收费业务用例协作图,如图2.9所示:病人管理系统数据库图2.9划价收费业务用例协作图划价收费业务用例时序图,如图2.10所示:管理系统2数据库26: 显示药品心情及药品单价、总价图2.10划价收费业务用例时序图2.3.2 挂号收费业务用例场景分析挂号收费业务用例协作图,如图2.11所示:病人管理系统数据库图2.11挂号收费业务用例协作图挂号收费业务用例时序图,如图2.12所示:管理系统2数据库24: 保存挂号信息图2.12挂号收费业务用例时序图2.4业务用例实现2.4.1 划价收费业务用例实现划价收费业务用例收费,如图2.13所示:递交药单输入药品名称选择药品规格计算药品总价收取费用输入药品数量图2.13 划价收费业务用例实现图2.4.2 挂号收费业务用例实现挂号收费业务用例收费,如图2.14所示:要求告知姓名选择科室挂号类型查看医生姓名挂号费价格收取挂号费打印凭证图2.14 挂号收费业务用例实现图2.4.3 系统权限管理业务用例实现系统权限管理业务用例收费,如图2.15所示:图2.15 系统权限管理业务用例实现图2.5 业务用例完整的包图业务用例完整包图如图2.16所示:图2.16业务用例完整包图3概念分析模型3.1核心业务活动图核心业务活动图如图3.1所示:挂号收费版块医生诊断病情划价收费版块系统权限管理版块打印凭证挂号收费医生诊断开药单收费发药打印收费凭证保存信息图3.1核心业务活动图3.2关键业务概念用例图划价收费概念用例图,如图3.2所示:划价收费概念用例图划价收费选择药品规格(划价收费管理模块)输入药品名称(划价收费管理模块)输入购买数量(划价收费管理模块)查看药品总额并收费(划价收费管理模块)图3.2划价收费概念用例图挂号收费概念用例图,如图3.3所示:图3.3挂号收费概念用例图3.3概念用例分析(活动图)3.3.1 挂号收费概念用例分析挂号收费概念用例分析,如图3.4所示:病人门诊挂号工作人员系统管理提供病情挂号类型选择科室选择挂号信息确认保存挂号信息打印凭条图3.4挂号收费概念用例分析3.3.2 划价收费概念用例分析划价收费概念用例分析,如图3.5所示:划价收费概念用例场景图--活动图。
医生病人2门诊收费人员系统开处方单递交处方单选择药品规格输入药品名称输入药品数量查看药品总额并收费打印收费凭条图3.5划价收费概念用例分析3.4概念用例实现分析3.4.1 挂号收费概念用例实现分析3.4.1.1 挂号收费概念用例实现(时序图)挂号收费概念用例实现时序图,如图3.6所示:管理系统数据库4: 保存挂号信息图3.6挂号收费概念用例实现时序图3.4.1.2 挂号收费概念用例场景分析对象(类图)挂号收费概念用例场景分析对象,如图3.7所示:科室选择病人病情收费凭证挂号类型图3.7挂号收费概念用例场景分析对象3.4.2 划价收费概念用例实现分析3.4.2.1 划价收费概念用例实现(时序图)划价收费概念用例实现时序图,如图3.8所示:管理系统数据库6: 显示药品心情及药品单价、总价图3.8划价收费概念用例实现时序图3.4.2.2 划价收费概念用例场景分析对象(类图)划价收费概念用例场景分析对象,如图3.9所示:药品规格处方单收费凭证药品价格图3.9划价收费概念用例场景分析对象3.5 概念用例完整的包图概念用例完整包图,如图3.10所示:图3.10概念用例完整包图4 系统分析模型4.1 系统用户分析系统用户分析,如图4.1所示:划价收费工作人员系统管理员图4.1系统用户分析4.2 系统用例分析4.2.1 系统用例图系统用例图,如图4.2所示:系统管理员(<系统用户>)划价收费工作人员(<系统用户>)挂号收费工作人员(<系统用户>)sys_查询病人挂号信息sys_查询划价收费信息sys_查询药品信息sys_划价收费sys_挂号收费sys_业务咨询sys_角色管理图4.2系统用例图4.2.2 系统用例图场景分析(活动图)4.3 系统用例实现分析4.3.1 系统用例实现用例图系统用例实现图,如图4.4所示:sys_业务咨询(系统用例)sys_划价收费(系统用例)sys_挂号收费(系统用例)sys_查询划价收费信息(系统用例)sys_查询病人挂号信息(系统用例)sys_查询药品信息(系统用例)sys_角色管理(系统用例)sysr_角色授权sysr_科室选择sysr_挂号类型选择sysr_输入药品名称图4.4系统用例实现用例图4.3.2 用例实现场景分析(活动图)4.4 分析类4.4.1 实体类实体类如图4.6所示:划价收费+ +划价收费信息建立 ()保存 ()...: void: void挂号收费+ +挂号收费信息建立 ()保存 ()...: void: void系统权限++信息录入 ()保存 ()...: void: void图4.6实体类4.4.2 控制类控制类如图4.7所示:挂号收费控制+ + + + +创建挂号申请 ()提交挂号信息 ()选择挂号信息 ()打印挂号信息 ()保存 ()...: void: void: void: void: void划价收费控制++++++递交处方单 ()查询药品信息及价格 ()输入药品数量 ()确认信息 ()打印凭证 ()保存 ()...: void: void: void: void: void: void系统权限控制+++++登录验证 ()角色管理 ()角色授权 ()身份验证 ()保存 ()...: boolean: void: void: boolean: void图4.7控制类4.4.3 边界类边界类如图4.8所示:挂号收费边界+ +创建挂号申请 ()打印挂号信息 ()...: void: void划价收费边界++递交处方单 ()打印凭证 ()...: void: void系统权限边界++登录验证 ()身份验证 ()...: boolean: boolean图4.7边界类4.4.4各系统分析模型4.4.4.1 挂号收费分析模型挂号收费分析模型如图4.8所示:申请挂号Action+ + +newWindow () checkData () resultShow ()...: void: bool: void 咨询挂号Window+checkCreate () ...: void挂号Control+submit ()...: bool挂号凭证----sIdnameteltype: string: string: string: int++++++++getSId ()setSId ()getType ()setType ()getName ()setName ()getTel ()setTel ()...: string: void: string: void: string: void: string: void工作流引擎(<OO分析设计>)挂号编号生成器+getNewId () ...: stringEntityControl+-add ()ORMDecomposition() ()...: void: voidDBControl+add ()...: void图4.8挂号收费分析模型4.4.4.2 划价收费分析模型划价收费分析模型如图4.9所示:查询价格Action+++newWindow ()checkData ()resultShow ()...: void : bool : void 输入药品规格、数量及名称Window+checkCreate ()...: void 收费Control+submit ()...: bool 划价收费凭证----sId name tel type : string : string : string : int++++++++getSId ()setSId ()getType ()setType ()getName ()setName ()getTel ()setTel ()...: string : void : string : void : string : void : string : void 工作流引擎(<OO分析设计>)划价收费编号生成器+getNewId ()...: string EntityControl+-add ()ORMDecomposition() ()...: void : void DBControl+add ()...: void图4.9划价收费分析模型4.4.5各系统分析类图 4.4.5.1 挂号收费分析类图挂号收费BusinessControl 层分析类图,如4.10所示:0..*挂号凭证----sId name tel type : string : string : string : int++++++++getSId ()setSId ()getType ()setType ()getName ()setName ()getTel ()setTel ()...: string : void : string : void : string : void : string : void 挂号编号生成器+getNewId ()...: string 工作流引擎(<OO分析设计>)申请挂号Action+++newWindow ()checkData ()resultShow ()...: void : bool : void 挂号Control+submit (): bool图4.10挂号收费BusinessControl 层分析类图挂号收费Entity 层分析类图,如4.11所示:EntityControl+-add ()ORMDecomposition() ()DBControl+add (): void挂号收费图4.11挂号收费Entity 层分析类图挂号收费Window 层分析类图,如4.12所示:咨询挂号Window+checkCreate ()...: void 申请挂号Action+++newWindow ()checkData ()resultShow ()...: void : bool : void 挂号Control+submit ()...: bool 挂号凭证----sId name tel type : string : string : string : int++++++++getSId ()setSId ()getType ()setType ()getName ()setName ()getTel ()setTel ()...: string : void : string : void : string : void : string : void 挂号收费边界图4.12挂号收费Window 层分析类图4.4.5.2 划价收费分析类图划价收费BusinessControl 层分析类图,如4.13所示:0..*划价收费凭证----sId name tel type : string : string : string : int++++++++getSId ()setSId ()getType ()setType ()getName ()setName ()getTel ()setTel ()...: string : void : string : void : string : void : string : void 划价收费编号生成器+getNewId ()...: string 工作流引擎(<OO分析设计>)查询价格Action+++newWindow ()checkData ()resultShow ()...: void : bool : void 收费Control+submit (): bool图4.13划价收费BusinessControl 层分析类图划价收费Entity 层分析类图,如4.14所示:EntityControl+-add ()ORMDecomposition() ()DBControl+add (): void划价收费图4.14划价收费Entity 层分析类图划价收费Window层分析类图,如4.15所示:输入药品规格、数量及名称Window+checkCreate ()...: void查询价格Action+ + +newWindow () checkData () resultShow ()...: void: bool: void收费Control+submit () ...: bool划价收费凭证----sIdnameteltype: string: string: string: int++++++++getSId ()setSId ()getType ()setType ()getName ()setName ()getTel ()setTel ()...: string: void: string: void: string: void: string: void划价收费边界图4.15划价收费Window层分析类图4.4.6 总分析类图总分析类图,如4.16所示:1..*1..10..10..*0..10..*0..10..*0..1就诊安排---科室科室编号就诊医生: ng.String: ng.String: ng.StringBuffer病人----姓名身份证号性别年龄: ng.String: ng.String: int: int员工-----员工编号身份证号性别年龄部门: ng.String: ng.String: int: int: ng.String门诊工作人员医生部门----部门编号部门名称领导编号部门说明: ng.String: ng.String: ng.String: ng.String药品库存部门门诊部财务部系统维护部门系统管理员病人挂号信息----姓名性别年龄挂号类型: ng.String: int: int: ng.String挂号操作详情----挂号类型选择科室选择挂号收费打印凭证: ng.String: ng.String: ng.Float: ng.String挂号工作人员划价收费工作人员收费信息-----药品名称药品规格购买数量药品总额打印凭证: ng.String: ng.String: int: ng.Float: ng.String数据信息管理----医生信息工作人员信息药品信息其它信息: ng.String: ng.String: ng.String: ng.String图4.16总分析类图4.5 组件模型分析挂号用例组件图如图4.17所示:图4.17挂号用例组件图划价用例组件图如图4.18所示:图4.18划价用例组件图4.6 系统分析完整的包图系统分析完整包图,如图4.19所示:图4.19系统分析完整包图5系统设计模型5.1软件架构/框架选择本次软件架构设计采用MVC 模式,其好处是显示、逻辑、和数据分开,这样一方面的改变不会影响另一方面。