インターシステムズは InterSystems IRIS data platform、InterSystems IRIS for Health、HealthShare Health Connect のバージョン 2024.3 をリリースしました。2024.3 は Continuous Delivery(CD)リリースです。
ベクトルデータ型と Vector Search 機能が IRIS に導入されたことにより、アプリケーションの開発に多数の可能性が開かれました。こういったアプリケーションの例として、バレンシア保健省が AI モデルを使用した ICD-10 コーディング支援ツールを要求した公募で出品されたアプリケーションが最近私の目に留まりました。
要求されたツールのようなアプリケーションをどのように実装できるでしょうか? 必要なものを確認しましょう。
- ICD-10 コードのリスト。自由テキスト内で診断を検索するための RAG アプリケーションのコンテキストとして使用します。
- ICD-10 コード内で相当するものを検索するためにテキストをベクトル化するトレーニング済みモデル。
- ICD-10 コードとテキストの取り込みとベクトル化を行うために必要な Python ライブラリ。
- 可能性のある診断を見つけるためのテキストを受け入れる使いやすいフロントエンド。
- フロントエンドから受信するリクエストのオーケストレーション。
これらのニーズに対応するために、IRIS は何を提供できるでしょうか?
- CSV インポート。RecordMapper 機能を使うか、Embedded Python を直接使用します。
2024年12月4日に InterSystems System Alerting and Monitoring (SAM) を InterSystemsダウンロードサイト、コンテナレジストリ、ドキュメントサイトから削除します。
InterSystemsは SAM の開発中止と、非推奨になることを昨年ご案内しました。現在この技術をお使いのお客様については、ミニマムサポートバージョンを過ぎた製品バージョンのサポートと同様にサポートを継続します。
これは、SAM が提供するオブザーバビリティに関心をもつようなお客様はほとんど、既存の運用プラットフォームのビューをより優れたものにするために、すでにInterSystems IRIS の Metric API と構造化ログ(英語ドキュメント)を、組織のオブザーバビリティ・プラットフォームに接続済みだと判明したことによります。
現在ご利用中または利用を予定されていた SAM に関するご質問は、弊社担当アカウントチームにお問合せいただくか、 dbpprodmgrs@intersystems.com までご連絡ください。
開発者の皆さん、こんにちは!
🎄 クリスマスの雰囲気が漂いはじめた今日のこの頃、今年最後のプログラミングコンテストで何か新しいことに挑戦するのはどうでしょうか?
🏆 アイデア実現コンテスト 🏆
Community Opportunity のステータスを持ち、実際のプログラミングを必要とするInterSystems Ideas Portal のアイデアを実装した作品をご応募ください。
期間:2024年12月2日~22日
賞金総額: $14,000
コミュニティの皆さん、こんにちは。
この記事では、iris-RAG-Gen という私のアプリケーションをご紹介します。
iris-RAG-Gen は、IRIS Vector Search の機能を使用して、Streamlit ウェブフレームワーク、LangChain、および OpenAI で ChatGPT をパーソナライズするジェネレーティブ AI 検索拡張生成(RAG: Retrieval-Augmented Generation)アプリケーションです。 このアプリケーションは IRIS をベクトルストアとして使用します。
アプリケーションの機能
- ドキュメント(PDF または TXT)を IRIS に取り込む
- 選択されたドキュメントの取り込みを使ってチャットする
- ドキュメントの取り込みを削除する
- OpenAI ChatGPT
ほとんどの方が @Daniel Tamajon の CachéQuality プロジェクトをご存知かと思います。 まだご存知でない方のために説明すると、InterSystems 製品用に記述されたコードの静的構文アナライザーです。 コード内の様々な種類の問題や潜在的なバグがお客様のプロダクション環境で見つかる前に、それらを検出して解決するのに役立てられます。 つまり、CachéQuality を使用することで、より優れた製品を提供できるようになります。 ObjectScript コードのチェックに使用されるルールの完全なリストは、こちらをご覧ください。
これは、InterSystems FAQサイトの記事です。
これは、MS-ACCESSの制限事項です。
MS-ACCESSは、インデックスが32個より多いテーブルにはリンクできません。
この問題を回避する方法として、直接テーブル(クラス)をリンクするのではなく、VIEWを使用する方法があります。
最近はパブリッククラウド環境でIRISを使ってアプリケーションを構築されるお客様が多数で、IRISのセキュリティ機能についてご質問を受ける機会が増えました。実際の運用で始めてセキュアなIRISを操作するよりも経験した方が良いかもと考え、その第一歩としてインストール時の初期セキュリティ設定には普段からロックダウンを指定するのはいかがでしょうか。通常セキュリティ設定の違いおよび注意点をマニュアルを参照しながらリストアップしました。
.png)
.png)
パスワードの最小文字数が8文字になります。またSQLのルートユーザとして作成される_SYSTEMユーザは運用開始前の無効化を推奨しているように、高いセキュリティレベルが必要な環境では不要あるいは一時的に同等の権限を付与したユーザを作成して対応可能ではないでしょうか。
2. サービスプロパティ
.png)
Use許可のPublicが不可、とはIRISにアクセスする手段を明示的に許可しないと使えないことを意図しています。予期せぬユーザーがODBCでアクセスしたり、管理コンソールを使用したりと言った事故を防ぐ有効な手段です。
.png)
また初期状態で有効化されているサービス、WebGatewayに加えてWindowsの場合Console、非WindowsではTerminalと必要最小限になっています。
以前、Azure用にOAouth2クライアントをセットアップする記事を書いた時に思ったのですが、各IdPはサンプルコードとしてPythonコードや専用のモジュールを提供しているので、それがそのまま使用できれば効率が良いのにな、と思いました。
IRISが埋め込みPython機能としてWSGIをサポートしたことにより、これが簡単に実現しそうなので、その方法をご紹介したいと思います。
導入方法
今回は、IdPとしてOKTAを使用してAuthorization Codeフローを行います。
OKTAでの設定内容
参考までに、今回使用した環境を後半に記載しています。
アプリケーションの起動
コンテナ化してありますので、コンテナのビルド環境をお持ちの方は、下記を実行してください。
git clone https://github.com/IRISMeister/iris-okta-oidc-wsgi
cd iris-okta-oidc-wsgi
python/.env.templateをpython/.envという名前でコピーを作成して、OKTAで得られる設定値を指定してください。
AUTH0_CLIENT_ID="0oaxxxxxxx"
AUTH0_CLIENT_SECRET="qUudxxxxxxxxxxx"
AUTH0_DOMAIN="dev-xxxxx.okta.開発者の皆さん、こんにちは!
2回目の開催となったミートアップですが、11月8日(金)に無事、開催を終えることができました。ご参加いただきましたメンバーの皆様、ありがとうございました!
今年のミートアップでは、ワークショップを開催してみました。13時半~17時半の約4時間(!)もの間、ご持参いただいたパソコンでもくもくと進めていただいていたように思えます。
.png)
ミートアップのワークショップで使用した内容は、全て以下リポジトリに公開しております。
👉https://github.com/Intersystems-jp/meetup2024WorkShop
以下、写真を添えながら当日の様子を少しご紹介します。
第1部は、ワークショップを合計5種類用意いたしました。
「Python入門」、「Embedded PythonでIRISデータにアクセスしよう」までは、全員一緒のタイミングで説明を聞いていただきながら、内容を確認するワークショップを行いました。
10分間の休憩を挟んだ後は、ご用意しました3種のワークショップ:「WSGI-Flask」「NiceGUI+SQL Alchemyを使ってアプリケーションをつくってみよう」「機械学習で手書き数字の識別に挑戦」のなかから好きな内容にチャレンジいただきました。
ご好評いただいておりますインターシステムズ開発者向けウェビナー、今年最後の回は以下の通り開催いたします。
お忙しい時期ではありますが、皆様のご参加をお待ち申し上げております。
テーマ:「IRISで実現する極小オーバヘッドの IoTエッジサーバー」
日時:2024年12月10日(火)13時30分~14時
【概要】
IoTデバイスで発生するデータをサーバに送信して、アラートを管理する、後の利活用のためにデータベースに保存する、といったシナリオは多くの分野で見受けられます。その際、伝送するデータのフォーマットは、様々な処理系で利用可能で、データサイズが小さく、スキーマ定義が容易であることが望ましいです。
データフォーマットは、全体のパフォーマンスに影響を与える多数ある要素のひとつにすぎませんが、最もソフトウェアが貢献できる要素でもあります。本セミナでは、通信プロトコルとしてMQTT, メッセージフォーマットとしてApache Avro、DBとしてIRIS、コードとして(埋め込み)Pythonを使用した実行環境を「シンプルな構成」で実現する例をご紹介します。
VS Code には強力なスニペット機能が備わっており、Marketplace は開発者がスニペットを公開して使用できる方法を提供しています。 ただし、Marketplace での公開は面倒である上、InterSystems コーダーを対象としたスニペットは、現実的には Marketplace の訪問者のごく少数にしか興味を持たれません。
このことから、oex-vscode-snippets-template を作成する発想を得ました。InterSystems 開発者向けのコードスニペットを公開するための専用リポジトリを作成する GitHub テンプレートです。
また、oex-vscode-snippets-example というスニペットサンプルのリポジトリも Open Exchange で公開され、IPM / ZPM を使ってインストールされます。 以下のようにして、ネームスペースにパッケージをインストールします。
zpm "install vscode-snippets-John.
※ 本内容は随時更新予定です。ワークショップに必要な内容をご覧いただき、参加のご検討などしていただければ幸いです。
Pythonワークショップにご参加いただく場合は、事前に以下の環境をご用意ください。
- IRIS 2024.1.1 for Windows Community Edition (※ これからダウンロードされる方は、バージョンが異なりますので下記コメントをご確認ください)
- キットダウンロードはこちらの記事をご覧ください。
- インストールオプションはデフォルト (インストールタイプ: 開発、初期セキュリティ設定: 最小)
- Visual Studio Code (任意のバージョン) と ObjectScript用エクステンション
- エクステンションのインストール方法はこちらの記事をご覧ください。
- 以下のPythonライブラリを irispip (<IRISインストールディレクトリ\bin\irispip.exe) でインストール
- flask, nicegui, sqlalchemy-iris, scikit-learn, numpy, pandas
これは InterSystems FAQ サイトの記事です。
ジャーナルファイルのサイズが大きすぎて、管理ポータルで検索やフィルタリング等できない場合、以下の2つの方法で参照することができます。
① ^JRNDUMP ユーティリティを使用する方法
② プログラムで参照する方法
============================================================
① ^JRNDUMP ユーティリティを使用する方法 例えば、グローバル参照 ^ABC を含むジャーナルファイルのすべてのレコードを選択する場合は、以下のようになります。
※以下、すべてのコマンドは %SYS ネームスペースで実行してください。
DO SELECT^JRNDUMP("C:\MyCache\mgr\journal\YYYYMMDD.001","","","^ABC",1)
グローバル参照 ^ABC に完全に一致するレコードのみを選択する場合は、以下のようになります。
DO SELECT^JRNDUMP("C:\MyCache\mgr\journal\YYYYMMDD.001","","","^ABC",0)
グローバル ^ABC に対するローカルの Set 処理のレコードのみを選択する場合は、以下のようになります。
Studio で最も便利な機能の 1 つにコードスニペットがあります。
以下は、スニペットを VSCode に追加する方法です。
以下は、一般的な手順です。
1. ファイル - 設定 - ユーザースニペットに移動し、objectscript を選択します。
2. スニペットを追加します。以下に例を示します。
"SQL Statement": {
"prefix": ["sql"],
"body": ["#dim rs As %SQL.ISelectResult",
"set rs = ##class(%SQL.Statement).%ExecDirect(,\"SELECT * FROM\")",
"while rs.%Next() {",
"\twrite rs.ID, !",
"}"]
}要素は以下のように定義されています。
- prefix - スニペットを表示するのに入力する必要のある文字
- body - スニペットの本体
さらにスニペットには、以下のようにプレースホルダーも含められます。
"Method": {
"prefix": ["method"],
"body": ["set sc = ##class(${1:class}).開発者の皆さん、こんにちは!
コミュニティの皆さん、こんにちは!
開発者コミュニティ AI 懸賞企画 お楽しみいただけましたか? まだまだ改良の必要がありそうですが、DC AIを利用して何か新しい回答が得られていることを願っています。
この投稿では、優勝者を発表します!🎊(抽選の様子を動画でご紹介しています。ぜひご覧ください!)
これは、InterSystems FAQサイトの記事です。
InterSystemsでは、以前は、OSの特定リリースに対して製品の検証は実施しておりませんでしたが、
バージョン2022.1以降においては、OSのマイナーバージョンに対する検証を実施しております。
最新のサポートプラットフォームの情報については、下記の記事をご確認ください。
※2024年12月現在の最新情報
InterSystems サポートプラットフォーム最新情報 Q4-2024
★最新情報は開発者コミュニティにて随時発信いたしますので、以降の状況については、上記記事の継続記事をご確認ください。
(ご参考)
以前の状況についてはこちら
Windowsのサービスパックの適用に対する製品サポートについて
Windows Serverのリリースの違いは、サポートバージョンに影響しますか?
これは、InterSystems FAQサイトの記事です。
インターシステムズは、特定のオペレーティングシステムのパッチやサービスパックに対して、製品の検証は実施しておりません。
これらの保証については、オペレーティングシステムベンダーが互換性を保証する限りにおいて、提供されます。
まれなケースで、インターシステムズの製品を稼動するために、特定のパッチやサービスパックを必要とするケースもあります。
その様な特別な状況の詳細は、サポートサーバプラットフォームに明記しています。以下ドキュメントをご参照ください。
明記されていない場合には、オペレーティングシステムベンダーが互換性を保証する限りにおいて、パッチやサービスパックもサポート対象となります。
※2022.1以降のバージョンにおいては、OSのマイナーバージョンにおいても検証を実施しております。
InterSystems IRIS、IRIS for Health、HealthShare HealthConnect のメンテナンスリリース 2023.1.5 と 2024.1.2 がリリースされました
InterSystems IRIS、InterSystems IRIS for Health、HealthShare Health Connect の2つのメンテナンスリリースがリリースされました。
✅ 2023.1.5
リリース 2023.1.5 は、以前のリリース 2023.1.x のバグフィックスを提供します。
詳細な変更リストとアップグレード・チェックリストは、以下のページにあります :
✅ 2024.1.2
リリース 2024.1.2 は、以前のリリース 2024.1.x のバグフィックスを提供します。
CI/CD シリーズの新しい章へようこそ。ここでは、InterSystems テクノロジーと GitLab を使用したソフトウェア開発の様々な可能なアプローチを取り上げています。 今回も相互運用性について説明を続けますが、特に相互運用性デプロイの監視に焦点を当てます。 まだアラートをすべての相互運用性プロダクションにセットアップしていない場合は、それをセットアップしてエラーとプロダクションの状態についての一般的なアラートを取得できるようにしてください。
非活動タイムアウトは、すべての相互運用性ビジネスホストに共通する設定です。 ビジネスホストは、「Inactivity Timeout(非活動タイムアウト)」フィールドに指定された秒数以内にメッセージを受信しない場合に非アクティブステータスになります。 プロダクションの監視サービスはプロダクション内のビジネスサービスとビジネスオペレーションのステータスを定期的に確認し、非活動タイムアウト期間内にアクティビティがない場合にその項目を「非アクティブ」にマークします。
デフォルト値は 0(ゼロ)です。 この設定が 0 である場合、ビジネスホストはアイドル状態がどれほど続いても Inactive にマークされることはありません。
これはアラートを生成し、構成されたアラートと合わせてプロダクションの問題に関するリアルタイム通知を可能にするため、非常に便利な設定です。 ビジネスホストがアイドル状態である場合、プロダクション、統合、またはネットワーク接続に調べる価値のある問題がある可能性があります。 ただし、ビジネスホストには一定時間の非活動タイムアウトを 1 つしか設定できないため、夜間、週末、休日などのトラフィックの少ない既知の期間中に不要なアラートを生成する可能性があります。 この記事では、動的な非活動タイムアウトを実装するためのいくつかのアプローチを説明します。 機能する例(現在ある顧客サイトの本番環境で実行しているもの)を紹介していはいますが、この記事は独自の動的な非活動タイムアウトの実装を構築するためのガイドラインを紹介することを目的としているため、ここに提案するソリューションを唯一の代替手法と見なさないようにしてください。
開発者の皆さん、こんにちは!
11月8日(金)は開発者コミュニティのミートアップ開催日です。申し込みはお済でしょうか??
昨年、大阪で初回ミートアップを開催した際、コミュニティメンバー同士での交流をとても楽しみにしてくださる方が多かった印象を受けました。
そこで、今年はメンバー同士の結束をより高められたら・・と思い、ミートアップ2024Tシャツを作成しました!
開発者の皆さん、こんにちは!
🖋 InterSystems Japan 技術文書ライティングコンテスト2024:IRISに関連した記事 🖋の応募受付期間が終了し、残るは投票のみとなりました!
第2回目のコンテストは✨6作品✨の応募がありました!
コミュニティメンバーは「イイネ」
をクリックすることで投票できます。2024年10月31日(木)23時59分59秒 まで投票受付中です。
素晴らしい6作品のなかから、🔥これだ!🔥と思う記事の「イイネ」をクリックしてください。
以下、投票方法についてご案内します。
(1) 開発者コミュニティにログインする。
ログインアカウントをお持ちでない方は、コミュニティページ上部の
(下図赤枠)をクリックし、アカウント登録を行って下さい。
クリックした後の流れは「アカウント作成方法」の記事をご参照ください。
(2) 投稿記事一覧ページに移動します。
投稿記事を👀じっくり読みます👀
(3) 「いいね」をクリックします。
投稿記事一覧ページ上でクリックする場合はそれぞれの投稿画面左下にある
のマークをクリックします。クリック前はグレーの表示ですがクリック後
に変わります。
各記事を参照している状態で「いいね」をクリックする場合は、画面左側にアイコン一覧が縦に並んでいますので
のマークをクリックします。
.png)
良い記事が見つかったら
をクリックして作者を応援しましょう!📣
開発者の皆さん、こんにちは!
昨年初めて開催した日本の InterSystems 開発者コミュニティのコンテストですが、📣今年も開催します!📣
テーマは昨年と同じで InterSystems IRIS/InterSystems IRIS for Health に関連した内容であればどのような内容でもご応募いただけます。
🖋 InterSystems Japan 技術文書ライティングコンテスト2024:IRISに関連した記事 🖋
🎁 参加賞:投稿いただいた方全員に👚開発者コミュニティ特製Tシャツ👕をプレゼントいたします!
🏆 特別賞:選ばれた3作品に特別賞があります。
8/30更新:賞品情報追加しました!ぜひご確認ください!👇
開発者の皆様はじめまして。 私からはIRISのソースコントロール機能を用いたソースの自動チェック機能のご紹介をしたいと思います。 チーム開発では、ソースの可読性や実装方法等がある程度統一されるようにコーディング規約を作成すると思います。 しかし、メンバーの入れ替わりでコーディング規約の説明をしていても徹底されないことが起こることも少なくありません。 なので、ソースコントロールを使用してコンパイル時に自動的にチェックするようにしました。 IRIS内で完結させるメリットとして、エラーチェックだけでなくチェック後にエラーがなければコンパイルまで自動で行えること、 %Dictionary.ClassDefinition(クラス定義)を使用できるので、チェッククラスを作成しやすいこと等があげられます。
目次
- ソースコントロールについて
- 今回用意したチェック用クラスの紹介
- ソースコントロールへの設定
- 実際の動作
- 感想
1.ソースコントロールについて まず、ソースコントロールについて簡単に記載します。 ソースコントロールとは、一般的にコードに対する変更を追跡し管理することを表します。 IRISのソースコントロール機能には様々なメソッドが用意されています。 今回はそれを使用することでソースの自動チェック機能を実現していきます。
CI/CD シリーズの新しい章へようこそ。ここでは、InterSystems テクノロジーと GitLab を使用したソフトウェア開発の様々な可能なアプローチを取り上げています。
今回は、相互運用性についてご紹介しましょう。
問題
アクティブな相互運用性プロダクションがある場合、2 つの個別のプロセスフローが存在します。メッセージを処理する稼動中のプロダクションと、コード、プロダクションの構成、およびシステムデフォルト設定を更新する CI/CD プロセスフローです。
明らかに、CI/CD プロセスは相互運用性に影響しますが、 本題は次にあります。
- 更新中には実際に何が起きているのか?
- 更新中の本番停止を最小限に抑えるか失くしてしまうには、どうすればよいのか?
はじめに
生成AIを活用したアプリケーション開発は、Python、JavaScriptなどのメジャー言語による体験記事がよく見られます。一方、IRISのObjectScriptの開発に言及された記事は比較的少ないのが現状です。そこで、本記事では生成AIがObjectScriptの開発にどこまで活用できるのかを検証しました。
特にDevOpsのプロセスにおいて、生成AIは様々なシーンでの活用が期待できます。今回は開発工程に注目し、以下の観点から生成AIの有効性を調査しました。
- 開発
- コードの自動生成
- 環境構築のアシスタント(テーブルの作成)
- 検証
- テストデータ生成のサポート
環境
本記事の検証は以下の環境で行いました。
開発環境
- OS: macOS Sonoma
- IRIS: 2023.4 (linux)
開発ツール IRISの開発にはStudioやVSCodeなどが利用可能ですが、今回は生成AIの活用に特化したエディタ「Cursor」を使用しました。
Cursorを選定した理由 Cursorは、生成AIによる支援機能に特化したコードエディタで、以下の特徴があります:
生成AIの支援:コードの自動生成や提案、バグの検出、修正提案を行います。また、外部のドキュメントや複数のソースを指定し、生成内容に反映させる簡易なRAG機能も搭載されています。
約 4 年のギャップを経て、私の CI/CD シリーズが帰ってきました! 長年にわたり、InterSystems の数社のお客様と連携し、様々なユースケースに対応する CI/CD パイプラインを開発してきました。 この記事で紹介する情報が誰かのお役に立てられれば幸いです。
この連載記事では、InterSystems テクノロジーと GitLab を使用したソフトウェア開発の様々な可能なアプローチを取り上げています。
取り上げたいトピックは広範にありますが、今回は、コードを超えた内容についてお話ししましょう。構成とデータについてです。
問題
前回はコードの昇格について話しました。ある意味ステートレスで、常に、(おそらく)空のインスタンスから完全なコードベースへと進めます。 ただし、時にはデータまたは状態を提供することも必要です。 データには様々なタイプがあります。
- 構成: ユーザー、ウェブアプリ、LUT、カスタムスキーマ、タスク、ビジネスパートナーなど
- 設定: 環境固有の key-value ペア
- データ: 参照テーブルとアプリが機能するために提供しなければならない場合があるテーブル
これらすべてのデータタイプについて、およびソース管理にコミットしてからデプロイする方法について説明します。
開発者のみなさん、こんにちは!
今年も開発者コミュニティミートアップを東京にて開催いたします!(10月1日:お申込みサイトオープンいたしました!)
日 時:2024年11月8日(金)13時半~19時
場 所:AP東京八重洲 13階
<JR各線をご利用の場合>「東京駅」八重洲中央口より徒歩6分
<東京メトロ銀座線をご利用の場合>「日本橋駅」徒歩約5分/「京橋駅」徒歩約4分
<都営浅草線をご利用の場合>「宝町駅」徒歩約4分
※ヤエチカ24番出口から出るとわかりやすいです。
参加費:無料
定 員:50名
※定員に達した際は調整をお願いすることもございます。予めご了承下さい。
申 込:(申込受付終了しました)

.png)
(下図赤枠)をクリックし、アカウント登録を行って下さい。.png)
