Entrega de oxígeno
Construir con Agente AI
Backend de Entrega de Tanques de Oxígeno

Plantilla de Backend de Entrega de Tanques de Oxígeno
Asignaciones de Tanques y Coordinación de Despacho

Un backend de entrega de tanques de oxígeno listo para producción en Back4app con acceso de usuario, entregas de PatientSite, seguimiento de PSI de TankAssignment, historial de RefillLog, búsqueda de EmergencyContact, y seguimiento de DispatchEvent. Incluye diagrama ER, diccionario de datos, esquema JSON, área de pruebas de API, y un aviso de Agente de IA para un bootstrap rápido.

Puntos clave

Esta plantilla te proporciona un backend de entrega de oxígeno con roles de Usuario, ventanas de entrega de SitioDelPaciente, seguimiento de PSI de AsignaciónDeTanque, historial de RegistroDeRecarga y búsqueda de ContactoDeEmergencia para que los coordinadores puedan gestionar las entregas con menos idas y vueltas.

  1. Visibilidad de PSI del tanqueRastrear TankAssignment.psiLevel, estado y lastCheckedAt para que los equipos de despacho sepan qué tanques de oxígeno necesitan atención.
  2. Historial de recargas que puedes consultarRegistra cada entrada de RegistroDeRecarga con tankAssignment, refillTime, psiBefore, psiAfter, refillReason y refilledBy.
  3. Enrutamiento de contacto de emergenciaVincula los registros de ContactoDeEmergencia a un SitioDelPaciente para que el personal pueda actuar rápidamente cuando importan deliveryWindowStart, deliveryWindowEnd o notas de acceso.
  4. Coordinación de despacho y conductorUtiliza TankAssignment.assignedSite, assignedDriver y DispatchEvent.eventType para mantener las rutas y traspasos claros.

Entendiendo el backend de la aplicación de entrega de tanques de oxígeno

Un proceso de pago de entrega de oxígeno fluido oculta docenas de verificaciones: elegibilidad, conflictos, depósitos y el traspaso a la entrega. Modela las entidades centrales en Back4app para dar a los equipos de entrega de oxígeno un backend que pueda crecer de un solo patio a operaciones multi-sitio. El esquema cubre User, PatientSite, TankAssignment, RefillLog, EmergencyContact y DispatchEvent con controles de autenticación y flujo de trabajo de entrega integrados. Conecta tu frontend preferido y envía más rápido.

Mejor para:

Aplicaciones de entrega de tanques de oxígenoLogística de equipos médicosHerramientas de coordinación de despachoPlataformas de seguimiento de recargasFlujos de trabajo de contacto de emergenciaEquipos que eligen BaaS para productos de entrega de oxígeno

Entrega de oxígeno: instantánea del backend

Los equipos móviles y el personal de la oficina central ven diferentes fragmentos de la realidad en la entrega de oxígeno; el trabajo del producto es unir esos fragmentos sin juegos de culpa.

Los interesados pueden verificar los roles de usuario para los equipos de despacho y atención, la gestión de la ubicación de entrega del sitio del paciente y el seguimiento de psi para cada cobertura de asignación de tanque aquí: nombres, relaciones y los flujos de trabajo que habilitan.

Características del módulo de entrega

Cada tarjeta de tecnología en este hub utiliza el mismo esquema de backend de entrega de oxígeno con User, PatientSite, TankAssignment, RefillLog, EmergencyContact y DispatchEvent.

Roles de usuario para equipos de despacho y atención

El usuario almacena nombre de usuario, correo electrónico, rol, número de teléfono y estado activo.

Gestión de ubicación de entrega de PatientSite

PatientSite contiene siteName, addressLine1, city, region, postalCode y deliveryWindowStart/end.

Seguimiento de PSI para cada TankAssignment

TankAssignment contiene tankSerialNumber, psiLevel, status, assignedSite y assignedDriver.

Historial de recarga en RefillLog

RefillLog rastrea tankAssignment, refillTime, psiBefore, psiAfter, refillReason y refilledBy.

Eventos de despacho para traspasos de ruta

DispatchEvent almacena tankAssignment, eventType, eventTime, recordedBy y locationNote.

¿Por qué construir tu backend de entrega de tanques de oxígeno con Back4app?

Back4app te proporciona primitivas User, PatientSite, TankAssignment, RefillLog, EmergencyContact y DispatchEvent para que tu equipo pueda centrarse en un despacho seguro y registros claros en lugar de trabajo de infraestructura.

  • Seguimiento de tanque y recarga: TankAssignment.psiLevel, estado y RefillLog.psiBefore/psiAfter mantienen el trabajo de entrega y recarga vinculado a la misma fuente de verdad.
  • Coordinación del sitio de entrega: PatientSite.deliveryWindowStart, deliveryWindowEnd y notas apoyan la planificación de rutas y las actualizaciones de transferencia.
  • Integración de contacto de emergencia: EmergencyContact se vincula a un PatientSite para que el despacho pueda contactar a la persona correcta cuando psiLevel está por debajo del umbral.

Construya y ajuste flujos de trabajo de entrega de oxígeno rápidamente con un contrato de backend en todas las plataformas.

Beneficios centrales de entrega

Un backend de entrega que te ayuda a moverte más rápido sin perder de vista PSI, recargas o manejo de contactos.

Configuración de ruta y sitio más rápida

Comienza desde las clases PatientSite y TankAssignment en lugar de inventar tablas logísticas.

Verificaciones de PSI más seguras

Usa TankAssignment.psiLevel, status y nextServiceDueAt para identificar cilindros bajos antes del despacho.

Responsabilidad clara en recargas

Revisa cada valor de RefillLog.psiBefore y psiAfter cuando un conductor o técnico complete una recarga de tanque.

Escalación de emergencia confiable

Conecta EmergencyContact con el flujo de entrega para que los coordinadores sepan a quién contactar cuando un PatientSite se retrasa.

Rastrear eventos de despacho

Utiliza DispatchEvent.eventType, eventTime, y recordedBy para mostrar lo que ocurrió durante cada entrega.

Flujo de trabajo de inicio rápido de IA

Genera andamiaje de backend y guía de integración rápidamente con un prompt estructurado.

¿Listo para lanzar tu aplicación de entrega de oxígeno?

Deja que el agente de IA de Back4app estructure tu backend de entrega de oxígeno y genere el seguimiento de TankAssignment PSI, historial de RefillLog, y búsqueda de EmergencyContact desde un prompt.

Gratis para empezar — 50 prompts de agente de IA/mes, no se requiere tarjeta de crédito

Tecnología de Entrega

Todo incluido en esta plantilla de backend de entrega de oxígeno.

Frontend
13+ tecnologías
Backend
Back4app
Base de datos
MongoDB
Autenticación
Autenticación incorporada + sesiones
API
REST y GraphQL
Tiempo real
Live Queries

Mapa de relaciones

Modelo de relación de entidad para el esquema de backend de entrega de oxígeno.

Ver fuente del diagrama
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
    }

Flujo de Integración de Despacho

Flujo de tiempo de ejecución típico para autenticación, revisión de PSI de AsignaciónTanque, creación de RegistroRecarga, actualizaciones de EventoDespacho y búsqueda de ContactoEmergencia.

Ver fuente del diagrama
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

Guía de Campo

Referencia completa a nivel de campo para cada clase en el esquema de entrega de oxígeno.

CampoTipoDescripciónRequerido
objectIdStringAuto-generated unique identifierAutomático
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 timestampAutomático
updatedAtDateAuto-generated last-update timestampAutomático

9 campos en User

Acceso y Permisos

Cómo la estrategia ACL y CLP asegura usuarios, sitios, tanques, registros de recarga y contactos de emergencia.

Límites del sitio del paciente

Solo el personal autorizado debe crear o actualizar los detalles del PatientSite, incluyendo deliveryWindowStart, deliveryWindowEnd y notas.

Integridad del tanque y recarga

Restringir las actualizaciones de asignación de tanques y la creación de registros de recarga a coordinadores de despacho o conductores con acceso verificado.

Visibilidad de despacho con alcance

Limitar las lecturas de eventos de despacho y contactos de emergencia al equipo de atención asignado, al despachador o al conductor que maneja esa ruta.

Esquema JSON

Definición de esquema JSON en bruto lista para copiar en Back4app o usar como referencia de implementación.

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
        }
      }
    }
  ]
}

Construir con Agente de IA

Usa el Agente de IA de Back4app para generar una aplicación real de entrega de tanques de oxígeno a partir de esta plantilla, incluyendo frontend, backend, autenticación, y flujos de tanque, recarga y contacto de emergencia.

Agente de IA de Back4app
Listo para construir
Crea un backend de aplicación de entrega de tanques de oxígeno en Back4app con este esquema y comportamiento exactos.

Esquema:
1. Usuario (usar el integrado de Back4app): nombre de usuario, correo electrónico, contraseña, rol, número de teléfono, activo; objectId, createdAt, updatedAt (sistema).
2. SitioPaciente: nombreDelSitio, líneaDeDirección1, ciudad, región, códigoPostal, inicioVentanaDeEntrega, finVentanaDeEntrega, contactoPrincipal (Puntero a Usuario, requerido), notas; objectId, createdAt, updatedAt.
3. AsignaciónDeTanque: númeroDeSerieDelTanque, nivelPsi, estado, sitioAsignado (Puntero a SitioPaciente, requerido), conductorAsignado (Puntero a Usuario, requerido), últimaVerificaciónEn, próximoServicioDebidoEn; objectId, createdAt, updatedAt.
4. RegistroDeRecarga: asignaciónDeTanque (Puntero a AsignaciónDeTanque, requerido), tiempoDeRecarga, psiAntes, psiDespués, recargadoPor (Puntero a Usuario, requerido), razónDeRecarga, observaciones; objectId, createdAt, updatedAt.
5. ContactoDeEmergencia: sitio (Puntero a SitioPaciente, requerido), nombreDeContacto, relación, númeroDeTeléfono, idiomaPreferido, esPrincipal; objectId, createdAt, updatedAt.
6. EventoDeDespacho: asignaciónDeTanque (Puntero a AsignaciónDeTanque, requerido), tipoDeEvento, tiempoDeEvento, registradoPor (Puntero a Usuario, requerido), notaDeUbicación; objectId, createdAt, updatedAt.

Seguridad:
- Los despachadores pueden crear y actualizar registros de AsignaciónDeTanque, RegistroDeRecarga, EventoDeDespacho y SitioPaciente.
- Los conductores pueden actualizar las verificaciones de PSI de la AsignaciónDeTanque asignada, crear entradas de RegistroDeRecarga y agregar actualizaciones de EventoDeDespacho para las rutas que manejan.
- Los usuarios del equipo de atención pueden ver sus registros de SitioPaciente y entradas de ContactoDeEmergencia, pero no pueden editar el historial de PSI.
- Los datos de ContactoDeEmergencia deben ser visibles solo para los usuarios autenticados involucrados en el sitio o operación de despacho.

Autenticación:
- Registro, inicio de sesión, cierre de sesión.

Comportamiento:
- Rastrear niveles de PSI, almacenar registros de recarga, adjuntar contactos de emergencia y registrar transferencias de despacho.
- Mostrar la última presión del tanque, historial de recargas, ventana de entrega y contacto de emergencia para cada sitio.

Entrega:
- Aplicación Back4app con esquema, ACLs, CLPs; frontend para tableros de despacho, verificaciones de rutas de conductores, registro de recargas y búsqueda de contactos de emergencia.

Presiona el botón de abajo para abrir el Agente con este aviso de plantilla ya completado.

Este es el aviso base sin un sufijo de tecnología. Puedes adaptar el stack de frontend generado después.

Desplegar en minutos50 avisos gratis / mesNo se requiere tarjeta de crédito

Probador de API

Prueba los endpoints de REST y GraphQL contra el esquema de entrega de oxígeno. Las respuestas utilizan datos simulados y no requieren una cuenta de Back4app.

Cargando entorno de pruebas…

Utiliza el mismo esquema que esta plantilla.

Elige tu tecnología

Expande cada tarjeta para ver cómo integrar PatientSite, TankAssignment y RefillLog con tu pila elegida.

Backend de entrega de oxígeno Flutter

Backend de entrega de oxígeno React

Backend de entrega de oxígeno React Nativo

Backend de entrega de oxígeno Next.js

Backend de entrega de oxígeno JavaScript

Backend de entrega de oxígeno Android

Backend de entrega de oxígeno iOS

Backend de entrega de oxígeno Vue

Backend de entrega de oxígeno Angular

Backend de entrega de oxígeno GraphQL

Backend de entrega de oxígeno REST API

Backend de entrega de oxígeno PHP

Backend de entrega de oxígeno .NET

Lo que obtienes con cada tecnología

Cada pila utiliza el mismo esquema de backend de entrega de oxígeno y contratos API.

Estructura de datos unificada de logística de oxígeno

Gestiona registros de Usuario, PatientSite, TankAssignment, RefillLog, EmergencyContact y DispatchEvent con un solo esquema.

Seguimiento de PSI para rutas de entrega

Mantener la presión del tanque visible para que el despacho pueda priorizar los cilindros bajos primero.

Historial de recargas para técnicos

Registrar psiAntes, psiDespués y tiempoDeRecarga para cada parada de servicio.

Enrutamiento de contacto de emergencia

Vincular contactos a registros de PatientSite para que la escalación esté disponible cuando cambie la ruta.

REST/GraphQL APIs para entrega de oxígeno

Integrar paneles de control móviles, web y de operaciones con el mismo contrato de backend.

Arquitectura extensible para logística de oxígeno

Agregar rutas, inventario o notas de servicio más tarde sin rehacer el esquema de entrega central.

Comparación de Pilas de Entrega de Oxígeno

Compara la velocidad de configuración, el estilo del SDK y el soporte de IA a través de todas las tecnologías soportadas.

MarcoTiempo de ConfiguraciónBeneficio de Entrega de OxígenoTipo de SDKSoporte de IA
Acerca de 5 minBase de código única para la entrega de oxígeno en móvil y web.SDK tipadoCompleto
Menos de 5 minutosDashboard web rápido para despacho y revisión de PSI.SDK tipadoCompleto
~3–7 minAplicación móvil multiplataforma para conductores y técnicos.SDK tipadoCompleto
Configuración rápida (5 min)Aplicación web renderizada en servidor para coordinación de entrega.SDK escritoCompleto
~3–5 minIntegración web ligera para logística de oxígeno.SDK escritoCompleto
Acerca de 5 minAplicación nativa de Android para revisiones de ruta y PSI.SDK escritoCompleto
Menos de 5 minutosAplicación nativa iOS para tareas de entrega y recarga.SDK escritoCompleto
~3–7 minInterfaz web Reactiva para operaciones de entrega de oxígeno.SDK escritoCompleto
Configuración rápida (5 min)Aplicación web empresarial para registros de despacho y recarga.SDK escritoCompleto
Menos de 2 minAPI flexible GraphQL para datos de entrega de oxígeno.API GraphQLCompleto
Configuración rápida (2 min)Integración de REST API para sistemas de entrega de oxígeno.REST APICompleto
~3 minBackend de PHP del lado del servidor para la coordinación de entregas.REST APICompleto
~3–7 minBackend de .NET para operaciones de entrega de oxígeno.SDK tipadoCompleto

El tiempo de configuración refleja la duración esperada desde el arranque del proyecto hasta la primera consulta de TankAssignment o PatientSite utilizando este esquema de plantilla.

Preguntas sobre la entrega

Preguntas comunes sobre la construcción de un backend de entrega de tanques de oxígeno con esta plantilla.

¿Cómo mantienen los equipos de entrega de oxígeno la disponibilidad real cuando las devoluciones se retrasan o los activos salen para mantenimiento?
¿Cuál es la forma correcta de vincular PatientSite, TankAssignment y RefillLog a inspecciones de cumplimiento y devolución?
¿Cómo agregamos nuevas estructuras de tarifas o paquetes de entrega de oxígeno sin reescribir la lógica de reserva?
¿Cómo hago consultas para tanques y sitios de entrega con Flutter?
¿Cómo gestiono la integración de contactos de emergencia con Next.js Server Actions?
¿Puede React Native almacenar en caché los datos de PSI del tanque sin conexión?
¿Cómo evito ediciones no autorizadas de recargas?
¿Cuál es la mejor manera de mostrar rutas de entrega en Android?
¿Cómo funciona el flujo de entrega de oxígeno de principio a fin?
¿Qué clases alimentan esta plantilla de entrega de tanques de oxígeno?

Confiado por desarrolladores en todo el mundo

Únete a equipos que envían productos de entrega de oxígeno más rápido con plantillas de Back4app

G2 Users Love Us Badge

¿Listo para construir tu aplicación de entrega de tanques de oxígeno?

Comienza tu proyecto de entrega de oxígeno en minutos. No se requiere tarjeta de crédito.

Elegir Tecnología