UDENTIVA menanam kematangan proses yang dicari untuk perisian kesihatan ke dalam seni bina itu sendiri. Halaman ini memaparkan kitaran hayat pembangunan kami, tahap keupayaan SPICE / ISO-IEC 15504, mekanisme pengelogan ralat dan kawalan berterusan kami, kriteria versi dan keselamatan kami serta sejarah pembangunan kami dengan bukti.
Asas: Peraturan tentang Sistem Pengurusan Maklumat Kesihatan (MevzuatNo 39682) m.6 dan m.20 — keperluan pensijilan kualiti perisian (CMMI/SPICE).
Definisi proses, pelaksanaan dan produk kerja yang boleh dijejaki telah distrukturkan; mekanisme pengukuran kuantitatif, pencegahan kecacatan dan penambahbaikan berterusan dijalankan dalam pengeluaran. Pernyataan tahap keupayaan rasmi tertakluk kepada skop penilaian bebas (appraisal).
SPICE menilai proses pada tahap keupayaan 0 hingga 5. UDENTIVA distrukturkan untuk memenuhi jangkaan Tahap 1-3 pada peringkat takrifan proses/pelaksanaan/produk kerja yang boleh dikesan; bagi Tahap 4-5, mekanisme pengukuran kuantitatif dan penambahbaikan berterusan dijalankan. Pengisytiharan tahap rasmi tertakluk kepada penilaian bebas.
Mekanisme kawalan kuantitatif dan penambahbaikan berterusan bagi Tahap 4-5 dijalankan di bawah dengan buktinya (pengukuran langsung, log ralat/CAPA, rekod pengedaran).
Setiap kawasan proses sepadan dengan pelaksanaan konkrit dan bukti yang boleh diaudit dalam UDENTIVA. Proses bukanlah satu dokumen, tetapi kod yang berfungsi.
| Kawasan Proses | Aplikasi UDENTIVA | Bukti |
|---|---|---|
| ENG.1 Pengekstrakan Keperluan | Peta fasa + definisi keperluan vertical slice; sewa projek UDENTIVA.md mengunci keperluan. | UDENTIVA.md (PERATURAN EMAS), spesifikasi teknikal 02_tech_spec/, peta fasa/modul |
| ENG.4 Reka Bentuk Perisian | Monolit bermodul; pakej konteks (context) tidak berkongsi jadual satu sama lain; komunikasi melalui antara muka (interface); perkhidmatan luar = adapter. | peraturan sempadan internal/{identity,patient,billing,export,...}; ADR-001..008 |
| ENG.5 Pembinaan Perisian | SQL terbuka (sqlc, tiada ORM); context ialah parameter pertama dalam setiap fungsi; pembalut ralat %w; wang = numeric. | override jenis sqlc.yaml (numeric→string), db/queries/*.sql, gofmt/golangci-lint |
| ENG.6 Integrasi Perisian | Rantaian loopback PHP(BFF) ↔ Go ↔ PostgreSQL ↔ Redis; satu-satunya permukaan public. | web/core/ApiClient, kesihatan komponen /healthz (db+redis) |
| ENG.7 Ujian Perisian | Ujian pengasingan cross-tenant (paling kritikal), idempotency, pertembungan temu janji, ketepatan wang, 2FA/OTP, vektor TOTP RFC6238, QR (pengesahan OpenCV+ISO). | internal/integration/*_test.go, platform/totp/totp_test.go, go test ./... |
| SUP.1 Jaminan Kualiti | Setiap PR wajib mematuhi PERATURAN EMAS; lint bersih; jika ujian pengasingan merah dalam CI tiada merge. | golangci-lint, Definition of Done kontrol listesi |
| SUP.8 Pengurusan Konfigurasi | Kawalan versi Git (branch core); pemversian skema bersiri goose; artefak build disandarkan. | git, goose_db_version tablosu, .tools/deploy yedekleri |
| SUP.9 Penyelesaian Masalah | Rekod audit append-only + outbox e-mel/SMS (setiap rekod penghantaran) + disiplin sandaran/rollback deploy. | audit_log, email_outbox/sms_outbox, bin/server.exe.bak-* rollback |
| SUP.10 Pengurusan Permintaan Perubahan | Setiap perubahan skema ialah migration bernombor baharu; boleh dibatalkan (goose Down); kelulusan classifier deploy. | db/migrations/0001..0027, +goose Up/Down |
| MAN.3 Pengurusan Projek | Penyampaian vertical-slice (setiap slice berfungsi dari hujung ke hujung); nota serahan sesi. | super-devam.md, faz tablosu (DoD per dilim) |
| MAN.6 Pengukuran | Pemeriksaan kesihatan, pengukuran kapasiti, metrik penghantaran e-mel/SMS, jumlah audit, telemetri event langsung. | /healthz, papan pemuka Pemantauan Proses & Kualiti (event/ralat/deploy/KPI) |
Tanggungjawab dibahagikan kepada lapisan; autoriti domain berada di satu titik dan diasingkan melalui loopback. Pelayar hanya melihat BFF nipis dan tidak sekali-kali boleh mengakses lapisan domain dan data secara langsung.
| Lapisan | Tanggungjawab & Keselamatan | Lokasi |
|---|---|---|
| Sunum (BFF) | PHP 8.4 — BFF nipis: sesi, render, CSRF, penghalaan. TIADA peraturan perniagaan/DB. Satu-satunya permukaan public (IIS:443). | web/ |
| Uygulama / Domain | Monolit bermodul Go — SATU-SATUNYA autoriti domain. RBAC, peraturan perniagaan, transaction. Hanya mendengar 127.0.0.1. | api/internal/ |
| Veri | PostgreSQL — setiap jadual tenant_id + RLS FORCE; SQL terbuka (sqlc), berparameter. Wang numeric. | api/db/ |
| Cache / Baris Gilir | Redis — sesi, idempotency, kunci teragih, baris gilir asynq (SMS/e-fatura). | platform/redisx |
| Nesne Depolama | Serasi S3 — fail besar (X-ray) presigned/stream; blob tidak sekali-kali dalam DB. | platform/storage |
| Perkhidmatan Luar (adapter) | e-Fatura, SMS(NetGSM), e-mel(SMTP), (kelak e-Nabız/MEDULA/DICOM) — diabstrak di belakang interface. | internal/notify |
Pengukuran bukanlah satu pernyataan, tetapi sistem yang berfungsi. Semua operasi dikira secara langsung (kejayaan/kegagalan), ralat pengeluaran ditangkap dalam log kekal, dan rangka kerja KPI di bawah dikaitkan dengan tindakan berkala. Sumber data ialah jadual sebenar: event_counter (kaunter operasi langsung), error_log (log ralat kekal), deploy_log (log penggunaan).
| Kawasan Pengukuran | KPI | Sasaran | Sumber Data | Tempoh | Tindakan |
|---|---|---|---|---|---|
| Keselamatan pengasingan tenant | cross-tenant test fail | 0 | CI / izolasyon testi | her PR | Sekatan merge |
| Ralat pengeluaran | ralat terbuka (5xx/panic) | 0 | error_log (kekal) | berterusan/langsung | RCA + CAPA zorunlu |
| Kadar kejayaan operasi | success / toplam event | ≥ 99% | event_counter (langsung) | berterusan/langsung | Punca utama semasa penurunan |
| Masa penyelesaian | MTTR (purata penyelesaian) | ↓ trend menurun | error_log (resolved) | bulanan | Trend incelemesi |
| Kebolehpercayaan penyebaran | kadar rollback | < %5 | deploy_log | 30 hari | Rollback review |
| Keselamatan identiti | 2FA/OTP kritik olay | 0 | audit + event_counter | bulanan | Pengukuhan |
| Kebolehpercayaan pemesejan | SMS/e-posta failure | ↓ rendah | *_outbox | harian | Review penyedia |
| Kesediaan pemulihan | kejayaan ujian restore | %100 | DR test (hedef) | suku tahunan | Kemas kini Runbook |
Setiap ralat pengeluaran melalui kitaran punca akar standard (RCA) dan tindakan pembetulan/pencegahan (CAPA); pengulangan ralat yang sama dicegah dengan kawalan regresi dan penjejakan tren.
Ralat pengeluaran (5xx/panic) ditangkap secara automatik → error_log kekal (pada pengulangan tandatangan yang sama count++, trend kecacatan).
Tahap (error/panic), kesan dan bilangan pengulangan ditentukan; kelaziman diukur dengan pembilang event yang gagal.
Analisis punca utama dijalankan dan direkodkan pada papan pemuka Pemantauan Proses.
Tindakan pembetulan + tindakan pencegahan (kod, ujian, peraturan migration, kawalan keselamatan) ditakrifkan dan direkodkan.
Ujian/peraturan yang menghalang pengulangan ralat yang sama ditambah; dipantau dengan telemetri berterusan.
Trend KPI (MTTR, kadar ralat, rollback) dinilai secara berkala; tindakan peringkat-proses dibuka untuk ralat berulang.
Intipati SPICE Tahap 5: log ralat berterusan, dikawal dengan rapi, pencegahan kecacatan dan penambahbaikan berterusan. UDENTIVA menjalankan mekanisme ini dalam pengeluaran.
audit_log yang tidak boleh diubah (append-only) merekodkan setiap operasi kritikal secara kekal; email_outbox/sms_outbox merekodkan setiap penghantaran (status, attempts, error). Tiada peristiwa hilang secara senyap.
Sampul ralat yang konsisten {error:{code,message}}; ralat/stack dalaman tidak sekali-kali dibocorkan. Sandaran binary + web sebelum setiap deploy; semasa outage rollback dalam beberapa saat dengan bin/server.exe.bak-*.
Seni bina fail-closed: jika tiada konteks RLS 0 baris; idempotency menghalang operasi berganda; wang numeric menjadikan ralat float mustahil; whitelist (dataset export) menghalang suntikan SQL. Ralat dihalang dari awal melalui reka bentuk.
Komponen kritikal disahkan dengan dua kaedah bebas: vektor ujian TOTP RFC6238, decode OpenCV cv2 + codeword rujukan ISO/IEC 18004 untuk QR, ujian pengasingan cross-tenant.
Audit keselamatan setiap sesi → penemuan → pengukuhan (cth. RBAC fasa2/fasa3 ditambah, 2FA, Export API). Memori korporat dipelihara dengan nota proses (super-devam.md).
Permintaan regulasi baharu (VEM Görüntüsü) ditukar terus kepada ciri produk dan bukti; perubahan perundangan dipantau secara berterusan dan dicatatkan pada peta pematuhan.
Satu asas kod, penyempitan dengan bendera — tiada fork.
Versi boleh dijejaki pada lapisan skema, sumber, penggunaan dan API.
Seluruh proses pembangunan berada di bawah kawalan versi; setiap penggunaan boleh dibatalkan (rewind/rollback).
Keselamatan bukanlah satu ciri, tetapi seni bina itu sendiri. Peraturan yang tidak boleh dirunding dan pelanggarannya bermakna penolakan PR:
Sistem dibina dengan kepingan menegak yang setiap satunya berfungsi dari hujung ke hujung. Di bawah tertera fasa dan kronologi kerja keselamatan/peraturan tempoh terkini.
pgx+sqlc, goose, ujian RLS fail-closed, WithTenantTx, middleware sesi, login+RBAC, audit, loopback PHP↔Go, asas asynq, health.
CRUD Pesakit + ujian pengasingan cross-tenant → Temu Janji (exclusion constraint + Redis lock) → Odontogram/Pelan rawatan (FDI, append-only) → Kutipan/Akaun Semasa/Kaunter Tunai (derive, idempotent) → adapter e-Fatura (fast-follow) → Stok → X-ray (S3) → Peringatan SMS (asynq backoff).
Tier platform-operator (super-admin) (X-Platform-Key, satah identiti berasingan); pengurusan tenant, model langganan/pengebilan, pengukuran kapasiti, editor versi legal, reCAPTCHA, tetapan NetGSM.
i18n (20 dil, key-based, RTL); 20 tema + klinik public site (/s/{slug}) + lead-booking; demo klinik siteleri.
Primitif OTP dikongsi; set semula kata laluan + magic-link + pengaktifan akaun (SMTP sebenar); teras SMS NetGSM; auth public berbilang tenant; pengurusan pengguna klinik.
TOTP (RFC6238) + kod sandaran; QR WAJIB (bebas-luaran, qr.js bersih-CSP; disahkan secara bebas dengan OpenCV+ISO); pengesahan telefon SMS (persetujuan KVKK).
VEM Görüntüsü (Model Data Minimum) 12 export view + Export API (ditakrifkan-SuperUser, terkunci-tenant, fail-closed); peta Perundangan & Pematuhan; semakan kontrak legal 100% berorientasikan perundangan.
Pusat Sokongan berjejak tiket; dokumentasi proses SPICE (halaman ini); audit keselamatan berterusan + pengukuhan.
Untuk maklumat terperinci tentang seni bina, keselamatan dan pematuhan peraturan, hubungi pasukan kami.
We use cookies necessary for core functionality; analytics and marketing cookies are enabled only with your consent. Dasar Kuki