UDENTIVA Platform Manajemen Dental Cerdas
KUALITAS PERANGKAT LUNAK & KEMATANGAN PROSES

Proses Pengembangan Perangkat Lunak Kami & Kepatuhan SPICE

UDENTIVA menanamkan kematangan proses yang dicari untuk perangkat lunak kesehatan ke dalam arsitektur itu sendiri. Halaman ini memaparkan dengan bukti: siklus hidup pengembangan kami, level kapabilitas SPICE / ISO-IEC 15504, mekanisme pencatatan dan kontrol kesalahan berkelanjutan, kriteria versi dan keamanan, serta riwayat pengembangan kami.

Dasar hukum: Peraturan tentang Sistem Manajemen Informasi Kesehatan (No. Perundangan 39682) Pasal 6 dan Pasal 20 — persyaratan sertifikasi kualitas perangkat lunak (CMMI/SPICE).

Arsitektur proses UDENTIVA adalah pendekatan manajemen kualitas dan proses perangkat lunak yang siap diaudit dan selaras dengan prinsip SPICE / ISO-IEC 15504.

Definisi proses, penerapan, dan produk kerja yang dapat dilacak telah terstruktur; mekanisme pengukuran kuantitatif, pencegahan cacat, dan perbaikan berkelanjutan dijalankan di produksi. Pernyataan tingkat kapabilitas resmi tunduk pada lingkup penilaian independen (appraisal).

Level Kapabilitas SPICE

SPICE mengevaluasi proses dengan tingkat kapabilitas dari 0 hingga 5. UDENTIVA distrukturkan untuk memenuhi ekspektasi Tingkat 1-3 pada level definisi proses/implementasi/produk kerja yang dapat dilacak; untuk Tingkat 4-5, mekanisme pengukuran kuantitatif dan perbaikan berkelanjutan telah dijalankan. Deklarasi tingkat resmi tunduk pada penilaian independen.

0
Eksik (Incomplete)
Proses tidak diterapkan/tidak mencapai sasaran.
1
Terlaksana (Performed)
Proses ada dan menghasilkan keluarannya.
2
Terkelola (Managed)
Proses direncanakan, dipantau; produk kerja dikelola.
3
Mapan (Established)
Proses standar yang terdefinisi diterapkan secara konsisten di seluruh proyek.
4
Dapat Diprediksi (Predictable)
Proses dikendalikan secara kuantitatif (dengan pengukuran).
5
Optimize Eden (Optimizing)
Perbaikan berkelanjutan + pencegahan cacat + inovasi proses.

Mekanisme kontrol kuantitatif dan perbaikan berkelanjutan pada Tingkat 4-5 dijalankan di bawah beserta buktinya (pengukuran langsung, registri kesalahan/CAPA, catatan deployment).

Area Proses SPICE → Penerapan → Bukti

Setiap area proses berkorespondensi dengan implementasi konkret dan bukti yang dapat diaudit di UDENTIVA. Proses bukanlah dokumen, melainkan kode yang berjalan.

Area ProsesAplikasi UDENTIVABukti
ENG.1 Elisitasi KebutuhanDefinisi kebutuhan peta fase + vertical slice; kontrak proyek UDENTIVA.md mengunci kebutuhan.UDENTIVA.md (ATURAN EMAS), spesifikasi teknis 02_tech_spec/, peta fase/modul
ENG.4 Desain Perangkat LunakMonolit modular; paket konteks (context) tidak berbagi tabel satu sama lain; komunikasi melalui interface; layanan eksternal = adapter.Aturan batas internal/{identity,patient,billing,export,...}; ADR-001..008
ENG.5 Konstruksi Perangkat LunakSQL eksplisit (sqlc, tanpa ORM); context sebagai parameter pertama di setiap fungsi; pembungkusan kesalahan %w; uang = numeric.Override tipe sqlc.yaml (numeric→string), db/queries/*.sql, gofmt/golangci-lint
ENG.6 Integrasi Perangkat LunakRantai loopback PHP(BFF) ↔ Go ↔ PostgreSQL ↔ Redis; satu permukaan publik.web/core/ApiClient, kesehatan komponen /healthz (db+redis)
ENG.7 Pengujian Perangkat LunakUji isolasi cross-tenant (paling kritis), idempotency, konflik jadwal janji temu, presisi uang, 2FA/OTP, vektor TOTP RFC6238, QR (verifikasi OpenCV+ISO).internal/integration/*_test.go, platform/totp/totp_test.go, go test ./...
SUP.1 Penjaminan KualitasSetiap PR wajib mematuhi ATURAN EMAS; lint bersih; jika uji isolasi merah di CI maka tidak ada merge.golangci-lint, Definition of Done kontrol listesi
SUP.8 Manajemen KonfigurasiKontrol versi Git (branch core); pemversian skema berurutan goose; artefak build dicadangkan.git, goose_db_version tablosu, .tools/deploy yedekleri
SUP.9 Penyelesaian MasalahCatatan audit append-only + outbox email/SMS (setiap catatan pengiriman) + disiplin cadangan/rollback deploy.audit_log, email_outbox/sms_outbox, bin/server.exe.bak-* rollback
SUP.10 Manajemen Permintaan PerubahanSetiap perubahan skema adalah migration bernomor baru; dapat dibatalkan (goose Down); persetujuan classifier deploy.db/migrations/0001..0027, +goose Up/Down
MAN.3 Manajemen ProyekPengiriman vertical-slice (setiap slice berjalan ujung ke ujung); catatan serah terima sesi.super-devam.md, faz tablosu (DoD per dilim)
MAN.6 PengukuranPemeriksaan kesehatan, pengukuran kapasitas, metrik pengiriman email/SMS, volume audit, telemetri event langsung./healthz, panel Pemantauan Proses & Kualitas (event/kesalahan/deploy/KPI)

Arsitektur Berlapis & Keamanan Data

Tanggung jawab dipisahkan ke dalam lapisan-lapisan; otoritas domain berada di satu titik dan diisolasi dengan loopback. Browser hanya melihat BFF tipis dan tidak pernah dapat mengakses lapisan domain serta data secara langsung.

LapisanTanggung Jawab & KeamananLokasi
Sunum (BFF)PHP 8.4 — BFF tipis: sesi, render, CSRF, perutean. TANPA aturan bisnis/DB. Satu-satunya permukaan publik (IIS:443).web/
Uygulama / DomainMonolit modular Go — SATU-SATUNYA otoritas domain. RBAC, aturan bisnis, transaction. Hanya mendengarkan 127.0.0.1.api/internal/
VeriPostgreSQL — setiap tabel tenant_id + RLS FORCE; SQL eksplisit (sqlc), berparameter. Uang numeric.api/db/
Cache / AntreanRedis — sesi, idempotency, kunci terdistribusi, antrean asynq (SMS/e-fatura).platform/redisx
Nesne DepolamaKompatibel dengan S3 — file besar (rontgen) presigned/stream; blob tidak pernah di DB.platform/storage
Layanan Eksternal (adapter)e-Fatura, SMS(NetGSM), email(SMTP), (ke depannya e-Nabız/MEDULA/DICOM) — diabstraksikan di balik interface.internal/notify

Pengukuran Kuantitatif & KPI — Telemetri Proses Langsung

Pengukuran bukanlah pernyataan, melainkan sistem yang bekerja. Semua transaksi dihitung secara langsung (berhasil/gagal), kesalahan produksi ditangkap dalam catatan permanen, dan kerangka KPI di bawah ini terhubung ke tindakan berkala. Sumber datanya adalah tabel nyata: event_counter (penghitung transaksi langsung), error_log (catatan kesalahan permanen), deploy_log (catatan deployment).

Area PengukuranKPISasaranSumber DataPeriodeTindakan
Keamanan isolasi tenantcross-tenant test fail0CI / izolasyon testiher PRBlokade merge
Kesalahan produksikesalahan terbuka (5xx/panic)0error_log (persisten)berkelanjutan/langsungRCA + CAPA zorunlu
Tingkat keberhasilan operasisuccess / toplam event≥ %99event_counter (langsung)berkelanjutan/langsungAkar penyebab saat penurunan
Waktu penyelesaianMTTR (rata-rata penyelesaian)↓ tren menurunerror_log (resolved)bulananTrend incelemesi
Keandalan deploymenttingkat rollback< %5deploy_log30 hariRollback review
Keamanan identitas2FA/OTP kritik olay0audit + event_counterbulananPengerasan
Keandalan perpesananSMS/e-posta failure↓ rendah*_outboxharianTinjauan penyedia
Kesiapan pemulihankeberhasilan uji restore%100DR test (hedef)kuartalanPerbarui runbook
KPI ini dipantau secara real-time dari panel langsung "Pemantauan Proses & Kualitas" yang diakses operator platform: tingkat keberhasilan transaksi, jumlah kesalahan terbuka, MTTR (waktu penyelesaian rata-rata), jumlah deployment, dan tingkat rollback.

Siklus Pencegahan Cacat & Perbaikan Berkelanjutan (RCA/CAPA)

Setiap kesalahan produksi melewati siklus analisis akar penyebab (RCA) baku dan tindakan korektif/preventif (CAPA); terulangnya kesalahan yang sama dicegah dengan kontrol regresi dan pemantauan tren.

1
Catatan insiden / kesalahan

Kesalahan produksi (5xx/panic) ditangkap otomatis → error_log persisten (pada pengulangan tanda tangan yang sama count++, tren cacat).

2
Klasifikasi

Tingkat (error/panic), dampak, dan jumlah pengulangan ditentukan; prevalensi diukur dengan penghitung event yang gagal.

3
Akar penyebab (RCA)

Analisis akar penyebab dilakukan dan dicatat di panel Pemantauan Proses.

4
Aksi korektif/preventif (CAPA)

Aksi korektif + aksi preventif (kode, uji, aturan migration, kontrol keamanan) didefinisikan dan dicatat.

5
Kontrol regresi

Uji/aturan yang mencegah pengulangan kesalahan yang sama ditambahkan; dipantau dengan telemetri berkelanjutan.

6
Trend incelemesi

Tren KPI (MTTR, tingkat kesalahan, rollback) dievaluasi secara berkala; untuk kesalahan yang berulang, aksi tingkat-proses dibuka.

Mekanisme yang Dijalankan — Pencatatan Kesalahan, Kontrol & Perbaikan Berkelanjutan

Inti dari SPICE Tingkat 5: pencatatan kesalahan berkelanjutan, menjaganya tetap terkendali, pencegahan cacat, dan perbaikan berkelanjutan. UDENTIVA menjalankan mekanisme ini di produksi.

Pencatatan Kesalahan Berkelanjutan

audit_log yang tidak dapat diubah (append-only) mencatat setiap operasi kritis; email_outbox/sms_outbox mencatat setiap pengiriman (status, attempts, error) secara persisten. Tidak ada peristiwa yang hilang secara diam-diam.

audit_log, *_outbox (status/error/attempts)
Kontrol Kesalahan & Rollback

Amplop kesalahan yang konsisten {error:{code,message}}; kesalahan internal/stack tidak pernah dibocorkan. Cadangan binary + web sebelum setiap deploy; saat outage, rollback dalam hitungan detik dengan bin/server.exe.bak-*.

httpx.Error, deploy yedek/rollback runbook
Pencegahan Cacat (Defect Prevention)

Arsitektur fail-closed: tanpa konteks RLS 0 baris; idempotency mencegah operasi ganda; uang numeric membuat kesalahan float menjadi mustahil; whitelist (dataset export) mencegah injeksi SQL. Kesalahan dicegah sejak awal melalui desain.

RLS FORCE, Idempotency-Key SETNX, numeric, view whitelist
Verifikasi Independen

Komponen kritis diverifikasi dengan dua metode independen: vektor uji TOTP RFC6238, decode OpenCV cv2 + codeword referensi ISO/IEC 18004 untuk QR, uji isolasi cross-tenant.

uji integrasi + verifikasi decoder eksternal
Siklus Perbaikan Berkelanjutan

Di setiap sesi audit keamanan → temuan → pengerasan (mis. RBAC fase2/fase3 ditambahkan, 2FA, Export API). Memori korporat dijaga dengan catatan proses (super-devam.md).

audit keamanan → siklus pengerasan
Inovasi Proses

Permintaan regulasi baru (VEM Görüntüsü) diubah langsung menjadi fitur produk dan bukti; perubahan peraturan dipantau terus-menerus dan dicatat ke dalam peta kepatuhan.

Export API/view VEM, peta kepatuhan /mevzuat

Kontrol Edition (Versi)

Satu basis kode, penyempitan dengan flag — tanpa fork.

  • Flag EDITION=base menentukan MVP satu-klinik; visibilitas menu (app.php) dan akses route (index.php) dibaca dari allowlist Edition::allows().
  • Go RBAC adalah OTORITAS; Edition hanya penyempitan UI/permukaan — otorisasi sebenarnya dipaksakan di lapisan API (visibilitas ≠ keamanan).
  • pada versi full semua modul terbuka; pada versi base modul pertumbuhan Fase 2/Fase 3 tersembunyi. TANPA Fork — satu basis kode, dipersempit dengan flag.
  • Batas kapasitas diukur dengan paket/rencana berbasis tenant (model langganan platform); saat melampaui batas, peringatan lunak (tidak memblokir).

Mekanisme Versioning

Versi yang dapat dilacak di lapisan skema, sumber, deployment, dan API.

Pemversian Skema
migration berurutan goose (0001 → 0027); setiap perubahan bernomor + dapat dibatalkan (Up/Down). Versi yang diterapkan dilacak di tabel goose_db_version. Migration prod diverifikasi pada DB bersih.
Pemversian Sumber
Kontrol versi Git (branch: core); bare repo pusat yang terisolasi. Setiap pekerjaan yang berarti di-commit; rahasia (connection.md, .tools) di-gitignore — kata sandi tidak pernah di-commit.
Pemversian Deployment
Binary Go dikompilasi (-ldflags "-s -w"), HANYA swap bin/server.exe (tidak pernah wrapper WinSW). Cadangan binary + web sebelum setiap deploy (dengan timestamp). Cache-bust aset statis ?v=N.
Pemversian API
Endpoint publik prefiks /v1; Export API /export/v1. Kompatibilitas mundur dijaga; perubahan yang merusak menjadi versi baru.

Penggunaan Git, Rewind & Rollback

Seluruh proses pengembangan dalam kontrol versi; setiap deployment dapat dikembalikan (rewind/rollback).

Kontrol Versi
Git (branch: core); bare repo pusat yang terisolasi. Setiap pekerjaan yang berarti di-commit; riwayat dapat dilacak.
Manajemen Rahasia
Kata sandi/kunci/informasi koneksi di-gitignore — TIDAK PERNAH di-commit (connection.md, .tools, *.zip).
Isolasi
Hanya direktori proyek ini yang diberi versi; sumber proyek lain tidak disentuh.
Ketertelusuran
Commit berbasis vertical-slice/fitur; log deploy (deploy_log) menghubungkan rantai commit→release→prod.
Rewind / Rollback: Sebelum setiap deployment, dibuat cadangan binary + web + basis data (dengan timestamp). Skema dapat dikembalikan melalui migrasi yang bisa di-rollback (goose Down); binary yang berjalan dikembalikan ke versi sebelumnya (bin/server.exe.bak-*) dalam hitungan detik; web dipulihkan dari arsip sebelumnya. Saat insiden terjadi, produksi dapat diputar-balik ke kondisi lama-yang-baik.

Kriteria Keamanan (Aturan Emas)

Keamanan bukanlah sebuah fitur, melainkan arsitektur itu sendiri. Aturan yang pelanggarannya berarti penolakan PR dan tidak dapat dinegosiasikan:

Isolasi tingkat baris (RLS FORCE, fail-closed)
Setiap tabel tenant_id; policy mengembalikan 0 baris jika tanpa konteks. Uji isolasi cross-tenant sebagai gerbang CI.
Atomik & idempotent yazma
Operasi multi-entitas dalam satu transaction (semua atau tidak sama sekali); setiap mutasi mencegah operasi ganda dengan Idempotency-Key.
Para = numeric
Float DILARANG; pembulatan di satu tempat, 2 desimal. Kesalahan finansial mustahil berdasarkan desain.
Identitas & sesi
kata sandi argon2id; session_key opaque di Redis (TTL bergeser); verifikasi dua langkah (TOTP); session_key tidak dibuka ke browser.
Topoloji izolasyonu
Go hanya mendengarkan 127.0.0.1; satu-satunya permukaan publik PHP/BFF. Port backend (DB/Redis) tertutup dari luar.
Audit yang tidak dapat diubah
audit_log append-only; PII/rahasia tidak dicatat/dimasker; TCKN/data kesehatan berkategori khusus.
Kueri terparameter
Semua SQL berparameter (sqlc/pgx) — injeksi SQL mustahil; nama dataset di-whitelist.
Lokalisasi data
Data kesehatan hanya di Türkiye; tanpa transfer ke luar negeri (KVKK Ps.9, KSV Yön. Ps.16).

Development History (Riwayat Pengembangan)

Sistem dibangun dengan irisan vertikal yang masing-masing bekerja dari ujung ke ujung. Di bawah ini tercantum fase-fase dan kronologi pekerjaan keamanan/regulasi periode terakhir.

Faz 0 Kerangka

pgx+sqlc, goose, uji RLS fail-closed, WithTenantTx, middleware sesi, login+RBAC, audit, loopback PHP↔Go, dasar asynq, health.

Faz 1 Inti Klinik (9 vertical slice)

CRUD Pasien + uji isolasi cross-tenant → Janji Temu (exclusion constraint + Redis lock) → Odontogram/Rencana Perawatan (FDI, append-only) → Penagihan/Piutang/Kas (derive, idempotent) → adapter e-Fatura (fast-follow) → Stok → Rontgen (S3) → pengingat SMS (asynq backoff).

Platform Konsol manajemen platform

Tier operator-platform (super-admin) (X-Platform-Key, bidang identitas terpisah); manajemen tenant, model langganan/penagihan, pengukuran kapasitas, editor versi legal, reCAPTCHA, pengaturan NetGSM.

Pertumbuhan Multi-bahasa & situs web klinik

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

2026-06 Keamanan Identitas & Komunikasi

Primitif OTP bersama; reset kata sandi + magic-link + aktivasi akun (SMTP nyata); inti SMS NetGSM; auth publik multi-tenant; manajemen pengguna klinik.

2026-06 Autentikasi dua faktor (2FA)

TOTP (RFC6238) + kode cadangan; QR WAJIB (independen-eksternal, qr.js bersih-CSP; diverifikasi independen dengan OpenCV+ISO); verifikasi nomor telepon SMS (persetujuan KVKK).

2026-06 Kepatuhan Regulasi

VEM Görüntüsü (Model Data Minimum) 12 export view + Export API (ditentukan SuperUser, terkunci-tenant, fail-closed); peta Peraturan & Kepatuhan; revisi kontrak legal 100% berorientasi peraturan.

2026-06 Dukungan & Proses

Pusat Dukungan dengan pelacakan tiket; dokumentasi proses SPICE (halaman ini); audit keamanan berkelanjutan + pengerasan.

Selengkapnya tentang kematangan proses dan kepatuhan

Untuk informasi rinci tentang arsitektur, keamanan, dan kepatuhan regulasi, hubungi tim kami.

Regulation & Compliance Hubungi