码迷,mamicode.com
首页 > 其他好文 > 详细

ICCBBA的ISBT 128编码标准 检验码在codesoft的实现

时间:2015-02-04 13:05:51      阅读:378      评论:0      收藏:0      [点我收藏+]

标签:codesoft   isbt128   

ISBT 128来源于code 128条码,在条码系统中也可以直接用code 128或其他一维条码代替,但最终结果只要符合ISBT128的内容即可。如:

技术分享技术分享

其中,,前五位字符(90003)[facility]由ICCBBA分配在全世界唯一的标识码,代表唯一的医疗机构或组织代码。05代表的年份[year],217134为序列号[sequential numer],然后两位图标或数字数列在那里是标识位(代表是管状或包等)[vertical #=process control code],最后一位H是检验码[check digit]。

检查码由计算机自动演算,可防止打印过程和读取过程的机械错误和人为差错。检验字符可以是数字、字母或星符组成的(37进制数)

字符

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

Y

V

W

X

Y

Z

*

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36


计算码检验码的步骤:

(1)计算加权权重。取ISBT128前13码,从右向左每位字符对应的值*2^位置 的累加。 

∑=4*2^1+3*2^2+1*2^3+7*2^4+1*2^5+2*2^6+5*2^7+0*2^8+3*2^9+0*2^10+0*2^11+0*2^12+9*2^13=76204

 (2)取模37。  76204 mod 37=21

(3)38减去第(2)的值再取一次模37。   38-21 mod 37=17

(4)从上表中可以查到值17对应的是H。H即为我们所想要的检验码。


由于我们中国的医疗机构或医疗组织标识为数字,所以可以在codesoft简单实现:

 

变量:CheckTable  存储字码表  CheckTable=‘0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ*‘
公式:CheckWeight 计算权重 
公式:CheckSign 计算校验字符   即所需值

    



ICCBBA的ISBT 128编码标准 检验码在codesoft的实现

标签:codesoft   isbt128   

原文地址:http://blog.csdn.net/csui2008/article/details/43482455

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!