dofamine-mis-sync.js
Кто чей source of truth и какие события летят между МИС клиники и нашей платформой. МИС — юридическая правда (паспорт, визиты, заключения). Мы — непрерывная правда (wearables, AI, decision trail, roadmap). Сценарий: новый пациент → визит → AI flow → возврат в МИС.
Двусторонняя синхронизация между МИС клиники и платформой Дофамин. Диаграмма отвечает на вопрос «у клиники же уже есть данные о пациенте, зачем дублировать?». Не дублируем — разделяем source of truth и обмениваемся событиями.
| Тип данных | Источник правды | Где у нас |
|---|---|---|
| ФИО, паспорт, полис, контакты | МИС (нормативка, биллинг) | read-only реплика |
| Визиты и заключения врача (КЭП) | МИС (юр. документ) | реплика + ссылка |
| Препараты, выписанные на визите | МИС | реплика + расписание приёма |
| Лаб-результаты внутренней лабы | МИС | через коннектор |
| Лаб-результаты внешних партнёров | Helix/Invitro/Гемотест | напрямую, мимо МИС |
| Wearable снапшоты (HRV/RHR/сон/шаги) | Apple Health / Health Connect | у нас, мимо МИС |
| Геномика (VCF) | Atlas/Genotek | изолированно, мимо МИС |
| AI-предложения и reasoning | Мы | ai_proposals |
| Decision trail (AI→врач→пациент) | Мы | doctor_decisions + audit |
| Roadmap, daily focus, журнал | Мы | pg-main |
| Granular consent | Мы | consent_grants |
| Узел | Роль |
|---|---|
mis-registry | Регистратура МИС — оператор заводит нового пациента. |
mis-encounters | Encounters МИС: визиты, расписание. |
mis-clinical-notes | Заключения врачей в МИС, подписанные КЭП. |
mis-prescriptions | Назначения препаратов на визитах. |
mis-internal-lab | Внутренняя лаба клиники. |
mis-connector | Двусторонний адаптер МИС (зависит от вендора). |
fhir-transform | Нормализация в FHIR R4 — один формат внутри нас. |
pg-main | Основной Postgres платформы. |
ai-agents | Мультиагентная обвязка над LLM. |
doctor-cabinet | Веб-кабинет Анны П. |
audit-log | Append-only журнал решений. |
patient-app | Flutter-приложение пациента. |
healthkit / helix-labs / genomics-partner | Внешние источники, минующие МИС (контекст). |
Полный путь данных «новый пациент → первый визит → AI-flow → возврат заметки в МИС»:
[1]–[4]): оператор клиники завёл пациента в МИС → patient.created → коннектор → FHIR Patient → у нас создаётся patients с mis_patient_id как foreign-key.[5]–[8]): первый визит у Анны П. — encounter.created, заключение note.signed (КЭП в МИС) — попадает к нам как read-only копия со ссылкой на оригинал.[9]–[10]): AI-агенты подтягивают контекст (включая wearables от WHOOP через HealthKit) и кладут предложение в doctor_queue.[11]–[15]): Анна П. одобряет в нашем кабинете → doctor_decision сохранён → попадает в audit → возвращается в МИС как DocumentReference (AI-обзор Анны П., видный в карте пациента другим врачам клиники).[16]–[17]): wearables и внешние лабы приходят к нам напрямую — это автономные потоки данных, не требующие участия МИС.mis_patient_id как foreign-key. Любая наша запись пациента — это «прокси» к МИС-карте. Если МИС упадёт — у нас остаются wearables/AI данные, но нельзя завести нового пациента. Это правильно: новый пациент = регистрация в клинике, не «скачал app».DocumentReference. КЭП пишется только в МИС. Это снимает требование к нам встраивать КЭП-инфраструктуру (отдельный TBD-вопрос для встречи с Юлей).DocumentReference (если клинике это нужно для документации).mis-connector сейчас абстрактен. См. CONTEXT.md → «Вопросы к Юле».apps/admin/billing — пока заглушка).CONTEXT.md — все открытые вопросы с вариантами.ARCHITECTURE.md — текстовая архитектура целиком.