Modèle de backend d'application de consultation télémédicale
Rendez-vous sécurisés, salles d'attente, présence en temps réel et journaux d'audit de session
Un backend télémédical prêt pour la production sur Back4app avec des rendez-vous, des salles d'attente virtuelles, des journaux de sessions axés sur la HIPAA, des profils de patients/Provider, une présence en temps réel et des pistes d'audit. Inclut un diagramme ER, un dictionnaire de données, un schéma JSON, un espace de jeu API, et un prompt Agent IA pour un démarrage rapide.
Principaux enseignements
Obtenez un backend de télésanté qui gère le cycle de vie des rendez-vous, les salles d'attente virtuelles, la présence en temps réel et la journalisation des sessions axée sur HIPAA afin que votre équipe puisse se concentrer sur l'expérience utilisateur clinique et les intégrations.
- Journalisation de session consciente de HIPAA — Capturez les métadonnées des sessions vidéo, les horodatages, les participants et les charges utiles d'audit chiffrées en tant que journaux ajoutés uniquement pour la traçabilité.
- Salles d'attente virtuelles — Gérez l'enregistrement des patients, l'ordre de la file d'attente, les temps d'attente estimés et la préparation de Provider avec des enregistrements de salles d'attente explicites.
- Mises à jour de présence en temps réel — Poussez la présence et les changements de file d'attente avec Live Queries afin que les Provider et les patients voient un statut précis sans interrogation.
- Flux de travail de premier rendez-vous — Modèle de planification, d'annulations, de reprogrammation, et de gestion des absences avec des pointeurs de patient et Provider liés.
- Prêt pour toutes les plateformes — Le même backend prend en charge les clients mobiles, web, et kiOSk via des APIs et SDKs REST et GraphQL pour {tech}.
Qu'est-ce que le modèle d'application de consultation téléphonique ?
Back4app est un service backend en tant que service (BaaS) pour une livraison rapide des produits. Le modèle d'application de consultation téléphonique modélise les rendez-vous, les salles d'attente virtuelles, les journaux de session et la présence afin que les équipes de développement puissent créer plus rapidement des fonctionnalités de télémédecine conformes à la HIPAA.
Meilleur pour :
Aperçu
Les flux de travail de télé santé nécessitent un état précis des rendez-vous, la gestion des files d'attente et l'enregistrement sécurisé des métadonnées de session pour la conformité et la réconciliation de la facturation.
Ce modèle définit Patient, Provider, Rendez-vous, Salle d'attente, Journal de session vidéo et Journal d'audit avec des recommandations de propriété et de CLP afin que les équipes puissent mettre en œuvre rapidement des flux de travail de télé santé en tenant compte des règles de conformité.
Fonctionnalités de base de télésanté
Chaque carte technologique dans ce hub utilise le même schéma de backend de télésanté avec Patient, Provider, Rendez-vous, Salle d'attente, Journal de session vidéo et AuditLog.
Cycle de vie des rendez-vous
Créer, reprogrammer, annuler et lister les rendez-vous avec les pointeurs de patient et Provider ainsi que l'état du cycle de vie.
Salles d'attente virtuelles
La classe WaitingRoom suit l'ordre de la file d'attente, l'heure de l'enregistrement du patient, le temps d'attente estimé et le Provider assigné.
journaux de session vidéo conformes à la HIPAA
Le journal de session vidéo enregistre le début/fin de session, les participants, la durée, les marqueurs d'événements et les métadonnées cryptées pour les audits.
Profils de patient et Provider
Les classes de patient et Provider stockent l'identité, les coordonnées et les métadonnées essentielles nécessaires à la planification et au contexte clinique.
Mises à jour de présence et de file d'attente en temps réel
Utiliser Live Queries pour diffuser la disponibilité de Provider, la position en salle d'attente et les changements d'état de session.
Journaux d'audit centralisés
AuditLog enregistre qui a effectué des actions, quand et pourquoi pour la conformité et le dépannage.
Pourquoi construire votre backend de télésanté avec Back4app ?
Back4app supprime les frais d'exploitation du backend pour que les équipes puissent se concentrer sur les flux cliniques, les contrôles de sécurité et l'expérience utilisateur.
- •Journalisation de session sécurisée: Stockez les métadonnées de session vidéo et les charges utiles chiffrées dans des journaux en ajout uniquement pour soutenir les audits et les flux de travail de remboursement.
- •Éléments de salle d'attente virtuelle: Les modèles de salle d'attente et de file d'attente intégrés vous permettent de gérer les enregistrements, le triage et l'attribution de Provider sans plomberie en temps réel personnalisée.
- •Flexibilité en temps réel et API: Utilisez Live Queries pour les mises à jour de présence et de file d'attente tout en exposant REST et GraphQL pour les appels et intégrations planifiés.
Lancez rapidement des fonctionnalités de télésanté avec un modèle de données conforme et des modèles en temps réel prêts à l'emploi.
Avantages principaux
Un backend de télésanté qui aide les équipes produit à livrer rapidement des flux de travail de consultation sécurisés et auditables.
Surface d'audit conforme à HIPAA
Des journaux de session immuables et des enregistrements d'audit centralisés rendent la conformité et l'examen des incidents simples.
Réduction des absences et flux de clinique plus fluide
Les salles d'attente virtuelles et les flux d'enregistrement aident les cliniques à gérer les files d'attente des patients et à réduire le temps d'inactivité des cliniciens.
Coordination en temps réel de la clinique
Les mises à jour de présence en direct et de files d'attente créent des expériences synchronisées pour Provider, les patients et le personnel.
Architecture axée sur les permissions
Les modèles ACL/CLP et les hooks de Cloud Code empêchent l'accès non autorisé aux informations personnelles identifiables et aux données de session sensibles.
APIs multiplateformes
Les points de terminaison REST et GraphQL servent les portails web, les applications mobiles et les intégrations avec les dossiers de santé électroniques ou les systèmes de facturation.
Bootstrap assisté par IA en un clic
Utilisez l'invite de l'agent IA pour générer un backend fonctionnel, semer des données d'exemple et structurer des intégrations frontend.
Prêt à construire une solution de télésanté conforme à la HIPAA ?
Laissez l'Agent IA Back4app structurer votre backend de télésanté et générer des rendez-vous, des salles d'attente, des journaux de session et des pistes d'audit à partir d'une seule invite.
Gratuit pour commencer — 50 invites d'Agent IA/mois, pas de carte de crédit requise
Pile technique
Tout inclus dans ce modèle de backend de télésanté.
Diagramme ER
Modèle de relation d'entité pour le schéma backend Telehealth.
Schéma couvrant les patients, Providers, le cycle de vie des rendez-vous, les salles d'attente, les journaux de session, et les audits.
Voir la source du diagramme
erDiagram
PatientProfile ||--o{ Appointment : "books"
ProviderProfile ||--o{ Appointment : "assigned to"
Appointment ||--o{ VirtualWaitingRoom : "has"
Appointment ||--o{ VideoSessionLog : "logs"
Appointment ||--o{ AuditLog : "audited by"
ProviderProfile ||--o{ VideoSessionLog : "conducts"
PatientProfile ||--o{ VideoSessionLog : "attends"
PatientProfile {
String objectId PK
Pointer user FK
String fullName
Date dateOfBirth
String medicalRecordNumber
String phone
String email
Date consentSignedAt
Date createdAt
Date updatedAt
}
ProviderProfile {
String objectId PK
Pointer user FK
String fullName
String licenseNumber
String specialty
Boolean telehealthEnabled
Object availability
Date createdAt
Date updatedAt
}
Appointment {
String objectId PK
Pointer patient FK
Pointer provider FK
Date scheduledAt
Number durationMinutes
String status
Boolean prefersVideo
String notes
Pointer waitingRoom FK
Date createdAt
Date updatedAt
}
VirtualWaitingRoom {
String objectId PK
Pointer appointment FK
Array participants
Number queuePosition
Array announcements
Boolean isActive
Date createdAt
Date updatedAt
}
VideoSessionLog {
String objectId PK
Pointer appointment FK
Pointer provider FK
Pointer patient FK
Date startedAt
Date endedAt
Number durationSeconds
Object mediaAudit
Object consentSnapshot
String notesSummary
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, les transitions de salle d'attente, le début/fin de session, et l'enregistrement des sessions vidéo sécurisées.
Voir la source du diagramme
sequenceDiagram
participant User
participant App as Telehealth Consultation App
participant Back4app as Back4app Cloud
User->>App: Sign in with secure credentials (MFA)
App->>Back4app: POST /login (return session token)
Back4app-->>App: Session token + user role
User->>App: View upcoming telehealth appointment
App->>Back4app: GET /classes/Appointment?where={"patient":Pointer("PatientProfile","pat1")}
Back4app-->>App: Appointment object with waitingRoom pointer
User->>App: Join virtual waiting room 10 min before scheduledAt
App->>Back4app: POST /classes/VirtualWaitingRoom/{wrId}/join (create participant pointer) + POST /classes/AuditLog
Back4app-->>App: Participant added + audit confirmation
Provider->>App: Open provider console and accept next patient
App->>Back4app: PUT /classes/Appointment/{apptId} { status: "in_session" } + POST /classes/VideoSessionLog
Back4app-->>App: Appointment updated + VideoSessionLog objectId
App->>Back4app: LiveQuery subscribe on VirtualWaitingRoom and VideoSessionLog
Back4app-->>App: Live events for join/leave and session updates
App-->>User: Real-time waiting-room countdown and "Your provider is ready" notificationDictionnaire de données
Référence au niveau des champs pour chaque classe dans le schéma de Télésanté.
| Champ | Type | Description | Requis |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | Auto |
| user | Pointer<_User> | Linked Back4app user account | |
| fullName | String | Patient full name | |
| dateOfBirth | Date | Patient date of birth | — |
| medicalRecordNumber | String | Internal MRN for cross-references | |
| phone | String | Contact phone number | — |
| String | Contact email | — | |
| consentSignedAt | Date | Timestamp when telehealth consent was recorded | — |
| createdAt | Date | Auto-generated creation timestamp | Auto |
| updatedAt | Date | Auto-generated last-update timestamp | Auto |
10 champs dans PatientProfile
Sécurité et autorisations
Comment ACL, CLP et Cloud Code protègent les PII, les journaux de session et l'état de la salle d'attente.
Contrôle d'accès basé sur les rôles
Définir des rôles pour le patient, Provider, le personnel de la clinique et l'administrateur afin que chacun voie uniquement les enregistrements et opérations autorisés.
Journaux de session uniquement en ajout
Appliquer des contraintes d'ajout uniquement pour VideoSessionLog via CLP et Cloud Code afin que les journaux restent résistant à la falsification pour les audits.
Métadonnées chiffrées et PII minimales
Conservez uniquement les métadonnées de session nécessaires dans VideoSessionLog et cryptez les charges utiles sensibles ; évitez de stocker des médias bruts dans le backend.
Schéma (JSON)
Définition du schéma JSON brute prête à être copiée dans Back4app ou utilisée comme référence d'implémentation.
{
"classes": [
{
"className": "PatientProfile",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"user": {
"type": "Pointer",
"required": true,
"targetClass": "_User"
},
"fullName": {
"type": "String",
"required": true
},
"dateOfBirth": {
"type": "Date",
"required": false
},
"medicalRecordNumber": {
"type": "String",
"required": true
},
"phone": {
"type": "String",
"required": false
},
"email": {
"type": "String",
"required": false
},
"consentSignedAt": {
"type": "Date",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "ProviderProfile",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"user": {
"type": "Pointer",
"required": true,
"targetClass": "_User"
},
"fullName": {
"type": "String",
"required": true
},
"licenseNumber": {
"type": "String",
"required": true
},
"specialty": {
"type": "String",
"required": true
},
"telehealthEnabled": {
"type": "Boolean",
"required": true
},
"availability": {
"type": "Object",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Appointment",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"patient": {
"type": "Pointer",
"required": true,
"targetClass": "PatientProfile"
},
"provider": {
"type": "Pointer",
"required": true,
"targetClass": "ProviderProfile"
},
"scheduledAt": {
"type": "Date",
"required": true
},
"durationMinutes": {
"type": "Number",
"required": true
},
"status": {
"type": "String",
"required": true
},
"prefersVideo": {
"type": "Boolean",
"required": true
},
"notes": {
"type": "String",
"required": false
},
"waitingRoom": {
"type": "Pointer",
"required": false,
"targetClass": "VirtualWaitingRoom"
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "VirtualWaitingRoom",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"appointment": {
"type": "Pointer",
"required": true,
"targetClass": "Appointment"
},
"participants": {
"type": "Array",
"required": false
},
"queuePosition": {
"type": "Number",
"required": false
},
"announcements": {
"type": "Array",
"required": false
},
"isActive": {
"type": "Boolean",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "VideoSessionLog",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"appointment": {
"type": "Pointer",
"required": true,
"targetClass": "Appointment"
},
"provider": {
"type": "Pointer",
"required": true,
"targetClass": "ProviderProfile"
},
"patient": {
"type": "Pointer",
"required": true,
"targetClass": "PatientProfile"
},
"startedAt": {
"type": "Date",
"required": true
},
"endedAt": {
"type": "Date",
"required": true
},
"durationSeconds": {
"type": "Number",
"required": true
},
"mediaAudit": {
"type": "Object",
"required": false
},
"consentSnapshot": {
"type": "Object",
"required": false
},
"notesSummary": {
"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 de télésanté complète à partir de ce modèle, y compris le schéma backend, des données d'exemple et des extraits d'intégration frontend.
Créez un backend de télésanté sur Back4app avec le schéma et le comportement suivants. Schéma: 1. Patient : utilisateur (Pointeur vers Utilisateur, requis), nomComplet (Chaîne, requis), dateNaissance (Date, requis), contact (Objet), mrn (Chaîne, facultatif). 2. Provider : utilisateur (Pointeur vers Utilisateur, requis), nom (Chaîne, requis), numéroDeLicence (Chaîne), spécialités (Tableau), disponibilité (Objet). 3. Rendez-vous : patient (Pointeur vers Patient, requis), Provider (Pointeur vers Provider, requis), heurePrévue (Date, requis), duréeMinutes (Nombre, requis), statut (Chaîne : prévu, enregistré, en session, terminé, annulé), notes (Chaîne, facultatif). 4. SalleDattente : rendez-vous (Pointeur vers Rendez-vous, requis), enregistrerÀ (Date), positionDansLaFile (Nombre), tempsDattenteEstime (Nombre), statut (Chaîne : en attente, prêt, supprimé). 5. JournalDeSessionVidéo : rendez-vous (Pointeur vers Rendez-vous, requis), Provider (Pointeur vers Provider, requis), patient (Pointeur vers Patient, requis), commenceÀ (Date), finitÀ (Date), durée (Nombre), événements (Tableau), chargeUtileChiffrée (Objet, facultatif); ajout uniquement pour la plupart des rôles. 6. JournalDaudit : acteur (Pointeur vers Utilisateur, requis), action (Chaîne, requis), typeD'entité (Chaîne, requis), idD'entité (Chaîne, requis), chargeUtile (Objet); objectId, createdAt, updatedAt (système). Sécurité : - Utilisez ACL/CLP et Cloud Code pour restreindre l'accès. JournalDeSessionVidéo devrait être ajout uniquement pour les utilisateurs standards et modifiable uniquement par les administrateurs de clinique de confiance. Cryptez les charges utiles sensibles et évitez de stocker des blobs média. Authentification : - Flows d'inscription/login du personnel et des patients. Les comptes Provider nécessitent des drapeaux de vérification. Comportement : - Authentifier, lister les prochains rendez-vous d'un utilisateur, enregistrer un patient dans une salle d'attente, Provider accepte les patients et démarre une session qui écrit un JournalDeSessionVidéo, et conserve les entrées de JournalD'audit pour les transitions sensibles. Livraison : - Application Back4app avec schéma, ACL, CLP ; extraits frontend d'exemple pour authentifier, enregistrer des patients, gérer des salles d'attente, démarrer des sessions et capturer des journaux de session.
Appuyez sur le bouton ci-dessous pour ouvrir l'Agent avec cette invite de modèle pré-remplie.
Ceci est l'invite 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 de Télésanté. 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èle de données et les notes hors ligne.
Flutter Backend de télésanté
React Backend de télésanté
React Natif Backend de télésanté
Next.js Backend de télésanté
JavaScript Backend de télésanté
Android Backend de télésanté
iOS Backend de télésanté
Vue Backend de télésanté
Angular Backend de télésanté
GraphQL Backend de télésanté
REST API Backend de télésanté
PHP Backend de télésanté
.NET Backend de télésanté
Ce que vous obtenez avec chaque technologie
Chaque pile utilise le même schéma backend de télésanté et les contrats API.
Gestion unifiée des données en télé-santé
Gérez facilement les dossiers des patients, les rendez-vous et les journaux dans un schéma centralisé.
Conférence vidéo sécurisée pour la télé-santé
Sessions vidéo conformes à la HIPAA pour garantir la confidentialité des patients lors des consultations.
Planification d'appointments en temps réel
Permettez aux patients de réserver et de gérer des rendez-vous sans effort dans l'application.
Fonctionnalités de la salle d'attente virtuelle
Créez et gérez des salles d'attente virtuelles pour améliorer l'expérience des patients.
APIs REST/GraphQL pour l'intégration
APIs flexibles pour se connecter efficacement à d'autres services et outils de santé.
Journalisation des sessions pour la télé-santé
Journaux de session automatisés pour la conformité et la révision afin de suivre les interactions avec les patients.
Comparaison du cadre de consultation en télé-santé
Comparez la vitesse de configuration, le style de SDK et le support de l'IA à travers les technologies prises en charge.
| Temps de configuration | Setup Time | Avantage de la consultation en télé-santé | Type de SDK | Support AI |
|---|---|---|---|---|
| ~5 min | Base de code unique pour la consultation en télé-santé sur mobile et web. | Typed SDK | Complet | |
| Environ 5 min | Tableau de bord web rapide pour la consultation en télé-santé. | Typed SDK | Complet | |
| Moins de 5 minutes | Application mobile multiplateforme pour la consultation en télé-santé. | Typed SDK | Complet | |
| ~3–7 min | Application web rendue côté serveur pour la consultation en télé-santé. | Typed SDK | Complet | |
| Moins de 5 min | Intégration web légère pour la consultation en télé-santé. | Typed SDK | Complet | |
| ~5 min | Application native Android pour la consultation en télé-santé. | Typed SDK | Complet | |
| Environ 5 min | Application native iOS pour la consultation en télé-santé. | Typed SDK | Complet | |
| Moins de 5 minutes | Interface utilisateur web Reactive pour la consultation en télé-santé. | Typed SDK | Complet | |
| ~3–7 min | Application web d'entreprise pour la consultation en télé-santé. | Typed SDK | Complet | |
| ~2 min | API flexible GraphQL pour la consultation en télé-santé. | GraphQL API | Complet | |
| Moins de 2 min | Intégration REST API pour la consultation en télé-santé. | REST API | Complet | |
| ~3–5 min | Backend PHP côté serveur pour la consultation en télé-santé. | REST API | Complet | |
| Moins de 5 minutes | Backend .NET pour la consultation en télé-santé. | Typed SDK | Complet |
Le temps de configuration reflète la durée estimée depuis le démarrage jusqu'au premier rendez-vous et à la requête de salle d'attente en utilisant ce schéma de modèle.
Questions Fréquemment Posées
Questions courantes sur la création d'un backend de télésanté avec ce modèle.
Prêt à construire votre application de télésanté ?
Commencez votre projet de télésanté en quelques minutes. Aucune carte de crédit requise.