Files

47 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# chis_osi 对接设计文档
本目录是「广东省基层医疗机构管理系统(CHIS)统一对外服务接口(OSI)」对接项目 `chis_osi` 的设计文档集。
## 背景
省基卫厂家(和宇健康科技)已提供**官方服务端对接接口**《统一对外服务接口 API 规范文档 V1.5.7》。
本项目基于该官方接口重新对接,并参考既有项目 `chis_upload`(通过逆向 Chrome F12 网页接口实现)的工程经验,
设计一套**更简洁、更稳定、更易维护**的整体架构。
> 关键判断:官方 OSI 接口是**无状态的服务端到服务端 JSON 接口**,鉴权方式为请求头 MD5 签名。
> 这意味着 `chis_upload` 中为对付网页逆向而引入的大量复杂度(SM2 登录加密、Cookie/Redis 会话、
> 身份链路反查、Chrome 报文对齐补齐)在新项目中**可以整体删除**。新项目的核心复杂度从「如何骗过网页」
> 转移到「如何把上游 PHIS 数据正确映射成 OSI 文档约定的字段」。
## 文档索引
| 文档 | 内容 |
| --- | --- |
| [01-OSI接口规范分析.md](01-OSI接口规范分析.md) | 官方 OSI 接口的鉴权、报文约定、全量接口清单与 serviceId 映射、文档坑点 |
| [02-旧项目架构评估.md](02-旧项目架构评估.md) | `chis_upload` 的分层与组件、哪些复杂度由逆向驱动、哪些经验值得保留 |
| [03-目标架构设计.md](03-目标架构设计.md) | `chis_osi` 的整体架构、分层、目录结构、数据流与时序、关键设计决策 |
| [04-字段与接口映射.md](04-字段与接口映射.md) | OSI 接口↔内部能力映射、PHIS→OSI 字段/字典映射策略、checkId 幂等键 |
| [05-实施路线图.md](05-实施路线图.md) | 分阶段落地计划、配置项、可观测性、测试与联调清单 |
| [06-厂家联调清单.md](06-厂家联调清单.md) | 向厂家索要的凭据/环境/契约/样本清单,带回填状态,可直接发对接人 |
| [07-本项目HTTP接口.md](07-本项目HTTP接口.md) | 本项目 server 模式对外提供的 HTTP 查询端点(我方接口的事实来源)|
| [openapi.yaml](openapi.yaml) | 本项目 server 模式 HTTP 查询端点的 OpenAPI 3.0 机器可读接口文档 |
| [current-state.md](current-state.md) | **当前实现状态快照**(可覆盖):仓库现实、已验证事实、可运行命令、blocker |
## 执行工件(根目录)
| 文件 | 作用 |
| --- | --- |
| [`../CLAUDE.md`](../CLAUDE.md) | 仓库级硬规则(Claude Code 入口,唯一权威规则源) |
| [`../AGENTS.md`](../AGENTS.md) | 通用 agent 薄入口,导航到 CLAUDE.md 与三件套 |
| [`../tasks.md`](../tasks.md) | 任务看板:小步任务 + 依赖 + 验收 + 状态,一次只领一个 |
| [`../progress.md`](../progress.md) | 执行流水(只追加):每轮变更/验证/阻塞/决策 |
| [`../init.sh`](../init.sh) | 统一启动与验证入口(Go 骨架建立后:download → test → run) |
维护原则:需求/契约变化先改文档再改代码;任务状态变化同步 `tasks.md` + `progress.md` + `current-state.md`;接口契约以 `01`/`04`(含 §8 实测)为准,代码不得另起一套。
## 一句话结论
> 用一个**无状态 OSI 客户端(MD5 签名 + 统一信封)** + 一个**表驱动的 PHIS→OSI 映射层** +
> 一个**复用旧项目经验的投递流水线(校验/映射/签名/调用/分类重试/幂等/批次报告)**,
> 替代旧项目里因网页逆向而堆积的会话与补齐逻辑。