技术文档

医疗健康记录

医疗健康记录是本地记忆的一种结构化模板,用于整理就诊、检查检验、用药、疫苗与复诊资料。它沿用本机加密、附件、编辑、搜索与转出机制,内容由用户输入和确认。

模型与字段

手动选择固定模板时,两端使用稳定类型标识 health。iOS 在 MemoryKind.health 中定义字段,Android 在 MemoryTemplates 中定义对应模板,八个字段 ID 保持一致。iOS 若应用识别生成的医疗 schema,编辑器会以 kind=note 加 generatedSchema 保存主题与固定字段;程序不能仅按 kind=health 判断所有医疗主题。

字段 ID 显示名称 输入与限制
healthRecordType 记录类型 就诊、检查检验、用药、疫苗接种、其他
healthSubject 记录对象 文本,最多 200 字符
healthRecordDate 记录日期 可选日期
medicalInstitution 医疗机构 文本,最多 200 字符
departmentDoctor 科室与医生 文本,最多 200 字符
medicalResult 诊断/检查结果 多行文本,最多 2,000 字符
medicationInstructions 用药与医嘱 多行文本,最多 2,000 字符
followUpOn 复诊日期 可选日期

标题、正文和附件仍是独立内容:标题最多 80 字符,正文最多 20,000 字符;单附件最多 20 MiB,每条最多 20 个、合计 50 MiB。日期按明确格式保存,未选择日期时保持为空,选择模板不会自动把当天写成记录或复诊日期。

输入、保存与检索

用户进入“记忆”后新建或编辑记录,选择“医疗健康记录”,填写所需字段并添加图片或文件,再明确保存。字段均可留空;仅选中模板不会生成空记录。长文本编辑器保留换行;缩写、检验指标名称和英文原文按输入保存,不进行语义改写。

iOS 将字段放入 MemoryEntry.fields,保存时仅接受模板允许的字段 ID,并清理首尾空白、执行长度限制。Android 将字段放入记录 JSON,同主题编辑会替换可见字段,同时保留未展示的旧键和未知字段,防止编辑新表单时丢失历史内容。两端都沿用记忆加密存储;加密失败或原库无法读取时禁止覆盖,见本地记忆。

详情页展示已填写字段,列表可用前两项有效字段形成摘要。搜索可命中医疗机构、医生、记录对象、结果、医嘱、日期、正文和附件名;它不会分析附件中的检查内容,也不会自动从图片提取指标。

本机推荐的约束

输入出现“医疗、就诊、检查报告、用药、复诊”等关键词时,客户端可以推荐健康模板。iOS 对明确人类医疗输入直接返回固定健康字段,不调用系统模型生成新的诊断选项;Android 使用本机关键词匹配。宠物与疫苗词共同出现时仍优先进入宠物接种字段,英文动物匹配采用单词边界,避免把其他单词误识别为猫或狗。

推荐只决定记录类型与可填写结构,不推断诊断、处方、药量或用户尚未提供的信息。用户仍需确认模板,并按原始资料填写。

编辑、搜索与关联规则

每条记录以 UUID 区分,不以医院、姓名或日期作为唯一键。同一对象在同一天可有多条独立记录,保存不会自动合并;更改记录对象或机构不会创建另一位“患者档案”。当前没有患者实体、医院目录关联、药品知识库、检验参考值模型,也没有记录之间的关系索引。附件只按附件 ID 关联该条记忆,不会自动解释为某项检验。

iOS 保存时把同 ID 的旧记录替换为更新后的记录并移到列表前端,保留 createdAt,更新 updatedAt;Android 修改已有 JSON 保持当前列表位置,新建插到前面。两端都能在列表显示字段摘要,但摘要只取已填写字段中的前两项,不是按医学重要性排序。未显示在摘要中的医嘱仍可在详情和搜索中访问。

例如合成检验值“TSH 2.0; ALT 30”会作为文本保存,大小写或标点不会被改为医学解释;字段值首尾空白可被清理,内部换行保留。普通搜索使用字符串匹配,多个空白分词须全部命中但可以分布在不同字段;搜“机构名 检查”并不保证两词位于同一个字段。日期字段可按其原始格式被匹配,不能把关键词搜索结果称为临床全文分析。

删除正文、清空某个可见字段、移除附件与删除整条记录是不同操作。Android 同主题编辑会明确移除已清空的可见字段,保留未展示旧键;iOS 按当前允许字段重新保存。删除整条记忆先更新索引,再清理其文件,两端的清理失败策略不同,不能承诺闪存安全擦除或撤回已经转出的明文副本。

扩展方式

新增医疗字段时应同步更新两端模板、展示、搜索和字段长度规则,保持已有 ID 稳定;新类型不能覆盖旧记录。若计划引入 OCR、提醒、健康平台或云端能力,需要分别设计用户授权、数据来源、删除和失败恢复路径,不能仅增加一个日期字段就宣称已经支持提醒。

当前范围与验证

当前实现不包含自动复诊通知、医院系统对接、HealthKit、Health Connect、云端病历同步或自动医学判断;复诊日期只是可选记录值。记忆转出需走账号许可流程,输出包含原文与附件的明文 JSON,详见认证和安全与隐私。

仓库中 iOS 存储测试覆盖医疗长字段截断、重开、编辑、附件加密及空记录;Android 单元和设备测试包含固定字段、多行文本、临床缩写、搜索、旧字段保留与加密附件。测试代码存在不等于本次已执行通过:本篇编写未运行构建、模拟器或真实医疗数据。回归应使用虚构资料,并按测试记录当前设备和结果。

Markdown 原文完整文档文本