3. 医疗App信息架构与交互设计

患者端医疗App与普通电商或内容类App最大的区别在于:它承载的是“就医旅程”,而不是“浏览—下单”的单次交易。一次完整的线上就医通常跨越挂号、候诊、问诊、开单、报告查看、处方确认、支付、取药或复诊等多个环节,且这些环节之间存在严格的时间顺序和状态依赖。因此,信息架构设计的核心任务不是把功能罗列清楚,而是把“患者当前处于哪一步、下一步该做什么、历史记录在哪里找”这三件事表达清楚。

一、以“就医任务”而非“功能模块”组织一级导航

很多医疗App的底部导航习惯性做成“首页、挂号、问诊、我的”四栏,看似清晰,实际使用中患者经常找不到“我上次的报告”或“待支付的处方”。原因在于:挂号、问诊、报告、处方、支付本质上是同一就医任务的不同阶段,把它们拆成互不相关的入口,会迫使患者自己在脑中维护流程状态。

更合理的做法是采用“任务主线 + 工具入口”的双层结构。一级导航保留四个位置:首页(聚合当前进行中的任务与常用入口)、就诊(承载挂号、问诊、报告、处方、支付的全流程记录)、健康(健康档案、用药提醒、复诊计划等长期内容)、我的(账号、就诊人、设置)。其中“就诊”页是信息架构的重心,它按时间倒序展示每一次就医事件,每个事件卡片内聚挂号信息、问诊会话、报告、处方和支付状态。

这样组织的直接收益是:患者不需要记住“报告在哪个Tab”,只需要进入“就诊”,找到对应那次就医,所有相关材料都在同一张卡片里。下面这张结构图展示了核心模块之间的信息归属与跳转关系。

患者端医疗App核心模块信息架构 以“一次就医事件”为聚合单元,串联挂号 → 问诊 → 报告 → 处方 → 支付 一级导航 首页 就诊 健康 我的 就诊事件卡片(按时间倒序) 示例:2024-06-12 呼吸内科 · 张医生 · 线上复诊 挂号 科室/医生/时段 状态:已确认 问诊 图文/视频会话 状态:进行中 报告 检验/检查结果 状态:待查看 处方 药品/用法/用量 状态:待支付 支付 挂号费 / 药费 / 问诊费 状态驱动原则:每个模块只暴露“当前可执行动作”。例如报告未出时按钮置灰,处方未生成时不显示支付入口。 跨模块跳转:从问诊会话可直接跳转报告解读,从处方可直接跳转支付,避免患者返回首页重新寻找。

二、状态驱动:让界面自己告诉患者“现在能做什么”

医疗流程中大量操作具有前置条件:没有挂号就不能问诊,报告未出具就不能查看,处方未生成就不能支付。如果界面把所有按钮都平铺展示,患者会反复点击无效入口,产生“App坏了”的错觉。因此交互设计应遵循状态驱动原则:每个模块只暴露当前状态下真正可执行的动作。

以一次线上复诊为例,可以用一个状态字段贯穿整个就诊事件。假设就诊事件对象包含 status 字段,取值依次为 registered、consulting、report_ready、prescribed、paid、completed。前端根据该字段决定卡片上显示哪个主按钮:

// 就诊事件卡片主按钮渲染逻辑(示例)
const actionMap = {
  registered:   { text: '进入问诊',  route: '/consult/room' },
  consulting:   { text: '继续问诊',  route: '/consult/room' },
  report_ready: { text: '查看报告',  route: '/report/detail' },
  prescribed:   { text: '去支付',    route: '/payment/confirm' },
  paid:         { text: '查看处方',  route: '/prescription/detail' },
  completed:    { text: '再次问诊',  route: '/consult/room' }
};
const action = actionMap[event.status] || { text: '查看详情', route: '/visit/detail' };

这段逻辑的价值在于:患者永远只看到一个明确的下一步,而不是面对五个并列入口自行判断。同时,状态字段也决定了哪些信息需要高亮。例如 report_ready 状态下,报告卡片应带红点提示;prescribed 状态下,支付入口应带倒计时(如“请在23:59内完成支付”),因为处方通常有时效限制。

三、信息分层:详情页不要一次倒出所有内容

挂号、问诊、报告、处方、支付各自都有大量字段。如果详情页把所有字段平铺,患者很难快速定位关键信息。建议采用“摘要层—操作层—明细层”三层结构:

  • 摘要层:卡片上只显示时间、科室/医生、当前状态、一个主按钮。目标是让患者3秒内判断“这是哪次就医、现在该做什么”。
  • 操作层:进入详情后,顶部固定显示当前状态和主操作,如“查看报告”“立即支付”“进入问诊室”。
  • 明细层:折叠展示完整字段,如挂号单号、医生职称、报告各项指标、处方药品明细、支付流水号。默认收起,点击展开。

以报告模块为例,摘要层只显示“血常规 · 2024-06-12 · 3项异常”;操作层提供“查看完整报告”“咨询医生”;明细层才展示白细胞、中性粒细胞百分比等具体数值和参考区间。这样既满足快速浏览,也保留专业信息的完整性。

四、导航设计中的两个关键约束

第一,返回路径必须可预期。从问诊会话跳转到报告详情后,返回应回到问诊会话,而不是回到首页。实现上需要保证路由栈正确压栈,避免使用 redirect 替换当前页。第二,跨模块跳转要携带上下文。从处方跳转到支付时,应携带 prescriptionId 和 visitId,支付成功后能准确回到该次就诊卡片并刷新状态,而不是让患者重新寻找。

设计检查点:任意一个核心模块,患者从首页出发最多点击3次应能到达;任意一次就诊事件,其挂号、问诊、报告、处方、支付记录应能在同一卡片内全部找到。

总体而言,医疗App的信息架构应以“就医事件”为聚合单元,以状态字段驱动界面动作,以三层信息结构控制详情页复杂度,以可预期的返回路径和上下文传递保证跨模块跳转的连贯性。这四点落实后,挂号、问诊、报告、处方、支付就不再是五个孤立功能,而是一条患者能看懂、能走完的就医主线。