refactor: 彻底清除所有openhis痕迹
- 重命名目录: openhis-server-new → healthlink-his-server - 重命名目录: openhis-ui-vue3 → healthlink-his-ui - 重命名Java类: OpenHisApplication → HealthLinkHisApplication - 重命名Java类: OpenHisMiniApp → HealthLinkHisMiniApp - 重命名组件目录: OpenHis → HealthLinkHis - 重命名样式文件: openhis.scss → healthlink-his.scss - 重命名配置: nginx-openhis.conf → nginx-healthlink-his.conf - 更新所有源码引用 (0个残留) - 更新所有文档/脚本/配置中的引用
This commit is contained in:
@@ -25,8 +25,8 @@
|
||||
- 结果:transfer 组件的 "已选择" 区域显示"无数据"
|
||||
|
||||
### 涉及文件
|
||||
- **前端**: `openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/applicationForm/laboratoryTests.vue` (line 347-382)
|
||||
- **前端**: `openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/testApplication.vue` (line 193-210, 弹窗渲染处)
|
||||
- **前端**: `healthlink-his-ui/src/views/inpatientDoctor/home/components/order/applicationForm/laboratoryTests.vue` (line 347-382)
|
||||
- **前端**: `healthlink-his-ui/src/views/inpatientDoctor/home/components/applicationShow/testApplication.vue` (line 193-210, 弹窗渲染处)
|
||||
|
||||
### 修复方案
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
- **Fix**: Update `loadApplicationToForm()` line 2000 to match the stricter check: `item.feePackageId != null && item.feePackageId !== '' && item.feePackageId !== 'null' && item.packageName`.
|
||||
|
||||
## Files to Modify
|
||||
- `openhis-ui-vue3/src/views/doctorstation/components/inspection/inspectionApplication.vue`
|
||||
- `healthlink-his-ui/src/views/doctorstation/components/inspection/inspectionApplication.vue`
|
||||
|
||||
## Changes
|
||||
1. `initData()`: Add `formData.executeTime = formatDateTime(new Date())` after line 899
|
||||
|
||||
@@ -28,8 +28,8 @@
|
||||
|
||||
## 影响范围
|
||||
|
||||
- 前端文件:`openhis-ui-vue3/src/views/doctorstation/components/prescription/orderGroupDrawer.vue`
|
||||
- 前端文件:`openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/index.vue`
|
||||
- 前端文件:`healthlink-his-ui/src/views/doctorstation/components/prescription/orderGroupDrawer.vue`
|
||||
- 前端文件:`healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue`
|
||||
- 影响场景:住院医生工作站和门诊医生工作站应用医嘱组套
|
||||
|
||||
## 修复方案
|
||||
@@ -55,7 +55,7 @@
|
||||
|
||||
## 修复结果:✅ 成功,10行改动
|
||||
|
||||
**修改文件**:`openhis-ui-vue3/src/views/doctorstation/components/prescription/orderGroupDrawer.vue`
|
||||
**修改文件**:`healthlink-his-ui/src/views/doctorstation/components/prescription/orderGroupDrawer.vue`
|
||||
|
||||
**改动说明**:在 `handleUseOrderGroup` 函数的 processed item 中显式添加了以下缺失字段:
|
||||
- `doseUnitCode_dictText`:剂量单位显示文本(如"mg"),用于"单次剂量"列的后缀显示
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
- 仓库根目录:`/root/.openclaw/workspace/his-repo`
|
||||
- 分支:`develop`
|
||||
- 标准启动路径:`cd openhis-server-new && mvn compile -pl openhis-application -am`
|
||||
- 标准启动路径:`cd healthlink-his-server && mvn compile -pl healthlink-his-application -am`
|
||||
- 标准验证路径:`bash .harness/check.sh`(一键全部门禁)
|
||||
- 标准初始化:`bash .harness/init.sh`
|
||||
- 标准作业流程:`.harness/STANDARD_OPERATING_PROCEDURE.md`
|
||||
|
||||
@@ -85,7 +85,7 @@ git status --short
|
||||
|
||||
```bash
|
||||
# L1: 编译检查
|
||||
cd openhis-server-new && mvn compile -pl openhis-application -am
|
||||
cd healthlink-his-server && mvn compile -pl healthlink-his-application -am
|
||||
|
||||
# L2: 全链路门禁
|
||||
bash .harness/check.sh
|
||||
|
||||
@@ -37,7 +37,7 @@ echo "╚═══════════════════════
|
||||
# ── L1: 编译检查 ──
|
||||
echo ""
|
||||
echo "╔══ L1 编译检查 ══════════════════════╗"
|
||||
check "L1" "后端编译" "cd '$ROOT_DIR/openhis-server-new' && mvn compile -pl openhis-application -am -q"
|
||||
check "L1" "后端编译" "cd '$ROOT_DIR/healthlink-his-server' && mvn compile -pl healthlink-his-application -am -q"
|
||||
|
||||
# ── L2: 全链路检查 ──
|
||||
echo ""
|
||||
@@ -50,7 +50,7 @@ check "L2" "PROGRESS.md 存在" "test -f '$ROOT_DIR/.harness/PROGRESS.md'"
|
||||
check "L2" "feature_list.json 有效" "python3 -c 'import json; json.load(open(\"$ROOT_DIR/.harness/feature_list.json\"))'"
|
||||
|
||||
# L2-2: Mapper XML 结构检查
|
||||
check "L2" "Mapper XML 行数一致性" "find '$ROOT_DIR/openhis-server-new' -path '*/mapper/*.xml' -exec wc -l {} + 2>/dev/null | tail -1 | awk '{print \$1}' | xargs test 0 -lt"
|
||||
check "L2" "Mapper XML 行数一致性" "find '$ROOT_DIR/healthlink-his-server' -path '*/mapper/*.xml' -exec wc -l {} + 2>/dev/null | tail -1 | awk '{print \$1}' | xargs test 0 -lt"
|
||||
|
||||
# ── L3: 约束合规检查 ──
|
||||
echo ""
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"project": "OpenHIS",
|
||||
"project": "HealthLink-HIS",
|
||||
"last_updated": "2026-05-28",
|
||||
"rules": {
|
||||
"single_active_feature": true,
|
||||
|
||||
@@ -13,8 +13,8 @@ git log --oneline -3 2>/dev/null || true
|
||||
|
||||
echo ""
|
||||
echo "==> 编译检查"
|
||||
cd openhis-server-new
|
||||
mvn compile -pl openhis-application -am -q 2>/dev/null && echo " ✅ 编译通过" || echo " ❌ 编译失败"
|
||||
cd healthlink-his-server
|
||||
mvn compile -pl healthlink-his-application -am -q 2>/dev/null && echo " ✅ 编译通过" || echo " ❌ 编译失败"
|
||||
|
||||
echo ""
|
||||
echo "==> 读取进度"
|
||||
|
||||
@@ -24,6 +24,6 @@
|
||||
|
||||
## 命令速查
|
||||
|
||||
- 编译:`cd openhis-server-new && mvn compile -pl openhis-application -am`
|
||||
- 编译:`cd healthlink-his-server && mvn compile -pl healthlink-his-application -am`
|
||||
- 打包:`mvn clean package -DskipTests`
|
||||
- 启动:`mvn spring-boot:run`
|
||||
|
||||
30
AGENTS.md
30
AGENTS.md
@@ -1,7 +1,7 @@
|
||||
# OpenHIS — Harness Engineering 开发指南
|
||||
# HealthLink-HIS — Harness Engineering 开发指南
|
||||
|
||||
> **模型决定上限,Harness 决定底线。**
|
||||
> 本文件是 OpenHIS 项目的 Harness Engineering 落地。整合了 OpenAI/Anthropic Harness Engineering 方法论与 walkinglabs 实战模式。
|
||||
> 本文件是 HealthLink-HIS 项目的 Harness Engineering 落地。整合了 OpenAI/Anthropic Harness Engineering 方法论与 walkinglabs 实战模式。
|
||||
|
||||
> **🔴 铁律统一文件**: `/root/.codex/rules/IRON_LAWS.md` — 所有智能体必须遵守,运行时自动加载。
|
||||
> **📦 技能包安装**: https://github.com/paskaa/agentforge-harness-skill — 其他电脑一键安装所有铁律和技能。
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
## 📋 项目信息
|
||||
|
||||
OpenHIS 医院管理系统 | Java 17 + Spring Boot + MyBatis Plus | Vue 3 + Element Plus | PostgreSQL
|
||||
HealthLink-HIS 医院管理系统 | Java 17 + Spring Boot + MyBatis Plus | Vue 3 + Element Plus | PostgreSQL
|
||||
|
||||
### 构建和运行
|
||||
|
||||
@@ -21,25 +21,25 @@ cd /root/.openclaw/workspace/his-repo
|
||||
bash .harness/init.sh
|
||||
|
||||
# 后端编译
|
||||
cd openhis-server-new && mvn compile -pl openhis-application -am
|
||||
cd healthlink-his-server && mvn compile -pl healthlink-his-application -am
|
||||
|
||||
# 后端打包
|
||||
mvn clean package -DskipTests
|
||||
|
||||
# 后端运行
|
||||
cd openhis-application && mvn spring-boot:run
|
||||
cd healthlink-his-application && mvn spring-boot:run
|
||||
|
||||
# 前端
|
||||
cd openhis-ui-vue3 && npm install && npm run dev
|
||||
cd healthlink-his-ui && npm install && npm run dev
|
||||
```
|
||||
|
||||
### 关键路径
|
||||
|
||||
```
|
||||
后端代码: openhis-server-new/openhis-application/src/main/java/com/
|
||||
后端配置: openhis-server-new/openhis-application/src/main/resources/
|
||||
后端代码: healthlink-his-server/healthlink-his-application/src/main/java/com/
|
||||
后端配置: healthlink-his-server/healthlink-his-application/src/main/resources/
|
||||
Mapper XML: .../mapper/ (regdoctorstation/, doctorstation/, ...)
|
||||
前端代码: openhis-ui-vue3/src/
|
||||
前端代码: healthlink-his-ui/src/
|
||||
Harness: .harness/ (init.sh, PROGRESS.md, feature_list.json, ...)
|
||||
```
|
||||
|
||||
@@ -89,7 +89,7 @@ Harness: .harness/ (init.sh, PROGRESS.md, feature_list.json, ...)
|
||||
|
||||
| 层级 | 命令 | 时间 |
|
||||
|---|---|---|
|
||||
| L1 编译 | `mvn compile -pl openhis-application -am` | <30 秒 |
|
||||
| L1 编译 | `mvn compile -pl healthlink-his-application -am` | <30 秒 |
|
||||
| L2 全链路 | 六环检查清单(见下文) | <5 分钟 |
|
||||
| L3 审查 | 你人工审查 diff | 10-30 分钟 |
|
||||
|
||||
@@ -191,7 +191,7 @@ Harness: .harness/ (init.sh, PROGRESS.md, feature_list.json, ...)
|
||||
|
||||
### 数据库变更必须通过 Flyway 迁移(铁律)
|
||||
凡涉及**新建表、新增字段、修改字段、加索引**等 DDL 变更,**必须**通过 Flyway 框架实现:
|
||||
1. 在 `openhis-server-new/openhis-application/src/main/resources/db/migration/` 创建 `V{n}__描述.sql`
|
||||
1. 在 `healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/` 创建 `V{n}__描述.sql`
|
||||
2. 版本号递增(`V2`, `V3`, `V4`...),双下划线分隔
|
||||
3. **禁止**直接在数据库执行 DDL 而不创建迁移文件
|
||||
4. **禁止**修改已执行的迁移文件(Flyway 会校验 checksum)
|
||||
@@ -234,7 +234,7 @@ rg "状态枚举名\|相关方法名\|相关字段名" --type java --type vue
|
||||
|
||||
| 项目 | 规范 |
|
||||
|---|---|
|
||||
| 包结构 | `com.openhis`(业务)、`com.core`(核心) |
|
||||
| 包结构 | `com.healthlink.his`(业务)、`com.core`(核心) |
|
||||
| 命名 | 类 PascalCase、方法 camelCase、常量 SCREAMING_SNAKE_CASE |
|
||||
| 注解 | `@Slf4j`、`@Data`、`@Service/@Controller/@Repository` |
|
||||
| 异常 | 统一异常处理,业务异常继承 `RuntimeException` |
|
||||
@@ -250,7 +250,7 @@ rg "状态枚举名\|相关方法名\|相关字段名" --type java --type vue
|
||||
|
||||
### 导入顺序
|
||||
|
||||
**Java:** `java.*` → `javax.*` → 第三方 → `com.core.*` → `com.openhis.*`
|
||||
**Java:** `java.*` → `javax.*` → 第三方 → `com.core.*` → `com.healthlink.his.*`
|
||||
**Vue:** `vue` 相关 → 第三方 → `@/` 别名 → 相对路径
|
||||
|
||||
---
|
||||
@@ -272,8 +272,8 @@ rg "状态枚举名\|相关方法名\|相关字段名" --type java --type vue
|
||||
|---|---|
|
||||
| 后端端口 | 18080 |
|
||||
| 前端端口 | 81 |
|
||||
| API 前缀 | `/openhis` |
|
||||
| Swagger | `/openhis/swagger-ui/index.html` |
|
||||
| API 前缀 | `/healthlink-his` |
|
||||
| Swagger | `/healthlink-his/swagger-ui/index.html` |
|
||||
| 后端配置 | `application.yml` / `application-{profile}.yml` |
|
||||
| 前端配置 | `vite.config.js` / `.env.*` |
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ if (data.anesthesiaTypeEnum != null) form.anesMethod = Number(data.anesthesiaTyp
|
||||
|
||||
## 影响范围
|
||||
|
||||
- **前端**: `openhis-ui-vue3/src/views/surgicalschedule/index.vue` — `handleEdit` 和 `handleView` 方法
|
||||
- **前端**: `healthlink-his-ui/src/views/surgicalschedule/index.vue` — `handleEdit` 和 `handleView` 方法
|
||||
- **后端**: 无需修改(字段已存在且正常返回)
|
||||
- **数据库**: 无需修改(字段已存在)
|
||||
|
||||
|
||||
@@ -74,6 +74,6 @@
|
||||
同时保留 `orderedDescFieldKeys` 用于打印功能(已有代码使用)。
|
||||
|
||||
## 变更文件
|
||||
- `openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/examineApplication.vue`(前端模板修改)
|
||||
- `healthlink-his-ui/src/views/inpatientDoctor/home/components/applicationShow/examineApplication.vue`(前端模板修改)
|
||||
|
||||
修复结果:✅ 成功,5行改动(+5/-8)
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
|
||||
| 序号 | 文件路径 | 修改类型 | 说明 |
|
||||
|------|---------|---------|------|
|
||||
| 1 | `his-source/openhis-server-new/openhis-domain/src/main/resources/mapper/administration/ScheduleSlotMapper.xml` | SQL 查询修改 | 性别字段直接从患者表获取 |
|
||||
| 2 | `his-source/openhis-server-new/openhis-application/src/main/java/com/openhis/web/appointmentmanage/appservice/impl/TicketAppServiceImpl.java` | Java 代码修改 | 性别处理逻辑修改 |
|
||||
| 1 | `his-source/healthlink-his-server/openhis-domain/src/main/resources/mapper/administration/ScheduleSlotMapper.xml` | SQL 查询修改 | 性别字段直接从患者表获取 |
|
||||
| 2 | `his-source/healthlink-his-server/healthlink-his-application/src/main/java/com/openhis/web/appointmentmanage/appservice/impl/TicketAppServiceImpl.java` | Java 代码修改 | 性别处理逻辑修改 |
|
||||
|
||||
---
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
### 修改 1: ScheduleSlotMapper.xml
|
||||
|
||||
**文件:** `his-source/openhis-server-new/openhis-domain/src/main/resources/mapper/administration/ScheduleSlotMapper.xml`
|
||||
**文件:** `his-source/healthlink-his-server/openhis-domain/src/main/resources/mapper/administration/ScheduleSlotMapper.xml`
|
||||
|
||||
**修改位置:** 第97行
|
||||
|
||||
@@ -33,7 +33,7 @@ pinfo.gender_enum AS genderEnum,
|
||||
|
||||
### 修改 2: TicketAppServiceImpl.java
|
||||
|
||||
**文件:** `his-source/openhis-server-new/openhis-application/src/main/java/com/openhis/web/appointmentmanage/appservice/impl/TicketAppServiceImpl.java`
|
||||
**文件:** `his-source/healthlink-his-server/healthlink-his-application/src/main/java/com/openhis/web/appointmentmanage/appservice/impl/TicketAppServiceImpl.java`
|
||||
|
||||
**修改位置:** 第140-145行
|
||||
|
||||
@@ -75,7 +75,7 @@ if (genderEnum != null) {
|
||||
|
||||
### 修改 TicketSlotDTO.java
|
||||
|
||||
**文件:** `his-source/openhis-server-new/openhis-domain/src/main/java/com/openhis/appointmentmanage/domain/TicketSlotDTO.java`
|
||||
**文件:** `his-source/healthlink-his-server/openhis-domain/src/main/java/com/openhis/appointmentmanage/domain/TicketSlotDTO.java`
|
||||
|
||||
**修改:** 添加 `genderEnum` 字段
|
||||
|
||||
@@ -96,7 +96,7 @@ public void setGenderEnum(Integer genderEnum) {
|
||||
## 编译部署
|
||||
|
||||
```bash
|
||||
cd his-source/openhis-server-new
|
||||
cd his-source/healthlink-his-server
|
||||
mvn clean package -DskipTests
|
||||
```
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
- 确保与挂号界面查询的数据来源一致
|
||||
|
||||
### 修改文件
|
||||
- `his-source/openhis-server-new/openhis-application/src/main/java/com/openhis/web/appointmentmanage/appservice/impl/TicketAppServiceImpl.java`
|
||||
- `his-source/healthlink-his-server/healthlink-his-application/src/main/java/com/openhis/web/appointmentmanage/appservice/impl/TicketAppServiceImpl.java`
|
||||
|
||||
### 代码变更
|
||||
```java
|
||||
|
||||
@@ -37,8 +37,8 @@ Planning Time: 4.349 ms
|
||||
### 影响范围
|
||||
|
||||
**涉及文件:**
|
||||
- `openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java` — 后端手术分页查询实现(需加缓存)
|
||||
- `openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/applicationForm/surgery.vue` — 前端手术申请单组件(需修复 loading 状态)
|
||||
- `healthlink-his-server/healthlink-his-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java` — 后端手术分页查询实现(需加缓存)
|
||||
- `healthlink-his-ui/src/views/inpatientDoctor/home/components/order/applicationForm/surgery.vue` — 前端手术申请单组件(需修复 loading 状态)
|
||||
|
||||
**涉及数据表:**
|
||||
- `wor_activity_definition` — 活动定义表(手术项目源表),10,102条手术记录
|
||||
|
||||
@@ -35,8 +35,8 @@
|
||||
中间状态(已校对=2、待接收=3、已接收=4)由护理/医技等外部系统管理,本代码范围不涉及。
|
||||
|
||||
### 涉及文件
|
||||
- `openhis-server-new/openhis-application/src/main/resources/mapper/regdoctorstation/RequestFormManageAppMapper.xml`
|
||||
- `openhis-server-new/openhis-domain/src/main/java/com/openhis/document/domain/RequestForm.java`
|
||||
- `healthlink-his-server/healthlink-his-application/src/main/resources/mapper/regdoctorstation/RequestFormManageAppMapper.xml`
|
||||
- `healthlink-his-server/openhis-domain/src/main/java/com/openhis/document/domain/RequestForm.java`
|
||||
|
||||
## 修复结果
|
||||
|
||||
@@ -55,6 +55,6 @@
|
||||
- 添加 `status` 字段,补全领域模型
|
||||
|
||||
### 验证
|
||||
- ✅ Java 编译通过(mvn compile -pl openhis-application -am -DskipTests)
|
||||
- ✅ Java 编译通过(mvn compile -pl healthlink-his-application -am -DskipTests)
|
||||
- ✅ XML 格式正确(ElementTree 解析成功)
|
||||
- ✅ 改动量 > 3 行(+86/-49)
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
[住院护士站-三测单] 体征录入点击保存后缺乏执行反馈且窗口异常自动关闭
|
||||
|
||||
## 涉及文件
|
||||
- 前端: `openhis-ui-vue3/src/views/inpatientNurse/tprChart/components/addTprDialog.vue`
|
||||
- API: `openhis-ui-vue3/src/views/inpatientNurse/tprChart/components/api.js`
|
||||
- 父组件: `openhis-ui-vue3/src/views/inpatientNurse/tprChart/index.vue`
|
||||
- 前端: `healthlink-his-ui/src/views/inpatientNurse/tprChart/components/addTprDialog.vue`
|
||||
- API: `healthlink-his-ui/src/views/inpatientNurse/tprChart/components/api.js`
|
||||
- 父组件: `healthlink-his-ui/src/views/inpatientNurse/tprChart/index.vue`
|
||||
|
||||
## 根因分析
|
||||
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
- **项目名称**: 开源HIS改造落地
|
||||
- **当前分支**: develop
|
||||
- **代码路径**:
|
||||
- 前端: openhis-ui-vue3
|
||||
- 后端: openhis-server-new
|
||||
- 前端: healthlink-his-ui
|
||||
- 后端: healthlink-his-server
|
||||
- ** Git仓库**: https://gitea.gentronhealth.com/wangyizhe/his
|
||||
- **禅道地址**: https://zentao.gentronhealth.com
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
**修复人:** 关羽
|
||||
**修复日期:** 2026-04-06
|
||||
**项目版本:** OpenHIS v2.0
|
||||
**项目版本:** HealthLink-HIS v2.0
|
||||
|
||||
---
|
||||
|
||||
@@ -23,13 +23,13 @@
|
||||
- MyBatis 返回的 `register_time` 无法映射到前端的 `registerTime`,导致数据无法显示
|
||||
|
||||
**代码位置:**
|
||||
- 文件:`openhis-server-new/openhis-application/src/main/resources/mapper/chargemanage/OutpatientRegistrationAppMapper.xml`
|
||||
- 文件:`healthlink-his-server/healthlink-his-application/src/main/resources/mapper/chargemanage/OutpatientRegistrationAppMapper.xml`
|
||||
- 方法:`getCurrentDayEncounter`
|
||||
- 行号:约第 72 行和第 88 行
|
||||
|
||||
### 二、修改步骤
|
||||
|
||||
**文件:** `openhis-server-new/openhis-application/src/main/resources/mapper/chargemanage/OutpatientRegistrationAppMapper.xml`
|
||||
**文件:** `healthlink-his-server/healthlink-his-application/src/main/resources/mapper/chargemanage/OutpatientRegistrationAppMapper.xml`
|
||||
|
||||
**修改 1:字段别名修正(第 72 行)**
|
||||
```xml
|
||||
@@ -77,12 +77,12 @@ ORDER BY T9.registerTime DESC
|
||||
- 当前端未传递这些字段时,它们为 null,导致数据库插入失败或 NullPointerException
|
||||
|
||||
**代码位置:**
|
||||
- 文件:`openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java`
|
||||
- 文件:`healthlink-his-server/healthlink-his-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java`
|
||||
- 方法:`handMedication()`、`handDevice()`、`handService()`
|
||||
|
||||
### 二、修改步骤
|
||||
|
||||
**文件:** `openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java`
|
||||
**文件:** `healthlink-his-server/healthlink-his-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java`
|
||||
|
||||
#### 修改 1:handMedication 方法(约第 756 行)
|
||||
|
||||
@@ -160,7 +160,7 @@ if (adviceSaveDto.getFounderOrgId() == null) {
|
||||
|
||||
### 当前状态
|
||||
|
||||
已读取 `openhis-ui-vue3/src/views/charge/outpatientregistration/index.vue` 文件,未发现明显的 UI 布局问题。
|
||||
已读取 `healthlink-his-ui/src/views/charge/outpatientregistration/index.vue` 文件,未发现明显的 UI 布局问题。
|
||||
|
||||
现有页面符合 Element Plus 组件库规范,布局合理。
|
||||
|
||||
@@ -198,8 +198,8 @@ if (adviceSaveDto.getFounderOrgId() == null) {
|
||||
|
||||
| 序号 | 文件路径 | 修改类型 | 说明 |
|
||||
|------|---------|---------|------|
|
||||
| 1 | `openhis-server-new/openhis-application/src/main/resources/mapper/chargemanage/OutpatientRegistrationAppMapper.xml` | 字段别名修复 | 将 `register_time` 改为 `registerTime` |
|
||||
| 2 | `openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java` | 新增字段补全逻辑 | 在三个医嘱处理方法中添加 `practitionerId` 和 `founderOrgId` 自动补全 |
|
||||
| 1 | `healthlink-his-server/healthlink-his-application/src/main/resources/mapper/chargemanage/OutpatientRegistrationAppMapper.xml` | 字段别名修复 | 将 `register_time` 改为 `registerTime` |
|
||||
| 2 | `healthlink-his-server/healthlink-his-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java` | 新增字段补全逻辑 | 在三个医嘱处理方法中添加 `practitionerId` 和 `founderOrgId` 自动补全 |
|
||||
|
||||
---
|
||||
|
||||
@@ -207,13 +207,13 @@ if (adviceSaveDto.getFounderOrgId() == null) {
|
||||
|
||||
1. **后端部署:**
|
||||
```bash
|
||||
cd openhis-server-new
|
||||
cd healthlink-his-server
|
||||
mvn clean package -DskipTests
|
||||
```
|
||||
|
||||
2. **重启服务:**
|
||||
```bash
|
||||
cd openhis-server-new/openhis-application
|
||||
cd healthlink-his-server/healthlink-his-application
|
||||
mvn spring-boot:run
|
||||
```
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
检验申请列表的【操作】列仅显示固定的"打印"和"删除"按钮,未根据申请单状态动态切换操作权限。
|
||||
|
||||
## 根因分析
|
||||
文件 `openhis-ui-vue3/src/views/doctorstation/components/inspection/inspectionApplication.vue` 第97-104行:
|
||||
文件 `healthlink-his-ui/src/views/doctorstation/components/inspection/inspectionApplication.vue` 第97-104行:
|
||||
- 操作列模板中固定渲染"打印"和"删除"按钮,没有任何状态判断逻辑
|
||||
- 缺少"修改"和"撤回"按钮
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
| 其他状态 | 已采证/已送检/报告已出/已作废 | 详情 |
|
||||
|
||||
### 涉及文件
|
||||
- `openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/testApplication.vue` - 前端操作列动态按钮
|
||||
- `openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/api.js` - 前端API(deleteRequestForm, withdrawRequestForm)
|
||||
- `openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/controller/RequestFormManageController.java` - 后端Controller(/delete, /withdraw 端点)
|
||||
- `openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/impl/RequestFormManageAppServiceImpl.java` - 后端Service实现
|
||||
- `healthlink-his-ui/src/views/inpatientDoctor/home/components/applicationShow/testApplication.vue` - 前端操作列动态按钮
|
||||
- `healthlink-his-ui/src/views/inpatientDoctor/home/components/applicationShow/api.js` - 前端API(deleteRequestForm, withdrawRequestForm)
|
||||
- `healthlink-his-server/healthlink-his-application/src/main/java/com/openhis/web/regdoctorstation/controller/RequestFormManageController.java` - 后端Controller(/delete, /withdraw 端点)
|
||||
- `healthlink-his-server/healthlink-his-application/src/main/java/com/openhis/web/regdoctorstation/appservice/impl/RequestFormManageAppServiceImpl.java` - 后端Service实现
|
||||
|
||||
@@ -844,7 +844,7 @@ import {
|
||||
reject,
|
||||
submitApproval,
|
||||
} from '../components/api';
|
||||
import TraceNoDialog from '@/components/OpenHis/TraceNoDialog/index.vue';
|
||||
import TraceNoDialog from '@/components/HealthLinkHis/TraceNoDialog/index.vue';
|
||||
import {formatDate, formatDateymd} from '@/utils/index';
|
||||
import {ref} from 'vue';
|
||||
import useUserStore from '@/store/modules/user';
|
||||
|
||||
@@ -643,8 +643,8 @@ import {
|
||||
getstocktakingDetail,
|
||||
submitApproval,
|
||||
} from '../components/api';
|
||||
import PopoverList from '@/components/OpenHis/popoverList/index.vue';
|
||||
import TraceNoDialog from '@/components/OpenHis/TraceNoDialog/index.vue';
|
||||
import PopoverList from '@/components/HealthLinkHis/popoverList/index.vue';
|
||||
import TraceNoDialog from '@/components/HealthLinkHis/TraceNoDialog/index.vue';
|
||||
import MedicineList from '../components/medicineList.vue';
|
||||
import {formatDate} from '@/utils/index';
|
||||
import useUserStore from '@/store/modules/user';
|
||||
|
||||
@@ -680,7 +680,7 @@ import {
|
||||
reject,
|
||||
submitApproval,
|
||||
} from '../lossReporting';
|
||||
import PopoverList from '@/components/OpenHis/popoverList/index.vue';
|
||||
import PopoverList from '@/components/HealthLinkHis/popoverList/index.vue';
|
||||
import transferManagement from './components/lossReporting.vue';
|
||||
import {formatDate, formatDateymd} from '@/utils/index';
|
||||
import useUserStore from '@/store/modules/user';
|
||||
|
||||
@@ -128,7 +128,7 @@
|
||||
<script setup>
|
||||
import {onMounted, reactive, ref} from 'vue';
|
||||
import {ElMessage, ElMessageBox} from 'element-plus';
|
||||
import {parseTime} from '@/utils/openhis';
|
||||
import {parseTime} from '@/utils/his';
|
||||
import Pagination from '@/components/Pagination';
|
||||
import {
|
||||
cancelSupplyRequestData,
|
||||
|
||||
@@ -159,7 +159,7 @@
|
||||
<script setup>
|
||||
import {onMounted, reactive, ref} from 'vue';
|
||||
import {ElMessage} from 'element-plus';
|
||||
import {parseTime} from '@/utils/openhis';
|
||||
import {parseTime} from '@/utils/his';
|
||||
import Pagination from '@/components/Pagination';
|
||||
import request from '@/utils/request';
|
||||
//import { getPriceAdjustmentPage, getPriceAdjustmentDetail, cancelPriceAdjustment } from './components/api';
|
||||
|
||||
@@ -765,7 +765,7 @@ import {
|
||||
searchAllOrgData,
|
||||
searchHealthData,
|
||||
} from './components/api';
|
||||
import PopoverList from '@/components/OpenHis/popoverList/index.vue';
|
||||
import PopoverList from '@/components/HealthLinkHis/popoverList/index.vue';
|
||||
import medicineList from './components/medicineList.vue';
|
||||
import useUserStore from '@/store/modules/user';
|
||||
import {ref, watch} from 'vue';
|
||||
|
||||
@@ -758,9 +758,9 @@ import {
|
||||
reject,
|
||||
submitApproval,
|
||||
} from "./components/api";
|
||||
import PopoverList from "@/components/OpenHis/popoverList/index.vue";
|
||||
import PopoverList from "@/components/HealthLinkHis/popoverList/index.vue";
|
||||
import MedicineList from "./components/medicineList.vue";
|
||||
import TraceNoDialog from "@/components/OpenHis/TraceNoDialog/index.vue";
|
||||
import TraceNoDialog from "@/components/HealthLinkHis/TraceNoDialog/index.vue";
|
||||
import {formatDate, formatDateymd} from "@/utils/index";
|
||||
import {useStore} from "@/store/store";
|
||||
import useUserStore from "@/store/modules/user";
|
||||
|
||||
@@ -663,7 +663,7 @@ import {
|
||||
getPharmacyList,
|
||||
submitApproval,
|
||||
} from './purchaseinventory';
|
||||
import PopoverList from '@/components/OpenHis/popoverList/index.vue';
|
||||
import PopoverList from '@/components/HealthLinkHis/popoverList/index.vue';
|
||||
import MedicineList from './medicineList.vue';
|
||||
import {formatDate} from '@/utils/index';
|
||||
import useUserStore from '@/store/modules/user';
|
||||
|
||||
@@ -633,13 +633,13 @@ import {
|
||||
requisitionIssueApproved,
|
||||
submitApproval,
|
||||
} from '../components/api';
|
||||
import PopoverList from '@/components/OpenHis/popoverList/index.vue';
|
||||
import PopoverList from '@/components/HealthLinkHis/popoverList/index.vue';
|
||||
import transferManagement from '../components/list.vue';
|
||||
import {formatDate} from '@/utils/index';
|
||||
import useUserStore from '@/store/modules/user';
|
||||
import {useStore} from '@/store/store';
|
||||
import useTagsViewStore from '@/store/modules/tagsView';
|
||||
import TraceNoDialog from '@/components/OpenHis/TraceNoDialog/index.vue'
|
||||
import TraceNoDialog from '@/components/HealthLinkHis/TraceNoDialog/index.vue'
|
||||
|
||||
/** 领用保存 IssueDto:后端 Jackson 只认 yyyy-MM-dd HH:mm:ss;库存接口可能回传 2025/4/2 00:00:00 等 */
|
||||
function toIssueDateTimeStr(val) {
|
||||
|
||||
@@ -643,8 +643,8 @@ import {
|
||||
returnIssueApproved,
|
||||
submitTHApproval,
|
||||
} from '../components/api';
|
||||
import PopoverList from '@/components/OpenHis/popoverList/index.vue';
|
||||
import TraceNoDialog from '@/components/OpenHis/TraceNoDialog/index.vue';
|
||||
import PopoverList from '@/components/HealthLinkHis/popoverList/index.vue';
|
||||
import TraceNoDialog from '@/components/HealthLinkHis/TraceNoDialog/index.vue';
|
||||
import transferManagement from '../components/list.vue';
|
||||
import {formatDate} from '@/utils/index';
|
||||
import useUserStore from '@/store/modules/user';
|
||||
|
||||
@@ -789,7 +789,7 @@ import {
|
||||
} from './components/api';
|
||||
import {formatDate, formatDateymd} from '@/utils/index';
|
||||
import useUserStore from '@/store/modules/user';
|
||||
import TraceNoDialog from '@/components/OpenHis/TraceNoDialog/index.vue';
|
||||
import TraceNoDialog from '@/components/HealthLinkHis/TraceNoDialog/index.vue';
|
||||
import {useStore} from '@/store/store';
|
||||
import useTagsViewStore from '@/store/modules/tagsView';
|
||||
|
||||
|
||||
@@ -635,7 +635,7 @@ import {formatDate} from '@/utils/index';
|
||||
import useUserStore from '@/store/modules/user';
|
||||
import {useStore} from '@/store/store';
|
||||
import useTagsViewStore from '@/store/modules/tagsView';
|
||||
import TraceNoDialog from '@/components/OpenHis/TraceNoDialog/index.vue';
|
||||
import TraceNoDialog from '@/components/HealthLinkHis/TraceNoDialog/index.vue';
|
||||
|
||||
const tagsViewStore = useTagsViewStore();
|
||||
const store = useStore();
|
||||
|
||||
@@ -752,9 +752,9 @@ import {
|
||||
reject,
|
||||
submitApproval,
|
||||
} from '../components/transferManagement';
|
||||
import PopoverList from '@/components/OpenHis/popoverList/index.vue';
|
||||
import PopoverList from '@/components/HealthLinkHis/popoverList/index.vue';
|
||||
import transferManagement from '../components/transferManagement.vue';
|
||||
import TraceNoDialog from '@/components/OpenHis/TraceNoDialog/index.vue';
|
||||
import TraceNoDialog from '@/components/HealthLinkHis/TraceNoDialog/index.vue';
|
||||
import {formatDate, formatDateymd} from '@/utils/index';
|
||||
import useUserStore from '@/store/modules/user';
|
||||
import {useStore} from '@/store/store';
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"name": "openhis",
|
||||
"name": "healthlink-his",
|
||||
"version": "3.8.10",
|
||||
"description": "OpenHIS管理系统",
|
||||
"author": "OpenHIS",
|
||||
"description": "HealthLink-HIS管理系统",
|
||||
"author": "HealthLink-HIS",
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
|
||||
✅ 成功,16行改动(+16/-2)
|
||||
|
||||
修改文件:`openhis-server-new/openhis-common/src/main/java/com/openhis/common/aspectj/DictAspect.java`
|
||||
修改文件:`healthlink-his-server/openhis-common/src/main/java/com/openhis/common/aspectj/DictAspect.java`
|
||||
|
||||
修复策略:
|
||||
1. DictAspect 在 SQL 查询前检查 `_dictText` 字段是否已被手动填充,若已有值则跳过查询
|
||||
|
||||
@@ -89,6 +89,6 @@ END
|
||||
医技接收时将 status_enum 从 10 (PROOFREAD) 更新为 11 (PENDING_RECEIVE)→12 (RECEIVED),检查后更新为 3 (COMPLETED)。
|
||||
|
||||
## 涉及文件
|
||||
1. `openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/RequestStatus.java` — 枚举新增
|
||||
2. `openhis-server-new/openhis-application/src/main/resources/mapper/regdoctorstation/RequestFormManageAppMapper.xml` — SQL CASE 修复
|
||||
3. `openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/impl/ServiceRequestServiceImpl.java` — 校对方法修改
|
||||
1. `healthlink-his-server/openhis-common/src/main/java/com/openhis/common/enums/RequestStatus.java` — 枚举新增
|
||||
2. `healthlink-his-server/healthlink-his-application/src/main/resources/mapper/regdoctorstation/RequestFormManageAppMapper.xml` — SQL CASE 修复
|
||||
3. `healthlink-his-server/openhis-domain/src/main/java/com/openhis/workflow/service/impl/ServiceRequestServiceImpl.java` — 校对方法修改
|
||||
|
||||
@@ -49,8 +49,8 @@
|
||||
## 2026-05-18 复核验证
|
||||
|
||||
经二次代码审查确认:
|
||||
- `openhis-ui-vue3` 全目录搜索 `汇总发药申请`: **0个匹配**
|
||||
- `openhis-ui-vue3` 全目录搜索 `SummaryDrug`/`summaryDrug`: **0个匹配**
|
||||
- `healthlink-his-ui` 全目录搜索 `汇总发药申请`: **0个匹配**
|
||||
- `healthlink-his-ui` 全目录搜索 `SummaryDrug`/`summaryDrug`: **0个匹配**
|
||||
- `inpatientDoctor/home/index.vue` 标签页列表: 无"汇总发药申请",仅8个正常标签页
|
||||
- `inpatientNurse/` 目录导航配置: 无残留引用
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
经全面代码审计确认:
|
||||
- `inpatientDoctor/home/index.vue` 标签页列表: 仅8个正常标签页(住院病历、诊断录入、临床医嘱、检验申请、检查申请、手术申请、输血申请、报告查询),无"汇总发药申请"
|
||||
- `inpatientNurse/constants/navigation.js`: 6个护士导航项,无"汇总发药申请"
|
||||
- `openhis-ui-vue3` 全目录搜索 `汇总发药申请`: 仅1处API注释(`drug/inpatientMedicationDispensing/components/api.js`,药房模块,非医生界面)
|
||||
- `healthlink-his-ui` 全目录搜索 `汇总发药申请`: 仅1处API注释(`drug/inpatientMedicationDispensing/components/api.js`,药房模块,非医生界面)
|
||||
- 全目录搜索 `SummaryDrug`/`summaryDrug`: 0个匹配
|
||||
- 路由表无 `medicine-summary`/`medicineSummary` 相关入口
|
||||
- 工作树状态: clean,无需额外提交
|
||||
|
||||
@@ -36,6 +36,6 @@ getOrgLocListByOrgIdAndActivityDefinitionId(orgLoc.getOrganizationId(), orgLoc.g
|
||||
3. **新增 Service 方法**:`getOrgLocListByActivityDefinitionId(Long activityDefinitionId)` 用于按诊疗定义查询所有记录
|
||||
|
||||
## 涉及文件
|
||||
- `openhis-server-new/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/OrganizationLocationAppServiceImpl.java`
|
||||
- `openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IOrganizationLocationService.java`
|
||||
- `openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/OrganizationLocationServiceImpl.java`
|
||||
- `healthlink-his-server/healthlink-his-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/OrganizationLocationAppServiceImpl.java`
|
||||
- `healthlink-his-server/openhis-domain/src/main/java/com/openhis/administration/service/IOrganizationLocationService.java`
|
||||
- `healthlink-his-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/OrganizationLocationServiceImpl.java`
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
# ============================================================
|
||||
# OpenHIS 前端部署脚本
|
||||
# HealthLink-HIS 前端部署脚本
|
||||
# 用法: bash deploy-frontend.sh [prod|test|staging|dev]
|
||||
# 默认: prod
|
||||
# ============================================================
|
||||
@@ -8,11 +8,11 @@ set -e
|
||||
|
||||
MODE=${1:-prod}
|
||||
PROJECT_DIR=$(cd "$(dirname "$0")/.." && pwd)
|
||||
UI_DIR="$PROJECT_DIR/openhis-ui-vue3"
|
||||
UI_DIR="$PROJECT_DIR/healthlink-his-ui"
|
||||
DIST_DIR="$UI_DIR/dist"
|
||||
|
||||
echo "=========================================="
|
||||
echo " OpenHIS 前端部署"
|
||||
echo " HealthLink-HIS 前端部署"
|
||||
echo " 环境: $MODE"
|
||||
echo " 目录: $UI_DIR"
|
||||
echo "=========================================="
|
||||
@@ -72,11 +72,11 @@ echo ""
|
||||
echo "[5/5] 部署方式:"
|
||||
echo ""
|
||||
echo " 方式一: 复制到 Nginx"
|
||||
echo " cp -r $DIST_DIR/* /usr/share/nginx/html/openhis/"
|
||||
echo " cp -r $DIST_DIR/* /usr/share/nginx/html/healthlink-his/"
|
||||
echo " nginx -s reload"
|
||||
echo ""
|
||||
echo " 方式二: 软链接(推荐,方便更新)"
|
||||
echo " ln -sfn $DIST_DIR /usr/share/nginx/html/openhis"
|
||||
echo " ln -sfn $DIST_DIR /usr/share/nginx/html/healthlink-his"
|
||||
echo " nginx -s reload"
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
# ============================================================
|
||||
# OpenHIS 前端依赖问题排查与修复脚本
|
||||
# HealthLink-HIS 前端依赖问题排查与修复脚本
|
||||
# 用法: bash fix-deps.sh
|
||||
# ============================================================
|
||||
set -e
|
||||
|
||||
PROJECT_DIR=$(cd "$(dirname "$0")/.." && pwd)
|
||||
UI_DIR="$PROJECT_DIR/openhis-ui-vue3"
|
||||
UI_DIR="$PROJECT_DIR/healthlink-his-ui"
|
||||
|
||||
cd "$UI_DIR"
|
||||
|
||||
echo "=========================================="
|
||||
echo " OpenHIS 前端依赖诊断"
|
||||
echo " HealthLink-HIS 前端依赖诊断"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
# ============================================================
|
||||
# OpenHIS 前端 Nginx 配置
|
||||
# HealthLink-HIS 前端 Nginx 配置
|
||||
# 放到 /etc/nginx/conf.d/openhis.conf 或 include 到 nginx.conf
|
||||
# ============================================================
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
server_name openhis.local; # 改成实际域名或 IP
|
||||
server_name healthlink-his.local; # 改成实际域名或 IP
|
||||
|
||||
# 前端静态文件
|
||||
location / {
|
||||
root /usr/share/nginx/html/openhis;
|
||||
root /usr/share/nginx/html/healthlink-his;
|
||||
index index.html;
|
||||
try_files $uri $uri/ /index.html; # SPA 路由回退
|
||||
}
|
||||
|
||||
# 后端 API 代理
|
||||
location /prd-api/ {
|
||||
proxy_pass http://127.0.0.1:18080/openhis/;
|
||||
proxy_pass http://127.0.0.1:18082/healthlink-his/;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
@@ -35,14 +35,14 @@ server {
|
||||
|
||||
# 静态资源缓存(带 hash 的文件长期缓存)
|
||||
location ~* /assets/.*\.(js|css|woff2?|ttf|eot|png|jpg|jpeg|gif|svg|ico)$ {
|
||||
root /usr/share/nginx/html/openhis;
|
||||
root /usr/share/nginx/html/healthlink-his;
|
||||
expires 365d;
|
||||
add_header Cache-Control "public, immutable";
|
||||
}
|
||||
|
||||
# index.html 不缓存(保证更新及时生效)
|
||||
location = /index.html {
|
||||
root /usr/share/nginx/html/openhis;
|
||||
root /usr/share/nginx/html/healthlink-his;
|
||||
add_header Cache-Control "no-cache, no-store, must-revalidate";
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
# OpenHIS 后端组件升级方案
|
||||
# HealthLink-HIS 后端组件升级方案
|
||||
|
||||
> **编制日期**: 2026-06-04
|
||||
> **基线**: Spring Boot 2.5.15 + MyBatis Plus 3.5.5
|
||||
@@ -22,7 +22,7 @@
|
||||
| 项 | 内容 |
|
||||
|---|---|
|
||||
| **风险等级** | 🔴 高 — 1.69 有 CVE 安全漏洞 |
|
||||
| **变更文件** | `openhis-server-new/pom.xml` |
|
||||
| **变更文件** | `healthlink-his-server/pom.xml` |
|
||||
| **当前值** | `<bcprov-jdk15on.version>1.69</bcprov-jdk15on.version>` |
|
||||
| **操作** | 删除 jdk15on,改用 jdk18on |
|
||||
| **新增依赖** | `org.bouncycastle:bcprov-jdk18on:1.80`<br>`org.bouncycastle:bcpkix-jdk18on:1.80` |
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Flyway 数据库迁移使用指南
|
||||
|
||||
> **项目**: OpenHIS 医院管理系统
|
||||
> **项目**: HealthLink-HIS 医院管理系统
|
||||
> **数据库**: PostgreSQL 192.168.110.252:15432 (schema: hisdev)
|
||||
> **Flyway 版本**: 8.5.x (Spring Boot 2.7 管理)
|
||||
> **编制日期**: 2026-06-04
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
**迁移文件目录:**
|
||||
```
|
||||
openhis-server-new/openhis-application/src/main/resources/db/migration/
|
||||
healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/
|
||||
```
|
||||
|
||||
**当前状态:**
|
||||
@@ -92,9 +92,9 @@ CREATE INDEX idx_surgery_stats_tenant ON surgery_schedule_stats(tenant_id);
|
||||
**Step 2:启动应用**
|
||||
|
||||
```bash
|
||||
cd openhis-server-new
|
||||
cd healthlink-his-server
|
||||
mvn clean package -DskipTests
|
||||
java -jar openhis-application/target/openhis-application.jar --spring.profiles.active=dev --server.port=18082
|
||||
java -jar healthlink-his-application/target/healthlink-his-application.jar --spring.profiles.active=dev --server.port=18082
|
||||
```
|
||||
|
||||
**Step 3:Flyway 自动执行**
|
||||
@@ -214,7 +214,7 @@ PGPASSWORD=Jchl1528 psql -h 192.168.110.252 -p 15432 -U postgresql -d postgresql
|
||||
-c "SET search_path TO hisdev; DROP TABLE IF EXISTS clinic_referral;"
|
||||
|
||||
# 3. 删除迁移文件
|
||||
rm openhis-server-new/openhis-application/src/main/resources/db/migration/V6__create_clinic_referral_table.sql
|
||||
rm healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V6__create_clinic_referral_table.sql
|
||||
|
||||
# 4. 重启应用
|
||||
```
|
||||
@@ -252,7 +252,7 @@ SELECT MAX(version) AS current_version FROM flyway_schema_history;
|
||||
## 九、文件清单
|
||||
|
||||
```
|
||||
openhis-server-new/openhis-application/src/main/resources/db/migration/
|
||||
healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/
|
||||
├── README.md # 使用说明
|
||||
├── V1__baseline_marker.sql # 基线标记(空文件)
|
||||
├── V2__xxx.sql # 你的第一个迁移
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
> **编制人:** 陈琳
|
||||
> **编制日期:** 2026-05-01
|
||||
> **统计范围:** 2026-04-01 至 2026-05-01
|
||||
> **项目版本:** OpenHIS v2.0
|
||||
> **项目版本:** HealthLink-HIS v2.0
|
||||
> **文档版本:** v1.0
|
||||
|
||||
---
|
||||
|
||||
@@ -25,7 +25,7 @@ MyBatis Plus 3.5.16 的 `mybatis-plus-boot-starter` 在 `dependencyManagement`
|
||||
**解决方案:在父 pom.xml 中显式锁定关键依赖版本**
|
||||
|
||||
```xml
|
||||
<!-- 在 openhis-server-new/pom.xml 的 <properties> 中添加 -->
|
||||
<!-- 在 healthlink-his-server/pom.xml 的 <properties> 中添加 -->
|
||||
<!-- 锁定 Spring Boot 管理的核心依赖版本,防止被 BOM 覆盖 -->
|
||||
<spring-boot.version>2.5.15</spring-boot.version>
|
||||
<spring-boot-dependencies.version>2.5.15</spring-boot-dependencies.version>
|
||||
@@ -99,7 +99,7 @@ MyBatis Plus 3.5.16 的 `mybatis-plus-boot-starter` 在 `dependencyManagement`
|
||||
|
||||
### Step 2: 添加 BOM 覆盖(关键!)
|
||||
|
||||
在 `openhis-server-new/pom.xml` 的 `<dependencyManagement>` 中添加:
|
||||
在 `healthlink-his-server/pom.xml` 的 `<dependencyManagement>` 中添加:
|
||||
|
||||
```xml
|
||||
<!-- 覆盖 MyBatis Plus 导入的 Spring Boot BOM,保持 2.5.15 -->
|
||||
@@ -115,7 +115,7 @@ MyBatis Plus 3.5.16 的 `mybatis-plus-boot-starter` 在 `dependencyManagement`
|
||||
### Step 3: 编译验证
|
||||
|
||||
```bash
|
||||
cd openhis-server-new
|
||||
cd healthlink-his-server
|
||||
mvn clean compile -DskipTests
|
||||
```
|
||||
|
||||
@@ -136,7 +136,7 @@ mvn clean compile -DskipTests
|
||||
### Step 5: 提交代码
|
||||
|
||||
```bash
|
||||
git add openhis-server-new/pom.xml
|
||||
git add healthlink-his-server/pom.xml
|
||||
git commit -m "chore(deps): MyBatis Plus 3.5.5 → 3.5.16"
|
||||
git push origin develop
|
||||
```
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
## 执行原则
|
||||
|
||||
1. **渐进式合入** — 每次只合一个组件,验证通过再合下一个
|
||||
2. **保留业务代码** — `com.openhis.*` 目录不动,只改脚手架层
|
||||
2. **保留业务代码** — `com.healthlink.his.*` 目录不动,只改脚手架层
|
||||
3. **兼容优先** — 优先合入无侵入的独立组件
|
||||
4. **验证必做** — 每步完成后跑 `npm run dev` + 核心页面冒烟
|
||||
|
||||
@@ -209,7 +209,7 @@ router.beforeEach(async (to, from) => {
|
||||
|
||||
**操作:**
|
||||
```bash
|
||||
cd openhis-server-new
|
||||
cd healthlink-his-server
|
||||
mvn clean package -DskipTests
|
||||
# 验证启动正常
|
||||
```
|
||||
@@ -229,7 +229,7 @@ mvn clean package -DskipTests
|
||||
|
||||
**操作:**
|
||||
```bash
|
||||
cd openhis-ui-vue3
|
||||
cd healthlink-his-ui
|
||||
npm install vue-router@^4.6.4 echarts@^5.6.0
|
||||
npm run dev # 验证无报错
|
||||
```
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# OpenHIS 组件升级日志
|
||||
# HealthLink-HIS 组件升级日志
|
||||
|
||||
> 每次升级后在此记录,方便跨 session 追踪进度。
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# OpenHIS 二次开发版本 — 组件升级计划
|
||||
# HealthLink-HIS 二次开发版本 — 组件升级计划
|
||||
|
||||
> **编制日期**: 2026-06-03
|
||||
> **对比基线**: Gitee `tntlinking-opensource/openhis-itai-pro` 2.0 分支
|
||||
> **对比基线**: Gitee `tntlinking-opensource/healthlink-his` 2.0 分支
|
||||
> **目标**: 在不破坏现有业务的前提下,逐步引入高价值组件升级
|
||||
|
||||
---
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
| 项目 | 详情 |
|
||||
|---|---|
|
||||
| **文件** | `openhis-server-new/pom.xml` |
|
||||
| **文件** | `healthlink-his-server/pom.xml` |
|
||||
| **变更** | `<bcprov-jdk15on.version>1.69</bcprov-jdk15on.version>` → 删除,改用 jdk18on |
|
||||
| **新依赖** | `org.bouncycastle:bcprov-jdk18on:1.80` + `org.bouncycastle:bcpkix-jdk18on:1.80` |
|
||||
| **原因** | 1.69 有已知安全漏洞;1.80 支持国密 SM2/SM3 算法 |
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
| 项目 | 详情 |
|
||||
|---|---|
|
||||
| **文件** | `openhis-ui-vue3/package.json` |
|
||||
| **文件** | `healthlink-his-ui/package.json` |
|
||||
| **变更** | `"vue-router": "^4.3.0"` → `"^4.5.1"` |
|
||||
| **风险** | 低 — 4.x 小版本,API 兼容 |
|
||||
| **验证** | 前端 `npm run dev` → 测试所有页面路由跳转、返回、权限拦截 |
|
||||
@@ -49,7 +49,7 @@
|
||||
|
||||
| 项目 | 详情 |
|
||||
|---|---|
|
||||
| **文件** | `openhis-ui-vue3/package.json` |
|
||||
| **文件** | `healthlink-his-ui/package.json` |
|
||||
| **变更** | `"echarts": "^5.4.3"` → `"^6.0.0"` |
|
||||
| **影响面** | `rg "echarts" --type vue --type js` 搜索所有图表组件 |
|
||||
| **Breaking Changes** | ECharts 6 主要变更:Tree-shaking 更彻底、部分 API 重命名 |
|
||||
@@ -60,7 +60,7 @@
|
||||
|
||||
| 项目 | 详情 |
|
||||
|---|---|
|
||||
| **文件** | `openhis-ui-vue3/package.json` + 所有引用文件 |
|
||||
| **文件** | `healthlink-his-ui/package.json` + 所有引用文件 |
|
||||
| **变更** | `"lodash-es": "^4.17.21"` → 删除,添加 `"es-toolkit": "^1.41.0"` |
|
||||
| **迁移映射** | `_.cloneDeep` → `cloneDeep`、`_.debounce` → `debounce`、`_.isEqual` → `isEqual`、`_.get` → `get` |
|
||||
| **影响面** | `rg "from 'lodash-es'" --type vue --type js` 逐个替换 |
|
||||
@@ -71,7 +71,7 @@
|
||||
|
||||
| 项目 | 详情 |
|
||||
|---|---|
|
||||
| **文件** | `openhis-server-new/pom.xml` (parent) + `openhis-application/pom.xml` |
|
||||
| **文件** | `healthlink-his-server/pom.xml` (parent) + `healthlink-his-application/pom.xml` |
|
||||
| **新增依赖** | `org.mapstruct:mapstruct:1.5.5.Final` + `mapstruct-processor` + `lombok-mapstruct-binding` |
|
||||
| **使用方式** | 新增 `@Mapper(componentModel = "spring")` 接口替代 `BeanUtils.copyProperties` |
|
||||
| **策略** | **渐进式** — 不改造现有代码,仅新功能使用 MapStruct |
|
||||
|
||||
@@ -13,8 +13,8 @@ Bug #632 修复完成。核心问题是 JavaScript `&&` 运算符的经典陷阱
|
||||
| #
|
||||
|
||||
## 修复文件
|
||||
.../src/main/java/com/openhis/lab/domain/InspectionPackage.java | 3 +++
|
||||
.../src/main/java/com/openhis/lab/domain/InspectionPackageDetail.java | 3 +++
|
||||
.../src/main/java/com/healthlink/his/lab/domain/InspectionPackage.java | 3 +++
|
||||
.../src/main/java/com/healthlink/his/lab/domain/InspectionPackageDetail.java | 3 +++
|
||||
|
||||
## 流程时间线
|
||||
| 时间 | 智能体 | 事件 | 状态 | 耗时 |
|
||||
|
||||
@@ -115,5 +115,5 @@ form.purchaseinventoryList[index].sourceLocationId =
|
||||
2. 确保 `unitList` 包含必要的字典文本字段
|
||||
|
||||
## 影响范围
|
||||
- 前端文件:openhis-ui-vue3/src/views/medicationmanagement/requisitionManagement/requisitionManagement/index.vue
|
||||
- 前端文件:healthlink-his-ui/src/views/medicationmanagement/requisitionManagement/requisitionManagement/index.vue
|
||||
- 涉及函数:`selectRow`、`handleLocationClick`
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
**与 Bug #433 对比**:Bug #433 是"麻醉方法回显为代码"和"外请专家姓名数据未加载",根因也是字典数据缺失。本次 Bug #462 属于同类问题——字典类型已创建但生产环境的数据记录未同步插入。
|
||||
|
||||
## 影响范围
|
||||
- **前端文件**:`openhis-ui-vue3/src/views/catalog/diagnosistreatment/components/diagnosisTreatmentDialog.vue`(仅一处引用)
|
||||
- **前端文件**:`healthlink-his-ui/src/views/catalog/diagnosistreatment/components/diagnosisTreatmentDialog.vue`(仅一处引用)
|
||||
- **后端文件**:无代码变更,纯数据问题
|
||||
- **数据库表**:`hisprd.sys_dict_data`(插入7条标本数据)
|
||||
- **影响接口**:`GET /system/dict/data/type/specimen_code`
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
## 二、项目结构
|
||||
|
||||
```
|
||||
openhis-ui-vue3/
|
||||
healthlink-his-ui/
|
||||
├── tests/
|
||||
│ ├── e2e/
|
||||
│ │ ├── fixtures/ # 测试夹具
|
||||
@@ -187,7 +187,7 @@ npx playwright test --ui
|
||||
# Spug 构建后阶段添加
|
||||
- name: E2E Testing
|
||||
script: |
|
||||
cd openhis-ui-vue3
|
||||
cd healthlink-his-ui
|
||||
npx playwright install --with-deps chromium
|
||||
npm run test:e2e -- --reporter=html
|
||||
# 测试失败则阻断发布
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# OpenHIS 铁律
|
||||
# HealthLink-HIS 铁律
|
||||
|
||||
## 铁律 #1: 修改完必须测试
|
||||
**任何代码修改后,必须完成以下测试才能提交:**
|
||||
@@ -175,7 +175,7 @@ mvn clean compile -DskipTests
|
||||
|
||||
### Step 7: 启动测试
|
||||
```bash
|
||||
java -jar openhis-application/target/openhis-application.jar --spring.profiles.active=dev --server.port=18082
|
||||
java -jar healthlink-his-application/target/healthlink-his-application.jar --spring.profiles.active=dev --server.port=18082
|
||||
```
|
||||
|
||||
### Step 8: 检查控制台输出
|
||||
@@ -45,7 +45,7 @@ public class SwaggerConfig {
|
||||
private Info apiInfo() {
|
||||
return new Info()
|
||||
.title("开放医院管理系统 - 接口文档")
|
||||
.description("OpenHIS API 文档,基于 Springdoc OpenAPI 3.0")
|
||||
.description("HealthLink-HIS API 文档,基于 Springdoc OpenAPI 3.0")
|
||||
.contact(new Contact().name(coreConfig.getName()))
|
||||
.version("版本号: " + coreConfig.getVersion());
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user