# 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 查询端点(我方接口的事实来源)| | [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 映射层** + > 一个**复用旧项目经验的投递流水线(校验/映射/签名/调用/分类重试/幂等/批次报告)**, > 替代旧项目里因网页逆向而堆积的会话与补齐逻辑。