
本記事は、ターミナルのコマンド入力から、無印準拠のデータベース/ネームスペースの作成を行います。
はじめに
IRIS for Healthのインスタンスでネームスペースを作成した時、3種のマッピング「グローバル」「ルーチン」「パッケージ」に大量のマッピングが設定されています。
■各種初期マッピング



・・・うん。多いですね。
特にグローバル・マッピングの数たるや、140件を超えています。
HealthShare系の機能を使わない場合、これらのマッピング設定が行われている為に、グローバル一覧に不要なグローバル名が並んでいたり、余計なクラスが検索されたり・・・とにかく邪魔に感じます。
そう思ったら、各マッピング設定をプチプチ削除です。
↓は全マッピングを削除し、関連グローバルを全部消した後の状態です。

ここら辺のグローバル名は、どうやってもグローバル一覧から消えないですよね。
削除してもゾンビのように復活します。
※グローバル名だけで中身はほぼ無いですが。
Health、Interoperability、Analytics辺りを使う予定がない場合、これらのマッピングやグローバルは使う機会がないでしょう。
とは言え、消すとしても手間ですし、全てのグローバルを消すことはできません。
まぁ、そもそもfor Healthインスタンスを使うなって話もありますが。
本記事は、IRIS for Healthインスタンスで、無印準拠のシンプルなネームスペースを作成する内容になります。
では、作成開始です!
データベースの作成
先ずは、データベースを作成します。
ターミナルを起動し、下記データベース作成コマンドを実行して下さい。
zn "%SYS"
s dir = "D:\IRISDB\TUNAKAN"
w ##class(%File).CreateDirectoryChain(dir) // フォルダ作成
w ##class(SYS.Database).CreateDatabase(dir, 1) // 1MBでDB作成
【実行結果】

この状態だと、まだ管理ポータルの[ローカルデータベース]画面では、作成したデータベースが認識されていません。

作成したDATファイルをデータベースとして認識させるため、下記コマンドを実行します。
k p
s name = "TUNAKAN" // データベース名
s p("Directory")=dir
s p("MountRequired")=1
w ##Class(Config.Databases).Create(name, .p)
【実行結果】

無事、データベースとして認識されたようです。
これでデータベースの作成は完了となります。
次は、ネームスペースの作成を行います。
コマンドまとめ
データベース作成コマンドをまとめると下記になります。
// データベース作成コマンド
zn "%SYS"
s name = "TUNAKAN" // DB名は任意
s dir = "D:\IRISDB\TUNAKAN" // 配置先は任意
w ##class(%File).CreateDirectoryChain(dir) // フォルダ作成
w ##class(SYS.Database).CreateDatabase(dir, 1) // 1MBでDB作成
k p
s p("Directory")=dir
s p("MountRequired")=1
w ##Class(Config.Databases).Create(name, .p) // DB認識
ネームスペースの作成
データベースを作成したら、次はネームスペースを作成しましょう。
コマンドは下記になります。
s name = "TUNAKAN"
s prop("Globals")=name // グローバル
s prop("Library")="IRISLIB" // システムライブラリルーチン
s prop("Routines")=name // ルーチン
s prop("SysGlobals")="IRISSYS" // システムグローバル
s prop("SysRoutines")="IRISSYS" // システムルーチン
s prop("TempGlobals")="IRISTEMP" // 一時グローバル
w ##Class(Config.Namespaces).Create(name,.prop)
【実行結果】

ネームスペースが作成されました。
この状態だと、3種のマッピングは全て空の状態となっています。
では、グローバル一覧を確認してみます。

グローバルが一つも表示されていません。
いやースッキリで気持ちがいいですねー!
(必要な場合)マッピング追加
何かしらのマッピングが必要な時は、ネームスペース作成後に設定します。
マッピングをコマンドで設定する方法に関しては、下記記事にて記載しています。
お手すきの際にご確認下さい。
ウェブ・アプリケーション作成
ウェブからの接続を使用する予定がない場合、ウェブ・アプリケーションの作成は不要ですが、稀にウェブ・アプリケーションが必要になります。
→ ユニットテスト実行後、管理ポータルから一覧を参照する場合等
今回は、ウェブ・アプリケーションの作成を行います。
作成手順
管理ポータルを起動し、[システム管理] > [セキュリティ] > [アプリケーション] > [ウェブ・アプリケーション]より、ウェブアプリケーション画面を起動します。
画面を起動したら、ボタン「新しいウェブ・アプリケーションを作成」をクリックし、「ウェブ・アプリケーション」画面を起動します。

画面が起動したら、下記項目を入力します。
No | 項目名 | 説明 |
---|---|---|
1 | 名前 | 任意ですが「/csp」は付与した方が良いかも? |
2 | ネームスペース | 今回使用しているネームスペース名を選択します |
3 | デフォルト設定 | ネームスペースに対し初作成であれば、チェックを入れておきます。 |
4 | 種類 | CSP/ZENを選択 |
5 | 認証 | 認証なしとパスワードを選択 |
6 | 物理パス | 「インストールディレクトリ + \csp\ネームスペース名\」で設定しておきます。 例) s dir = “D:\IRIS\CSP\tunakan\” w ##class(%File).CreateDirectoryChain([dir]) |
備えあれば憂いなしです。
作っておいても損にはならないので、手間でなければ作っておいた方が良いかもしれません。
動作確認
動作確認として、簡単な関数を作成し挙動を確認をしてみましょう。
【動作確認用サンプルPG】
Class developer.Sample
{
ClassMethod test(int As %Integer)
{
w !,"入力値:"_int
s ^tunakan = int
}
}
ターミナルで下記コマンドを実行します。
d ##class(developer.Sample).test(777)
w ^tunakan
【実行結果】

グローバルの入出力・関数の実行と、動作は問題なさそうです。
おわりに
いかがだったでしょうか。
本記事では、IRIS for Healthインスタンス上で、余計なマッピングを持たない「無印準拠」のネームスペースを作成する方法を解説しました。
デフォルト状態のHealthネームスペースは非常に多機能ですが、その分マッピングやグローバルの数が膨大で、使わない機能が前提の環境では管理が煩雑になります。
シンプルなネームスペースを一から作成することで、開発に必要な機能だけを残し、より見通しの良い環境を構築することが可能になります。
また、今回紹介した手順は、管理ポータルを使用せずターミナルを利用したネームスペース作成手順になります。
システムの環境作成をコマンドで行っている場合、これらのコマンドを組み込んでみてはいかがでしょうか。
ぜひ本記事の内容を参考に、ご自身の開発環境に合わせたネームスペース設計を試してみてください。