医院信息管理E-R图及关系模式

本文描述了一个医院的信息管理系统需求,包括科室、医生、患者、药品和处方的管理,强调了E-R图的构建,模式结构设计,以及数据库表的主键和参照完整性约束。系统涉及多对多关系,如医生与科室、患者与医生,且强调了数据量的要求和错误检查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

某医院信息管理满足以下需求:

实现科室、医生、患者、药品信息的管理;

实现处方管理;

创建视图查询医生编号、姓名和所在科室名称;

创建视图查询每张处方的编号、开具日期以及费用总额;

建立数据库相关表的数据完整性约束,要求实现主键约束、表之间的参照完整性约束。

数据库各张表中需要有10条以上的记录问题,开发医院系统。

其中,一个科室有多个医生,一个医生可以诊治多个病人,一个病人也能被多个医生诊治,一个患者的主治医师只有一个。

(1)该医院信息管理的E-R图为

(2)模式结构为:(下划线为主码)

科室(科室名,科室电话,医生姓名)

医生(医生编号,姓名,性别,年龄,联系电话,职称,所属科室)

患者(患者编号,姓名,性别,身份证号,手机号,主治医生)

处方(处方编号,患者编号,医生编号,开具日期,费用总额)

药品(药品编号,药品类别,药品单价,库存量)

PS:如果有不对的地方,欢迎各位指出错误!

系统主要功能按照数据流量、流向及处理过程分为临床诊疗、药品管理、财务管理、患者管理。诊疗活动由各工作站配合完成,并将临床信息进行整理、处理、汇总、统计、分析等。本系统包括以下工作站:门诊医生工作站、药房医生工作站、医技医生工作站、收费员工作站、对帐员工作站、管理员工作站。基于Spring cloud和Spring boot 2.x 实现 *项目演示 username:演示用户 password:test 由于没有进行部署,首次加载需要等待1~2分钟,加载完成之后比较流程流畅 好不容易抓到了推免的尾巴,所以最近打算更新一下部署文档,暂时不打算再维护代码了,但会继续推出其他有意思的基于Cloud的项目,欢迎关注 有问题请直接 issue(如果需要数据库和真实数据请联系本人邮箱) 申明:项目为NEU实训课设本组所作,包前缀为neu,侵权必改 之前由于学校突然增加人机交互课设,所以把该项目变成Private,但很多人无情fork之后并不删除,例如 TANGKUO,我已经联系他多次,他还是不删除。只能挂个名字在这了... 持续更新中...... 前言 HIS 项目致力于打造一个完整的医疗系统,采用现阶段流行技术实现。 下一阶段计划 添置部署教程 提高代码质量 更新技术栈为最新版本,并引入新技术 本仓库包含 系统 描述 HIS-master 单体应用 his-cloud 分布式微服务应用 HIS-web 诊疗前端 HIS-app 患者前端 注:单体应用和分布式实现业务完全相同 一. 项目架构 项目开发进度 后端技术栈 技术 版本 说明 Spring Cloud Netflix Finchley.RELEASE 分布式全家桶 Spring Cloud Eureka 2.0.0.RELEASE 服务注册 Spring Cloud Zipkin 2.0.0.RELEASE 服务链路 Spring Cloud config 2.0.0.RELEASE 服务配置 Spring Cloud Feign 2.0.0.RELEASE 服务调用 Spring Cloud Zuul 2.0.0.RELEASE 服务网关 Spring Cloud Hystrix 2.0.0.RELEASE 服务熔断 Spring Cloud Turbine 2.0.0.RELEASE 服务熔断监控 Spring Boot Admin 2.0.1 服务监控 Spring Boot 2.0.3.RELEASE 容器+MVC框架 Spring Security 5.1.4.RELEASE 认证和授权框架 MyBatis 3.4.6 ORM框架 MyBatisGenerator 1.3.3 数据层代码生成 PageHelper 5.1.8 MyBatis物理分页插件 Maven 3.6.1 项目管理工具 Swagger2 2.7.0 交互式API文档 Elasticsearch 6.2.2 搜索引擎 kibana 6.2.2 数据分析和可视化平台 LogStash 6.2.2 数据采集引擎 RabbitMq 3.7.14 消息队列 Redis 3.2 缓存 Druid 1.1.10 数据库连接池 OSS 2.5.0 对象存储 JWT 0.9.1 跨域身份验证解决方案 Lombok 1.18.6 简化对象封装工具 Junit 4.12 单元测试框架 Logback 1.2.3 日志框架 Java doc ———— API帮助文档 Docker 18.09.6 应用容器引擎 Docker-compose 18.09.6 容器快速编排 前端技术栈 技术 版本 说明 Vue 2.6.10 前端框架 Vue-router 3.0.2 前端路由框架 Vuex 3.1.0 vue状态管理组件 Vue-cli ———— Vue脚手架 Element-ui 2.7.0 前端UI框架 Echarts 4.2.1 数据可视化框架 Uni-app ———— 跨平台前端框架 Mockjs 1.0.1-beta3 模拟后端数据 Axios 0.18.0 基于Promise的Http库 Js-cookie 2.2.0 Cookie组件 Jsonlint 1.6.3 Json解析组件 screenfull 4.2.0 全屏组件 Xlsx 0.14.1 Excel表导出组件 Webpack ———— 模板打包器 二. 项目展示 主页 主页 门诊医生工作台 门诊医生工作台 医技医生工作台 医技医生工作台 药房医生工作台 药房医生工作台 收银员工作台 收银员工作台 对账员工作台 对账员工作台 病历模板 病历模板 排班管理 排班管理 App挂号 App挂号 Sprin
<think>嗯,用户想查找医院住院信息系统的总体E-R关系,以及总体设计和数据库建模方面的内容。首先,我需要回忆一下E-R的基本组成部分,比如实体、属性和关系。根据用户提供的引用内容,系统可能涉及患者、医生、病房、药品等实体。 引用[1]提到医院管理系统处理大多数事务,并使用了MVC模式和MySQL数据库。这说明在设计E-R时,需要考虑系统的模块划分,比如住院管理可能涉及病房分配、医嘱管理等模块。引用[2]和[3]提到了数据备份、实体集定义以及宠物医院的管理,这些信息可以帮助确定实体之间的关系,比如患者与病房之间的入住关系,医生与患者之间的诊疗关系。 接下来,我需要确定各个实体的属性。例如,患者实体可能有住院号、姓名、性别等属性,病房可能有病房号、类型、床位数量。然后,确定实体之间的关系,如患者入住病房是多对一的关系,医生与患者之间可能存在一对多的诊疗关系。 还需要考虑是否有多值属性和弱实体。比如,患者的联系方式可能有多个,属于多值属性。而住院记录可能作为弱实体,依赖于患者实体存在。在绘制E-R时,这些都需要用相应的符号表示,如椭圆、矩形、菱形等。 最后,结合引用中的信息,可能需要参考现有的医院管理系统设计,比如引用[1]和[3]提到的系统结构和目标,确保E-R符合实际应用需求,并支持高效的数据管理和恢复机制,如引用[2]提到的数据备份与恢复功能。</think>### 医院住院信息系统E-R总体设计与数据库建模 #### 一、总体设计思路 医院住院信息系统E-R需围绕住院业务核心实体展开,包括$患者$、$医生$、$病房$、$药品$、$医嘱$等,并建立其属性与关联关系[^1]。设计需满足以下要求: 1. 支持患者入院登记、床位分配、医嘱执行等核心流程 2. 实现药品库存、费用结算等关联模块的数据集成 3. 符合数据库三范式规范,减少数据冗余[^2] #### 二、核心实体定义 1. **患者实体** 属性:$住院号$(主键)、姓名、性别、年龄、入院时间、诊断结果 ```mermaid erDiagram PATIENT { string 住院号 PK string 姓名 char 性别 int 年龄 datetime 入院时间 text 诊断结果 } ``` 2. **病房实体** 属性:$病房号$(主键)、类型(普通/ICU)、床位数量、当前空床数 与患者关系:1:N(一个病房可入住多个患者) 3. **医生实体** 属性:$工号$(主键)、姓名、职称、所属科室 与患者关系:1:N(一个医生负责多个患者) #### 三、全局E-R框架 ```mermaid erDiagram PATIENT ||--o{ ADMISSION_RECORD : "入住" PATIENT ||--o{ MEDICAL_ORDER : "开具" DOCTOR ||--o{ MEDICAL_ORDER : "下达" WARD ||--o{ BED : "包含" PATIENT ||--|{ BED : "使用" MEDICAL_ORDER ||--|{ MEDICINE : "包含药品" PATIENT { string 住院号 PK string 姓名 char 性别 int 年龄 } WARD { string 病房号 PK string 类型 int 总床位数 int 可用床位数 } DOCTOR { string 工号 PK string 姓名 string 职称 string 科室 } MEDICINE { string 药品编号 PK string 名称 decimal 单价 int 库存量 } MEDICAL_ORDER { int 医嘱ID PK datetime 开立时间 text 执行内容 } ``` #### 四、关键关系说明 1. **患者-病房关系** - 联系集:入住记录 - 属性:$入院时间$、预计出院时间、实际出院时间 - 约束:一个患者同一时间只能分配到一个床位 2. **医嘱执行关系** - 包含药品、检查项目、治疗措施三类医嘱 - 药品医嘱需关联$药品库存表$进行数量扣减[^3] 3. **费用关联** 通过触发器实现: ```sql CREATE TRIGGER update_balance AFTER INSERT ON 医嘱执行记录 FOR EACH ROW BEGIN UPDATE 患者账户 SET 余额 = 余额 - (SELECT 单价 FROM 药品 WHERE 药品ID=NEW.药品ID) * NEW.数量 WHERE 住院号 = NEW.住院号; END; ``` #### 五、数据库建模要点 1. **范式优化** - 将多值属性(如患者联系方式)单独建表 - 住院记录表需包含$住院号$(外键)、$病房号$(外键)、入院时间组合主键 2. **索引设计** ```sql CREATE INDEX idx_patient_name ON 患者(姓名); CREATE INDEX idx_ward_available ON 病房(可用床位数) WHERE 可用床位数 > 0; ``` 3. **数据完整性约束** ```sql ALTER TABLE 医嘱执行记录 ADD CONSTRAINT chk_dosage CHECK (剂量 > 0 AND 剂量 <= (SELECT 最大单次剂量 FROM 药品 WHERE 药品ID=医嘱执行记录.药品ID)); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值