AnpherosAnpheros PlatformDevelopers

Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card

Aplikace osobního zdravotního záznamu (PHR) s FHIR

Návod: backend propojeného PHR na FHIR R4 — data od lidí, laboratoří, dokumentů a zařízení, časová osa, IPS pro sdílení, souhlas. Otestovaný kód.

Aplikace osobní zdravotní karty (PHR) uchovává zdravotní informace jedné osoby — výsledky, měření, diagnózy, léky, dokumenty — v záznamu, který osoba kontroluje, shromážděné z mnoha zdrojů, nikoli z jedné nemocnice. Obtížné nejsou obrazovky: obtížné je získat data z laboratoří, klinik a zařízení v použitelné formě, sledovat, odkud každá položka pochází, a umožnit osobě sdílet záznam bez ztráty kontroly nad ním. Tento návod sestavuje backend PHR na HL7 FHIR R4 s Anpheros TypeScript SDK; níže uvedený kód byl spuštěn proti lokální instanci platformy s sandbox klíčem.

Propojené, nepodporované a připojené PHR

Typ Kde data žijí Omezení
Propojené (nemocniční portál pacienta) EHR poskytovatele Zobrazuje pouze data daného poskytovatele; mění se, když osoba změní lékaře
Nepodporované (samostatná aplikace nebo poznámkový blok) Vlastní databáze aplikace Osoba vše zadává ručně; data z aplikace zřídka odcházejí
Připojené Standardní záznam, do kterého aplikace, laboratoře a kliniky čtou a zapisují se souhlasem osoby Vyžaduje standardy, souhlas a původ pod sebou

Připojené PHR je to, co se dnes vyplatí budovat. Je to také směr, kterým se ubírá politika: ve Spojených státech musí certifikované EHR nabízet pacientům přístup k jejich datům prostřednictvím API založeného na FHIR (US Core) a v Evropské unii Evropský prostor pro zdraví poskytuje lidem právo přistupovat ke svým elektronickým zdravotním údajům a sdílet je s poskytovateli dle vlastního výběru, postupně od roku 2029.

Odkud pocházejí data PHR

  1. Osoba: domácí měření, symptomy, léky, které užívá, stavy, o kterých ví. Označte je jako hlášené pacientem.
  2. Laboratorní zprávy: většina lidí dostává PDF; některé laboratoře mohou posílat HL7 v2 nebo CSV. Každý výsledek by se měl stát kódovaným pozorováním (API pro laboratorní výsledky).
  3. Dokumenty: propouštěcí zprávy, zprávy z zobrazovacích vyšetření, předpisy. Ponechte původní soubor, nezměněný, vedle strukturovaných dat.
  4. Zařízení a nositelná elektronika: denní kroky, srdeční tep, spánek, krevní tlak z Apple Health nebo Health Connect (data z nositelné elektroniky ve FHIR).
  5. Poskytovatelé: v USA, FHIR API nemocnic a pojišťoven s přístupem pro pacienta, dosažitelné pomocí SMART on FHIR; jinde, převážně dokumenty a souhrny, jako je International Patient Summary.

Každý zdroj zapisuje do stejného záznamu. Co jej činí důvěryhodným, je to, že každá položka zaznamenává, kdo ji zapsal a z jakého systému (původ lékařských dat).

Architektura

 person ──► your PHR app (mobile / web) ──► your backend ──► Anpheros: one FHIR R4 record per person
                                               │                 ├─ Observations, Conditions, Medications, Documents…
   lab report, PDF, device data ───────────────┘                 ├─ Provenance on every write
                                                                 ├─ access log the person can see
   other apps, doctors, AI assistants ◄── consent (OAuth) ───────┴─ $summary (IPS) to share

Váš backend uchovává klíč projektu (sk_test_… v sandboxu, nikdy v aplikaci). Vaše aplikace přihlašuje uživatele pomocí vlastní autentizace a komunikuje s vaším backendem; backend mapuje každého uživatele na jeden záznam pacienta.

Kroky

Nainstalujte SDK (npm install @anpheros/sdk) a získejte bezplatný klíč pro sandbox z dashboardu. Ukázka používá dvouvýsledkový HL7 v2 lipidový panel (lipid-panel.hl7) a libovolný PDF soubor (report.pdf).

import { readFile } from 'node:fs/promises';
import { Anpheros, apiKey } from '@anpheros/sdk';

const anpheros = new Anpheros({ auth: apiKey(process.env.ANPHEROS_KEY!) });

// 1. One record per person who signs up in your PHR app
const jane = await anpheros.patients.create({ given: 'Jane', family: 'Doe', birth_date: '1984-07-19', gender: 'female' });

// 2. Something the person measured at home
await anpheros.observations.create(jane.id, {
  code: '85354-9', category: 'vital-signs', effective_at: '2026-10-01T08:30:00-05:00', author_type: 'patient',
  components: [{ code: '8480-6', value: 128, unit: 'mm[Hg]' }, { code: '8462-4', value: 82, unit: 'mm[Hg]' }],
});

// 3. A diagnosis and a medication the person reports
await anpheros.conditions.create(jane.id, { code: 'E11.9', system: 'http://hl7.org/fhir/sid/icd-10',
  display: 'Type 2 diabetes mellitus without complications', clinical_status: 'active', onset: '2021-03-15', author_type: 'patient' });
await anpheros.medications.create(jane.id, { code: 'A10BA02', display: 'Metformin 500 mg', status: 'active',
  dosage: '500 mg twice a day', start: '2021-03-20', author_type: 'patient' });

// 4. A lab report the person received, as the lab sent it (HL7 v2)
const lab = await anpheros.labs.importHl7(jane.id, await readFile('lipid-panel.hl7', 'utf8'), { sourceSystem: 'springfield-lis' });

// 5. A PDF they want to keep with the record
const doc = await anpheros.documents.upload(jane.id,
  { title: 'Chest X-ray report', kind: 'imaging_report', content_type: 'application/pdf', date: '2026-10-03' },
  await readFile('report.pdf'));

// 6. One timeline for the home screen
const timeline = await anpheros.timeline.list(jane.id, { limit: 10 });

// 7. A summary to share with a new doctor: the International Patient Summary
const ips = await anpheros.fhir.summary(jane.id);

// 8. Who else can read this record (empty until the person consents to another app)
const grants = await anpheros.grants.of(jane.id);

Vytištěno z tohoto běhu:

lab:       created 2, unmapped []
document:  final
timeline:  2026-10-03  document    Chest X-ray report
           2026-10-02  observation Cholesterol in HDL [Mass/volume] in Serum or Plasma
           2026-10-02  observation Cholesterol [Mass/volume] in Serum or Plasma
           2026-10-01  observation Blood pressure panel
           2021-03-20  medication  Metformin 500 mg
           2021-03-15  condition   Type 2 diabetes mellitus without complications
IPS:       Allergies, Medications, Problems, Results, Vital signs
grants:    0

Vše výše uvedené je uloženo jako FHIR R4 — Patient, Observation, Condition, MedicationStatement, DocumentReference — takže stejný záznam lze číst pomocí libovolného FHIR klienta (GET /fhir/R4/Patient/{id}/$everything) a beze změny přenést jinam. Volání /v1 v SDK jsou zjednodušeným pohledem na stejné zdroje; Medical data API je uvádí.

Sdílení bez ztráty kontroly

PHR existuje proto, aby mohl být sdílen, a to podle podmínek dané osoby:

Rodiny

Mnoho PHR (Personal Health Records) spravuje jedna osoba pro více osob: děti, partnera, staršího rodiče. Každé osobě vytvořte samostatný záznam a propojte jej s opatrovníkem, místo abyste míchali data všech dohromady. Souhlas je pak udělován pro každý záznam zvlášť. Model je popsán v části Zdravotní záznam pacienta.

Co si postavit sami a co ne

Zážitek si budujete vy: onboarding, způsob vysvětlení výsledků, připomínky, grafy, jazyk, kterému osoba čte. Anpheros poskytuje záznam, standardní formáty, souhlas, původ dat, protokol přístupu a operace pro laboratoř, dokumenty a souhrny.

Co Anpheros dnes pro PHR nedělá: nepřihlašuje se jménem osoby do nemocničních pacientských portálů ani do amerických API pro přístup pacienta (vaše aplikace to může udělat pomocí klienta SMART on FHIR a zapsat, co obdrží), nečte PDF zprávy přes API a neposkytuje lékařské rady. Vlastní PHR aplikace Anpheros, Anpheros Daily, je postavena na stejném API.

Často kladené dotazy

Co je to osobní zdravotní záznam (PHR)?

Záznam o zdravotních informacích osoby, který si tato osoba vede a spravuje, shromážděný z několika zdrojů — vlastních záznamů, laboratoří, klinik, zařízení — namísto toho, aby byl veden jedním poskytovatelem.

Jaký je rozdíl mezi PHR a EHR?

EHR je veden zdravotnickou organizací a pokrývá to, co zaznamenali její poskytovatelé. PHR je veden osobou a může kombinovat data od všech jejích poskytovatelů a zařízení. Propojený PHR je okno do EHR jednoho poskytovatele; připojený PHR využívá standardy k propojení několika zdrojů.

Měl by PHR používat FHIR?

Pokud mají být data někdy sdílena s lékařem, jinou aplikací nebo asistentem AI, pak ano: FHIR R4 poskytuje kódované, verzované zdroje, kterým jiné systémy již rozumí, a je to formát API pro přístup pacienta v USA a evropského souhrnu pacienta.

Jak získá aplikace PHR data z nemocnic?

V USA prostřednictvím API pro přístup pacienta FHIR, které zpřístupňují certifikované EHR a mnoho pojišťoven, s využitím SMART on FHIR, aby osoba autorizovala aplikaci. Jinak se jedná většinou o dokumenty a souhrny, které jsou importovány a uloženy vedle strukturovaných dat.

Kde by měla aplikace PHR uchovávat API klíče?

Na vašem serveru. Klíč projektu může číst každý záznam, který váš projekt vytvořil, takže nikdy nesmí být součástí mobilní nebo webové aplikace; aplikace komunikuje s vaším backendem a aplikace jiných osob používají OAuth se souhlasem osoby.

Související

Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card

Product updates by email

New features, guides and the end of the beta. One email a month at most.

Send me occasional Anpheros Platform updates by email (new features, API changes, guides). I'll confirm by email and can unsubscribe in one click from any email. Privacy