Skip to content

.pemr bundle

A .pemr bundle is the portable patient record used by the CareFlow Kids / CareView Family ecosystem.

It allows a patient's medical information to move safely between the doctor application and the patient viewer, while remaining usable offline.


Core idea

flowchart LR
  CF[CareFlow Kids<br>Doctor App]
  PEMR[.pemr bundle<br>Portable patient record]
  CV[CareView Family<br>Patient App]

  CF -->|Export| PEMR
  PEMR -->|Open| CV
  CV -->|Export updated| PEMR
  PEMR -->|Import| CF

The .pemr bundle is the central data container that carries the patient's record between applications.


What a .pemr bundle contains

At a high level, the bundle contains three main components:

flowchart TB
  PEMR[.pemr bundle]

  PEMR --> DB[db.sqlite]
  PEMR --> MANIFEST[manifest.json]
  PEMR --> DOCS[docs/]

db.sqlite

The SQLite database storing structured clinical information:

  • patient demographics
  • visits (sick visits and well visits)
  • vitals
  • growth measurements
  • notes
  • clinical observations

Database security

The db.sqlite file is encrypted.

The encryption uses HMAC / SHA-256 based protection to ensure integrity and confidentiality of the structured medical data stored in the database. Applications opening the bundle are responsible for performing the necessary verification and decryption before accessing the data.

Security properties of the bundle

The .pemr format is designed with several security properties:

  • Database encryption — the structured clinical data stored in db.sqlite is encrypted.
  • Integrity verification — HMAC / SHA‑256 mechanisms allow applications to verify that the database has not been altered.
  • Manifest validation — the manifest.json file allows applications to verify bundle version and compatibility before import.
  • Separation of data and documents — attached files remain in the docs/ folder and can be inspected independently of the database.

These properties help ensure that patient data remains confidential, portable, and verifiable when bundles are exchanged between applications.

manifest.json

Metadata describing the bundle.

Typical fields include:

  • bundle version
  • schema version
  • creation timestamp
  • application version

The manifest allows applications to check compatibility before importing a bundle.

docs/

A folder containing attached documents such as:

  • laboratory reports
  • vaccination records
  • imaging reports
  • parent-provided documents

Documents remain separate files so they can be viewed easily without opening the database. If the .pemr bundle is unpacked (for example by unzipping it), the files in the docs/ folder can be accessed directly like normal documents.


Why bundles are used

The .pemr format enables:

  • portable patient records
  • offline-first operation
  • privacy-preserving data exchange

Because the bundle is self-contained, it can be shared:

  • between clinic and family
  • between clinics
  • for long-term archival

Typical workflow

flowchart LR
  V[Doctor visit]
  R[Report generated]
  E[Export .pemr]
  F[Family opens in CareView]
  U[Family adds notes or documents]
  X[Export updated .pemr]
  I[Doctor imports bundle]

  V --> R --> E --> F --> U --> X --> I

This workflow keeps the patient's record cumulative and continuously updated.


File extension

The bundle uses the extension:

.pemr

The extension identifies a Portable Electronic Medical Record bundle used by CareFlow Kids and CareView Family.


Summary

A .pemr bundle is:

  • a portable patient record
  • a self-contained medical dataset
  • the data bridge between doctor and patient applications

Understanding the bundle concept is key to understanding how the entire system works.