Шаблон Backend доставки кислородных баллонов
Назначения баллонов и координация отправки
Готовый к производству backend для доставки кислородных баллонов на Back4app с доступом для пользователей, доставками PatientSite, отслеживанием PSI назначений баллонов, историей журнала заправки, поиском экстренных контактов и отслеживанием событий отправки. Включает диаграмму ЭР, словарь данных, схему JSON, площадку API и AI Agent запрос для быстрого развертывания.
Основные выводы
Этот шаблон предоставляет вам бэкенд для доставки кислорода с ролями пользователей, окнами доставки PatientSite, отслеживанием давления TankAssignment PSI, историей RefillLog и справочником EmergencyContact, чтобы координаторы могли управлять доставками с минимальным количеством взаимодействий.
- Видимость давления в баллонах — Отслеживайте TankAssignment.psiLevel, статус и lastCheckedAt, чтобы команды доставки знали, какие кислородные баллоны нуждаются в внимании.
- История пополнений, которую вы можете запросить — Записывайте каждую запись RefillLog с tankAssignment, refillTime, psiBefore, psiAfter, refillReason и refilledBy.
- Маршрутизация экстренных контактов — Свяжите записи EmergencyContact с PatientSite, чтобы персонал мог быстро действовать, когда важны deliveryWindowStart, deliveryWindowEnd или примечания по доступу.
- Координация водителей и отправлений — Используйте TankAssignment.assignedSite, assignedDriver и DispatchEvent.eventType, чтобы поддерживать четкость маршрутов и передачи.
Понимание бэкенда приложения для доставки кислородных баллонов
Плавный процесс оформления кислородной доставки скрывает десятки проверок: право на получение, конфликты, депозиты и передача на выполнение. Смоделируйте основные сущности на Back4app, чтобы дать командам доставки кислорода бэкенд, который может расти от одной площадки до многоплощадочных операций. Схема охватывает User, PatientSite, TankAssignment, RefillLog, EmergencyContact и DispatchEvent с контролем аутентификации и рабочего процесса доставки, встроенными в систему. Подключите свой предпочтительный фронтенд и доставляйте быстрее.
Лучше всего для:
Доставка кислорода: снимок бэкенда
Мобильные группы и бэк-офис видят разные аспекты реальности в доставке кислорода; задача продукта заключается в том, чтобы соединить эти аспекты без игр в обвинения.
Заинтересованные стороны могут проверить роли пользователей для диспетчерских и медицинских команд, управление местами доставки пациентов, отслеживание давления для каждой привязки баллона здесь: имена, отношения и рабочие процессы, которые они обеспечивают.
Особенности модуля доставки
Каждая карточка технологии в этом хабе использует схему бэкенда доставки кислорода с 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 в месяц, не требуется кредитная карта
Стек технологий доставки
Все включено в этот шаблон заднего плана доставки кислорода.
Схема отношений
Модель отношений сущностей для схемы бэкенда доставки кислорода.
Схема, охватывающая пользователей, пункты доставки, назначения танков, журналы пополнения, экстренные контакты и события диспетчеризации.
Просмотреть источник диаграммы
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.
Просмотреть источник диаграммы
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Полевой справочник
Полная справка по уровням полей для каждого класса в схеме доставки кислорода.
| Поле | Тип | Описание | Обязательно |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | Авто |
| username | String | User login name | |
| String | User email address | ||
| password | String | Hashed password (write-only) | |
| role | String | Role in the app (e.g. dispatcher, driver, careTeam, patient) | |
| phoneNumber | String | Primary contact phone number | — |
| active | Boolean | Whether the account can access the app | |
| createdAt | Date | Auto-generated creation timestamp | Авто |
| updatedAt | Date | Auto-generated last-update timestamp | Авто |
9 поля в User
Доступ и разрешения
Как стратегия ACL и CLP защищает пользователей, сайты, танки, записи о пополнении и экстренные контакты.
Границы сайта пациента
Только уполномоченный персонал может создавать или обновлять детали PatientSite, включая deliveryWindowStart, deliveryWindowEnd и заметки.
Целостность танка и заправок
Ограничить обновления TankAssignment и создание RefillLog только для координаторов диспетчерской службы или водителей с проверенным доступом.
Область видимости диспетчеризации
Ограничить чтение DispatchEvent и EmergencyContact только назначенной команде по уходу, диспетчеру или водителю, работающему по этому маршруту.
JSON схема
Сырая определение JSON схемы готова для копирования в Back4app или использования в качестве ссылки для реализации.
{
"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 с этой точной схемой и поведением. Схема: 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; фронтенд для диспетчерских досок, проверок маршрутов водителя, ведения журнала перезаправки и поиска экстренных контактов.
Нажмите кнопку ниже, чтобы открыть Агента с этой заполненной подсказкой.
Это базовая подсказка без суффикса технологии. Вы можете адаптировать сгенерированный фронтенд стек позже.
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 с использованием этой схемы шаблона.
Вопросы по доставке
Распространенные вопросы о создании бэкэнда доставки кислородных баллонов с использованием этого шаблона.
Готовы создать приложение для доставки кислородных баллонов?
Начните свой проект доставки кислорода за считанные минуты. Без необходимости в кредитной карте.