[EU MDR / IVDR] GS1에 따른 Basic UDI-DI Check Digit 계산 방법

GS1은 Basic UDI-DI를 Global Model Name (GMN) 이라는 이름으로 부른다. 

GMN 코드는 "[업체코드(A)]+ [모델코드(B)] + [검증문자(C)]"의 구조를 가지며,  
다음과 같은 자리수를 가진다.

GS1 업체코드: 국가코드 (3자리) + 업체코드 (5자리) = 총 8자리
모델코드: 1 ~ 15자리
검증문자: 2자리

즉  GMN 코드는 총 25 자리로 구성된다.

이 중 검증문자를 결정하기 위해 일반적으로 GS1 GMN Generator Tool (Link)를 통해서 검증문자를 확인한다.

하지만 GS1이 제공해주는 가이던스에 언급한 내용을 활용한다면, 큰 무리 없이 Excel 등의 프로그램을 이용하여 검증문자를 확인할 수 있다. (굳이 안찾아봐도되므로 편리하다 :))


1) 업체코드를 상공회의소를 통해 발급받는다.
2) 각 모델별로 자사에서 직접 모델코드를 결정한다.
3) 각각의 코드에 기재된 문자는 다음과 같이 할당된 값을 가진다.

문자

할당 값

문자

할당 값

문자

할당 값

!

0

G

35

o

70

"

1

H

36

p

71

%

2

I

37

q

72

&

3

J

38

r

73

'

4

K

39

s

74

(

5

L

40

t

75

)

6

M

41

u

76

*

7

N

42

v

77

+

8

O

43

w

78

,

9

P

44

x

79

-

10

Q

45

y

80

.

11

R

46

z

81

/

12

S

47

 

 

0

13

T

48

 

 

1

14

U

49

 

 

2

15

V

50

 

 

3

16

W

51

 

 

4

17

X

52

 

 

5

18

Y

53

 

 

6

19

Z

54

 

 

7

20

_

55

 

 

8

21

a

56

 

 

9

22

b

57

 

 

:

23

c

58

 

 

;

24

d

59

 

 

< 

25

e

60

 

 

=

26

f

61

 

 

> 

27

g

62

 

 

?

28

h

63

 

 

A

29

i

64

 

 

B

30

j

65

 

 

C

31

k

66

 

 

D

32

l

67

 

 

E

33

m

68

 

 

F

34

n

69

 

 


4) 각 문자별로 할당된 값을 부여한다.
5) 각 문자별로 소수(Prime Number) 가중치를 부여한다. 
업체코드의 가장 마지막 자릿수부터 업체코드의 가장 첫 번째 자릿수로 진행하면서, 소수 가중치를 2, 3, 5, 7, 11, 13, .... 순으로 증가하도록 부여한다.
6) 각 문자별로 할당된 값과 소수 가중치를 곱한다.
7) 각 문자별 곱셈의 결과를 모두 합한다.
8) 총합을 "1021"로 나누고, 그 나머지를 구한다.
9) 나머지를 "32"로 나누었을 때 결과로 나온 정수 부(A), 나머지(B) 를 결정한다.
10) 이와 같이 결정된 A, B가 바로 Check Digit을 결정하는 값이 되며, 다음과 같은 할당값을 통해 Check Digit이 할당된다.

문자

할당 값

문자

할당 값

0

2

17

K

1

3

18

L

2

4

19

M

3

5

20

N

4

6

21

P

5

7

22

Q

6

8

23

R

7

9

24

S

8

A

25

T

9

B

26

U

10

C

27

V

11

D

28

W

12

E

29

X

13

F

30

Y

14

G

31

Z

15

H

 

 

16

J

 

 


예시를 들어보자.

만약 우리 회사의 업체코드를 "88016578" / 모델코드 "468755AA72ZIP" 로 결정하였다고 가정하자.

각 문자별로 4)에 따라 다음과 같은 값이 부여된다.

P1

P2

P3

P4

P5

P6

P7

P8

P9

8

8

0

1

6

5

7

8

4

21

21

13

14

19

18

20

21

17

 

P10

P11

P12

P13

P14

P15

P16

P17

P18

6

8

7

5

5

A

A

7

2

19

21

20

18

18

29

29

20

15

 

P19

P20

P21

Z

I

P

54

37

44


5)에 따라 각 문자별로 소수를 부여한다.

P1

P2

P3

P4

P5

P6

P7

P8

P9

8

8

0

1

6

5

7

8

4

21

21

13

14

19

18

20

21

17

73

71

67

61

59

53

47

43

41

 

P10

P11

P12

P13

P14

P15

P16

P17

P18

6

8

7

5

5

A

A

7

2

19

21

20

18

18

29

29

20

15

37

31

29

23

19

17

13

11

7

 

P19

P20

P21

Z

I

P

54

37

44

5

3

2

 







6)에 따라 각 부여된 값을 곱한다.

P1

P2

P3

P4

P5

P6

P7

P8

P9

8

8

0

1

6

5

7

8

4

21

21

13

14

19

18

20

21

17

73

71

67

61

59

53

47

43

41

1533

1491

871

854

1121

954

940

903

697

 

P10

P11

P12

P13

P14

P15

P16

P17

P18

6

8

7

5

5

A

A

7

2

19

21

20

18

18

29

29

20

15

37

31

29

23

19

17

13

11

7

703

651

580

414

342

493

377

220

105

 

P19

P20

P21

Z

I

P

54

37

44

5

3

2

270

111

88

 








7)에 따라 총합을 구하면 "13718"이 된다.
8)에 따라 1021을 나눈 나머지는 "445"가 된다.
9)에 따라 445를 32로 나눈 정수(A)는 "13", 나머지(B)는 "29"가 된다.

10)에 따라 13은 "F"에 할당되며, 29는 "X"에 할당된다.

즉 이 제품의 GS1에 따른 Basic UDI-DI는 88016578468755AA72ZIPFX 가 된다.

이러한 순서를 통해 Basic UDI-DI를 구할 수 있고, 이를 이용하여 Basic UDI-DI 를 결정하도록 문서를 꾸려놓는다면 조금 더 편리하게 삶을 영위할 수 있지 않을까 싶습니다.


댓글