こんにちは、皆さま。
業務でIRISを用いて開発を行っている者です。
私自身SQLがあまり得意ではなく、
業務で書いてみたもののパフォーマンスがよくなく、
不要なループが含まれていた、無駄な検索条件が含まれている…なんてことが多々あります。
IRISの管理コンソールなどにはいろんな機能があると思うのですが、
パフォーマンス改善をするために利用できるツールなどはあったりしますでしょうか?
何かご存知の方がいらっしゃいましたら、情報共有頂けますと幸いです。
こんにちは、皆さま。
業務でIRISを用いて開発を行っている者です。
私自身SQLがあまり得意ではなく、
業務で書いてみたもののパフォーマンスがよくなく、
不要なループが含まれていた、無駄な検索条件が含まれている…なんてことが多々あります。
IRISの管理コンソールなどにはいろんな機能があると思うのですが、
パフォーマンス改善をするために利用できるツールなどはあったりしますでしょうか?
何かご存知の方がいらっしゃいましたら、情報共有頂けますと幸いです。
前回の記事では、ICD-10 による診断のコーディングをサポートできるように開発された d[IA]gnosis アプリケーションを紹介しました。 この記事では、InterSystems IRIS for Health が、事前トレーニングされた言語モデル、そのストレージ、およびその後の生成されたすべてのベクトルの類似性の検索を通じて ICD-10 コードのリストからベクトルを生成するために必要なツールをどのように提供するかを見ていきます。

AI モデルの開発に伴って登場した主な機能の 1 つは、RAG(検索拡張生成)という、コンテキストをモデルに組み込むことで LLM モデルの結果を向上させることができる機能です。 この例では、コンテキストは ICD-10 診断のセットによって提供されており、これらを使用するには、まずこれらをベクトル化する必要があります。
診断リストをベクトル化するにはどうすればよいでしょうか?
ベクトルを生成するために、トレーニング済みのモデルからの自由テキストのベクトル化を大幅に容易にする SentenceTransformers という Python ライブラリを使用しました。 そのウェブサイトでは以下のように説明されています。
Embedded Pythonの導入に伴い、1つ嬉しいことは、直接エクセルファイルの読み書きができるようになったことです。
それでこの機能を使って、ミニ業務改革をちょこちょこ行なっているのですが、そこでちょっとハマったことを共有します。
実際この内容は実はIRISとは全く関係ないのですが、このDCコミュニティの皆さんが同じことでハマった場合に少しでも早く問題解決できるように情報共有します。
エクセルの計算式の入ったセルの値を読み取るときには、そのファイルのオープンの際にdata_only=Trueというフラグをつけないといけないのですが、そのファイルがopenpyxlで読み書きしたファイルの場合に、その計算式のセルの値(Noneとなる)がうまく読めないことがあります。
その場合には、そのファイルをエクセルで開いて再保存することで、正しく読むことができます。
以下にそのあたりの内容を説明したページがあります。
Pythonでは、拡張モジュールのバージョン違いが混同されないように、venv を使って仮想環境に拡張モジュールをインストールする事を推奨されてたりしますが、IRISから使用する場合に、このvenvで作られた仮想環境を利用する事は可能でしょうか?
PythonPathに仮想環境のパスを指定してはみましたが、プロジェクトから、あるいはimportで、その場所を指定する等出来るでしょうか?
何方か御存知の方がおられましたら、その方法などを教えて下さい。
2024年第4四半期のプラットフォーム最新情報をお届けします。みなさまの2024年が素晴らしい年であること、そして2025年がもっと素晴らしい年になることをお祈りしています。
初めてご覧になる方、はじめまして!この記事では、最近おこなわれた変更点や今後予定されている変更点に関する情報を、みなさまに共有させていただきます。ただ、将来の予測は難しい側面があり、ロードマップは約束されたものではないということを十分ご理解くださいませ。
ここ最近になって、VSCodeで以下のようなエラーが出るようになり、波線だらけになってしまいます。
IRISサーバーとは連携出来ていて、コンパイルも通るので大きな問題ではないのですが、ソースが真っ赤っ赤になってとっても見辛いです。
これらを消す方法があれば教えて下さい。
VSCode、拡張モジュール共に最新です。
Avoid using legacy if/else flow control statements (cachequality:OS0089)
鍋蓋カッコを使わない1行のIF文のところで真っ赤な波線が出まくります。
例:if (a = "") set b = "c"
Consider using an If statement instead of a postconditional (cachequality:OS0039)
コマンドの後付条件を記載しているところで、青い波線が出まくります。
例:quit:var=""
This QUIT invocation exits the current method; consider using RETURN instead (cachequality:OS0031)
処理の途中で、Quitと書いていることろが黄色い波線が出まくります。
ちなみに、以下のようなメッセージも出ます。
インターシステムズは InterSystems IRIS data platform、InterSystems IRIS for Health、HealthShare Health Connect のバージョン 2024.3 をリリースしました。2024.3 は Continuous Delivery(CD)リリースです。
ベクトルデータ型と Vector Search 機能が IRIS に導入されたことにより、アプリケーションの開発に多数の可能性が開かれました。こういったアプリケーションの例として、バレンシア保健省が AI モデルを使用した ICD-10 コーディング支援ツールを要求した公募で出品されたアプリケーションが最近私の目に留まりました。
要求されたツールのようなアプリケーションをどのように実装できるでしょうか? 必要なものを確認しましょう。
これらのニーズに対応するために、IRIS は何を提供できるでしょうか?
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 をベクトルストアとして使用します。
ほとんどの方が @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フローを行います。
参考までに、今回使用した環境を後半に記載しています。
コンテナ化してありますので、コンテナのビルド環境をお持ちの方は、下記を実行してください。
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ワークショップにご参加いただく場合は、事前に以下の環境をご用意ください。
これは 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, !",
"}"]
}要素は以下のように定義されています。
さらにスニペットには、以下のようにプレースホルダーも含められます。
"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、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)
良い記事が見つかったら
をクリックして作者を応援しましょう!📣