Merge remote-tracking branch 'origin/develop' into zhaoyun
This commit is contained in:
@@ -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<String, Object> evaluateRules(Long encounterId);
|
|
||||||
List<CdssAlert> getAlerts(Long encounterId);
|
|
||||||
boolean acknowledgeAlert(Long alertId);
|
|
||||||
List<CdssRule> getRules(Map<String, Object> params);
|
|
||||||
}
|
|
||||||
@@ -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<String, Object> evaluateRules(Long encounterId) {
|
|
||||||
log.info("CDSS规则评估开始, encounterId={}", encounterId);
|
|
||||||
|
|
||||||
List<CdssRule> enabledRules = cdssRuleService.list(
|
|
||||||
new LambdaQueryWrapper<CdssRule>()
|
|
||||||
.eq(CdssRule::getEnabled, true)
|
|
||||||
);
|
|
||||||
|
|
||||||
List<CdssAlert> 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<String, Object> 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<CdssAlert> getAlerts(Long encounterId) {
|
|
||||||
LambdaQueryWrapper<CdssAlert> 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<CdssRule> getRules(Map<String, Object> params) {
|
|
||||||
LambdaQueryWrapper<CdssRule> 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<String, Object> params, String key) {
|
|
||||||
Object v = params.get(key);
|
|
||||||
return v != null ? v.toString() : 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<String, Object> 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));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,19 +1,33 @@
|
|||||||
package com.healthlink.his.web.mrhomepage.controller;
|
package com.healthlink.his.web.mrhomepage.controller;
|
||||||
|
|
||||||
import com.core.common.core.domain.R;
|
import com.core.common.core.domain.R;
|
||||||
import com.healthlink.his.mrhomepage.domain.MrDrgGrouping;
|
import com.healthlink.his.mrhomepage.domain.MrDrgGrouping;
|
||||||
import com.healthlink.his.mrhomepage.service.IMrDrgGroupingService;
|
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 org.springframework.web.bind.annotation.*;
|
||||||
import java.math.BigDecimal;import java.util.*;
|
|
||||||
@RestController @RequestMapping("/drg-analysis") @Slf4j @AllArgsConstructor
|
import java.math.BigDecimal;
|
||||||
public class DrgAnalysisController {
|
import java.util.*;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/mr-homepage/drg")
|
||||||
|
@Slf4j
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class MrHomepageDrgController {
|
||||||
|
|
||||||
private final IMrDrgGroupingService drgService;
|
private final IMrDrgGroupingService drgService;
|
||||||
|
|
||||||
@GetMapping("/cost-efficiency")
|
@GetMapping("/cost-efficiency")
|
||||||
public R<?> getCostEfficiency() {
|
public R<?> getCostEfficiency() {
|
||||||
List<MrDrgGrouping> all = drgService.list();
|
List<MrDrgGrouping> all = drgService.list();
|
||||||
BigDecimal totalCost = BigDecimal.ZERO; int count = 0;
|
BigDecimal totalCost = BigDecimal.ZERO;
|
||||||
|
int count = 0;
|
||||||
for (MrDrgGrouping g : all) {
|
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<String, Object> result = new HashMap<>();
|
Map<String, Object> result = new HashMap<>();
|
||||||
result.put("avgCost", count > 0 ? totalCost.divide(BigDecimal.valueOf(count), 2, BigDecimal.ROUND_HALF_UP) : BigDecimal.ZERO);
|
result.put("avgCost", count > 0 ? totalCost.divide(BigDecimal.valueOf(count), 2, BigDecimal.ROUND_HALF_UP) : BigDecimal.ZERO);
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.healthlink.his.web.quality.appservice.impl;
|
package com.healthlink.his.web.quality.appservice.impl;
|
||||||
import com.healthlink.his.quality.domain.EmrDefect;
|
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.quality.mapper.*;
|
||||||
import com.healthlink.his.web.quality.appservice.IEmrQualityAppService;
|
import com.healthlink.his.web.quality.appservice.IEmrQualityAppService;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
@@ -10,7 +10,7 @@ import java.util.*;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
@Service
|
@Service
|
||||||
public class EmrQualityAppServiceImpl implements IEmrQualityAppService {
|
public class EmrQualityAppServiceImpl implements IEmrQualityAppService {
|
||||||
@Autowired private EmrQualityScoreMapper scoreMapper;
|
@Autowired private QualityScoreMapper scoreMapper;
|
||||||
@Autowired private EmrDefectMapper defectMapper;
|
@Autowired private EmrDefectMapper defectMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -43,9 +43,9 @@ public class EmrQualityAppServiceImpl implements IEmrQualityAppService {
|
|||||||
@Override
|
@Override
|
||||||
public List<Map<String, Object>> getQualityScores(Long encounterId) {
|
public List<Map<String, Object>> getQualityScores(Long encounterId) {
|
||||||
List<Map<String, Object>> scores = new ArrayList<>();
|
List<Map<String, Object>> scores = new ArrayList<>();
|
||||||
List<EmrQualityScore> list = scoreMapper.selectList(new LambdaQueryWrapper<EmrQualityScore>()
|
List<QualityScore> list = scoreMapper.selectList(new LambdaQueryWrapper<QualityScore>()
|
||||||
.eq(EmrQualityScore::getEncounterId, encounterId).orderByDesc(EmrQualityScore::getCreateTime));
|
.eq(QualityScore::getEncounterId, encounterId).orderByDesc(QualityScore::getCreateTime));
|
||||||
for (EmrQualityScore s : list) {
|
for (QualityScore s : list) {
|
||||||
Map<String, Object> m = new HashMap<>();
|
Map<String, Object> m = new HashMap<>();
|
||||||
m.put("id", s.getId()); m.put("emrType", s.getEmrType()); m.put("score", s.getScore());
|
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());
|
m.put("grade", s.getGrade()); m.put("checkType", s.getCheckType()); m.put("checkerName", s.getCheckerName());
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
package com.healthlink.his.web.quality.appservice.impl;
|
package com.healthlink.his.web.quality.appservice.impl;
|
||||||
|
|
||||||
import com.healthlink.his.quality.domain.EmrDefect;
|
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.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.healthlink.his.web.quality.appservice.ITerminalQualityAppService;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -16,7 +16,7 @@ import java.util.*;
|
|||||||
public class TerminalQualityAppServiceImpl implements ITerminalQualityAppService {
|
public class TerminalQualityAppServiceImpl implements ITerminalQualityAppService {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private EmrQualityScoreMapper scoreMapper;
|
private QualityScoreMapper scoreMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private EmrDefectMapper defectMapper;
|
private EmrDefectMapper defectMapper;
|
||||||
|
|
||||||
@@ -44,7 +44,7 @@ public class TerminalQualityAppServiceImpl implements ITerminalQualityAppService
|
|||||||
String grade = calculateGrade(score);
|
String grade = calculateGrade(score);
|
||||||
|
|
||||||
// 保存评分记录
|
// 保存评分记录
|
||||||
EmrQualityScore qualityScore = new EmrQualityScore();
|
QualityScore qualityScore = new QualityScore();
|
||||||
qualityScore.setEncounterId(encounterId);
|
qualityScore.setEncounterId(encounterId);
|
||||||
qualityScore.setScore(score);
|
qualityScore.setScore(score);
|
||||||
qualityScore.setMaxScore(new BigDecimal(100));
|
qualityScore.setMaxScore(new BigDecimal(100));
|
||||||
@@ -69,15 +69,15 @@ public class TerminalQualityAppServiceImpl implements ITerminalQualityAppService
|
|||||||
result.put("encounterId", encounterId);
|
result.put("encounterId", encounterId);
|
||||||
|
|
||||||
// 获取评分记录
|
// 获取评分记录
|
||||||
List<EmrQualityScore> scores = scoreMapper.selectList(
|
List<QualityScore> scores = scoreMapper.selectList(
|
||||||
new LambdaQueryWrapper<EmrQualityScore>()
|
new LambdaQueryWrapper<QualityScore>()
|
||||||
.eq(EmrQualityScore::getEncounterId, encounterId)
|
.eq(QualityScore::getEncounterId, encounterId)
|
||||||
.eq(EmrQualityScore::getCheckType, "TERMINAL")
|
.eq(QualityScore::getCheckType, "TERMINAL")
|
||||||
.orderByDesc(EmrQualityScore::getCreateTime)
|
.orderByDesc(QualityScore::getCreateTime)
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!scores.isEmpty()) {
|
if (!scores.isEmpty()) {
|
||||||
EmrQualityScore latestScore = scores.get(0);
|
QualityScore latestScore = scores.get(0);
|
||||||
result.put("score", latestScore.getScore());
|
result.put("score", latestScore.getScore());
|
||||||
result.put("grade", latestScore.getGrade());
|
result.put("grade", latestScore.getGrade());
|
||||||
result.put("checkTime", latestScore.getCreateTime());
|
result.put("checkTime", latestScore.getCreateTime());
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ import java.util.*;
|
|||||||
@RequestMapping("/business-analytics")
|
@RequestMapping("/business-analytics")
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class BusinessAnalyticsController {
|
public class QualityBusinessAnalyticsController {
|
||||||
|
|
||||||
private final IBusinessAnalyticsService analyticsService;
|
private final IBusinessAnalyticsService analyticsService;
|
||||||
|
|
||||||
@@ -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)
|
|
||||||
);
|
|
||||||
@@ -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);
|
||||||
@@ -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 = '');
|
||||||
@@ -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);
|
||||||
@@ -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);
|
||||||
@@ -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;
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
@@ -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<CdssAlert> {
|
|
||||||
}
|
|
||||||
@@ -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<CdssRule> {
|
|
||||||
}
|
|
||||||
@@ -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<CdssAlert> {
|
|
||||||
}
|
|
||||||
@@ -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<CdssRule> {
|
|
||||||
}
|
|
||||||
@@ -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<CdssAlertMapper, CdssAlert> implements ICdssAlertService {
|
|
||||||
}
|
|
||||||
@@ -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<CdssRuleMapper, CdssRule> implements ICdssRuleService {
|
|
||||||
}
|
|
||||||
@@ -6,9 +6,9 @@ import com.core.common.core.domain.HisBaseEntity;
|
|||||||
import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors;
|
import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
@Data @TableName("emr_quality_score") @Accessors(chain = true) @EqualsAndHashCode(callSuper = false)
|
@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;
|
@TableId(type = IdType.ASSIGN_ID) private Long id;
|
||||||
private Long encounterId; private Long patientId; private String emrType;
|
private Long encounterId; private Long patientId; private String emrType;
|
||||||
private BigDecimal score; private BigDecimal maxScore; private String grade;
|
private BigDecimal score; private BigDecimal maxScore; private String grade;
|
||||||
private Long checkerId; private String checkerName; private String checkType; private String remark; private String delFlag;
|
private Long checkerId; private String checkerName; private String checkType; private String remark; private String delFlag;
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
package com.healthlink.his.quality.mapper;
|
package com.healthlink.his.quality.mapper;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
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;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
@Mapper public interface EmrQualityScoreMapper extends BaseMapper<EmrQualityScore> {}
|
@Mapper public interface QualityScoreMapper extends BaseMapper<QualityScore> {}
|
||||||
@@ -2,7 +2,7 @@ import request from '@/utils/request'
|
|||||||
|
|
||||||
export function evaluateRules(params) {
|
export function evaluateRules(params) {
|
||||||
return request({
|
return request({
|
||||||
url: '/cdss/evaluate',
|
url: '/infection/cdss/evaluate',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
params: params
|
params: params
|
||||||
})
|
})
|
||||||
@@ -10,7 +10,7 @@ export function evaluateRules(params) {
|
|||||||
|
|
||||||
export function getAlerts(encounterId, query) {
|
export function getAlerts(encounterId, query) {
|
||||||
return request({
|
return request({
|
||||||
url: '/cdss/alerts/' + encounterId,
|
url: '/infection/cdss/alerts/' + encounterId,
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params: query
|
params: query
|
||||||
})
|
})
|
||||||
@@ -18,7 +18,7 @@ export function getAlerts(encounterId, query) {
|
|||||||
|
|
||||||
export function acknowledgeAlert(id, data) {
|
export function acknowledgeAlert(id, data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/cdss/alerts/' + id + '/acknowledge',
|
url: '/infection/cdss/alerts/' + id + '/acknowledge',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: data
|
data: data
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import request from '@/utils/request'
|
|||||||
|
|
||||||
export function getCdssRuleList(query) {
|
export function getCdssRuleList(query) {
|
||||||
return request({
|
return request({
|
||||||
url: '/cdss/rules',
|
url: '/infection/cdss/rules',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params: query
|
params: query
|
||||||
})
|
})
|
||||||
@@ -10,7 +10,7 @@ export function getCdssRuleList(query) {
|
|||||||
|
|
||||||
export function addCdssRule(data) {
|
export function addCdssRule(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/cdss/rules',
|
url: '/infection/cdss/rules',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: data
|
data: data
|
||||||
})
|
})
|
||||||
@@ -18,7 +18,7 @@ export function addCdssRule(data) {
|
|||||||
|
|
||||||
export function updateCdssRule(data) {
|
export function updateCdssRule(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/cdss/rules',
|
url: '/infection/cdss/rules',
|
||||||
method: 'put',
|
method: 'put',
|
||||||
data: data
|
data: data
|
||||||
})
|
})
|
||||||
@@ -26,7 +26,7 @@ export function updateCdssRule(data) {
|
|||||||
|
|
||||||
export function deleteCdssRule(id) {
|
export function deleteCdssRule(id) {
|
||||||
return request({
|
return request({
|
||||||
url: '/cdss/rules/' + id,
|
url: '/infection/cdss/rules/' + id,
|
||||||
method: 'delete'
|
method: 'delete'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
105
healthlink-his-ui/src/views/cdss/cdssRules/index.vue
Normal file
105
healthlink-his-ui/src/views/cdss/cdssRules/index.vue
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<el-form :model="queryParams" ref="queryFormRef" :inline="true" v-show="showSearch" label-width="100px">
|
||||||
|
<el-form-item label="规则类型" prop="ruleType">
|
||||||
|
<el-select v-model="queryParams.ruleType" placeholder="请选择" clearable style="width: 140px">
|
||||||
|
<el-option label="药物审查" value="DRUG_REVIEW" />
|
||||||
|
<el-option label="诊断提示" value="DIAGNOSIS" />
|
||||||
|
<el-option label="检验预警" value="LAB_ALERT" />
|
||||||
|
<el-option label="用药禁忌" value="CONTRAINDICATION" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="严重程度" prop="severity">
|
||||||
|
<el-select v-model="queryParams.severity" placeholder="请选择" clearable style="width: 140px">
|
||||||
|
<el-option label="CRITICAL" value="CRITICAL" />
|
||||||
|
<el-option label="HIGH" value="HIGH" />
|
||||||
|
<el-option label="MEDIUM" value="MEDIUM" />
|
||||||
|
<el-option label="LOW" value="LOW" />
|
||||||
|
<el-option label="INFO" value="INFO" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="规则名称" prop="keyword">
|
||||||
|
<el-input v-model="queryParams.keyword" placeholder="搜索规则名称" clearable style="width: 180px" @keyup.enter="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||||
|
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<vxe-table :data="ruleList" :loading="loading" border stripe height="auto">
|
||||||
|
<vxe-column type="seq" title="序号" width="70" />
|
||||||
|
<vxe-column field="ruleCode" title="规则编码" width="120" />
|
||||||
|
<vxe-column field="ruleName" title="规则名称" min-width="180" show-overflow />
|
||||||
|
<vxe-column field="ruleType" title="规则类型" width="110" align="center">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-tag size="small">{{ row.ruleType }}</el-tag>
|
||||||
|
</template>
|
||||||
|
</vxe-column>
|
||||||
|
<vxe-column field="severity" title="严重程度" width="100" align="center">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-tag :type="severityTagType(row.severity)" effect="dark">{{ row.severity }}</el-tag>
|
||||||
|
</template>
|
||||||
|
</vxe-column>
|
||||||
|
<vxe-column field="conditionExpr" title="条件表达式" min-width="200" show-overflow />
|
||||||
|
<vxe-column field="actionExpr" title="执行动作" min-width="200" show-overflow />
|
||||||
|
<vxe-column field="status" title="状态" width="80" align="center">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-tag :type="row.status === 1 ? 'success' : 'info'">{{ row.status === 1 ? '启用' : '停用' }}</el-tag>
|
||||||
|
</template>
|
||||||
|
</vxe-column>
|
||||||
|
<vxe-column field="sortOrder" title="排序" width="70" align="center" />
|
||||||
|
</vxe-table>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup name="CdssRules">
|
||||||
|
import { ref, reactive, onMounted } from 'vue'
|
||||||
|
import { getCdssRuleList } from '@/api/cdss/cdssRule'
|
||||||
|
|
||||||
|
const ruleList = ref([])
|
||||||
|
const loading = ref(false)
|
||||||
|
const showSearch = ref(true)
|
||||||
|
|
||||||
|
const queryParams = reactive({
|
||||||
|
ruleType: '',
|
||||||
|
severity: '',
|
||||||
|
keyword: ''
|
||||||
|
})
|
||||||
|
|
||||||
|
const severityTagType = (severity) => {
|
||||||
|
const map = { CRITICAL: 'danger', HIGH: 'warning', MEDIUM: '', LOW: 'info', INFO: 'info' }
|
||||||
|
return map[severity] || 'info'
|
||||||
|
}
|
||||||
|
|
||||||
|
const getList = async () => {
|
||||||
|
loading.value = true
|
||||||
|
try {
|
||||||
|
const params = {}
|
||||||
|
if (queryParams.ruleType) params.ruleType = queryParams.ruleType
|
||||||
|
if (queryParams.severity) params.severity = queryParams.severity
|
||||||
|
if (queryParams.keyword) params.keyword = queryParams.keyword
|
||||||
|
const res = await getCdssRuleList(params)
|
||||||
|
if (res.code === 200) {
|
||||||
|
ruleList.value = res.data || []
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
loading.value = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleQuery = () => {
|
||||||
|
getList()
|
||||||
|
}
|
||||||
|
|
||||||
|
const resetQuery = () => {
|
||||||
|
queryParams.ruleType = ''
|
||||||
|
queryParams.severity = ''
|
||||||
|
queryParams.keyword = ''
|
||||||
|
handleQuery()
|
||||||
|
}
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
getList()
|
||||||
|
})
|
||||||
|
</script>
|
||||||
Reference in New Issue
Block a user