Security and compliance
Security is enforced where the data is kept.
This page describes how MD-LIMS controls access, records what was done, protects signed reports and backups, and how each release is tested. It describes the software. It does not claim certification against any standard.
Access enforced by the database
MD-LIMS keeps its data in PostgreSQL. Who may see and change which records is enforced by the database itself, using row-level security, and not by filters in the application’s queries.
The account the application connects with owns nothing and cannot bypass row-level security.
The system administrator holds no laboratory permission and cannot read patient results. Keeping the server running and reading results are separate duties.
Who may do what
- Roles and permissions are set per module and per method.
- Authorisation per method is enforced at entry, review and signature. A person not authorised for a method cannot run it.
- Training and competence records are kept, and competence lapses.
- Results are reviewed by a person other than the one who entered them.
- Proxy login records both people. There is no signing under proxy.
The audit trail
Every action is written to an audit trail that is append-only and hash-chained. Each entry carries the hash of the entry before it, so an entry cannot be changed or removed without breaking the chain from that point on.
- Entry 1041who, what, whenprev: 7c2e…
- Entry 1042who, what, whenprev: hash of 1041
- Entry 1043who, what, whenprev: hash of 1042
The chain is re-verified every night as part of the backup. See Backup and restore.
Signatures and report versions
- Review and approval can be multi-level, configured to the institute’s own policy.
- Every signature requires the password to be entered again at the moment of signing.
- Each signature is bound to a SHA-256 hash of exactly the content signed.
- Any change after signature produces a new version with its own hash. Nothing is overwritten and nothing is deleted.
- Version 1signedSHA-256: a41f…kept unchanged
- Change after signaturerecorded
- Version 2its own hashSHA-256: 90bd…
Report delivery
Reports can be printed. They can also be delivered through secure links that are time-limited and audited.
A referring ward or department has its own portal, where it books tests and reads only its own released reports.
Backup and restore
A backup is taken every night. Before the copy is kept, it restores itself into a scratch database and re-verifies the audit chain.
No internet connection
MD-LIMS runs on the institute’s own server or private cloud. No internet connection is required, and the licence is verified offline. Details are on the Deployment page.
How each release is tested
Every release must pass an automated test suite across six layers:
- Shell plumbing
- The database
- The API and web client
- The instrument gateway
- Backup and restore verification
- An in-place upgrade of a database that already holds work
Every defect found in use becomes a test. The test is proved to fail with the fault put back before it is trusted.
Nothing is described as verified unless a test proves it.