All documentation Download (Markdown) Layman

Rosetta · rosetta.pdhc.se

Layman manual


rosetta.pdhc — User manual

Rosetta is the platform's "Rosetta Stone" for clinical data. It takes the
patient observations the platform already collects (blood glucose, blood
pressure, lab results, and so on) and re-expresses that same data in three
international standards, so different downstream tools can each read it in the
format they understand:

Nothing new is measured here — Rosetta translates observations that
already exist. It can also deliver the openEHR translation onward to an
external openEHR CDR (see "Delivering to an openEHR CDR").

Live at https://rosetta.pdhc.se. Sign-in is via the platform's single
sign-on (SSO); it is an analysis-phase tool, so your account needs
analysis access (see "Who can use it").


1. What it's for

Different research and quality-registry tools speak different "languages":
a FHIR system wants FHIR bundles, an openEHR record wants Compositions, an
OMOP analytics pipeline wants measurement rows. Rather than force every
consumer to convert the data themselves, Rosetta does the translation once and
serves whichever representation you ask for — from the same underlying
observation, so the three always agree.

Typical users: analysis-phase clinical researchers, quality-registry staff,
and data scientists who need patient observations in a specific standard for
their own tooling.


2. Where the data comes from

gateway.pdhc  ──(observations)──►  Rosetta cache  ──►  FHIR R5
                                                   ├──►  openEHR (FLAT)  ──►  external openEHR CDR
                                                   └──►  OMOP CDM
  1. You (or the 5-minute auto-refresh) pull the latest observations for your
    organisation(s) from gateway.pdhc into Rosetta's local cache.
  2. Rosetta reads the platform's canonical typed value for each observation
    (not the lossy FHIR value) and converts it into all three standards.
  3. You view or download any of the three representations for a patient. The
    openEHR translation can additionally be delivered to an external openEHR CDR.

Concept meaning (what a code is) always links back to plan.pdhc — Rosetta
never invents codes, it passes through the platform concept and records its
human-readable name.


3. The openEHR translation is FLAT and grouped

Rosetta builds openEHR FLAT (simSDT) compositions on the
openEHR-EHR-COMPOSITION.encounter.v1 composition (template pdhc_vitals.v1).
Two things follow from this that are worth knowing:


4. Using the web UI

Sign in at https://rosetta.pdhc.se (SSO). You land on the patient list
one row per patient in your organisation(s), with the observation count, the
concepts seen, and the latest timestamp.


5. Getting the data programmatically (API)

Every representation is also a REST endpoint (SSO bearer token required),
under /api/v1:

You want… Call
FHIR R5 Observations for a patient GET /api/v1/patient/<guid>/fhir → a FHIR searchset Bundle
openEHR FLAT Compositions GET /api/v1/patient/<guid>/openehr{patient_guid, total, format:"flat", compositions:[{template_id, flat}]}
OMOP measurements GET /api/v1/patient/<guid>/omop

Two further endpoints answer modelling questions for plan.pdhc (no patient
data — they only reason about concepts and archetypes), and are guarded by a
shared service key rather than SSO:

Question Call
Can a PlanDef's concepts be rendered into openEHR at all? POST /api/v1/openehr/realisable
Which openEHR templates would a PlanDef need? POST /api/v1/openehr/template-spec

Machine capabilities are described at /metadata (a FHIR R5
CapabilityStatement). Service health is at /healthz.

Full request/response shapes are in the technical manual.


6. Delivering to an openEHR CDR

Rosetta is no longer read-only: it can write the FLAT openEHR compositions
onward to an external openEHR CDR. This is a deliberate, gated capability:

The current delivery target is a sandbox (Phanera's openEHR test CDR). This
is a test path, not a route to any production patient record.


7. Who can use it (access & privacy)

Rosetta handles real patient data, so access is tightly gated:

The two /openehr/* modelling endpoints are the exception: they carry no
patient data
, so they are guarded by a service key (for the plan.pdhc
sibling) instead of the SSO login flow.


8. Good to know