Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
Backend και βάση δεδομένων ιατρικής εφαρμογής
Τι πρέπει να χειρίζεται ένα backend ιατρικής εφαρμογής και η βάση δεδομένων του, ποια μέρη παρέχει το Anpheros ως διαχειριζόμενη βάση δεδομένων υγειονομικής περίθαλψης, τι παραμένει στο δικό σας backend, τρεις τρόποι σύνδεσης και πώς να παραμένετε συγχρονισμένοι με webhooks.
Το backend ιατρικής εφαρμογής είναι η πλευρά του διακομιστή (server-side) μιας εφαρμογής υγειονομικής περίθαλψης: αποθηκεύει δεδομένα ασθενών, επιβάλλει ποιος μπορεί να τα δει, διατηρεί ιστορικό αλλαγών και επικοινωνεί με εργαστήρια, κλινικές και άλλες υπηρεσίες. Με την Anpheros, το ιατρικό μέρος αυτού του backend — η βάση δεδομένων υγειονομικής περίθαλψης που περιέχει το αρχείο κάθε ασθενούς, με το ιστορικό του, τη συγκατάθεση, την προέλευση, τον έλεγχο, την εισαγωγή εργαστηριακών αποτελεσμάτων και τα συμβάντα — παρέχεται από την πλατφόρμα μέσω ενός API, και το δικό σας backend διατηρεί μόνο ό,τι είναι συγκεκριμένο για το προϊόν σας.
Τι πρέπει να διαχειρίζεται ένα ιατρικό backend
| Ευθύνη | Γιατί είναι δύσκολο στην υγειονομική περίθαλψη | Με το Anpheros |
|---|---|---|
| Ένα ιατρικό μοντέλο δεδομένων | δεκάδες είδη δεδομένων, το καθένα με τυποποιημένους κωδικούς | HL7 FHIR R4, 26 τύποι πόρων, LOINC / ICD-10 / ATC / UCUM |
| Διαχείριση εκδόσεων | τα ιατρικά δεδομένα διορθώνονται, ποτέ δεν αντικαθίστανται σιωπηλά | κάθε ενημέρωση είναι μια νέα έκδοση· If-Match για υπό όρους ενημερώσεις |
| Έγγραφα | τα πρωτότυπα πρέπει να παραμένουν αμετάβλητα και ανιχνεύσιμα | αμετάβλητα πρωτότυπα με SHA-256, αποθήκευση στην ΕΕ κρυπτογραφημένη με κλειδί που διαχειρίζεται ο πελάτης |
| Έλεγχος πρόσβασης | ανά ασθενή, ανά εφαρμογή, ανά τύπο δεδομένων | απομόνωση έργου, pairwise ids, OAuth scopes με φίλτρα κατηγοριών |
| Συγκατάθεση | ο ασθενής αποφασίζει και μπορεί να αλλάξει γνώμη | χορηγήσεις για 30–365 ημέρες, ανακλητές, κατοπτρισμένες ως FHIR Consent |
| Έλεγχος | ασθενείς και ρυθμιστικές αρχές ρωτούν ποιος είδε τι | κάθε ανάγνωση και εγγραφή καταγράφεται και είναι ορατή στον ασθενή |
| Προέλευση | μια τιμή από ένα εργαστήριο δεν είναι μια τιμή που πληκτρολογήθηκε από έναν ασθενή | τύπος συγγραφέα, οργανισμός, επαγγελματίας υγείας και σύστημα πηγής σε κάθε εγγραφή |
| Ενσωματώσεις | τα εργαστήρια στέλνουν CSV, HL7 v2, JSON· οι εφαρμογές χρειάζονται συμβάντα | εισαγωγή εργαστηρίου, συναλλαγές FHIR, υπογεγραμμένα webhooks |
| Ασφαλείς επαναλήψεις | μια διπλή φαρμακευτική αγωγή ή αποτέλεσμα είναι κλινικό σφάλμα | Idempotency-Key σε κάθε δημιουργία |
| Δεδομένα δοκιμών | πραγματικοί ασθενείς δεν πρέπει ποτέ να βρίσκονται στην ανάπτυξη | μια βάση δεδομένων sandbox με συνθετικούς ασθενείς |
Τι παραμένει στο backend σας
- οι χρήστες και οι λογαριασμοί σας, και η αντιστοίχιση από κάθε χρήστη στο αναγνωριστικό ασθενούς Anpheros (το αναγνωριστικό ζεύγους που βλέπει το έργο σας).
- δεδομένα προϊόντος που δεν είναι ιατρικά: ρυθμίσεις, συνδρομές, περιεχόμενο, προγράμματα υπενθυμίσεων.
- επιχειρησιακοί κανόνες — ποιο από το προσωπικό σας μπορεί να δει ποιον ασθενή στο προϊόν σας.
- το API key, το οποίο δεν πρέπει ποτέ να συμπεριληφθεί σε μια εφαρμογή για κινητά ή web.
Τρεις τρόποι σύνδεσης
1. Το backend σας κατέχει το API key (πιο συνηθισμένο). Η εφαρμογή σας καλεί το backend σας. Το backend σας καλεί το Anpheros με ένα sk_live_ κλειδί και βλέπει τους ασθενείς που δημιούργησε το έργο σας.
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. Η εφαρμογή ενεργεί για τον ασθενή με OAuth. Για άτομα που έχουν ήδη εγγραφή στο Anpheros, μια εφαρμογή κινητού ή web είναι ένας δημόσιος OAuth client με PKCE: το άτομο συναινεί στην φιλοξενούμενη σελίδα και η εφαρμογή λαμβάνει ένα access token 30 λεπτών και ένα περιστρεφόμενο refresh token για αυτήν τη μία εγγραφή. Τα SDK υλοποιούν τη ροή (OAuthFlow).
3. Συνεργάτες server-to-server. Ένας εμπιστευτικός client (με μυστικό, που διατηρείται σε έναν server) μπορεί να χρησιμοποιήσει τη ροή authorization-code, ή client_credentials, η οποία συμπεριφέρεται σαν API key για αυτό το έργο.
Διατήρηση του backend σας σε συγχρονισμό
Εγγραφείτε σε webhooks αντί για polling. Οι παραδόσεις είναι υπογεγραμμένες (Anpheros-Signature, HMAC-SHA256 πάνω σε timestamp και body), τουλάχιστον μία φορά (at-least-once) και πιθανώς εκτός σειράς. Κάντε deduplication με βάση το event id και αγνοήστε παλιές εκδόσεις.
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();
});
Διαχείριση σφαλμάτων και ορίων
- Αντιμετωπίστε το
404ως "μη ορατό σε εσάς", ποτέ ως απόδειξη ότι μια εγγραφή δεν υπάρχει. - Το
403σημαίνει ότι τα διαπιστευτήρια υπάρχουν, αλλά ενδέχεται να μην επιτρέπουν αυτήν την ενέργεια — μια ελλιπής εμβέλεια (scope) ή ένας πόρος που γράφτηκε από άλλο οργανισμό. - Το
429συνοδεύεται από τοRetry-After· τα SDKs περιμένουν και επαναλαμβάνουν αυτόματα, όπως κάνουν και για το5xx. - Διατηρήστε τα
Anpheros-Request-Idτων αποτυχημένων κλήσεων για υποστήριξη.
Σφάλματα · Όρια και όρια ρυθμού (rate limits)
Συχνές ερωτήσεις
Ποια βάση δεδομένων πρέπει να χρησιμοποιεί μια ιατρική εφαρμογή;
Μια που διατηρεί ιατρικά δεδομένα σε τυποποιημένη, εκδοτική μορφή και ελέγχει την πρόσβαση ανά ασθενή. Το Anpheros είναι μια διαχειριζόμενη βάση δεδομένων υγειονομικής περίθαλψης, χτισμένη πάνω στο HL7 FHIR R4: η εγγραφή κάθε ασθενούς έχει εκδοτική μορφή και είναι αναζητήσιμη, κάθε εγγραφή φέρει προέλευση, και μια εφαρμογή βλέπει έναν ασθενή μόνο αν δημιούργησε την εγγραφή ή αν ο ασθενής συναίνεσε. Η δική σας βάση δεδομένων διατηρεί τα υπόλοιπα δεδομένα του προϊόντος σας — λογαριασμούς, χρεώσεις, περιεχόμενο. Για τις ανταλλαγές σχεδιασμού των δικών σας πινάκων αντί αυτού, δείτε FHIR vs. μια προσαρμοσμένη ιατρική βάση δεδομένων.
Υπάρχει δωρεάν βάση δεδομένων για ιατρικές εφαρμογές;
Ναι. Το sandbox του Anpheros είναι δωρεάν: συνδεθείτε με το Google, αποκτήστε ένα κλειδί με ένα κλικ, και το έργο σας αποκτά τους δικούς του 30 συνθετικούς ασθενείς και έως 10 000 εγγραφές την ημέρα. Η παραγωγή ξεκινά από €99 το μήνα για 2.500 ασθενείς, με τον πρώτο μήνα δωρεάν· η πρόσβαση στην παραγωγή είναι για επαληθευμένους οργανισμούς με υπογεγραμμένη συμφωνία επεξεργασίας δεδομένων. Δείτε Τιμολόγηση.
Μπορώ να διατηρήσω πραγματικά δεδομένα ασθενών στο δωρεάν sandbox;
Όχι. Το sandbox είναι μόνο για συνθετικά δεδομένα: κάθε έργο sandbox αποκτά τους δικούς του συνθετικούς ασθενείς, και τα κλειδιά του sandbox δεν μπορούν να φτάσουν στην παραγωγή. Οι πραγματικές εγγραφές ασθενών ανήκουν σε ένα έργο παραγωγής.
Σχετικά
- FHIR vs. προσαρμοσμένη ιατρική βάση δεδομένων: πότε να σχεδιάσετε τους δικούς σας πίνακες και πότε να χρησιμοποιήσετε το FHIR
- Πώς να δημιουργήσετε ένα API υγειονομικής περίθαλψης με TypeScript: οδηγός βήμα προς βήμα με το Express
- Πώς να δημιουργήσετε μια εφαρμογή υγειονομικής περίθαλψης με Flutter: οδηγός βήμα προς βήμα με το Dart SDK
- Ανάπτυξη λογισμικού υγειονομικής περίθαλψης
- Δημιουργία εφαρμογής υγειονομικής περίθαλψης
- Αρχιτεκτονική
- API ιατρικών δεδομένων
- SDKs
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card