AnpherosAnpheros PlatformDevelopers

Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card

検査結果API:HL7 v2, FHIR, LOINC

検査結果がHL7 v2およびFHIR R4データとしてどのようにやり取りされるか、1つの結果に必要な情報、そして検査レポートをFHIRレコードに受信する方法を、実際の例と共に説明します。

検査結果APIは、PDFではなく構造化データ(テストコード、値、単位、参照範囲、ステータス、時刻)として検査結果を配信するため、ソフトウェアで保存、比較、グラフ化、共有できます。 現在、そのデータは3つの形式で伝達されています。HL7 v2 ORU^R01メッセージ(ラボと病院間のバックボーンとして依然として使用)、HL7 FHIR R4 Observation および DiagnosticReport リソース(最新APIの形式)、そしてラボ固有のCSV、JSON、PDFエクスポートです。このページでは、各要素がどのように連携するか、優れた検査結果APIが何を伝える必要があるか、そしてAnpherosを使用して患者のFHIRレコードに検査データを受信する方法について説明します。

ラボ結果を交換する主体とフォーマット

送信元 → 送信先 現在の一般的なフォーマット 備考
検査機関 → 病院またはクリニックシステム HL7 v2 ORU^R01 (米国ではHL7 v2.5.1 Laboratory Results Interface guideに準拠することが多い) オーダーは逆方向でORM/OMLメッセージとして送信される
検査機関 → 公衆衛生機関 HL7 v2 electronic lab reporting、FHIRの利用が増加 報告義務のある疾患のみ
クリニックシステム → 患者アプリ 患者アクセスAPI経由のFHIR R4 米国では、認定されたEHRはラボ結果をFHIR (US Core) として公開する。EUでは、European Health Data Spaceがラボ結果を優先データカテゴリにリストアップしている
検査機関 → 患者 PDFレポート、ポータル、場合によってはCSV 患者が実際に受け取るフォーマット
アプリ → AIモデル Observationsから構築された構造化コンテキスト コードと単位が信頼性のために必要

方向性は重要です。検査情報システム (LIS) は結果の真実の情報源であり、下流のすべてのシステムはそのコピーを保持します。コピーが信頼できるのは、各コピーが値のコード、単位、範囲、および出所を保持しているためです。

1つの検査結果に必要な情報

「グルコース 126」というだけの結果では、安全に解釈できません。完全な結果には以下の情報が必要です。

FHIR R4 では、各結果は Observation であり、category = laboratory を持ちます。それらをグループ化するレポートは DiagnosticReport であり、result に観測結果をリストします。バリデーターが最も頻繁に報告する間違いを含む、両方の有効な例は FHIR R4 JSON の例 にあります。また、DiagnosticReport の例 も参照してください。

HL7 v2 と FHIR の比較

今日の多くの検査機関が送信する形式と、API が保存すべき形式での同じ脂質パネルの結果:

OBX|1|NM|2093-3^Cholesterol^LN||212|mg/dL|<200|H|||F|||20261002074500
HL7 v2 フィールド 意味 FHIR R4 Observation 要素
OBX-3 2093-3^Cholesterol^LN LOINC でコード化された検査 code.coding (システム http://loinc.org)
OBX-5 212, OBX-2 NM 数値 valueQuantity.value
OBX-6 mg/dL 単位 valueQuantity.unit
OBX-7 <200 参照範囲 referenceRange.high
OBX-8 H 異常フラグ interpretation
OBX-11 F 最終結果 status = final
OBX-14 観測時間 effectiveDateTime

両者の変換は、ほとんどがフィールドのマッピングです。難しい部分は他にあります。LOINC の代わりに独自のコードを送信する検査機関、テキストとして記述された数値 ("6,4", "<5")、複数の表記法での範囲、タイムアウト後に再送信されるレポートなどです。医療データの正規化方法 で、それらを詳細に説明しています。

Anpheros で FHIR レコードに検査結果を取り込む

Anpheros は各患者のレコードを HL7 FHIR R4 として保存しており、ラボコネクタ を備えています。このコネクタは、HL7 v2、CSV、または JSON 形式のレポート全体を 1 つのリクエストで受け取り、LOINC コード、参照範囲、解釈、および来歴情報を含む検査結果 (Observation) を返します。

curl -s -X POST "https://platform.anpheros.com/v1/patients/$PID/labs/import" \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: x-application/hl7-v2+er7" \
  -H "X-Anpheros-Source-System: springfield-lis" \
  --data-binary @lipid-panel.hl7

ローカル環境でプラットフォームを実行した場合、3項目(コレステロール、HDL、トリグリセリド)の脂質パネルの結果は以下のようになります。

{
  "created": 3, "skipped": 0, "unmapped": [], "warnings": [],
  "observations": [
    {"id": "26ed9219-…", "marker": "Cholesterol", "code": "2093-3", "system": "http://loinc.org",
     "value": 212.0, "unit": "mg/dL", "date": "2026-10-02T07:45:00Z"},
    {"id": "2633d1d4-…", "marker": "HDL cholesterol", "code": "2085-9", "system": "http://loinc.org",
     "value": 48.0, "unit": "mg/dL", "date": "2026-10-02T07:45:00Z"},
    {"id": "a02520bb-…", "marker": "Triglyceride", "code": "2571-8", "system": "http://loinc.org",
     "value": 165.0, "unit": "mg/dL", "date": "2026-10-02T07:45:00Z"}
  ]
}

保存された各結果は標準的な FHIR R4 Observation であり、どの FHIR クライアントからでも読み取ることができます。

{
  "resourceType": "Observation",
  "status": "final",
  "category": [{"coding": [{"system": "http://terminology.hl7.org/CodeSystem/observation-category", "code": "laboratory"}]}],
  "code": {"coding": [{"system": "http://loinc.org", "code": "2093-3",
                        "display": "Cholesterol [Mass/volume] in Serum or Plasma"}], "text": "Cholesterol"},
  "subject": {"reference": "Patient/4c3062d9-…"},
  "effectiveDateTime": "2026-10-02T07:45:00Z",
  "valueQuantity": {"value": 212.0, "unit": "mg/dL"},
  "interpretation": [{"coding": [{"system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation", "code": "H"}]}],
  "referenceRange": [{"high": {"value": 200.0, "unit": "mg/dL"}}]
}

同じメッセージを再度送信しても、新しいものは作成されません ("created": 0, "skipped": 3)。各行は、レポート ID、コード、日付、および値から安定した識別子を取得します。プラットフォームが LOINC にマッピングできないマーカーは、ラボのコードを保持し、unmapped で返されるため、ソースでマッピングを修正できます。

結果の読み取りは標準的な FHIR 検索です。

curl -s "https://platform.anpheros.com/fhir/R4/Observation?patient=$PID&category=laboratory&code=http://loinc.org|2093-3" \
  -H "Authorization: Bearer $KEY"

同じデータへのその他の入出力方法:

CSV レポート、HL7 v2 メッセージ、マッピングされていないマーカー、および合成患者に対する再送信レポートを含む完全なウォークスルーは、チュートリアル FHIR レコードへの検査結果のインポート方法 で提供されています。

送信する前に結果を確認する

無料のFHIR R4バリデーターは、Observationの構造と必須バリューセットをチェックします。また、eu-labプロファイルを使用すると、検査結果が持つべき項目(laboratoryカテゴリ、LOINCコード、被験者、最終ステータス、日時、値、UCUM単位、参照範囲)もチェックします。同じチェックがプラットフォーム上でもPOST /fhir/R4/Observation/$validate?profile=eu-labを通じて実行されます。

検査結果APIの選択:チェックリスト

Anpheros が行わないこと

Anpheros は、ラボ情報システムではなく、商用ラボネットワークにも接続されていません。レポートは、ラボ、クリニック、または患者のアプリから送信されます。ラボオーダーのルーティング、この API を介した PDF レポートの読み取り(Anpheros Daily アプリは患者側の写真や PDF から結果を抽出します)、および臨床的な結果の解釈は行いません。単位はラボから送信されたまま保存されます。UCUM コードへの変換は送信者側で行う必要があり、これは 医療データを正規化する方法 で説明されています。

よくある質問

ラボ結果APIとは何ですか?

ラボ結果を、文書ではなく構造化されたデータ(コード化されたテスト、単位付きの値、参照範囲、ステータス、および時間)として送受信できるインターフェースです。最新のラボ結果APIはHL7 FHIR R4のObservationおよびDiagnosticReportリソースを使用しますが、ほとんどのラボは依然としてHL7 v2 ORU^R01メッセージを発行しています。

ラボテストを識別するコードシステムは何ですか?

LOINCです。各LOINCコードは、分析対象物、検体、および多くの場合測定方法を指定するため、2345-7(血清または血漿中のグルコース)と2339-0(全血中のグルコース)は異なる結果となります。単位はUCUMで表現するのが最適です。

ObservationとDiagnosticReportの違いは何ですか?

Observationは、コレステロール 212 mg/dLのような単一の結果です。DiagnosticReportはレポート全体(依頼されたパネル、発行者、発行日時など)であり、resultにそのObservationをリストします。

HL7 v2ラボメッセージをFHIRサーバーにインポートできますか?

はい。各OBXセグメントは1つのObservationにマッピングされます(OBX-3はcodeに、OBX-5およびOBX-6はvalueQuantityに、OBX-7はreferenceRangeに、OBX-8はinterpretationに)。Anpherosラボコネクタはこれを1回の要求で実行し、ラボのレポートIDをProvenanceに保持します。

レポートが再送信された場合に重複するラボ結果を回避するにはどうすればよいですか?

レポート、テスト、時間、および値から派生した安定した識別子を各結果に付与し、識別子が存在する行はスキップします。Anpherosラボコネクタはこれを自動的に行い、カウントをskippedとして報告します。

関連情報

Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card

Product updates by email

New features, guides and the end of the beta. One email a month at most.

Send me occasional Anpheros Platform updates by email (new features, API changes, guides). I'll confirm by email and can unsubscribe in one click from any email. Privacy