# Tıbbi uygulama arka ucu ve veritabanı

> Bir tıbbi uygulama arka ucunun ve veritabanının neleri işlemesi gerektiği, Anpheros'un yönetilen bir sağlık veritabanı olarak hangi kısımları sağladığı, arka ucunuzda nelerin kaldığı, bağlanmanın üç yolu ve webhook'larla nasıl senkronize kalınacağı.

Source: https://developers.anpheros.com/tr/guides/medical-app-backend

**Tıbbi uygulama arka ucu, bir sağlık uygulamasının sunucu tarafıdır: hasta verilerini depolar, kimlerin görebileceğini zorlar, değişikliklerin geçmişini tutar ve laboratuvarlar, klinikler ve diğer hizmetlerle konuşur.** Anpheros ile, bu arka ucun tıbbi kısmı — her hastanın kaydını, geçmişini, onayını, kaynağını, denetimini, laboratuvar ithalatını ve olaylarını tutan sağlık veritabanı — platform tarafından bir API aracılığıyla sağlanır ve kendi arka ucunuz yalnızca ürününüze özgü olanları tutar.

## Bir tıbbi arka uç nelerin üstesinden gelmeli

| Sorumluluk | Sağlık hizmetlerinde neden zor | Anpheros ile |
|---|---|---|
| Tıbbi veri modeli | düzinelerce veri türü, her biri standart kodlarla | HL7 FHIR R4, 26 kaynak türü, LOINC / ICD-10 / ATC / UCUM |
| Sürümleme | tıbbi veriler düzeltilir, asla sessizce üzerine yazılmaz | her güncelleme yeni bir sürümdür; koşullu güncellemeler için `If-Match` |
| Belgeler | orijinaller değişmeden ve izlenebilir kalmalı | SHA-256 ile değişmez orijinaller, müşteri tarafından yönetilen bir anahtarla şifrelenmiş AB depolaması |
| Erişim kontrolü | hasta başına, uygulama başına, veri türü başına | proje izolasyonu, ikili kimlikler, kategori filtreli OAuth kapsamları |
| Onay | hasta karar verir ve fikrini değiştirebilir | 30-365 gün için izinler, geri alınabilir, FHIR `Consent` olarak yansıtılır |
| Denetim | hastalar ve düzenleyiciler kimin neyi gördüğünü sorar | her okuma ve yazma kaydedilir ve hastanın görebileceği şekilde görünür |
| Köken | laboratuvardan gelen bir değer, hasta tarafından girilen bir değer değildir | her yazmada yazar türü, kuruluş, uygulayıcı ve kaynak sistem |
| Entegrasyonlar | laboratuvarlar CSV, HL7 v2, JSON gönderir; uygulamalar olaylara ihtiyaç duyar | laboratuvar içe aktarma, FHIR işlemleri, imzalı webhook'lar |
| Güvenli yeniden denemeler | yinelenen bir ilaç veya sonuç klinik bir hatadır | her oluşturmada `Idempotency-Key` |
| Test verileri | gerçek hastalar asla geliştirme aşamasında olmamalıdır | sentetik hastalarla bir sandbox veritabanı |

## Arka Uçta Neler Kalır

- **kullanıcılarınız ve hesaplarınız** ve her kullanıcının Anpheros hasta kimliğine (projenizin gördüğü ikili kimlik) eşlenmesi;
- tıbbi olmayan **ürün verileri**: ayarlar, abonelikler, içerik, hatırlatıcı programları;
- **iş kuralları** — personelinizin ürününüzdeki hangi hastayı görebileceği;
- **API anahtarı**, bu asla bir mobil veya web uygulamasına gönderilmemelidir.

## Bağlanmanın Üç Yolu

**1. API anahtarınız arka uç sunucunuzda bulunur (en yaygın yöntem).** Uygulamanız arka uç sunucunuzu çağırır; arka uç sunucunuz, `sk_live_` anahtarıyla Anpheros'u çağırır ve projenizin oluşturduğu hastaları görür.

```ts
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. Uygulama, hasta adına OAuth ile hareket eder.** Zaten bir Anpheros kaydı olan kişiler için mobil veya web uygulaması, PKCE ile *genel* bir OAuth istemcisidir: kişi barındırılan sayfada onay verir ve uygulama o tek kayıt için 30 dakikalık bir erişim belirteci ve dönen bir yenileme belirteci alır. SDK'lar bu akışı uygular (`OAuthFlow`).

**3. Sunucudan sunucuya ortaklıklar.** Gizli bir istemci (sunucuda tutulan bir sır ile) yetkilendirme kodu akışını veya proje için API anahtarı gibi davranan `client_credentials`'i kullanabilir.

## Arka Uçunuzu Senkronize Tutma

Sorgulama (polling) yerine webhook'lara abone olun. Teslimatlar imzalıdır (`Anpheros-Signature`, zaman damgası ve gövde üzerinde HMAC-SHA256), en az bir kez ve olası olarak sırası bozuk şekilde gelir; olay kimliğine göre yinelenenleri kaldırın ve eski sürümleri yoksayın.

```ts
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();
});
```

## Hataları ve Sınırları Yönetme

- `404`'u, bir kaydın mevcut olmadığının kanıtı olarak değil, "size görünür değil" olarak ele alın.
- `403`, kimlik bilgilerinin mevcut olduğu ancak bu işlemi yapamayabileceği anlamına gelir — eksik bir kapsam veya başka bir kuruluş tarafından yazılmış bir kaynak.
- `429`, `Retry-After` ile birlikte gelir; SDK'lar, `5xx` için yaptıkları gibi otomatik olarak bekler ve yeniden dener.
- Destek için başarısız olan çağrıların `Anpheros-Request-Id`'ini saklayın.

[Hatalar](https://developers.anpheros.com/tr/guides/errors) · [Sınırlar ve hız sınırları](https://developers.anpheros.com/tr/guides/limits)

## Sıkça Sorulan Sorular

### Tıbbi bir uygulama hangi veritabanını kullanmalı?
Tıbbi verileri standart, sürümlenmiş bir biçimde tutan ve hasta başına erişimi kontrol eden bir veritabanı. Anpheros, HL7 FHIR R4 üzerine kurulu yönetilen bir sağlık veritabanıdır: her hastanın kaydı sürümlenmiş ve aranabilir, her yazma işlemi köken bilgisi taşır ve bir uygulama, yalnızca kaydı oluşturduysa veya hasta onay verdiyse bir hastayı görür. Ürününüzün geri kalan verilerini (hesaplar, faturalandırma, içerik) kendi veritabanınızda saklayın. Kendi tablolarınızı tasarlamanın getireceği ödünleşimler için [FHIR'a Karşı Özel Bir Tıbbi Veritabanı](https://developers.anpheros.com/tr/guides/fhir-vs-custom-database) bölümüne bakın.

### Tıbbi uygulamalar için ücretsiz bir veritabanı var mı?
Evet. Anpheros sandbox'ı ücretsizdir: Google ile oturum açın, tek tıklamayla bir anahtar alın ve projeniz kendi 30 sentetik hastasına ve günde 10.000'e kadar yazma hakkına sahip olur. Üretim, ayda 99 €'dan başlayan fiyatlarla 2.500 hasta için başlar, ilk ay ücretsizdir; üretim erişimi, imzalanmış bir veri işleme sözleşmesi olan doğrulanmış kuruluşlar içindir. [Fiyatlandırma](https://developers.anpheros.com/tr/guides/pricing) bölümüne bakın.

### Ücretsiz sandbox'ta gerçek hasta verilerini saklayabilir miyim?
Hayır. Sandbox yalnızca sentetik veriler içindir: her sandbox projesi kendi sentetik hastalarına sahip olur ve sandbox anahtarları üretime erişemez. Gerçek hasta kayıtları bir üretim projesine aittir.

## İlgili Kaynaklar

- [FHIR ve özel bir tıbbi veritabanı arasındaki farklar](https://developers.anpheros.com/tr/guides/fhir-vs-custom-database): Kendi tablolarınızı ne zaman tasarlamalısınız ve FHIR'ı ne zaman kullanmalısınız?
- [TypeScript ile bir sağlık API'si nasıl oluşturulur](https://developers.anpheros.com/tr/guides/healthcare-api-typescript): Express ile adım adım öğretici
- [Flutter ile bir sağlık uygulaması nasıl oluşturulur](https://developers.anpheros.com/tr/guides/healthcare-app-flutter): Dart SDK ile adım adım öğretici
- [Sağlık yazılımı geliştirme](https://developers.anpheros.com/tr/guides/healthcare-software)
- [Bir sağlık uygulaması oluşturun](https://developers.anpheros.com/tr/guides/build-a-healthcare-app)
- [Mimari](https://developers.anpheros.com/tr/guides/architecture)
- [Tıbbi veri API'si](https://developers.anpheros.com/tr/guides/medical-data-api)
- [SDK'lar](https://developers.anpheros.com/tr/guides/sdks)
