歴史的評価の段階に入ってきたせいか、「開いたいるか」ことオープンドルフィンに関して力の入った記事が散見されるようになった。
2.7m 系や HTML/PDF Viewer のメイン開発者の猪股先生なぞこれまでにも言いたいことは山ほどあったんじゃないかという気するが、実はリアルタイムではそれほど多くは語ってはいない。
私もこの記事 を書いている最中にそういう気分になったのだが、「彼ら」と対話する気が起きなかったのではないかと推測する。
明らかな事実誤認は指摘しておく必要あるが、変なリアクションされても困るし・・・といった風に。
彼らの語る技術的な内容もそうなのだが、強調するポイントが予想の斜め上をいくことが多々あり、さらにそれが攻撃的な口調で語られるものだから、リアルタイムであったら、とてもまともに返せそうな気がしない。
キュイキュイと鳴く
技術的なことで目についたのは、例えばこれ(↓)。
「ある種の dolphin では、カルテ記載内容の保存に(オリジナル系列の blob ではなくキャラクタベースの) clob を使っていた。 varchar (可変長文字列)で定義されている場合には、カルテ記載内容原文が簡単なクエリで取得できでしまうので、それは欠点である」ということが言いたいのだろうが、私はこの内容には違和感を感じる。
dolphin に関していえば、ある程度技術のある人ならば「永続化にあたっては特別な暗号化はされていない」という認識だと思う。
確かにドルフィンは、Java beans が保持している情報を
xml →バイナリ→ base64 文字列
という風に変換はするのだが、バイナリ変換は文字通り「変換」だし、base64 による変換も
「 暗号 ⇄復号(encrypt ⇄decrypt)」
と捉えるより
「 符号 ⇄復号(encode ⇄decode)」
と捉えるのが一般的だと思う。
暗号化(encrypt )と符号化(encode )は概念からして違う。
暗号を復号するには未知の手がかりを解く必要があるが、符号化された情報を復号するには、決まって手順に従えばいいだけ だからだ。
だから、カルテ記載内容を varchar カラムに直で書こうが、変換して格納しようが、本質的にはそう大きな差はない。
ーーどちらにせよ本格的な暗号化はされていないのだから。
少なくとも私はそう考えているが、増田氏はその差を「欠点」と大袈裟に捉えているようだ。これでは、話は噛み合わないだろう。
後述するが、逆に「ドルフィンは真正性を満たしているか」といったより大きな問題には、これとは対照的に彼は全くと言っていいほど何も語らない。
イルカたちの沈黙
そう、彼らは、予想外のことに実に多弁に語る一方で、重要なポイントになりそうなことは語らない。
よく「ドルフィンはリリース直後から真正性が満たせているか疑問の声が上がっていた」と評されているが、もちろん、リリース直後などは私のアンテナには引っかかっておらず、あくまで人聞きの伝聞情報だ。
この点に関しては、もやもやしていたのだが、周囲から、「例えばこれ」と見せられた資料が以下のもの。
なるほど。
日付は2014。この頃でもこういった疑問(「真正性で突っ込まれそう」と @ktomii99 氏は書いている)は既に上がっていたのですね。
しかし、なぜ、@masudanaika は、この手の疑問に明快に答えてこなかったのだろうか?
(追記)上図の @kat_bun_tokushi は、徳島橋本医院で opendolphin-m を導入した人らしい。
まったくの偶然なのだが、先日(2024/06/23)、その橋本医院の橋本公昭先生とネット上でお会いして同様の疑問をしたのだが(↓)
やはり、明快な反応は得られなかった。
@ktomii99 氏の提案
ところで、@ktomii99 さんの言っている内容は興味深いので若干コメントする。
医療現場に出てみればわかるが、各種医療機器からの出力がすべて dicom 規格に準拠しているわけではないし、電子化されているわけでもない。中には出力方式がいまだに感熱紙印字というものもある。
この場合、文字が読み取れるうちにスキャナで読み取り、システムに取り込む必要がある。
取り込みの際の条件は現在ではガイドラインで既に示されていて、タイムスタンプと電子署名が必須だとされている。(なお、私はこの条件には疑問を持っていたりするのだが、本稿の主旨とは関係ないのでここでは触れない)
だから、この時代にタイムスタンプと電子署名に言及した @tomii99 氏の指摘はかなりもっともなのだが、あくまでこの二つは外部データを電子カルテに取り込む際の条件であって、電子カルテから出力された情報の真正性を担保する条件ではない。
まず、1日分のカルテ記載内容をまとめてPDF一枚にして・・・というやり方は論外。医師が複数人いた場合、担当していない患者のカルテに別の人が署名することになってしまう。これでは何のために署名をしているかわからない。
だから、このやり方を若干修正して「カルテ記載毎にその記載をした医師が電子署名する」というのが最低条件になるのだが、実はこれでも不十分だ。
記載したカルテをどういう形式で出力してもいいが、例えば、ある人のカルテを 1/1(1月1日) に記載、さらに 1/3 に修正した場合、署名した出力文書は 2 つあり、確かにこの 2 ファイルの間では修正履歴は追跡できる。
ところが、同じ出力形式で 1/2 の文書ファイルを偽造、同様に署名した場合、このファイル群のみからでは、このカルテが本物か偽物かまでは判定できない。
惜しい線まではいっているのだが、出力産物がファイル単位となってしまうため、でっち上げたファイルを作成・追加することでこのシナリオも破綻する。
この問題に対して 2.7m 開発陣が示した解決策は、実に鮮やかなものだった。
あるカルテは、データベース上では古いバージョンも含めて全て保管されているのだから、これらを別のアプリを使って抽出・表示させればいいというものだ。
上図の例では、ある患者のカルテはクライアントからは3件しか見えないが、編集歴があるため、データベース上では11件記録されている。その全てを可視化している。
詳しくは『Save the DolphinS 』を参照。
このアプリ単独でも、真正性は担保されていると考えるが、@tomiii99 氏が提案したシナリオもこれで救われる。
データベースと照合し、そこに登録されていないカルテは、後から追加したもの、つまり偽物だと判定できるようになるからだ。
イルカも鳴かずば・・・
冒頭で「彼ら」の言動に違和感を覚えると書いた。
今では、この原因についてある程度推測はされている。
スキルのばらばらの「中の人」が複数人いて、誰からのチェックも受けずにてんでばらばらに好き勝手なことを喋っていただけだったからと。
しかし、それは今だから推測できたことであって、リアルタイムであったら、そこまで見切るのはなかなか難しいだろう。
それは異世界の生物が突如として覚えたての人語を話すような状況に似ている。
言っていること自体は理解できるのだが、内容が奇異でコミュニケーションをとるところまでは至らないといったような。
そしてその中の人の一人が今どのような取り扱いになっているかは周知のことだろう。
「イルカも鳴かずば、撃たれまい」なのだ。