開発者の皆さん、こんにちは!
USコミュニティ開催の ✍️ 技術文書ライティングコンテスト: InterSystems IRIS チュートリアル ✍️ の勝者が発表されました!📣
今回は、19人のメンバーから🌟 21 の素晴らしい記事 🌟が投稿されました。
全ての記事が素晴らしい内容であったため、審査員からは3記事を選択するのが非常に難しかったとのコメントがありました。
.jpg)
それでは、受賞者の皆さんを紹介します!
開発者の皆さん、こんにちは!
USコミュニティ開催の ✍️ 技術文書ライティングコンテスト: InterSystems IRIS チュートリアル ✍️ の勝者が発表されました!📣
今回は、19人のメンバーから🌟 21 の素晴らしい記事 🌟が投稿されました。
全ての記事が素晴らしい内容であったため、審査員からは3記事を選択するのが非常に難しかったとのコメントがありました。
.jpg)
それでは、受賞者の皆さんを紹介します!
IRIS BIチュートリアル試してみたシリーズの2回目です。
今回は、前回の作業でセットアップしたサンプルキューブやデータを用いてアナライザを操作します。
アナライザは、IRIS BIのキューブ等を基にピボットテーブルを作成する機能です。Excelのピボットテーブルをご存知でしたらイメージがつきやすいかもしれません。
では、早速はじめていきたいと思います。
まずはアナライザ画面を開きます。管理ポータル画面のメニューから、 Analytics → アナライザ を選択します。
以下のような画面が表示されます。アナライザ画面は大きく3つの領域から成り立っています。
まずは、Patientsキューブを使ってモデル・コンテンツ領域を詳しく見ていきます。
モデル・コンテンツ領域にPatientsキューブが開かれていない場合には、領域左上のキューブ型のアイコンをクリックするとキューブ選択のダイアログが開きますので、そこからPatientsキューブを選択します。
こんな状況を思い浮かべてください。「ウィジェットダイレクト」というウィジェットとウィジェットアクセサリーを販売する一流のネットショップで楽しく勤務しています。先日、上司から一部の顧客がウィジェット商品にあまり満足していないという残念な話を聞き、苦情を追跡するヘルプデスクアプリケーションが必要となりました。さらに面白いことに、上司はコードのフットプリントを最小限に抑えることを希望しており、InterSystems IRIS を使って 150 行未満のコードでアプリケーションを提供するという課題をあなたに与えました。これは実際に可能なのでしょうか?
免責事項: この記事は、非常に基本的なアプリケーションの構築を記すものであり、簡潔さを維持するために、セキュリティやエラー処理などの重要な部分は省略されています。このアプリケーションは参考としてのみ使用し、本番アプリケーションには使用しないようにしてください。この記事ではデータプラットフォームとして IRIS 2023.1 を使用していますが、それ以前のバージョンでは記載されているすべての機能が提供されているとは限りません。
クリーンなネームスペースを新規に定義することから始めましょう。CODE と DATA データベースを使用します。
バージョン 2023.3(InterSystems IRIS for Health)の新機能は、FHIR プロファイル基準の検証を実行する機能です。
()
この記事では、この機能の基本的な概要を説明します。
FHIR が重要な場合は、この新機能を絶対にお試しになることをお勧めします。このままお読みください。
開発者コミュニティのみなさん、こんにちは。
IRISには組み込みのビジネスインテリジェンス機能であるIRIS BIが備わっております。
ただし、使い方がよく分からないということから利用に至ってない方もいらっしゃるのではないでしょうか。
幸いなことに、オンラインドキュメントの中にはIRIS BIの開発者向けチュートリアルのページがあり、それに沿って作業するとIRIS BIの簡単な概要を理解することができます。
ですので、これから数回に分けてチュートリアルを実行した結果を紹介し、IRIS BIの機能や使い方について知っていただければと思います。
初回は、チュートリアル用のネームスペースにサンプルのデータやキューブなどを作成する準備作業について説明します。
なお、使用した環境ですが、Windows PC(OS: Windows 10)にIRIS 2024.1のコミュニティエディション(コンテナ版)で行っております。
チュートリアルの最初のページは「準備」です。チュートリアルを進めるためのネームスペース作成やサンプルデータの投入を行います。
必要なファイルはgithubに公開されている Samples-BI から取得します。このページのREADMEに手順(Step-by-step Installation)が記されてますので、それに沿いながら進めます。
開発者の皆さん、こんにちは!
InterSystems全製品のサーバ側コードで利用できる「ObjectScript」の基本の使い方から、困ったときのヒント集、エラーの読み方など、日本語ドキュメントの逆引きになるようなページを目指して、「ObjectScriptクックブック」を作成しました!
Hello Worldの出力から始めたい方に最適です。
2024/3/25更新:8. デバッグ方法 を追加しました。ぜひご参照ください。
ObjectScriptの記述に困ったときに読んでいただけるヒント集です。コミュニティに寄せられたご質問をどんどん掲載していきます。
ObjectScriptのプログラムでエラーが発生したときのエラーメッセージの読み方から、エラー情報の取得方法などを解説しています。
これは InterSystems FAQ サイトの記事です。
クエリパフォーマンスを左右するクエリプランは、テーブルチューニングを行った結果の統計情報を元に生成されます。
ある環境で期待したプランになったけれど、他の環境では意図したプランにならない場合、(期待したプランとなる)既存環境からテーブル統計情報をエクスポートして別の環境にインポートし、同じ統計情報をもとにしたクエリプランで実行することができます。
新規環境にてテーブルチューニングをしても思うようなパフォーマンスが出ない場合に、パフォーマンスの出ていたテスト環境と、もう一つの別の環境で同じクエリプランでの実行を試してみたい場合があるかと思います。
そんな時は、テーブル統計情報である選択性(Selectivity)とデータ数(ExtentSize)情報等をエクスポートして、対象環境にインポートする方法が使用できます。
もちろん、データの偏りによってクエリオプティマイザが適切だと判断して作成したプランが最適だと考えられますが、どうしても思うようなパフォーマンスが出ない場合に、原因調査も含めてこちらの方法をお試しください。
以下のように統計情報をエクスポート/インポートすることで、同じテーブル統計情報=同じクエリプラン で実行することが可能となります。
インターシステムズは、InterSystems IRIS for Health および HealthShare Health Connect の2024.1 リリースを一般提供開始(GA) したことを発表しました。
リリースハイライト
今回のリリースには、以下のような数々の興味深いアップデートが含まれます:
1. Smart on FHIR 2.0.0のサポート
2. FHIR R4オブジェクトモデルの生成
3. FHIR クエリのパフォーマンス向上
4. プライベート・ウェブ・サーバー(PWS)の削除
5. その他
ドキュメント
注目機能の詳細は、以下のリンクからご覧いただけます。(英語)
また、このリリースに関連するアップグレード情報については、こちらのリンクをご覧ください。
本バージョンではプライベートWebサーバを使用した管理ポータル/Webアクセスが非推奨となりました。詳細についてはこちらをご参照ください。
早期アクセス・プログラム(EAP)
現在、多くのEAPが用意されています。
InterSystems は先日、Visual Studio Code(VSC)IDE 用の拡張機能は InterSystems Studio に比べてより優れたエクスペリエンスを提供するという考えから、VSC IDE 用の拡張機能を独占的に開発するためにバージョン 2023.2 より InterSystems Studio のサポートを終了すると発表しました。それ以来、VSC に切り替えた開発者や、VSC を使用し始めた開発者が大勢います。 VSC には Studio のような出力パネルがなく、InterSystems が開発したプラグインをダウンロードする以外に IRIS ターミナルを開く統合機能もないため、多くの人は演算を実行する際にターミナルの開き方に迷ったことでしょう。
この記事では、FHIR を理解し、FHIR アーティファクトを使用するアプリケーションを開発できるようにするために clinFHIR アプリケーションを使用する方法を説明しています。 FHIR の紹介を意図したものではなく、学習 / 開発の過程で clinFHIR がどのように役立てられるかを説明しています。 相応に概要レベルでの説明となっています。その他の情報は、特に私の個人ブログで提供しています。
FHIR を使用している方は、FHIR チャットに参加することをお勧めしています。ほとんどのエキスパートが参加しているため、FHIR コミュニティに質問するのに最適な手段です。 また、アプリ固有の質問には clinfhir ストリームもあります。
まずは、背景から少し説明します。
10 年前に初めて FHIR を開発していた頃、FHIR が一体何であるかを可視化できる必要性があることが明確になりました。 リソースとは何か、どのように使用して特定のユースケースを表現できるのか、用語はどのように機能するのかといったことです。 これは特に、臨床分野のオーディエンスにおいて必要であったため、「clinical FHIR」を短縮して「clinFHIR」という名前になりました。
それ以来、clinFHIR は FHIR の数々のバージョンを重ね、モジュールの追加や削除を繰り返し進化してきました。
%Installerという特別なツールを使用すると、目的のIRIS構成を記述するインストールマニフェストを定義できることはご存じでしょうか?
インストールマニフェストに作成したい IRIS 構成を記述すると、インストール中、またはターミナルやコードからマニフェストを実行した際に、構成設定が適用されます。
インストールマニフェストについては、以下の記事でご紹介しておりますので是非ご覧ください(Cachéの記事になりますがIRISでも同様です)。
%InstallerでInterSystems Cachéにアプリケーションをデプロイする
こちらの記事では、実際にマニフェストで追加できる主な項目について、サンプルコードとあわせてご紹介します。
今回は、以下の機能の設定例をご紹介します。
1. ライセンスファイルのコピーと適用
2. ネームスペース・データベースの作成
3. 構成情報(ポートやデータベースキャッシュ・メモリ設定など)の適用
4. セキュリティ情報(ユーザ・サービスなど)のインポート ※同一バージョンのみ
5. セキュリティ情報(ユーザ・ロールなど)の作成
6. SQL情報の作成
7. ジャーナル情報の作成
8. ユーザ作成クラスやグローバルのインポート、メソッドの実行
9. システムクラスのクラスメソッドを引数付きで実行
これは InterSystems FAQ サイトの記事です。
インスタンスの開始が失敗し、コンソールログに"There exists a MISMATCH.WIJ file"が記録されている場合、何らかのシステム障害の影響でデータベースの整合性に関して問題が生じていることを示しています。
このような状況が発生した際にインスタンスの開始ができるようにするためには、以下の手順を実施します。
(1) a. インスタンスをNOSTUモードで起動 注1:
(2) b. データベースの整合性チェック
◆(2)の整合性チェックでエラーを検出しなかった場合、
(3) d. MISMATCH.WIJ ファイルのリネーム
(4) e. インスタンスの再起動
を実施します。
◆(2)の整合性チェックでエラーが検出された場合は、
(3) c. MISMATCH.WIJファイルの適用
(4) b. データベースの整合性チェック
(5) d. MISMATCH.WIJファイルのリネーム
(6) e. インスタンスの再起動
を実施します。
以下に各手順の詳細を説明します。
a. インスタンスをNOSTUモードで起動します。
以下に記載の手順の内、1)および2)の手順まで実行します。
3)以降は実施する必要はありません。
これは InterSystems FAQ サイトの記事です。
まず以下のようなREST APIを定義したクラスを作成します。
ClassExtends"/req1"次にこのREST APIを呼び出すHTMLファイル(test.html)を作成します。
htmlng-app
function($scope, $http)functionこれは InterSystems FAQ サイトの記事です。
Embedded Pythonでトランザクションを実装するために、以下のようなAPIが用意されています。
import詳細はドキュメントをご覧ください。
InterSystems は、より新しく優れたオプションが利用可能になったときに従来のテクノロジーの開発を中止することがあります。
ただし、それら機能は最小サポートバージョン以後の製品であれば他の機能と同等にサポートします。
非推奨(Deprecated)とは、InterSystems が現在積極的に開発を行っておらず、より優れたオプションが存在する機能またはテクノロジーを意味します。
非推奨の機能やテクノロジーを使用されているお客様はそれらを使用しないように計画していただく必要がございます。
InterSystems は非推奨の製品機能をサポートするためのスタッフの専門知識を維持しております。
例: ICM, NLP, Studio, UIMA, Spark Connector, Atelier, Zen, Zenレポート, Cache Server Pages (CSP)
廃止された(Discontinued)とはその機能またはテクノロジーが既存アプリケーションであっても今後利用できなくなることを意味します。
InterSystems はそのような技術を使用し続けることがお客様のリスクであると考えます。
理由には以下が挙げられますが、これらに限定するものではありません。
これは InterSystems FAQ サイトの記事です。
以下は、EXCELのシートから指定したセルのデータを取得してその値を返すメソッドの例です。
Class User.test
{
ClassMethod getSheetValue(n, m) As %String [ Language = python ]
{
# n行目 m列 のデータを戻す'c:/temp/a.xlsx'これは InterSystems FAQ サイトの記事です。
$ZF(-100)で外部コマンドを実行する場合、その外部コマンドの子プロセスからの応答が返らない限り、$ZF(100)コマンドを発行したIRISプロセスはその応答を待って残り続けます。
従ってIRISプロセスを終了させるためにはその応答がない子プロセスを強制終了させる必要があります。
InterSystems IRISのSQLの性能を評価する簡単なベンチマークテストを公開します。
また、このベンチマークプログラムで測定した過去の様々なハードウェアでのベンチマーク結果も公開します。
ハードウェアの進歩、インターシステムズの新しいテクノロジーの追加や性能改善によって、性能が劇的に変化しています。
現在のハードウェアの性能を考慮すると、少し物足りない感じが否めないですが、過去との結果の公正な比較という意味であえて、データの規模に関しては過去と同一条件でベンチマーク実施した結果となっています。
データの規模に関してはデータ件数を増やすことで変更できるようになっています。(現時点では500万件)
またこのベンチマークプログラムはインターシステムズ製品用に実装されていますが、使用しているテーブル構造は比較的シンプルなもので、また使用しているSQL文も標準的なものなので、他データベースシステムでも同じベンチマークを実施することはそんなに困難ではありません。
これは、InterSystems FAQサイトの記事です。
Pythonで、IRISサーバ外部から、IRISの処理を呼び出したりIRISのデータを扱いたい場合には、Native API for Pythonを使用します。
モジュールのインポートは、
import irisnative
で、行います。
詳細は、下記ドキュメント及び、各関連トピックをご参照ください。
[ドキュメント] InterSystems Native SDK for Python
一方、IRISサーバ内からPythonでIRISにアクセスする場合は、組み込みPython(Embedded Python)を使用することができます。
モジュールのインポートは、
import iris
で行います。
詳細は、下記ドキュメント、及び、各関連トピックをご参照ください。
[ドキュメント] 組み込みPython
これは、InterSystems FAQサイトの記事です。
【任意のXMLドキュメントの読み込み】
任意のXMLドキュメントの読み込みを行うには、%XML.TextReaderクラスを使用します。
Parseメソッド(※ドキュメントがファイルの場合はParseFile())を使用してドキュメントをパースし、各ノードのプロパティを取得します。
例えば、下記のXMLの場合、
各赤枠が、"ノード"の単位となり、

下記のようなイメージで取得することができます。
インターシステムズは、InterSystems IRIS Data Platform の2024.1 リリースを一般提供開始(GA)したことを発表しました。
2024.1 は、拡張メンテナンス(EM)リリースです。
【リリースハイライト】
今回のリリースには、以下のような数々の興味深いアップデートが含まれます:
1. ObjectScript でのベクトルの使用: データ操作を最適化する強力な機能
2. ベクトル検索 (実験的機能): 効率的なデータ検索のための最先端機能
3. マルチボリュームデータベース: スケーラビリティとストレージ管理の強化
4. ファスト・オンライン・バックアップ(実験的機能): バックアッププロセスの合理化
5. 複数のスーパーサーバポート: ネットワーク構成の柔軟性を提供
6. その他多数!
【ドキュメント】
注目機能の詳細は、以下のリンクからご覧いただけます。
InterSystems IRIS 2024.1 (英語)
本バージョンではプライベートWebサーバを使用した管理ポータル/Webアクセスが非推奨となりました。
詳細については以下もご参照ください。
https://jp.community.intersystems.com/node/558511
これは InterSystems FAQ サイトの記事です。
SQLのINSERT/UPDATE/DELETE文で大量のデータを更新する際に、高速化する方法をご紹介します。
以下の2つの手順を実行することで、更新処理のパフォーマンスを向上させることが可能です。
1.INSERT/UPDATE/DELETE時にインデックスを作成せず、あとでまとめて作成する
2.INSERT/UPDATE/DELETE時にジャーナルをOFFにする
1は、%NOINDEX キーワードを指定してインデックスの生成を後でまとめて行うことで、インデックスの構築を抑制しパフォーマンスを向上させる方法です。
クエリ実行例は、以下のようになります。
例:
UPDATEINSERT
更新後、あとでまとめてインデックスを再構築する場合は管理ポータルで行う方法と、コマンドで行う方法の2種類があります。
◆ 管理ポータルの場合...
[システムエクスプローラ] > [SQL]
(ネームスペース指定&テーブルを選択して) アクション - テーブルのインデックスを再構築...
◆ コマンドの場合...
%BuildIndices
2は、データ作成時にジャーナルをオフにすることでパフォーマンスを向上させます。
いつもお世話になっております。
IRISコミュニティ版を去年の4月ごろから使わせていただいておりましたが、期限切れを示唆するメッセージが出力されましたので質問させていただきます。
https://jp.community.intersystems.com/post/intersystems-iris%EF%BC%8Fin…
上記URLを拝見したところ「キーの期限を迎えた場合は、コミュニティ版の新バージョンに切り替えることで新しいキーが適用されます。」と記載されておりました。そこで、2点ほど質問がございます。
(1)新バージョンに切り替えることは具体的にどのように手順を踏めばよろしいでしょうか?
(2)新バージョンに切り替えたことで、今まで使用していたインスタンスの中身(テーブルやクラスなど)は復元や継承は可能でしょうか?
お手数をおかけしますが、教えていただけると幸いです。よろしくお願いいたします。
開発者の皆さん、こんにちは。
インターシステムズの講師付きトレーニング「システム統合機能(Interoperability)の使い方」3日間(有料)を下記日時で開催します!
開催方法は、Teams会議とブラウザ経由でアクセスする演習環境(Windows)を利用したオンラインでの開催です。(ブラウザと安定したネットワーク環境があれば特にその他準備は不要です。)
コースでは、InterSystems IRIS または InterSystems IRIS for Health(以降IRIS)のインストールから開始し、開発環境の作成、VSCodeを利用した簡単なクラス定義の作成、ObjectScriptを使用したオブジェクト操作の練習を行った後、本題のシステム統合機能(Interoperabiityメニュー)の解説と演習に入ります。
コースで用意している外部システムへのアクセスとしては、データベースとファイル入出力があります。進み具合にもよりますが、お時間ある時はREST経由で情報を受信する方法も演習いただけます。
なお、Interoperabilityについては、コミュニティのシリーズ記事「【はじめてのInterSystems IRIS】Interoperability(相互運用性)を使ってみよう!」でもご紹介しています。
これは InterSystems FAQ サイトの記事です。
Ens.Directorクラスのクラスメソッドを使用して取得できます。
プロダクション名(FAQSample.Interop.Production)とホスト名(FAQSample.Interop.FileOperation)を指定して設定リストを取得する方法は以下の通りです。
Set##class"FAQSample.Interop.Production||FAQSample.Interop.FileOperation"以下、出力結果です。
USER>zwite tSettings
tSettings(GetHostSettingValue()を使用すると、指定のプロダクション、指定コンポーネント内で指定している設定項目値を取得できます。
例はプロダクション名:FAQSample.Interop.Production、オペレーション:FAQSample.Interop.FileOperationで作成している設定値:OutputFileNameの値を取得しています。
GetAdapterSettingValue()を使用すると、アダプタが提供する設定項目を取得できます。
例はプロダクション名:FAQSample.Interop.Production、オペレーション:FAQSample.
これは InterSystems FAQ サイトの記事です。
永続クラス定義(またはテーブル定義)に対してオブジェクト操作でデータの参照・更新を行うとき、オブジェクトオープンで使用する%OpenId()、オブジェクトの削除に使用する%DeleteId()の第2引数を使用して並行処理の制御方法を選択できます。
ご参考:オブジェクト同時処理のオプション
既定値は1です。(永続クラスのDEFAULTCONCURRENCYクラスパラメータでデフォルト値を指定できます。特に変更していない場合は 1を使用します)
並行処理の基本事項は以下の通りです。
並行処理の値別の動作の違いは以下の通りです。(ドキュメントの「並行処理の値」に表がありますので併せてご覧ください)
これは InterSystems FAQ サイトの記事です。
ユーザに権限を与えたい場合、「GRANT」コマンドや「GrantPrivilegeメソッド」を使用しますが、ロールに対しても権限を与えることができます。
例えば、特定スキーマにのみ何でもできるロールを作成し、それを特定のユーザに割り当てるようなことが可能となります。
こちらの記事では、その方法をご紹介します。
(1) GrantPrivilegeメソッドを使用して「スキーマXXX に何でもできるロール」を作成し、
(2) 該当ユーザに (1) のロールを割り当てる
★GRANT文を使う場合
GRANTONSCHEMA
例:ロール testRole に、スキーマ XXX に対する、挿入/更新/参照/削除 の権限を付与します。
Updateこちらは、まだ存在しないスキーマに対しても実行可能です。
XXXスキーマにテーブルが登録されれば、自動的にそのテーブルに対して指定した権限が有効になります。
★$SYSTEM.SQL.Security.GrantPrivilege() を使う場合
例) ロール testRole に、スキーマ XXX に対する、挿入/更新/参照/削除 の権限を付与します
$SYSTEM2024.1 の開発者プレビュープログラムの一環として、4番目の開発者プレビューを公開いたします。リリースされる製品は InterSystems IRIS®, InterSystems IRIS® for HealthTM, HealthShare® Health Connect になります。
2024.1では、多くの機能修正や性能強化に加え、ObjectScript でのベクターの使用, ベクター検索 (実験的機能), マルチボリューム・データベース, 高速オンラインバックアップ の利用 (実験的機能),複数のスーパーサーバーポート の導入 といった新機能が追加されています。また本リリースには、フレキシブル環境での Python 実行 や Smart on FHIR 2.0.0 サポートなど、多くの機能進化が含まれています。
👉 注: これら新機能の一部は、今回の開発者プレビュー版にはまだ含まれていません。
2024.1 の別の注目点は、Health Connect では プライベート・ウェブサーバ (PWS) がインストーラから削除されることです。InterSystems IRIS インストーラからは、すでに2023.2 以降プライベート・ウェブサーバは削除されています。こちらの ドキュメント をご参照ください。
2024年最初のプラットフォーム最新情報をお届けします。初めてご覧になる方、はじめまして! この記事では、最近おこなわれた変更点や今後予定されている変更点に関する情報を、みなさまに共有させていただきます。ただ、将来の予測は難しい側面があり、ロードマップは約束されたものではないということを十分ご理解くださいませ。