Modèle backend de l'application de triage en salle d'urgence
Admission des patients, scoring de triage, files d'attente prioritaires, zones de traitement et flux de réévaluation en temps réel
Un backend de triage en salle d'urgence prêt pour la production sur Back4app pour une évaluation rapide des patients, une file d'attente basée sur la gravité, un routage des traitements et une visibilité opérationnelle à travers les équipes de soins d'urgence.
Points clés
Ce modèle vous offre un backend prêt pour l'admission d'urgence pour des flux de travail sous pression : évaluez rapidement les patients entrants, priorisez par gravité, orientez vers les zones de soins et maintenez les équipes synchronisées avec des mises à jour en temps réel.
- Modèle de données axé sur l'évaluation — Capturez le contexte d'arrivée, la plainte principale, les signes vitaux et la catégorie de triage dans un schéma conçu pour une admission clinique rapide.
- Gestion des files d'attente basée sur la gravité — Classez et mettez à jour les patients en attente en fonction de l'acuité, des résultats de réévaluation et de la préparation au traitement.
- Visibilité d'urgence en temps réel — Maintenez les bureaux d'admission, les infirmières et les médecins synchronisés alors que les statuts changent de l'attente à l'assigné, en traitement ou sorti.
- Réévaluation et support d'escalade — Suivez les vérifications de triage répétées et augmentez la priorité lorsque les symptômes s'aggravent ou que les temps d'attente dépassent les seuils.
- Livraison d'API multiplateforme — Servez des outils de triage mobile, des tableaux de bord pour les infirmières et des consoles administratives via REST et GraphQL avec Live Queries optionnel.
Qu'est-ce que le modèle de backend de l'application de triage aux urgences ?
Back4app est un backend géré pour une livraison de produit rapide. Le modèle de backend de l'application de triage aux urgences modélise les patients entrants, les décisions de triage, les positions dans la file d'attente, les destinations de traitement et les journaux d'événements afin que les équipes puissent mettre en œuvre des systèmes d'admission d'urgence plus rapidement et plus en toute sécurité.
Meilleur pour :
Aperçu
Les services d'urgence ont besoin d'une visibilité immédiate sur qui est arrivé, quelle est l'urgence de chaque cas, qui attend et où existe la capacité de soins. Les retards ou l'état de file d'attente peu clair impactent directement le flux des patients.
Ce modèle définit Patient, TriageAssessment, QueueEntry, TreatmentArea et EventLog avec des contrôles d'accès et un Live Queries optionnel afin que les équipes puissent mettre en œuvre rapidement des logiciels d'admission d'urgence et de priorisation.
Fonctionnalités principales de triage des salles d'urgence
Chaque carte technologique dans ce hub utilise le même schéma de triage ER avec Patient, TriageAssessment, QueueEntry, TreatmentArea et EventLog.
Registre d'admission des patients
Suivre l'identité du patient, le mode d'arrivée, la plainte principale, la tranche d'âge, les coordonnées et le statut de la visite actuelle.
Évaluations de triage structurées
Stocker les symptômes, les signes vitaux, le score de douleur, les indicateurs de risque, la catégorie de triage et les horodatages de réévaluation.
File d'attente basée sur la gravité
Les objets QueueEntry maintiennent la position, l'acuité, l'état d'attente et les métadonnées d'escalade pour chaque visite de patient active.
Routage des zones de traitement
Modéliser les salles d'examen, les salles de traumatologie, les espaces d'observation et les zones à accès rapide avec des métadonnées de statut et de capacité.
Journalisation des événements opérationnels
EventLog enregistre les admissions, les mises à jour de triage, les changements de file, les affectations et les jalons de sortie.
Pourquoi construire votre backend de triage d'urgence avec Back4app ?
Back4app vous offre un contrat backend sécurisé pour les flux de travail d'admission d'urgence, gérant l'authentification, les modèles de données, les API et les mises à jour en direct afin que votre équipe puisse se concentrer sur la logique de triage et l'expérience utilisateur de première ligne.
- •Primitives de triage conçues sur mesure: Des classes prédéfinies pour les patients, les évaluations, les files d'attente et les zones de traitement accélèrent la mise en œuvre des flux courants des salles d'urgence.
- •Visibilité opérationnelle: Les journaux d'événements et les mises à jour en temps réel aident les équipes à comprendre les arrivées, les escalades, les affectations de zones et les mouvements de files d'attente d'un seul coup d'œil.
- •Surface d'intégration flexible: Utilisez REST et GraphQL pour les applications d'admission, les tableaux de bord et les connecteurs externes tandis que Live Queries maintient les écrans urgents synchronisés.
Standardisez l'admission d'urgence et les opérations de files d'attente sur le web et mobile avec un seul contrat backend et réduisez le temps de mise sur le marché des fonctionnalités de triage.
Avantages principaux
Un backend d'admission d'urgence qui vous aide à expédier rapidement tout en préservant la clarté de la file d'attente, le support de réévaluation et le contrôle opérationnel.
Livraison d'un système d'admission plus rapide
Commencez à partir d'un modèle de triage préconstruit afin que votre équipe puisse se concentrer sur l'expérience utilisateur d'admission, les règles de réévaluation et les politiques de file d'attente.
Priorisation claire des patients
Stockez les signaux de gravité et les métadonnées de la file d'attente de manière centralisée afin que le personnel puisse agir à partir d'une source de vérité partagée.
Flux de travail prêts pour la réévaluation
Capturez les évaluations répétées et augmentez la priorité de la file d'attente lorsque l'état d'un patient change.
Tableaux de bord opérationnels en direct
Utilisez des mises à jour en temps réel pour refléter immédiatement les arrivées, les affectations de traitement et le mouvement des files d'attente.
Couche d'intégration extensible
Connectez les notifications, les kiOSs des patients, les tableaux de bord internes ou les systèmes cliniques en aval en utilisant REST ou GraphQL.
Échafaudage assisté par l'IA
Utilisez l'invite de l'Agent IA pour générer le backend, semer des données d'échantillon réalistes et accélérer le prototypage.
Prêt à rationaliser l'admission en urgence ?
Laissez l'Agent IA Back4app échafauder le backend de triage de la salle d'urgence et semer des entrées d'admission, des files d'attente de gravité, des réévaluations et des zones de soins à partir d'une seule invite.
Gratuit pour commencer — 50 invites d'agent IA/mois, pas de carte de crédit requise
Pile technique
Tout est inclus dans ce modèle de backend de triage en salle d'urgence.
Diagramme ER
Modèle de relation d'entité pour le schéma de triage des Urgences.
Schéma couvrant les patients d'admission, les évaluations de triage, les entrées de file d'attente, les zones de traitement, et les journaux d'événements.
Voir la source du diagramme
erDiagram
TriageStation ||--o{ PatientVisit : "registers"
CareZone ||--o{ PatientVisit : "routes"
PatientVisit ||--o{ TriageAssessment : "receives"
TriageAssessment ||--o{ QueueEntry : "drives"
CareZone ||--o{ QueueEntry : "queues"
User ||--o{ TriageAssessment : "performs"
User ||--o{ StaffAssignment : "holds"
CareZone ||--o{ StaffAssignment : "covered_by"
TriageStation ||--o{ StaffAssignment : "linked_to"
PatientVisit ||--o{ EscalationLog : "triggers"
TriageAssessment ||--o{ EscalationLog : "supports"
User ||--o{ EscalationLog : "records"
TriageStation {
String objectId PK
String name
String code
String locationNote
String status
Date createdAt
Date updatedAt
}
CareZone {
String objectId PK
String name
Number priorityOrder
Number capacity
Number acceptsSeverityMin
Number acceptsSeverityMax
Date createdAt
Date updatedAt
}
PatientVisit {
String objectId PK
String visitNumber
String patientName
Date dateOfBirth
String chiefComplaint
String arrivalMode
Date arrivalTime
String status
Pointer triageStation FK
Pointer assignedZone FK
Date createdAt
Date updatedAt
}
TriageAssessment {
String objectId PK
Pointer patientVisit FK
Pointer assessedBy FK
Number severityLevel
Number heartRate
Number systolicBP
Number temperatureC
Number oxygenSaturation
Number painScore
Array redFlagSymptoms
String notes
Pointer recommendedZone FK
Date assessedAt
Date createdAt
Date updatedAt
}
QueueEntry {
String objectId PK
Pointer patientVisit FK
Pointer assessment FK
Pointer zone FK
Number priorityScore
String queueStatus
Number positionHint
Date lastReprioritizedAt
Date calledAt
Date createdAt
Date updatedAt
}
StaffAssignment {
String objectId PK
Pointer staffUser FK
Pointer zone FK
Pointer station FK
String shiftLabel
Date activeFrom
Date activeUntil
String responsibility
Date createdAt
Date updatedAt
}
EscalationLog {
String objectId PK
Pointer patientVisit FK
Pointer assessment FK
Pointer loggedBy FK
String eventType
Number previousSeverity
Number newSeverity
String details
Date loggedAt
}
Flux d'intégration
Flux Auth-to-CRUD pour se connecter, enregistrer un patient, créer une évaluation de triage, placer le patient dans la file d'attente de gravité, et synchroniser les changements de statut en direct.
Voir la source du diagramme
sequenceDiagram
participant User as Triage Nurse
participant App as Emergency Room Triage App
participant Back4app as Back4app Cloud
User->>App: Sign in to triage dashboard
App->>Back4app: POST /login (username, password)
Back4app-->>App: Session token + user role
User->>App: Load waiting room and active zones
App->>Back4app: GET /classes/PatientVisit?where=status=waiting
App->>Back4app: GET /classes/CareZone?order=priorityOrder
Back4app-->>App: Waiting visits + zone routing data
User->>App: Complete triage assessment
App->>Back4app: POST /classes/TriageAssessment (severityLevel, vitals, redFlagSymptoms, recommendedZone)
Back4app-->>App: TriageAssessment saved
App->>Back4app: POST /classes/QueueEntry (patientVisit, assessment, zone, priorityScore, queueStatus)
Back4app-->>App: QueueEntry created with queue position
User->>App: Escalate deteriorating patient
App->>Back4app: POST /classes/EscalationLog (eventType, previousSeverity, newSeverity, details)
App->>Back4app: PUT /classes/QueueEntry/{id} (priorityScore, lastReprioritizedAt)
Back4app-->>App: Escalation recorded and queue updated
Back4app-->>App: Live Query events for QueueEntry and EscalationLog
App-->>User: Real-time reprioritized triage boardDictionnaire de données
Référence complète des champs pour chaque classe dans le schéma de triage des urgences.
| Champ | Type | Description | Requis |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | Auto |
| username | String | Login username for triage staff | |
| String | User email address | ||
| password | String | Hashed password (write-only) | |
| role | String | Role (triage_nurse, physician, charge_nurse, admin) | |
| displayName | String | Staff member full name | — |
| createdAt | Date | Auto-generated creation timestamp | Auto |
| updatedAt | Date | Auto-generated last-update timestamp | Auto |
8 champs dans User
Sécurité et autorisations
Comment les ACL, les rôles et la stratégie CLP sécurisent les enregistrements d'admission, les évaluations de triage, l'ordre des files d'attente et les journaux d'événements.
Accès basé sur les rôles
Utilisez des rôles tels que l'admission, l'infirmière de triage, le médecin, l'infirmière responsable et l'administrateur pour définir qui peut créer des évaluations, réprioriser les files d'attente ou attribuer des zones de traitement.
Mises à jour de queue contrôlées
Restreindre la position dans la queue et les paramètres de gravité aux agents autorisés tout en permettant aux utilisateurs de première ligne de mettre à jour les observations et l'état du patient.
Journaux opérationnels de type append
Protéger les enregistrements EventLog de la suppression côté client et exposer l'accès filtré pour les rapports, la supervision et la revue des incidents.
Schéma (JSON)
Définition de schéma JSON brut prête à être copiée dans Back4app ou à être utilisée comme référence de mise en œuvre.
{
"classes": [
{
"className": "User",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"username": {
"type": "String",
"required": true
},
"email": {
"type": "String",
"required": true
},
"password": {
"type": "String",
"required": true
},
"role": {
"type": "String",
"required": true
},
"displayName": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "TriageStation",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"name": {
"type": "String",
"required": true
},
"code": {
"type": "String",
"required": true
},
"locationNote": {
"type": "String",
"required": false
},
"status": {
"type": "String",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "CareZone",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"name": {
"type": "String",
"required": true
},
"priorityOrder": {
"type": "Number",
"required": true
},
"capacity": {
"type": "Number",
"required": false
},
"acceptsSeverityMin": {
"type": "Number",
"required": false
},
"acceptsSeverityMax": {
"type": "Number",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "PatientVisit",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"visitNumber": {
"type": "String",
"required": true
},
"patientName": {
"type": "String",
"required": true
},
"dateOfBirth": {
"type": "Date",
"required": false
},
"chiefComplaint": {
"type": "String",
"required": true
},
"arrivalMode": {
"type": "String",
"required": true
},
"arrivalTime": {
"type": "Date",
"required": true
},
"status": {
"type": "String",
"required": true
},
"triageStation": {
"type": "Pointer",
"required": false,
"targetClass": "TriageStation"
},
"assignedZone": {
"type": "Pointer",
"required": false,
"targetClass": "CareZone"
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "TriageAssessment",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"patientVisit": {
"type": "Pointer",
"required": true,
"targetClass": "PatientVisit"
},
"assessedBy": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"severityLevel": {
"type": "Number",
"required": true
},
"heartRate": {
"type": "Number",
"required": false
},
"systolicBP": {
"type": "Number",
"required": false
},
"temperatureC": {
"type": "Number",
"required": false
},
"oxygenSaturation": {
"type": "Number",
"required": false
},
"painScore": {
"type": "Number",
"required": false
},
"redFlagSymptoms": {
"type": "Array",
"required": false
},
"notes": {
"type": "String",
"required": false
},
"recommendedZone": {
"type": "Pointer",
"required": false,
"targetClass": "CareZone"
},
"assessedAt": {
"type": "Date",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "QueueEntry",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"patientVisit": {
"type": "Pointer",
"required": true,
"targetClass": "PatientVisit"
},
"assessment": {
"type": "Pointer",
"required": false,
"targetClass": "TriageAssessment"
},
"zone": {
"type": "Pointer",
"required": true,
"targetClass": "CareZone"
},
"priorityScore": {
"type": "Number",
"required": true
},
"queueStatus": {
"type": "String",
"required": true
},
"positionHint": {
"type": "Number",
"required": false
},
"lastReprioritizedAt": {
"type": "Date",
"required": false
},
"calledAt": {
"type": "Date",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "StaffAssignment",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"staffUser": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"zone": {
"type": "Pointer",
"required": true,
"targetClass": "CareZone"
},
"station": {
"type": "Pointer",
"required": false,
"targetClass": "TriageStation"
},
"shiftLabel": {
"type": "String",
"required": true
},
"activeFrom": {
"type": "Date",
"required": true
},
"activeUntil": {
"type": "Date",
"required": false
},
"responsibility": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "EscalationLog",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"patientVisit": {
"type": "Pointer",
"required": true,
"targetClass": "PatientVisit"
},
"assessment": {
"type": "Pointer",
"required": false,
"targetClass": "TriageAssessment"
},
"loggedBy": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"eventType": {
"type": "String",
"required": true
},
"previousSeverity": {
"type": "Number",
"required": false
},
"newSeverity": {
"type": "Number",
"required": false
},
"details": {
"type": "String",
"required": false
},
"loggedAt": {
"type": "Date",
"required": true
}
}
}
]
}Construire avec l'agent IA
Utilisez l'agent IA de Back4app pour générer une application complète de triage aux urgences à partir de ce modèle, y compris le frontend, le backend, l'authentification, les flux de travail d'admission et les vues de file d'attente en direct.
Créez un backend de triage aux urgences sur Back4app avec ce schéma et ce comportement exacts. Schéma: 1. Patient : fullName (String, requis), dateOfBirth (Date, facultatif), arrivalMode (String : sans rendez-vous, ambulance, référence), chiefComplaint (String, requis), status (String : arrivé, trié, en attente, assigné, en traitement, sorti), contact (JSON), objectId, createdAt, updatedAt (système). 2. TriageAssessment : patient (Pointer vers Patient, requis), assessedBy (Pointer vers User, requis), triageLevel (String : réanimation, urgent, prioritaire, moins_urgent, non_urgent), painScore (Number), vitals (JSON), riskFlags (Array), notes (String), reassessAt (Date, facultatif), objectId, createdAt, updatedAt. 3. QueueEntry : patient (Pointer vers Patient, requis), assessment (Pointer vers TriageAssessment, requis), priorityScore (Number, requis), queueStatus (String : en attente, appelé, assigné, mis en pause, retiré), positionHint (Number), areaRequested (String, facultatif), objectId, createdAt, updatedAt. 4. TreatmentArea : name (String, requis), type (String : traumatisme, examen, observation, voie rapide), capacity (Number), occupancy (Number), active (Boolean), objectId, createdAt, updatedAt. 5. EventLog : actor (Pointer vers User), patient (Pointer vers Patient), eventType (String), details (JSON), timestamp (Date) — axé sur l'ajout. Sécurité: - CLP et ACL basés sur les rôles : le personnel d'admission et de triage peut créer des enregistrements de Patient et TriageAssessment ; seuls les infirmiers référents, les médecins ou les administrateurs peuvent remplacer priorityScore ou assigner des entrées de TreatmentArea. EventLog est axé sur l'ajout et restreint en lecture. Auth: - Inscription et connexion du personnel via l'utilisateur intégré ; rôles attribués par l'administrateur. Comportement: - Authentifier l'utilisateur, enregistrer un Patient, créer un TriageAssessment, créer ou mettre à jour une QueueEntry en fonction de la gravité, assigner un TreatmentArea lorsque de l'espace devient disponible, et écrire une entrée EventLog pour chaque action majeure. Livrer: - application Back4app avec schéma, ACL, CLP, validations Cloud Code, données d'exemple pré-remplies et un échafaudage frontend par technologie choisie.
Appuyez sur le bouton ci-dessous pour ouvrir l'Agent avec cette invite de modèle pré-remplie.
Cette invite de base décrit le schéma d'admission d'urgence et les comportements de la file d'attente; vous pouvez sélectionner des suffixes spécifiques à la technologie par la suite.
Terrain de jeu API
Essayez les points de terminaison REST et GraphQL contre le schéma de triage des services d'urgence. 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 triage des urgences
React Backend de triage des urgences
React Natif Backend de triage des urgences
Next.js Backend de triage des urgences
JavaScript Backend de triage des urgences
Android Backend de triage des urgences
iOS Backend de triage des urgences
Vue Backend de triage des urgences
Angular Backend de triage des urgences
GraphQL Backend de triage des urgences
REST API Backend de triage des urgences
PHP Backend de triage des urgences
.NET Backend de triage des urgences
Ce que vous obtenez avec chaque technologie
Chaque stack utilise le même schéma de backend et contrats API de triage d'urgence.
Structure de données patient unifiée
Un schéma cohérent pour gérer les informations patients triage Er.
Gestion des files d'attente en temps réel
Suivez les files d'attente des patients et priorisez les traitements dans triage Er efficacement.
Partage sécurisé des dossiers patients
Partagez en toute sécurité des données sensibles des patients entre les équipes triage Er.
APIs REST/GraphQL pour l'intégration
Connectez facilement votre application triage Er avec des systèmes externes en utilisant des APIs.
Algorithmes de triage personnalisables
Adaptez les protocoles de triage pour répondre à des besoins spécifiques de triage Er.
Journalisation des événements pour les audits
Maintenez des journaux complets des événements de triage pour la conformité triage Er.
Comparaison du cadre de triage Er
Comparez la vitesse de configuration, le style SDK et le support AI à travers toutes les technologies supportées.
| Framework | Temps d'installation | Avantage du triage Er | Type de SDK | Support AI |
|---|---|---|---|---|
| Environ 5 min | Code source unique pour le triage Er sur mobile et web. | Typed SDK | Complet | |
| Moins de 5 minutes | Tableau de bord web rapide pour le triage Er. | Typed SDK | Complet | |
| ~3–7 min | Application mobile multiplateforme pour le triage Er. | Typed SDK | Complet | |
| Configuration rapide (5 min) | Application web rendue serveur pour le triage Er. | Typed SDK | Complet | |
| ~3 min | Intégration web légère pour le triage Er. | Typed SDK | Complet | |
| Environ 5 min | Application native Android pour le triage Er. | Typed SDK | Complet | |
| Moins de 5 minutes | Application native iOS pour le triage Er. | Typed SDK | Complet | |
| ~3–7 min | Interface utilisateur web Reactive pour le triage Er. | Typed SDK | Complet | |
| Configuration rapide (5 min) | Application web d'entreprise pour le triage Er. | Typed SDK | Complet | |
| Configuration rapide (2 min) | API GraphQL flexible pour le triage Er. | GraphQL API | Complet | |
| ~2 min | Intégration REST API pour le triage Er. | REST API | Complet | |
| Moins de 5 min | Backend PHP côté serveur pour le triage Er. | REST API | Complet | |
| ~3–7 min | Backend .NET pour le triage Er. | Typed SDK | Complet |
Le temps d'installation reflète la durée attendue depuis le démarrage du projet jusqu'à la première vue du tableau de triage peuplée avec des données QueueEntry et TreatmentArea actives.
Questions Fréquemment Posées
Questions courantes sur la construction d'un backend de Triage aux Urgences avec ce modèle.
Prêt à créer votre application de triage en salle d'urgence ?
Démarrez votre projet d'admission d'urgence en quelques minutes. Aucune carte de crédit requise.