国民健康指標 ( NHI ) 番号は、ニュージーランドの医療制度内で使用される固有の個人識別子です。厳密には番号ではなく、3 つの文字と 4 つの数字からなる 7 文字の英数字識別子です。NHI と呼ばれることがよくありますが、この略語を使用する際には注意が必要です。NHI は、医療利用者の人口統計データの全国コレクションを指すこともあるためです (NHI 番号はその固有の識別子です)。
NHI番号はNHIの一部として1993年に制定されました。[1]
使用法
NHIは主にニュージーランドの医療制度[1] [2]内で個人を一意に識別するために使用され、特に電子システムで使用されます。その一例は、医療警告システム(MWS)を使用して、特定の患者に対する医療上の意思決定に関連するリスクを医療提供者に警告するために使用されます。
形式
NHI 番号は LLLNNNC の形式です。ここで、L は文字 (I と O を除く)、N は数字、C は数字のチェック ディジットです(例: ABC1235)。最初の文字の割り当ては任意であり、割り当てられた個人とは関係ありません。NHI 番号は、ほとんどの場合、大文字のアルファベット文字で表されます。この形式では、13,824,000 の一意の NHI 番号が提供されますが、これらの組み合わせのうち 1,256,727 はチェック ディジットを生成できません。
NHI 番号は、有効か無効かで区別されることがよくあります。正しい形式に合わない NHI 番号やチェック ディジットが間違っている NHI 番号は、無効とみなされます。通常、NHI 番号が有効かどうかの言及は、正しい個人に正しく関連付けられていることを示すものではありません。識別子は任意であるため、識別子自体だけに基づいてこれを行う方法はありません。
NHI 番号の有効性をチェックするためのオープンソース パッケージが利用可能です。
- JavaScript - (nhi-validator)
- PHP - (ニュージーランド NHI 検証ツール)
- Pkl - (pkl-nhi)
- Python - (python-nhi)
- R - (nhiValidator)
- 錆 - (nhi)
既存の範囲は、2025 年以降に使い果たされると予想されています。2019 年に改訂された標準では、LLLNNLX という新しい形式が導入されました。ここで、X は文字のチェック ディジットです (例: ABC12DV)。新しい形式は 2022 年 7 月から割り当て可能になり、33,177,600 の固有の NHI 番号が追加で提供されます。2 つの形式は無期限に共存し、すべての管理および臨床システムは両方をサポートする必要があります。
Zで始まるすべてのNHI番号はテスト目的で予約されています。[3]
重複
個人に複数の NHI 番号が割り当てられていることが判明した場合、そのうちの 1 つが主要な識別子とみなされます。これは通常、割り当てられたすべての番号を英数字順にランク付けし、最初の番号を主要な番号として選択することによって行われます。
NHI 内の個人の他のすべての NHI 番号は、プライマリ番号にリンクされます。
チェックデジット
チェックデジットアルゴリズムには2つのバリエーションがあり、古いNHI番号形式には数字のチェックデジットがあり、新しい形式にはアルファベットのチェック文字があります。アルファベットのチェックデジットを使用するように変更したのは、単純な1文字の転記エラーが古いチェックデジット方式で必ずしも検出されないという、以前に特定された弱点を解決するためでした。[4]しかし、新しいアルゴリズムの実装では、単純な1文字の転記エラーでチェックデジットの衝突が発生する可能性がはるかに高くなります。[5]
新しい形式では、各アルファベット文字に、文字 I と O を省略したアルファベットのバージョン内での序数に等しい数値が割り当てられます。序数の範囲は 1 ~ 24 です。たとえば、A=1、Z=24 となります。計算では、各数字文字の額面値 0 ~ 9 が使用されます。
次に、各文字の同等の数値に、NHI 番号内の逆の順序位置を掛けます。最初の値には 7、2 番目の値には 6、3 番目の値には 5、4 番目の値には 4、5 番目の値には 3、6 番目の値には 2 を掛けます。6 つの積の合計が計算されます。計算された合計のモジュロ 23 を 23 から引いてインデックス番号を算出します。インデックス番号が 0 の場合、NHI 番号は無効であり、使用できません。
旧形式では、NHI 番号にチェック ディジットが含まれます。チェック ディジットを生成するアルゴリズムは次のとおりです。
各アルファベット文字には、A から Z までのアルファベット内の序数に相当する数値表現が与えられます。文字 I と O は省略され、序数の範囲は 1 から 24 になります。
各英字の数値表現には、NHI 番号内のその順序位置の逆数が掛けられます。最初の値は 7 倍、2 番目の値は 6 倍、というように掛けられます。
最初の 3 つの数字文字にも、その序数位置の逆数が掛けられます。
これらの乗算の合計から 11 を引いた値がチェック ディジットとして使用されます (結果が 10 の場合は 0 に変換されます)。
この方式は、ISBN チェック ディジット方式に似ています。
古い形式、新しい形式、および両方の形式で NHI 番号を検証する Excel 数式
これらの数式には、Excel バージョン 2010 以降 (または同等のバージョン) が必要です。数式では、入力は英数字と大文字であると想定しています。文字列が 7 文字であること、文字「I」と「O」が存在しない、英数字が正しい位置にあることが確認されます。数式は、有効な NHI の場合は TRUE を返し、そうでない場合は FALSE を返します。
古い形式
= AND ( IF ( LEN ( A2 ) = 7 , TRUE , FALSE )、NOT ( ISNUMBER ( FIND ( "I" , A2 )))、NOT ( ISNUMBER ( FIND ( "O" , A2 )))、ISTEXT ( LEFT ( A2 , 3 ))、IF ( ISNUMBER ( VALUE ( RIGHT ( A2 , 4 )))、11 - MOD (
7 * IF ( ISERR ( MID ( A2 , 1 , 1 ) * 1 )、IF ( CODE ( MID ( A2 , 1 , 1 )) > 79 、CODE ( MID ( A2 , 1 , 1 )) -66 、IF ( CODE ( MID ( A2 , 1 , 1 )) > 72 、CODE ( MID ( A2 , 1 , 1 ) ) 1 )) -65 、CODE ( MID ( A2 、1 、1 )) -64 )), MID ( A2 、1 、1 )) +
6 * IF ( ISERR ( MID ( A2 、2 、1 ) * 1 )), IF ( CODE ( MID ( A2 、2 、1 )) > 79 、CODE ( MID ( A2 、2 、1 )) -66 、IF ( CODE ( MID( A2 、2 、1 )) > 72 、CODE ( MID ( A2 、2 、1 )) -65 、CODE ( MID ( A2 、2 、1 )) -64 )), MID ( A2 、2 、1 )) +
5 * IF ( ISERR ( MID ( A2 、3 、1 ) * 1 ), IF ( CODE ( MID ( A2 、3 、1 )) > 79 、CODE ( MID ( A2 、3 、1 )) -66 、IF ( CODE ( MID ( A2 、3 、1 )) > 72 、CODE ( MID ( A2 、3 、1 )) -65 、CODE ( MID ( A2 、3 、1 )) -64 )), MID ( A2 , 3 , 1 )) +
4 * IF ( NOT ( ISERR ( MID ( A2 , 4 , 1 ) * 1 )), MID ( A2 , 4 , 1 )) + 3 * IF ( NOT ( ISERR ( MID ( A2 , 5 , 1 ) * 1 )), MID ( A2 , 5 , 1 )) + 2 * IF ( NOT ( ISERR ( MID ( A2 , 6 ,1 ) * 1 )), MID ( A2 , 6 , 1 )), 11 )
= IF ( NOT ( ISERR ( MID ( A2 , 7 , 1 ) * 1 )), MID ( A2 , 7 , 1 ) * 1 )))
新しいフォーマット
= AND ( LEN ( A2 ) = 7 、NOT ( ISNUMBER ( FIND ( "I" 、A2 )) )、NOT ( ISNUMBER ( FIND ( "O" 、A2 )) )、NOT ( ISERR ( MID ( A2 、4 、2 ) * 1 ) )、
23 - MOD ( 7 * IF ( ISERR ( MID ( A2 、1 、1 ) * 1 ) )、IF ( CODE ( MID ( A2 、1 、1 )) > 79 、CODE ( MID ( A2 、1 、1 )) -66 、IF ( CODE ( MID ( A2 、1 、1 )) > 72 、CODE ( MID ( A2 、1 、1 )) -65 、CODE ( MID ( A2 、1 、1 ) )) -64 )), MID ( A2 , 1 , 1 )) + 6 * IF ( ISERR ( MID ( A2 , 2 , 1 ) * 1 ), IF ( CODE ( MID ( A2 , 2 , 1 )) > 79 , CODE ( MID ( A2 , 2 , 1 )) -66 , IF ( CODE ( MID ( A2 , 2 , 1 )) > 72 , CODE ( MID
( A2 、2 、1 )) -65 、CODE ( MID ( A2 、2 、1 )) -64 )), MID ( A2 、2 、1 )) + 5 * IF ( ISERR ( MID ( A2 、3 、1 ) * 1 )), IF ( CODE ( MID ( A2 、3 、1 )) > 79 、CODE ( MID ( A2 、3 、1 )) -66 、IF ( CODE ( MID ( A2 、3 、1 )) > 72 、CODE ( MID ( A2 、3 、1 )) -65 、CODE ( MID ( A2 、3 、1 )) -64 )), MID ( A2 、3 、1 )) + 4 * IF ( NOT ( ISERR ( MID ( A2 , 4 , 1 ) * 1 )), MID ( A2 , 4 , 1 )) + 3 * IF ( NOT ( ISERR ( MID ( A2 , 5 , 1 ) * 1 )), MID ( A2 , 5 , 1 )) + 2 * IF ( ISERR ( MID ( A2 , 6 , 1 ) * 1 ), IF ( CODE ( MID ( A2 , 6 ,
1 ) ) > 79 、CODE ( MID ( A2、6、1 ) ) -66 、IF ( CODE ( MID ( A2、6、1 ) ) > 72 、CODE ( MID ( A2、6、1 ) ) -65 、CODE ( MID ( A2、6、1 ) ) -64 ) ) ,、MID ( A2、6、1 ) ) , 23 ) = IF ( ISERR ( MID ( A2、7、1 ) * 1 ) , IF ( CODE ( MID ( A2、7、1 ) ) > 79 、CODE ( MID ( A2、7、1 ) ) -66 、IF ( CODE ( MID ( A2、7、1 ) ) > 72 、CODE( MID ( A2 , 7 , 1 )) -65 、CODE ( MID ( A2 , 7 , 1 )) -64 ))、MID ( A2 , 7 , 1 )))
両方の形式
= AND (
LEN ( A2 ) = 7 、NOT ( ISNUMBER ( FIND ( "I" 、A2 )) )、NOT ( ISNUMBER ( FIND ( "O" 、A2 )) )、NOT ( ISERR ( MID ( A2 、4 、2 ) * 1 ) )、
IF ( ISERR ( MID ( A2 、6 、1 ) * 1 ) )、23 - MOD ( 7 * IF ( ISERR ( MID ( A2 、1 、1 ) * 1 ) )、IF ( CODE ( MID ( A2 、1 、1 )) > 79 、CODE ( MID ( A2 、1 、1 )) -66 、IF ( CODE ( MID ( A2 、1 、1 )) > 72 、CODE ( MID ( A2 、1 、1 )) -65 、CODE ( MID ( A2 、1 、1 )) -64 )), MID ( A2 、1 、1 )) + 6 * IF ( ISERR ( MID ( A2 、2 、1 ) * 1 )), IF ( CODE ( MID ( A2 、2 、1 )) > 79 、CODE ( MID ( A2 、2 、1 )) -66 、IF ( CODE
( MID ( A2 、2 、1 )) > 72 、CODE ( MID ( A2 、2 、1 )) -65 、CODE ( MID ( A2 、2 、1 )) -64 )), MID ( A2 、2 、1 )) + 5 * IF ( ISERR ( MID ( A2 、3 、1 ) * 1 )), IF ( CODE ( MID ( A2 、3 、1 )) > 79 、CODE ( MID ( A2 、3 、1 )) -66 、IF ( CODE ( MID ( A2 、3 、1 )) > 72 、CODE ( MID ( A2 、3 、1 )) -65 、CODE ( MID ( A2 、3 、1 )) -64 )), MID ( A2 , 3 , 1 )) + 4 * IF ( NOT ( ISERR ( MID ( A2 , 4 , 1 ) * 1 )), MID ( A2 , 4 , 1 )) + 3 * IF ( NOT ( ISERR ( MID ( A2 , 5 , 1 ) * 1 )), MID ( A2 , 5 , 1 )) + 2 * IF ( ISERR ( MID ( A2 , 6 ,
1 ) * 1 )、IF ( CODE ( MID ( A2 、6 、1 )) > 79 、CODE ( MID ( A2 、6 、1 )) -66 、IF ( CODE ( MID ( A2 、6 、1 )) > 72 、CODE ( MID ( A2 、6 、1 )) -65 、CODE ( MID ( A2 、6 、1 )) -64 ))、MID ( A2 、6 、1 ))、23 ) = IF ( ISERR ( MID ( A2 、7 、1 ) * 1 )、IF ( CODE ( MID ( A2 、7 、1 )) > 79 、CODE ( MID ( A2 、7 、1 )) -66 、IF ( CODE ( MID ( A2 , 7 , 1 )) > 72 、CODE ( MID ( A2 , 7 , 1 )) -65 、CODE ( MID ( A2 , 7 , 1 )) -64 ))、MID ( A2 , 7 , 1 ))、11 - MOD ( 7 * IF ( ISERR ( MID ( A2 , 1 , 1 ) * 1 )、IF ( CODE ( MID ( A2 , 1 , 1 ))
> 79 、CODE ( MID ( A2、1、1 ) ) -66 、IF ( CODE ( MID ( A2、1、1 ) ) > 72 、CODE ( MID ( A2、1、1 ) ) -65 、CODE ( MID ( A2、1、1 ) ) -64 ) ) 、MID ( A2、1、1 ) ) + 6 * IF ( ISERR ( MID ( A2、2、1 ) * 1 ) 、IF ( CODE ( MID ( A2、2、1 ) ) > 79 、CODE ( MID ( A2、2、1 ) ) -66 、IF ( CODE ( MID ( A2、2、1 ) ) > 72 、CODE ( MID ( A2, 2 , 1 )) -65 , CODE ( MID ( A2 , 2 , 1 )) -64 )), MID ( A2 , 2 , 1 )) + 5 * IF ( ISERR ( MID ( A2 , 3 , 1 ) * 1 ), IF ( CODE ( MID ( A2 , 3 , 1 )) > 79 , CODE ( MID ( A2 , 3 , 1 )) -66 , IF ( CODE ( MID
( A2 、3 、1 )) > 72 、CODE ( MID ( A2 、3 、1 )) -65 、CODE ( MID ( A2 、3 、1 )) -64 ))、MID ( A2 、3 、1 )) + 4 * IF ( NOT ( ISERR ( MID ( A2 、4 、1 ) * 1 ))、MID ( A2 、4 、1 )) + 3 * IF ( NOT ( ISERR ( MID ( A2 、5 、1 ) * 1 ))、MID ( A2 、5 、1 )) + 2 * IF ( NOT ( ISERR ( MID ( A2 、6 、1 ) * 1 ))、MID ( A2 、6 、1 ))、11 ) = IF ( NOT ( ISERR ( MID ( A2 , 7 , 1 ) * 1 ) ), MID ( A2 , 7 , 1 ) * 1 ) ))
参考文献
- ^ ab ニュージーランド健康情報サービス。国民健康指数 (NHI)。2007年6月13日閲覧。
- ^ ニュージーランド健康情報サービスNHI番号。2007年6月13日閲覧。
- ^ 保健省。「HISO 10046:2019 消費者健康アイデンティティ標準」保健省。 2020年8月15日閲覧。
- ^ MacRae, Jayden (2015年11月)。「データ入力時の転写エラーに対する国民健康指標識別子チェックディジットの弱点の評価」(PDF)。Health Informatics New Zealand Conference 2015。2021年5月13日閲覧。
- ^ MacRae, Jayden. 「新しいNHI実装におけるチェックディジットの衝突」。DataCraft Analytics 。 2023年3月5日閲覧。
外部リンク
- 14 歳の若さ: ニュージーランドの国民健康指標のレビューは https://web.archive.org/web/20120326144237/http://www.hinz.org.nz:80/journal/936 にアーカイブされています。
- NHI 暗号化方式
