- 新增 MedicationAdherenceController:统计API接口 - 新增 IMedicationAdherenceService:统计服务接口 - 新增 MedicationAdherenceServiceImpl:统计服务实现 - 新增 MedicationAdherenceVo/DailyAdherenceVo:统计VO - 扩展 HealthMedicationRecordMapper:新增统计SQL - 新增菜单和统计汇总表SQL
53 lines
2.3 KiB
SQL
53 lines
2.3 KiB
SQL
-- ========================================
|
|
-- 依从性统计功能 - SQL脚本
|
|
-- ========================================
|
|
|
|
-- 用药统计菜单
|
|
INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
|
|
VALUES (
|
|
nextval('seq_sys_menu'),
|
|
'用药统计',
|
|
(SELECT menu_id FROM sys_menu WHERE menu_name = '健康管理' LIMIT 1),
|
|
12,
|
|
'medicationStatistic',
|
|
'health/medicationStatistic/index',
|
|
NULL,
|
|
1,
|
|
0,
|
|
'C',
|
|
'0',
|
|
'0',
|
|
'health:medicationStatistic:query',
|
|
'chart',
|
|
'admin',
|
|
NOW(),
|
|
'用药统计菜单'
|
|
);
|
|
|
|
-- 用药统计按钮权限
|
|
INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
|
|
SELECT nextval('seq_sys_menu'), '用药统计查询', m.menu_id, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'health:medicationStatistic:query', '#', 'admin', NOW(), '' FROM sys_menu m WHERE m.perms = 'health:medicationStatistic:query';
|
|
|
|
-- ========================================
|
|
-- 添加依从性统计汇总表(可选,用于预计算性能优化)
|
|
-- ========================================
|
|
DROP TABLE IF EXISTS health_medication_adherence_stats;
|
|
CREATE TABLE health_medication_adherence_stats (
|
|
id BIGINT NOT NULL,
|
|
person_id BIGINT NOT NULL,
|
|
plan_id BIGINT NULL,
|
|
stat_date DATE NOT NULL,
|
|
total_tasks INT DEFAULT 0,
|
|
completed_tasks INT DEFAULT 0,
|
|
missed_tasks INT DEFAULT 0,
|
|
skipped_tasks INT DEFAULT 0,
|
|
ontime_tasks INT DEFAULT 0,
|
|
adherence_rate DECIMAL(5,2) DEFAULT 0.00,
|
|
ontime_rate DECIMAL(5,2) DEFAULT 0.00,
|
|
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
update_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (id)
|
|
) ENGINE=InnoDB COMMENT='依从性统计汇总表';
|
|
|
|
CREATE UNIQUE INDEX idx_hmas_person_date ON health_medication_adherence_stats(person_id, stat_date, plan_id);
|
|
CREATE INDEX idx_hmas_stat_date ON health_medication_adherence_stats(stat_date); |