OpenOcean(仮)→DolphORCA→標準型電子カルテ

次世代 OpenOcean

OpenOcean の方は、「全面的に作り直してほしい」という要望が多くて、検討してました。
「自分で使う電子カルテは自分でつくりたい」、「OpenDolphin 使っていたが、大幅にカスタマイズしたい」という医師の方が意外に多い。
作り直すなら参戦したい、協力したいという企業もちらほら。
今のところ

・データ構造は変えないでほしい
(ただし、画像の JPEG 保存は、医療記録としての性質上、変えた方がいい -というかこれに関する後付けの機能や素人が思いつきで手を加えたような設計はやめろ- という声が多いので、変更予定)

・UIは変えてほしい(これは dolphin の頃から言われてましたね)

・win でも Mac でも動くようにしてほしい

というような希望があるようです。

意思表示示してくれたところとは、コンタクトとってますし、少しだけですが、上記の要望に沿った形で手はつけてます。
まだまだ、アウトライン決めてるところですので、似たような希望を持たれている方がいたら、ご連絡のほどを。手は多い方がいいので。

最近だと BOOSTER TECHNOLOGY さんが、会社ブログ(https://www.booster-technology.com/blog/opendolphin)で「サーバーサイドはJavaである必要はなさそうなので、保守やカスタマイズを考えると、PHP等のスクリプト言語で作り直してもいいと思う」、「クライアントアプリケーションもJavaのデスクトップアプリである必要はなさそうなので、ブラウザで使える普通のWebシステムにし、iPadでも使えるようにすればよいと思う」という観点から、似たような考えを述べられてます。Web アプリ案件を数多く取り扱っているような会社だと割合自然な発想で「ブラウザ型に作り直し」は有力な選択肢になるかなあと思います。PHPということは Laravel あたりを考えているんでしょうか。十分ありだと思います。

あとは、これまで ORCA 連動型電子カルテの前提条件である ORCA の運営そのものにもある種の疑問が呈されるようになってきた、という事態があります。

そのような状況なので、とりあえず、公開は中止してます。

 

(追記)その後、dolphin のデータベースからデータ抜いてきて、ブラウザに表示させる簡単なコードを書いてみました。
こんな感じになります。

こっから、ブラウザタイプに改変して・・・といきたいところですが(OpenOcean はこんな感じで作ろうと思っていた)、それはそれで手間かかりますので、まあ試験的な試みです。

(追記2)さらに手入れ。

結局、WYSWYG エディタも独自実装。

DolphORCA へ

結局、dolphin のコードは全て捨て去り、上記の要望などを勘案し DolphORCA というプロジェクトが始まりました。

標準型電子カルテ

たまたまなんですが、標準型電子カルテの厚労班会議に出席する機会があったため、DolphORCA を念頭においたシステムを軽めに提案させていただきました。

 

Mac で OpenSSL

Mac 上で openssl を使う時は、ソースからビルドしたコマンドを使っていて気が付かなかったのだが、Mac デフォルトの openssl は OpenSSL のそれではないらしい。

細かな機能が違う。

hpkisignj の Ver1.0 を作成するとき、諸々の検証用にデフォの openssl コマンドを使っていたのだが、どうも思ったように動かない。

調べたら、そういうことだった。

というわけで Mac で openssl を使う時は、OpenSSL の openssl を入れましょう。

簡単には homebrew を使って

brew install openssl

でいいでしょう。

現在(2024/5)だと Ver3.3.0 が入るようです。

こちらだと従来の openssl genrsa のほかに openssl genpkey あたりも使える。

生成アルゴリズムを明示したいときは

openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-256 > private_key.pem

といった感じで。
ただし、アルゴリズムが最新すぎるせいか、このように作成した証明書を各種言語のライブラリが正しく読めないことがままあるようです。
そういう場合は genrsa の方でいいと思います。

 

著作権法違反が疑われるコメントの掲載はできかねます

当サイトに限らず、いくつかのHPを管理している身としては、記事へのコメントなどの投稿は歓迎していますが、内容に関わらず社会常識的に不適切なものは公開できません。

一般に twitter など SNS でアニメや漫画のキャラをアイコン・アバターにしているケースは散見されますが、著作権者からの許可を得ていない場合の使用は厳密には著作権侵害にあたります。
(一般向けのわかりやすい解説がこちらにあります)

HPを管理している側からすると、投稿者が著作物の使用許可を管理団体などから受けているかどうかのチェックをすべて行うのは現実的には不可能です。
このような投稿は内容に関わらず公開はしません。

また、公的機関に所属している方の場合、その機関が保有するインフラを介しての投稿も避けてください。

所属組織の公的な見解なのか個人的な意見なのか、コメントだけからでは判断してみようがないからです。

例えば、以前に以下のようなコメントが京都大所属(当時。現在は保健医療科学院)の小林慎治という人からありました。
「公共に益する」といった表現などからさも所属組織の公式見解のような印象を受けます。

ですから、このような場合には、
・京都大の IP アドレスから送信されているため、これが京都大の公的見解なのか
・その上で京都大がこのアイコンの使用許可を得ているのか
調べる必要があります。
この作業には、それなりの労力がかかりました。
内容的に吟味する前に、形式的に違法性がないか確認するだけでこれだけの手間がかかるわけです。

内容に関してはここでは細かい話はしませんが、一般に知的財産権(著作権も含まれます)と言われる事柄に関することです。コメントの「公開」を要望されても、そのコメント関連情報が著作権法的に違法が疑われる場合は、当然ですが掲載・公開はできません。

以上、よろしくお願いします。

 

air-h-128k-il

GitHub から GitLab へ

git のホスティングサービスは GitHub だけではない。
GitLab というサイトもそれなりの趣きがあるという話だったので、試しに OpenDolphin-2.7m を
GitHub: https://github.com/Hiroaki-Inomata/OpenDolphin-2.7m
から
GitLab: https://gitlab.com/Hiroaki-Inomata/OpenDolphin-2-7m
に移動させた。
GitHub のアカウントを持っていれば比較的簡単にできるので、ちょっと触ってみたいという方は試してみてはいかがだろう。

なお、DolphORCA は、一時期、github でソースを公開していたのだが、現在はバイナリのみ公開している。
https://github.com/Hiroaki-Inomata/DolphORCA-back-binary

 

猪股弘明 医師

ORCA Plus から OpenOcean へ

ORCA Plus というレセコン ORCA のユーティリティソフトをつくっているついでに、電子カルテっぽい画面をつくってみたら、意外に好評だった。
いや、まだ、ビュー(ブラウザ画面)しかつくってないんですが (^^;)

 

ブラウザ上で動く WYSIWYG のエディタを実装するのが若干面倒だが、参考になるコードはネット上ではよく見つかる。それほど難しくはない。これにしてもボタンを押したらパーンとポップアップで出現する、みたいな演出入れないとダメかと思ったが、こんなものでも許されるようだ。

さらに日本だとフロンエンドをやれる人は多いと思うので、私が何も細部まで凝る必要もなかろう。

こういった画面がサーバに繋がり、適宜データベースと連係して一つのまとまったシステムになるように持っていくのが私の次の目標かな。

(追記)結局、WYSWYG のエディタは自前で実装。

OpenOcean は DolphORCA プロジェクトに統合されそうです。

 

 

 

猪股弘明(医師:精神科、精神保健指定医)
HorliX, OpenDolphin-2.7m 開発者

 

Java の現在

Red Hat replaces Oracle as OpenJDK 8, OpenJDK 11 steward

OpenJDK に関する記事。北米の業界の方々のコメントが色々載ってます。

Java ちょっと前は好きだったんだけど、なんか微妙な感じになってるようですね。なお、Java は
初期は SUN が旗振り
→が、オラクルが買収、有償化の方針を打ち出す
→Red Hat がオープンソースとしてサポートを意思表明(←いまここ)
という経緯をたどってます。

悲観的なコメントで〆られているあたりがなんとも。

steward はオタ的には「執事」でしょうが、この場合は「世話人」・「監督係」的な意味合いでしょう。


(追記)元記事が少々おかしいのではないかと何人かの方からご指摘を受けました。(コメント欄を参照してください)確かに replace は言い過ぎなようですね。
現時点(2019/04/23)での、各ベンダーから出ているディストリビューション・有償/無償モデルに関して @u-tanic さんがまとめています(↓)。

JDKの長期商用サポート(LTS)の提供ベンダー比較(無償利用についても言及あり)

参考にしてください。

(追記2)と、正統派の方々は上のように言ってましたが、SE 環境に関しては各ディストリビューションによってけっこうバラつきが出てきました。
EE 環境に関しても実装のクセがあって、例えば、アプリケーションサーバー上での挙動が微妙に異なってたりします。
もちろん、Java の仕様からの大きな逸脱はないんですが、元々の開発元の手を離れれば、こうなること(配布元によって機能の差が出てくること)はある程度は予想できたことで、それを個人の願望で否定するというのは、ちょっとどうしたものなんでしょう?
しかも図々しくは、上に挙げた方は自説を記事トップに配置するように示唆していました。
そんなに自説を強調したいなら、自分のブログなりなんなりでやればいいだけの話です。
単なる個人の願望を他人に強要するのはおかしいですね。

開いたイルカ

いるかの棲む闇』コメント欄で唐突に主要な「イルカ」のステークホルダーが揃って質疑応答が始まった。

増田氏、opendolphin-m は公開されていると主張しているけど、

本人自体が HP 上で非公開にしていることを主張しているんだよね。

え?と思って確認したけど本日(2018/10/23)もしっかりアナウンスしている。

外部サイト保管: archive

公開しているのはあくまでバックポート用のものであり、別の(本来の) OpenDolphin-m があると私は認識していたのだが。

また、LSC の方が言っていたが、「増田ファクトとLSC 商用版 OpenDolphin にはデータベースの互換性はない」そうである(そうである、というのは現時点では、私は両ソフトとも持っておらず確認してみようもないから。あくまで LSC さんから聞いた伝聞です)。

いろいろ矛盾しているように思う。
ここらへん、なんでこんなわかりにくい主張するのか私もよくわからない。

(追記)

やはり、プライベートリポジトリに移行した OpenDolphin-m がある、ということでいいようです。

なお、このツィートに関して私の友人は「増田ファクト版を商品化したベンダーがいたとかで『オープンソースを営利化するのは好まない』とクローズドにした経緯があるとかなんとか。個人の好悪で公開したり引っ込めたりする人は,そもそもオープンソースプロジェクトには向かない人ですね。」と感想を漏らしてました。

私も、ほぼ同意見です。ソースをオープンにした時点で、たとえそれが自分が気に入らない人の手に渡ろうがしょうがないと諦めるしかないと思います。

PHAZOR 関係でいうと responsive-kifu なんてパクられまくってますが(この表現、私は嫌いなんですが)、それはもうしょうがないですよ。
それが嫌だったら、プロジェクトを最初からクローズドで開発すればいいわけだし。

表現が今ひとつどうかなと思うところはありますが、せっかく OpenDolphin の開発中期の貢献者としての評判はお持ちなのですから(ただし、最近の調べでは GitHub のシステムにはほとんどソースコードを提供した記録は残されていないそうですね、これは私も知りませんでした。メドレーに譲渡以降は、メドレーからは「開発者」認定はされていないようです、これはメドレー担当者から直接聞きました)、あまり他者を蔑むような表現1)はしない方がいいのでは思います。

 

(1) 厚生労働省本省判断で医療広告のガイドラインに抵触したようで(おそらく「公序良俗に反する内容」ということで)、削除要請がなされたようですね。和歌山の保健所を通じて私にも確認のための連絡がありました。
同時に患者さんと思われる一般人の個人情報を SNS で流出させた形跡があるということでこれも確認させられました。どちらかといえば、こちらの方がまずいと思います。(→現在は増田内科は閉院しているようです。こういうクチコミもありますが、そんなに評判は悪くなかったようですが)

 

猪股弘明
医師:精神科(精神保健指定医)

参考
OpenDolphin について
OpenDolphin と電子カルテの3要件とメドレー
いるかの都市伝説は本当だったか
ソースコード嫁
@masudanaika による個人情報流出ツィート
標準型電子カルテ・OpenDolphin・増田ファクトなど

 

 

にほんブログ村 病気ブログ 医者・医師へ

 

OpenOcean、海を渡る

なぜか、外国人にも人気の OpenOcean 。
某所で HorliX とも連携できますよ、とかアナウンスしたら、気にいってくれた人が出てきてくれた。

しかし、Ocean は ORCA と連動している。日本医師会が ORCA For US だの ORCA For China だのをつくってくれない限り、保険請求まではできないと思うのだが…。

(追記)保険請求を患者自らが行う国の場合、ORCA なしでもいけそうですね。だから fork したのか。ある程度、改造は必要ですが、可能だと思います。

 

にほんブログ村 病気ブログ 医者・医師へ

大人ベンチャー

幸いなことに DICOMViewer/PACS HorliX が好評なこともあり、それに引きづられるように OpenOcean も再評価されてきている。

まだぱらぱらと、という感じではあるが、医療ソフト関連企業からお誘いがかかるようになってきた。

先日、そのうちの一つの会社 A 社にお邪魔させてもらった。

A 社はこれまでゲーム業界で実績をつみ、その余力で電子カルテを独自開発、最近リリースした。他分野からの新規参入ということになる。

 

都内某所にあるオフィス。

もう、エントランスからしてこれまでの小規模電カルメーカーなんかとは違う。

 

なんでしょう、このお洒落な感じは?

内部には社員用のリラクシングルームなどもあったりして普通の人が想像するような「イマドキの IT 企業」である。

こういうところが電子カルテを作るようになったんだ。

 

私たちも OpenOcean というれっきとした電子カルテを持っているため競合勢力とみなされてもおかしくはないが、新規参入組は必死だ。私たちと組みたいという。

具体的な案件や電子カルテと DICOMViewer/PACS との連携の仕方といった実務的な内容はもちろん、今後の業界の在り方などにも話は及んだ。

小一時間ほど話し込んだが、最終的には和やかな感じで協力の合意にたどり着いたと思う。

 

ところで、昔ながらのユーザー囲い込みではなく、顧客の要望に応じ該当組織が得意な分野を持ち寄ってシステムを組むみたいな在り方が出てきた。誰かが「大人のベンチャーはこうじゃなきゃいけない」というようなことを言った。

つまり、子供っぽく自らの(組織としての)エゴ・都合を一方的に主張するのではなく、あくまで顧客の要望を尊重し、その準備として「大人の余裕」で共有できるもの・協力しあえることはギブ&テイクしておきましょうということだ。

「大人ベンチャー」なかなか良い言葉ではないか。

 

にほんブログ村 病気ブログ 医者・医師へ

 

OpenOcean/OpenDolphin をカスタマイズするために知っておいた方がよいこと 2

1 に引き続いて、軽く解説的な内容を少々。今回は少しばかりプロジェクトに接近していきます。

 

jar と war … 通常のソースコード ***.java を javac コマンドでコンパイルするとできるのは ***.class です。実行するには、「java 環境でクラスを呼び出す」必要があるので、コマンドは

java ***

となります。「コンパイル済みのクラスを呼び出す」これが Java アプリ実行の原則です。

ところが、Ocean/Dolphin プロジェクトでは、クライアントは OpenOcean.jar 、サーバーは OpenOcean.war などという名称です。

これは、ある程度まとまった機能を提供するためには、クラスだけでは足りず、設定ファイルや画像などのリソースファイルが必要なため、それらをまとめたファイル形式が必要とされたからです。jar は、その一つで Java ARchive からきています。読み方は「ジャー」でいいと思います。

Java EE を用いる Web アプリの場合には Web application ARchive 通称 war (ウォー :戦争 war と同発音)となります。

 

 

git と github … github は先日マイクロソフトに買収され、それを日経新聞が「設計図共有サイト、8200 億で買収」と報じたため、そのネーミングセンスが話題になりました。

オープンソースのソースをインターネット上で公開しておくには、何らかの場所(リポジトリ)が必要で、その一つが、GitHub (ギットハブ。ネイティブっぽく発音するならギッ ハブでしょうか)です。他には sourceforge などもありますが、ドルフィン一族は、その多くが GitHub でソースを公開しています。

公開されたソース(リモート)を自分のマシン(ローカル)にクローンすることもできます(というかしないとビルドできない)。

ローカルやリモートのリポジトリの橋渡しをしたり、改変を記録しておくためのシステムが Git (ギット)です。
雰囲気掴みたい人は『お手軽にWin機で Git や GitHub を使う』など参照。

歴史的に見るとまず Linux カーネル構築のためのバージョン管理システムとして Git がリーナス・トーバルズの手によってつくられ、そのホスティングサービスとして GitHub ができたわけですが、実用的には上のような理解でいいと思います。

windows にはデフォルトで git コマンドが入っていないため(ですよね?)、自前で git が使える環境を構築する必要があります。私は随分前に構築したっきりなのですが、それなりに面倒だった記憶があります。たぶん、ここらへんで多くの人が嫌気をさすのではないかと思います。

ただ、ここらへんくらいまでの知識があれば、ビルド・デプロイはなんとかできるでしょうか。

Open Dolphin 2.7.0b を Win10 にインストールしてみた

や、外部サイトですが

OpenDolphin 2.7(m) を Mac OSX にインストールする
OpenDolphin-2.7m を M1 Mac にインストールする

あたりの記事をどうぞ。
ソースコードは

github https://github.com/Hiroaki-Inomata/OpenDolphin-2.7m

に置いてあります。

 

デザインパターン…迂闊なことをいうと本職の方々に怒られそうなので wiki から引用しておくと

 

ソフトウェア開発におけるデザインパターン(型紙(かたがみ)または設計パターン、英: design pattern)とは、過去のソフトウェア設計者が発見し編み出した設計ノウハウを蓄積し、名前をつけ、再利用しやすいように特定の規約に従ってカタログ化したものである。

 

だそうです。ソースと最終産物との間にある中間的な機能を設計する上での定型的なパターン、とでもいったらいいんでしょうか。
apple 系のOS のフレームワーク( cocoa と cocoa touch )で頻出の「xxxxdelegate」も典型的なデザインパターンの一つです。
ですが、プログラミングの初心者コースではまずは教えないと思うので、それなりに経験積んだ人でも知らない人は知らないんではないでしょうか。OpenOcean/OpenDolphin ではシングルトンやメニューファクトリーといったパターンが使われています。
これがある程度頭に入ってないと、ソースを追っていっても何やってるかわからなくなると思います。逆に C++ あたりで過去に一回でも経験しているとその類推で何とかなることも多いと思います。

 

 

実際に改変を試みようとするとここら辺から、難しくなってくるのかなと思います。

後は、主要なライブラリなどでしょうか。私もいまだに使い方がわかっていないライブラリは山ほどあります。

Java のライブラリとしては、ORM の Hibernate が有名ですね。ORM や Hibernate に関しては、他サイトですが

ORM に関して書くよ

をご参照ください。雰囲気掴めるかと思います。

? 参考
より詳細なソースコードレベルでの解説は
OpenDolphin ソースコード解説
を参考にしてください。

OpenOcean / HorliX 開発チーム

 

 

にほんブログ村 病気ブログ 医者・医師へ