# MedSeal 社区价值升级：从内部工具到可复用的 MoonBit 影像基础设施

> 0.5.0发行源码新增查询/质量/计划/Native SDK及固定字典Implicit VR LE；本页旧阶段记录保留其原版本，当前增量见[数据处理指南](DATA_PROCESSING.zh-CN.md)。

制定基线：0.2.3 / `5555225`。本方案继续原仓库，承接 W0–W7；不把旧阶段的通过记录用于证明新增功能。目标是降低其他 MoonBit 开发者处理医疗二进制格式、验证转换和构建离线应用的成本。获奖取决于评审；工程目标用可运行产物验收。

## 1. 制定时的差距（0.2.3 历史基线）

以下五项描述方案制定时的差距；C1–C6 与 0.5.0 的当前落实情况见第 4 节。制定时优势是严格的限定范围、关联对象处理、恢复和审核链，主要不足是：

1. **公共库还不能顺畅完成实际任务。** 原仓库外消费者只编译策略，转换需要调用内部 identity Context。库有门面，不等于开发者拿到完整工作流。
2. **评审和新用户无法快速体验核心价值。** 本地工作台依赖 Python/Native/私有状态；缺少直接运行 MoonBit 核心的浏览器入口。
3. **标准支持仍窄，外部生态联通不足。** 已有小型固定语料与 pydicom 验证，但不能据此声称支持一般 DICOM 工作负载。
4. **社区资产的复用方式不够清楚。** 规则、语料、诊断和输出校验应能独立接入别人的程序，而非必须照搬整个企业宿主。
5. **缺少真实第三方使用反馈。** 自己跑的消费者、合成演练与真实部署需要分别记账，不能互相替代。

对标依据沿用[13 项固定源码研究](WINNER_RESEARCH.zh-CN.md)：MoUI 的外部消费者、MoonFrame/tokenizers 的独立语义验证、HexEditor 的结构可视化、MoonMarkMind 的即用体验、raft 的故障不变量。这里借鉴可验证的工程方法，不照搬 UI 或用代码量判断优劣。

## 2. 分阶段实施与退出条件

| 阶段 | 交付给谁、解决什么问题 | 实质产物 | 必须通过的验收 |
| --- | --- | --- | --- |
| C1 公共 SDK 完整闭环 | MoonBit 开发者不依赖内部包完成关联影像转换 | 严格封闭集合转换工厂、私有结果类型、数量/字节预算、公开汇总、完整独立消费者 | 仅 `api/` 导入；关联对象读写/转换/重新校验；重复 SOP、断引用、身份冲突、非严格策略、预算超限拒绝；Native/JS/wasm/wasm-gc 运行；独立 pydicom 检查真实输出 |
| C2 离线规则实验室 | 用户几分钟理解“如何改、为什么改、何处拒绝” | MoonBit 编译的浏览器核心、内置合成对象、结构/决定/失败三视图；自包含本地构建 | 浏览器实际执行核心；无 CDN/遥测/上传；JS 算法不重复实现转换；成功/失败交互实测；公开导出无原值；资源预算与错误清楚 |
| C3 标准互操作增量 | 导入其他影像工具的数据，而非重复写一个大而全框架 | 先完成 PS3.18 DICOM JSON 限定子集编解码与 `api/` 接口，再评估 Implicit VR LE；逐 VR/数值/空值/Sequence 明确矩阵 | 独立 pydicom 双向语义对照，未知 VR/不支持形态必须拒绝；大整数/PN/多值/像素边界测试；不宣称完整标准支持 |
| C4 可分享质量与性能实验室 | 维护者和集成方能重现兼容性及资源成本 | 许可明确的非患者样本、独立预期、差分 runner、分层 benchmark、机器可读支持矩阵 | 必需样本缺失即失败；固定机器/工具链/负载，统计吞吐与峰值内存；回归阈值依据测量制定；旧合成用例不算外部真实样本 |
| C5 实际集成与使用证据 | 影像研究开发者能接入已有系统 | 固定版本本地 Orthanc/目录接收适配、CT 研究读取示例、安装与升级演练 | 实际启动独立系统，入站/失败/重试/出站校验；接收端重新检查像素/关系；明确授权与支持边界；用户反馈仅记录实际取得的内容 |
| C6 社区发行与维护 | 新贡献者能修复、扩展和长期依赖 | API 兼容策略、CI 外部消费者、离线演示发布包、贡献任务、三个平台同一发行快照 | 新目录照文档重跑；旧 API 兼容；源码/发行包逐文件一致；新版本发布后回读；维护说明、问题模板和真实反馈归档 |

顺序：C1 → C2 → C3；C4 贯穿新增语义，C5 在核心互操作稳定后实施，C6 每阶段落实文档/回归，最终独立发行。不要以换框架、拆大量空包或堆测试数代替这些交付。

## 3. 核心设计取舍

- MoonBit 负责 DICOM、策略、关联关系与验证；浏览器/Native/Python 只承担平台 I/O、界面和既有提供方权限。
- SDK 默认封闭集合，转换结果全部校验成功后才返回。输入顺序与输出顺序一致；无隐式外部引用放行。
- UID seed/日期偏移由宿主显式提供，演示使用固定合成值；SDK 不伪装成安全随机源或跨作业身份数据库。
- 浏览器实验室先服务学习与合成复现；真实影像的受控使用、审核/签名/交付仍沿原宿主流程。任何未来文件导入必须显式标注本地私有视图并经过预算与公开输出检查。
- 历史兼容 `src/` 入口保留；新文档优先使用公开接口。独立消费能力以实际编译/运行证明，生成接口中的内部类型名称不单独当作失败标准。
- 不自动联系社区用户、医院或主办方，不虚构采用案例。授权数据/真实使用方是现场证据的输入，不是能由程序生成的结果。

## 4. 实施账本

| 阶段 | 当前状态 | 证据位置 |
| --- | --- | --- |
| C1 | 当时本机及三平台 CI 通过，后纳入 0.3.0；当前旧接口仍兼容 | `api/validation/collection.mbt`、`examples/consumer`、`tools/verify_consumer.py`；`tmp/c1-consumer.json` 记录四后端实际输出、pydicom 3.0.1 及隔离归档 SHA；七个新增场景、全量 Native124/其余各71 通过；[C1 三平台 CI](https://github.com/001-Elsa/MedSeal-MBT/actions/runs/38676792525) |
| C2 | 实现、Node/DOM与V5实际Chrome渲染/CSP/下载/窄屏8项通过 | [实验室说明](COMMUNITY_LAB.zh-CN.md)、`web/core`、`tools/build_community_lab.py`、`tools/verify_community_lab.mjs`；本机 `tmp/community-lab/acceptance.json` 的12类Node检查及`browser-acceptance.json`真实浏览器8项通过，验证范围分列；全量 Native126/其余各73 通过 |
| C3a | DICOM JSON子集实现及本机独立双向验收通过；非C3全部完成 | [JSON矩阵](DICOM_JSON.zh-CN.md)、`api/dicom_json`、`tools/verify_dicom_json.py`；25种VR、5个精度token、22个拒绝；新增11个场景，全量Native137/其余各84通过；关联消费者先经JSON再严格转换 |
| C4 | V4 许可数学幻影与负载实测完成 | [资源基线](APPLICATION_BENCHMARKS.zh-CN.md)；样本保真与实际逐次测量 |
| C5 | V3 真实本地 Orthanc 接收、拒绝与重试完成 | [集成证据边界](ORTHANC_INTEGRATION.zh-CN.md)；未声称临床或第三方采用 |
| C6 | V6 稳定 API、迁移、诊断、贡献入口及干净目录门禁完成；发行回读另核验 | [V6 门禁](V6_ACCEPTANCE.zh-CN.md)、[兼容](API_COMPATIBILITY.zh-CN.md)、[迁移](MIGRATION_0.3.zh-CN.md) |
| C3 后续：0.5.0 | 固定字典内 Implicit VR LE 已实现并完成本机独立验收 | 未知/私有字段和歧义拒绝；写出 Explicit VR LE；不扩张完整标准声明 |
| 数据处理：0.5.0 | 查询/质量/命名配置与计划/Native SDK 五项规划已落地 | [当前实施与验收](DATA_UPGRADE_STATUS.zh-CN.md)；发行源码，远端 CI/registry 回读另验 |

0.2.x 已发布快照保留；V1–V6 能力已在 0.3.0 发布；0.4.0补齐本机私有文件模式。公开新版本仍必须独立完成包清单、平台回读与消费者核验，不能把本地新增功能写成已发布能力。
