MySQL医疗信息管理系统数据库(源码)

20 篇文章 41 订阅
6 篇文章 7 订阅

友情连接

1、学生成绩管理系统数据库设计–MySQL

学生成绩管理系统数据库设计–MySQL

2、邮件管理数据库设计–MySQL

邮件管理数据库设计–MySQL

3、SQL Server医疗信息管理系统数据库【英文版-源码】–(Medical Management System Database)

SQL Server医疗信息管理系统数据库【英文版-源码】–(Medical Management System Database)

4、SQL Server电影院数据库管理系统【英文版-源码】–(Movie Theatre Management System Database)

SQL Server电影院数据库管理系统【英文版-源码】–(Movie Theatre Management System Database)

医疗信息管理系统数据库–MySQL

设计一个数据库,描述数据库的功能(100字左右)。数据库至少包含三张数据表,每张表不少于5个字段,每张表至少添加5条测试记录。要求为每张数据表设置主键,表与表之间的数据关联设置外键,字段选择合适的数据类型。

医疗信息管理系统:鉴于现在疫情严重,设计该数据库是为了方便诊所更好的实现医疗就诊信息管理,从而实现病人预约—接待员统计—医生看病—护士护理整个就诊流程所产生信息存储、查询、修改等,该数据库共包含6张表,分别为:诊所职工信息表、病人基本信息表、药品信息表、就诊预约表、病人病历记录表、处方表。

1. 创建数据库及表、插入数据


DROP DATABASE IF EXISTS MedicalManagementSystem;

-- 创建数据库

CREATE DATABASE MedicalManagementSystem CHARSET=utf8;

-- 使用数据库

USE MedicalManagementSystem;

DROP TABLE IF EXISTS users_info;

-- table 1: 诊所职员用户信息表

CREATE TABLE users_info
(
	id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT NOT NULL,
	name VARCHAR(50) NOT NULL,
	login_name VARCHAR(20) NOT NULL,
	password VARCHAR(20) NOT NULL,
	permit VARCHAR(20) NOT NULL,
	user_type VARCHAR(20) NOT NULL,
	gender VARCHAR(10) NOT NULL,
	age TINYINT NOT NULL,
	tel VARCHAR(20) NOT NULL,
	salary INT NOT NULL,
	hire_date DATE NOT NULL
);


DROP TABLE IF EXISTS patients_info;

-- table 2: 病人信息表

CREATE TABLE patients_info
(
	pt_id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT NOT NULL,
	name VARCHAR(50) NOT NULL,
	gender VARCHAR(10) NOT NULL,
	age TINYINT NOT NULL,
	tel VARCHAR(20) NOT NULL,
	address VARCHAR(70) NOT NULL,
	creation_date DATE NOT NULL,
	doctor_id INT UNSIGNED NOT NULL,
	FOREIGN KEY(doctor_id) REFERENCES users_info(id)
);


DROP TABLE IF EXISTS drugs_info;

-- table 3: 药品信息表

CREATE TABLE drugs_info
(
-- 需要完整代码请添加文章底部微信,付费咨询
);



DROP TABLE IF EXISTS appointment;

-- table 4: 诊所预约表

CREATE TABLE appointment
(
-- 需要完整代码请添加文章底部微信,付费咨询
);


DROP TABLE IF EXISTS case_history;

-- table 5: 病人病历表

CREATE TABLE case_history
(
-- 需要完整代码请添加文章底部微信,付费咨询
);



DROP TABLE IF EXISTS prescriptions;

-- table 6: 用药处方表

CREATE TABLE prescriptions
(
-- 需要完整代码请添加文章底部微信,付费咨询
);


INSERT INTO users_info
VALUES	-- 需要完整代码请添加文章底部微信,付费咨询


INSERT INTO patients_info
VALUES -- 需要完整代码请添加文章底部微信,付费咨询


INSERT INTO drugs_info
VALUES	-- 需要完整代码请添加文章底部微信,付费咨询


INSERT INTO appointment
VALUES	-- 需要完整代码请添加文章底部微信,付费咨询

INSERT INTO case_history
VALUES	-- 需要完整代码请添加文章底部微信,付费咨询


INSERT INTO prescriptions
VALUES	-- 需要完整代码请添加文章底部微信,付费咨询



2. 查询数据


USE MedicalManagementSystem;


-- Query 1:查询入职在2019年6月入职的医生中,每个医生治疗的病人,
-- 要求显示:医生姓名、治疗病人的数量,按治疗病人的数量从大到小排序;

SELECT 		u.name,
			p.number
FROM 		users_info AS u INNER JOIN
				(SELECT doctor_id, COUNT(*) AS number FROM patients_info GROUP BY doctor_id) AS p
				ON u.id = p.doctor_id
WHERE 		MONTH(u.hire_date) = 6
ORDER BY 	p.number DESC;


-- Query 2:查询用药种类大于1的病人,要求显示:病人id, 姓名,病历信息,用药数量,按病人id排序

SELECT 		pa.pt_id,
			pa.name,
			c.description,
			c.diagnosis,
			c.therapy,
			pr.number
-- 需要完整代码请添加文章底部微信,付费咨询

-- Query 3: 查询用药相同的病人
-- 要求显示:药品名、用药使用量,病人姓名、性别、年龄、病情描述、诊断结果、治疗方案,
-- 先按药品名升序排,后按药品使用量降序排	

SELECT 		dr.name AS drug_name,
			pr.quantity AS dosage,
			pa.name,
			pa.gender,
			pa.age,
			ca.description,
			ca.diagnosis,
			ca.therapy
-- 需要完整代码请添加文章底部微信,付费咨询


3. 创建视图、自定义函数、存储过程、触发器


USE MedicalManagementSystem;

-- 病人视图 
-- 创建一个病人视图,要求显示病人基本信息和病历信息

DROP VIEW IF EXISTS v_patients;

CREATE VIEW v_patients AS
SELECT 		pa.pt_id,
			pa.name,
			pa.gender,
			pa.age,
			ca.description,
			ca.diagnosis,
			ca.therapy
-- 需要完整代码请添加文章底部微信,付费咨询



-- 自定义函数

-- 自定义函数 1:根据医生id获取医生姓名和治疗病人的数量

DROP FUNCTION IF EXISTS get_user_type_by_id;

DELIMITER //
CREATE DEFINER = CURRENT_USER FUNCTION get_user_type_by_id(id INT)
RETURNS VARCHAR(300)
DETERMINISTIC
BEGIN
RETURN (
-- 需要完整代码请添加文章底部微信,付费咨询
END//
DELIMITER ;

SELECT get_user_type_by_id(9);


-- 自定义函数 2:要求函数体中包含其中一种流程控制语句
-- 创建函数:输入用户id, 查看用户薪资水平,薪资小于5000显示“一般”,大于等于5000小于10000显示“中等”,大于等于10000显示“高薪”

DROP FUNCTION IF EXISTS check_salary_level;

DELIMITER //
CREATE DEFINER = CURRENT_USER FUNCTION check_salary_level(id INT) 
RETURNS VARCHAR(20)
DETERMINISTIC
-- 需要完整代码请添加文章底部微信,付费咨询
END//
DELIMITER ;




-- 存储过程

-- 1.自定义带输入参数的存储过程,完成调用。
-- 创建存储过程:每增加一个病人,对应诊的断医生薪资自动增加99

DROP PROCEDURE IF EXISTS add_patient;

DELIMITER //
CREATE DEFINER = CURRENT_USER PROCEDURE add_patient(
	-- 需要完整代码请添加文章底部微信,付费咨询
COMMIT;
END//
DELIMITER ;

-- 调用存储过程
-- CALL add_patient('mike', 'male', 97, '09882873211', 'Chinatown xian road 857', '2020-06-15', 12);


-- 2.自定义带输入、输出参数的存储过程,完成调用。
-- 创建存储过程:每创建一个处方,需要从药品信息表的药品库存里扣除处方所包含的相应药品数量,并输出扣除后的该药品的库存数量

DROP PROCEDURE IF EXISTS add_prescription;

DELIMITER //
CREATE DEFINER = CURRENT_USER PROCEDURE add_prescription(
	-- 需要完整代码请添加文章底部微信,付费咨询
COMMIT;
END//
DELIMITER ;

-- 调用存储过程
-- CALL add_prescription(3, 5, 'dr000008', 'official', @d_stock_number);
-- SELECT @d_stock_number;




-- 触发器

-- 实现数据的修改 。并对比触发器执行前后的对比。
-- 创建触发器: 实时更新药品库存量


DROP TRIGGER IF EXISTS update_info;

DELIMITER //
-- 需要完整代码请添加文章底部微信,付费咨询
END//
DELIMITER ;

-- 测试插入语句
-- INSERT INTO prescriptions
-- VALUES	(0, 5, 6, 'dr000001', 'physician'),
-- 		(0, 10, 7, 'dr000002', 'physician'),
-- 		(0, 15, 9, 'dr000003', 'physician'),
-- 		(0, 20, 10, 'dr000004', 'physician');
  • 4
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
演示地址:http://demo.codechina.com/aspmy/ 用户名: admin 密码:admin ASPmyadmin说明文件 Version: beta0.8 这是一套数据库管理软件。适用于小型用户。(譬如:建立自己的站点,用本系统管理数据库。)作者也是一个ASP 爱好者,一直都想找一个方便而且便于使用的数据库管理软件。可是,这方面的软件要么很大,用不着。要么就是E文的,看 着太累。于是作者便决定自己编制一个软件。 使用说明: 1.用户需要更改"config.asp"中的连接字段,与自己的数据库进行连接。因为ADOLess和ODBC不支持OPENSHEMA的Primarykey 属性,因此强烈建议使用JET。如果用ADOless和ODBC本系统将不能识别主键。 2."admin.txt"中存储管理信息。存储格式为:用户名:密码(既用户名与密码之间用":"分割。) 注意事项: 1.由于本系统以主键来区分不同的纪录,所以表中必须有主键,否则会发生错误。 2.由于csv格式不支持回车键,因此,在字段中不能出现回车。否则转换成的文件会有错误。 3.默认用户名为:"admin" 默认密码为:"admin",请在第一次使用时选择主页面左下脚"更改密码"更改该信息,以保证安全性! 4.请尽量更改"function.asp"中的"sBASE_64_CHARACTERS"字串使加密后的密码不易被破解。(字串中不能出现重复的字母, 而且字段长度不能改变。(64位))!!!!!!请小心使用,更改后要将admin.asp中验证部分去掉,重做密码!!!!!!!请参考 "更改密钥说明.txt" 新增功能 1.增加了数据库的压缩功能。 2.增加了对视图的支持。 3.增加了对用户名、密码的加密保护 4.增加了对存储过程的支持。(只能察看、删除,不能更改。) 由于是beta版本,可能会产生不可遇见的错误。造成的任何损失均与本人无关。 如果您觉得这个系统还不错,请来信鼓励我。谢谢! 由于作者是一名在校学生,来信可能不能迅速回答,请见谅。我一定尽可能快的回答大家的问题。 欢迎大家交换意见:[email protected]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值