问诊住院医疗业务数仓建模实操案例

一、数仓建模实超案例

(一)前言
医疗业务系统比较复杂,有HIS:医院信息管理系统( Hospital Information System)、CIS:临床信息系统(Clinical Information System)、LIS:实验室信息管理系统(Laboratory Information Management System)、EMR:电子病历(EMR,Electronic Medical Record)、PACS:影像归档和通信系统、RIS:放射科信息系统(Radiology Information System)、GMIS:区域信息系统、HRP:医院资源管理系统(Hospital Resource Planning )等,每个模块又包含很多其子系统。
在这里插入图片描述
在进行数仓模型建设的时候,先从整体来看,划分业务模块,再根据大的业务模块划分小的业务模块,然后再根据业务系统进行划分,梳理出整个业务划分情况,再梳理出每个系统的划分情况和依赖情况。
(二)本次建模情况介绍
本次建模只针对问诊、住院业务模块进行数仓建模。
1、问诊、住院系统涉及到的系统和表结构
一个业务系统里面,不仅仅有业务表,还有一些数据统计的表,我们要区分出来哪些业务表,而且后面做指标计算的时候,也可以根据业务数据统计表去验证我们的指标体系设计是否正确和合理。
本次模型设计,是用了天津的一个HIS系统厂商的门诊系统的数据结构。其中系统中表有324张,从业务角度和表信息了解来看,大概分为预约、挂号、叫号、诊断、开方、缴费、检查、检验、开药、煎药、拿药、复诊、退费、评价14个业务过程。
涉及维度有医院、医生、科室、药品、耗材、诊疗、时间、地区、患者、疾病、手术、检查检验项目12个大维度。
his系统表结构请私聊。因his系统涉及保密性,不能对外展示。但是医院的业务基本差不多,涉及维度基本一致,(无则添加)因此不影响最终模型的应用。(业务系统的任何一个业务操作都应该设计时间字段)
在这里插入图片描述

2、数据域划分
数仓数据域就是公司业务中联系较为密切的的数据主题的集合,一般可以根据业务过程、业务部门、业务系统来划分(比如医疗服务域、费用域、用户域),一个数据域包含多个主题。
数据域,通常根据业务部门、业务系统、业务过程划分数据域。一般情况下,每个公司的部分划分可能不同,而且公司调整架构业务部门会进行划分,但是业务过程差别不会特别大,且部门调整不会影响业务过程,因此此次划分主题域按照业务过程进行划分。
需要注意的是一个业务过程只能属于一个数据域。
数据域的划分要谨慎划分,一旦确定下来避免频繁变动,虽然数仓建设是迭代建设的,不能保证一次性初始化好,但我们的数据域划分和主题划分要尽可能地涵盖企业的所有业务,以及在新业务进来时能够无影响地被包含进来和可扩展数据域。

数据域业务过程
挂号域预约、挂号、取号、叫号、退号、过号
医疗过程域(医疗服务域)诊断、开方、检查、检验、手术、麻醉、输血、护理
费用域缴费、退费
用户域注册、登录
互动域评价、收藏
工具域优惠卷领取、优惠卷使用(下单)、优惠卷使用(支付)

业务总线矩阵
业务总线矩阵中包含维度模型所需的所有事实(业务过程)以及维度,以及各业务过程与各维度的关系。矩阵的行是一个个业务过程,矩阵的列是一个个的维度,行列的交点表示业务过程与维度的关系。
在这里插入图片描述

3、主题划分
主题域是对实体的逻辑分组,我们以上帝视角去看企业的业务系统,梳理企业的业务实体,实体与实体之间的关系,将企业中的数据进行逻辑划分。相同主题域中的数据联系紧密,不同主题域之间的数据相互独立。所以主题域的划分没有任何的技术含义,只是一种概念,能帮助数据使用者快速找到数据的一种分类方法。就像图书馆的图书分类一样,图书分类共分为22个大类:分为军事、文学、艺术等,比如文学又包含:小说、散文、诗歌、戏剧等。这些就是图书的主题域。
数仓主题就是在较高层次上将企业生产上的各个系统中某一分析对象的数据进行整合(比如医生主题、药品主题、患者主题)、归纳并分析的一种范围,一个主题就是一个实体对象。
比如用户主题域包含医生主题、护士主题、行政人员主题、患者主题。
药品主题域包含西药主题、中药主题、中草药主题、中药饮片主题。

主题域主题
用户主题域医生、护士、行政人员、患者
三目录主题域药品、诊疗项目、医用材料
地点主题域医院、科室、省份、城市、家庭住址
时间主题域日期、时间
号源主题域号源

在这里插入图片描述

4、业务表梳理

  1. 挂号域涉及到的业务表
    app_register_record:预约业务表
    outp_Register:挂号业务表
    outp_RegLock:挂号锁号表
    sys_QueueNo:叫号序列表
    call_queue_list:叫号队列表
    call_screen_config:叫号终端屏配置表

  2. 医疗过程域涉及到的业务表
    outp_OutpatientDiag:门诊信息——诊断
    outp_OutPatientDrug:门诊信息——用药
    outp_OutPatientSymp:门诊信息——症状
    outp_OutPatientTest:门诊信息——检查检验
    outp_OperRecord:手术记录

  3. 费用域涉及到的业务表
    outp_OutPatientFee:门诊信息——费用

  4. 用户域涉及到的业务表
    yb_user:医保用户表

  5. 互动域涉及到的业务表
    ys_evaluate:医生评价表
    ys_holdings:医生收藏表

  6. 工具域涉及到的业务表
    ts_coupon:特殊优惠卷使用表

4、维度提取
维度模型的设计参照上述得到的业务总线矩阵即可。事实表存储在DWD层,维度表存储在DIM层。
维度表包含:时间:时间、场:医院、科室、人:医生、护士、患者、行政人员、货:号源、三目录(药品、诊疗、医用材料)、疾病、手术、护理信息表(输液、灌肠、消毒等)、优惠卷。

5、事实表提取(业务梳理提取)
在这里插入图片描述

6、维度表设计
在这里插入图片描述
无法完全展示,有需要可以咨询附件。

7、事实表设计
挂号域-明细事实表
在这里插入图片描述
医疗过程域-明细事实表
在这里插入图片描述
费用域-明细事实表

在这里插入图片描述
用户域-明细事实表
在这里插入图片描述

互动域-明细事实表

在这里插入图片描述
工具域-明细事实表

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/8288.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图像处理常用算法(基础)

同图像灰度不同,边界处一般会有明显的边缘,利用此特征可以分割图像。需要说明的是:边缘和物体间的边界并不等同,边缘指的是图像中像素的值有突变的地方,而物体间的边界指的是现实场景中的存在于物体之间的边界。有可能有边缘的地方并非边界,也有可能边界的地方并无边缘,…

13---罗马数字转整数

罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如&#xf…

docker进阶

Docker网络 [rootecs-56325218 ~]# docker network ls NETWORK ID NAME DRIVER SCOPE 2c63c1a8145c bridge bridge local 70d3439bbb55 host host local ffc74cf89143 none null local[rootecs-56325218 ~]# docker network cre…

Excel实用技巧 如何将EXCEL中在同个单元格中的汉字和数字分开

右边字符串,左边数字 RIGHT(A1,LENB(A1)-LEN(A1)) LEFT(A1,2*LEN(A1)-LENB(A1)) 左边字符串,右边数字 LEFT(A1,LENB(A1)-LEN(A1)) RIGHT(A1,2*LEN(A1)-LENB(A1))

【数学建模系列】TOPSIS法的算法步骤及实战应用——MATLAB实现

文章目录 TOPSIS简介方法和原理数学定义数学语言描述现实案例 正负理想解定义实例 量纲 TOPSIS法的算法步骤1.用向量规范化的方法求得规范决策矩阵2.构成加权规范阵C(c~ij~)~m*n~3.确定正负理想解的距离4.计算各方案到正理想解与负理想解的距离5.计算各方案的综合评价指数6.排列…

java阻塞队列/kafka/spring整合kafka

queue增加删除元素 增加元素 add方法在添加元素的时候,若超出了度列的长度会直接抛出异常:put方法,若向队尾添加元素的时候发现队列已经满了会发生阻塞一直等待空间,以加入元素offer方法在添加元素时,如果发现队列已满…

机器学习算法基础学习 # 集成学习之随机森林

随机森林(Random Forests) 是集成学习算法的一种。集成学习是通过组合多个学习器来完成学习任务。随机森林是结合多颗决策树来对样本进行训练和预测。随机森林通过随机扰动而令所有的树去相关。 随机森林可以使用巨量的预测器,甚至预测器的数量比观察样本的数量还多…

解决PyInstaller打包selenium脚本时弹出driver终端窗口

解决PyInstaller打包selenium脚本时弹出driver终端窗口 找到service.py C:\Users\XXX\AppData\Roaming\Python\Python39\site-packages\selenium\webdriver\common\service.py添加creationflags 在第77行添加: creationflags134217728使用PyInstaller打包 pyinstaller -F -w -…

Springboot集成magic-api

目录 1、前言 2、springboot集成magic-api 2.1、添加maven依赖 2.2、application.yml配置 2.3、编写测试接口 2.4、启动程序,访问接口 2.5、magic-api脚本 3、magic-api其他语法 4、注意事项 1、前言 今天项目中遇到一个问题,springboot后端项目…

找出一个List中每个元素出现的次数

文章目录 一、需求:找出一个list中,每个元素出现的次数1. 普通实现(hashmap):1.1 代码实现:1.2运行结果:1.3 案例分析: 2. 普通实现(HashSet#Collections.frequency&…

springboot实现后端防重复提交(AOP+redis分布式锁)单机情况下

文章目录 0、依赖1、自定义接口2、实现redis分布式锁3、统一返回值ReturnT4、CookieUtil5、自定义AOP6、测试 为什么要实现这个功能呢,可能用户在提交一份数据后,可能因为网络的原因、处理数据的速度慢等原因导致页面没有及时将用户刚提交数据的后台处理…

【经典题目分析】数组分割问题

文章目录 698. 划分为k个相等的子集416. 分割等和数组 698. 划分为k个相等的子集 把一个数组&#xff0c;拆分成K个大小一样的子数组。方法可以是状态枚举&#xff0c;或者dfs class Solution { public:bool canPartitionKSubsets(vector<int>& nums, int k) {// 从…