Access is not a single Django group. Each account has a role flag (consultant, reception, cashier, lab admin, and dozens more — clinical, OT, counseling, pharmacy, Optico, restaurant, LIMS, call center, patient). A Permission Group decides module view versus edit (doctor_access / doctor_access_e, patient, OPD, diagnostic, procedure, prescription, charges, corporate, reception, preference tabs, cashier payment types). A Menu Group builds the sidebar and per-page add/edit/delete. When url_control_status is on, those flags are enforced on URLs. View-only users can look but never change. OrganisationAccountAccessRight controls who may create users, reset passwords, block users, use the OPD form builder, or merge patients.
Typical workflow
- Create the user and set the authority role flag.
- Assign one Permission Group (view vs edit matrix).
- Assign a Menu Group (sidebar + per-page CRUD).
- Set branch; add LIMS preference group if the user is lab.
- Turn on URL control when the hospital wants menus to be law, not decoration.
Key capabilities
Rich clinical and admin role flags
Permission Group view / edit matrix
Custom sidebar menu trees with per-page CRUD
Optional URL enforcement of those menus
View-only lock for auditors
Who may create users, reset passwords, merge patients, use form builder