校验码的计算方法与防错作用

内容源自

简介

讲解GS1校验码的模十加权算法与计算步骤,说明其在防止扫描误读、保障产品标识数据准确方面的作用,并结合唯一标识数据库申报要求给出校验位核验、系统自动生成与常见错误排查的检查要点,示例清楚,便于一线编码人员实操使用。

在一条完整的GS1代码中,最后一位数字最容易被忽视,却承担着最关键的一道防线,它就是校验码。扫码设备读取载体时会立即把前面的数据位重新计算一遍,若结果与标签上的校验位不一致,设备就拒绝输出,从而避免错误数据进入医院与监管系统。掌握这一算法,企业既能自行复核代码,也能快速定位识读异常的原因。

一、校验位在GS1体系中的定位

法规依据:校验位是GS1通用规范的强制性组成项,任何用于UDI-DI的GTIN都必须包含它,这也是数据复核的技术基础。

核心要求:校验位位于代码最右侧且必须存在,既不能省略也不能替换,前面的数据位变化时须同步重算。

实操做法:在编码台账中单独列出校验位字段,采用由数据位自动生成而非人工填写的方式,并在标签模板中锁定取值来源。

关键步骤:

  1. 明确适用的GTIN位数;
  2. 确定参与计算的数据位;
  3. 选用标准模十算法;
  4. 由系统自动计算。

检查要点:核查是否存在手工改写GTIN却未重算校验位的情况,这是导致终端扫码失败的常见原因之一。

二、校验位的核心要求

法规依据:从数据质量看,校验位服务于《医疗器械唯一标识系统规则》关于数据准确性的要求,也与填报指南的一致性要求相符。

核心要求:算法必须全局统一,同一企业所有GTIN都应使用同一套加权规则,不得混用国际算法与自定义规则。

实操做法:在ERP或赋码软件中固化一个计算函数,禁止操作人员覆盖结果,确需修改时应触发二次审批。

关键步骤:

  1. 引入计算函数;
  2. 对历史数据批量回算;
  3. 锁定函数并限制权限;
  4. 定期开展抽样复核。

检查要点:核查存量数据中是否存在校验不通过的GTIN,尤其从旧系统迁移的数据必须分批逐一复算。

三、模十算法的计算过程

法规依据:GS1采用十进制加权求模的方法,与公开的编码结构一同构成标准做法,是保证数据可被机器校验的前提。

核心要求:计算时必须从最右侧的数据位起向左编号,且不包含待求的校验位本身,编号顺序错误结果必然错误。

实操做法:以12位数据为例,从右往左编号,奇数位乘3、偶数位乘1,乘积求和后用10的整数倍减去它,差值即校验位。参见官方来源。

关键步骤:

  1. 取出校验位以外的数据位;
  2. 最右侧数据位定为第一位;
  3. 按奇数3、偶数1逐位相乘;
  4. 求和并求10的整数倍差值。

检查要点:差值恰为10时校验位应取0,这是最易忽略的边界情况,同时须保留前导零以免参与计算的位数变少。

四、五步算出校验位的实操演示

法规依据:掌握算式后还应通过实例验证,以确保信息系统实现无误,这也是内部培训与赋码商验收时最有效的手段。

核心要求:演示样例应取自真实产品或标准示例,并同时验证生成软件与扫码设备两端结果的一致性。

实操做法:以数据串690123456789为例,自右向左按权重交替相乘求和得128,不小于它的最小10的整数倍为130,差值2即校验位。

关键步骤:

  1. 写出12位参与计算的数据;
  2. 列出每位对应的权重;
  3. 逐位相乘并记录乘积;
  4. 求和并求10的整数倍差值。

检查要点:验证时应确认手工计算与系统在字符转换为数值等环节处理一致,避免因数据类型变化引入误差。

五、系统校验的常见错误

法规依据:数据错误一旦流入数据库与终端,追溯与召回链条就会失真,相关规则对此明确了注册人的主体责任。

核心要求:应建立源头可控、过程可查、结果可复核的校验机制,不允许存在无人负责的黑箱环节。

实操做法:实施三道闸门,即生成环节自动计算、打印环节读取同一结果、申报环节由数据库格式校验把关。

关键步骤:

  1. 在生成环节锁定自动计算;
  2. 在打印环节禁止人工覆盖;
  3. 在赋码后抽样扫码;
  4. 在申报前全表回算。

检查要点:最后确认批量导出时前导零是否丢失、标签瑕疵是否被误判为校验失败、数据库报错是否与预期原因一致。

一位校验码看似微不足道,却决定了UDI被扫码时能否正确落地。用系统替代人工、用回算替代抽查、用多道闸门替代单点把关,企业就能把这类高频错误挡在出厂之前。