您好,欢迎来到华拓科技网。
搜索
您的当前位置:首页HIS医疗管理系统设计

HIS医疗管理系统设计

来源:华拓科技网
HIS医疗管理系统

目录

HIS医疗管理系统 ..................................................................... 1 1. 绪论 ...................................................................... 3

1.1系统开发背景 .......................................................... 3 1.2简述 ................................................................ 3 1.3系统的基本构成 ......................................................... 3 2. 需求分析 .................................................................. 5

2.1门诊医疗简介........................................................... 5 2.2主要业务数据流程分析 ................................................... 6

2.2.1门诊挂号 ........................................................ 6 2.2.2门诊就医 ........................................................ 6 2.2.3门诊收费 ........................................................ 7 2.2.4门诊药房发药 ..................................................... 8 2.2.5门诊药房管理 ..................................................... 8 2.3.1功能用例模型 ..................................................... 8 2.3.2 整体 E-R 图 .......................................................... 3. 系统设计 ......................................................................... 3.1系统模块结构设计 ........................................................... 3.2数据库设计 .................................................................

10 12 12 16

1. 绪论

1.1系统开发背景

门诊医疗是医院管理的门面,流量大,手续较繁锁,在手工方式下,医护 人员要做大量不必要的重复工作、效率低、准确性差、不方便管理,影响工作 效率,造成了很多就诊病人得不到合理有效的快捷就诊服务,甚至影响医疗质 量,为此,越来越多的医院加快了信息化建设的步伐,系统目前运行状况良 好,有效地优化服务和工作环境、使病员和医生情绪得以放松,提高了服务效 率和质量、树立了医院的良好形象,使门诊工作可以高效有序的运转,提高了 医院的经济效益,促进医院的发展。 开发工具:C# VS2013 SQL2008 (MySQL) 开发者:XXXXXXX

1.2简述

系统采用流行的C/S结构模式。系统的分析设计采用面向对象的技术,用 Visio等工具进行辅助设计。

1.3系统的基本构成

门诊部医疗信息管理系统主要是对医院门诊部挂号和收费,药房以及医生 就诊进行管理。

主要功能模块:

导医服务模块 医师服务模块 药房服务模块

门诊统计模块

基本设置模块

首先导医服务作为医院面对病人的第一个门面,主要是针对给病人登记: 登记病人的一些基本信息;病人预约:预约医生,科室,时间;病人挂号,前 台交费;药品退费:某些不需要的要进行退款;欠费催款;评价管理:对就诊 的医生进行评价。

医师服务的主要功能是通过病人的先主诉病情,然后对病人进行诊治,给 病人进行检查,可以查询病人的历史信息;给病人开处方,添加病人检查和检 验的信息,对病人的处方进行退药,打印诊断书,打印医令。

对丁药房服务主要功能是对医院的药品进行入出库进行管理,对库存中的 药品进行盘点和审核和对药品的增加和修改,对医生的开的药方进行确认并发 放,对那些已经退掉的药重新入库。

门诊统计对一天的门诊量和费用的统计,也可以按照科室来进行查询。 基本设置主要是对检验信息设置,检查信息的设置,对科室的增删改差 员工的值班设置。以及会员卡的设置。

2. 需求分析

2.1门诊医疗简介

门诊病人来院后,首先挂号,然后到医生处就诊,医生可能会开具检查 单、化验单,病人交费后进行相关的检查和化验,其结果能支持医生判断病 情,此时,医生开出治疗单、处方等,病人交费后接受相应处理。

(1) 挂号

预约挂号、来医院挂号、急症、医疗卡服务、就诊卡的设计与管理、所挂 室的位置、挂号收费、登记。

(2) 就诊(包括检查)

根据具体的症状进行检查、就诊,并开出处方。

(3) 收费

① 根据检查的项目及医生所开处方的具体药品,和划价系统中的具体金额② 支持多种收费方式、收费标准、收费项目、付款比例适应医院对不同病要求

③ 提供与门诊收费相关的各类报表

④ 提供门诊医疗统计、门诊科室及工作人员部分核算数据和工作量统计。 ⑤ 结帐方法灵活安全。

(4) 发药

① 药房根据处方,检查药房是否有足够的药方上需要的药,是否需要去药补足货源。

② 可以根据药品的限期及库存下限来来进行缺药、失效预告、对药品进行额双重控制。

③ 核对已收费处方无误后予以配药、发药处理。 ④ 支持病人处方的退药处理,并增加门诊药房库存。

科目、科进行收费。人的服务房去取以数量、金 (5)药品管理

① 各药房以药库为中心,请领药品、入库、调价。 ② 发药后减去门诊药房库存。

2.2主要业务数据流程分析

2.2.1门诊挂号

病人首先可以预约挂号;到医院挂号后,病人有没有磁卡,有先读取磁卡 的信息;为病人选择科室,病人选择选择医生的级别,医院为该病人指派医 生,对该病人收取挂号费用,登记挂号信息。如图 2-1所示:

2.2.2门诊就医

病人挂号到指定医生就诊,医生询问病人是否是复诊或者初诊(复诊的话 查询病人的历史就诊信息);病人向医生叙述病情,医生记录病情和病历;医生 对病人阐述的病情给与诊断,诊断然后给病人开药(配置禁忌检查,询问病人 同意否,同意的话给病人写电子病历);需要做化验、检查,给该病人开申请 单,病人拿着医生开出的药品单;化验、手术、检查、、住院申请单到收费处缴 费,缴完费用后到拿着单据到门诊药房取药;化验室、检查室做化验和检验; 如图2-2所示:

2.2.3门诊收费

门诊收费是对病人在门诊就医时所有的费用都在此处缴纳。接受病人的交 费单据,对病人费用进行收费。收费后打印,给病人一收费单据。费用每 日结算后打入财务科。如图2-3所示:

2.2.4门诊药房发药

药房根据处方,检查药房是否有足够的药房上需要的药,是否需要去药房 去补足货源;根据药品的限期及库存下限来进行缺药、失效预告、对药品进行 数量、金额双重控制;核对已收费处方无误后给与病人配药、发药处理。如图 2-4所示:

2.2.5门诊药房管理

对门诊药房的药品出入库进行操作登记。对门诊挂号的病人需要用药时, 需要医生开出的处方单取药,如需退药,需要申请,说明退药的原因,在得到 审核通过后方可进行退药操作。保证药品的及时供应,不耽误病人的病情,通 过对各种药品的入库及出库情况进行详细的登记,保证不断药,药品的质量安 全。如图2-5所示:

2.3.1功能用例模型

2.3.2整体E-R图

一个病人只有一病历且一病历只能届丁一个病人;一个病人一次(由时间 确定)只有一挂号单,一挂号单只能届丁一个病人;一个病人由一个医师进行 诊断和开处方(处理简单),一个医师可以接诊很多病人和为其开处方;一个病 人只有一处方,一处方只能届丁一个病人;一个病人可以进行多项检查,一项 检查也可以进行诊断多个病人;

一个病人可以有多个收费项目和收据,但一项

收费项目或收据只能对应一个病人;收费项目和收据是多对多关系;一份处方 可以对应多种药品,一种药品可以包含在多份处方里;药房对其他各实体的一 对多的联系;整体E-R图如图2-7所示:

3. 系统设计

3.1系统模块结构设计

医院门诊医疗管理可以分为:门诊挂号管理模块,门诊收费管理模块,药 房管理模块,门诊医生模块四大部分。结构图如图 3-1所示:

图3-1系统模块结构图

各模块的基本功能如下:

(1) 门诊挂号管理基本功能。

① 门诊挂号

门诊挂号:病人进行挂号收费处理。输入病人的信息:姓名、性别、年龄; 挂号类别、挂号科室;挂号的金额,是否优惠。点击确定,保存该病人挂号的 信息。

挂号修改:挂号员对病人挂号的信息进行修改收费;输入病人的挂号编号, 对病人的挂号信息进行修改后,点击修改,进行收费结算。

挂号预约:病人预先进行网络或者预交挂号。输入预约病人的信息:预就 诊日期、预约科室、预约医生、病人姓名、性别、出生日期、病情说明、预约 人、联系方式、预约方式;点击预约保存预约病人的信息。

挂号日结:对门诊每一天挂号的费用进行结算。 ② 查询

挂号查询:按照挂号日期、挂号编码、挂号有效期、姓名、性别、年龄; 病人类型、挂号类别、挂号科室,挂号员、等对病人挂号的信息进行查询。

预约查询:通过查询列的分类对预约的病人进行查询。

交款查询:通过查询列中的分类、条件值、查询的起止日期对病人的交款 费用查询。

(2) 门诊收费管理基本功能。

① 收费

门诊收费:对医生给与病人开出的处方给与收费。输入挂号编码,显示挂 号病人的信息以及处方的项目、数量、应收、实收、执行科室;点击收费对该 处方单进行收费。

退费申请:对已收取的费用进行退费申请。输入号,显示要申请退费 的病人信息,输入退费的原因,保存病人申请退费的信息。

退费处理:对已经过审核的退费申请单进行退费。 处方退费:对已收取的处方费用进行退费。

打印费用活单:对病人消费的费用活单进行打印。输入起止日期、收费号 或者病人姓名。点击’查询打印’就可以查询到该病人这段时间所有的费用活 单。进行费用活单打印。

收费日结:对一天的收费进行结算。 ② 收费查询

未收费处方查询:按照查询列中的分类、条件值、查询的起止日期对病人 未收费处方信息进行查询。

收费查询:按照查询列中的分类、条件值、查询的起止日期对病人收费处 方信息进行查询。

退费查询:按照查询列中的分类、条件值、查询的起止日期对病人退费的 信息进行查询。

③ 统计

收费日结明细报表:对门诊收费日结明细报表进行统计和导出数据库。

(3) 药房管理基本功能。

① 出入库管理

请领计划:药房向药库进行领药处理。选择发药库房,在请领药品中输入 要请领的药品信息,请领完需要的药品后点击保存。

入库审核:对入库的药品数据进行审核。从’提取’中提取需要审核的入 库药品的单据,点击审核进行入库审核。

出库开单:对药库中出库的药品信息输入系统中。

② 盘点

库存查询:对药库中的库存药品进行查询;选择要查询的库房、药品类 别、药品的拼音码,对库存的药品进行查询。

库存盘点:对库存中的药品进行盘点。在’提取’中选择要盘存的药品, 点击保存,保存盘存的药品数据。然后在’新建’中添加没有库存的药品。

盘存审核:对库存药品的盘点进行审核。在’提取’中选择要审核的盘存 号,单击’审核’对盘存单据审核。

盘存报表打印:对盘存的报表进行打印。选择查询条件、盘存号和打印单 据的显示方式;对盘存报表进行打印。

③ 查询

入库查询:对入库的药品进行查询。选择审核时间、药品库房、出库方 式、单据号、供货单位、药品名称对入库的药品进行查询。

盘存查询:对药库的药品进行查询。选择查询的条件:库房、药品类别、 药品拼音码;对药库的药品进行查询和导出。

门诊取药查询:对门诊取药的药品信息进行查询。按照查询歹0中的分类、 条件值、查询的起止日期对门诊取药的信息进行查询。

门诊退药查询:对门诊退药的信息进行查询。按照查询列中的分类、条件 值、查询的起止日期对门诊退药的信息进行查询

合理用药咨询:对药物合理用量的咨询。 ④ 统计

药品日用量报表:要药房药品日用量报表进行统计和导出数据库。 ⑤ 取药管理

处方审核:对医生开出的药品处方进行审核。点击处方信息中要审核的挂 号ID或者处方号。对该处方进行审核。

门诊取药:进过药房的人对处方单据进行审核后,门诊把药发给病人。

门诊退药:病人有某种原因需要退药,可以通过该本门进行退药。 门诊摆药:药房发药后,病人通过此部门把需要的药品配好后放可取走。 门诊换药:病人对医生开出的药品要求换药申请。输入要求换药的病人挂 号编码,录入要求换入出和换出的药品,点击’换药’进行申请。

换药审核:对病人要求换出换入的药品单据进行审核。

(4) 门诊医生基本功能。

① 医生工作站

医生对待诊的病人先进行病案登记;让病人主诉下病人,主诉完后对该病 人进行诊治,对该病人开医嘱,然后进行医嘱保存。诊断完后病情后认为病人 需要做检验、检查;可以询问病人是否需要,病人需要的话,给病人开检查、 检验

② 退改处方

退改审核(未取药):对未取药的审核单进行退改。选择申请单号,输入退 费的原因,然后进行审核。

医生处理退改处方:主治医生处理已取药的退改处方。 ③ 病人历史信息查询

综合医嘱信息查询:查询综合医嘱信息。选择查询条件:编号查询、病案 号查询、病人姓名查询,查询的起止日期,对病人医嘱进行查询。

综合病历查询:查询病人的综合病历信息。选择查询条件:挂号单号、查 询的起止日期,对病人病历进行查询。

综合病案查询:查询病人的综合病案信息。选择查询条件:病案号、姓 名,对病人病案进行查询。

3.2数据库设计

以下是系统设计所用的主要数据表结构

1、病人信息表

代码 表3-1病人信息表patient 名称 数据类型及长度 是否为空 patientno 病人编号 病人姓名 性别 出生日期 Int nvarchar(20) nvarchar(20) nvarchar(20) Null Null Not null Not null Name Sex birthday sidno sidtype Cellphone Homeaddress E_mail Cardtype Cardno 2、药品信息表

身份证号 证件类型 nvarchar(20) nvarchar(20) nvarchar(20) Not null Not null Not null Not null Not null Not null Not null 家庭住址 nvarchar(20) nvarchar(50) 卡类型 nvarchar(10) Int 表3-2药品信息表 Medica 代码 名称 编勺 单位 价格 规格 药品类别 主治功能 生产厂家 剩余数量 是否可用 备注 数据类型及长度 是否为空 Id Unit Price Style Class Better Factory Num Ableuse Note 3、用户信息表

Int varchar(50) numeric(18, 4) varchar(50) varchar(30) varchar(100) varchar(50) Int Bit varchar(50) Primary key Null Null Null Null Null Null Null Null Null 表3-3用户信息表 employee 名称 数据类型 是否为空 代码 Id Name 编勺 用户名 Int nvarchar(20) Primary key Not null Password Discipline Cellphone Introduction Worktype 4、检查信息表

密码 部门 联系 描述 职务 nvarchar(10) nvarchar(10) nvarchar(20) nvarchar(100) nvarchar(10) Not null Null Null Null Null 表3-4检查信息表Items 代码 名称 编勺 检查名称 拼音名 价格 备注 数据类型 是否为空 Id Name Chinese Price Note 5、检验信息表

Int nvarchar(50) nvarchar(50) numeric(18, 0) nvarchar(50) Primary key Null Null Null Null 代码 表3-5检验信息表 Checkitem 名称 数据类型 是否为空 Id Itemname Itemnum Price Unit Result Dept Note 6、科室表 编勺 检验名称 校验编p 价格 单位 检验结果 检验科室 备注 Int varchar(30) varchar(30) varchar(10) varchar(20) varchar(30) varchar(30) varchar(100) Primary key Not null Null Null Null Null Null Null 表3-6检验信息表department

代码 名称 编勺 科室名称 科室描述 数据类型 是否为空 Id Name description 7、表

Int Varchar(20) Varchar(20) Primary key null Null 代码 表 3-7 表 appointment 名称 数据类型及长度 是否为空 Apponitmentid Patientname Patientno Doctor Discipline Thisdate Thistime Reg_name Reg_fee Reg_done Dia_name Dia_fee Payment Symptom Note Appointment_do ne 门诊号/票号 病人名字 病历号 医生编p 科至编勺 当前日期 当前时间 Int Int Int nvarchar(10) nvarchar(10) char(10) Char(5) nvarchar(10) Not null Null Null Null Null Null Null null null Null Null null Null Null Null Null 挂号费 正否择p numeric(5, 2) bit char(10) numeric(18, 0) Int nvarchar(500) nvarchar(500) bit 治疗名称 治疗费用 是否缴费 病例 医嘱 是否预约 8、退药表 表3-8退约表 BackMedica 代码 名称 数据类型及长度 是否为空 Id Payno Binren Patientno Doc Part Currentdate Name Price Note Amount Instore Reason 9、会员卡表

编勺 支付编号 病人姓名 病人编号 医生 部门 当前日期 药名 价格 备注 总额 是否入库 退药理由 Int char(10) char(10) char(10) char(10) char(10) datetime nvarchar(50) numeric(18, 2) nvarchar(50) decimal(18, 2) nchar(10) nvarchar(50) Primary key Null Null Null Null Null Null Null Null Null Null Null Null 代码 表3-9会员卡表 Card 名称 数据类型及长度 是否为空 Id Name Basdiscount Note 10、表

编勺 卡名称 折扣 备注 Int nvarchar(50) char(10) nvarchar(50) Primary key Null Null Null 表 3-10 表 dict_reg 代码 名称 数据类型及长度 是否为空 Name Price Id 1

nvarchar(10) 价钱 编勺 Not null Null Not null 表

numeric(6, 2) Int 4代码 表 3-11 表 doc_score 名称 数据类型及长度 是否为空 Id Patient Prescription Score Scoredate Doctor 12、表

编勺 病人名字 评价 得分 时间 医生 Int nvarchar(50) nvarchar(50) Int smalldatetime nvarchar(50) Not null Not null Not null Not null Not null Null 代码 表 3-12 表 PayRecord 名称 数据类型及长度 是否为空 Id Piaohao Binlihao Name Doctor Dept Cardid Medicalpay Checkpay Patientpay Registerpay Currentdate Paymentmenthod paytreatfee 13、表

编勺 票号 病历号 病人名字 医生 科室 Int char(10) char(10) char(10) char(10) Primary key Null Null Null Null Null Null Null Null Null Null Null Null Null nvarchar(50) char(10) numeric(18, 0) 检查费 门诊费 挂号费 时间 卡类型 费用 numeric(18, 0) numeric(18, 0) numeric(18, 0) datetime nvarchar(50) numeric(18, 0) 表 3-13 表 UseCheck

代码 名称 数据类型及长度 是否为空 Id payno BinRen doc Part ItemName patientno Unit Price Result Note CurrentDate 14、表

编勺 门诊号 病人 医生 科室 检验名称 病历号 单位 价钱 结果 备注 时间 Int char(10) char(10) char(10) nvarchar(50) nvarchar(50) char(10) nvarchar(50) nvarchar(50) nvarchar(50) nvarchar(50) datetime Not null Null Null Null Null Null Null Null Null Null Null Null 代码 表 3-14 表 UseFee 名称 数据类型及长度 是否为空 Id payno BinRen patientno doc Part CurrentDate Name Price Note 编勺 门诊号 病人 病历号 医生 科室 时间 检查名称 价钱 备注 Int char(10) char(10) char(10) char(10) nvarchar(50) datetime nvarchar(50) numeric(18, 0) nvarchar(50) Primary key Null Null Null Null Null Null Null Null Null 15、表

表 3-15 表 UseMedica 代码 名称 编勺 门诊号 病人 医生 科室 药名 数量 价钱 总额 单位 病历号 时间 总额 数据类型及长度 是否为空 Id payno BinRen doc Part Name Num Price Amount Unit patientno CurrentDate AmendCount Int Int char(10) char(10) char(10) nvarchar(50) Int numeric(18, 0) numeric(18, 0) char(10) int datetime int Primary key Not null Null Null Null Null Null Null Null Null Null Null Null Patient patientno PK name sex birthday sidno sidtype celladdress cellphone homeaddress homephone companynameaddress companyphone e_mail BackMedica PK ID_ FK1,FK2 FK3 payno BinRen patientno doc part CurrentDate name Chinese Price Note Unit Num Amount InStore BackFee reason UseCheck PK ID FK1 payno BinRen doc Part FK2 ItemName patientno Unit Chinese Price Result Note CurrentDate firstman firstquery firstphone firstaddress recorddate hispass hisoperate cardtype cardno balance creditlimit appointment PK appointmentid FK1 patientname patientno thistype doctor discipline thisdate thistime reg_name reg_fee reg_done dia_name dia_fee payment symptom note appointment_done UseMedica PK ID FK1 payno BinRen doc Part Name Num Chinese Price Amount Unit patientno CurrentDate FK2 IsdeliverMedica deliverdMedica IsBackMedica AmendCount BackFee IsOut Card PK ID Name MedicaDiscount CheckDiscount BasDiscount Note PayRecord PK ID FK1 PiaoHao FK3 BinLiHao Name Doctor Dept FK2 CardID medicalPay CheckPay patientPay registerPay CurrentPay AmountPay CurrentDate paymentMethod deliverMedical paytreatfee UseFee PK ID FK1 FK2 payno BinRen patientno doc Part CurrentDate Name Chinese Price Note

dict_department PK dict_reg PK Checkitem PK

ID ItemName

Items

ij name description id name Name Chinese Medica PK ID name Unit price Style Chinese Class Better factory num ableuse note price doc_score PK id

patient

prescription score scoredate doctor

ItemNum Chinese Price Unit Result Dept Note D

Price Note

employee PK d name discipline cellphone introduction worktype password

类图

1.预约/挂号

UI :预约/挂号

+ IsExcit(in number : string, in doctor : string) : DataSet +GetOffice() : DataSet +GetDoctor(in discipline : string) : DataSet +Getds(in type : string) : DataSet +appGetds(in doctor : string, in thisdate : string) : DataSet +Add(in model : appointment) : bool +AddReg(in model : appointment) : bool +GetTableReg(in time : string, in doctor : string) : DataSet +Update(in model : appointment) : bool +GetNotPay() : DataSet +GetNotAllPay() : DataSet +UpdateState(in patientno : string) : bool +GetPatientid(in id : string) : DataSet +Getapptotal(in time : string) : DataSet +GetRegtotal(in time : string) : DataSet +UpdateReg(in number : string) : bool +GetBook(in time : string, in doctor : string) : DataSet +GetModel() : List +DataRowToModel(in row : DataRow, in model : appointment) Service

+IsExcit(in number : string, in doctor : string) : DataSet +GetOffice() : DataSet +GetDoctor(in discipline : string) : DataSet +Getds(in type : string) : DataSet +appGetds(in doctor : string, in thisdate : string) : DataSet +Add(in model : appointment) : bool +AddReg(in model : appointment) : bool +GetTableReg(in time : string, in doctor : string) : DataSet +Update(in model : appointment) : bool +GetNotPay() : DataSet +GetNotAllPay() : DataSet +UpdateState(in patientno : string) : bool +GetPatientid(in id : string) : DataSet +Getapptotal(in time : string) : DataSet +GetRegtotal(in time : string) : DataSet +UpdateReg(in number : string) : bool +GetBook(in time : string, in doctor : string) : DataSet +GetModel() : List +DataRowToModel(in row : DataRow, in model : appointment) Data

+IsExcit(in number : string, in doctor : string) : DataSet +GetOffice() : DataSet

+GetDoctor(in discipline : string) : DataSet +Getds(in type : string) : DataSet

+appGetds(in doctor : string, in thisdate : string) : DataSet +Add(in model : appointment) : bool +AddReg(in model : appointment) : bool

+GetTableReg(in time : string, in doctor : string) : DataSet +Update(in model : appointment) : bool +GetNotPay() : DataSet +GetNotAllPay() : DataSet

+UpdateState(in patientno : string) : bool +GetPatientid(in id : string) : DataSet +Getapptotal(in time : string) : DataSet +GetRegtotal(in time : string) : DataSet +UpdateReg(in number : string) : bool

+GetBook(in time : string, in doctor : string) : DataSet +GetModel() : List

+DataRowToModel(in row : DataRow, in model : appointment)

Data:预约/挂号实体类 -_appointmentid : int~ -_patientname : string -_patientno : string -_thistype : string -_doctor : string -_discipline : string -_thisdate : string -_thistime : string -_reg_name : string -_reg_fee -_reg_done : bool -_dia_name : string -_dia_fee -_payment -_symptom : string -_note : string -_appointment_done : bool +appointment() +appointmentid() : int +patientname() : string +patientno() : string +thistype() : string +doctor() : string +discipline() : string +thisdate() : string +thistime() : string +reg_name() : string +reg_fee(): < 未指定 > +reg_done() : bool +dia_name() : string +dia_fee(): < 未指定 > +payment(): < 未指定 > +symptom() : string +note() : string +appointment_done() : bool

2.病

Data:病人实体 -_patientno : int~ -_name : string -_sex : string -_birthday : string -_sidno : string -_sidtype : string -_celladdress : string -_cellphone : string -_homeaddress : string -_homephone : string -_companynameaddress : string -_companyphone : string -_e_mail : string -_firstman : string -_firstquery : string -_firstphone : string -_firstaddress : string -_recorddate : string -_hispass : string -_hisoperate : string -_cardtype : string -_cardno -_balance : string -_creditlimit : string +Patient() +patientno() : int +name() : string +sex() : string +birthday() : string +sidno() : string +sidtype() : string +celladdress() : string +cellphone() : string +homeaddress() : string +homephone() : string +companynameaddress() : string +companyphone() : string +e_mail() : string +firstman() : string +firstquery() : string +firstphone() : string +firstaddress() : string +recorddate() : string +hispass() : string +hisoperate() : string +cardtype() : string +cardno(): < 未指定 > +balance() : string +creditlimit() : string

UI:员工 +Exists(in name : string, in password : string) : bool +GetInfo(): < 未指定 > +GetName(): < 未指定 > +GetID(in name : string): < 未指定 > +GetBalance(in id : string): < 未指定 > +Add(in model) : bool +Delete(in id : int) : bool +GetModel(in name : string, in password : string): < 未指定 > +DataRowToModel(in row): < 未指定 > ~I~ i i i I i Service :员工 +Exists(in name : string, in password : string) : bool +GetInfo(): < 未指定 > +GetName(): < 未指定 > +GetID(in name : string): < 未指定 > +GetBalance(in id : string): < 未指定 > +Add(in model) : bool +Delete(in id : int) : bool +GetModel(in name : string, in password : string): < 未指定 > +DataRowToModel(in row): < 未指定 > 9

J

Data:员工 +Exists(in name : string, in password : string) : bool +GetInfo(): < 未指定 > +GetName(): < 未指定 > +GetID(in name : string): < 未指定 > +GetBalance(in id : string): < 未指定 > +Add(in model) : bool +Delete(in id : int) : bool +GetModel(in name : string, in password : string): < 未指 定 > +DataRowToModel(in row): < 未指定 >

折扣卡类图:

I 4 1 N H * fl I N l 1 Data:1 I 员工 1 -_id : int~ -_name : 1 i 1 string -_discipline : string -_cellphone : il I string -_introduction : il string -_worktype : fl string -_password : H string 'employeeH 1 ~ 。+id() : int ll +name() : string +discipline() : string H +cellphone() : string 1 H +introduction() : string il +worktype() : string +password() : string +Card()

+GetDiscount(in name : string): < +GetAll(): < 未指定 > +Add(in model) : bool

未指定 >

server:角色 +Card() +GetDiscount(in name : string): < +GetAll(): < 未指定 > +Add(in model) : bool data:角色 Data:实体类 -_id : int -_name : string -_medicadiscount : string -_checkdiscount : string -_basdiscount : string -_note : string +Card() +ID() : int +Name() : string +MedicaDiscount() : string +CheckDiscount() : string +BasDiscount() : string +Note() : string 未指定 >

未指定 > +Card() +GetDiscount(in name : string): < +GetAll(): < 未指定 > +Add(in model) : bool

检查类图

UI:

+CheckItem()

+GetData(): < 未指定 >

+GetCheckItems(): < 未指定 >

+GetNamePrice(in pinyin : string): < 未指定 > +GetCurrentCheck(in payno : string): < 未指

定 >

+GetDepartment(): < 未指定 > +Add(in model) : bool +Delete(in ID : int) : bool

server:角色

+CheckItem() +GetData(): < 未指定 > +GetCheckItems(): < 未指定 > +GetNamePrice(in pinyin : string): < 未指定 > +GetCurrentCheck(in payno : string): < 未指定 > +GetDepartment(): < 未指定 > +Add(in model) : bool +Delete(in ID : int) : bool data:角色

+CheckItem() +GetData(): < 未指定 > +GetCheckItems(): < 未指定 > 检验类图:

+GetNamePrice(in pinyin : string): < 未指定 > +GetCurrentCheck(in payno : string): < 未指定 > +GetDepartment(): < 未指定 > +Add(in model) : bool +Delete(in ID : int) : bool 1 1 1 1 1 1 I1 1 Data:实体类 1 -_id : int -_itemname : I 1 string -_itemnum : string -1 II I _chinese : string -_price -II II 1 [| 1 _unit : string -_result : 1 string -_dept : string -I _note : string ----- >1 ---- 1 +CheckItem() +ID() : int +ItemName() : string +ItemNum() : string +Chinese() : string +Price(): < 未指定 > +Unit() : string +Result() : string +Dept() : string +Note() : string II 1 || 1 II II II ll II 1 1 [1 1 [i I H il 1 i i i i

+Items()

+GetCheckItem(in pinYin : string): < 未指定 >

+GetData(): < 未指定 > +Delete(in ID : int) : bool +Add(in model) : bool server:角色

+Items() +GetCheckItem(in pinYin : string): < 未指定 >

+GetData(): < 未指定 > +Delete(in ID : int) : bool +Add(in model) : bool

Data:角色

+Items()

+GetCheckItem(in pinYin : string): < 未指定 >

+GetData(): < 未指定 > +Delete(in ID : int) : bool +Add(in model) : bool

药品管理类图:

UI:角色

+Medica() +GetDate(): < 未指定 > +Add(in model) : bool +Delete(in ID : int) : bool +GetMediaPinYin(): < 未指定 > +GetMedia(in chinese : string): < 未指定 > +Delete(in num : decimal, in name : string) : bool +UpdateMedica(in num : decimal, in name : string) : bool server:角色

+Medica() +GetDate(): < 未指定 > +Add(in model) : bool +Delete(in ID : int) : bool +GetMediaPinYin(): < 未指定 > +GetMedia(in chinese : string): < 未指定 > +Delete(in num : decimal, in name : string) : bool +UpdateMedica(in num : decimal, in name : string) : bool Data:角色

+Medica()

+GetDate(): < 未指定 > +Add(in model) : bool +Delete(in ID : int) : bool

+GetMediaPinYin(): < 未指定 > +GetMedia(in chinese : string): < 未指定 > +Delete(in num : decimal, in name : string) : bool

+UpdateMedica(in num : decimal, in name : string) : bool

CheckItem

-_id : int

-_itemname : string -_itemnum : string -_chinese : string -_price -_unit : string -_result : string -_dept : string -_note : string

+CheckItem() +ID() : int +ItemName() : string +ItemNum() : string +Chinese() : string +Price(): < 未指定 > +Unit() : string +Result() : string +Dept() : string +Note() : string

1 i ■ CheckItem

i I ■ -_id : int -_itemname : 1 i 1 i string -_itemnum : string -I ■ i _chinese : string -_price -I ■ _unit : string -_result : i

string -_dept : string -_note : string

r

\\ I +CheckItem()

i 1 +ID() : int

i +ItemName() : string i ■

+ItemNum() : string i +Chinese() : string i +Price(): < 未指定 >

i i +Unit() : string +Result() : i b string +Dept() : string I i+Note() : string

I

退药管理类图:

BackMedica

+Add(in model) : bool

+AddBack(in model) : bool +GetTable(): < 未指定 >

+UpdateSend(in ID : string) : bool BackMedica

+Add(in model) : bool

+AddBack(in model) : bool +GetTable(): < 未指定 >

+UpdateSend(in ID : string) : bool

BackMedica

+Add(in model) : bool

+AddBack(in model) : bool +GetTable(): < 未指定 >

+UpdateSend(in ID : string) : bool

用药类图:

CheckItem

-_id : int

-_itemname : string -_itemnum : string -_chinese : string -_price -_unit : string -_result : string -_dept : string -_note : string +CheckItem() +ID() : int

+ItemName() : string +ItemNum() : string +Chinese() : string +Price(): < 未指定 > +Unit() : string +Result() : string +Dept() : string +Note() : string

UI:用电

+ UseMedica()~ +GetTable(in id : string) : DataSet +GetUseMedica(in id : string) : DataSet + Insert(in model : UseMedica, in thisdate : string) : bool +GetPatientId(in doc : string) : DataSet +DeleteMediac(in model : UseMedica) : bool +GetNotPay(in id : string) : DataSet +UpdateSend(in payno : string) : bool +Delete(in id : string) : bool +CheckNumber(in id : string) : DataSet + IsMedica(in medicaName : string, in patientno : string) : DataSet +UpdateMedica(in id : string, in number : string, in amount : string) : bool server:用色

+Useiviedica() +GetTable(in id : string) : DataSet +GetUseMedica(in id : string) : DataSet + Insert(in model : UseMedica, in thisdate : string) : bool +GetPatientId(in doc : string) : DataSet +DeleteMediac(in model : UseMedica) : bool +GetNotPay(in id : string) : DataSet +UpdateSend(in payno : string) : bool +Delete(in id : string) : bool +CheckNumber(in id : string) : DataSet + IsMedica(in medicaName : string, in patientno : string) : DataSet +UpdateMedica(in id : string, in number : string, in amount : string) : bool Data:角色

+UseMedica() +GetTable(in id : string) : DataSet +GetUseMedica(in id : string) : DataSet + Insert(in model : UseMedica, in thisdate : string) : bool +GetPatientId(in doc : string) : DataSet +DeleteMediac(in model : UseMedica) : bool +GetNotPay(in id : string) : DataSet +UpdateSend(in payno : string) : bool +Delete(in id : string) : bool +CheckNumber(in id : string) : DataSet + IsMedica(in medicaName : string, in patientno : string) : DataSet +UpdateMedica(in id : string, in number : string, in amount : string) : bool 药品检验类图:

DATA:实体类 -_id • int ------------------------------------- -_payno : int -_binren : string -_doc : string -_part : string -_name : string -_num -_chinese : string -_price -_amount -_unit : string -_patientno -_currentdate -_isdelivermedica -_deliverdmedica -_isbackmedica -_amendcount -_backfee +UseMedica() + ID() : int +payno() : int +BinRen() : string +doc() : string +Part() : string +Name() : string +Num(): <未指定> +Chinese() : string +Price(): < 未指定 > +Amount(): < 未指定 > +Unit() : string +patientno(): < 未指定 > +CurrentDate(): < 未指定 > + IsdeliverMedica(): < 未指定 > +deliverdMedica(): < 未指定 > + IsBackMedica(): < 未指定 > +AmendCount(): < 未指定 > +BackFee(): < 未指定 > UI:角色

+UseCheck()

+GetTable(in id : string) : DataSet

+GetUseCheck(in id : string) : DataSet +Add(in model : UseCheck) : bool

server:角色

+UseCheck() +GetTable(in id : string) : DataSet +GetUseCheck(in id : string) : DataSet

+Add(in model : UseCheck) : bool Data:角色 +UseCheck()

+GetTable(in id : string) : DataSet +GetUseCheck(in id : string) : DataSet

+Add(in model : UseCheck) : bool

Data:实体类

-_id : int -_payno : string -_binren : string -_doc : string -_part : string -_itemname : string -_patientno : string -_unit : string -_chinese : string -_price -_result : string -_note : string -_currentdate +UseCheck() +ID() : int +payno() : string +BinRen() : string +doc() : string +Part() : string +ItemName() : string +patientno() : string +Unit() : string +Chinese() : string +Price(): < 未指定 > +Result() : string +Note() : string +CurrentDate(): < 未指定 > 设计模式:

简单三层模式

整个系统框架用了简单三层模式分为 优点:

UI层,逻辑业务层,数据访问层

1. 开发人员可以只关注整个结构中的其中某一层 2. 可以很容易的用新的实现来替换原有层次的实现; 3. 可以降低层与层之间的依赖 4. 有利于标准化; 5. 利于各层逻辑的复用。

缺点:

1、 降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接 造访数据

库,以此获取相应的数据,如今却必须通过中间层来完成

2、 有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需 要增加一个

功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数 据访问层中都增加相应的代码。

策略模式和简单工厂模式和抽象工厂模式的结合应用

简单工厂模式:是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是 工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现

策略模式:定义了一系列的算法,并将每一个算法封装起来,而且使它们还可 以相互替换。策略模式让算法丁使用它的客

户而变化。(原文:The

1、 需要使用ConcreteStrategy提供的算法。 2、 部维护一个Strategy的实例。

3、 负责动态设置运行时Strategy具体的实现算法。 4、 负责跟Strategy之间的交互和数据传递。 Strategy(抽象策略类):

1、 定义了一个公共接口,各种不同的算法以不同的方式实现这个接口, Context使用这个接口调用不同的算法,一般使用接口或抽象类实现。 ConcreteStrategy(具体策略类):

2、 实现了 Strategy定义的接口,提供具体的算法实现。

主要运用在了计算医疗费用的优惠上,以下列出部分代码

public classCashFactory (

CashSuper cs = null;

public CashFactory (string type, string regdo) (

if (type ==\"现金”|| type == (

cs = new CashNormal (); } else (

\"医疗卡\")

cs = new CashRebate(regdo); }

}

public double GetResult(double moeny) (

return cs.acceptCash(moeny); } }

public classCashNormal : CashSuper (

public override double acceptCash(double Total) (

return Total; } }

public classCashRebate: CashSuper (

public string moneyRebate = \"\";//折扣

public CashRebate(string moneyRebate) // 初始化必须输入折扣 (

this.moneyRebate = moneyRebate; }

public override double acceptCash(double Total) return Total * double .Parse(moneyRebate); ) )

public abstract classCashSuper

(

public abstract double acceptCash(double Total);

)

单例模式

在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中 一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系 统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方 案。 本系统中运用在每一个窗体中,至始至终只会创建一个出来

public class Singleton (

private static Singleton instance;

private Singleton() ( }

public static Singleton GetInstance() (

if(instance== null) (

instance=new Singleton(); }

return instance; } }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo6.cn 版权所有 赣ICP备2024042791号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务