Basic UDI校验码算法

2022-07-29 10:00杨建明
中国自动识别技术 2022年3期
关键词:校验字符代码

杨建明/文

在欧盟医疗器械法规(2017/745) MDR 中增加了一个新概念,叫做Basic UDI。此代码采用全球型号代码GMN 格式,是企业基于GS1 编码规则自己定义的一类产品的代码。该代码与UDI 不同,它不会标识在产品上,但与证书、符合性声明、技术文档以及安全和临床性能总结、自由贸易证书等关联,用于欧盟UDI 数据库的主索引。当前,企业主要用于产品注册。

Basic UDI数据结构

Basic UDI采用全球型号代码GMN 格式,用25位不定长表示,包括厂商识别代码(数字)+产品识别代码(字母、数字)+两位校验码,具体如下:

厂商识别代码采用GS1 编码,由数字组成;产品识别代码由字母数字组成;厂商识别代码和产品识别代码字符长度不超过23 位,即m+n≤23。校验码由2 位字母或数字组成。总字符长度不超过25位。

校验码算法

1.将GMN 的每个字符按表一换算成相应的值,表1(见下页);

表1

2.每个GMN 字符按其位置(从右到左)分配加权因子,加权因子为100 以内的23 个质数,分别是2,3,5,7,11,13,……83;

3.将步骤1的值与步骤2的加权因子相乘;

4.将步骤3的乘积相加;

5.将步骤4的和按1021取模数;

6.将步骤5 的值按除以32,取整数,将该整数值对照,见表2,换算成相应的字符,即得到校验符C1;

7.将步骤5的值按32取模数,将该模数值对照,见表2,换算成相应的字符,即得到校验符C2。

表2

校验码算法示例

示例1:计算6901234GS1-China1234567 的校验码,因此,6901234GS1-China1234567 的Ba⁃sic UDI 校验码为E, H,即6901234GS1-Chi⁃na1234567EH,表3(见下页)。

表3

示例2:计算6901234GS1-China123 的校验码,所以,“6901234GS1-China123”的Basic UDI的完整编码是“6901234GS1-China1235R”,表4(见下页)。计算步骤,表5(见下页)。

表4

表5

其它说明

产品识别代码编码产品识别编码中,部分字符不能参与编码,包括:`、~、@、#、$、^、[、]、{、}、|、等11 个可见字符,以及空格符(能够编码的字符详见表1)。如6901234GS1[China],由于该编码含有字符“[、]”,而“[、]”不能参与编码,所以,编码“6901234GS1[China]”是不正确的。在线计算会有明确提示。

校验字符校验码字符不包括数字“0和1”以及字母“I和O”,字母都是大写。

换算技巧依据表1,由于“!”对应值为“0”,所以,当GMN 字符不足25 个字符时,在计算校验码时,可以在字符前用“!”补足25个字符。

如“6901234GS1-China123”有19 个字符,在计算校验码时,可以变成“!!!!6901234GS1-Chi⁃na123”进行计算,其结果是一样的。该变换特别适合用EXCEL 计算校验码,但不适合在线计算校验码。

用EXCEL 计算校验码不能直接套用查找函数(如lookup)查询字符对应的值,因为这些函数不区分大小写字母,建议结合函数find,以便精确查找字符对应的值。

猜你喜欢
校验字符代码
复杂多耦合仿真模型校验工具研究
使用Excel朗读功能校验工作表中的数据
电能表在线不停电校验技术
正则表达式快速入门
字符代表几
图片轻松变身ASCⅡ艺术画
精通文件校验的“门道”
神秘的代码
一周机构净增(减)仓股前20名
重要股东二级市场增、减持明细