こんにちは、皆さま。
業務でIRISを用いて開発を行っている者です。

私はIRISでSQLアクセスを行うプログラムをを作成しており、
テーブルアクセスには%ScrollableResultSetクラスのAPIを用いて処理を実現しています。
作成するSQLはインジェクション対策のため、?パラメータを用いておりますが、
この度、大量のパラメータ(600項目)を用いるSQLを作成する必要が出てきました。

https://irisdocs.intersystems.com/iris20191/csp/docbookj/DocBook.UI.Page...
こちらによりますと、可変長引数を用いても引数の上限値は255個となっており、
実際に600個のパラメータを引数に与えてSQLアクセスしようとすると、<STACK>エラーが発生する状況です。

0 2
0 268

キーワード: ディープラーニング、Grad-CAM、X線、COVID-19、HealthShare、IRIS

目的

イースターウィークエンド中に、Covid-19に感染した胸部X線画像分類とCT検出デモを実行するを触ってみました。 デモの結果は上出来で、このトピックに関するその頃の学術研究出版物に一致しているようでした。 でも、本当に「上出来」と言えるのでしょうか。

最近、「機械学習における説明可能性」に関するオンラインランチウェビナーを聴くことがあったのですが、たまたまその講演の最後でDonがこの分類結果について話していました。

0 0
0 418

InterSystems 製品のキットには Apache Web サーバが含まれています。
これにより、お客様が外部Webサーバをインストールせずに Caché/IRIS 管理ポータルを動作させる為の便利な方法を提供しています。
ただし、このWebサーバを実稼働インスタンスに使用しないでください。お客様は、システムに応じたニーズとセキュリティ/リスク要件に適合するWebサーバを別途インストールする必要があります。

0 0
0 118
記事
· 2021年11月28日 5m read
データサイズを調べる方法

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

InterSystems製品のデータ(テーブルの行データ、オブジェクトのインスタンスデータ)は、グローバル変数に格納されています。
各グローバルのデータサイズは、管理ポータル>システム>構成>ローカルデータベース>グローバルのページから参照したいグローバルのプロパティをクリックし、表示されるグローバル属性ページ上のサイズ計算ボタンをクリックすることで個別のグローバルのサイズを取得することができます。
ネームスペース上のグローバルのデータサイズをまとめて表示するには、ターミナル上で^%GSIZEユーティリティを起動することで取得することができます。
実行方法は以下の通りです。

0 0
0 248

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

InterSystems製品開始時に、OSの実行ファイルやコマンド、InterSystems製品内に作成したプログラムを実行したい場合は SYSTEM^%ZSTART ルーチンに処理を記述します。

(%ZSTARTルーチンは%SYSネームスペースで作成します)

SYSTEM^%ZSTART に記述する処理は、事前にあらゆる条件下でうまく動作することを確認してください。

^%ZSTART ルーチンの記述ミスや、記述は正しくとも起動時にコマンドが応答を返さなかったり処理でエラーが起こった場合、InterSystems製品が起動できなくなることがあります。

詳しくは、以下ドキュメントをご参照ください。

0 0
0 175

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

SELinuxの機能が有効になっているとファイルアクセス時にセキュリティコンテキストのチェックで permission エラーになります。

CSP のページについても同様に permission エラーになっているため、Apache にて 403 Forbidden エラーになります。

以下の設定でSELinuxの機能を無効にすることで回避できます。

設定ファイル /etc/selinux/config の SELINUX=disableに設定し、OS の再起動を行います。

例:

0 0
0 260

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

設定内容によって、方法が異なります。

システム構成について

管理ポータルの [システム管理] > [構成]

以下の設定については(※1)、パラメータファイル(InterSystems IRISは iris.cpf、Caché/Ensemble/HealthShareは cache.cpf) に格納されます。

0 0
0 395

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

タイムアウトを無効にするためには、DSNの設定でクエリタイムアウト無効に設定します。

Windowsコントロールパネル > [管理ツール] > [データソース(ODBC)] > [システムDSN]の構成


で クエリタイムアウト無効 にチェックを入れますと、タイムアウトは無効になります。

アプリケーション側で変更する場合は、ODBC APIレベルで設定することが可能です。


ODBCのSQLSetStmtAttr関数をコールする際に、SQL_ATTR_QUERY_TIMEOUT属性を設定してから、データソースに接続してください。

2 0
0 8.2K

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

バックアップ先に、共有フォルダを指定することは可能ですが、推奨しません。

バックアップの最終フェーズのDBアクセスを禁止する箇所で万一ネットワークエラー等で、バックアップがハングアップすることがあれば、システム全体に影響が及ぶリスクがあります。

1 0
0 112
記事
· 2021年11月11日 8m read
GitHub Codespaces と IRIS

しばらく前、GitHubはGitHub Codespacesという新しい機能を発表しました。 ブラウザでVSCodeを実行する機能があります。マシンでローカルに実行するのとほぼ同じ性能がありますが、クラウドの能力も備わっているため、最大32CPU、64 GB RAMのマシンタイプを選択することが可能です。

素晴らしいことですね。 でも、このことは、InterSystems IRISで駆動するプロジェクトで作業する上で、どのように役立つのでしょうか。 それをどのように構成するのか見てみましょう。

1 0
0 305

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


InterSystems製品のプロセスが消費するメモリ領域は以下の6つの領域になります。

プロセスのプライベートな領域

 1. プロセスパーティション(ローカル変数テーブル等、プロセスごとに使用するメモリ)
 2. 長い文字列(LongString)使用メモリ
 3. 文字列スタック...等

プロセス間共有領域

 4. データベースキャッシュ
 5. ルーチンキャッシュ
 6. 一般ヒープメモリ(プロセステーブル、ロックテーブル等)

0 0
0 378

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

この記事では、【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 を収集しています。詳細はソースコードをご参照ください。

1 0
0 269

この連載の最初の記事では、大きなチャンクのデータをHTTP POSTメソッドのRaw本体から読み取って、それをクラスのストリームクラスとしてデータベースに格納する方法を説明しました。 2つ目の記事では、ファイルとファイル名をJSON形式にラップして送信する方法を説明しました。

それでは、大きなファイルを分割してサーバーに送るという構想を詳しく見ていきましょう。 これを行うために使用できるアプローチにはいくつかあるのですが、 この記事では、Transfer-Encodingヘッダーを使用してチャンク転送を指示する方法を説明します。 Transfer-EncodingヘッダーはHTTP/1.1仕様で導入されたものです。RFC 7230第4.1項では説明されているものの、HTTP/2仕様からはその説明が無くなっています。

0 0
0 1K

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

次の InterSystems オンラインプログラミングコンテストが決定しました!

お題は・・・・ 🏆 InterSystems Security Contest 🏆

応募期間は 2021年11月15日~11月28日 です!

💰 賞金総額: $9,450 💰

0 0
0 103

対象バージョン
2020.1.0以降のInterSystems IRISおよびInterSystems IRIS for Healthのすべてのメジャー・リリースおよびメンテナンス・バージョン

対象プラットフォーム
全て

発生する問題
分散型キャッシュ・クラスタ(ECP 構成) でアプリケーションのロック保証に違反し、アプリケーションの整合性に問題が生じる可能性があります。

問題の詳細
この問題は、データサーバの再起動またはフェイルオーバー後に、アプリケーションサーバがECPリカバリを正常に実行した場合にのみ発生します。
以下のようなケースです。

0 0
0 62

この連載の第1回目の記事では、「大規模な」チャンクのデータをHTTP POSTメソッドのRaw本体から読み取って、それをクラスのストリームプロパティとしてデータベースに格納する方法について説明しました。 では、そのようなデータとメタデータをJSON形式で格納する方法について見てみましょう。

0 0
0 388

InterSystems IRIS と InterSystems IRIS for Health 2021.1 CommunityEdition の組み込みライセンスが 2021年10月30日で期限切れになるよう誤って設定されていることが判明しました。大変申し訳ありません。

CommunityEdition は開発用途であるため、実稼働バージョンへの影響はありませんが、CommunityEdition のキーが期限を迎えると、ご利用中インスタンスの実行が停止する、または開始できない状況になります。

ご利用を継続いただくためには、新しいインスタンスに置き換えていただく必要があります。インスタンスの置き換えが行えない場合には、ライセンスキーのオーバーライドが行える拡張用キーをご提供しております。

ご不便おかけし、大変申し訳ありません。

0 1
0 223

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

TIMESTAMP型はInterSystems製品では、%Library.TimeStampデータタイプ(=%TimeStamp)に対応していて、フォーマットは YYYY-MM-DD HH:MM:SS.nnnnnnnnn です。

小数点以下の精度を変更したい場合は、以下の方法で設定します。

1) システムワイドに設定する

管理ポータル:[システム管理] > [構成] > [SQLとオブジェクトの設定] > [一般SQL設定] 
GETDATE(), CURRENT_TIME, CURRENT_TIMESTAMP のデフォルト時刻精度 に 0~9 の範囲で桁数を指定できます。

0 0
0 1.1K

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

InterSystems Interoperability コンテスト 2021 の投票結果が発表されました!

今回も、コーディングコンテストにご興味おもちいただきありがとうございました!

この記事では、コンテスト受賞者を発表します!

受賞された開発者の皆さん、👏おめでとうございます!🎊

0 0
0 97

InterSystems IRISを初めて使用し始める際には、最低限のセキュリティレベルでのみシステムをインストールするのが通例です。 パスワードを入力する回数が少なくて済むため、初めて作業を始めるときに、開発サービスやWebアプリケーションの操作がより簡単になるからです。 また、開発済みのプロジェクトまたはソリューションをデプロイする際には、最小限のセキュリティを適用している方が便利な場合があります。 それでも、プロジェクトを開発環境から非常に敵対的な可能性のあるインターネット環境に移行する時が来れば、本番環境にデプロイされる前に、最大限のセキュリティ設定(つまり、完全なロックダウン状態)でテストしなければなりません。 これがこの記事の論点です。
InterSystems Caché、Ensemble、およびIRISにおけるDBMSセキュリティ問題をさらに包括的に説明した記事については、私の別の記事、「Recommendations on installing the InterSystems Caché DBMS for a production environment」(本番環境向けにInterSystems Caché DBMS をインストールするための推奨事項)をご覧ください。 InterSystems IRISのセキュリティシステムは、さまざまなカテゴリ(ユーザー、サービス、リソース、特権、およびアプリケーション)に異なるセキュリティ設定を適用する概念に基づいています。
ユーザーにはロールを割り当てることができます。 ユーザーとロールには、データベース、サービス、およびアプリケーションといったリソースに対し、さまざまな読み取り、書き込み、および使用の権限を付与することができます。 ユーザーとロールには、データベースのSQLテーブルに対するSQL特権も与えられます。

0 0
0 195

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

InterSystems 製品の管理ツールやWebページのセキュリティ強化のため、%付きのWebページ(例:管理ポータル上のユニットテストポータル、Webサービスクラスのテスト画面)に対するアクセスがより効率的に制御できるよう、新しいルールが追加されました。

これによりデフォルトで参照可能なページ以外については、明示的に参照許可を設定する必要があり、設定しない場合参照エラーとなります。 以下のドキュメントをご参照いただき、必要に応じて参照許可を設定するようにしてください。


%CSP ページへのアプリケーション・アクセスの制御について

Webサービスクラスのテスト画面の場合は、以下をご覧ください。

0 0
0 113

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

システム日付の変更をすると、InterSystems Data Platform(以下IRIS)が正常に開始しなくなる場合があります。

IRISは開始時にジャーナルファイル削除処理を行いますが、システム日付を変更すると不正な日付のジャーナルファイルが作成されます。

ジャーナルファイル削除処理では、ジャーナルファイル内部に記録された前後のファイルの情報も参照し処理を進めます。

システム日付けの変更によりジャーナルファイルの繋がりに矛盾が生じると、削除処理でループ状態となり、IRISの開始処理が完了しなくなることがありますので、ご注意ください。

システム日付を変更することはIRISに限らず、OSやミドルウェア、その上で動作するアプリケーションの依存性など様々な影響の可能性が考えられます。

テスト・検証などの関係で、どうしてもシステム日付を変更しなければならない場合には、IRISのアンインストールや再インストールが自由に行える環境(仮想環境など)でテストされることを推奨致します。

0 0
0 572

インターネットを使うようになってから (1990年代後半)、PythonとIRIS グローバルを使ってブログを書いていますが、常にCMS (コンテンツ管理システム) でブログ、ソーシャルメディア、さらには企業ページに情報を簡単に投稿できるようにしていました。
数年後、自分がマークダウンファイルに収めて使ってきたすべてのコードをgithubに入れました。
ネイティブAPIでデータをIntersystems IRISに入れて永続化するのはとても簡単だったので、このアプリケーションを作成して少しSQLを忘れ、キー・バリュー・データベースモデルを受け入れることにしました!
picture

ブログとは?

これはWEB LOGの略名で、基本的にはユーザーが書いてページに投稿、公開できるプラットフォームです。

1 0
0 166
記事
· 2021年10月20日 1m read
IRISに含まれるアダプタについて

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


InterSystems IRIS Data Platformにはシステム接続に良く使われる一般的な電子メール、ファイル、FTP、HTTP、ウェブサービス、REST、SQL、TCPアダプタなどが標準で含まれています。

特定アプリケーション向けに IBM WebSphere MQ アダプタや SAP Java Connector アダプタも提供します。

そしてJavaアプリケーションを呼び出すためや .Net アプリケーションを呼び出すための PEX(Production EXtension)というフレームワーク もあります。

そのほか、IRIS for HealthにはHL7 FHIR、HL7 V2、HL7 V3、CDA、DICOM、X12、ASTM,EDIFACT などのアダプタもあります。

さらに標準で用意していないカスタムアプリケーション用にはカスタムアダプタを作成することもできます。

0 0
0 242