| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- -- ============================================================
- -- DWD 层(明细数据层)建表语句
- -- 说明:在 ODS 层基础上关联生成的就诊明细事实表
- -- ============================================================
- -- 患者就诊明细事实表
- CREATE TABLE IF NOT EXISTS fact_patient_exam_detail (
- -- 主键
- id BIGINT COMMENT '自增ID',
- -- 患者维度
- patient_id BIGINT COMMENT '患者ID',
- patient_id_str VARCHAR(50) COMMENT '病历号',
- patient_name VARCHAR(100) COMMENT '姓名',
- sex VARCHAR(10) COMMENT '性别',
- age INT COMMENT '年龄',
- birthday DATE COMMENT '生日',
- mobile VARCHAR(20) COMMENT '手机号',
- identity VARCHAR(50) COMMENT '身份证号',
- -- 就诊信息
- clinic_id BIGINT COMMENT '就诊ID',
- come_time DATETIME COMMENT '就诊时间',
- come_date DATE COMMENT '就诊日期',
- visit_type VARCHAR(20) COMMENT '就诊类型:初诊/复诊/预约/复查',
- channel VARCHAR(50) COMMENT '渠道',
- -- 商品维度
- goods_id BIGINT COMMENT '商品ID',
- goods_name VARCHAR(200) COMMENT '商品名称',
- goods_uuid VARCHAR(100) COMMENT '商品UUID',
- fee_class VARCHAR(50) COMMENT '收费分类',
- -- 取镜信息
- pickup_id BIGINT COMMENT '取镜记录ID',
- pickup_time DATETIME COMMENT '取镜时间',
- pickup_date DATE COMMENT '取镜日期',
- -- 订单信息
- order_id BIGINT COMMENT '订单ID',
- orderdetail_id BIGINT COMMENT '订单明细ID',
- pay_time DATETIME COMMENT '支付时间',
- pay_date DATE COMMENT '支付日期',
- pay_amt DECIMAL(18,2) COMMENT '支付金额',
- refund_time DATETIME COMMENT '退款时间',
- -- 机构维度
- org_id INT COMMENT '就诊机构ID',
- org_name VARCHAR(200) COMMENT '就诊机构名称',
- group_id INT COMMENT '地区ID',
- group_name VARCHAR(200) COMMENT '地区名称',
- -- 员工维度
- customer_optometrist_staff_id BIGINT COMMENT '专属视光师ID',
- customer_optometrist_name VARCHAR(100) COMMENT '专属视光师姓名',
- customer_optometrist_org_name VARCHAR(200) COMMENT '视光师归属机构',
- accept_doctor_id BIGINT COMMENT '接诊医生ID',
- accept_doctor_name VARCHAR(100) COMMENT '接诊医生姓名',
- accept_optometrist_id BIGINT COMMENT '接诊视光师ID',
- accept_optometrist_name VARCHAR(100) COMMENT '接诊视光师姓名',
- -- 检查结果原始数据
- exam_result_json STRING COMMENT '检查结果JSON',
- exam_tab VARCHAR(50) COMMENT '检查类型:yj_dnyg/tj_gxsw',
- exam_id INT COMMENT '检查项目ID',
- -- 检查指标(解析后的数值)
- right_se_val DECIMAL(10,2) COMMENT '右眼SE等效球镜',
- left_se_val DECIMAL(10,2) COMMENT '左眼SE等效球镜',
- right_sph_val DECIMAL(10,2) COMMENT '右眼球镜',
- left_sph_val DECIMAL(10,2) COMMENT '左眼球镜',
- right_cyl_val DECIMAL(10,2) COMMENT '右眼柱镜',
- left_cyl_val DECIMAL(10,2) COMMENT '左眼柱镜',
- al_od_val DECIMAL(10,2) COMMENT '眼轴右眼',
- al_os_val DECIMAL(10,2) COMMENT '眼轴左眼',
- -- 数据日期(用于增量同步)
- data_date DATE COMMENT '数据日期(就诊日期)',
- -- 元数据
- create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
- )
- DUPLICATE KEY(id, come_time)
- PROPERTIES (
- "replication_num" = "1",
- "in_memory" = "false",
- "storage_format" = "V2"
- );
- -- 创建索引提升查询性能
- CREATE INDEX idx_patient_id ON fact_patient_exam_detail(patient_id);
- CREATE INDEX idx_pickup_date ON fact_patient_exam_detail(pickup_date);
- CREATE INDEX idx_data_date ON fact_patient_exam_detail(data_date);
- CREATE INDEX idx_fee_class ON fact_patient_exam_detail(fee_class);
|