Skip to content

一、说说这个业务

“我的药房”是一个让患者在线买药、管理处方的功能模块, 就像在京东买药一样:选药 → 加购物车 → 在线支付 → 药品配送到家

同时,医生也可以查看自己开过的处方,方便后续跟踪治疗。


二、核心功能

这份工单主要包括以下几个核心业务点:

需求类别工单原文要求通俗解释
药品信息展示展示药品名称、规格、厂家、批准文号、适应症、用法用量等药品要有详细说明书,不能只写个名字
分类浏览按内科、外科等分类展示药品方便用户快速找到“感冒药”“降压药”等
加入购物车 & 支付患者可选择药品加入购物车并完成在线支付实现“线上买药”闭环
常用/历史处方分为“常用处方”和“历史处方”方便复诊患者快速购药
权限控制只有授权人员才能访问电子处方和购买记录医生只能看自己的患者,患者只能看自己的药单
安全合规记录谁访问了哪些处方,便于审计出了问题能查日志

三、系统整体设计(通俗版架构)

我们可以把这个功能想象成一个“线上药店 + 处方管理系统”,它由几个部分组成:

text
前端(App/Web)

API 网关(鉴权、限流)

【药房服务】—— 核心业务逻辑
    ├── 药品查询(支持分类、搜索)
    ├── 处方管理(常用/历史处方)
    ├── 购物车管理
    └── 订单支付(对接微信/支付宝)

数据库层
    ├── drug_info(药品信息表)
    ├── prescription(处方记录表)
    ├── shopping_cart(购物车)
    └── order(订单表)

外部系统
    ├── 支付系统(微信、支付宝)
    └── 药品配送系统(物流)

四、核心功能详解(结合真实场景)

场景1:张阿姨想买降压药

张阿姨有高血压,之前医生给她开过“苯磺酸氨氯地平片”。今天她想自己再买一瓶。

系统流程:

  1. 打开App,点击“我的药房”;
  2. 系统自动展示她的“常用处方”:苯磺酸氨氯地平片,5mg,每日一次;
  3. 她点击“立即购买”,药品自动加入购物车;
  4. 去结算,选择“微信支付”;
  5. 支付成功后,订单生成,药品安排配送。

技术实现

  • “常用处方”数据来自 prescription 表,标记为 is_common = true
  • 购物车使用 Redis 缓存,提升响应速度;
  • 支付调用微信支付接口,异步通知结果。

场景2:李医生查看自己开过的处方

李医生想看看上周给患者开的药有哪些。

系统流程:

  1. 医生登录后,进入“我的处方”;
  2. 系统按时间倒序列出他开的所有处方;
  3. 可筛选“某位患者”或“某个时间段”;
  4. 点击查看详情:药品名、剂量、用法、患者姓名(脱敏)、开具时间。

权限控制

  • 所有查询都带 doctor_id 参数;
  • 服务端强制校验:当前登录医生ID是否匹配;
  • 防止医生A看到医生B的处方。

场景3:新患者想买感冒药

小王感冒了,想买“连花清瘟胶囊”。

系统流程:

  1. 进入“我的药房”,点击“分类浏览” → “内科” → “呼吸科”;
  2. 如找到“连花清瘟胶囊”,点击查看详细信息:
    • 药品名称:连花清瘟胶囊
    • 规格:0.3g×24粒
    • 生产厂家:石家庄以岭药业
    • 批准文号:国药准字Z20040063
    • 适应症:清瘟解毒,宣肺泄热
    • 用法用量:一次4粒,一日3次
  3. 加入购物车 → 结算 → 支付 → 配送。

数据来源

  • 所有药品信息来自 drug_info 表,由平台管理员维护;
  • 支持模糊搜索(如输入“莲花”也能搜到“连花清瘟”)。

五、关键技术栈(通俗解释)

技术作用为什么用它?
Java + Spring Boot后台“大脑”处理药品查询、处方管理、订单逻辑
MySQL存药品、处方、订单数据稳定可靠,适合结构化数据
Redis缓存热门药品、购物车提升响应速度,减少数据库压力
Elasticsearch药品搜索(支持模糊匹配)比数据库LIKE快得多
HTTPS + JWT安全传输 + 登录认证防止处方信息被窃取
RabbitMQ/Kafka异步处理订单、发送通知避免支付卡顿
JMeter压力测试模拟高并发买药,确保系统不崩

六、安全与合规设计

1. 权限控制

  • 患者:只能查看自己的处方和购药记录;
  • 医生:只能查看自己开的处方;
  • 管理员:可维护药品信息,但不能查看患者隐私。

2. 数据加密

  • 患者姓名、身份证号等敏感信息加密存储;
  • 处方访问记录写入审计日志

3. 操作留痕

  • 每一次“开处方”“买药”“查看记录”都记录日志;
  • 支持后续审计,符合医疗数据合规要求。

七、性能与高并发保障

问题解决方案
节假日很多人买药,系统会不会卡?使用 Redis 缓存热门药品,减少数据库查询
同时下单人数太多怎么办?订单提交走消息队列,异步处理支付和库存扣减
药品搜索太慢?用 Elasticsearch 实现毫秒级搜索
支付失败怎么处理?支持自动重试 + 人工补偿

验收标准落地

  • 响应时间:药品搜索 < 300ms
  • 处理能力:支持 5000 并发用户同时购药
  • 扩展性:未来可轻松接入新药品、新配送商


八、总结:一句话理解“我的药房”

“我的药房”就是一个安全、便捷、合规的“线上买药+处方管理”系统, 让患者像网购一样轻松购药, 让医生随时查看自己开过的处方, 全程可查、可审、可追溯,保障用药安全,提升医疗服务效率