Zero lock-in: exporting and re-importing your lab's data
Your data is yours. How Salus lets a lab export everything, including the schema, and re-import clean records, so leaving is always an option you never have to use.
Lock-in is a business model, not a technical necessity
For most laboratory systems, the hardest part of leaving is getting your data out in a form anyone else can use. That friction is often deliberate: the more trapped your history is, the less negotiating power you have at renewal. Salus takes the opposite position. The software license is free and open source, and the data is exportable on demand, so a lab stays because the product earns it, not because escape is expensive.
A director should never have to wonder whether years of specimen history, test definitions, and results are truly retrievable. In Salus, a full export is a button, available to a lab director or administrator whenever they want it.
Two ways to export, for two different needs
The first is a full-fidelity export: every table, plus the schema and the SQL DDL needed to recreate the database elsewhere, as one combined JSON file or a series of per-table files. This is the backup that guarantees nothing is stranded, down to the last column and constraint.
The second is a functional export by record type: clean, human-readable domain records, patients, submitters, and inventory, in the same field shape the importer accepts. Protected health information is decrypted into these files for the authorized director who exports them, so the output is readable and, crucially, re-importable.
Export and import are the same seam, run in reverse
Onboarding a lab uses the same functional model in the other direction. An administrator maps the fields of an incoming file to Salus record types and imports each record through the real domain logic, which applies field-level PHI encryption and the searchable blind indexes that keep encrypted names searchable, generates identifiers, and validates as it writes. A raw table load would leak PHI in plaintext and skip those indexes; the functional importer does not.
Because export and import share one definition of each record type, a functional export from one Salus site re-imports cleanly into another. Moving a lab between environments, or standing up a second site in a state network, becomes a file, not a project.
What this means at renewal
Portability changes the conversation. When a lab can leave at any time with a complete, documented copy of its data and schema, the relationship is built on the product continuing to be the best option, not on the cost of switching. That is the point: zero lock-in is a commitment you can verify, not a promise you have to trust.
See it in your laboratory's context.
Explore the live demo, no login and no request form.