Security when the install runs on premises or in your own cloud
The edge agent sits beside your devices. The hub and the FHIR store run on premises, in your private cloud, or in a device maker's cloud when the maker runs the install. Anything sent to us is de-identified first, inside the install.
On premises or in a cloud · TLS 1.3 · five roles · audit trail
The parts of the install, and where each one runs
The Kymolog™ edge agent sits next to the bedside devices, and the EHR is the hospital's own: both are always at the hospital. The hub and the FHIR store, which matches patients and sends readings to the EHR, run on premises or in a cloud account: the hospital's own or a device maker's. They run in containers on any standard Linux host, whether a server you own or an account on AWS, Azure or Google Cloud. The research store runs beside them or in our cloud.
The edge agent and the hub carry device values and device identifiers, never a name or a record number. Patients are matched to readings later, in the FHIR store, so a compromise at the edge exposes no patient details. The hub keeps no database: it receives each reading, forwards it to the FHIR store and acknowledges it.
Figure 2 as a table
| Part | Where it runs | Patient data |
|---|---|---|
| devices, edge agent | the hospital | none: readings carry a device id only |
| EHR | the hospital | yes: the chart |
| hub | the back end: the hospital’s premises or private cloud, or a device maker’s cloud | none: it forwards readings and keeps no database |
| Kymolog (FHIR store, review queue) | the back end | yes: readings are matched to patients here, and results go to the EHR |
| research store, beside the install | the back end | as your study needs |
| de-identify (allowlist) | the back end | tokens and shifted dates replace identifiers |
| research store, hosted | Saga’s cloud | de-identified readings only |
| data network (optional add-on) | Saga’s cloud | de-identified readings only |
Connections and credentials
Kymolog's own connections use TLS 1.3: edge agent to hub, hub to FHIR store, and FHIR store to an EHR's FHIR R4 API. HL7 v2 results travel over your interface engine's MLLP connection. Each edge agent opens its own connection out to the hub, on a standard HTTPS port. The hub answers only on that connection, so wherever it runs, it never reaches into the network the devices sit on.
Results reach your EHR through its FHIR R4 API or your interface engine. Your team sets up that interface to wherever the back end runs: your own servers, your private cloud, or a device maker's cloud.
Each edge agent proves who it is to the hub with a signed token that carries a one-time value, so a replayed message is refused. There are no default passwords and no shared API keys. The agent and the hub are written in a memory-safe systems language, which removes whole classes of memory bugs from the code that handles each reading.
Roles, and a record of who acted
Five roles come with default permissions: super admin, physician, charge nurse, nurse and biomed. A super admin can change any default for a single user, and the override takes precedence. Units can be restricted, so only the roles or users granted a unit see its readings. Access is checked twice, at the FHIR API and again in the app, and sign-in uses SMART on FHIR with OAuth 2.0.
The audit trail records who approved or rejected each reading, who corrected a patient match, and when. Automated steps are logged too, with the trigger that started them, such as a new reading or a status change (Fig. 3). Earlier versions of each reading are kept, so a correction adds a version and never erases the one before.
Figure 3 as a table
| Permission | SA | MD | CN | RN | BM |
|---|---|---|---|---|---|
| view the review queue | yes | yes | yes | yes | no |
| approve or reject a reading | yes | yes | yes | no | no |
| correct the patient on a reading | yes | yes | yes | no | no |
| assign a device to a patient | yes | yes | yes | yes | no |
| assign a device to a bed | yes | no | yes | no | yes |
| register a device | yes | no | no | no | yes |
| retry a failed EHR send | yes | no | no | no | yes |
| manage roles | yes | no | no | no | no |
Where patient data goes
Identified patient data lives in your EHR and wherever the install's back end runs, and the install de-identifies every reading it sends to us. Who holds the identified data depends on who runs the install.
Your hospital runs it
When your hospital runs the install on premises or in its private cloud, identified data stays with the hospital. The FHIR store and review queue sit on servers or cloud accounts your own IT team controls.
A device maker runs it
A device maker can run the install's back end in its own cloud for the hospitals that use its device. The edge agent remains beside your devices, and your EHR is unchanged. Readings and patient data travel from your hospital to the maker's cloud, where readings are matched to patients, and the results come back to your EHR. The maker holds that data under its agreement with your hospital.
We host the research store
The research store runs on premises, beside the install, or in our cloud. The install de-identifies each reading before it reaches our cloud, so a research store we host holds de-identified readings only. The data network, a separate add-on service we run, receives readings the same way, and only if your hospital joins.
De-identification runs inside the install's environment, by allowlist: a field leaves only if it is on the list. Patient and visit identifiers cross as tokens, each patient's dates shift by an offset of their own, and free text never crosses. The store that holds the tokens stays inside the install and is encrypted.
Send us your security questionnaire
Bring your questionnaire, in SIG, HECVAT or your own format. The demo walks your security team through the boundary, the roles and the audit trail on a running install. We reply within one business day with times to talk.