Files
his/AGENTS.md
chenqi 89bf85fd97 feat: 门诊手术中计费功能
- 数据库:在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
- 术后一站式结算功能待后续开发
2026-02-05 23:47:02 +08:00

4.2 KiB
Raw Blame History

OpenHIS - AI Agent Development Guide

项目概览

OpenHIS 是一个医院管理系统,采用 Java 17 + Spring Boot 后端和 Vue 3 + Vite 前端架构。

构建和运行命令

后端Java/Spring Boot

# 构建整个项目
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

# 安装依赖
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 - 核心框架
  • 命名约定:
    • 类名PascalCaseUserController
    • 方法名camelCasegetUserList
    • 常量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 父 POMopenhis-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