AnpherosAnpheros PlatformDevelopers

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

Aplikácia osobného zdravotného záznamu (PHR) s FHIR

Návod: backend pre prepojený PHR na FHIR R4 — údaje od ľudí, laboratórií, dokumentov a zariadení, časová os, IPS na zdieľanie, súhlas. Otestovaný kód.

Aplikácia osobnej zdravotnej karty (PHR) uchováva zdravotné informácie jednej osoby — výsledky, merania, diagnózy, lieky, dokumenty — v zázname, ktorý osoba ovláda, zhromaždené z viacerých zdrojov namiesto z jednej nemocnice. Náročné nie sú obrazovky: náročné je získať dáta z laboratórií, kliník a zariadení v použiteľnej forme, sledovať, odkiaľ každá položka pochádza, a umožniť osobe zdieľať záznam bez straty kontroly nad ním. Tento tutoriál buduje backend PHR na HL7 FHIR R4 s Anpheros TypeScript SDK; kód nižšie bol spustený proti lokálnej inštancii platformy s sandbox kľúčom.

Prepojené, samostatné a pripojené PHR

Typ Kde sa údaje nachádzajú Obmedzenie
Prepojené (portál pacienta nemocnice) EHR poskytovateľa Zobrazuje iba údaje daného poskytovateľa; mení sa, keď osoba zmení lekára
Samostatné (samostatná aplikácia alebo poznámkový blok) Vlastná databáza aplikácie Osoba zadáva všetko manuálne; údaje z aplikácie zriedka vychádzajú
Pripojené Štandardný záznam, do ktorého aplikácie, laboratóriá a kliniky čítajú a zapisujú s povolením osoby Vyžaduje štandardy, súhlas a pôvod pod ním

Pripojené PHR je to, čo sa dnes oplatí budovať. Je to tiež smer, ktorým sa uberá politika: v Spojených štátoch musia certifikované EHR ponúkať pacientom prístup k ich údajom prostredníctvom API založeného na FHIR (US Core) a v Európskej únii Európsky priestor pre zdravotné údaje dáva ľuďom právo na prístup k ich elektronickým zdravotným údajom a na ich zdieľanie s poskytovateľmi podľa ich výberu, pričom sa bude zavádzať postupne od roku 2029.

Odkiaľ pochádzajú dáta PHR

  1. Osoba: domáce merania, symptómy, užívané lieky, známe zdravotné problémy. Označte ich ako hlásené pacientom.
  2. Laboratórne správy: väčšina ľudí dostáva PDF; niektoré laboratóriá môžu posielať HL7 v2 alebo CSV. Každý výsledok by sa mal stať kódovaným pozorovateľom (Lab results API).
  3. Dokumenty: prepúšťacie správy, rádiologické správy, lekárske predpisy. Ponechajte pôvodný súbor, nezmenený, vedľa štruktúrovaných údajov.
  4. Zariadenia a nositeľné zariadenia: denné kroky, srdcový tep, spánok, krvný tlak z Apple Health alebo Health Connect (wearable data in FHIR).
  5. Poskytovatelia: v USA, prístupové FHIR API nemocníc a poisťovateľov pre pacientov, dosiahnuteľné pomocou SMART on FHIR; inde, prevažne dokumenty a súhrny ako International Patient Summary.

Každý zdroj zapisuje do rovnakého záznamu. Dôveryhodnosť zabezpečuje to, že každá položka zaznamenáva, kto ju zapísal a z akého systému (medical data provenance).

Architektúra

 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áva kľúč projektu (sk_test_… v sandboxe, nikdy v aplikácii). Vaša aplikácia prihlasuje používateľov pomocou vlastnej autentizácie a komunikuje s vaším backendom; backend mapuje každého používateľa na jeden záznam pacienta.

Kroky

Nainštalujte SDK (npm install @anpheros/sdk) a získajte bezplatný kľúč do sandboxu z dashboardu. Vzor používa HL7 v2 lipidový panel s dvoma výsledkami (lipid-panel.hl7) a ľubovoľné PDF (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);

Vytlačené z tohto spustenia:

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šetko vyššie uvedené je uložené ako FHIR R4 — Patient, Observation, Condition, MedicationStatement, DocumentReference — takže ten istý záznam je možné prečítať pomocou ľubovoľného FHIR klienta (GET /fhir/R4/Patient/{id}/$everything) a presunúť ho inam v nezmenenom stave. Volania /v1 v SDK sú zjednodušeným pohľadom na tie isté zdroje; Medical data API ich uvádza.

Zdieľanie bez straty kontroly

PHR existuje na zdieľanie, podľa podmienok osoby:

Rodiny

Mnohé PHR (Personal Health Records) sú spravované jednou osobou pre viacerých členov rodiny: deti, partnera, staršieho rodiča. Každá osoba by mala mať vlastný záznam a byť prepojená s opatrovníkom, namiesto miešania údajov všetkých v jednom zázname. Súhlas sa potom udeľuje pre každý záznam zvlášť. Model je popísaný v časti Lekársky záznam pacienta.

Čo si postaviť sami a čo nie

Vy budujete používateľskú skúsenosť: onboarding, spôsob vysvetlenia výsledkov, pripomienky, grafy, jazyk, ktorému osoba číta. Anpheros poskytuje záznam, štandardné formáty, súhlas, pôvod, denník prístupu a operácie pre laboratórne výsledky, dokumenty a súhrny.

Čo Anpheros dnes nerobí pre PHR: neprihlasuje sa do nemocničných pacientskych portálov ani do amerických API pre prístup pacienta v mene osoby (vaša aplikácia to dokáže pomocou klienta SMART on FHIR a zapísať to, čo prijme), nečíta PDF správy prostredníctvom API a neposkytuje lekárske rady. Vlastná PHR aplikácia Anpheros, Anpheros Daily, je postavená na tomto istom API.

Často kladené otázky

Čo je osobný zdravotný záznam (PHR)?

Záznam o zdravotných informáciách osoby, ktorý si osoba vedie a kontroluje, zhromaždený z viacerých zdrojov — vlastných záznamov, laboratórií, kliník, zariadení — namiesto toho, aby bol vedený jedným poskytovateľom.

Aký je rozdiel medzi PHR a EHR?

EHR vedie zdravotnícka organizácia a pokrýva to, čo zaznamenali jej poskytovatelia. PHR vedie osoba a môže kombinovať údaje od všetkých svojich poskytovateľov a zariadení. Pripojený PHR je okno do EHR jedného poskytovateľa; prepojený PHR používa štandardy na spojenie viacerých zdrojov.

Mal by PHR používať FHIR?

Ak sa údaje majú niekedy zdieľať s lekárom, inou aplikáciou alebo asistentom AI, áno: FHIR R4 poskytuje kódované, verzované zdroje, ktorým iné systémy už rozumejú, a je to formát API pre prístup pacienta v USA a európskeho súhrnu pacienta.

Ako získa aplikácia PHR údaje z nemocníc?

V USA prostredníctvom API pre prístup pacienta FHIR, ktoré exponujú certifikované EHR a mnohí poisťovatelia, pomocou SMART on FHIR, aby osoba autorizovala aplikáciu. Inde sú to prevažne dokumenty a súhrny, importované a uložené vedľa štruktúrovaných údajov.

Kde by mala aplikácia PHR uchovávať API kľúče?

Na vašom serveri. Kľúč projektu môže čítať každý záznam, ktorý váš projekt vytvoril, takže nikdy nesmie byť dodaný v mobilnej alebo webovej aplikácii; aplikácia komunikuje s vaším backendom a aplikácie iných ľudí používajú OAuth so súhlasom osoby.

Súvisiace

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