ADMINISTRATION WIZARDS
Guided setup for the three high-risk facility configuration areas.
Invite and verify
Create a practitioner invitation, assign facility role, then review license verification before activation.
Onboarding backend pendingDepartment registry
Manage tenant-scoped lab departments, turnaround targets, referral routing and ordering permissions.
Open lab departmentsWitness policy
Review controlled-drug witness PIN, dual-signature and dispensing audit requirements.
Open Rx controlsHospital-Super-Admin-Panel
Facility RBAC · department resource allocation · audit trails · backups · chain-aware. Server-enforced tenant isolation via X-Tenant-ID.
0 wards
0 beds · 0 occupied · 0 available
Source: tenants/models.py Facility→Building→Ward→Room→Bed + GET /ipd/bed-board/
—
Loading seats…
Roles from tenants/models.py UserProfile.role; assignment via POST /tenants/me/entitlements/ + apps/tenants/services.py has_feature_tenant().
Fail-closed: unknown flag → deny. Veriora control plane is source of truth, not Stripe.
YOUR PLAN — No plan
0 workspaces · add-ons unlock after paymentDEPARTMENT RESOURCE ALLOCATION
Beds, lab departments, pharmacy buckets per facility — tenant-scoped via facility__tenant. Chain: Facility ↔ Lab ↔ Pharmacy.
No facility data — seed OrganizationUnit → Facility → Building → Ward → Room → Bed.
Allocation is additive: new wards/rooms/beds via POST /ipd/admissions/ + PATCH /beds/{id}/status/ (AVAILABLE/OCCUPIED/CLEANING/…).
Backups & Chain Export
Tenant archive (ZIP of live rows + audit trail) — admin/data-officer only.
AI fields are stripped on export (patient/exporters.py AI_EXPORT_BLOCKLIST).
Operational Guardrails
- Seat gate:
SOLO_PRACTITIONER max_doctors=1— second doctor → 403 + upgrade prompt. - Multi-pharmacy routing:
TenantBranding.multi_pharmacy_routing_enabledfalse → 403FEATURE_DISABLED_BY_ADMIN. - Letterhead:
use_preprinted_letterheadsuppresses header, alwaysPowered by CuraOSfooter.
AUDIT LOGSAppend-only · public schema
Append-only audit_logs — who/what/when/where/on-which/before/after. Public schema, actor middleware. Offline: last cached trail shown.
| When | Action | Table | Record |
|---|---|---|---|
| No audit rows yet — create a patient, order a lab, or dispense a prescription to generate trail. | |||
Source: apps/compliance/models.py AuditLog + GET /admin/audit-logs/?table=&record=&action + POST /admin/restore/{table}/{id}. 2-year retention, searchable by tenant/admin.