パスワードを忘れた? アカウント作成
21445416 story
医療

インスリン自動注入システム用アプリのバグ、意図せず10倍のインスリンを注入してしまう可能性 27

ストーリー by nagazou
バグ 部門より
headless 曰く、

国内では製品が提供されていないようだが、Insulet のインスリン自動注入システム「Omnipod Insulin Delivery System」用の Android アプリにバグがあり、意図しない大量のインスリンが注入される可能性があるそうだ (The Register の記事Insulet の米国向け安全情報英国向け安全情報)。

このバグはアプリのボーラス計算機で注入量として 1 未満の数値を入力する場合、小数点を最初に入力すると小数点が認識されないというもの。たとえば、「0.3」ユニットを指定しようとして「.3」のように入力すると、実際には「3」となり、意図した量の 10 倍が注入されることになる。そのため Insulet では、1 未満の数値を入力する場合に先頭の「0」を必ず入力することや、確認画面で最終的な数字をよく確認することを推奨している。ただし、このアプリ「Omnipod 5 App」は最新のバージョン 1.2.4 で問題が修正されており、米国向け安全情報にはアプリの更新情報も記載されている。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • バージョン (スコア:4, おもしろおかしい)

    by Anonymous Coward on 2023年12月12日 7時31分 (#4577698)

    > 最新のバージョン 1.2.4 で問題が修正されており

    実は0.1.2.4なのではないか

  • Therac-25 放射線事故1983年(PDF) [meiji.ac.jp]

    オペレータが誤って「x」キー(X線照射モードの設定)を押し,「8 秒以内」に「↑」キーを押すことで電子線照射モードに変更した場合にしばしば生じる。
    完全ソフトウェア制御の Therac-25 においては,人命を失う事故となって現れたのであった

    Therac-25 の事例において明白になったように,事故原因の究明が疎かであると,事故にかかわった当事者のみならず,医療機器のユーザや監督官庁の人間を不安にさせ混乱させる.悲惨な事故が出来るだけ発生しないように医療機器を設計・製造することが大事であると同時に,事故が起きた際に迅速に対応できるように組織の体制を整えておくことが医療機器製造のマネジメントに求められる

    通常1回200radまでで600~700radが致死量といわれている。この事故では15000~20000rad照射で死亡したり高度障害が発生がのべ6件発生。
    それでFDAソフトウェアガイダンスやら、医療機器用ソフトウェアの開発と保守に関する安全規格「IEC 62304」の認証などでがんじがらめになっていく。

  • by Anonymous Coward on 2023年12月12日 8時58分 (#4577749)

    開発している知り合いから開発段階のバグで照射時間が設定より長くなるのがあってなーという話を聞いて、人命やお金にからむプログラムには手を出したくないと思った。

  • by Anonymous Coward on 2023年12月12日 10時54分 (#4577815)

    > 確認画面で最終的な数字をよく確認することを推奨している

    これはあまり意味がない対策。
    人は自分の入力は正しいと思っているから確認しても気づかない。
    もっとグラフィックやサウンド等を利用して
    間違いを検知しやすい表示にしないと効果がでない。

    • by miyuri (33181) on 2023年12月12日 12時36分 (#4577885) 日記

      例えば0.1ずつ増減するボタンなら、十進の数値入力よりもボタンを減らせるし誤動作もしづらいのに。

      親コメント
      • by Anonymous Coward

        チャッタリングってのがあってだな...
        で、+5とかしたい場合に連打する訳でだな...

    • by Anonymous Coward

      最大値ってのは人によって違うと思うからさ、それをやるには、
      多分、通常設定と詳細設定に分けて、
      ・詳細設定では出力可能最大値を設定する
      ・通常設定では実際に出力する量を設定する
      ・通常設定で、出力可能最大値を超えてたら何らかのメッセージを出力する
      ってな感じにしないといけない気がする。

  • by Anonymous Coward on 2023年12月12日 11時27分 (#4577832)

    インスリンの過剰投与後の症状と対処方法
    https://www.jstage.jst.go.jp/article/tonyobyo/58/9/58_675/_pdf/-char/ja [jst.go.jp]

    ― 675 ―
    症例報告 Case Report
    自殺企図でインスリンの大量注射後に持続血糖モニタリングにより血糖値の変動を観察しえた2 型糖尿病の 1 例

    要約:症例は 46 歳,女性.32 歳よりうつ病で近医に通院中であった.35 歳より 2 型糖尿病で治療を開始された.
    メトホルミン 500 mg!日およびインスリン(1 日 70 単位)による治療で HbA1c5.4 %であった.
    来院当日,自殺目的でリスプロ 2100 単位,グラルギン 900 単位を注射し,1時間後に救急搬送となった.
    遷延性低血糖に対応するため入院とし,食事および経口と経静脈でブドウ糖の投与を行った.
    来院時の血清インスリン濃度(IRI)が 31975μU/ml ,6 時間で 20903μU/ml ,9 時間で 9370μU/ml と低下,
    注射後 141 時間でブドウ糖投与を要しなくなった.
    持続血糖モニタリングでは血糖値の変化はブドウ糖投与による上昇と低下を繰り返し,急峻な鋸歯状波形を呈していた.
    IRI の経過は低血糖からの回復時期を予測する目安となり,血糖降下作用が続く期間では頻回の血糖測定が必要であると考えられた.

    Key words:インスリン過剰投与,持続血糖モニタリング,うつ病,自殺企図(糖尿病学用語集に掲載なし),
    鋸歯状波形(糖尿病学用語集に掲載なし)

    • by Anonymous Coward

      死にたかっただろうにおそらく勝手に治療されモニタリングされ公開されるのは辛いだろうな。

  • by Anonymous Coward on 2023年12月12日 8時08分 (#4577712)

    リミッタも設定させればいいかもな。
    そうすれば通常の三倍みたいな、あり得ない数字が独り歩きしないだろう

    • by Anonymous Coward

      いやホントに。誤入力のケースは考慮するべきだから、小数点が認識されないとかいう問題ではない。

      • by Anonymous Coward

        さすがにリミッターはあるのではないか。
        定期的に決まった量を投与する他に、血糖値や摂取した炭水化物の量で計算するボーラス投与があるので、10倍程度ならあり得る入力値なのかもしれない。

        例えばこの機器では最大が25ユニットになっているし、入力例でも10倍と間違って認識された3ユニットより遥かにデカイ値が入力されている。
        https://mds.terumo.co.jp/common/img/user/pdf/guidebook_smart.pdf#page=26 [terumo.co.jp]

    • by Anonymous Coward

      リミットを .5 と設定するわけですね

  • by Anonymous Coward on 2023年12月12日 9時19分 (#4577759)

    一人の看護師さんがミスを犯しても、せいぜい二桁程度の被害者に留まるだろうが、
    この手の医療機器に瑕疵があると、数千数万の被害者が生じうるな。

  • by Anonymous Coward on 2023年12月12日 9時27分 (#4577767)

    通常の10倍だと?これだけで、意識がトブぞ...!

  • by Anonymous Coward on 2023年12月12日 10時08分 (#4577788)

    確認画面で最終的な数字をよく確認することを推奨している

    体内に注入する薬品の量を省略入力したり確認をしないユーザーもそれはそれでアレだな。

    文字列の入力値を数値にするのなんて普通は組み込みの数値化関数を通すだけだけど、どうしたんだろうね。

    • by Anonymous Coward

      >体内に注入する薬品の量を省略入力したり確認をしないユーザーもそれはそれでアレだな。
      ユーザー側とすれば、最近のプロポーショナルフォントだと、".3"とか書いてる場合は"."を見逃すんじゃないかなと思うよ。
      実際に、ここの"コメントタイトル"の先頭に".3"って入れれば分かるけど、"."は殆ど見えないんだよね。
      結果として、"見逃す=あると思い込む"から、ユーザは自分が入れた通りの入力になってると思い込んだんだと思うよ。

      >文字列の入力値を数値にするのなんて普通は組み込みの数値化関数を通すだけだけど、どうしたんだろうね。
      Windowsの場合で何だが、EditBoxを"数値のみ入力を受け付ける"設定にすると、
      +/-とか小数点も入力できないから、"全ての文字を受け付ける"設定にして、1文字入力する毎
      にどんな文字を入力したかを確認する...なんてことをしたことがある。

      これの作り方で"数値が手前にないのに小数点を入力したら、小数点を無視する"
      なんて作り方をしたら今回みたいなことになるんじゃないかなと思うよ。

      • by Anonymous Coward

        よくわかんないけど、確認画面に「.3」って出すの?それは流石にどうかと思うよ。

        +/-とか小数点も入力できないから、"全ての文字を受け付ける"設定にして、1文字入力する毎
        にどんな文字を入力したかを確認する...なんてことをしたことがある。

        これの作り方で"数値が手前にないのに小数点を入力したら、小数点を無視する"
        なんて作り方をしたら今回みたいなことになるんじゃないかなと思うよ。

        やっぱりよくわかんないけど、それなら先に小数点が入力できなくてよかったねなんじゃないの?

    • by Anonymous Coward

      入力ミスで16進数として解釈可能な文字列やeやカンマが混入した場合に、組み込み関数が何食わぬ顔でとんでもない数値に変換したりしないといいですね

      • by Anonymous Coward

        (Excel: 呼ばれているかな?)

      • by Anonymous Coward

        開発としてはその方がまだマシだと思う。今回のように(?)変な自作をしてとんでもない数値に変換してしまうより。

        # 仕様を把握して、普通のプログラムを書きましょう

typodupeerror

未知のハックに一心不乱に取り組んだ結果、私は自然の法則を変えてしまった -- あるハッカー

読み込み中...