Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
Backend i baza danych aplikacji medycznej
Co musi obsługiwać backend aplikacji medycznej i jego baza danych, które części Anpheros udostępnia jako zarządzana baza danych medycznych, co pozostaje w Twoim backendzie, trzy sposoby połączenia i jak pozostać w synchronizacji za pomocą webhooków.
Backend aplikacji medycznej to serwerowa część aplikacji medycznej: przechowuje dane pacjentów, egzekwuje, kto może je zobaczyć, prowadzi historię zmian i komunikuje się z laboratoriami, klinikami oraz innymi usługami. Dzięki Anpheros, medyczna część tego backendu — baza danych opieki zdrowotnej przechowująca rekord każdego pacjenta, wraz z jego historią, zgodami, pochodzeniem danych, audytem, importem wyników laboratoryjnych i zdarzeniami — jest udostępniana przez platformę za pośrednictwem API, a Twój własny backend przechowuje tylko to, co jest specyficzne dla Twojego produktu.
Co musi obsługiwać medyczny backend
| Odpowiedzialność | Dlaczego jest to trudne w opiece zdrowotnej | Z Anpheros |
|---|---|---|
| Medyczny model danych | dziesiątki rodzajów danych, każdy ze standardowymi kodami | HL7 FHIR R4, 26 typów zasobów, LOINC / ICD-10 / ATC / UCUM |
| Wersjonowanie | dane medyczne są poprawiane, nigdy nie są cicho nadpisywane | każda aktualizacja to nowa wersja; If-Match dla aktualizacji warunkowych |
| Dokumenty | oryginały muszą pozostać niezmienione i możliwe do prześledzenia | niezmienne oryginały z SHA-256, przechowywanie w UE szyfrowane kluczem zarządzanym przez klienta |
| Kontrola dostępu | na pacjenta, na aplikację, na typ danych | izolacja projektów, identyfikatory parami, zakresy OAuth z filtrami kategorii |
| Zgoda | pacjent decyduje i może zmienić zdanie | zgody na 30–365 dni, odwoływalne, odzwierciedlone jako FHIR Consent |
| Audyt | pacjenci i regulatorzy pytają, kto co widział | każde odczytanie i zapis jest rejestrowane i widoczne dla pacjenta |
| Pochodzenie | wartość z laboratorium nie jest wartością wpisaną przez pacjenta | typ autora, organizacja, praktykujący lekarz i system źródłowy przy każdym zapisie |
| Integracje | laboratoria wysyłają CSV, HL7 v2, JSON; aplikacje potrzebują zdarzeń | import z laboratorium, transakcje FHIR, podpisane webhooki |
| Bezpieczne ponawianie prób | zduplikowany lek lub wynik to błąd kliniczny | Idempotency-Key przy każdym tworzeniu |
| Dane testowe | prawdziwi pacjenci nigdy nie powinni znajdować się w środowisku deweloperskim | baza danych sandbox z syntetycznymi pacjentami |
Co pozostaje w Twoim backendzie
- Twoi użytkownicy i konta oraz mapowanie każdego użytkownika na jego identyfikator pacjenta Anpheros (identyfikator parzysty, który widzi Twój projekt);
- dane produktu, które nie są medyczne: ustawienia, subskrypcje, treści, harmonogramy przypomnień;
- reguły biznesowe — którzy z Twoich pracowników mogą widzieć którego pacjenta w Twoim produkcie;
- klucz API, który nigdy nie powinien być umieszczany w aplikacji mobilnej lub internetowej.
Trzy sposoby połączenia
1. Twoje zaplecze przechowuje klucz API (najczęściej). Twoja aplikacja wywołuje Twoje zaplecze; Twoje zaplecze wywołuje Anpheros z kluczem sk_live_ i widzi pacjentów utworzonych przez Twój projekt.
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. Aplikacja działa w imieniu pacjenta z użyciem OAuth. W przypadku osób, które już posiadają rekord w Anpheros, aplikacja mobilna lub internetowa jest publicznym klientem OAuth z PKCE: osoba wyraża zgodę na hostowanej stronie, a aplikacja otrzymuje 30-minutowy token dostępu i rotujący token odświeżania dla tego jednego rekordu. SDK implementują ten przepływ (OAuthFlow).
3. Partnerzy serwer-serwer. Poufny klient (z tajnym kluczem, przechowywanym na serwerze) może używać przepływu kodu autoryzacji lub client_credentials, który działa jak klucz API dla tego projektu.
Utrzymanie synchronizacji backendu
Subskrybuj webhaki zamiast odpytywania (polling). Dostawy są podpisywane (Anpheros-Signature, HMAC-SHA256 na timestamp i body), dostarczane co najmniej raz i potencjalnie nie w kolejności; deduplikuj według identyfikatora zdarzenia i ignoruj przestarzałe wersje.
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();
});
Obsługa błędów i limitów
- Traktuj
404jako „niewidoczne dla Ciebie”, nigdy jako dowód na to, że rekord nie istnieje. 403oznacza, że poświadczenie istnieje, ale może nie być w stanie tego zrobić — brak zakresu (scope) lub zasób zapisany przez inną organizację.429występuje wraz zRetry-After; SDK automatycznie czekają i ponawiają próbę, tak jak robią to dla5xx.- Zachowaj
Anpheros-Request-Idnieudanych wywołań na potrzeby wsparcia technicznego.
Błędy · Limity i limity szybkości
Często zadawane pytania
Jakiej bazy danych powinna używać aplikacja medyczna?
Takiej, która przechowuje dane medyczne w standardowej, wersjonowanej formie i kontroluje dostęp na poziomie pacjenta. Anpheros to zarządzana baza danych opieki zdrowotnej oparta na HL7 FHIR R4: rekord każdego pacjenta jest wersjonowany i przeszukiwalny, każdy zapis zawiera informacje o pochodzeniu (provenance), a aplikacja widzi pacjenta tylko wtedy, gdy utworzyła jego rekord lub pacjent wyraził zgodę. Twoja własna baza danych przechowuje pozostałe dane Twojego produktu – konta, rozliczenia, treści. Aby zapoznać się z kompromisami związanymi z projektowaniem własnych tabel, zobacz FHIR vs. niestandardowa baza danych medycznych.
Czy istnieje darmowa baza danych dla aplikacji medycznych?
Tak. Piaskownica (sandbox) Anpheros jest darmowa: zaloguj się za pomocą Google, uzyskaj klucz jednym kliknięciem, a Twój projekt otrzyma własnych 30 syntetycznych pacjentów i do 10 000 zapisów dziennie. Produkcja zaczyna się od 99 € miesięcznie za 2500 pacjentów, z pierwszym miesiącem za darmo; dostęp produkcyjny jest dla zweryfikowanych organizacji z podpisaną umową o przetwarzaniu danych. Zobacz Cennik.
Czy mogę przechowywać rzeczywiste dane pacjentów w darmowej piaskownicy?
Nie. Piaskownica jest przeznaczona wyłącznie do danych syntetycznych: każdy projekt piaskownicy otrzymuje własnych syntetycznych pacjentów, a klucze piaskownicy nie mogą uzyskać dostępu do produkcji. Rzeczywiste rekordy pacjentów należą do projektu produkcyjnego.
Powiązane tematy
- FHIR vs. niestandardowa baza danych medycznych: kiedy projektować własne tabele, a kiedy używać FHIR
- Jak zbudować API dla sektora opieki zdrowotnej w TypeScript: samouczek krok po kroku z Express
- Jak zbudować aplikację dla sektora opieki zdrowotnej we Flutterze: samouczek krok po kroku z Dart SDK
- Tworzenie oprogramowania dla sektora opieki zdrowotnej
- Budowanie aplikacji dla sektora opieki zdrowotnej
- Architektura
- API danych medycznych
- SDK
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card