1

既存の患者登録フォームをオーバーライドし、 [参照]から Xform 患者登録を正常にレンダリングしました。

新しい患者を作成すると、次のエラーが発生します

「Patient#null が理由で検証に失敗しました:識別子の無効なチェック ディジット:10005G」。

私は患者の作成のために次の情報を提供しました

  • 姓: 患者

  • 名:一

  • 生年月日:2000/12/30
  • 識別子:10005C
  • 性別:M
  • 場所:不明な場所
  • 識別タイプ:旧識別番号 その他

その他の識別子

  • 識別子 識別子:10005G
  • 識別子の種類:OpenMrs ID 識別子
  • 場所:不明な場所

問題を解決する方法を教えてください。

4

1 に答える 1

1

OpenMRS は、変更された Luhn アルゴリズムを使用してチェック ディジットを計算します。この場合、識別子の最後の文字は先行する文字から計算されます。チェック ディジットは、手動で入力された識別子の自己検証を可能にします (クレジット カード業界でも使用されているアプローチです)。新しい識別子タイプに使用されるデフォルトのアルゴリズムは、Luhn Mod-30 Check Digit Validatorです。この Mod-30 アルゴリズムは、識別子およびチェック ディジット内の文字に文字セット「0123456789ACDEFGHJKLMNPRTUVWXY」を使用します (数字または他の文字と混同される可能性のある文字 (B、I、O、Q、S、および Z) を避けます)。

おそらく、このアルゴリズムは提供された識別子に適用されています。「10005」の正しい Mod-30 チェック ディジットは「K」です (「C」や「G」ではありません)。これがおそらくエラーが発生する理由です。識別子を検証するために使用されるアルゴリズムは、患者識別子タイプに依存するため、システムで定義されている患者識別子タイプを調べることで、システムで使用されているアルゴリズムを特定できます。

于 2016-07-20T13:58:38.690 に答える