Drug · WDL 与 Clinic Dispensing Unit 业务 PRD
文档状态:产品评审稿。基础规则、APP 分工、功能导航、共享供应商维护及条码/OCR 出入库集成范围已确认;标为建议及第 17 节列出的事项仍待评审。本文描述开发目标与验收要求,不表示已开发。
更新:2026-11-13 · 责任:Line C / WS4,衔接 Line B / WS3、Line A / WS5、Line D OCR 集成、WS6 权限及 WS7 数据迁移。Samuel 主责 WDL、采购、供应商及复杂库存,NeosAI 支持。
来源:2026-09-20《WDL与CDU功能设计.md》;条码/OCR 依据《AI-CLIP_CP_WDL_Requirements2Sep2026.pdf》§7、§14–15、§21(第 12–13 页)、FR-11/FR-18 及 UAT-10。2026-10-12 用户明确要求将原始条码与 OCR 集成补入当前开发 PRD,覆盖完整入库、出库流程。本稿在原需求基础上细化跨 WDL/CDU 承接、异常与验收条件;原稿的 Future/P1/优化阶段标签不再表示这项需求可从当前开发规格省略,实际排期与实现仍单独核验。本文是新 WDL/CDU 的唯一业务入口,保留其他建议及未决项,不据此改写合同、报价或 Phase 0 验收范围。
阅读与适用边界
- 新 WDL、CDU 的 APP 分工、药品 UUID、地点单位、整套换算版本、档位价格、共享供应商及菜单以本文为准。Central Pharmacy、Clinic Pharmacy 历史入口及记录保留;旧 CP 方案只用于既有 CP 业务与兼容性追溯,不能把其合并入口、供货方代登记实收、库存默认可见及 CP 耗用核对工作区套用到新 APP。
- 患者发药的现行门禁继续以 Drug Dispensing PRD 为准。本文 §10 / D11 的建议不撤销已确认的整张审方、结算后备药、不同人复核和原预留规则;若评审希望变更,须明确确认后再同步该 PRD。
- 原 CP 已确认的 Staff → PIC → Finance 及人员分离继续适用于原 CP;新 WDL 采购申请仅由本 WDL PIC 审批,见 §7.1。跨 WDL 额外签署按 D02 待确认。CDU 自采不经过 Finance,审核 PIC 的任务分派按 D03 待确认。本文不以建议角色矩阵撤销 Finance 已有专项价格权限,新 APP 具体维护人按 D04 定稿。
- 已确认的产品方向不表示全部应用流程已实现或上线;各节分别记录实施范围,盘点实现边界见 §11.2。其他工作流实施进展见 WS4,本地验证与 STG/UAT 验收分别计证。
1. 已确认的基础规则
1.1 组织与角色
CDU 以整個 Clinic/Centre 統一管理(2026-10-26 用戶確認): 已轉換診所依持牌 Center/Zone 模型共用一個 Centre 庫存池、一套藥品啟用/庫存與發藥單位配置,以及按規格/單位版本生效的患者標準價。CDU 不再按 Zone 分別管理或切換;未轉換診所以原 Clinic 為管理主體,WDL 各自獨立。
新採購、收貨、盤點與盤盈直接歸屬 Clinic/Centre,不要求 delivery Zone;舊訂單保留原買方及 delivery Zone 作來源追溯,之後的新收貨進入其所屬 Centre。歷史來源層、批次、收退貨鏈、價格歷史、處方/賬單快照和 ledger 不改寫、不刪除、不產生虛構移庫。歷史 Zone 存量(包括已停用 Zone 的存量)納入同 Centre 可用庫存;預留、發藥、盤虧和處置按實際來源層記賬。舊 Zone 盤點草稿保留原範圍,不在確認時擴大為整個 Centre。
醫生選藥、處方價格校驗、發藥及 Clinic Drug Stock & Prices 使用同一 Centre 配置與庫存池,不因臨床 Zone 篩選或醫生的指定 Zone 任職而改變;患者、預約、問診及其他臨床資料的 Zone 授權繼續獨立生效。任何操作均不得讀取或扣減另一 Centre 的庫存。
遷移先檢查既有 Centre 配置、各 Zone 的單位、現行/未來價格和 WDL 供貨許可;既有 Centre 配置優先,兼容且一致的資料才可複製為 Centre 配置,保留原記錄及來源稽核。單位、價格時序或 tier/allow 有衝突時列出待核對項,不自動選價、平均價或視作零價;未完成配置的藥品須明確顯示待配置/未定價,不能以歷史 Zone 價代替新 Centre 價。資料遷移、程式部署、本地驗證及 UAT 分別記錄。
- WDL 和 Clinic Dispensing Unit(CDU)为独立 APP,分别围绕批发供货和诊所药品管理设计。
- CDP WDL、HKHF WDL 为独立工作单位,各自管理库存、价格、采购和供货。
- WDL 使用 WDL Staff、WDL Manager;2026-11-14 用户确认
wdl-pharmacist-pic与wdl-manager为同一个角色,现行角色代码统一为wdl-manager,界面只显示 WDL Manager,不附 PIC 标注或职责说明。旧码仅作兼容及历史追溯;新任职不重复提供两种角色。原文所称 PIC 的采购审批、仓库管理及经营报表职责归此统一角色,仍按有效工作单位及动作权限执行。诊所 CDU 保持其 Pharmacy 角色边界;具体身份及迁移规则见 Platform 角色模型。本地候选实现及验证覆盖见11-14 专项证据,不表示目标环境已迁移。 - Working units 包括 Back Office、Clinic、External Clinic、WDL Pharmacy,并保留实验室场景。外部诊所的系统访问权限尚未定义。
1.2 药品数据
药品数据分为五个独立但互相关联的部分:主数据、库存、包装单位换算规则、价格、来源(供应商)。所有部分引用同一个药品 UUID。
药品主数据包含唯一编码、WDL Drug Name(批发商使用的名称)、Clinic
Common Drug
Name(各诊所共用的临床默认名称)、中英文产品名及通用名、品牌、规格、剂型、香港注册号、法定分类、包装大小说明、制造商、基本库存单位、可选默认用法及安全提示、is_active、创建及更新人员和时间。wdl_drug_name
必填且不得包含中文汉字;新增和编辑在前后端提示明确校验错误,不限制共用名称及诊所自订名称使用中文,不自动改写已有中文历史记录。clinic_drug_common_name
可为空,为空时临床回退至 WDL 名称。现有 display_name 暂作为
WDL 名称的兼容写入列,wdl_drug_name
从它生成;新增及改名沿用既有主数据权限与审计。主数据不设置
metadata、独立标签名称或成分字段;启停历史独立记录。
每间诊所可为同一药品 UUID 单独维护
clinic_drug_cust_name,按
(operating_unit_id, drug_id)
唯一,不能修改其他诊所或共享名称。诊所处方选择与新配药标签按「诊所自订名称
→ 诊所共用名称 → WDL 名称」解析;WDL 页面始终使用 WDL
名称。诊所名称变更须有诊所药品目录维护权限、原因及审计;已保存处方与发药快照保留保存时的名称及来源。历史整数药品
ID 的 clinic_drug_overrides 不与新 UUID 映射混用。
AnalyticDB 的药名仅作为候选映射:先按经过验证的旧编码与诊所 UUID
对齐,再由药师审核产品、成分、规格、剂型、包装和用途。映射作业默认只生成待审清单及只读验证;只有明确批准并记录审核人和原因的
UAT 行可写入名称,不因 candidate_review
标记自动显示于临床或标签。
HKMTT 查询参考在 AI-CLIP 内使用 hkmtt_vtm 与
hkmtt_vmp 两表;VMP 的 ingredients JSONB
保存来源成分关系。共享药品通过既有
vtm_term_id/vmp_term_id 关联,Drug Master
及临床选药搜索可按有效术语名称、编码及成分检索组合药品。仅有 VTM
的映射不推断具体剂型成分,命中不代表可互换、过敏判断或自动开方。PharmFirst
仅作只读设计参考;主数据名称、库存、单位、价格和历史快照不因参考导入而更改。启动只建空表,数据加载和
STG/UAT 发布须另行指示;工程及导入边界见 HKMTT
reference。
Drug Master 新建与编辑页的剂型使用可输入筛选的下拉选择器,选项来自共享药品主档中全部非空剂型,不受当前页、搜索或启停筛选限制。保留当前药品的原有剂型,可清空可选值;输入仅筛选选项,不自动创建新剂型或改写历史值。此选择器复用现有记录,不代表已经建立标准术语映射,也不自动选择库存基本单位。
Drug Master 新建及編輯表單分組顯示圖片、名稱、產品資料、庫存/法律分類、用法/安全提示與來源參考,並保留固定的取消/儲存操作。每個共享藥品有兩個獨立圖片欄位:包裝圖片(盒/瓶/外包裝)與單粒藥品圖片(藥丸/藥片/膠囊)。可加入或更換 JPG、PNG、WebP 圖片,每張上限 5 MB 及 2,000 萬像素;選取後先本地預覽,儲存藥品後才上傳及綁定。Catalogue 查看權限可讀取圖片,維護權限且非 Assume Role 可上傳;檔案使用現有私有儲存與审计,與患者/診症資料無關。更換圖片保留原檔及稽核指標;競爭更新須核對藥品版本。部分上傳失敗時保留已儲存藥品 UUID、最新版本與待上傳圖片,可重試而不重複建立藥品。
每個 Drug Master 藥品項目可設定一個可選的單包裝條碼,用於一盒、一瓶或一包實體藥品的識別。條碼以文字保存,保留開頭零及大小寫;非空值須全主檔唯一(包含停用項目),避免掃描到多個藥品。維護沿用 Catalogue 權限、版本核對及审计。主檔、WDL/CDU 目錄、採購/銷售選藥及庫存/流水搜尋可識別完整包裝條碼,鍵盤式掃描器可輸入既有搜尋欄位;掃描定位藥品後仍須核實數量、庫存單位、生產批號與效期。條碼本身不定義包裝倍率、批號或效期,不自動過帳庫存;手機/相機掃描及同藥品多個條碼不在此欄位功能範圍內。
MyPlatform 的預設用法及安全提示按來源診所、來源藥品 ID 與字典 ID
保留,不與共用藥品文字合併。用法保留
name_en/name_cn/name_jp,安全提示保留
remark_en/remark_cn/remark_jp;原始自由文字用法不推斷語言。新
schema
保存來源字典、每個來源藥品的兩個用法/兩個提示參考及匯入批次。只使用既有審閱過的來源身份映射關聯
AI-CLIP
UUID;未匹配記錄、缺失參考、停用條目及含參數條目須明確標示。編輯表單可按語言唯讀查看已關聯的來源資料,缺失語言不自動回退或翻譯;既有手動預設用法、安全提示及處方不因匯入而改寫。工程與執行入口見
language-preserving
guidance import。
1.2.1 三层药品资料与维护权限
当前业务页面按所属单位解析名称:诊所相关的 CDU 目录、采购选药、库存/流水、订单与收退货操作、盘点、召回、地点定价、问诊选药和过敏药品选择,使用「本诊所 Clinic Custom Name → Clinic Common Drug Name → Drug Master Drug Name」。WDL 使用 Drug Master Drug Name。搜索与名称展示使用相同诊所范围;不读取供货 WDL 或其他诊所的自订名称。新处方将解析后的名称保存入快照,DD、标签及结算延用该处方快照;历史处方、已出具单据及账单不随主档更名而重写。
2026-10-08 Samuel 确认:集团继续统一维护共享药品;Clinic Manager 获得共享资料读取权及本诊所自订记录读写权。以下是业务权限要求,不表示角色模板、页面及所有环境均已完成调整。工程映射、实施差距及开发者回复见三层交接说明。
2026-11-14 用户确认统一职责(取代 2026-11-13 的 WDL
共享资料维护安排):Super Admin
统一维护药品主档、包装规格及单位换算;WDL 的 Drug catalogue
只维护供应商关联、采购政策、采购价格和售卖价格。 WDL
只读药品编码、名称、产品/通用名、品牌、强度、剂型、注册号、法定分类、制造商、包装说明、共享用法/安全提示、共用临床名、基本单位、规格名称及换算,不再提供共享资料编辑、规格新增/改名/删除或包装单位选择。直接
API 和服务层同样限制到真实 Super Admin,额外授予
catalogue.manage 不使 WDL 身份成为共享资料维护者;Assume
Role 不可写。CDU 的本诊所自订名称及发药单位边界保持不变。
两边列表按包装规格对齐: Super Admin → Drug master data 和 WDL → Drug catalogue 都按「药品 UUID+包装规格 ID」一行展示,不复制药品主档。同药 10 片/盒、100 片/盒分别两行,名称下或独立列明确规格;搜索、排序、分页与总数按实际规格行计算。Super Admin 修改共享药品资料影响该药下所有规格,规格操作明确指向选中规格;无当前可用规格的历史药品仍在主档显示待设置,不凭空生成新规格。WDL 按工作单位、药品启停及自身筛选查看相同规格,两个列表不要求所有筛选下行数相同。强度、剂型、注册身份仍属药品级;包装规格不独立重定义这些属性。
Super Admin 规格维护: 新药及新增包装规格必须填写名称、完整单位换算和明确 WDL 整包装单位;可以改名、启停及删除从未被使用的规格。已被订单、库存、地点配置或商业记录引用的规格不可删除,换算不可覆盖;已确定且使用过的包装单位也不可直接更换,应创建新规格。规格停用阻止新订单及新定价,但不删除原订单、库存、报价、价格历史或妨碍既有履约追溯。历史未确定的包装单位允许管理员按既有一致配置补全;不同 WDL 已使用不同单位时保留原记录、提示冲突并另建规格,不把旧数量重新解释成新包装。
规格换算使用不可变版本,已使用的旧规格不覆盖。变更基本库存单位必须通过零库存/既有交易保护并显式建立新的规格,不重算旧采购、处方、批次及价格快照;不满足保护条件时阻断并说明实际原因。共享业务字段保留修改者、时间和版本,冲突须刷新后处理。
这里的 System Admin
指获授权维护集团主数据的系统管理员;现有角色目录对应
Super Admin(super-admin),不是新增另一个角色,也不是整个
System Administration 类别均有药品写权。
| 层级 | 内容与范围 | System Admin | Clinic Manager |
|---|---|---|---|
| Layer 1 — Drug Master | 集团共享药品身份:UUID、永久编码、WDL 名称、产品/通用名、品牌、规格、剂型、注册号、法定分类、制造商、包装说明、基本库存单位、共享用法/安全提示、全局启停及术语关联 | 读取及维护;沿用字段、版本、单位及审计限制 | 只读;不能创建第二套药品身份或改写共享字段 |
| Layer 2 — Common | 同一药品的集团共用临床名称
clinic_drug_common_name,供各诊所作为默认名称 |
读取及维护 | 只读;不能修改所有诊所的共用名称 |
| Layer 3 — Clinic Specific | 基于既有药品 UUID 的本诊所自订名称
clinic_drug_cust_name;以诊所工作单位与药品 UUID
唯一关联 |
集团主数据权限不自动成为诊所写权限;诊所操作仍需相应动作与有效诊所范围 | 读取、创建、修改及重设本人获授权诊所的自订记录;其他诊所记录不可因该角色而获得访问或写入权限 |
Common 表示集团共用的临床默认名称,不是药理学的通用药分类,也不是另一条药品身份。三层是逻辑及维护责任分层,不要求三个实体表。诊所自订记录始终引用主档 UUID,不能重新定义规格、剂型、注册号、基本单位、单位换算、共享用法或安全提示。
临床选药与新标签名称按 本诊所自订名称 → 集团共用名称 → WDL 名称 解析;空白或未配置时回退。重设 Layer 3 只撤销本诊所自订名称,不删除共享药品。WDL 继续使用 WDL 名称;已保存处方、发药和其他交易快照不追改。
Clinic Manager 必须有有效诊所任职及范围;可获授权多家诊所,每次操作以当前有效诊所为准。账号建立时选择诊所用于确定本地管理范围,不把共享主档变成诊所所有。集团 Layer 1/2 维护不能要求管理员先取得某诊所 Manager 身份。诊所库存/发药单位、地点启用、成本和价格仍是独立配置,遵循 §1.3、§5、§6 及各自权限,不因有 Layer 3 名称写权而自动获得。
权限必须由服务端分别判断共享读取、共享写入、本地写入及对象归属;App 图标可见不等于有全部 Catalogue 写权。不能为了开放本诊所自订名称而向 Clinic Manager 授予可写 Layer 1/2 的全局动作。Catalogue 内其他非药品功能仍按各自规范处理,不从本节推断其权限变化。
1.3 单位和数量
- 每种药品必须有一个最小、不可分割的库存基本单位,库存以该单位的整数数量记账。
- 药品其他单位须与基本单位建立有效换算关系,才可用于采购、库存展示或发药。
- 每个药品的整套单位换算关系统一维护版本。业务流水关联版本,保留当时的数量含义。
- WDL 的采购、库存和出售统一沿用 Super Admin 在当前药品包装规格中明确的整包装单位,不由 WDL 自行选择或改变换算。首次商业定价可在同一事务登记继承的地点配置,不要求 WDL 先维护一次库存单位;缺少共享包装单位时提示由 Super Admin 设置,不从名称、最大倍率或基本单位猜测。历史各 WDL 已保存的单位、数量、换算及交易快照继续保留;迁移只在旧 WDL 配置一致且存在有效换算时补全共享包装单位,缺失或冲突留待核对。CDU 仍按 Clinic/Centre 维护独立发药单位,不按 Zone 配置;默认留空时按主档基本单位解析,明确指定其他发药单位时保存覆盖值。CDU 收到完整包装后可按有效发药单位拆包,WDL 只能操作整数完整包装。
- 2026-11-08 用户确认:只有 CDU 可以拆包;WDL 的采购、赠品实收、逐库位放置、上架、移位、预留、拣货、销售出库、退货和盘点均遵守统一包装单位。每个来源及每个位置分别校验整包装,不得将两个半盒或不同规格拼成一盒。运输外箱仅作外包装信息,不能据此切换药品业务单位。
- CDU 库存单位就是医生处方中的发药单位,发药数量必须为该单位的整数。
- 诊所启用状态与完整换算版本仍须配置,留空单位不自动启用未纳入目录的药品。继承及覆盖都必须使用属于该药品且基本单位仍与主档一致的版本;主档基本单位改变后,旧版本不得用于新处方或新定价。
- 诊所价格按有效发药单位与完整版本绑定。继承主档单位不会把未定价当成零;更换发药单位后旧单位的价格不能直接沿用。既有处方、订单与库存来源层继续保留原单位、倍率及版本。
- 若 EMLA 5G 同时按克或管发药,可在核对实物规格后以 G
为最小库存单位,发布
1 TUBE = 5 G;诊所可继承 G 或明确指定 TUBE。以 BOT 为基本单位的 FERRUM syrup 可留空诊所覆盖值,按瓶发药;未发布 ML 换算时不能从名称中的容量猜测换算关系。 - 处方中的每次用药剂量及用药单位独立于发药单位;例如每次一片,可以发一盒,不允许因剂量是片就按片扣减整盒发药。
1.3.1 数量容量与精度
WDL/CDU 采购、收货、供货、退货、盘点及 DD 的单次数量、换算后基本量和同机构同药品同规格的累计库存数量上限为 999,999,999,999,999。正常数量保持非负,要求正数的交易不得填零;药品基本量、发药量和完整包装数量仍须为整数。采购品和赠品共同受订单基本量上限约束,不能通过拆分性质或库存来源绕过容量检查。现存、预留、不可用及在途分别核验;历史超出当前写入上限的存量允许合法减少。
包装参照关系可保留四位小数,但换算后必须是范围内的整数基本倍率。历史共享库存的小数数量及原交易快照继续保留,不因扩容重算、舍入或换规格。跨机构等只读汇总可以超过单机构写入上限,展示与拆单位使用精确计算,不因转为浮点数丢失个位。
数量、单价和金额独立校验。单价沿用原有上限及小数规则,数量扩容不扩大金额字段容量;计算金额超限时明确拒绝整笔操作。库存及单据数量异常同事务回滚,不产生部分库存、部分收据或残留预留。工程依赖、迁移及本地验证边界见数量容量实施说明。
1.4 价格与供货对象
- 每个 WDL 设置自己的价格档位数量,例如三档;每个供货药品须维护这三档的具体价格。
- 每个 WDL 对每个采购单位分别配置是否供货和适用档位,默认一档。采购单位可以是诊所,也可以是其他 WDL。
- 档位和供货开关作用于该 WDL 与采购单位之间的整体关系,不逐药配置采购单位档位。
- WDL 档位价格对应供货 WDL 对该药品设置的库存单位;CDU 单价对应 CDU 库存单位,即发药单位。
- WDL A 向 WDL B 供货与 B 向 A 供货为两条独立关系。
1.5 条码与 OCR 集成范围
条码(Barcode)/二维码(QR)和 OCR 是 WDL/CDU 出入库业务的一部分,嵌入已有采购、供货、收货与退换页面,不另建独立库存或脱离业务单据的识别工具。
| 环节 | 集成目的 | 对应规格 |
|---|---|---|
| 药品与包装识别 | 将实物条码映射到药品 UUID、包装单位及换算版本;批次、库位码按各自对象解析 | §5.4 |
| 外部供应商 → WDL/CDU | OCR 提取 PO/送货单/发票,扫码核对实物,人工确认本次实收、质量及库位后入库 | §7.3–7.4 |
| WDL → WDL/CDU | 按供货任务扫码拣货、复核和发出;买方关联原发货扫码实收,分别记录出库、在途与入库 | §8.2、§8.4 |
| WDL → 外部诊所 | 扫码核对实际发出,上传交付/签收证据并辅助识别,由获授权人员确认交付 | §8.4 |
| 退回与换货 | 沿原来源链扫码核对,证据识别仅辅助登记,实际退入/退出与接受结果分别处理 | §11.1 |
OCR、扫码成功、打印标签和上传签收单均不直接增减库存,也不代替采购审批、质量放行或实际收发确认。患者实际发药继续由 Drug Dispensing 按 §10 执行,不在 CDU 新建另一套发药流程。
2. APP 职责与协作边界
| 入口 | 主要职责 | 主要使用者 |
|---|---|---|
| WDL | 自身采购、供应订单、出入库、客户供货配置、档位价格、退换及质量管理 | 当前 WDL 的 Staff、PIC |
| Clinic Drug Stock & Prices | 当前登录 Center 的现货、可用库存及患者零售价只读查询 | Doctor、Frontline Staff(含护士)、Clinic Manager |
| CDU | 统一采购订单、收货、库存、发药标准价、退换及耗用数量核对 | 当前诊所 Pharmacy |
| Drug Dispensing | 患者处方审核、预留、标签、备药、不同人复核、实际交付 | 当前诊所获授权 Pharmacy 人员 |
| Consultation | 医生选择本 CDU 可用药品、填写用药方案及整数发药数量、签署处方 | 医生 |
| Finance | 商业票据、月结付款及财务系统交接(财务处理另行设计) | 获授权后台 Finance |
| Organization & Access | 单位身份、人员任职、动作权限、诊所自采审核 PIC 的任务范围 | 系统管理员 |
| 共享药品资料管理 | 药品身份、全局启停、统一单位换算发布、术语及外部编码映射 | 获授权 IT 主数据维护人员及专业审核人员 |
CDU 管理药品和库存,Drug Dispensing 管理患者交付。两者业务场景独立,始终作为两个 APP,不规划合并。CDU 可显示待备药预留并链接获授权发药任务,不复制患者发药状态机。
两个 APP 始终显示当前单位。跨单位购销不是切换身份:采购方只能操作自己的 PO、实收和退货,供货方操作自己的供货单、分配和发出。
2.1 Clinic Drug Stock & Prices — 诊所药品库存与售价
2026-10-24 用户确认:新增独立只读 App,放入 Business Operations,与 Cashier 并列。使用系统 AppWindow、Element Plus 表格及既有主题和中英文切换,不新增管理导航或独立视觉风格。
- 角色与主体: Doctor、Frontline Staff(护士按该角色处理)、Clinic Manager 在其有效诊所 Membership 及读取权限内使用。一个人员属于多个 Center 时,在登录/系统身份选择中选定本次 Center+角色;App 只跟随该主体,不提供内部 Center 下拉或跨 Center 汇总。库存与售价固定覆盖当前 Center;所选 Zone 或临床受限 Zone 任职不缩小药品库存池,不增加患者或问诊访问权限。系统切换主体、角色、Zone 或撤销权限时,立即清空结果、搜索条件和分页,迟到响应不得恢复旧主体数据。
- 列表与搜索: 打开即显示当前范围有现货的药品;按中文/英文药名、诊所自定义名或编码搜索,Enter 与 Search 等效,Reset 恢复完整现货列表,Refresh 刷新当前查询;服务端先过滤再分页。药品名称与编码、规格、单位、现货库存、可用库存和患者零售价分列,名称左对齐,数量/金额右对齐;窄窗口允许表格横向滚动。
- 库存口径: 按药品+单位版本+基本单位汇总当前
Clinic/Centre 及其历史 Zone 来源的账本现货,仅纳入
on hand > 0的行,不含纯在途库存。可用=现货-预留-不可用;可用为 0 仍显示并标注“暂无可用库存”,负数标注“库存缺口”,不抹去真实差额。批次效期/质量和实际发药资格仍由发药流程校验。已停用但仍有现货的药品保留,显示停用标记。 - 售价口径: 仅显示当前 Center、对应单位版本和库存显示单位已生效、未取消的最新患者零售标准价(CDU 单档价,HKD),不带出采购成本或其他档位。未来价尚未生效时继续显示当前有效价;未设价显示“未设定售价”,显式零价仍显示 0。缺少地点配置、版本/基本单位不一致或无法换算时以账本基本单位显示库存并提示配置待核对,不推算或套用其他版本/Center 的售价。整单位与余下基本单位分开显示,保持数量精度。
- 范围: 只读查询,无新增/修改、成本、供应商、批次管理、采购、盘点、调拨、导出或患者记录入口;不因进入此 App 获得 Pharmacy、CDU 或 Pricing & Costs 的写权限。加载、无库存、无匹配结果、失败及重试都有明确反馈;失败时清空旧行,不能把旧值当成当前结果。
验收至少覆盖三类角色、未授权角色、同一医生两个 Center、Zone 切换不改变整 Centre 库存/售价、临床 Zone 授权仍有效、切换中的迟到响应、中文/编码搜索、分页、现货为 0 排除、可用为 0 保留、停用存量、缺失/未来/取消/显式零价、单位错配、接口失败重试与窄窗口。产品规则已确认;具体实现、本地服务链、PRD 发布和 STG/UAT 状态见专项验证记录,彼此不替代。
3. WDL 功能架构
导航最上方固定放置“待我审批”,其下为订单、库存、主数据三个一级菜单组。待我审批仅列当前人员有权处理的任务,打开完整单据后执行审批。
| 导航位置 | 页面 | 功能与主要动作 |
|---|---|---|
| 顶部独立入口 | 待我审批 | PIC 采购审核、获分派诊所自采审核;盘点差异不进入审批队列 |
| 订单 | Written orders(对外订单) | WDL 对外采购入口:向外部供应商或其他 WDL 创建 PR、提交、撤回、PIC 批准成 PO、按次核对收货、查看原件、结束余量;后续接入 OCR 与扫码验收 |
| 订单 | Clinic drug orders(诊所药品订单) | 接收内部 CDU/WDL 订单;代录外部诊所/WDL 客户订单、报价/PO、确认、分配、扫码拣货与复核及分批发货、发货文件、送达与待签署跟进 |
| 库存 | Current stock(当前库存) | 药品及生产批次汇总、现存/可用/预留/不可用/在途数量与预留缺口,按地点单位显示 |
| 库存 | Shelves & Locations(货架与库位) | 查看库位存量、待上架和移库记录,扫码查找库位或批次并打印批次标签,见 §5.5 |
| 基础设置 | Location setup(库位设置) | WDL Staff 和 PIC 维护本仓库位并打印库位标签,见 §5.5 |
| 库存 | In-transit stock(在途库存) | 独立查看已发货供货及待实收退货在途记录、来源/去向/批次/基本量和关联 PO/RET 入口;不计入当前现存 |
| 库存 | 出入库记录 | 查看采购入库、供货出库、收货、退货、损耗、调整及对应来源链 |
| 库存 | 药品交易登记册 | 按当前 WDL 与单一药品查看 P2、P1 及有效 P1 开首分类的实物交易、期初/逐笔/期末余额,导出 PDF/Excel |
| 库存 | 退货与换货 | 客户退入、向供应方退回、例外审批、实际移动、接受结果、替换货 |
| 库存 | 盘点与处置 | Staff 实盘登记并直接确认差异,允许动态收发;质量处置权限单独定义 |
| 库存 | 召回 | PIC 发起授权范围内召回,Staff 跟进本单位及供货对象响应、实物回收 |
| 主数据 | 药品目录 | 按共享包装规格查看药品,维护当前 WDL 的供应商、采购政策、采购价和售价;共享资料及规格只读 |
| 主数据 | 价格维护 | 设置档位数量、逐药全部档位价、生效时间及币种;配置各采购单位供货开关及适用档位,查看价格历史 |
| 主数据 | 主数据申请 | 申请新增/纠正药品或单位关系,跟踪处理结果 |
销售设置(Sales settings)用于管理 WDL 面向内部单位及外部客户的供货许可及价格档位。2026-10-30 用户确认:菜单与页面标题统一使用 Sales settings/銷售設定;内部页签为 Internal units/內部單位,名称列为 Unit/單位;外部页签为 External clients/外部客戶,名称列为 Client/客戶。供货许可与价格档位保留 Supply permission、Price tier。内部页面说明为“Manage supply access and assign a price tier to each unit. Changes apply to new orders only.”(管理各單位的供貨許可並分配價格檔位。變更僅適用於新訂單。)。内部单位包括诊所及其他 WDL;外部客户包括外部诊所及外部 WDL,价格与供货权限沿用价格维护控制;WDL 文件抬头与付款资料在同一配置入口维护。外部供应商清单通过 Supplier management/供應商管理 页面维护,采购订单页及创建 PO 的供应商选择器沿用既有供应商维护入口,不另建一套供应商资料。
2026-10-30 用户确认整体命名 review:配置分组统一为 Setup/基礎設定;供应商页面及标题使用 Supplier management/供應商管理;Current stock 内的在途子页签使用 In-transit stock/在途庫存,共用库存界面采用同一命名。保留 My approvals、Current stock、Drug transaction register、Batch recalls、Drug catalogue、Reports,以及既有订单名称。2026-11-14 用户进一步确认:WDL 的 Stock movements 和 Stock counts 合并为 Stock records/庫存記錄 单一导航入口,内设 Stock movements/出入庫記錄 和 Stock counts/盤點 两个页签;进入时恢复本次会话最后使用的页签。页签切换保留各自筛选及未登记盘点输入,写入期间禁止切换;离开库存记录或工作身份仍按既有草稿保护处理。盘点与流水的接口、权限和库存语义保持独立,其他导航名称、顺序和分组不变;CDU 导航本轮不调整。
WDL 不开展耗用数量核对及财务交接页面;PIC 的经营看板见 §3.2。库存内的药品交易登记册是已确认的药品逐项记录功能,详见 §3.1;单据本身的明细、关联记录、实际收发和审计历史仍完整保留。
默认 Staff 进入采购订单,PIC 进入待我审批。数量作为列表状态筛选,不跨不同药品合计总库存。
2026-11-14 用户澄清三者职责:Drug catalogue 是上游 Super Admin 维护的 Drug master data 在当前 WDL 的业务配置视图,沿用同一药品身份与主档,集中维护供应商关联、采购政策、采购价格及售卖价格,不另建一套药品主数据。共享字段与规格由 Super Admin 统一维护,WDL 权限见 §1.2.1。Stock movements 以每一笔实际库存变动为中心,展示发生时间、药品、数量、批次、来源单据及变动原因;Drug transaction register 以某种药品在当前 WDL、指定期间的数量变化为中心,展示期初、逐笔入出及结余、期末,并支持登记册导出。后两者是同一实际库存流水的不同查询视角,不各自记账;登记册不生成新的库存变动,原有期间、分类范围及历史单位规则继续适用。保留三个入口;不将登记册并入 Catalogue 的采购/定价配置。
3.1 药品交易登记册
- 每份记录按当前 WDL+药品 UUID 独立生成,仅纳入 P2、P1 及有效 P1 开首法定分类。保留本 WDL 已配置或已有历史流水的停用药品;不把旧 CP 整数药品记录自动映射至新登记册。
- 支持按药名/编码/香港注册号搜索、P1 家族/P2 筛选及包含首尾日期的期间。默认当前完整日历月。列表分页不限制单项记录或批量导出的完整性。
- 页首显示 WDL、药品名称/编码、香港注册号、法定分类、包装大小、数量单位、期间与产生时间。药品资料标明为产生时的当前主资料;包装说明不充当数量换算规则,未知值显示未记录。
- 明细依业务日期及流水 ID 顺序展示交易日期、性质、供应人/客户、发票号、独立单据参考、生产批号、入/出数量、单位和交易后余额。普通实收入库为 Buy/买入,供货实际出库为 Sell/卖出;退货、调整、开账与转移独立标记。
- 只计算实物现存流水,排除预留、质量可用性标记及在途记账。期初来自开始日前全部实物流水,逐笔余额在分页前计算;不同历史基本单位分别计算,不能用目前换算版本重算或混合相加。
- 发票使用准确关联的已签发 WDL 发票;外部采购/未有签发发票的出库可录入选填发票号。PO、送货或收货参考不得冒充发票号。历史关系只能按可验证的原记录解析,缺失不猜填,亦不阻止导出。
- PDF 为 A4 横向,每种药品从新页开始,续页重复药品及表头。Excel 包含索引及每药独立工作表。支持目前药品、已选药品及全部符合筛选条件药品;没有期间交易的药品仍显示资料和期初/期末余额。
- 查询与导出复核当前 WDL 及药房读取权限,客户端不能扩大单位范围;导出记录真实操作者、单位、药品、筛选条件与格式,不含患者临床记录。资料与余额在一致数据库快照内产生。
- 本地实施和验收证据见登记册验收,不表示 STG/UAT/PROD 已部署。
3.2 Reports:PIC 经营看板
2026-10-19 用户确认:新增当前 WDL PIC 专用的经营看板,不限定为月报。Reports/经营看板默认本月截至今日,支持上月、今年截至今日、历史月份及自定义日期;历史月份直接使用月份选择器,自定义期间使用日期范围选择器。筛选范围内含首尾日期,沿用香港业务日期。WDL 和 CDU 的供货/诊所采购入口统一显示 Clinic drug orders;WDL 对外采购仍为 Written orders。
- 定位与来源:2026-10-19 用户明确 Reports/历史月报仅汇总和展示真实经营数据,供经营参考;数据来自既有订单、收发货、盘点、作废等业务操作。不承担财务分析管理、分账、记账或关账,不建立报表独立的金额调整依据。
- 只读与历史更新:不提供手动修改报表、确认月报、人工修订、锁定月份或版本审批流程。历史月份展示对应期间来源业务记录的当前有效汇总;只有相关来源数据发生变化时结果才相应变化,不因跨月自动冻结。问题应在有权限的来源业务模块处理,Reports 不提供补数、调账或强制确认为完整的入口。
- 查询加速边界:按实际来源单位保存可重建的药品/供应商日汇总,查询时再组合用户授权范围,不是独立账本或不可变月报。相关来源新增、更正、作废或状态变化后,使受影响日期失效并自动重算;修改业务日期须同时重算旧、新日期,修改历史采购依据须更新引用它的后续供货和损耗。实际收发货是否生效以来源实物流水为准,不能单凭订单页的状态文字抹除已发生实物业务。刷新与后台重算不得无依据改变金额。
- 一致性与更新状态:页面显示期间及上次完成更新时间;任何受影响日期未完成重算时,不把部分新结果拼接到旧汇总。当前页保留上次完整结果并标明更新中/失败,首次查询尚无成功结果时显示准备中。准备中显示实际已完成/待处理的来源数据日数量,不推算完成百分比或剩余时间;后台服务不可用、计算失败待重试及等待较长须分别提示,不无限显示正常准备中,也不把未完成结果显示成零。后台自动重试并定期核对,服务恢复后页面自动取得结果;查询和翻页发现来源已变更时重新取得一致的总览与当前页。进入及刷新 Reports 使用独立只读查询,不等待库存操作初始化。内部一致性标记不成为可挑选、确认或编辑的业务版本。
- 使用角色:当前 WDL 的
PIC(
wdl-pharmacist-pic),服务端同时验证角色、读取权限、工作单位及集团;Staff、Finance、CDU 和其他单位不因知道 URL 获得查看权。 - 总览显示供货收入、对应供货成本、药品损耗成本、扣损后利润与独立的采购入库金额。不包含工资、租金等运营费用,不以采购入库金额替代已供货药品成本。
- 逐药品显示上述指标及扣损后利润率;按供应商显示采购入库金额;另有实际损耗明细(日期、药品、批次、数量、成本、类型和原因)及数据提示。服务端执行当前标签的搜索、排序和分页,顶部明确显示期间总计;搜索明细不改写期间总计。可只读查看当前药品的来源交易、业务日期、订单与库存来源引用;不提供报表内更正。表格不使用填充色。
- UI/UX:按共享桌面 UI 规范及本 PRD §14 统一筛选控件尺寸、字体、间距和主题。日期范围仅在外层复合控件显示清晰焦点边界;日历浮层沿用主题、按视口避让,窄窗允许月份纵向排列;Esc 关闭后恢复输入焦点。完整日期范围选定即查询并回到第一页,不增加 Apply。主要利润指标与独立采购金额分开显示,保留一个 Reports 页标题及现有刷新工具。
- 经营口径:供货收入按实际发货数量及订单历史售价计算;供货成本按实际扣减来源的本 WDL 原采购价格和当时单位倍率计算。扣损后利润 = 供货收入 − 供货成本 − 已登记药品损耗成本;利润率以供货收入为分母,无收入时不计算。赠品发货收入为零但仍保留实际来源成本;已明确零价采购的来源可为零成本。
- 采购入库金额按期间实际入库计算,按药品/供应商分组;它是采购收货总额,退货调整独立核对,不等于付款、应付余额或净采购金额。
- 损耗包括已确认盘亏和在库召回实物扣减。冻结、预留和仅标为不可用不重复计损;尚未过账的过期/破损不自动计损。在途召回已涉及先前发货成本,须核对商业调整,不再重复扣同一成本。
- 数据不完整时不可使用当前目录价格估计历史成本,也不可按零成本生成利润。供货售价、供货或损耗的历史成本缺失/非 HKD,以及无法逐药品分摊的整单退货、在途召回调整和无效冲销引用,列入数据提示,受影响药品及整体利润显示不可计算。仅采购入库金额的依据缺失时,该采购指标显示不可计算,不连带抹除已有完整供货与损耗依据的利润。其他可确认指标保留;无收入时利润率显示不可计算并解释原因。
- 精度:日汇总保留计算精度,金额仅在展示时舍入到小数点后两位;期间利润率按期间总利润/总收入计算,不平均逐日利润率。普通冲销按原业务类型和实际有符号数量抵消,重复重算不重复累加。
当前实现边界:本地代码已实现可重建日汇总、来源变更失效、独立后台重算/重试、服务端分页及 Reports UI 调整;后台健康监测与异常恢复改进的验证见 恢复专项。已有数据库需显式安装报表结构(含 worker 运行状态)并运行同版本后台处理程序,发布检查须验证后台服务,不能只发布前端或通过 Web 健康检查;实施步骤见 运行说明。现有退货缺乏逐药品依据时仍展示数据缺口,不新增财务调整流程。原有数据库、性能及浏览器验证结果见 报表验证;本地实现、PRD 发布、应用部署及 STG/UAT 验收分别判断。
4. CDU 功能架构
CDU 直接平铺功能页面,不设置一级工作区及二级菜单组。
| 页面 | 功能与主要动作 |
|---|---|
| Clinic drug orders(诊所药品订单) | 创建时选择“向 WDL 采购”或“供应商自采”;在同一页面完成建单、提交、审批跟踪、供应进度、OCR/扫码分批收货及关闭余量;可选已有供应商或提交新增供应商申请 |
| 当前库存 | 本诊所药品、地点库存/发药单位、生产批次、单位版本、可用/预留/不可用/在途与预留缺口;详情查看出入库记录 |
| 退货与换货 | 按原收货退 WDL 或外部供应商,跟踪接收结果、实际移动及替换货 |
| 盘点与处置 | 动态实盘及差异确认,具体角色见 §11.2;质量处置权限单独定义 |
| 价格维护 | 维护本诊所按库存/发药单位计价的标准单价、生效时间及历史 |
| 诊所药品名称 | 查看 WDL 名称及诊所共用名称;获授权药师可按共享药品 UUID 维护本诊所自订名称及原因,供新处方与标签使用 |
| 耗用数量核对 | 查询本诊所发药、实际废弃、患者实物回收及更正,按来源核对、提交及跟踪确认结果 |
采购订单列表以采购方式、供货方、状态和日期筛选。待收货是该列表的状态筛选,不单设页面。向 WDL 采购时,在建单选药过程中展示可采购药品、适用价格及必要供货信息,不设独立 WDL 供货查询页面。
CDU 不建立独立药品身份或采购来源配置,不设置主数据申请入口,也不具备共享药品/单位主数据申请或修改权限。诊所药品名称页只维护本诊所专属名称。需要药品时直接在采购订单中选取已有共享药品并采购,不要求先建立诊所目录或供应商合作关系。
CDU 不发起召回、不管理召回范围。对 WDL 已发起且涉及本诊所的召回,在当前库存中显示受影响批次及来源通知;本诊所按权限隔离并通过退货与换货办理实物退回。无需独立召回页面。已交付患者的处理由 Drug Dispensing/临床团队承担。
订单和库存不依赖患者上下文。患者费用调整、结算、审方及实际发药不放到 CDU 采购或库存表单中。
5. 共享药品、地点配置与供应商
5.1 选药与交易
WDL 药品目录按共享包装规格展示,只维护供应商关联、采购政策、采购价格及全部售卖档位价;包装单位和规格启停由 Super Admin 维护。共享主档存在不代表该 WDL 已完成定价或已允许供货,供货许可仍在 Sales settings 管理。
CDU 在创建采购订单时选取已有药品:向 WDL 采购时选择该 WDL 允许供应的药品;供应商自采时从有效共享药品中选择。药品在本诊所没有库存不阻止采购,不需要先创建诊所药品目录。目录中缺失的药品不能临时建立永久本地编码;CDU 无主数据申请权限。
CDU 首次采购某药品时,在订单流程中配置本诊所库存/发药单位,选择该药品有效换算版本中的单位,并保存为地点药品配置;确认首次入库前必须完成。当前库存详情提供后续地点单位配置入口,变更遵循在途业务及历史保护规则。配置本地使用单位不修改共享药品或换算关系。
本诊所价格维护页可承接已采购或已有库存药品的发药价格配置;完成有效单位及价格设置后方可用于新处方计价。缺价不能默认为零,采购和收货不要求先设置患者发药价格。
同一注册号可以关联多个经审核的真实品项;不同供应商、价格和一般包装换算不产生重复药品 UUID。暂缺或不适用注册号允许为空;注册资料来源和例外分类需另行设计结构化扩展,不编造号码。
5.2 地点配置与启停
地点药品配置独立保存药品引用、地点库存单位及建议的低库存阈值。WDL
包装单位继承 Super Admin 的共享规格,原本地配置保留历史;Catalogue
不再提供地点单位编辑。低库存等运营配置不混入共享主档或商业资料维护,本轮不新增其维护页面。CDU
从采购及库存流程维护必要的地点配置。诊所可通过获授权的诊所药品目录单独维护本诊所的
clinic_drug_cust_name,不编辑共享药品
UUID、默认用法或安全提示。低库存只提供人工采购入口,不自动创建采购单。
全局停用阻止新纳入、新处方和新普通订单;存量库存及历史业务继续可查,退货、隔离、销毁和受控结单不被封死。既有已批准采购是否继续收货需按停用原因复核,不以启停开关自动取消所有业务。
5.3 共享外部供应商清单
WDL 与 CDU 共用外部供应商清单。获授权 WDL 人员维护本单位负责的供应商。CDU 只读选择有效记录,需要新增时提交资料完整的申请。前后端均按当前工作单位和权限限制直接建档、编辑及停用。供应商可选不授予其他单位的订单、价格或库存访问权限。
CDU 提交供应商正式名称、地址、联系人、可用联系方式、拟采购内容及理由,可填写付款条款和支持资料参考。提交时明确接收 WDL。申请人可编辑草稿或补充被退回的申请;申请待批期间不会成为可选供应商。接收 WDL 的获授权审核人核对资料,选择批准建档、关联已有有效供应商、退回补充或驳回,保存审核人、时间及意见。新增供应商的财务编码由有权限的维护人员另行补充。
新增和改名按集团内正规化名称去重,忽略首尾空白、连续空白及英文大小写,并由服务端处理并发。批准申请时若已有同名有效供应商,审核人可明确关联该记录。保持历史供应商和订单引用,旧 CDU 归属记录由负责的 WDL 显式接管并保存理由与审计;停用后退出新单选择,历史业务仍可追溯。
供应商新增/编辑弹窗经 Cancel、关闭按钮或 Escape 关闭时清除该供应商草稿、变更原因及电话输入,随后关闭 App 不因已取消草稿提示未保存;独立订单及其他未保存内容继续按各自保护规则处理,保存进行中不能关闭供应商弹窗。
WDL 作为供货来源直接关联 Working unit,不复制为外部供应商。同药可以分别从 WDL 和外部供应商采购;订单和实收保留采购事实,库存与采购退货的数量规则见 §9、§11.1。外部供应商采购单价记录在 PO 中,不向共享清单的其他使用单位公开。
诊所无 WDL 供货权限时仍可从共享外部供应商清单自采;自采审核 PIC 的配置独立于 WDL 供货许可。
5.3.1 药品供应商价格与政策
相关代码改动与验收方案见WDL 界面与连续收货方案。
2026-11-13 用户确认:入口放在 WDL → Drug catalogue。Actions 提供有文字的“Supplier prices & policies/供应商价格与政策”;药品 Details 直接展示当前规格的供应商报价及政策摘要,并提供管理入口。两个入口使用同一数据和管理视图,保存后同步更新,不新增或重排导航。
一条记录绑定当前 WDL、既有药品 UUID、明确规格/报价单位及共享供应商。同供应商可维护多组数量档或期间政策;默认比较列为供应商、币种单价/单位、政策摘要、有效期和操作。新增/编辑沿同一管理视图,Details 无记录时显示轻量空态及新增入口。
2026-11-14 用户确认简化输入:默认只展示供应商、单价、币种/单位和一个 Policy / terms 自由文本框。币种默认 HKD,单位默认当前规格库存包装单位;有效期、来源/备注按需展开。买赠、折扣、起订量、上限和叠加条件可直接写成文字,不再要求逐项结构化输入。长条款在列表显示摘要,完整内容可展开。本地实现及覆盖边界见11-14 专项证据。
- 报价与校验: 币种、单价、计价单位保留结构化;单价可缺失,缺价与零价区分;金额显示两位小数,未编辑值保留原精度。单位、日期、文本长度及版本冲突继续校验,纯文本不作为可执行 HTML。
- 旧内容兼容: 已有结构化买赠/折扣/数量限制/叠加记录和历史版本保留。普通编辑不得因新表单少字段而清空旧内容;旧条款可看摘要。显式转为文字条款时先完整展示转换结果,经确认形成新修订,旧快照不变。
- 追溯: 保留来源、启停、作者/更新时间及历史版本;重叠条件仍提示人工核对,不宣称自由文本条件已被系统判定。
- 范围与历史: 获授权 WDL 人员仅维护本单位政策;共享药品/供应商不授予跨 WDL 价格权。报价不修改旧 PO、实收成本、销售档位和历史发票;不自动套用优惠、生成赠品行、推算净成本或按不可比条件标最低价。
Drug catalogue 主表按药品规格显示,Suppliers(供应商数量)与 Purchase quotes(整体采购报价区间)保留两列并相邻排列,供应商数量在前,采购报价区间在后;Selling prices(售价区间)独立列示。每个药品规格仍为一行,不按供应商展开;采购报价区间汇总该规格各供应商的有效可比报价,不逐家列价。采购报价不是实际成本,真实收货/库存成本保留明细来源。售价为当前有效档位范围,缺档仍提示未完成定价;采购报价仅对当前有效、供应商启用、同规格及可换算到统一库存包装单位的数据按币种汇总,不跨版本混算、不换汇、不解析文字优惠计算净价。单值显示单值,缺值不作零;有数量条件的报价在详情显示条件,区间不代表任意采购数量均可适用。供应商数按本 WDL/规格有效政策的 distinct supplier 计数,同一家多政策只算一家;单价缺失但有有效政策仍计入。未来、过期或停用记录不计入当前摘要。点击摘要进入详情,所有原明细和历史仍可访问。
5.4 条码、包装与库位映射
条码作为药品/包装的受控外部标识维护,不取代药品 UUID。一个药品可有多个经核验条码;每条映射保存原始码值、码制、药品、包装单位、换算版本、适用来源/地点范围、启停状态和维护记录。同一适用范围内的有效映射不得将同一码值同时指向不同药品或包装含义;有歧义时停止自动匹配并交主数据维护人员处理。
商品条码可能只标识产品和包装,不保证包含批次或效期。仅在码内实际携带、且规则可解析时提取批次/效期;否则从实物及获核对单据补录,不能把商品码当作唯一批次或逐盒序列号。扫描所得包装必须按本次来源的换算版本计算基本量,不套用当前最新比例。
地点/库位、批次标签、单据/任务码与商品码分别解析并校验,不能将任意扫码文本当作获授权业务对象。库位属于当前工作单位;扫码定位任务后仍检查该任务与当前单位、单据及人员权限的关系。
新码、无码或破损码进入人工核对:选择已存在且获授权的药品、单位、批次及库位,填写原因并保留依据,再按同一业务门禁处理。人工核对不是永久新增映射;共享药品/包装映射由获授权主数据维护者核验发布,CDU Pharmacy 不因扫码或 OCR 获得主数据修改权。若需内部标签,打印/补打须使用已核实对象并保留标签版本及操作者;打印不代表收货、放行或出库。
5.5 WDL 货架、库位与入库批次二维码
目标与范围。 2026-11-06 至 11-07 用户确认:首期仅覆盖 WDL,现场已有扫码枪但尚无货架编号,从编号及管理开始;支持收货直接上架和先暂存再上架,每次实收按药品批次生成内部二维码,贯通收货、上架、移库、拣货和实际出货。本节为已确认的开发范围,部分功能已进入隔离本地预览;目标环境与现场 UAT 尚未验收。工程对象、接口、分期、设备核验和测试设计见开发方案。货架专项不扩大至 CDU/患者发药;收货 OCR 的当前边界见 §7.5,不默认逐盒序列化、独立箱码、三维仓库、自动容量或路径优化。
5.5.1 位置与标签
位置采用“区域 → 货架/柜 → 层 →
格位”,允许整层作为最小库位,或继续分格;同一层不能同时作为可存货叶子位置和下属格位的重复容器。示例
A-01-02-03 表示 A 区、01 架、02 层、03
格;编号不含药名,在本 WDL 内唯一,系统扫码标识同时关联所属
WDL。支持批量预览、建立和打印标签。已有库存或任务的库位不能直接删除/停用;调整结构先清理存量和任务,历史编号不转借给另一位置。
收货暂存位、货架位、发货暂存位、隔离及退回待检位置均需登记实际物理位置。库位保存用途、储存条件、是否允许普通拣货及启停状态。冷藏等要求按药品和现场配置核对,不以“暂存”为由忽略条件。库位用途与货物质量分别管理,移到普通货架不解除隔离;隔离/召回状态不因移动消失。特殊品类区域及解除隔离权限仍按既有专项规则,不能由库位维护权限推导。
| 标签 | 身份与人可读信息 | 扫码后的行为 |
|---|---|---|
| 库位码 | 稳定库位标识;大号编号、区域/货架/层格及用途 | 显示获授权当前单位的位置与存量,或核对当前任务的目标/原位置 |
| 入库批次码 | 本次确认实收明细的稳定标识;药名、规格/单位、生产批号、效期、收货日期、内部入库编号 | 显示该次实收来源、当前质量/位置/数量及允许操作,不直接过账 |
同一生产批号分两次收到,生成不同入库批次码;一次收货涉及多个药品、生产批次、包装版本、采购/赠品或质量拆行,分别关联已确认实收明细。二维码不替代厂家生产批号。采用稳定标识实时读取状态,不将当前剩余数量和库位固化在码内;如印数量,明确标为初始实收数量。同一入库批次拆放多个位置时可打印相同标签,必须结合库位和本次数量操作,重复标签不表示不同箱子,扫描不自动加一。
2026-11-14 用户进一步确认收货和上架分阶段完成:实收资料核对 → 确认入库 → 自动进入 Awaiting putaway → 后续选择实际货架及上架数量。收货默认允许先入库、稍后上架,不要求先填写货架或收货暂存位;已知实际位置时仍可直接登记。系统明确记录“待上架/位置待补”,不自动填入真实货架或伪造已暂存位置。待上架按本次实收批次及剩余数量管理,不把整张 PO 的收货状态改成待上架;成功页及历史收货记录保留收货号、实收/剩余量、凭据待补状态、标签和继续上架入口。上架仅分配位置,不再次增加库存。
库位追踪未启用、尚未完成初始化和读取失败必须分别提示。新 WDL 实收即使未启用整仓强制库位追踪,也生成本次入库身份及待上架余额,允许后续配置真实库位并补录;不自动启用整仓追踪,不把历史未定位存量伪造成新收货。位置资料读取失败不影响明确选择稍后上架的实收,选择立即登记位置时则必须成功读取并核实。历史存量初始化与整仓启用仍按各自权限、真实存量核对及既有流程执行。不可用品质和储存条件门禁不因分阶段处理而解除。
常规仅要求打印入库批次标签;本次入库单/收货汇总凭证可选,不强制第二张货物身份标签。按钮可连续引导确认入库与打印,但正式身份在实收事务成功时生成,打印/补打在事务后执行,打印失败可重试,不重新收货。保留打印人、时间、份数、模板版本和补打原因;系统生成文件不等同于打印机已完成输出。错误实收走既有更正及关联冲销,标签作废/替换可追溯,不通过换标签改写原实收。历史存量、退回及盘盈标签标明真实来源类型,不伪造采购收货记录。码值不提供匿名库存查询、跨单位访问或质量放行权限。
5.5.2 收货、上架和移库
在 §7.3/§7.5 的同一本次收货草稿内可选填实际存放分配,不另建收货单。每个确认实收明细按统一包装单位输入:未登记位置的数量进入独立待上架余额,已登记的各库位量与待上架量之和等于本次实收量,不把待补位置当作物理库位。直接登记时可分放多个真实货架或适用暂存位,各项必须为整数完整包装且符合质量/储存条件。实收、来源库存、位置或待上架余额、入库身份及草稿确认共同成功或回滚;费用、赠品、原件和内部在途门禁按 §7.3/§7.5 执行。后续可一次或分批上架:仅转移本次相应余额,未上架部分继续留在待办;刷新、重复提交或相同数量的多次实际上架不得重复入库或误用先前请求。不可用实收仍保留不可用数量,只能登记到适用隔离位置,上架不解除隔离。
暂存后上架按当前暂存位置和实际数量办理,可多次部分上架;待上架量来自尚在收货暂存位的存量,不等同于 PO 未收量。直接上架不产生待上架任务。上架或移库核对货品码、原/目标库位、本次数量、包装单位及质量,原位置减、目标位置加,WDL 总现存不变,不产生采购、财务或新的在途。跨 WDL 转移继续走真实供货/收货。
已预留但未拣的库位建议不是实物保证,位置变动后须刷新/重新确认建议。已拣货移到发货暂存位时记录对应任务;其后移动、撤销拣货或释放任务须显式处理实物去向并使旧复核失效,不允许用普通移库隐藏已拣货物。具体任务占用与兼容方案见开发方案,不改变 §9/§11.2 的批次预留缺口及实际执行顺序规则。
5.5.3 拣货和实际发出
在 §8.4 的原供货任务内按有效批次、效期、规格及实际库位建议拣货。扫码核对库位和入库批次码,输入实际数量;商品码只有药品信息时不能代替内部批次核对。错药、错批、错单位/版本、非本单位位置、储存或质量不符、数量不足均阻断对应操作。无码/破损码保留获授权手工选择及原因,服务端门禁相同。
拣货可分次完成,实际搬到发货暂存位须同时记录位置变化;尚未搬离原架则保留原位置并关联任务。拣货/复核不扣减 WDL 总现存,实际发出时才同时完成实际库位扣减、原预留消耗、发货明细、库存流水、在途及单据快照。更换货品/批次、数量或位置后复核失效。对外销售和内部 WDL/CDU 供货共用卖方流程;买方是否启用库位管理由其自身范围决定,卖方入库码不冒充买方的新入库身份。
入库码用于定位和记录本次实际取货,不新增“必须耗用原预留对应收货来源”的限制。既有预留可由同单位、同药品、同生产批号、同效期及兼容版本的后续合格到货继续履行;人员重新选取/核对真实货品,出货明细记录实际来源和库位。采购退货仍按原 PO 额度及实际批次规则处理,不借二维码恢复已取消的逐来源余量限制。
5.5.4 库存、界面与上线边界
一个入库批次可分放多库位,同一库位可以有多条货品/批次存量,查询不能把不同药品或单位的数量简单相加。每个已纳入位置记录的库存来源,其全部实际库位现存与独立待上架余额之和须等于现有库存主账;不可用量亦分别守恒。收货暂存、发货暂存和不可用货物均包含在内,在途排除。预留沿用原任务,只补充位置/拣货明细,不重复预留;库位异常与批次可用缺口分别呈现。待上架状态不等于实际货架位置,不提供虚假的扫码或拣货位置;已启用库位管理的出库仍须取得实际可拣位置。
Inventory → Shelves & Locations 提供库位库存、待上架和移库记录。Awaiting putaway 同时列出位置待补及收货暂存中的未上架余额,展示来源 PO/收货记录、药品、批次、质量及待上架量;支持回到来源订单。筛选与总数由服务器按当前单位及完整库存范围计算后再分页,不从首批已加载库存中过滤,不能因超过 500 条而遗漏待办。Setup → Location setup 是独立的库位配置入口。库存表的移库/上架及打印标签各占固定位置,跨行对齐。库存查找及单库位选择提供「扫码」按钮,点击后展开并聚焦输入框,扫码枪回车或手动输入后按回车确认。拣货从「扫描标签」展开,批次码按回车后聚焦库位码;两码匹配才显示已核对,修改标签或改选批次/库位后失效,手工选择须填写原因。新增库位、上架/移库、历史库存登记、收货及标签设置采用可滚动正文与独立操作底栏;窗口较矮时仍能看到取消/关闭和主要操作。本地预览可从库位设置打印库位标签,从已确认收货或 Shelves & Locations 的库存行打印批次标签。Current stock 保持药品汇总,直接列出各生产批次及当前存放库位;批次详情的收货来源展开后逐库位显示该规格的统一包装数量;无法精确换算的历史存量显示待核对包裝并保留原始数量供追溯,未登记位置明确标示,不以默认货架补齐。Shelves & Locations 的可拣库存行提供出库订单入口,列出本 WDL 已预留相同药品、生产批号、效期及单位版本且仍允许发货的订单;无匹配订单时提示先在供货订单预留库存。进入后带入所选入库批次及货架,新增拣货明细可预选仍有效的位置,仍需扫码核对或填写手工选择原因,不自动确认拣货、复核或发货。暂存待上架及全部不可用库存不提供出库入口;所有数量、质量、权限和版本在执行时重新校验。收货和出货继续归属原业务单据,查询、选中或打印标签不产生库存扣账。界面保留扫码焦点、明确成功/差异反馈,提交未知时按原请求查询结果,防止连续扫码/回车误触确认;输入修改后退出保护沿用共用页面规范。
退回实收及盘盈同样允许先记录实际数量、质量与储存条件,货架稍后补充,使用真实退货/盘点来源建立待上架余额,不伪造采购收货身份。盘亏可以明确选择待上架、实际库位或仍未初始化的历史来源,按对应来源和质量扣减;同一批次的不同效期、规格及来源不得混选或相互抵销。退入、退供、盘盈/盘亏、召回、损耗及收货更正须同步主账与已有位置/待上架余额;异常原因和原交易上限保持。库位盘点差异沿用 §11.2 的动态差额方式,不覆盖实时余额,不释放已有预留;盘亏后重新核对受影响拣货任务。位置和数量不能为负。未启用整仓强制追踪时,既有出库路径保持兼容,但新建待上架或已登记位置的来源继续同步余额;一次扣减涉及多个位置且无法唯一确定实际取货处时,须明确选择或先按实际搬运完成移位,不猜测实物去向。
上线前按现场确认货架结构,完成贴标、现有批次位置登记、主账核对和未完成任务衔接。位置初始化不增加库存,不伪造历史收货归属;无法核实的存量明确待定位,未处理前不启用该 WDL 的强制模式。扫码枪二维码能力、打印机与标签尺寸必须实物验证;软件人工路径不代替硬件验收。具备库存管理权限的 WDL Staff 和 PIC 可在本仓批量建立、启停库位并打印标签。历史库存位置初始化及启用整仓强制库位管理由 PIC 执行。现场参数见开发方案的开工核验项。
6. 单位、整套版本与价格
6.1 单位版本
每个药品的版本状态建议为草稿、已发布、已停用于新交易。发布后不修改;下一次调整创建完整新版本。
配置界面统一展示“1 个其他单位 = N 个基本单位”。如果允许按箱→盒→片输入,发布时必须推导并保存各单位到基本单位的准确比例,检查路径一致性、无断链且无矛盾环路。每个有效单位对应正整数基本量;小于基本单位的库存换算不允许发布。
每笔单据保存原数量、原单位、药品版本、计价单位、计价数量、单价、金额及相关主体。流水同时保存原业务数量、版本和整数基本量,来源层保留对应包装版本;不能只关联当前有效规则。
地点单位及规格版本改变时保留历史记录。WDL 同药同规格已有库存来源或交易(含草稿)后,禁止原位更改统一包装单位;不同真实包装应使用新规格并显式配置,不重解释旧数量。缺少明确 WDL 配置时阻止新交易,不能回退主档基本单位。CDU 单位变更仍须处理未完成订单、价格、处方及预留。
6.2 不同版本的存量
一盒 100 片和一盒 120 片的库存可同时存在,基本量可汇总,盒数必须分版本显示。不得将全部片数除以最新比例伪装成历史整盒库存。
CDU 处方发药数量为整数,但这一约束不保证仓库实物恰好有完整包装。涉及整盒交付时,需记录可用于整盒发出的包装状态,不能把多份散片自动拼成未拆整盒。最低可用方案是来源层按完整包装和零散数量分开登记,不要求逐盒序列号。
建议每条新处方固定一个发药换算版本,自动分配只使用能满足该版本单位含义的来源。存在不同包装版本时分别选择明确的版本,不混合换算后声称同一盒;具体跨版本发药交互列为待确认项。
CDU 库存不足一个地点显示单位时,显示“整单位+基本单位余量”,例如 1 盒+20 片,不隐藏尾量。若 CDU 按盒发药,这 20 片不能单独成为整数盒发药。WDL 历史零散量、缺少单位配置或不一致规格明确提示需核对包装,保留原记录,不舍入、不自动迁移,也不能跨来源或库位拼包。新操作仅使用每个来源及位置可确认的完整包装。
6.3 WDL 价格
WDL 配置 N 个档位,每个供货药品填写 N 个非负价格及币种,缺值不能当作零。明确录入零价时保留原因和权限记录。
新增档位后,缺少该档价格的药品阻止对应档位客户新提交订单,不影响已有完备档位。减少档位前先处理使用该档的采购单位,不能静默改档;价格修改保留版本和生效时间。
供货对象默认一档;建议新增供货对象默认关闭供货,由获授权人员明确开启。供货关闭后阻止新单和新增需求;内部已接受单据按现有规则履行或明确终止,外部订单新发货前再次检查客户启用及供货许可,已发在途/签署/退货记录不能丢失。
供货 WDL 的采购、库存、出售和档位计价均使用该药品规格配置的统一包装单位。CDU 向 WDL 采购时按供货 WDL 的完整包装下单和收货,再在 CDU 内按有效单位拆包发药;CDU 自采可使用其有效规格单位。WDL 之间同药同规格的单位不一致时先核对配置,不允许在订单中临时拆包换单位。历史成交价和换算快照保留。
例:1 盒=100 片,WDL 统一按盒;供应商送来 2 个运输箱,每箱装 20 盒,WDL 药品采购及入库记录 40 盒。二档 95 元/盒,向 CDU 出售 2 盒计 190 元,WDL 剩余 38 盒;CDU 实收 2 盒后可换算为 200 片发药。运输箱数量不改变药品业务单位。
档位、价格、单位及版本在提交时锁定,供货方接受时校验该快照。调价、改档不回写历史;已提交单需要价格调整时必须形成明确修订并由双方重新确认,不允许单方覆盖。
6.4 CDU 价格
每个 CDU 药品维护本诊所发药标准单价及生效历史,单位与本 CDU 库存单位一致。新处方取得当前有效单价并保留快照;历史处方、结算和已签署发药数量不因调价改变。
发药基本量 = 整数发药数量 × 当时发药单位对应基本量;患者药费 = 整数发药数量 × 本次单价。用药剂量不参与这两个计算。
CDU 标准价和个别患者本次价格调整为不同对象,患者例外改价仅在获授权 Drug Dispensing/Cashier 流程中进行,不能通过改标准价重写已结算费用。
6.5 Pricing & Costs 集中管理
2026-09-26 Samuel 确认实施独立的运营定价模块,同时管理 WDL 向诊所的供货价与诊所向患者的售价,两套规则分开。共享药品身份仍由 Catalogue 维护;本模块不替代主数据、库存成本核算或实际采购发票。
- 后台使用本人身份,显式选择同集团有效 WDL/诊所。读取、维护成本/规则、发布价格为独立权限;初始 System Admin 可执行全部动作,Operations Manager 可维护及预览,Finance 可读取。发布权可独立授权,不自动赋予 Finance 或所有运营人员;不新增强制双人审批。
- 成本保存为不可变记录:药品、地点、标准/平均/最近采购成本、金额、HKD、单位及换算版本、来源日期/凭据、生效时间及原因。支持批量导入预检和原子保存;成本可显式记录为未定义(NULL);已定义金额必须为正数,最新未定义记录阻止成本定价,不回退较早正数。零或缺失成本不能自动产生零售价。外部 Analytics 自动同步须另配连接,本模块不把人工录入称为实时核算成本。
- WDL 各档规则可基于指定成本加成、折扣、目标毛利或固定价;诊所规则可基于指定 WDL 对该诊所的适用档位、自己的成本或固定价。显示基数、百分比口径、取整方式和最小增量;加成 20% 的 100 元得到 120 元,毛利 20% 得到 125 元。全程按单位倍率换算,不混用不同基本单位版本。
- 规则可覆盖地点全部药品、明确选定的一组药品或单药例外;优先级为单药 > 指定药品组 > 地点默认,同优先级重叠阻止发布。规则保留修订历史、有效起止与启停原因;到期后明确按下一级有效规则重新生成建议,已发布价不会自行消失。固定价例外不随上游百分比规则变动。
- 来源、规则、档位或地点配置变动进入待计算提示;进入 Price Changes 或选择 Generate preview 时生成持久化建议。预览列出旧/新价格、差额、来源及规则版本、缺失与冲突、受影响草稿数量。WDL 与关联诊所可同批计算、同一生效时间发布;未修改价格保留,不循环加成。
- 先预览后显式发布;服务器发布前重新计算并校验预览指纹,任一来源、规则、单位或既有排期变化要求重新预览。整批全部成功或全部回滚,重复发布同批不重复建价。只发布完整档位;有阻断项时整批不可发布。
- 发布支持立即及带时区的未来时间。未来批次可在生效前整批取消,保留记录及原因;有关联的后续排期时先取消后续批次。已生效记录用新版本更正,不原位修改或回溯改价。
- 单位售价保存及 API 文本保留四位小数;先按精确单价乘数量,再将应付金额四舍五入至分。共享药品身份不保存地点售价。MyPlatform 专用迁移以 walk-in 作为诊所现行价,其他价格/中心药房规则仅为地点 JSON 参考,见迁移运行手册。
- 新订单取得当前有效价。内部采购草稿提供 Refresh prices,显示原价/新价及合计,用户确认后更新编辑稿,保存与提交再次校验;已提交、已接受、部分履行订单、已签处方及历史账单不由本模块重定价。已履行部分保持原交易,余量商业修订仍须原订单流程处理。
实施与本地验证证据单独记录;本节授权实现不代表已部署 UAT/PROD。
7. 采购与收货流程
7.1 采购类型及审批
| 类型 | 建单人 | 审批路径 | 库存入账地点 |
|---|---|---|---|
| WDL 向外部供应商采购 | 当前 WDL Staff/PIC | 本 WDL PIC 批准后成为正式 PO,进入待收货 | 买方 WDL |
| WDL 向其他 WDL 采购 | 买方 WDL Staff/PIC | 买方 PIC 批准后成为正式 PO,进入供货 WDL 接单 | 买方 WDL |
| CDU 向 WDL 采购 | 当前诊所 Pharmacy | 建议无额外买方审批,供货方确认接单 | 买方 CDU |
| CDU 向外部供应商自采 | 当前诊所 Pharmacy | 独立配置的获授权 PIC 单级审核,不经过 Finance | 买方 CDU |
2026-11-06 用户确认 WDL 采购申请只由买方 WDL PIC 审批,Finance 不设采购审批节点。当前角色中 WDL Manager 为现行 PIC 角色,并兼容旧 PIC 身份。创建申请取得 PR 编号;PIC 批准时在同一交易内取得正式 PO 编号并生效,保留 PR 编号、提交、审批及版本记录。2026-11-13 用户确认:本 WDL 的 PIC 可建立、提交并明确批准本人 PR;提交仍进入待审,不自动生成 PO。此规则取代 WDL 采购的提交人与审批人分离限制;审批角色、买方单位范围、当前版本与重复操作保护继续执行。批准备注选填,可直接点击批准;退回须说明原因。待审申请可以撤回,退回后修订重提。缺少合资格 PIC 时保持待审。
既有正式订单与历史审批保留原编号及事实。旧流程中仍待 Finance 审批的单据由买方 PIC 显式处理,保留历史审批及原有编号,不自动批准。CDU 自采审核任务分派按 D03 另行确认。PIC 的审核权限不扩大至诊所库存或患者资料。
7.2 采购订单工作页
2026-11-07 用户确认以新建 PR/待审批详情预览为样板,推广 WDL 和 CDU 的任务分区、角色操作及缺项处理;共同界面规则见 §14.2。建单时缺少外部供应商,具维护权限的 WDL 人员可就地新增并回填,保留已输入的药品、数量、地址及备注;CDU 从同一位置发起供应商申请,返回后保留采购草稿并可刷新共享名单,申请未批准前不能当作有效供应商。药品搜索明确区分未选供货 WDL、供货/价格未开放与共享主档缺项;维护入口沿用现有权限,普通采购人看到负责方及返回刷新入口,不因快捷入口取得主档创建权。
提交时的 Request notes 与提交后的 Internal notes 分开。采购方获授权的 WDL Staff/PIC 或 CDU 药房角色可在已提交单据追加内部附言,显示作者、角色及时间,首版以追加更正保留完整上下文,不覆盖旧文。供货方、其他 WDL/Centre、Finance 或仅有只读权限的人员不得通过订单详情、通用操作历史或接口读取这组内部附言。附言不改变单据版本、数量、价格、供应商、审批或库存;修改正式内容仍须依状态撤回/修订/重新审批。撤回草稿中的既有附言保留但暂不接受追加,带附言的草稿不可硬删除,保留取消及历史。发言失败保留输入,可刷新后重试;同一发言重试不能重复写入。未发附言和未保存文件须先保存或清除,再执行可能离开当前编辑上下文的动作。
采购建单/编辑以初始表单快照判断未保存修改。Esc、弹窗关闭、放弃编辑及 App 窗口关闭均执行退出检查;空白未修改表单直接退出,修改 Notes 或其他字段后明确选择继续编辑或放弃,继续编辑恢复字段焦点。校验失败保留输入;提交进行中或保存结果未知时不能关闭或再次保存,未知结果保留订单供授权人员核对。已确认保存后重置修改基线,沿用既有订单版本、权限及业务状态。
单头包含买方、供货方、单据类型、单号、业务日期、交付信息、币种和备注。一个 PO 只对应一个买方和一个供货方。
明细包含药品 UUID/编码/名称快照、采购数量及单位、单位版本、基本量、计价单位、单价、档位(WDL 来源适用)、金额、预计赠品及累计实收。
页面主状态:草稿、审批中、待供货/待入库、已完成、已取消。各级审批、部分收货、异常及余量关闭作为清晰子状态;取消不会抹去已经收货的事实。
2026-10-30 用户明确:本规则指 Written orders 的外部供应商采购,提交前已与供应商确认订单;保留现有买方内部审批,审批后直接待收货,不设置提交后等待供应商确认的状态或额外确认动作。内部 WDL 采购仍保留供货 WDL 接单确认,不能以此外部采购规则自动跳过。已审批外部供应商 PO 可直接办理实际入库,人工发送记录作为可选沟通记录,不作为库存过账前置。系统内 WDL 采购必须先有供货方真实发出,买方才可按剩余在途实收。
提交后关键药品、供货方、数量和价格不覆盖历史。驳回后修订形成新版本并重新审批;已发生履行时只关闭未履行量,新增采购或改药改价建立关联新单。
7.3 收货
2026-11-14 用户确认正常流程可分阶段完成:全量或部分实收均不因未填写一般原因/备注而阻止入库。分批到货显示本次实收和确认后待收数量,原因可选填或选择常见说明,不自动编造“正常分批送货”。此决定取代 2026-11-13 对所有部分收货强制填写原因的要求。外部采购按批准的待收量核对,系统内采购按真实剩余在途量核对;纯额外赠品登记不自动判为部分收货。部分收货后余量继续待收,不自动关闭;短缺拒收、质量异常及明确关闭余量等异常动作仍需原因。草稿、确认及幂等重试采用相同规则。
从采购订单列表的待收货筛选或 PO 详情登记本次到货。已有真实送货参考自动带入;暂缺供应商凭据类型/编号或原件时,可先确认实际收货,独立标记“凭据待补”,系统收货身份与供应商编号保持分开,不虚构供应商编号。人员可从本次结果或历次收货记录补录真实凭据并留审计,补录不改变已确认数量、批次、质量或库存,不再收货。发票号独立记录;同一 PO 可分多次收货。本次单据数量与实收量分别记录,按药品、批次、效期、包装版本、采购/赠品及质量拆行,核对累计已收及待收。获授权收货人员确认后一次形成系统收货记录、来源层和流水。
采购方可按权限在 PO 及本次收货下保存、查看支持文件。确认收货使用的原件版本保留;更正保留历史依据,上传、补传或更正文件不重复入库。同一供应商凭据可被多次实际收货引用。手工差异核对、Invoice 关联及 OCR 入口边界见 §7.5;上传原件不代表完成识别。
缺批次、效期或有效换算时不得过账。获当前单位库存执行权限的收货人员可按实际数量选择可用或不可用接收;不可用必须填写原因,过期或召回批次不得选可用。同一批次可分质量登记;收费采购仍受批准数量约束,额外赠品按下述外采例外办理,内部收货合计不得超过实际发货余量;不可用实收增加现存与不可用量,不增加普通可用量。解除隔离的权限和流程仍须单独确认。未取得货物的拒收另记数量、原因及凭据,不增加买方库存,内部已发货继续保留在途等待实际退回或处理。
2026-11-07 用户确认:外部供应商实际赠品超过 PO 预计赠品时,提供额外赠品登记入口,人工确认不增加应付金额后按实收及质量入库;PO 原本没有赠品也可登记同一 PO 药品的额外赠品。保留原 PO 批准数量及金额,分别展示收费采购、预计赠品和额外赠品实收,额外赠品不抵销未收到的收费采购数量。如果收货金额高于已批准 PO 约定,不支持按原 PO 超额收货;保留待处理记录,先处理采购商业变更。是否收费不清楚时不自动按赠品入库。Invoice 商业差异交获授权人员及 Finance 核对,不新增采购财务审批节点。
WDL 间及 WDL→CDU 收货严格不超过对应发货剩余在途。实物多于系统发出时登记异常,由供货方核实发出记录,不借外部供应商超收规则凭空入账。
普通采购和赠品分别保留商业性质,不以金额为零猜测赠品。已收齐 PO 的后到赠品保留原完成事实,通过关联补充收货处理;已取消或明确关闭接收的单据不自动重开。非 PO 药品的赠送不自动成为原 PO 行,按未匹配或正式补充采购处理。
7.4 OCR 与扫码入库流程
使用者与对象: 当前 WDL 的获授权收货人员或 CDU Pharmacy,在已获准履行的采购单/关联发货下办理本次实收。OCR 服务只提供识别结果,不持有库存确认或质量放行权限。
- 关联单据并上传原件。 从 PO/待收货入口新建本次收货草稿,上传供应商 PO、送货单(DN)、发票及适用支持文件;保留原文件、哈希、来源、上传人和时间。可分次上传或重试,已成功保存的文件不会因 OCR 失败丢失。
- OCR 提取并逐行匹配。 提取供应商、PO/发票/DN 编号、药品描述、数量、包装单位、价格、批次/lot 及效期;显示接口实际提供的字段置信度、来源页和药品候选,不编造缺失的置信度;只有接口实际提供可靠坐标时显示位置高亮。结果只填充待核对草稿。供应商、PO 行、药品 UUID 和包装映射由用户确认;缺失、低置信度、多候选或单据冲突逐行提示,不自动创建药品、供应商或改写已批准 PO。
- 实物扫码验收。 扫描产品/包装,核对预期药品、实际批次、效期、数量、单位版本和质量状态。一个 PO 行涉及多个批次、版本或质量结果时拆成独立收货行。实际数量与纸面数量分别保存;识别出的数量不是已收到的数量,扫码命中也不是数量已清点或质量已合格。
- 核对差异并确认库位。 展示本次实收、累计已收和余量,处理错药、短收、破损、过期及价格/赠品差异。按实际使用的库位标识扫描或受控选择当前单位库位,保存实物放置记录;收货与上架/移位分别留痕,上架不再次增加库存。未通过必要质量检查的货物不得成为可用库存;不可用接收仍受 §7.3/D09 约束。
- 授权确认实际入库。 用户完成实物与识别结果核对后显式确认;服务端重新校验权限、PO/发货版本、批次效期、有效换算、接收余量及质量门禁,生成一次实收、来源层和库存流水。内部供货只按对应发货剩余在途接收;外部供应商额外赠品及金额上限按 §7.3/§7.5 处理,OCR 或扫码不能绕过门禁。
- 保留收货证据并继续余量。 实收行关联原文件、识别版本、人工修正、扫码/人工核对及入库记录。分批到货建立独立收货事件,不覆盖原 PO 数量;同一文件再次识别不能自动创建第二笔入库。后续放行只改变库存可用性质,不再次增加现存。
已确认收货不因重识别或主数据修改而回写。更正须按 §9 的关联冲销/重记办理,记录原因及受影响来源;再次上传发票也不重新确认已经收过的货。
7.5 收货凭据、Invoice OCR 与差异核对
范围与状态: 2026-11-07 用户确认 Invoice 可作为随货收货凭据、确认界面必填项可人工补录、免费额外赠品可登记而金额超额不支持收货、手写编号忽略。本批已实施持久收货草稿、手工单据分组、人工差异核对、额外赠品及 Invoice 登记/关联/版本更正;本地执行范围见专项证据。2026-11-13 用户在本轮实施中明确收敛 OCR 范围:先保留前端入口,不要求本批完成识别服务。Receive stock 提供“上载并识别”预留入口,清楚标明待启用;未接通时不发出识别请求、不生成示例识别结果。原件上载和人工录入可独立完成,OCR 调用、自动回填、置信度/坐标及真实样本效果留待后续接通验证;既有扫码完整项目亦不在本批范围。技术映射及剩余接口参数见开发方案,Git 发布、目标应用运行与 UAT 分别确认。
入口与结果。 在 PO 的“登记本次收货”上传或选择原件,识别结果进入待核对草稿,原件与字段并排查看。多页混合文件按逻辑单据分组,允许人工纠正页归属及 PO 关联;跨单位原件不可因关联泄露。手工路径允许保存未填完整的草稿、刷新后恢复、检查差异及确认;确认时重新校验草稿、PO、单据分组与 Invoice 版本。供应商文件、识别结果、本次实收和 Invoice 核对分别保存。OCR 成功、上传和 Invoice 核对均不触发库存动作。
| 界面字段 | 来源及确认要求 |
|---|---|
| PO、供应商、收货单位、药品及包装版本 | 从当前 PO 带入,识别结果用于核对;药品/PO 行必须匹配,冲突人工处理,不自动切换主体或创建主数据 |
| 凭据类型及编号 | 暂缺时允许先入库并标记凭据待补,后续补录留痕;已有参考自动带入,不虚构编号。明确选择 Invoice 时继续填写真实发票号并核对对应资料,不要求不存在的 DN 号;供应商编号与系统实收编号独立 |
| 单据数量、实际数量 | Ordered、Shipped/Supplied、Back Order 分别识别;单据数量仅参考,实际数量必须核对,可明确选择按单据带入;原单位/原值与换算结果分别保存 |
| 采购/赠品、批次及效期 | 按商业性质、批次、包装版本拆行;批次与有效效期必填,漏识别可人工核对实物补录;只有年月保留精度,不未经确认补造日期 |
| 质量状态及原因 | 人员明确核对可用/不可用,不可用原因必填;OCR 不判定质量合格或解除隔离 |
| Invoice 日期、币种、数量/计价单位、单价、折扣、费用及合计 | 独立 Invoice 核对区,原值、修正及计算结果留痕;不是普通无票收货的通用必填项 |
| 手写编号及非药品行 | 手写编号不识别、不回填、不参与匹配/去重;leaflet、card、booklet 等保留单据证据,不进入药品库存;原件不删除或涂改 |
识别缺失或错误可人工填写/修正;点击确认时定位缺失或冲突字段,补齐并通过同样权限、数量、质量及金额校验后可继续。人工值不被晚到识别或重识别覆盖。失败保留原件和草稿,不要求重复识别才能收货;缺少真实批次/效期等必要依据则保持待处理,不猜填。字段来源、置信度、识别版本和修正人/时间可追溯。
金额与赠品控制。 已确认免费额外赠品通过独立登记入口记录,不提高 PO 应付金额,不解除收费采购数量上限。金额比较按同一 PO、相同币种、对应履行数量及计价单位/版本进行,并核对累计分配上限;不能用整单尚未履行余额掩盖本次涨价。净价、折扣、费用必须使用一致口径;本批人工核对每行净额与发票合计,不从不完整的原价/折扣文字推定最终净额。无法明确分配的金额保留待核对,不默认零或自动换汇;未获 PO 批准的非药品收费单独列为商业差异。金额超额阻止对应未确认收货,用户须先处理商业变更;已知超额不能通过移除 Invoice 或改赠品绕过。工程计算口径与精度见开发方案,不在本轮新增金额容差或审批豁免。
先后顺序与关联。 无 Invoice 时可按已批准 PO 及核实的实际到货先收货,Invoice 后续核对;收货凭据暂缺则另记凭据待补,不与待上架混为一个状态。有 Invoice 无实物时只登记待核对发票,不产生库存。一票多次收货、多票同 PO 及明确的跨 PO 分配分别关联并防重复占用。同批 DN 与 Invoice 只作相互核对,数量不相加。后补超额 Invoice 形成商业差异,不自动冲销或改写既有真实实收;已知金额超额仍不能通过清空凭据绕过。重印件、重复扫描及更正版提示已有关系并保留历史,不再计票或入库。
差异呈现。 正常分批未收齐显示待收余量;单据发出量与实收不符才提示短收/超收。错药、包装未明、必要字段缺失、金额超额及过期/召回进入可用属于阻断;本次失败保留输入,确认事务全部成功或回滚。可以显式拆分无争议部分,但必须能明确对应数量和金额。实物问题由收货人员核实,商业安排由采购/PIC 处理,Invoice 差异由获授权 Finance 等人员核对;处理意见不绕过服务器门禁。内部 WDL/CDU 仍严格按剩余在途收货,不套用外采额外赠品例外。
8. WDL 供货与跨 WDL 链路
8.1 供货对象与接单
供货对象区分内部诊所、其他内部 WDL、外部诊所及外部 WDL,统一配置供货许可及档位。外部诊所与外部 WDL 使用独立商业客户主档,不引用内部 Clinic 库存或登录身份。客户代码、机构类型、法定/商业名称、牌照参考、联系资料、账单/送货地址及付款条款由有明确客户维护权限的人员维护;其他 WDL 可读取同集团客户,但仅创建 WDL 可修改主档。每个销售 WDL 独立配置供货许可和价格档位,沿用价格维护权限。
内部采购提交成功后建立关联供货单,买卖双方共享药品与需求依据,各自保留所属单据和商业记录。新订单重复提交不会产生多份供货需求。
任一获授权内部 WDL 均可向已开启供货且已配置档位的外部客户销售。Staff 从供货订单选择“新增外部订单”,销售方由当前工作 WDL 决定,选择真实客户并按其档位和已发布换算版本选药、数量及赠品。内部采购 API 及原有审批路径不变。
外部流程为:选择客户 → 准备可选报价/客户 PO → 登记确认 → 分配库存 → 实际发货 → 下载/打印文件 → 跟进送达及签署。可发出报价单、由 WDL Staff 代客户编制待签 PO,或上传客户自己的 PO。代编 PO 明确客户为买方及实际编制人员,不假称客户亲自下单。 2026-11-14 用户要求修复外部草稿确认入口:列表的 Confirm customer order 与详情的同名动作均直接打开客户确认表单;仅显式 Edit 进入编辑,查看详情不隐式改为编辑。客户确认是独立销售动作,不进入内部采购审批或通用状态流转。动作仍以服务端授予权限及当前版本为准;无确认权限时不显示/执行,失败保留输入并显示校验原因。
确认记录方式(电邮、电话、已签 PO 或其他)、带时区日期时间、联系人、参考或备注。确认后允许备货,未回签 PO 仍独立保留待办。确认锁定客户、付款条款、销售方文件资料、档位、数量、计价及换算版本;首次发货前如需更改,先释放预留并修订草稿,形成新商业版本、重新确认。旧报价/PO 及已释放分配证据保留,发货后不能改单掩盖事实。
8.2 分配、发出、实收
- Staff 打开供货单,查看采购对象、价格快照、需求、已发/未发及在途。
- 系统建议有效批次,Staff 按 WDL 统一包装单位选择生产批次及整数数量;供货包装确认仅确认已配置单位,不允许切换为片或其他单位;保存分配只预留,不减少现存,预留缺口按 §9、§11.2 处理,再按 §8.4 扫码拣货与复核。 数量输入的启用/禁用及可访问上限必须随批次、采购/赠品类型和实际可分配量同步更新;加载中或无可用量时禁用,选定有效批次后可正常键入,不沿用前一次的禁用属性或数量上限。该界面状态不改变服务端库存、预留与整包装校验。
- 复核本次实际货物后确认真实发出:扣卖方现存、释放对应预留、生成分发记录和在途,并在同一事务保存送货单、适用毒药表及发票不可变快照。 药品法定分类等决定适用出货文件及合规条件的资料须按真实主档完成核实,不能作为普通可后补字段跳过或由系统猜填;缺项时明确提示维护责任和阻断原因,保留已确认订单及预留。
- 内部买方按 §7.4 在自己的 WDL/CDU 扫码核对并确认实收,减少对应在途、增加自己的批次库存,保留本次购销关联和质量状态。
- 外部诊所/外部 WDL 由实际销售 WDL 按药品/实际来源批次登记本次交付数量、时间、联系人及凭据,支持同一次发货分次确认;仅本次实际交付量结束在途,剩余量继续保留,不创建客户库存。送达状态与签署状态分开;已送达仍可等待已签送货单/毒药表。
支持分批分配、分批发出及分次实收;结束未发余量释放未发分配,但已发在途继续处理。到达或发出不自动等于对方接受退货、付款或完成结算。
发 10 盒收 8 盒,剩余 2 盒继续在途,可补收、实际退回或经确认的运输损耗。供货 WDL 的 PIC/Manager 在本单位库存执行权限内登记真实退回实收或确认运输损耗,并保留原因、数量及审核身份;普通 Staff 不能确认这类差异结案。实际退回才增加卖方现存,质量另行登记;运输损耗仅减少在途,不再次扣卖方现存。此类数量与召回、已收数量分别保存;含损耗/退回的订单明确标为异常,不能显示全部交付。补发另记真实发货,商业处理另行确认,不修改原发出数量。
8.2.1 每次发货的文件及签署
所有 WDL 实际发货(包括内部 WDL、CDU 及外部客户)各生成一套文件;部分发货只列实际发出数量及实际来源批次,赠品明确零收费。历史发货不自动补发文件。
| 文件 | 内容及边界 |
|---|---|
| Delivery Note/送货单 | 实发药品、数量、单位、批号、有效期及收货签署栏;不显示价格 |
| Poison Form/毒药签收表 | 仅实发 P2 或 P1 开首分类药品,数量、单位、批号、有效期及签署栏;不显示价格 |
| Invoice/发票 | 实发正常与赠品行、约定单价、实发金额、付款条款和销售 WDL 付款资料 |
共享 Drug Master 记录经审阅法律分类及审阅人员/时间。未分类或未审阅的实发药品阻止新发货;P2 或 P1 开首为本次已确认的文件规则。发货快照保存当时分类、实际批次及计价换算,不依赖后来主资料变更。
标准英文/繁体中文 A4 模板使用已配置 WDL 法定身份、地址、牌照参考、标志及银行资料。HKD 为默认币种;付款条款与银行资料由人员配置,不自动编造。文件具有唯一编号及版本;单份 PDF、发货套装 PDF 和列印从同一已发版本产生。首次 PDF 渲染失败显示可重试,重试不重复扣库存、开票或领号;已成功生成的 PDF 原字节保留供重印。
上传客户原 PO 与订单关联;已签代编 PO、已签 DN、已签毒药表绑定准确文件版本/发货。供货列表提供“待签署”筛选,旧商业版本不计入当前签署待办,但保留下载及审计历史。文件上传/下载沿用文件存储并检查实际 WDL、订单及动作权限。
发票在发货后不可修改。已有内部退货继续关联原收发链;付款调整、贷项通知及 Finance 处理沿用现行流程。V1 不建设电邮发送、支付追踪、客户门户、会计接口、患者收费或自动记账。
8.3 缺货补采及两段交易
外部订单进入 HKHF 后,足量部分可履行;不足部分提供“创建补采 PO”,默认携带药品和短缺量,买方为 HKHF,供货方为允许 HKHF 采购的 WDL,例如 CDP。
外部订单 → HKHF 采购 PO → CDP 供货单 → CDP 发出 → HKHF 实收 → HKHF 对外发出 → 外部交付确认。
外部需求行与补采 PO 行使用数量关联,支持一单分多次补采及多张需求合并采购,保留每条需求占用,不把同一到货量重复承诺给多个订单。补采不自动跳过审批,也不自动生成收货。
CDP→HKHF 与 HKHF→外部诊所分别保存价格、订单、发货、接收/交付及发票关联。HKHF 可最终零库存,但必须有真实入库与出库记录。
外部销售可创建独立补采草稿,或关联当前 WDL 可编辑采购单,按需求行、采购行、正常/赠品性质和基本量保存数量承诺;允许拆分和合并关联。取消、修订或关闭释放未来承诺,已认领到货及已有预留保留历史,实际预留由销售单显式释放;释放的未发预留不再占用有效认领量,可重新分配,已发及旧无绑定记录继续保守核对。到货后才可按关联批次认领并建立真实库存预留,同一到货量不能重复认领;采购关联不自动收货、分配或跳过原审批。
直接从 CDP 送外部诊所的业务不通过虚构 HKHF 实收实现。直送需单独确认货权、保管责任、交付证据和两段交易过账方式,未定稿前不开放快捷直送。
8.4 扫码拣货、出库与签收闭环
使用者与对象: 供货 WDL 获授权执行人员处理本单位供货单、分配、拣货/复核和发运;内部买方只处理本单位接收。界面区分待拣货、待复核、待发出、已发在途及实收/交付结果,拣货完成不提前扣减现存。
- 按分配生成本次拣货任务。 绑定供货单行、收货对象、来源层、批次、库位、包装版本及数量,按先到期先出(FEFO)建议合格库存。更换批次时重新校验可用量与质量;选择较晚效期须留原因,并按适用授权规则处理。
- 扫码核对实物。 在任务内扫描库位、药品/包装及可用的批次标识,逐项比较预期与实际;缺少码内批次时人工核对批次。错药、错批、错地点、过期、冻结/召回、数量不足或包装版本不符时阻止该行普通供货;换批或改数量后原复核结果失效。部分合格货物可明确拆为本次发货,其余保留待处理/欠货,不显示整单完成。
- 复核及包装。 展示本次药品、批次、数量、整包装和收货对象,由获授权人员确认实际拣配与包装,记录执行人与复核人;适用的人员分离规则继续执行,扫码成功不替代复核或授权。送货单/发票按确认的本次明细生成并关联,文档生成或打印均不代表发出。
- 确认实际发出。 发出时重新检查任务版本、复核结果、预留/可用量、质量状态、收货对象及权限,保存实际发出时间、操作人、目的地、承运方/交接方式及适用运输凭据。只有成功确认的实际发出事件按 §9 减少库存并建立在途;重复点击、扫描回调及网络重试不得重复扣减。
- 接收与签收识别。 内部 WDL/CDU 依据原发货记录执行 §7.4 的扫码实收;可上传随货单辅助 OCR 比对,但内部权威发货行不能被识别文本覆盖。对外供货由获授权 WDL 人员上传签收/交付凭据;OCR 可辅助提取可识别的单据号、日期和数量,匹配发货并提示差异,仅形成待核对记录,不判断签名真伪或自动证明收件人有权签收。
- 关闭本次交付与处理差异。 内部收货方确认的实际数量结束对应在途并入本单位库存;外部交付由供货 WDL 人员核对证据后明确确认,结束对应在途,不创建外部诊所内部库存。短收、破损、错批、未签收或证据不符保留差异及责任方;补收、退回、损耗、补发各自关联原发货,不用 OCR 数量或全额签收覆盖差异。
CDP→HKHF→CDU/外部诊所分别执行两段真实收发;中间 WDL 必须完成自己的实收和可用库存核验后再发出。扫描同一包装或复用随货文件不会把两段交易合并为一次,也不得制造虚假中间入库。
9. 统一库存规则
库存按工作单位、药品 UUID、生产批次管理,保留效期、基本单位、换算版本及必要的包装和质量状态。同一药品相同生产批号的效期须一致;同名批号不能跨药品或工作单位混用,不同包装版本不能不经核对自动替代。
采购 PO、实收及出入库流水保留各自的业务证据;系统不要求对每单位存货维护采购归属,不按某张采购单对应来源层的当前余量控制采购退货。实物采购标记由现场管理,人员据此选择原 PO;系统记录的是人员选择的商业依据及实际批次收发,不把它宣称为逐单位实物采购溯源。已有采购关联及历史流水不删除,不按新口径改写历史。
可用量 = 现存量 − 不可用量 − 预留量。现存、不可用及预留量均不得为负,不可用量不得超过现存;盘亏后预留量可以大于可发实物量,使可用量为负,表示缺货待补,不表示实物为负。预留量在此表示尚未履行的任务需求,不能再视为必然被实物足额覆盖的库存部分。在途独立于地点现存。
新分配不能使用负可用量继续增加占用。实际发药、供货及退货出库均须在提交时核对本次可执行数量、实物、效期及质量,不得让现存为负或使用不可用实物完成普通交付。库存页面保留负可用量并显示缺口;新任务可分配量最低为零。已有预留任务按实际执行扣减预留及出库的先后顺序处理,具体校验和失败行为见 §11.2;不能仅因批次总可用量为负,就阻止实物足以满足的本次任务。
| 操作 | 库存影响 |
|---|---|
| 建单、提交、审批、定价、生成发票 | 不改变库存 |
| OCR 提取/修正、扫码匹配、拣货/复核、标签打印 | 不改变现存;只形成草稿、核验或任务记录 |
| 外部供应商实际收货 | 增加买方基本量 |
| 保存分配 | 现存不变,可用转预留 |
| 内部真实发出 | 减发出方现存,增加在途 |
| 内部真实实收 | 减在途,增接收方现存 |
| 对外发出及交付 | 减 WDL 现存,保留对外交付在途;确认交付后结束在途 |
| 患者实际发药 | 减 CDU 现存,消耗对应预留,生成一次耗用 |
| 冻结/质量隔离 | 现存不变,改变可用性质 |
| 真实销毁 | 减对应来源实存,记录原因及证据 |
| 盘点差异确认 | 按 §11.2 追加差异流水,不覆盖余额 |
| 财务确认、退款、退货结果登记 | 不自动增减库存 |
所有动作使用唯一业务关联防止重复过账;更正通过关联冲销及重记完成,不删除已生效流水。单据状态、余额和来源更新保持一致。
期初库存需要受控导入及核实方案,不能把未初始化显示为零,也不能靠伪造采购或调整制造来源。开账功能暂不安排日常菜单,待初始化方案定稿。
9.1 OCR、扫码与人工核对的共同控制
| 对象/情况 | 必须满足的处理规则 |
|---|---|
| 识别状态 | 文件已保存、识别排队/进行中、识别失败、待核对、已核对分别展示;识别完成不等于业务确认或库存已过账 |
| 字段与修正 | 保留识别原值、置信度、原文件页/位置、候选映射、最终值、修正人及时间;重识别创建新结果版本,不覆盖已核对或已生效业务 |
| 低置信度/冲突 | 提示具体字段并要求人工核对;阈值不作为自动过账许可,高置信度也须确认实物。批次、效期、单位或来源未能核实的行继续阻断 |
| 扫码数量 | 默认扫码定位/核验对象,本次数量明确录入并核对。商品码并非逐件唯一标识,不默认每扫一次加一;启用连续计数须明确计数模式、每码单位、累计量及撤销操作,并在最终确认前清点 |
| 重复与幂等 | 同一捕获/确认请求重试只处理一次;重复读取普通商品码不据码值判断是同一件实物。同一原件允许关联分批到货,文件哈希只作重复提示,不单独作为库存幂等键;每次实收/发出均有独立业务事件及剩余额度校验 |
| 无码/破损码/设备或 OCR 不可用 | 保留原件及草稿,可由获授权人员按同样必填字段、实物核对和审批条件手工办理,标记人工方式及原因;未知品项、未解映射冲突和质量阻断不能通过该入口绕过 |
| 服务端并发核验 | 确认前重新校验最新单据版本、在途余量、库存来源及预留;另一人已收/已发或库存已冻结时返回逐行差异,保留输入,不沿用过期扫描结果强行过账 |
| 权限与原件读取 | 原件、OCR 结果、扫码任务及查询接口受同一工作单位/单据动作范围控制;知道条码、任务 ID 或文件地址不构成访问权。跨单位只交接必要供货/实收证据,不披露上游采购成本或其他客户资料 |
| 留痕与追溯 | 从库存流水可追溯单据行、实收/发出事件、来源批次、原件与识别版本、扫码或人工核对、实际操作及复核记录。失败重试、冲销、更正保留原事实 |
接口接入必须区分文件上传、识别任务、候选匹配、人工核对及业务确认;识别服务回调只更新其识别结果,不能调用库存过账、自动放行或改变已确认单据。具体 API/设备适配在工程设计中落实,产品门禁不因接入方式变化而省略。
10. CDU 与处方发药协作
医生只选择当前诊所启用且发药单位、有效换算和价格已配置的药品;显示本 CDU 可用量及整数可发数量。药品发现、库存不足和处方能否签署分别给出明确提示,不将共享目录中的所有药品直接变成可发选项。
建议工作链:医生签署 → Drug Dispensing 整张审方及来源预留 → Cashier 确认结算 → 标签与备药 → 不同人实物复核 → 整张实际交付 → CDU 库存扣减与耗用记录。
预留不扣现存,打印不代表备药,结算不代表交付。实际交付基本量按签署版本中的整数发药数量换算,来源分摊合计必须一致。临床剂量变化交医生重签;Pharmacy 不通过库存表单修改处方。
建议保留未结算预留 24 小时到期释放、整单 Hold/退回释放、结算后受控保护、已备药换批次需重新复核等完整门禁,具体阈值与异常规则列入待确认事项。
标准发药单位更改不回写在途处方;存在有效已签署或已结算处方时,继续按原快照执行,无法执行则进入受控更正。不得后台改单位后把原“1盒”解释为“1片”。
患者退回的实物由发药/患者退药任务登记,实际收到才增加隔离库存,退款独立在 Cashier 处理;CDU 负责后续质量处置及来源追踪。
11. 退换、质量、盘点与召回
11.1 退货与换货
采购退货覆盖 CDU→WDL、WDL→WDL、CDU→第三方供应商、WDL→第三方供应商。采购方在原采购订单页面发起,选择原 PO 药品及本次实际退回的生产批次、质量状态和数量,记录退货金额、原因和凭据。原 PO、原实收及价格快照保持不可覆盖。供货订单页包含“全部供货订单”和“待确认退货的供货订单”两个页签,接收方可从后者进入待处理退货。
退货给 WDL 的流程为申请、接收方同意寄回并确认协商金额、采购方实际发出、接收方登记实收。WDL Staff、PIC 均可处理接收方动作;同意后不再设置第二次接受或拒绝审批。接收方可分次实收,每次明确可用或不可用,不可用须填写原因。退给第三方由采购方直接录入金额,确认即出库。退货商业金额与实际退款分开。
退货数量分开核对商业额度和实际库存:
- 原 PO 剩余退货额度 = 原 PO 对应药品实际收货数量 − 累计成功退货数量;正常采购与赠品分别核对。不能用未收货的下单量作为上限,盘盈也不增加原 PO 额度。
- 新申请可使用额度须再扣除有效在办退货占用。已同意、在途及部分实收尚未完成的数量仍占额度,撤销或拒绝后释放尚未执行的占用;不能只查已完成整单而允许并行重复退货。内部 WDL 已实收部分计为成功,剩余部分仍占用;第三方确认出库计为本系统已办理数量,不代表对方退款到账。
- 退货额度不再取决于该 PO 所对应库存来源还剩多少,也不要求下游退回货品恢复上游采购来源标记。实际出库按本单位所选药品、生产批次及质量状态扣实物,仍不能超出本次可执行实物数量或重复使用已占用实物。
- 本单位可以将下游退回的不可用实物继续按人工选择的原 PO 退上游;系统核对原 PO 交易方、药品、退货额度及实际批次库存,不自动证明该实物来自该 PO。只能选择该 PO 对应药品曾实际收过的生产批次,不允许用未在原 PO 实收中出现的其他批次代退。原 PO 原来源库存已耗尽,不妨碍选择本单位现存的同药品、同批次合格退货实物。
成功退回但不可用的库存仍属接收方现存及盘点范围,不能普通供货或发药,不自动报损、销毁或恢复可用。选择不可用不改变已确认退货金额,也不重新触发接受审批。
外部诊所/外部 WDL 的销售退货从原外部销售及已交付发货行办理,由销售 WDL 获授权人员记录约定金额、寄回凭据及实际实收,明确标记代录身份。可退量为已确认交付量减去成功及有效在办退货,按批次和正常/赠品分别核对。未交付拒收走在途差异,不能虚构客户实收/库存。同意或客户寄回不增加 WDL 现存,WDL 实际收到时才建立反向实收来源;损坏、过期、召回货物隔离,不自动销毁或恢复可用。实物完成与财务退款分开,原发票和原成交价保持快照。
换货、无原 PO 的例外退货及患者退药是独立场景,不能借采购盘盈或改选供应商伪造原采购记录。若后续开放换货,替换货须有真实收发记录,不通过改写原退货或原采购实收完成。
退回/换货的实际出入库复用 §5.4、§9.1 的扫码与人工核对,绑定原来源和本次方向;OCR 可辅助核对退货单及交接证据,不自动接受退货、创建替换额度或恢复可用库存。被召回、过期或损坏的货物不能普通供货,但可在已授权的退货/隔离任务内核对及移动,接收后维持相应不可用状态;不能沿用普通出库的“质量合格”结果放行。
11.2 盘点和处置
人员与流程
WDL Staff、CDU Pharmacy 分别登记本单位实盘并直接确认差异,无需 PIC 或 Finance 审批。操作仅限当前获授权工作单位,记录实际登记人、确认人、时间及差异原因;WDL 任职或供货关系不授予其他 WDL、诊所的盘点写权。
盘点允许动态收发,不以盘点单将整个单位或选定范围长期冻结。新增盘点使用弹窗,填写原因并从药品主目录选择本次范围,不要求所选药品已有库存。范围只作为标记独立保存,不自动生成差异明细,也不作为后续录入的强制校验。下一步进入差异登记,选择盘亏或盘盈,逐批填写正整数基本量、质量状态和原因;允许登记范围外药品,并显示“范围外”标记。核对差异和期间变动后直接确认并追加调整;草稿不改库存,无差异也保留盘点记录。差异确认是业务执行动作,不另设提交审批、待批和批准节点。以当前单位的药品、生产批次和包装版本作为盘点明细,效期、单位及质量状态明确展示,不要求人员分辨采购来源。
实盘与动态收发
人员核对可发实物和不可用实物,分别登记经核实的盘盈或盘亏差额;可发实物包含已预留但尚未实际出库的部分,不能把预留量额外再数一次。表格显示药品、批号、效期、单位、登记时账面、两类差额、当前预留、确认后的可用量及原因。历史已建立的实盘录入单保留原有登记方式,不将历史数量改释为差额。
动态盘点须把账面和实盘对齐到同一时点,每个批次保留自己的实盘时点及对应账面依据,不能把整张单创建时间当作所有批次的实际点数时间。确认时展示该批次在实盘前后发生的实际收发及质量变化,核对哪些实物已包含在实盘数中。预留或释放本身不属于实物收发。
设计采用“实盘时点差异 = 实盘数 − 同时点账面数”,确认时将经核实的差异追加至当前账面。例如实盘时账面 100、实盘 98,之后真实发出 10,当前账面 90,确认后为 88,调整量仍为 −2。不能直接将当前 90 覆盖为旧实盘 98。可发和不可用实物分别核对,不能只核对总数而自动放行不可用货品。
点数过程中发生移动且无法确定是否已计入实盘、存在迟记业务、或同一范围已被另一盘点调整时,需重新核对受影响批次后再确认,不能机械累计差额。确认过程使用短事务完成并发校验、一次性调整与审计;这不等于冻结盘点期间的日常收发。已生效的盘点记录不可重写或重复确认,错误通过有依据的更正处理。
盘盈与盘亏
盘盈从药品主目录选择药品,可以录入生产批号和有效期,保留单位及质量状态,不要求补采购 PO 或采购来源,也不伪造采购记录。新增盘盈批次仍核对批号与效期的一致性;已过期或实际不可用货品不能计入可发实物。盘盈生成独立调整流水,原因和操作者可查,不扩大任何采购订单的可退额度。
盘亏必须选择本单位现有库存生产批次,不能手填不存在的批次或引用其他单位库存;药品、批号、效期及包装版本由所选库存确定。盘亏不得超过对应质量状态的实物数量,按实际差额减少现存,保留原任务的预留数量,不自动取消任务或释放预留。可用量可以因此为负,并显示预留缺口及受影响的发药、供货等任务。普通发药或供货必须由系统在实际执行时阻止超过可执行实物的部分,不能仅依靠人员现场发现货不够。
同一单位补入同药品、同生产批次且效期、单位及包装条件符合任务要求的可发库存后,可补足原有预留缺口,不要求来自原采购 PO,也不再额外增加一次预留。不合格或不可用收货不能补普通发药、供货预留;其他批次不得未经明确重分配自动顶替。已有备药、实物复核和实际交付门禁仍然有效。
多个预留任务按实际执行扣减预留及出库的先后顺序处理,不按创建预留的时间排序保障。提交实际发药或供货时,系统在同一事务内锁定本次任务及对应批次库存,核对本任务剩余预留、本次所需数量、现存及质量。普通交付可执行实物为现存减不可用,并满足效期、单位及包装条件;即使批次总可用量为负,只要实物足够本次既有预留任务,仍允许执行。并发请求以持锁完成库存核对及扣减的顺序为准,不以客户端点击时间判定。
本次实物不足时明确报错,整个本次操作回滚,预留、现存及业务状态保持不变;不得先释放预留再留下失败的出库,也不自动发出部分数量。原本支持分批发货的业务仍可由人员明确选择本次数量,患者整张交付等既有门禁保持不变。等待符合条件的补货后,可沿原任务重试,重复请求不得重复扣量。取消或主动释放预留不属于实际出库,不因实物短缺而阻止释放。
例如同批次有可发实物 6 盒、两笔任务各预留 5 盒,总可用为 −4 盒:先实际执行的任务成功发出 5 盒,现存变为 1 盒、剩余预留为 5 盒;另一任务执行时报缺货 4 盒并保留预留。随后同批次收到 4 盒符合条件的可发实物,原任务可继续完成。
发现差异实际属于漏记收货、发药或退货时,先关联真实业务更正,避免同一数量再以盘盈亏重复调整。损坏但仍在库的货品属于质量状态变化,不能仅因不可用就记作盘亏;实际销毁另记动作,处置权限及证据要求单独确定。
实现边界
新版 WDL/CDU 已接入“库存 → 盘点”:新增弹窗选择主目录范围,下一步独立登记可发和不可用库存的盘盈/盘亏差额;范围外差异同样允许入账。显示登记时账面、期间变动、调整预览及当前关联预留任务。确认时校验单据版本和最新库存预览;期间其他盘点已调整同一批次或调整后实物不成立时,必须重新核对。已确认记录保留当次过账快照,不随后续收发改写。草稿差异可移除后重新登记并保留操作审计;盘点草稿可取消,已确认单据不可撤销或覆盖。数据库独立保存范围药品快照和录入模式,已有实盘单据继续兼容。
库存流水仍保留历史收货层以供审计,退货资格与已有任务履约按生产批次判断。供货和发药能从同单位、同药品、同批号/效期/包装版本的其他实收记录扣实物;采购退货按原 PO 实收批次和剩余商业额度控制。待寄回的不可用货继续计入不可用库存,其退货占用单独保存,取消申请不生成虚假收货。
初始化脚本在购销、退货及历史来源结构之后安装盘点表与余额约束,并迁移旧待寄回不可用货的占用方式。旧 CP 兼容流程维持原有服务校验;本次不开放召回、销毁或不可用库存放行。实施和本地验证证据见盘点验收记录,不代表已发布或通过 STG/UAT 验收。
11.3 召回
PIC 从药品、批次和已知来源发起授权范围内召回。WDL 追踪自己的实存、在途和已供对象,CDU 处理本诊所受影响库存;跨 WDL 传播保留上下游关联及对方响应。
范围内冻结阻止继续分配/发药,并使受影响预留进入重新分配。跨权限范围生成待对方处理任务,不自动取得对方库存写权;不存在未经授权的全集团冻结按钮。
联系客户、隔离、实物发回、实收、销毁分别统计。已发给患者的部分交诊所临床团队跟进,WDL 不获取患者名单或病历。外部诊所回报保留证据,不假称已在系统冻结其库存。
12. CDU 耗用数量核对与财务边界
采购金额、WDL 对外销售金额、CDU 患者收费、实际采购成本及库存估值是不同口径。不得以患者收费倒推采购价,或把零价赠品当作零库存。
数量核对按供货 WDL+采购单位+药品+期间+实际来源展开,纳入发药、真实废弃、患者回收和关联更正;自采来源单列。供应经 CDP→HKHF→CDU 时,保留采购根 CDP 和直接供货方 HKHF,不把同一 CDU 耗用同时算作两家 WDL 各自对诊所的可结算数量。
耗用数量核对由 CDU 承接,Pharmacy 查询并核对本诊所的实际耗用,按来源及期间查看逐笔明细、差异和关联记录。建议后续流程为 CDU Pharmacy 提交 → Finance 确认/退回 → CDU Pharmacy 修正并重提;该审批流仍待确认。WDL 不承担查询生成、提交或核对工作区。每笔耗用分摊仅归属一个有效核对结果,更正形成替代版本;确认不再扣库存、不自动开票。
本次已确认按每次 WDL 实际发货生成付款发票,包括内部 WDL/CDU 发货。数量报表不自动产生另一张收费单或应付款,同一交易不得因耗用核对重复收费。开具发票不等于会计收入确认、付款入账、赠品成本计算或患者退款。
供应商月结单用于付款核对,按供应商、采购单位及结算期间独立归集,并与对应发票、PO、实收和贷项建立关联。月结单与按次收货单分别保存,月结登记或核对不产生库存变动。月结单登记、付款核对及财务系统操作属后续专题;PIC 可使用 §3.2 的经营看板,报表不产生会计分录;库存内药品交易登记册见 §3.1。交易保留药品主编码、交易双方、单据行、数量/单位/版本、金额/币种及来源关联。Finance 与 Oracle 的接口、映射、法定主体和财务口径另行设计,不作为本阶段 WDL 功能交付。
Lab/Imaging 的统一服务编码及 Pathways 集成独立成文,不放入 WDL/CDU 的菜单或物理库存;药品可复用同一套企业编码治理原则。
13. 角色动作矩阵建议
下表是默认建议,仍受当前单位和明确动作授权限制;拥有 APP 入口不等于拥有所有动作。
| 动作 | WDL Staff | WDL PIC | CDU Pharmacy | 后台/共享管理 |
|---|---|---|---|---|
| WDL 采购建单与执行 | 本 WDL | 不自动取得 Staff 全部执行权 | 否 | Finance 不执行库存 |
| WDL 采购审核 | 否 | 本 WDL PIC 单级审批 | 否 | 无采购审批节点 |
| WDL 接单、分配、发出 | 本 WDL | 明确授予执行权时 | 否 | 否 |
| CDU 采购与收货 | 仅独立代办授权 | 不因审核取得执行权 | 本诊所 | 否 |
| CDU 自采审核 | 否 | 指定诊所任务范围 | 不自批 | 管理员配置审核范围 |
| WDL 档位和供货开关 | 查询 | 建议维护本 WDL | 查询自己的结果 | 管理员可获专项授权 |
| WDL 药品档位价格 | 查询/准备草稿 | 建议发布 | 只读自己的成交档位 | Finance 按授权查询 |
| CDU 发药标准价 | 否 | 不因审核自采获得 | 建议本诊所维护并留痕 | 可配置监督权限 |
| 地点药品配置 | 本 WDL 药品目录 | 本 WDL 药品目录 | 采购/库存内配置本诊所单位,不维护目录 | 主数据人员管理共享身份 |
| 共享药品及换算版本发布 | 申请 | 专业核实 | 无申请及修改权限 | 获授权主数据维护者发布 |
| 盘点登记/差异确认 | 本单位登记并直接确认 | 无单独审批节点,独立执行权限待明确 | 本诊所登记并直接确认 | 无默认全局调账权 |
| 召回 | 本 WDL 执行与跟进 | 授权范围发起 | 库存内查看本诊所受影响批次并办理隔离/退回,不发起召回 | 无默认全集团冻结 |
| 耗用数量核对 | 无本阶段入口 | 无本阶段入口 | 本诊所查询、核对;建议提交 | 建议 Finance 确认,流程待定 |
| 共享外部供应商 | 按授权维护本 WDL 负责的记录 | 按授权维护及审核本 WDL 收到的申请 | 只读选择,缺供应商可提交申请 | 不因后台身份默认获得维护权 |
| PO 选择外部供应商 | 全部有效共享清单 | 获采购执行权时可选全部有效共享清单 | 全部有效共享清单 | 选择权不扩大修改权 |
| 患者实际发药 | 否 | WDL 身份无此权 | Drug Dispensing 执行 | 不由供货关系授予 |
采购订单的 WDL 选药界面只暴露获授权 WDL 对该采购方可供药品、必要数量及适用价格,不提供其他档位、其他客户价格、上游成本或患者占用明细。供货关系不自动授予买方库存明细读取权,额外库存查看范围单独授权。
14. 共用页面交互
2026-10-14 用户确认:Drug Order 的主按钮、链接、导航及筛选选中态、焦点和弹窗/下拉浮层均跟随个人设置的系统色彩主题,不单独固定紫色。切换主题即时生效,刷新沿用已保存设置;成功、警告与危险状态保留各自语义配色。
- 状态 Tag 遵循共享 UI 规范的 24px/12px/胶囊样式:成功/完成用绿色,待审核或等待下一步用琥珀色,拒绝/异常用红色,进行中信息用蓝色,草稿/取消/关闭用中性色。PIC 与财务待审批使用相同待处理语义;退货状态按各自含义展示,不统一使用主题主色。仅调整展示,不改变订单和退货状态流转、权限或动作。
Drug Order 的页面统一采用「标题及页面操作 → 筛选 → 结果表格 → 分页」结构。新增采购、外部订单及供应商等页面主动作在右上方;搜索条件保留可见标签,支持 Enter 查询与清空后重查。2026-11-14 用户确认:主操作按当前阶段和当前授权职责排序,不能直接取 API actions 第一项;待审批 PR 直接提供批准与退回两个独立图标按钮,Withdraw/Cancel 放更多菜单;批准使用勾选图标,退回使用回转箭头,更多使用省略号,不再复用相同图标或常驻长句。列表操作按钮保持至少 32 px 点击区域,悬停说明与可访问名称保留完整动作语义(例如 Approve and issue PO、Return order),键盘焦点清晰可见。需保留可见文字的紧凑列表按钮采用一个词,例如 Details、More、Returns;确认弹窗及展开菜单仍说明完整操作后果。Return 沿用退回修改语义;已生效 PO 不出现 Approve,按实收进度显示 Receive stock/Receive remaining。批准核对供应商、药品数量与金额,正常备注选填,退回原因必填,既有本人 PR 显式批准规则不变。订单列表只为服务端返回的可执行动作显示对应图标,编辑、提交、确认、分配、发货与收货各有可辨识图标;主动作直接可点击,其余动作放入独立更多菜单;完整动作名称保留在提示及可访问名称中。Details 保持独立查看入口;适用退货入口及其待办数量保留。不得仅显示 Review/Process 而让用户猜测下一步,也不能仅依据状态名称补造动作。详情同时说明当前状态和当前可执行步骤;权限、对象范围、采购审批规则、状态门禁及真实提交确认沿用原规则。 详情以单层区块/分隔线组织,Documents & delivery 只保留一个标题与边界;Receipt history 紧凑行展开、Purchase files 标题带数量、Supplier invoice 按钮归所属区块。无数据使用轻量空态,不保留大块空表。Drug catalogue 的 Price tiers · N 移至页头 Refresh 旁,数量归筛选结果区,不独占卡片;Compliance information 收为轻量入口,当前操作阻断仍就地展示。除 §3 已确认的 WDL Stock records 双页签合并外,其余导航名称、顺序及分组不变。
同一列表只保留一个分页控制,不在标题和底部重复显示。Drug Master 使用统一分页,查询或筛选变化返回第一页;刷新后总数减少导致当前页失效时回到最后有效页,无结果保持第一页空态。每页数量、总数、筛选与服务端授权范围保持一致,分页调整不改变全量导出或主数据维护规则。
页面遵循桌面 UI 设计系统:正文及输入为 14 px,表头与辅助信息为 12 px,页标题为 20 px;操作图标为 16 px,常规控件至少 32 px 高。数量、单价和金额右对齐并使用等宽数字,文本左对齐;表格不采用彩色底纹。表头与数据使用同一对齐边界,Actions 统一左对齐。同一记录的 Actions 保持同一行,为完整按钮、图标与间距预留列宽;2026-11-14 统一 Written orders 与 Clinic drug orders 的固定操作列:依次保留主操作(需要时含批准/退回两个按钮)、Details、更多三个固定位置,没有主动作时保留空位,Details 不随订单状态移动。退货及待办数量在更多菜单内显示,有待办时更多按钮保留提示点;完整动作名保留在可访问名称及悬停提示。不允许左侧操作被单元格裁切或覆盖相邻日期;窄窗口允许表格内部横向滚动,不把操作堆成多行或挤压整页。弹窗有明确标题及可见字段标签,保存等决策操作集中在表单末尾。输入框及下拉框的焦点提示只在完整控件边界显示,不在内部原生输入元素重复绘制错位框线;键盘聚焦仍有清晰可见的焦点提示。
采购建单及编辑弹窗的明细列按任务分配空间:药品/规格、包装/换算使用弹性列;数量、赠品、单价和删除动作使用紧凑固定列。数量输入支持直接键入和上下键,保留原数值范围与精度;单价对应单位在输入框下方持续可见,不截断或隐藏。960px 及以上常用桌面视口应在原弹窗内看全明细字段与删除操作,无需横向拖动;更窄视口保留可访问的表格滚动,不通过隐藏滚动条、缩小字号或裁切输入内容制造“适配”。此调整仅改变布局,不改变采购来源、规格换算、WDL 报价只读及草稿保存规则。
CDU 的 Drug catalogue 提供药名链接及 Details
只读入口,显示共享主档、默认用法、安全备注和被点击行的规格/单位换算(2026-10-28
BUG138)。详情固定药品 UUID 与该行
unit_version_id,不回退到最新或其他规格;记录不可用时提示刷新,关闭或切换后丢弃迟到响应。查看详情不授予主档、单位或价格写权限,原有
Set unit/Set prices/Price history 动作与门禁保持独立。
2026-10-12 用户复核、2026-10-13 同步整合:分页行不另加卡片外框或圆角,由所属表格容器保留单一外边界;表头和内容采用一致的列对齐。Current stock 的药名、规格和库存单位靠左,Days cover、各库存数量靠右,操作靠左;药名、天数、首个规格及操作对齐到同一主信息行,长文本换行从该行向下展开,药品编码显示在药名下方,后续规格逐行显示。普通单行记录垂直居中;订单、供应商、供应商政策、库存及目录等多行记录从共同首行向下展开,不因长名称或辅助说明让状态、金额、日期及操作上下漂移;药品目录将药名/库存单位、状态、数值及操作对齐在同一主信息行,编码、规格及辅助说明在下一行。2026-10-14 用户最新复核明确:Current stock 沿用当前 STG 的展示逻辑,每种药品一行,同一行内依次展示多个规格及对应库存单位、现存、预留、不可用、可用和在途数量;已配置零库存规格继续显示。2026-10-30 用户确认:Days cover(可用天数)列移至药品名称之后、规格及库存数量之前;可计算结果严格低于 30 天时,数值使用警示色并显示感叹号图标,鼠标悬停或键盘聚焦提示“Stock alert: less than 30 days of cover./庫存提醒:可用天數少於 30 天。”及原计算说明。0 天须提醒,等于 30 天不提醒;无法计算的值继续显示 —,不误作 0 天,不改变原计算或自动通知范围。批次详情保留所选整药品的批次及来源;左侧 Inventory 仅保留 Current stock(当前库存)入口;进入后在页面内提供 Current stock 与 In-transit stock(在途库存)两个子页签,默认显示当前库存,已发货供货和待实收退货记录在第二个子页签展示。在途页保留来源、去向、批次、基本量、分页及关联 PO/RET 入口,且不计入当前现存。2026-10-14 用户进一步明确:Current stock 的主筛选区在药品名称/编码搜索外提供一个 Stock alert(库存提醒)下拉框,选项为全部库存、少于 30 天、少于 10 天、少于 5 天;取代原天数起止输入框和可用库存下拉框。选择后立即按既有服务端药品级 Days cover 严格小于所选阈值筛选(等于阈值不包含),不同阈值是累积范围;可计算的 0 天包含在提醒内,无法计算的天数不视为 0 天,仅在全部库存中显示。2026-10-30 用户进一步确认:首次进入 Current stock 默认选择少于 30 天,Reset filters 恢复少于 30 天及空搜索;仍可手动选择全部库存。同一工作台内切换页面保留已选条件,关闭工作台或切换身份/单位后恢复默认值。切换提醒回到第一页。不改变库存或 Days cover 计算;此处仅为列表筛选,不包含自动通知。切换到 In-transit stock 子页签后才加载在途记录;外层页面标题及左侧 Current stock 选中状态保持不变,库存筛选只在当前库存子页签显示。数量换算、Current stock 的 Incoming、整药品可用天数及各自分页沿用原口径,仅优化遮挡、裁切和滚动;在途单号预留完整显示宽度。表格列宽优化保留各页面原有字段列、行关系和操作,不为消除横向滚动而改写既有字段或多规格展示结构;固定列在滚动、悬停和选中时保持不透明的表面背景,避免数量透入操作列。日期和价格列保留稳定宽度,状态列容纳完整标签,长名称列分配剩余空间;侧栏常规宽度为 248 px,窄窗口随容器收窄。出入库及盘点变动记录显示 Date/日期,订单更新、入库、盘点建立、召回发起等列表日期只展示到日,采用界面语言和香港时区,日期保持单行。操作历史及上传凭据等追溯明细保留格式化到分钟的时间,不直接显示原始 ISO 时间戳;原始时间、排序和业务日期不因展示精度改变。
WDL/CDU 药品目录的单位、价格及价格历史动作固定绑定当前行的药品与规格,分别打开对应弹窗;详情保留当前规格及换算关系。各入口继续使用既有权限、停用条件和修订校验,不回退到其他或最新规格,不因样式整合恢复已被替代的全部规格编辑入口。2026-11-13 起,WDL 在 Drug catalogue 的规格维护入口按 §1.2.1 获得授权业务规格维护能力,保留旧版本及历史保护;CDU 仍不因此获得共享规格发布权。
合规说明默认收起,标题及展开入口持续可见;展开后保留完整说明与官方来源链接。折叠仅调整展示方式,不构成已阅读、确认或合规验收。2026-10-12 界面优化沿用既有库存、交易、审批和权限规则;实现与本地浏览器验证结果单独记录,不代表 STG 部署或 UAT 通过。
2026-11-07 用户确认:订单列表、详情和筛选按业务类型采用同一套可核实的状态,英文标签限定 1–2 词,不把角色或解释塞进标签。状态来自已记录操作及实际履约量,不提供人工任意改状态。原始状态码、审批、库存和动作权限独立保留。
| 业务类型 | 适用正常阶段 | 判定依据 |
|---|---|---|
| WDL 外部供应商采购 | Draft → Pending Review → Awaiting Delivery → Partially Received → Completed | 本方 PIC 审批和真实实收;外部供应商备货、确认发出没有系统回传,不创建对应状态。 |
| 内部 WDL 采购/供货 | Draft → Pending Review(仅适用买方)→ Pending Confirmation → Confirmed → In Transit → Partially Received → Completed | 供货 WDL 接单才 Confirmed;分配/拣货另计,实际发出才 In Transit;真实实收后才 Partially Received。 |
| WDL 对外销售 | Draft → Confirmed → In Transit → Partially Delivered → Completed | WDL 人员登记客户确认依据;真实发出及逐次实际客户交付分别记录,不虚构外部客户库存。 |
Needs Revision、Cancelled、Closed 为适用的回退/终止分支。一次全量履约可直接 Completed;分批实收期间仍可有未发部分。旧待 Finance 单据显示 Pending Review,并单列历史单据及 PIC 处理说明;不恢复 Finance 审批节点。Confirmed 仅表示已接单/已登记客户确认,不称 Preparing,也不推断已拣货。
采购方式和供货客户类型提供可见筛选,状态选项随所选业务收窄;切换业务时清除不适用的旧状态。混合列表允许适用状态并集。筛选按与列表/详情相同的派生状态匹配后分页,不能用原始 receiving 状态把未实收在途误筛成部分收货。收货与客户交付分别采用 Partially Received 和 Partially Delivered。
余量关闭、历史审批说明和当前责任方在标签外显示;余量关闭后仍有真实在途,继续显示 In Transit/Partially Received/Partially Delivered。当前既有完成判定保留:已关闭未发余量、有效已发部分全部收齐时仍可能 Completed,并保留 Remainder closed 提示;是否统一改为 Closed 的口径尚未确认。CDU 外采指定 PIC 分派仍按 D03 待确认,本轮显示优化不视为已接入该审批。
订单之外的状态同样按业务对象独立判定,标签、颜色和列表/详情共用定义。英文状态为 1–2 词,原因、责任人、数量和下一步放在标签外;不新增任意修改状态的下拉框。
| 对象 | 短状态与路径 | 进入依据及边界 |
|---|---|---|
| 供应商申请 | Draft → Pending Review → Approved;Needs Revision 可补充后再提交;Declined 终止 | CDU 提交后由接收 WDL 审核;退回补充与拒绝分别保留;批准创建或关联共享供应商,不等于采购审批。 |
| 仓库拣货/覆核 | Awaiting Stock → Pending Pick → Pending Check → Verified;可 Cancelled;实际发出后 Dispatched | 无可用分配时 Awaiting Stock;已有分配可拣货;保存实际拣货才 Pending Check,成功覆核才 Verified;扣库发生在实际发出。拣货取消后可重新开始,不取消订单。 |
| 收货草稿/记录 | Draft → Confirmed;或 Cancelled | 验证通过不单独创造 Ready 状态;成功确认才形成实收及库存。确认历史与仍可编辑草稿分开。 |
| 内部采购退货 | Pending Review → Awaiting Dispatch → In Transit → Partially Received → Completed;Declined/Cancelled 为适用终止分支 | 接收 WDL 同意退货及金额,采购方实际寄回,接收方登记实收。一次收齐直接 Completed。外部供应商退货仍按其本地登记路径,不套用系统内供应商审批。 |
| 外部客户退货 | Draft → Awaiting Return → In Transit → Partially Received → Completed;可 Cancelled | WDL 登记同意金额及客户寄回凭据、实际收货;外部没有自动回传,寄回和交付事实由工作人员根据凭据登记。Completed 仅代表约定实物退货已收齐,不代表退款或 Credit Note 已完成。 |
| 盘点 | Counting → Confirmed;或 Cancelled | 保存全部实盘/增减行、满足复点条件,确认成功后才调整库存;没有新增 PIC/Finance 审批节点。 |
| Invoice 核对 | Draft、Pending Match、Needs Review、Matched、Superseded | 基于凭据、分配及实收核对;随资料变化重算,不能理解为固定单向流程或付款状态。收货侧未取得发票显示 Awaiting Invoice,未完成分配显示 Pending Match。 |
| 差异处理 | Blocked/Needs Review;已补充说明显示 Explained | 严重程度与说明记录是不同维度。填写说明不消除原数量、金额或凭据差异,也不自动解除确认阻断。 |
| 文件 | Issued、Pending Signature、Signed、Superseded | 按当前版本、签署要求及已上传签署凭据显示;签署不推定已交付,PDF 生成失败作为独立提示。 |
| 库存与召回 | Available/Unavailable;召回批次 Recalled | 保留真实品质原因;Unavailable 不一律声称已完成实物隔离。召回按黑名单事实保持生效,不因现存数量归零自动标 Completed。 |
| 主数据、规格和补货关联 | Active/Inactive;Unused/In Use;Active/Released | 分别反映启停、是否有业务引用及关联是否解除,不混入订单进度。不可删除的原因单独提示。 |
状态颜色按含义统一:待处理用 warning,实际处理中用 primary,成功结果用 success,拒绝/召回用 danger,草稿/取消/旧版本用 info;颜色不单独承担含义。
任务页头与浅灰页面背景一致,白色仅用于带边界的内容卡片、表单和操作区;不得从公共列表样式继承一条没有内边距的白色标题条。该规则适用于 WDL/CDU 共享页面和窄窗口。
14.1 按业务页面配置筛选
2026-10-14 用户确认:WDL/CDU 各页面按任务提供主筛选和可展开的 More filters,避免所有字段堆在首行。文本按 Enter/Search 查询;下拉选择及日期范围即时查询。更改条件回到第一页,显示真实已应用条件及匹配数量;Reset filters 恢复该页默认值。各页和审批/供货子页分别保留条件,关闭工作台或切换工作身份/单位后清除。药品目录原有任务分类继续保留。
| 页面 | 主筛选 | 更多筛选/日期语义 |
|---|---|---|
| Current stock | 药品搜索、Stock alert 全部/少于 30/10/5 天 | 无额外筛选;用户最新确认不提供批次效期筛选 |
| In-transit stock | 药品/批次/单号搜索、供货或退货在途、往来单位 | 生产批次、药品规格;默认不设日期上限 |
| Stock movements | 药品/批次/关联编号搜索、变动类型、流水发生日期 | 默认香港日期近 30 天(含今天);效期起止、影响库存、药品规格 |
| Written orders/Clinic drug orders | 单号/药品/单位搜索、状态、供货方 | 建单日期、采购方式 |
| Clinic drug orders(WDL 供货) | 单号/药品/单位搜索、客户、订单状态 | 建单日期;待签署及待退货子页保留各自任务范围,不施加默认日期截断 |
| My approvals | 单号/药品/单位搜索、申请单位 | 待审批按提交日期;本人已审批按审批日期及本人决定筛选;待审批不设默认日期截断 |
| Stock counts | 盘点单号/原因搜索、状态、盘点方式 | 建立日期、建立人 |
| Batch recalls | 药品/生产批次搜索、召回发起日期 | 发起单位;不增加当前数据不能可靠推导的完成状态或剩余量条件 |
| Drug catalogue | 药品搜索、原有库存/定价任务分类 | 库存单位是否配置、当地规格是否启用 |
| Sales settings · 内部单位 | 名称/编码搜索、供货许可、价格档位 | 单位类型 |
| Sales settings · 外部客户 | 名称/编码搜索、客户类型、供货许可 | 价格档位、启停状态 |
| Supplier management | 名称/编码/联系人/电话搜索、启停状态 | 无额外条件 |
| Clinic drug names | 药品搜索、自定义诊所名称或沿用通用名称 | 暂不提供数据尚未形成的来源类型筛选 |
| Drug transaction register | 保留药品、分类及期间查询 | 增加今天/本月/上月快捷期间和重设;仍显式查询后加载重报表 |
| Consumption audit | 保留药品、患者及日期查询 | 批次移入展开区域,增加重设;仍显式查询 |
所有记录先按原有服务端权限范围限制,再筛选、计算总数及分页;不得仅筛选最近 300/500/1000 条或当前页。筛选选项也来自同一授权范围。日期筛选均包含首尾,起日大于止日由服务端拒绝;库存流水旧无时区时间按既有 UTC 存储解释后转换香港日期,订单/召回时区时间转换香港日期。筛选不更改库存、价格、审批或过账规则。
WDL 使用顶部待我审批及订单、库存、主数据菜单组;CDU 直接平铺功能页面。列表采用状态筛选、搜索/对象/日期筛选及满宽表格。详情使用独立工作页,保留返回列表位置、明确当前操作主体和当前唯一主动作。
单据详情依次显示:双方与状态、完整明细、审批/商业依据、累计数量、实际处理记录、关联单据、操作历史。不得只凭列表摘要审批。
收货、发货、退货使用共用行编辑及批次选择组件;每行同时显示业务单位、换算版本、基本量及本次影响。无换算、缺价、停供、过期或并发冲突逐行解释。
条码与 OCR 操作嵌在上述单据中:先选当前任务,再“上传单据/识别”或“扫码核对”;默认展示待处理行、差异与下一步,原件、字段置信度、修正及扫码历史按需展开。扫码即时反馈匹配/不匹配对象及原因,连续扫描保留当前焦点和累计结果;不得用成功提示代替实际收发按钮。确认前展示本次数量、单位/版本、批次、库位、来源、质量与库存影响,尚未核对行不被一键全选带入过账。
不同业务方向共用组件但不混用权限和状态。列表导出、搜索建议、统计和深链接使用同一服务端权限范围,不能加载全集团数据后由前端隐藏。
切换工作单位时清理旧单位数据、选择及待处理动作,未保存内容先提示。保存失败保留输入;重复确认不重复建单或过账;后台数据变化后要求刷新受影响记录。
14.2 WDL/CDU 任务层级与关联入口
2026-11-13 用户确认全 WDL 页面内部优化,除 11-14 确认将 WDL Stock movements/Stock counts 合并为 Stock records 内两个页签外,现有菜单名称、顺序、分组和入口保持不变。第一批先处理采购、收货、药品目录及供应商政策,其他模块按全界面方案分批执行,不能以第一批结果宣布全 WDL 完成。
第二批按已确认方案推进供货/仓库/异常包(P03/P06–P08/P10/P11/P13),导航名称、顺序、分组及入口保持不变,Current stock 默认少于 30 天提醒与既有角色菜单范围保留。实施/验证见第二批专项。
- 供货与实物任务: 分配显示订单待分配及本次后批次可用;拣货显示已预留/本次/剩余,扫码匹配、覆核及发出仍是各自独立动作。外部送达按药品/包装显示已发、已送达、本次及剩余,只有确认才记录实物送达。退货明确可退或在途、本次及操作后余量,协商金额与现金退款、实物实收分开,完成明细和历史按需展开。
- 库存与流水: 主表按药品/规格显示可用量及其他数量,不把不同包装强加总;批次与收货来源在同一弹窗切换。库存流水以台账基本量的正负方向配合原操作数量/单位展示,基本量和来源层标识放展开详情;保留影响的库存类型,不虚构操作后余额。在途仅列仍有余量的同单同批分组,累计保留其已完成来源行,分别显示发出、实收、异常已处理及剩余;异常量包括召回、在途退回及运输损失,不记作买方实收。
- 库位与标签: 原库存/待上架/记录三个页签保持;扫描和搜索集中,上架/移库为主动作,打印及关联出库为次级动作。新增库位有解析与重复/层级冲突检查。移位展示来源→目标、来源实存、本次及预计剩余;实存不冒充扣除拣货占用后的可移量,提交时仍核验占用与品质。现存位置登记展示数量与不可用量差额并保护守恒。标签显示对象、张数及可增长尺寸,最多 100 对象/200 张;启用追踪和打印等非药品历史事件须正常保留。
- 盘点与召回: 盘点分系统数、实盘数、已登记差异及过账后快照,支持未录入/差异/需复盘筛选;直接盘盈亏模式不伪造实盘数量,并发变化仍要求复盘。召回待处理与已扣减分区展示,部分已扣但仍有余量的单位继续待处理;实扣显示本次后数量,既有权限、原因与召回阻断不变。
- 数据限制: 库位最多首 500 行及待上架筛选范围明确显示;关联出库接口未返回待发量时不伪造。补采的采购行累计实收不当作当前需求链接可分配库存;本批仅显示接口真实提供的需求、安排、已分配和安排余量。库位服务端分页、扣除拣货后的精确可移量及补采可分配库存仍是后续接口能力。
第三批按原方案推进供应商申请、Reports、Drug transaction register、Sales settings 和 Supplier management(P04/P05/P09/P14/P15),导航不变,OCR 仍只保留前端入口;实施/验证见第三批专项。
- 供应商申请: 申请资料与已有匹配主档并排核对;新增供应商、关联已有、退回和拒绝保持独立决定,显示实际可用匹配资料,不能把名称匹配视为自动批准。正常批准备注选填,退回/拒绝需原因,历史及既有审核权限保留。
- 报表与登记册: Reports 保留四个页签及完整日期范围后自动查询,期间/单位/更新时间集中展示,口径按需展开;缺失依据、旧资料标记及读取失败不能被精简掉。登记册仍显式查询,药品/期间/筛选形成已应用条件;期初、期间入/出及期末由服务端对完整条件汇总,不能由当前页相加;批次明细按需查看,导出针对已应用条件,保留原必需字段和导出格式。
- 销售设置: 内部单位和外部客户两个页签不变;客户身份/联系地址与当前 WDL 的供货开关、价格档位分开维护。列表以客户、供货状态及档位为主,完整资料进入详情;文件抬头与 Logo 保持低频原入口。编辑值保留原始价格精度,修改未保存及保存失败时保留输入,切换页签或离开须处理未保存修改。
- 供应商管理: 列表突出名称、主要联系、状态、维护方及操作,内部代码/财务参考/付款条款转入详情或展开编辑区。共享主档可查看,只有负责维护的 WDL 可编辑;符合既有权限的诊所来源主档接管仍须明确执行并留痕。新建/编辑把名称、联系人、电话、电邮、地址前置,正常备注选填,停用影响在适用时提示;关闭未保存供应商需确认,不丢失背后采购订单草稿。
第一批常规页面删除 PO 生效/未跟踪供应商发货等解释文字、重复 PR 编号、默认 ERP Code 和无意义 1:1 换算。订单单号作为次要识别信息保留;关联 PR、审批、附言和文件历史按需展开,真实异常和阻断原因仍就近可见。采购详情突出供应商、状态、药品及“订购/已收/待收”;本次收货同时显示“确认后待收”,正常采购、预计赠品与额外赠品分开计算,不能互相抵销或跨药/跨单位加总。金额两位小数,完整包装数量不补无意义小数,底层计算精度不变。
Receive stock 主动作直接进入本次收货,优先展示药品、实收量、批次效期及质量;凭据、备注和位置支持按阶段补充。默认先入库,货架/暂存位可在可选位置步骤立即登记,也可留待 Awaiting putaway;已有真实资料带入。原件支持拖放/选文件、文件名/大小、移除和失败重试,未上传不强制打开 OCR。拆分草稿、取消草稿、拒收和备注等次级动作按需展开。保存草稿与确认入库明确区分;部分收货普通原因选填,额外赠品确认和异常门禁保留。OCR 仅预留前端入口,当前启用边界唯一见 §7.5。
2026-11-14 用户更新 WDL 统一操作规则:当前操作仅要求完成该操作所需资料,可后补的信息不阻塞流转且需有明确后续入口。正常提交、批准、接单、完整/部分收货,以及供应商/客户资料、定价、供货设置、补采建立/关联、移库与新建盘点等一般保存,原因/备注选填;货架、普通收货凭据和 Invoice 按 §5.5/§7 分阶段补充。发货已有真实参考则带入,未填写时由系统生成明确的内部送货编号,不冒充供应商凭据。操作人、时间、版本与变更内容照常留审计。取消、撤回、关闭剩余数量、召回、退货、拒收、质量异常、盘点增减/差异和取消预留等异常仍需原因;常见场景可选择原因,也允许自订,不预选或虚构事实。人工核对替代扫码仍需记录实际核对方式并执行同等药品、批次、数量、库位和质量校验。真实主体、数量、批次、效期、质量、权限及已知商业差异不因一般资料可后补而跳过。
PR 草稿/提交/审批只呈现采购与审批信息,不展示收货余量处置。PO 生效进入收发货阶段后才展示相关实收和待收信息;取消剩余未收/未发数量放在独立且默认收起的异常操作区,说明只用于确定不再收发的部分。正常批准和收货不要求执行该动作;系统内已发在途数量不随取消未发余量消失。
2026-11-07 用户确认:以已审阅的 PR 双页预览为共同标准,适用于采购/供货、审批、供应商申请、实收/Invoice/原件、库位与拣货、库存/流水、盘点/召回/退货、目录/销售设置及报表。浅中性工作区承托白色任务分区,标题条、正文和操作区明确分开,沿用系统主题及状态语义色,不用颜色替代状态文字。
- 列表保持「标题与目的 → 筛选 → 结果 → 分页」,创建动作位于页面操作区。配置、筛选与交易提交分开;空态给出下一步,禁用关键动作显示具体缺项。
- 单据首屏先显示单号、状态、金额与当前责任角色,再显示交易双方、交付资料及提交备注。待审批时优先药品/数量/赠品/价格与审批所需资料,不提前铺陈未收、批次和后续履约空表。实际发货、实收及异常仍在适用阶段可见。
- 采购建单按采购资料、药品明细、保存/提交分区;长单据的决策栏固定在弹窗滚动区域之外。申请人、PIC、供货方与收货方仅看到服务端授权的当前动作,次要历史默认折叠,不能依页面状态自行授予权限。
- 内部附言独立于原备注及正式单据;可见范围见 §7.2。支持文件保持独立入口,上传表单按需展开,收货中需要选择原件时直接展开。折叠不改变文件或历史可见权限。
- 收货、发票核对、拣货、退货、盘点等页面按「对象/状态 → 本次实际录入 → 差异/阻断 → 确认」组织,历史另列。保存成功前保留草稿;主数据新增/申请后返回原采购任务,不丢失已填内容。
- 数字右对齐,长名称换行,窄窗口由表格自身滚动;固定操作列、弹窗按钮及原字段均可访问。不改变数量换算、供货承接、采购审批规则、库存守恒、主档维护及历史追溯规则。
实现及本地验证见界面专项。页面实现、完整服务链验证、PRD 发布、Git/应用发布和业务 UAT 分别计证。
15. APP 共存与数据归属
WDL、CDU 使用独立 APP 入口和命名路由,Central Pharmacy、Clinic Pharmacy 保留,不删除历史页面和单据。新单位 CDP WDL、HKHF WDL 不自动承接中央药房的库存、任职或单据。
同一实际业务只能有一个权威处理对象和一次库存过账。接入时明确各入口可处理的单位及单据范围,不允许两个 APP 分别建立同一笔采购、发药或库存事实;共用现有表格、弹窗、权限和库存基础能力时仍按新业务规则校验。
药品 UUID、历史药品 ID、单位及来源的转换需要独立映射和核实。历史数据不能因 APP 共存而被删除、自动合并或重新计价。新 APP 启用前须明确主数据发布、地点配置、库存初始化及业务接管边界。
16. 评审场景
以下用于检验设计完整性,不表示已运行测试。
- 诊所无 WDL 权限,仍能申请自采、经指定 PIC 审核、自行实收并使用自己的库存。
- 同一诊所分别按 CDP 一档、HKHF 三档采购,同药还可自采;采购事实分别保留,同批次库存不按采购来源余量限制退货。
- CDP 和 HKHF 对彼此分别设置供货权限及档位,反向采购不继承正向权限。
- WDL 按盒计价,CDU 按片管理时正确换算;CDU 按盒管理时医生只能填整数盒发药,每次用药仍可填片。
- HKHF 外部订单缺货,补采 CDP 后真实收 8 盒,只能按实际可用量向外发出;余下 2 盒保持差异。
- 包装版本变化后,旧 PO、旧存量、旧处方和新业务各有明确单位含义,不用最新比例重算历史。
- 采购方关闭供货许可后不能新下单,但已发在途仍可实收,退货及历史仍可处理。
- 部分收货后取消,仅结束剩余业务,已收库存保留;退款不自动退库。
- 诊所自采退给 WDL 需专门例外,原自采审批不能代替退货批准。
- 召回中的药品不能继续发出,联系记录不自动变成回收或销毁流水。
- CDU 同一耗用只进入一个有效数量核对结果,CDP→HKHF→CDU 不重复计算对诊所应结算数量。
- 普通 Pharmacy 不能看到其他诊所库存或其他客户档位;WDL Staff 无患者发药入口权限。
- CDU 可选择已有有效供应商,不能直接写主档;申请待批不可采购,指定 WDL 审核通过后可用;同名重复或并发审批不重复建档。
- CDU 在一个采购订单页面选择采购方式、选药及收货,无需先建目录;不显示药品主数据申请或修改入口。
- CDU 发起本诊所耗用数量核对,WDL 无耗用核对页面,PIC 可查看自身经营看板;CDU 与 Drug Dispensing 保持独立 APP。
- WDL Staff、CDU Pharmacy 可分别确认本单位盘点差异,无需审批;动态收发按实际盘点时点核对差额,不覆盖当前余额。
- 同批次盘亏后保留预留并显示负可用;两笔预留任务按实际出库执行顺序扣量,后执行者实物不足时报错并完整保留其预留,符合条件的同批次补货后沿原任务继续。
- 原 PO 曾收药品的批次 A,该 PO 原来源已出清,但本单位有其他收货记录或盘盈形成的批次 A 实物时,可在原 PO 额度及批次限制内退货;批次 B 未在该 PO 实收中出现则不可选。盘盈不增加原 PO 额度。
16.1 条码/OCR 出入库验收场景
以下是开发必须覆盖的验收定义,尚非执行结果;关联原始 FR-11、FR-18、UAT-01/10/11。验收须同时核对页面、业务记录、库存流水、在途及审计,不以识别成功率或扫码演示代替流程通过。
| 编号 | 场景 | 预期结果 |
|---|---|---|
| WDL-IO-01 | 外部 PO 10 盒,OCR 识别 DN/发票;扫码后先实收 6、再收 4,分属两个批次 | 原 PO 仍为 10;两次独立实收及来源层按各自版本入库,剩余量依次 4、0;识别、核对、上架及后续放行不重复增量 |
| WDL-IO-02 | OCR 药名多候选、数量低置信度、缺批次或效期 | 原件及字段问题可定位;必须人工修正并核对实物,未核实行不入库;不自动新增药品或套用其他批次 |
| WDL-IO-03 | 同药不同包装版本,商品码只包含产品信息 | 选择真实版本并补核批次效期;按该版本计算基本量,不把商品码当批次或逐件序列号 |
| WDL-IO-04 | 拣货扫错药、错批、错库位,或分配后该批被冻结/召回 | 提示具体差异,阻止该行普通发出;重新分配/换批后重新复核,库存不被错误扣减 |
| WDL-IO-05 | WDL 向 CDU 发 10 盒,CDU 扫码实收 8 | 发出方扣 10,CDU 增 8,剩余 2 保留在途及差异;上传全额 DN 不自动实收 10,补发须独立记录 |
| WDL-IO-06 | CDP→HKHF→外部诊所的补采链,外部签收件经 OCR 识别 | 两段单据与真实收发独立;HKHF 未真实实收不能先发;OCR 不关闭交付,人工核对确认后仅结束对应外部在途,不建外部库存 |
| WDL-IO-07 | 同一上传重识别、扫描回调重试、确认双击或网络超时重试 | 原件/识别版本可追溯,人工确认值不被覆盖,同一业务事件只产生一次库存影响;普通商品码反复读取不自动累加数量 |
| WDL-IO-08 | 无码、破损码、OCR 失败或扫描设备不可用 | 合法手工核对路径保留草稿、原因、人员与依据;与扫描路径使用相同必填字段和门禁,不生成虚假扫码成功记录 |
| WDL-IO-09 | 两人并发收取同一剩余发货量,或并发发出同一来源库存 | 以最新余量/预留为准,冲突明确返回,库存及在途不负数、不超收、不重复扣减 |
| WDL-IO-10 | 他单位人员持有条码/任务 ID/原件地址;CDU 尝试永久绑定新码 | 服务端拒绝越权读取或操作;允许范围内可人工选已有药品,不获得共享主数据修改权 |
| WDL-IO-11 | 已入库后重新上传更正发票、修改 OCR 或重新打印标签 | 原收货与流水不变;业务更正走关联冲销/重记并留原因,文档动作不触发第二次入库 |
| WDL-IO-12 | 原批次退回、召回品退入及随后同药换货 | 扫码核对原来源和方向;实际退入/退出、接受结果及替换货分别留痕,召回品不恢复可用,不重复过账 |
16.2 收货差异与 Invoice OCR 增量验收
以下为待执行预期,不是识别或运行结果。
| 编号 | 场景 | 预期结果 |
|---|---|---|
| WDL-OCR-01 | 只有 Invoice,识别漏批次/效期 | 选 Invoice 作为凭据,人工核实补齐后可收货,不要求 DN;无法取得真实必填值则保持待处理 |
| WDL-OCR-02 | 采购 10、预计赠品 2,实际收采购 8、赠品 4且不增加应付 | 分别记采购 8、预计赠品 2、额外赠品 2;普通采购仍欠 2,原 PO 不变 |
| WDL-OCR-03 | 部分到货收费高于对应 PO 约定,或超额行被改标赠品 | 保留草稿并阻断,不用整单未履行金额掩盖涨价,不以人工改类型绕过 |
| WDL-OCR-04 | 混合多票、Reprint、宣传资料及手写编号 | 逻辑单据可纠正,重印不重复计票;非药品不入库,手写编号不参与匹配 |
| WDL-OCR-05 | DN/Invoice 同批;先收后票;一票多次收 | 原值分别保留、数量不相加、分配不重复,后补票不再次入库 |
| WDL-OCR-06 | 重识别晚到、并发确认、内部超在途、他单位访问 | 不覆盖人工值、不重复入库;内部上限和单位权限有效 |
17. 待确认的产品决定
| 编号 | 决定 | 本稿建议/当前边界 |
|---|---|---|
| D02 | WDL 向供应商及另一 WDL 采购的审批/签署 | 买方 PIC 单级审批已确认;额外跨 WDL 签署要求待确认 |
| D03 | CDU 自采审核 PIC 如何分派 | 单独配置诊所到审核 PIC 的任务范围,不依赖 WDL 供货许可 |
| D04 | 价格、供货许可的具体维护人 | 建议 WDL PIC 管理,CDU Pharmacy 管理本地发药价;管理员专项授权 |
| D05 | 外部客户销售范围 | 已确认任何获授权内部 WDL 可售予已启用供货及档位的外部诊所/外部 WDL;商业客户独立于内部单位,V1 无客户登录或库存 |
| D06 | 档位价适用的币种、税费、折扣、订单例外价 | 当前只定义明确币种及单据快照,不自动换汇或开放例外价 |
| D07 | 按供应开票还是按耗用结算 | 已确认按每次 WDL 实际发货开付款发票;耗用核对不重复开票,Finance 会计处理另行设计 |
| D08 | 包装版本、整包装实物及跨版本发药 | 建议来源层保留包装状态,处方固定发药版本,异版来源不自动混发 |
| D09 | 收货超量、后到赠品及质量放行 | 外采免费额外赠品登记、金额超额不支持收货已确认,见 §7.3/§7.5;解除隔离权限、非 PO 药品及明确关闭接收后的处理仍需按适用规则核实 |
| D10 | PIC 独立盘点执行权及质量处置权限 | WDL Staff、CDU Pharmacy 的直接确认权见 §11.2;PIC 独立盘点执行权、销毁及患者退药权限另定,不套用采购审核或盘点权限 |
| D11 | 发药预留时限、双人复核及异常交付 | 建议保留完整门禁;不以 CDU 新入口绕过患者流程 |
| D12 | 期初库存、单位基础资料、法人及 Oracle 接口 | 期初库存及单位资料另行核实;法人和 Oracle 属于后续财务专题,不纳入本阶段 WDL 页面 |
| D13 | CDU 耗用数量核对的确认流程 | 功能归属 CDU 已确定;建议 Pharmacy 提交、Finance 确认/退回 |
| D14 | 条码/OCR 接入参数与样本验证 | 集成范围与人工确认门禁已纳入开发规格;上线前核验实际条码样本/码制、扫描设备、标签模板、OCR 字段置信度提示阈值和映射维护人。参数未定不取消 §7.4/§8.4/§9.1 的流程与异常要求,不默认逐盒序列化或必须采购新硬件 |
优先确认 D02、D03、D04、D07、D08,再细化页面字段、按钮状态和数据结构。其他决定可在对应业务专题中逐项确认。