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

引数名の後ろに ... をつけることで可変の引数を渡すことができます。

ObjectScript では、配列を使って任意の数の引数を渡すことができます。

例文は以下の通りです。
例文では、メソッド実行後に確認しやすいように、グローバル変数(=データベースに格納される変数)に引数の情報を設定しています。

Class TEST.ARGTEST1 Extends %RegisteredObject
{
ClassMethod NewMethod1(Arg... As %String) As %Boolean
{
 kill ^a
 merge ^a = Arg
}
}

ターミナルで実行した結果は以下の通りです。

0 0
0 301

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

ファイル入出力処理を行うには、ライブラリクラスを利用する方法が便利です。

ライブラリクラスを使用する以外には、Open/Use/Close コマンドを使用する方法もあります。<※1>

ファイル入出力処理には、%Library.Fileクラス、%Stream.FileCharacter/%Stream.FileBinary を使用します。

0 0
0 1.3K

*この動画は、2021年2月に開催された「InterSystems Japan Virtual Summit 2021」のアーカイブです。

既に運用されている電子カルテ・処方のデータや蓄積されているデータを、FHIR に変換して活用したいというニーズは、FHIR アプリケーションを構築するにあたり最も多いご要望の一つです。

https://www.youtube.com/embed/dsB3cS333LI
[これは埋め込みリンクですが、あなたはサイト上の埋め込みコンテンツへのアクセスに必要な Cookie を拒否しているため、それを直接表示することはできません。埋め込みコンテンツを表示するには、Cookie 設定ですべての Cookie を受け入れる必要があります。]

この動画では、InterSystems IRIS for Health を使用して、HL7/SS-MIX2 やCSV など他形式のデータから FHIR データへ変換する方法について、デモをまじえてご紹介いたします。

0 0
1 452
記事
· 2021年4月5日 11m read
WebSocketのチュートリアル

はじめに

Webで行われるサーバーとクライアント間のほとんどの通信は、リクエストとレスポンスの構造に基づいており、 クライアントがサーバーにリクエストを送信すると、サーバーがそのリクエストに対するレスポンスを送信します。 WebSocketプロトコルは、サーバーとクライアント間の双方向通信チャンネルを提供するプロトコルで、サーバーがリクエストを受信しなくても、クライアントにメッセージを送信することができます。 WebSocketプロトコルと、InterSystems IRISでの実装についての詳細は、以下のリンクをご覧ください。

0 0
0 3.4K

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

MM/DD-hh:mm:ss:938 ( 0) 1 Failed to allocate xxxMB shared memory using large pages. Switching to small pages.
MM/DD-hh:mm:ss:938 ( 0) 0 Allocated xxxMB shared memory: yyyMB global buffers, zzzMB routine buffers

コンソールログ(cconsole.log/messages.log)に上記のようなメッセージがある場合は、Large Page でのメモリ確保に失敗して、Small Page でメモリを確保したことを示しています。

Allocated xxxMB が設定サイズと同じ場合、Small Pageでメモリ確保ができていますので、設定サイズを減らす必要はありません。

0 0
0 1.8K

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

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

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

0 0
0 143

デベロッパーの方なら、反復的なコードを書いた経験があると思います。 プログラムを使ってコードを生成できたら楽なのに、と考えたことがあるかもしれません。 まさに自分のことだと思った方、ぜひこの記事をお読みください!

まずは例をお見せします。 注意: 次の例で使用する %DynamicObject インターフェースは Caché 2016.2 以上のバージョンが必要です。 このクラスに馴染みのない方は、Using JSON in Caché と題したドキュメンテーションをお読みください。 とても重宝すると思います!

0 0
0 219
記事
· 2021年3月30日 1m read
動画:FHIR+IRIS for Health 101

*この動画は、2021年2月に開催された「InterSystems Japan Virtual Summit 2021」のアーカイブです。

この動画では、FHIR をご存じない方に向けて FHIR の概要を解説し、日本における FHIR 標準化活動の状況や国内外の事例を紹介しています。

https://www.youtube.com/embed/S7PV3RIpMUM
[これは埋め込みリンクですが、あなたはサイト上の埋め込みコンテンツへのアクセスに必要な Cookie を拒否しているため、それを直接表示することはできません。埋め込みコンテンツを表示するには、Cookie 設定ですべての Cookie を受け入れる必要があります。]

後半の16分~くらいからは、InterSystems IRIS for Health が提供する FHIR リポジトリに代表される FHIR 関連機能と、今後の機能ロードマップを紹介しています。

1 0
0 495

FHIR Terminology Serviceの仕様には、 CodeSystemValueSet、およびConceptMapリソースでの一連の演算子が記述されています。 これらの演算子の内、以下の4つの演算子が最も広く採用されているようです。

CodeSystem ValueSet
$lookup
$validate-code
$expand
$validate-code

IRIS for Health 2020.1で導入された新しいFHIRフレームワークを学ぶには、仕様の部分的な実装を開発するのが最も効果的と言えます。 実装には上記の4つの演算が含まれており、CodeSystemValueSetリソースでreadsearch操作がサポートされています。

実装には単純なObjectScript永続クラスがソース用語テーブルとして使用されていることに注意することが重要です。

0 0
0 271

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

Linux で シェルスクリプト(shell script) からルーチンやメソッドを実行し戻り値を取得するには、iris コマンドを使用します。

詳細はドキュメント「インスタンスの接続について」 をご参照ください。

コマンド記述例は以下の通りです。

iris session インスタンス名 -U ネームスペース名 "実行ルーチン・メソッド"
0 0
0 1.3K

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

管理ポータルを使用して確認する場合は、以下の手順で参照できます。

管理ポータル > [システムエクスプローラ] > [グローバル] の画面で、ネームスペースではなく データベース を指定し、IRISTEMP / CACHETEMP データベースを選択すると参照できます。

0 0
0 244

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


^%GSIZE ユーティリティでは、グローバルのサイズを算出することができます。

このユーティリティで出力される各項目の意味について説明します。

例えば、USERネームスペースのグローバルについて do ^%GSIZE を実行し、以下のように出力結果を得られたとします。

2 0
0 451

HealthShare HealthConnect と Information Exchange のバージョン 15.03 では、C-CDA 2.1 から SDA へのインポートトランスフォーメーションをサポートしています。 こういったプログラムのビルドは、インストレーションパッケージの csp/xslt/SDA3 ディレクトリにあります。 インポートトランスフォーメーションの概要は、Overview of Health Connect の「CDA Documents and XSL Transforms in HealthShare」をご覧ください。

C-CDA 2.1 サポートに関連するインポート機能の強化の 1 つとして、 C-CDA ファイルをインポートする前に前処理を実行できる機能が追加されました

前処理サポートの導入により、トランスフォーメーションは大幅に簡素化され、その合計処理時間も削減されます。 考えられるユースケースは以下の 2 つです。

0 0
0 154

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

以下のサンプルでは、画像ファイルをクラスプロパティにBase64文字列にエンコードして保存し、再びそれをBase64でデコードし、別のファイルに復元しています。


【使用クラス】

Class User.test Extends %Persistent
{
Property pics As %GlobalBinaryStream;
}


【取込み時】

0 0
0 1.2K

*この動画は、2021年2月に開催された「InterSystems Japan Virtual Summit 2021」のアーカイブです。

この動画では、Caché/EnsembleからInterSystems IRISへの移行プロセスについてご説明しています。

https://www.youtube.com/embed/612KLqB5mdY
[これは埋め込みリンクですが、あなたはサイト上の埋め込みコンテンツへのアクセスに必要な Cookie を拒否しているため、それを直接表示することはできません。埋め込みコンテンツを表示するには、Cookie 設定ですべての Cookie を受け入れる必要があります。]

Caché/Ensembleから InterSystems IRIS への移行を考えられている方は、まずこちらをご覧ください。
「移行する際の注意点」、「移行の方法」、「必読ドキュメント」、「キットや評価ライセンスの入手方法」など、IRIS移行の際に必要となる情報をまとめてご案内しています。

1 0
0 259

Caché 2013.1 より、InterSystems は特殊な値を持つフィールドが使われるクエリプランのセレクションを改善する目的で Outlier Selectivity (外れ値の選択性) を導入しました。

この記事では、「Project」テーブルを例に使い、Outlier Selectivity の概要やそれが SQL のパフォーマンスを向上させる仕組み、またクエリを書く際の注意点などについて解説したいと思います。

Selectivity (選択性)

まずは、Selectivity についてさっと説明します。 Selectivity とは、テーブル内の 1 つの列の中にある値に関するメタ情報のことです。 データが典型的なかたちで分布されていると想定した場合、「このテーブル内のこの列に特定の値を持つすべての行を要求するとしたら、通常取得できるのはテーブル内のどの程度の割合であろうか?」という疑問の答えとなる情報です。

0 0
0 107

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

各タイムアウト値の意味は以下の通りです。

(1) [サーバ応答タイムアウト]

この設定時間内に、IRIS/Caché での処理(ルーチンやクエリの実行)が終わらない場合は、ブラウザ側にエラーを返します。

例) この値が60秒の時に、ルーチン/メソッド/クエリ実行に 90秒 かかる場合にはエラーになります。

(2) [キューイングされたリクエストのタイムアウト]

CSP/REST で設定する IRIS/Caché サーバごとに、CSP/REST を同時実行できるプロセス数を制限できます。

1 0
0 717
記事
· 2021年3月19日 3m read
複数のSQL 文を実行する方法

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

複数の SQL 文を実行する GUI はありませんが、複数の SQL 文を含むファイルを作成しファイルをインポートしながら SQL を実行する方法で対応できます。

ご利用バージョンによって使用するユーティリティメソッドが異なります。

0 0
0 10K

この記事では、従来のIRISミラーリング構成の代わりに、Kubernetesの Deploymentと分散永続ストレージを使って高可用性IRIS構成を構築します。 このデプロイでは、ノード、ストレージ、アベイラビリティーゾーンといったインフラストラクチャ関連の障害に耐えることが可能です。 以下に説明する方法を使用することで、RTOがわずかに延長されますが、デプロイの複雑さが大幅に軽減されます。

0 0
0 1.1K

InterSystems IRIS では、情報を格納する「グローバル」というユニークなデータ構造をサポートしています。 基本的に、グローバルとは、マルチレベルのインデックスを持つ永続配列であり、トランザクションの実行やツリー構造のスピーディなトラバーサルといった機能が備えられているほか、ObjectScript として知られるプログラミング言語にも対応しています。

ここから先、少なくともコードサンプルについては、グローバルの基礎を理解されているという想定のもとに話しを進めていきます。

グローバルはデータを保存するための魔法の剣です パート1
グローバルはデータを保存するための魔法の剣ですパート2 - ツリー
グローバルはデータを保存するための魔法の剣です パート3 - 疎な配列

0 0
0 810
記事
· 2021年3月10日 3m read
RESTでセッション共有化する方法

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

REST アプリケーションはステートレスであることが想定されています。

しかし、複数の REST 呼び出し間でデータを保持したい場合などの理由で、Webセッションを使用したい場合は、UseSession パラメータを使用することができます。

以下のように、Web アプリケーションのディスパッチクラスとして定義された %CSP.REST のサブクラスでUseSession パラメータを指定することで、CSPと同じようにWebセッションを使用することが可能となります。

Class REST.MyServices Extends %CSP.REST
{
 Parameter UseSession As Integer = 1;


詳細は以下のドキュメントをご覧ください。

1 0
0 1K

デベロッパーの皆さん、こんにちは!

最近、当社は InterSystems Package Manager (ZPM) をリリースしました。 ZPM を開発した理由の 1 つは、ソリューションをパッケージ化して ZPM レジストリに提出することにより、そのデプロイを「install xxx package」のようなコマンドを実行するだけの単純な作業にするためです。

これを行うには、InterSystems IRIS パッケージの中身を説明する module.xml ファイルをリポジトリに導入する必要があります。

この記事では、module.xml ファイルの異なる構成要素を説明し、独自のファイルを作成する方法をご紹介します。

まずは、samples-objectscript パッケージから始めます。以下のコマンドを実行すれば、IRIS に ObjectScript のサンプルアプリケーションがインストールされます。

zpm: USER>install samples-objectscript

おそらく、これほどシンプルなパッケージはないと思います。以下は、パッケージの中身を説明する module.xml です。


<Export generator="Cache" version="25">
  <Document name="samples-objectscript.ZPM">
    <Module>
      <Name>samples-objectscript</Name>
      <Version>1.0.0</Version>
      <Packaging>module</Packaging>
      <SourcesRoot>src</SourcesRoot>
      <Resource Name="ObjectScript.PKG"/>
    </Module>
  </Document>
</Export>
1 0
0 186

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

ダイナミックオブジェクトから JSON 文字列を生成するときに使用する %ToJSON() の引数にストリームオブジェクトを指定することでエラーを回避できます。

コード例は以下の通りです。

USER>set temp=##class(%Stream.TmpCharacter).%New()

USER>set jsonobj={}

USER>set jsonobj.pro1=["a","b","c","d"]

USER>set jsonobj.pro2=["あ","い","う","え"]

USER>do jsonobj.%ToJSON(temp)

USER>write temp.Size
51
USER>write temp.Read()
{"pro1":["a","b","c","d"],"pro2":["あ","い","う","え"]}

詳細はドキュメントもご参照下さい。

1 3
0 449

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

INFORMATION_SCHEMA スキーマを使用して取得できます。

INFORMATION_SCHEMA はシステム用スキーマのため、デフォルトでは管理ポータルの SQL メニューに表示されません。

表示させる方法は以下の通りです。

  1. 管理ポータル→システムエクスプローラ→SQL メニューを開きます。
  2. スキーマのプルダウン左にある「システム」をチェックします。
  3. スキーマのプルダウンから INFORMATION_SCHEMA を選択します。

0 0
0 238

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

永続クラス(=テーブル)定義に提供される %BuildIndices() メソッドの引数に、インデックスを再構築したい ID の開始値と終了値を指定することにより、その範囲内のインデックスのみが再構築できます。

例えば、Sample.Person クラスにある NameIDX インデックスと ZipCode インデックスを ID=10~20 のみ再構築する場合は、以下のように実行します(ID の範囲は、第5引数、第6引数に指定してます)。

0 0
0 370

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

※ ここで説明するバックアップ方法は、外部バックアップ(##class(Backup.General).ExternalFreeze()を使用する方法)ではご利用いただけません。

その1(差分)

毎週日曜日1時にフルバックアップ、月曜日~土曜日の1時に差分バックアップを取得しているとします。

差分バックアップは、前日の1時に取得したバックアップからの更新ブロックが含まれるバックアップです。

0 0
0 629

マッピングの例

三連載で 4 記事目を書いてしまったら、これまでのハイライトとして 5 記事目を書かないわけにはいかないでしょう!

注意: 何年か前に Dan Shusman 氏が私に「グローパルのマッピングは芸術だ」と言いました。 そのやり方に正解も不正解もありません。 どのようなマッピングを行うかは、データをどう解釈するかで決まります。 例のごとく、最終的な結論を出す方法は 1 つに限られません。 ここでご紹介する例の中には、同じ型のデータを異なる方法でマッピングする例がいくつかあります。

この記事の最後には、私が長年お客様のために書いてきたマッピングの例をまとめた zip ファイルをご用意しています。 過去 4 つの記事で触れた内容をまとめたハイライトとして、いくつか例を挙げていきたいと思います。 この記事は単なるハイライトですので、過去 4 記事ほどの詳細はカバーいたしません。 不明な点があれば、遠慮なくご連絡ください。もっと詳しく説明させていただきます。

2 0
0 156