2-J1-1-4 ポスター/2-J1-1:ポスター6

健康診断データ後利用システムの開発と評価～ユニケージ開発手法によるパフォーマンス改善～
藤井 香*1 大貫 亮*2 松本 可愛*1 高橋 綾*1 清 奈帆美*1 櫻井 勉*1 金子 康樹*2押見 淳*2 河邊 博史*1
*1
慶應義塾 大学保健管理センター *2慶應義塾 インフォメーションテクノロジーセンター

Development and evaluation of health checkup data later-use system-Performance improvement by Unicage software development
methodFujii Kaoru*1 Onuki Akira*2 Matsumoto Kaai*1 Takahashi Aya*1 Sei Nahomi*1Sakurai Tsutomu*1 Kaneko Yasuki*2 Oshimi Atsushi*2 Kawabe Hiroshi*1*1
Health Center, Keio University *2Keio Information Technology Center
The health checkup system in our university uses general RDBMS(Relational Data Base Management System) and hasa complicated table structure containing plural medical examination types and inspection data each year. Since it is astructure with which it is difficult to data-link by relation of simple keys and items such as those for which single IDs are
based on single reception information, handling of mainframe search performance is extremely slow and it affects ourservices. Moreover, in data addition, update and deletion by SQL, system call for securing memory is issued each time andgarbage collection is performed as its nature and therefore it worsened the performance even more. In the Unicage softwaredevelopment method (R), data are in text format, which realizes relation by linking files with shell script, and it is notnecessary to secure memory during the process repeatedly. From an experiment that shell script was executed on a multicore processor / STM machine, it has been reported that the processing speeded up by 1.4-1.8 times compared with that
before applying the method. In this way, we have built a data later-use system using Unicage software development method
and therefore aim at evaluating it. In file generation (binding logic) for all checkup data, which are used by a data later-use
system, processing time for approximately 30,000 students' health checkup data of one year has been improved toapproximately ten seconds. In addition, for mainframe search, as a result of comparing all items' output for which CSV
output capability was used from RDBMS and extracting logic in the data later-use system for their processing time, it has
been revealed that the output processing time for the subject was approximately 5,700 seconds for the former andapproximately 1.1 seconds for the latter, suggesting that the processing time was vastly improved. This implementation ofthis time has made us expect promotion of efficiency in performance aspect in services and further data utilization in thestudy.

Keywords: Unicage software development method, High speeding technique , SQL
1. はじめに当大学における健康診断（健診）システム
IDST(Information and Database of health care
Service Tools） は 、 2011年 よ り 教 職 員 健 診 、 学 生 健診、特定業務従事者健診、雇入時健診の４健診で利用している。
IDST は 一 般 的 な RDBMS （ Relational Data BaseManagement System）を利用し、ユーザの要望にて、単年度単位で複数の健診種類や検査データを含む複雑なテーブル構造を持つ。単純な受付機能やデータ入出力機能には問題はないが、単一IDが単一の受付情報に紐づくような、単純なキーや項目のリレーションでデータ連携することが難しい構造であるため、汎用検索の処理パフォーマンスは極度に遅く、業務に支障を き た し て い た 。 か つ 、 SQL （ Structured QueryLanguage）によるデータ追加、更新、削除は、その度にメモリ確保するシステムコールを発行し、ガベージコレクションを行う性質から、よりパフォーマンスを悪化させていた。
ユ ニ ケ ー ジ 開 発 手 法 （ Unicage softwaredevelopment method ） ® 注 １ ） 1 , 2 ) は 、 デ ー タ を テ キ ス ト
1088

第33回医療情報学連合大会 33rd JCMI(Nov.,2013)

ファイル形式とし、シェルスクリプトでファイルを連携させることによってリレーションを実現でき、処理中何度もメモリ確保を行う必要が無い 3 , 4 ) 。マルチコアプロセッ
サ ・SMT（Surface Mount Device） マ シ ン 上 で シ ェ ル
スクリプトを実行した実験 5 ) では、手法適用前に比べて1.4～1.8倍の速度向上が可能であったと報告がある。
そこで今回、ユニケージ開発手法を用いて、データ後利用システムを構築したので評価したい。
注１）ユニケージ開発手法
UNIX系オペレーティングシステム上（特にLinux上）において、シェルスクリプトのみでシステムを開発する手法。通常のテキストファイル形式でデータを持たせ、独自開発されたフィルタコマンド群をパイプラインで接続して並列処理する技術を用いる。

2. 対象と方法
業務用ネットワーク上での健診システムにおけるデー タ後 利 用 シ ス テ ム と し て 、結合 ／抽出 ロ ジ ッ ク 注 ２ ）のパフォーマン スを 中心 とし たシ ステム全体 の評価を行った。
IDSTを利用した検索・全項目CSV出力と、今回開発した抽出ロジックの機能を用いた同一データの検索・

2-J1-1-4 ポスター/2-J1-1:ポスター6
CSV出力における処理時間を計測し、パフォーマンスの比較を行った。結合／抽出ロジックにおいては、
2006年 度 ～2011年 度 各 年 度 の 教 職 員 健 診 、 学 生 健診の検索・全項目CSV出力時間、2～6年度分の複数
年 度 で の 検 索 ・ 全 項 目 CSV 出 力 時 間 （ 秒 ） を 計 測 した。
なお、IDST、結合／抽出ロジックそれぞれの処理に用いたサーバはその用途やシステムの特性上の観点
か ら 仕様上 異 なるが、IDSTで利用した 基幹サーバのマシンスペックは、2012年度学生健診実施時におけるパフォーマンス監視結果でみると、CPU使用率は最大約20used％であり、十分なリソースの余力があったことを確認している。このことから、処理時間の差は、データ構造上の問題、及びそれに付随したアプリケーションの実装上の差であり、基幹サーバのマシンスペック上の問題とは考えにくい。
注２）
結合ロジック；
出力されている複数の検査データから年度及び健診種類ごとに一 受付一レコード（≒一人一レコード）にマージする機能。
抽出ロジック；
結合ロジックにてマージしたCSVファイルを対象に、WEBクライアントからの任意の条件によるリクエストに対して、ヒットしたデータをCSVファイル形式で出力する機能。

3. システム概要
3.1 システム形態（図1.WEB3階層と処理フロー）
システム全体を、ユーザーインターフェイス層（クライアント側）、ビジネスロジック層（サーバ側）、データ
ベ ー ス 層 （ サ ー バ 側 ） の3階 層 に 処 理 を 分 割 し て 構 成するWEB3階層型とした。
本システムでは、①ユーザーインターフェイス層をCSV出力用画面（クライアントPC上のWEBブラウザ）、②ビジネスロジック層を結合／抽出ロジック（サーバ上のシェルスクリプト）、③データ層を各検査項目データ（ サ ー バ 上 のCSVフ ァ イ ル ） の3つ の 要 素 で3階 層 と した。

上に構築した。

3.3 ハードウェア
IBM System x3550 M3（1台）
CPU： イ ン テ ル(R)Xeon(R)プ ロ セ ッ サE5620(4コ ア/8スレッド)2.40GHz x2 メモリ：48GB(4GB x12)
デ ィ ス ク ： 300GB( 内 蔵 型 SAS) x4 、 実 効 容 量
600GB(RAID10構成)

3.4 OS／ミドルウェア
サ ー バ OS と し て Cent OS （ フ リ ー の Linux デ ィ ス ト リ
ビ ュ ー シ ョ ン ） バ ー ジ ョ ン6を 利 用 し た 。 さ ら に 、 本 シ ス
テ ム の コ ア と な るusp Tukubaiコ マ ン ド 群®（ 有 限 会 社
ユニバーサル・シェル・プログラミング研究所）をインストールした。なお、リレーショナルデータベース管理用の ミ ド ル ウ ェ ア は 利 用 し て い な い 。 ク ラ イ ア ン トPCか らの WEB ア ク セ ス 用 に は 、 OS 標 準 の Apache HTTP
Server（オープンソース・ソフトウェア）を利用した。

3.5 パフォーマンス要件
全データの結合処理および各種抽出処理について、複数年度にまたがる処理であっても5分以内に終了することを目標値とした。

3.6 データ構造と結合／抽出ロジック（図２）プ ロ グ ラ ム は 、 usp Tukubai コ マ ン ド 群 を 利 用 し た
シェルスクリプトのみで記述した。
IDSTの デ ー タ 構 造 は 、 健 診 種 類 ご と に テ ー ブ ル が存在し、同一年度、同一健診種類でも、一人に紐付くべきデータが不定数レコード存在しており、検査ごとにCSV出力する機能を持っている。そこで、結合ロジック
は 、 IDST か ら 出 力 さ れ た 各 検 査 項 目 の CSV を 対 象に、年度及び健診種類ごとに一受付一レコード（≒一人一レコード）にマージする処理を実装した。
また、抽出ロジックは、結合ロジックにてマージしたCSVファイルを対象に、WEBクライアントからの任意の条件によるリクエストに対して、ヒットしたデータをCSVファイル形式で出力する機能を実装した。データ結合ロジックの仕様として、同一健診内における複数回検査による列ずれが発生しないように、また、結合対象となる各検査項目データについては、個人属性など同じ内容の列があった場合に、それらも重複しないように制御した。結合のキーとなるのは健診受付日および各検査日であり、同一人物が同一種類の健診を二度受診したとしても、複数回検査や外部受診についても直近の健診に紐付くように設定した。受付日のないデー
タは不要データの位置付けで精査され、元となる健診システムへのフィードバックを可能とした。

3.7 クライアント利用
業 務 用 PC 標 準 の WEB ブ ラ ウ ザ で あ る Internet
Explorer9（ 日 本 マ イ ク ロ ソ フ ト 株 式 会 社 ） で の 利 用 を想定した。

3.8 ネットワーク・セキュリティ
図1 WEB3階層と処理フロー

ファイアウォールによる制限が設けられている業務用LAN（有線）を利用した。また、サーバ側でのアカウン
ト管理、およびシステム利用時の認証機構と、使用端末登録による利用制限を設けた。

3.2 結合／抽出ロジック サーバ構成
結合／抽出ロジック専用環境として独立したマシン
医療情報学 33(Suppl.),20131089

2-J1-1-4 ポスター/2-J1-1:ポスター6～6年度分の複数年度で計測した。教職員健診では、2006～2011年度(6年度分)33,847件1.9秒、学生健診
では、2006～2011年度(6年度)173,958件6.6～6.7秒であった。

5. 考察

図2 データ構造と結合／抽出ロジック

4. 結果
4.1 IDST、抽出ロジックによる検索・CSV出力のパフォーマンス評価（表１）
データ後利用システムで用いる全ての検査データについてのファイル生成（結合ロジック）では、約30,000人の学生健診データ1年度分の処理時間が約10秒であった。また、RDBMS(IDST)のCSV出力機能を利用し た 検 索 ・CSV出 力 と 、 抽 出 ロ ジ ッ ク の 処 理 時 間 の 比較を行ったところ、2009年度学生健診の場合、出力処理は、前者がおよそ5,700秒、後者がおよそ1.1秒という結果であった。2009年教職員健診でみると、前者が1,500秒、後者が0.341秒であった。

表1 IDST、抽出ロジックによる検索・CSV出力のパフォーマンス評価

今回実装したユニケージ開発手法を用いた後利用
シ ス テ ム は 、IDSTに 比 較 し 、 圧 倒 的 に 処 理 時 間 が 短く、パフォーマンスが優位であることが示された。ユニケージ開発手法のシステム構成上の特徴と優れた点として、データ管理におけるミドルウェア＝データベースを必要とせず、プログラムにおける複雑な記述が発生
し な い こ と が 挙 げ ら れ る 。 プ ロ グ ラ ム はusp Tukubaiコ
マンド群を用いたシェルスクリプトのみ、データはテキストファイルのみで構成されるという非常にシンプルで無駄の無い構成である。また、ユニケージ開発手法はコマンドをOSのパイプで連結してデータストリームの並列処理を行わせる方式で、処理目的にのみコンピュー
タリ ソ ースを 有効に使 うので 、実行速度が著 しく速く、開発当初の処理時間目標値をはるかに上回る結果が達成できた。職員の業務負担になることなく、さらなる業務面での効率化や蓄積されたデータの後利用として研究面での発展も期待できた。
また、システムの特性上、CSVファイルを非常に容易に扱えることで、他システムとの連携が柔軟である。今後の診療系システム、画像系システム、医事会計システムなどの導入に応じてそれらシステムとの連携を通じ、保健管理センターとしての健診結果への利活用だ
けでなく、診療データや日常の健康記録も併せたビッグデータ分析にも有用となることであろう。
ユニケージ開発手法はミドルウェアを利用しないた
め、不要なランニングコストやアップデート作業などが発生せず、データもプログラムもテキストファイル形式
なので、今後のハードウェアの入れ替えなどにおいても単純なファイルコピーだけでシステム移行が済むことから、将来的な管理面での負荷も軽減されることが期待された。
一方で、データ自体がデータベースではなくファイルで管理されているという特徴から、サーバ自体へのアクセス制限と権限設定などセキュリティに関しては、他のシステム同様に十分な配慮が必要である。

6. 結語
ユニケージ開発手法を用いたデータ後利用システムの プ ロ グ ラ ム 実 行 処 理 は 著 し く 速 く 、SQLで の 処 理 時
間目標値をはるかに上回る結果が達成でき、従来システムが抱えていたパフォーマンスの問題は改善された。データの二次的な活用として、ビッグデータ分析にも有用だと思われた。

※ ユニケージはユニバーサル・シェル・プログラミング研究所の登録商標。
※ usp Tukubaiはユニバーサル・シェル・プログラミン
グ研究所の登録商標。

4.2 複数年度を対象とした、抽出ロジックによる検索・CSV出力のパフォーマンス評価（表２）抽出ロジックを用いた検索・CSV出力の処理時間を21090

第33回医療情報学連合大会 33rd JCMI(Nov.,2013)

2-J1-1-4 ポスター/2-J1-1:ポスター6
表2 複数年度を対象とした、抽出ロジックによる検索・CSV出力のパフォーマンス評価

参考文献[1] ユニケージ開発手法. http://www.usp-lab.com/methodology.html.
[2] UECジャーナル ユニケージ開発手法とは. https://uec.usplab.com/INFO/CGI/INFO.CGI?POMPA=ABOUTUNICAGE.
[3] 片山善夫,當仲寛哲. Universal Shell Programming (USP)向
けシェル機能と実装(シェルプログラミング・Webアプリケーション). 情報処理学会研究報告. ソフトウェア工学研究会報
告 2008(112), 47-54, 2008-11-12.

[4] 松岡泰史,當仲寛哲. ユニケージ手法 : 高生産性で安価な顧
客重視の開発手法(シェルプログラミング・Webアプリケーション). 情報処理学会研究報告. ソフトウェア工学研究会報告2008(112), 55-62, 2008-11-12.
[5] 杉田秀，他. マルチコア・SMTプロセッサ上におけるシェルス
クリプト高速化手法(コンパイラ及びツール,「ハイパフォーマンスコンピューティングとアーキテクチャの評価」に関する北海道ワークショップ(HOKKE-2007)). 情報処理学会研究報告.
計算機アーキテクチャ研究会報告 2007(17), 73-78.

医療情報学 33(Suppl.),2013

1091