Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
Backend a databáze lékařské aplikace
Co musí backend lékařské aplikace a jeho databáze zvládnout, které části Anpheros poskytuje jako spravovanou databázi zdravotnických dat, co zůstává ve vašem backendu, tři způsoby připojení a jak zůstat synchronizován pomocí webhooks.
Backend lékařské aplikace je serverová část zdravotnické aplikace: ukládá data pacientů, vynucuje, kdo je smí vidět, udržuje historii změn a komunikuje s laboratořemi, klinikami a dalšími službami. S Anpherosem je lékařská část tohoto backendu – zdravotnická databáze, která uchovává záznam každého pacienta s jeho historií, souhlasem, původem dat, auditem, importem z laboratoří a událostmi – poskytována platformou prostřednictvím API a váš vlastní backend uchovává pouze to, co je specifické pro váš produkt.
Co musí lékařský backend zvládnout
| Zodpovědnost | Proč je to ve zdravotnictví obtížné | S Anpheros |
|---|---|---|
| Lékařský datový model | desítky druhů dat, každý se standardními kódy | HL7 FHIR R4, 26 typů zdrojů, LOINC / ICD-10 / ATC / UCUM |
| Verzování | lékařská data se opravují, nikdy se tiše nepřepisují | každá aktualizace je nová verze; If-Match pro podmíněné aktualizace |
| Dokumenty | originály musí zůstat nezměněné a sledovatelné | neměnné originály s SHA-256, úložiště v EU šifrované klíčem spravovaným zákazníkem |
| Řízení přístupu | na pacienta, na aplikaci, na typ dat | izolace projektů, párové ID, rozsahy OAuth s filtry kategorií |
| Souhlas | pacient rozhoduje a může změnit názor | udělení na 30–365 dní, odvolatelné, zrcadlené jako FHIR Consent |
| Audit | pacienti a regulátoři se ptají, kdo co viděl | každé čtení a zápis zaznamenáno a viditelné pro pacienta |
| Původ | hodnota z laboratoře není hodnota zadaná pacientem | typ autora, organizace, praktický lékař a zdrojový systém při každém zápisu |
| Integrace | laboratoře posílají CSV, HL7 v2, JSON; aplikace potřebují události | import z laboratoře, transakce FHIR, podepsané webhooky |
| Bezpečné opakování | duplikovaný lék nebo výsledek je klinická chyba | Idempotency-Key při každém vytvoření |
| Testovací data | skuteční pacienti nesmí být nikdy ve vývoji | databáze sandboxu se syntetickými pacienty |
Co zůstává na vašem backendu
- Uživatelé a účty a mapování každého uživatele na jejich Anpheros patient id (párové id, které váš projekt vidí);
- Produktová data, která nejsou lékařská: nastavení, předplatná, obsah, plány připomenutí;
- Obchodní pravidla — kteří z vašich zaměstnanců mohou vidět kterého pacienta ve vašem produktu;
- API klíč, který nikdy nesmí být dodán uvnitř mobilní nebo webové aplikace.
Tři způsoby připojení
1. Váš backend drží API klíč (nejběžnější). Vaše aplikace volá váš backend; váš backend volá Anpheros s klíčem sk_live_ a vidí pacienty, které váš projekt vytvořil.
import { Anpheros, apiKey } from '@anpheros/sdk';
const anpheros = new Anpheros({ auth: apiKey(process.env.ANPHEROS_KEY!) });
// GET /api/me/vitals in your backend, after your own authentication
export async function myVitals(user: { anpherosPatientId: string }) {
const page = await anpheros.observations.list(user.anpherosPatientId, { category: 'vital-signs', limit: 50 });
return page.data;
}
2. Aplikace jedná jménem pacienta s OAuth. Pro lidi, kteří již mají záznam v Anpheros, je mobilní nebo webová aplikace veřejným OAuth klientem s PKCE: osoba udělí souhlas na hostované stránce a aplikace obdrží 30minutový přístupový token a rotující obnovovací token pro tento jeden záznam. SDK implementují tento tok (OAuthFlow).
3. Partnerské připojení server-to-server. Důvěrný klient (s tajným klíčem, uloženým na serveru) může použít tok autorizačního kódu, nebo client_credentials, který se chová jako API klíč pro daný projekt.
Udržování synchronizace vašeho backendu
Přihlaste se k odběru webhooků namísto opakovaného dotazování. Dodávky jsou podepsané (Anpheros-Signature, HMAC-SHA256 přes časové razítko a tělo), doručované alespoň jednou a případně mimo pořadí; deduplikujte podle ID události a ignorujte zastaralé verze.
import { verifyWebhookSignature } from '@anpheros/sdk';
app.post('/anpheros/hook', express.raw({ type: 'application/json' }), async (req, res) => {
const ok = await verifyWebhookSignature({ secret: process.env.ANPHEROS_WEBHOOK_SECRET!, header: req.header('anpheros-signature'), body: req.body });
if (!ok) return res.status(400).end();
const event = JSON.parse(req.body.toString()); // ids and versions only — read the resource if you need it
res.status(204).end();
});
Zpracování chyb a limitů
- Zacházejte s
404jako s "pro vás neviditelným", nikdy ne jako s důkazem, že záznam neexistuje. 403znamená, že pověření existuje, ale nemusí to umožňovat — chybějící rozsah (scope) nebo prostředek zapsaný jinou organizací.429přichází sRetry-After; SDK čekají a automaticky opakují pokusy, stejně jako u5xx.- Uchovávejte
Anpheros-Request-Idneúspěšných volání pro podporu.
Chyby · Limity a rychlostní limity
Často kladené dotazy
Jakou databázi by měla lékařská aplikace používat?
Takové, která uchovává lékařská data ve standardizované, verzované formě a řídí přístup na základě pacienta. Anpheros je spravovaná databáze pro zdravotnictví postavená na HL7 FHIR R4: záznam každého pacienta je verzovaný a prohledávatelný, každý zápis nese původ (provenance) a aplikace vidí pacienta pouze v případě, že záznam vytvořila, nebo pacient udělil souhlas. Vaše vlastní databáze uchovává zbytek dat vašeho produktu – účty, fakturaci, obsah. O kompromisech při navrhování vlastních tabulek místo toho se dočtete v FHIR vs. vlastní lékařská databáze.
Existuje bezplatná databáze pro lékařské aplikace?
Ano. Sandbox Anpheros je zdarma: přihlaste se pomocí Googlu, získejte klíč jedním kliknutím a váš projekt získá 30 syntetických pacientů a až 10 000 zápisů denně. Produkční prostředí začíná na 99 € měsíčně za 2 500 pacientů, s prvním měsícem zdarma; přístup do produkčního prostředí je pro ověřené organizace s podepsanou dohodou o zpracování dat. Viz Ceník.
Mohu v bezplatném sandboxu uchovávat skutečná data pacientů?
Ne. Sandbox je určen pouze pro syntetická data: každý projekt v sandboxu získá své vlastní syntetické pacienty a klíče sandboxu nemohou dosáhnout produkčního prostředí. Záznamy skutečných pacientů patří do produkčního projektu.
Související
- FHIR vs. vlastní lékařská databáze: kdy navrhnout vlastní tabulky a kdy použít FHIR
- Jak vytvořit zdravotnické API s TypeScript: podrobný návod s Express
- Jak vytvořit zdravotnickou aplikaci s Flutter: podrobný návod s Dart SDK
- Vývoj zdravotnického softwaru
- Vytvořte zdravotnickou aplikaci
- Architektura
- API pro lékařská data
- SDK
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card