spec.md 6.1 KB

patient-maintenance Specification

Purpose

为新版普瑞互联网医院智慧医院小程序 V2.0 提供就诊人新增、详情与编辑、删除、常规绑卡/建档、短信验证码以及写操作后列表/当前患者刷新能力,在 patient-selector 已有的就诊人列表查询、缓存同步和事件总线契约之上,完成就诊人维护闭环。本模块不包含 OCR、身份证图片识别、人脸识别和活体检测,相关能力归属 PRI-MP-USER-003。

Requirements

Requirement: REQ-USER-002-01 就诊人新增

  • MUST:在 01030008 绑卡未找到既有档案后,通过 utils/request.js 的 code: 01030004 发起建档。
  • MUST:01030004 请求字段严格为旧版 visitorEntry.saveCard 的 patAddress/patAreaID/patBirthDate/patCityID/patIDCardNo/mobileAreaNumArr/patMobile/patName/patNationID/OCCUID/patCredTypeID/patCredTypeCode/patProvinceID/patSexID/patVillageID/verificationCode 及紧急联系人、人脸空字段;不得额外注入会话字段。
  • MUST:表单字段至少包含姓名、证件类型、证件号、手机号、性别、与患者关系、出生日期、地址;字段和校验规则与旧版 addAVisitor / visitorEntry 核心字段保持一致。
  • MUST:提交前进行表单校验,必填未通过时禁用保存按钮并高亮错误字段。
  • MUST:提交中显示 loading,禁止重复提交。
  • MUST:成功后返回来源页,并刷新 PRI-MP-USER-001 列表缓存和当前就诊人。
  • MUST NOT:新增成功后不得覆盖 hospID / hospDesc / hisHospID / openID / pubAccCode / sessionID 等医院和登录字段。

Scenario: 新增就诊人

  • Given 用户已登录并已选医院
  • When 用户填写新增表单并点击保存
  • Then 系统 MUST 校验字段、调用 01030004、成功后刷新列表并返回来源页。

Requirement: REQ-USER-002-02 就诊人详情与编辑

  • MUST:通过 code: 01030002 查询就诊人详情,参数仅为 patID。
  • MUST:区分只读字段(如 hisPatID、patID)和可编辑字段。
  • MUST:通过 code: 01030005 保存编辑,并回传旧版 cardDetail 定义的完整字段集合;新版页面未编辑字段必须保留详情原值。
  • MUST:保存前二次确认,提交中 loading,失败保留原数据。
  • MUST:编辑成功后刷新列表缓存和当前就诊人(仅当编辑对象为当前就诊人时)。

Scenario: 编辑就诊人

  • Given 用户进入详情页
  • When 页面加载并调用 01030002 返回详情
  • Then 系统 MUST 展示详情,编辑后保存并调用 01030005。

Requirement: REQ-USER-002-03 删除/解绑就诊人

  • MUST:通过 code: 01030006 删除就诊人。
  • MUST:删除前二次确认弹窗。
  • MUST:删除当前就诊人成功后,调用 refreshAfterWrite() 重新选择默认患者;无可用患者时清空患者态但保留医院/登录字段。
  • MUST:删除失败时保留原页面数据,不自动刷新列表。

Scenario: 删除当前就诊人

  • Given 用户在详情页删除当前就诊人
  • When 删除成功
  • Then 系统 MUST 刷新列表、重新选择默认患者或清空患者态,并返回来源页。

Requirement: REQ-USER-002-04 常规绑卡/建档

  • MUST:通过 code: 01030008 发起常规绑卡/建档。
  • MUST:01030008 字段严格为 patCardTypeID/patCardTypeCode/patCardNo/idCardNo/mobile/name/verificationCode。
  • MUST:如需短信验证码,通过 01020014 发送 { mobile }、01020015 校验 { mobile, verifyCode }。
  • MUST:提交前校验必填项和格式。
  • MUST:成功后刷新列表并同步当前就诊人。
  • MUST NOT:不得包含 OCR、身份证图片识别、人脸识别、活体检测;相关接口 01020017/01020023 划给 PRI-MP-USER-003。

Scenario: 常规绑卡

  • Given 用户进入绑卡页
  • When 用户填写信息并提交
  • Then 系统 MUST 调用 01030008 并在成功后刷新列表。

Requirement: REQ-USER-002-05 写操作后列表刷新

  • MUST:新增、编辑、删除、绑卡成功后,调用 patientSelector.loadPatientList({ force: true }) 刷新就诊人列表。
  • MUST:刷新后若当前就诊人缓存仍有效,则保持不变;若已删除或无效,则重新选择默认患者或清空患者态。
  • MUST:只同步患者字段,不覆盖医院/登录字段。

Scenario: 新增后刷新列表

  • Given 新增就诊人成功
  • When 系统刷新列表
  • Then 系统 MUST 更新列表缓存并将新就诊人设为当前就诊人(如后端返回标识)。

Requirement: REQ-USER-002-06 状态矩阵

系统 MUST 覆盖以下状态矩阵:

场景 触发条件 页面表现 操作入口 是否阻塞
加载中 查询详情、提交、删除、绑卡中 按钮 loading,禁止重复提交 等待或取消返回 部分阻塞
空数据 详情接口无患者数据 展示空态并允许返回列表 返回/刷新 阻塞当前编辑
接口失败 任一接口返回失败或网络错误 toast + 局部错误说明 重试/返回 视操作而定
未登录 session 缺失或失效 引导登录/重新进入 登录后重试 阻塞
未选医院 无 hospID/hisHospID 引导选择医院 跳转医院选择 阻塞
无权限 后端拒绝写入或校验不通过 展示后端原因,不清本地数据 修改后重试/联系客服 阻塞当前提交
写操作失败 新增/编辑/删除/绑卡失败 保留原页面数据和输入 重试 阻塞当前提交
删除当前就诊人 删除对象为当前缓存患者 成功后刷新列表并重新选择默认患者或清空患者态 自动刷新 不阻塞后续浏览
涉及 OCR/人脸 页面或接口要求图片识别/人脸 停止开发并反馈划分问题 无 阻塞本模块

Scenario: 状态矩阵覆盖

  • Given 用户在新增、编辑、删除或常规绑卡流程中
  • When 出现加载、空数据、接口失败、未登录、未选医院、无权限、写操作失败或删除当前就诊人状态
  • Then 系统 MUST 按状态矩阵展示对应反馈,并不得清空医院/登录字段。