Modèle de backend d'application d'enregistrement de santé personnel (PHR)
Documents médicaux détenus par l'utilisateur, suivi des allergènes et dossiers de vaccination
Un backend d'enregistrement de santé personnel prêt pour la production sur Back4app avec stockage de documents médicaux, historiques d'allergies et de vaccinations, modèles de médicaments et de laboratoires, consentement/partage, journaux d'audit, diagramme ER, et un prompt AI Agent pour un démarrage rapide.
Points clés
Ce modèle vous offre un backend PHR centré sur l'utilisateur avec stockage de documents, allergies, immunisations, médicaments, résultats de laboratoire, objets de consentement et journaux d'audit pour que vous puissiez livrer rapidement des applications de santé axées sur la confidentialité.
- Données de santé contrôlées par l'utilisateur — Mettre les patients en premier : les dossiers et les consentements appartiennent et sont contrôlés par le compte de l'utilisateur, permettant un partage sélectif avec Providers.
- Entités cliniques structurées — Modélisez les allergies, les immunisations, les médicaments et les résultats de laboratoire avec des champs typés pour des requêtes précises et un affichage UX.
- Téléchargement de documents et versionnage — Stockez des PDF, des images et des documents structurés avec des métadonnées et un historique de téléchargements pour soutenir les flux de travail cliniques.
- Partage basé sur le consentement — Accorder un accès Provider détaillé avec des objets de consentement et des permissions temporisées.
- Prêt pour plusieurs plateformes — Servez des portails mobiles, web et Provider en utilisant des API REST unifiées et GraphQL avec Live Queries pour des mises à jour en temps réel.
Qu'est-ce que le modèle de backend de l'application de dossier de santé personnel (PHR)?
Back4app est un backend en tant que service (BaaS) pour une livraison rapide des produits. Le modèle de backend de l'application PHR est un schéma pré-construit pour les documents médicaux, les allergies, les vaccinations, les médicaments, les résultats de laboratoire, Providers, les consentements et les journaux d'audit. Connectez votre frontend (React, Flutter, Next.js et plus) et accélérez la livraison.
Meilleur pour :
Aperçu
Un produit PHR moderne a besoin d'un stockage sécurisé centré sur l'utilisateur pour les documents, des enregistrements précis des allergies et des vaccinations, l'historique des médicaments, et un modèle de consentement pour partager des données avec des Providers.
Ce modèle définit HealthDocument, Allergy, Immunization, Medication, LabResult, Provider, Consent, et AuditLog avec des règles de propriété et des flux de travail extensibles afin que les équipes puissent mettre en œuvre des applications PHR rapidement et en conformité.
Fonctionnalités clés de PHR
Chaque carte technologique dans ce hub utilise le même schéma backend PHR avec HealthDocument, Allergy, Immunization, Medication, LabResult, Provider, Consent et AuditLog.
Coffre de documents médicaux
Téléchargez et versionnez des PDF, des images et des dossiers structurés avec des métadonnées et des pointeurs de propriétaire.
Suivi des allergies et des Reactions
Enregistrez les allergènes, les Reactions, la gravité et la date d'apparition associées à un propriétaire.
Antécédents d'immunisation et de vaccination
Capturer le nom du vaccin, la date d'administration, le lot, et la référence de Provider.
Listes et calendriers de médicaments
Stocker les médicaments actifs et historiques avec posologie, fréquence et instructions.
Résultats de laboratoire
Stocker les résultats de laboratoire avec des valeurs numériques, des unités, des plages de référence et des pièces jointes.
Contrôles de consentement et de partage
Accorder un accès spécifique à Provider aux dossiers avec expiration et étendue.
Journaux d'audit centralisés
Enregistrer l'acteur, l'action, la cible et les métadonnées de la charge utile pour la traçabilité.
Pourquoi construir votre backend PHR avec Back4app ?
Back4app vous offre une infrastructure de base pour les applications PHR afin que votre équipe puisse se concentrer sur l'expérience utilisateur, les expériences de consentement et les intégrations au lieu de la plomberie backend.
- •Propriété des données centrée sur l'utilisateur: Implémentez des règles de propriété et des objets de consentement afin que les patients conservent le contrôle de qui peut voir ou télécharger leurs dossiers.
- •Stockage sécurisé de documents et de métadonnées: Téléchargez des documents cliniques avec des métadonnées, des versions et des pointeurs vers des données structuréess comme les laboratoires et les vaccinations.
- •Auditabilité + flexibilité API: Conservez des journaux d'audit pour les événements de partage et les modifications d'enregistrement tout en fournissant REST et GraphQL pour les clients web et mobiles.
Expédiez rapidement un backend PHR axé sur la confidentialité avec un stockage évolutif, une authentification et des API sur toutes les plateformes.
Avantages principaux
Un backend PHR qui vous aide à offrir des expériences de santé axées sur la confidentialité tout en gardant les données structurées et vérifiables.
Vitesse de mise sur le marché
Commencez à partir d'un schéma PHR complet au lieu de concevoir des entités cliniques et des flux de consentement de zéro.
Contrôle d'accès centré sur le patient
Permettez aux patients de gérer les consentements et de partager sélectivement des dossiers avec Provider et des applications.
Modèles de données interopérables
Utilisez des modèles d'immunisation, de médicaments et de laboratoires structurés pour les intégrations et les analyses.
Permissions granulaires
Utilisez des objets ACL/CLP et Consentement afin que l'accès soit explicite et vérifiable.
Trace d'audit fiable
Enregistrer les événements d'accès et de partage pour la transparence et la conformité.
Flux de démarrage assisté par l'IA
Générez rapidement une structure backend et des conseils d'intégration avec une invite d'agent AI préconstruite.
Prêt à construire un Dossier de Santé Personnel axé sur l'utilisateur ?
Laissez l'agent AI Back4app structurer votre backend PHR et générer des documents, des allergies, des vaccinations, des consentements et des journaux d'audit à partir d'une seule invite.
Gratuit pour commencer — 50 invites d'agent AI/mois, pas de carte de crédit requise
Pile technique
Tout est inclus dans ce modèle de backend PHR.
Diagramme ER
Modèle de relation d'entité pour le schéma backend PHR.
Schéma couvrant les documents médicaux possédés par les utilisateurs, les allergies, les immunisations, les médicaments, les résultats de laboratoire, les consentements et l'audit.
Voir la source du diagramme
erDiagram
Profile ||--o{ MedicalDocument : "owns"
Profile ||--o{ Allergy : "has"
Profile ||--o{ Vaccination : "has"
Profile ||--o{ SharedAccess : "grants"
Profile ||--o{ EmergencyContact : "links to"
MedicalDocument }o--|| Profile : "profile"
Vaccination }o--|| Profile : "profile"
Allergy }o--|| Profile : "profile"
SharedAccess }o--|| Profile : "profile"
SharedAccess }o--|| _User : "grantee"
Profile {
String objectId PK
Pointer user FK
String fullName
Date birthDate
String gender
String bloodType
String primaryCareProvider
String notes
Date createdAt
Date updatedAt
}
MedicalDocument {
String objectId PK
Pointer profile FK
File file
String documentType
String title
String description
Array<String> tags
Date uploadedAt
Boolean isShared
Date createdAt
Date updatedAt
}
Allergy {
String objectId PK
Pointer profile FK
String substance
String severity
String reaction
String notes
Date recordedAt
Boolean isActive
Date createdAt
Date updatedAt
}
Vaccination {
String objectId PK
Pointer profile FK
String vaccineName
Date dateAdministered
String dose
String lotNumber
String provider
Date nextDoseDate
Pointer proofDocument FK
Date createdAt
Date updatedAt
}
SharedAccess {
String objectId PK
Pointer profile FK
Pointer grantee FK
String accessLevel
Array<String> scope
Date expiresAt
Pointer createdBy FK
Date createdAt
Date updatedAt
}
EmergencyContact {
String objectId PK
Pointer profile FK
String name
String relationship
String phone
String notes
Date createdAt
Date updatedAt
}
AuditLog {
String objectId PK
Pointer actor FK
String entityType
String entityId
String action
String summary
Object metadata
Date createdAt
Date updatedAt
}
Flux d'intégration
Flux d'exécution typique pour l'authentification, l'accès aux dossiers, le téléchargement de documents, l'octroi de consentement et l'audit.
Voir la source du diagramme
sequenceDiagram
participant User
participant App as Personal Health Record (PHR) App
participant Back4app as Back4app Cloud
User->>App: Login with email (patient) or OAuth (clinician)
App->>Back4app: POST /login
Back4app-->>App: Session token + user profile
User->>App: List my vaccinations and allergies
App->>Back4app: GET /classes/Vaccination?where={"profile":{"__type":"Pointer","className":"Profile","objectId":"profileId"}}
Back4app-->>App: Vaccination and Allergy records
User->>App: Upload lab result PDF
App->>Back4app: POST /files -> create MedicalDocument with file pointer
Back4app-->>App: File object + MedicalDocument.objectId
User->>App: Share record with Dr. Lee for 48h
App->>Back4app: POST /classes/SharedAccess with accessLevel and expiresAt
Back4app-->>App: SharedAccess.objectId + notification
Back4app-->>App: Live Query event: MedicalDocument updated by clinician
App-->>User: Notify patient in-app / refresh documents listDictionnaire de données
Référence complète au niveau des champs pour chaque classe dans le schéma PHR.
| Champ | Type | Description | Requis |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | Automatique |
| user | Pointer<_User> | Linked Back4app user account (patient or caregiver) | |
| fullName | String | Patient full name | |
| birthDate | Date | Date of birth | — |
| gender | String | Gender identity | — |
| bloodType | String | Blood type (e.g. A+, O-) | — |
| primaryCareProvider | String | Name or clinic of primary care provider | — |
| notes | String | Free-text health notes or summary | — |
| createdAt | Date | Auto-generated creation timestamp | Automatique |
| updatedAt | Date | Auto-generated last-update timestamp | Automatique |
10 champs dans Profile
Sécurité et autorisations
Comment les ACL, CLP, objets de consentement et Cloud Code sécurisent les dossiers de santé personnels et le partage.
Dossiers détenus par le patient
Définir la propriété et les ACL afin que les entrées de HealthDocument, Allergy, Immunization, Medication et LabResult soient lisibles et modifiables uniquement par le propriétaire du dossier et les Provider autorisés.
Partage basé sur le consentement
Utilisez la classe Consent pour accorder l'accès à Provider avec une portée et une date d'expiration explicites ; le Cloud Code applique des vérifications de consentement sur les points de terminaison de lecture/téléchargement.
Journaux d'audit en ajout uniquement
Conservez les entrées AuditLog en ajout uniquement pour les utilisateurs standard ; seuls les flux backend fiables ou les administrateurs peuvent écrire ou gérer les journaux historiques.
Schéma (JSON)
Définition de schéma JSON brut prête à être copiée dans Back4app ou utilisée comme référence d'implémentation.
{
"classes": [
{
"className": "Profile",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"user": {
"type": "Pointer",
"required": true,
"targetClass": "_User"
},
"fullName": {
"type": "String",
"required": true
},
"birthDate": {
"type": "Date",
"required": false
},
"gender": {
"type": "String",
"required": false
},
"bloodType": {
"type": "String",
"required": false
},
"primaryCareProvider": {
"type": "String",
"required": false
},
"notes": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "MedicalDocument",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"profile": {
"type": "Pointer",
"required": true,
"targetClass": "Profile"
},
"file": {
"type": "File",
"required": true
},
"documentType": {
"type": "String",
"required": true
},
"title": {
"type": "String",
"required": true
},
"description": {
"type": "String",
"required": false
},
"tags": {
"type": "Array",
"required": false
},
"uploadedAt": {
"type": "Date",
"required": true
},
"isShared": {
"type": "Boolean",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Allergy",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"profile": {
"type": "Pointer",
"required": true,
"targetClass": "Profile"
},
"substance": {
"type": "String",
"required": true
},
"severity": {
"type": "String",
"required": true
},
"reaction": {
"type": "String",
"required": true
},
"notes": {
"type": "String",
"required": false
},
"recordedAt": {
"type": "Date",
"required": true
},
"isActive": {
"type": "Boolean",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Vaccination",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"profile": {
"type": "Pointer",
"required": true,
"targetClass": "Profile"
},
"vaccineName": {
"type": "String",
"required": true
},
"dateAdministered": {
"type": "Date",
"required": true
},
"dose": {
"type": "String",
"required": false
},
"lotNumber": {
"type": "String",
"required": false
},
"provider": {
"type": "String",
"required": false
},
"nextDoseDate": {
"type": "Date",
"required": false
},
"proofDocument": {
"type": "Pointer",
"required": false,
"targetClass": "MedicalDocument"
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "SharedAccess",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"profile": {
"type": "Pointer",
"required": true,
"targetClass": "Profile"
},
"grantee": {
"type": "Pointer",
"required": true,
"targetClass": "_User"
},
"accessLevel": {
"type": "String",
"required": true
},
"scope": {
"type": "Array",
"required": false
},
"expiresAt": {
"type": "Date",
"required": false
},
"createdBy": {
"type": "Pointer",
"required": true,
"targetClass": "_User"
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "EmergencyContact",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"profile": {
"type": "Pointer",
"required": true,
"targetClass": "Profile"
},
"name": {
"type": "String",
"required": true
},
"relationship": {
"type": "String",
"required": true
},
"phone": {
"type": "String",
"required": true
},
"notes": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "AuditLog",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"actor": {
"type": "Pointer",
"required": true,
"targetClass": "_User"
},
"entityType": {
"type": "String",
"required": true
},
"entityId": {
"type": "String",
"required": true
},
"action": {
"type": "String",
"required": true
},
"summary": {
"type": "String",
"required": true
},
"metadata": {
"type": "Object",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
}
]
}Construire avec l'Agent IA
Utilisez l'Agent IA Back4app pour générer une application réelle pour le Dossier de Santé Personnel à partir de ce modèle, y compris le frontend, le backend, l'authentification et les workflows de consentement.
Créez un backend Dossier de Santé Personnel (PHR) sur Back4app avec ce schéma et ce comportement exacts. Schéma: 1. HealthDocument : propriétaire (Pointeur vers l'Utilisateur, requis), titre (String, requis), fichier (Fichier, requis), tags (Tableau, optionnel), version (Numéro, par défaut 1), createdAt, updatedAt (système). 2. Allergy : propriétaire (Pointeur vers l'Utilisateur, requis), substance (String, requis), Reaction (String, optionnel), sévérité (String : léger, modéré, sévère, requis), date de début (Date, optionnel). 3. Immunization : propriétaire (Pointeur vers l'Utilisateur, requis), nom du vaccin (String, requis), administréLe (Date, requis), numéro de lot (String, optionnel), Provider (Pointeur vers Provider, optionnel). 4. Medication : propriétaire (Pointeur vers l'Utilisateur, requis), nom (String, requis), dose (String, optionnel), fréquence (String, optionnel), instructions (String, optionnel), actif (Boolean, par défaut vrai). 5. LabResult : propriétaire (Pointeur vers l'Utilisateur, requis), nom du test (String, requis), valeur (Numéro ou String), unités (String, optionnel), plage de référence (String, optionnel), date (Date, requis), pièce jointe (Pointeur vers HealthDocument, optionnel). 6. Provider : nom (String, requis), systemId (String, optionnel), contact (Objet, optionnel). 7. Consent : propriétaire (Pointeur vers l'Utilisateur, requis), Provider (Pointeur vers Provider, requis), portée (Tableau de Strings : [documents, allergies, vaccinations, médicaments, laboratoires]), expireLe (Date, optionnel), accordé par (Pointeur vers l'Utilisateur ou système). 8. AuditLog : acteur (Pointeur vers l'Utilisateur, requis), action (String, requis), type d'entité (String, requis), identifiant d'entité (String, requis), charge utile (Objet, optionnel); createdAt, updatedAt (système). Sécurité : - Utilisez ACL/CLP afin que seuls les propriétaires et les Provider consentis accèdent aux dossiers. Le Cloud Code valide le Consent avant de permettre la lecture/téléchargement de Provider. Les entrées de AuditLog sont en ajout uniquement pour les utilisateurs standard. Authentification : - Inscription, connexion, déconnexion pour les comptes utilisateurs. Prise en charge des comptes Provider avec des privilèges limités. Comportement : - Authentifiez, listez les dossiers utilisateurs, téléchargez HealthDocument, créez des entrées Allergy/Immunization/Medication/LabResult structurées, créez un Consent pour partager des dossiers sélectionnés avec un Provider, et écrivez des entrées de AuditLog pour des événements critiques. Livraison : - Application Back4app avec schéma, ACL, CLP ; frontend pour coffre-fort de documents sécurisé, lignes de temps d'allergies et de vaccinations, listes de médicaments, vues des résultats de laboratoire, flux de consentement Provider, et historique des audits.
Appuyez sur le bouton ci-dessous pour ouvrir l'Agent avec ce modèle de prompt pré-rempli.
Ceci est le prompt de base sans suffixe technologique. Vous pouvez adapter la pile frontend générée par la suite.
API Playground
Essayez les points de terminaison REST et GraphQL contre le schéma PHR. Les réponses utilisent des données fictives et ne nécessitent pas de compte Back4app.
Utilise le même schéma que ce modèle.
Choisissez votre technologie
Développez chaque carte pour les étapes d'intégration, les modèles d'état, les exemples de modèles de données et les notes hors ligne.
Flutter PHR Backend
React PHR Backend
React Natif PHR Backend
Next.js PHR Backend
JavaScript PHR Backend
Android PHR Backend
iOS PHR Backend
Vue PHR Backend
Angular PHR Backend
GraphQL PHR Backend
REST API PHR Backend
PHP PHR Backend
.NET PHR Backend
Ce que vous obtenez avec chaque technologie
Chaque pile utilise le même schéma backend PHR et les contrats API.
Structure de données enregistrement de santé personnel unifiée
Un schéma préexistant pour documents et dossiers médicaux.
Partage sécurisé pour enregistrement de santé personnel
Partagez facilement des informations de santé avec des Provider tout en garantissant la confidentialité.
Journaux d'audit complets pour enregistrement de santé personnel
Suivez tous les accès et changements des données de santé sensibles.
REST/GraphQL APIs pour enregistrement de santé personnel
Accès API flexible pour intégrer de manière transparente avec divers frontends.
Mises à jour en temps réel pour enregistrement de santé personnel
Notifications instantanées sur les changements des dossiers de santé et des statuts.
Extensibilité pour enregistrement de santé personnel
Ajoutez facilement des fonctionnalités et des modules personnalisés pour répondre à des besoins spécifiques.
Comparaison du cadre d'enregistrements de santé personnels
Comparez la vitesse de configuration, le style SDK, et le support AI à travers toutes les technologies prises en charge.
| Framework | Temps de configuration | Avantage de l'enregistrement de santé personnel | Type de SDK | Support AI |
|---|---|---|---|---|
| En moins de 5 minutes | Code source unique pour l'enregistrement de santé personnel sur mobile et web. | Typed SDK | Complet | |
| ~3 à 7 min | Tableau de bord web rapide pour l'enregistrement de santé personnel. | Typed SDK | Complet | |
| Configuration rapide (5 min) | Application mobile multiplateforme pour l'enregistrement de santé personnel. | Typed SDK | Complet | |
| ~5 min | Application web rendue côté serveur pour l'enregistrement de santé personnel. | Typed SDK | Complet | |
| ~3 min | Intégration web léger pour l'enregistrement de santé personnel. | Typed SDK | Complet | |
| En moins de 5 minutes | Application Android native pour l'enregistrement de santé personnel. | Typed SDK | Complet | |
| ~3 à 7 min | Application iOS native pour l'enregistrement de santé personnel. | Typed SDK | Complet | |
| Configuration rapide (5 min) | Interface web Reactive pour l'enregistrement de santé personnel. | Typed SDK | Complet | |
| ~5 min | Application web entreprise pour l'enregistrement de santé personnel. | Typed SDK | Complet | |
| Configuration rapide (2 min) | API GraphQL flexible pour l'enregistrement de santé personnel. | GraphQL API | Complet | |
| ~2 min | Intégration REST API pour l'enregistrement de santé personnel. | REST API | Complet | |
| En moins de 5 min | Backend PHP côté serveur pour l'enregistrement de santé personnel. | REST API | Complet | |
| Configuration rapide (5 min) | Backend .NET pour l'enregistrement de santé personnel. | Typed SDK | Complet |
Le temps de configuration reflète la durée attendue de l'intégration du projet au premier téléchargement de document et au flux de consentement en utilisant ce schéma de modèle.
Questions Fréquemment Posées
Questions courantes sur la création d'un backend de Dossier de Santé Personnel avec ce modèle.
Prêt à créer votre application de dossier de santé personnel ?
Commencez votre projet de dossier de santé personnel en quelques minutes. Aucune carte de crédit requise.