開発者の皆さん、こんにちは!
InterSystems IRIS 、InterSystems IRIS for Healthのコミュニティエディションは、WindowsやLinuxにインストールするキットの他にコンテナ版も公開されています。
コンテナ版はダウンロードページからではなく、InterSystemsコンテナレジストリ よりpullいただけます。
この記事では、InterSystemsコンテナレジストリ の使い方と、コンテナ開始までの流れをご紹介します。
開発者の皆さん、こんにちは!
InterSystems IRIS 、InterSystems IRIS for Healthのコミュニティエディションは、WindowsやLinuxにインストールするキットの他にコンテナ版も公開されています。
コンテナ版はダウンロードページからではなく、InterSystemsコンテナレジストリ よりpullいただけます。
この記事では、InterSystemsコンテナレジストリ の使い方と、コンテナ開始までの流れをご紹介します。
インターシステムズは、InterSystems IRIS データ・プラットフォーム、InterSystems IRIS for Health 、HealthShare Health Connect のメンテナンスバージョン 2023.1.1 をリリースしました。これらのリリースは、2023.1.0 に対するバグフィックスを提供します。
詳細な変更リスト/アップグレード・チェックリストは、以下のページをご参照ください。(すべて英語版です)
・InterSystems IRIS
・InterSystems IRIS for Health
・HealthShare Health Connect
ソフトウェアの入手方法
本製品は、従来からのインストーラパッケージ形式と、コンテナイメージ形式をご用意しています。利用可能なインストーラとコンテナイメージの一覧は、サポートプラットフォームページ(英語) をご覧ください。
InterSystems IRIS と IRIS for Health のインストーラパッケージは WRC Direct の IRIS データプラットフォームダウンロードページ から入手できます。
HealthShare Health Connect のインストーラパッケージは WRC Direct の HealthShareダウンロードページ から入手できます。
開発者の皆さん、こんにちは!
ご存知のように、InterSystems IRIS インターオペラビリティソリューションには、プロダクション、ビジネスルール、ビジネスプロセス、データ変換、レコードマッパーなどの様々なエレメントが含まれています。 また、UI ツールを使用してこれらの要素を作成し、変更することもあります。 もちろん、UI ツールで行った変更をソース管理する便利で堅牢な方法も必要です。
長い間、これは手動(クラス、エレメント、グローバルなどのエクスポート)か面倒な設定作業手順によって行われてきました。そのため、ソース管理 UI の自動化で節約された時間は、設定のセットアップとメンテナンスの時間で相殺されていました。
現在では、この問題はなくなりました。 パッケージファースト開発と @Timothy Leavitt の git-source-control という IPM パッケージの使用という 2 つのアプローチによる結果です。
詳細は以下のとおりです!
クラスメソッドの多くは、%Status データ型を使用して、成功 または 失敗 の情報を返します。
成功の場合は 1 が返り、失敗の場合はエラーステータス および 1 つ以上のエラーコードとテキストメッセージを含むエンコードされた文字列が返ります。
このようなメソッドでは、戻り値を必ず取得して確認するようにしてください。
こちらの記事では、失敗の場合の具体的なエラー情報を確認する方法をご紹介します。
USER>set file=##class(%File).%New("C:\test\text.txt")
USER>set st=file.Open("R")
USER>write st
・・C:\test\text.txt.USER%e^Open+5^%Library.File.1^4e^^^0 // 何のエラーかわからない
エンコードされたエラーの文字列より、具体的なメッセージを表示したい場合、%SYSTEM.Status クラスのメソッドを使用します。
// 以下のようなステータスコードが返る場合
USER>write st
・・C:\test\text.txt.USER%e^Open+5^%Library.File.1^4e^^^0
// 次のようにして具体的なエラーの詳細メッセージを表示できます
USER>do $SYSTEMStatus.最近人気上昇中のプログラミング言語Python、ご存じのとおりIRISでは2通りの使い方が出来ます。
組み込みPython(Embedded Python)
PythonコードはIRISプロセス内でObjectScriptコードと並列に実行
具体的には
が該当します。
ネイティブAPI(Native API)
IRISの外からグローバルへのアクセス、クラスメソッドを呼び出し
上の4種類以外は全てネイティブAPIを使用します。
Pythonコードが実行される場所でIRISへのアクセス手段が決まりますが、ライブラリ名が双方とも”iris”のため注意が必要です。
* 従来からのirisnativeはDeprecated(非推奨)となりました
サンプルコードを探す時やドキュメントを参照する時、どちらのPython APIを使用しているか頭の片隅にあると予期せぬエラーに遭遇する機会が減るかも知れません。
組み込みPythonのirisパッケージ
2023.2 の開発者プレビュープログラムの一環として、5番目の開発者プレビューを公開いたします。今回リリースされたのは、InterSystems IRIS と InterSystems IRIS for Health です。
2023.2では、多くの機能修正と改善に加えて、時間認識モデリングや 強化された外部テーブル (まだ実験的な機能です) といった新機能が含まれる予定です。これら新機能の一部は、今回の開発者プレビュー版にはまだ含まれていません。ご注意ください。
2023.2の別の注目点は、プライベート・ウェブサーバ (PWS) がインストーラから削除されることです。このことは昨年に発表され、インターシステムズ製品のインストーラから削除予定ですが、今回のプレビュー版ではまだPWSは存在します。詳細はこちらのドキュメントをご覧ください。
--> PWSが含まれないインストーラにご興味のある方は、こちらのフォームからEAPに登録してください。その際、オプションで「No Private Web Server」をお選びください。このEAPに関する情報はこちらをご参照ください。
今後のプレビューリリースは、2週間ごとの発表を予定しており、新機能が完成次第、プレビュー版に追加されていきます。
開発者の皆さん、こんにちは!
第4回 InterSystems 技術文書ライティングコンテスト:InterSystems IRIS チュートリアル が終了しました。
期間内に投稿された🌟 24の素晴らしい記事はこちらから 🌟ご覧いただけます。
この記事では、コンテスト受賞者を発表します📣
この記事では、InterSystems IRIS の学習に関連したトピックについて、開発者コミュニティでの厳選された記事にアクセスすることができます。機械学習や Embedded Python、JSON、API と REST アプリ、InterSystems環境の構築と管理、DockerとCloud、VSCode、SQL、Analytics/BI、グローバル、セキュリティ、DevOps、インターオペラビリティNative API、それぞれでランク付けされたトップの記事を見ることができます。ぜひ、楽しみながら学んでください!
機械学習は、高度なデータ分析を構築し、優れた効率で手動活動を自動化するための必須技術です。既存のデータから学習する認知モデルを作成し、自己調整されたアルゴリズムに基づいて予測、確率計算、分類、識別、「非創造的」な人間の活動の自動化を実行します。
すべてのシナリオにおいて、InterSystems IRISは、これらのマシンラーニングモデルを作成、実行、利用可能にし、使用するためのデータプラットフォームおよび環境として機能します。IRISは、SQLコマンドからのML利用(IntegratedML)、Embedded PythonやPMML(Predictive Model Markup Language)による機械学習が可能です。
こんにちは、皆さま。
業務でIRISを用いて開発を行っている者です。
現在、Embedded Pythonを用いて開発を行おうとしているのですが、
別のNMSPに存在するグローバルをiris.gref()で参照する方法がわかりませんでした。
> iris.gref("^[NMSP]GBL") <-----こうしても自身のNMSPのグローバルを参照してしまう。
諦めてznでネームスペースを切り替えてみようかな、とも思ったのですが、
python上でznをかける方法もよくわからず、対応方法に悩んでいます。
どなたか、上記の対応方法についてご存じな方はいらっしゃいませんでしょうか?
開発者の皆さん、こんにちは!
InterSystems グランプリ・コンテスト2023の投票が開始されました!
🔥 ベストアプリケーションはこれだ!! 🔥と思う作品にぜひ投票をお願いします。
(1).jpg)
投票方法は以下ご参照ください。
InterSystems IRIS Cloud SQL は、何千ものエンタープライズのお客様に利用いただいている InterSystems IRIS の優れたリレーショナルデータベース機能を実感いただける、幅広いアプリケーション開発者やデータ専門家のみなさまのためのフルマネージドサービスです。また InterSystems IRIS Cloud IntegratedML は、この DBaaS (Database-as-a-Service) のオプションであり、SQL ネイティブを通じて強力な自動機械学習機能を簡単にご利用いただけるサービスを提供します。シンプルな一連の SQL コマンドは簡単にアプリケーションコードに組み込むことができるため、データに近いところで動作する ML モデルにより、お客様のアプリケーションを拡張することができます。
本日は、これら2製品に関する 開発者アクセスプログラム を発表いたします。アプリケーション開発者は本サービスにみなさまご自身で登録いただくことで、デプロイメントの作成、構成可能なアプリケーションのビルド、そして本サービスによってプロビジョン、構成、システム管理が実行されるスマートデータべースを体験いただけます。
VScodeを使用してローカルのルーチンを編集している途中で、PCが重かったため再起動を行って、 再びIRISを起動しようとするとエラーとなり起動できません。 どなたか解決策をご存知でしょうか?よろしくお願いいたします。
ーーーーーーーーーーーーー 現象: ローカルのIRISを起動すると、エラーとなり起動できない。
操作:

詳細:
・接続先 IPアドレス: localhost ポート: 51773
・mgr/mesages.logのエラーログ
*** Recovery started at Sat Jul 1 08:35:25 2023
.略
07/01/23-08:35:36:165 (19356) 3 [Utility.Event] Error: ERROR #5001: Could not start SuperServer on port 51773, may be in use by another instance - Shutting down the system : $zu(56,2)=$Id: //iris/2022.1.2023.2がリリースされると同時に、IRIS ならびに IRIS for Health コンテナのタグと配布に関して少し変更を行います。
IRIS コンテナはこれまで、例えば 2023.1.0.235.1 のように、ビルド番号を付与したタグづけを行っていました。しかしお客様から、新製品がリリースされるたびに dockerfiles や Kubernetes ファイルを変更しなくていいよう、より安定的なタグに関するご要望をいただいてきました。 それを踏まえ、コンテナ・イメージのタグについて、以下のように変更を行います。
メジャー.マイナー タグ: コンテナのタグは、年とリリース番号でのみ記述され、ビルド番号は付きません。例えば、現在以下のように取得されるイメージは
containers.intersystems.com/intersystems/iris:2023.2.0.606.0
今後は以下のフォーマットに変わります。
containers.intersystems.com/intersystems/iris:2023.2
latest-em と latest-cd タグ: 最新の拡張メンテナンス (EM) と 継続的デリバリ (CD) のバージョンは、それぞれ latest-em 、 latest-cd とタグ付けされます。
これは、InterSystems FAQサイトの記事です。
以下の様な方法で、グローバルのインポート/エクスポート処理をプログラムに組み込むことができます。
1. グローバルエクスポート方法
1.1 XML形式でのエクスポート
グローバルをXML形式のファイルにエクスポートする場合、$system.OBJ.Export() を使用します。 1.1.1. 指定したグローバルをエクスポートする場合
エクスポート対象グローバルを グローバル名.gbl で指定します(先頭の ^ は不要)。
例:
Do $system.OBJ.Export("a.gbl,b.gbl","c:\temp\globals.xml",,.errors)結果については、errors に格納されます。
$system.OBJ.Export() の詳細は%SYSTEM.OBJクラスのクラスリファレンスをご確認ください。
クラスリファレンス:%SYSTEM.OBJ
1.1.2. ネームスペース内の全グローバルをエクスポートする場合
%SYS.GlobalQueryクラスでグローバル一覧を取得し、それを $system.OBJ.Export() に渡してエクスポートを実行します。
例:
Set rs=##class(%ResultSet).%New("%SYS.GlobalQuery:NameSpaceList")
Do rs.これは InterSystems FAQ サイトの記事です。
LOAD DATAは、バージョン2022.1から追加されたSQLコマンドで、CSVファイルやJDBCソースからデータをテーブルにロードするコマンドです。
データが存在するテーブルにLOAD DATAを実行した場合、データは追記されます。
※ バージョン2022.1をご利用いただく場合は、バージョン2022.1.3 をご利用ください。(2022.1.0~2022.1.2は、使用するJARファイルの不備により動作しません。)
LOAD DATAを利用する際、Javaの外部サーバ(Javaゲートウェイ)を使用するため、IRISをインストールした環境にJavaのインストールが必要です。
サポート対象のJavaバージョンについては、ドキュメントの「サポート対象Javaテクノロジ」をご参照ください。
LOAD DATAを利用するためには、Javaインストール済、かつ外部言語サーバで %Java_Server 設定済の環境である必要があります。
※ 環境変数JAVA_HOMEの設定がある場合は以下 %Java_Serverの設定は不要です。
%Java_Server 設定詳細は以下の通りです。

利用手順は以下の通りです。
コミュニティの皆さん、こんにちは。
この記事では、InterSystems Embedded Python の使用方法を説明します。以下のトピックが含まれます。
では、概要から始めましょう。

BOMつきのUTF-8ファイルを、ObjectScriptで読むとき、どんなコードを書くべきでしょうか?
そんなときは、 %Stream.FileCharacter クラスを利用するのが便利です。
具体的な使い方は、以下のサンプルコードをごらんください。このAPIは、ファイルの文字コードを自動的に判断してくれるのが嬉しいです。そのため、読み込むファイルの文字コードが、BOMつきUTF-8、BOMつきUnicode、SJIS、どれであろうと、共通のコードで正しく日本語を取り扱ってくれます。
少しでもご参考になれば幸いです。
set f=##class(%Stream.FileCharacter).%New()
set f.Filename="c:\temp\abc.txt"
set x=f.ReadLine()
zw x
参考記事: UTF-8のBOM付きのファイルを作成する方法
今日の相互運用性分野に従事する多くの人にとって、REST は最高峰にあります。 REST API 開発用のツールとアプローチが溢れかえる中、コードを書き始める前に、どのツールを選び、何を計画する必要があるでしょうか? この記事では、堅牢性、適応性、および一貫性に優れた REST API を構築できるようにする設計パターンと考慮事項を焦点としています。 CORS サポートと認証管理の課題に他する実行可能なアプローチについて、REST API 開発の全段階に適用できる様々なヒントとテクニック、最適なツールを織り交ぜながら説明します。 InterSystems IRIS Data Platform で利用できるオープンソース REST API と複雑化し続ける API の課題にどのように取り組むかについてお読みください。 これは、同じトピックに関する最近のウェビナーを記事にしたものです。
Apache経由でREST通信する場合、ApacheでRESTを動かす場合の設定方法 (含:Webゲートウェイのインストール手順) の方法 で設定を行います。
この際、Apachの構成ファイル(httpd.conf)にRESTを動かすための設定を入れるのですが、設定後のシンタックスチェックで以下の警告が出る場合があります。
※httpd -t 実行時 Apache Configuration: CSP directive 'csp' detected in VirtualHost, only supported at default server level
こちらは、<VirtualHost> ~ </VirtualHost> 内に、CSP ディレクティブ の内容を設定している場合に出力されます。
CSP on
CSPFileTypes *
などの IRIS にアクセスをするための設定は、<VirtualHost> ディレクティブの外に設定するようにしてください。
詳細は以下のドキュメントをご覧ください。
追加ファイル・タイプを渡すための Apache の構成 (すべてのプラットフォーム)
開発者の皆さん、こんにちは。
ご好評をいただいておりますインターシステムズ主催・開発者向けオンラインセミナーにつきまして、7月は以下の日時・内容で開催いたします。
(参加費無料・事前登録制)
お申し込みは《こちら》
【概要】
最近おもにノーコードやオートメーションの文脈で、サービスとサービスを簡単につなぎ合わせるソフトウェアやクラウドサービスが注目を集めています。それらはとても便利ですが、実際のビジネスフローはポイントツーポイントのシステム間連携だけではありません。
IRISのインターオペラビリティ機能の価値は、そのビジネスプロセスの表現力・実装力にあります。あるお客様からをバッジジョブの管理に使用できないかというご相談をいただき、そのプロトタイプを作成しました。当セミナーは、その仕組みや作成の際に気を付けた点について、説明させていただくことで、インターオペラビリティ機能のビジネスプロセスについて理解を深めていただくことを目的としています。
皆さんこんにちは!
この記事でご紹介する「開発環境テンプレート」は、最近 医療 IT で注目を集めている 医療情報交換標準規格 FHIR
を体験できるコンテナです。
一式は、こちら(https://github.com/Intersystems-jp/IRIS-FHIR-Oximeter-Template)で公開しています。
コンテナビルド時、InterSystems IRIS for Health コミュニティエディションを使用した FHIR R4 リソースリポジトリの用意と、REST 用エンドポイントが用意されます。
作成されるエンドポイントに対して、REST クライアントから直接 FHIR R4 リソースリポジトリへアクセスすることもできますし(使用例はこちら/ビデオの解説はこちら)、Patient リソースと Observation リソースの操作体験が行えるサンプル Web アプリケーション(使用例はこちら/ビデオの解説はこちら)もコンテナに含まれていますので、お好みの方法で操作を体験できます。
この開発環境テンプレートでは、さらに! FHIR サーバーサイドアプリケーション(=プロダクション)のサンプルも用意しています(図例はこちら)。
プロダクションは、新生児につけたパルスオキシメーターの測定値が定期的に送信されてくることを仮定して作られています。
プロセスの単位の詳細情報(使用メモリサイズ、ユーザ名、実行ルーチンなど)は管理ポータルで確認できますが、それらをコマンドで取得する方法をご紹介します。
管理ポータル:
[システムオペレーション] > [プロセス] (プロセス毎の)詳細リンク
%SYS.ProcessQuery クラスを使用して、以下のように行います。
USER>set x=##class(%SYS.ProcessQuery).%OpenId(<PID>) // 自プロセスの場合は <PID> = $JOB
USER>write x.MemoryUsed
188
USER>write x.UserName
UnknownUser
USER>write x.ClientIPAddress
127.0.0.1
USER>zwrite x // 全てのプロパティを確認したいとき
:
Embedded Python で呼び出したい場合は以下のようにします。
# 以下のサンプルは自プロセスの情報を取得する方法
import iris
import os
x=iris.cls('%SYS.ProcessQuery')._OpenId(os.getpid()) # iris.cls('%SYS.ProcessQuery')._OpenId(<PID>)
print(str(x.2023.2 の開発者プレビュープログラムの一環として、4番目の開発者プレビューを公開いたします。今回リリースされたのは、InterSystems IRIS と InterSystems IRIS for Health です。
2023.2では、多くの機能修正と改善に加えて、時間認識モデリングや 強化された外部テーブル、読み込み専用の FEDERATED テーブルといった新機能が含まれる予定です。これら新機能の一部は、今回の開発者プレビュー版にはまだ含まれていません。ご注意ください。
2023.2の別の注目点は、プライベート・ウェブサーバ (PWS) がインストーラから削除されることです。このことは昨年に発表され、インターシステムズ製品のインストーラから削除予定ですが、今回のプレビュー版ではまだPWSは存在します。詳細はこちらのドキュメントをご覧ください。
--> PWSが含まれないインストーラにご興味のある方は、こちらのフォームからEAPに登録してください。その際、オプションで「No Private Web Server」をお選びください。このEAPに関する情報はこちらをご参照ください。
今後のプレビューリリースは、2週間ごとの発表を予定しており、新機能が完成次第、プレビュー版に追加されていきます。
先週の InterSystems Global Summit にて、今年の初めにリリースしました2023.1のエクスペリメンタル機能として、新たな 外部テーブル を発表しました。現在、 外部テーブルの Early Access Program にご参加いただきご評価いただくことで、この機能がお客さまのニーズに合っているか、次に向けてどの機能を優先するべきか、お知らせいただきたいと考えています。
外部テーブルって何なの?
この素晴らしい概要ビデオを見る時間やポップコーンがない場合に備えて、外部テーブルは、ファイルやリモートデータベースなど、物理的に別の場所に保存されているデータをIRIS SQLとしてアクセスするのに役立つ機能です。外部テーブルは、通常のIRISテーブルとしてSQLに表示され、他の通常テーブルや外部テーブルとのJOINなど、あらゆるSQLステートメントで使用することができます。クエリを実行する際、外部テーブルから何を検索する必要があるのかを理解し、そのサーバーがリレーショナルデータベースの場合は、ネットワーク経由で取得するデータを最小限に抑えるようなクエリを出力しています。
なぜデータをロードするだけじゃないの?
それはいい質問ですね!データをロードした後、IRISでクエリを実行すると、ソース・システムですでに変更されている可能性があります。
インターシステムズは、InterSystems IRIS 製品でプロセスメモリの使用量が増加する不具合を修正しました。
対象バージョン:
InterSystems IRIS 2022.2, 2022.3, 2023.1.0
InterSystems IRIS for Health 2022.2, 2022.3, 2023.1.0
HealthShare Health Connect 2022.2, 2022.3, 2023.1.0
Healthcare Action Engine 2022.1
対象プラットフォーム: すべて
問題の詳細:
ローカル変数に対して $Order、$Query または Merge を実行する際に、プロセスのローカル変数テーブルのメモリ消費量の増加が発生します。 この問題は、ほとんどの実行環境では悪影響を与えませんが、プロセス数が多い環境、またはプロセス当たりの最大メモリを厳密に制限している環境では、影響を受ける可能性があります。 また、一部のプロセスで <STORE>エラーが発生する場合があります。
解決方法:
この問題は修正 ID : DP-423127 および DP-423237 で解決します。
これらの修正は、今後のすべてのバージョンに含まれる予定です。
Docker コンテナと REST API の基本的な知識で、InterSystems API Manager による API とマイクロサービスの制御に挑戦したいと思い、 ホストにローカルの IRIS インスタンス(Windows OS)を使用し、Linux VM で IAM (ゲスト)を実行するこのオンラインコースを実行してみました。
まず InterSystems API Manger(IAM)を紹介してから、ローカル環境をセットアップするための手順を説明し、最後にコースの各章の内容を確認しましょう。
今日では、API トラフィックの管理、監視、および保護が UI ポータルに集約される 簡単なデプロイのメリットを生かして、API を管理することが非常に重要となっています。
InterSystems API Manger(IAM)は、IRIS アプリケーションが消費し公開する API とマイクロサービスを制御します。 下流と上流のシステムの間の API ゲートウェイであり、どの API がどれくらいの頻度で誰に呼び出されたのかを視覚的に追跡する方法も備わっています。
これは InterSystems FAQ サイトの記事です。
注意:本番環境では実行しないでください。テスト環境でご利用ください。
開発時にプロダクションに残っているキューを一括でクリアしたり、プロダクションに関連した一次的な情報をすべて消去したい場合、以下メソッドを利用して実行中のプロダクション情報をリセットできます。
set $namespace="プロダクションのあるネームスペース名指定"
do ##class(Ens.Director).CleanProduction()ドキュメント:ネームスペースでのプロダクションのリセット
プロダクション全体ではなく、一部コンポーネントの実行中データをリセットする場合は、アダプタの ClearAllAppData() を使用します。
引数にはプロダクションに登録している構成名を指定してください。
例)SQLインバウンドアダプタが保持している永続値をリセットする
do ##class(EnsLib.SQL.InboundAdapter).ClearAllAppData("構成名称")ドキュメント:受信アダプタで以前に処理された行のリセット
例)FTPインバウンドアダプタが処理したファイルの情報をリセットする
do ##class(EnsLib.FTP.InboundAdapter).ClearAllAppData("構成名称")FHIRドキュメント(診療情報提供書や退院時サマリ―など)をFHIRリポジトリにPOSTする場合、
エンドポイント/Bundle
上記URLでPOSTできます。(以下の例では、IRIS for Healthに用意したFHIRリポジトリを使用しています。)
.png)
GET要求で確認してみます。
.png)
登録できたことを確認できました。
FHIRリポジトリに登録したFHIRドキュメントですが、文書番号を指定してGETできると便利なのですが、現時点(バージョン2023.1)のIRIS for HealthのFHIRリポジトリでは、FHIR標準仕様にあるBundle の SearchParameter :composition について未対応のため、Composition.identifier を指定した Bundleリソースに対する GET要求が行えません。
そこで回避策として、Bundle登録時 Composition.identifier.value に設定している文書番号を Bundle.identifier.value にも設定しPOSTします。こうすることで、Bundle の Search Parameter:identifier に文書番号を指定でき、対象となるBundleリソースをGETできます。
開発者の皆さん、こんにちは!
InterSystems グランプリコンテスト2023 では、InterSystems IRIS data platform を使用する機能であればどんな内容でもご応募いただけます。
以下の機能を含めた場合、ボーナスポイントを獲得できます。
詳細は以下の通りです。