バージョン 2023.3(InterSystems IRIS for Health)の新機能は、FHIR プロファイル基準の検証を実行する機能です。

(*)

この記事では、この機能の基本的な概要を説明します。

FHIR が重要な場合は、この新機能を絶対にお試しになることをお勧めします。このままお読みください。

2 0
1 14

これは InterSystems FAQ サイトの記事です。

クエリパフォーマンスを左右するクエリプランは、テーブルチューニングを行った結果の統計情報を元に生成されます。

ある環境で期待したプランになったけれど、他の環境では意図したプランにならない場合、(期待したプランとなる)既存環境からテーブル統計情報をエクスポートして別の環境にインポートし、同じ統計情報をもとにしたクエリプランで実行することができます。

0 0
0 13
記事
· 2024年3月21日 7m read
開発者用の clinFHIR

この記事では、FHIR を理解し、FHIR アーティファクトを使用するアプリケーションを開発できるようにするために clinFHIR アプリケーションを使用する方法を説明しています。 FHIR の紹介を意図したものではなく、学習 / 開発の過程で clinFHIR がどのように役立てられるかを説明しています。 相応に概要レベルでの説明となっています。その他の情報は、特に私の個人ブログで提供しています。

0 0
1 12

%Installerという特別なツールを使用すると、目的のIRIS構成を記述するインストールマニフェストを定義できることはご存じでしょうか?
インストールマニフェストに作成したい IRIS 構成を記述すると、インストール中、またはターミナルやコードからマニフェストを実行した際に、構成設定が適用されます。

インストールマニフェストについては、以下の記事でご紹介しておりますので是非ご覧ください(Cachéの記事になりますがIRISでも同様です)。
%InstallerでInterSystems Cachéにアプリケーションをデプロイする


こちらの記事では、実際にマニフェストで追加できる主な項目について、サンプルコードとあわせてご紹介します。
今回は、以下の機能の設定例をご紹介します。

1 0
0 16

これは InterSystems FAQ サイトの記事です。

インスタンスの開始が失敗し、コンソールログに"There exists a MISMATCH.WIJ file"が記録されている場合、何らかのシステム障害の影響でデータベースの整合性に関して問題が生じていることを示しています。

このような状況が発生した際にインスタンスの開始ができるようにするためには、以下の手順を実施します。

(1) a. インスタンスをNOSTUモードで起動
(2) b. データベースの整合性チェック

◆(2)の整合性チェックでエラーを検出しなかった場合、
 (3) d. MISMATCH.WIJ ファイルのリネーム
 (4) e. インスタンスの再起動
を実施します。

0 0
0 10

これは InterSystems FAQ サイトの記事です。

$ZF(-100)で外部コマンドを実行する場合、その外部コマンドの子プロセスからの応答が返らない限り、$ZF(100)コマンドを発行したIRISプロセスはその応答を待って残り続けます。

従ってIRISプロセスを終了させるためにはその応答がない子プロセスを強制終了させる必要があります。

0 0
0 15
記事
· 2024年3月18日 1m read
SQLベンチマークプログラム

InterSystems IRISのSQLの性能を評価する簡単なベンチマークテストを公開します。

また、このベンチマークプログラムで測定した過去の様々なハードウェアでのベンチマーク結果も公開します。

ハードウェアの進歩、インターシステムズの新しいテクノロジーの追加や性能改善によって、性能が劇的に変化しています。

現在のハードウェアの性能を考慮すると、少し物足りない感じが否めないですが、過去との結果の公正な比較という意味であえて、データの規模に関しては過去と同一条件でベンチマーク実施した結果となっています。

データの規模に関してはデータ件数を増やすことで変更できるようになっています。(現時点では500万件)

またこのベンチマークプログラムはインターシステムズ製品用に実装されていますが、使用しているテーブル構造は比較的シンプルなもので、また使用しているSQL文も標準的なものなので、他データベースシステムでも同じベンチマークを実施することはそんなに困難ではありません。

ベンチマークプログラムのリポジトリ

0 0
0 13

これは、InterSystems FAQサイトの記事です。

Pythonで、IRISサーバ外部から、IRISの処理を呼び出したりIRISのデータを扱いたい場合には、Native API for Pythonを使用します。
モジュールのインポートは、

import irisnative


で、行います。

詳細は、下記ドキュメント及び、各関連トピックをご参照ください。
[ドキュメント] InterSystems Native SDK for Python

0 0
0 11

これは、InterSystems FAQサイトの記事です。

【任意のXMLドキュメントの読み込み】
任意のXMLドキュメントの読み込み・書き出しを行うには、%XML.TextReaderクラスを使用します。
Parseメソッド(※ドキュメントがファイルの場合はParseFile())を使用してドキュメントをParseし、各ノードのプロパティを取得します。

例えば、下記のXMLの場合、

<emp empid="1">
<name>Suzuki</name>
<address>Tokyo</address>
</emp>

各赤枠が、"ノード"の単位となり、

0 0
0 17

これは InterSystems FAQ サイトの記事です。

SQLのINSERT/UPDATE/DELETE文で大量のデータを更新する際に、高速化する方法をご紹介します。
以下の2つの手順を実行することで、更新処理のパフォーマンスを向上させることが可能です。

1.INSERT/UPDATE/DELETE時にインデックスを作成せず、あとでまとめて作成する

2.INSERT/UPDATE/DELETE時にジャーナルをOFFにする

1は、%NOINDEX キーワードを指定してインデックスの生成を後でまとめて行うことで、インデックスの構築を抑制しパフォーマンスを向上させる方法です。

クエリ実行例は、以下のようになります。

0 0
0 29

これは InterSystems FAQ サイトの記事です。

現時点(2024年3月)では、コミュニティに掲載されているPythonライブラリ「iris-dollar-list」を利用することでIRISの$LIST()形式のデータをPythonのリストとして利用することができます。

※標準ツールではありませんがご利用いただけます。詳細はコミュニティの記事「もう1つの $ListBuild() の実装:Pythonライブラリ「iris-dollar-list」」をご参照ください。

WindowsにインストールしたIRISで使用する場合は、以下の方法で「iris-dollar-list」をインストールしてください。

※Windows以外にインストールしたIRISでは、pipコマンドを利用した通常の方法でインストールできます。

0 0
1 21

これは InterSystems FAQ サイトの記事です。

Ens.Directorクラスのクラスメソッドを使用して取得できます。

プロダクション名(FAQSample.Interop.Production)とホスト名(FAQSample.Interop.FileOperation)を指定して設定リストを取得する方法は以下の通りです。

0 0
0 21

これは InterSystems FAQ サイトの記事です。

永続クラス定義(またはテーブル定義)に対してオブジェクト操作でデータの参照・更新を行うとき、オブジェクトオープンで使用する%OpenId()、オブジェクトの削除に使用する%DeleteId()の第2引数を使用して並行処理の制御方法を選択できます。

ご参考:オブジェクト同時処理のオプション

既定値は1です。(永続クラスのDEFAULTCONCURRENCYクラスパラメータでデフォルト値を指定できます。特に変更していない場合は 1を使用します)

並行処理の基本事項は以下の通りです。

0 0
0 24

これは InterSystems FAQ サイトの記事です。

ユーザに権限を与えたい場合、「GRANT」コマンドや「GrantPrivilegeメソッド」を使用しますが、ロールに対しても権限を与えることができます。

例えば、特定スキーマにのみ何でもできるロールを作成し、それを特定のユーザに割り当てるようなことが可能となります。

こちらの記事では、その方法をご紹介します。


(1) GrantPrivilegeメソッドを使用して「スキーマXXX に何でもできるロール」を作成し、
(2) 該当ユーザに (1) のロールを割り当てる



★GRANT文を使う場合

0 0
0 30

これは InterSystems FAQ サイトの記事です。

新しいインデックスを定義した後、インデックスの再構築が完了する前にクエリを実行するとデータが存在しているにもかかわらず「検索結果0件」や検索結果数が徐々に増えるような状況が発生します。

インデックスを永続クラス定義(またはテーブル定義)に追加しコンパイルすることで今まで使用していたクエリ実行経路が削除され、再度同じクエリを実行するタイミングで新しいインデックス定義を含めた実行経路が作成されるためです。(この時にインデックス再構築が完了していないとインデックスデータが存在しない、または不完全であるため0件や徐々に検索結果数が増えるような状況を起こします。)

これを起こさなために、新しいインデックスの再構築が終了するまでクエリオプティマイザにインデックスを使用させないように指定する方法が用意されています。

※インデックスの再構築が完了したら、必ず指定を元に戻してください。

0 0
0 18

これは InterSystems FAQ サイトの記事です。

InterSystems IRIS との通信に SSL/TLS を使用する際のクライアントの構成は、使用する技術によって変わってきます。


1. ODBCクライアント、IRISクライアントから接続の場合(IRISスタジオやターミナルなど)
2. .NET クライアントから接続の場合(SSLDefs.iniは要りません)



★1.ODBCクライアント、IRISクライアントから接続の場合(IRISスタジオやターミナルなど)

ODBCやIRISクライアントから接続する場合は、以下の記事にある設定が必要となります。
具体的には、SSLDefs.iniという設定ファイルを作成し、決められた場所に配置します。

0 0
0 27