Role & Permission Model
How Bio Ecko's 14-role system works -- role hierarchy, permission matrices, Row Level Security, multi-branch access, and configuration guidelines for...
February 2026 · 18 min
Manual area
FC Training Programme
Coverage
8 sections
Operator notes
4 implementation notes
The 14 Built-In Roles
Bio Ecko ships with 14 pre-defined roles. Each role determines which modules a user can access and what actions they can perform.
| # | Role | Primary Modules | Dashboard Hub |
|---|---|---|---|
| 1 | owner | All modules + org settings | Overview Dashboard |
| 2 | admin | All modules + user management | Overview Dashboard |
| 3 | doctor | OPD, IPD, EMR, Prescription, Orders | Doctor Dashboard |
| 4 | nurse | Nursing Console, Vitals, MAR, IPD | Nurse Hub |
| 5 | pharmacist | Pharmacy, Dispensing, Formulary, Inventory | Pharmacist Hub |
| 6 | lab_technician | Lab Orders, Specimen, Results, QC | Lab Hub |
| 7 | radiologist | Radiology Orders, Reporting, PACS | Radiology Hub |
| 8 | receptionist | Registration, Appointments, Queue | Front Desk Hub |
| 9 | cashier | Billing, Payments, Receipts | Accounts Hub |
| 10 | accountant | Billing, Insurance, Claims, GL, AP/AR | Accounts Hub |
| 11 | store_keeper | Inventory, Purchase, GRN, Indents | Store Dashboard |
| 12 | hr_manager | Staff, Payroll, Leave, Attendance | HR Dashboard |
| 13 | quality_officer | Incidents, Infection Control, NABH | Quality Dashboard |
| 14 | viewer | Read-only access to assigned modules | Overview (read-only) |
Important: Roles are assigned per user. A user can have exactly ONE role within an organization. If someone needs both doctor and admin privileges, they are assigned the admin role (which includes clinical access).
Permission Levels -- CRUD Matrix
Each role has a CRUD (Create, Read, Update, Delete) permission set for each module:
| Permission | Symbol | Meaning |
|---|---|---|
| Create | C | Can add new records |
| Read | R | Can view existing records |
| Update | U | Can modify existing records |
| Delete | D | Can soft-delete records |
Example Permission Matrix (simplified):
| Module | Doctor | Nurse | Receptionist | Cashier | Admin |
|---|---|---|---|---|---|
| Patient Registration | R | R | CRUD | R | CRUD |
| Appointments | CRU | R | CRUD | R | CRUD |
| Prescriptions | CRUD | R | -- | -- | CRUD |
| Vitals | CR | CRUD | -- | -- | CRUD |
| Billing | R | -- | R | CRUD | CRUD |
| Lab Orders | CRU | R | -- | -- | CRUD |
| User Management | -- | -- | -- | -- | CRUD |
FC Responsibility: During configuration, verify that the default permission matrix matches the hospital's requirements. Some hospitals want nurses to create appointments; others do not. Document deviations clearly.
Row Level Security (RLS) -- How Data Isolation Works
Row Level Security is enforced at the PostgreSQL database level. It ensures that even if the application has a bug, data cannot leak across organizations.
How It Works:
- Every table has an
organization_idcolumn - When a user logs in, their
organization_idis embedded in their JWT token - PostgreSQL RLS policies automatically filter every query:
WHERE organization_id = current_user_org() - A user from Hospital A literally cannot see Hospital B's data -- the database blocks it before the application code even runs
RLS Layers:
| Layer | Scope | Example |
|---|---|---|
| Organization-level | Tenant isolation | Hospital A vs Hospital B |
| Branch-level | Multi-branch chains | Delhi branch vs Mumbai branch |
| Department-level | Sensitive data | Psychiatry records visible only to psychiatry staff |
| Record-level | Patient consent | VIP patient records restricted to attending doctor |
FC Relevance: When setting up a multi-branch hospital chain, test RLS thoroughly. Log in as a user from Branch A and verify you cannot see Branch B patients. This is a NABH audit point.
Platform Admin vs Organization Admin
Bio Ecko has two distinct admin levels:
| Attribute | Platform Admin | Organization Admin |
|---|---|---|
| Scope | Cross-organization | Single organization |
| Who | Bio Ecko team / super-admin | Hospital IT admin |
| Can See | All organizations' data | Only their organization |
| Can Do | Create/delete organizations, manage platform settings, access FC docs | Manage users, configure modules, view reports |
| Flag | profiles.is_platform_admin = true | profiles.role = 'admin' within an org |
FC Docs Access: The FC Training and FC Scenarios documentation sections are restricted to platform admins only. Regular organization admins and staff cannot see them.
FC Configuration:
- During implementation, the FC typically has platform admin access for setup
- At go-live handover, platform admin access is revoked and the hospital's IT admin gets organization admin access
- Document who has platform admin access at all times (compliance requirement)
Multi-Branch Access Control
For hospital chains with multiple branches, access control becomes more nuanced:
Scenario 1: Branch-Isolated Staff A receptionist at the Delhi branch should only see Delhi patients and appointments.
- Configuration:
profiles.branch_id = 'delhi-branch-id' - RLS filters queries to only show records from that branch
Scenario 2: Cross-Branch Doctors A senior cardiologist may consult at both Delhi and Mumbai branches.
- Configuration:
profiles.branches = ['delhi-id', 'mumbai-id'](multi-branch assignment) - The doctor sees patients from both branches and can toggle between them
Scenario 3: Chain-Level Management The CFO needs to see financial reports across all branches.
- Configuration:
profiles.role = 'admin'with no branch restriction - The admin sees consolidated data across all branches
FC Checklist for Multi-Branch Setup:
- Define branch hierarchy in organization settings
- Assign each user to their correct branch(es)
- Configure shared master data (formulary, test catalogue) at org level
- Configure branch-specific data (tariffs, bed master) at branch level
- Test cross-branch isolation with real test accounts
Role Assignment Best Practices
Common mistakes FCs make during user setup and how to avoid them:
| Mistake | Risk | Best Practice |
|---|---|---|
| Giving everyone admin access | Data exposure, accidental deletions | Principle of least privilege: assign minimum necessary role |
| Not creating individual accounts | No audit trail (shared logins) | Every staff member gets their own account -- no exceptions |
| Using generic passwords | Security breach | Enforce strong passwords; require change on first login |
| Not deactivating departed staff | Unauthorized access | SOP: HR notifies IT on last working day; account deactivated immediately |
| Incorrect role for dual-function staff | Wrong module access | If a person does nursing AND pharmacy, choose the primary function; use admin for truly cross-functional users |
| Forgetting to assign branch | User sees all branches' data | Always set branch_id for non-admin users in multi-branch setups |
Day-1 Checklist:
- Create all user accounts with correct roles and branches
- Set temporary passwords and mark "must change on first login"
- Have each user log in and verify they see only their hub/modules
- Test one user from each role to verify permission boundaries
VIP and Sensitive Record Access
Some hospitals require extra protection for certain patients (VIPs, celebrities, staff members receiving treatment, psychiatric patients):
Bio Ecko's Approach:
- A patient can be flagged as
is_vip = trueorsensitivity_level = 'restricted' - When flagged, only the attending doctor and explicitly authorized users can view that patient's records
- Other users see the patient name redacted as
***RESTRICTED***in lists - Access attempts are logged in the audit trail
FC Configuration:
- Enable VIP flagging in Patient Registration settings
- Define who can flag/unflag a patient as VIP (typically admin + attending doctor only)
- Train registration and nursing staff on the VIP workflow
- During NABH audit prep, verify the VIP audit trail is complete
Emergency Break-Glass Access
In a medical emergency, a doctor may need to access a restricted patient's record (e.g., an unconscious VIP patient in the ED).
Break-Glass Protocol:
- The doctor clicks "Emergency Access" on the restricted record
- A reason is mandatory (free text + category: emergency, clinical need, etc.)
- Access is granted immediately -- no approval wait
- An alert is sent to the admin and the patient's attending doctor
- The break-glass event is logged in the audit trail with full details
- The admin reviews break-glass events weekly and follows up on any misuse
FC Configuration:
- Enable break-glass in Security Settings
- Configure alert recipients (admin, quality officer)
- Include break-glass review in the monthly quality audit checklist
- Train ED staff on when break-glass is appropriate vs when to call the attending doctor first
Notes
Info
The most common go-live issue is incorrect role assignments. Build a complete user-role-branch mapping spreadsheet during configuration and get sign-off from the hospital HR team before creating accounts.
Warning
Never share your platform admin credentials with hospital staff. Platform admin access should be limited to the Bio Ecko implementation team and revoked after go-live handover.
Tip
During UAT, create one test user for each role and perform a 'role walkthrough' -- log in as each role and verify the correct modules, permissions, and data visibility. Document this in the UAT sign-off sheet.
Clinic tip
Small clinics (under 20 staff) often have people wearing multiple hats -- the receptionist also handles billing. In such cases, assign the 'admin' role rather than creating complex workarounds.
Related topics
FC Training Programme
This training programme is designed to take a complete fresher -- someone with no prior healthcare or ERP background -- and transform them into a confident...
Data Model Primer
Key database tables, relationships, and data patterns in Bio Ecko -- a non-developer guide for functional consultants to understand how data is structured...
Module Walkthrough: Clinical & OPD
Hands-on walkthrough of Bio Ecko's clinical modules -- Patient Registration, Appointment Scheduling, OPD Consultation, Prescription, EMR, and Vitals -- with...
Patient Registration
Patient Registration is the first step in the patient journey. Every patient who visits your clinic needs a profile in the system before they can be booked for...
Nursing Console
The Nursing Console is the primary workspace for ward nurses managing admitted patients. It provides a unified view of all nursing tasks, medication...
Pharmacist Hub
The Pharmacist Hub is the default landing page for users with the pharmacist role. It focuses on the dispensing queue, inventory health, and quick access to...
Data Model Primer
Key database tables, relationships, and data patterns in Bio Ecko -- a non-developer guide for functional consultants to understand how data is structured...
Module Walkthrough: Clinical & OPD
Hands-on walkthrough of Bio Ecko's clinical modules -- Patient Registration, Appointment Scheduling, OPD Consultation, Prescription, EMR, and Vitals -- with...