医疗挂号小程序需求文档(基于腾讯微搭低代码)
基于腾讯微搭低代码平台,快速开发一款具备用户登录、就诊人管理、科室查询、医生排班、挂号预约、订单管理等核心功能的医疗挂号小程序,实现“用户端便捷挂号+管理端高效运维”的业务闭环,降低医疗服务预约门槛。
·
医疗挂号小程序需求文档(基于腾讯微搭低代码)
一、项目概述
1.1 项目目标
基于腾讯微搭低代码平台,快速开发一款具备用户登录、就诊人管理、科室查询、医生排班、挂号预约、订单管理等核心功能的医疗挂号小程序,实现“用户端便捷挂号+管理端高效运维”的业务闭环,降低医疗服务预约门槛。
1.2 核心用户
- C端用户:普通患者(个人/家庭就医预约)
- B端用户:医院管理员(科室、医生、排班、订单管理)
1.3 技术栈
- 开发平台:腾讯微搭低代码(WeDa)
- 运行环境:微信小程序
- 数据存储:微搭云数据库(CloudBase)
- 核心能力:低代码组件拖拽、云函数/API开发、数据模型可视化配置
二、核心功能需求
2.1 用户体系模块
| 功能点 | 需求描述 | 优先级 |
|---|---|---|
| 微信授权登录 | 支持微信手机号一键登录+昵称/头像同步,自动关联微搭用户体系 | 高 |
| 账号注册 | 补充用户基础信息(手机号、姓名),同步至自建用户表 | 高 |
| 二次登录校验 | 下次打开小程序自动登录,保持会话状态 | 高 |
| 个人中心 | 展示用户信息、就诊人入口、订单入口、快捷菜单 | 高 |
2.2 就诊人管理模块
| 功能点 | 需求描述 | 优先级 |
|---|---|---|
| 就诊人添加 | 支持成人/儿童(需监护人信息)就诊人录入,含姓名、性别、证件号等 | 高 |
| 就诊人CRUD | 支持查看、编辑、删除就诊人信息,隐私数据脱敏展示 | 高 |
| 默认就诊卡设置 | 支持标记默认就诊人,挂号时自动选中 | 中 |
| 就诊码生成 | 基于就诊卡号生成一维码/二维码,用于线下核验 | 中 |
2.3 科室与医生模块
| 功能点 | 需求描述 | 优先级 |
|---|---|---|
| 科室分类展示 | 按科室分类(如内科、外科)展示科室列表,支持图标+名称可视化 | 高 |
| 医生列表查询 | 按科室筛选医生,展示医生头像、职称、擅长领域、挂号费 | 高 |
| 医生搜索 | 支持通过医生姓名模糊查询 | 中 |
2.4 排班与挂号模块
| 功能点 | 需求描述 | 优先级 |
|---|---|---|
| 七日排班展示 | 横向滚动日历组件,显示未来7天号源状态(有号/满号/未出诊) | 高 |
| 排班详情查询 | 选中日期后,展示对应医生的号段(时间区间)、余号、挂号费 | 高 |
| 挂号下单 | 选择就诊人+号段,提交预约订单,扣减对应号源库存 | 高 |
| 号源库存控制 | 防止超卖,下单时校验库存,取消预约后回滚库存 | 高 |
2.5 订单管理模块
| 功能点 | 需求描述 | 优先级 |
|---|---|---|
| 订单创建 | 挂号成功后自动生成预约订单,含订单号、排队序号、就诊信息 | 高 |
| 订单状态流转 | 支持“待支付→已预约→已取消→已完成”状态变更 | 高 |
| 订单查询 | 用户端查看个人预约记录,管理端查看所有订单 | 高 |
| 取消预约 | 用户在就诊前可取消预约,自动回滚号源库存 | 高 |
2.6 管理后台模块
| 功能点 | 需求描述 | 优先级 |
|---|---|---|
| 科室管理 | 支持科室分类、科室信息的增删改查 | 高 |
| 医生管理 | 维护医生基础信息,关联所属科室 | 高 |
| 排班管理 | 按医生批量生成排班(按周/按月),设置号源总数 | 高 |
| 号段管理 | 自动拆分号段(如30分钟/个),支持手动调整 | 中 |
| 订单审核 | 查看所有预约订单,支持手动变更订单状态 | 中 |
三、非功能需求
| 类型 | 需求描述 |
|---|---|
| 可用性 | 页面响应时间≤2s,支持微信小程序最新3个版本 |
| 性能 | 单科室单日排班查询QPS≥100,库存扣减无超卖 |
| 安全性 | 用户隐私数据(手机号、证件号)加密存储,接口鉴权 |
| 兼容性 | 适配主流手机屏幕(375px~414px宽度) |
| 可维护性 | 数据模型字段可扩展,功能模块低耦合 |
四、数据库表设计(核心表)
4.1 用户表(medical_users)
| 字段名 | 字段类型 | 是否必填 | 字段说明 | 关联表 | 索引 |
|---|---|---|---|---|---|
| _id | 字符串(系统字段) | 是 | 主键ID | - | 是 |
| openid | 字符串 | 是 | 微信用户唯一标识 | - | 是 |
| phone | 字符串 | 是 | 用户手机号(脱敏存储) | - | 是 |
| nickname | 字符串 | 是 | 微信昵称 | - | 否 |
| avatar | 字符串 | 否 | 微信头像URL | - | 否 |
| create_time | 时间戳(系统字段) | 是 | 注册时间 | - | 否 |
| update_time | 时间戳(系统字段) | 是 | 最后更新时间 | - | 否 |
4.2 科室分类表(department_categories)
| 字段名 | 字段类型 | 是否必填 | 字段说明 | 关联表 | 索引 |
|---|---|---|---|---|---|
| _id | 字符串(系统字段) | 是 | 主键ID | - | 是 |
| category_name | 字符串 | 是 | 分类名称(如“内科”“外科”) | - | 是 |
| sort | 数字 | 否 | 排序序号(越小越靠前) | - | 否 |
| status | 枚举 | 是 | 状态(启用/禁用) | - | 否 |
| create_time | 时间戳(系统字段) | 是 | 创建时间 | - | 否 |
4.3 科室表(departments)
| 字段名 | 字段类型 | 是否必填 | 字段说明 | 关联表 | 索引 |
|---|---|---|---|---|---|
| _id | 字符串(系统字段) | 是 | 主键ID | - | 是 |
| dept_name | 字符串 | 是 | 科室名称(如“呼吸内科”) | - | 是 |
| category_id | 字符串 | 是 | 所属分类ID | department_categories._id | 是 |
| intro | 文本 | 否 | 科室简介 | - | 否 |
| icon | 字符串 | 否 | 科室图标URL | - | 否 |
| status | 枚举 | 是 | 运营状态(启用/禁用) | - | 否 |
| create_time | 时间戳(系统字段) | 是 | 创建时间 | - | 否 |
4.4 医生表(doctors)
| 字段名 | 字段类型 | 是否必填 | 字段说明 | 关联表 | 索引 |
|---|---|---|---|---|---|
| _id | 字符串(系统字段) | 是 | 主键ID | - | 是 |
| doctor_name | 字符串 | 是 | 医生姓名 | - | 是 |
| title | 枚举 | 是 | 职称(主任医师/副主任医师/主治医师) | - | 否 |
| dept_id | 字符串 | 是 | 所属科室ID | departments._id | 是 |
| avatar | 字符串 | 否 | 医生头像URL | - | 否 |
| specialty | 文本 | 否 | 擅长领域 | - | 否 |
| registration_fee | 数字 | 是 | 挂号费(单位:分) | - | 否 |
| status | 枚举 | 是 | 状态(出诊/停诊) | - | 否 |
| create_time | 时间戳(系统字段) | 是 | 创建时间 | - | 否 |
4.5 就诊人表(patients)
| 字段名 | 字段类型 | 是否必填 | 字段说明 | 关联表 | 索引 |
|---|---|---|---|---|---|
| _id | 字符串(系统字段) | 是 | 主键ID | - | 是 |
| user_id | 字符串 | 是 | 所属用户ID | medical_users._id | 是 |
| patient_name | 字符串 | 是 | 就诊人姓名 | - | 否 |
| gender | 枚举 | 是 | 性别(男/女/未知) | - | 否 |
| id_type | 枚举 | 是 | 证件类型(身份证/户口本/其他) | - | 否 |
| id_card | 字符串 | 是 | 证件号(脱敏存储) | - | 否 |
| phone | 字符串 | 否 | 就诊人手机号 | - | 否 |
| is_child | 布尔 | 是 | 是否儿童(true=是) | - | 否 |
| guardian_name | 字符串 | 否 | 监护人姓名(儿童必填) | - | 否 |
| guardian_id | 字符串 | 否 | 监护人证件号(儿童必填) | - | 否 |
| card_no | 字符串 | 是 | 就诊卡号(系统生成唯一值) | - | 是 |
| is_default | 布尔 | 是 | 是否默认就诊卡(true=是) | - | 否 |
| create_time | 时间戳(系统字段) | 是 | 创建时间 | - | 否 |
4.6 排班表(schedules)
| 字段名 | 字段类型 | 是否必填 | 字段说明 | 关联表 | 索引 |
|---|---|---|---|---|---|
| _id | 字符串(系统字段) | 是 | 主键ID | - | 是 |
| doctor_id | 字符串 | 是 | 医生ID | doctors._id | 是 |
| dept_id | 字符串 | 是 | 所属科室ID | departments._id | 是 |
| schedule_date | 日期 | 是 | 出诊日期(格式:YYYY-MM-DD) | - | 是 |
| total_slots | 数字 | 是 | 总号源数 | - | 否 |
| status | 枚举 | 是 | 排班状态(正常/停诊) | - | 否 |
| create_time | 时间戳(系统字段) | 是 | 创建时间 | - | 否 |
4.7 号段表(schedule_slots)
| 字段名 | 字段类型 | 是否必填 | 字段说明 | 关联表 | 索引 |
|---|---|---|---|---|---|
| _id | 字符串(系统字段) | 是 | 主键ID | - | 是 |
| schedule_id | 字符串 | 是 | 关联排班ID | schedules._id | 是 |
| start_time | 字符串 | 是 | 号段开始时间(如“08:00”) | - | 否 |
| end_time | 字符串 | 是 | 号段结束时间(如“08:30”) | - | 否 |
| remaining | 数字 | 是 | 剩余号源数 | - | 否 |
| fee | 数字 | 是 | 该号段挂号费(默认继承医生挂号费) | - | 否 |
| create_time | 时间戳(系统字段) | 是 | 创建时间 | - | 否 |
4.8 预约订单表(appointments)
| 字段名 | 字段类型 | 是否必填 | 字段说明 | 关联表 | 索引 |
|---|---|---|---|---|---|
| _id | 字符串(系统字段) | 是 | 主键ID(订单号) | - | 是 |
| user_id | 字符串 | 是 | 下单用户ID | medical_users._id | 是 |
| patient_id | 字符串 | 是 | 就诊人ID | patients._id | 是 |
| slot_id | 字符串 | 是 | 号段ID | schedule_slots._id | 是 |
| doctor_id | 字符串 | 是 | 医生ID | doctors._id | 否 |
| dept_id | 字符串 | 是 | 科室ID | departments._id | 否 |
| schedule_date | 日期 | 是 | 就诊日期 | - | 是 |
| queue_no | 数字 | 是 | 排队序号 | - | 否 |
| total_fee | 数字 | 是 | 订单总金额(单位:分) | - | 否 |
| status | 枚举 | 是 | 订单状态(待支付/已预约/已取消/已完成) | - | 是 |
| cancel_time | 时间戳 | 否 | 取消时间(仅取消状态有值) | - | 否 |
| create_time | 时间戳(系统字段) | 是 | 下单时间 | - | 否 |
五、核心接口需求
| 接口名称 | 接口用途 | 请求参数 | 响应参数 |
|---|---|---|---|
| 用户登录接口 | 微信授权后同步用户信息 | openid、phone、nickname、avatar | user_id、token、is_new(是否新用户) |
| 就诊人列表接口 | 获取用户关联的就诊人 | user_id | 就诊人列表(含id、name、card_no等) |
| 科室列表接口 | 获取所有科室(按分类) | - | 分类列表+对应科室信息 |
| 医生列表接口 | 按科室筛选医生 | dept_id | 医生列表(含头像、职称、挂号费) |
| 七日排班接口 | 获取指定科室7天排班 | dept_id | 日期数组(含号源状态)+ 对应医生排班 |
| 号段查询接口 | 获取指定排班的号段 | schedule_id | 号段列表(含剩余号源、时间) |
| 挂号下单接口 | 创建预约订单 | user_id、patient_id、slot_id | 订单号、queue_no、total_fee |
| 订单列表接口 | 获取用户订单 | user_id、status(可选) | 订单列表(含就诊信息、状态) |
| 取消预约接口 | 取消订单并回滚库存 | order_id | 取消结果(success/fail) |
六、关键业务规则
- 库存扣减规则:下单时通过事务实现“创建订单+扣减号段剩余量”原子操作,防止超卖;
- 默认就诊卡规则:一个用户仅能有一个默认就诊卡,新增默认卡时自动取消原默认卡;
- 号段生成规则:按排班总号源数,以30分钟为间隔自动拆分号段(可手动调整);
- 取消预约规则:就诊日前1天18:00前可取消,超时不可取消;取消后号段剩余量+1;
- 隐私保护规则:手机号显示为“138****5678”,证件号显示为“************1234”。
更多推荐


所有评论(0)