医院病例数据库标准管理系统标准设计.docx
- 文档编号:28488095
- 上传时间:2023-07-14
- 格式:DOCX
- 页数:20
- 大小:92.90KB
医院病例数据库标准管理系统标准设计.docx
《医院病例数据库标准管理系统标准设计.docx》由会员分享,可在线阅读,更多相关《医院病例数据库标准管理系统标准设计.docx(20页珍藏版)》请在冰豆网上搜索。
医院病例数据库标准管理系统标准设计
题目:
医院病例数据库管理系统
学院管理和经济学部
专业工程管理
年级级
成员王艳旭(一班)
需求分析,E-R图,数据修改,数据插入
杨志东(二班)
逻辑设计,物理设计,数据表、索引建立
谢中仁(二班)
视图建立,存放过程建立
12月16日
目录:
一、需求分析····················································3
1)医生信息管理
2)病人病例和病房管理
(1)数据检索
(2)数据插入
(3)数据修改
(4)数据统计和查询
二、概念设计····················································4
(1)医生实体
(2)职位实体
(3)病人实体
(4)病房实体
(5)全局E-R图
三、逻辑设计····················································6
四、物理设计····················································6
五、系统实现····················································8
1、数据库建立
2、数据表建立
3、数据输入
4、索引创建
5、视图创建
6、存放过程创建
一、需求分析
实现某医院病例数据库管理系统,系统使用对象是系统管理员,医生和病人,要求完成以下工作:
1)医生信息管理,包含
●系统管理员进行新医生到岗、现有医生离职处理
●系统管理员能够修改任何医生全部信息,如姓名、年纪、职称、科室
●医生能够查阅自己信息并修改其中一些基础信息,如联络方法等
2)病人病例和病房管理
●医生能够添加新病人,修改或删除已经有病人信息
●医生能够添加新病例统计,形成病人诊疗日志。
●管理员能够任意查询全部医生或病人情况和病例
●管理员能够统计任意医生病人或任意病人病例
●病人能查看自己基础信息和病例信息
(1)数据检索
i.系统管理员查询全部医生情况
输入:
医生编号
输出:
姓名、年纪、联络方法、职称、科室。
ii.系统管理员查询全部病人基础信息
输入:
病号
输出:
姓名、年纪、联络方法、地址。
iii.系统管理员查询全部病人病例
输入:
病号
输出:
姓名、诊疗结果、就诊日期、病房号、床号、入住日期、出院日期。
iv.医生查询自己信息
输入:
医生编号
输出:
姓名、年纪、联络方法、职称、科室。
v.医生查询病人病例
输入:
病号
输出:
姓名、诊疗结果、就诊日期、病房号、床号、入住日期。
vi.病人查询自己基础信息
输入:
病号
输出:
姓名、年纪、联络方法、地址。
vii.病人查询自己病例
输入:
病号
输出:
姓名、诊疗结果、就诊时间、病房号、床号、入住日期。
(2)数据插入
i.系统管理员插入医生数据。
ii.医生插入病人数据。
(3)数据修改
i.系统管理员修改全部医生信息:
医生编号、姓名、年纪、联络方法、职称、科室、任职时间。
ii.医生修改自己部分信息:
联络方法。
iii.医生修改病人信息:
姓名、年纪、联络方法、地址、诊疗结果、就诊日期、病房号、床号、入住日期。
(4)数据统计和查询
i.管理员:
显示全部医生情况。
ii.管理员:
显示全部病人情况。
iii.管理员:
显示全部医生全部病人。
iv.管理员:
显示全部病人全部病例。
二、概念设计
概念设计任务是,在需求分析中产生需求说明基础上,抽象出满足应用需求用户信息结构,即概念模型。
经需求分析,抽象出以下E—R模型。
(1)医生实体(图1)
(2)职位实体(图2)
(3)病人实体(图3)
(4)病房实体(图4)
(5)全局E—R图(图5)
三、逻辑设计
逻辑设计阶段将概念设计阶段产生E-R图转换成RDBMS所支持数据模型,即关系模型。
依据图5E-R图转换为以下关系模式:
医生(医生编号,姓名,年纪,联络方法,职位编号,任职时间)
职位(职位编号,职称,所属科室)
病人(病人编号,姓名,年纪,联络方法,住址)
病房(病房号,病床数,病房联络电话)
入住(病人编号,病房号,床位号,入住时间),主键为(病人编号,病房号)
就诊(病人编号,医生编号,诊疗结果,就诊日期),主键为(病人编号,医生号)
查房(医生编号,病房号,值班时间),主键为(医生编号,病房号)
其中带有下划直线属性为主键,带有下划波浪线属性为外键。
以上关系模式均满足3NF。
四、物理设计
物理设计阶段将关系模式设计为具体RDBMS中数据表。
依据以上关系模式构建数据表结构如表1~7所表示。
表1医生表结构
字段名类型特殊属性
医生编号char(4)PRIMARYKEY
姓名char(10)NOTNULL
年纪char(10)NOTNULL
联络方法char(20)NOTNULL
职位编号char(4)FOREIGNKEY
任职时间char(20)NOTNULL
表2职位表结构
字段名类型特殊属性
职位编号char(4)PRIMARYKEY
职称char(10)NOTNULL
所属科室char(10)
表3病人表结构
字段名类型特殊属性
病人编号char(4)PRIMARYKEY
姓名char(10)NOTNULL
年纪char(10)NOTNULL
联络方法char(20)NOTNULL
住址varchar(30)
表4病房表结构
字段名类型特殊属性
病房号char(4)PRIMARYKEY
病床数int
病房联络方法char(11)
表5入住表结构
字段名类型特殊属性
病人编号char(4)PRIMARYKEY,FOREIGNKEY
病房号char(4)PRIMARYKEY,FOREIGNKEY
床位号char(4)NOTNULL
入住时间char(20)NOTNULL
表6就诊表结构
字段名类型特殊属性
病人编号char(4)PRIMARYKEY,FOREIGNKEY
医生编号char(4)PRIMARYKEY,FOREIGNKEY
诊疗结果varchar(100)NOTNULL
就诊时间char(20)
表7查房表结构
字段名类型特殊属性
医生编号char(4)PRIMARYKEY,FOREIGNKEY
病房号char(4)PRIMARYKEY,FOREIGNKEY
值班时间char(20)NOTNULL
五、系统实现
1.数据库建立
Createdatabase医院病例
Onprimary
(name=医院病例_data,filename='E:
\\医院病例data.mdf')
Logon
(name=医院病例_log,filename='E:
\\医院病例log.ldf')
2.数据表建立
Use医院病例
Go
Createtable职位
(职位编号char(4)PRIMARYKEY,
职称char(10)NOTNULL,
所属科室char(10)
)
Createtable医生
(医生编号char(4)PRIMARYKEY,
姓名char(10)NOTNULL,
年纪char(10)NOTNULL,
联络方法char(20)NOTNULL,
职位编号char(4),
任职时间char(20)NOTNULL,
FOREIGNKEY(职位编号)references职位(职位编号)
)
Createtable病人
(病人编号char(4)PRIMARYKEY,
姓名char(10)NOTNULL,
年纪char(10)NOTNULL,
联络方法char(20)NOTNULL,
住址varchar(30)
)
Createtable病房
(病房号char(4)PRIMARYKEY,
病床数int,
病房联络方法char(11)
)
Createtable入住
(病人编号char(4),病房号char(4),
床位号char(4)NOTNULL,
入住时间char(20)NOTNULL,
PRIMARYKEY(病人编号,病房号),
FOREIGNKEY(病人编号)references病人(病人编号),
FOREIGNKEY(病房号)references病房(病房号)
)
Createtable就诊
(病人编号char(4),医生编号char(4),
诊疗结果varchar(100)NOTNULL,
就诊时间char(20),
PRIMARYKEY(病人编号,医生编号),
FOREIGNKEY(病人编号)references病人(病人编号),
FOREIGNKEY(医生编号)references医生(医生编号),
)
Createtable查房
(医生编号char(4),病房号char(4),
值班时间char(20)NOTNULL,
PRIMARYKEY(医生编号,病房号),
FOREIGNKEY(医生编号)references医生(医生编号),
FOREIGNKEY(病房号)references病房(病房号)
)
3.数据输入
Insertinto职位
Values('J1','眼科医生','眼科室')
Insertinto职位
Values('J2','内科医生','内科室')
Insertinto医生
Values('D001','李明','45','139****1111','J1','.03.09')
Insertinto医生
Values('D002','张强','50','139****2222','J2','.12.04')
Insertinto医生
Values('D003','陈龙','54','139****3333','J1','.08.17')
Insertinto医生
Values('D004','刘红','36','139****4444','J2','.06.13')
Insertinto病人
Values('P001','张三','30','159****1111','北京市')
Insertinto病人
Values('P002','李四','39','159****2222','天津市')
Insertinto病人
Values('P003','王五','44','159****3333','廊坊市')
Insertinto病人
Values('P004','赵六','27','159****4444','唐山市')
Insertinto病房
Values('R101','4','')
Insertinto病房
Values('R102','2','')
Insertinto入住
Values('P003','R101','1','.08.10')
Insertinto入住
Values('P004','R102','2','.12.09')
Insertinto就诊
Values('P001','D001','白内障','.06.11')
Insertinto就诊
Values('P002','D003','青光眼','.07.22')
Insertinto就诊
Values('P003','D002','阑尾炎','.08.10')
Insertinto就诊
Values('P004','D004','胃出血','.12.09')
Insertinto查房
Values('D001','R101','.12.09')
Insertinto查房
Values('D002','R102','.12.10')
4.索引创建
(1)医生表:
按医生任职时间降序排列
Createindex医生_任职时间on医生(任职时间desc)
(2)病人表:
按病人编号升序排列
Createindex病人_病人编号on病人(病人编号)
(3)职位表:
按职位编号升序排列
Createindex职位_职位编号on职位(职位编号)
(4)病房表:
按病房号升序排列
Createindex病房_病房号on病房(病房号)
5.视图创建
①医生情况视图:
显示全部医生情况
createview医生情况视图
as
select医生.医生编号,姓名,年纪,联络方法,职位.职称,所属科室
from医生join职位on医生.职位编号=职位.职位编号
②病人情况视图:
显示全部病人情况
Createview病人情况视图
as
Select*
From病人
③医生和病人视图:
显示任意医生全部病人
Createview医生和病人视图
as
Select医生.姓名as医生姓名,病人.姓名as病人姓名
From
就诊join医生on医生.医生编号=就诊.医生编号
Join病人on病人.病人编号=就诊.病人编号
④病例视图:
显示病人病例
createview病例视图
as
Select病人.姓名,就诊.*
From病人join就诊on病人.病人编号=就诊.病人编号
6.存放过程创建
(1)检索数据
①管理员对医生检索:
输入医生编号,返回医生姓名\年纪\联络方法\职称\科室
Createprocedure管理员对医生检索(@ynoint=null)
As
If@ynoisnull
Begin
Print'请输入医生编号'
End
Else
Begin
Select医生.年纪,姓名,联络方法,职位.职称,所属科室
From医生join职位on医生.职位编号=职位.职位编号
Where@yno=医生.医生编号
End
②管理员查询病人基础信息检索:
输入病人编号,返回病人姓名、年纪、联络方法、地址
Createprocedure管理员查询病人基础信息检索(@Bnoint=null)
As
If@Bnoisnull
Begin
Print'请输入病人编号'
End
Else
Begin
Select病人.姓名,年纪,联络方法,住址
From病人
End
③病例检索:
输入病人编号,返回姓名、诊疗结果、就诊日期、病房号、床号、入住日期
Createprocedure病例检索(@Bno2int=null)
As
If@Bno2isnull
Begin
Print'请输入病人编号来查询病例'
End
Else
Begin
Select病人.病人编号,姓名,就诊.诊疗结果,就诊时间,入住.病房号,床位号,入住时间
From病人join就诊on病人.病人编号=就诊.病人编号
Join入住on入住.病人编号=病人.病人编号
End
④医生对个人信息检索:
输入医生编号,返回医生姓名\年纪\联络方法\职称\科室
Createprocedure医生对个人信息检索(@ynoint=null)
As
If@ynoisnull
Begin
Print'请输入医生编号'
End
Else
Begin
Select医生.年纪,姓名,联络方法,职位.职称,所属科室
From医生join职位on医生.职位编号=职位.职位编号
Where@yno=医生.医生编号
End
⑤医生查询病人病例检索:
输入病人编号,返回姓名、诊疗结果、就诊日期、病房号、床号、入住日期
Createprocedure医生查询病人病例检索(@Bno2int=null)
As
If@Bno2isnull
Begin
Print'请输入病人编号来查询病例'
End
Else
Begin
Select病人.病人编号,姓名,就诊.诊疗结果,就诊时间,入住.病房号,床位号,入住时间
From病人join就诊on病人.病人编号=就诊.病人编号
Join入住on入住.病人编号=病人.病人编号
End
⑥病人查询病人基础信息检索:
输入病人编号,返回病人姓名、年纪、联络方法、地址
Createprocedure病人查询病人基础信息检索(@Bnoint=null)
As
If@Bnoisnull
Begin
Print'请输入病人编号'
End
Else
Begin
Select病人.姓名,年纪,联络方法,住址
From病人
End
⑦病人查询病人病例检索:
输入病人编号,返回姓名、诊疗结果、就诊日期、病房号、床号、入住日期
Createprocedure病人查询病人病例检索(@Bno2int=null)
As
If@Bno2isnull
Begin
Print'请输入病人编号来查询病例'
End
Else
Begin
Select病人.病人编号,姓名,就诊.诊疗结果,就诊时间,入住.病房号,床位号,入住时间
From病人join就诊on病人.病人编号=就诊.病人编号
Join入住on入住.病人编号=病人.病人编号
End
(2)插入数据
①系统管理员插入医生数据.
Createprocedure系统管理员插入医生数据(@医生编号char(10),@姓名char(10),@年纪char(10),@联络方法char(20),@职位编号char(4),@任职时间char(20),@职称char(10),@所属科室char(10))
As
Insertinto医生
Values(@医生编号,@姓名,@年纪,@联络方法,@职位编号,@任职时间)
Insertinto职称
Values(@职位编号,@职称,@所属科室)
②医生插入病人数据
createprocedure医生插入病人数据(@病人编号char(4),@姓名char(10),@年纪char(10),@联络方法char(20),@住址char(30))
As
Insertinto病人
Values(@病人编号,@姓名,@年纪,@联络方法,@住址)
(3)数据修改
a)医生信息修改
Createprocedure医生信息修改(@医生编号char(4),@姓名char(10)=姓名,@年纪char(10)=年纪,@联络方法char(20)=联络方法,@职位编号char(4)=职位编号,@任职时间char(20)=任职时间)
As
Update医生
Set姓名=@姓名,年纪=@年纪,联络方法=@联络方法,职位编号=@职位编号,任职时间=@任职时间
Where医生编号=@医生编号
b)医生部分信息修改
Createprocedure医生部分信息修改(@医生编号char(4),@联络方法char(20)=联络方法)
As
Update医生
Set联络方法=@联络方法
c)病人信息修改
Createprocedure病人信息修改(@病人编号char(4),@姓名char(10)=姓名,@年纪char(10)=年纪,@联络方法char(20)=联络方法,@住址varchar(30)=住址)
As
Update病人
Set姓名=@姓名,年纪=@年纪,联络方法=@联络方法,住址=@住址
Where病人编号=@病人编号
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 医院 病例 数据库 标准 管理 系统 设计