- 数据库:在adm_charge_item表添加SourceBillNo字段 - 后端实体类:更新ChargeItem.java添加SourceBillNo字段 - 前端组件:创建手术计费界面(基于门诊划价界面) - 后端API:扩展PrePrePaymentDto支持手术计费标识 - 后端Service:扩展getChargeItems方法支持手术计费过滤 - 门诊手术安排界面:添加【计费】按钮 注意事项: - 需要手动执行SQL脚本:openhis-server-new/sql/add_source_bill_no_to_adm_charge_item.sql - 术后一站式结算功能待后续开发
188 lines
4.2 KiB
Markdown
188 lines
4.2 KiB
Markdown
# OpenHIS - AI Agent Development Guide
|
||
|
||
## 项目概览
|
||
OpenHIS 是一个医院管理系统,采用 Java 17 + Spring Boot 后端和 Vue 3 + Vite 前端架构。
|
||
|
||
## 构建和运行命令
|
||
|
||
### 后端(Java/Spring Boot)
|
||
```bash
|
||
# 构建整个项目
|
||
cd openhis-server-new
|
||
mvn clean package -DskipTests
|
||
|
||
# 运行后端(开发模式)
|
||
cd openhis-server-new/openhis-application
|
||
mvn spring-boot:run
|
||
|
||
# 运行特定模块
|
||
cd openhis-server-new/[module-name]
|
||
mvn spring-boot:run
|
||
```
|
||
|
||
### 前端(Vue 3 + Vite)
|
||
```bash
|
||
# 安装依赖
|
||
cd openhis-ui-vue3
|
||
npm install
|
||
|
||
# 开发服务器
|
||
npm run dev
|
||
|
||
# 生产构建
|
||
npm run build:prod
|
||
|
||
# 测试环境构建
|
||
npm run build:test
|
||
|
||
# 预览构建结果
|
||
npm run preview
|
||
```
|
||
|
||
### 测试
|
||
项目当前没有配置正式的测试框架。如需添加测试:
|
||
- 后端:考虑使用 JUnit 5 + Mockito
|
||
- 前端:考虑使用 Vitest + Vue Test Utils
|
||
|
||
## 代码风格规范
|
||
|
||
### Java 后端规范
|
||
- **Java 版本**: 17
|
||
- **框架**: Spring Boot 2.5.15
|
||
- **ORM**: MyBatis Plus 3.5.5
|
||
- **数据库**: PostgreSQL
|
||
- **包结构**:
|
||
- `com.openhis` - 业务逻辑
|
||
- `com.core` - 核心框架
|
||
- **命名约定**:
|
||
- 类名:PascalCase(如 `UserController`)
|
||
- 方法名:camelCase(如 `getUserList`)
|
||
- 常量:SCREAMING_SNAKE_CASE
|
||
- 配置文件:kebab-case
|
||
- **注解使用**:
|
||
- 使用 `@Slf4j` 替代手动声明 logger
|
||
- 使用 `@Data` 在实体类中
|
||
- 使用 `@Service/@Controller/@Repository` 等 Spring 注解
|
||
- **异常处理**:
|
||
- 使用统一的异常处理机制
|
||
- 自定义业务异常继承 `RuntimeException`
|
||
|
||
### Vue 前端规范
|
||
- **框架**: Vue 3 + Composition API
|
||
- **UI 库**: Element Plus
|
||
- **状态管理**: Pinia
|
||
- **路由**: Vue Router 4
|
||
- **构建工具**: Vite 5
|
||
- **组件命名**: PascalCase
|
||
- **文件命名**: kebab-case
|
||
- **变量命名**: camelCase
|
||
- **常量命名**: SCREAMING_SNAKE_CASE
|
||
- **函数命名**:
|
||
- 事件处理:`handle` 前缀
|
||
- 数据获取:`get`/`load` 前缀
|
||
- 提交操作:`submit` 前缀
|
||
|
||
### 导入顺序
|
||
#### Java
|
||
1. `java.*`
|
||
2. `javax.*`
|
||
3. 第三方库
|
||
4. `com.core.*`
|
||
5. `com.openhis.*`
|
||
6. `*.*`(其他包)
|
||
|
||
#### JavaScript/Vue
|
||
1. `vue` 相关
|
||
2. 第三方库
|
||
3. `@/` 别名导入
|
||
4. 相对路径导入
|
||
|
||
### 代码格式
|
||
#### Java
|
||
- 缩进:4个空格
|
||
- 行长度:120字符
|
||
- 左大括号不换行
|
||
|
||
#### Vue/JavaScript
|
||
- 缩进:2个空格
|
||
- 字符串:优先使用单引号
|
||
- 行长度:100字符
|
||
|
||
## 关键配置文件
|
||
|
||
### 后端配置
|
||
- 主配置:`openhis-server-new/openhis-application/src/main/resources/application.yml`
|
||
- 环境配置:`application-{profile}.yml`
|
||
- Maven 父 POM:`openhis-server-new/pom.xml`
|
||
|
||
### 前端配置
|
||
- Vite 配置:`openhis-ui-vue3/vite.config.js`
|
||
- 环境变量:`.env.*` 文件
|
||
- 路由配置:`openhis-ui-vue3/src/router/index.js`
|
||
|
||
## 开发约定
|
||
|
||
### API 设计
|
||
- RESTful API 风格
|
||
- 统一响应格式
|
||
- 使用 Swagger 文档
|
||
- 错误码统一管理
|
||
|
||
### 数据库
|
||
- 表名:snake_case
|
||
- 字段名:snake_case
|
||
- 主键:使用 `id`
|
||
- 软删除:使用 `valid_flag` 字段
|
||
|
||
### 前端组件
|
||
- 单一职责原则
|
||
- Props 使用 camelCase
|
||
- Events 使用 kebab-case
|
||
- 使用 Composition API
|
||
- 组件文档使用 JSDoc
|
||
|
||
### 状态管理
|
||
- 模块化设计
|
||
- 异步操作使用 actions
|
||
- 避免在组件中直接修改状态
|
||
|
||
## 环境变量
|
||
|
||
### 前端
|
||
- `VITE_APP_BASE_API`: API 基础路径
|
||
- `VITE_APP_ENV`: 环境标识
|
||
|
||
### 后端
|
||
- `spring.profiles.active`: 激活的配置文件
|
||
- `core.name`: 应用名称
|
||
- `core.version`: 应用版本
|
||
|
||
## 安全规范
|
||
- 所有 API 接口需要权限验证
|
||
- 敏感信息使用环境变量
|
||
- SQL 注入防护
|
||
- XSS 攻击防护
|
||
|
||
## 性能优化
|
||
- 后端使用连接池(Druid)
|
||
- 前端使用路由懒加载
|
||
- 图片使用 WebP 格式
|
||
- 大列表使用虚拟滚动
|
||
|
||
## 常用工具类
|
||
- 后端:`com.core.common.utils.*`
|
||
- 前端:`@/utils/*`
|
||
|
||
## 注意事项
|
||
1. 修改数据库结构需要同步 SQL 脚本
|
||
2. 新增功能需要添加权限配置
|
||
3. 前端路由需要在权限系统中注册
|
||
4. 接口变更需要更新 Swagger 文档
|
||
5. 遵循现有代码风格,避免不必要的变化
|
||
|
||
## 故障排除
|
||
- 后端端口:18080
|
||
- 前端端口:81
|
||
- API 前缀:`/openhis`
|
||
- Swagger UI:`/openhis/swagger-ui/index.html`
|
||
- Druid 监控:`/openhis/druid/login.html` |