Application de Téléhealth
Construire avec Agent AI
Backend de télémédicine

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.

  1. Journalisation de session consciente de HIPAACapturez 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é.
  2. Salles d'attente virtuellesGé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.
  3. Mises à jour de présence en temps réelPoussez 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.
  4. Flux de travail de premier rendez-vousModèle de planification, d'annulations, de reprogrammation, et de gestion des absences avec des pointeurs de patient et Provider liés.
  5. Prêt pour toutes les plateformesLe 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 :

Plateformes de télémédecineSalles d'attente virtuelles de la cliniqueJournalisation vidéo conforme à la HIPAAPlanification et triage de ProviderClients de télé santé multiplateformeMVP pour consultations à distance

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é.

Interface utilisateur
13+ technologies
Backend
Back4app
Base de données
MongoDB
Auth
Authentification intégrée + sessions
API
REST et GraphQL
Temps réel
Live Queries

Diagramme ER

Modèle de relation d'entité pour le schéma backend Telehealth.

Voir la source du diagramme
Mermaid
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
Mermaid
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" notification

Dictionnaire de données

Référence au niveau des champs pour chaque classe dans le schéma de Télésanté.

ChampTypeDescriptionRequis
objectIdStringAuto-generated unique identifierAuto
userPointer<_User>Linked Back4app user account
fullNameStringPatient full name
dateOfBirthDatePatient date of birth
medicalRecordNumberStringInternal MRN for cross-references
phoneStringContact phone number
emailStringContact email
consentSignedAtDateTimestamp when telehealth consent was recorded
createdAtDateAuto-generated creation timestampAuto
updatedAtDateAuto-generated last-update timestampAuto

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.

JSON
{
  "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.

Back4app Agent IA
Prêt à construire
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.

Déployez en quelques minutes50 invites gratuites / moisAucune carte de crédit requise

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.

common.loadingPlayground

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 configurationSetup TimeAvantage de la consultation en télé-santéType de SDKSupport AI
~5 minBase de code unique pour la consultation en télé-santé sur mobile et web.Typed SDKComplet
Environ 5 minTableau de bord web rapide pour la consultation en télé-santé.Typed SDKComplet
Moins de 5 minutesApplication mobile multiplateforme pour la consultation en télé-santé.Typed SDKComplet
~3–7 minApplication web rendue côté serveur pour la consultation en télé-santé.Typed SDKComplet
Moins de 5 minIntégration web légère pour la consultation en télé-santé.Typed SDKComplet
~5 minApplication native Android pour la consultation en télé-santé.Typed SDKComplet
Environ 5 minApplication native iOS pour la consultation en télé-santé.Typed SDKComplet
Moins de 5 minutesInterface utilisateur web Reactive pour la consultation en télé-santé.Typed SDKComplet
~3–7 minApplication web d'entreprise pour la consultation en télé-santé.Typed SDKComplet
~2 minAPI flexible GraphQL pour la consultation en télé-santé.GraphQL APIComplet
Moins de 2 minIntégration REST API pour la consultation en télé-santé.REST APIComplet
~3–5 minBackend PHP côté serveur pour la consultation en télé-santé.REST APIComplet
Moins de 5 minutesBackend .NET pour la consultation en télé-santé.Typed SDKComplet

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.

Qu'est-ce qu'un backend de consultation en télémédecine ?
Que comprend le modèle de télésanté ?
Pourquoi utiliser Back4app pour les fonctionnalités de télésanté ?
Comment puis-je charger les rendez-vous à venir avec Flutter ?
Comment devrais-je créer un rendez-vous et enregistrer un patient avec Next.js Server Actions ?
React Native peut-il mettre en cache les données des patients et des rendez-vous hors ligne ?
Comment puis-je éviter de doubler une réservation pour un Provider?
Quel est le flux de journalisation de session de bout en bout ?
Comment devrais-je modéliser la disponibilité de Provider ?
Comment les salles d'attente virtuelles sont-elles réconciliées après des interruptions de réseau ?

Fiable pour les équipes de télésanté dans le monde entier

Les équipes qui construisent des flux de travail de télémédecine utilisent les modèles Back4app pour expédier plus rapidement et garder des journaux vérifiables

G2 Users Love Us Badge

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.

Choisir la technologie