逻辑设计
管理员/操作员→ (name,psw,权限)
病人信息 →(编号,患者姓名,性别,出生日期,证件类型,证件号码,血型,RH因子,过敏史,病房类型,病房号,主治医师,住院时间,定金,登记员,备注)
出院病人信息→(编号,患者姓名,性别,出生日期,证件类型,证件号码,血型,RH因子,过敏史,病房类型,病房号,主治医师,住院时间,定金,登记员,备注,出院时间)
病房类型/价格→(病房类型,病房价格)
病房表→(病房号,病房类型,在住状态,flag)
物理结构设计
用SQL实现设计
实现该设计的环境为Windows xp Perfessinal+MSSQLServer 2000.0
1.建立病房类型/价格表
CREATE TABLE [dbo].[bflx] ( [病房类型] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL , [病房价格] [int] NULL ) ON [PRIMARY]
2.建立病房表
CREATE TABLE [dbo].[bfno] ( [病房号] [varchar] (5) COLLATE Chinese_PRC_CI_AS NULL , [病房类型] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL , [flag] [tinyint] NULL , [在住状态] [varchar] (6) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY]
4. 建立管理员/操作员信息表
CREATE TABLE [dbo].[psw] (
[name] [char] (20) COLLATE Chinese_PRC_CI_AS NULL , [psw] [char] (10) COLLATE Chinese_PRC_CI_AS NULL , [权限] [tinyint] NULL ) ON [PRIMARY]
5.建立病人信息表
CREATE TABLE [dbo].[sufferer] ( [编号] [varchar] (8) COLLATE Chinese_PRC_CI_AS NOT NULL , [患者姓名] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL , [性别] [varchar] (2) COLLATE Chinese_PRC_CI_AS NULL , [出生日期] [datetime] NULL , [证件类型] [varchar] (8) COLLATE Chinese_PRC_CI_AS NULL , [证件号码] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL , [血型] [varchar] (2) COLLATE Chinese_PRC_CI_AS NULL , [rh因子] [varchar] (5) COLLATE Chinese_PRC_CI_AS NULL , [过敏史] [varchar] (8) COLLATE Chinese_PRC_CI_AS NULL , [病房类型] [varchar] (8) COLLATE Chinese_PRC_CI_AS NULL , [病房号] [varchar] (5) COLLATE Chinese_PRC_CI_AS NULL , [主治医师] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL , [住院时间] [datetime] NULL , [登记员] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL , [备注] [text] COLLATE Chinese_PRC_CI_AS NULL , [压金] [int] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
6.建立出院病人信息表
CREATE TABLE [dbo].[出院病人] ( [编号] [varchar] (8) COLLATE Chinese_PRC_CI_AS NULL , [患者姓名] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL , [性别] [varchar] (2) COLLATE Chinese_PRC_CI_AS NULL , [出生日期] [datetime] NULL , [证件类型] [varchar] (8) COLLATE Chinese_PRC_CI_AS NULL , [证件号码] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL , [血型] [varchar] (2) COLLATE Chinese_PRC_CI_AS NULL ,
[RH因子] [varchar] (5) COLLATE Chinese_PRC_CI_AS NULL , [过敏史] [varchar] (5) COLLATE Chinese_PRC_CI_AS NULL , [病房类型] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL , [病房号] [varchar] (5) COLLATE Chinese_PRC_CI_AS NULL , [主治医师] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL , [住院时间] [datetime] NULL , [出院时间] [datetime] NULL , [登记员] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL , [备注] [text] COLLATE Chinese_PRC_CI_AS NULL , [住院费用] [int] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
7.所有操作
1. 登录
rs.Open \'\
2. 更改密码
rs.Open \name,psw from psw where name= '\& cname & \and psw= '\& Trim(Text1.Text) & \
rs(\
3. 新增用户
rs.Open \
rs.AddNew
rs(\rs(\rs.Update rs.Close
4. 删除用户
rs.Open \
rs.delect
5. 更换用户
和登录用户一样操作!
6. 备份/恢复
备份和恢复住院管理系统的ZY数据库 备份:
sql = \ cn.Execute (sql) 恢复:
sql = \ cn.Execute (sql)
7. 登记病人
登记成功把病人信息写到病人信息表中
rs.Open \rs.AddNew
rs.Fields(0) = Trim(Text1.Text) rs.Fields(1) = Trim(Text2.Text) rs.Fields(2) = Trim(Combo1.Text) rs.Fields(3) = DTPicker1.Value rs.Fields(4) = Trim(Combo2.Text) rs.Fields(5) = Trim(Text5.Text) rs.Fields(6) = Trim(Combo3.Text) rs.Fields(7) = Trim(Combo4.Text) rs.Fields(8) = Trim(Text6.Text) rs.Fields(9) = Trim(Combo5.Text) rs.Fields(10) = Trim(Combo6.Text) rs.Fields(11) = Trim(Text8.Text) rs.Fields(12) = Trim(Text9.Text) rs.Fields(13) = Trim(Text10.Text) rs.Fields(14) = Trim(Text7.Text) rs.Fields(15) = Val(Text11.Text) rs.Update
8. 查询病人
包含精确查询和模糊查询 编号查询:
1. rs.Open \编号='\
adOpenStatic, adLockReadOnly
2. rs.Open \* from sufferer where 编号 like'%\+ Trim(Text1.Text) + \order
by 编号\资料查询:
1. rs.Open \患者姓名='\
证件号码='\2. rs.Open \* from sufferer where 证件号码 like'%\+ Trim(Text3.Text) + \
order by 证件号码\病房查询:
1. rs.Open \病房类型='\
病房号='\
2. rs.Open \* from sufferer where 病房类型 like'%\+ Trim(Text5.Text) + \
order by 病房类型\
9. 病房管理
包括增加/删除病房类型和增加/删除病房 增加: 类型增加:
rs.Open \rs.AddNew
rs(\病房类型\rs(\病房价格\rs.Update rs.Close 病房增加:
rs1.Open \rs1.AddNew
rs1(\病房类型\rs1(\病房号\rs1(\在住状态\空闲\rs1(\rs1.Update rs1.Close 删除:
类型删除:
rs1.Open \病房类型='\adOpenStatic, adLockOptimistic rs1.Delete 病房删除:
rs.Open \病房类型='\病房号= '\
10. 登记出院
登记出院时把病人的信息增加到出院病人表中
rs.Open \出院病人\
rs1.Open \* from sufferer where 编号='\& Trim(Text1.Text) & \cn, adOpenStatic, adLockOptimistic rs.AddNew
rs.Fields(\编号\编号\
rs.Fields(\患者姓名\患者姓名\rs.Fields(\性别\性别\rs.Fields(\出生日期\出生日期\rs.Fields(\证件类型\证件类型\