NHI 번호

NHI Number

NHI(National Health Index, NHI) 번호뉴질랜드 보건 시스템 내에서 사용되는 고유한 개인 식별자다. 기술적으로 숫자가 아니라 7자로 구성된 영숫자 식별자로, 3자, 4자. NHI는 의료 사용자 인구통계 데이터의 국가 수집(NHI 번호가 고유 식별자임)도 참조할 수 있기 때문에 이 약어를 사용할 때는 주의해야 하지만 NHI라고 부르는 경우가 많다.

NHI 번호는 1993년에 NHI의 일부로 제정되었다.[1]

사용법

주로 NHI는 뉴질랜드 보건 시스템 내에서, 특히 전자 시스템에서 고유하게 개인을 식별하는 데 사용된다.[1][2] 예를 들어, 의료 경고 시스템(MWS)을 사용하는 의료 서비스 제공자에게 특정 환자의 의료 의사결정 관련 위험을 경고하기 위해 사용되는 것이 그 예다.

포맷

NHI 번호는 LLLNNC 형식이며, 여기서 L은 문자(I와 O 제외), N은 숫자, C는 숫자 체크 디짓이다. (예: ABC1235) 첫 번째 문자의 배정은 임의적이며, 배정받은 개인과는 아무런 관계가 없다. NHI 번호는 영문자 대문자로 가장 많이 표현된다. 이 형식은 13,824,000개의 고유 NHI 번호를 제공한다.

NHI 번호는 종종 유효하거나 유효하지 않은 것으로 언급된다. 올바른 형식에 맞지 않거나 잘못된 체크 디짓이 있는 NHI 번호는 무효라고 한다. 일반적으로 NHI 번호가 유효하거나 유효하지 않은 것에 대한 언급은 NHI 번호가 올바른 개인과 올바르게 연관되어 있음을 나타내지 않는다. 식별자가 임의적이기 때문에 식별자 자체만으로 이것을 할 수 있는 방법은 없다.

NHI 번호의 유효성을 확인하기 위해 오픈 소스 패키지를 이용할 수 있다.

기존 사거리는 2025년 이후 소진될 전망이다. 2019년에 개정된 표준에서는 새로운 형식의 LLLNLX를 도입하였는데, 여기서 X는 문자 체크 디짓(예: ABC12DV)이다. 새 포맷은 2022년 7월부터 할당 가능하며, 3317만7600개의 고유 NHI 번호를 추가로 제공할 예정이다. 이 두 형식은 무한정 공존하게 될 것이며, 모든 행정 및 임상 시스템은 이 두 형식을 모두 지원해야 할 것이다.

Z로 시작하는 모든 NHI 번호는 테스트 목적으로 예약되어 있다.[3]

중복됨

개인이 두 개 이상의 NHI 번호를 부여받은 것이 확인되면, 그 한 개인은 1차 식별자로 간주된다. 이것은 보통 할당된 모든 숫자의 순위를 영숫자 순서로 매기고 첫 번째 숫자를 1차 숫자로 선택함으로써 이루어진다.

그런 다음 NHI 내의 개인에 대한 다른 모든 NHI 번호는 기본 NHI 번호와 연결된다.

체크 디지트

체크 디지트 알고리즘에는 두 가지 변형이 있는데, 이전 NHI 번호 형식에는 숫자 체크 디지트가 있고, 새 형식에는 알파벳 체크 문자가 있다. 알파벳 체크 디지트를 사용하는 것으로 변경하면 이전 체크 디지트 구성표에서 단순한 단일 문자 전사 오류가 항상 감지되지 않는 이전에 식별된 약점을 해결한다.[4]

새로운 형식의 경우, 각 알파벳 문자는 알파벳 I과 O를 생략한 한 버전 내에서 서수 위치와 동일한 숫자 값이 주어진다. 서수 범위는 1-24이다. 이를테면 A=1과 Z=24를 준다. 각 숫자 문자는 계산에서 면 값이 0–9로 사용된다.

그런 다음 각 문자의 등가 숫자 값에 NHI 번호 내의 역순 위치를 곱한다. 첫 번째 값은 7을 곱하고, 두 번째 값은 6을 곱하고, 세 번째 값은 5를 곱하고, 네 번째 값은 4를 곱하고, 다섯 번째 값은 3을 곱하고, 여섯 번째 값은 2를 곱한다. 6개 제품의 합계를 계산한다. 계산된 합계 모듈로 24를 빼서 지수 번호를 부여한다. 지수 번호가 0이면 NHI 번호가 유효하지 않고 사용할 수 없다.

이전 형식의 경우 NHI 번호에는 체크 디지트가 포함되어 있다. 숫자 생성 알고리즘은 아래에 설명되어 있다.

각 알파 문자는 A에서 Z까지의 알파벳 내에서 서수 위치와 동등한 숫자 표현을 받는다. I과 O는 생략되어 서수 범위 1 - 24가 된다.

각 알파 문자의 숫자 표현은 NHI 번호 내에서 서수 위치의 역순으로 곱한다. 첫 번째 값은 7을 곱하고, 두 번째 값은 6을 곱한다.

처음 3개의 숫자 문자에 서수 위치의 역도 곱한다.

11에서 빼는 이러한 곱셈 계수 11의 합은 체크 디지트로 취한다(10의 결과는 0으로 번역된다).

이 체계는 ISBN 체크 디지트 체계와 유사하다.

이전 형식에 대한 NHI 유효성 검사를 계산하는 PHP 코드

/**  * @param $nhi_number 유효성 확인할 NHI 번호  * @return bool 유효하면 True, 유효하지 않으면 False  * @작가 스콧.퀸랜[at]gmail.com  */ 기능을 하다 입증하다NHINber_old(끈을 매다 $nhi_number) : 바가지 긁다 {     // 형식의 초기 확인     만일 (!preg_match('/^([a-zA-Z]){3}([0-9]){4}?$/', $nhi_number)) {         돌아오다 거짓의;     }      // 배열에서 문자열 분할     차르스 = preg_message('//', 스트롤로어($nhi_number), -1, PREG_SPLIT_NO_EMPY);     달러 합계 = 0;      // 처음 6자까지 반복하고, 7번째는 체크 디지트로 무시한다.     을 위해 ($i = 0; $i < 6; $i++) {         차르 = 차르스[$i];          // 처음 세 개의 알파벳 문자에는 숫자 표현 등가물이 주어진다.         // A에서 Z까지 시작하는 알파벳 내의 서수 위치로.         // 문자 I과 O는 생략되어 서수 범위 1 - 24가 된다.         만일 ($i < 3) {             $ASCII = 서품을 하다(차르스[$i]);              만일 ($ASCII > 105) {                 만일 ($ASCII > 111) {                     $ASCII -= 2;                 } 다른 {                     $ASCII -= 1;                 }             }              차르 = $ASCII - 96;         }          // 각 알파 문자의 숫자 표현에 다음 값을 곱한다.         // NHI 번호 내의 서수 위치의 역. 맨 처음 것, 제1; 전자         // 값을 7로 곱하고, 두 번째 값을 6으로 곱한다.         달러 합계 += ((인트로)차르 * (7 - $i));     }      // 계수 11을 적용하여 체크섬을 생성한다.     달러화 = (둥둥 뜨다)fmod(달러 합계, 11);     $수표자리수 = 11 - 달러화;      // 체크섬이 0이면 NHI 번호가 잘못됨     만일 (달러화 == 0) {         돌아오다 거짓의;     }      // 체크 디지트가 10인 경우 0으로 변환     만일 ((인트로)$수표자리수 == 10) {         $수표자리수 = 0;     }      // 네 번째 번호는 유효한 NHI 번호의 체크 디지트와 같아야 함     돌아오다 ((인트로)차르스[6] == $수표자리수); }  메아리치다 (인트로)입증하다NHINber_old('DAB8233'); // 0(계속) 메아리치다 (인트로)입증하다NHINber_old('CGC2720'); // 1 (유효한) 메아리치다 (인트로)입증하다NHINber_old('EPT6335'); // 1 (유효한) 

이전 형식, 새 형식 및 두 형식으로 NHI 번호를 검증하는 Excel 공식

이러한 공식은 Excel 버전 2010 이상(또는 동등)을 필요로 한다. 공식은 입력이 영숫자와 대문자로 가정한다. 문자열이 7자인지, 문자 "I"와 "O"가 없는지, 영숫자가 올바른 위치에 있는지 확인하기 위해 점검한다. 공식은 유효한 NHI에 대해 TRUE를 반환하거나 그렇지 않은 경우 FALSE를 반환한다.

이전 형식

=AND(IF((A2)=7,진실의,거짓의),NOT(아이넘버(찾기("나",A2))),NOT(아이넘버(찾기("O",A2))),ISTEXT(왼쪽(A2,3)),IF(아이넘버(가치(맞다(A2,4))),11-MOD( 7*IF(ISERR(중앙의(A2,1,1)*1),IF(코드(중앙의(A2,1,1))>79,코드(중앙의(A2,1,1))-66,IF(코드(중앙의(A2,1,1))>72,코드(중앙의(A2,1,1))-65,코드(중앙의(A2,1,1))-64)),중앙의(A2,1,1))+ 6*IF(ISERR(중앙의(A2,2,1)*1),IF(코드(중앙의(A2,2,1))>79,코드(중앙의(A2,2,1))-66,IF(코드(중앙의(A2,2,1))>72,코드(중앙의(A2,2,1))-65,코드(중앙의(A2,2,1))-64)),중앙의(A2,2,1))+ 5*IF(ISERR(중앙의(A2,3,1)*1),IF(코드(중앙의(A2,3,1))>79,코드(중앙의(A2,3,1))-66,IF(코드(중앙의(A2,3,1))>72,코드(중앙의(A2,3,1))-65,코드(중앙의(A2,3,1))-64)),중앙의(A2,3,1))+ 4*IF(NOT(ISERR(중앙의(A2,4,1)*1)),중앙의(A2,4,1))+3*IF(NOT(ISERR(중앙의(A2,5,1)*1)),중앙의(A2,5,1))+2*IF(NOT(ISERR(중앙의(A2,6,1)*1)),중앙의(A2,6,1)),11) =IF(NOT(ISERR(중앙의(A2,7,1)*1)), 중앙의(A2,7,1)*1))) 

새 형식

=AND((A2)=7,NOT(아이넘버(찾기("나",A2))),NOT(아이넘버(찾기("O",A2))),NOT(ISERR(중앙의(A2,4,2)*1)), 24 - MOD( 7*IF(ISERR(중앙의(A2,1,1)*1), IF(코드(중앙의(A2,1,1))>79,코드(중앙의(A2,1,1))-66,IF(코드(중앙의(A2,1,1))>72,코드(중앙의(A2,1,1))-65,코드(중앙의(A2,1,1))-64)), 중앙의(A2,1,1))+ 6*IF(ISERR(중앙의(A2,2,1)*1), IF(코드(중앙의(A2,2,1))>79,코드(중앙의(A2,2,1))-66,IF(코드(중앙의(A2,2,1))>72,코드(중앙의(A2,2,1))-65,코드(중앙의(A2,2,1))-64)), 중앙의(A2,2,1))+ 5*IF(ISERR(중앙의(A2,3,1)*1), IF(코드(중앙의(A2,3,1))>79,코드(중앙의(A2,3,1))-66,IF(코드(중앙의(A2,3,1))>72,코드(중앙의(A2,3,1))-65,코드(중앙의(A2,3,1))-64)), 중앙의(A2,3,1))+ 4*IF(NOT(ISERR(중앙의(A2,4,1)*1)),중앙의(A2,4,1))+ 3*IF(NOT(ISERR(중앙의(A2,5,1)*1)),중앙의(A2,5,1))+ 2*IF(ISERR(중앙의(A2,6,1)*1), IF(코드(중앙의(A2,6,1))>79,코드(중앙의(A2,6,1))-66,IF(코드(중앙의(A2,6,1))>72,코드(중앙의(A2,6,1))-65,코드(중앙의(A2,6,1))-64)), 중앙의(A2,6,1)),24) = IF(ISERR(중앙의(A2,7,1)*1), IF(코드(중앙의(A2,7,1))>79,코드(중앙의(A2,7,1))-66,IF(코드(중앙의(A2,7,1))>72,코드(중앙의(A2,7,1))-65,코드(중앙의(A2,7,1))-64)),중앙의(A2,7,1))) 

두 형식 모두

=AND( (A2)=7,NOT(아이넘버(찾기("나",A2))),NOT(아이넘버(찾기("O",A2))),NOT(ISERR(중앙의(A2,4,2)*1)), IF( ISERR(중앙의(A2,6,1)*1),   24 - MOD(    7*IF(ISERR(중앙의(A2,1,1)*1), IF(코드(중앙의(A2,1,1))>79,코드(중앙의(A2,1,1))-66,IF(코드(중앙의(A2,1,1))>72,코드(중앙의(A2,1,1))-65,코드(중앙의(A2,1,1))-64)), 중앙의(A2,1,1))+    6*IF(ISERR(중앙의(A2,2,1)*1), IF(코드(중앙의(A2,2,1))>79,코드(중앙의(A2,2,1))-66,IF(코드(중앙의(A2,2,1))>72,코드(중앙의(A2,2,1))-65,코드(중앙의(A2,2,1))-64)), 중앙의(A2,2,1))+    5*IF(ISERR(중앙의(A2,3,1)*1), IF(코드(중앙의(A2,3,1))>79,코드(중앙의(A2,3,1))-66,IF(코드(중앙의(A2,3,1))>72,코드(중앙의(A2,3,1))-65,코드(중앙의(A2,3,1))-64)), 중앙의(A2,3,1))+    4*IF(NOT(ISERR(중앙의(A2,4,1)*1)),중앙의(A2,4,1))+ 3*IF(NOT(ISERR(중앙의(A2,5,1)*1)),중앙의(A2,5,1))+    2*IF(ISERR(중앙의(A2,6,1)*1), IF(코드(중앙의(A2,6,1))>79,코드(중앙의(A2,6,1))-66,IF(코드(중앙의(A2,6,1))>72,코드(중앙의(A2,6,1))-65,코드(중앙의(A2,6,1))-64)), 중앙의(A2,6,1)),24)   = IF(ISERR(중앙의(A2,7,1)*1), IF(코드(중앙의(A2,7,1))>79,코드(중앙의(A2,7,1))-66,IF(코드(중앙의(A2,7,1))>72,코드(중앙의(A2,7,1))-65,코드(중앙의(A2,7,1))-64)),중앙의(A2,7,1)),   11 - MOD(    7*IF(ISERR(중앙의(A2,1,1)*1), IF(코드(중앙의(A2,1,1))>79,코드(중앙의(A2,1,1))-66,IF(코드(중앙의(A2,1,1))>72,코드(중앙의(A2,1,1))-65,코드(중앙의(A2,1,1))-64)), 중앙의(A2,1,1))+    6*IF(ISERR(중앙의(A2,2,1)*1), IF(코드(중앙의(A2,2,1))>79,코드(중앙의(A2,2,1))-66,IF(코드(중앙의(A2,2,1))>72,코드(중앙의(A2,2,1))-65,코드(중앙의(A2,2,1))-64)), 중앙의(A2,2,1))+    5*IF(ISERR(중앙의(A2,3,1)*1), IF(코드(중앙의(A2,3,1))>79,코드(중앙의(A2,3,1))-66,IF(코드(중앙의(A2,3,1))>72,코드(중앙의(A2,3,1))-65,코드(중앙의(A2,3,1))-64)), 중앙의(A2,3,1))+    4*IF(NOT(ISERR(중앙의(A2,4,1)*1)),중앙의(A2,4,1))+ 3*IF(NOT(ISERR(중앙의(A2,5,1)*1)),중앙의(A2,5,1))+ 2*IF(NOT(ISERR(중앙의(A2,6,1)*1)),중앙의(A2,6,1)),11)   = IF(NOT(ISERR(중앙의(A2,7,1)*1)), 중앙의(A2,7,1)*1)          )) 

참조

  1. ^ a b 뉴질랜드 보건 정보 서비스. 국민건강지수(NHI). 2007년 6월 13일 회수.
  2. ^ 뉴질랜드 보건 정보 서비스NHI 번호. 2007년 6월 13일 회수.
  3. ^ Ministry of Health. "HISO 10046:2019 Consumer Health Identity Standard". Ministry of Health. Retrieved 15 August 2020.
  4. ^ MacRae, Jayden (November 2015). "Evaluating a weakness of the National Health Index identifier check-digit to transcription errors in data entry" (PDF). Health Informatics New Zealand Conference 2015. Retrieved 13 May 2021.

외부 링크