症状检查应用后台模板
指导性入院调查、分诊结果及决策树评估
一个生产就绪的症状检查后台在Back4app,包括入院调查、临床逻辑树、分诊结果、用户资料和审计轨迹。包括ER图、数据字典、JSON schema、API游乐场,以及用于快速引导的AI代理提示。
关键要点
此模板提供一个症状检查后端,具有调查、决策树、结果、用户和审计模型,以便您的团队可以专注于临床内容和用户体验。
- 有意见的接收模型 — 跟踪调查定义、问题变体和用户响应,以可靠地重建接收会话。
- 临床逻辑节点 — 将决策树表示为链接的 DecisionNode 记录,以便将评估逻辑与客户端代码解耦。
- 分流结果 — 存储确定性的分流结果(建议、紧急程度、推荐的后续步骤)以用于下游分析和路由。
- 审计与可解释性 — 捕捉决策路径和用户输入,以便结果可供临床医生和合规审查审计与解释。
- 跨平台 API — REST 和 GraphQL 端点为移动端和 Web 客户端提供一致的输入和分类契约。
症状检查应用后端模板是什么?
Back4app 是一种后端即服务 (BaaS),用于快速产品交付。症状检查应用后端模板是用于调查、决策节点、调查响应、分类结果、用户档案和审计条目的预构建架构。连接您首选的前端 (React、Flutter、Next.js 等) 并更快发布。
最佳适用:
概述
一个可靠的症状检查器需要结构化的入院数据、明确的决策逻辑和可审计的结果来支持分类和分析。
该模板定义了Survey、DecisionNode、UserProfile、SurveyResponse、TriageOutcome和AuditEntry,并建立合理的所有权和验证规则以支持临床入院工作流程。
核心症状检查器功能
该中心的每个技术卡片都使用相同的症状检查后端架构,包括调查、决策节点、用户配置文件、调查响应、分诊结果和审计条目。
调查定义和版本控制
调查类存储标题、版本、起始节点和元数据,以便创作引导式采集流程。
决策节点树
决策节点建模问题、分支逻辑、条件表达式和指向后续节点的指针。
调查反馈跟踪
调查反馈存储用户答案、时间戳以及通过决策树评估的路径。
分流结果记录
分流结果捕获评估的级别(自我护理、紧急、急救)、建议文本和推荐的下一步。
用户配置文件管理
用户配置文件将Back4app用户账户链接到在分流过程中使用的人口统计和临床元数据。
可解释的审计条目
AuditEntry 记录每个关键评估和结果的参与者、操作、上下文和有效负载。
为什么要使用 Back4app 构建您的症状检查器后端?
Back4app 提供对 Blocks 的托管构建,用于 intake、决策逻辑和分诊,以便您的团队可以专注于临床内容、用户体验和集成。
- •调查和内容管理: 撰写调查并对其版本进行管理,以便 intake 流程可以在保留早期会话以便复审的情况下不断发展。
- •确定性临床逻辑: 将决策节点存储为数据,以便规则可审计、可测试且可编辑,而无需向客户端应用程序发布新版本。
- •灵活的 API + 审计: 使用 REST 和 GraphQL 进行客户端访问,并记录详细的审计条目,以捕获输入和决策路径以便解释。
快速撰写、测试和部署症状分诊流程,配备支持多个前端的托管后端合同。
核心优势
一个症状分诊后端,帮助您快速迭代,同时保持决策逻辑可审计和内容驱动。
快速内容迭代
撰写和版本调查及决策节点,无需为每次内容变更发布客户端版本。
可解释的结果
保存决策路径和输入,以便临床医生和审计员可以重建特定分诊建议的原因。
一致的分诊结果
使用确定性规则评估,确保相同输入在不同平台上产生可重复的结果。
权限内容编辑
通过基于角色的ACL和云代码检查控制谁可以撰写或发布调查内容。
分析准备好的数据
捕获结构化的回答和结果,以便产品和临床团队可以分析使用情况和安全信号。
AI辅助的引导工作流程
快速使用现成的AI代理提示种子调查、节点和示例分诊结果。
准备好启动您的症状分诊平台了吗?
让 Back4app AI 代理为您的症状检查器后端搭建框架,并从一个提示中生成调查、决策节点、响应、结果和审计日志。
免费开始 - 每月 50 个 AI 代理提示,无需信用卡
技术栈
此症状检查器后端模板中包含的一切。
ER 图
症状检查器后端架构的实体关系模型。
涵盖调查、决策节点、用户档案、响应、分诊结果和审计条目的架构。
查看图表源
erDiagram
SymptomSurvey ||--o{ DecisionNode : "contains"
DecisionNode ||--o{ DecisionNode : "branches to"
DecisionNode }|..|{ Advice : "recommends"
PatientProfile ||--o{ Encounter : "starts"
SymptomSurvey ||--o{ Encounter : "used in"
Advice ||--o{ Encounter : "applies to"
SymptomSurvey {
String objectId PK
String title
String description
String version
Boolean isActive
Array nodes FK
Date createdAt
Date updatedAt
}
DecisionNode {
String objectId PK
String questionText
Array options FK
Object nextMap
Boolean isTerminal
Pointer advice FK
Date createdAt
Date updatedAt
}
Advice {
String objectId PK
String title
String description
String urgency
String followUp
Date createdAt
Date updatedAt
}
PatientProfile {
String objectId PK
Pointer user FK
String fullName
Date birthDate
String sex
String contact
Array medicalHistory FK
Date createdAt
Date updatedAt
}
Encounter {
String objectId PK
Pointer patient FK
Pointer survey FK
Object responses
Array decisionPath FK
Pointer recommendedAdvice FK
Number riskScore
String status
Date createdAt
Date updatedAt
}
AuditLog {
String objectId PK
Pointer actor FK
String entityType
String entityId
String action
String summary
Object metadata
Date createdAt
Date updatedAt
}
集成流程
典型运行流程,包括认证、引导录入、决策评估和分诊持久化。
查看图表源
sequenceDiagram
participant User
participant App as Symptom Checker App
participant Back4app as Back4app Cloud
User->>App: Open app and Login
App->>Back4app: POST /login
Back4app-->>App: Session token and patient context
User->>App: Request active triage surveys
App->>Back4app: GET /classes/SymptomSurvey?where={"isActive":true}
Back4app-->>App: List of SymptomSurvey
User->>App: Start survey "Respiratory Triage"
App->>Back4app: POST /classes/Encounter (patient, survey, status: in_progress)
Back4app-->>App: Encounter objectId
User->>App: Answer node Q1 -> "Yes"
App->>Back4app: PUT /classes/Encounter/{id} (append responses, decisionPath)
Back4app-->>App: Updated Encounter
User->>App: Complete survey
App->>Back4app: PUT /classes/Encounter/{id} (status: completed) + POST /classes/AuditLog
Back4app-->>App: Encounter with recommendedAdvice (pointer) and riskScore
Back4app-->>App: LiveQuery event if urgency == high (real-time escalation)
App-->>User: Show advice and escalation instructions数据字典
症状检查器架构中每个类的完整字段级参考。
| 字段 | 类型 | 描述 | 必需 |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | 自动 |
| title | String | Survey display title (e.g. Respiratory Triage) | |
| description | String | Short description or purpose of the survey | — |
| version | String | Semantic version for survey logic | |
| isActive | Boolean | Whether this survey is available to users | |
| nodes | Array<Pointer<DecisionNode>> | Ordered decision nodes that make the clinical tree | — |
| createdAt | Date | Auto-generated creation timestamp | 自动 |
| updatedAt | Date | Auto-generated last-update timestamp | 自动 |
8 字段在 SymptomSurvey 中
安全性和权限
如何通过 ACL 和 CLP 策略保护调查内容、决策逻辑和敏感响应数据。
基于角色的内容控制
仅允许临床作者和管理员创建或发布调查和 DecisionNode 组件;查看者看到已发布的版本。
受保护的用户数据
SurveyResponse 和 UserProfile 记录经过权限设置,以便用户和临床医生仅访问授权记录;在需要时对敏感数据使用加密字段。
仅追加审核
AuditEntry 写入仅限于受信任的后端流程,以保持可追溯性并防止篡改历史决策日志。
架构 (JSON)
原始 JSON 架构定义准备好可以复制到 Back4app 或用作实施参考。
{
"classes": [
{
"className": "SymptomSurvey",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"title": {
"type": "String",
"required": true
},
"description": {
"type": "String",
"required": false
},
"version": {
"type": "String",
"required": true
},
"isActive": {
"type": "Boolean",
"required": true
},
"nodes": {
"type": "Array<Pointer>",
"required": false,
"targetClass": "DecisionNode"
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "DecisionNode",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"questionText": {
"type": "String",
"required": true
},
"options": {
"type": "Array",
"required": true
},
"nextMap": {
"type": "Object",
"required": false
},
"isTerminal": {
"type": "Boolean",
"required": true
},
"recommendedAdvice": {
"type": "Pointer",
"required": false,
"targetClass": "Advice"
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Advice",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"title": {
"type": "String",
"required": true
},
"description": {
"type": "String",
"required": true
},
"urgency": {
"type": "String",
"required": true
},
"followUp": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "PatientProfile",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"user": {
"type": "Pointer",
"required": false,
"targetClass": "_User"
},
"fullName": {
"type": "String",
"required": false
},
"birthDate": {
"type": "Date",
"required": false
},
"sex": {
"type": "String",
"required": false
},
"contact": {
"type": "String",
"required": false
},
"medicalHistory": {
"type": "Array",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Encounter",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"patient": {
"type": "Pointer",
"required": true,
"targetClass": "PatientProfile"
},
"survey": {
"type": "Pointer",
"required": true,
"targetClass": "SymptomSurvey"
},
"responses": {
"type": "Object",
"required": true
},
"decisionPath": {
"type": "Array<Pointer>",
"required": false,
"targetClass": "DecisionNode"
},
"recommendedAdvice": {
"type": "Pointer",
"required": false,
"targetClass": "Advice"
},
"riskScore": {
"type": "Number",
"required": false
},
"status": {
"type": "String",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "AuditLog",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"actor": {
"type": "Pointer",
"required": false,
"targetClass": "_User"
},
"entityType": {
"type": "String",
"required": true
},
"entityId": {
"type": "String",
"required": true
},
"action": {
"type": "String",
"required": true
},
"summary": {
"type": "String",
"required": true
},
"metadata": {
"type": "Object",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
}
]
}与 AI 代理一起构建
使用 Back4app AI 代理从此模板生成症状检查应用,包括调查框架、决策树、分诊结果和 {tech} 的前端集成。
在 Back4app 上使用此确切的架构和行为创建一个症状检查后端。
架构:
1. 调查:标题 (字符串,必填),版本 (字符串,必填),startNode (指向决策节点的指针,必填),元数据 (对象,选填)。
2. 决策节点:问题 (字符串,必填),输入类型 (字符串:单选、多选、数字、文本),条件 (条件对象数组),nextNode (指向决策节点的指针,选填),结果 (指向分诊结果的指针,选填),规则类型 (字符串:确定性、可脚本化)。
3. 用户个人资料:用户 (指向用户的指针,必填),年龄范围 (字符串,选填),慢性标志 (数组,选填),已给出同意 (布尔值,必填)。
4. 调查响应:调查 (指向调查的指针,必填),用户 (指向用户的指针,选填),答案 (对象:按 nodeId 键入),路径 (决策节点指针数组),startedAt (日期),completedAt (日期,选填)。
5. 分诊结果:响应 (指向调查响应的指针,必填),级别 (字符串:自我护理、初级护理、紧急、急救),建议文本 (字符串),推荐行动 (字符串),createdAt (系统)。
6. 审计条目:参与者 (指向用户的指针,必填),行动 (字符串,必填),上下文 (对象),有效载荷 (对象,选填)。
安全:
- 使用 ACL/CLP 限制调查创作并保护调查响应数据。对于非管理员,AuditEntry 写入应为附加-only。
认证:
- 为终端用户和临床医生提供注册、登录、注销;为作者和审阅者提供基于角色的权限。
行为:
- 获取已发布的调查和决策节点树,逐步评估节点,持久化调查响应及决策路径,计算或记录分诊结果,并为每个完成的评估创建审计条目记录。
交付:
- Back4app 应用,带有架构、ACL、CLP;入门调查和决策节点;针对 {tech} 的前端集成指南;API 游乐场示例。按下面的按钮以打开带有此模板提示预填充的代理。
这是没有技术后缀的基础提示。您可以在后续调整生成的前端堆栈。
API 游乐场
尝试在症状检查器架构中使用 REST 和 GraphQL 端点。响应使用模拟数据,不需要 Back4app 账户。
使用与此模板相同的架构。
选择您的技术
展开每个卡片以获取集成步骤、状态模式、数据模型示例和离线说明。
Flutter 症状检查器后台
React 症状检查器后台
React 原生 症状检查器后台
Next.js 症状检查器后台
JavaScript 症状检查器后台
Android 症状检查器后台
iOS 症状检查器后台
Vue 症状检查器后台
Angular 症状检查器后台
GraphQL 症状检查器后台
REST API 症状检查器后台
PHP 症状检查器后台
.NET 症状检查器后台
您可以从每种技术获得什么
每个技术栈使用相同的症状检查器后端架构和 API 合同。
统一的症状检查器数据结构
为症状检查器量身定制的调查和用户资料的一致模式。
实时分诊结果
对用户症状的即时反馈与症状检查器的动态决策节点。
安全的用户数据管理
强大的访问控制确保症状检查器用户信息的机密性。
REST/GraphQL API访问
通过灵活的API轻松与前端框架集成,适用于症状检查器。
可定制的调查体验
根据症状检查器用户的特定需求量身定制调查,以提高参与度。
分析和报告工具
从症状检查器应用中的用户互动和结果中获得洞察。
症状检查器框架比较
比较所有支持的技术的设置速度、SDK风格和AI支持。
| 框架 | 设置时间 | 症状检查器的好处 | SDK 类型 | AI 支持 |
|---|---|---|---|---|
| 在5分钟内 | 移动和网页上症状检查器的单一代码库。 | Typed SDK | 完整 | |
| ~3–7分钟 | 症状检查器的快速网页仪表板。 | Typed SDK | 完整 | |
| 快速(5分钟)设置 | 症状检查器的跨平台移动应用。 | Typed SDK | 完整 | |
| ~5分钟 | 症状检查器的服务器渲染网页应用。 | Typed SDK | 完整 | |
| ~3–5分钟 | 症状检查器的轻量网页集成。 | Typed SDK | 完整 | |
| 在5分钟内 | 原生Android应用程序用于症状检查器。 | Typed SDK | 完整 | |
| ~3–7分钟 | 原生iOS应用程序用于症状检查器。 | Typed SDK | 完整 | |
| 快速(5分钟)设置 | React风格的症状检查器网页UI。 | Typed SDK | 完整 | |
| ~5分钟 | 企业版症状检查器网页应用。 | Typed SDK | 完整 | |
| 在2分钟内 | 灵活的GraphQL API用于症状检查器。 | GraphQL API | 完整 | |
| 快速(2分钟)设置 | REST API集成用于症状检查器。 | REST API | 完整 | |
| ~3分钟 | 症状检查器的服务器端PHP后端。 | REST API | 完整 | |
| 快速(5分钟)设置 | .NET后端用于症状检查器。 | Typed SDK | 完整 |
设置时间反映从项目启动到首次调查和决策评估所需的预期持续时间,使用此模板架构。
常见问题
有关使用此模板构建症状检查器后端的常见问题。