Доставка кислорода
Создать с AI-агентом
Backend доставки кислородных баллонов

Шаблон Backend доставки кислородных баллонов
Назначения баллонов и координация отправки

Готовый к производству backend для доставки кислородных баллонов на Back4app с доступом для пользователей, доставками PatientSite, отслеживанием PSI назначений баллонов, историей журнала заправки, поиском экстренных контактов и отслеживанием событий отправки. Включает диаграмму ЭР, словарь данных, схему JSON, площадку API и AI Agent запрос для быстрого развертывания.

Основные выводы

Этот шаблон предоставляет вам бэкенд для доставки кислорода с ролями пользователей, окнами доставки PatientSite, отслеживанием давления TankAssignment PSI, историей RefillLog и справочником EmergencyContact, чтобы координаторы могли управлять доставками с минимальным количеством взаимодействий.

  1. Видимость давления в баллонахОтслеживайте TankAssignment.psiLevel, статус и lastCheckedAt, чтобы команды доставки знали, какие кислородные баллоны нуждаются в внимании.
  2. История пополнений, которую вы можете запроситьЗаписывайте каждую запись RefillLog с tankAssignment, refillTime, psiBefore, psiAfter, refillReason и refilledBy.
  3. Маршрутизация экстренных контактовСвяжите записи EmergencyContact с PatientSite, чтобы персонал мог быстро действовать, когда важны deliveryWindowStart, deliveryWindowEnd или примечания по доступу.
  4. Координация водителей и отправленийИспользуйте TankAssignment.assignedSite, assignedDriver и DispatchEvent.eventType, чтобы поддерживать четкость маршрутов и передачи.

Понимание бэкенда приложения для доставки кислородных баллонов

Плавный процесс оформления кислородной доставки скрывает десятки проверок: право на получение, конфликты, депозиты и передача на выполнение. Смоделируйте основные сущности на Back4app, чтобы дать командам доставки кислорода бэкенд, который может расти от одной площадки до многоплощадочных операций. Схема охватывает User, PatientSite, TankAssignment, RefillLog, EmergencyContact и DispatchEvent с контролем аутентификации и рабочего процесса доставки, встроенными в систему. Подключите свой предпочтительный фронтенд и доставляйте быстрее.

Лучше всего для:

Приложений для доставки кислородных баллоновЛогистика медицинского оборудованияИнструменты координации отправленийПлатформы отслеживания пополненияРабочие процессы экстренного контактаКоманды выбирают BaaS для продуктов по доставке кислорода

Доставка кислорода: снимок бэкенда

Мобильные группы и бэк-офис видят разные аспекты реальности в доставке кислорода; задача продукта заключается в том, чтобы соединить эти аспекты без игр в обвинения.

Заинтересованные стороны могут проверить роли пользователей для диспетчерских и медицинских команд, управление местами доставки пациентов, отслеживание давления для каждой привязки баллона здесь: имена, отношения и рабочие процессы, которые они обеспечивают.

Особенности модуля доставки

Каждая карточка технологии в этом хабе использует схему бэкенда доставки кислорода с User, PatientSite, TankAssignment, RefillLog, EmergencyContact и DispatchEvent.

Роли пользователей для команд распределения и обслуживания

Пользователь хранит имя пользователя, электронную почту, роль, номер телефона и активный статус.

Управление местами доставки PatientSite

PatientSite содержит siteName, addressLine1, city, region, postalCode и deliveryWindowStart/end.

Отслеживание давления в PSI для каждого TankAssignment

TankAssignment содержит tankSerialNumber, psiLevel, статус, assignedSite и assignedDriver.

История дозаправок в RefillLog

RefillLog отслеживает tankAssignment, refillTime, psiBefore, psiAfter, refillReason и refilledBy.

События отгрузки для передачи маршрутов

DispatchEvent хранит tankAssignment, eventType, eventTime, recordedBy и locationNote.

Почему стоит создать ваш бэкенд доставки кислородных баллонов с Back4app?

Back4app предоставляет вам примитивы User, PatientSite, TankAssignment, RefillLog, EmergencyContact и DispatchEvent, чтобы ваша команда могла сосредоточиться на безопасной отправке и четких записях вместо работы с инфраструктурой.

  • Отслеживание танка и пополнения: TankAssignment.psiLevel, статус и RefillLog.psiBefore/psiAfter связывают работу по доставке и пополнению с одним источником правды.
  • Координация места доставки: PatientSite.deliveryWindowStart, deliveryWindowEnd и примечания поддерживают планирование маршрута и обновления передачи.
  • Интеграция экстренного контакта: EmergencyContact связывает с PatientSite, чтобы диспетчер мог связаться с нужным человеком, когда psiLevel ниже порога.

Быстро создавайте и настраивайте рабочие процессы доставки кислорода с помощью одного бэкенд-контракта на всех платформах.

Основные преимущества доставки

Доставка бэкенд, которая помогает вам двигаться быстрее, не теряя из виду PSI, пополнения или управление контактами.

Более быстрое создание маршрутов и сайтов

Начинайте с классов PatientSite и TankAssignment, вместо того чтобы придумывать логистические таблицы.

Безопасные проверки PSI

Используйте TankAssignment.psiLevel, статус и nextServiceDueAt, чтобы выявлять низкие баллоны перед отправкой.

Чёткая ответственность за пополнение

Проверяйте каждое значение RefillLog.psiBefore и psiAfter, когда водитель или техник завершает пополнение баллона.

Надёжное экстренное эскалирование

Соедините EmergencyContact с процессом доставки, чтобы координаторы знали, с кем связаться, если задерживается PatientSite.

Отправка события

Используйте DispatchEvent.eventType, eventTime и recordedBy, чтобы показать, что произошло во время каждого перевода.

AI рабочий процесс загрузки

Быстро создавайте серверное каркасное решение и рекомендации по интеграции с помощью одного структурированного запроса.

Готовы запустить свое приложение для доставки кислорода?

Пусть Back4app AI Agent создаст каркас вашего сервера для доставки кислорода и сгенерирует отслеживание TankAssignment PSI, историю RefillLog и поиск EmergencyContact из одного запроса.

Бесплатно для начала — 50 подсказок AI Agent в месяц, не требуется кредитная карта

Стек технологий доставки

Все включено в этот шаблон заднего плана доставки кислорода.

Фронтенд
13+ технологий
Бэкенд
Back4app
База данных
MongoDB
Аутентификация
Встроенная аутентификация + сессии
API
REST и GraphQL
В реальном времени
Live Queries

Схема отношений

Модель отношений сущностей для схемы бэкенда доставки кислорода.

Просмотреть источник диаграммы
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
    }

Поток интеграции диспетчеризации

Типичный поток выполнения для аутентификации, обзора PSI TankAssignment, создания RefillLog, обновлений DispatchEvent и поиска EmergencyContact.

Просмотреть источник диаграммы
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

Полевой справочник

Полная справка по уровням полей для каждого класса в схеме доставки кислорода.

ПолеТипОписаниеОбязательно
objectIdStringAuto-generated unique identifierАвто
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 timestampАвто
updatedAtDateAuto-generated last-update timestampАвто

9 поля в User

Доступ и разрешения

Как стратегия ACL и CLP защищает пользователей, сайты, танки, записи о пополнении и экстренные контакты.

Границы сайта пациента

Только уполномоченный персонал может создавать или обновлять детали PatientSite, включая deliveryWindowStart, deliveryWindowEnd и заметки.

Целостность танка и заправок

Ограничить обновления TankAssignment и создание RefillLog только для координаторов диспетчерской службы или водителей с проверенным доступом.

Область видимости диспетчеризации

Ограничить чтение DispatchEvent и EmergencyContact только назначенной команде по уходу, диспетчеру или водителю, работающему по этому маршруту.

JSON схема

Сырая определение JSON схемы готова для копирования в Back4app или использования в качестве ссылки для реализации.

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

Создать с AI Agent

Используйте AI Agent Back4app, чтобы создать реальное приложение для доставки кислородных баллонов из этого шаблона, включая фронтенд, бэкенд, аутентификацию и потоки танка, заправки и экстренных контактов.

Back4app AI Agent
Готовы строить
Создайте бэкенд приложения для доставки кислородных баллонов на Back4app с этой точной схемой и поведением.

Схема:
1. Пользователь (используйте встроенный Back4app): имя пользователя, электронная почта, пароль, роль, номер телефона, активный; objectId, createdAt, updatedAt (система).
2. Пациентский сайт: имя сайта, адрес1, город, регион, почтовый индекс, время начала доставки, время окончания доставки, основной контакт (Указатель на Пользователя, требуется), заметки; objectId, createdAt, updatedAt.
3. Назначение баллона: серийный номер баллона, уровень psi, статус, назначенный сайт (Указатель на Пациентский сайт, требуется), назначенный водитель (Указатель на Пользователя, требуется), последний раз проверен, следующий срок обслуживания; objectId, createdAt, updatedAt.
4. Журнал перезаправки: назначение баллона (Указатель на Назначение баллона, требуется), время перезаправки, psi до, psi после, пополнен (Указатель на Пользователя, требуется), причина перезаправки, примечания; objectId, createdAt, updatedAt.
5. Экстренный контакт: сайт (Указатель на Пациентский сайт, требуется), имя контакта, отношения, номер телефона, предпочтительный язык, основной; objectId, createdAt, updatedAt.
6. Событие отправки: назначение баллона (Указатель на Назначение баллона, требуется), тип события, время события, зафиксировано (Указатель на Пользователя, требуется), замечание о местоположении; objectId, createdAt, updatedAt.

Безопасность:
- Диспетчеры могут создавать и обновлять записи Назначения баллона, Журнала перезаправки, События отправки и Пациентского сайта.
- Водители могут обновлять назначенные проверки PSI, создавать записи Журнала перезаправки и добавлять обновления События отправки для маршрутов, которые они обрабатывают.
- Пользователи команды ухода могут просматривать записи своего Пациентского сайта и записи Экстренного контакта, но не могут редактировать историю PSI.
- Данные Экстренного контакта должны быть видимы только для аутентифицированных пользователей, участвующих в работе сайта или отправке.

Авторизация:
- Регистрация, вход, выход.

Поведение:
- Отслеживайте уровни PSI, храните журналы перезаправки, добавляйте экстренные контакты и фиксируйте передачи отправки.
- Показывайте последнее давление в баллоне, историю перезаправок, окно доставки и экстренный контакт для каждого сайта.

Доставка:
- Приложение Back4app со схемой, ACL, CLP; фронтенд для диспетчерских досок, проверок маршрутов водителя, ведения журнала перезаправки и поиска экстренных контактов.

Нажмите кнопку ниже, чтобы открыть Агента с этой заполненной подсказкой.

Это базовая подсказка без суффикса технологии. Вы можете адаптировать сгенерированный фронтенд стек позже.

Развернуть за минуты50 бесплатных подсказок / месяцНет необходимости в кредитной карте

API Тестировщик

Попробуйте REST и GraphQL конечные точки против схемы доставки кислорода. Ответы используют макетные данные и не требуют учетной записи Back4app.

Загрузка песочницы…

Использует ту же схему, что и этот шаблон.

Выберите вашу технологию

Раскройте каждую карточку, чтобы увидеть, как интегрировать PatientSite, TankAssignment и RefillLog с вашим выбранным стеком.

Flutter Бэкэнд доставки кислорода

React Бэкэнд доставки кислорода

React Native Бэкэнд доставки кислорода

Next.js Бэкэнд доставки кислорода

JavaScript Бэкэнд доставки кислорода

Android Бэкэнд доставки кислорода

iOS Бэкэнд доставки кислорода

Vue Бэкэнд доставки кислорода

Angular Бэкэнд доставки кислорода

GraphQL Бэкэнд доставки кислорода

REST API Бэкэнд доставки кислорода

PHP Бэкэнд доставки кислорода

.NET Бэкэнд доставки кислорода

Что вы получаете с каждой технологией

Каждый стек использует одну и ту же схему и API-контракты для доставки кислорода.

Унифицированная структура данных логистики кислорода

Управляйте записями User, PatientSite, TankAssignment, RefillLog, EmergencyContact и DispatchEvent с помощью одной схемы.

Отслеживание PSI для маршрутов доставки

Держите давление в баке на виду, чтобы диспетчер мог сначала приоритизировать низкие цилиндры.

История заправок для техников

Запишите psiBefore, psiAfter и refillTime для каждой остановки обслуживания.

Маршрут экстренных контактов

Свяжите контакты с записями PatientSite, чтобы эскалация была доступна при изменении маршрута.

REST/GraphQL API для доставки кислорода

Интегрируйте мобильные, веб- и операционные панели управления с одним и тем же задним контактом.

Расширяемая архитектура для логистики кислорода

Добавляйте маршруты, инвентарь или заметки по обслуживанию позже без переработки основной схемы доставки.

Сравнение стека доставки кислорода

Сравните скорость настройки, стиль SDK и поддержку ИИ во всех поддерживаемых технологиях.

ФреймворкВремя настройкиПольза от доставки кислородаТип SDKПоддержка ИИ
Около 5 минЕдиная кодовая база для доставки кислорода на мобильных устройствах и в вебе.Типизированный SDKПолный
Менее 5 минутБыстрая веб-панель для диспетчеризации и обзора PSI.Типизированный SDKПолный
~3–7 минКроссплатформенное мобильное приложение для водителей и техников.Типизированный SDKПолный
Быстрая настройка (5 мин)Веб-приложение с серверной отрисовкой для координации поставок.Типизированный SDKПолный
~3–5 минЛегкая веб-интеграция для логистики кислорода.Типизированный SDKПолный
Около 5 минНативное приложение Android для проверки маршрута и PSI.Типизированный SDKПолный
Менее 5 минутНативное приложение iOS для задач доставки и пополнения.Типизированный SDKПолный
~3–7 минReact веб-интерфейс для операций доставки кислорода.Типизированный SDKПолный
Быстрая настройка (5 мин)Корпоративное веб-приложение для журналов отправки и пополнения.Типизированный SDKПолный
Менее 2 минутГибкий GraphQL API для данных о доставке кислорода.GraphQL APIПолный
Быстрая настройка (2 мин)Интеграция REST API для систем доставки кислорода.REST APIПолный
~3 минСерверная часть PHP для координации доставки.REST APIПолный
~3–7 мин.NET бэкэнд для операций доставки кислорода.Типизированный SDKПолный

Время настройки отражает ожидаемую продолжительность от начала проекта до первого запроса TankAssignment или PatientSite с использованием этой схемы шаблона.

Вопросы по доставке

Распространенные вопросы о создании бэкэнда доставки кислородных баллонов с использованием этого шаблона.

Как команды доставки кислорода поддерживают доступность, когда возвраты задерживаются или активы отправляются на обслуживание?
Как правильно связать PatientSite, TankAssignment и RefillLog с проверками выполнения и возвратов?
Как мы можем добавить новые структуры или пакеты сборов за доставку кислорода, не переписывая логику бронирования?
Как мне выполнять запросы к резервуарам и точкам доставки с помощью Flutter?
Как мне управлять интеграцией экстренных контактов с Next.js Server Actions?
Может ли нативный кэш React сохранять данные о PSI резервуаров оффлайн?
Как мне предотвратить несанкционированные изменения пополнения?
Как лучше всего показать маршруты доставки на Android?
Как работает поток доставки кислорода от начала до конца?
Какие классы управляют этим шаблоном доставки кислородного баллона?

Доверяют разработчики по всему миру

Присоединяйтесь к командам, которые быстрее поставляют продукты доставки кислорода с помощью шаблонов Back4app

G2 Users Love Us Badge

Готовы создать приложение для доставки кислородных баллонов?

Начните свой проект доставки кислорода за считанные минуты. Без необходимости в кредитной карте.

Выберите технологию