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)の提供ベンダー比較(無償利用についても言及あり)

参考にしてください。

OpenOcean(仮)

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

・データ構造は変えないでほしい

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

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

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

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

 

開いたイルカ

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

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

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

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

外部サイト保管: archive

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

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

(追記)

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

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

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

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

表現が今ひとつどうかなと思うところはありますが(せっかく Dolphin の貢献者としての実績をお持ちなのですから、あまり他者を蔑むような表現はしない方がいいのでは思います)、オープンソース作者の気持ちとしては納得できるところもあります。

 

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

 

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 (ギット)です。

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

 

 

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

 

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

 

だそうです。ソースと最終産物との間にある中間的な機能を設計する上での定型的なパターン、とでもいったらいいんでしょうか。プログラミングの初心者コースではまず教えないと思うので、それなりに経験積んだ人でも知らない人は知らないんではないでしょうか。Ocean/Dolphin ではシングルトンやメニューファクトリーといったパターンが使われている(はず)です。

これがある程度頭に入ってないと、ソースを追っていっても何やってるかわからなくなると思います。逆に C++ あたりで過去に一回でも経験しているとその類推で何とかなることも多いと思います。

 

 

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

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

 

 

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

PACS との連携機能など

HorliX の基本機能の整備もいいところにきた感じがあるので、次のフェイズ、例えば、Ocean との連携機能に関してそろそろ考えてみる。

お手本になりそうな情報を物色。

Panasonic: MedicomHR-3 と FujiFilm: C@RNAcore との連携の例

これはなかなか上手い連携の例だと思う。カスタマイズ料も高くつきそうだが。

オーダリング機能もちょっぴり入っているが、外来中心のクリニックならこういう構成の方が支持されるのかもしれない。

この手の連携機能は特定の機種間のみにした方が ー例えば HorliX と OpenOcean のみとかー 商売という面ではアドバンテージになるのかもしれないが、この時代にその手の「囲い込み」戦略は支持されない気がするので、組んで不都合のない相手とは組んでいきたいと思っている。

 

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

OpenOcean クライアントと Docker 版 OpenDolphin サーバをつなげる

Docker 版 OpenDolphin サーバは人気が高いようなので、OpenOcean クライアントとつないでみました。

クライアントのダウンロードページはこちら

 

「機能追加や細部の改変はしてもデータ構造や通信様態は本家を尊重する」という方針なので、当初、「そんなに難しくない、何もしなくてもつながる」くらいに思っていたんですが、初試行では見事につながりませんでした。

ログイン情報が違ってます

の嫌なアラートが….。

しばらく、頭上に?浮かばせてましたが、Docker の Dolphin (WildFly)が吐き出してくれるログに手掛かりがありました。(Docker 版でも設定でログを表示させることができます)

 

hibernate が走ったあとに

web context '/dolphin'

という見慣れぬ表記が。これ通常だと openDolphin なんですよね。

なのでソースの該当箇所を修正。Docker 版と商用版ではここがちがっていたわけですね。通りでつながらないわけだ。

修正後は、無事つながりましたが、当方の通信環境はそれほどよくなく(たぶんルータの性能がいまいち)一台のPC(win10)上に

  • クライアント Ocean クライアント   windows10 (ホスト)
  • サーバ       Dolphin サーバ(Docker)  Ubuntu14 (VMWare の仮想マシン)
  • ORCAサーバ     ORCA Ver5                     Ubuntu16 (VMWare の仮想マシン)

が混在するという二度とやりたくないような構成になりました。なりゆき上。

ただ、データ構造さえ同一に保っていれば、出自が異なっていたとしても接続は問題なくできるわけで(少々、苦労はしますが)、互換性という点でもオープンソースはメリットがあるなと思います。

 

なお、ここらへんの機種間の API の差を埋める目的で HL7 (エイチエルセブン)という団体が FHIR という仕様を公開してます。

FHIR Ver3.0.1

一瞬、なるほど、と思ったのだが、これを採用しても、肝心かなめのデータの構造がやり取りする両者で同一でないと結局復号化できないまま終わってしまうような…。これは検討課題。

 

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

OpenOcean クライアントを Mac で動かす

OpenOcean クライアントバイナリを試験的に公開。

自分の Mac にもインターネット経由で落として使ってみる。(今まで win 機でコーディングしていたので Mac での確認はしてなかった)

まず、起動。

ログイン画面描画は問題なし。

ログインも問題なかったが、なぜか受付情報を受け取れない……。

閉塞」という嫌な文字が ORCA に表示されている。

必殺の wi-fi 切断-再接続を試みる。

当方の環境だとなぜかこれでつながり始める。一昔前のブラウン管チョップと感覚は似ている。

カルテの参照なども問題なし。やはり Mac は表示が綺麗。

しかーし、

  • 処方せん打ち出し機能が選べない
  • ホームフォルダにできてるはずのフォルダができてない

などの不具合あり。

と言ってたんですが、処方せん打ち出しはできますね。

という画面が現れて、「PDF 作成」を押下すると

というそれはそれは美しい処方せんが出現する。

 

後者のバグは心当たりある。ディレクトリを作らせるとき、win でしかチェックしていなかったからだ。

Mac でも開発環境つくろうかな?

できた!

つか、以前に Dolphin ビルドしたときに Java 環境構築したの忘れてたわ。その時の流用。

これで HorliX との連携機能は組みやすくなるかな。

 

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