Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
バーチャルケアとAIドクター:必要なデータ
FHIR R4データとしてのバーチャル診察 — 予約、受付、自宅での測定値、診察、フォローアップ — そしてAIアシスタントが同意を得てソースラベル付きのビューを取得する方法。テスト済みフロー。
バーチャルクリニック — 臨床医がビデオ上の人物であれ、それを支援するAIアシスタントであれ — は、訪問前、訪問中、訪問後に参照できる患者データ、すなわち最近の測定値、現在抱えている問題と服薬状況、患者が報告した内容、そして決定事項の記録と同等にしか機能しません。 ビデオ通話は簡単な部分です。このページでは、バーチャル訪問をHL7 FHIR R4リソースにマッピングし、AIアシスタントが同意を得てソースラベル付きのレコードビューをどのように提供されるかを示し、そしてその過程で見つかった1つの制限事項を含め、Anpheros Platformに対してフロー全体を実行します。
データとしてのバーチャルビジット
| フェーズ | 発生すること | FHIR R4 リソース |
|---|---|---|
| 予約 | 患者がビデオビジットの時間を選択する | Appointment |
| 問診 | 患者が質問に答え、症状を報告する | QuestionnaireResponse, Observation (カテゴリ symptom) |
| 自宅でのデータ | 前回のビジット以降の血圧計、体重計、またはスマートウォッチからの測定値 | Observation (バイタルサイン、アクティビティ)、デバイスデータとしてマーク |
| 事前準備 | 臨床医、または臨床医の代わりにAIアシスタントが記録を確認する | read: Condition, MedicationStatement, AllergyIntolerance, Observation, DocumentReference |
| ビジット | 誰が、いつ、なぜ、そしてそれがバーチャルであったか | Encounter with class = VR (virtual) |
| 結果 | 診断、投薬変更、検査指示、フォローアップ | Condition, MedicationStatement, ServiceRequest, CarePlan, Appointment |
| 追跡 | 各項目を誰が、どのシステムから作成したか | minden írásnál Provenance |
対面でのビジットと異なる点は2つあります。臨床医は患者が生成したデータ(自宅での測定値、アンケート)により依存するため、どの値がデバイスまたは患者から来たもので、どの値が臨床医から来たものであるかを記録に示す必要があります。また、事前準備の段階でAIが最も役立つのは、数ヶ月分の測定値を要約して何が変化したかを示すことであるため、記録は患者の同意のもとでソフトウェアが読み取れる必要があります。
AIの役割と、AIが見るべきデータ
| AIの役割 | 必要とするデータ | 取得すべきでないデータ |
|---|---|---|
| 受付アシスタント(診察前に患者と対話) | 現在の問題と投薬状況(関連性の高い質問をするため) | 不要なノートやドキュメント |
| 医師向け診察前サマリー | 最近の測定値の傾向、新しい症状、投薬変更、最近の結果 | 質問の範囲を超える過去の生データ |
| 診察後の記録ドラフト | 診察内容、議論されたこと、結果 | 他の患者のデータ(いかなる場合も) |
| フォローアップチェックイン | ケアプランと要求する測定値 | プラン外の情報 |
共通のルールとして、各AIの役割には、その質問に答えるための最小限のデータを提供し、すべての値のソースを明記して、モデルと医師が自宅での測定値を検査室の結果と比較できるようにします。また、AIが何を見たかを患者が見られるようにすべての読み取りを記録し、診断に関わることについては常に人間を介在させます。診断や治療の推奨を行うAIは、医療機器ソフトウェアとして規制される可能性があります(米国ではFDA、欧州連合では医療機器規則およびAI法の下で)。データプラットフォームはそれを変更するものではありません。
Anpheros 上でのフロー、ステップバイステップ
以下のコードは Anpheros TypeScript SDK を使用しており、ローカルインスタンスのプラットフォームでサンドボックスキーを使用して実行されました。患者はすでにカフ (author_type: device) から 3 つの自宅血圧測定値、高血圧という病状、エナラプリルという薬を持っています。
import { Anpheros, apiKey } from '@anpheros/sdk';
const anpheros = new Anpheros({ auth: apiKey(process.env.ANPHEROS_KEY!) });
const subject = { reference: `Patient/${patientId}` };
// 1. Before the visit: the booking and the intake questionnaire
await anpheros.fhir.create({ resourceType: 'Appointment', status: 'booked', description: 'Video visit: blood pressure follow-up',
start: '2026-10-14T15:00:00-05:00', end: '2026-10-14T15:20:00-05:00',
participant: [{ actor: subject, status: 'accepted' }] } as any);
await anpheros.fhir.create({ resourceType: 'QuestionnaireResponse', status: 'completed', subject, authored: '2026-10-14T09:12:00-05:00',
item: [
{ linkId: 'reason', text: 'What would you like to discuss?', answer: [{ valueString: 'Higher readings this week and dizziness in the morning' }] },
{ linkId: 'missed-doses', text: 'Did you miss any doses in the last 7 days?', answer: [{ valueBoolean: false }] },
] } as any, { author_type: 'patient' });
// The symptom itself, as a patient-reported Observation, so it reaches the context below
await anpheros.observations.create(patientId, { code: 'R42', system: 'http://hl7.org/fhir/sid/icd-10', display: 'Dizziness and giddiness',
category: 'symptom', effective_at: '2026-10-13T07:45:00-05:00', value_text: 'Dizzy for a few minutes after getting up', author_type: 'patient' });
// 2. What the clinician (or an AI assistant helping them) reads: a budgeted, source-labelled context
const ctx = await anpheros.context.build({ patient: patientId, task: 'prepare a video visit',
question: 'blood pressure trend and dizziness in the last 2 weeks', budget_tokens: 700, format: 'text' });
// 3. After the visit: the encounter, written as the clinician
const encounter = await anpheros.fhir.create({ resourceType: 'Encounter', status: 'finished',
class: { system: 'http://terminology.hl7.org/CodeSystem/v3-ActCode', code: 'VR', display: 'virtual' },
subject, period: { start: '2026-10-14T15:02:00-05:00', end: '2026-10-14T15:18:00-05:00' },
reasonCode: [{ text: 'Blood pressure follow-up' }] } as any, { author_type: 'practitioner', source_system: 'video-clinic' });
ステップ 2 で返されたコンテキスト (700 トークンのうち 487 トークン。これはモデルの前に配置したり、臨床医に表示したりするものです):
## Summary
Maria Lopez, 58 y, female. Active conditions: Essential (primary) hypertension. Active medications: Enalapril 10 mg.
Allergies: none recorded. Record: 0 lab values, 3 vital signs, 0 documents. As of 2026-10-13.
## Vitals
- Blood pressure panel: latest 2026-10-12 146/90 mm[Hg] ; weekly 2026-10-05: 150/93.5; 2026-10-12: 146/90 [device]
## Symptoms
- Dizziness and giddiness: 1 occurrence(s): 2026-10-13 [patient]
## Timeline
- 2026-10-13 symptom: Dizziness and giddiness: Dizzy for a few minutes after getting up [patient]
各行にはそのソースがあります — カフの場合は [device]、症状の場合は [patient] — そしてその読み取りはアクセスログに記録されます。エンカウンターの出所は video-clinic からの practitioner を示しており、患者のタイムラインは現在次のようになっています: バーチャルエンカウンター、ビデオ訪問予約、めまい、3 つの血圧測定値、薬、そして病状。
実行中に発見したこと: コンテキスト API には、現在 QuestionnaireResponse の回答は含まれていません。最初の実行では、質問票にめまいのみを含めたところ、それについての言及がない要約が生成されました。患者が報告した症状は、カテゴリ symptom の Observation として記録するか (上記参照)、または質問票を自分でモデルに渡してください。
AIエージェントへの同意によるアクセス許可
AIが他者のアプリケーションで実行される場合、プロジェクトキーは取得されません。アプリケーションは、OAuth 2.1およびSMART on FHIRを通じて患者に同意を求めます。スコープはpatient/Observation.rs?category=vital-signsのように限定的で、期間は固定され、いつでも取り消し可能です。エージェントは、Anpheros MCPサーバーを通じてレコードにアクセスすることもできます。患者が許可しない限り、読み取り専用となります。詳細はAIエージェントに医療記録へのアクセスを許可する方法およびFHIR MCPサーバーを参照してください。
Anpheros の機能と非機能
Anpheros は、上記のテーブルにあるすべてのリソースに対する FHIR R4 ストレージ、アプリケーションごとの同意、すべての書き込みに対する来歴、患者が確認できるアクセスログ、およびレコードをモデル用の予算化されラベル付けされた要約に変換するコンテキスト API を提供します。
ビデオ通話、スケジューリング画面、電子処方、請求、または臨床意思決定支援は提供せず、AI モデルをホストまたは選択することもありません。Anpheros 上に構築された仮想クリニックは、それらの機能と臨床上の責任をもたらします。
よくある質問
バーチャル・ドクターとは何ですか?
ビデオ、電話、メッセージングを通じて、遠隔で患者を診察する臨床医のことです。この用語は、患者と会話するAIアシスタントにも使われます。実際には、それらは人間の臨床医を置き換えるのではなく支援し、同じ患者データに依存します。
どのFHIRリソースが訪問をバーチャルとしてマークしますか?
v3 ActCode VR ("virtual") を持つ Encounter.class です。予約は Appointment であり、受付は QuestionnaireResponse であり、症状については Observation です。
AI医療アシスタントにはどのようなデータが必要ですか?
タスクに必要なものだけです。事前診察サマリーについては、最近の測定トレンド、新しい症状、現在の問題と投薬、および最近の結果 — それぞれにソースと時刻がラベル付けされています。レコード全体ではなく、予算化されたコンテキストを与えてください。
患者報告データとデバイスデータを臨床データと区別するにはどうすればよいですか?
各項目を誰が作成したかを記録します。Anpherosでは、すべての書き込みに作成者のタイプ(患者、デバイス、施術者、インポート、またはAI)があり、モデルに与えられたコンテキストは各行にそれをラベル付けします。
AIアシスタントは患者の同意なしに患者の記録を読むことができますか?
Anpherosではできません。レコードを作成したアプリケーション以外のアプリケーションは、患者のOAuth同意(選択したスコープと期間に制限される)を必要とし、すべての読み取りは患者のアクセスログに表示されます。
関連情報
- AIヘルスケアアプリケーション
- FHIRバックエンドを用いたAIヘルスケアアプリの構築方法
- 構造化データを用いた医療チャットボットの構築方法
- FHIRにおけるウェアラブルデータ: バーチャルビジットで参照されるホームでの測定値
- 個人健康記録アプリの構築方法
- 医療データの来歴(プロベナンス)について
- FHIRを用いた遠隔患者モニタリング
- ヘルスケアアプリおよびAIエージェント向けの医薬品データ
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card