# OpenHIS — AI 编码助手 指南

目的：帮助自动化/AI 编码代理快速上手本仓库，包含架构要点、关键文件、常用构建/运行命令以及项目约定。请只按照仓库内真实可见的内容提出修改建议或补充说明。

- **代码组织**: 本项目是一个 Java 后端（多模块 Maven）+ Vue3 前端（Vite）的大型应用。
  - 后端主模块目录：`openhis-server-new/`（顶层为 `pom`，包含多个子模块）。关键子模块示例：`openhis-application`, `openhis-domain`, `openhis-common`, `core-*` 系列。
  - 前端目录：`openhis-ui-vue3/`（Vite + Vue 3，使用 Pinia、Element Plus 等）。

- **大局观（Big Picture）**: 后端以 Spring Boot（Java 17）实现，使用多模块 Maven 管理公共库与业务模块；前端由单独仓库目录通过 Vite 构建并以环境变量（`VITE_APP_BASE_API`）与后端交互。后端扫描 `com.core` 与 `com.openhis` 包（见 `OpenHisApplication.java`），启动类位于：`openhis-server-new/openhis-application/src/main/java/com/openhis/OpenHisApplication.java`。

- **运行/构建（Windows PowerShell 示例）**:
  - 构建后端（从仓库根执行）：

```powershell
cd openhis-server-new
mvn clean package -DskipTests
```

  - 仅运行后端模块（开发时常用）：

```powershell
cd openhis-server-new/openhis-application
mvn spring-boot:run
# 或在 IDE 中运行 `com.openhis.OpenHisApplication` 的 main()
```

  - 前端启动与构建（需要 Node.js v16.x，仓库 README 建议 v16.15）：

```powershell
cd openhis-ui-vue3
npm install
npm run dev           # 本地开发（热重载）
npm run build:prod    # 生产构建
```

- **环境与配置**:
  - 后端配置：`openhis-server-new/openhis-application/src/main/resources/application.yml`（数据库、端口、profile 等）。README 还提及 `application-druid.yml`（若存在请优先查看）。
  - 前端配置：多个 `.env.*` 文件（例如 `.env.development`, `.env.staging`, `.env.production`），关键变量：`VITE_APP_BASE_API`（例如 `/dev-api`），前端通过 `import.meta.env.VITE_APP_BASE_API` 拼接后端 URL（见 `src/utils/request.js`、多个视图与组件）。

- **重要约定 / 模式**:
  - 后端采用 Java 17、Spring Boot 2.5.x 家族，父 POM在 `openhis-server-new/pom.xml` 定义。常用依赖版本在该 POM 的 `<properties>` 中集中维护。
  - 模块间以 Maven 模块依赖与 `com.core` / `com.openhis` 包名分层（见 `pom.xml` 的 `<modules>` 与 `dependencyManagement`）。
  - 前端通过 Vite 插件配置（`openhis-ui-vue3/vite/plugins`）管理 svg、自动导入等。UI 框架为 Element Plus，状态管理为 Pinia。

- **集成点 & 外部依赖**:
  - 数据库：PostgreSQL（README 建议 v16.2），仓库根含一个大型初始化 SQL：`数据库初始话脚本（请使用navicat16版本导入）.sql`，用于初始化表与演示数据。
  - 缓存/会话：Redis（需自行配置）。
  - 其他：Flowable（工作流），Druid（连接池监控），第三方服务通过特定配置类（例如 `YbServiceConfig` 在 `OpenHisApplication` 中启用）。

- **调试与常见位置**:
  - 启动类：`openhis-server-new/openhis-application/src/main/java/com/openhis/OpenHisApplication.java`。
  - 全局配置：`openhis-server-new/openhis-application/src/main/resources/`（`application.yml`、profile 文件等）。
  - 前端入口：`openhis-ui-vue3/src/main.js`、路由在 `openhis-ui-vue3/src/router/index.js`。
  - API 文档与监控路径（通常由后端暴露并被前端访问）：
    - Swagger UI: `<VITE_APP_BASE_API>/swagger-ui/index.html`（前端视图在 `src/views/tool/swagger/index.vue`）。
    - Druid: `<VITE_APP_BASE_API>/druid/login.html`（见前端相关视图引用）。

- **为 AI 代理的具体建议（如何安全、有效地修改代码）**:
  - 修改后端时：优先在子模块（例如 `openhis-application`）本地运行 `mvn spring-boot:run` 验证启动与基础 API；大量改动前先执行 `mvn -T1C -DskipTests clean package` 在 CI 环境上验证构建（本地机器也可用）。
  - 修改前端时：检查/调整对应 `.env.*` 文件中的 `VITE_APP_BASE_API`，使用 `npm run dev` 本地联调后端接口（可通过代理或将 `VITE_APP_BASE_API` 指向后端地址）。
  - 修改数据库结构或 seed：请参考仓库根的 SQL 初始化脚本，任何 DDL/数据变更需同步该脚本并通知数据库管理员/运维。

- **举例（常见任务示例）**:
  - 本地联调前端 + 后端（PowerShell）:

```powershell
# 启动后端
cd openhis-server-new/openhis-application
mvn spring-boot:run

# 启动前端（另开终端）
cd openhis-ui-vue3
npm run dev
```

如需我把这些内容合并为更短或更详细的版本，或把其中某部分（例如后端模块依赖关系图、关键 Java 包说明）展开，请告诉我要增强哪一节。
