3 问卷与评估
| 编号 | 接口名称 | 方法 | 路径 | 说明 |
| API-005 | 获取问卷配置 | GET | /api/v1/questionnaire/config | 返回问卷题目列表、选项配置、步骤结构 |
| API-006 | 保存问卷步骤数据 | POST | /api/v1/questionnaire/step | 保存单步问卷数据(基本信息/生活方式/HPV),支持断点续传 |
| API-007 | 获取问卷草稿 | GET | /api/v1/questionnaire/draft | 获取用户未提交的问卷草稿数据 |
| API-008 | 提交问卷 | POST | /api/v1/questionnaire/submit | 提交完整问卷,触发审核流程 |
| API-009 | 上传检测报告 | POST | /api/v1/questionnaire/upload | 上传HPV检测报告文件,返回文件ID和预览URL |
| API-010 | 获取审核状态 | GET | /api/v1/questionnaire/review-status | 返回当前问卷审核状态(pending/approved/rejected)及失败原因 |
| API-011 | 获取评估结果 | GET | /api/v1/questionnaire/result | 返回风险评估等级(high/medium/low)+器官风险分解+建议 |
| API-012 | 修改上传结果 | PUT | /api/v1/questionnaire/upload | 审核失败后修改上传的检测报告 |
请求示例 - 提交问卷
POST /api/v1/questionnaire/submit
Content-Type: application/json
Authorization: Bearer {token}
{
"basic_info": {
"name": "张三",
"birth_date": "1965-03-15",
"age": 61,
"height": 170,
"weight": 75,
"origin": "北京市",
"id_number": "110***********1234",
"phone": "138****5678",
"address": "北京市朝阳区...",
"workplace": "XX公司"
},
"lifestyle": {
"smoking": "current",
"drinking": {
"drinks": true,
"types": [
{"type": "beer", "weekly_amount_ml": 1000, "duration_years": 20}
]
},
"occupation_exposure": "yes"
},
"hpv_test": {
"result": "negative",
"report_file_id": "file_xxx123"
}
}
响应示例 - 评估结果
{
"code": 0,
"data": {
"risk_level": "high",
"risk_score": 78,
"organ_risks": {
"high": [
{"organ": "lung", "name": "肺癌", "score": 85},
{"organ": "liver", "name": "肝癌", "score": 72},
{"organ": "stomach", "name": "胃癌", "score": 68},
{"organ": "colorectal", "name": "结直肠癌", "score": 65}
],
"medium": [
{"organ": "ovary", "name": "卵巢", "score": 45},
{"organ": "lymph", "name": "淋巴", "score": 42}
]
},
"suggestion": "建议进行肿瘤专项健康管理服务...",
"disclaimer": "本评估结果仅供参考,不作为临床诊断依据"
}
}
9 通用约定
9.1 请求头
Content-Type: application/json
Authorization: Bearer {access_token}
X-Request-Id: {uuid} // 请求追踪
X-App-Version: 1.0.0 // 客户端版本
9.2 统一响应格式
{
"code": 0, // 0=成功,非0=错误码
"message": "success",
"data": { ... }, // 业务数据
"timestamp": 1695278400
}
9.3 错误码定义
| 错误码 | 含义 | 处理方式 |
| 0 | 成功 | - |
| 1001 | 参数校验失败 | 前端展示字段级错误 |
| 1002 | 数据不存在 | 前端展示空状态 |
| 2001 | 未登录/Token过期 | 跳转登录页 |
| 2002 | 无权限 | 展示无权限提示 |
| 3001 | 文件上传失败 | 展示重试按钮 |
| 3002 | 文件格式不支持 | 展示格式要求提示 |
| 5000 | 服务器内部错误 | 展示"系统繁忙"提示 |
9.4 分页约定
// 请求参数
?cursor={cursor}&limit=20
// 响应
{
"list": [...],
"next_cursor": "xxx", // null表示无更多
"has_more": true
}