FHIR

FHIR DiagnosticReport 详解:实验室检查、病理报告或影像报告如何汇总其结果

DiagnosticReport 是用于已签名的报告的 FHIR 资源:它将 Observations 归类到检查组中,包含结论和 PDF 文件,并记录报告的签发者和时间。包括状态、类别(实验室、放射科、病理科)、与 ImagingStudy 的链接、一个有效的 R4 示例,以及它与 DocumentReference 的区别。

作者 发布于 阅读约 1 分钟

简短回答: DiagnosticReport 是 FHIR 中的 报告 资源:实验室、影像科或病理科出具的一组发现,包含状态、类别、签发者和签发时间、结论、它所包含的结果 Observations、它所描述的影像研究以及呈现形式(签名的 PDF)。一次血常规检查就是一个 DiagnosticReport,包含十几个 Observations;一次 CT 扫描就是一个 DiagnosticReport,包含一段文字结论和指向影像的链接。Observation 是一个单一数值;DiagnosticReport 是传递多个数值的文档。

有效的 FHIR R4 示例

一个有效的 FHIR R4 DiagnosticReport 需要状态(status)和代码(code),在实际应用中通常还包含患者(subject)、类别(category)、生效时间(effective time)、发布时间(issued time)、执行者(performer)以及它所包含的结果(Observations)。下面的示例是一个完整的血常规报告,状态为最终(final),使用 LOINC 面板代码进行编码,链接了三个 Observations,一个 SNOMED CT 代码的结论,以及签名的 PDF。

{
  "resourceType": "DiagnosticReport",
  "id": "cbc-2026-03-14",
  "identifier": [{"system": "https://lab.example.org/reports", "value": "RPT-2026-77812"}],
  "basedOn": [{"reference": "ServiceRequest/order-778812"}],
  "status": "final",
  "category": [{"coding": [{"system": "http://terminology.hl7.org/CodeSystem/v2-0074", "code": "HM", "display": "Hematology"}]}],
  "code": {"coding": [{"system": "http://loinc.org", "code": "58410-2", "display": "CBC panel - Blood by Automated count"}]},
  "subject": {"reference": "Patient/example"},
  "encounter": {"reference": "Encounter/visit-2026-03-14"},
  "effectiveDateTime": "2026-03-14T08:40:00+01:00",
  "issued": "2026-03-14T13:05:00+01:00",
  "performer": [{"reference": "Organization/central-lab"}],
  "resultsInterpreter": [{"reference": "Practitioner/haematologist-7"}],
  "specimen": [{"reference": "Specimen/edta-1"}],
  "result": [
    {"reference": "Observation/hgb-2026-03-14"},
    {"reference": "Observation/wbc-2026-03-14"},
    {"reference": "Observation/plt-2026-03-14"}
  ],
  "conclusion": "Mild normocytic anaemia; other parameters within reference ranges.",
  "conclusionCode": [{"coding": [{"system": "http://snomed.info/sct", "code": "271737000", "display": "Anemia"}]}],
  "presentedForm": [{"contentType": "application/pdf", "url": "https://lab.example.org/reports/RPT-2026-77812.pdf", "title": "CBC report"}]
}

result 中引用的每个 Observation 都有其自己的 LOINC 代码、值、单位和参考范围,如 FHIR Observation 详解 中所述。

状态:报告的生命周期

FHIR DiagnosticReport 的状态反映了报告的生命周期:报告被订购时为已注册(registered),结果陆续到达时为部分(partial),完成后但未验证时为初步(preliminary),签名后为最终(final),之后如果发生更改则会被修订(amended)、更正(corrected)或补充(appended);否则,报告会被取消(cancelled)或标记为录入错误(entered-in-error)。用户需要关注修订和更正的报告,因为上周的最终值可能已经发生变化。

registered(已订购,尚无内容)→ partial(部分结果已录入)→ preliminary(所有结果已录入,未验证)→ final(已签名)→ amended 或 corrected(签名后更改,原因在备注中说明)或 appended(添加了更多内容)。否则,cancelled 和 entered-in-error 会结束报告。消费者必须关注 amended 和 corrected:上周还是最终结果的值可能已更改,并且报告的 issued 时间也会随之更新。

类别和代码

DiagnosticReport.category 指明了出具报告的诊断服务,使用 HL7 v2 表 0074 中的代码,例如 LAB(实验室)、HM(血液学)、CH(化学)、MB(微生物学)、RAD(放射学)和 PAT(病理学)。DiagnosticReport.code 说明了报告的内容,通常是实验室报告的 LOINC 面板代码,影像和病理报告的 LOINC 放射学或病理学研究代码,或本地的检查代码。

category 使用 HL7 v2 表 0074 诊断服务部分:LAB(实验室)、HM(血液学)、CH(化学)、MB(微生物学)、RAD(放射学)、PAT(病理学)、CG(细胞遗传学)等;US Core 要求实验室报告使用 LAB。code 说明报告的内容:对于实验室,使用 LOINC 面板代码(全血细胞计数 58410-2、综合代谢面板 24323-8、血脂面板 57698-3);对于影像,使用 LOINC 放射学代码或本地手术代码;对于病理学,使用 LOINC 病理学研究代码。请参阅 什么是 LOINC 代码?。

实验室、影像和病理报告

实验室、影像和病理报告使用相同的 FHIR DiagnosticReport 资源,但侧重于不同的元素。实验室报告会为每个分析物(analyte)包含一个 Observation 和 Specimen 资源;影像报告包含放射科医生的结论、对 ImagingStudy 的引用以及关键图像;病理报告包含诊断文本、分级(grading)的 Observations 和组织标本。这三类报告都会在 presentedForm 中附加签名的 PDF。

实验室 影像 病理
result 每个分析物一个 Observation 通常没有;有时有测量值 分级、标记、切缘的 Observations
conclusion 可选评论 放射科医师的印象 诊断文本
imagingStudy — 指向 ImagingStudy 数字化的全切片图像
media — 关键图像 代表性切片图像
presentedForm 签名 PDF 签名 PDF 签名 PDF
specimen 血液、尿液… Specimen 资源 — 组织 Specimen 资源

对于影像,图像本身保留在 DICOM 中;请参阅 FHIR ImagingStudy 与 DICOMweb。关于这些报告面向患者的含义,请参阅 如何阅读您的实验室结果 和 CT 扫描报告详解。

DiagnosticReport 与 DocumentReference

FHIR DiagnosticReport 是一个结构化报告,其发现(findings)是或可以是编码的 Observations,而 DocumentReference 是指向任何类型文档的指针,包含元数据和文件。结构化的实验室结果会成为一个 DiagnosticReport;没有结构化数据的扫描 PDF 会成为一个 DocumentReference,许多系统会为同一份报告同时创建两者。

DiagnosticReport 是一个结构化报告,其发现是(或可以是)编码的 Observations;DocumentReference 是指向任何类型文档的指针,包含元数据和文件。以 HL7 v2 ORU 格式收到的实验室报告会成为一个包含 Observations 的 DiagnosticReport。来自其他国家的报告的扫描 PDF,如果没有结构化数据,则是一个 DocumentReference。许多系统会同时创建两者:DiagnosticReport 用于数据,presentedForm 或 DocumentReference 用于签名文件。请参阅 DocumentReference 与 DiagnosticReport 与 Binary。

导致报告出错的常见错误

最常导致 FHIR DiagnosticReports 出错的常见错误包括:发送了没有报告来分组的 Observations;将报告标记为最终(final),但其 Observations 仍处于初步(preliminary)状态;将结论重复录入到一个使用自定义代码的 Observation 中;省略发布时间戳(issued timestamp),导致无法检测到更正;以及在已存在 LOINC 面板代码的情况下,创建本地面板代码。

  • 结果被写成 Observations 而没有 DiagnosticReport,导致消费者无法区分哪些值是同时发布的,或者哪个报告被修改了。
  • 报告的 status: final 与其 Observations 的 preliminary 状态不符。
  • 结论被复制到具有虚构代码的 Observation 中。
  • 缺少 issued 时间,导致消费者无法排序报告或检测更正。
  • 在存在 LOINC 面板代码的情况下,本地发明了面板代码。

在 Anpheros 中

Anpheros 平台将通过其实验室连接器以 HL7 v2 ORU、CSV 或 JSON 格式接收的实验室结果,转换为 FHIR Observations,并将其分组在 DiagnosticReport 下,将实验室设为执行者(performer),并在可用时将原始文件作为 presentedForm。在应用中由用户扫描的报告,会作为一份报告保留,包含其单独的结果和原始图像。

(实验室连接器)文档中说明了支持的格式。由于扫描的原始报告会与报告一起保存,医生可以对照原始文件检查任何数值。修订后的报告通过资源版本(resource versions)保留其历史记录。

相关页面

来源

常见问题

单个检测需要 DiagnosticReport 吗?

严格来说,单个 Observation 可以独立存在,家庭测量通常也是如此。由实验室出具的任何报告,即使只有一个结果,最好也封装在 DiagnosticReport 中,以便状态、签发者和签名形式都能随之携带。

如何表示修改后的结果?

更新 Observation(其版本会改变),将 DiagnosticReport 的状态设置为 amended 或 corrected,更新 issued 时间,并在备注中记录原因。切勿创建具有相同标识符的第二个报告。

参考范围放在哪里?

放在每个 Observation 的 referenceRange 中,因为参考范围因分析物和实验室而异。报告本身没有参考范围。

DiagnosticReport 可以包含其他报告吗?

在 R4 中不能直接包含;相关报告通过 basedOn 或扩展相互引用,面板的子面板通常建模为具有 hasMember 的 Observations。R5 保持相同的方法。

Anpheros Platform

在沙盒中免费试用

5 分钟完成第一次 FHIR 调用. 一个内置患者授权的 HL7 FHIR R4 API:先在沙盒中试用,然后连接您自己的应用或诊所系统。

免费 · 30 位合成患者 · 无需信用卡

本指南仅供参考,不能替代医生诊疗。涉及健康的决定请咨询医生。紧急情况下,请拨打当地急救电话(欧洲为 112)。
撰写人
Anpheros 团队

Anpheros 致力于打造一个由患者掌控的医疗记录,并可在欧盟的 HL7 FHIR R4 平台上与任何诊所共享。这些指南旨在帮助您理解和整理您的健康信息,但不能替代您的医生。

关于 Anpheros →