AnpherosAnpheros PlatformDevelopers

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

Construiește o aplicație de sănătate

Tutorial: folosește Anpheros ca backend pentru date medicale al unei aplicații de sănătate — pacienți, măsurători, afecțiuni, medicamente, documente, analize, consimțământ, webhooks și SDK-uri.

Acest tutorial arată cum o aplicație de sănătate sau medicală poate folosi Anpheros Platform ca backend pentru date medicale: unde sunt stocate dosarele pacienților, cum sunt citite și scrise, cum sunt conectate alte sisteme și cum pacientul deține controlul. Fiecare apel de mai jos face parte din API-ul public (referință).

Ce construiți

O aplicație tipică pentru pacienți — un tracker pentru boli cronice, o aplicație de sănătate familială, un companion pentru monitorizare la distanță — trebuie să:

  1. păstreze un dosar per pacient: măsurători, afecțiuni, medicamente, documente;
  2. afișeze acel dosar sub formă de liste și o cronologie;
  3. accepte date din alte surse (dispozitive, laboratoare, clinici);
  4. partajeze părți din dosar, cu consimțământul pacientului;
  5. reacționeze atunci când ceva se schimbă.

Cu Anpheros, aplicația dvs. își păstrează proprii utilizatori, ecrane și logică de business, și deleagă dosarul medical platformei:

Mobile / web app ──► your backend ──► Anpheros Platform API ──► FHIR R4 record of each patient
                         ▲                                              │
                         └──────────── signed webhooks ◄────────────────┘

Backend-ul dvs. deține cheia API; aplicația comunică cu backend-ul dvs. (Aplicațiile care acționează în numele unui pacient care are deja un dosar Anpheros folosesc OAuth în schimb — vezi pasul 7.)

1. Obține o cheie de sandbox

Sandbox-ul este self-service: autentifică-te cu Google pe dashboard (https://platform.anpheros.com/dashboard/) și apasă pe Get a sandbox key. Cheile de sandbox încep cu sk_test_ și pot accesa doar baza de date sandbox, unde proiectul tău are deja propria copie a 30 de pacienți sintetici.

export BASE=https://platform.anpheros.com
export KEY=sk_test_…
curl $BASE/v1/patients -H "Authorization: Bearer $KEY"

2. Crearea unui pacient

Fiecare utilizator al aplicației dvs. primește un dosar de pacient deținut de proiectul dvs.

curl -X POST $BASE/v1/patients -H "Authorization: Bearer $KEY" -H 'content-type: application/json' \
     -H "Idempotency-Key: $(uuidgen)" \
     -d '{"given": "Elena", "family": "Ionescu", "birth_date": "1985-09-03", "gender": "female"}'

Răspunsul conține pacientul id (identificatorul dvs. unic pentru această persoană — alte proiecte văd unul diferit) și referința sa fhir.

3. Scrieți măsurători, afecțiuni și medicamente

Indicați de unde provin datele cu author_type: patient, practitioner, device, import sau ai. Dacă omiteți acest câmp, platforma înregistrează import, niciodată patient prin presupunere.

# a blood-pressure reading from a connected device (LOINC panel with two components)
curl -X POST $BASE/v1/patients/$PID/observations -H "Authorization: Bearer $KEY" -H 'content-type: application/json' \
     -H "Idempotency-Key: $(uuidgen)" -d '{
  "code": "85354-9", "display": "Blood pressure panel", "category": "vital-signs",
  "effective_at": "2026-09-28T08:00:00Z", "author_type": "device",
  "components": [
    {"code": "8480-6", "display": "Systolic", "value": 128, "unit": "mm[Hg]"},
    {"code": "8462-4", "display": "Diastolic", "value": 82, "unit": "mm[Hg]"}
  ]}'

# a diagnosis (ICD-10 by default)
curl -X POST $BASE/v1/patients/$PID/conditions -H "Authorization: Bearer $KEY" -H 'content-type: application/json' \
     -d '{"code": "I10", "display": "Essential hypertension", "onset": "2024-03-01", "author_type": "practitioner"}'

# a medication (ATC by default)
curl -X POST $BASE/v1/patients/$PID/medications -H "Authorization: Bearer $KEY" -H 'content-type: application/json' \
     -d '{"display": "Amlodipine 5 mg", "code": "C08CA01", "dosage": "1 tablet in the morning", "start": "2024-03-01", "author_type": "patient"}'

Categorii de observații: vital-signs, laboratory, symptom, activity, survey, exam, imaging, social-history. Fiecare scriere este stocată ca o resursă FHIR și primește automat o intrare Provenance.

4. Stocarea documentelor

# create the document, then upload the bytes
curl -X POST $BASE/v1/patients/$PID/documents -H "Authorization: Bearer $KEY" -H 'content-type: application/json' \
     -d '{"title": "Blood tests 2026-09-14", "kind": "lab_report", "content_type": "application/pdf", "date": "2026-09-14"}'
curl -X PUT $BASE/v1/documents/$DOC/content -H "Authorization: Bearer $KEY" -H 'content-type: application/pdf' --data-binary @report.pdf

Originalul este imutabil după încărcare; valorile pe care le extrageți din acesta pot indica înapoi către el cu derived_from.

5. Citirea înregistrării înapoi

curl "$BASE/v1/patients/$PID/observations?category=vital-signs&limit=20" -H "Authorization: Bearer $KEY"
curl "$BASE/v1/patients/$PID/medications?status=active" -H "Authorization: Bearer $KEY"
curl "$BASE/v1/patients/$PID/timeline?from=2026-06-01" -H "Authorization: Bearer $KEY"   # everything, chronologically

Când aveți nevoie de modelul FHIR complet, aceleași date sunt disponibile la /fhir/R4 cu aceleași ID-uri (API FHIR R4).

6. Conectați laboratoarele și dispozitivele

7. Accesarea unui record pe care pacientul îl deține deja (OAuth)

Dacă persoana deține deja un record în Anpheros (de exemplu, prin Anpheros Daily), aplicația dvs. poate solicita acces în loc să creeze un pacient nou: înregistrați o aplicație, trimiteți persoana la pagina de consimțământ cu scope-urile de care aveți nevoie, schimbați codul pentru token-uri și apelați API-ul cu acces token-ul. Pacientul alege durata și poate revoca accesul în orice moment. Detalii: Autentificare și OAuth.

8. Reacționați la modificări cu webhooks

curl -X POST $BASE/v1/webhooks -H "Authorization: Bearer $KEY" -H 'content-type: application/json' \
     -d '{"url": "https://your.app/anpheros/hook", "events": ["resource.created", "consent.revoked"]}'

Verificați antetul Anpheros-Signature al fiecărei livrări (Webhooks).

9. Utilizați un SDK

Același flux în TypeScript:

import { Anpheros, apiKey } from '@anpheros/sdk';

const anpheros = new Anpheros({ auth: apiKey(process.env.ANPHEROS_KEY!) });
const { data: patients } = await anpheros.patients.list();
const vitals = await anpheros.observations.list(patients[0].id, { category: 'vital-signs', limit: 20 });

Un client Dart / Flutter cu aceeași structură este disponibil ca anpheros_sdk (SDKs).

Înainte de a trece în producție

Resurse Suplimentare

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