Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
Віртуальна допомога та ШІ-лікарі: необхідні дані
Віртуальний візит як дані FHIR R4 — бронювання, прийом, домашні показники, візит, подальше спостереження — і як ШІ-асистент отримує узгоджений перегляд із зазначенням джерел. Перевірений потік.
Віртуальна клініка — незалежно від того, чи є клініцистом людина на відео, чи помічник зі ШІ, який їй допомагає — настільки ж ефективна, наскільки й дані пацієнта, які вона може бачити до, під час і після візиту: останні вимірювання, активні проблеми та ліки, що повідомив пацієнт, та запис про прийняті рішення. Відеодзвінок — це легка частина. Ця сторінка відображає віртуальний візит до ресурсів HL7 FHIR R4, показує, як помічнику зі ШІ можна надати узгоджений перегляд запису з позначкою джерела, і запускає весь потік на платформі Anpheros, включаючи одне обмеження, яке ми виявили під час цього процесу.
Віртуальний візит як дані
| Етап | Що відбувається | Ресурси FHIR R4 |
|---|---|---|
| Бронювання | Пацієнт обирає час для відеовізиту | Appointment |
| Прийом | Пацієнт відповідає на запитання та повідомляє про симптоми | QuestionnaireResponse, Observation (категорія symptom) |
| Домашні дані | Показники з тонометра, ваг або годинника з моменту останнього візиту | Observation (життєві показники, активність), позначені як дані пристрою |
| Підготовка | Клініцист або помічник зі штучним інтелектом для нього переглядає запис | read: Condition, MedicationStatement, AllergyIntolerance, Observation, DocumentReference |
| Візит | Хто, коли, чому і те, що це було віртуально | Encounter з class = VR (віртуальний) |
| Результат | Діагноз, зміни в лікуванні, призначені тести, подальше спостереження | Condition, MedicationStatement, ServiceRequest, CarePlan, Appointment |
| Відстеження | Хто написав кожен елемент, з якої системи | Provenance при кожному записі |
Дві речі відрізняють це від особистого візиту. Клініцист більше покладається на дані, надані пацієнтом (домашні показники, анкети), тому запис повинен показувати, які значення надійшли від пристрою чи пацієнта, а які — від клініциста. А етап підготовки — це місце, де ШІ сьогодні найбільш корисний — узагальнення місячних показників до того, що змінилося — тому запис повинен бути читабельним для програмного забезпечення за згодою пацієнта.
Де місце ШІ та що він має бачити
| Роль ШІ | Дані, які йому потрібні | Дані, які він не повинен отримувати |
|---|---|---|
| Асистент прийому (спілкується з пацієнтом до візиту) | Актуальні проблеми та медикаменти, щоб ставити релевантні запитання | Нотатки та документи, які йому не потрібні |
| Передвізитний звіт для клініциста | Тенденції останніх вимірювань, нові симптоми, зміни в медикаментах, останні результати | Сирі дані за роки, що виходять за межі запитання |
| Чернетка документації після візиту | Зустріч, що обговорювалося, результат | Дані інших пацієнтів, будь-коли |
| Подальші перевірки | План догляду та вимірювання, які він запитує | Будь-що поза планом |
Загальні правила: надавайте кожній ролі ШІ найменший фрагмент, який відповідає на її запитання, маркуйте джерело кожного значення, щоб модель та клініцист могли порівняти домашнє вимірювання з лабораторним результатом, реєструйте кожне прочитання, щоб пацієнт міг бачити, що бачив ШІ, і тримайте людину в циклі для всього діагностичного. ШІ, який ставить діагнози або рекомендує лікування, може регулюватися як програмне забезпечення медичного пристрою (FDA у Сполучених Штатах; відповідно до Регламенту медичних пристроїв та Закону про ШІ в Європейському Союзі); платформа даних не змінює цього.
Потік в Anpheros, крок за кроком
Наведений нижче код використовує Anpheros TypeScript SDK і був запущений проти локального екземпляра платформи з ключем sandbox. Пацієнт вже має три домашні показники артеріального тиску від манжети (author_type: device), гіпертонію як стан і еналаприл як ліки.
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 (487 з 700 токенів; це те, що ви б надали моделі або показали клініцисту):
## 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] для симптому — і запис реєструється в журналі доступу. Походження зустрічі показує practitioner з video-clinic, а часова шкала пацієнта тепер читається: віртуальна зустріч, запис на відеовізит, запаморочення, три показники артеріального тиску, ліки та стан.
Що ми виявили під час запуску: API контексту сьогодні не включає відповіді QuestionnaireResponse. Перший запуск, коли запаморочення було лише в анкеті, дав резюме без згадки про нього. Записуйте симптоми, про які повідомляє пацієнт, як Observation з категорією symptom (як зазначено вище), або передайте анкету вашій моделі самостійно.
Надання ШІ-агенту доступу за згодою
Коли ШІ працює в чужому додатку, він не отримує ваш ключ проєкту. Додаток запитує згоду пацієнта через OAuth 2.1 та SMART on FHIR, з областями дії (scopes) не ширшими за patient/Observation.rs?category=vital-signs, на фіксований період, який можна відкликати будь-коли. Агент також може отримати доступ до запису через сервер Anpheros MCP, лише для читання, якщо пацієнт не дозволить більше. Дивіться Як надати ШІ-агенту доступ до медичних записів та FHIR MCP сервер.
Що Anpheros робить і не робить
Anpheros надає запис та елементи керування навколо нього: сховище FHIR R4 для кожного ресурсу в таблиці вище, згоду на додаток, інформацію про походження (provenance) при кожному записі, журнал доступу, який може переглядати пацієнт, та API контексту, який перетворює запис на збалансований, позначений підсумок для моделі.
Він не надає відеодзвінки, екрани планування, електронне призначення ліків, виставлення рахунків або підтримку клінічних рішень, а також не розміщує та не вибирає AI-моделі. Віртуальна клініка, побудована на його основі, надає ці функції та клінічну відповідальність самостійно.
Часті запитання
Що таке віртуальний лікар?
Клініцист, який приймає пацієнтів віддалено, за допомогою відеозв'язку, телефону або повідомлень. Цей термін також використовується для позначення ШІ-асистентів, які спілкуються з пацієнтами; на практиці вони допомагають людині-клініцисту, а не замінюють його, і залежать від тих самих даних пацієнта.
Який ресурс FHIR позначає візит як віртуальний?
Encounter.class з кодом v3 ActCode VR ("virtual"). Бронювання — це Appointment; прийом — це QuestionnaireResponse, а для симптомів — Observations.
Які дані потрібні медичному ШІ-асистенту?
Тільки те, що вимагає його завдання: для попереднього резюме візиту — останні тенденції вимірювань, нові симптоми, активні проблеми та ліки, а також останні результати — кожен з позначкою джерела та часу. Надайте йому обмежений контекст, а не повний запис.
Як відрізнити дані, повідомлені пацієнтом та пристроєм, від клінічних даних?
Записуйте, хто написав кожен елемент. В Anpheros кожен запис має тип автора — пацієнт, пристрій, практикуючий лікар, імпорт або ШІ — а контекст, наданий моделі, позначає кожен рядок цим типом.
Чи може ШІ-асистент читати запис пацієнта без його згоди?
Не в Anpheros. Додаток, відмінний від того, що створив запис, потребує OAuth-згоди пацієнта, обмеженої вибраними ним областями дії та періодом, і кожне читання відображається в його журналі доступу.
Пов'язані теми
- AI-застосунки в галузі охорони здоров'я
- Як створити AI-застосунок для охорони здоров'я з бекендом FHIR
- Як створити медичний чат-бот зі структурованими даними
- Дані з носимих пристроїв у FHIR: показники домашніх вимірювань, на які покладається віртуальний візит
- Як створити застосунок для персональної медичної картки
- Походження медичних даних: пояснення
- Дистанційний моніторинг пацієнтів з FHIR
- Дані про ліки для застосунків охорони здоров'я та AI-агентів
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card