インターシステムズのサポートではレポートのトラブルシューティングを手助けしており、彼らはローカルシステムにて問題を再現したいのですが、JDBC データソース接続が失敗するため、レポートを実行できず、残念な結果となります。 何かよい方法はあるでしょうか?
開発者の皆さん、こんにちは!
InterSystems Full Stack コンテスト 2022 の投票結果か発表されました!この記事ではコンテスト受講者を発表します 📢

受賞された開発者の皆さん、👏おめでとうございます!🎊
開発者の皆さん、こんにちは!
次のコンテスト:🐍 InterSystems 技術文書ライティングコンテスト:Python エディション 🐍 が発表されました 📢
このコンテストは、6月20日~7月21日31日までの期間に、InterSystems のテクノロジと Python の使い方に関するあらゆるトピックについての記事を投稿いただくコンテストです!
今回は、応募期間中に投稿いただいた方 全員 に 🎁賞品🎁 をご用意しています。
🏆 特賞: AirPods Max; Apple Watch SE; Apple HomePod mini / Apple Pencil

開発者の皆さん、こんにちは! DICOM 統合を実装したことはありますか? おそらく例やシミュレーターを探したことはあるかもしれません。 この記事では、有用な例を紹介したいと思います。
DICOM はヘルスケアの分野で画像診断に広く使用されているメッセージ規格です。DICOM 規格は、IRIS For Health と Health Connect の両方を使用して、相互運用性の本番環境で使用することができます。これについては、ドキュメントをご覧ください。
多くの場合、DICOM 統合を開発する際に外部システム(PACS など)をシミュレーターで実行すると非常に便利です。実際のシステムに接続する前に、実装したいフローを完全にテストすることができます。
IRIS For Health と dcm4che というシミュレーターを使った DICOM 統合の例があります。
この例では、2 つのシナリオが実装されています。
埋め込み PDF で DICOM メッセージを受信する

DICOM 画像をクエリして PACS から取得する
クエリフロー:

取得フロー:

さまざまな貢献をぜひお待ちしています :)
これは InterSystems FAQ サイトの記事です。
管理ポータルメニュー [Interoperability] > [構成] > [システムのデフォルト設定] で設定したデータを移行する場合、設定値が格納されているグローバル変数をエクスポートし、移行先システムでインポートします。
画面で登録した以下のような情報は、
.png)
グローバル変数 ^Ens.Config.DefaultSettingsD に格納されています。
.png)
認証情報については、グローバル変数 ^Ens.SecondaryData.Password に格納されます。
InterSystems IRIS をご利用の場合は、このグローバルは xxxSECONDARY(xxx はネームスペース名)のデータベースに格納されます。
InterSystems IRIS for Health をご利用の場合は、このグローバルはネームスペースのデフォルトデータベースに格納されます。
xxxSECONDARYデータベースについて詳細は、以下ドキュメントをご参照ください。
InterSystems IRIS のパスワード資格情報の格納場所
【関連トピックのご紹介】
開発者の皆さん、こんにちは!
InterSystems Full Stack コンテスト 2022 の投票が始まりました!
🔥 ベストアプリケーションだ! 🔥と思う作品に投票をお願いします!
投票方法は以下ご参照ください。
はじめに
この記事では、gRPC とは何か、そして IRIS 組み込み Python を使って公式の Hello World を実行する例を紹介します。
ここで紹介するすべてのコードは、こちらのプロジェクトリポジトリにあります。
gRPC
gRPC(gRPC リモートプロシージャーコール)は、RPC プロトコルに基づく API アーキテクチャー式です。 このプロジェクトは、2015 年に Google によって作成され、Apache 2.0 の下にライセンス供与されています。 現在、プロジェクトは、Cloud Native Computing Foundation(CNCF)によってサポートされています。
マイクロサービス式のアーキテクチャのサービスなど、バックエンド間でサービスを接続することで使用することができます。
プロトコルバッファ
ほとんどの RPC ベースのプロトコルは、IDL(インターフェース記述言語)を使用して、サーバーとクライアント間の通信コントラクトを定義します。
gRPC は、プロトコルバッファという、シリアライザーメカニズムフォーマットを使用します。
このフォーマットの目的は、メソッドとデータ構造を定義できるという点で、WSDL に似ています。
IRIS 2022.1では Embedded Python が導入されました。Embedde Python によって、IRISの独自言語である ObjectScript と Python の親和性の良さをぜひ実感いただけると嬉しいです。今回の記事では、日本語PDFをPythonライブラリを利用して作成し、さらに ObjectScript と融合するところまで見ていただこうと思います。
前編から少し間が空きましたが、シアトルで開催されたグローバルサミット2022の数日間を簡単に振り返ってみましょう。
After a short (or too long) pause from the previous part here is a short recap of the next few days of the Global Summit 2022 in Seattle!
前回同様、キーノートで始まりました(明日から視聴できます
)。 しかし、6月21日の基調講演とは異なり、その翌日はData Platform IRISに特化した内容となっています。前回同様、トピックとプレゼンターはこちらで確認できます。注目のスピーチは、ベストセラー作家、コンサルタント、破壊的技術のスペシャリストであるGeoffrey Moore氏
開発者コミュニティのメンバー、インターシステムズパートナー、そしてインターシステムズ製品に興味を持つ多くの人々が、待ち望んでいた時がやってきました。ついに、長い間お待たせしていたGlobal Summitが今年開催することができました。今回は、シアトルでの開催です。 急な坂道、エリオット湾の絶景、そして地元の人に言わせれば、常に天候の悪い美しい都市 ![]()

iris コマンドを使用することで実行できます。
iris コマンド(iris.exe)は、<インストールディレクトリ>\bin にインストールされています。 書式:
iris run インスタンス名 tag^routine([parameter-list]) ネームスペース名iris run インスタンス名 ##CLASS(package.class).method([parameter-list]) ネームスペース名インスタンス名は、管理ポータル(システム管理ポータル)の右上にある [インスタンス:] に表示されている文字列です。
実行する環境に応じて一部の文字 ^ や " をエスケープする必要があります。
Windowsの場合は、以下のようなエスケープが必要となります。



例: USERネームスペースで do info^test(123,"abc") を実行します。
c:\InterSystems\IRIS\bin>iris terminal IRIS info^^test(123,\"abc\") USER
例: USERネームスペースで do ##class(Test.Class1).test(123,"abc") を実行します。
c:\InterSystems\IRIS\bin>iris run IRIS ##class(Test.Class1).CPU:サポート対象OSが問題なく動作するもの
以下のページをご参考ください。
ディスク容量:アプリケーションの要件を除外した場合、 IRISをインストールするためには、最低1.5GB以上の空き容量が必要です。
実際に必要となる容量は、インストーラでセットアップタイプで "カスタム(Custom)"
を選択すると、インストールコンポーネント毎にご確認いただけます。
メモリ:推奨メモリー値は、アプリケーションや物理メモリサイズによるため
一概には言えませんが、IRISの全プロセスで使用するメモリサイズは以下になります。
①プロセスパーティション * ⑤プロセス数
+
②データベースキャッシュ
+
③ルーチンキャッシュ
+
④一般ヒープメモリ
計算式でのこれらのパラメータは、業務アプリケーションの特性により異なってきます。
以前に導入実績のある業務アプリケーションの場合、既存システムでどの様に設定されたかも参考にしてください。
①プロセスパーティション(プロセスあたりの最大メモリ)
管理ポータルで設定します。既定値は 262,144(KB)です。
IRISがc:\InterSystems\IRISにインストールされているとします。
(1) a.py を C:\InterSystems\IRIS\lib\python に置きます。
a.py
def test():
print('Hello World!')
(2) それを IRISのクラスから実行します。
ClassMethod xx() [ Language = python ]
{
import a
a.test()
}
USER>do ##class(User.test).xx()
Hello World!
もし、a.py を別のディレクトリ C:\temp に置きたい場合は、C:\temp\ をPythonのPATHに指定する必要があります。
以下の方法があります。
(A) 管理ポータル>システム管理>構成>追加設定>メモリ詳細>PythonPath
の値に C:\tempを設定し、a.pyをそのディレクトリに置き、 IRISを再起動します。
ClassMethod xx() [ Language = python ]
{
import a
a.test()
}オリジナルの「InterSystems IRIS で Python を使って IMAPクライアントを実装する」は、埋め込みPythonを使用してIMAPインバウンドアダプタを実装されていますが、最近メールプロバイダがあいついでoAuth2認証しか受け付けなくなってきているので、その対応をしてみました。
本稿のGitHubはこちらです。
変更点
GMAILに対してメールの送受信を可能とするためにオリジナルに以下の修正を施しています。
- IMAP(Python版)インバウンドアダプタにoAuth2認証およびRefreshTokenによるAccessTokenの更新を追加
- oAuth2認証およびRefreshTokenによるAccessTokenの更新機能を持つSMTPアウトバウンドアダプタを新規作成
- IMAPにバイナリの添付ファイルの処理を追加
- メッセージ削除に、推奨APIであるclient.uid("STORE")を使用するように変更
- ClientIdなど、センシティブな情報をコンテナ起動時に動的に適用するように変更
- 日本語使用時の文字化けに対処
3.添付ファイルが存在する場合、追加設定/ファイル・パスで指定したファイルパス(既定値は/var/tmp/)上に保存します。
5.の実現は、プロダクション(IMAPPyProduction.
皆さん、こんにちは。
IRIS 履歴モニタープロジェクトが更新されました。ZPM とビルトインの REST API /api/monitor/metrics を使用します。
開発者の皆さん、こんにちは!
PythonでExcelからPDFへ変換を行うには、pywinを使うとできるらしいので、IRISにあるデータをDataframeに設定した後Excelに出力し、ExcelからPDFに変換する流れを、Embedded Pythonで試してみました。
メモ:pywinはWindows環境下で動くモジュールのようです。
Excelに出力するデータですが、例では、SELECTの結果をDataframeに格納する方法を利用しています。グローバル変数の情報をDataframeに格納する方法については、以下の記事で詳しくご紹介しています。ぜひご参照ください。
Embedded Python で IRIS グローバル($LB) を Pandas Dataframe に変換する方法
まずは、必要なモジュールをインストールする必要があるので、pywin32 モジュールを irispipを使ってインストールします。
以下の例では、IRIS for Health が c:\InterSystems\IRISHealth にインストールされている状態で実行しています。
Embedded Pythonは、IRIS/IRIS for Health どちらでも利用できます。
開発者の皆さん
こんにちは。
シアトルで開催されたグローバル・サミット2022は、ちょうど1週間前に終了しましたが、会場にいながら聞き逃した方や、何らかの理由でこの対面式イベントに全く参加できなかった方のために(あるいは、記憶をリフレッシュしてもう一度聞きたい方のために)、キーノートがすでに公開されています。
前置きはこれくらいにして、グローバルサミット最初はコミュニティの皆さんからのご挨拶です。
それでは、このYouTubeプレイリストでグローバルサミット2022全3日間のキーノートをお楽しみください。
これは InterSystems FAQ サイトの記事です。
Question:
IRIS Data Platformは大量のトラフィック処理に耐えられますか?
Answer:
IRIS Data Platformは他のデータベースシステムに比較してデータの処理スピードおよび処理能力の面で優れています。
ESGという外部機関が実際に他社データベース製品とのベンチマークテストを実施した結果に関するレポートを公表しています。
またウルシステムズ社による検証結果も公開されています。
ご参考いただければ幸いです。
IRISリリース2022.1のご紹介
本稿は、「InterSystems IRIS、IRIS for Health、HealthShare Health Connect 2022.1がリリースされました!」でご案内している内容を、補足解説する内容となります。
紹介ビデオ
米国本社プロダクトマネージャーによる本リリースのハイライトのご紹介ビデオ(英語)です。 https://www.intersystems.com/resources/whats-new-in-intersystems-iris-2022-1
リリース内容
年一度のEMリリースです。
これは InterSystems FAQ サイトの記事です。
バージョン2015.2以降から、Windows上のインストール環境では、サービス・アカウントを
「Windowsコントロールパネル > 管理ツール > サービス > InterSystems IRIS/Cache Controller for XX」
の「ローカル・システムアカウント」から Windows の任意の管理者アカウントに変更した場合に <NOTOPEN> エラー または -1 が返ります。
この状況を回復するためには、以下2つの設定をする必要があります。
1. 「Windowsコントロールパネル > 管理ツール > サービス > InterSystems IRIS/Cache Controller for XX」 のログオン設定を、「ローカルシステムアカウント」に戻す 2. irisinstall/cinstall コマンドを使用してInterSystems IRIS サービス・アカウントを変更する
2 の手順は以下になります。
Windowsコマンドプロンプトを管理者権限で起動し、以下コマンドを使用して変更します。
この設定を有効するためには、インスタンスの再起動が必要です。
これは InterSystems FAQ サイトの記事です。
デフォルトではテーブルのカラムの順番はシステムが自動的に決定します。
順番を変更するにはクラス定義を行う際にプロパティ・キーワード SqlColumnNumber でプロパティ毎に明示的に順番を設定してください。
例:
ドキュメントは以下をご参照ください。
なお、SQLテーブル名を変えたい場合は SqlTableName 、カラム名(フィールド名)を変えたい場合は SqlFieldName を指定します。
ともに、永続クラスのみに適用されます。
このたび InterSystems IRIS 2022.1 の日本語ドキュメントが完成しました。以下のURLでご参照いただけます。
ランチャーから日本語ドキュメントを参照したい
皆さん、こんにちは!
職場で持ち上がった単純なリクエストで始めた個人プロジェクトを紹介したいと思います。
使用している Caché ライセンス数を調べることはできますか?
コミュニティに掲載されている他の記事を読んでみたところ、David Loveluck が投稿したぴったりの記事が見つかりました。
APM - Using the Caché History Monitor(APM - Caché 履歴モニターを使用する)
https://community.intersystems.com/post/apm-using-cach%C3%A9-history-monitor
そこで、David の記事を参考に、Caché 履歴モニターを使って、リクエストされた情報を表示して見ました。
「どのテクノロジーを使用するのか」という疑問に対し
私は CSP に決定しました。単純で強力なテクノロジーであるため、私が担当するお客様は Caché が単なる MUMPS/ターミナルではないことに気づくでしょう。
ライセンス、データベース増加状況、CSP セッションの履歴を表示するページを作成した後、「システムダッシュボードとプロセス」ページのデザインを新装することにしました。
私の Caché インスタンスではすべてうまく機能します。
でも、IRIS はどうでしょうか?
開発者の皆さん、こんにちは!
この記事では、Embedded Pythonをご自身の好きなタイミングで学習できる📚セルフラーニングビデオ📚の YouTube プレイリストをご紹介します!
👆こんな具合に👆学習内容別 Embedded Python セルフラーニングビデオを公開しています!
この記事では、これから Embedded Python でプログラミングを開始してみたい方向けに最適なビデオをご紹介します!
◆ Embedded Python概要から学習を始めたい方はこちら👇
以下の内容を確認できるプレイリスト:1-Embedded Python概要編 - YouTube をご用意しています。
- Embedded Pythonとは?
- Python開発者から見た使い道(解説&実演)
- IRIS開発者からみた使い道(解説&実演)
この後、実際の操作を試されたい場合は、次のプレイリスト:2-Embedded Python利用前の準備 - YouTube が最適です。
◆ Embedded Python利用前の準備 を知りたい方はこちら👇
操作を開始する前に、必要な利用前の準備についてご紹介しているプレイリスト:2-Embedded Python利用前の準備 - YouTube をご用意しています。
Python から InterSystems IRIS へ接続する方法の1つである「PyODBC」(※)の利用方法をご説明します。
※ Python からのアクセスは、PyODBCの他に、Native API を利用した接続方法もあります。Native APIを利用してIRISのグローバル変数にアクセスする方法については、別の記事でご説明します。
もくじ
最初~0:52 復習ビデオ/関連ビデオについて (セルフラーニングビデオの索引記事もご参照ください)
0:52~2:04 今回の説明内容解説
2:05~3:44 PyODBCについてと準備
3:43~5:25 IRISに接続する
5:25~7:55 CREATE TABLEの実行
7:55~10:16 INSERTの実行
10:16~14:04 SELECTの実行
14:04~最後まで まとめ
※ YouTubeでご覧いただくと、「もくじ」の秒数クリックでビデオをジャンプできます。
開発者の皆さん、こんにちは!
Full Stackコンテスト 2022 のテクノロジーボーナスについてご紹介します!
- 気候変動問題に関係したもの - 5
- isc.rest パッケージ - 2
- isc.ipm.js パッケージ - 2
- Embedded Python - 3
- Adaptive Analytics (AtScale) キューブの使用 - 2
- Docker コンテナの使用 - 2
- ZPM パッケージのデプロイ - 2
- オンラインデモの作成 - 2
- ユニットテストの使用 - 2
- コミュニティへの最初の記事の投稿 - 2
- コミュニティへの2つ目の記事投稿 - 1
- Code Quality をパスする - 1
- YouTube にビデオを投稿する - 3

1. interoperability-embedded-python
この概念実証では、embedded Python で IRIS 相互運用フレームワークをどのように使用できるかについて示すことを目的としています。
1.1. 目次
- 1. interoperability-embedded-python
- 2. デモ
- 3. 前提条件
- 4. Docker を使用したインストール
- 5. Docker を使用しないインストール
- 6. サンプルの実行方法
- 7. リポジトリの内容
- 8. 新しいコンポーネントの追加方法
- 9. 今後の取り組み
- 10. クレジット
1.2. 例
import grongier.pex
import iris
import MyResponse
class MyBusinessOperation(grongier.pex.BusinessOperation):
def OnInit(self):
print("[Python] ...MyBusinessOperation:OnInit() is called")
self.LOGINFO("Operation OnInit")
return
def OnTeardown(self):
print("[Python] ...MyBusinessOperation:OnTeardown() is called")
return
def OnMessage(self, messageInput):
if hasattr(messageInput,"_IsA"):
if messageInput._IsA("Ens.StringRequest"):
self.LOGINFO(f"[Python] ...This iris class is a Ens.StringRequest with this message {messageInput.StringValue}")
self.LOGINFO("Operation OnMessage")
response = MyResponse.MyResponse("...MyBusinessOperation:OnMessage() echos")
return response
1.3. コンポーネントの登録
ObjectScript は不要です。
@Yuri Marx のお陰で、非常に優れた Postgres から IRIS へのデータベース移行の例を確認できました。
私の個人的な問題は、DBeaver を移行ツールとして使用することです。
特に、以前の IRIS(それから Caché)の強みの 1 つは、JBDC または ODBC でアクセスできる限り任意の外部 Db にアクセスできる SQLgateways を利用できることであったためです。 そこで、これを実演するために、パッケージを拡張しました。
開発者の皆さん、こんにちは!21回目の InterSystems プログラミングコンテストを開催します!
お題は👉 🏆 InterSystems Full Stack コンテスト 2022 🏆 です!
期間: 2022年6月27日~7月17日まで(詳細は末尾をご参照ください)
💰賞金総額: $10,000 💰
こんにちは、皆さま。
業務でIRISを用いて開発を行っている者です。
現在テーブルを用いてシステムの設計を行っておりますが、
トランザクション中に、そのトランザクションの影響を受けずにテーブルを
更新するような仕組みが欲しいと考えております。
(トランザクションがRollbackされても、そのテーブルの更新だけは確定させたい。)
例えば$INCREMENT()はトランザクション中であっても、その制約を無視して値を更新できます。
そのような回避策がないかをご教示いただきたいです。
用途としては、連番を生成するAPIを作成していて、その値をテーブルで管理しています。
このAPIは複数プロセスから呼ばれることがありますが、
1トランザクション中の連続Updateにより、行ロックからテーブルロックへの昇格が行われる
(1000行以上行ロックをしたときのIRISの仕様)ことで、
他プロセスがAPIを利用できなくなるなどの影響が出ています。
今回のAPIに関しては、番号重複さえ起きなければよいので、そのような影響は受けたくありません。
極力グローバルは用いない設計としたいので、テーブルで対応したいです。
すいませんが、何か情報をお持ちの方はご回答いただけますと幸いです。

.png)


