医院病房计算机管理系统
一、 用户需求分析
医院管理一般主要分为医生管理和病人管理,医生管理主要分有对医生和科室的管理,病人管理主要分有对病人和病房的管理,在日常运作中,医生在不同科室为不同病人诊断,不同科室的病房要对病人的病房和病床进行安排。因此,我们需要管理以下信息:
管理
查询
科室
科室名、科室地址、科室电话、医生姓名
病房
病房号、床位号、所属科室
医生
工作证明、姓名、性别、出生日期、联系电话、职称、所属科室名
病人
病历号、姓名、出生日期、诊断记录、主管医生、病房号
主要关系流程:
1)挂号。病人来看病,科室给出病历号
2)诊断。医生给出诊断并治疗
3)住院。治疗给出病房号和床位号
4)出院。治疗结束
系统可行性分析:
该系统主要包括基本数据维护、数据库管理和信息查询三部分。
1. 基本数据维护部分应包括提供管理员添加、修改并维护基本的数据途径、例如添加修改医生信息和办理病人入院和出院或者转院等。
2. 数据库管理部分是对这个数据库的管理,包括医生,病人的详细信息等。
3. 该系统的技术可行性分析:在系统维护中包括医生和病人信息检索,数据库信息维护、
4. 系统技术的可行性分析:
本系统应该可以运行于windows系列操作系统中,可以为系统提供一个稳定的运行环境。该系统应该说有开发的必要性。
二、 概念
1. 局部E-R图
科室概念模型
病房概念模式
医生概念模式
病人概念模式
2. 全局E-R图
医院病房管理概念模式图
三、 逻辑设计
1.系统所涉及的数据关系:(下划线数据为主键)
医生(工作证号,姓名,性别,联系电话,职称,所属科室名,出生日期)
病人(病历号,姓名,性别,出生日期,诊断记录,主管医生,病房号)
科室(科室名,科室地址,科室电话,医生姓名)
病房(病房号,床位号,所属科室)
治疗(病历号,工作证号)
管理(科室名,工作证号)
隶属(科室名,病房号)
入住(病历号,病房号)
医生情况数据表Doctor
字段名
字段类型
约束控制
字段含义说明
d-no
char(5)
Primary key
工作证号
d-name
varchar(10)
Not Null
姓名
d-sex
char(2)
‘男’或‘女’
性别
d-birthday
datetime
出生日期
d-level
char(10)
职称
d-department
char(20)
Not Null
所属科室名
d-phone
char(20)
Not Null
联系电话
病人情况数据表Patient
字段名
字段类型
约束控制
字段含义说明
p-no
char(5)
Primary key
病历号
p-name
varchar(10)
Not Null
姓名
p-sex
char(2)
‘男’或‘女’
性别
p-birthday
datetime
出生日期
p-diagnose
char(10)
Not Null
诊断记录
p-doctor
char(10)
Not Null
主管医生
p-room
char(3)
Not Null
病房号
科室情况表Department
字段名
字段类型
约束控制
字段含义说明
D-name
char(20)
Primary key
科室名
D-address
char(20)
科室地址
D-phone
char(20)
科室电话
D-doctor
char(10)
Not Null
医生姓名
病房情况数据表Room
字段名
字段类型
约束控制
字段含义说明
r-no
char(3)
Primary key
病房号
r-bed
char(3)
Not Null
床位号
r-department
char(20)
所属科室
四、 创建数据库表格
CREATE table Doctor
( d-no char(5) constraint Doctor_Prim Primary key,
d-name varchar(10) constraint d-name_Cons Not Null,
d-sex char(2) constraint d-sex_Cons Not Null default‘男’,
d-birthday datetime
d-level char(10),
d-department char(20) constraint d-department_Cons Not Null,
d-phone char(20)constraint d-department_Cons Not Null)
insert into Doctor(d-no,d-name,d-sex,d-birthday,d-level,d-department,d-phone)
values(‘02201’,‘唐泽’,‘男’,1979-3,‘高级’,‘脑神经内科’,‘135********’)
values(‘02202’,‘王辉’,‘男’,1977-4,‘高级’,‘骨科’,‘137********’)
values(‘02203’,‘林宏’,‘男’,1781-3,‘高级’,‘心理科’,‘183********’)
values(‘02204’,‘杨敏’,‘女’,1978-3,‘高级’,‘内科’,‘137********’)
values(‘02205’,‘李慧’,‘女’,1987-3,‘高级’,‘儿科’,‘183********’)
CREATE table Patient
( p-no char(5) constraint Patient_Prim Primary key,
p-name varchar(10) constraint p-name_Cons Not Null,
p-sex char(2) constraint p-sex_Cons Not Null default‘男’,
p-birthday datetime,
p-diagnose char(10) constraint p-diagnose_Cons Not Null,
p-doctor char(10) constraint p-doctor_Cons Not Null,
p-room char(3) constraint p-room_Cons Not Null )
insert into Patient(p-no,p-name,p-sex,p-birthday,p-diagnose,p-doctor,p-room)
values(‘07111’,‘张三’,‘男’,1993-9,‘骨折’,‘王辉’,‘215’)
values(‘07112’,‘李四’,‘男’,1992-2,‘发烧’,‘杨敏’,‘223’)
values(‘07113’,‘王武’,‘男’,1991-6,‘抑郁症’,‘林宏’,‘253’)
values(‘07114’,‘陆琪’,‘女’,1990-3,‘感冒’,‘杨敏’,‘228’)
values(‘07115’,‘赵敏’,‘女’,1992-5,‘头痛’,‘杨敏’,‘225’)
CREATE table Department
( D-name char(20) constraint Department_Prim primary key,
D-address char(20),
D-phone char(20),
D-doctor char(10) constraint D-doctor_Cons Not Null)
insert into Department(D-name,D-adress,D-phone,D-doctor)
values(‘脑神经内科’,‘三楼’,‘6738921’,‘唐泽’)
values(‘骨科’,‘一楼’,‘6738902’,‘王辉’)
values(‘心理科’,‘五楼’,‘6738071’,‘林宏’)
values(‘内科’,‘二楼’,‘6768203’,‘杨敏’)
values(‘儿科’,‘二楼’,‘6738840’,‘李慧’)
CREATE table Room
( r-no char(3) constraint Room_Prim primary key,
r-bed char(3) constraint r-bed_Cons Not Null ,
r-department char(20))
insert into Room(r-no,r-bed,r-department)
values(‘215’,‘002’,‘骨科’)
values(‘223’,‘003’,‘内科’)
values(‘225’,‘004’,‘内科’)
values(‘228’,‘008’,‘内科’)
values(‘253’,‘007’,‘心理科’)
五、物理表格
医生表
d-no
d-name
d-sex
d-birthday
d-level
d-department
d-phone
02201
唐泽
男
1979-3
高级
脑神经内科
135********
02202
王辉
男
1977-4
高级
骨科
137********
02203
林宏
男
1781-3
高级
心理科
183********
02204
杨敏
女
1978-3
高级
内科
137********
02205
李慧
女
1987-3
高级
儿科
183********
病人表
p-no
p-name
p-sex
p-birthday
p-diagnose
p-doctor
p-room
07111
张三
男
1993-9
骨折
王辉
215
07112
李四
男
1992-2
发烧
杨敏
223
07113
王武
男
1991-6
抑郁症
林宏
253
07114
陆琪
女
1990-3
感冒
杨敏
228
07115
赵敏
女
1992-5
头痛
杨敏
225
科室表
D-name
D-address
D-phone
D-doctor
脑神经内科
三楼
6738921
唐泽
骨科
一楼
6738902
王辉
心理科
五楼
6738071
林宏
内科
二楼
6768203
杨敏
儿科
二楼
6738840
李慧
病房表
r-no
r-bed
r-department
215
002
骨科
223
003
内科
225
004
内科
228
008
内科
253
007
心理科
六、查询
1.查询所有科室的名字、地址和医生
SELECT D-name,D-adress,D-doctor
FROM Department
查询结果如下:
D-name
D-address
D-doctor
脑神经内科
三楼
唐泽
骨科
一楼
王辉
心理科
五楼
林宏
内科
二楼
杨敏
儿科
二楼
李慧
2.查询医生的全部信息
SELECT *
FROM Doctor
查询结果如下:
d-no
d-name
d-sex
d-birthday
d-level
d-department
d-phone
02201
唐泽
男
1979-3
高级
脑神经内科
135********
02202
王辉
男
1977-4
高级
骨科
137********
02203
林宏
男
1781-3
高级
心理科
183********
02204
杨敏
女
1978-3
高级
内科
137********
02205
李慧
女
1987-3
高级
儿科
183********
3.查询周乐天医生的病人的病历号和病房号
SELECT p-no,p-room
FROM Patient
WHERE p-doctor=‘杨敏’
查询结果如下:
p-no
p-room
07112
223
07114
228
07115
225
3. 求杨敏医生的病人的总数
SELECT COUNT(*) FROM Patient
WHERE p-doctor=‘杨敏’
4.查询病房只有一个的病房的病房号和人数
SELECT r-no,COUNT(*) AS ROOM_Num
FROM Room
GROUP BY r-no
HAVING (COUNT(*)=1)
查询结果如下:
r-no
ROOM_Num
215
1
253
1
七、添加病人孙吴
INSERT INTO Patient(p-no,p-name,p-sex,p-birthday,p-diagnose,p-doctor,p-room)
VALUES(‘07116’,孙吴,男,‘1993-6’,骨折,王辉,‘216’)
八、删除李四的就诊记录
DELETE
FROM Patient
WHERE p-name=‘李四’