空白

保険証に記載されている情報のひとつに保険証記号と保険証番号がある。
間に空白を入れて記号、番号の順に書かれていて、初診の患者のカルテを作る際、それらをパソコンに入力する。

30年前、レセコンを作ったとき、記号番号というひとつの欄に入れる仕様にしてしまった。人生、悔やまれることが1000近くはあるのだが、その上位に位置する失敗だった。

というのは空白が絡む問題が生じるからだ。見た目は同じでも記号番号の前後、間に全角、半角を問わず空白が誤って入ることがある。その状態で正しい記号番号をそれぞれ取り出す時、少しばかりややこしく事態になるのだ。

扱っているプログラミング言語は前後の空白を取ることができるが、間の空白は取れない。それぞれ別の欄にして入力していれば、それぞれ前後の空白を取ればいいだけのことだが、対象はひとつのの文字列だ。

その解として空白を含めた記号が最後に出てくる箇所を探してそこで分けるというアルゴリズムを使っていた。
空白を@もしくは@とし間違って@@がいくつか入っているとすると、たとえば記号が”あいう”で番号が”123″の場合、@あいう@@123の最後の@を突き止めればそこで文字列を二つに分けられ、それぞれの@@を取れば目的は達せられる。

ということで何年も順調にことは運んでいたのだが、あるとき不思議なことが起こった。

“A123”などのような記号が入った番号の保険証があるのだ。この場合、Aの箇所で切れてしまう。

そもそも番号に記号が入っていること自体、不思議なことだが、とにかくそんな保険証が存在する以上、対処しなければならない。

ということで新たなアルゴリズムを考えたのだが、長くなるので日を変えてメモする。

衆院選挙が始まった。”空白の30年を取り戻す”とのフレーズを耳にしたので、ふとメモした次第。