#InterSystems IRIS for Health

0 フォロワー · 930 投稿

InterSystems IRIS for Health™は、世界で最も重要なデータを管理する医療アプリケーションの迅速な開発を目的に特別に設計された世界初、かつ唯一のデータプラットフォームです。 トランザクションの処理と分析、拡張可能な医療データモデル、FHIRベースのソリューション開発、医療情報の相互運用性に関わる標準規格への対応など、すぐに使える強力な機能を搭載しています。 これらすべての機能により、開発者は価値を実現し、画期的なアプリケーションをすばやく構築することができます。 詳細はこちらをご覧ください

記事 Mihoko Iijima · 6月 28, 2020 3m read

IRIS でのクラス定義の作成、ObjectScript でインスタンスの生成と永続化(保存)の方法について解説します。

もくじ

最初~1:55 前回のビデオの学習

1:55~2:45 今回の説明内容解説

2:45~5:15 クラスの種類について

5:15~13:20 作成するクラスの説明、定義説明

13:20~18:44 スタジオでの作成実演

18:44~22:35 VS Codeでの作成実演

22:35~27:40 ObjectScriptでインスタンス生成

27:40~29:38 インスタンス生成~永続化の実演

29:38~34:54 データの確認

34:54~40:13 マルチモデル(永続クラス=テーブル)の確認

40:13~51:25 JSONとXMLアダプタの操作実演

51:25~57:36 クラスメソッドの定義と実行

57:36~最後まで まとめ

※ YouTubeでご覧いただくと「もくじ」の秒数クリックでビデオをジャンプできます。

その他ビデオ一覧は索引ページをご参照ください。

 

クラス定義例

/// Personクラス
Class Test.Person Extends %Persistent
{

/// 名前
Property Name As %Library.String;

/// メール
Property Email As %Library.

0
0 1174
記事 Mihoko Iijima · 12月 7, 2020 2m read

これは、InterSystems FAQサイトの記事です。

SELECT ... FOR UPDATE は明示的な行ロック取得の方法として多くの RDBMS で実装されているため、この機能を使われているケースも多いと思います。

このシンタックスは InterSystems 製品ではエラーにはなりませんが、期待されるような行ロックの取得は行われません。

この記事では同等の機能を実現する方法をご紹介します。

DECLARE CURSOR C1 IS
SELECT Name FROM Person WHERE Name LIKE 'A%' FOR UPDATE
OPEN C1
LOOP FETCH C1 INTO name 
... name を表示
... 終了ならLOOPをEXIT
END LOOP
CLOSE C1

 

上記のようなSQL文は、下記のSQL文で代替可能です。

※下記2行目のUPDATE文の実行により対象行に対して排他ロックがかかるため、他DBの動作と異なる点ご注

0
0 507
記事 Megumi Kakechi · 2月 15, 2021 4m read

これは InterSystems FAQ サイトの記事です。


「特権ルーチンアプリケーション」を使用し、コード中に $system.Security.AddRoles()メソッドを使用してロールを付与する仕組みを利用します。

※ロールベースで必要な特権を付与するため、予め特定の特権を持ったロールを作成する必要があります。

詳細は、以下ドキュメントをご参照ください。
特権ルーチン・アプリケーション【IRIS
特権ルーチン・アプリケーションについて


例えば、特定ルーチン(またはクラスメソッド)実行時のみデータベースの更新を許可するための設定は、以下のとおりです。

(接続するデータベースに対してはREAD許可だけを持ち、あるルーチン実行時のみデータベースに対するREAD/WRITE許可を持つように設定します。)
 

1)  データベース:Aのリソース定義を確認する

 データベース:Aのリソースに %DB_%DEFAULT が設定されている場合は、独自リソースを作成します。

0
0 194
記事 Mihoko Iijima · 4月 2, 2021 1m read

これは InterSystems FAQ サイトの記事です。

アプリケーション等がデータベースにアクセスしている最中に、データベースの最大サイズの変更や未使用領域の開放などのデータベース設定変更を行うことにより、データベース整合性等に悪影響を及ぼすことはありません。

しかし、未使用領域の開放などは、ディスクアクセスの増加やメモリの使用等でシステムに負荷をかける可能性があるため、その観点からシステム運用に影響が出ないよう注意が必要です。

0
0 166
記事 Mihoko Iijima · 5月 28, 2021 8m read

開発者の皆さん、こんにちは🌂 今年は早い梅雨入りでした ☔

さて、新しい✨ 実行/開発環境テンプレートを作成しました。 Docker 🐳、docker-compose 、git がインストールされていれば、すぐにお試しいただけます。ぜひご利用ください!

今回は、ご存知の方が多いと思われる(?)某アニメの登場人物を使った人物相関図をテーマに【キーバリュー形式で IRIS に登録してグラフ構造で表示してみた】を体験できるテンプレートです(テンプレートは、Python/Node.js/Java からお試しいただける環境をご用意しています)。

人物相関図のイメージ 

 

以下、今回のテーマについて、ビデオと文字でご紹介しています。最後までお付き合いいただければ幸いです!(ビデオは全体で 7 分 20 秒)

 

人物相関図と言えば、グラフデータベースをイメージされると思います。

IRIS はグラフデータベースではないのですが、IRIS ネイティブのデータの「グローバル」を利用することで、グラフデータベースと似たような構造を表現することができます。

IRIS の高パフォーマンスを支える グローバル は 40 年以上前(= InterSystems 創業)から InterSystems のコア技術であるデータベースとして提供されてきました。

0
0 492
記事 Megumi Kakechi · 8月 5, 2021 1m read

これは InterSystems FAQ サイトの記事です。

ディスクの空きスペースにもよりますが、ブロック別で最大サイズが異なります。

各バージョン共通で、8KBのブロックサイズを使用した場合は、32TBです。

バージョン2008.1以降のバージョンでは、8KB以外のブロックサイズを指定できるようになったため、最大サイズは以下の通りです。

  • 16KBのブロックサイズを使用した場合、64TB
  • 32KBのブロックサイズを使用した場合、128TB
  • 64KBのブロックサイズを使用した場合、256TB
0
0 252
記事 Mihoko Iijima · 9月 21, 2021 3m read

これは InterSystems FAQ サイトの記事です。

Excelのマクロ機能を使ってVBAからREST/JSON経由でアクセスすることが可能です。

REST/JSONを使用したInterSystems製品との連携の簡単なサンプルを以下のGitHubサイトから入手できます。

VBAマクロサンプル

マクロサンプルは Solution/activityreport.xlsm をご覧ください。

サンプルは、コンテナを利用しています。READMEに記載の方法でコンテナを開始し、Solution/activityreport.xlsm の「データ取得」ボタンをクリックすると以下の結果が得られます。

 

マクロの中では、以下のGET要求を実行しています。

以下の図例は、RESTクライアントでGET要求を行った結果です(​​​ Basic 認証でアクセスしています)。


​​​上記GET要求により、ベースURL(/pm)の指定で、RESTディスパッチクラス(PM.Broker)が起動し、要求されたパス(例では /getactivities)から、PM.REST クラスの GetActivities() メソッドを実行しています。

Class PM.Broker Extends %CSP.
0
0 378
記事 Mihoko Iijima · 11月 4, 2021 6m read

開発者の皆さん、こんにちは!

この記事では、【GettingStarted with IRIS】シリーズの MQTT アダプタを簡単に試せるサンプルの利用方法についてご紹介します!

(MQTTブローカーはインターネット上に公開されているテスト用ブローカーを利用しています)​​

サンプルは、こちら👉https://github.com/Intersystems-jp/Samples-MQTT-EKG-Devices (コンテナで動作します)

IRIS/IRIS for Health のバージョン2020.1から、IoT の世界でよく利用される MQTT プロトコルに対応できる MQTT アダプタが追加されました。

MQTTインバウンドアダプタでは、メッセージの Subscribe が行え、MQTTアウトバンドアダプタでは、メッセージの Publish が行えます。

サンプルでは、MQTT を使った遠隔モニタリングをテーマに、患者さんに装着した心電図から心拍数(BPM)をリアルタイムに近い状態で取得し、モニタ画面に患者さん毎の心拍数を表示します(IRIS の MQTT インバウンドアダプタを利用したメッセージの Subscribe をご体験いただけます)。

 

Publish されるトピックについて

サンプルでは、演習環境毎にユニークになるようにコンテナ開始時に以下の形式でトピックを作成しています(末尾の # はワイルドカードの指定です)。

/Student_4629/acmeHospital/EKG/#

実際に Publish されるトピックは患者さんに装着した心電図のデータになるので、# の部分は、Patient-1 や Patient-2 などのように患者さんを特定できる文字列が入ります。

サンプルのシナリオは、1つの医療機関の患者情報を取得する流れにしています(本来であれば複数の医療機関の患者情報をモニタできるようにしたほうが良いのですがシンプルに試すため、1つの医療機関の患者情報を取得する流れにしています)。

 

トピックの流れ

サンプルには1つHTMLファイルが用意されています。このファイルをブラウザで開くと MQTT ブローカーに接続し、データ(心拍数)を1秒ごとにブローカーへ Publish します。

 

IRIS は、MQTTブローカーから指定のトピックを Subscribe します。

 

​​​

MQTT ブローカーを Subscribe する設定を行った IRIS のサービスは、ブローカーからトピックを取得します。

実際の設定は以下の通りです。

 

受信したトピックは IRIS の中では​​​メッセージ(EnsLib.MQTT.Message)として扱われ、次のコンポーネントであるプロセス(図では Process_MQTT_Request)に渡します。

 

プロセスでは、受信した MQTT 用メッセージからモニタ表示に利用するデータ(Solution.HeartRate)に変換するため、データ変換を呼び出します。

プロセスエディタの開き方と、中で行われているデータ変換の呼び出しの設定を確認する方法は以下の通りです。

 

患者ごとの測定値を参照する流れ

MQTT ブローカーから Subscribe した心拍数をリアルタイムに近い状態で画面表示するため、データ変換で作成された Solution.HeartRate から1秒ごとに患者ごとの心拍数を収集し、画面に表示しています。

 

この表示を行うため、1秒間隔で Solution.HeartRate に対するSELECT文が実行されています。

このクエリを実行しているのが、メトリックと呼ぶクラスです。プロダクションでは以下の場所に設定されています。

メトリックでは、指定の呼び出し間隔で Solution.HeartRate から患者ごとの BPM を収集しています。詳細はソースコードをご参照ください。

0
0 401
記事 Toshihiko Minamoto · 3月 8, 2022 8m read

InterSystemsを使用してExcelファイルを生成する方法はたくさんあります。ZENレポートやIRISレポート(Logiレポートまたは正式にはJReportsと呼ばれるレポート)のほか、サードパーティのJavaライブラリを使用するなど、可能性はほぼ無限です。

しかし、Caché ObjectScriptだけで単純なスプレッドシートを作成したい場合はどうでしょうか。 (サードパーティアプリケーションを使用せずに、です)

私の場合、大量の生データを含むレポート(金融関係の人たちが好むレポート)を生成する必要がありますが、私のZEN/IRISでは対応できません。私が呼ぶところの「ゼロバイトファイル」が生成され、基本的にJavaのメモリ不足となり、レポーティングサーバーに大きな負荷を生じてしまいます。

これは、Office Open XML(OOXML)を使って実現できます。 Office Open XML形式は、多数のXMLファイルで構成されるZIPパケージです。 つまり基本的には、これらのXMLファイルを生成してZIP圧縮し、.xslxに名前を変更すればよいのです。 それくらい単純です。

ファイルは、Open Packaging Conventionsという単純な命名規則に従っています。

0
0 479
記事 Hiroshi Sato · 7月 20, 2022 2m read

タスク成功時・失敗時、それぞれ通知メールを送信することができます。

そのためには事前にターミナルからTASKMGRルーチン を実行して、メールサーバを登録する必要があります。

> zn "%SYS"
> do ^TASKMGR

1) タスク作成
2) タスク編集
3) タスク一覧
4) タスク削除
5) タスク一時停止
6) タスク再開
7) タスク実行
8) タスクリポート
9) タスクマネージャオプション
10) 終了 


 

そして、メニューから9) タスクマネージャーオプションを選んで 

オプション?9
 
1) タスクマネージャ情報
2) タスクマネージャを開始する
3) タスクマネージャ一時停止
4) タスクマネージャ再開
5) タスクマネージャ履歴
6) メール設定定義
7) 終了


 次に6) メール設定定義を選びます。
 

オプション?6
 
1) メールサーバ定義
2) サーバポート定義
3) 返信先定義
4) 送信者定義
5) タイムゾーン
6) 認証ユーザ定義
7) SSL 構成を定義
8) 終了


そこで以下2点を最低限設定します。
 

1) メールサーバ定義 (SMTPサーバ名)  例: xxxxxx.xxxxx.com

4) 送信者定義 (通知メールのFROMアドレス) 例: m123456@gmail.

0
0 829
記事 Megumi Kakechi · 11月 28, 2022 2m read

Question:

IRISでは、PostgreSQLやMySQLで使うことができる、開始位置や取得件数を指定する LIMIT句やOFFSET句をサポートしているでしょうか?


Answer:

※2025/4/17更新:IRIS2025.1 以降のバージョンでは、LIMIT/OFFSET句をサポートするようになりました。ご参考

残念ながらサポートしていません。
ただ、代わりに使える同様の方法がありますのでご紹介します。

以下のようなSQLクエリをIRIS SQLで行うとします。

SELECT *
  FROM Sample.Person
ORDER BY Name
 LIMIT 3 OFFSET 5


---------------------------------------------------------------------------------
1. サブクエリとビュー ID (%VID)を使用する方法
---------------------------------------------------------------------------------

IRISでは、ビューまたは FROM 節のサブクエリで返される各行に整数のビュー ID (%VID) を割り当てることができます。
%VIDを使用すると、以下のサンプルのようにして同様のことが実現できます。

0
0 391
記事 Mihoko Iijima · 4月 6, 2023 1m read

開発者の皆さん、こんにちは!

この記事では、Developer Hub にあるチュートリアルの4番目のご紹介となる REST + Augular App チュートリアル についてご紹介します。

チュートリアルでは、IRISを利用してRESTサービスで使用するテーブル、データ、RESTサーバの機能をサンプルコードをコピーしながら作成していきます。

チュートリアルの中で作成するWebアプリはとてもシンプルな内容で、データベースにブックマークとして登録したいURLを保存し、参照するだけのページとしています。

データの登録も、IRISの管理ポータルのSQLメニューでINSERT文を実行する形式で進めていきます。

最終的には、以下の図にあるように「Add a new bookmark」以下のテキストボックスで新しいブックマークを登録できるように、Web画面とRESTサーバ用コードを追加していきます。

アカウント作成やログインも不要で  ボタンをクリックするだけで始められます👍

ぜひ、お試しください!​​​​​​

0
1 295
記事 Megumi Kakechi · 6月 6, 2023 4m read

これは InterSystems FAQ サイトの記事です。
 

こちらでは、InterSystems Container Registry(ICR) より入手可能なDockerコンテナイメージを使用する方法をご案内します。

WRCDirectのダウンロードサイト より入手可能なイメージを使用する場合も同じようにできます。
 その際、Name:Web でフィルタリングしていただくと、Web Gateway の Docker イメージが見つけやすくなります。
※インターシステムズが提供する webgateway コンテナイメージには、Web ゲートウェイと Apache Web サーバの両方が含まれています。


【手順】

1. ブラウザより https://containers.intersystems.com/ にアクセスし、インターシステムズWRC認証情報でログインします。

2. Dockerログイントークンかログインコマンドを取得します。


3. 取得した認証情報を使い、Dockerインターフェース(PowerShellウインドウやLinuxコマンドラインなど)でICRへの認証を行います。
    以下の例のように、表示されるDocker ログインコマンドをコピー、ペーストすることで認証できます。

0
0 367
記事 Tomoko Furuzono · 3月 18, 2024 3m read

これは、InterSystems FAQサイトの記事です。

【任意のXMLドキュメントの読み込み】
任意のXMLドキュメントの読み込みを行うには、%XML.TextReaderクラスを使用します。
Parseメソッド(※ドキュメントがファイルの場合はParseFile())を使用してドキュメントをパースし、各ノードのプロパティを取得します。

例えば、下記のXMLの場合、

 <emp empid="1">
    <name>Suzuki</name>
    <address>Tokyo</address>
 </emp>

 
各赤枠が、"ノード"の単位となり、


 下記のようなイメージで取得することができます。

0
0 237
InterSystems公式 Ayumu Tanaka · 6月 2, 2024 2m read

InterSystems IRIS® データ・プラットフォーム 2022.3 からライセンス消費メカニズムにRESTとSOAPを追加しました。この変更により、コア・ベースライセンス以外でRESTまたはSOAPを使用している場合、アップグレード後にライセンス消費量が多くなる可能性があります。この勧告がお使いのシステムに該当するかどうかは、以下にあるFAQ(英語)のリンクをご参照ください。.

ライセンス使用について、こちらの表にまとめています。







製品

REST と SOAP のリクエストがライセンスを消費するかどうか

InterSystems Caché®

する

InterSystems Ensemble®

しない

InterSystems IRIS, InterSystems IRIS® for Health, Health Connect  2022.3 より前

しない

InterSystems IRIS, InterSystems IRIS for Health, Health Connect 2022.3 以降

する

 

お客様からはCaché と IRIS

0
0 318
記事 Yusuke Kojima · 9月 17, 2024 5m read

開発者の皆さん、こんにちは。

突然ですが、2024年6月25日に開発者向けセミナー「FHIR 新機能のご紹介~2024.1~」が開催されました。
ご視聴になられた方も多数いらっしゃると思います。
まだご視聴になられていない方は是非一度、ご覧になってみてください。
YouTubeリンク

さて、こちらのセミナーにおいてご紹介された、IRIS for Health 2024.1からの新機能「FHIR Object Model」を用いて、リポジトリタイプのInteroperability開発の具体的なサンプルを作成してみました。
自身の備忘のため、すぐ開発環境を構築できるよう、コンテナ環境かつGitHubの公開もしております。
利用方法は、GitHub内のREADMEを参照ください。
GitHubリンク

目次


  1. FHIR Object Modelとは?


  2. メリット・デメリットを深堀り


  3. GitHub公開ソースについて


  4. 所感


1. FHIR Object Modelとは?


まずはFHIR Object Modelとはなにか、簡単に説明します。
FHIR Object Modelとは、FHIRリソースをオブジェクトモデル化したクラス群です。
IRIS for HealthでFHIR開発に多く携わっている方は、あれ?と思うわけです。
既に公開中のJSONテンプレートエンジンとなにが違うの?

0
0 229
InterSystems公式 Megumi Kakechi · 1月 29, 2025 1m read

インターシステムズは、InterSystems IRIS、InterSystems IRIS for Health、HealthShare Health Connect のメンテナンスバージョン 2024.1.3 をリリースしました。
 

✅ 2024.1.3

2024.1.3 は、最近発行された以下の警告の修正を含む、以前のリリース2024.1.x のバグフィックスを提供します。
警告:特定の $List 操作でデータベースとジャーナルファイルに不正なデータが作成される

詳細な情報は、以下のページをご参照ください(すべて英語版です):


キットの取得方法

本製品は、従来からのインストーラパッケージ形式と、コンテナイメージ形式をご用意しています。その一覧は、以下のサポートプラットフォームページ(英語)をご覧ください。
Supported Platforms webpage

インストーラパッケージは WRC Direct から入手できます。

0
0 71
記事 Tomoko Furuzono · 4月 10, 2025 2m read

これは、InterSystems FAQ サイトの記事です。
 

※Caché/Ensembleの「CSPゲートウェイ」は、IRISでは「Webゲートウェイ」と名称が変更されています。
 これに伴い、サービス名も、「%Service_CSP」 ⇒ 「%Service_WebGateway」となっています。
 以下は、IRISベースの名称で記載しておりますので、適宜読み替えてご参照ください。

Webゲートウェイ・レジストリとその関連クラスを使用すると、Webゲートウェイのインストール環境の確認、および、設定値の変更が可能です。
関連するクラスは、以下になります。
%CSP.Mgr.GatewayRegistry
%CSP.Mgr.GatewayMgr

例えば、以下は、アクティブなWebゲートウェイのインストール環境(リストの1番目)の情報を書き出しています。

Set reqistry = $system.CSP.GetGatewayRegistry()
Set gateways = reqistry.GetGatewayMgrs()
Set gateway = gateways.GetAt(1)
Write gateway.IPAddress," : ",gateway.Port," : ",gateway.Version

      ↓(結果)

127.0.0.1 : 52777 : 661.
0
0 87
記事 Megumi Kakechi · 8月 13, 2025 3m read

これは InterSystems FAQ サイトの記事です。
$ZF(-100) は、OSコマンドまたはプログラムを子プロセスとして実行するのに使われますが、一緒に便利なキーワードを指定することが可能です。

$ZF(-100)でコマンドの実行がうまくできない、という経験をされた方も多いかと思います。

そんな時は、この便利なキーワードを使って原因の調査をしていきましょう。

キーワードには以下のようなものがあります。








/SHELL シェルを使用して program を実行する。既定では、シェルは使用されない。
/STDIN=filename 入出力リダイレクト入力ファイル
/STDOUT=filename 入出力リダイレクト標準データ出力ファイル
/STDERR=filename 入出力リダイレクト標準エラー出力ファイル
/LOGCMD 結果として得られるコマンド行を messages.log に記録する
/NOQUOTE コマンド、コマンド引数、またはファイル名の自動引用を禁止する


使用方法は、以下のようになります。

write $zf(-100,"/SHELL /LOGCMD /STDERR=err.log","command1","command2",.
0
1 64
記事 Toshihiko Minamoto · 1月 7 25m read

 

FHIRサーバー

FHIRサーバーとは、FHIR(Fast Healthcare Interoperability Resources)標準を実装するソフトウェアアプリケーションであり、医療システムが標準化された方法で医療データを保存アクセス交換、および管理することができるようにします。

Intersystems IRISは、以下のFHIRリソースを保存および取得できます。

  • リソースリポジトリ – IRISネイティブのFHIRサーバーは、FHIRバンドルやリソースをFHIRリポジトリに容易に直接保存することができます。
  • FHIR Facade – FHIRファサードレイヤーは、既存のもの(多くの場合、FHIR以外)の上にFHIRに準拠したAPIを公開するために使用されるソフトウェアアーキテクチャパターンです。 さらに、すべてのデータをFHIRネイティブシステムへ移行せずに、電子健康記録(EHR)、レガシーなデータベース、HL7 v2メッセージストアなどの医療データシステムを合理化します。

FHIRとは?

Fast Healthcare Interoperability Resources(FHIR)は、HL7 Internationalによって作成された標準化されたフレームワークであり、柔軟かつ開発者に優しい最新の方法で医療データの交換を促進します。

0
0 58
記事 Mihoko Iijima · 7月 20, 2020 1m read

IRIS で作成する REST サーバの仕組みを解説します。


このビデオには、以下の関連ビデオがあります。

 

もくじ

0:55~ 今回の説明内容解説と関連ビデオについて

3:00~  RESTとは?

3:52~  動作の仕組み

6:23~ RESTディスパッチクラスとは

8:04~ RESTディスパッチクラスの実装方法

8:34~ RESTディスパッチクラス:全て手動で作成する方法 概要

9:30~ RESTディスパッチクラス:APIファーストで作成する方法 概要

11:12~ 共通:ベースURLの設定(管理ポータルでの設定)

11:37~最後まで 確認できたこと

 

※YouTubeでご覧いただくと、もくじの秒数にジャンプできます。

0
0 808
記事 Mihoko Iijima · 11月 6, 2020 2m read

これはInterSystems FAQ サイトの記事です。

SELECT のみを実行できるユーザを作成するには、ユーザかロールに対してテーブルへのアクセス権限を設定することで対応できます。

設定は、管理ポータルか、GRANT 文を実行することで設定できます。GRANT 文については、以下ドキュメントもご参照ください。
InterSystems SQL リファレンス - GRANT【IRIS】
CachéSQLリファレンス - GRANT

 

管理ポータルでの設定は、ユーザまたはロールの編集画面内「SQLテーブル」タブを使用します。

ユーザに直接設定する場合は以下のメニューを利用します。
  [ホーム] > [システム管理] > [セキュリティ] > [ユーザ] > [ユーザ編集] 

ロールに設定する場合は、以下のメニューを使用します。
 [ホーム] > [システム管理] > [セキュリティ] > [ロール] > 新規ロール作成
 ※ ロール名を指定し、保存するまで詳細設定画面が表示されません。
 ※ 作成したロールをユーザに付与することで、テーブルへのアクセス権限をロールで一元管理できます。 SQLテーブルでの権限設定

手順は以下のとおりです。

0
0 935
記事 Megumi Kakechi · 1月 6, 2021 1m read

これは InterSystems FAQ サイトの記事です

Web サービス(SOAP)またはREST で IIS を経由してクライアントにエラー応答する際、既定では IISが生成するデフォルトのエラーページ( HTTP 500 エラー )が返されます。

SoapFaultなど、サーバ側で出力したエラーの詳細情報は返されません。

IIS7 以降、WebクライアントがWeb サービスの障害の詳細情報を取得するための設定オプションが追加されました。

HTTP ステータスコードがエラーの場合に、既存の応答をどうするかを existingResponse 属性で指定することができます。

こちらの値を、既定の Auto から PassThrough に変更することで、エラーの詳細情報が返されるように変更できます。
※設定変更後、IISの再起動が必要です。

詳細や設定手順については、以下ドキュメントをご参照ください。
Microsoft IIS 7 以降の設定手順について【IRIS】

Microsoft IIS 7 以降の設定手順について

※web.config ファイルの手動編集よりも、IIS マネージャに組み込まれている構成エディタ を使用する方法がエラーが少なく安全です。

 

HTTP エラー について
 

0
0 1901
記事 Megumi Kakechi · 3月 2, 2021 2m read

これは InterSystems FAQ サイトの記事です。


管理ポータル:システムオペレーション > データベース にあるオプションボタンラジオボタン)「空き容量ビュー」で表示される内容は、システムクラス SYS.Database のFreeSpace クエリで取得可能です。

    

 

次のようなコードでクエリを実行します。

例:
(%SYSネームスペースにて作成、実行します)

 /// ZISJ.mac
 Set stmt=##class(%SQL.Statement).%New()
 Set status=stmt.%PrepareClassQuery("SYS.Database","FreeSpace")
 Set rs=stmt.%Execute()
 While rs.%Next() {
   Write !
   For i=1:1:9 {
     Write rs.%GetData(i),","
   }
 } 


もしくは、以下のようにも行えます。

 /// ZISJ.mac
 Set stmt=##class(%SQL.Statement).%New()
 Set status=stmt.%PrepareClassQuery("SYS.Database","FreeSpace")
 Set rs=stmt.%Execute()
 Do rs.
0
0 386
記事 Shintaro Kaminaka · 4月 15, 2021 9m read

開発者の皆さん、こんにちは。 以前の記事でIRIS for Health上でFHIRリポジトリを構築し、OAuth2認証を構成する方法をご紹介しました。

この代行認証編では、IRIS for HealthのFHIRリポジトリに組み込まれた認証機能ではなく、IRISの代行認証機能+ZAUTHENTICATEルーチンを使用して認証を行う方法をご紹介します。

前回記事でご紹介したように、標準のFHIRリポジトリの認証機構では、アクセストークンの発行先を追加するためのAudienceの指定(aud=https://~) や、アクセストークンだけではなくベーシック認証の情報を送付するなどの対応が必要でした。

スクラッチでFHIRクライアントを開発するのではなく、既成の製品やアプリケーションからアクセスする場合、上記のような処理の実装ができないことがあるかもしれません。 そのような場合には、この代行認証+ZAUTHENTICATEルーチンを使用して、カスタマイズした認証の仕組みを構築することができます。

この記事に含まれる情報のドキュメントについて

この記事で記載されている情報はIRIS for Healthのドキュメントにも含まれている内容をわかりやすく再構成したものです。

RESTサービスの保護:RESTアプリケーションおよびOAuth2.0

OAuth 2.

0
0 488
記事 Toshihiko Minamoto · 6月 17, 2021 4m read

注記(2019年6月): 多くの変更がありました。最新の情報についてはこちらをご覧ください。 注記(2018年9月): この記事が最初に投稿されて以来、多くの変更がありました。Dockerコンテナバージョンを使用することをお勧めします。コンテナとして実行するためのプロジェクトと説明は、以前と同じGitHubの公開場所に残っていますので、ダウンロードして実行し、必要に応じて変更してください。

お客様と共にパフォーマンスレビュー、キャパシティ計画、およびトラブルシューティングに取り組む際、pButtonsから、Cachéとオペレーティングシステムのメトリクスを解凍してレビューすることがよくあります。 しばらく前、HTMLファイルを参照して、グラフ化するセクションを切り取ってExcelに貼り付ける代わりに、UNIXシェル、Perl、およAWKスクリプトで書かれたpButtonsメトリクスのアンパックユーティリティを使用する記事を投稿しました。 これは、時間を節約できる便利な手法ではありますが、内容が全部網羅されているわけではありません。 また、メトリクスを素早く確認して、レポートに含められるように、メトリクスを自動的にグラフ化するスクリプトも使用しています。

0
0 189
記事 Mihoko Iijima · 8月 30, 2021 2m read

これは InterSystems FAQ サイトの記事です。

InterSystems 製品には、テーブルのコンテンツに関する統計を収集し、クエリの最適化に役立てる「テーブルチューニング機能」があります。

設定方法は、以下のドキュメントをご参照ください。

ターミナルでは次のコマンドを実行します。

do $SYSTEM.SQL.Stats.Table.GatherTableStats("スキーマ名.テーブル名")

 

 2021.1以前のバージョンでは以下メソッドを利用します。

Do $system.SQL.TuneTable("スキーマ名.テーブル名",1,1)

 

また、以下の資料もご参照ください。

1) パフォーマンス調査の基礎知識として必要なグローバル構造の解説やSQLの動作の仕組みからクエリプランの見方の解説

インターシステムズ・シンポジア2011の資料

2) パフォーマンスチューニングの例(P13~)

インターシステムズ・シンポジア2012の資料

3) ビットマップ・インデックスの圧縮やオプティマイザ・ヒントなど、Caché SQLのパフォーマンスを最大限に引き出すための情報について

インターシステムズ・シンポジア2014の資料

4) パフォーマンスに困ったときにどこに着目し、どのツールで調べていくか、お客様から日々ご相談をいただくカスタマーサポートから、解決に向かうアプローチの「イロハ」をご紹介するビデオ

動画:Performance 101

5) 開発者コミュティのパフォーマンス関連情報(performanceタグ)

performanceタグ

0
0 493
記事 Megumi Kakechi · 10月 8, 2021 1m read

これは InterSystems FAQ サイトの記事です。

ターミナルでルーチンを実行し、プログラム上でエラーが発生した時に、エラートラップを適切に設定していない場合、以下のようなデバッグモードになります。

USER>do ^error1
 write A
^
a+2^error1 *A
USER 2d0>

 

この状態から、ルーチン起動の前の状態に戻るにはQuitコマンドを入力します。

USER 2d0>Quit

 

またエラーが発生したルーチン内でトランザクション処理を行なっている場合には、以下のような表示のプロンプトになります。

USER>do ^error1
 write A
^
a+3^error1 *A
TL1:USER 2d0>q
TL1:USER>

 

このようにプロンプトの先頭にTL+数字が表示されている場合には完了していないトランザクションがあることを示しています。

この状態ではQuitコマンドを入力しても元のプロンプトには戻りません。

最初にTrollbackコマンドを入力し、その後でQuitコマンドを実行することで元のプロンプトに戻ります。

TL1:USER>Trollback
0
0 555
記事 Megumi Kakechi · 12月 9, 2021 3m read

これは、InterSystems FAQサイトの記事です。
 

【 管理ポータルへのパスワード認証設定方法 】

管理ポータルの、
 [ホーム] > [システム管理] > [セキュリティ] > [アプリケーション] > [ウェブ・アプリケーション]
で /csp/sys、および、/csp/sys/ 以下の各アプリケーション(/csp/sys/expなど) の編集画面を開き、“許可された認証方法” の、"認証なし" のチェックを外し、“パスワード” のみチェックをして保存します。

 

また、これと同様のことを、ターミナルから、^SECURITYルーチンを使用して実行することも可能です。
以下は/csp/sys/アプリケーションに対する実行例です。*実行は%SYSネームスペースで行って下さい。

0
0 665