開発者の皆さん、こんにちは。
2024年4月26日より、新しいプラットフォームへの移行に伴い、グローバル・マスターズ・プログラムへのアクセスを一時的に停止しておりましたが、
🚀 本日(EST時間)より Global Masters プログラム 再開です!

開発者の皆さん、こんにちは。
2024年4月26日より、新しいプラットフォームへの移行に伴い、グローバル・マスターズ・プログラムへのアクセスを一時的に停止しておりましたが、
🚀 本日(EST時間)より Global Masters プログラム 再開です!

開発者の皆さん、こんにちは!
USコミュニティで現在開催しているいつもとちょっと違ったコーディングではないイベント:🚶♀️InterSystems ウォーキング・チャレンジ🚶♂️をご案内します!
(通勤通学でよく歩いている方、賞品Getのチャンスです!)
InterSystemsのウォーキング・チャレンジは、あなたの心を充電し、フィットネスを高めるのに役立ちます。 リューベックからリューネブルクまで、何世紀も前にヨーロッパを結んだ伝説の交易路「塩の道」を歩くバーチャルな旅に出かけましょう。
そして、トレッドミル、スマートウォッチ、メダルなどのエキサイティングな賞品をゲットしましょう!
👟🚶🧑🦼Lace Up, Step Out, and Code Better! 🔋💻💪
📅 期間:2024年9月23日~10月20日 11月8日まで(11月22日18時CETにこのチャレンジは終了します)
参加されたい方、以下詳細をご参照ください。
開発者の皆さん、こんにちは! InterSystems IRIS(以下、IRIS)を使用したアプリケーション開発において、皆さんは環境設定をどうされていますか? 私は最近になって、「インストールマニフェスト」という機能があることを知りました。 これは、管理ポータルでポチポチしていた作業をコード化・自動化できる強力なツールです! 最初こそとっつきづらかったものの良いところがたくさんあるなと思ったので、簡単にではありますが皆さんにその良さと始め方をご紹介したいと思います。
なお、私が使用しているIRISバージョンは以下です。
2022.1
バージョンが異なる場合、違う書き方になっているもの等が存在する場合がありますので、 公式ドキュメント等を参照し適宜読み替えていただければと思います。
開発者の皆様、こんにちは。
USコミュニティで開催していましたInterSystemsデベロッパーツールコンテスト の勝者が発表されました!
今回は 17 applications 🔥の素晴らしいアプリケーションの投稿がありました。
%20(2)(2).jpg)
コミュニティの皆さんこんにちは。
突然ですが、皆さんはIRISの機能にある「ユニットテスト」は利用されているでしょうか。
筆者はまだ実装まで行えていませんが、各関数の品質保証を担保するため導入を検討している段階です。
現状、IRISのユニットテストには下記2点の対応すべき点があると考えています。
特にテストが継続的に自動で実施されないと、ユニットテスト自体が次第に陳腐化し、実行されなくなり忘れ去られる恐れがあると考えます。
ただし、意味もなく定期的にテストを実行しても効果がありません。
そこで、Gitのpushのタイミングで行おうと考えました。
次にテスト環境です。
テスト環境の構築は、テスト自動化の観点からみるとCI/CDツール等を利用するのが一般的だと思います。
ただ今回は、テスト環境の構築を簡易にすませたいと考え、IRISの既存技術を組み合わせて構築しようと考えました。
そこで運用幅の広いInteroperabilityとユニットテストを組み合わせて、テストの自動化が可能か考察していきたいと思います。
開発者の皆さん、こんにちは。
突然ですが、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テンプレートエンジンとなにが違うの?
Git を使用してIRIS でソリューションを構築することは、素晴らしいことです! 単にローカルの git リポジトリにVSCodeを使用し、サーバーに変更をプッシュする... それは非常に簡単です。
でも、次の場合はどうでしょうか。
これは InterSystems FAQ サイトの記事です。
ロックテーブルの1エントリは管理領域の固定512 bytesとロック文字列情報などの可変領域から構成されます。
可変領域はロック対象のグローバルノード名に関連する情報に必要な長さ(bytes)になります。
1つのLockコマンドにつき、上記で示した長さのデータが必要です。
そしてその可変領域に必要なデータ長は、ロック対象のグローバルノード名(^xxx(xxx,xxx)) の長さに見合う16,32,64,128,256,…bytesのバケットの長さになります。
例えばロック対象のグローバルノード名が^xxx(123,"data")とすると、 ^xxx(123,"data")にデータのロケーション等のデータが付加されたものがその可変領域となり、32byteまたは64bytes(データロケーションが相応に長い場合)のバケットを使用しますので、
このロックで使用するデータサイズが、64byteのバケットを使用すると仮定すると、
512(固定領域)+ 64 (可変領域)= 576 bytes
となります。
これは InterSystems FAQ サイトの記事です。
IRIS2023.1から導入されたgmheapとlocksizの新しいデフォルト値について紹介します。
gmheap=0は、特別な設定の必要性がないほとんどのシステム(実運用システムを含む)に適切なように設計された新しいデフォルト値です。
0に設定することで、システムがシステム全体のサイズを推測し、妥当な値を算出してくれます。
gmheap=0 に設定した場合、システムは、グローバルバッファ用に設定されたメモリの合計に3%を乗じた値を基準に、300MBの下限と2GBの上限の範囲内でgmheap値を設定します。
0以外の値はそれをそのまま使用し、2GBよりはるかに大きく、あるいは300MBよりはるかに小さく設定することができます。
(ただし、小さな値を設定した場合、メモリを必要とする機能の利用が失敗する可能性があります。 同様に極端に大きな値を設定することでシステムに悪影響を与える可能性があります)
さらにこの変更以前は、.cpfファイルのgmheap設定に加えて、CPUスレッド数 に2MBを掛けた値をシステムが内部的に追加していました。
このため、異なるシステムに構成を移動するときや、物理メモリの使用量を理解しようとするときに混乱を招くことがありました。
これは InterSystems FAQ サイトの記事です。
PythonからObjectScriptのルーチンを直接呼び出すことはできませんが、クラスメソッドを経由して間接的に呼び出すことができます。
しかし、Pythonの変数とObjectScriptのローカル変数は内部構造が異なるため、情報の交換には少し工夫が必要です。
簡単なサンプルでその方法について説明します。
まず、2つの変数を足し算する簡単なルーチン ^testを作ります。
TEST ;
set sum = a + b次にこの^testを呼び出すPythonのメソッドを含んだUser.testというクラスを作ります。
そしてpyという名前のPythonのメソッドを作成します。
先述の通りPythonからObjectScriptのルーチンを直接呼び出すことはできないので、ルーチンを間接的に呼び出すObjectScriptのメソッドを作成する必要があり、そのメソッドをPythonメソッドから呼び出すようにします。
渡したいデータが複数個ある場合、その数分引数を用意するのは面倒なため、Pythonの場合、情報をまとめて交換する際にdictionary(辞書)やlistという構造を使用することができます。
ここでは、dictionaryを使用する例を紹介します。
これは InterSystems FAQ サイトの記事です。
messages.logまたはcconsole.log内に記録されるCSPGatewayLatencyのメッセージは、サーバが、パフォーマンス測定のため定期的に「CSPゲートウェイにリクエストを送信して応答をもらう」ことを行っており、応答を受け取るまで一定時間以上かかったときに出る警告(応答時間の閾値)です。
その既定値は1000ミリ秒です。
WebGateway(CSPGateway)が稼働する Web サーバの負荷が高い場合に出力する場合がありますが、実際のCSPアプリケーションやREST APIの動作や応答速度に影響が見られなければ、特に問題はありません。
またこのメッセージの出力頻度を下げるためにこの閾値を変更する方法もあります。
変更方法は以下を参照ください
これは InterSystems FAQ サイトの記事です。
404エラーが返される場合に、以下の対応でエラーが解消されることがわかっています。
(1) binの接続を許可
/cspの構成エディタ>セクションで以下選択
system.webServer > security > requestFiltering
> hiddenSegmets 選択 > (コレクション)の右欄(Count=xx)の右端 [...] クリック
> segment欄に binの行があったので、選択して削除
> 画面戻って、右上の [適用] クリック
または、IISの構成ファイルを直接編集することでも対応可能です。
C:\Windows\System32\inetsrv\config\applicationHost.config
これは InterSystems FAQ サイトの記事です。
以下のようなベンチマーク関連の情報が公開されています。
Intel社と共同で実施したパフォーマンス(レイテンシー)とスケーラビリティ(スループット)を計測するベンチマーク結果
ESG社によるIRISと他社データベースとの性能比較に関するレポート
ウルシステムズ社が実施したAWS AuroraとIRISの性能評価結果
オープンソースのベンチマークプログラム
WinterCorp社のベンチマークレポート
様々なハードウェア上で実施したベンチマーク結果を公表
開発生産性の評価に関連するレポート
お世話になっております。
ご好評をいただいております弊社主催の開発者向けウェビナー、第18回となる10月は、以下の日時・内容で開催いたします。
【概要】
ITを取り巻く環境は常に進化を続け、ITリソースの需要はいつも強く求められています。それゆえ、社内開発からお客様へのサービス展開まで、システム環境構築の自動化戦略は、いまや欠かせないものになりました。
このウェビナーでは、Red Hat社の構成自動化ツール Ansible をご紹介するとともに、InterSystems IRIS のインストールから構成設定、アプリ導入までを Ansible で簡単に自動化する手順を、デモを通じてご覧いただきます。
【こんな方にお勧め】
ご多用中とは存じますが、皆様のご参加をお待ち申し上げております。
これは InterSystems FAQ サイトの記事です。
HTTPレスポンスヘッダ情報を取得したい場合、以下のような方法があります。
開発中などに、送られてきたヘッダの項目名、そのデータを確認したい場合に、是非ご活用ください。
set var=""
for {
set var=$order(%request.CgiEnvs(var))
if var="" quit
set val=$get(%request.CgiEnvs(var))
write var_": "_val,"<BR>"
}
%Net.HttpRequest クラスの Head メソッドを使用します。
set http = ##class(%Net.HttpRequest).%New()
set http.Server = "localhost"
set http.Port = 80
do http.Head("/csp/user/menu.csp") // ヘッダ情報をリクエストするURL
do http.HttpResponse.開発者の皆さん、こんにちは!
USコミュニティのコンテスト情報が更新されました。今回は、コミュニティメンバーの開発の手助けになるような便利ツールの作成がテーマです。
🏆 InterSystemsデベロッパーツールコンテスト 🏆
※ 日本のコミュニティの 第2回 InterSystems Japan 技術文書ライティングコンテスト 開催!とは異なるコンテストです。ご注意ください!
InterSystems IRIS を使用して、より迅速な開発、より質的なコードの貢献、ソリューションのテスト、デプロイ、サポート、または監視に役立つアプリケーションをご応募ください。
期間:2024年9月9日~29日
賞品総額: $14,000
.jpg)
開発者の皆さん、こんにちは!
この記事は、2024年7月に開催された「InterSystems Pythonプログラミングコンテスト2024」でエキスパート投票、コミュニティ投票の両方で1位を獲得された @Henry Pereira さん @José Pereira さん @Henrique Dias Dias さんが開発された sqlzilla について、アプリを動かしてみた感想と、中の構造について @José Pereira さんが投稿された「Text to IRIS with LangChain」の翻訳をご紹介します。
第2回 InterSystems Japan 技術文書ライティングコンテスト 開催! では、生成AIに関連する記事を投稿いただくと、ボーナスポイントを4点獲得できます📢 @José Pereira さんの記事を💡ヒント💡に皆様の操作体験談、アイデアなどを共有いただければと思います。
開発されたアプリSQLzilla についての概要ですが、Open Exchange の sqlzilla のREADMEに以下のように紹介されています。
「SQLzilla は、Python と AI のパワーを活用して、自然言語の SQL クエリ生成を通じてデータ アクセスを簡素化し、複雑なデータ クエリとプログラミング経験の少ないユーザーとの間のギャップを埋めます。」
通常、Caché でエクスポートしたクラスやルーチンをIRISにインポートすることは可能ですが、IRISよりエクスポートしたクラスやルーチンを Caché にインポートすることはできません。
Caché にインポートしようとすると、以下のようなエラーになります。
USER>do $system.OBJ.Load("C:\temp\test.xml")
ロード開始 07/23/2024 16:50:42
ファイル C:\temp\test.xml を xml としてロード中
ERROR #6301 行: 2 オフセット: 117 これはCacheエクスポートファイルではありません。インポートできません。
読込時に 1 個のエラーを検出しました。
どうしても、古いバージョンにインポートする必要がある場合、「/exportversion」というエクスポート修飾子を使用することが可能です。
使用方法は以下のようになります。/exportversion には、エクスポートしたルーチンをインポートしたい環境のCacheバージョンを指定します。
USER>write $SYSTEM.OBJ.Export("test.mac","c:\temp\test2.xml","/exportversion=cache2018.開発者の皆さんこんにちは!
9月2日から、🖋第2回 InterSystems Japan 技術文書ライティングコンテスト🖋 が始まります!応募の準備はばっちりでしょうか?👀
この記事では、昨年開催したコンテストに応募いただいた作品を審査員コメントを添えてご紹介します。
(審査員コメントは昨年11月に開催したミートアップ内で行ったコンテスト表彰式で紹介した内容です)
✅ @Akio Hashimoto さんが投稿された DockerにIRISを構築する簡単なチュートリアル
審査員コメント:
✅ @Junichi Sakata さんが投稿された Embedded Pythonの使い所は?
審査員コメント:
✅ @Yuji Ohata さんが投稿された AWS環境を用いたCI/CDの仕組みの紹介。
審査員コメント:
これは InterSystems FAQ サイトの記事です。
messages.logに「Updates may become suspended due to low available buffers」のエラーが出ている場合、このインスタンスのバッファ利用可能サイズが低下していることが考えられます。
上記メッセージが頻繁に出力するようであれば以下の対処をご検討ください。
メッセージの意味は以下のようになります。
2024年第3四半期のプラットフォーム最新情報をお届けします。今回は、いつもの OS 更新情報に加えて、AIX のセキュリティ向上に関連するニュースをお伝えします。
インターシステムズは、非常にまれな状況下で、マルチボリュームデータベースでデータベース破損または <DISKHARD> エラーが発生する可能性がある不具合を修正しました。危険性があるのは、未使用領域削除(Truncate)を行ったマルチボリュームデータベースのみです。
この問題は、以下の製品およびそれらベースとしたその他のインターシステムズ製品に存在します:
InterSystems IRIS 2024.1, 2024.1.1, 2024.2
InterSystems IRIS for Health 2024.1, 2024.1.1, 2024.2
HealthShare Health Connect 2024.1, 2024.1.1, 2024.2
上記以外の HealthShare 製品はこの問題の影響を受けません。
インターシステムズは、この不具合に関するお客様からの報告を受けていませんが、この問題を回避するために、以下の一時的な緩和策を推奨します:
Visual Studio Code(VSCode)は、市場で最も一般的なコードエディターです。 Microsoft によって制作され、無料 IDE として配布されています。 VSCode は ObjectScript などの多数のプログラミング言語をサポートしており、2018 年までは Atelier(Eclipse ベース)もサポートしていました。 InterSystems 製品開発の主なオプションの 1 つとして考えられていましたが、 2018 年、InterSystems 開発者コミュニティが VSCode のサポートを発表した際に、関連する InterSystems のプロユーザーらが実際にこのエディターを使用し始め、以来、特に新しいテクノロジー(Docker、Kubernetes、NodeJS、Angular、React、DevOps、GitLab など)を使用する開発者の間でその使用が続いています。 VSCode の一番の機能の中にはデバッグ機能が挙げられます。 そこで、この記事では、クラスコードや %CSP.REST コードなどの ObjectScript コードをデバッグする方法を詳しく紹介します。
デバッグとは、ObjectScript コードに含まれる「バグ」と呼ばれるエラーを検出して解決するプロセスを指します。
コミュニティの皆さん
こんにちは!
ご存知かもしれませんが、Developer Community AIがリリースされて1ヶ月以上が経ちました🎉 興味を持たれた方は、ぜひ試してみてください😁 まだの方は、ぜひお試しください!いずれにせよ、まだベータ版であるため、私たちは皆さんがこのAIについてどのように考えているかを知りたいと思っています。

皆さんの時間と労力を大切にしているので、感想をシェアしてくれたメンバーに、抽選でキュートな賞品をプレゼントします。この懸賞に参加するには、以下のガイドラインに従ってください。
InterSystems IRIS 2024.3 と InterSystems IRIS for Health 2024.3 の最初の開発者プレビューが WRC プレビューダウンロードページ に公開されました。コンテナ版は InterSystems コンテナレジストリ から入手いただけます。コンテナは latest-preview とタグ付けされています。
%UnitTest framework を使用してユニットテストを構築したことがある場合、またはこれから構築しようとお考えの場合は、InterSystems Testing Manager をご覧ください。
VS Code を離れることなく、ユニットテストの閲覧、実行またはデバッグ、過去の実行結果の表示が可能になりました。
InterSystems Testing Manager は、ObjectScript 拡張機能がサポートするソースコード場所のパラダイムに対応しています。 ユニットテストクラスは、VS Code のローカルファイルシステム('client-side editing' パラダイム)またはサーバーネームスペース('server-side editing')のいずれかでマスターできます。 いずれの場合でも、実際のテストの実行は、サーバーネームスペースで発生します。
フィードバックをぜひお送りください。
IRISでPythonを扱う時に、既存の%DynamicObject型の値をそのまま利用したいと思うのですが、Embedded Pythonは自動で%DynamicObjectをdict型にはしてくれません。親和性はとてもあるのですが。。。
そこで、既存プログラムで生成した%DynamicObject型の値をPython側、特に外部のPythonファイル側でdict型を期待している関数に利用するにはどうすれば良いか。
少しスマートではありませんが、%DynamicObjectを一旦JSON文字列に置き換え、Embedded Python 内でJSON文字列からdict型に変換する方法しかないようです。
以下が、その手順です。
Set data = {}
Set data.name = "hanako"
Set data.age = 20
Do ..testPython(data)
ClassMethod testPython(arg As %DynamicObject) [ Language = python ]
{
import json
import pythonfile
data = json.loads(arg._ToJSON())
pythonfile.test(data)
}
InterSystems API Manager (IAM) のバージョン 2.8.4.11 & 3.4.3.11 が公開されました。 これらは、長期的にサポートされている IAM の 2 つのバージョンの最新版です。これらのリリースには重要な修正が含まれており、すべてのお客様にアップグレードをお勧めします。
IAM 3.0または3.2をお使いのお客様は、これらのバージョンのサポートがまもなく終了するため、3.4.3.11にアップグレードすることをお勧めします。
IAM は、InterSystems IRIS サーバとアプリケーション間の API ゲートウェイであり、HTTP ベースのトラフィックを効果的に監視、制御、管理するためのツールを提供します。IAM は、InterSystems IRIS ライセンスの無償アドオンとして利用できます。
IAMは、WRCソフトウェア配布サイトのComponentsエリアからダウンロードできます。
IAM のダウンロード、インストール、使用開始方法については、 インストール・ガイド を参照してください 。InterSystems IRIS での使用に関する詳細な情報については IAM Version 3.4 Guide を参照してください。パートナーであるKong社では、Kong Gateway (Enterprise) 3.
前回の記事でSMART On FHIRプロジェクトのアーキテクチャを紹介したので、いよいよ本題に入り、必要となる全ての要素の設定を始めましょう。
まずはAuth0から始めます。
登録が完了したら、左側のメニューから最初のアプリケーションを作成します

この例では、Angular 16で開発されたアプリケーションなので、Single Page Web Applicationタイプとなります。このオプションを選択し、Createをクリックします。

次の画面では以下のフィールドを定義する必要があります。
注意: URLはすべてHTTPSでなければなりません。これはOAuth2接続要件の1つです。
これはOAuth2接続の要件の1つです。これでAuth0が認証と認可プロセスの後にユーザーをリダイレクトするために必要なURLを設定しました。