Livraison d'oxygène
Construire avec l'agent IA
Back-end de livraison de bouteilles d'oxygène

Modèle de back-end d'application de livraison de bouteilles d'oxygène
Affectations de bouteilles et coordination des expéditions

Un back-end de livraison de bouteilles d'oxygène prêt pour la production sur Back4app avec accès utilisateur, livraisons PatientSite, suivi de la PSI des TankAssignments, historique des RefillLog, recherche de contacts d'urgence et suivi des DispatchEvent. Comprend diagramme ER, dictionnaire de données, schéma JSON, terrain de jeu API, et une invite Agent IA pour un démarrage rapide.

Principaux Points à Retenir

Ce modèle vous fournit un backend de livraison d'oxygène avec des rôles d'utilisateur, des fenêtres de livraison PatientSite, un suivi de PSI de TankAssignment, un historique de RefillLog et une recherche EmergencyContact pour que les coordonnateurs puissent gérer les livraisons avec moins d'allers-retours.

  1. Visibilité du PSI des RéservoirsSuivez TankAssignment.psiLevel, status et lastCheckedAt afin que les équipes de dispatch sachent quels réservoirs d'oxygène nécessitent de l'attention.
  2. Historique de remplissage que vous pouvez interrogerEnregistrez chaque entrée RefillLog avec tankAssignment, refillTime, psiBefore, psiAfter, refillReason et refilledBy.
  3. Routage des contacts d'urgenceLiez les enregistrements EmergencyContact à un PatientSite afin que le personnel puisse agir rapidement lorsque deliveryWindowStart, deliveryWindowEnd ou des notes d'accès sont importants.
  4. Coordination de l'expédition et des conducteursUtilisez TankAssignment.assignedSite, assignedDriver et DispatchEvent.eventType pour garder les itinéraires et les transferts clairs.

Comprendre le backend de l'application de livraison de réservoir d'oxygène

Un processus de paiement de livraison d'oxygène fluide cache des dizaines de vérifications : éligibilité, conflits, dépôts et transfert vers la réalisation. Modélisez les entités principales sur Back4app pour offrir aux équipes de livraison d'oxygène un backend capable de croître d'un seul site à des opérations multi-sites. Le schéma couvre User, PatientSite, TankAssignment, RefillLog, EmergencyContact et DispatchEvent avec des contrôles d'authentification et de flux de travail de livraison intégrés. Connectez votre frontend préféré et expédiez plus rapidement.

Meilleur pour :

Applications de livraison de réservoir d'oxygèneLogistique du matériel médicalOutils de coordination des expéditionsPlateformes de suivi de rechargeFlux de travail de contact d'urgenceÉquipes choisissant BaaS pour les produits de livraison d'oxygène

Livraison d'oxygène : instantané du backend

Les équipes mobiles et le personnel administratif voient différentes facettes de la réalité dans la livraison d'oxygène ; le travail du produit consiste à assembler ces facettes sans jeux de blâme.

Les parties prenantes peuvent vérifier la cohérence des rôles d'utilisateur pour les équipes de répartition et de soins, la gestion des emplacements de livraison pour les patients, le suivi de la pression pour chaque assignation de réservoir ici : noms, relations, et les flux de travail qu'ils permettent.

Fonctionnalités du module de livraison

Chaque carte technologique dans ce hub utilise le même schéma backend de livraison d'oxygène avec Utilisateur, SitePatient, AttributionDuRéservoir, JournalDeRéapprovisionnement, ContactD'urgence et ÉvénementD'expédition.

Rôles des utilisateurs pour les équipes de répartition et de soins

L'utilisateur stocke le nom d'utilisateur, l'email, le rôle, le numéro de téléphone et l'état actif.

Gestion des emplacements de livraison PatientSite

PatientSite contient siteName, addressLine1, city, region, postalCode et deliveryWindowStart/end.

Suivi de la PSI pour chaque TankAssignment

TankAssignment contient tankSerialNumber, psiLevel, status, assignedSite et assignedDriver.

Historique des réapprovisionnements dans le JournalDeRéapprovisionnement

Le JournalDeRéapprovisionnement suit l'attributionDuRéservoir, le tempsDeRéapprovisionnement, psiAvant, psiAprès, raisonDuRéapprovisionnement et reapprovisionnéPar.

Événements d'expédition pour les transferts de route

L'événementD'expédition stocke l'attributionDuRéservoir, le typeD'événement, le tempsD'événement, enregistréPar et noteDeLieu.

Pourquoi construire votre backend de livraison de réservoirs d'oxygène avec Back4app ?

Back4app vous donne des primitives User, PatientSite, TankAssignment, RefillLog, EmergencyContact et DispatchEvent afin que votre équipe puisse se concentrer sur une répartition sûre et des enregistrements clairs au lieu du travail d'infrastructure.

  • Suivi des réservoirs et des remplissages: TankAssignment.psiLevel, status, et RefillLog.psiBefore/psiAfter gardent le travail de livraison et de remplissage lié à la même source de vérité.
  • Coordination du site de livraison: PatientSite.deliveryWindowStart, deliveryWindowEnd, et les notes soutiennent la planification des routes et les mises à jour de transfert.
  • Intégration des contacts d'urgence: EmergencyContact se connecte à un PatientSite afin que l'envoi puisse joindre la bonne personne lorsque psiLevel est inférieur au seuil.

Construisez et ajustez rapidement les flux de travail de livraison d'oxygène avec un seul contrat backend sur toutes les plateformes.

Avantages principaux de la livraison

Un backend de livraison qui vous aide à avancer plus rapidement sans perdre de vue le PSI, les recharges ou la gestion des contacts.

Configuration de route et de site plus rapide

Commencez à partir des classes PatientSite et TankAssignment au lieu d'inventer des tables logistiques.

Contrôles de PSI plus sûrs

Utilisez TankAssignment.psiLevel, status et nextServiceDueAt pour signaler les cylindres bas avant l'expédition.

Responsabilité claire des recharges

Revoyez chaque valeur RefillLog.psiBefore et psiAfter lorsqu'un conducteur ou un technicien termine une recharge de cylindre.

Escalade d'urgence fiable

Connectez EmergencyContact au flux de livraison afin que les coordonnateurs sachent qui contacter lorsque PatientSite est retardé.

Envoyer le suivi des événements

Utilisez DispatchEvent.eventType, eventTime, et recordedBy pour montrer ce qui s'est passé lors de chaque transfert.

Flux de travail de démarrage AI

Générez rapidement l'infrastructure backend et les conseils d'intégration avec une invite structurée.

Prêt à lancer votre application de livraison d'oxygène ?

Laissez l'agent AI de Back4app structurer votre backend de livraison d'oxygène et générer le suivi PSI TankAssignment, l'historique de RefillLog, et la recherche d'EmergencyContact à partir d'une invite.

Gratuit pour commencer — 50 invites d'agent AI/mois, carte de crédit non requise

Technologie de livraison

Tout inclus dans ce modèle de backend de livraison d'oxygène.

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

Carte des relations

Modèle de relations d'entité pour le schéma de backend de livraison d'oxygène.

Voir la source du diagramme
Mermaid
erDiagram
    User ||--o{ PatientSite : "primaryContact"
    User ||--o{ TankAssignment : "assignedDriver"
    User ||--o{ RefillLog : "refilledBy"
    User ||--o{ DispatchEvent : "recordedBy"
    PatientSite ||--o{ TankAssignment : "assignedSite"
    PatientSite ||--o{ EmergencyContact : "site"
    TankAssignment ||--o{ RefillLog : "tankAssignment"
    TankAssignment ||--o{ DispatchEvent : "tankAssignment"

    User {
        String objectId PK
        String username
        String email
        String password
        String role
        String phoneNumber
        Boolean active
        Date createdAt
        Date updatedAt
    }

    PatientSite {
        String objectId PK
        String siteName
        String addressLine1
        String city
        String region
        String postalCode
        Date deliveryWindowStart
        Date deliveryWindowEnd
        String primaryContactId FK
        String notes
        Date createdAt
        Date updatedAt
    }

    TankAssignment {
        String objectId PK
        String tankSerialNumber
        Number psiLevel
        String status
        String assignedSiteId FK
        String assignedDriverId FK
        Date lastCheckedAt
        Date nextServiceDueAt
        Date createdAt
        Date updatedAt
    }

    RefillLog {
        String objectId PK
        String tankAssignmentId FK
        Date refillTime
        Number psiBefore
        Number psiAfter
        String refilledById FK
        String refillReason
        String remarks
        Date createdAt
        Date updatedAt
    }

    EmergencyContact {
        String objectId PK
        String siteId FK
        String contactName
        String relationship
        String phoneNumber
        String preferredLanguage
        Boolean isPrimary
        Date createdAt
        Date updatedAt
    }

    DispatchEvent {
        String objectId PK
        String tankAssignmentId FK
        String eventType
        Date eventTime
        String recordedById FK
        String locationNote
        Date createdAt
        Date updatedAt
    }

Flux d'intégration de dispatch

Flux d'exécution typique pour l'authentification, l'examen de TankAssignment PSI, la création de RefillLog, les mises à jour de DispatchEvent et la recherche de EmergencyContact.

Voir la source du diagramme
Mermaid
sequenceDiagram
  participant User
  participant App as Oxygen Tank Delivery App
  participant Back4app as Back4app Cloud

  User->>App: Login with dispatcher or driver account
  App->>Back4app: POST /login
  Back4app-->>App: Session token

  User->>App: Load tank assignments and PSI levels
  App->>Back4app: GET /classes/TankAssignment?include=assignedSite,assignedDriver
  Back4app-->>App: TankAssignment list

  User->>App: Open a site and check refill history
  App->>Back4app: GET /classes/RefillLog?where={"tankAssignment":...}
  Back4app-->>App: RefillLog entries

  User->>App: Save a new refill log or dispatch event
  App->>Back4app: POST /classes/RefillLog
  App->>Back4app: POST /classes/DispatchEvent
  Back4app-->>App: Saved objectIds

  App->>Back4app: Live query updates for PSI changes and emergency contact changes
  Back4app-->>App: Updated TankAssignment and EmergencyContact records

Guide de terrain

Référence complète au niveau des champs pour chaque classe dans le schéma de livraison d'oxygène.

ChampTypeDescriptionRequis
objectIdStringAuto-generated unique identifierAuto
usernameStringUser login name
emailStringUser email address
passwordStringHashed password (write-only)
roleStringRole in the app (e.g. dispatcher, driver, careTeam, patient)
phoneNumberStringPrimary contact phone number
activeBooleanWhether the account can access the app
createdAtDateAuto-generated creation timestampAuto
updatedAtDateAuto-generated last-update timestampAuto

9 champs dans User

Accès et autorisations

Comment la stratégie ACL et CLP sécurise les utilisateurs, les sites, les réservoirs, les journaux de remplissage et les contacts d'urgence.

Limites du site du patient

Seul le personnel autorisé doit créer ou mettre à jour les détails du PatientSite, y compris deliveryWindowStart, deliveryWindowEnd et notes.

Intégrité du réservoir et du remplissage

Restreindre les mises à jour de l'affectation des réservoirs et la création de journaux de remplissage aux coordinateurs d'expédition ou aux conducteurs avec un accès vérifié.

Visibilité des expéditions à portée limitée

Limiter les lectures des événements d'expédition et des contacts d'urgence à l'équipe de soins assignée, au répartiteur ou au conducteur gérant cet itinéraire.

Schéma JSON

Définition brute du schéma JSON prête à être copiée dans Back4app ou utilisée comme référence d'implémentation.

JSON
{
  "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
        },
        "phoneNumber": {
          "type": "String",
          "required": false
        },
        "active": {
          "type": "Boolean",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "PatientSite",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "siteName": {
          "type": "String",
          "required": true
        },
        "addressLine1": {
          "type": "String",
          "required": true
        },
        "city": {
          "type": "String",
          "required": true
        },
        "region": {
          "type": "String",
          "required": true
        },
        "postalCode": {
          "type": "String",
          "required": true
        },
        "deliveryWindowStart": {
          "type": "Date",
          "required": false
        },
        "deliveryWindowEnd": {
          "type": "Date",
          "required": false
        },
        "primaryContact": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "notes": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "TankAssignment",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "tankSerialNumber": {
          "type": "String",
          "required": true
        },
        "psiLevel": {
          "type": "Number",
          "required": true
        },
        "status": {
          "type": "String",
          "required": true
        },
        "assignedSite": {
          "type": "Pointer",
          "required": true,
          "targetClass": "PatientSite"
        },
        "assignedDriver": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "lastCheckedAt": {
          "type": "Date",
          "required": false
        },
        "nextServiceDueAt": {
          "type": "Date",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "RefillLog",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "tankAssignment": {
          "type": "Pointer",
          "required": true,
          "targetClass": "TankAssignment"
        },
        "refillTime": {
          "type": "Date",
          "required": true
        },
        "psiBefore": {
          "type": "Number",
          "required": true
        },
        "psiAfter": {
          "type": "Number",
          "required": true
        },
        "refilledBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "refillReason": {
          "type": "String",
          "required": true
        },
        "remarks": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "EmergencyContact",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "site": {
          "type": "Pointer",
          "required": true,
          "targetClass": "PatientSite"
        },
        "contactName": {
          "type": "String",
          "required": true
        },
        "relationship": {
          "type": "String",
          "required": true
        },
        "phoneNumber": {
          "type": "String",
          "required": true
        },
        "preferredLanguage": {
          "type": "String",
          "required": false
        },
        "isPrimary": {
          "type": "Boolean",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "DispatchEvent",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "tankAssignment": {
          "type": "Pointer",
          "required": true,
          "targetClass": "TankAssignment"
        },
        "eventType": {
          "type": "String",
          "required": true
        },
        "eventTime": {
          "type": "Date",
          "required": true
        },
        "recordedBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "locationNote": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    }
  ]
}

Construire avec l'agent AI

Utiliser l'agent AI Back4app pour générer une véritable application de livraison de réservoirs d'oxygène à partir de ce modèle, y compris le frontend, le backend, l'authentification, et les flux de réservoir, de remplissage et de contact d'urgence.

Agent AI Back4app
Prêt à construire
Créez un backend d'application de livraison de réservoir d'oxygène sur Back4app avec ce schéma et comportement exact.

Schéma :
1. Utilisateur (utilisez le système intégré de Back4app) : nom d'utilisateur, e-mail, mot de passe, rôle, numéro de téléphone, actif ; objectId, createdAt, updatedAt (système).
2. PatientSite : nomDuSite, adresseLigne1, ville, région, codePostal, débutFeneTteLivraison, finFenetreLivraison, contactPrincipal (Pointeur vers Utilisateur, requis), notes ; objectId, createdAt, updatedAt.
3. TankAssignment : numéroDeSérieDuRéservoir, niveauPSI, statut, siteAssigné (Pointeur vers PatientSite, requis), conducteurAssigné (Pointeur vers Utilisateur, requis), dernièreVérificationÀ, prochainServiceÀ ; objectId, createdAt, updatedAt.
4. RefillLog : affectationDuRéservoir (Pointeur vers TankAssignment, requis), tempsDeRemplissage, psiAvant, psiAprès, rempliPar (Pointeur vers Utilisateur, requis), raisonDeRemplissage, remarques ; objectId, createdAt, updatedAt.
5. ContactD'urgence : site (Pointeur vers PatientSite, requis), nomDuContact, relation, numéroDeTéléphone, languePréférée, estPrincipal ; objectId, createdAt, updatedAt.
6. DispatchEvent : affectationDuRéservoir (Pointeur vers TankAssignment, requis), typeÉvénement, tempsÉvénement, enregistréPar (Pointeur vers Utilisateur, requis), noteDeLocalisation ; objectId, createdAt, updatedAt.

Sécurité :
- Les expéditeurs peuvent créer et mettre à jour les enregistrements TankAssignment, RefillLog, DispatchEvent et PatientSite.
- Les conducteurs peuvent mettre à jour les vérifications PSI des TankAssignment assignés, créer des entrées RefillLog et ajouter des mises à jour DispatchEvent pour les itinéraires qu'ils gèrent.
- Les utilisateurs de l'équipe de soins peuvent voir leurs enregistrements PatientSite et les entrées ContactD'urgence, mais ne peuvent pas modifier l'historique PSI.
- Les données de ContactD'urgence doivent être visibles uniquement par les utilisateurs authentifiés impliqués dans les opérations du site ou d'expédition.

Auth :
- Inscription, connexion, déconnexion.

Comportement :
- Suivre les niveaux PSI, stocker les journaux de remplissage, attacher les contacts d'urgence et enregistrer les transferts d'expédition.
- Afficher la dernière pression du réservoir, l'historique de remplissage, la fenêtre de livraison et le contact d'urgence pour chaque site.

Livrer :
- Application Back4app avec schéma, ACL, CLP ; frontend pour tableaux d'expédition, vérifications des itinéraires de conducteur, journalisation de remplissage et recherche de contacts d'urgence.

Appuyez sur le bouton ci-dessous pour ouvrir l'Agent avec cette demande de modèle pré-remplie.

Ceci est la demande de base sans suffixe technologique. Vous pouvez adapter la pile frontend générée par la suite.

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

Testeur API

Essayez les endpoints REST et GraphQL contre le schéma de livraison d'oxygène. Les réponses utilisent des données fictives et ne nécessitent pas de compte Back4app.

Chargement du terrain de jeu…

Utilise le même schéma que ce modèle.

Choisissez votre technologie

Développez chaque carte pour voir comment intégrer PatientSite, TankAssignment et RefillLog avec votre pile choisie.

Flutter Backend de livraison d'oxygène

React Backend de livraison d'oxygène

React Natif Backend de livraison d'oxygène

Next.js Backend de livraison d'oxygène

JavaScript Backend de livraison d'oxygène

Android Backend de livraison d'oxygène

iOS Backend de livraison d'oxygène

Vue Backend de livraison d'oxygène

Angular Backend de livraison d'oxygène

GraphQL Backend de livraison d'oxygène

REST API Backend de livraison d'oxygène

PHP Backend de livraison d'oxygène

.NET Backend de livraison d'oxygène

Ce que vous obtenez avec chaque technologie

Chaque pile utilise le même schéma de backend de livraison d'oxygène et des contrats API.

Structure de données logistique d'oxygène unifiée

Gérez les enregistrements Utilisateur, PatientSite, TankAssignment, RefillLog, EmergencyContact et DispatchEvent avec un seul schéma.

Suivi PSI pour les itinéraires de livraison

Maintenez la pression du réservoir visible afin que l'expédition puisse prioriser les cylindres bas en premier.

Historique de rechargement pour les techniciens

Enregistrez psiAvant, psiAprès et tempsDeRechargement pour chaque arrêt de service.

Routage des contacts d'urgence

Liez les contacts aux dossiers PatientSite afin que l'escalade soit disponible lorsque l'itinéraire change.

REST/GraphQL APIs pour la livraison d'oxygène

Intégrer les tableaux de bord mobile, web et opérations avec le même contrat backend.

Architecture extensible pour la logistique de l'oxygène

Ajoutez des itinéraires, de l'inventaire ou des notes de service ultérieurement sans retravailler le schéma de livraison principal.

Comparaison des piles de livraison d'oxygène

Comparez la vitesse de configuration, le style SDK et le support IA à travers toutes les technologies supportées.

CadreTemps de configurationAvantage de la livraison d'oxygèneType de SDKSupport IA
Environ 5 minBase de code unique pour la livraison d'oxygène sur mobile et web.SDK tapéComplet
Moins de 5 minutesTableau de bord web rapide pour le dispatch et l'examen des PSI.SDK tapéComplet
~3–7 minApplication mobile multiplateforme pour les conducteurs et les techniciens.SDK tapéComplet
Configuration rapide (5 min)Application web rendue par le serveur pour la coordination de la livraison.SDK tapéComplet
~3–5 minIntégration web légère pour la logistique de l'oxygène.SDK tapéComplet
Environ 5 minApplication Android native pour les vérifications de route et de PSI.SDK tapéComplet
Moins de 5 minutesApplication iOS native pour les tâches de livraison et de recharge.SDK tapéComplet
~3–7 minInterface web Reactive pour les opérations de livraison d'oxygène.SDK tapéComplet
Configuration rapide (5 min)Application web pour entreprise pour les journaux de dispatch et de recharge.SDK tapéComplet
Moins de 2 minAPI GraphQL flexible pour les données de livraison d'oxygène.GraphQL APIComplet
Configuration rapide (2 min)Intégration REST API pour les systèmes de livraison d'oxygène.REST APIComplet
~3 minBackend PHP côté serveur pour la coordination des livraisons.REST APIComplet
~3–7 minBackend .NET pour les opérations de livraison d'oxygène.SDK typéComplet

Le temps de configuration reflète la durée attendue depuis le démarrage du projet jusqu'à la première requête TankAssignment ou PatientSite utilisant ce schéma de modèle.

Questions sur la livraison

Questions courantes sur la création d'un backend de livraison de réservoir d'oxygène avec ce modèle.

Comment les équipes de livraison d'oxygène maintiennent-elles l'honnêteté de la disponibilité lorsque les retours prennent du retard ou que les actifs partent en maintenance ?
Quelle est la bonne façon de lier PatientSite, TankAssignment et RefillLog aux inspections d'exécution et de retour ?
Comment ajoutons-nous de nouvelles structures de frais de livraison d'oxygène ou des bundles sans réécrire la logique de réservation ?
Comment exécuter des requêtes pour les réservoirs et les sites de livraison avec Flutter?
Comment gérer l'intégration des contacts d'urgence avec Next.js Server Actions?
Est-ce que React Native peut mettre en cache les données de PSI des réservoirs hors ligne?
Comment prévenir les modifications non autorisées de remplissage?
Quelle est la meilleure façon de montrer les itinéraires de livraison sur Android?
Comment fonctionne le flux de livraison d'oxygène de bout en bout ?
Quelles classes alimentent ce modèle de livraison de réservoir d'oxygène ?

Approuvé par des développeurs du monde entier

Rejoignez des équipes expédiant des produits de livraison d'oxygène plus rapidement avec les modèles Back4app

G2 Users Love Us Badge

Prêt à créer votre application de livraison de réservoir d'oxygène ?

Commencez votre projet de livraison d'oxygène en quelques minutes. Pas de carte de crédit requise.

Choisissez la technologie