皆さまこんにちは。
IRIS for Healthを用いてFHIRの開発に携わっている者です。
FHIRリポジトリの導入を検討している方々に向けて、足がかり的な記事になればと思い投稿致します。
<アジェンダ>
■IISでの環境構築
■POSTMANを利用しないリソースへのデータアクセス
■Patientリソースの作成について
■FHIRリポジトリを使ってみての感想
■おまけEmbedded Pythonを使って、サンプルファイルからFHIRリソースへアクセスする方法
皆さまこんにちは。
IRIS for Healthを用いてFHIRの開発に携わっている者です。
FHIRリポジトリの導入を検討している方々に向けて、足がかり的な記事になればと思い投稿致します。
<アジェンダ>
■IISでの環境構築
■POSTMANを利用しないリソースへのデータアクセス
■Patientリソースの作成について
■FHIRリポジトリを使ってみての感想
■おまけEmbedded Pythonを使って、サンプルファイルからFHIRリソースへアクセスする方法
開発者の皆さんこんにちは。 これは筆者がDocker上でIRISを動かす時の、構築手順を示した備忘録です。 以前投稿した「Dockerを利用した開発環境下でのIRISへのSSL接続方法」と「IRISサーバーのバックアップと再構築の手順」も合わせて参考にして頂けると良いと思います。
本ドキュメントは筆者の環境に合わせた内容となりますので、以下の環境下でのドキュメントとなります。
IRISのDockerイメージファイルを入手します。 入手手順は、Developer Community サイトのメニュー「InterSystems Container Registry」を開き、左側ツリーの "InterSystems IRIS Community Edition" -> "iris-community" -> バージョン を選択。筆者の場合はarm64版のコマンドを実行します。

2020年に世界を襲ったパンデミックの影響で、COVID-19のニュースや数字をみんなでフォローするようになりました。
これを機に、世界の予防接種の数を追いかけて、シンプルで楽しいものを作ってみてはいかがでしょうか。
この課題に立ち向かうために、私はOur World in Dataで提供されたデータを利用しています。世界最大の問題を解決するための研究とデータ。
Github上にCOVID-19のデータで専用のリポジトリを用意してくれていて、そのワクチンのデータを持ってトラッカーを手伝ってくれました。
もしあなたが彼らを知らなかったら、それをチェックしてみてください、それはあなたにとって価値ある時間です。 Github repository
アプリケーション iris-vaccine-trackerには、3つの異なるページがあります。
メインダッシュボードでは、世界中の予防接種の状況を簡単に知ることができます。
最初のウィジェットは:
2つ目のウィジェットでは、最も重要な予防接種数の多いトップ10の国の予防接種を時系列で見ることができます。
開発者の皆さん、こんにちは!
InterSystems IRIS でアナリティクスソリューションを構築するにはどのような方法があるでしょうか。

最初に、アナリティクスソリューションは何かについて確認しようと思いますが、とても幅広いテーマになってしまうので、Analytics コンテストで発表できるソリューションに限定してご紹介します。
以下、モニタリング、インタラクティブアナリティクス、レポーティングの3種類のアナリティクスソリューションについてご紹介します。
モニタリング
一般的なモニタリングソリューションは、アクティブに更新される KPI を備えたオンラインダッシュボードで構成されています。
モニタリングの主な使用例としては、新しいデータの KPI を常に視覚的に観察し、緊急時に対応することです。
インタラクティブアナリティクス
このソリューションはフィルタやドリルダウンが行えるインタラクティブなダッシュボードのセットを想定しています。
主なユースケースは、グラフや表のデータを視覚化した上で、フィルタやドリルダウンを使用してデータを探しだし、ビジネス上の意思決定を行うことです。
レポーティング
レポーティングソリューションは、グラフやテキスト形式のデータを事前にデザインされたフォームで提供する HTML や PDF ドキュメントの形式で、静的(通常)レポートを提供し、メールで送付することもできます。
レポーティングシステムの主なユースケースは、ビジネスにとって重要な製品やプロセス、サービス、セールスなどの状況を説明するレポートを一定期間に取得することです。
このようなソリューションを構築するために、InterSystems 製品をどのように利用できるでしょうか。
以下の項目で議論してみましょう。
IRISはPythonの豊富なライブラリや既存のPythonプログラムをそのまま利用する事も、COS内でネイティブにコーディングする事も可能となりました。 しかし開発において、いくつかの問題点があります。
Pythonを使ったプロジェクトを構築していると、バージョンの問題にあたる時があります。 古いバージョンで開発していたところに、使いたいライブラリが対応していなかった等です。 しかし、IRISのEmbedded Pythonを利用する場合には、Pythonランタイムのバージョンに影響される為、プロジェクトで使用するバージョンは、プロジェクト単位はなく、IRISのバージョン単位で決まってしまいます。 また、現時点ではこのPythonランタイムをアップグレードする事はできません。
私は既に開発済みのPythonプログラムをそのまま活用したいと思い、外部Pythonファイルを読み込んで利用する方法を取りました。 IRISでは外部Pythonファイルを特定の場所に配置する事で、そのファイルをimportする事が出来ます。 デフォルトは{インストールパス}/lib/python です。
コミュニティの皆さん、こんにちは。
パート 1 では、すべてのパッケージ、使用されているライブラリ、および REST サービスについて説明しました。
次は、コンバーターサービスとバリデーターサービスについて詳しく説明したいと思います。
OpenAPI-Suite はデフォルトで、仕様バージョンが 3.0 未満である場合に HTTP リクエストを converter.swagger.io に送信し、別の HTTP リクエストを validator.swagger.io に送信して仕様ドキュメントの構造を単純化します。
オンラインユーティリティの使用は便利ではありますが、場合によっては独自のコンバーターとバリデーターのインスタンスを使用する方が便利な場合もあります。 たとえば、OpenAPI-Suite が ObjectScript 開発者向けに組織のサーバーに提供されている場合、外部サービスへのリクエストを回避する方が好ましいことがあります(プライバシーやリクエストレートの制限を回避するため)。
以下を実行してください。
docker run -d -p 8085:8080 --name swagger-converter swaggerapi/swagger-converter:latest
docker run -d -p 8086:8080 --name swagger-validator-v2 swaggerapi/swagger-validator-v2:latestコミュニティの皆さま、初投稿になりますが、何か少しでも興味深い知見を共有できると幸いです。
今回の内容は、筆者が%Persistentを中心に据えたデータ構造管理の検討の過程で必要性を感じ行った、「列挙体」Likeな「データ型クラス」(%DataTypeのサブクラス)構築に関するレポートです。
内容面では、筆者が「データ型クラス」の特性に不勉強だったことに由来しての躓きに関するものも多くなりますが、ご容赦願います。 また、内容の中には、筆者が思い当たらなかった手段の活用により、よりシンプルに回避できた部分もある可能性が大いにございます。 そういった内容にお気づきの場合、ご指摘いただけますと大変ありがたいです。
筆者が関与したDB層にIRISを採用するプロジェクトの多くでは、永続化されるデータの構造の定義に(ごく順当に)%Persistentが用いられていました。
また、この定義クラスの永続化対象のプロパティには、データ構造の仕様書の記載に対応させて以下のような型をあてがうケースが数多く見られました。
OData(Open Data Protocol)は、RESTful APIの構築と消費に関する一連のベストプラクティスを定義するISO/IEC認定のOASIS標準です。 ODataは、リクエストとレスポンスのヘッダー、ステータスコード、HTTPメソッド、URL変換、メディアタイプ、ペイロード形式、クエリオプションなどを定義するための多様なアプローチを気にせずに、RESTful APIを構築しながらビジネスロジックに専念するのに役立ちます。 また、ODataには変更の追跡、再利用可能なプロシージャの関数/アクションの定義、および非同期/バッチリクエストの送信に関するガイダンスも提供されています(出典: OData.org)。
生成AIを活用したアプリケーション開発は、Python、JavaScriptなどのメジャー言語による体験記事がよく見られます。一方、IRISのObjectScriptの開発に言及された記事は比較的少ないのが現状です。そこで、本記事では生成AIがObjectScriptの開発にどこまで活用できるのかを検証しました。
特にDevOpsのプロセスにおいて、生成AIは様々なシーンでの活用が期待できます。今回は開発工程に注目し、以下の観点から生成AIの有効性を調査しました。
本記事の検証は以下の環境で行いました。
開発環境
開発ツール IRISの開発にはStudioやVSCodeなどが利用可能ですが、今回は生成AIの活用に特化したエディタ「Cursor」を使用しました。
Cursorを選定した理由 Cursorは、生成AIによる支援機能に特化したコードエディタで、以下の特徴があります:
生成AIの支援:コードの自動生成や提案、バグの検出、修正提案を行います。また、外部のドキュメントや複数のソースを指定し、生成内容に反映させる簡易なRAG機能も搭載されています。
これはIRIS 2020.2で動作するコーディングの例です 最新バージョンとは同期していません。 また、InterSystemsのサポートによるサービスはありません
動作中のデモを確認できるデモビデオを以下で公開しています。https://youtu.be/dSV-0RJ5Olg
皆さんこんにちは
完全に新しいIRISイメージと**たった4行**のDockerコマンドを使って実行するイメージを使ってマイクロサービスのデモを行いましょう。
2020年6月1日 - rcc
すべてのパーツを1つのコンテナイメージにまとめたコンパクトなオールインワンバージョンが公開されました。
詳細はこちら: IRIS-NativeAPI-Nodejs-compact
2020年5月24日 - rcc
Dockerを使った簡易インストールを追加しました。コンテキストを参照
2020年5月25日 - rcc
Linux & Windowsに最適な検証済みの強化スクリプトはこちら
2020年5月26日 - rcc
このデモは、Caché用にすでに存在するNode.jsに基づくWebSocketクライアントを再設計したものです。 主に以下のような変更点があります。
開発者の皆様はじめまして。 私からはIRISのソースコントロール機能を用いたソースの自動チェック機能のご紹介をしたいと思います。 チーム開発では、ソースの可読性や実装方法等がある程度統一されるようにコーディング規約を作成すると思います。 しかし、メンバーの入れ替わりでコーディング規約の説明をしていても徹底されないことが起こることも少なくありません。 なので、ソースコントロールを使用してコンパイル時に自動的にチェックするようにしました。 IRIS内で完結させるメリットとして、エラーチェックだけでなくチェック後にエラーがなければコンパイルまで自動で行えること、 %Dictionary.ClassDefinition(クラス定義)を使用できるので、チェッククラスを作成しやすいこと等があげられます。
目次
1.ソースコントロールについて まず、ソースコントロールについて簡単に記載します。 ソースコントロールとは、一般的にコードに対する変更を追跡し管理することを表します。 IRISのソースコントロール機能には様々なメソッドが用意されています。 今回はそれを使用することでソースの自動チェック機能を実現していきます。
Python流行ってますよね。(一時は圧倒的な支配力のあったJavaも、O社に買われてライセンスが云々とか言われ始めた頃からブレーキが掛かってしまった気がします。)
Pythonの魅力の一つがパッケージで様々な機能が提供されていることがあげられるかなと思っています。
私もこれまでPythonのコードをそこそこ書いてきました。実のところ、ここ1年では間違いなくObject ScriptよりPythonのほうが書いた量が多いです。Excelのドキュメントがそれらよりも遥かに多いのは何とかしたいところですが😅
IRISと連携するため$ZF(-1)を使ってPythonプログラムをコールしているものもあります。
IRIS 2021.2からPythonがIRISにEmbedded Pythonとして組み込まれたということで、どのように使えるかを試してみました。
なお、使用した環境は以下です。
OS: Linux Alma8 5.14.0-162.22.2.el9_1.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Mar 27 07:34:40 EDT 2023 x86_64 x86_64 x86_64 GNU/Linux IRIS: IRIS for UNIX (Red Hat Enterprise Linux 9 for x86-64) 2022.1.
これは、前回の「DockerマイクロサーバーとしてのIRIS Native APIを使用するWebSocketクライアントJS」のフォローアップです。
すべてのピースが1つのDockerイメージにまとめられたため、インストールがはるかに簡単になりました。
作業が楽になります。 ただしもちろん、マイクロサービスの原則はわかりにくくなくなっています。
オールインワンのバンドルパッケージであるため、 コンパクトになっています。

相手に隙を与えないノックアウトパンチのように、オープンソースプラットフォームであるKubernetesは、その可用性(つまり、サポート、サービス、ツールの容易な入手性)により、無限の可能性を秘めています。Kubernetesはコンテナ内のジョブとサービスを管理できるプラットフォームであり、これらのプロセスの構成と自動化を大幅に簡素化します。
しかし、タイトルイメージにふさわしい、このツールに「正しい」名前、InterSystems Kubernetes Operatorを与えましょう。
原理は至ってシンプルです。サービスを選択し、ゲームのルールを定義するだけで(ここでもKnockoutを参照)、すべてが可能な限り透明性と効率性を高めて提供されます。これは、インストール、修復、そして事前定義された要件を満たさない場合の最終的な復旧にも適用されます。
では、IKOと他のオペレーターの違いは何でしょうか?Kubernetes API(ここではK8sと略します)の拡張機能であるIrisClusterカスタムコンポーネントは、ロックされたIRISクラスター、分散Cachéクラスター、さらには匿名インスタンスとしてデプロイするオプションを備えています。これらすべてを、最も多様なKubernetesプラットフォーム上で実行できます。
皆さん、こんにちは。
iris-analytics-パッケージには、「企業が自社のソフトウェアで InterSystems Analytics の サポートをいかに簡単、そしてシンプルに利用できるかを示す」意図があります。
新しいシンプルなソリューションを作成したり、OpenExchange を使用して既存のソリューションを改善したりすることもできます。
InterSystems IRISにアップグレードしている企業のほとんどは、ツールが提供するすべての機能を活用しています。
このコンテストでの私のもう一つのターゲットは、インターシステムズを長く利用していても、自分たちがアクセスしている可能性をフルに活用していない企業です。
このプロジェクトは、他のプロジェクトをベースにしてインスピレーションを得て作成しました。ありがとう @Evgeny Shvarov @Guillaume Rongier @Peter Steiwer
それらのプロジェクトが一緒になって、このウィザードになった。
メインページはシンプルで、そこに至るまでのプロセスがわかりやすい。
ウィザードを適切に使用するためのフィールドがいくつかあります。
開発者の皆さん、こんにちは。
突然ですが、2024年6月25日に開発者向けセミナー「FHIR 新機能のご紹介~2024.1~」が開催されました。
ご視聴になられた方も多数いらっしゃると思います。
まだご視聴になられていない方は是非一度、ご覧になってみてください。
YouTubeリンク
さて、こちらのセミナーにおいてご紹介された、IRIS for Health 2024.1からの新機能「FHIR Object Model」を用いて、リポジトリタイプのInteroperability開発の具体的なサンプルを作成してみました。
自身の備忘のため、すぐ開発環境を構築できるよう、コンテナ環境かつGitHubの公開もしております。
利用方法は、GitHub内のREADMEを参照ください。
GitHubリンク
まずはFHIR Object Modelとはなにか、簡単に説明します。
FHIR Object Modelとは、FHIRリソースをオブジェクトモデル化したクラス群です。
IRIS for HealthでFHIR開発に多く携わっている方は、あれ?と思うわけです。
既に公開中のJSONテンプレートエンジンとなにが違うの?
最近、LOAD DATA という素晴らしい新機能を使用することがありました。この記事では、初めて使用した際の体験についてお話しします。 以下の箇条書きには優先順がなく、他の評価も含まれません。 これらは、LOAD DATA コマンドを使用したときに私が気付いたことを記したものです。 また、プレビューリリースである IRIS バージョン 2021.2.0.617 を使用していることも記しておきたいと思います。 そのため、ここに記録されたことは、それ以降の IRIS バージョンに適用しない可能性があります。 それでも誰かのお役に立てるかもしれません。
JDBC 経由で最初のテストを行いました。 最初に躓いたのは、ファイルとファイルパスが、当然 (^-)_ サーバー側でなければならないということです! JDBC ドライバーはクライアント側でこれを処理しません。 おそらく明確なことかもしれませんが、最初にこのことを考慮していませんでした。
ドキュメントには、以下のように書かれています。
「ファイル名には .txt または .csv(カンマ区切り値)の接尾辞が含まれていること。」
私の観察では、この動作は書かれていることと異なりました。 接尾辞は無関係です。
私が先週リリースしたInterSystems Testing Managerの新しいバージョンでは、@Timothy Leavittの優れた
テストカバレッジツールが追加され、私は2025年度Developer Toolsコンテストに出品しました。
こちらは、IPMプロジェクトのユニットテストが、IPMリポジトリでソート順を上書きできると思われる機能をまだカバーしていないことを示すティザー的なスクリーンショットです。

コミュニティの皆さんこんにちは。
突然ですが、皆さんはIRISの機能にある「ユニットテスト」は利用されているでしょうか。
筆者はまだ実装まで行えていませんが、各関数の品質保証を担保するため導入を検討している段階です。
現状、IRISのユニットテストには下記2点の対応すべき点があると考えています。
特にテストが継続的に自動で実施されないと、ユニットテスト自体が次第に陳腐化し、実行されなくなり忘れ去られる恐れがあると考えます。
ただし、意味もなく定期的にテストを実行しても効果がありません。
そこで、Gitのpushのタイミングで行おうと考えました。
次にテスト環境です。
テスト環境の構築は、テスト自動化の観点からみるとCI/CDツール等を利用するのが一般的だと思います。
ただ今回は、テスト環境の構築を簡易にすませたいと考え、IRISの既存技術を組み合わせて構築しようと考えました。
そこで運用幅の広いInteroperabilityとユニットテストを組み合わせて、テストの自動化が可能か考察していきたいと思います。
こんにちは、皆さま。
業務でIRISを用いて開発を行っている者です。
技術文書ライティングコンテストという事で、私からはAWS環境を用いたCI/CDの仕組みについてご紹介します。
.png)
CI/CDとは「Continuous Integration(継続的インテグレーション)/ Continuous Delivery(継続的デリバリー)」の略称で、
詳細はネットをググると色々出てくると思いますが、私としてはリポジトリに格納されたものを自動で品質保証して、
問題なければ自動でデプロイしてくれる一連の仕組みだと理解しています。
という事で、その第一歩はIRISのソースコードをgitで管理することです。
pythonで作成したテストプログラムを用意しました。
Class packages.CICDSample Extends %RegisteredObject
{
/// グローバルの数
Property count As %Integer;
/// バイト数
Property bytes As %Integer;
/// コンストラクタ
Method %OnNew() As %Status
{
#; プロパティ変数の初期化。
Set ..count = 0コミュニティの皆さんこんにちは。
ベクトル検索関連の処理が完全にノーマークだった私が、一先ず「やってみよう!」との事で、2つの動画のサンプルを実行してみました。
Pythonは初心者なので、アレな箇所があっても目をつぶっていただけると幸いです。
また、間違っている箇所があったら、ご指摘いただけると幸いです。
■参考にした動画
■参考にしたコミュニティ記事
本記事では、動画で紹介された内容を実際にIRIS環境上で実行できるよう、具体的な環境構築とコーディングを記載致します。
コミュニティの皆さんが簡単に試せるようになれば幸いです。
またGithubにサンプルソースを配置しているので、必要な方は参考にして下さい。
※環境作成方法に問題のない方は、読み飛ばしていただいて構いません。
| 項目 | バージョン情報・他 |
|---|---|
| OS | WIndowsServer2019 |
| IRIS | IRIS Community 2025.2.0.227.0 |
| Python | 3.12.10 |
| 開発環境 | VS Code 1. |
開発者のみなさん、こんにちは!
IRIS プログラミングコンテストでは、💨すぐに💨開発を開始いただけるようにコンテナ版 IRIS を利用した「開発環境テンプレート」をご提供してしていました。
終了したコンテストにはご応募いただけませんが、テンプレートは「ちょっと試したい」「加工して自分オリジナル環境を作りたい」の目的にぴったりの内容です。
また、全て Open Exchange で公開されていて、Docker、Git、VSCode をインストールした環境があればすぐにご利用いただけます。
テンプレートの使用方法については、各コンテストの紹介ページでご案内しています(日本語解説ビデオ付きもあります)。
基本は以下 3 行だけで開始できます。(とっても簡単!)
git clone <ここにテンプレートのURL>
cd <作成されたディレクトリ>
docker-compose up -d --buildご興味ある内容ありましたら、ぜひお手元で試してみてください!
| コンテスト名 | 内容紹介+テンプレート解説ビデオ(YouTube) | テンプレート |
|---|---|---|
| REST |
開発者の皆さん、こんにちは! InterSystems IRIS(以下、IRIS)を使用したアプリケーション開発において、皆さんは環境設定をどうされていますか? 私は最近になって、「インストールマニフェスト」という機能があることを知りました。 これは、管理ポータルでポチポチしていた作業をコード化・自動化できる強力なツールです! 最初こそとっつきづらかったものの良いところがたくさんあるなと思ったので、簡単にではありますが皆さんにその良さと始め方をご紹介したいと思います。
なお、私が使用しているIRISバージョンは以下です。
2022.1
バージョンが異なる場合、違う書き方になっているもの等が存在する場合がありますので、 公式ドキュメント等を参照し適宜読み替えていただければと思います。
開発者の皆さん、はじめまして!
普段はサーバーレス環境での開発をしていて、AWS Lambda を使ったアプリケーション構築を主に行っています。IRIS についての実装経験はまだ浅いのですが、その高速で柔軟なデータベース機能の素晴らしさはよく知っています。
「このパワフルな IRIS を、使い慣れたサーバーレスアプリから呼び出せたらいいのにな...」
そんな思いから、今回 AWS Lambda と IRIS Native API を組み合わせた実装に挑戦してみました。これを通して、IRIS のことをもっと好きになれたらいいなと思っています。まだ IRIS の実装経験が浅いため、もっと良いアプローチや最適な方法があるかもしれません。もし改善点や間違いがあれば、ぜひコメントで教えていただけると嬉しいです!
この記事では、AWS Lambda から IRIS Native API を使用してデータを取得する方法を実装例とともに解説します。この基本実装をベースに、S3 トリガーや他の AWS サービスとの連携も可能です。ぜひ最後までお付き合いいただけると嬉しいです!