diff --git a/MD/standards/MODULE_CAPABILITY_REQUIREMENTS.md b/MD/standards/MODULE_CAPABILITY_REQUIREMENTS.md index 82df43a1f..497dd5e94 100644 --- a/MD/standards/MODULE_CAPABILITY_REQUIREMENTS.md +++ b/MD/standards/MODULE_CAPABILITY_REQUIREMENTS.md @@ -53,11 +53,11 @@ | 3 | **医嘱停止** | 长期医嘱停止,限时校验(执行前2小时) | 护理规范 | ✅ | | 4 | **用药医嘱审核** | 签发时自动触发合理用药审核 | 处方审核率100% | ⚠️ 待完善 | | 5 | **医嘱打印** | 医嘱单标准格式打印 | 病历规范 | ✅ | -| 6 | **会诊管理** | 科间会诊申请+接收+反馈 | 会诊制度 | ❌ 缺失 | -| 7 | **术前讨论记录** | 三级/四级手术必须有术前讨论 | 手术分级管理 | ❌ 缺失 | +| 6 | **会诊管理** | 科间会诊申请+接收+反馈 | 会诊制度 | ✅ 已完成基础上时限增强(V17) | +| 7 | **术前讨论记录** | 三级/四级手术必须有术前讨论 | 手术分级管理 | ✅ 已完成(V14) | | 8 | **出院小结** | 结构化出院记录+诊断编码 | 病案规范 | ⚠️ 基础 | -| 9 | **病程记录** | 首次/日常/上级查房/阶段/交接记录 | 病历书写规范 | ⚠️ 基础 | -| 10 | **知情同意** | 电子知情同意书+签名 | 医疗纠纷预防 | ❌ 缺失 | +| 9 | **病程记录** | 首次/日常/上级查房/阶段/交接记录 | 病历书写规范 | ✅ 已完成(V16) | +| 10 | **知情同意** | 电子知情同意书+签名 | 医疗纠纷预防 | ✅ 已完成(V15) | --- @@ -130,11 +130,11 @@ | 5 | **手术室冲突检查** | 同一手术室同一时间不能安排两台手术 | 基本功能规范 | ✅ | | 6 | **术前安全核查** | 麻醉前/手术前/离室前三次核查(WS/T 313) | 患者安全目标 | ⚠️ 待完善 | | 7 | **麻醉记录** | 术中监测数据+用药记录+事件记录 | 麻醉质控 | ✅ | -| 8 | **术中事件** | 手术开始/结束时间+出血量+并发症 | 麻醉质控 | ⚠️ 基础 | -| 9 | **标本管理** | 术中标本送检记录+病理追踪 | 手术室管理 | ❌ 缺失 | -| 10 | **术后随访** | 24h/48h/72h术后随访记录 | 麻醉质控 | ❌ 缺失 | +| 8 | **术中事件** | 手术开始/结束时间+出血量+并发症 | 麻醉质控 | ✅ 已完成(V19) | +| 9 | **标本管理** | 术中标本送检记录+病理追踪 | 手术室管理 | ✅ 已完成(V19) | +| 10 | **术后随访** | 24h/48h/72h术后随访记录 | 麻醉质控 | ✅ 已完成(V19) | | 11 | **手术统计** | 各级手术数量+手术室利用率+并发症率 | 评审指标 | ✅ | -| 12 | **麻醉质控** | 麻醉安全指标统计+不良事件上报 | 麻醉质控 | ❌ 缺失 | +| 12 | **麻醉质控** | 麻醉安全指标统计+不良事件上报 | 麻醉质控 | ✅ 已完成(V19) | --- @@ -153,8 +153,8 @@ | 2 | **条码管理** | 标本条码打印+扫码确认 | 标本管理 | ⚠️ 基础 | | 3 | **危急值管理** | 自动识别→弹窗通知→确认→处置→闭环 | 危急值管理规范 | ✅ | | 4 | **检验报告** | 结果录入+审核+发布 | 基本功能规范 | ✅ | -| 5 | **室内质控** | 质控图+Westgard规则+失控处理 | 质量管理 | ❌ 缺失 | -| 6 | **室间质评** | 参加省级/国家级室间质评 | 质量管理 | ❌ 缺失 | +| 5 | **室内质控** | 质控图+Westgard规则+失控处理 | 质量管理 | ✅ 已完成(V19) | +| 6 | **室间质评** | 参加省级/国家级室间质评 | 质量管理 | ✅ 已完成(V19) | | 7 | **参考范围** | 按年龄/性别/种族设置参考范围 | 检验规范 | ⚠️ 基础 | | 8 | **历史结果对比** | 同一患者历次结果趋势图 | 临床决策 | ❌ 缺失 | | 9 | **检验报告打印** | 标准格式报告单打印 | 基本功能规范 | ✅ | @@ -178,11 +178,11 @@ | 3 | **图像采集** | DICOM图像接收+存储+传输 | DICOM标准 | ⚠️ 基础 | | 4 | **图文报告** | 结构化报告+图像标注 | 检查规范 | ⚠️ 基础 | | 5 | **报告审核** | 书写→审核→发布流程 | 检查规范 | ✅ | -| 6 | **紧急报告** | 急诊检查优先出报告 | 患者安全 | ❌ 缺失 | +| 6 | **紧急报告** | 急诊检查优先出报告 | 患者安全 | ✅ 已完成(V19) | | 7 | **影像对比** | 历史影像对比查看 | 临床决策 | ❌ 缺失 | | 8 | **3D重建** | 三维图像重建(选配) | 高级功能 | ❌ 缺失 | | 9 | **DICOM打印** | 胶片打印 | 基本功能规范 | ⚠️ 基础 | -| 10 | **检查统计** | 检查量/阳性率/报告时效统计 | 评审指标 | ❌ 缺失 | +| 10 | **检查统计** | 检查量/阳性率/报告时效统计 | 评审指标 | ✅ 已完成(V19) | --- @@ -200,12 +200,12 @@ | 1 | **结构化录入** | 体温/症状/体征/诊断结构化录入 | EMR 4级 | ⚠️ 基础 | | 2 | **病历模板** | 系统模板+科室模板+个人模板 | 基本功能规范 | ✅ | | 3 | **病历修改留痕** | 修改记录保留原文+修改人+时间 | 电子病历管理规范 | ⚠️ 基础 | -| 4 | **版本管理** | 历史版本保存+版本对比 | 电子病历管理规范 | ❌ 缺失 | +| 4 | **版本管理** | 历史版本保存+版本对比 | 电子病历管理规范 | ✅ 已完成(V18) | | 5 | **电子签名** | CA认证电子签名 | 电子签名法 | ✅ | | 6 | **病历完整性检查** | 自动检查必填项+逻辑一致性 | 病历质控 | ✅ | -| 7 | **病历时效管理** | 入院记录24h/首次病程8h等时限提醒 | 病历书写规范 | ❌ 缺失 | +| 7 | **病历时效管理** | 入院记录24h/首次病程8h等时限提醒 | 病历书写规范 | ✅ 已完成(V16+V18) | | 8 | **打印归档** | 病历打印+归档+24h归档率统计 | 病案管理 | ⚠️ 基础 | -| 9 | **病历检索** | 按诊断/时间/医生等多维度检索 | 科研教学 | ❌ 缺失 | +| 9 | **病历检索** | 按诊断/时间/医生等多维度检索 | 科研教学 | ✅ 已完成(V18) | | 10 | **知识库链接** | 病历中嵌入临床指南/药物信息 | CDSS | ❌ 缺失 | --- @@ -224,12 +224,12 @@ | 1 | **病案首页** | 结构化首页+ICD-10自动编码 | 首页数据质量 | ✅ | | 2 | **编码校验** | ICD-10编码正确性自动校验 | 首页数据质量 | ⚠️ 基础 | | 3 | **病案归档** | 出院后自动归档+24h归档率统计 | 病案管理 | ⚠️ 基础 | -| 4 | **病案借阅** | 借阅申请+审批+归还+超期提醒 | 病案管理 | ❌ 缺失 | -| 5 | **病案封存** | 涉及纠纷的病案封存管理 | 医疗纠纷预防 | ❌ 缺失 | +| 4 | **病案借阅** | 借阅申请+审批+归还+超期提醒 | 病案管理 | ✅ 已完成(V18) | +| 5 | **病案封存** | 涉及纠纷的病案封存管理 | 医疗纠纷预防 | ✅ 已完成(V18) | | 6 | **DRG/DIP分组** | 主诊断+主手术→自动分组 | 医保支付 | ⚠️ 基础 | -| 7 | **病案质量统计** | 首页数据质量指标统计 | 评审指标 | ❌ 缺失 | -| 8 | **病案示踪** | 病案位置跟踪(在架/借出/归档) | 病案管理 | ❌ 缺失 | -| 9 | **死亡病历讨论** | 死亡病例7日内讨论记录管理 | 评审必查 | ❌ 缺失 | +| 7 | **病案质量统计** | 首页数据质量指标统计 | 评审指标 | ✅ 已完成(V20) | +| 8 | **病案示踪** | 病案位置跟踪(在架/借出/归档) | 病案管理 | ✅ 已完成(V18) | +| 9 | **死亡病历讨论** | 死亡病例7日内讨论记录管理 | 评审必查 | ✅ 已完成(V18) | | 10 | **临床路径** | 入径率/完成率/变异率统计 | 临床路径管理 | ⚠️ 基础 | --- @@ -248,12 +248,12 @@ | 1 | **感染病例监测** | 自动筛查疑似感染病例 | 院感管理办法 | ✅ | | 2 | **感染上报** | 确认感染→上报院感科→跟踪 | 院感管理办法 | ✅ | | 3 | **暴发预警** | 同一科室短时间内多例感染预警 | 院感管理办法 | ⚠️ 基础 | -| 4 | **目标性监测** | ICU/手术部位/导管相关监测 | 院感监测规范 | ❌ 缺失 | -| 5 | **手卫生监测** | 手卫生依从性统计 | 患者安全目标 | ❌ 缺失 | -| 6 | **环境卫生学监测** | 空气/物表/手监测结果管理 | 院感管理办法 | ❌ 缺失 | -| 7 | **多重耐药菌** | 耐药菌检出→隔离措施→跟踪 | 院感管理办法 | ❌ 缺失 | +| 4 | **目标性监测** | ICU/手术部位/导管相关监测 | 院感监测规范 | ✅ 已完成(V17) | +| 5 | **手卫生监测** | 手卫生依从性统计 | 患者安全目标 | ✅ 已完成(V17) | +| 6 | **环境卫生学监测** | 空气/物表/手监测结果管理 | 院感管理办法 | ✅ 已完成(V17) | +| 7 | **多重耐药菌** | 耐药菌检出→隔离措施→跟踪 | 院感管理办法 | ✅ 已完成(V17) | | 8 | **抗菌药物使用** | 与抗菌药物模块联动 | 院感管理办法 | ⚠️ 基础 | -| 9 | **职业暴露** | 锐器伤/暴露事件上报+追踪 | 职业防护 | ❌ 缺失 | +| 9 | **职业暴露** | 锐器伤/暴露事件上报+追踪 | 职业防护 | ✅ 已有基础上报 | | 10 | **消毒供应** | CSSD追溯管理(选配) | 院感管理办法 | ❌ 缺失 | --- @@ -275,9 +275,9 @@ | 4 | **管道评估** | 管道类型/位置/状态评估 | 护理安全 | ⚠️ 基础 | | 5 | **营养筛查** | NRS 2002/MUST营养筛查 | 营养管理 | ⚠️ 基础 | | 6 | **疼痛评估** | NRS/VAS疼痛评分→干预→再评估 | 疼痛管理 | ⚠️ 基础 | -| 7 | **评估提醒** | 按评估频率自动提醒 | 护理质量 | ❌ 缺失 | +| 7 | **评估提醒** | 按评估频率自动提醒 | 护理质量 | ✅ 已完成(V18) | | 8 | **评估趋势** | 历次评估结果趋势图 | 临床决策 | ❌ 缺失 | -| 9 | **护理计划** | 基于评估结果自动生成护理计划 | 护理规范 | ❌ 缺失 | +| 9 | **护理计划** | 基于评估结果自动生成护理计划 | 护理规范 | ✅ 已完成(V18) | | 10 | **护理质量指标** | 护理敏感指标自动采集+上报 | 护理质量 | ❌ 缺失 | --- @@ -295,12 +295,12 @@ |---|------|------|---------|---------| | 1 | **消息路由** | 统一消息总线,系统间消息投递 | 互联互通 | ⚠️ 基础 | | 2 | **服务注册** | 外部系统接口统一注册管理 | 互联互通 | ⚠️ 基础 | -| 3 | **HL7 FHIR** | FHIR R4标准消息格式 | 互联互通 | ❌ 缺失 | -| 4 | **CDA文档** | 临床文档架构(入院/出院/检验等) | 互联互通 | ❌ 缺失 | +| 3 | **HL7 FHIR** | FHIR R4标准消息格式 | 互联互通 | ✅ 已完成(V18) | +| 4 | **CDA文档** | 临床文档架构(入院/出院/检验等) | 互联互通 | ✅ 已完成(V18) | | 5 | **消息监控** | 消息流量/成功率/失败率监控 | 互联互通 | ⚠️ 基础 | | 6 | **消息重试** | 失败消息自动重试+死信处理 | 可靠性 | ⚠️ 基础 | -| 7 | **数据映射** | 院内编码↔标准编码映射 | 互联互通 | ❌ 缺失 | -| 8 | **接口版本** | 接口版本管理+兼容 | 互联互通 | ❌ 缺失 | +| 7 | **数据映射** | 院内编码↔标准编码映射 | 互联互通 | ✅ 已完成(V18) | +| 8 | **接口版本** | 接口版本管理+兼容 | 互联互通 | ✅ 已完成(V18) | | 9 | **安全认证** | 接口调用方认证+授权 | 信息安全 | ❌ 缺失 | | 10 | **审计日志** | 所有接口调用可追溯 | 信息安全 | ⚠️ 基础 | @@ -321,9 +321,9 @@ | 3 | **重复检测** | 新建患者时检测重复 | 数据质量 | ⚠️ 基础 | | 4 | **主索引查询** | 按姓名/身份证/病历号多维查询 | EMPI | ✅ | | 5 | **跨系统关联** | 门诊/住院/体检患者统一标识 | 互联互通 | ⚠️ 基础 | -| 6 | **患者照片** | 患者照片管理(人脸识别基础) | 安全管理 | ❌ 缺失 | -| 7 | **家庭关系** | 家庭成员关系管理 | 公共卫生 | ❌ 缺失 | -| 8 | **患者合并日志** | 合并/拆分操作全记录 | 数据安全 | ❌ 缺失 | +| 6 | **患者照片** | 患者照片管理(人脸识别基础) | 安全管理 | ✅ 已完成(V20) | +| 7 | **家庭关系** | 家庭成员关系管理 | 公共卫生 | ✅ 已完成(V20) | +| 8 | **患者合并日志** | 合并/拆分操作全记录 | 数据安全 | ✅ 已完成(V20) | --- @@ -341,13 +341,13 @@ | 1 | **门诊统计** | 门诊量/收入/科室工作量 | 基本功能规范 | ✅ | | 2 | **住院统计** | 入出院/床位使用率/平均住院日 | 评审指标 | ✅ | | 3 | **药品统计** | 药品使用量/金额/抗菌药物比例 | 合理用药 | ✅ | -| 4 | **医嘱统计** | 医嘱执行率/完成率/停止率 | 医嘱管理 | ❌ 缺失 | +| 4 | **医嘱统计** | 医嘱执行率/完成率/停止率 | 医嘱管理 | ✅ 已完成(V20) | | 5 | **手术统计** | 各级手术量/手术室利用率/并发症率 | 评审指标 | ✅ | -| 6 | **质控指标** | 十八项核心制度执行指标 | 评审指标 | ❌ 缺失 | +| 6 | **质控指标** | 十八项核心制度执行指标 | 评审指标 | ✅ 已完成(V20) | | 7 | **DRG/DIP分析** | 病组分布/费用结构/时间消耗 | 医保支付 | ⚠️ 基础 | | 8 | **经营分析** | 科室成本/收益/绩效分析 | 经营管理 | ❌ 缺失 | | 9 | **数据导出** | Excel/PDF导出+定时推送 | 基本功能 | ⚠️ 基础 | -| 10 | **仪表盘** | 可视化数据大屏 | 高级功能 | ❌ 缺失 | +| 10 | **仪表盘** | 可视化数据大屏 | 高级功能 | ✅ 已完成(V20) | --- @@ -380,10 +380,10 @@ | 处方审核率≥100% | 合理用药12项能力 | 已实现10/12 | ✅ 基本达标 | | 抗菌药物使用率≤60% | 抗菌药物分级管控 | 已实现 | ✅ 达标 | | 危急值处理率≥95% | LIS危急值闭环 | 已实现 | ✅ 达标 | -| 电子病历≥4级 | 全院共享+CDSS | 差距:版本管理/时效/检索 | ⚠️ 待完善 | -| 互联互通≥四级 | ESB+FHIR+CDA | 差距:FHIR/CDA/映射 | ❌ 差距大 | +| 电子病历≥4级 | 全院共享+CDSS | 差距:版本管理/时效/检索 | ✅ 已完成(V18) | +| 互联互通≥四级 | ESB+FHIR+CDA | 差距:FHIR/CDA/映射 | ✅ FHIR/CDA/映射已实现(V18) | | 首页编码正确率≥95% | ICD-10自动编码 | 已实现基础 | ⚠️ 待完善 | -| 术前讨论率100% | 术前讨论记录 | 缺失 | ❌ 待开发 | +| 术前讨论率100% | 术前讨论记录 | 缺失 | ✅ 术前讨论已实现(V14) | | 病案24h归档率≥90% | 自动归档 | 基础实现 | ⚠️ 待完善 | --- diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/check/controller/RadiologyComparisonController.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/check/controller/RadiologyComparisonController.java new file mode 100644 index 000000000..71fdb3b5c --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/check/controller/RadiologyComparisonController.java @@ -0,0 +1,40 @@ +package com.healthlink.his.web.check.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.core.common.core.domain.R; +import com.healthlink.his.check.domain.RadiologyImageComparison; +import com.healthlink.his.check.service.IRadiologyImageComparisonService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.*; + +import java.util.*; + +@RestController +@RequestMapping("/radiology-comparison") +@Slf4j +@AllArgsConstructor +public class RadiologyComparisonController { + + private final IRadiologyImageComparisonService comparisonService; + + @GetMapping("/compare") + public R compareImages( + @RequestParam Long patientId, + @RequestParam(required = false) String examinationType) { + LambdaQueryWrapper w = new LambdaQueryWrapper<>(); + w.eq(RadiologyImageComparison::getPatientId, patientId) + .eq(examinationType != null, RadiologyImageComparison::getExaminationType, examinationType) + .orderByAsc(RadiologyImageComparison::getExaminationDate); + return R.ok(comparisonService.list(w)); + } + + @PostMapping("/add") + @Transactional(rollbackFor = Exception.class) + public R addRecord(@RequestBody RadiologyImageComparison record) { + record.setCreateTime(new Date()); + comparisonService.save(record); + return R.ok(record); + } +} diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/lab/controller/LabHistoryController.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/lab/controller/LabHistoryController.java new file mode 100644 index 000000000..2f32f54be --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/lab/controller/LabHistoryController.java @@ -0,0 +1,51 @@ +package com.healthlink.his.web.lab.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.core.common.core.domain.R; +import com.healthlink.his.lab.domain.LabResultComparison; +import com.healthlink.his.lab.service.ILabResultComparisonService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/lab-history") +@Slf4j +@AllArgsConstructor +public class LabHistoryController { + + private final ILabResultComparisonService comparisonService; + + @GetMapping("/compare") + public R compareResults( + @RequestParam Long patientId, + @RequestParam(required = false) String testItem) { + LambdaQueryWrapper w = new LambdaQueryWrapper<>(); + w.eq(LabResultComparison::getPatientId, patientId) + .eq(StringUtils.hasText(testItem), LabResultComparison::getTestItem, testItem) + .orderByAsc(LabResultComparison::getTestDate); + return R.ok(comparisonService.list(w)); + } + + @PostMapping("/add") + @Transactional(rollbackFor = Exception.class) + public R addResult(@RequestBody LabResultComparison result) { + result.setCreateTime(new java.util.Date()); + comparisonService.save(result); + return R.ok(result); + } + + @GetMapping("/trend") + public R getTrend( + @RequestParam Long patientId, + @RequestParam String testItem) { + LambdaQueryWrapper w = new LambdaQueryWrapper<>(); + w.eq(LabResultComparison::getPatientId, patientId) + .eq(LabResultComparison::getTestItem, testItem) + .orderByAsc(LabResultComparison::getTestDate); + return R.ok(comparisonService.list(w)); + } +} diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/controller/NursingExecutionController.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/controller/NursingExecutionController.java new file mode 100644 index 000000000..0350ccd77 --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/controller/NursingExecutionController.java @@ -0,0 +1,103 @@ +package com.healthlink.his.web.nursing.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.core.common.core.domain.R; +import com.healthlink.his.nursing.domain.*; +import com.healthlink.his.nursing.service.*; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.*; + +import java.util.*; + +@RestController +@RequestMapping("/nursing-execution") +@Slf4j +@AllArgsConstructor +public class NursingExecutionController { + + private final INursingExecutionScanService scanService; + private final INursingHandoffRecordService handoffService; + private final INursingInfusionPatrolService patrolService; + + // ==================== 执行扫码 ==================== + @GetMapping("/scan/page") + public R getScanPage( + @RequestParam(value = "scanType", required = false) String scanType, + @RequestParam(value = "patientName", required = false) String patientName, + @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(value = "pageSize", defaultValue = "20") Integer pageSize) { + LambdaQueryWrapper w = new LambdaQueryWrapper<>(); + w.eq(StringUtils.hasText(scanType), NursingExecutionScan::getScanType, scanType) + .like(StringUtils.hasText(patientName), NursingExecutionScan::getPatientName, patientName) + .orderByDesc(NursingExecutionScan::getScanTime); + return R.ok(scanService.page(new Page<>(pageNo, pageSize), w)); + } + + @PostMapping("/scan/add") + @Transactional(rollbackFor = Exception.class) + public R addScan(@RequestBody NursingExecutionScan scan) { + scan.setScanTime(new Date()); + scan.setCreateTime(new Date()); + scanService.save(scan); + return R.ok(scan); + } + + // ==================== 交接班 ==================== + @GetMapping("/handoff/page") + public R getHandoffPage( + @RequestParam(value = "ward", required = false) String ward, + @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(value = "pageSize", defaultValue = "20") Integer pageSize) { + LambdaQueryWrapper w = new LambdaQueryWrapper<>(); + w.eq(StringUtils.hasText(ward), NursingHandoffRecord::getWard, ward) + .orderByDesc(NursingHandoffRecord::getHandoffDate); + return R.ok(handoffService.page(new Page<>(pageNo, pageSize), w)); + } + + @PostMapping("/handoff/add") + @Transactional(rollbackFor = Exception.class) + public R addHandoff(@RequestBody NursingHandoffRecord record) { + record.setStatus(0); + record.setCreateTime(new Date()); + handoffService.save(record); + return R.ok(record); + } + + @PostMapping("/handoff/confirm") + @Transactional(rollbackFor = Exception.class) + public R confirmHandoff(@RequestParam Long id) { + NursingHandoffRecord record = handoffService.getById(id); + if (record == null) return R.fail("交接记录不存在"); + record.setStatus(2); + record.setUpdateTime(new Date()); + handoffService.updateById(record); + return R.ok(); + } + + // ==================== 输液巡视 ==================== + @GetMapping("/infusion/page") + public R getInfusionPage( + @RequestParam(value = "patientName", required = false) String patientName, + @RequestParam(value = "patencyStatus", required = false) String status, + @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(value = "pageSize", defaultValue = "20") Integer pageSize) { + LambdaQueryWrapper w = new LambdaQueryWrapper<>(); + w.like(StringUtils.hasText(patientName), NursingInfusionPatrol::getPatientName, patientName) + .eq(StringUtils.hasText(status), NursingInfusionPatrol::getPatencyStatus, status) + .orderByDesc(NursingInfusionPatrol::getPatrolTime); + return R.ok(patrolService.page(new Page<>(pageNo, pageSize), w)); + } + + @PostMapping("/infusion/add") + @Transactional(rollbackFor = Exception.class) + public R addInfusion(@RequestBody NursingInfusionPatrol patrol) { + patrol.setPatrolTime(new Date()); + patrol.setCreateTime(new Date()); + patrolService.save(patrol); + return R.ok(patrol); + } +} diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/controller/NursingQualityController.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/controller/NursingQualityController.java new file mode 100644 index 000000000..a210c8f3d --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/controller/NursingQualityController.java @@ -0,0 +1,59 @@ +package com.healthlink.his.web.nursing.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.core.common.core.domain.R; +import com.healthlink.his.nursing.domain.NursingQualityIndicator; +import com.healthlink.his.nursing.service.INursingQualityIndicatorService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.*; + +import java.util.*; + +@RestController +@RequestMapping("/nursing-quality") +@Slf4j +@AllArgsConstructor +public class NursingQualityController { + + private final INursingQualityIndicatorService indicatorService; + + @GetMapping("/page") + public R getPage( + @RequestParam(value = "indicatorCategory", required = false) String category, + @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(value = "pageSize", defaultValue = "20") Integer pageSize) { + LambdaQueryWrapper w = new LambdaQueryWrapper<>(); + w.eq(StringUtils.hasText(category), NursingQualityIndicator::getIndicatorCategory, category) + .orderByDesc(NursingQualityIndicator::getStatDate); + return R.ok(indicatorService.page(new Page<>(pageNo, pageSize), w)); + } + + @PostMapping("/add") + @Transactional(rollbackFor = Exception.class) + public R addIndicator(@RequestBody NursingQualityIndicator indicator) { + indicator.setStatus("ACTIVE"); + indicator.setCreateTime(new Date()); + indicatorService.save(indicator); + return R.ok(indicator); + } + + @GetMapping("/summary") + public R getSummary() { + Map summary = new HashMap<>(); + summary.put("total", indicatorService.count()); + LambdaQueryWrapper w = new LambdaQueryWrapper<>(); + w.isNotNull(NursingQualityIndicator::getActualValue).isNotNull(NursingQualityIndicator::getTargetValue); + List list = indicatorService.list(w); + int meet = 0; + for (NursingQualityIndicator i : list) { + if (i.getActualValue() != null && i.getTargetValue() != null && i.getActualValue().compareTo(i.getTargetValue()) >= 0) meet++; + } + summary.put("meetTarget", meet); + summary.put("meetRate", list.size() > 0 ? Math.round(meet * 100.0 / list.size()) : 0); + return R.ok(summary); + } +} diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/pharmacymanage/controller/PharmacyStockAlertController.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/pharmacymanage/controller/PharmacyStockAlertController.java new file mode 100644 index 000000000..1f1c6abf9 --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/pharmacymanage/controller/PharmacyStockAlertController.java @@ -0,0 +1,60 @@ +package com.healthlink.his.web.pharmacymanage.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.core.common.core.domain.R; +import com.healthlink.his.pharmacymanage.domain.PharmacyStockAlert; +import com.healthlink.his.pharmacymanage.service.IPharmacyStockAlertService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.*; + +import java.util.*; + +@RestController +@RequestMapping("/pharmacy-stock-alert") +@Slf4j +@AllArgsConstructor +public class PharmacyStockAlertController { + + private final IPharmacyStockAlertService alertService; + + @GetMapping("/page") + public R getPage( + @RequestParam(value = "alertLevel", required = false) String level, + @RequestParam(value = "drugName", required = false) String drugName, + @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(value = "pageSize", defaultValue = "20") Integer pageSize) { + LambdaQueryWrapper w = new LambdaQueryWrapper<>(); + w.eq(StringUtils.hasText(level), PharmacyStockAlert::getAlertLevel, level) + .like(StringUtils.hasText(drugName), PharmacyStockAlert::getDrugName, drugName) + .orderByAsc(PharmacyStockAlert::getCurrentStock); + return R.ok(alertService.page(new Page<>(pageNo, pageSize), w)); + } + + @PostMapping("/add") + @Transactional(rollbackFor = Exception.class) + public R add(@RequestBody PharmacyStockAlert alert) { + alert.setStatus(0); + // 自动判断预警级别 + if (alert.getCurrentStock() <= 0) alert.setAlertLevel("OUT"); + else if (alert.getCurrentStock() <= alert.getMinStock()) alert.setAlertLevel("LOW"); + alert.setCreateTime(new Date()); + alertService.save(alert); + return R.ok(alert); + } + + @GetMapping("/stats") + public R getStats() { + Map stats = new HashMap<>(); + stats.put("total", alertService.count()); + LambdaQueryWrapper w = new LambdaQueryWrapper<>(); + w.eq(PharmacyStockAlert::getAlertLevel, "LOW"); + stats.put("low", alertService.count(w)); + w.eq(PharmacyStockAlert::getAlertLevel, "OUT"); + stats.put("out", alertService.count(w)); + return R.ok(stats); + } +} diff --git a/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V21__nursing_execution_pharmacy.sql b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V21__nursing_execution_pharmacy.sql new file mode 100644 index 000000000..241281d55 --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V21__nursing_execution_pharmacy.sql @@ -0,0 +1,105 @@ +-- V21: 住院护士增强+药品库存联动 + +-- 1. 执行扫码记录 +CREATE TABLE IF NOT EXISTS nursing_execution_scan ( + id BIGSERIAL PRIMARY KEY, + encounter_id BIGINT NOT NULL, + patient_id BIGINT NOT NULL, + patient_name VARCHAR(50), + order_id BIGINT, + order_name VARCHAR(200), + scan_type VARCHAR(30) NOT NULL, + barcode VARCHAR(100), + scan_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + scan_result VARCHAR(20) NOT NULL DEFAULT 'SUCCESS', + nurse_user_id BIGINT, + nurse_name VARCHAR(50), + remark TEXT, + tenant_id BIGINT DEFAULT 0, + is_deleted INT NOT NULL DEFAULT 0, + create_by VARCHAR(64), + create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); +COMMENT ON TABLE nursing_execution_scan IS '护理执行扫码记录'; +COMMENT ON COLUMN nursing_execution_scan.scan_type IS '扫码类型(WRISTBAND腕带/DRUG药品/SPECIMEN标本)'; +COMMENT ON COLUMN nursing_execution_scan.scan_result IS '扫码结果(SUCCESS成功/FAIL失败/MISMATCH不匹配)'; +CREATE INDEX idx_nes_encounter ON nursing_execution_scan(encounter_id); + +-- 2. 护理交接班记录 +CREATE TABLE IF NOT EXISTS nursing_handoff_record ( + id BIGSERIAL PRIMARY KEY, + ward VARCHAR(50) NOT NULL, + shift VARCHAR(20) NOT NULL, + handoff_date DATE NOT NULL, + handoff_nurse_id BIGINT, + handoff_nurse_name VARCHAR(50), + receive_nurse_id BIGINT, + receive_nurse_name VARCHAR(50), + patient_count INT DEFAULT 0, + critical_count INT DEFAULT 0, + key_patients TEXT, + pending_matters TEXT, + special_notes TEXT, + status INT NOT NULL DEFAULT 0, + tenant_id BIGINT DEFAULT 0, + is_deleted INT NOT NULL DEFAULT 0, + create_by VARCHAR(64), + create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + update_by VARCHAR(64), + update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); +COMMENT ON TABLE nursing_handoff_record IS '护理交接班记录'; +COMMENT ON COLUMN nursing_handoff_record.shift IS '班次(MORNING早班/AFTERNOON小夜班/NIGHT大夜班)'; +COMMENT ON COLUMN nursing_handoff_record.status IS '状态(0草稿 1已交接 2已确认)'; +CREATE INDEX idx_nhr_date ON nursing_handoff_record(handoff_date); + +-- 3. 输液巡视记录 +CREATE TABLE IF NOT EXISTS nursing_infusion_patrol ( + id BIGSERIAL PRIMARY KEY, + encounter_id BIGINT NOT NULL, + patient_id BIGINT NOT NULL, + patient_name VARCHAR(50), + order_id BIGINT, + drug_name VARCHAR(200), + infusion_rate VARCHAR(50), + total_volume INT, + start_time TIMESTAMP, + patrol_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + drip_rate INT, + patency_status VARCHAR(20) DEFAULT 'NORMAL', + adverse_reaction TEXT, + patrol_nurse_id BIGINT, + patrol_nurse_name VARCHAR(50), + tenant_id BIGINT DEFAULT 0, + is_deleted INT NOT NULL DEFAULT 0, + create_by VARCHAR(64), + create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); +COMMENT ON TABLE nursing_infusion_patrol IS '输液巡视记录'; +COMMENT ON COLUMN nursing_infusion_patrol.patency_status IS '通畅状态(NORMAL正常/OCCLUDED堵塞/PHLEBITIS静脉炎)'; +CREATE INDEX idx_nip_encounter ON nursing_infusion_patrol(encounter_id); + +-- 4. 药品库存预警 +CREATE TABLE IF NOT EXISTS pharmacy_stock_alert ( + id BIGSERIAL PRIMARY KEY, + drug_id BIGINT NOT NULL, + drug_code VARCHAR(50), + drug_name VARCHAR(200) NOT NULL, + drug_spec VARCHAR(100), + current_stock INT NOT NULL DEFAULT 0, + min_stock INT NOT NULL DEFAULT 0, + max_stock INT DEFAULT 999999, + alert_level VARCHAR(20) NOT NULL DEFAULT 'LOW', + last_restock_date DATE, + supplier_name VARCHAR(200), + status INT NOT NULL DEFAULT 0, + tenant_id BIGINT DEFAULT 0, + is_deleted INT NOT NULL DEFAULT 0, + create_by VARCHAR(64), + create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + update_by VARCHAR(64), + update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); +COMMENT ON TABLE pharmacy_stock_alert IS '药品库存预警'; +COMMENT ON COLUMN pharmacy_stock_alert.alert_level IS '预警级别(LOW低库存/OUT缺货/OVER过量)'; +CREATE INDEX idx_psa_level ON pharmacy_stock_alert(alert_level); diff --git a/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V22__lab_history_imaging_nursing_quality.sql b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V22__lab_history_imaging_nursing_quality.sql new file mode 100644 index 000000000..4a7addb75 --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V22__lab_history_imaging_nursing_quality.sql @@ -0,0 +1,62 @@ +-- V22: 检验历史对比+影像对比+护理质量指标 + +-- 1. 检验历史结果对比 +CREATE TABLE IF NOT EXISTS lab_result_comparison ( + id BIGSERIAL PRIMARY KEY, + patient_id BIGINT NOT NULL, + encounter_id BIGINT, + test_item VARCHAR(100) NOT NULL, + test_value VARCHAR(100), + reference_range VARCHAR(100), + test_date DATE NOT NULL, + abnormal_flag VARCHAR(20), + department_name VARCHAR(100), + tenant_id BIGINT DEFAULT 0, + is_deleted INT NOT NULL DEFAULT 0, + create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); +COMMENT ON TABLE lab_result_comparison IS '检验历史结果对比'; +CREATE INDEX idx_lrc_patient ON lab_result_comparison(patient_id); +CREATE INDEX idx_lrc_item ON lab_result_comparison(test_item); + +-- 2. 影像历史对比 +CREATE TABLE IF NOT EXISTS radiology_image_comparison ( + id BIGSERIAL PRIMARY KEY, + patient_id BIGINT NOT NULL, + encounter_id BIGINT, + examination_type VARCHAR(50), + examination_name VARCHAR(200), + examination_date DATE NOT NULL, + body_part VARCHAR(100), + finding_text TEXT, + conclusion_text TEXT, + image_url VARCHAR(500), + doctor_name VARCHAR(50), + tenant_id BIGINT DEFAULT 0, + is_deleted INT NOT NULL DEFAULT 0, + create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); +COMMENT ON TABLE radiology_image_comparison IS '影像历史对比'; +CREATE INDEX idx_ric_patient ON radiology_image_comparison(patient_id); + +-- 3. 护理质量指标 +CREATE TABLE IF NOT EXISTS nursing_quality_indicator ( + id BIGSERIAL PRIMARY KEY, + indicator_code VARCHAR(50) NOT NULL, + indicator_name VARCHAR(200) NOT NULL, + indicator_category VARCHAR(50), + target_value DECIMAL(10,2), + actual_value DECIMAL(10,2), + unit VARCHAR(20), + stat_period VARCHAR(20), + stat_date DATE, + department_id BIGINT, + department_name VARCHAR(100), + status VARCHAR(20) DEFAULT 'ACTIVE', + tenant_id BIGINT DEFAULT 0, + is_deleted INT NOT NULL DEFAULT 0, + create_by VARCHAR(64), + create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); +COMMENT ON TABLE nursing_quality_indicator IS '护理质量指标'; +CREATE INDEX idx_nqi_code ON nursing_quality_indicator(indicator_code); diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/check/domain/RadiologyImageComparison.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/check/domain/RadiologyImageComparison.java new file mode 100644 index 000000000..2b8ba03f3 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/check/domain/RadiologyImageComparison.java @@ -0,0 +1,24 @@ +package com.healthlink.his.check.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.core.common.core.domain.HisBaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("radiology_image_comparison") +public class RadiologyImageComparison extends HisBaseEntity { + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + @TableField("patient_id") private Long patientId; + @TableField("encounter_id") private Long encounterId; + @TableField("examination_type") private String examinationType; + @TableField("examination_name") private String examinationName; + @TableField("examination_date") private String examinationDate; + @TableField("body_part") private String bodyPart; + @TableField("finding_text") private String findingText; + @TableField("conclusion_text") private String conclusionText; + @TableField("image_url") private String imageUrl; + @TableField("doctor_name") private String doctorName; +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/check/mapper/RadiologyImageComparisonMapper.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/check/mapper/RadiologyImageComparisonMapper.java new file mode 100644 index 000000000..228385393 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/check/mapper/RadiologyImageComparisonMapper.java @@ -0,0 +1,9 @@ +package com.healthlink.his.check.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.healthlink.his.check.domain.RadiologyImageComparison; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface RadiologyImageComparisonMapper extends BaseMapper { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/check/service/IRadiologyImageComparisonService.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/check/service/IRadiologyImageComparisonService.java new file mode 100644 index 000000000..dd5e04e3e --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/check/service/IRadiologyImageComparisonService.java @@ -0,0 +1,7 @@ +package com.healthlink.his.check.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.healthlink.his.check.domain.RadiologyImageComparison; + +public interface IRadiologyImageComparisonService extends IService { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/check/service/impl/RadiologyImageComparisonServiceImpl.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/check/service/impl/RadiologyImageComparisonServiceImpl.java new file mode 100644 index 000000000..d36008563 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/check/service/impl/RadiologyImageComparisonServiceImpl.java @@ -0,0 +1,11 @@ +package com.healthlink.his.check.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.healthlink.his.check.domain.RadiologyImageComparison; +import com.healthlink.his.check.mapper.RadiologyImageComparisonMapper; +import com.healthlink.his.check.service.IRadiologyImageComparisonService; +import org.springframework.stereotype.Service; + +@Service +public class RadiologyImageComparisonServiceImpl extends ServiceImpl implements IRadiologyImageComparisonService { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/lab/domain/LabResultComparison.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/lab/domain/LabResultComparison.java new file mode 100644 index 000000000..54e1da4d3 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/lab/domain/LabResultComparison.java @@ -0,0 +1,22 @@ +package com.healthlink.his.lab.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.core.common.core.domain.HisBaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("lab_result_comparison") +public class LabResultComparison extends HisBaseEntity { + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + @TableField("patient_id") private Long patientId; + @TableField("encounter_id") private Long encounterId; + @TableField("test_item") private String testItem; + @TableField("test_value") private String testValue; + @TableField("reference_range") private String referenceRange; + @TableField("test_date") private String testDate; + @TableField("abnormal_flag") private String abnormalFlag; + @TableField("department_name") private String departmentName; +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/lab/mapper/LabResultComparisonMapper.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/lab/mapper/LabResultComparisonMapper.java new file mode 100644 index 000000000..293fa49a4 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/lab/mapper/LabResultComparisonMapper.java @@ -0,0 +1,9 @@ +package com.healthlink.his.lab.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.healthlink.his.lab.domain.LabResultComparison; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface LabResultComparisonMapper extends BaseMapper { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/lab/service/ILabResultComparisonService.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/lab/service/ILabResultComparisonService.java new file mode 100644 index 000000000..14f6736ed --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/lab/service/ILabResultComparisonService.java @@ -0,0 +1,7 @@ +package com.healthlink.his.lab.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.healthlink.his.lab.domain.LabResultComparison; + +public interface ILabResultComparisonService extends IService { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/lab/service/impl/LabResultComparisonServiceImpl.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/lab/service/impl/LabResultComparisonServiceImpl.java new file mode 100644 index 000000000..24875607f --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/lab/service/impl/LabResultComparisonServiceImpl.java @@ -0,0 +1,11 @@ +package com.healthlink.his.lab.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.healthlink.his.lab.domain.LabResultComparison; +import com.healthlink.his.lab.mapper.LabResultComparisonMapper; +import com.healthlink.his.lab.service.ILabResultComparisonService; +import org.springframework.stereotype.Service; + +@Service +public class LabResultComparisonServiceImpl extends ServiceImpl implements ILabResultComparisonService { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/domain/NursingExecutionScan.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/domain/NursingExecutionScan.java new file mode 100644 index 000000000..19d30f69a --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/domain/NursingExecutionScan.java @@ -0,0 +1,28 @@ +package com.healthlink.his.nursing.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("nursing_execution_scan") +public class NursingExecutionScan 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("patient_name") private String patientName; + @TableField("order_id") private Long orderId; + @TableField("order_name") private String orderName; + @TableField("scan_type") private String scanType; + @TableField("barcode") private String barcode; + @TableField("scan_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date scanTime; + @TableField("scan_result") private String scanResult; + @TableField("nurse_user_id") private Long nurseUserId; + @TableField("nurse_name") private String nurseName; + @TableField("remark") private String remark; +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/domain/NursingHandoffRecord.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/domain/NursingHandoffRecord.java new file mode 100644 index 000000000..da20d7ef2 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/domain/NursingHandoffRecord.java @@ -0,0 +1,27 @@ +package com.healthlink.his.nursing.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.core.common.core.domain.HisBaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("nursing_handoff_record") +public class NursingHandoffRecord extends HisBaseEntity { + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + @TableField("ward") private String ward; + @TableField("shift") private String shift; + @TableField("handoff_date") private String handoffDate; + @TableField("handoff_nurse_id") private Long handoffNurseId; + @TableField("handoff_nurse_name") private String handoffNurseName; + @TableField("receive_nurse_id") private Long receiveNurseId; + @TableField("receive_nurse_name") private String receiveNurseName; + @TableField("patient_count") private Integer patientCount; + @TableField("critical_count") private Integer criticalCount; + @TableField("key_patients") private String keyPatients; + @TableField("pending_matters") private String pendingMatters; + @TableField("special_notes") private String specialNotes; + @TableField("status") private Integer status; +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/domain/NursingInfusionPatrol.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/domain/NursingInfusionPatrol.java new file mode 100644 index 000000000..23e0181ec --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/domain/NursingInfusionPatrol.java @@ -0,0 +1,30 @@ +package com.healthlink.his.nursing.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("nursing_infusion_patrol") +public class NursingInfusionPatrol 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("patient_name") private String patientName; + @TableField("order_id") private Long orderId; + @TableField("drug_name") private String drugName; + @TableField("infusion_rate") private String infusionRate; + @TableField("total_volume") private Integer totalVolume; + @TableField("start_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date startTime; + @TableField("patrol_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date patrolTime; + @TableField("drip_rate") private Integer dripRate; + @TableField("patency_status") private String patencyStatus; + @TableField("adverse_reaction") private String adverseReaction; + @TableField("patrol_nurse_id") private Long patrolNurseId; + @TableField("patrol_nurse_name") private String patrolNurseName; +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/domain/NursingQualityIndicator.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/domain/NursingQualityIndicator.java new file mode 100644 index 000000000..775de5e1e --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/domain/NursingQualityIndicator.java @@ -0,0 +1,26 @@ +package com.healthlink.his.nursing.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.core.common.core.domain.HisBaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.math.BigDecimal; + +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("nursing_quality_indicator") +public class NursingQualityIndicator extends HisBaseEntity { + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + @TableField("indicator_code") private String indicatorCode; + @TableField("indicator_name") private String indicatorName; + @TableField("indicator_category") private String indicatorCategory; + @TableField("target_value") private BigDecimal targetValue; + @TableField("actual_value") private BigDecimal actualValue; + @TableField("unit") private String unit; + @TableField("stat_period") private String statPeriod; + @TableField("stat_date") private String statDate; + @TableField("department_id") private Long departmentId; + @TableField("department_name") private String departmentName; + @TableField("status") private String status; +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/mapper/NursingExecutionScanMapper.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/mapper/NursingExecutionScanMapper.java new file mode 100644 index 000000000..95e300fd4 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/mapper/NursingExecutionScanMapper.java @@ -0,0 +1,9 @@ +package com.healthlink.his.nursing.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.healthlink.his.nursing.domain.NursingExecutionScan; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface NursingExecutionScanMapper extends BaseMapper { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/mapper/NursingHandoffRecordMapper.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/mapper/NursingHandoffRecordMapper.java new file mode 100644 index 000000000..0064ae196 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/mapper/NursingHandoffRecordMapper.java @@ -0,0 +1,9 @@ +package com.healthlink.his.nursing.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.healthlink.his.nursing.domain.NursingHandoffRecord; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface NursingHandoffRecordMapper extends BaseMapper { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/mapper/NursingInfusionPatrolMapper.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/mapper/NursingInfusionPatrolMapper.java new file mode 100644 index 000000000..8648ec8d8 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/mapper/NursingInfusionPatrolMapper.java @@ -0,0 +1,9 @@ +package com.healthlink.his.nursing.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.healthlink.his.nursing.domain.NursingInfusionPatrol; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface NursingInfusionPatrolMapper extends BaseMapper { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/mapper/NursingQualityIndicatorMapper.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/mapper/NursingQualityIndicatorMapper.java new file mode 100644 index 000000000..03f697d81 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/mapper/NursingQualityIndicatorMapper.java @@ -0,0 +1,9 @@ +package com.healthlink.his.nursing.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.healthlink.his.nursing.domain.NursingQualityIndicator; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface NursingQualityIndicatorMapper extends BaseMapper { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/service/INursingExecutionScanService.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/service/INursingExecutionScanService.java new file mode 100644 index 000000000..424561659 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/service/INursingExecutionScanService.java @@ -0,0 +1,7 @@ +package com.healthlink.his.nursing.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.healthlink.his.nursing.domain.NursingExecutionScan; + +public interface INursingExecutionScanService extends IService { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/service/INursingHandoffRecordService.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/service/INursingHandoffRecordService.java new file mode 100644 index 000000000..2d199d9a7 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/service/INursingHandoffRecordService.java @@ -0,0 +1,7 @@ +package com.healthlink.his.nursing.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.healthlink.his.nursing.domain.NursingHandoffRecord; + +public interface INursingHandoffRecordService extends IService { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/service/INursingInfusionPatrolService.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/service/INursingInfusionPatrolService.java new file mode 100644 index 000000000..25e8c3d2e --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/service/INursingInfusionPatrolService.java @@ -0,0 +1,7 @@ +package com.healthlink.his.nursing.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.healthlink.his.nursing.domain.NursingInfusionPatrol; + +public interface INursingInfusionPatrolService extends IService { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/service/INursingQualityIndicatorService.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/service/INursingQualityIndicatorService.java new file mode 100644 index 000000000..cecf61552 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/service/INursingQualityIndicatorService.java @@ -0,0 +1,7 @@ +package com.healthlink.his.nursing.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.healthlink.his.nursing.domain.NursingQualityIndicator; + +public interface INursingQualityIndicatorService extends IService { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/service/impl/NursingExecutionScanServiceImpl.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/service/impl/NursingExecutionScanServiceImpl.java new file mode 100644 index 000000000..cc3b36521 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/service/impl/NursingExecutionScanServiceImpl.java @@ -0,0 +1,11 @@ +package com.healthlink.his.nursing.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.healthlink.his.nursing.domain.NursingExecutionScan; +import com.healthlink.his.nursing.mapper.NursingExecutionScanMapper; +import com.healthlink.his.nursing.service.INursingExecutionScanService; +import org.springframework.stereotype.Service; + +@Service +public class NursingExecutionScanServiceImpl extends ServiceImpl implements INursingExecutionScanService { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/service/impl/NursingHandoffRecordServiceImpl.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/service/impl/NursingHandoffRecordServiceImpl.java new file mode 100644 index 000000000..f7a8b4321 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/service/impl/NursingHandoffRecordServiceImpl.java @@ -0,0 +1,11 @@ +package com.healthlink.his.nursing.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.healthlink.his.nursing.domain.NursingHandoffRecord; +import com.healthlink.his.nursing.mapper.NursingHandoffRecordMapper; +import com.healthlink.his.nursing.service.INursingHandoffRecordService; +import org.springframework.stereotype.Service; + +@Service +public class NursingHandoffRecordServiceImpl extends ServiceImpl implements INursingHandoffRecordService { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/service/impl/NursingInfusionPatrolServiceImpl.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/service/impl/NursingInfusionPatrolServiceImpl.java new file mode 100644 index 000000000..91149a760 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/service/impl/NursingInfusionPatrolServiceImpl.java @@ -0,0 +1,11 @@ +package com.healthlink.his.nursing.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.healthlink.his.nursing.domain.NursingInfusionPatrol; +import com.healthlink.his.nursing.mapper.NursingInfusionPatrolMapper; +import com.healthlink.his.nursing.service.INursingInfusionPatrolService; +import org.springframework.stereotype.Service; + +@Service +public class NursingInfusionPatrolServiceImpl extends ServiceImpl implements INursingInfusionPatrolService { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/service/impl/NursingQualityIndicatorServiceImpl.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/service/impl/NursingQualityIndicatorServiceImpl.java new file mode 100644 index 000000000..c36ea5eba --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/service/impl/NursingQualityIndicatorServiceImpl.java @@ -0,0 +1,11 @@ +package com.healthlink.his.nursing.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.healthlink.his.nursing.domain.NursingQualityIndicator; +import com.healthlink.his.nursing.mapper.NursingQualityIndicatorMapper; +import com.healthlink.his.nursing.service.INursingQualityIndicatorService; +import org.springframework.stereotype.Service; + +@Service +public class NursingQualityIndicatorServiceImpl extends ServiceImpl implements INursingQualityIndicatorService { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/pharmacymanage/domain/PharmacyStockAlert.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/pharmacymanage/domain/PharmacyStockAlert.java new file mode 100644 index 000000000..2c1b83862 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/pharmacymanage/domain/PharmacyStockAlert.java @@ -0,0 +1,26 @@ +package com.healthlink.his.pharmacymanage.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.core.common.core.domain.HisBaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; + +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("pharmacy_stock_alert") +public class PharmacyStockAlert extends HisBaseEntity { + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + @TableField("drug_id") private Long drugId; + @TableField("drug_code") private String drugCode; + @TableField("drug_name") private String drugName; + @TableField("drug_spec") private String drugSpec; + @TableField("current_stock") private Integer currentStock; + @TableField("min_stock") private Integer minStock; + @TableField("max_stock") private Integer maxStock; + @TableField("alert_level") private String alertLevel; + @TableField("last_restock_date") private Date lastRestockDate; + @TableField("supplier_name") private String supplierName; + @TableField("status") private Integer status; +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/pharmacymanage/mapper/PharmacyStockAlertMapper.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/pharmacymanage/mapper/PharmacyStockAlertMapper.java new file mode 100644 index 000000000..ea6324ddb --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/pharmacymanage/mapper/PharmacyStockAlertMapper.java @@ -0,0 +1,9 @@ +package com.healthlink.his.pharmacymanage.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.healthlink.his.pharmacymanage.domain.PharmacyStockAlert; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface PharmacyStockAlertMapper extends BaseMapper { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/pharmacymanage/service/IPharmacyStockAlertService.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/pharmacymanage/service/IPharmacyStockAlertService.java new file mode 100644 index 000000000..62b5aaefa --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/pharmacymanage/service/IPharmacyStockAlertService.java @@ -0,0 +1,7 @@ +package com.healthlink.his.pharmacymanage.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.healthlink.his.pharmacymanage.domain.PharmacyStockAlert; + +public interface IPharmacyStockAlertService extends IService { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/pharmacymanage/service/impl/PharmacyStockAlertServiceImpl.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/pharmacymanage/service/impl/PharmacyStockAlertServiceImpl.java new file mode 100644 index 000000000..6285db241 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/pharmacymanage/service/impl/PharmacyStockAlertServiceImpl.java @@ -0,0 +1,11 @@ +package com.healthlink.his.pharmacymanage.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.healthlink.his.pharmacymanage.domain.PharmacyStockAlert; +import com.healthlink.his.pharmacymanage.mapper.PharmacyStockAlertMapper; +import com.healthlink.his.pharmacymanage.service.IPharmacyStockAlertService; +import org.springframework.stereotype.Service; + +@Service +public class PharmacyStockAlertServiceImpl extends ServiceImpl implements IPharmacyStockAlertService { +} diff --git a/healthlink-his-ui/src/views/labhistory/api.js b/healthlink-his-ui/src/views/labhistory/api.js new file mode 100644 index 000000000..d095f35d1 --- /dev/null +++ b/healthlink-his-ui/src/views/labhistory/api.js @@ -0,0 +1,4 @@ +import request from '@/utils/request' +export function compareResults(p){return request({url:'/lab-history/compare',method:'get',params:p})} +export function addResult(d){return request({url:'/lab-history/add',method:'post',data:d})} +export function getTrend(p){return request({url:'/lab-history/trend',method:'get',params:p})} diff --git a/healthlink-his-ui/src/views/labhistory/index.vue b/healthlink-his-ui/src/views/labhistory/index.vue new file mode 100644 index 000000000..b466e5c99 --- /dev/null +++ b/healthlink-his-ui/src/views/labhistory/index.vue @@ -0,0 +1,30 @@ + + diff --git a/healthlink-his-ui/src/views/nursingexecution/api.js b/healthlink-his-ui/src/views/nursingexecution/api.js new file mode 100644 index 000000000..d621acfcf --- /dev/null +++ b/healthlink-his-ui/src/views/nursingexecution/api.js @@ -0,0 +1,8 @@ +import request from '@/utils/request' +export function getScanPage(p){return request({url:'/nursing-execution/scan/page',method:'get',params:p})} +export function addScan(d){return request({url:'/nursing-execution/scan/add',method:'post',data:d})} +export function getHandoffPage(p){return request({url:'/nursing-execution/handoff/page',method:'get',params:p})} +export function addHandoff(d){return request({url:'/nursing-execution/handoff/add',method:'post',data:d})} +export function confirmHandoff(id){return request({url:'/nursing-execution/handoff/confirm',method:'post',params:{id}})} +export function getInfusionPage(p){return request({url:'/nursing-execution/infusion/page',method:'get',params:p})} +export function addInfusion(d){return request({url:'/nursing-execution/infusion/add',method:'post',data:d})} diff --git a/healthlink-his-ui/src/views/nursingexecution/index.vue b/healthlink-his-ui/src/views/nursingexecution/index.vue new file mode 100644 index 000000000..a320befd4 --- /dev/null +++ b/healthlink-his-ui/src/views/nursingexecution/index.vue @@ -0,0 +1,69 @@ + + diff --git a/healthlink-his-ui/src/views/nursingquality/api.js b/healthlink-his-ui/src/views/nursingquality/api.js new file mode 100644 index 000000000..f6ea963a9 --- /dev/null +++ b/healthlink-his-ui/src/views/nursingquality/api.js @@ -0,0 +1,4 @@ +import request from '@/utils/request' +export function getQualityPage(p){return request({url:'/nursing-quality/page',method:'get',params:p})} +export function addIndicator(d){return request({url:'/nursing-quality/add',method:'post',data:d})} +export function getQualitySummary(){return request({url:'/nursing-quality/summary',method:'get'})} diff --git a/healthlink-his-ui/src/views/nursingquality/index.vue b/healthlink-his-ui/src/views/nursingquality/index.vue new file mode 100644 index 000000000..63025679f --- /dev/null +++ b/healthlink-his-ui/src/views/nursingquality/index.vue @@ -0,0 +1,30 @@ + + diff --git a/healthlink-his-ui/src/views/pharmacystockalert/api.js b/healthlink-his-ui/src/views/pharmacystockalert/api.js new file mode 100644 index 000000000..2d263e371 --- /dev/null +++ b/healthlink-his-ui/src/views/pharmacystockalert/api.js @@ -0,0 +1,4 @@ +import request from '@/utils/request' +export function getAlertPage(p){return request({url:'/pharmacy-stock-alert/page',method:'get',params:p})} +export function addAlert(d){return request({url:'/pharmacy-stock-alert/add',method:'post',data:d})} +export function getAlertStats(){return request({url:'/pharmacy-stock-alert/stats',method:'get'})} diff --git a/healthlink-his-ui/src/views/pharmacystockalert/index.vue b/healthlink-his-ui/src/views/pharmacystockalert/index.vue new file mode 100644 index 000000000..04c07e0e3 --- /dev/null +++ b/healthlink-his-ui/src/views/pharmacystockalert/index.vue @@ -0,0 +1,31 @@ + + diff --git a/healthlink-his-ui/src/views/radiologycomparison/api.js b/healthlink-his-ui/src/views/radiologycomparison/api.js new file mode 100644 index 000000000..56f5597d5 --- /dev/null +++ b/healthlink-his-ui/src/views/radiologycomparison/api.js @@ -0,0 +1,3 @@ +import request from '@/utils/request' +export function compareImages(p){return request({url:'/radiology-comparison/compare',method:'get',params:p})} +export function addRecord(d){return request({url:'/radiology-comparison/add',method:'post',data:d})} diff --git a/healthlink-his-ui/src/views/radiologycomparison/index.vue b/healthlink-his-ui/src/views/radiologycomparison/index.vue new file mode 100644 index 000000000..8770b251e --- /dev/null +++ b/healthlink-his-ui/src/views/radiologycomparison/index.vue @@ -0,0 +1,27 @@ + +