Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
Согласие и модель доступа
Кто что видит: изоляция проектов, парные идентификаторы, гранты, права на запись, происхождение данных и что пациент видит о каждом приложении с доступом.
Правило: с согласия пациента организация видит всю запись — включая то, что написали другие клиники — но может изменять или удалять только то, что написала сама. Каждая версия каждого ресурса записывает проект, который ее создал, и организацию, от имени которой она была создана.
Кто что видит
- Проект (API-ключ) видит созданных им пациентов. В рамках гранта (OAuth-токен) приложение видит ровно одного пациента, независимо от всех писателей, с ограничением по предоставленным областям действия (scopes) и фильтрам категорий. Все остальное возвращает 404, никогда 403, поэтому идентификаторы нельзя угадать.
- Парные идентификаторы: каждый проект получает свой собственный идентификатор для одного и того же человека; внутренние идентификаторы никогда не покидают платформу. Ссылки на пациентов за пределами вашей области действия маскируются непрозрачным токеном для каждого проекта.
- Справочник (Organization, Practitioner, PractitionerRole): читается по идентификатору по всей плоскости, чтобы ссылки разрешались; поиск осуществляется только в пределах вашего проекта; используется как
X-Anpheros-Acting-As/X-Anpheros-On-Behalf-Ofтолько когда он ваш. - Песочница (Sandbox) и продакшн (production) — это разные базы данных. Ключ песочницы физически не может получить доступ к реальным пациентам.
Запись и владение
project_idдля каждой версии ресурса = автор записи. Обновление/удаление другим проектом → 403 с объяснением; вместо этого запишите свой собственный ресурс.Provenance.agent.onBehalfOf= клиника/организация на момент записи:X-Anpheros-On-Behalf-Of, иначе организация действующего PractitionerRole, иначе организация проекта.- Каждая запись создает ресурс Provenance и строку аудита (кто, что, когда, под какой грант, какое приложение, с какого отпечатка источника).
Что видит пациент
/me/patients/{id}/grants перечисляет каждое приложение с доступом, его области действия (scopes) и срок действия; …/access-log перечисляет, что каждое приложение прочитало или записало — в рамках согласия и с собственным ключом проекта. Отзыв доступа вступает в силу при следующем запросе; приложение не может обновить его обратно.
С помощью format=fhir журнал доступа возвращается в виде Bundle ресурсов FHIR R4 AuditEvent, сформированных по шаблонам IHE Basic Audit Log Patterns (тип rest, взаимодействие как подтип, приложение и лицо, действующее через него, как агенты, пациент и ресурс как сущности, без клинических данных), чтобы другая система могла объединить его в представление человека о том, кто обращался к его записям.
Что записывает каждый ресурс Provenance и как его настроить: Объяснение происхождения медицинских данных.
SMART Health Links (обмен через QR-код или ссылку)
Человек может поделиться своей записью без посредничества приложения: POST /me/patients/{id}/shl создает
SMART Health Link для подмножества экстренных данных (аллергии,
лекарства, проблемы, прививки — без результатов или истории) или полного Международного резюме пациента, с
необязательным паролем и сроком действия. Ответ содержит URI shlink:/… (для QR-кода) и адрес просмотрщика на /shl/view, который открывается в любом браузере. Любой, кто сканирует его, отправляет запрос на URL манифеста и получает резюме в виде JWE (dir + A256GCM), зашифрованного ключом, содержащимся в ссылке; работает любой читатель SMART Health Link.
- Содержимое генерируется при каждом открытии (флаг
L, статусcan-change), поэтому карта, хранящаяся в телефоне, остается актуальной. - Пароль (флаг
P) проверяется на сервере; после 10 неудачных попыток ссылка перестает работать. GET /me/patients/{id}/shlперечисляет ссылки с указанием частоты и времени каждого открытия;…/shl/{link}/revokeнемедленно отключает одну из них. Каждое открытие регистрируется в журнале доступа.- Внутренний идентификатор человека никогда не покидает платформу: документ называет его псевдонимом ссылки.
Агенты ИИ предлагают, человек решает
С согласия человека запись, сделанная агентом ИИ (приложением, зарегистрированным как агент, например, помощник,
подключенный через MCP) или любая запись с author_type ai, не применяется немедленно. Платформа проверяет ее и
отвечает 202 Accepted с идентификатором предложения (заголовок Anpheros-Proposal); в записи ничего не меняется. Человек
видит это в GET /me/patients/{id}/proposals — что это такое, какое приложение отправило — и принимает или отклоняет его
(…/proposals/{proposal}/accept или …/reject). Принятое предложение записывается точно так, как было отправлено, с пометкой
"написано ИИ" (HL7 AI Transparency). Проекты, которые могут видеть запись, получают тонкий
webhook proposal.created. Записи, сделанные с использованием собственного ключа проекта, в записях, созданных проектом, не удерживаются.
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card