Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
实验室连接器
将整个实验室报告作为 CSV、HL7 v2 ORU^R01 或 JSON 发送,并获取带有 LOINC 代码和参考范围的实验室 Observations。
实验室(或任何持有实验室报告的机构)在一个请求中发送完整的报告,平台会将每个结果转换为患者的实验室 Observation:
POST /v1/patients/{patient_id}/labs/import
Authorization: Bearer <project key>
Content-Type: text/csv | x-application/hl7-v2+er7 | application/json
X-Anpheros-Source-System: labx (optional; recorded in Provenance)
Idempotency-Key: <report id> (optional; a retry returns the same answer)
格式
CSV 带标题行;分隔符 , ; 或制表符,接受小数点逗号,日期为 ISO 格式,
DD.MM.YYYY 或 DD/MM/YYYY。可识别的列(罗马尼亚语或英语):标记
(analiza, test, marker, name) — 或仅 LOINC code 列,在这种情况下,LOINC 名称将成为标记 —
值 (rezultat, valoare, value, result),单位 (um, unitate, unit),
参考范围 (interval, referinta: 70-100, <5, >3.5) 或 ref_low/ref_high,
日期 (data, recoltare),可选的 LOINC (loinc, code),备注。
Analiza;Rezultat;UM;Interval de referinta;Data
Hemoglobina glicozilata (HbA1c);6,4;%;4,0-5,6;01.09.2026
TSH;2,1;mUI/L;0,4-4,0;01.09.2026
HL7 v2 ORU^R01 (ER7 文本,段由 CR 或 LF 分隔):OBX-3 标识符 (code^text^LN
为 LOINC;本地代码 (^L, ^99zzz) 或任何其他编码系统将保留为实验室自己的代码,在
urn:anpheros:lab-code 下),OBX-5 值 (NM, SN 或文本),
OBX-6 单位,OBX-7 参考范围,OBX-8 异常标志 → interpretation,OBX-11 状态,
OBX-14 或 OBR-7 日期;OBR-3/MSH-10 将成为 Provenance 中的报告 ID。
实验室。 每项结果在 performer 中命名其生产者,正如 HL7 Europe Laboratory Report 2.1.0
要求的那样:您代表的组织 (X-Anpheros-Acting-As),否则为 HL7 的 MSH-4(发送机构),或
JSON 中的 laboratory(顶级或每个项目)。CSV 不包含实验室;此类结果将通过缺失
执行者进行验证,这是事实。
文本报告、文档和缺失日期。 一行一个 OBX 的文本报告 (TX/FT,相同 OBX-3)
将合并为一项结果。整个文档在 OBX-5 中(ED,或任何编码值 Base64)不
作为结果存储;响应会发出警告,文档应放在 /documents 中。如果没有 OBR-7,结果将按
OBR-14(标本接收)日期,并附带警告。
时间和时区。 没有时区的 v2 时间是发送者的本地时间,而不是 UTC。与
OBX-14/OBR-7 (20260901081000+0300) 一起发送的偏移量将被保留 (2026-09-01T08:10:00+03:00)。如果没有偏移量,将使用
MSH-7 的偏移量,并附带警告;如果任何地方都没有偏移量,结果将只保留其日期,也附带警告。CSV 时间
(01.09.2026 08:10) 不包含时区,因此仅存储为日期。直到 2026 年 10 月 17 日,此类时间一直被标记为 UTC;
在此之前导入的结果将保留其标识符,并在再次发送报告时仍被识别。
HL7 结果中仍处于待定状态 (OBX-11 I)、无法获取 (X)、已删除 (D) 或错误 (W) 的结果,以及没有值的 OBX 段,
不会成为 Observations;每个都会在 warnings 中命名。
JSON: {"date": "2026-09-01", "origin": "report-77", "laboratory": "Synevo", "items": [{"marker": "TSH", "value": 2.1, "unit": "mUI/L", "ref_low": 0.4, "ref_high": 4.0, "date": "2026-09-01", "code": "3016-3"}]}。
返回内容
{"created": 3, "skipped": 0, "unmapped": ["Marker foarte rar"], "warnings": [],
"observations": [{"id": "…", "marker": "TSH", "code": "3016-3", "system": "http://loinc.org", "value": 2.1, "unit": "mUI/L", "date": "2026-09-01"}]}
- 当报告提供 LOINC 代码或名称与平台术语(罗马尼亚语和英语名称及常用别名)匹配时,标记将映射到 LOINC。其他标记将保留实验室代码在
urn:anpheros:lab-code下,并使用报告中的确切文本,然后在unmapped中列出,以便您可以在自己这边改进映射。实验室自己的代码仅与其实验室一起才是唯一的:源系统记录在每个 Observation 的 Provenance (X-Anpheros-Source-System) 中。 - 名称将与 LOINC 名称和同义词进行匹配(例如 Hemoglobin A1c、Glycated hemoglobin、HDL cholesterol、LDL-C)。与多个概念匹配的名称,或带有概念不具备的限定词的名称(urine、non-HDL、free、ratio…),不会被猜测:它将保留实验室代码并在
unmapped中列出。当您的系统有 LOINC 代码时,请发送它们。 - 尿素和尿素氮 (BUN) 是不同的测量值:Uree / Urea 映射到尿素(LOINC
3091-6,或22664-7以 mmol/L 为单位),BUN / Urea nitrogen / Azot ureic 映射到尿素氮(3094-0,或14937-7以 mmol/L 为单位)。值永远不会被转换。 - LDL 胆固醇:没有方法的名称映射到
2089-1;calculated / calculat / Friedewald 映射到计算的 LDL (13457-7);direct 映射到直接测定 (18262-6)。方法是一个限定词,例如 Bilirubina directa 中的 direct,它不是总胆红素,并保留实验室代码。 - 葡萄糖:实验室报告上的裸露的 "Glicemie" / "Glucose" 映射到血清或血浆(LOINC
2345-7);名称为毛细血管、指尖采血或全血("capilar"、"sânge integral")的映射到全血 (2339-0)。报告中的 LOINC 代码始终优先。 - 每行都有一个稳定的标识符 (
urn:anpheros:lab-import:v2),该标识符由报告内容构建——报告 ID、报告上的名称和代码、日期、值和单位——而不是由平台选择的 LOINC 代码,因此重新发送相同的报告会跳过已导入的行 (skipped),即使在映射改进之后也是如此。任何这些内容不同的行(另一份报告、另一个采集时间、另一个值)都会被分开保留。2026 年 10 月 14 日之前导入的结果将保留其原始标识符,并通过名称、日期、值、单位和报告 ID 进行识别。没有报告 ID (CSV) 的情况下,此类匹配将在warnings中报告;发送报告 ID(HL7OBR-3/MSH-10、JSONorigin)以区分不同的报告。 - 每个 Observation 都包含 Provenance,其中包含
author_type = import、您的源系统和报告 ID;每个 Observation 会触发resource.created个 webhook;患者将在他们的应用程序中看到结果,并且他们同意的任何应用程序都可以读取它们。 - 每个请求最多 500 行。
两个 SDK:labs.importCsv、labs.importHl7、labs.importItems。
从 CSV 和 HL7 v2 报告到 FHIR Observations 的工作示例,包含未映射的标记和已重新发送的报告:如何将实验室结果导入 FHIR 记录。
实验室数据如何在实验室、诊所、应用程序和 AI 之间移动,以及在实验室结果 API 中需要注意什么:实验室结果 API。
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card