# API Υγείας με συναίνεση ασθενούς

> Πώς η πρόσβαση σε ένα αρχείο χορηγείται από τον ασθενή μέσω των πεδίων OAuth 2.1 και των διάρκειων, καταγράφεται και μπορεί να ανακληθεί, τι αλλαγές επιφέρει στον σχεδιασμό μιας εφαρμογής και πώς τα pairwise ids διαχωρίζουν τις εφαρμογές.

Source: https://developers.anpheros.com/el/guides/healthcare-api-patient-consent

**Μια API υγείας με συναίνεση ασθενούς είναι αυτή όπου η πρόσβαση σε ένα αρχείο χορηγείται από τον ασθενή, για έναν σκοπό, για ένα χρονικό διάστημα, και μπορεί να προβληθεί και να ανακληθεί από τον ασθενή, αντί να αποφασίζεται μία φορά από τον οργανισμό που κατέχει τα δεδομένα.** Στο Anpheros, η συναίνεση δεν είναι ένα πεδίο που ορίζετε· είναι ο μηχανισμός μέσω του οποίου μια εφαρμογή αποκτά πρόσβαση σε ένα αρχείο. Αυτός ο οδηγός εξηγεί πώς λειτουργεί για έναν προγραμματιστή και τι αλλαγές επιφέρει στον σχεδιασμό μιας εφαρμογής.

## Δύο τρόποι πρόσβασης σε ένα αρχείο

| | Πρόσβαση από Οργανισμό | Πρόσβαση χορηγημένη από Ασθενή |
|---|---|---|
| Ποιος εξουσιοδοτεί | ο οργανισμός σας, μέσω ενός κλειδιού API | ο ασθενής, μέσω μιας οθόνης συναίνεσης OAuth 2.1 |
| Τυπική χρήση | κλινική ή εργαστήριο που καταγράφει αποτελέσματα, η δική σας εφαρμογή που γράφει εκ μέρους των χρηστών της | εφαρμογή τρίτου κατασκευαστή, βοηθός AI, εργαλείο γιατρού, μέλος της οικογένειας |
| Εμβέλεια | οι ασθενείς που δημιούργησε ο οργανισμός σας ή που του κοινοποιήθηκαν | οι εμβέλειες που αποδέχθηκε ο ασθενής (`patient/Observation.read`, …) |
| Διάρκεια | όσο το κλειδί είναι έγκυρο | η διάρκεια που επέλεξε ο ασθενής· ανανεώσιμη, ανακλητή |
| Ορατό στον ασθενή | ναι, στο αρχείο καταγραφής πρόσβασης | ναι, με τη δυνατότητα ανάκλησης |

Και οι δύο διαδρομές περνούν από το ίδιο API και το ίδιο αρχείο FHIR. Η διαφορά είναι ποιος κατέχει το κλειδί της πόρτας.

## Η ροή συναίνεσης, βήμα προς βήμα

1. Η εφαρμογή σας στέλνει τον ασθενή στο τελικό σημείο εξουσιοδότησης του Anpheros με τα πεδία (scopes) που χρειάζεται και έναν λόγο σε απλή γλώσσα.
2. Ο ασθενής βλέπει τι ζητάτε, επιλέγει μια διάρκεια και αποδέχεται ή απορρίπτει. Η οθόνη είναι στη γλώσσα του ασθενούς.
3. Λαμβάνετε ένα access token περιορισμένο σε αυτά τα πεδία (scopes) και σε αυτόν τον ασθενή. Τα tokens έχουν μικρή διάρκεια ζωής· τα refresh tokens διαρκούν όσο και η συναίνεση.
4. Κάθε ανάγνωση και εγγραφή με αυτό το token καταγράφεται με το όνομα της εφαρμογής σας. Ο ασθενής βλέπει το αρχείο καταγραφής στην εφαρμογή του.
5. Εάν ο ασθενής αποσύρει τη συναίνεση, το επόμενο αίτημα αποτυγχάνει με ένα σαφές σφάλμα. Λαμβάνετε ένα webhook ώστε να μπορείτε να κάνετε εκκαθάριση.

Η ροή είναι τυπική OAuth 2.1 με PKCE και SMART on FHIR scopes, οπότε οι υπάρχουσες βιβλιοθήκες λειτουργούν. Ο οδηγός [Authentication and OAuth](https://developers.anpheros.com/el/guides/authentication) έχει τις ακριβείς παραμέτρους και το [Consent and access model](https://developers.anpheros.com/el/guides/consent) τους κανόνες πίσω από αυτό.

## Τι αλλάζει στην εφαρμογή σας

- **Ζητάτε λιγότερα.** Τα scopes είναι ανά τύπο πόρου και ανά κατεύθυνση. Μια εφαρμογή που καταγράφει το βάρος ζητάει `Observation.read`, όχι ολόκληρο το αρχείο.
- **Σχεδιάζετε για ανάκληση.** Η πρόσβαση μπορεί να τερματιστεί ανά πάσα στιγμή. Κάντε cache λίγα δεδομένα, ξαναδιαβάστε όταν χρειάζεται και χειριστείτε το σφάλμα ανάκλησης ως μια κανονική κατάσταση.
- **Κερδίζετε εμπιστοσύνη δωρεάν.** Οι ασθενείς βλέπουν το όνομα της εφαρμογής σας, τι μπορεί να προσπελάσει και πότε διάβασε κάτι τελευταία φορά. Οι εφαρμογές που συμπεριφέρονται σωστά είναι ευκολότερο να γίνουν αποδεκτές.
- **Γράφετε με προέλευση (provenance).** Ό,τι γράφετε φέρει την εφαρμογή σας ως συγγραφέα και, όταν είναι σχετικό, το άτομο για λογαριασμό του οποίου γράφτηκε. Ο ασθενής και άλλες εφαρμογές μπορούν να διακρίνουν τα δεδομένα σας από τα δικά τους.

## Αναγνωριστικά που δεν αποκαλύπτουν

Κάθε εφαρμογή βλέπει έναν ασθενή κάτω από ένα αναγνωριστικό ανά ζεύγος: το ίδιο άτομο έχει διαφορετικό αναγνωριστικό στην εφαρμογή σας και σε μια άλλη. Δύο εφαρμογές δεν μπορούν να συνδυάσουν τα δεδομένα τους για ένα άτομο χωρίς τη συγκατάθεση του ασθενούς, ακόμη και αν και οι δύο βασίζονται στο Anpheros. Για τον κώδικά σας αυτό είναι αόρατο· για τον ασθενή είναι η διαφορά μεταξύ συγκατάθεσης και τυπικότητας.

## Οικογένειες και Φροντιστές

Η συναίνεση επεκτείνεται σε άτομα που διαχειρίζονται αρχεία για άλλους: ένας γονέας για ένα παιδί, ένα ενήλικο παιδί για έναν ηλικιωμένο γονέα. Το αρχείο παραμένει στον λογαριασμό που το δημιούργησε· άλλοι λογαριασμοί λαμβάνουν πρόσβαση, η οποία μπορεί να ανακληθεί. Η εφαρμογή σας βλέπει τον ίδιο μηχανισμό συναίνεσης, με τον φροντιστή ως το άτομο που αποδέχεται.

## Σχετικά

- [Μοντέλο συναίνεσης και πρόσβασης](https://developers.anpheros.com/el/guides/consent)
- [Έλεγχος ταυτότητας και OAuth](https://developers.anpheros.com/el/guides/authentication)
- [Backend SMART on FHIR](https://developers.anpheros.com/el/guides/smart-on-fhir-backend)
- [API Υγείας](https://developers.anpheros.com/el/guides/healthcare-api)
- [Ασφάλεια, ιδιωτικότητα και τοποθεσία δεδομένων](https://developers.anpheros.com/el/guides/security)
