#InterSystems IRIS for Health

0 フォロワー · 934 投稿

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

お知らせ Mihoko Iijima · 11月 7, 2022

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

開発者コミュニティのYouTubeプレイリストに新しいセルフラーニングビデオを公開しましたのでお知らせします📣!

◆ IRISでPythonを使ってみよう!

※YouTubeに移動していただくとプレイリストの中から好きなビデオを選択してご覧いただけます。

0
0 244
記事 Megumi Kakechi · 11月 3, 2022 1m read

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

Question:

IRISという製品名を選んだのはなぜですか?

Answer:

IRISは、インターシステムズの製品開発者がソフトウェアを開発する際に常に念頭に置くべき以下の4つの原則の先頭文字を表しています。

  [ I ]   Interoperable:他のソフトウェアと連携して動作すること
  [ R ] Reliable:信頼性が高いこと
  [ ]   Intuitive:直観的に使用できること
  [ S ] Scalable:スケール(拡張性が高い)すること

0
1 229
質問 Tsukamoto Tomoya · 10月 28, 2022

皆様、こんにちは。
IRISを使用して検証を行っている者です。

FHIRパッケージをCLIからインポートした際に、
エラーメッセージが表示されるのですが、解消方法についてご存知でしょうか。

■コマンド
FHIRSERVER>do ##class(HS.FHIRMeta.Load.NpmLoader).importPackages($lb("/durable/iris/package/hl7.fhir.r4.examples-4.0.1/package/"))

■エラー内容
Saving hl7.fhir.r4.examples@4.0.1

  Throw ##class(%Exception.StatusException).ThrowIfInterrupt($$Error^%apiOBJ(500
  ^
1, "Package '" _ package.id _ " has no dependencies that identify a core package
"))
<THROW>zcoreVersion+21^HS.FHIRMeta.Load.NpmLoader.1 *%Exception.StatusException ERROR #5001: Package 'hl7.fhir.r4.examples@4.0.

0
0 45
記事 Mihoko Iijima · 10月 23, 2022 24m read

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

IRIS の FHIR リポジトリは、HL7 FHIR 標準プロファイルに対する検証をサポートしていますが、カスタムプロファイルに対する検証は、まだサポートできていません(将来のリリースバージョンで対応予定です)。

カスタムプロファイルの Search Parameter の追加はサポートしています!詳しくは、「動画:FHIR プロファイル」をご参照ください。

この記事では、IRIS の FHIR リポジトリに対して、カスタムプロファイルの検証を行う方法についてご紹介します。

方法としては、HL7 FHIR が提供している FHIR Validator で提供しているJARファイル(validator_cli.jar)を利用します。

利用のためには、FHIR リソースの検証のタイミングで、JARファイルの検証を実行するようにFHIRサーバサイドの動作をカスタマイズする必要があります。

ということで、大まかな準備は以下の通りです。

1) Java用外部サーバ(External Language Servers)の開始

IRISから FHIR Validator で提供しているJARファイル(validator_cli.jar)を利用するため、Java用外部サーバを開始します。

0
1 1594
お知らせ Maki Hashizawa · 10月 18, 2022

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

2022年7月に開催された国際モダンホスピタルショウ、インタ―システムズブースに設けたミニシアターで行ったインタ―システムズFHIRサポートの新しい機能を紹介したプレゼンテーション動画ごご紹介致します。

よろしければ、ご覧ください。

「FHIRリソースデータを分析に。~FHIR SQL Builderのご紹介~

0
0 160
記事 Hiroshi Sato · 10月 14, 2022 2m read

IRISでは.Net Binding機能が非推奨になったため、VisM.OCXの置き換えのために用意していたCaché版Cache Directエミュレータ(.Net Binding機能を使用していたため)の使用も非推奨となりました。
そこでIRISのNative API機能を使用して書き換えたものを作成し、OpenExchange(以下のFAQトピックを参照してください)に登録しています。

FAQのトピック


Caché版Cache Directエミュレータを使っているアプリケーションをIRISに移行するためには、IRIS用のCache Directエミュレータに置き換えて、アプリケーションのコードをいくつか書き換える必要があります。

内容は、それぞれのプロジェクトに含まれるコンソールアプリケーションサンプル(consoleApp.cs)を比較することで大体理解できると思いますが、以下にその手順について説明します。

1. IRISの.Net Native API用のdllの参照設定を追加します。

Visual Studioのプロジェクト設定から参照の追加を選び、以下のファイルを追加してください。

c:\InterSystems\IRIS\dev\dotnet\bin\v4.6.2
InterSystems.Data.IRISClient.dll

2.

0
0 361
記事 Megumi Kakechi · 10月 13, 2022 4m read

以下、デプロイモード(配置モード)でプログラムを配布する方法を2つご紹介します。


① DB内のソースコードをデプロイモードでエクスポートする方法

② ソースコード用DBを用意してIRIS.datごとデプロイモードにする方法


①は、プログラムのみデプロイモードでエクスポート/インポートできるので、初回システム構築時はもちろん、プログラムの修正が発生した時などソースの一部のみエクスポートすることも可能となります。
②は、IRIS.dat ごとデプロイするので初回システム構築時に IRIS.dat のみ配置すればよく手順が単純です。

クラスがデプロイモードになると、そのクラスのメソッドとトリガのソースコードは削除されます。
クラスがデータ型クラスである場合、クエリキャッシュによって実行時にメソッド定義が必要になる可能性があるために、メソッド定義が保持されるのでご注意ください。

 

それぞれの方法について、詳しく説明します。
 

① DB内のソースコードをデプロイモードでエクスポートする方法

(1) 開発環境:Hidden属性をオンにして保存し、Deployモードでエクスポートします。
   ※こちらの操作は、移行先環境で行うことも可能です。必要に応じて設定するようにしてください。

 set cls = ##class(%Dictionary.ClassDefinition).%OpenId("User.
0
1 316
お知らせ Mihoko Iijima · 10月 11, 2022

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

次のコンテストの詳細が決定しましたのでお知らせします📣

今回は、FHIRの知識を共有するためのコンテストを企画しています。

🏆 InterSystems IRIS for Health コンテスト: FHIR for Women's Health 🏆

InterSystems FHIR または、InterSystems Healthcare Interoperability を使用したアプリケーションを作成してご応募ください。

    期間: 2022年11月14日~12月4日

    賞金: $13,500!

    >> 応募はこちらから! <<

    0
    0 209
    記事 Megumi Kakechi · 10月 6, 2022 4m read

    Caché/Ensemble 時代からご使用のお客様にはなじみの機能だと思いますが、IRISには「システムがインスタンスのメッセージログ/messages.log(Cachéの場合は コンソールログ/cconsole.log) を監視し、ログ・レベル2(重大なエラー) 以上 のアラートを受け取るとメールを送信する」ログ・モニター機能があります。
    この機能を使用すると、アラートログ (alerts.log)へのログ書き込み管理のほかに、メールを送信することもできます。

    メール送信の設定は、^MONMGR ユーティリティを使用して簡単に行えます。

    以下に、サンプルをご案内します。

    USER>zn "%SYS"
     
    %SYS>do ^MONMGR
     
     
    1) Start/Stop/Update Log Monitor
    2) Manage Log Monitor Options
    3) Exit
     
    Option? 2   <-- ログモニター管理の設定を行います
     
    1) Set Monitor Interval
    2) Set Alert Level
    3) Manage Email Options
    4) Exit
     
    Option?
    0
    0 325
    記事 Toshihiko Minamoto · 10月 5, 2022 4m read

    IRIS における Python サポートの最近の改善と、InterSystems による Python DB-API サポートへの継続的な作業により、 Django プロジェクトに IRIS サポートを実装しました。Python DB-API の使用により、他のデータベースと連携することが可能です。

    Django で、IRIS にデータを保存する単純なアプリケーションを試してみましょう。

    ToDo アプリ

    0
    0 418
    お知らせ Maki Hashizawa · 10月 4, 2022

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

    インタ―システムズでは、本年7月に、「国際モダンホスピタルショウ 2022」に、3年ぶりに出展致しました。

    ブースには、ミニシアターを設け、業界をリードする多くの方やパートナー企業様にプレゼンテーションをいただき、その動画を公開しています。

    本日は、その中で、アプリケーション開発者の皆様に参考となる IRISを解説いただいたプレゼンテーション動画をご紹介させていただきます。

    「Python + iknowpy... + IRISが変えるデータ分析  アプリケーション編」

    「Python + iknowpy... + IRISが変えるデータ分析  アーキテクチャ編

    <プレゼンター>

    群馬大学医学部附属病院
    システム統合センタ― 副センター長 准教授 鳥飼 幸太先生

    その他、HL7 FHIRを解説やパートナーソリューション紹介など、国際モダンホスピタルショウ2022 インタ―システムズブースでのプレゼンテーション動画は、こちらからご覧いただけます。

    よろしければ、ご覧ください。

    0
    0 100
    記事 Megumi Kakechi · 10月 3, 2022 1m read

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

    Question:

    InterSystems IRIS は 2フェーズコミットをサポートしていますか?

    Answer:

    サポートしていません。

    2フェーズコミットはデータベースシステムがサポートしているだけでは十分ではなく、アプリケーションサーバ等の各実装が定めている2フェーズコミットのプロトコルを駆使して、アプリケーションを構築する必要があります。

    また関連するシステムの全てのコンポーネントが対応している必要がある、ロングトランザクションには向いていないなど、現実に実装する局面では様々な制約事項があります。

    2フェーズコミットは、技術面、設計および実装面、コスト面、性能面などハードルが非常に高いため、実際には限られた領域での利用に留まっています。

    0
    0 116
    記事 Toshihiko Minamoto · 9月 26, 2022 8m read

    プログラムによる本番環境アクセス

    プログラムで本番環境(インターフェース)を編集するには、相互運用性 apis と SQL クエリを組み合わせて使用できます。

    現在のネームスペース

    大まかに言えば、その時点で作業しているネームスペースと本番環境を知ることが重要です。

    // Object script 
    // アクティブなネームスペースはこの変数に格納される
    $$$NAMESPACE 
    // ネームスペースを出力
    Write $$$NAMESPACE
    
    # Python
    import iris
    # このメソッドからアクティブなネームスペースが返される
    iris.utils._OriginalNamespace()
    # ネームスペースを出力
    print(iris.utils._OriginalNamespace())
    >>> DEMONSTRATION
    

    現在の本番環境(アクティブまたは最後に実行した本番環境)

    本番環境の名前を知ることも重要です。次の API を使用してネームスペース内のアクティブな本番環境を取得できます。

    // ObjectScript
    USER>ZN "DEMONSTRATION"
    // 現在または最後に実行した本番環境を取得
    DEMONSTRATION>W ##class(Ens.Director).GetActiveProductionName()
    >>> Hospital.
    0
    0 218
    記事 Megumi Kakechi · 9月 21, 2022 2m read

    SQL ゲートウェイ接続を使用した、外部データベースへのアクセス方法についてご説明します。

    手順は以下になります。
     


    1. 外部ソースへの SQL ゲートウェイ接続の作成を行います


    ※こちらの例では、IRISの別インスタンスへの接続を試しています。 
    ※ODBCを使用される場合は、事前に
    システムDSN(64bit)の準備が必要です。
    管理ポータルより
     [システム管理] > [構成] > [接続性] > [SQLゲートウェイ接続] の 新規接続作成 ボタンをクリックします。

    接続の種類を選択し、必要項目を設定します。以下のサンプルは、ODBC接続(別IRISインスタンスのDSN設定)を行っています。

      

    ※ODBC/JDBC 各接続定義の作成の詳細は、以下のドキュメントをご覧ください。
     JDBC 経由での SQL ゲートウェイへの接続
     ODBC 経由での SQL ゲートウェイへの接続


    2. リンクテーブルウィザードを使用して、1で作成したSQLゲートウェイ接続に対してリンクテーブルを作成します


    管理ポータルより
     [システムエクスプローラ] > [SQL] ページより、
      [ウィザード] > [リンクテーブル] をクリックしリンクテーブルウィザードを開きます。

     手順に従ってリンクテーブルを作成します。

    0
    0 655
    お知らせ Mihoko Iijima · 9月 15, 2022

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

    サステナブルなソリューションの構築をテーマとした Interoperability プログラミングコンテストの投票が開始されました!

    🔥 ベストアプリケーションはこれだ! 🔥 と思う作品にぜひ投票お願いします!

    投票方法は以下ご参照ください。

    0
    0 92
    記事 Megumi Kakechi · 9月 9, 2022 3m read

    これは InterSystems FAQ サイトの記事です。
    外部バックアップ機能と、SANソリューションが提供するスナップショット(スナップクローン、ミラークローンなど呼び方はベンダ毎に異なります)などのテクノロジを利用することで、バックアップ時のインスタンス停止時間を最短にすることができます。

    操作手順概要は以下の通りです。

    1. 外部バックアップ用ユーティリティを利用して、データベースファイルへの書き込みを一時中断します(%SYSネームスペースで実行します)。
      %SYS>set status=##class(Backup.General).ExternalFreeze()
    2. 外部のスナップショットユーティリティを使用して、ファイルシステムのスナップショットを作成します。    
    3. データベースファイルへの書き込みを再開するため、外部バックアップ用ユーティリティを使用します。
      %SYS>set status=##class(Backup.General).ExternalThaw()
    4. バックアップメディアにスナップショットをコピーします。


    【ご参考】
    ExternalFreeze() の処理は以下のようになります。

     1.  ジャーナルファイルの切り替え
     2.  データベースバッファ上の書き込み待ちバッファをすべてデータベースファイルに書き出す
     3.

    0
    0 306
    記事 Megumi Kakechi · 9月 5, 2022 2m read

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

    Web 経由でのイメージファイルのアップロード/ダウンロードを行うサンプルをご紹介します。
    サンプルでは、以下の手順でファイルの「アップロード/ダウンロード」を行っています。

    1. Stream型のプロパティをもったクラスを用意する
    2. upload ボタン押下でイメージファイルをIRISサーバにアップロードする
    3. アップロードされたデータを %request.MimeData で受け取り CopyFromAndSave メソッドを使ってコピー&1 のクラスに保存する
    4. アップロードされたファイルを画面に表示する
    5. download ボタンを押下し、1 のクラスに保存したファイルをローカルにダウンロードする。


    サンプルプログラムの使い方は次のとおりです。


    最初のページでファイルを選択し go ボタンをクリックすると、次のページにアップロードされた画像が表示されます。

    アップロードしたファイルをダウンロードしたい場合は、download ボタンをクリックしてください。

    0
    0 307
    InterSystems公式 Toshihiko Minamoto · 9月 4, 2022

    これは、2022.2の開発者プレビュープログラムのリリース第6弾です。 プレビューリリースは、隔週で更新される予定で、準備が整い次第、機能を追加していく予定です。  2022.2では、SQL管理、クラウド統合、KafkaおよびJMSアダプタ、SQL Loaderなどにおいて、多くのアップデート、修正、機能強化が行われています。 製品改善のため、開発者コミュニティを通じてフィードバックをお寄せください。

    列指向ストレージに関して、Early Access Program (EAP) を受け付けています。ご興味のある方はぜひ Early Access Program にご参加ください。

    開発者向けプレビューでは、Ubuntu 22.04 LTSやLinux FHEL 9に対応しています。

    通常、CDリリースにはサポートされているすべてのプラットフォーム向けの標準インストールパッケージと、OCI(Open Container Initiative、別名Dockerコンテナ)形式のコンテナイメージが付属しています。  詳細については、サポートされるプラットフォームのドキュメントをご参照ください。

    インストールパッケージとプレビューキーは、WRCのプレビューダウンロードサイトまたは評価サービスのウェブサイト(2022.

    0
    0 137
    記事 Megumi Kakechi · 8月 30, 2022 4m read

    これは InterSystems FAQ サイトの記事です。
    InterSystems IRIS Data Platform(以下IRISと表記)ではマルチモデルのサポートにより、データに対して様々なアクセス手法を使用することができます。

    主だったアクセス手法としてダイレクトアクセスSQLアクセスオブジェクトアクセスがあります。
     

    ダイレクトアクセス は、IRISのネイティブ構造であるグローバルと呼ばれるキーバリュー型のデータに直接アクセスする方法です。

    SQLアクセス は、リレーショナルデータベースシステムにアクセスするための標準言語であるSQLを使用してデータにアクセスする方法です。

    オブジェクトアクセス は、オブジェクト指向言語でオブジェクトを操作するための表記法として幅広く利用されるドット記法を使用してデータにアクセスする方法です。


    ダイレクトアクセスとSQLアクセスおよびオブジェクトアクセスでは、処理の抽象度が異なります。

    抽象度が高くなるに伴い、内部的な処理のオーバヘッドが増加するため、単純な1スレッド単位でのアクセススピードの速さについては、ダイレクトアクセスが、SQLアクセスとオブジェクトアクセスに比較して速い場合が多いです。

    しかしながら、今後SQLアクセスに関してより高速に処理できるよう様々な開発が進行中です。

    0
    0 515
    記事 Hiroshi Sato · 8月 28, 2022 1m read

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

    実行ログデータなどトランザクション中にロールバックが発生しても前の状態に戻ってほしくないデータがあります。

    それらのデータをロールバックされないデータベースIRISTEMPに配置することで上記の要件に対応できます。

    一時グローバルと IRISTEMP データベース

    ロールバックさせたくないテーブルの実体をこのデータベースにマッピングすることでロールバック後に情報を残すことができます。

    ただし、このデータベースはIRIS再起動で内容がクリアされますので、永続的に保持したい場合には、いずれかのタイミング(ロールバック後等)で永続テーブルにコピーを行う必要があります。

    また、これとは別に、トランザクション対象外としたいテーブル操作の前にプロセスのジャーナル記録を停止し、操作完了後にジャーナル記録を再開することで、その操作をトランザクション対象外にすることもできます。

    ただしこの方法は、ミラーリングをお使いいただく際にはご使用いただけません。

    %NOJRN を使用したプロセス・レベルでのジャーナリングの管理

    デベロッパーコミュニティの記事

    0
    0 350
    記事 Hiroshi Sato · 8月 22, 2022 1m read

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

    正規表現を使用する$Locate()関数がご使用いただけます。

    正規表現の使用方法

    使用方法の例は以下の様になります。

    USER>write str
    あいうえおかきくけこABC123456さしすせそ 
    USER>write $locate(str,"[A-Za-z]{3}[0-9]{6}",,,val)
    11 
    USER>write val
    ABC123
    0
    0 247
    記事 Megumi Kakechi · 8月 18, 2022 1m read

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

    クライアントからターミナルにログイン(接続)できない時、ターミナル接続を可能にするサービスが有効になっていないことが原因として考えられます。

    ターミナル接続を可能にするサービスが有効になっていないことが原因として考えられます。

    管理ポータル :[ホーム] > [システム管理] > [サービス] 

    有効になっていない場合は、リンクをクリックしてサービス定義編集画面を開き、"サービス有効"にチェックを入れて保存します。

    もう一つの原因としてはOSのファイアウォールによりターミナル接続が遮断されている場合が考えられます。

    リモートでターミナル接続される場合はファイアウォールの設定を無効にしてお使い下さい。

    0
    0 479
    InterSystems公式 Toshihiko Minamoto · 8月 17, 2022

    これは、2022.2の開発者プレビュープログラムのリリース第5弾です。 プレビューリリースは、隔週で更新される予定で、準備が整い次第、機能を追加していく予定です。  2022.2では、SQL管理、クラウド統合、KafkaおよびJMSアダプタ、SQL Loaderなどにおいて、多くのアップデート、修正、機能強化が行われています。 製品改善のため、開発者コミュニティを通じてフィードバックをお寄せください

    列指向ストレージに関して、Early Access Program (EAP) を受け付けています。ご興味のある方はぜひ Early Access Program にご参加ください。

    今後の開発者向けプレビューでは、Ubuntu 22.04 LTSへの対応や、コミュニティエディションでの制限の変更などが予定されています。ご期待ください!

    通常、CDリリースにはサポートされているすべてのプラットフォーム向けの標準インストールパッケージと、OCI(Open Container Initiative、別名Dockerコンテナ)形式のコンテナイメージが付属しています。  詳細については、サポートされるプラットフォームのドキュメントをご参照ください。

    インストールパッケージとプレビューキーは、WRCのプレビューダウンロードサイトまたは評価サービスのウェブサイト(2022.

    0
    0 104
    記事 Toshihiko Minamoto · 8月 11, 2022 1m read

    Studio では、クラスを直接その名前で開くことができます。何度もクリックしながら目的のクラスに到達するまでパッケージツリー内を移動する必要はありません。

    Ctrl + O(またはファイル -> 開く)を押せば、以下のようにクラス名を入力するだけです。

    Enter を押すと、クラスが開きます。

    VSCode ではこれをどのようにして行えるでしょうか?

    0
    0 629
    記事 Megumi Kakechi · 8月 8, 2022 3m read

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

    テーブル(クラス) のデータを削除する際に %KillExtent() というメソッドを使用すると、レコードを1ずつ削除するのではなく、データを格納しているデータグローバル、インデックス定義のグローバル(ノード) をまとめて 削除することができます。

    kill ^ISJ.xxxD
    kill ^ISJ.xxxI

    のようにデータグローバルやインデックスグローバルをまとめて削除するのと同じような動作となります。
    そのため、ジャーナルレコードへの出力は最小限になります。


    使用例:

    write ##class(ISJ.xxx).%KillExtent()


    ただし、トランザクション下で実行すると一括 Kill の場合でも保存されているレコードに応じたジャーナルレコードが生成されるのでご注意ください。

    また、以下のドキュメントの注意書きにあるように、他クラス(テーブル)への参照などが含まれているクラスで実施されると整合性に問題が発生する場合がありますのでご注意ください。

    %KillExtent() メソッド
     

    こちらを必要なだけ記述したタスククラスを作成すると、タスクスケジューラから定期的に実行できます。
    タスククラスの作成方法は、以下のトピックをご覧ください。

    【FAQ】定期的に処理を実行する事は出来ますか?


    【ご参考】

    IRIS 2021.

    0
    0 332
    記事 Hiroshi Sato · 8月 8, 2022 1m read

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

    TCP アダプタを使用するビジネスホストの [接続中を維持(StayConnected)]と[プールサイズ(PoolSize)]のデフォルト設定値は以下の通りです。

    StayConnected = -1(常時接続タイムアウト無し)
    PoolSize = 1

    ネットワークの問題でビジネスホストへの接続が切断された場合に、プロダクション側では切断されたことを検知できないため新しい接続を受け付けません。

    またこの状況の時、イベントログにも記録されません。

    StayConnected が デフォルト値(-1)の場合、接続がタイムアウトしないため新しい接続を受け付けるためには、ビジネスホストを再起動する必要があります。

    このような状況を回避するためには、StayConnected を 0 以上の値に設定することを推奨します。

    例えば300(秒)に設定した場合、TCP ビジネスホストは 300 秒以上新たなメッセージを受信しなかった場合に、自動的に接続を切断して再接続できます。

    処理量の多いシステムの場合には、通常 StayConnected の値をさらに小さな値、例えば 5(秒)に設定します。

    0
    0 176
    記事 Hiroshi Sato · 8月 8, 2022 1m read

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

    コンソールログに任意のメッセージを書き込む方法として%SYS.System クラスの WriteToConsoleLog メソッドを使用することができます。

    以下に例を示します。 

    %SYS>write ##class(%SYS.System).WriteToConsoleLog("xxxxx log message",0,0)
    1


    WriteToConsoleLogメソッドに指定できるパラメータの詳細は、以下のドキュメントをご参照下さい。

    クラスリファレンス(%SYS.System)【IRIS】

    クラスリファレンス(%SYS.System)

    0
    0 180