#相互運用性

0 フォロワー · 104 投稿

ヘルスケアでは、相互運用性とは、さまざまな情報技術システムとソフトウェアアプリケーションが通信し、データを交換し、交換された情報を使用する能力です。

記事 Toshihiko Minamoto · 2月 22, 2021 4m read

皆さん、こんにちは。
他のシステムとファイル連携を行う場合、Cachéでは、Jobコマンドを使った常駐プロセスやタスクを作成し、特定のディレクトリにあるファイルを定期的に監視、データを取り込むといった機能を手作りされていたかと思います。
これにはファイルの監視や、常駐プロセスの監視、プロセスの制御(起動、停止)を行う機能を用意する必要がありましたが、IRISではInteroperability機能が使えますので、そのようなプログラムを省略することが可能です。

今回は、既にファイル読込処理を行うルーチンが存在し、ルーチン呼出時の引数にファイル名があるという前提で、その処理をInteroperability機能を使ってどのように呼び出すかについて説明したいと思います。

手順

作業手順は以下の通りとなります。

  1. ビジネスサービスクラスの作成
  2. OnProcessInput()メソッドの実装
  3. プロダクションの作成
  4. ビジネスサービスの登録
  5. プロダクションの起動

ビジネスサービスクラスの作成

スタジオを起動し、ファイル読込処理を行うルーチンが存在するネームスペースに接続します。

「ファイル」「新規作成」メニューをクリックします。

以下のダイアログボックスが表示されますので、「プロダクション」カテゴリをクリックし「ビジネスサービス」アイコンをクリック、「OK」ボタンをクリックします。

3
0 530
質問 Yuji Ohata · 2月 17, 2022

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

現在、共通のIRIS環境を複数個所に用意するため、
インストール・マニフェストを利用した環境構築の仕組みを作成しております。
https://docs.intersystems.com/iris20211/csp/docbookj/DocBook.UI.Page.cl…

Interoperabilityを有効にしたNMSPについて、
管理ポータル上から作成すると、資格情報を保持する用のSECONDARYのローカルデータベースが
自動で作成されるように認識しております。
https://docs.intersystems.com/iris20211/csp/docbookj/DocBook.UI.Page.cl…

しかし、マニフェスト経由で作成した場合にはそれが作成されていません

2
0 214
お知らせ Mihoko Iijima · 10月 26, 2020

開発者の皆さんこんにちは!IRIS プログラミングコンテスト 7 回目のテーマが発表されました!

今回のコンテストのテーマは ⚡️ InterSystems Interoperability(相互運用性) Contest ⚡️ です!

日本からのご応募お待ちしております!

応募期間は 2020年11月2日~15日 です!

(投票期間は 2020年11月16日~22日、勝者発表は 11月23日を予定しています)

優勝特典

1、審査員から多く票を集めたアプリケーションには、以下の賞金が贈られます。

🥇 1位 - $2,000 

🥈 2位 - $1,000 

🥉 3位 - $500

2、Developer Community で多く票を集めたソリューションには、以下の賞金が贈られます。

🥇 1位 - $1,000 

🥈 2位 - $500 

複数の参加者が同数の票を獲得した場合、全参加者が勝者となり賞金は勝者間で分配されます。

参加資格

どなたでもご参加いただけます!(InterSystems 開発者コミュニティのアカウントを作成するだけでご応募いただけます)

コンテストのスケジュール

11月2日~15日 応募期間Open Exchange へ作成されたアプリケーションをアップロードいただける期間=2週間です。この期間内であればアップロード後も自由に編集できます。

2
0 277
記事 Toshihiko Minamoto · 3月 28, 2024 12m read

ローコードへの挑戦

こんな状況を思い浮かべてください。「ウィジェットダイレクト」というウィジェットとウィジェットアクセサリーを販売する一流のネットショップで楽しく勤務しています。先日、上司から一部の顧客がウィジェット商品にあまり満足していないという残念な話を聞き、苦情を追跡するヘルプデスクアプリケーションが必要となりました。さらに面白いことに、上司はコードのフットプリントを最小限に抑えることを希望しており、InterSystems IRIS を使って 150 行未満のコードでアプリケーションを提供するという課題をあなたに与えました。これは実際に可能なのでしょうか?

免責事項: この記事は、非常に基本的なアプリケーションの構築を記すものであり、簡潔さを維持するために、セキュリティやエラー処理などの重要な部分は省略されています。このアプリケーションは参考としてのみ使用し、本番アプリケーションには使用しないようにしてください。この記事ではデータプラットフォームとして IRIS 2023.1 を使用していますが、それ以前のバージョンでは記載されているすべての機能が提供されているとは限りません。

ステップ 1 - データモデルの定義

クリーンなネームスペースを新規に定義することから始めましょう。CODE と DATA データベースを使用します。

1
0 160
お知らせ Mihoko Iijima · 10月 18, 2021

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

今週から、InterSystems Interoperability コンテスト 2021の投票が始まりました!InterSystems IRIS を使い開発されたベストソリューションにぜひ、投票をお願いします!

🔥 投票はこちらから! 🔥

投票方法については、以下ご参照ください。

1
0 181
記事 Mihoko Iijima · 10月 27, 2020 12m read

この記事はこちらの投稿の続きの内容です。

前回の記事では、コンポーネント間のデータ送受信に使用される メッセージ について、作成するときの考え方や定義方法を確認しました。

今回の記事では、コンポーネントの作成方法の中から、ビジネス・オペレーションの作成について解説します。

早速サンプルを参照しながらコードを確認します。

コンポーネント名

役割

Start.FileBS

指定ディレクトリに置かれたファイルを一定間隔で読み取るファイルインバウンドアダプタを利用しているビジネス・サービス

Start.NonAdapterBS

アダプタを利用せず直接アプリケーションやユーザから情報を入力してもらうためのビジネス・サービス

Start.WS.WebServiceBS

Webサービスを利用して情報を入力してもらうためのビジネス・サービス

Start.WeatherCheckProcess

気象情報を取得してからデータベースの登録を行う手順を制御するビジネス・プロセス

Start.

0
0 1072
記事 Hiroshi Sato · 10月 20, 2021 1m read

これは、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 349
お知らせ Mihoko Iijima · 3月 7, 2024

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

インターシステムズの講師付きトレーニング「システム統合機能(Interoperability)の使い方」3日間(有料)を下記日時で開催します!

開催方法は、Teams会議とブラウザ経由でアクセスする演習環境(Windows)を利用したオンラインでの開催です。(ブラウザと安定したネットワーク環境があれば特にその他準備は不要です。)

コースでは、InterSystems IRIS または InterSystems IRIS for Health(以降IRIS)のインストールから開始し、開発環境の作成、VSCodeを利用した簡単なクラス定義の作成、ObjectScriptを使用したオブジェクト操作の練習を行った後、本題のシステム統合機能(Interoperabiityメニュー)の解説と演習に入ります。

コースで用意している外部システムへのアクセスとしては、データベースとファイル入出力があります。進み具合にもよりますが、お時間ある時はREST経由で情報を受信する方法も演習いただけます。

なお、Interoperabilityについては、コミュニティのシリーズ記事「【はじめてのInterSystems IRIS】Interoperability(相互運用性)を使ってみよう!」でもご紹介しています。

0
0 84
新着
記事 Toshihiko Minamoto · 4月 30 15m read

cover

その1 では、MAIS(マルチエージェント相互運用システム)の技術的基盤を構築いたしました。「脳」の配線に成功し、LiteLLMを用いた堅牢なアダプターを構築し、IRIS資格情報でAPIキーをロックダウンし、そしてついにPython相互運用性のパズルを組み立てたのです。 しかしながら、現時点では我々のシステムはLLMへの単なる未加工のパイプに過ぎません。テキストを扱うことはできますが、アイデンティティを欠いているのです。

さて、この第2部では、エージェントの構造についてご説明いたします。単純なAPI呼び出しから、構造化されたペルソナへと進みます。LLMをビジネスロジックの層でラップし、その名称やロールを定義し、そして最も重要な点として、隣接する要素を認識する能力を付与する方法について学んでまいります。

私たちのマシンの「魂」を構築しましょう。

エージェントの構造: ただのプロンプトではなく

「脳」(LLM)との接続が確立したところで、次にその「脳」にパーソナリティを付与する必要があります。よくある誤解として、エージェントとは単に「役立つアシスタントです。」といったシステムプロンプトに過ぎないという見方がありますが、それは単なるチャットボットに過ぎません。

真正なエージェント型AIは、監視を必要としない点で際立っています。それは自律性と、任務を完遂しようとする強い意欲を兼ね備えています。

0
0 7
記事 Toshihiko Minamoto · 2月 23, 2021 6m read

Java Business Host から PEX への移行

InterSystems IRIS 2020.1 および InterSystems IRIS for Health 2020.1 で PEX がリリースされ、Java Business Host を使うよりも優れたかたちで Java プログラムをプロダクション環境に取り込めるようになりました。 PEX は、相互運用性のコンポーネントを構築するための API をすべて提供するほか、Java と .NET の両方で使用できます。 Java Business Host は非推奨となり、今後のリリースで廃止される予定です。

PEX を使うメリット

  • デベロッパーはプロダクションのすべてのコンポーネントを、Java と .Net のどちらでも構築できる
  • コンポーネント間で一層複雑なメッセージ構造の受け渡しができる
  • シンプルな設定
  • 開発のワークフローがシンプルな上に、ObjectScript を使う必要がない

ここからは、既存の Java Business Host のコードを PEX に移行する方法に注目します。

概要

PEX で使用されるクラスとインターフェースは、Java Business Host (JBH) のものとは異なります。 本記事では、その相違点を要約して解説しますが、詳細は完全なドキュメントをご覧ください。

0
0 233
記事 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.HospitalProduction
0
0 221
記事 Hiroshi Sato · 2月 12, 2025 1m read

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

インターオペラビリティ機能を使用してビジネスホストのビジネスロジックを実装する際に、デバッグ等の目的でログ出力を行うための専用マクロが用意されているので、ご紹介します。

以下のマクロが用意されています。

$$$LOGINFO"これはログです。"$$$LOGERROR

ビジネスオペレーション等のコードに上記のコードを書くことにより、インターオペラビリティのイベントログにその内容が表示されます。

以下の様に表示されます。

0
0 99
記事 Toshihiko Minamoto · 7月 26, 2020 6m read

はじめに

システム開発では、集計作業や他システムとの連携など、数十秒ごとにバックグラウンドで処理を実行する、常駐プロセスが必要になるケースが多々あるかと思います。

Cachéでは、Jobコマンドを使って常駐プロセスを作成しますが、実際にシステムを安定稼働させるには、以下の監視の仕組みが必要でした。

  • 常駐プロセスの監視 常駐プロセス起動時にロックをかけ、二重起動を防止したり、プロセスが起動しているかどうかを監視する
  • ログ 常駐プロセスの処理状況や発生したエラーを記録し、処理が行われているどうかを監視する

IRISの場合、Interoperabilityにはこれらの機能が装備されています。したがって、Interoperabilityの機能を使えば、簡単に常駐プロセスを起動、監視することができます。

常駐プロセスの作り方

常駐プロセスの作成には以下の作業を行います。

  1. ビジネスサービスの作成 定期的に処理を行うビジネスサービスと呼ばれるクラスの作成
  2. 常駐プロセスの処理の記述 作成したビジネスサービスに、実施したい処理を記述
  3. プロダクションの作成 起動したい常駐プロセスを設定、監視するプロダクションの作成

1.ビジネスサービスの作成

スタジオを起動、常駐プロセスを実行するネームスペースに接続し、「ファイル」メニューの「新規作成.

0
0 681
記事 Hiroshi Sato · 9月 23, 2021 1m read

これは InterSystems FAQ サイトの記事です。
レコード・マップは、区切り文字付きのレコードや固定幅のレコードを含むファイルをInteroperability機能で使用するメッセージクラスへマッピングしたり、Interoperability機能のメッセージクラスからテキストファイルへマッピングする作業を効率的に行うための機能です。

レコードマップのマッピング定義は管理ポータルで作成でき、CSVファイルを読み込ませながら定義するCSVレコードウィザードも提供しています。

プロダクションでレコードマップを利用する場合は、レコードマップ用ビジネス・サービス、またはビジネス・オペレーションを追加し、作成したレコードマップ定義クラスを指定すれば完成です。

使用例は、以下から取得できます。

レコードマップサンプル


レコードマップの詳細な説明は、以下のドキュメントをご参照ください。


レコード・マッパーの使用法について【IRIS】
Ensemble レコード・マッパーの使用法について
 

0
0 437
記事 Toshihiko Minamoto · 9月 28, 2023 22m read

コミュニティの皆さん、こんにちは。

私が作成した OpenAPI-Suite という最新のパッケージをご紹介します。これは、OpenAPI 仕様バージョン 3.0 から ObjectScript コードを生成するツールセットです。  簡単に言うと、これらのパッケージでは以下を行うことができます。

  • サーバーサイドクラスの生成。  ^%REST による生成コードに非常に似ていますが、バージョン 3.0 がサポートされていることに付加価値があります。
  • HTTP クライアントクラスの生成。
  • クライアントプロダクション(ビジネスサービス、ビジネスオペレーション、ビジネスプロセス、Ens.Request、Ens.Response)クラスの生成。
  • コードの生成とダウンロードまたはサーバーでの直接コンパイルを行う Web インターフェース。
  • バージョン 1.x からバージョン 3.0 への仕様の変換。
  • 0
    0 160
    記事 Toshihiko Minamoto · 3月 26 1m read

    相互運用プロダクションでは、HTTPクライアントとして動作するビジネスオペレーションを常に設定することが可能です。このオペレーションはOAuth 2.0による認証を利用しますが、この認証方式に対応するためにはオペレーションのカスタマイズが必要でした。 最近リリースされた v2024.3以降では、 この処理をより容易に行うための新機能が追加され、新たな設定オプションが提供されています。

    HTTPアウトバウンドアダプターをご利用のビジネスオペレーションにおいて、OAuthグループの下に新しい設定項目が追加されております。

    例えば:

    • アクセストークンの配置 (ヘッダー | 本文 | クエリ)
    • グラントタイプ (パスワード | JWT認証 | クライアント認証情報)

    新しいOAuth関連の 設定に関するドキュメントはこちらでご覧いただけます。 

    関連するオペレーションのスクリーンショットの例を以下に示します:

    0
    0 17
    お知らせ Mihoko Iijima · 11月 16, 2020

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

    第 7 回 IRIS プログラミングコンテストの Interoperability コンテストの投票が始まりました!

    これだ!と思う応募作品にぜひ投票お願いします!

    投票は、Expert Nomination または Community Nomination のどちらかで行っていただきます。

    Experts Nomination

    あなたがインターシステムズのプロダクト・マネージャー、InterSystems 開発者コミュニティのモデレーター、またはスペシャリスト・レベル以上のグローバル・マスターであれば、エキスパート推薦(Experts Nomination)に投票してください。


    Community Nomination

    InterSystems 開発者コミュニティで投稿や返信を行った経験がある場合は、コミュニティ推薦(Community Nomination)で投票してください。

    投票は Open Exchange コンテストページで行われ、Open Exchange にサインインする必要があります。

    投票期間であれば、一度投票した後も別のアプリケーションへ投票し直すこともできます。

    なお、コンテスト参加者は投票週間の間にバグの修正やアプリケーションの改善を行うことができますので、アプリケーションのリリース情報についてもお見逃しなく!

    0
    0 97
    記事 Toshihiko Minamoto · 4月 12, 2022 3m read

    コミュニティの皆さん、こんにちは。お元気ですか?

    皆さんは、創造性をどのようにして発揮していますか? 新しいアイデアはどのようにしてテストしていますか?

    数年にもわたって、私はずっと新しいものを作り出し、既存のものを改良し、実験、テスト、破壊(いつも壊れてしまいます)を経て作り直し、そしてこのプロセスを繰り返してきました。

    InterSystems が推進するコンテストは、モチベーションを大きく持ち上げてくれます。もちろん、賞品に目が行ってしまうことは否定できませんが。 しかし、賞品や報酬だけでなく、こういったコンテストでは自分の創造性が試されますし、作成、改良、テスト、実験の機会が得られます。 さらに、最も素晴らしいのは、何をやるのも自由であるということです!

    私の場合、こういった機会は、独自の ホワット・イフ...?(マーベルが作家に自由にストーリーを改良させるシリーズ)を作成できるチャンスと見なしているため、これらのアイデアを私と一緒に受け入れてくれる人がいたのは幸運でしたlaugh @José Pereira に感謝です。

    前回の相互運用性コンテストでは Message Viewer を作成したのですが、今回の相互運用性コンテストでも Message Viewer をもう一度取り上げました。ただし独自のビジュアルトレース機能

    0
    0 199
    記事 Toshihiko Minamoto · 10月 14, 2024 16m read

    CI/CD シリーズの新しい章へようこそ。ここでは、InterSystems テクノロジーと GitLab を使用したソフトウェア開発の様々な可能なアプローチを取り上げています。

    今回は、相互運用性についてご紹介しましょう。

    問題

    アクティブな相互運用性プロダクションがある場合、2 つの個別のプロセスフローが存在します。メッセージを処理する稼動中のプロダクションと、コード、プロダクションの構成、およびシステムデフォルト設定を更新する CI/CD プロセスフローです。

    明らかに、CI/CD プロセスは相互運用性に影響しますが、 本題は次にあります。

    • 更新中には実際に何が起きているのか?
    • 更新中の本番停止を最小限に抑えるか失くしてしまうには、どうすればよいのか?
    0
    0 81
    記事 Mihoko Iijima · 5月 27, 2021 2m read

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

    HL7 メッセージの送受信を行うプロダクションでは、以下3個のグローバルが非常に大きくなることがあります。

    グローバルの大きさを確認する場合は、^%GSIZEユーティリティを利用します。詳細は関連トピック/記事をご参照ください。

    ^EnsHL7.Segment
    ^EnsLib.H.MessageD
    ^EnsLib.H.MessageI

    HL7メッセージは EnsLib.HL7.Message.cls で定義されます。
    ^EnsLib.H.MessageD はデータを保存するグローバル、^EnsLib.H.MessageI はインデックスを保存するグローバルです。

    また、HL7メッセージは多数のセグメントで構成されており、メッセージデータを含むそれらのセグメントは ^EnsHL7.Segment に保存されます。

    ^EnsLib.H.MessageD グローバルの値は、^EnsHL7.Segment グローバルの添え字にリンクしています。

    これらメッセージ関連のグローバルの削除については、任意の保持日数を指定して手動および定期的に削除することができます。
    パージ(Purge)用ユーティリティについては、以下のドキュメントをご参照ください。

    0
    0 222
    記事 Mihoko Iijima · 6月 1, 2023 7m read

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

    先日のウェビナーでご紹介した「ワークフローコンポーネント」をお試しいただけるサンプルを公開しました。👉 https://github.com/Intersystems-jp/WorkFlow-DC

    《サンプルのテーマ》

    店舗で販売している商品に付けるPOPメッセージ候補を予めテーブルに登録できる仕組みが既にある、と仮定しています。

    IRISの Interoperability を利用してPOPメッセージ候補が登録されるテーブルに対して一定間隔でSELECT文を実行し、未処理のメッセージを取得します。
    新たなレコードが存在する場合、ワークフローコンポーネントを利用して担当者に審査を依頼します。

    担当者は、ワークフローユーザポータルを使用して、POPメッセージ候補の承認/却下を指示できるようにしています。

    0
    0 239
    記事 Toshihiko Minamoto · 12月 15, 2025 8m read

    カスタマーサポートの質問は、構造化データ(オーダー、製品 🗃️)、非構造化知識(ドキュメント/よくある質問 📚)、およびライブストリーム(出荷更新 🚚)と多岐にわたります。 この投稿では、以下を使用して、3つすべてに対応するコンパクトなAIエージェントを作成します。

    • 🧠 Python + smolagentsは、エージェントの「頭脳」を構成します
    • 🧰 SQLベクトル検索(RAG)、およびInteroperabilityのためのInterSystems IRIS(モック配送状況API)
    0
    0 78
    記事 Mihoko Iijima · 10月 27, 2020 4m read

    この記事はこちらの投稿の続きの内容です。

    前回の記事では、プロダクションとは?について確認しました。また、サンプルコードを動かしながらプロダクションに流れるメッセージの中身をトレース画面で確認しました。

    今回は記事では、システム統合を行うための必要な開発内容の中から、コンポーネント間のデータ送受信に使用される メッセージ について、作成するときの考え方や定義方法を確認していきます。

    • プロダクション(前回の記事)
    • メッセージ
    • コンポーネント
      • ビジネス・サービス
      • ビジネス・プロセス
      • ビジネス・オペレーション

    メッセージ を作成する前に、サンプルのテーマを再度確認しましょう。

    ショッピングサイトを運営している会社があり、季節に合わせ商品情報の表示順を変更する作業を行っています。
    ところが、季節を問わず良く売れるもの、想定しなかった時期に売れるものもあり、現在の表示順変更ルールにうまく合いません。
    そこで、季節に合わせた表示順ではなく、そのときの気温にあわせた表示順に変更できないか検討した結果、購入物品に対してそのときの気温を調査する必要が出てきました。
    気象情報の確認には、外部の Web API が利用できるため、購入されたタイミングで気象情報を収集し、後で確認できるようにデータベースに情報を登録していく予定です。

    このテーマから、以下の内容が確認できます。

    0
    0 723
    記事 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 407
    記事 Toshihiko Minamoto · 3月 25, 2024 10m read

    バージョン 2023.3(InterSystems IRIS for Health)の新機能は、FHIR プロファイル基準の検証を実行する機能です。

    この記事では、この機能の基本的な概要を説明します。

    FHIR が重要な場合は、この新機能を絶対にお試しになることをお勧めします。このままお読みください。

    0
    1 241
    記事 Toshihiko Minamoto · 3月 1, 2021 6m read

    開発者の皆さん
    こんにちは。
    Windows共有しているリモートサーバに出力されたファイルでデータ連携する際、セキュリティ上、資格情報が必要となるケースが良くあるかと思います。いままでCachéで連携していた時には%ZSTARTルーチンや常駐プロセスのルーチンにて「net useコマンド」を実行されていたかと思いますが、IRISではInteroperability機能が使用できますので、前回の記事で作成したビジネスサービスクラスを元に、資格情報を使ってWindows共有フォルダにアクセスできる機能を追加したいと思います。

    仕組み

    ビジネスサービスが起動、停止する際に呼び出されるOnInit()、OnTearDown()メソッドにnet useコマンドを埋め込み、指定されている資格情報を使ってnet useコマンドで共有フォルダへの接続、切断を行います。

    認証情報設定パラメータ追加

    ビジネスサービスの設定画面で認証情報を選択できるよう、以下のようにCredentialsプロパティ、SETTINGSパラメータをTest.BS.ImportMasterクラスに設定します。

    0
    0 629
    お知らせ Maki Hashizawa · 1月 18, 2023

    インタ―システムズでは、医療ITソリューション・サービスを提供される方々向けに、医療DXの推進やデータ活用を支援するシステムの要件、求められる姿について考察するオンラインセミナーをシリーズで開催しております。ソリューション開発編の第2段として、今回は「相互運用性/FHIR®の実装」をテーマに、下記の通り、開催する運びとなりました。 是非、ご参加いただきたくご案内致します。

    【開催概要】

    日時:2023年2月9日(木)13:00 - 14:30 (予定)

    参加:無料(事前登録制)

    対象:医療情報ステムベンダー、医療機器メーカー、医療向けサービスプロバイダーの事業企画・開発の皆様

    主催:インタ―システムズジャパン株式会社

    お申込み・詳細はこちらから

    【プログラム】

    13:00~13:05 開会挨拶

    インターシステムズジャパン株式会社
    カントリーマネージャー 林 雅音

    13:05~13:45「高度な医療DXを実現するための情報基盤とは」

    宮崎大学医学部
    名誉教授 荒木 賢二 様

    13:50 - 14:25「HL7® FHIR® × InterSystems IRIS for Health」

    インターシステムズジャパン株式会社
    古薗 知子

    13:25 - 14:30 閉会挨拶

    ※ プログラムは、変更の場合がございます。最新の情報はWebサイトでご確認ください。

    詳細・お申込みはこちらをご覧ください。

    0
    0 159
    記事 Toshihiko Minamoto · 2月 27, 2025 7m read

    Flask_logo

    説明

    これは、ネイティブウェブアプリケーションとして IRIS にデプロイできる Flask アプリケーションのテンプレートです。

    インストール

    1. リポジトリをクローンする
    2. 仮想環境を作成する
    3. 要件をインストールする
    4. docker-compose ファイルを実行する
    git clone
    cd iris-flask-template
    python3 -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
    docker-compose up
    

    使用法

    ベース URL は http://localhost:53795/flask/ です。

    エンドポイント

    • /iris - IRISAPP ネームスペースに存在する上位 10 個のクラスを持つ JSON オブジェクトを返します。
    • /interop - IRIS の相互運用性フレームワークをテストするための ping エンドポイント。
    • /posts - Post オブジェクトの単純な CRUD エンドポイント。
    • /comments - Comment オブジェクトの単純な CRUD エンドポイント。

    このテンプレートからの開発方法

    WSGI 導入記事をご覧ください: wsgi-introduction

    0
    0 104
    お知らせ Mihoko Iijima · 8月 31, 2020

    皆さんこんにちは。

    第5回 InterSystems IRIS プログラミングコンテスト(FHIRコンテスト) への応募は終了しました。コンテストへのご参加、またご興味をお持ちいただきありがとうございました。

    今回のお知らせでは、見事受賞されたアプリケーションと開発者の方々を発表します!

    🏆 審査員賞 -特別に選ばれた審査員から最も多くの票を獲得したアプリケーションに贈られます。

    🥇 1位 - $1,500 は iris-fhir-portal を開発された Henrique Gonçalves Diasさんに贈られました!

    🥇 1位  - $1,500 は iris4health-fhir-analytics を開発された José Roberto Pereira さんに贈られました!

    🥉 3位  - $500は fhir-chatbot を開発された Renato Banzai さんに贈られました!

    🏆 開発者コミュニティ賞 - 最も多くの票を獲得したアプリケーションに贈られます。

    🥇 1位 - $1,000 は iris-fhir-portal を開発された Henrique Gonçalves Diasさんに贈られました!

    🥈 2位 - $500 は iris4health-fhir-analytics を開発された José Roberto Pereira さんに贈られました!

    0
    0 145
    記事 Toshihiko Minamoto · 9月 28, 2021 3m read

    Cachéでのデータ同期については、オブジェクトとテーブルを同期させるさまざまな方法があります。
    データベースレベルでは、シャドーイングまたはミラーリングを使用できます。 

    これは非常によく機能し、データの一部分だけを同期する必要がある場合には、
    グローバルマッピングを使用してより小さなピースにデータを分割することができます。
    または、クラス/テーブルレベルで双方向の同期が必要な場合には、オブジェクト同期機能を使用することができます。


    これらすべての優れた機能には次のような制限があります。
    Caché/IRISからCaché/IRISにしか機能しません。

    0
    0 267