diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/infection/appservice/ICdssAppService.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/infection/appservice/ICdssAppService.java deleted file mode 100644 index 8502ed885..000000000 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/infection/appservice/ICdssAppService.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.healthlink.his.web.infection.appservice; - -import com.healthlink.his.infection.domain.CdssAlert; -import com.healthlink.his.infection.domain.CdssRule; - -import java.util.List; -import java.util.Map; - -public interface ICdssAppService { - Map evaluateRules(Long encounterId); - List getAlerts(Long encounterId); - boolean acknowledgeAlert(Long alertId); - List getRules(Map params); -} diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/infection/appservice/impl/CdssAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/infection/appservice/impl/CdssAppServiceImpl.java deleted file mode 100644 index 85f2513ba..000000000 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/infection/appservice/impl/CdssAppServiceImpl.java +++ /dev/null @@ -1,104 +0,0 @@ -package com.healthlink.his.web.infection.appservice.impl; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.healthlink.his.infection.domain.CdssAlert; -import com.healthlink.his.infection.domain.CdssRule; -import com.healthlink.his.infection.service.ICdssAlertService; -import com.healthlink.his.infection.service.ICdssRuleService; -import com.healthlink.his.web.infection.appservice.ICdssAppService; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.util.*; -import java.util.stream.Collectors; - -@Service -@Slf4j -@AllArgsConstructor -public class CdssAppServiceImpl implements ICdssAppService { - - private final ICdssRuleService cdssRuleService; - private final ICdssAlertService cdssAlertService; - - @Override - @Transactional(rollbackFor = Exception.class) - public Map evaluateRules(Long encounterId) { - log.info("CDSS规则评估开始, encounterId={}", encounterId); - - List enabledRules = cdssRuleService.list( - new LambdaQueryWrapper() - .eq(CdssRule::getEnabled, true) - ); - - List newAlerts = new ArrayList<>(); - for (CdssRule rule : enabledRules) { - CdssAlert alert = new CdssAlert(); - alert.setEncounterId(encounterId); - alert.setPatientId(0L); - alert.setRuleId(rule.getId()); - alert.setAlertType(rule.getRuleType()); - alert.setAlertMessage("[" + rule.getRuleName() + "] " + rule.getSuggestion()); - alert.setSeverity(rule.getSeverity()); - alert.setAcknowledged(false); - cdssAlertService.save(alert); - newAlerts.add(alert); - } - - Map result = new HashMap<>(); - result.put("totalRules", enabledRules.size()); - result.put("newAlertCount", newAlerts.size()); - result.put("newAlerts", newAlerts); - result.put("evaluateTime", new Date()); - - log.info("CDSS规则评估完成: {}条规则, 生成{}条告警", enabledRules.size(), newAlerts.size()); - return result; - } - - @Override - public List getAlerts(Long encounterId) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(CdssAlert::getEncounterId, encounterId); - wrapper.orderByDesc(CdssAlert::getCreateTime); - return cdssAlertService.list(wrapper); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public boolean acknowledgeAlert(Long alertId) { - CdssAlert alert = cdssAlertService.getById(alertId); - if (alert == null) { - return false; - } - alert.setAcknowledged(true); - alert.setAcknowledgedTime(new Date()); - return cdssAlertService.updateById(alert); - } - - @Override - public List getRules(Map params) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - - String ruleType = getStr(params, "ruleType"); - if (ruleType != null && !ruleType.isEmpty()) { - wrapper.eq(CdssRule::getRuleType, ruleType); - } - String severity = getStr(params, "severity"); - if (severity != null && !severity.isEmpty()) { - wrapper.eq(CdssRule::getSeverity, severity); - } - String keyword = getStr(params, "keyword"); - if (keyword != null && !keyword.isEmpty()) { - wrapper.and(w -> w.like(CdssRule::getRuleName, keyword) - .or().like(CdssRule::getRuleCode, keyword)); - } - wrapper.orderByDesc(CdssRule::getCreateTime); - return cdssRuleService.list(wrapper); - } - - private String getStr(Map params, String key) { - Object v = params.get(key); - return v != null ? v.toString() : null; - } -} diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/infection/controller/CdssController.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/infection/controller/CdssController.java deleted file mode 100644 index b946a1f18..000000000 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/infection/controller/CdssController.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.healthlink.his.web.infection.controller; - -import com.core.common.core.domain.R; -import com.healthlink.his.infection.domain.CdssAlert; -import com.healthlink.his.infection.domain.CdssRule; -import com.healthlink.his.web.infection.appservice.ICdssAppService; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.tags.Tag; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import java.util.List; -import java.util.Map; - -@Tag(name = "CDSS临床决策支持") -@RestController -@RequestMapping("/infection/cdss") -@Slf4j -@AllArgsConstructor -public class CdssController { - - private final ICdssAppService cdssAppService; - - @Operation(summary = "评估规则生成告警") - @PreAuthorize("@ss.hasPermi('infection:cdss:edit')") - @PostMapping("/evaluate") - public R evaluateRules(@RequestParam Long encounterId) { - log.info("CDSS规则评估, encounterId={}", encounterId); - return R.ok(cdssAppService.evaluateRules(encounterId)); - } - - @Operation(summary = "获取告警列表") - @PreAuthorize("@ss.hasPermi('infection:cdss:list')") - @GetMapping("/alerts/{encounterId}") - public R getAlerts(@PathVariable Long encounterId) { - return R.ok(cdssAppService.getAlerts(encounterId)); - } - - @Operation(summary = "确认告警") - @PreAuthorize("@ss.hasPermi('infection:cdss:edit')") - @PostMapping("/alerts/{id}/acknowledge") - public R acknowledgeAlert(@PathVariable Long id) { - return R.ok(cdssAppService.acknowledgeAlert(id)); - } - - @Operation(summary = "查询规则列表") - @PreAuthorize("@ss.hasPermi('infection:cdss:list')") - @GetMapping("/rules") - public R getRules( - @RequestParam(value = "ruleType", required = false) String ruleType, - @RequestParam(value = "severity", required = false) String severity, - @RequestParam(value = "keyword", required = false) String keyword) { - Map params = new java.util.HashMap<>(); - if (ruleType != null) params.put("ruleType", ruleType); - if (severity != null) params.put("severity", severity); - if (keyword != null) params.put("keyword", keyword); - return R.ok(cdssAppService.getRules(params)); - } -} diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/mrhomepage/controller/DrgAnalysisController.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/mrhomepage/controller/MrHomepageDrgController.java similarity index 63% rename from healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/mrhomepage/controller/DrgAnalysisController.java rename to healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/mrhomepage/controller/MrHomepageDrgController.java index 1d7bb0969..3dc26e910 100644 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/mrhomepage/controller/DrgAnalysisController.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/mrhomepage/controller/MrHomepageDrgController.java @@ -1,19 +1,33 @@ package com.healthlink.his.web.mrhomepage.controller; + import com.core.common.core.domain.R; import com.healthlink.his.mrhomepage.domain.MrDrgGrouping; import com.healthlink.his.mrhomepage.service.IMrDrgGroupingService; -import lombok.AllArgsConstructor;import lombok.extern.slf4j.Slf4j; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; -import java.math.BigDecimal;import java.util.*; -@RestController @RequestMapping("/drg-analysis") @Slf4j @AllArgsConstructor -public class DrgAnalysisController { + +import java.math.BigDecimal; +import java.util.*; + +@RestController +@RequestMapping("/mr-homepage/drg") +@Slf4j +@AllArgsConstructor +public class MrHomepageDrgController { + private final IMrDrgGroupingService drgService; + @GetMapping("/cost-efficiency") public R getCostEfficiency() { List all = drgService.list(); - BigDecimal totalCost = BigDecimal.ZERO; int count = 0; + BigDecimal totalCost = BigDecimal.ZERO; + int count = 0; for (MrDrgGrouping g : all) { - if (g.getTotalCost() != null) { totalCost = totalCost.add(g.getTotalCost()); count++; } + if (g.getTotalCost() != null) { + totalCost = totalCost.add(g.getTotalCost()); + count++; + } } Map result = new HashMap<>(); result.put("avgCost", count > 0 ? totalCost.divide(BigDecimal.valueOf(count), 2, BigDecimal.ROUND_HALF_UP) : BigDecimal.ZERO); diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/quality/appservice/impl/EmrQualityAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/quality/appservice/impl/EmrQualityAppServiceImpl.java index 7d537ffc7..7706214d8 100644 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/quality/appservice/impl/EmrQualityAppServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/quality/appservice/impl/EmrQualityAppServiceImpl.java @@ -1,6 +1,6 @@ package com.healthlink.his.web.quality.appservice.impl; import com.healthlink.his.quality.domain.EmrDefect; -import com.healthlink.his.quality.domain.EmrQualityScore; +import com.healthlink.his.quality.domain.QualityScore; import com.healthlink.his.quality.mapper.*; import com.healthlink.his.web.quality.appservice.IEmrQualityAppService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -10,7 +10,7 @@ import java.util.*; import java.util.Date; @Service public class EmrQualityAppServiceImpl implements IEmrQualityAppService { - @Autowired private EmrQualityScoreMapper scoreMapper; + @Autowired private QualityScoreMapper scoreMapper; @Autowired private EmrDefectMapper defectMapper; @Override @@ -43,9 +43,9 @@ public class EmrQualityAppServiceImpl implements IEmrQualityAppService { @Override public List> getQualityScores(Long encounterId) { List> scores = new ArrayList<>(); - List list = scoreMapper.selectList(new LambdaQueryWrapper() - .eq(EmrQualityScore::getEncounterId, encounterId).orderByDesc(EmrQualityScore::getCreateTime)); - for (EmrQualityScore s : list) { + List list = scoreMapper.selectList(new LambdaQueryWrapper() + .eq(QualityScore::getEncounterId, encounterId).orderByDesc(QualityScore::getCreateTime)); + for (QualityScore s : list) { Map m = new HashMap<>(); m.put("id", s.getId()); m.put("emrType", s.getEmrType()); m.put("score", s.getScore()); m.put("grade", s.getGrade()); m.put("checkType", s.getCheckType()); m.put("checkerName", s.getCheckerName()); diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/quality/appservice/impl/TerminalQualityAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/quality/appservice/impl/TerminalQualityAppServiceImpl.java index 0c2a603db..b3b7b6453 100644 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/quality/appservice/impl/TerminalQualityAppServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/quality/appservice/impl/TerminalQualityAppServiceImpl.java @@ -1,9 +1,9 @@ package com.healthlink.his.web.quality.appservice.impl; import com.healthlink.his.quality.domain.EmrDefect; -import com.healthlink.his.quality.domain.EmrQualityScore; +import com.healthlink.his.quality.domain.QualityScore; import com.healthlink.his.quality.mapper.EmrDefectMapper; -import com.healthlink.his.quality.mapper.EmrQualityScoreMapper; +import com.healthlink.his.quality.mapper.QualityScoreMapper; import com.healthlink.his.web.quality.appservice.ITerminalQualityAppService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.springframework.beans.factory.annotation.Autowired; @@ -16,7 +16,7 @@ import java.util.*; public class TerminalQualityAppServiceImpl implements ITerminalQualityAppService { @Autowired - private EmrQualityScoreMapper scoreMapper; + private QualityScoreMapper scoreMapper; @Autowired private EmrDefectMapper defectMapper; @@ -44,7 +44,7 @@ public class TerminalQualityAppServiceImpl implements ITerminalQualityAppService String grade = calculateGrade(score); // 保存评分记录 - EmrQualityScore qualityScore = new EmrQualityScore(); + QualityScore qualityScore = new QualityScore(); qualityScore.setEncounterId(encounterId); qualityScore.setScore(score); qualityScore.setMaxScore(new BigDecimal(100)); @@ -69,15 +69,15 @@ public class TerminalQualityAppServiceImpl implements ITerminalQualityAppService result.put("encounterId", encounterId); // 获取评分记录 - List scores = scoreMapper.selectList( - new LambdaQueryWrapper() - .eq(EmrQualityScore::getEncounterId, encounterId) - .eq(EmrQualityScore::getCheckType, "TERMINAL") - .orderByDesc(EmrQualityScore::getCreateTime) + List scores = scoreMapper.selectList( + new LambdaQueryWrapper() + .eq(QualityScore::getEncounterId, encounterId) + .eq(QualityScore::getCheckType, "TERMINAL") + .orderByDesc(QualityScore::getCreateTime) ); if (!scores.isEmpty()) { - EmrQualityScore latestScore = scores.get(0); + QualityScore latestScore = scores.get(0); result.put("score", latestScore.getScore()); result.put("grade", latestScore.getGrade()); result.put("checkTime", latestScore.getCreateTime()); diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/quality/controller/BusinessAnalyticsController.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/quality/controller/QualityBusinessAnalyticsController.java similarity index 98% rename from healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/quality/controller/BusinessAnalyticsController.java rename to healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/quality/controller/QualityBusinessAnalyticsController.java index f4f0eab25..6ff685f8b 100644 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/quality/controller/BusinessAnalyticsController.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/quality/controller/QualityBusinessAnalyticsController.java @@ -18,7 +18,7 @@ import java.util.*; @RequestMapping("/business-analytics") @Slf4j @AllArgsConstructor -public class BusinessAnalyticsController { +public class QualityBusinessAnalyticsController { private final IBusinessAnalyticsService analyticsService; diff --git a/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V71__cdss.sql b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V71__cdss.sql deleted file mode 100644 index d540c2d3f..000000000 --- a/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V71__cdss.sql +++ /dev/null @@ -1,33 +0,0 @@ -CREATE TABLE cdss_rule ( - id BIGSERIAL PRIMARY KEY, - rule_code VARCHAR(32) NOT NULL, - rule_name VARCHAR(100) NOT NULL, - rule_type VARCHAR(20) NOT NULL, - condition_expr TEXT NOT NULL, - suggestion TEXT NOT NULL, - severity VARCHAR(16) DEFAULT 'INFO', - enabled BOOLEAN DEFAULT TRUE, - tenant_id BIGINT DEFAULT 0, - delete_flag CHAR(1) DEFAULT '0', - create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - create_by VARCHAR(64), - update_time TIMESTAMP, - update_by VARCHAR(64) -); - -CREATE TABLE cdss_alert ( - id BIGSERIAL PRIMARY KEY, - encounter_id BIGINT NOT NULL, - patient_id BIGINT NOT NULL, - rule_id BIGINT NOT NULL, - alert_type VARCHAR(20) NOT NULL, - alert_message TEXT NOT NULL, - severity VARCHAR(16) NOT NULL, - acknowledged BOOLEAN DEFAULT FALSE, - acknowledged_by BIGINT, - acknowledged_time TIMESTAMP, - tenant_id BIGINT DEFAULT 0, - delete_flag CHAR(1) DEFAULT '0', - create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - create_by VARCHAR(64) -); diff --git a/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V76__add_missing_menus.sql b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V76__add_missing_menus.sql new file mode 100644 index 000000000..47d3a16ca --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V76__add_missing_menus.sql @@ -0,0 +1,7 @@ +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark, delete_flag) +VALUES +('CDSS', 10001, 10, 'cdss', 'cdss/cdssAlerts/index', NULL, 1, 0, 'C', '0', '0', 'infection:cdss:list', 'fa:', 'admin', CURRENT_TIMESTAMP, NULL, NULL, '临床决策支持', 0), +('区域共享', 20081, 10, 'regionalshare', 'esbmanage/regionalshare/index', NULL, 1, 0, 'C', '0', '0', 'infection:regional:list', 'fa:', 'admin', CURRENT_TIMESTAMP, NULL, NULL, '区域医疗信息共享', 0), +('EMR数据仓库', 20201, 10, 'data-warehouse', 'emr/data-warehouse/index', NULL, 1, 0, 'C', '0', '0', 'infection:emr:list', 'fa:', 'admin', CURRENT_TIMESTAMP, NULL, NULL, '病历数据仓库', 0), +('病案统计明细', 20051, 10, 'statistics-detail', 'mrhomepage/statistics-detail/index', NULL, 1, 0, 'C', '0', '0', 'infection:mrhomepage:list', 'fa:', 'admin', CURRENT_TIMESTAMP, NULL, NULL, '病案统计明细', 0), +('报表维度', 360, 10, 'ReportDimension', 'reportmanage/ReportDimension', NULL, 1, 0, 'C', '0', '0', 'infection:report:list', 'fa:', 'admin', CURRENT_TIMESTAMP, NULL, NULL, '报表维度', 0); diff --git a/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V77__update_menu_icons.sql b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V77__update_menu_icons.sql new file mode 100644 index 000000000..1107f9cbe --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V77__update_menu_icons.sql @@ -0,0 +1,338 @@ +-- V66__update_menu_icons.sql +-- 更新菜单图标 - 根据菜单功能名称匹配合适的图标 +-- 仅使用 src/assets/icons/svg/ 目录下实际存在的图标 + +SET search_path TO healthlink_his; + +-- ========== 一级菜单(顶级目录)========== +UPDATE sys_menu SET icon = 'system' WHERE menu_id = 1; -- 系统管理 +UPDATE sys_menu SET icon = 'monitor' WHERE menu_id = 2; -- 系统监控 +UPDATE sys_menu SET icon = 'tool' WHERE menu_id = 3; -- 系统工具 +UPDATE sys_menu SET icon = 'log' WHERE menu_id = 108; -- 日志管理 +UPDATE sys_menu SET icon = 'inpatient' WHERE menu_id = 235; -- 住院管理 +UPDATE sys_menu SET icon = 'drug' WHERE menu_id = 268; -- 药库管理 +UPDATE sys_menu SET icon = 'outpatient' WHERE menu_id = 270; -- 门诊管理 +UPDATE sys_menu SET icon = 'inventory' WHERE menu_id = 313; -- 库房管理 +UPDATE sys_menu SET icon = 'drug-dispensing' WHERE menu_id = 342; -- 发药管理 +UPDATE sys_menu SET icon = 'finance' WHERE menu_id = 350; -- 财务管理 +UPDATE sys_menu SET icon = 'report' WHERE menu_id = 360; -- 报表管理 +UPDATE sys_menu SET icon = 'insurance' WHERE menu_id = 386; -- 医保管理 +UPDATE sys_menu SET icon = 'connection' WHERE menu_id = 418; -- 接口管理 +UPDATE sys_menu SET icon = 'workflow' WHERE menu_id = 2020; -- 流程管理 +UPDATE sys_menu SET icon = 'task' WHERE menu_id = 2023; -- 任务管理 +UPDATE sys_menu SET icon = 'billing' WHERE menu_id = 2078; -- 收费工作站 +UPDATE sys_menu SET icon = 'pharmacy' WHERE menu_id = 2079; -- 药房管理 +UPDATE sys_menu SET icon = 'tool' WHERE menu_id = 2083; -- 维护系统 +UPDATE sys_menu SET icon = 'doctor' WHERE menu_id = 2084; -- 门诊医生工作站 +UPDATE sys_menu SET icon = 'appointment' WHERE menu_id = 2092; -- 预约管理 +UPDATE sys_menu SET icon = 'triage' WHERE menu_id = 2110; -- 分诊排队管理 +UPDATE sys_menu SET icon = 'surgery' WHERE menu_id = 2119; -- 手术管理 +UPDATE sys_menu SET icon = 'user' WHERE menu_id = 2140; -- 患者管理 +UPDATE sys_menu SET icon = 'consultation' WHERE menu_id = 2147; -- 会诊管理 +UPDATE sys_menu SET icon = 'report' WHERE menu_id = 2159; -- 疾病报告管理 +UPDATE sys_menu SET icon = 'infection' WHERE menu_id = 10001; -- 院感管理 +UPDATE sys_menu SET icon = 'log' WHERE menu_id = 10011; -- 药品追溯管理 +UPDATE sys_menu SET icon = 'edit' WHERE menu_id = 10021; -- 电子签名管理 +UPDATE sys_menu SET icon = 'alert' WHERE menu_id = 10031; -- 危急值管理 +UPDATE sys_menu SET icon = 'peoples' WHERE menu_id = 10041; -- 患者主索引(EMPI) +UPDATE sys_menu SET icon = 'peoples' WHERE menu_id = 10051; -- 质量管理 +UPDATE sys_menu SET icon = 'shopping' WHERE menu_id = 10061; -- 手术安全核查 +UPDATE sys_menu SET icon = 'guide' WHERE menu_id = 10071; -- 临床路径 +UPDATE sys_menu SET icon = 'anesthesia' WHERE menu_id = 20001; -- 麻醉管理 +UPDATE sys_menu SET icon = 'medication' WHERE menu_id = 20011; -- 合理用药 +UPDATE sys_menu SET icon = 'emergency' WHERE menu_id = 20021; -- 急诊管理 +UPDATE sys_menu SET icon = 'nursing' WHERE menu_id = 20031; -- 护理管理 +UPDATE sys_menu SET icon = 'pathology' WHERE menu_id = 20041; -- 病理管理 +UPDATE sys_menu SET icon = 'medical-record' WHERE menu_id = 20051; -- 病案管理 +UPDATE sys_menu SET icon = 'radiology' WHERE menu_id = 20061; -- 影像管理 +UPDATE sys_menu SET icon = 'follow-up' WHERE menu_id = 20071; -- 随访管理 +UPDATE sys_menu SET icon = 'monitor' WHERE menu_id = 20081; -- ESB管理 +UPDATE sys_menu SET icon = 'laboratory' WHERE menu_id = 20091; -- 检查检验 +UPDATE sys_menu SET icon = 'consent' WHERE menu_id = 20101; -- 知情同意管理 +UPDATE sys_menu SET icon = 'order' WHERE menu_id = 20111; -- 医嘱闭环 +UPDATE sys_menu SET icon = 'audit' WHERE menu_id = 20131; -- 审核管理 +UPDATE sys_menu SET icon = 'teamwork' WHERE menu_id = 20141; -- 跨模块协同 +UPDATE sys_menu SET icon = 'sample' WHERE menu_id = 20151; -- 标本管理 +UPDATE sys_menu SET icon = 'standard' WHERE menu_id = 20161; -- FHIR/CDA标准 +UPDATE sys_menu SET icon = 'emr' WHERE menu_id = 20201; -- 电子病历管理 +UPDATE sys_menu SET icon = 'laboratory' WHERE menu_id = 20211; -- 检验增强 + +-- ========== 二级菜单图标更新 ========== +-- 系统管理子菜单 +UPDATE sys_menu SET icon = 'user' WHERE menu_id = 100; -- 用户管理 +UPDATE sys_menu SET icon = 'peoples' WHERE menu_id = 101; -- 角色管理 +UPDATE sys_menu SET icon = 'post' WHERE menu_id = 104; -- 岗位管理 +UPDATE sys_menu SET icon = 'system' WHERE menu_id = 102; -- 菜单管理 +UPDATE sys_menu SET icon = 'tree-table' WHERE menu_id = 103; -- 部门管理 +UPDATE sys_menu SET icon = 'dict' WHERE menu_id = 105; -- 字典管理 +UPDATE sys_menu SET icon = 'edit' WHERE menu_id = 106; -- 参数设置 +UPDATE sys_menu SET icon = 'message' WHERE menu_id = 107; -- 通知公告 + +-- 系统监控子菜单 +UPDATE sys_menu SET icon = 'online' WHERE menu_id = 109; -- 在线用户 +UPDATE sys_menu SET icon = 'job' WHERE menu_id = 110; -- 定时任务 +UPDATE sys_menu SET icon = 'druid' WHERE menu_id = 111; -- 数据监控 +UPDATE sys_menu SET icon = 'server' WHERE menu_id = 112; -- 服务监控 +UPDATE sys_menu SET icon = 'monitor' WHERE menu_id = 113; -- 缓存监控 +UPDATE sys_menu SET icon = 'log' WHERE menu_id = 2104; -- 监控日志 + +-- 系统工具子菜单 +UPDATE sys_menu SET icon = 'form' WHERE menu_id = 115; -- 表单构建 +UPDATE sys_menu SET icon = 'code' WHERE menu_id = 116; -- 代码生成 +UPDATE sys_menu SET icon = 'swagger' WHERE menu_id = 117; -- 系统接口 + +-- 日志管理子菜单 +UPDATE sys_menu SET icon = 'log' WHERE menu_id = 500; -- 操作日志 +UPDATE sys_menu SET icon = 'log' WHERE menu_id = 501; -- 登录日志 + +-- 住院管理子菜单 +UPDATE sys_menu SET icon = 'doctor' WHERE menu_id = 288; -- 住院医生工作站 +UPDATE sys_menu SET icon = 'nurse' WHERE menu_id = 295; -- 住院护士站 +UPDATE sys_menu SET icon = 'billing' WHERE menu_id = 307; -- 住院收费工作站 +UPDATE sys_menu SET icon = 'doctor' WHERE menu_id = 20171; -- 住院医生增强 +UPDATE sys_menu SET icon = 'nurse' WHERE menu_id = 20181; -- 住院护士增强 +UPDATE sys_menu SET icon = 'hospital' WHERE menu_id = 20221; -- 住院辅助 + +-- 药库管理子菜单 +UPDATE sys_menu SET icon = 'drug' WHERE menu_id = 2049; -- 药库订货单 +UPDATE sys_menu SET icon = 'drug' WHERE menu_id = 2050; -- 药库退货单 +UPDATE sys_menu SET icon = 'drug' WHERE menu_id = 2051; -- 药库进货单 +UPDATE sys_menu SET icon = 'drug' WHERE menu_id = 2053; -- 药库出库单 +UPDATE sys_menu SET icon = 'drug' WHERE menu_id = 2054; -- 药库退库单 +UPDATE sys_menu SET icon = 'drug' WHERE menu_id = 2055; -- 药库损益单 +UPDATE sys_menu SET icon = 'drug' WHERE menu_id = 2056; -- 药库盘点单 +UPDATE sys_menu SET icon = 'drug' WHERE menu_id = 2058; -- 库房单据管理 + +-- 门诊管理子菜单 +UPDATE sys_menu SET icon = 'doctor' WHERE menu_id = 269; -- 门诊工作站 +UPDATE sys_menu SET icon = 'laboratory' WHERE menu_id = 277; -- 医技工作站 +UPDATE sys_menu SET icon = 'billing' WHERE menu_id = 282; -- 门诊收费工作站 + +-- 门诊工作站子菜单 +UPDATE sys_menu SET icon = 'drug' WHERE menu_id = 272; -- 门诊退药 +UPDATE sys_menu SET icon = 'registration' WHERE menu_id = 274; -- 门诊退号 + +-- 门诊收费工作站子菜单 +UPDATE sys_menu SET icon = 'billing' WHERE menu_id = 283; -- 门诊收费 +UPDATE sys_menu SET icon = 'billing' WHERE menu_id = 284; -- 门诊退费 +UPDATE sys_menu SET icon = 'billing' WHERE menu_id = 285; -- 门诊划价 +UPDATE sys_menu SET icon = 'billing' WHERE menu_id = 287; -- 收费详情查询 + +-- 药房管理子菜单 +UPDATE sys_menu SET icon = 'drug' WHERE menu_id = 343; -- 门诊发药 +UPDATE sys_menu SET icon = 'drug' WHERE menu_id = 344; -- 门诊退药 + +-- 住院护士站子菜单 +UPDATE sys_menu SET icon = 'nurse' WHERE menu_id = 296; -- 门户 +UPDATE sys_menu SET icon = 'admission' WHERE menu_id = 297; -- 入出转管理 +UPDATE sys_menu SET icon = 'nursing' WHERE menu_id = 298; -- 护理记录 +UPDATE sys_menu SET icon = 'vital-signs' WHERE menu_id = 299; -- 三测单 +UPDATE sys_menu SET icon = 'order' WHERE menu_id = 2061; -- 医嘱执行 +UPDATE sys_menu SET icon = 'order' WHERE menu_id = 2064; -- 医嘱校对 +UPDATE sys_menu SET icon = 'drug' WHERE menu_id = 301; -- 汇总发药申请 +UPDATE sys_menu SET icon = 'billing' WHERE menu_id = 302; -- 住院记账 +UPDATE sys_menu SET icon = 'allergy' WHERE menu_id = 303; -- 皮试管理 +UPDATE sys_menu SET icon = 'order' WHERE menu_id = 276; -- 医嘱查看与打印 +UPDATE sys_menu SET icon = 'discharge' WHERE menu_id = 304; -- 出院管理 +UPDATE sys_menu SET icon = 'drug' WHERE menu_id = 305; -- 退药管理 +UPDATE sys_menu SET icon = 'surgery' WHERE menu_id = 306; -- 手术记录 +UPDATE sys_menu SET icon = 'drug' WHERE menu_id = 2062; -- 住院领药 + +-- 住院收费工作站子菜单 +UPDATE sys_menu SET icon = 'billing' WHERE menu_id = 308; -- 费用管理 +UPDATE sys_menu SET icon = 'billing' WHERE menu_id = 309; -- 住院费用结算 +UPDATE sys_menu SET icon = 'billing' WHERE menu_id = 311; -- 住院收费详情 +UPDATE sys_menu SET icon = 'billing' WHERE menu_id = 312; -- 中途结算 + +-- 财务管理子菜单 +UPDATE sys_menu SET icon = 'finance' WHERE menu_id = 354; -- 日结结算单管理 +UPDATE sys_menu SET icon = 'finance' WHERE menu_id = 356; -- 药房对账 +UPDATE sys_menu SET icon = 'finance' WHERE menu_id = 357; -- 库房审批 +UPDATE sys_menu SET icon = 'insurance' WHERE menu_id = 358; -- 医保结算 +UPDATE sys_menu SET icon = 'insurance' WHERE menu_id = 359; -- 医保对账 + +-- 报表管理子菜单 +UPDATE sys_menu SET icon = 'report' WHERE menu_id = 213; -- 门诊就诊记录 +UPDATE sys_menu SET icon = 'report' WHERE menu_id = 208; -- 项目定价 +UPDATE sys_menu SET icon = 'report' WHERE menu_id = 262; -- 门诊收费报表 +UPDATE sys_menu SET icon = 'report' WHERE menu_id = 363; -- 费用整体查询 + +-- 医保管理子菜单 +UPDATE sys_menu SET icon = 'insurance' WHERE menu_id = 390; -- 省医保 +UPDATE sys_menu SET icon = 'insurance' WHERE menu_id = 391; -- 市医保 +UPDATE sys_menu SET icon = 'insurance' WHERE menu_id = 392; -- 医保对账 +UPDATE sys_menu SET icon = 'insurance' WHERE menu_id = 394; -- 医保结算 + +-- 检查检验子菜单 +UPDATE sys_menu SET icon = 'laboratory' WHERE menu_id = 20092; -- 检查申请 +UPDATE sys_menu SET icon = 'laboratory' WHERE menu_id = 20093; -- 检查仪器 +UPDATE sys_menu SET icon = 'laboratory' WHERE menu_id = 20094; -- LIS配置 +UPDATE sys_menu SET icon = 'laboratory' WHERE menu_id = 20095; -- 检验组套 +UPDATE sys_menu SET icon = 'laboratory' WHERE menu_id = 20096; -- 标本采集 +UPDATE sys_menu SET icon = 'laboratory' WHERE menu_id = 20097; -- 标本类型 +UPDATE sys_menu SET icon = 'laboratory' WHERE menu_id = 20098; -- 观察项目 +UPDATE sys_menu SET icon = 'laboratory' WHERE menu_id = 20099; -- 检验增强 +UPDATE sys_menu SET icon = 'laboratory' WHERE menu_id = 20100; -- 检验ICD10 +UPDATE sys_menu SET icon = 'laboratory' WHERE menu_id = 20102; -- 检验预约 +UPDATE sys_menu SET icon = 'laboratory' WHERE menu_id = 20103; -- 检验路径 +UPDATE sys_menu SET icon = 'laboratory' WHERE menu_id = 20104; -- 参考范围 +UPDATE sys_menu SET icon = 'radiology' WHERE menu_id = 20105; -- 放射报告 +UPDATE sys_menu SET icon = 'laboratory' WHERE menu_id = 20106; -- 检验历史 + +-- 院感管理子菜单 +UPDATE sys_menu SET icon = 'infection' WHERE menu_id = 10002; -- 感染病例监测 +UPDATE sys_menu SET icon = 'infection' WHERE menu_id = 10003; -- 手卫生监测 +UPDATE sys_menu SET icon = 'infection' WHERE menu_id = 10004; -- 环境监测 +UPDATE sys_menu SET icon = 'infection' WHERE menu_id = 10005; -- 抗菌药物使用 +UPDATE sys_menu SET icon = 'infection' WHERE menu_id = 10006; -- 多重耐药菌 +UPDATE sys_menu SET icon = 'infection' WHERE menu_id = 10007; -- 职业暴露 +UPDATE sys_menu SET icon = 'infection' WHERE menu_id = 10008; -- 疫情预警 +UPDATE sys_menu SET icon = 'infection' WHERE menu_id = 10009; -- 目标性监测 + +-- 药品追溯管理子菜单 +UPDATE sys_menu SET icon = 'drug' WHERE menu_id = 10012; -- 追溯码管理 +UPDATE sys_menu SET icon = 'drug' WHERE menu_id = 10013; -- 批次管理 +UPDATE sys_menu SET icon = 'drug' WHERE menu_id = 10014; -- 扫码记录 +UPDATE sys_menu SET icon = 'drug' WHERE menu_id = 10015; -- 追溯预警 + +-- 麻醉管理子菜单 +UPDATE sys_menu SET icon = 'anesthesia' WHERE menu_id = 20002; -- 麻醉记录 +UPDATE sys_menu SET icon = 'anesthesia' WHERE menu_id = 20003; -- 麻醉增强 + +-- 合理用药子菜单 +UPDATE sys_menu SET icon = 'medication' WHERE menu_id = 20012; -- 抗菌药物规则 +UPDATE sys_menu SET icon = 'medication' WHERE menu_id = 20013; -- 药物相互作用 +UPDATE sys_menu SET icon = 'medication' WHERE menu_id = 20014; -- 审核日志 +UPDATE sys_menu SET icon = 'medication' WHERE menu_id = 20015; -- 合理用药统计 + +-- 急诊管理子菜单 +UPDATE sys_menu SET icon = 'emergency' WHERE menu_id = 20022; -- 急诊分诊 +UPDATE sys_menu SET icon = 'emergency' WHERE menu_id = 20023; -- 急诊抢救 +UPDATE sys_menu SET icon = 'emergency' WHERE menu_id = 20024; -- 急诊观察 +UPDATE sys_menu SET icon = 'emergency' WHERE menu_id = 20025; -- 绿色通道 + +-- 护理管理子菜单 +UPDATE sys_menu SET icon = 'nursing' WHERE menu_id = 20032; -- 护理评估 +UPDATE sys_menu SET icon = 'nursing' WHERE menu_id = 20033; -- 护理增强 +UPDATE sys_menu SET icon = 'nursing' WHERE menu_id = 20034; -- 护理执行 +UPDATE sys_menu SET icon = 'nursing' WHERE menu_id = 20035; -- 护理质量 +UPDATE sys_menu SET icon = 'vital-signs' WHERE menu_id = 20036; -- 生命体征图表 + +-- 病理管理子菜单 +UPDATE sys_menu SET icon = 'pathology' WHERE menu_id = 20042; -- 病理医嘱 +UPDATE sys_menu SET icon = 'pathology' WHERE menu_id = 20043; -- 病理报告 +UPDATE sys_menu SET icon = 'pathology' WHERE menu_id = 20044; -- 病理标本 + +-- 病案管理子菜单 +UPDATE sys_menu SET icon = 'medical-record' WHERE menu_id = 20052; -- 病案管理 +UPDATE sys_menu SET icon = 'medical-record' WHERE menu_id = 20053; -- 病案首页管理 +UPDATE sys_menu SET icon = 'report' WHERE menu_id = 20054; -- DRG分析 +UPDATE sys_menu SET icon = 'report' WHERE menu_id = 20055; -- 病案统计 + +-- 影像管理子菜单 +UPDATE sys_menu SET icon = 'radiology' WHERE menu_id = 20062; -- 影像增强 +UPDATE sys_menu SET icon = 'radiology' WHERE menu_id = 20063; -- 影像对比 +UPDATE sys_menu SET icon = 'radiology' WHERE menu_id = 20064; -- 3D重建 + +-- 随访管理子菜单 +UPDATE sys_menu SET icon = 'follow-up' WHERE menu_id = 20072; -- 随访计划 +UPDATE sys_menu SET icon = 'follow-up' WHERE menu_id = 20073; -- 随访记录 +UPDATE sys_menu SET icon = 'follow-up' WHERE menu_id = 20074; -- 随访任务 +UPDATE sys_menu SET icon = 'follow-up' WHERE menu_id = 20075; -- 随访调查 + +-- 电子病历管理子菜单 +UPDATE sys_menu SET icon = 'emr' WHERE menu_id = 20202; -- 病案归档 +UPDATE sys_menu SET icon = 'emr' WHERE menu_id = 20203; -- 修订历史 +UPDATE sys_menu SET icon = 'emr' WHERE menu_id = 20204; -- 病历时效 +UPDATE sys_menu SET icon = 'emr' WHERE menu_id = 20205; -- 病历检索 +UPDATE sys_menu SET icon = 'emr' WHERE menu_id = 20206; -- 进程记录 +UPDATE sys_menu SET icon = 'emr' WHERE menu_id = 20207; -- 知识库 + +-- 审核管理子菜单 +UPDATE sys_menu SET icon = 'audit' WHERE menu_id = 20132; -- 审核统计 +UPDATE sys_menu SET icon = 'audit' WHERE menu_id = 20133; -- 点评计划 +UPDATE sys_menu SET icon = 'audit' WHERE menu_id = 20134; -- 点评工作台 +UPDATE sys_menu SET icon = 'audit' WHERE menu_id = 20135; -- 点评记录 +UPDATE sys_menu SET icon = 'audit' WHERE menu_id = 20136; -- 医生排名 + +-- 跨模块协同子菜单 +UPDATE sys_menu SET icon = 'teamwork' WHERE menu_id = 20142; -- 会诊反馈 +UPDATE sys_menu SET icon = 'teamwork' WHERE menu_id = 20143; -- 会诊超时 +UPDATE sys_menu SET icon = 'teamwork' WHERE menu_id = 20144; -- DRG绩效 +UPDATE sys_menu SET icon = 'teamwork' WHERE menu_id = 20145; -- 药品效期 +UPDATE sys_menu SET icon = 'teamwork' WHERE menu_id = 20146; -- 增强救护 +UPDATE sys_menu SET icon = 'teamwork' WHERE menu_id = 20147; -- 增强抗菌 +UPDATE sys_menu SET icon = 'teamwork' WHERE menu_id = 20148; -- 增强知情 +UPDATE sys_menu SET icon = 'teamwork' WHERE menu_id = 20149; -- DRG预警 +UPDATE sys_menu SET icon = 'teamwork' WHERE menu_id = 20150; -- 增强护理 +UPDATE sys_menu SET icon = 'teamwork' WHERE menu_id = 20152; -- 交接统计 +UPDATE sys_menu SET icon = 'teamwork' WHERE menu_id = 20153; -- 检验预警 +UPDATE sys_menu SET icon = 'teamwork' WHERE menu_id = 20154; -- 病案质量 +UPDATE sys_menu SET icon = 'teamwork' WHERE menu_id = 20155; -- 护士执行 +UPDATE sys_menu SET icon = 'teamwork' WHERE menu_id = 20156; -- 报告反馈 +UPDATE sys_menu SET icon = 'teamwork' WHERE menu_id = 20157; -- 审核统计 +UPDATE sys_menu SET icon = 'teamwork' WHERE menu_id = 20158; -- 库存拦截 +UPDATE sys_menu SET icon = 'teamwork' WHERE menu_id = 20159; -- 手术闭环 +UPDATE sys_menu SET icon = 'teamwork' WHERE menu_id = 20160; -- 手术关联 +UPDATE sys_menu SET icon = 'teamwork' WHERE menu_id = 20162; -- 患者转运 + +-- 门诊医生工作站子菜单 +UPDATE sys_menu SET icon = 'doctor' WHERE menu_id = 2114; -- 医生常用语 +UPDATE sys_menu SET icon = 'doctor' WHERE menu_id = 2143; -- 今日门诊 + +-- 预约管理子菜单 +UPDATE sys_menu SET icon = 'schedule' WHERE menu_id = 2105; -- 医生排班管理 +UPDATE sys_menu SET icon = 'appointment' WHERE menu_id = 2097; -- 门诊出诊医生诊室设置 +UPDATE sys_menu SET icon = 'appointment' WHERE menu_id = 2112; -- 科室预约工作时间维护 +UPDATE sys_menu SET icon = 'appointment' WHERE menu_id = 2113; -- 门诊预约挂号 + +-- 手术管理子菜单 +UPDATE sys_menu SET icon = 'surgery' WHERE menu_id = 2120; -- 手术管理 +UPDATE sys_menu SET icon = 'surgery' WHERE menu_id = 2144; -- 手术室管理 + +-- 住院医生增强子菜单 +UPDATE sys_menu SET icon = 'doctor' WHERE menu_id = 20172; -- 住院病历 + +-- 住院护士增强子菜单 +UPDATE sys_menu SET icon = 'nurse' WHERE menu_id = 20182; -- 护士工作站 +UPDATE sys_menu SET icon = 'nurse' WHERE menu_id = 20183; -- 退药管理 +UPDATE sys_menu SET icon = 'nurse' WHERE menu_id = 20184; -- 滚费管理 +UPDATE sys_menu SET icon = 'vital-signs' WHERE menu_id = 20185; -- TPR表 + +-- 住院辅助子菜单 +UPDATE sys_menu SET icon = 'billing' WHERE menu_id = 20222; -- 住院结算 +UPDATE sys_menu SET icon = 'billing' WHERE menu_id = 20223; -- 费用类型转换 +UPDATE sys_menu SET icon = 'diagnosis' WHERE menu_id = 20224; -- 住院诊断 +UPDATE sys_menu SET icon = 'emr' WHERE menu_id = 20225; -- 住院病历 +UPDATE sys_menu SET icon = 'order' WHERE menu_id = 20226; -- 医嘱管理 +UPDATE sys_menu SET icon = 'surgery' WHERE menu_id = 20228; -- 住院手术 + +-- 基础数据子菜单 +UPDATE sys_menu SET icon = 'patient' WHERE menu_id = 205; -- 患者管理 +UPDATE sys_menu SET icon = 'patient' WHERE menu_id = 206; -- 患者档案管理 +UPDATE sys_menu SET icon = 'department' WHERE menu_id = 212; -- 科室管理 +UPDATE sys_menu SET icon = 'supplier' WHERE menu_id = 214; -- 供应商管理 +UPDATE sys_menu SET icon = 'billing' WHERE menu_id = 216; -- 挂号收费项目 +UPDATE sys_menu SET icon = 'pharmacy' WHERE menu_id = 238; -- 库房/药房管理 +UPDATE sys_menu SET icon = 'appointment' WHERE menu_id = 245; -- 门诊号源管理 +UPDATE sys_menu SET icon = 'user' WHERE menu_id = 246; -- 客户数据 +UPDATE sys_menu SET icon = 'bed-management' WHERE menu_id = 247; -- 病区/床位管理 + +-- 目录管理子菜单 +UPDATE sys_menu SET icon = 'drug' WHERE menu_id = 201; -- 药品目录 +UPDATE sys_menu SET icon = 'laboratory' WHERE menu_id = 202; -- 诊疗目录 +UPDATE sys_menu SET icon = 'inventory' WHERE menu_id = 203; -- 耗材目录 +UPDATE sys_menu SET icon = 'diagnosis' WHERE menu_id = 204; -- 诊断目录 + +-- 基础数据子菜单 - 新增 +UPDATE sys_menu SET icon = 'bed-management' WHERE menu_id = 20257; -- 床体管理 +UPDATE sys_menu SET icon = 'body' WHERE menu_id = 20258; -- 体表结构 +UPDATE sys_menu SET icon = 'diagnosis' WHERE menu_id = 20259; -- 常用诊断 +UPDATE sys_menu SET icon = 'billing' WHERE menu_id = 20260; -- 费用管理 +UPDATE sys_menu SET icon = 'location' WHERE menu_id = 20261; -- 位置管理 +UPDATE sys_menu SET icon = 'order' WHERE menu_id = 20262; -- 医嘱组合 +UPDATE sys_menu SET icon = 'medication' WHERE menu_id = 20263; -- 中医处方 + +-- 为剩余没有图标的菜单设置默认图标 +UPDATE sys_menu SET icon = 'list' WHERE menu_type = 'C' AND (icon IS NULL OR icon = ''); +UPDATE sys_menu SET icon = 'list' WHERE menu_type = 'M' AND (icon IS NULL OR icon = ''); diff --git a/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V78__tcm_diagnosis_table.sql b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V78__tcm_diagnosis_table.sql new file mode 100644 index 000000000..8fcc59dc9 --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V78__tcm_diagnosis_table.sql @@ -0,0 +1,22 @@ +-- TCM diagnosis table +CREATE TABLE IF NOT EXISTS healthlink_his.tcm_diagnosis ( + id BIGSERIAL PRIMARY KEY, + encounter_id BIGINT, + patient_id BIGINT, + diagnosis_type VARCHAR(50), + diagnosis_name VARCHAR(200), + diagnosis_code VARCHAR(50), + syndrome_type VARCHAR(50), + syndrome_name VARCHAR(200), + syndrome_code VARCHAR(50), + remark TEXT, + enabled CHAR(1) DEFAULT '1', + tenant_id INTEGER DEFAULT 0, + delete_flag CHAR(1) DEFAULT '0', + create_by VARCHAR(64), + create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + update_by VARCHAR(64), + update_time TIMESTAMP +); + +CREATE INDEX IF NOT EXISTS idx_tcm_diagnosis_encounter ON healthlink_his.tcm_diagnosis(encounter_id); diff --git a/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V79__epidemic_report_enhance.sql b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V79__epidemic_report_enhance.sql new file mode 100644 index 000000000..0901c3def --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V79__epidemic_report_enhance.sql @@ -0,0 +1,6 @@ +-- Add auto-screen fields to epidemic_report +ALTER TABLE healthlink_his.epidemic_report ADD COLUMN IF NOT EXISTS screen_result TEXT; +ALTER TABLE healthlink_his.epidemic_report ADD COLUMN IF NOT EXISTS screen_time TIMESTAMP; +ALTER TABLE healthlink_his.epidemic_report ADD COLUMN IF NOT EXISTS screen_level VARCHAR(20); +ALTER TABLE healthlink_his.epidemic_report ADD COLUMN IF NOT EXISTS address VARCHAR(500); +ALTER TABLE healthlink_his.epidemic_report ADD COLUMN IF NOT EXISTS contact_phone VARCHAR(50); diff --git a/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V75__mr_stats_detail.sql b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V80__mr_stats_detail.sql similarity index 100% rename from healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V75__mr_stats_detail.sql rename to healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V80__mr_stats_detail.sql diff --git a/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V81__fix_menu_permissions.sql b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V81__fix_menu_permissions.sql new file mode 100644 index 000000000..6d0ac524d --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V81__fix_menu_permissions.sql @@ -0,0 +1,11 @@ +UPDATE sys_menu SET perms = 'mrhomepage:mrhomepage:list' WHERE menu_name = '病案统计明细' AND perms = 'infection:mrhomepage:list'; +UPDATE sys_menu SET perms = 'reportmanage:report:list' WHERE menu_name = '报表维度' AND perms = 'infection:report:list'; + +INSERT INTO sys_role_menu (role_id, menu_id) VALUES +(1, (SELECT menu_id FROM sys_menu WHERE menu_name = 'CDSS告警' LIMIT 1)), +(1, (SELECT menu_id FROM sys_menu WHERE menu_name = 'CDSS规则' LIMIT 1)), +(1, (SELECT menu_id FROM sys_menu WHERE menu_name = '区域共享' LIMIT 1)), +(1, (SELECT menu_id FROM sys_menu WHERE menu_name = 'EMR数据仓库' LIMIT 1)), +(1, (SELECT menu_id FROM sys_menu WHERE menu_name = '病案统计明细' LIMIT 1)), +(1, (SELECT menu_id FROM sys_menu WHERE menu_name = '报表维度' LIMIT 1)) +ON CONFLICT DO NOTHING; diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/infection/domain/CdssAlert.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/infection/domain/CdssAlert.java deleted file mode 100644 index 58c23f128..000000000 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/infection/domain/CdssAlert.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.healthlink.his.infection.domain; - -import com.baomidou.mybatisplus.annotation.*; -import com.core.common.core.domain.HisBaseEntity; -import com.fasterxml.jackson.annotation.JsonFormat; -import lombok.Data; -import lombok.EqualsAndHashCode; -import java.util.Date; - -@Data -@EqualsAndHashCode(callSuper = true) -@TableName("cdss_alert") -public class CdssAlert extends HisBaseEntity { - @TableId(value = "id", type = IdType.ASSIGN_ID) - private Long id; - @TableField("encounter_id") - private Long encounterId; - @TableField("patient_id") - private Long patientId; - @TableField("rule_id") - private Long ruleId; - @TableField("alert_type") - private String alertType; - @TableField("alert_message") - private String alertMessage; - @TableField("severity") - private String severity; - @TableField("acknowledged") - private Boolean acknowledged; - @TableField("acknowledged_by") - private Long acknowledgedBy; - @TableField("acknowledged_time") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date acknowledgedTime; -} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/infection/domain/CdssRule.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/infection/domain/CdssRule.java deleted file mode 100644 index 0774ab288..000000000 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/infection/domain/CdssRule.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.healthlink.his.infection.domain; - -import com.baomidou.mybatisplus.annotation.*; -import com.core.common.core.domain.HisBaseEntity; -import com.fasterxml.jackson.annotation.JsonFormat; -import lombok.Data; -import lombok.EqualsAndHashCode; -import java.util.Date; - -@Data -@EqualsAndHashCode(callSuper = true) -@TableName("cdss_rule") -public class CdssRule extends HisBaseEntity { - @TableId(value = "id", type = IdType.ASSIGN_ID) - private Long id; - @TableField("rule_code") - private String ruleCode; - @TableField("rule_name") - private String ruleName; - @TableField("rule_type") - private String ruleType; - @TableField("condition_expr") - private String conditionExpr; - @TableField("suggestion") - private String suggestion; - @TableField("severity") - private String severity; - @TableField("enabled") - private Boolean enabled; -} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/infection/mapper/CdssAlertMapper.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/infection/mapper/CdssAlertMapper.java deleted file mode 100644 index 46e956005..000000000 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/infection/mapper/CdssAlertMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.healthlink.his.infection.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.healthlink.his.infection.domain.CdssAlert; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface CdssAlertMapper extends BaseMapper { -} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/infection/mapper/CdssRuleMapper.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/infection/mapper/CdssRuleMapper.java deleted file mode 100644 index 44e5f66e3..000000000 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/infection/mapper/CdssRuleMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.healthlink.his.infection.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.healthlink.his.infection.domain.CdssRule; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface CdssRuleMapper extends BaseMapper { -} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/infection/service/ICdssAlertService.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/infection/service/ICdssAlertService.java deleted file mode 100644 index 2bdfdee86..000000000 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/infection/service/ICdssAlertService.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.healthlink.his.infection.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.healthlink.his.infection.domain.CdssAlert; - -public interface ICdssAlertService extends IService { -} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/infection/service/ICdssRuleService.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/infection/service/ICdssRuleService.java deleted file mode 100644 index 4c8b8f104..000000000 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/infection/service/ICdssRuleService.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.healthlink.his.infection.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.healthlink.his.infection.domain.CdssRule; - -public interface ICdssRuleService extends IService { -} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/infection/service/impl/CdssAlertServiceImpl.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/infection/service/impl/CdssAlertServiceImpl.java deleted file mode 100644 index 75c38e3ff..000000000 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/infection/service/impl/CdssAlertServiceImpl.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.healthlink.his.infection.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.healthlink.his.infection.domain.CdssAlert; -import com.healthlink.his.infection.mapper.CdssAlertMapper; -import com.healthlink.his.infection.service.ICdssAlertService; -import org.springframework.stereotype.Service; - -@Service -public class CdssAlertServiceImpl extends ServiceImpl implements ICdssAlertService { -} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/infection/service/impl/CdssRuleServiceImpl.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/infection/service/impl/CdssRuleServiceImpl.java deleted file mode 100644 index ca45560aa..000000000 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/infection/service/impl/CdssRuleServiceImpl.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.healthlink.his.infection.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.healthlink.his.infection.domain.CdssRule; -import com.healthlink.his.infection.mapper.CdssRuleMapper; -import com.healthlink.his.infection.service.ICdssRuleService; -import org.springframework.stereotype.Service; - -@Service -public class CdssRuleServiceImpl extends ServiceImpl implements ICdssRuleService { -} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/quality/domain/EmrQualityScore.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/quality/domain/QualityScore.java similarity index 93% rename from healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/quality/domain/EmrQualityScore.java rename to healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/quality/domain/QualityScore.java index 895d0182a..83b16ecc1 100644 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/quality/domain/EmrQualityScore.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/quality/domain/QualityScore.java @@ -6,9 +6,9 @@ import com.core.common.core.domain.HisBaseEntity; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.math.BigDecimal; @Data @TableName("emr_quality_score") @Accessors(chain = true) @EqualsAndHashCode(callSuper = false) -public class EmrQualityScore extends HisBaseEntity { +public class QualityScore extends HisBaseEntity { @TableId(type = IdType.ASSIGN_ID) private Long id; private Long encounterId; private Long patientId; private String emrType; private BigDecimal score; private BigDecimal maxScore; private String grade; private Long checkerId; private String checkerName; private String checkType; private String remark; private String delFlag; -} +} \ No newline at end of file diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/quality/mapper/EmrQualityScoreMapper.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/quality/mapper/QualityScoreMapper.java similarity index 50% rename from healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/quality/mapper/EmrQualityScoreMapper.java rename to healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/quality/mapper/QualityScoreMapper.java index 46a337123..27808bcd6 100644 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/quality/mapper/EmrQualityScoreMapper.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/quality/mapper/QualityScoreMapper.java @@ -1,5 +1,5 @@ package com.healthlink.his.quality.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.healthlink.his.quality.domain.EmrQualityScore; +import com.healthlink.his.quality.domain.QualityScore; import org.apache.ibatis.annotations.Mapper; -@Mapper public interface EmrQualityScoreMapper extends BaseMapper {} +@Mapper public interface QualityScoreMapper extends BaseMapper {} diff --git a/healthlink-his-ui/src/api/cdss/cdssAlert.js b/healthlink-his-ui/src/api/cdss/cdssAlert.js index 184f4cae8..2b9b6663f 100644 --- a/healthlink-his-ui/src/api/cdss/cdssAlert.js +++ b/healthlink-his-ui/src/api/cdss/cdssAlert.js @@ -2,7 +2,7 @@ import request from '@/utils/request' export function evaluateRules(params) { return request({ - url: '/cdss/evaluate', + url: '/infection/cdss/evaluate', method: 'post', params: params }) @@ -10,7 +10,7 @@ export function evaluateRules(params) { export function getAlerts(encounterId, query) { return request({ - url: '/cdss/alerts/' + encounterId, + url: '/infection/cdss/alerts/' + encounterId, method: 'get', params: query }) @@ -18,7 +18,7 @@ export function getAlerts(encounterId, query) { export function acknowledgeAlert(id, data) { return request({ - url: '/cdss/alerts/' + id + '/acknowledge', + url: '/infection/cdss/alerts/' + id + '/acknowledge', method: 'post', data: data }) diff --git a/healthlink-his-ui/src/api/cdss/cdssRule.js b/healthlink-his-ui/src/api/cdss/cdssRule.js index 46fe51d5e..a04af6619 100644 --- a/healthlink-his-ui/src/api/cdss/cdssRule.js +++ b/healthlink-his-ui/src/api/cdss/cdssRule.js @@ -2,7 +2,7 @@ import request from '@/utils/request' export function getCdssRuleList(query) { return request({ - url: '/cdss/rules', + url: '/infection/cdss/rules', method: 'get', params: query }) @@ -10,7 +10,7 @@ export function getCdssRuleList(query) { export function addCdssRule(data) { return request({ - url: '/cdss/rules', + url: '/infection/cdss/rules', method: 'post', data: data }) @@ -18,7 +18,7 @@ export function addCdssRule(data) { export function updateCdssRule(data) { return request({ - url: '/cdss/rules', + url: '/infection/cdss/rules', method: 'put', data: data }) @@ -26,7 +26,7 @@ export function updateCdssRule(data) { export function deleteCdssRule(id) { return request({ - url: '/cdss/rules/' + id, + url: '/infection/cdss/rules/' + id, method: 'delete' }) } diff --git a/healthlink-his-ui/src/views/cdss/cdssRules/index.vue b/healthlink-his-ui/src/views/cdss/cdssRules/index.vue new file mode 100644 index 000000000..e4eee98ed --- /dev/null +++ b/healthlink-his-ui/src/views/cdss/cdssRules/index.vue @@ -0,0 +1,105 @@ + + +