医疗记录数据以 HL7 FHIR 格式存储。
医疗记录支持以下快速医疗互操作性资源 (FHIR) 版本:
医疗资源类型
FHIR 由一组称为资源的模块化组件组成。支持的 FHIR 资源集和相应类别大致基于国际患者摘要部分。
这些资源会映射到健康数据共享中的数据类别,在 API 中称为“医疗资源类型”。系统会根据逻辑观测标识符名称和代码 (LOINC) 代码和 FHIR 类别等内容来映射观测资源。
不属于上述任何类别的观测数据不会写入“健康数据共享”。
| 健康数据共享医疗资源类型 | FHIR 资源 | 健康数据共享权限声明 |
|---|---|---|
| 过敏反应 | AllergyIntolerance |
android.permission.health.READ_MEDICAL_DATA_ALLERGIES_INTOLERANCES
|
| 条件 | 条件 |
android.permission.health.READ_MEDICAL_DATA_CONDITIONS
|
| 实验室 |
观察
|
android.permission.health.READ_MEDICAL_DATA_LABORATORY_RESULTS
|
| 用药情况 | Medication、 MedicationRequest、 MedicationStatement |
android.permission.health.READ_MEDICAL_DATA_MEDICATIONS
|
| 个人详细信息 | 患者 |
android.permission.health.READ_MEDICAL_DATA_PERSONAL_DETAILS
|
| 医师详细信息 | 从业人员、 PractitionerRole |
android.permission.health.READ_MEDICAL_DATA_PRACTITIONER_DETAILS
|
| 妊娠情况 |
观察
|
android.permission.health.READ_MEDICAL_DATA_PREGNANCY
|
| 医疗程序 | 流程 |
android.permission.health.READ_MEDICAL_DATA_PROCEDURES
|
| 个人生活史 |
观察
|
android.permission.health.READ_MEDICAL_DATA_SOCIAL_HISTORY
|
| 疫苗接种 | 疫苗接种 |
android.permission.health.READ_MEDICAL_DATA_VACCINES
|
| 就诊记录 | 就诊、 位置、 组织 |
android.permission.health.READ_MEDICAL_DATA_VISITS
|
| 生命体征 |
观察
|
android.permission.health.READ_MEDICAL_DATA_VITAL_SIGNS
|
患者资源
目前,健康数据共享仅用于存储单个人的医疗记录数据。因此,写入的所有 FHIR 资源都应属于同一人。
在系统中,一个个人拥有多个 FHIR 患者资源的情况并不少见。建议应用协调数据并向 Health Connect 写入单个患者资源。不过,为了适应可能存在的不同组织结构,我们并未强制执行此要求。
数据验证
医疗记录 API 接受来自受支持版本的有效 FHIR 资源,并且健康数据共享会执行一些验证来确认是否遵循了每个受支持版本的 FHIR 规范。
标记为即将推出的验证检查尚未强制执行,但会在未来版本中强制执行。我们建议您针对所有列出的验证检查进行开发,以保持与未来版本的兼容性。
| 等级 | 验证检查 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 有效的 JSON | 数据符合 JSON 格式。 | ||||||||
| 支持的 FHIR | 支持写入应用声明的 FHIR 版本。健康数据共享支持以下 FHIR 版本:
|
||||||||
| 支持的 FHIR | 资源实例中记录的 FHIR 资源类型受支持。 健康数据共享支持以下 FHIR 资源类型:
|
||||||||
| 唯一资源 ID | 资源具有一个 ID 字段,其值满足正则表达式要求。 | ||||||||
| 唯一资源 ID | 资源不与来自同一 MedicalDataSource 的同一资源类型的其他 FHIR 资源共享 ID。 |
||||||||
| 业务规则 | 不包含内含的 FHIR 资源。 包含的资源是嵌套在“父”资源中的 FHIR 资源。当父资源需要引用另一个资源,但系统没有足够的信息来将其创建为独立存在的独立资源时,就会使用这些资源。 | ||||||||
| 有效的基本 FHIR | FHIR JSON 中的顶级字段存在于给定资源类型的 FHIR 规范中。 | ||||||||
| 有效的基本 FHIR | 顶级字段不包含 JSON null 值。 | ||||||||
| 有效的基本 FHIR | 所有顶级必填字段都存在。 | ||||||||
| 有效的基本 FHIR | 定义为 FHIR 中的重复元素的顶级字段具有 JSON array 数据类型。 |
||||||||
| 有效的基本 FHIR | 在 FHIR 中,定义为复杂类型的顶级字段(包括 JSON array 中的元素)具有 JSON object 数据类型。 |
||||||||
| 有效的基本 FHIR | 在 FHIR 中定义为基本类型的顶级字段(包括 JSON array 中的元素)具有正确的 JSON 数据类型。
|
||||||||
| 有效的基本 FHIR | 在 FHIR 中定义为基本类型的顶级字段符合正则表达式要求。 即将推出 | ||||||||
| 有效的基本 FHIR | FHIR 规范中存在基元类型的扩展程序,并且这些扩展程序具有 JSON object 数据类型。 |
||||||||
| 有效的基本 FHIR | 对于选择字段 (fieldname[x]),最多只能记录一个字段。例如,effectiveDateTime 和 effectivePeriod 不能同时出现在同一资源实例中。 |
||||||||
| 有效的基本 FHIR | 复杂的数据类型包含与 FHIR 规范匹配的字段和数据类型。 即将推出 | ||||||||
| 有效的基本 FHIR | 主干元素(以及复杂类型中的元素)包含与 FHIR 规范匹配的字段和数据类型。 即将推出 | ||||||||
| 有效的基本 FHIR | 扩展元素
value[x] 字段是有效类型,并且包含符合相应数据类型的内容。
扩展元素可以包含在任何资源中,用于表示不属于基本规范的其他信息。它们包含一个指向扩展定义的字段 url,以及一个包含扩展值的字段 value[x]。
value[x] 必须是可接受数据类型的设置列表中的一种。
即将推出 |
转换后的 FHIR 数据
某些应用会转换 FHIR 数据以满足自身需求。例如:
- 合并来自不同来源(通常是 FHIR API)的数据。
- 将代码映射到全球术语(例如 SNOMED、LOINC、ICD)并标准化单位。
- 整合数据并去除重复数据。
- 修正格式或其他数据质量问题。
- 根据特定于应用的业务规则过滤记录。
未转换和已转换的 FHIR 数据都可以写入健康数据共享,前提是它们符合 FHIR R4 规范。我们建议您尽可能写入转换后的数据。但请注意以下几点:
- 如果应用的使用场景有限,可能会过滤掉大量记录,而生态系统中的其他应用可以利用这些记录来创造用户价值。在这种情况下,写入更完整的未转换 FHIR 可能是有益的。不过,请务必告知用户系统正在分享此范围更广的数据集。
- 如果合并来自不同来源的数据,您可以将数据写入健康数据共享中的单个
MedicalDataSource。您还必须为每个资源分配一个新 ID,以避免冲突,并更新资源引用以指向新 ID。 - 将多个来源的数据合并到单个
MedicalDataSource中可能会模糊数据来源。由于数据使用者通常需要了解数据的来源,因此我们建议为每个资源的meta.source字段填充记录的原始来源(通常为 FHIR 基本网址)。