AnpherosAnpheros PlatformDevelopers

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

Εφαρμογή προσωπικού αρχείου υγείας (PHR) με FHIR

Οδηγός: το backend ενός συνδεδεμένου PHR σε FHIR R4 — δεδομένα από άτομα, εργαστήρια, έγγραφα και συσκευές, χρονοδιάγραμμα, ένα IPS για κοινή χρήση, συναίνεση. Δοκιμασμένος κώδικας.

Μια εφαρμογή προσωπικού ιατρικού φακέλου υγείας (PHR) διατηρεί τις πληροφορίες υγείας ενός ατόμου — αποτελέσματα, μετρήσεις, διαγνώσεις, φάρμακα, έγγραφα — σε έναν φάκελο που ελέγχει το άτομο, συγκεντρωμένα από πολλές πηγές αντί από ένα νοσοκομείο. Τα δύσκολα σημεία δεν είναι οι οθόνες: είναι η εισαγωγή δεδομένων από εργαστήρια, κλινικές και συσκευές σε χρησιμοποιήσιμη μορφή, η παρακολούθηση της προέλευσης κάθε στοιχείου και η δυνατότητα στο άτομο να μοιράζεται τον φάκελο χωρίς να χάνει τον έλεγχο. Αυτός ο οδηγός κατασκευάζει το backend μιας εφαρμογής PHR στο HL7 FHIR R4 με το Anpheros TypeScript SDK. Ο παρακάτω κώδικας εκτελέστηκε σε μια τοπική παρουσία της πλατφόρμας με ένα κλειδί sandbox.

Συνδεδεμένα, μη συνδεδεμένα και συνδεδεμένα ΗΠΣ

Τύπος Πού ζουν τα δεδομένα Περιορισμός
Συνδεδεμένο (η πύλη ασθενούς ενός νοσοκομείου) Το EHR του παρόχου Εμφανίζει μόνο τα δεδομένα αυτού του παρόχου· αλλάζει όταν το άτομο αλλάζει γιατρούς
Μη συνδεδεμένο (μια αυτόνομη εφαρμογή ή σημειωματάριο) Η δική του βάση δεδομένων της εφαρμογής Το άτομο πληκτρολογεί τα πάντα· τα δεδομένα σπάνια φεύγουν από την εφαρμογή
Συνδεδεμένο Ένα τυπικό αρχείο που οι εφαρμογές, τα εργαστήρια και οι κλινικές διαβάζουν και γράφουν με τη συγκατάθεση του ατόμου Απαιτεί πρότυπα, συγκατάθεση και προέλευση από κάτω

Ένα συνδεδεμένο ΗΠΣ είναι αυτό που αξίζει να δημιουργηθεί σήμερα. Είναι επίσης αυτό προς το οποίο κινείται η πολιτική: στις Ηνωμένες Πολιτείες, τα πιστοποιημένα EHR πρέπει να προσφέρουν στους ασθενείς πρόσβαση API βασισμένη σε FHIR στα δεδομένα τους (US Core), και στην Ευρωπαϊκή Ένωση ο Ευρωπαϊκός Χώρος Δεδομένων Υγείας δίνει στα άτομα το δικαίωμα πρόσβασης στα ηλεκτρονικά δεδομένα υγείας τους και να τα μοιράζονται με παρόχους της επιλογής τους, με σταδιακή εφαρμογή από το 2029.

Από πού προέρχονται τα δεδομένα ενός PHR

  1. Το άτομο: μετρήσεις στο σπίτι, συμπτώματα, φάρμακα που λαμβάνει, καταστάσεις που γνωρίζει. Σημειώστε τα ως αναφερόμενα από τον ασθενή.
  2. Εργαστηριακές αναφορές: οι περισσότεροι άνθρωποι λαμβάνουν PDF· ορισμένα εργαστήρια μπορούν να στείλουν HL7 v2 ή CSV. Κάθε αποτέλεσμα θα πρέπει να μετατρέπεται σε κωδικοποιημένη Παρατήρηση (Lab results API).
  3. Έγγραφα: επιστολές εξιτηρίου, αναφορές απεικονίσεων, συνταγές. Διατηρήστε το αρχικό αρχείο, αμετάβλητο, δίπλα στα δομημένα δεδομένα.
  4. Συσκευές και φορητές συσκευές: καθημερινά βήματα, καρδιακός ρυθμός, ύπνος, αρτηριακή πίεση από το Apple Health ή το Health Connect (wearable data in FHIR).
  5. Πάροχοι: στις ΗΠΑ, FHIR APIs πρόσβασης ασθενών νοσοκομείων και ασφαλιστών, προσβάσιμα με SMART on FHIR· αλλού, κυρίως έγγραφα και περιλήψεις όπως η Διεθνής Περίληψη Ασθενούς (International Patient Summary).

Κάθε πηγή γράφει στο ίδιο αρχείο. Αυτό που το καθιστά αξιόπιστο είναι ότι κάθε στοιχείο καταγράφει ποιος το έγραψε και από ποιο σύστημα (medical data provenance).

Η αρχιτεκτονική

 person ──► your PHR app (mobile / web) ──► your backend ──► Anpheros: one FHIR R4 record per person
                                               │                 ├─ Observations, Conditions, Medications, Documents…
   lab report, PDF, device data ───────────────┘                 ├─ Provenance on every write
                                                                 ├─ access log the person can see
   other apps, doctors, AI assistants ◄── consent (OAuth) ───────┴─ $summary (IPS) to share

Το backend σας διατηρεί το κλειδί του έργου (sk_test_… στο sandbox, ποτέ στην εφαρμογή). Η εφαρμογή σας συνδέει τους χρήστες με τη δική σας πιστοποίηση και επικοινωνεί με το backend σας. Το backend αντιστοιχίζει κάθε χρήστη με ένα αρχείο ασθενούς.

Βήμα προς βήμα

Εγκαταστήστε το SDK (npm install @anpheros/sdk) και λάβετε ένα δωρεάν κλειδί sandbox από τον πίνακα ελέγχου. Το δείγμα χρησιμοποιεί ένα HL7 v2 lipid panel με δύο αποτελέσματα (lipid-panel.hl7) και οποιοδήποτε PDF (report.pdf).

import { readFile } from 'node:fs/promises';
import { Anpheros, apiKey } from '@anpheros/sdk';

const anpheros = new Anpheros({ auth: apiKey(process.env.ANPHEROS_KEY!) });

// 1. One record per person who signs up in your PHR app
const jane = await anpheros.patients.create({ given: 'Jane', family: 'Doe', birth_date: '1984-07-19', gender: 'female' });

// 2. Something the person measured at home
await anpheros.observations.create(jane.id, {
  code: '85354-9', category: 'vital-signs', effective_at: '2026-10-01T08:30:00-05:00', author_type: 'patient',
  components: [{ code: '8480-6', value: 128, unit: 'mm[Hg]' }, { code: '8462-4', value: 82, unit: 'mm[Hg]' }],
});

// 3. A diagnosis and a medication the person reports
await anpheros.conditions.create(jane.id, { code: 'E11.9', system: 'http://hl7.org/fhir/sid/icd-10',
  display: 'Type 2 diabetes mellitus without complications', clinical_status: 'active', onset: '2021-03-15', author_type: 'patient' });
await anpheros.medications.create(jane.id, { code: 'A10BA02', display: 'Metformin 500 mg', status: 'active',
  dosage: '500 mg twice a day', start: '2021-03-20', author_type: 'patient' });

// 4. A lab report the person received, as the lab sent it (HL7 v2)
const lab = await anpheros.labs.importHl7(jane.id, await readFile('lipid-panel.hl7', 'utf8'), { sourceSystem: 'springfield-lis' });

// 5. A PDF they want to keep with the record
const doc = await anpheros.documents.upload(jane.id,
  { title: 'Chest X-ray report', kind: 'imaging_report', content_type: 'application/pdf', date: '2026-10-03' },
  await readFile('report.pdf'));

// 6. One timeline for the home screen
const timeline = await anpheros.timeline.list(jane.id, { limit: 10 });

// 7. A summary to share with a new doctor: the International Patient Summary
const ips = await anpheros.fhir.summary(jane.id);

// 8. Who else can read this record (empty until the person consents to another app)
const grants = await anpheros.grants.of(jane.id);

Εκτυπώθηκε από αυτήν την εκτέλεση:

lab:       created 2, unmapped []
document:  final
timeline:  2026-10-03  document    Chest X-ray report
           2026-10-02  observation Cholesterol in HDL [Mass/volume] in Serum or Plasma
           2026-10-02  observation Cholesterol [Mass/volume] in Serum or Plasma
           2026-10-01  observation Blood pressure panel
           2021-03-20  medication  Metformin 500 mg
           2021-03-15  condition   Type 2 diabetes mellitus without complications
IPS:       Allergies, Medications, Problems, Results, Vital signs
grants:    0

Όλα τα παραπάνω αποθηκεύονται ως FHIR R4 — Patient, Observation, Condition, MedicationStatement, DocumentReference — ώστε η ίδια εγγραφή να μπορεί να διαβαστεί με οποιονδήποτε FHIR client (GET /fhir/R4/Patient/{id}/$everything) και να μετακινηθεί αλλού άθικτη. Οι κλήσεις /v1 στο SDK είναι μια απλούστερη προβολή των ίδιων πόρων. Η Medical data API τους παραθέτει.

Κοινή χρήση χωρίς απώλεια ελέγχου

Ένα PHR υπάρχει για να μοιράζεται, με τους όρους του ατόμου:

Οικογένειες

Πολλά PHR (Personal Health Records) διατηρούνται από ένα άτομο για πολλά μέλη της οικογένειας: παιδιά, σύντροφο, ηλικιωμένο γονέα. Δώστε σε κάθε άτομο το δικό του αρχείο και συνδέστε τα με τον κηδεμόνα, αντί να αναμιγνύετε τα δεδομένα όλων σε ένα. Η συγκατάθεση δίνεται στη συνέχεια ανά αρχείο. Το Ιατρικό αρχείο ασθενούς περιγράφει το μοντέλο.

Τι να φτιάξετε μόνοι σας και τι όχι

Εσείς φτιάχνετε την εμπειρία: την εισαγωγή, τον τρόπο εξήγησης των αποτελεσμάτων, τις υπενθυμίσεις, τα γραφήματα, τη γλώσσα που διαβάζει το άτομο. Το Anpheros παρέχει το αρχείο, τα τυπικά formats, τη συγκατάθεση, την προέλευση, το αρχείο καταγραφής πρόσβασης και τις λειτουργίες εργαστηρίου, εγγράφων και περιλήψεων.

Αυτό που το Anpheros δεν κάνει σήμερα για ένα PHR: δεν συνδέεται σε πύλες ασθενών νοσοκομείων ή σε APIs πρόσβασης ασθενών των ΗΠΑ για λογαριασμό του ατόμου (η εφαρμογή σας μπορεί να το κάνει αυτό με έναν SMART on FHIR client και να γράψει ό,τι λαμβάνει), δεν διαβάζει αναφορές PDF μέσω του API, και δεν παρέχει ιατρικές συμβουλές. Η δική του εφαρμογή PHR του Anpheros, η Anpheros Daily, είναι χτισμένη πάνω στο ίδιο API.

Συχνές ερωτήσεις

Τι είναι ένα προσωπικό αρχείο υγείας (PHR);

Ένα αρχείο πληροφοριών υγείας ενός ατόμου που το άτομο διατηρεί και ελέγχει, συγκεντρωμένο από διάφορες πηγές — δικές του καταχωρήσεις, εργαστήρια, κλινικές, συσκευές — αντί να διατηρείται από έναν μόνο πάροχο.

Ποια είναι η διαφορά μεταξύ ενός PHR και ενός EHR;

Ένα EHR διατηρείται από έναν οργανισμό υγειονομικής περίθαλψης και καλύπτει ό,τι κατέγραψαν οι πάροχοί του. Ένα PHR διατηρείται από το άτομο και μπορεί να συνδυάζει δεδομένα από όλους τους παρόχους και τις συσκευές του. Ένα συνδεδεμένο PHR είναι ένα παράθυρο στο EHR ενός παρόχου· ένα συνδεδεμένο PHR χρησιμοποιεί πρότυπα για να συγκεντρώσει διάφορες πηγές.

Πρέπει ένα PHR να χρησιμοποιεί FHIR;

Εάν τα δεδομένα πρόκειται ποτέ να κοινοποιηθούν με έναν γιατρό, μια άλλη εφαρμογή ή έναν βοηθό AI, ναι: το FHIR R4 παρέχει κωδικοποιημένους, εκδοχικά ελεγχόμενους πόρους που άλλα συστήματα ήδη κατανοούν, και είναι η μορφή των API πρόσβασης ασθενών στις ΗΠΑ και της ευρωπαϊκής περίληψης ασθενών.

Πώς μια εφαρμογή PHR λαμβάνει δεδομένα από νοσοκομεία;

Στις ΗΠΑ, μέσω των API πρόσβασης ασθενών FHIR που εκθέτουν πιστοποιημένα EHR και πολλοί ασφαλιστές, χρησιμοποιώντας SMART on FHIR για να επιτρέψει στο άτομο να εξουσιοδοτήσει την εφαρμογή. Αλλού είναι κυρίως έγγραφα και περιλήψεις, που εισάγονται και αποθηκεύονται δίπλα σε δομημένα δεδομένα.

Πού πρέπει μια εφαρμογή PHR να αποθηκεύει τα κλειδιά API;

Στον διακομιστή σας. Ένα κλειδί έργου μπορεί να διαβάσει κάθε αρχείο που δημιούργησε το έργο σας, επομένως δεν πρέπει ποτέ να διανέμεται μέσα σε μια εφαρμογή για κινητά ή web· η εφαρμογή επικοινωνεί με το backend σας, και οι εφαρμογές άλλων ατόμων χρησιμοποιούν OAuth με τη συγκατάθεση του ατόμου.

Σχετικά

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