UDENTIVA Умная платформа управления стоматологией
КАЧЕСТВО ПО И ЗРЕЛОСТЬ ПРОЦЕССОВ

Наш процесс разработки ПО и соответствие SPICE

UDENTIVA впаивает искомую зрелость процессов для медицинского ПО в саму архитектуру. Эта страница представляет с доказательствами наш жизненный цикл разработки, уровни зрелости SPICE / ISO-IEC 15504, наши механизмы непрерывного логирования ошибок и контроля, наши критерии версий и безопасности и нашу историю разработки.

Основание: Положение о системах управления медицинской информацией (MevzuatNo 39682) ст.6 и ст.20 — требование сертификации качества ПО (CMMI/SPICE).

Процессная архитектура UDENTIVA — это готовый к аудиту подход к управлению качеством и процессами разработки ПО, соответствующий принципам SPICE / ISO/IEC 15504.

Определение процессов, их реализация и прослеживаемые рабочие продукты структурированы; механизмы количественного измерения, предотвращения дефектов и непрерывного улучшения работают в промышленной эксплуатации. Официальное заявление об уровне зрелости подлежит независимой оценке (appraisal).

Уровни зрелости SPICE

SPICE оценивает процессы по уровню зрелости от 0 до 5. UDENTIVA выстроена так, чтобы соответствовать ожиданиям Уровней 1-3 на уровне определения процессов, их выполнения и отслеживаемых рабочих продуктов; для Уровней 4-5 функционируют механизмы количественного измерения и непрерывного улучшения. Официальное заявление об уровне подлежит независимой оценке.

0
Eksik (Incomplete)
Процесс не применяется/не достигает цели.
1
Выполняемый (Performed)
Процесс существует и производит результаты.
2
Управляемый (Managed)
Процесс планируется, отслеживается; рабочие продукты управляются.
3
Установленный (Established)
Определённый стандартный процесс применяется единообразно во всём проекте.
4
Предсказуемый (Predictable)
Процесс контролируется количественно (по измерениям).
5
Optimize Eden (Optimizing)
Непрерывное улучшение + предотвращение дефектов + инновации процессов.

Механизмы количественного контроля и непрерывного улучшения, относящиеся к Уровням 4-5, функционируют ниже с доказательствами (живое измерение, журнал ошибок/CAPA, записи о развёртываниях).

Области процессов SPICE → Реализация → Доказательство

Каждая область процесса соответствует конкретной реализации в UDENTIVA и проверяемому доказательству. Процесс — это не документ, а работающий код.

Область процессаПриложение UDENTIVAДоказательство
ENG.1 Извлечение требованийКарта фаз + определение требований по вертикальным срезам; проектный договор UDENTIVA.md фиксирует требования.UDENTIVA.md (ЗОЛОТЫЕ ПРАВИЛА), техническая спецификация 02_tech_spec/, карта фаз/модулей
ENG.4 Проектирование ПОМодульный монолит; пакеты контекстов не делят таблицы друг друга; взаимодействие через interface; внешний сервис = adapter.правило границ internal/{identity,patient,billing,export,...}; ADR-001..008
ENG.5 Разработка ПОЯвный SQL (sqlc, без ORM); context — первый параметр в каждой функции; обёртка ошибок %w; деньги = numeric.переопределение типа в sqlc.yaml (numeric→string), db/queries/*.sql, gofmt/golangci-lint
ENG.6 Интеграция ПОLoopback-цепочка PHP(BFF) ↔ Go ↔ PostgreSQL ↔ Redis; единственная публичная поверхность.web/core/ApiClient, /healthz — состояние компонентов (db+redis)
ENG.7 Тестирование ПОТест изоляции между арендаторами (наиболее критичный), idempotency, конфликты записи на приём, точность денежных расчётов, 2FA/OTP, тест-вектор TOTP RFC6238, QR (проверка OpenCV+ISO).internal/integration/*_test.go, platform/totp/totp_test.go, go test ./...
SUP.1 Обеспечение качестваКаждый PR обязан соответствовать ЗОЛОТЫМ ПРАВИЛАМ; lint чист; если тест изоляции красный в CI — слияние запрещено.golangci-lint, Definition of Done kontrol listesi
SUP.8 Управление конфигурациейКонтроль версий Git (ветка core); последовательное версионирование схемы goose; артефакты сборки резервируются.git, goose_db_version tablosu, .tools/deploy yedekleri
SUP.9 Решение проблемАудит-журнал только на добавление (append-only) + outbox эл. почты/SMS (запись каждой отправки) + дисциплина резервирования/отката развёртывания.audit_log, email_outbox/sms_outbox, bin/server.exe.bak-* rollback
SUP.10 Управление запросами на изменениеКаждое изменение схемы — новая пронумерованная migration; обратимая (goose Down); одобрение классификатора развёртывания.db/migrations/0001..0027, +goose Up/Down
MAN.3 Управление проектомПоставка вертикальными срезами (каждый срез работает от начала до конца); заметки о передаче сессий.super-devam.md, faz tablosu (DoD per dilim)
MAN.6 ИзмерениеПроверка работоспособности, измерение ёмкости, метрики отправки эл. почты/SMS, объём аудита, телеметрия событий в реальном времени./healthz, панель мониторинга процессов и качества (события/ошибки/развёртывание/KPI)

Многослойная архитектура и безопасность данных

Обязанности разделены по слоям; авторитет предметной области находится в одной точке и изолирован через loopback. Браузер видит только тонкий BFF и никогда не может напрямую обратиться к слою предметной области и данных.

СлойОтветственность и безопасностьЛокация
Sunum (BFF)PHP 8.4 — тонкий BFF: сессия, рендеринг, CSRF, маршрутизация. Бизнес-логики/БД НЕТ. Единственная публичная поверхность (IIS:443).web/
Uygulama / DomainGo модульный монолит — ЕДИНСТВЕННЫЙ авторитет домена. RBAC, бизнес-правила, транзакции. Слушает только 127.0.0.1.api/internal/
VeriPostgreSQL — в каждой таблице tenant_id + RLS FORCE; явный SQL (sqlc), параметризованный. Деньги numeric.api/db/
Кэш / ОчередьRedis — сессия, idempotency, распределённая блокировка, очередь asynq (SMS/e-fatura).platform/redisx
Nesne DepolamaS3-совместимое — большие файлы (рентген) presigned/stream; blob никогда не в БД.platform/storage
Внешний сервис (adapter)e-Fatura, SMS (NetGSM), эл. почта (SMTP), (в будущем e-Nabız/MEDULA/DICOM) — абстрагированы за interface.internal/notify

Количественное измерение и KPI — живая телеметрия процессов

Измерение — не декларация, а работающая система. Все операции считаются в реальном времени (успех/неудача), производственные ошибки фиксируются в постоянном журнале, а рамка KPI ниже привязана к периодическим действиям. Источники данных — реальные таблицы: event_counter (живой счётчик операций), error_log (постоянный журнал ошибок), deploy_log (журнал деплоев).

Область измеренияKPIЦельИсточник данныхПериодДействие
Безопасность изоляции арендаторов (tenant)cross-tenant test fail0CI / izolasyon testiher PRБлокировка слияния
Производственная ошибкаявная ошибка (5xx/panic)0error_log (постоянный)непрерывно/в реальном времениRCA + CAPA zorunlu
Доля успешных операцийsuccess / toplam event≥ 99 %event_counter (в реальном времени)непрерывно/в реальном времениКорневая причина при снижении
Время устраненияMTTR (ср. время устранения)↓ убывающий трендerror_log (resolved)ежемесячноTrend incelemesi
Надёжность развёртываниядоля откатов (rollback)< %5deploy_log30 днейRollback review
Безопасность идентификации2FA/OTP kritik olay0audit + event_counterежемесячноУсиление защиты
Надёжность обмена сообщениямиSMS/e-posta failure↓ низкая*_outboxденьПроверка провайдера
Готовность к восстановлениюуспешность тестов восстановления%100DR test (hedef)ежеквартальноОбновить Runbook
Эти KPI отслеживаются в реальном времени из живой панели «Мониторинг процессов и качество», доступной оператору платформы: коэффициент успешности операций, число открытых ошибок, MTTR (среднее время устранения), число развёртываний и коэффициент откатов.

Цикл предотвращения дефектов и непрерывного улучшения (RCA/CAPA)

Каждая производственная ошибка проходит стандартный цикл анализа первопричины (RCA) и корректирующего/предупреждающего действия (CAPA); повторение той же ошибки предотвращается регрессионным контролем и отслеживанием трендов.

1
Журнал инцидентов / ошибок

Производственные ошибки (5xx/panic) перехватываются автоматически → постоянный error_log (при повторе той же сигнатуры count++, тренд дефектов).

2
Классификация

Определяется уровень (error/panic), влияние и число повторов; распространённость измеряется счётчиками неуспешных событий.

3
Корневая причина (RCA)

Анализ корневых причин выполняется и фиксируется на панели мониторинга процессов.

4
Корректирующее/предупреждающее действие (CAPA)

Определяются и фиксируются корректирующее и предупреждающее действия (код, тест, правило migration, контроль безопасности).

5
Контроль регрессии

Добавляется тест/правило, предотвращающее повтор той же ошибки; отслеживается непрерывной телеметрией.

6
Trend incelemesi

Тренды KPI (MTTR, доля ошибок, rollback) периодически оцениваются; для повторяющихся ошибок открывается действие на уровне процесса.

Работающие механизмы — непрерывное логирование ошибок, контроль и улучшение

Суть SPICE Уровня 5: непрерывное логирование ошибок, удержание их под контролем, предотвращение дефектов и непрерывное улучшение. UDENTIVA эксплуатирует эти механизмы в продакшене.

Непрерывное логирование ошибок

Неизменяемый (append-only) audit_log фиксирует каждую критическую операцию; email_outbox/sms_outbox — каждую отправку (status, attempts, error). Ни одно событие не теряется незаметно.

audit_log, *_outbox (status/error/attempts)
Контроль ошибок и откат

Единообразная оболочка ошибок {error:{code,message}}; внутренние ошибки/stack никогда не раскрываются. Перед каждым развёртыванием — резервная копия binary + web; при простое откат за секунды через bin/server.exe.bak-*.

httpx.Error, deploy yedek/rollback runbook
Предотвращение дефектов (Defect Prevention)

Архитектура fail-closed: без контекста RLS — 0 строк; idempotency предотвращает двойную операцию; numeric делает ошибку с float-деньгами невозможной; whitelist (набор данных экспорта) предотвращает SQL-инъекцию. Ошибки предотвращаются на этапе проектирования.

RLS FORCE, Idempotency-Key SETNX, numeric, view whitelist
Независимая верификация

Критические компоненты проверяются двумя независимыми методами: тест-вектор TOTP RFC6238, для QR — декодирование OpenCV cv2 + эталонное кодовое слово ISO/IEC 18004, тест изоляции между арендаторами.

интеграционные тесты + проверка внешним декодером
Цикл непрерывного улучшения

В каждой сессии аудит безопасности → выводы → усиление защиты (напр. добавлены RBAC фазы 2/фазы 3, 2FA, Export API). Корпоративная память сохраняется в процессных заметках (super-devam.md).

цикл: аудит безопасности → усиление защиты
Инновации процессов

Новое регуляторное требование (VEM Görüntüsü) напрямую преобразуется в функцию продукта и доказательства; изменения законодательства непрерывно отслеживаются и вносятся в карту соответствия.

Export API/VEM views, карта соответствия /mevzuat

Контроль редакции (Edition)

Одна кодовая база, сужение флагом — без форков.

  • Флаг EDITION=base определяет MVP для одной клиники; видимость меню (app.php) и доступ к маршрутам (index.php) считываются из allowlist Edition::allows().
  • Go RBAC — АВТОРИТЕТ; Edition — лишь сужение UI/поверхности; реальные права принудительно проверяются на уровне API (видимость ≠ безопасность).
  • в полной версии все модули открыты; в версии base модули роста Фазы 2/Фазы 3 скрыты. Форка НЕТ — единая кодовая база, сужение флагом.
  • Лимиты ёмкости измеряются по тарифу/пакету арендатора (модель подписки платформы); при превышении — мягкое предупреждение (не блокирует).

Механизмы версионирования

Отслеживаемая версия на уровне схемы, источника, деплоя и API.

Версионирование схемы
Последовательные migration goose (0001 → 0027); каждое изменение пронумеровано + обратимо (Up/Down). Применённая версия отслеживается в таблице goose_db_version. Prod-migration проверяется на чистой БД.
Версионирование исходного кода
Контроль версий Git (ветка: core); изолированный центральный bare-репозиторий. Каждая значимая работа коммитится; секреты (connection.md, .tools) в gitignore — пароли никогда не коммитятся.
Версионирование развёртывания
Go binary компилируется (-ldflags "-s -w"), заменяется ТОЛЬКО bin/server.exe (никогда не WinSW wrapper). Перед каждым развёртыванием — резервная копия binary + web (с меткой времени). Cache-bust статических ресурсов ?v=N.
Версионирование API
Публичные конечные точки с префиксом /v1; Export API — /export/v1. Обратная совместимость сохраняется; ломающее изменение — новая версия.

Использование Git, Rewind и Rollback

Весь процесс разработки под контролем версий; каждый деплой обратим (rewind/rollback).

Контроль версий
Git (ветка: core); изолированный центральный bare-репозиторий. Каждая значимая работа коммитится; история прослеживается.
Управление секретами
Пароли/ключи/данные подключения в gitignore — НИКОГДА не коммитятся (connection.md, .tools, *.zip).
Изоляция
Версионируется только каталог этого проекта; исходный код других проектов не затрагивается.
Прослеживаемость
Коммиты привязаны к вертикальным срезам/функциям; журнал развёртывания (deploy_log) связывает цепочку commit→release→prod.
Rewind / Rollback: Перед каждым развёртыванием создаётся резервная копия (с меткой времени) бинарного файла, веб-части и базы данных. Схема — с помощью обратимой миграции (goose Down); работающий бинарный файл за секунды откатывается к предыдущей версии (bin/server.exe.bak-*); веб-часть восстанавливается из предыдущего архива. В момент инцидента продакшен можно отмотать к прежнему исправному состоянию.

Критерии безопасности (Золотые правила)

Безопасность — не функция, а сама архитектура. Правила, нарушение которых означает отклонение PR и которые не подлежат обсуждению:

Изоляция на уровне строк (RLS FORCE, fail-closed)
В каждой таблице tenant_id; без контекста политика возвращает 0 строк. Тест изоляции между арендаторами — шлюз CI.
Atomik & idempotent yazma
Многосущностная операция в одной транзакции (либо всё, либо ничего); каждая мутация с Idempotency-Key предотвращает двойную операцию.
Para = numeric
Float ЗАПРЕЩЁН; округление в одном месте, 2 знака. Финансовая ошибка невозможна по проекту.
Идентификация и сессия
Пароль argon2id; непрозрачный session_key в Redis (скользящий TTL); двухфакторная аутентификация (TOTP); session_key не раскрывается браузеру.
Topoloji izolasyonu
Go слушает только 127.0.0.1; единственная публичная поверхность — PHP/BFF. Порты бэкенда (DB/Redis) закрыты извне.
Неизменяемый аудит
Append-only audit_log; PII/секреты не логируются/маскируются; TCKN/данные о здоровье — особой категории.
Параметризованный запрос
Весь SQL параметризован (sqlc/pgx) — SQL-инъекция невозможна; имена наборов данных в whitelist.
Локализация данных
Данные о здоровье только в Турции; трансграничная передача отсутствует (KVKK ст. 9, Регламент KSV ст. 16).

История разработки (Development History)

Система построена вертикальными срезами, каждый из которых работает от начала до конца. Ниже приведены фазы и хронология недавних работ по безопасности/регулированию.

Faz 0 Каркас

pgx+sqlc, goose, тест fail-closed RLS, WithTenantTx, middleware сессий, вход+RBAC, аудит, loopback PHP↔Go, база asynq, health.

Faz 1 Клиническое ядро (9 вертикальных срезов)

CRUD пациентов + тест изоляции между арендаторами → Приёмы (exclusion constraint + блокировка Redis) → Одонтограмма/План лечения (FDI, append-only) → Инкассация/Взаиморасчёты/Касса (derive, idempotent) → adapter e-Fatura (fast-follow) → Склад → Рентген (S3) → SMS-напоминания (asynq backoff).

Platform Консоль управления платформой

Уровень платформенного оператора (супер-админ) (X-Platform-Key, отдельная плоскость идентификации); управление арендаторами, модель подписки/выставления счетов, измерение ёмкости, редактор правовых версий, reCAPTCHA, настройки NetGSM.

Рост Многоязычность и веб-сайт клиники

i18n (20 dil, key-based, RTL); 20 tema + klinik public site (/s/{slug}) + lead-booking; demo klinik siteleri.

2026-06 Безопасность идентификации и коммуникаций

Общий примитив OTP; сброс пароля + magic-link + активация учётной записи (реальный SMTP); ядро SMS NetGSM; мультиарендная публичная авторизация; управление пользователями клиники.

2026-06 Двухфакторная аутентификация (2FA)

TOTP (RFC6238) + резервные коды; ОБЯЗАТЕЛЬНЫЙ QR (без внешних зависимостей, CSP-чистый qr.js; независимо проверен через OpenCV+ISO); подтверждение телефона по SMS (согласие KVKK).

2026-06 Соответствие регуляторным требованиям

VEM Görüntüsü (Минимальная модель данных) — 12 export view + Export API (задаётся SuperUser, привязан к арендатору, fail-closed); карта соответствия «Законодательство»; пересмотр правовых договоров на 100 % под требования законодательства.

2026-06 Поддержка и процессы

Центр поддержки с отслеживанием тикетов; документация процессов SPICE (эта страница); непрерывный аудит безопасности + усиление защиты.

Больше о зрелости процессов и соответствии

За подробной информацией об архитектуре, безопасности и соответствии регулированию свяжитесь с нашей командой.

Regulation & Compliance Связаться