大人ベンチャー

幸いなことに 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 開発チーム

 

 

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