# Sağlık uygulamaları için hasta onay platformu

> Veri katmanına yerleştirilmiş onay: Kişinin seçtiği OAuth 2.1 ve SMART kapsamları, amaç ve geçerlilik süresi, görebileceği bir erişim günlüğü, bir sonraki istekte geri alma ve uygulamanızın hala sahip olduğu şeyler.

Source: https://developers.anpheros.com/tr/guides/patient-consent-platform

**Hasta onay platformu, bir kişinin hangi uygulamaların sağlık kayıtlarını hangi amaçla ve ne kadar süreyle okuyabileceğine veya değiştirebileceğine karar vermesini sağlar ve bu erişimi istedikleri zaman görmelerine ve geri almalarına olanak tanır.** Anpheros, onayı veri katmanına yerleştirir: bir uygulama, yalnızca kişinin Anpheros onay sayfasında onayladığı bir izin aracılığıyla hastanın FHIR R4 kaydına ulaşır, bu izin altındaki her okuma ve yazma işlemi kişinin görebileceği bir yerde günlüğe kaydedilir ve geri alma bir sonraki istekte yürürlüğe girer. Bu sayfa, bunun nasıl çalıştığını, uygulamanızın ne yapması gerektiğini ve neyi oluşturması gerekmediğini gösterir.

<!-- visual:consent-flow -->

## Neden rıza veri katmanında yer almalı?

Çoğu sağlık uygulaması, rızayı kendi veritabanlarında bir onay kutusu olarak kaydeder ve ardından uygulama kodunda uygular. Bu, ikinci bir uygulama, bir klinik entegrasyonu veya bir yapay zeka özelliği aynı veriye ihtiyaç duyana kadar işe yarar: her biri kuralları yeniden uygulamak zorunda kalır ve kişi kimin erişimi olduğunu görebileceği tek bir yere sahip olmaz. Kaydı depolayan platform aynı zamanda rızayı uyguladığında, her istemci aynı kuralları alır ve kişi gözden geçirebileceği tek bir uygulama listesine sahip olur.

| | Uygulamanızda bir bayrak olarak rıza | Veri katmanında rıza (Anpheros) |
|---|---|---|
| Nerede uygulanır | Her uygulamanın kodunda | Her API isteğinde, platform tarafından |
| Erişim kapsamı | Uygulamanın okumaya karar verdiği her şey | Yalnızca verilen kaynak türleri ve kategorileri |
| Süre sonu | Nadiren uygulanır | Kişi tarafından seçilir: 30, 90, 180 veya 365 gün |
| Kişinin gördükleri | Uygulamaya bağlı | Her uygulama, kapsamları ve süresi dolanlar ve bir erişim günlüğü |
| Geri alma | Elle yayılmalı | Bir sonraki istek başarısız olur; yenileme belirteci çalışmayı durdurur |

## Hastanın Kontrol Ettiği Şeyler

<!-- visual:consent-controls -->

## Uygulamanızın onay isteme şekli

Anpheros, PKCE ile OAuth 2.1 ve SMART on FHIR v2 kapsamlarını kullanır. Uygulamanız, ihtiyaç duyduğu kapsamları ve isteğe bağlı bir amacı belirterek kişiyi onay sayfasına gönderir; onaydan sonra tam olarak bir hasta için bir erişim belirteci (30 dakika) ve dönen bir yenileme belirteci (30 gün) alır.

```ts
import { OAuthFlow, generatePkce } from '@anpheros/sdk';

const flow = new OAuthFlow({
  baseUrl: 'https://platform.anpheros.com',
  clientId: process.env.ANPHEROS_CLIENT_ID!,
  redirectUri: 'https://your.app/callback',
});
const pkce = await generatePkce();
const url = flow.authorizeUrl({
  scopes: ['patient/Observation.rs?category=laboratory', 'patient/Condition.rs', 'offline_access'],
  purpose: 'treatment',
  state: crypto.randomUUID(),
  pkce,
  lang: 'en',
});
// redirect the person to `url`; on the callback exchange the code (see the authentication guide)
```

`patient/Observation.rs?category=laboratory` gibi bir kapsam, okumayı laboratuvar sonuçlarıyla sınırlar; kategori filtresi sunucu tarafından zorlanır. İzin dışı bir kaynak türü `403` döndürür; izin dışı bir hasta `404` döndürür, bu nedenle kimlikler sorgulanamaz.

## Geri Almaya Tepki Verme

Kişi bir yetkiyi sonlandırdığında, o belirteçle yapılan sonraki istek başarısız olur ve yenileme belirteci erişimi geri getiremez. Hemen temizlemek için, `consent.revoked` webhook'una abone olun; bu webhook, `grant_id`, gördüğünüz hasta kimliği, kapsamlar ve `revoked_at` bilgilerini taşır.

```ts
await anpheros.webhooks.create('https://your.app/anpheros/hook', { events: ['consent.granted', 'consent.revoked'] });
```

## Anpheros Neler Yapmaz

- Pazarlama veya araştırma katılımı gibi veri erişimi dışındaki amaçlar için onay toplamaz.
- Yasal dayanağınıza siz karar verirsiniz. Veri erişimi için onay bir kontrol mekanizmasıdır; gizlilik bildiriminiz, sözleşmeleriniz ve işleme kayıtlarınız size aittir.
- Bir projenin kendi API anahtarı, izin olmadan projenin oluşturduğu hastaları görür. Onay, diğer uygulamalar tarafından erişimi yönetir.

## Sıkça Sorulan Sorular

### Hasta onay platformu nedir?
Bir kişinin sağlık verilerine erişmesine hangi uygulamaların izin verdiğini kaydeden, bu seçimleri her istekte uygulayan, kişiye kimin neye eriştiğini gösteren ve erişimi geri çekmesine olanak tanıyan yazılımdır. Anpheros'ta onay, ayrı bir hizmet yerine FHIR R4 kaydının kendisinin bir parçasıdır.

### Anpheros hasta onayı için hangi standartları kullanır?
Yetkilendirme akışı için PKCE ile OAuth 2.1 ve bir uygulamanın okuyabileceği veya yazabileceği şeyler için SMART on FHIR v2 hasta kapsamları (isteğe bağlı bir `?category=` filtreli `patient/<Type>.<cruds>`). OpenID Connect, `openid fhirUser` istediğinizde bir kimlik belirteci ekler.

### Bir hasta yalnızca verilerinin bir kısmına erişimi sınırlayabilir mi?
Evet. Erişim, verilen kapsamlardaki kaynak türleri ve kategorileriyle sınırlıdır, örneğin yalnızca laboratuvar Gözlemleri. Diğer her şey bir hata döndürür.

### Onay ne kadar sürer?
Kişi onay sayfasında 30, 90, 180 veya 365 gün seçer. Sonrasında izin süresi dolar ve uygulama tekrar sormalıdır.

### Hasta bir uygulamanın erişimle ne yaptığını görebilir mi?
Evet. Kişi, erişimi olan her uygulamayı, kapsamlarını ve süresinin dolmasını ve her uygulamanın ne okuduğunu veya yazdığını listeleyen bir erişim günlüğünü görür.

### Onay geri alındığında ne olur?
Bu erişim belirteciyle yapılan bir sonraki istek başarısız olur, yenileme belirteci yenisini almak için kullanılamaz ve sunucunuz abone olduysa bir `consent.revoked` webhook'u alır.

<!-- visual:cta-consent -->

## İlgili Konular

- [Onay ve erişim modeli](https://developers.anpheros.com/tr/guides/consent): kuralların tamamı
- [Kimlik Doğrulama ve OAuth](https://developers.anpheros.com/tr/guides/authentication): jetonlar, kapsamlar ve kod değişimi
- [SMART on FHIR ile hasta onayının nasıl uygulanacağı](https://developers.anpheros.com/tr/guides/smart-on-fhir-backend)
- [Webhook'lar](https://developers.anpheros.com/tr/guides/webhooks): `consent.granted` ve `consent.revoked`
- [Tıbbi veri kökenbilimi (provenance) açıklandı](https://developers.anpheros.com/tr/guides/medical-data-provenance)
- [Boylamsal hasta verileri API'si](https://developers.anpheros.com/tr/guides/longitudinal-patient-data-api)
