氧氣罐配送應用程式後端模板
罐分配與調度協調
一個在 Back4app 上的生產就緒 氧氣罐配送後端,具有用戶訪問、PatientSite 配送、TankAssignment PSI 跟蹤、補充日誌歷史、緊急聯絡人查詢和 DispatchEvent 跟蹤。包括 ER 圖、數據字典、JSON 架構、API 操作平台以及一個快速引導的 AI 代理 提示。
關鍵要點
此模板為您提供了一個氧氣配送後端,具有用戶角色、患者網站配送時間窗口、罐分配PSI跟踪、補給日誌歷史和緊急聯絡人查詢,協調人員可以更輕鬆地管理配送,減少來回聯絡。
- 罐PSI可見性 — 跟踪TankAssignment.psiLevel、狀態和lastCheckedAt,以便派送團隊知道哪些氧氣罐需要注意。
- 您可以查詢的補給歷史 — 記錄每個補給日誌條目,包括tankAssignment、refillTime、psiBefore、psiAfter、refillReason和refilledBy。
- 緊急聯絡人路由 — 將緊急聯絡人記錄鏈接到患者網站,以便在deliveryWindowStart、deliveryWindowEnd或訪問備忘錄重要的時候,工作人員可以迅速採取行動。
- 調度和駕駛員協調 — 使用 TankAssignment.assignedSite、assignedDriver 和 DispatchEvent.eventType 來保持路線和交接的清晰。
理解氫氣罐配送應用後端
一個順暢的氧氣配送結帳隱藏了數十項檢查:合格性、衝突、押金以及交接到履行的過程。在 Back4app 上建模核心實體,為氧氣配送團隊提供一個可以從單一場地擴展到多地點操作的後端。該模式涵蓋用戶、病人場地、罐子分配、補給日誌、緊急聯絡人和調度事件,並內建身份驗證和交付工作流程控制。連接您喜好的前端,並加快發貨速度。
最佳用途:
氧氣配送:後端快照
移動隊伍和後勤人員在氧氣配送上看到不同的現實片段;產品的工作是將這些片段無責任地拼接在一起。
利益相關者可以在這裡檢查派遣和護理團隊的用戶角色,患者位置配送管理,對每個罐子分配覆蓋的 psi 跟蹤:姓名、關係以及他們所啟用的工作流程。
交付模組功能
此中心中的每個技術卡都使用相同的氧氣供應後端架構,包括User、PatientSite、TankAssignment、RefillLog、EmergencyContact和DispatchEvent。
調度和護理團隊的用戶角色
用戶存儲用戶名、電子郵件、角色、電話號碼和活躍狀態。
病人網站交付位置管理
病人網站包含站點名稱、地址行1、城市、區域、郵政編碼和交付時間窗口的開始/結束。
每個罐分配的PSI跟蹤
罐分配包含罐序列號、psi水平、狀態、分配站點和分配司機。
在RefillLog中的加油歷史
RefillLog追蹤tankAssignment、refillTime、psiBefore、psiAfter、refillReason和refilledBy。
路由交接的調度事件
DispatchEvent存儲tankAssignment、eventType、eventTime、recordedBy和locationNote。
為何使用 Back4app 建立您的氧氣罐配送後端?
Back4app 為您提供用戶、患者站點、罐子分配、補貨記錄、緊急聯絡和派遣事件原始功能,以便您的團隊專注於安全的派遣和清晰的記錄,而不是基礎設施工作。
- •油箱和補充追蹤: TankAssignment.psiLevel、狀態和 RefillLog.psiBefore/psiAfter 將送貨和補充工作繫結到相同的真實來源。
- •交付地點協調: PatientSite.deliveryWindowStart、deliveryWindowEnd 和備註支持路線規劃和交接更新。
- •緊急聯絡人整合: EmergencyContact 連結到 PatientSite,以便派遣可以在 psiLevel 低於閾值時聯繫正確的人。
快速構建和調整氧氣配送工作流程,通過所有平台的一個後端合約。
核心配送優勢
一個能幫助您更快移動的配送後端,讓您不會忽視PSI、補充或聯繫處理。
更快的路線和站點設置
從PatientSite和TankAssignment類別開始,而不是自行創建物流表。
更安全的PSI檢查
使用TankAssignment.psiLevel、status和nextServiceDueAt在發貨前顯示低氣瓶。
清晰的補充責任
當司機或技術人員完成氣瓶補充時,重新檢查每個RefillLog.psiBefore和psiAfter的值。
可靠的緊急升級
將EmergencyContact連接到配送流程中,以便協調員知道在PatientSite延遲時該聯繫誰。
派發事件痕跡
使用 DispatchEvent.eventType、eventTime 和 recordedBy 來顯示每次交接期間發生的事情。
AI 引導工作流程
透過一個結構化的提示快速生成後端骨架和集成指南。
準備好啟動您的氧氣配送應用程式了嗎?
讓 Back4app AI 代理搭建您的氧氣配送後端,並從一個提示中生成 TankAssignment PSI 追蹤、RefillLog 歷史和 EmergencyContact 查找。
免費開始 — 每月 50 個 AI 代理提示,無需信用卡
配送技術架構
這個氧氣配送後端模板包含所有內容。
關係圖
氧氣傳遞後端架構的實體關係模型。
涵蓋用戶、交付網站、油罐分配、補充日誌、緊急聯絡人和派遣事件的架構。
查看圖表來源
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 審查、補充日誌創建、派遣事件更新和緊急聯絡人查找的典型運行時流程。
查看圖表來源
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 策略如何保護使用者、網站、坦克、補充日誌和緊急聯絡人。
病人網站邊界
只有授權的工作人員可以創建或更新病人網站詳細資訊,包括 deliveryWindowStart、deliveryWindowEnd 和備註。
坦克和補充完整性
限制坦克分配更新和補充日誌的創建僅限於具有驗證訪問權限的調度協調員或司機。
範圍調度可見性
將調度事件和緊急聯繫人的讀取限制在負責該路線的指定護理團隊、調度員或司機。
JSON Schema
原始 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 代理構建
使用 Back4app AI 代理從此模板生成真正的氧氣罐送貨應用,包括前端、後端、身份驗證、以及罐、補充和緊急聯繫流。
在 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水平,存儲補充日誌,附加緊急聯繫人,記錄發送交接。 - 顯示每個站點的最新罐壓、補充歷史、交付窗口和緊急聯繫人。 交付: - 帶有架構、ACL和CLP的 Back4app 應用程序;用於調度板、司機路線檢查、補充登記和緊急聯繫人查詢的前端。
按下面的按鈕以使用此模板提示預填寫的內容打開代理。
這是沒有技術後綴的基本提示。您可以在之後調整生成的前端堆疊。
API 測試器
嘗試 REST 和 GraphQL 端點對照氧氣交付架構。響應使用模擬數據,無需 Back4app 帳戶。
使用與此範本相同的架構。
選擇您的技術
展開每個卡片以查看如何將 PatientSite、TankAssignment 和 RefillLog 與您選擇的技術棧整合。
Flutter 氧氣傳輸後端
React 氧氣傳輸後端
React 原生 氧氣傳輸後端
Next.js 氧氣傳輸後端
JavaScript 氧氣傳輸後端
Android 氧氣傳輸後端
iOS 氧氣傳輸後端
Vue 氧氣傳輸後端
Angular 氧氣傳輸後端
GraphQL 氧氣傳輸後端
REST API 氧氣傳輸後端
PHP 氧氣傳輸後端
.NET 氧氣傳輸後端
每項技術的價值
每個技術棧都使用相同的氧氣輸送後端架構和 API 合約。
統一的氧氣物流數據結構
使用一個架構管理用戶、PatientSite、TankAssignment、RefillLog、EmergencyContact 和 DispatchEvent 記錄。
送貨路線的 PSI 追蹤
保持油箱壓力可見,以便調度可以優先處理低氣瓶。
為技術人員補充記錄歷史
記錄每個服務停靠點的 psiBefore、psiAfter 和 refillTime。
緊急聯絡路由
將聯絡人綁定到 PatientSite 記錄,以便在路徑變更時可以進行升級。
REST/GraphQL 的氧氣交付 APIs
將移動端、網頁和操作面板與相同的後端合約整合。
可擴展的氧氣物流架構
稍後添加路由、庫存或服務說明,而無需重新設計核心交付架構。
氧氣交付堆疊比較
比較所有支持技術的設置速度、SDK類型和AI支持。
| 框架 | 設置時間 | 氧氣交付好處 | SDK類型 | AI支持 |
|---|---|---|---|---|
| 大約 5 分鐘 | 對於移動和網路的氧氣傳遞,單一代碼庫。 | 類型 SDK | 完全 | |
| 少於 5 分鐘 | 快速網頁儀表板,用於調度和 PSI 審查。 | 類型 SDK | 完全 | |
| 約 3–7 分鐘 | 適合司機和技術人員的跨平台移動應用程式。 | 類型 SDK | 完全 | |
| 快速 (5 分鐘) 設定 | 伺服器渲染的網絡應用程序用於交付協調。 | 輸入式 SDK | 完全 | |
| 約 3–5 分鐘 | 輕量級的網絡整合用於氧氣物流。 | 輸入式 SDK | 完全 | |
| 約 5 分鐘 | 原生 Android 應用程序用於路線和 PSI 檢查。 | 輸入式 SDK | 完全 | |
| 少於 5 分鐘 | 本地 iOS 應用程式用於配送和補給任務。 | 輸入式 SDK | 完全 | |
| 約 3–7 分鐘 | React 網頁 UI 用於氧氣配送操作。 | 已輸入的 SDK | 完全 | |
| 快速(5 分鐘)設置 | 企業網頁應用程式用於派送和補給日誌。 | 已輸入的 SDK | 完全 | |
| 少於 2 分鐘 | 靈活的 GraphQL API 用於氧氣配送數據。 | GraphQL API | 完全 | |
| 快速設置 (2分鐘) | REST API 整合氧氣供應系統。 | REST API | 完全 | |
| 約3分鐘 | 伺服器端 PHP 後端協調交付。 | REST API | 完全 | |
| 約3–7分鐘 | .NET 後端用於氧氣供應操作。 | 類型化 SDK | 完全 |
設置時間反映從項目引導到使用此模板架構的第一次TankAssignment或PatientSite查詢的預期持續時間。
交付問題
有關使用此模板構建氧氣罐交付後端的常見問題。