Inilalagay ng UDENTIVA sa mismong arkitektura ang kahandaan ng proseso na hinahanap para sa health software. Ipinapakita ng pahinang ito, kasama ang mga ebidensya, ang aming development lifecycle, mga capability level ng SPICE / ISO-IEC 15504, ang aming mga mekanismo ng patuloy na error logging at kontrol, ang aming pamantayan sa versioning at seguridad, at ang aming development history.
Batayan: Regulasyon Tungkol sa mga Sistema ng Pamamahala ng Impormasyong Pangkalusugan (Blg. ng Batas 39682) m.6 at m.20 — pangangailangan ng sertipikasyon sa kalidad ng software (CMMI/SPICE).
Ang pagtukoy ng proseso, implementasyon at masusubaybayang mga produkto ng trabaho ay nakabalangkas; ang mga mekanismo ng dami-batay na pagsukat, pag-iwas sa depekto at tuluy-tuloy na pagpapabuti ay pinatatakbo sa produksiyon. Ang opisyal na deklarasyon ng antas ng kakayahan ay sakop ng malayang pagtatasa (appraisal).
Sinusuri ng SPICE ang mga proseso sa capability level mula 0 hanggang 5. Ang UDENTIVA ay istrukturadong tumugon sa mga inaasahan ng Level 1-3 sa antas ng process definition/implementation/traceable na mga work product; para sa Level 4-5 ay pinapatakbo ang mga mekanismo ng quantitative measurement at continuous improvement. Ang opisyal na deklarasyon ng antas ay sasailalim sa independent assessment.
Ang mga mekanismo ng quantitative control at continuous improvement ng Level 4-5 ay pinapatakbo sa ibaba kasama ang mga ebidensiya nito (live measurement, error/CAPA log, deployment records).
Ang bawat process area ay tumutugma sa isang konkretong implementasyon sa UDENTIVA at sa isang na-o-audit na ebidensiya. Ang proseso ay hindi isang dokumento, kundi umaandar na code.
| Process Area | UDENTIVA Application | Ebidensya |
|---|---|---|
| ENG.1 Pagkuha ng Kinakailangan | Depinisyon ng kinakailangan sa phase map + vertical slice; ni-lock ng kontrata ng proyekto na UDENTIVA.md ang mga kinakailangan. | UDENTIVA.md (GINTONG PANUNTUNAN), 02_tech_spec/ teknikal na espesipikasyon, phase/module map |
| ENG.4 Disenyo ng Software | Modular monolith; ang mga context package ay hindi nagbabahagi ng table ng isa't isa; komunikasyon sa pamamagitan ng interface; panlabas na serbisyo = adapter. | panuntunan ng hangganan ng internal/{identity,patient,billing,export,...}; ADR-001..008 |
| ENG.5 Konstruksiyon ng Software | Tahasang SQL (sqlc, walang ORM); context ang unang parameter sa bawat function; error wrapping %w; pera = numeric. | sqlc.yaml type override (numeric→string), db/queries/*.sql, gofmt/golangci-lint |
| ENG.6 Integrasyon ng Software | Loopback chain na PHP(BFF) ↔ Go ↔ PostgreSQL ↔ Redis; iisang pampublikong ibabaw. | web/core/ApiClient, /healthz kalusugan ng component (db+redis) |
| ENG.7 Pagsubok ng Software | Cross-tenant isolation test (pinakakritikal), idempotency, pagsalpok ng appointment, katumpakan ng pera, 2FA/OTP, TOTP RFC6238 vector, QR (OpenCV+ISO na pag-verify). | internal/integration/*_test.go, platform/totp/totp_test.go, go test ./... |
| SUP.1 Katiyakan ng Kalidad | Ang bawat PR ay dapat sumunod sa GINTONG PANUNTUNAN; malinis ang lint; kung pula ang isolation test sa CI, walang merge. | golangci-lint, Definition of Done kontrol listesi |
| SUP.8 Pamamahala ng Configuration | Kontrol ng bersiyon ng Git (branch core); sunud-sunod na schema versioning ng goose; niba-backup ang mga build artifact. | git, goose_db_version tablosu, .tools/deploy yedekleri |
| SUP.9 Paglutas ng Problema | Append-only na tala ng audit + e-mail/SMS outbox (tala ng bawat pagpapadala) + disiplina sa backup/rollback ng deploy. | audit_log, email_outbox/sms_outbox, bin/server.exe.bak-* rollback |
| SUP.10 Pamamahala ng Kahilingan sa Pagbabago | Ang bawat pagbabago sa schema ay bagong numeradong migration; maibabalik (goose Down); pag-apruba ng classifier sa deploy. | db/migrations/0001..0027, +goose Up/Down |
| MAN.3 Pamamahala ng Proyekto | Deliberi na vertical-slice (gumagana ang bawat slice mula dulo-dulo); mga tala ng paglilipat ng sesyon. | super-devam.md, faz tablosu (DoD per dilim) |
| MAN.6 Pagsukat | Health check, pagsukat ng kapasidad, metrika ng pagpapadala ng e-mail/SMS, dami ng audit, live na telemetry ng event. | /healthz, panel ng Pagsubaybay sa Proseso at Kalidad (event/error/deploy/KPI) |
Ang mga responsibilidad ay hinahati sa mga layer; ang domain authority ay nasa iisang punto at nakahiwalay sa pamamagitan ng loopback. Nakikita lamang ng browser ang manipis na BFF, at hindi kailanman direktang naa-access ang domain at data layer.
| Layer | Responsibilidad at Seguridad | Lokasyon |
|---|---|---|
| Sunum (BFF) | PHP 8.4 — manipis na BFF: sesyon, render, CSRF, ruta. WALANG panuntunan sa negosyo/DB. Iisang pampublikong ibabaw (IIS:443). | web/ |
| Uygulama / Domain | Go modular monolith — ang NAG-IISANG awtoridad ng domain. RBAC, mga panuntunan sa negosyo, transaction. 127.0.0.1 lamang ang pinapakinggan. | api/internal/ |
| Veri | PostgreSQL — bawat table ay may tenant_id + RLS FORCE; tahasang SQL (sqlc), may parameter. Numeric ang pera. | api/db/ |
| Cache / Queue | Redis — sesyon, idempotency, distributed lock, asynq queue (SMS/e-fatura). | platform/redisx |
| Nesne Depolama | S3-katugma — malalaking file (x-ray) presigned/stream; ang blob ay hindi kailanman nasa DB. | platform/storage |
| Panlabas na Serbisyo (adapter) | e-Fatura, SMS(NetGSM), e-mail(SMTP), (sa hinaharap ay e-Nabız/MEDULA/DICOM) — abstract sa likod ng interface. | internal/notify |
Ang pagsukat ay hindi isang pahayag, kundi isang gumaganang sistema. Ang lahat ng transaksyon ay binibilang nang live (tagumpay/kabiguan), ang mga production error ay nahuhuli sa isang permanenteng log, at ang KPI framework sa ibaba ay iniuugnay sa mga periodic na aksyon. Ang mga data source ay tunay na table: event_counter (live na transaction counter), error_log (permanenteng error log), deploy_log (deployment log).
| Measurement Area | KPI | Layunin | Data Source | Panahon | Aksyon |
|---|---|---|---|---|---|
| Seguridad ng pagkakahiwalay ng tenant | cross-tenant test fail | 0 | CI / izolasyon testi | her PR | Merge block |
| Error sa produksiyon | tahasang error (5xx/panic) | 0 | error_log (permanente) | tuluy-tuloy/live | RCA + CAPA zorunlu |
| Rate ng tagumpay ng transaksiyon | success / toplam event | ≥ %99 | event_counter (live) | tuluy-tuloy/live | Ugat na sanhi kapag bumaba |
| Oras ng resolusyon | MTTR (avg. resolusyon) | ↓ bumababang trend | error_log (resolved) | buwanan | Trend incelemesi |
| Pagiging maaasahan ng deployment | rate ng rollback | < %5 | deploy_log | 30 araw | Rollback review |
| Seguridad ng pagkakakilanlan | 2FA/OTP kritik olay | 0 | audit + event_counter | buwanan | Pagpapatatag |
| Pagiging maaasahan ng pagmemensahe | SMS/e-posta failure | ↓ mababa | *_outbox | araw-araw | Review ng provider |
| Kahandaan sa pag-restore | tagumpay ng restore test | %100 | DR test (hedef) | quarterly | I-update ang Runbook |
Ang bawat production error ay dumadaan sa isang standard na root cause analysis (RCA) at corrective/preventive action (CAPA) loop; ang pag-ulit ng parehong error ay pinipigilan sa pamamagitan ng regression control at trend monitoring.
Ang error sa produksiyon (5xx/panic) ay awtomatikong nahuhuli → permanenteng error_log (sa pag-ulit ng parehong signature, count++, defect trend).
Tinutukoy ang antas (error/panic), epekto at bilang ng pag-ulit; sinusukat ang lawak sa pamamagitan ng mga counter ng nabigong event.
Ginagawa at itinatala ang pagsusuri ng ugat na sanhi sa panel ng Pagsubaybay sa Proseso.
Tinutukoy at itinatala ang aksiyong pagwawasto + pang-iwas na aksiyon (code, test, panuntunan ng migration, kontrol ng seguridad).
Nagdaragdag ng test/panuntunan na pumipigil sa pag-ulit ng parehong error; sinusubaybayan sa tuluy-tuloy na telemetry.
Ang mga trend ng KPI (MTTR, rate ng error, rollback) ay sinusuri nang pana-panahon; para sa paulit-ulit na error ay binubuksan ang aksiyon sa antas ng proseso.
Ang esensya ng SPICE Level 5: tuluy-tuloy na pag-log ng mga error, pagpapanatili nito sa ilalim ng kontrol, pag-iwas sa depekto at continuous improvement. Pinapatakbo ng UDENTIVA ang mga mekanismong ito sa produksyon.
Ang hindi-mababagong (append-only) audit_log ay permanenteng nagtatala ng bawat kritikal na operasyon; ang email_outbox/sms_outbox ay ng bawat pagpapadala (status, attempts, error). Walang insidenteng tahimik na nawawala.
Pare-parehong error envelope {error:{code,message}}; hindi kailanman naibubunyag ang panloob na error/stack. Bago ang bawat deploy ay may backup ng binary + web; sa oras ng outage ay rollback sa loob ng ilang segundo gamit ang bin/server.exe.bak-*.
Fail-closed na arkitektura: kung walang RLS context ay 0 row; pinipigil ng idempotency ang dobleng operasyon; ginagawang imposible ng numeric na pera ang error sa float; pinipigilan ng whitelist (export dataset) ang SQL injection. Ang mga error ay pinipigilan mula sa simula sa pamamagitan ng disenyo.
Ang mga kritikal na component ay bine-verify sa dalawang malayang paraan: TOTP RFC6238 test vector, para sa QR ang OpenCV cv2 decode + ISO/IEC 18004 reference codeword, cross-tenant isolation test.
Sa bawat sesyon: audit ng seguridad → mga natuklasan → pagpapatatag (hal. idinagdag ang phase2/phase3 RBAC, 2FA, Export API). Pinapanatili ang institusyonal na memorya sa pamamagitan ng mga tala ng proseso (super-devam.md).
Ang bagong kahilingan sa regulasyon (VEM View) ay direktang isinasalin sa tampok ng produkto at ebidensiya; ang mga pagbabago sa batas ay tuluy-tuloy na sinusubaybayan at itinatala sa compliance map.
Iisang codebase, pagliit gamit ang flag — walang fork.
Nasubaybayang bersyon sa schema, source, deployment, at API layer.
Ang buong proseso ng development ay nasa version control; ang bawat deployment ay maibabalik (rewind/rollback).
Ang seguridad ay hindi isang feature, kundi ang arkitektura mismo. Ang mga tuntuning hindi napag-uusapan, na ang paglabag ay pagtanggi sa PR:
Ang sistema ay itinayo gamit ang mga vertical slice na bawat isa ay gumagana mula dulo hanggang dulo. Sa ibaba ay makikita ang mga yugto at ang kronolohiya ng mga kamakailang gawain sa seguridad/regulasyon.
pgx+sqlc, goose, RLS fail-closed test, WithTenantTx, session middleware, login+RBAC, audit, PHP↔Go loopback, base ng asynq, health.
Patient CRUD + cross-tenant isolation test → Appointment (exclusion constraint + Redis lock) → Odontogram/Treatment plan (FDI, append-only) → Koleksiyon/Kuwenta/Kaha (derive, idempotent) → e-Fatura adapter (fast-follow) → Stock → X-ray (S3) → Paalala sa SMS (asynq backoff).
Tier ng platform-operator (super-admin) (X-Platform-Key, hiwalay na plano ng pagkakakilanlan); pamamahala ng tenant, modelo ng subscription/billing, pagsukat ng kapasidad, editor ng legal na bersiyon, reCAPTCHA, mga setting ng NetGSM.
i18n (20 dil, key-based, RTL); 20 tema + klinik public site (/s/{slug}) + lead-booking; demo klinik siteleri.
Ibinahaging OTP primitive; pag-reset ng password + magic-link + aktibasyon ng account (tunay na SMTP); NetGSM SMS core; multi-tenant na public auth; pamamahala ng gumagamit ng klinika.
TOTP (RFC6238) + backup code; SAPILITANG QR (panlabas-na-malaya, malinis-sa-CSP na qr.js; malayang na-verify gamit ang OpenCV+ISO); pag-verify ng telepono sa SMS (KVKK na pahintulot).
VEM View (Minimum Data Model) 12 export view + Export API (tinukoy ng SuperUser, naka-lock sa tenant, fail-closed); Batas at Compliance map; %100 tungo-sa-batas na rebisyon ng legal na kontrata.
Support Center na may ticket tracking; SPICE na dokumentasyon ng proseso (ang page na ito); tuluy-tuloy na audit ng seguridad + pagpapatatag.
Para sa detalyadong impormasyon tungkol sa arkitektura, seguridad, at pagsunod sa regulasyon, makipag-ugnayan sa aming team.
We use cookies necessary for core functionality; analytics and marketing cookies are enabled only with your consent. Cookie Policy