コミュニティのみなさまに嬉しいお知らせです。
今年冒頭より、InterSystems IRIS, InterSystems IRIS for Health, Health Connect 向けの多くのクライアントSDKが、各外部リポジトリ (Maven, NuGet, npm, PyPI)に公開されております。これにより、ユーザのみなさまに以下のような多くのメリットがあります。
コミュニティのみなさまに嬉しいお知らせです。
今年冒頭より、InterSystems IRIS, InterSystems IRIS for Health, Health Connect 向けの多くのクライアントSDKが、各外部リポジトリ (Maven, NuGet, npm, PyPI)に公開されております。これにより、ユーザのみなさまに以下のような多くのメリットがあります。

モジュールは重要なテーマです! ObjectScriptにはこの概念はありませんが、Pythonでは基本的な考え方です。 一緒に見ていきましょう。
モジュールは、クラスとパッケージの間にある中間層だと私は考えています。 例を見てみましょう。
悪い例:
# MyClass.py
class MyClass:
def my_method(self):
print("Hello from MyClass!")
別のスクリプトでこのクラスを使用する場合、次のようになります。
# class_usage.py
from MyClass import MyClass # weird, right?
my_instance = MyClass()
my_instance.my_method()
なぜこれは悪い例なのでしょうか?
まず最初に、PEP 8によると、ファイル名は snake_case(スネークケース)にする必要があり、my_class.py にするべきです。
次に、クラスと同じ名前のファイルからクラスをインポートしています。 Phthonではこれは良いプラクティスではありません。
特に、ObjectScriptのようにクラスと同じ名前のファイルにクラスを定義する環境から来ると、これは分かりにくいかもしれません。

この記事では、PythonスタイルガイドであるPEP 8について簡単に紹介します。
簡単に言うと、PEP 8は、Pythonコードの書き方に関するガイドラインとベストプラクティスを提供します。
snake_case(スネークケース)にする必要がありますCamelCase(キャメルケース)にする必要がありますsnake_case(スネークケース)にする必要がありますUPPER_CASE(大文字)にする必要があります_)で始める必要があります
全部を覚える必要はありませんが、頭の片隅に入れておくと他人のコードを理解するのに役立ち、自分のコードも他の人にとって分かりやすくなります ^^。
また、pythonic という言葉を聞いたことがあるかもしれません。 PEP 8に従うことは、「pythonic」なコードを書く方法の一つです(それだけではありませんが、重要な要素です)。
開発者の皆さん、こんにちは!
12月3日(水)13時半~のミートアップへの参加申し込みは、お済でしょうか??👀
今年のミートアップは、開発者向けウェビナーでもお届けしておりましたが 🎣釣り人ビギナーサポートAIを作ろう!🎣 をテーマとしたワークショップを行います。
ということで、今年のグッズは、🎣釣りにちなみましてこちらです🐟
.png)
ガジェットポーチです!(現在デザイン印刷中のため、仕上がりのイメージ図となります。)
↓パソコンと接続するケーブル類など収納できます!↓
開催概要👉「第 3 回 InterSystems Japan 開発者コミュニティ・ミートアップ in 東京開催のお知らせ」
ミートアップ会場でお会いできることを楽しみにしております!🐟
.png)

新しい InterSystems IRIS® Cloud SQL と InterSystems IRIS® Cloud IntegratedML® クラウド製品のユーザーであり、デプロイメントのメトリクスにアクセスして独自の可観測性プラットフォームに送信しようと考えている方のために、メトリクスを Google Cloud Platform Monitoring(旧称 StackDriver)に送信して手っ取り早く行う方法をご紹介します。

この記事では、IRIS環境におけるPythonプログラミングの基礎について紹介します。
本題に入る前に、重要なトピックである「Pythonの仕組み」について説明します。これは、IRIS環境でPythonを使用して作業する際に起こりうる問題や制限を理解するのに役立ちます。
すべての記事と例は、以下のgitリポジトリで確認できます: iris-python-article
Pythonはインタープリター型言語であり、コードはランタイム時に1行ずつ実行されます。スクリプトをインポートする場合でも同様です。
これはどういうことでしょうか? 以下のコードを見てみましょう。
# introduction.py
def my_function():
print("Hello, World!")
my_function()
このスクリプトを実行すると、Pythonインタープリターはコードを1行ずつ読み取ります。 まず最初に関数 my_function を定義してから、その関数を呼び出すと、コンソールに「Hello, World!」と出力されます。
スクリプトを直接実行している例:
python3 /irisdev/app/src/python/article/introduction.py
出力は以下のようになります。
Hello, World!
IRIS環

この記事では、マジックメソッドとしても知られるPythonダンダーメソッドについて簡単に解説します。
ダンダーメソッドは、始めと終わりに2つのアンダースコア(__)が付いているPythonの特殊メソッドです。 このメソッドを使用することで、加算や減算、文字列表現など、組み込みの操作に対するオブジェクトの動作を定義することができます。
よくあるダンダーメソッドには、次が含まれます。
__init__(self, ...):オブジェクトの作成時に呼び出されます。
%OnNew メソッドに似ています__str__(self):オブジェクトを文字列として表現するために、str() 組み込み関数と print によって呼び出されます。__repr__(self):デバッグ用のオブジェクトを表現するために、repr() 組み込み関数によって呼び出されます。__add__(self, other):+ 演算子が使用される際に呼び出されます。__len__(self):オブジェクトの長さを返すために、len() 組み込み関数によって呼び出されます。__getitem__(self, key):インデックス構文を使用してコレクションからアイテムを取得するために呼び出されます。__setitem__(self, key, value):イコミュニティの皆さんこんにちは。
ベクトル検索関連の処理が完全にノーマークだった私が、一先ず「やってみよう!」との事で、2つの動画のサンプルを実行してみました。
Pythonは初心者なので、アレな箇所があっても目をつぶっていただけると幸いです。
また、間違っている箇所があったら、ご指摘いただけると幸いです。
■参考にした動画
■参考にしたコミュニティ記事
本記事では、動画で紹介された内容を実際にIRIS環境上で実行できるよう、具体的な環境構築とコーディングを記載致します。
コミュニティの皆さんが簡単に試せるようになれば幸いです。
またGithubにサンプルソースを配置しているので、必要な方は参考にして下さい。
※環境作成方法に問題のない方は、読み飛ばしていただいて構いません。
| 項目 | バージョン情報・他 |
|---|---|
| OS | WIndowsServer2019 |
| IRIS | IRIS Community 2025.2.0.227.0 |
| Python | 3.12.10 |
| 開発環境 | VS Code |
インターシステムズは、InterSystems IRIS® data platform、InterSystems IRIS® for HealthTM、HealthShare® Health Connect のメンテナンスバージョン 2025.1.2 および 2024.1.5 をリリースしました。今回のリリースでは、最近お知らせした以下の警告や勧告の修正が含まれています。
製品の品質改善のために、開発者コミュニティを通じてぜひご意見をお聞かせください。
詳細な変更リストとアップグレードチェックリストはこちらのドキュメントをご参照ください(すべて英語, 2025.1):
多くの
これは InterSystems FAQ サイトの記事です。
ルーチンやメソッドを実行した際に以下のような<FRAMESTACK>エラーが発生する場合、DOコマンドの発行の入れ子数が多すぎて、それ以上スタック情報を保持できなくなったことを示しています。
<FRAMESTACK> error is reported when the routine has too many nested calls to DO command. You can check the current stack with $STACK value.可能性として高いのはプログラミング上のミスで再起的なメソッド/ルーチン呼び出しがループしている場合などです。
以下のようなプログラミングを行い、$STACK変数の値を確認することで、スタックのレベルがどのように変化しているのかを確認できます。
main() {
write"main 1: ",$STACK,!
do l1
write"main 2: ",$STACK,!
quit
}
l1() {
write"l1 1: ",$STACK,!
for i=1:1:5 {
do l2(i)
}
write"l1 2: ",$STACK,!
quit
}
l2(x) {
wrこれは InterSystems FAQ サイトの記事です。
%String型のプロパティをOrder Byの条件にしてクエリーを発行した際のデータは以下のような順番で並べられます。
SELECT * FROM Shop.Order orderby StatusFlagnull
-1
-2
-99
0これは%String型(文字列型)のプロパティの照合順として正しい振る舞いです。
文字列プロパティに対し、+ をつけることで、数値照合と同じ照合順を得ることができます。
SELECT * FROM Shop.Order orderby +StatusFlagnull
-99
-1
-2
0これは InterSystems FAQ サイトの記事です。
SQLアクセス( ADO含む)を行う場合は、SQLトランザクションを使用して、トランザクションを制御します。
一方オブジェクトアクセス(ObjectScript)ではtstart / tcommit / trollbackコマンド
(Native SDK for .NETでは IRIS の TStart(), TCommit(), TRollback() メソッド)
によってトランザクションを制御します。
この2種類のトランザクションモードを混在させて使用することはサポートされていません。
詳細は、以下のドキュメントをご参照ください。
また関連するメソッドの以下ドキュメントの注意事項にも
「このメソッドは Native SDK トランザクション・モデルを使用し、ADO.NET/SQL トランザクション・メソッドとは互換性がありません。
この 2 つのトランザクション・モデルを混在させないでください。」
と記載をしております。
.pyファイルの中でIRISのEmbedded Pythonを動作させる際にirispythonコマンドで実行する方法はドキュメント上で紹介されていましたので、以前より使用していました。
しかし、普通のpythonコマンドを使用するとうまく実行できなかったのですが、最近その謎(原因)が解けたので紹介します。
これは、Mac特有の問題である可能性が高くWindowsやLinuxでは何の問題もなく実行できるのかもしれません。
エラーは以下のようなエラーです。
File "/opt/iris/lib/python/iris.py", line 34, in <module>
from pythonint import *
ImportError: IrisSecureStart failed: IRIS_ATTACH (-21)
このエラーの原因は、シェルの実行ユーザーとirisのオーナーが異なることが原因とのことです。
Macで普通にIRISをインストールするとそのオーナーはrootです。
従ってpython3コマンドを実行する時にsudoコマンドでrootになる必要があるということです。
そして以下のような環境変数の設定も必要です。
export IRISINSTALLDIR=/opt/iris
export LD_LIBRARY_PATH=$IRISINSTALLDIR/bin:開発者の皆さん、こんにちは!今年も開発者コミュニティミートアップを東京にて開催します!📣

AI アプリの開発に興味があるけれど、何から始めれば良いか分からない方へ。
RAG、生成 AI などの用語は聞いたことがあるけど、そこまで詳しくない。
興味はあり、自分たちのシステムにも導入してみたい、でも、なかなか時間が取れなくて、学ぶチャンスがない。
そう悩んでいる方いませんか?
そんなあなたに!12月3日(水)AIアプリの開発をテーマとしたミートアップを開催します!
ミートアップでは、最初に、数々の AI 駆動開発をご経験されている方から、「AI駆動開発の最新情報」についてお話いただきます。
次に、AI アプリ作成のワークショップを通じて、具体的な開発の流れを短時間でご体験いただきます。
最後に、コミュニティメンバーとのネットワーキングの時間を楽しんでいただきます。この時間には、クイズ大会も行う予定です(軽食もご用意いたします)。
AI を「使う」から「創る」側へ。未来を拓く一歩を踏み出しませんか?
ぜひ、AI アプリ作成を体験できるミートアップにご参加ください。
開発者の皆さん、こんにちは!
この記事では、Developer Hub にまたまた新チュートリアル:InterSystems IRIS for Health:デジタルヘルスの相互運用性 が追加されましたので、体験内容についてご紹介します。(準備不要でブラウザがあれば試せるチュートリアルです!)
チュートリアルでは、InterSystems IRIS for Health を使用しているのですが、IRIS for Health の持つ機能により以下のような相互運用性シナリオを作成できます。
チュートリアルの中では、あるシステムから入力される HL7 メッセージを他のシステムに送信する流れをご体験いただけます。
また、データ変換が必要な場合の対応方法や HL7 メッセージの一部をテーブルに保存する流れなどもご体験いただけます。
例)HL7 メッセージの一部をテーブルに格納
.png)
アカウント作成やログインも不要で ボタンをクリックするだけで始められます👍
ぜひ、お試しください!
いつもお世話になっております。
11月の開発者向けウェビナー以下の内容で開催いたします。
タイトル:「組み込みPythonの仕組みと、その効果的な使い方について」
日時:11月20日(木)13時30分~14時
参加費無料・事前登録制
【概要】
【概要】
組み込みPythonが正式にリリースされてから3年が経過しました。それ以降、多くのエンジニアにより、様々なアイデアが実現されるとともに、その使い方についても良し悪し、向き不向き、といった議論が行われています。今回のウェビナは、組み込みPythonの仕組みを少し深堀りするとともに、この仕組みにより実現する、その「双方向性」を理解した上で、Pythonのエコシステムを最大限に生かしながら開発することのメリットをお伝えする、という内容です。
【こんな方にお勧め】
組み込みPythonに興味をお持ちの方
ご多用中とは存じますが、皆様のご参加をお待ち申し上げております。
インターシステムズジャパン
私が先週リリースしたInterSystems Testing Managerの新しいバージョンでは、@Timothy Leavittの優れた
テストカバレッジツールが追加され、私は2025年度Developer Toolsコンテストに出品しました。
こちらは、IPMプロジェクトのユニットテストが、IPMリポジトリでソート順を上書きできると思われる機能をまだカバーしていないことを示すティザー的なスクリーンショットです。

%UnitTestフレームワークのユーザーは、InterSystems Testing Manager拡張機能の最新リリース(v2.0.0)を@Timothy Leavittの素晴らしいテストカバレッジツールと組み合わせることで、VS Code内でテストカバレッジ情報を取得できるようになりました。

上部にテストカバレッジのペインが表示されています。左側のテストエクスプローラーと併せて確認しやすいように、右側のセカンダリサイドバーに移動させました。
直近のテスト実行(テストカバレッジツール自体のユニットテストすべて)の結果、TestCoverage.Procedures内のBitValueメソッドはカバーされていましたが、BitCountメソッド(および他の6つのメソッド)はカバーされていないことに注目してください。 TestCoverageパッケージの全体で43.08%の実行可能行のみが、ユニットテストによってカバーされていました。
InterSystems Testing Managerに対するこの大幅なアップグレードを、現在開催中のDeveloper Toolsコンテスト に出品します。 もし良いと思っていただけたら、来週の投票でぜひ応援してください!
開発者の皆さん、こんにちは!
この記事では、Developer Hub にあるチュートリアルに新しいチュートリアル:InterSystems IRIS ベクトル検索を使用した RAG が追加されましたので内容をご紹介します。(準備不要でブラウザがあれば試せるチュートリアルです!)
このチュートリアルでは、生成 AI アプリケーションの精度向上に向けて、ベクトル検索と検索拡張生成(Retrieval Augmented Generation)の活用を体験できます。
具体的には、InterSystems IRIS のベクトル検索機能を活用し、生成 AI チャットボット向けのナレッジベースをサンプルコードを利用して作成します。
また、Streamlit を使用して作成したチャットボットを動かしながら、ナレッジベースの情報を追加することで生成 AI からの回答が変化していくことを確認していきます。
.png)
アカウント作成やログインも不要で ボタンをクリックするだけで始められます👍
チュートリアルへのリンクは「開発者コミュニティのリソース」からも辿れます!
ぜひ、お試しください!
少し遅れましたが、モバイルアプリケーションから接続する例を示して Workflow Engine に関する連載記事をようやく締めくくることにします。
前回の記事では、これから説明する例として、患者と担当医師の両方にとって高血圧症などの慢性病状の詳細な管理を可能にするアプリケーションを示しました。 この例では、患者は携帯電話からウェブアプリケーション(基本的に、デバイスに応答するように設計されたウェブページ)にアクセスし、ポータブル血圧計が IRIS インスタンスに送信する測定に基づく通知を受信します。
.png)
したがって、IRIS インスタンスへのアクセスは 2 つです。
この記事では、患者が測定値を生成するタスクを管理できる、最初のアクセスを確認します。
この接続では、IRIS 内でウェブアプリケーションを構成するのが最も単純です。これを行うには、管理ポータルのシステム管理 -> セキュリティ -> アプリケーション -> ウェブアプリケーションからアクセスします。
次に、表示されるリストでアプリケーションの新規作成をクリックすると、以下のような画面が開きます。
この画面で、以下のフィールドを構成しましょう。
.png)
コミュニティの皆さん、こんにちは。
この記事では、私のアプリケーションである iris-AgenticAI をご紹介します。
エージェンティック AI の登場により、人工知能が世界とやりとりする方法に変革的な飛躍をもたらし、静的なレスポンスが動的な目標主導の問題解決にシフトしています。 OpenAI の Agentic SDK を搭載した OpenAI Agents SDK を使用すると、抽象化をほとんど行わずに軽量で使いやすいパッケージでエージェンティック AI アプリを構築できます。 これは Swarm という前回のエージェントの実験を本番対応にアップグレードしたものです。
このアプリケーションは、人間のような適応性で複雑なタスクの推論、コラボレーション、実行を行える次世代の自律 AI システムを紹介しています。
皆さん、こんにちは!
2025年2月から開始しました「InterSystems ソリューションセミナー」アーカイブビデオのまとめページを作成しました。
ソリューションセミナーでは、企業の様々な課題に対する解決方法と、それを InterSystems 製品を活用してどのように解決するかについて各回テーマを設けご紹介してまいります。
ぜひご視聴ください!
コミュニティの皆さん、こんにちは。
従来のキーワードベースの検索では、ニュアンスのあるドメイン固有のクエリには対応できません。 ベクトル検索であれば、セマンティック認識を利用して、キーワードだけでなくコンテキストにも基づいたレスポンスを AI エージェントで検索して生成することができます。
この記事では、エージェンティック AI RAG(検索拡張生成)アプリケーションを作成手順を紹介します。
開発者の皆さん、こんにちは!本日(10月1日)よりコンテストへご応募いただけます💨
✅コンテスト詳細👉「第3回 InterSystems Japan 技術文書ライティングコンテスト 開催!」
✅応募方法👉「記事の投稿方法:第 1 回技術文書ライティングコンテスト」
✅応募記事一覧👉「技術文書ライティングコンテスト一覧」
この連載記事を終えていなかったことに気付きました!

今日の記事では、フロントエンドから最適なオプションを選択できるように、テキストに最も類似する ICD-10 診断を抽出するプロダクションプロセスについて説明します。
アプリケーション内で、HL7 で受け取った診断リクエストを示す画面から、医療従事者が入力したテキストに最も近い ICD-10 診断を検索できます。
検索プロセスを高速化するために、HL7 メッセージを取得する際に受信した診断をベクトル化したテキストをデータベースに保存しました。 これを行うために、メッセージから診断コードを抽出し、ベクトルを生成するメソッドにそれを送信する単純な BPL を実装しました。
受信した診断をベクトル化するコードは以下のようになります。
ClassMethod GetEncoding(sentence As %String) As %String [ Language = python ]
{
import sentence_transformers
# create the model and form the embeddings
model = sentence_transformers.SentenceTransformer('/iris-shared/model/')IRIS Communityの再インストールを行ったところ
tomcat上で動作するJavaのWEBアプリケーションから
JDBC経由でのDB接続ができなくなりました。
他のSQLクライアントツールからは問題なく接続できていますので
接続情報やDBの起動状態には問題ないと考えています。
解決策をご指導頂ければ幸いです。
■環境
IRISバージョン:IRIS_Community-2025.2.0.227.0-win_x64
JDKバージョン:11.0.28
JDBCドライバ:intersystems-jdbc-3.2.0.jar
■事前作業
ライセンス有効期限が切れてサービス起動できなくなったため、以下投稿と同様、再インストールを行っています。
https://jp.community.intersystems.com/post/iris%E3%82%A4%E3%83%B3%E3%82…
ちなみに前回利用したバージョン(IRIS_Community-2024.2.0.247.0-win_x64)では
以下エラー(messages.log)となりサービス起動できなかったため
今回あらたに前述のバージョンをダウンロ
開発者の皆さんこんにちは!
技術文書ライティングコンテストの開始(10月1日)まであと少しとなりました!💨
このお知らせでは、今年の賞品を発表いたします!
↓
↓
👀
↓
↓
🎁賞品情報🎁
審査員投票とコミュニティメンバーからの「いいね」の数の合計で順位を決定します。
1位~3位を受賞された方は、各順位に記載された賞品の中からお好きな1点をお選びいただけます。(1位の方は1~3位の賞品を、2位の方は2~3位の賞品をお選びいただけます)
🥇 1位
🥈 2位
🥉 3位
🎁参加賞:投稿いただいた方全員に「モバイルバッテリー」をプレゼント!
1回目、2回目とは異なる賞品を!ということで賞品決めチームでいろいろ探してみました👀
高得点を狙う場合は、早めの投稿がおすすめです!(コミュニティメンバーからの「いいね」ポイントをより多くゲ
REST レスポンスから IRIS データーベースに情報を保存する新しいプロジェクトがあります。 少なくとも 20 以上の個別の REST エンドポイントの情報を同期する必要があるため、それらのエンドポイントの結果を保存するために、ほぼ同じ数の ObjectScript クラスを作成しなければなりません。
ChatGPT を使って、それらのクラスを作成することはできますか? 答えは「できます」です。生成 AI を使って便利なものを作るのは初めてなので、素晴らしい機会だと思います。 スープを飲むキリンの写真を生成するのには飽きてきました…。
以下のようにして実現しました。
以下のリクエストを「Message ChatGPT」プロンプトに入力しました。
私: 次の JSON のデータを格納する ObjectScript クラスを生成してください。
JSON を入力する前に Return キーを押すと、ChatGPT から次のように指示されました。
ChatGPT: ObjectScript クラスの生成が必要な JSON