UDENTIVA Aqlli dental boshqaruv platformasi
DASTURIY TA’MINOT SIFATI VA JARAYON YETUKLIGI

Dasturiy Ta’minot Ishlab Chiqish Jarayonimiz va SPICE Muvofiqligi

UDENTIVA sog‘liq dasturi uchun talab qilinadigan jarayon yetukligini arxitekturaning o‘ziga singdiradi. Bu sahifa; ishlab chiqish hayot tsiklimizni, SPICE / ISO-IEC 15504 qobiliyat darajalarini, uzluksiz xato loglash va nazorat mexanizmlarimizni, versiya va xavfsizlik mezonlarimizni hamda ishlab chiqish tariximizni dalillar bilan ochib beradi.

Asos: Sog‘liqni saqlash Axborot Boshqaruv Tizimlari to‘g‘risidagi Nizom (MevzuatNo 39682) 6- va 20-moddalar — dasturiy ta’minot sifati (CMMI/SPICE) sertifikatsiya talabi.

UDENTIVA jarayon arxitekturasi SPICE / ISO/IEC 15504 prinsiplariga mos, auditga tayyor dasturiy taʼminot sifati va jarayon boshqaruvi yondashuvidir.

Jarayon taʼrifi, tatbiqi va kuzatiladigan ish mahsulotlari tuzilgan; miqdoriy oʻlchov, nuqsonlarning oldini olish va uzluksiz takomillashtirish mexanizmlari ishlab chiqarishda ishlab turibdi. Rasmiy qobiliyat darajasi bayonoti mustaqil baholash (appraisal) doirasiga tobedir.

SPICE Qobiliyat Darajalari

SPICE jarayonlarni 0'dan 5'gacha qobiliyat darajasi bilan baholaydi. UDENTIVA 1-3 darajalar talablarini jarayon taʼrifi/tatbiq/kuzatiluvchan ish mahsulotlari darajasida qondiradigan tarzda tuzilgan; 4-5 darajalar uchun miqdoriy oʻlchash va uzluksiz takomillashtirish mexanizmlari ishlatilmoqda. Rasmiy daraja bayonoti mustaqil baholashga bogʻliqdir.

0
Eksik (Incomplete)
Jarayon tatbiq etilmayapti/maqsadga erishmayapti.
1
Bajarilgan (Performed)
Jarayon mavjud va natijalarini ishlab chiqarmoqda.
2
Boshqariladigan (Managed)
Jarayon rejalashtirilmoqda, kuzatilmoqda; ish mahsulotlari boshqarilmoqda.
3
Oʻrnatilgan (Established)
Belgilangan standart jarayon butun loyihada izchil tatbiq etilmoqda.
4
Bashorat qilinadigan (Predictable)
Jarayon miqdoriy (oʻlchov bilan) nazorat qilinmoqda.
5
Optimize Eden (Optimizing)
Uzluksiz takomillashtirish + nuqsonlarning oldini olish + jarayon yangiligi.

4-5 darajalarga oid miqdoriy nazorat va uzluksiz takomillashtirish mexanizmlari quyida dalillari bilan (jonli oʻlchash, xato/CAPA registri, joylashtirish yozuvlari) ishlatiladi.

SPICE Jarayon Sohalari → Amaliyot → Dalil

Har bir jarayon sohasi UDENTIVA'da aniq bir tatbiqqa va tekshiriluvchan dalilga mos keladi. Jarayon hujjat emas, ishlaydigan koddir.

Jarayon SohasiUDENTIVA IlovasiDalil
ENG.1 Talablarni AniqlashFaza xaritasi + vertikal-qatlam (vertical slice) talab taʼrifi; UDENTIVA.md loyiha shartnomasi talablarni qulflaydi.UDENTIVA.md (OLTIN QOIDALAR), 02_tech_spec/ texnik spetsifikatsiya, faza/modul xaritasi
ENG.4 Dasturiy Taʼminot DizayniModulli monolit; kontekst paketlari bir-birining jadvalini ulashmaydi; interfeys orqali aloqa; tashqi xizmat = adapter.internal/{identity,patient,billing,export,...} chegara qoidasi; ADR-001..008
ENG.5 Dasturiy Taʼminot QurilishiOchiq SQL (sqlc, ORM yoʻq); context har bir funksiyada birinchi parametr; xatoni oʻrash %w; pul = numeric.sqlc.yaml tip override (numeric→string), db/queries/*.sql, gofmt/golangci-lint
ENG.6 Dasturiy Taʼminot IntegratsiyasiPHP(BFF) ↔ Go ↔ PostgreSQL ↔ Redis loopback zanjiri; yagona public yuza.web/core/ApiClient, /healthz komponent salomatligi (db+redis)
ENG.7 Dasturiy Taʼminot TestiCross-tenant izolyatsiya testi (eng muhim), idempotency, uchrashuv toʻqnashuvi, pul aniqligi, 2FA/OTP, TOTP RFC6238 vektor, QR (OpenCV+ISO tekshirish).internal/integration/*_test.go, platform/totp/totp_test.go, go test ./...
SUP.1 Sifat KafolatiHar bir PR OLTIN QOIDALARga rioya qilishi shart; lint toza; izolyatsiya testi CI da qizil boʻlsa merge yoʻq.golangci-lint, Definition of Done kontrol listesi
SUP.8 Konfiguratsiya BoshqaruviGit versiya nazorati (branch core); goose ketma-ket sxema versiyalash; build artefaktlari zaxiralanadi.git, goose_db_version tablosu, .tools/deploy yedekleri
SUP.9 Muammoni Hal QilishFaqat qoʻshiladigan (append-only) audit yozuvi + e-pochta/SMS outbox (har bir yuborish yozuvi) + deploy zaxira/rollback intizomi.audit_log, email_outbox/sms_outbox, bin/server.exe.bak-* rollback
SUP.10 Oʻzgartirish Soʻrovi BoshqaruviHar bir sxema oʻzgarishi yangi raqamli migration; orqaga qaytariladigan (goose Down); deploy classifier-tasdigʻi.db/migrations/0001..0027, +goose Up/Down
MAN.3 Loyiha BoshqaruviVertikal-qatlam yetkazib berish (har bir qatlam uchdan-uchgacha ishlaydi); sessiya topshirish yozuvlari.super-devam.md, faz tablosu (DoD per dilim)
MAN.6 OʻlchashSalomatlik tekshiruvi, quvvat oʻlchovi, e-pochta/SMS yuborish metrikalari, audit hajmi, jonli event telemetriyasi./healthz, Jarayon Monitoring va Sifat paneli (event/xato/deploy/KPI)

Qatlamli Arxitektura va Ma’lumot Xavfsizligi

Masʼuliyatlar qatlamlarga ajratilgan; domen otoritesi yagona nuqtada va loopback bilan izolyatsiya qilingan. Brauzer faqat ingichka BFF'ni koʻradi, domen va maʼlumotlar qatlamiga hech qachon bevosita kira olmaydi.

QatlamMas’uliyat va XavfsizlikManzil
Sunum (BFF)PHP 8.4 — ingichka BFF: sessiya, render, CSRF, yoʻnaltirish. Biznes qoidasi/DB YOʻQ. Yagona public yuza (IIS:443).web/
Uygulama / DomainGo modulli monolit — domenning YAGONA hokimiyati. RBAC, biznes qoidalari, transaction. Faqat 127.0.0.1 ni tinglaydi.api/internal/
VeriPostgreSQL — har bir jadval tenant_id + RLS FORCE; ochiq SQL (sqlc), parametrlangan. Pul numeric.api/db/
Kesh / NavbatRedis — sessiya, idempotency, taqsimlangan qulf, asynq navbat (SMS/e-fatura).platform/redisx
Nesne DepolamaS3-mos — katta fayl (rentgen) presigned/stream; blob hech qachon DB da emas.platform/storage
Tashqi Xizmat (adapter)e-Fatura, SMS (NetGSM), e-pochta (SMTP), (keyinchalik e-Nabız/MEDULA/DICOM) — interfeys ortida abstrakt.internal/notify

Miqdoriy O‘lchov va KPI — Jonli Jarayon Telemetriyasi

O‘lchov bayonot emas, ishlaydigan tizimdir. Barcha amallar jonli ravishda sanaladi (muvaffaqiyat/muvaffaqiyatsizlik), ishlab chiqarish xatolari doimiy jurnalga qamraladi va quyidagi KPI ramkasi davriy harakatlarga bog‘lanadi. Ma’lumot manbalari haqiqiy jadvallardir: event_counter (jonli amal sanagichi), error_log (doimiy xato jurnali), deploy_log (deploy jurnali).

O‘lchov SohasiKPIMaqsadMa’lumot ManbasiDavrHarakat
Tenant izolyatsiyasi xavfsizligicross-tenant test fail0CI / izolasyon testiher PRMerge blokirovkasi
Ishlab chiqarish xatosiochiq xato (5xx/panic)0error_log (doimiy)uzluksiz/jonliRCA + CAPA zorunlu
Amaliyot muvaffaqiyat darajasisuccess / toplam event≥ %99event_counter (jonli)uzluksiz/jonliPasayishda tub sabab
Yechish vaqtiMTTR (oʻrt. yechish)↓ kamayuvchi trenderror_log (resolved)oylikTrend incelemesi
Tarqatish ishonchliligirollback darajasi< %5deploy_log30 kunRollback review
Kimlik xavfsizligi2FA/OTP kritik olay0audit + event_counteroylikMustahkamlash
Xabar almashish ishonchliligiSMS/e-posta failure↓ past*_outboxkunlikTaʼminotchi review
Tiklashga tayyorlikrestore test muvaffaqiyati%100DR test (hedef)choraklikRunbook yangilash
Ushbu KPI'lar platforma operatori kiruvchi jonli "Jarayon Kuzatuvi va Sifat" panelidan real vaqtda kuzatiladi: amaliyot muvaffaqiyat darajasi, ochiq xatolar soni, MTTR (oʻrtacha yechish vaqti), joylashtirishlar soni va rollback darajasi.

Nuqson Oldini Olish va Uzluksiz Yaxshilash Tsikli (RCA/CAPA)

Har bir ishlab chiqarish xatosi standart tub sabab (RCA) va tuzatuvchi/oldini oluvchi harakat (CAPA) tsiklidan o‘tadi; bir xil xatoning takrorlanishi regressiya nazorati va trend kuzatuvi bilan oldini olinadi.

1
Hodisa / xato yozuvi

Ishlab chiqarish xatosi (5xx/panic) avtomatik ushlanadi → doimiy error_log (bir xil imzo takrorlanganda count++, defect trend).

2
Tasniflash

Daraja (error/panic), taʼsir va takrorlanish soni aniqlanadi; muvaffaqiyatsiz event sanoqchilari bilan tarqalganlik oʻlchanadi.

3
Tub sabab (RCA)

Jarayon Monitoring panelida tub sabab tahlili amalga oshiriladi va yozib olinadi.

4
Tuzatuvchi/oldini oluvchi harakat (CAPA)

Tuzatuvchi harakat + oldini oluvchi harakat (kod, test, migration qoidasi, xavfsizlik nazorati) aniqlanadi va yozib olinadi.

5
Regressiya nazorati

Oʻsha xatoning takrorlanishini oldini oluvchi test/qoida qoʻshiladi; uzluksiz telemetriya bilan kuzatiladi.

6
Trend incelemesi

KPI trendlari (MTTR, xato darajasi, rollback) davriy baholanadi; takrorlanuvchi xato uchun jarayon-darajasidagi harakat ochiladi.

Yuritilgan Mexanizmlar — Uzluksiz Xato Loglash, Nazorat va Yaxshilash

SPICE 5-darajasining mohiyati: xatolarni uzluksiz loglash, nazoratda tutish, nuqson oldini olish va uzluksiz takomillashtirish. UDENTIVA ushbu mexanizmlarni ishlab chiqarishda ishlatadi.

Uzluksiz Xato Loglash

Oʻzgartirib boʻlmaydigan (append-only) audit_log har bir muhim amaliyotni; email_outbox/sms_outbox har bir yuborishni (status, attempts, error) doimiy qayd etadi. Hech qanday hodisa jimgina yoʻqolmaydi.

audit_log, *_outbox (status/error/attempts)
Xato Nazorati va Orqaga Qaytarish

Izchil xato konverti {error:{code,message}}; ichki xato/stack hech qachon sizib chiqmaydi. Har bir deploy oldidan binary + web zaxirasi; uzilish paytida bin/server.exe.bak-* bilan soniyalar ichida rollback.

httpx.Error, deploy yedek/rollback runbook
Nuqsonlarning Oldini Olish (Defect Prevention)

Fail-closed arxitektura: RLS kontekst yoʻq boʻlsa 0 qator; idempotency ikki marta amaliyotni oldini oladi; numeric pul float xatosini imkonsiz qiladi; whitelist (export dataset) SQL inyeksiyasini oldini oladi. Xatolar dizayn bilan boshidanoq bartaraf etiladi.

RLS FORCE, Idempotency-Key SETNX, numeric, view whitelist
Mustaqil Tekshirish

Kritik komponentlar ikki mustaqil usul bilan tekshiriladi: TOTP RFC6238 test vektori, QR uchun OpenCV cv2 decode + ISO/IEC 18004 mos codeword, cross-tenant izolyatsiya testi.

integration testlari + tashqi decoder tekshiruvi
Uzluksiz Takomillashtirish Sikli

Har bir sessiyada xavfsizlik auditi → topilmalar → mustahkamlash (masalan, faza2/faza3 RBAC qoʻshildi, 2FA, Export API). Jarayon yozuvlari (super-devam.md) bilan korporativ xotira saqlanadi.

xavfsizlik auditi → mustahkamlash sikli
Jarayon Yangiligi

Yangi regulyatsiya talabi (VEM Koʻrinishi) bevosita mahsulot xususiyatiga va dalilga aylantiriladi; qonunchilik oʻzgarishlari uzluksiz kuzatiladi va muvofiqlik xaritasiga kiritiladi.

Export API/VEM views, /mevzuat muvofiqlik xaritasi

Edition (Versiya) Nazorati

Yagona kod bazasi, bayroq bilan qisqartirish — fork yo‘q.

  • EDITION=base bayrogʻi bir-klinikali MVP ni belgilaydi; menyu koʻrinishi (app.php) va route kirishi (index.php) Edition::allows() allowlist'idan oʻqiladi.
  • Go RBAC HOKIMIYATDIR; Edition faqat UI/yuzani toraytirishdir — haqiqiy vakolat API qatlamida majburlanadi (koʻrinish ≠ xavfsizlik).
  • full versiyasida barcha modullar ochiq; base versiyasida Faza 2/Faza 3 oʻsish modullari yashirin. Fork YOʻQ — yagona kod bazasi, bayroq bilan toraytirish.
  • Tenant asosidagi reja/paket (platforma obuna modeli) bilan quvvat chegaralari oʻlchanadi; oshib ketganda soft-ogohlantirish (bloklamaydi).

Versiyalash Mexanizmlari

Sxema, manba, deploy va API qatlamida kuzatiladigan versiya.

Sxema Versiyalash
goose ketma-ket migration (0001 → 0027); har bir oʻzgarish raqamli + orqaga qaytariladigan (Up/Down). Qoʻllanilgan versiya goose_db_version jadvalida kuzatiladi. Prod migration toza-DB da tekshiriladi.
Manba Versiyalash
Git versiya nazorati (branch: core); izolyatsiyalangan markaziy bare repo. Har bir maʼnoli ish commit qilinadi; sirlar (connection.md, .tools) gitignore — parol hech qachon commit qilinmaydi.
Tarqatish Versiyalash
Go binary kompilyatsiya qilinadi (-ldflags "-s -w"), FAQAT bin/server.exe almashtiriladi (hech qachon WinSW wrapper). Har bir deploy oldidan binary + web zaxirasi (timestamp bilan). Statik asset cache-bust ?v=N.
API Versiyalash
Public uchlar /v1 prefiksi; Export API /export/v1. Orqaga muvofiqlik saqlanadi; buzuvchi oʻzgarish yangi versiya.

Git Foydalanishi, Rewind va Rollback

Butun ishlab chiqish jarayoni versiya nazoratida; har bir deploy qaytariladigan (rewind/rollback).

Versiya Nazorati
Git (branch: core); izolyatsiyalangan markaziy bare repo. Har bir maʼnoli ish commit qilinadi; tarix kuzatiladi.
Sir Boshqaruvi
Parol/kalit/ulanish maʼlumoti gitignore — HECH QACHON commit qilinmaydi (connection.md, .tools, *.zip).
Izolyatsiya
Faqat ushbu loyiha katalogi versiyalanadi; boshqa loyihalarning manbasiga tegilmaydi.
Kuzatuvchanlik
Commit'lar vertikal-qatlam/xususiyat asosida; deploy jurnali (deploy_log) commit→release→prod zanjirini bogʻlaydi.
Rewind / Rollback: Har bir joylashtirishdan oldin binary + web + maʼlumotlar bazasi zaxirasi (timestamp bilan) olinadi. Sxema qaytariladigan migration (goose Down) bilan; ishlayotgan binary bir necha soniyada oldingi versiyaga (bin/server.exe.bak-*) qaytariladi; web oldingi arxivdan tiklanadi. Hodisa vaqtida ishlab chiqarish eski-yaxshi holatga qaytarilishi mumkin.

Xavfsizlik Mezonlari (Oltin Qoidalar)

Xavfsizlik xususiyat emas, arxitekturaning o‘zi. Buzilishi PR rad etilishiga olib keladigan, muhokamaga o‘rin yo‘q qoidalar:

Qator darajasidagi izolyatsiya (RLS FORCE, fail-closed)
Har bir jadval tenant_id; kontekst yoʻq boʻlsa policy 0 qator qaytaradi. Cross-tenant izolyatsiya testi CI darvozasi.
Atomik & idempotent yazma
Koʻp-obyektli amaliyot yagona transaction (yo hammasi yo hech biri); har bir mutatsiya Idempotency-Key bilan ikki marta amaliyotni oldini oladi.
Para = numeric
Float TAQIQLANGAN; yaxlitlash yagona joyda, 2 xona. Moliyaviy xato dizayn bilan imkonsiz.
Identifikatsiya va sessiya
argon2id parol; opaque session_key Redis'da (TTL suriladigan); ikki bosqichli tekshirish (TOTP); session_key brauzerga ochilmaydi.
Topoloji izolasyonu
Go faqat 127.0.0.1 ni tinglaydi; yagona public yuza PHP/BFF. Backend portlari (DB/Redis) tashqariga yopiq.
Oʻzgartirib boʻlmaydigan audit
Append-only audit_log; PII/secret loglanmaydi/maskalanadi; TCKN/salomatlik maʼlumoti maxsus xususiyatli.
Parametrli so‘rov
Barcha SQL parametrlangan (sqlc/pgx) — SQL inyeksiyasi imkonsiz; dataset nomlari whitelist.
Maʼlumot joylashuvi
Salomatlik maʼlumoti faqat Turkiyada; chet elga uzatish yoʻq (KVKK m.9, KSV Nizom m.16).

Development History (Rivojlanish Tarixi)

Tizim har biri uchidan-uchiga ishlaydigan vertikal bo‘laklar bilan qurildi. Quyida bosqichlar va so‘nggi davrdagi xavfsizlik/qonunchilik ishlari xronologiyasi keltirilgan.

Faz 0 Skelet

pgx+sqlc, goose, RLS fail-closed testi, WithTenantTx, sessiya middleware, login+RBAC, audit, PHP↔Go loopback, asynq asosi, health.

Faz 1 Klinika Yadrosi (9 vertikal qatlam)

Bemor CRUD + cross-tenant izolyatsiya testi → Uchrashuv (exclusion constraint + Redis lock) → Odontogramma/Davolash rejasi (FDI, append-only) → Toʻlov qabuli/Hisob/Kassa (derive, idempotent) → e-Fatura adapter (fast-follow) → Ombor → Rentgen (S3) → SMS eslatma (asynq backoff).

Platform Platforma boshqaruv konsoli

Platforma-operator (super-admin) tieri (X-Platform-Key, alohida kimlik tekisligi); tenant boshqaruvi, obuna/hisob-kitob modeli, quvvat oʻlchovi, legal versiya muharriri, reCAPTCHA, NetGSM sozlamalari.

Oʻsish Koʻp-til va klinika veb-sayti

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

2026-06 Kimlik va Aloqa Xavfsizligi

Umumiy OTP primitivi; parolni tiklash + magic-link + hisobni faollashtirish (haqiqiy SMTP); NetGSM SMS yadrosi; koʻp-tenantli public auth; klinika foydalanuvchilarini boshqarish.

2026-06 Ikki bosqichli tasdiqlash (2FA)

TOTP (RFC6238) + zaxira kodlar; MAJBURIY QR (tashqi-mustaqil, CSP-toza qr.js; OpenCV+ISO bilan mustaqil tekshirilgan); SMS telefon tasdiqlash (KVKK rozilik).

2026-06 Regulyatsiya Muvofiqligi

VEM Koʻrinishi (Minimal Maʼlumot Modeli) 12 export view + Export API (SuperUser-belgilangan, tenant-qulflangan, fail-closed); Qonunchilik va Muvofiqlik xaritasi; %100 qonunchilikka yoʻnaltirilgan legal shartnoma qayta koʻrigi.

2026-06 Qoʻllab-quvvatlash va Jarayon

Ticket-kuzatuvli Qoʻllab-quvvatlash Markazi; SPICE jarayon hujjatlashtiruvi (ushbu sahifa); uzluksiz xavfsizlik auditi + mustahkamlash.

Jarayon yetukligi va muvofiqlik haqida ko‘proq

Arxitektura, xavfsizlik va qonunchilik muvofiqligi haqida batafsil ma’lumot uchun jamoamiz bilan bog‘laning.

Regulation & Compliance Bogʻlanish