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 Талаптарды алуFaz картасы + тік тілім (vertical slice) талап анықтамасы; UDENTIVA.md жоба келісімі талаптарды бекітеді.UDENTIVA.md (АЛТЫН ЕРЕЖЕЛЕР), 02_tech_spec/ техникалық спецификация, faz/модуль картасы
ENG.4 Бағдарламалық жасақтама дизайныМодульдік монолит; контекст (context) пакеттері бір-бірінің кестесін бөліспейді; интерфейс (interface) арқылы байланыс; сыртқы қызмет = adapter.internal/{identity,patient,billing,export,...} шекара ережесі; ADR-001..008
ENG.5 Бағдарламалық жасақтаманы құруАшық SQL (sqlc, ORM жоқ); context әр функцияда бірінші параметр; қатені орау %w; ақша = numeric.sqlc.yaml тип override (numeric→string), db/queries/*.sql, gofmt/golangci-lint
ENG.6 Бағдарламалық жасақтама интеграциясыPHP(BFF) ↔ Go ↔ PostgreSQL ↔ Redis loopback тізбегі; жалғыз public бет.web/core/ApiClient, /healthz компонент денсаулығы (db+redis)
ENG.7 Бағдарламалық жасақтама тестілеуCross-tenant оқшаулау тесті (ең маңызды), idempotency, кездесу қайшылығы, ақша дәлдігі, 2FA/OTP, TOTP RFC6238 вектор, QR (OpenCV+ISO растау).internal/integration/*_test.go, platform/totp/totp_test.go, go test ./...
SUP.1 Сапаны қамтамасыз етуӘр PR АЛТЫН ЕРЕЖЕЛЕРГЕ сай болуы тиіс; lint таза; оқшаулау тесті CI-да қызыл болса, merge жоқ.golangci-lint, Definition of Done kontrol listesi
SUP.8 Конфигурацияны басқаруGit нұсқа басқару (branch core); goose реттік схема нұсқалау; build артефактілері сақтық көшірмеленеді.git, goose_db_version tablosu, .tools/deploy yedekleri
SUP.9 Мәселені шешуAppend-only аудит жазбасы + электрондық пошта/SMS outbox (әр жіберу жазбасы) + deploy сақтық/rollback тәртібі.audit_log, email_outbox/sms_outbox, bin/server.exe.bak-* rollback
SUP.10 Өзгеріс сұранымын басқаруӘр схема өзгерісі жаңа нөмірленген migration; қайтарылатын (goose Down); deploy classifier-мақұлдауы.db/migrations/0001..0027, +goose Up/Down
MAN.3 Жоба басқаруТік тілім жеткізу (әр тілім ұштан-ұшқа жұмыс істейді); сессия тапсыру жазбалары.super-devam.md, faz tablosu (DoD per dilim)
MAN.6 ӨлшеуДенсаулық тексеруі, сыйымдылық өлшеуі, электрондық пошта/SMS жіберу метрикалары, audit көлемі, тірі event телеметриясы./healthz, Процесс Бақылау және Сапа панелі (event/қате/deploy/KPI)

Қабатты Сәулет және Деректер Қауіпсіздігі

Жауапкершіліктер қабаттарға бөлінген; домен билігі жалғыз нүктеде әрі loopback арқылы оқшауланған. Браузер тек жұқа BFF-ті ғана көреді, домен мен дерек қабатына ешқашан тікелей қол жеткізе алмайды.

ҚабатЖауапкершілік және ҚауіпсіздікОрналасқан жер
Sunum (BFF)PHP 8.4 — жұқа BFF: сессия, render, CSRF, бағыттау. Іскери ереже/ДБ ЖОҚ. Жалғыз public бет (IIS:443).web/
Uygulama / DomainGo модульдік монолит — доменнің ЖАЛҒЫЗ билігі. RBAC, іскери ережелер, transaction. Тек 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 PRMerge блоктау
Өндіріс қатесіашық қате (5xx/panic)0error_log (тұрақты)үздіксіз/тіріRCA + CAPA zorunlu
Операция сәттілік деңгейіsuccess / toplam event≥ %99event_counter (тірі)үздіксіз/тіріТөмендегенде түбірлік себеп
Шешім уақытыMTTR (орт. шешім)↓ төмендейтін трендerror_log (resolved)айлықTrend incelemesi
Тарату сенімділігіrollback деңгейі< %5deploy_log30 күнRollback review
Кимлик қауіпсіздігі2FA/OTP kritik olay0audit + event_counterайлықҚатайту
Хабар алмасу сенімділігіSMS/e-posta failure↓ төмен*_outboxкүнделіктіПровайдер review
Қалпына келтіруге дайындықrestore тесті сәттілігі%100DR test (hedef)тоқсандықRunbook жаңарту
Бұл KPI-лар платформа операторы қол жеткізетін тікелей "Процесс мониторингі мен Сапа" панелінен нақты уақытта бақыланады: операция сәттілік деңгейі, ашық қате саны, MTTR (орташа шешу уақыты), тарату саны және rollback деңгейі.

Ақауды Алдын алу және Үздіксіз Жетілдіру Циклі (RCA/CAPA)

Әр өндіру қатесі стандартты түбірлік себеп (RCA) және түзетуші/алдын алу әрекеті (CAPA) циклінен өтеді; сол бір қатенің қайталануы регрессия бақылауымен және тренд қадағалауымен болдырылмайды.

1
Оқиға / қате жазбасы

Өндіріс қатесі (5xx/panic) автоматты түрде ұсталады → тұрақты error_log (бірдей қолтаңба қайталанғанда count++, defect тренд).

2
Жіктеу

Деңгей (error/panic), әсер және қайталану саны анықталады; сәтсіз event санауыштарымен таралуы өлшенеді.

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 ешқашан ағып кетпейді. Әр deploy алдында binary + web сақтық көшірмесі; outage кезінде bin/server.exe.bak-* арқылы секундтар ішінде rollback.

httpx.Error, deploy yedek/rollback runbook
Ақауды болдырмау (Defect Prevention)

Fail-closed сәулет: RLS контекст болмаса 0 жол; idempotency қос операцияны болдырмайды; numeric ақша float қатесін мүмкін емес етеді; whitelist (export dataset) SQL инъекциясын болдырмайды. Қателер дизайнмен басынан бастап болдырылмайды.

RLS FORCE, Idempotency-Key SETNX, numeric, view whitelist
Тәуелсіз растау

Маңызды компоненттер екі тәуелсіз әдіспен расталады: TOTP RFC6238 тест векторы, QR үшін OpenCV cv2 decode + ISO/IEC 18004 анықтамалық codeword, cross-tenant оқшаулау тесті.

integration тесттері + сыртқы decoder растауы
Үздіксіз жетілдіру циклі

Әр сессияда қауіпсіздік аудиті → нәтижелер → қатайту (мыс. faz2/faz3 RBAC қосылды, 2FA, Export API). Процесс жазбалары (super-devam.md) арқылы корпоративтік жад сақталады.

қауіпсіздік аудиті → қатайту циклі
Процесс жаңашылдығы

Жаңа реттеуші сұраныс (VEM Көрінісі) тікелей өнім мүмкіндігіне және дәлелге айналдырылады; заңнама өзгерістері үздіксіз бақыланады және сәйкестік картасына енгізіледі.

Export API/VEM views, /mevzuat сәйкестік картасы

Edition (Нұсқа) Бақылауы

Бір код негізі, байрақпен тарылту — fork жоқ.

  • EDITION=base туы бір-клиникалық MVP-ды белгілейді; мәзір көрінімділігі (app.php) және route қатынасы (index.php) Edition::allows() allowlist-інен оқылады.
  • Go RBAC — БИЛІК; Edition тек UI/бет тарылтуы — нақты өкілеттік API қабатында мәжбүрленеді (көрінімділік ≠ қауіпсіздік).
  • full нұсқада барлық модульдер ашық; base нұсқада Faz 2/Faz 3 өсу модульдері жасырын. Fork ЖОҚ — жалғыз код базасы, тумен тарылту.
  • Tenant негізіндегі жоспар/пакет (платформа жазылым моделі) арқылы сыйымдылық шектеулері өлшенеді; асып кеткенде soft-ескерту (бөгемейді).

Нұсқалау Механизмдері

Схема, дереккөз, орналастыру және API қабатында қадағаланатын нұсқа.

Схема нұсқалау
goose реттік migration (0001 → 0027); әр өзгеріс нөмірленген + қайтарылатын (Up/Down). Қолданылған нұсқа goose_db_version кестесінде бақыланады. Prod migration таза ДБ-де расталады.
Бастапқы код нұсқалау
Git нұсқа басқару (branch: core); оқшауланған орталық bare repo. Әр мағыналы жұмыс commit-теледі; құпиялар (connection.md, .tools) gitignore — пароль ешқашан commit етілмейді.
Тарату нұсқалау
Go binary компиляцияланады (-ldflags "-s -w"), ТЕК bin/server.exe swap (ешқашан WinSW wrapper емес). Әр deploy алдында binary + web сақтық көшірмесі (timestamp-пен). Статикалық asset cache-bust ?v=N.
API нұсқалау
Public ұштар /v1 префиксі; Export API /export/v1. Артқа үйлесімділік сақталады; бұзушы өзгеріс жаңа нұсқа.

Git Қолданысы, Rewind және Rollback

Бүкіл әзірлеу үдерісі нұсқа бақылауында; әр орналастыру кері-қайтарылады (rewind/rollback).

Нұсқа басқару
Git (branch: core); оқшауланған орталық bare repo. Әр мағыналы жұмыс commit-теледі; тарих бақыланады.
Құпияларды басқару
Пароль/кілт/қосылым мәліметі gitignore — ЕШҚАШАН commit етілмейді (connection.md, .tools, *.zip).
Оқшаулау
Тек осы жоба каталогы нұсқаланады; басқа жобалардың бастапқы кодына тиілмейді.
Бақыланымдылық
Commit-тер тік тілім/мүмкіндік негізінде; deploy журналы (deploy_log) commit→release→prod тізбегін байланыстырады.
Rewind / Rollback: Әрбір тарату алдында binary + web + дерекқор сақтық көшірмесі (timestamp-пен) алынады. Схема кері қайтарылатын migration (goose Down) арқылы; жұмыс істеп тұрған binary секундтар ішінде алдыңғы нұсқаға (bin/server.exe.bak-*) қайтарылады; web алдыңғы мұрағаттан қалпына келтіріледі. Оқиға кезінде өндіріс ескі-жақсы күйге кері оралуы мүмкін.

Қауіпсіздік Критерийлері (Алтын Ережелер)

Қауіпсіздік — мүмкіндік емес, сәулеттің өзі. Бұзу PR қабылданбауымен аяқталатын, келіссөзге жатпайтын ережелер:

Жол деңгейіндегі оқшаулау (RLS FORCE, fail-closed)
Әр кестеде tenant_id; policy контекст болмаса 0 жол қайтарады. Cross-tenant оқшаулау тесті CI қақпасы.
Atomik & idempotent yazma
Көп-нысанды операция бір transaction-да (не бәрі не ешбірі); әр мутация Idempotency-Key арқылы қос операцияны болдырмайды.
Para = numeric
Float ТЫЙЫМ; дөңгелектеу бір жерде, 2 таңба. Қаржылық қате дизайнмен мүмкін емес.
Кимлик және сессия
argon2id пароль; opaque session_key Redis-те (TTL жылжымалы); екі сатылы растау (TOTP); session_key браузерге ашылмайды.
Topoloji izolasyonu
Go тек 127.0.0.1 тыңдайды; жалғыз public бет PHP/BFF. Backend порттары (DB/Redis) сыртқа жабық.
Өзгертілмейтін аудит
Append-only audit_log; PII/secret журналданбайды/маскаланады; TCKN/денсаулық деректері арнайы сипатты.
Параметрлі сұраныс
Барлық SQL параметрлі (sqlc/pgx) — SQL инъекциясы мүмкін емес; dataset атаулары whitelist.
Деректерді орналастыру
Денсаулық деректері тек Түркияда; шетелге тасымалдау жоқ (KVKK м.9, KSV Жарғ. м.16).

Development History (Әзірлеу Тарихы)

Жүйе, әрқайсысы ұштан-ұшқа жұмыс істейтін тік тілімдермен құрылды. Төменде фазалар мен соңғы кезеңдегі қауіпсіздік/реттеу жұмыстарының хронологиясы келтірілген.

Faz 0 Қаңқа

pgx+sqlc, goose, RLS fail-closed тесті, WithTenantTx, сессия middleware, login+RBAC, audit, PHP↔Go loopback, asynq негізі, health.

Faz 1 Клиникалық ядро (9 тік тілім)

Пациент CRUD + cross-tenant оқшаулау тесті → Кездесу (exclusion constraint + Redis lock) → Одонтограмма/Ем жоспары (FDI, append-only) → Төлем/Есеп/Касса (derive, idempotent) → e-Fatura adapter (fast-follow) → Қойма → Рентген (S3) → SMS еске салу (asynq backoff).

Platform Платформа басқару консолі

Платформа-оператор (супер-админ) tier-і (X-Platform-Key, бөлек кимлик жазықтығы); tenant басқару, жазылым/фактуралау моделі, сыйымдылық өлшеуі, legal нұсқа редакторы, 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); NetGSM SMS ядросы; көп-tenant public auth; клиника пайдаланушыларын басқару.

2026-06 Екі сатылы растау (2FA)

TOTP (RFC6238) + сақтық кодтар; МІНДЕТТІ QR (сыртқы-тәуелсіз, CSP-таза qr.js; OpenCV+ISO арқылы тәуелсіз расталды); SMS телефонды растау (KVKK келісімі).

2026-06 Реттеу сәйкестігі

VEM Көрінісі (Минимум Деректер Моделі) 12 export view + Export API (SuperUser-анықтаған, tenant-құлыпталған, fail-closed); Заңнама & Сәйкестік картасы; %100 заңнамаға бағытталған legal келісім қайта қаралуы.

2026-06 Қолдау & Процесс

Ticket-бақыланатын Қолдау Орталығы; SPICE процесс құжаттамасы (осы бет); үздіксіз қауіпсіздік аудиті + қатайту.

Үдеріс жетілуі мен сәйкестік туралы көбірек

Сәулет, қауіпсіздік және реттеу сәйкестігі жөнінде толық ақпарат үшін командамызбен байланысыңыз.

Regulation & Compliance Байланысу