記事
· 2023年9月28日 22m read
OpenAPI Suite - パート 1

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

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

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

    この記事では、.Net/Java ゲートウェイを簡単にコンテナ化する方法を説明します。

    この例では、Apache Kafka との統合を開発します。

    Java/.Net と相互運用するために、PEX を使用しています。

    アーキテクチャ

    このソリューションは完全に docker で実行し、以下のように構成されます。

    0 0
    0 18

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

    ご存知のように、InterSystems IRIS インターオペラビリティソリューションには、プロダクション、ビジネスルール、ビジネスプロセス、データ変換、レコードマッパーなどの様々なエレメントが含まれています。 また、UI ツールを使用してこれらの要素を作成し、変更することもあります。 もちろん、UI ツールで行った変更をソース管理する便利で堅牢な方法も必要です。

    長い間、これは手動(クラス、エレメント、グローバルなどのエクスポート)か面倒な設定作業手順によって行われてきました。そのため、ソース管理 UI の自動化で節約された時間は、設定のセットアップとメンテナンスの時間で相殺されていました。

    現在では、この問題はなくなりました。 パッケージファースト開発と @Timothy Leavittgit-source-control という IPM パッケージの使用という 2 つのアプローチによる結果です。

    詳細は以下のとおりです!

    1 0
    0 49

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

    注意:本番環境では実行しないでください。テスト環境でご利用ください。

    開発時にプロダクションに残っているキューを一括でクリアしたり、プロダクションに関連した一次的な情報をすべて消去したい場合、以下メソッドを利用して実行中のプロダクション情報をリセットできます。

    1 0
    0 42

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

    この記事では、ワークフローコンポーネントを使ってみよう!~使用手順解説~ でご紹介したユーザ操作画面(ユーザポータル)を任意のWebアプリに変更する際に便利な REST API の使用方法をご紹介します。

    ワークフロー用 REST APIですが、開発者コミュニティのサンプル公開ページ:Open Exchange に公開されているAPIでどなたでも自由にご利用いただけます。

    Open Exchangeの検索ボックスに「Workflow rest」と入力すると出てきます。EnsembleWorkflow が対象のサンプルです。

    ちなみに、2023年6月2日時点で724のアプリケーションが公開されているようです👀

    0 0
    0 33

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

    この記事では、システム連携の自動的な流れの中にユーザからの指示を介入できる「ワークフローコンポーネント」のサンプル でご紹介した内容を、お手元のIRIS、IRIS for Healthを利用して体験いただくための手順を解説します。

    なお、ワークフローコンポーネントでどんなことができるのか?の概要説明については、ウェビナー(オンデマンド再生)をご参照ください。

    A.事前準備

    1) InterSystems IRIS または、IRIS for Healthのインストール環境をご用意ください。

    まだインストール環境がない場合は、コミュニティエディション(コンテナ版かキット版)をご利用ください。

    0 0
    0 69

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

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

    《サンプルのテーマ》

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

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

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

    0 0
    0 59

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

    HL7の仕様では、日本語データを送受信する場合はJISを文字コードとして利用し、メッセージヘッダ(MSH)の18番目の2項目に iso-ir87 を指定します。

    HL7用プロダクションでは、情報の入力はビジネスサービス、情報の出力はビジネスオペレーションを利用します。

    日本語を含むHL7を送受信する場合は、入力/出力の対象となる全てのコンポーネントの設定で [追加の設定] の「キャラクターセット(Charset)」に iso-ir87 を指定することで正しく日本語データを取り扱うことができます。

    iso-ir-87の設定

    0 0
    0 94

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

    前の記事では「機械学習を試せるチュートリアル:IntegratedML」で試せる内容をご紹介しましたが、この記事では Interoperability(相互運用性)チュートリアル の内容を少しご紹介します。

    Interoperability(相互運用性)チュートリアルでは、Redditに新しく投稿された記事=(https://www.reddit.com/new/)を一定間隔で取得し、全投稿の中から「猫(cat)」🐈について記載されている情報のみを抽出し、対象記事をファイル出力する流れをご体験いただけます。

    0 0
    0 82
    記事
    · 2023年2月27日 7m read
    Ensembleでの孤立メッセージ

    今回は、「孤立メッセージ」について説明します。

    孤立メッセージとは何ですか?

    すべてのメッセージボディは、メタデータを保持するメッセージヘッダと関連付けらます。ヘッダーには、ソース構成名称、ターゲット構成名称、作成時刻、処理時刻、関連するメッセージボディ参照、セッション情報、メッセージボディのクラス名称、メッセージステータスなどの情報が格納されます。 メッセージボディに対応するヘッダーレコードが存在しない場合、そのメッセージボディは孤立メッセージボディと呼ばれます。ここでは、孤立メッセージボディの原因となる可能性があるものについて説明します。

    0 0
    0 57

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

    開発者向け情報を集めた「Developer Hub」ページが新たに登場しました!

    このページには、4種類のチュートリアルが用意されています。チュートリアはブラウザ上で動作し、VSCodeやIRISターミナル、管理ポータルなどチュートリアルで使用するすべての画面が1つのタブ内で開くようになっています。

    チュートリアルを試すための事前準備は不要で、クリック1回ですぐにお試しいただけます!(ユーザ登録も不要です)(チュートリアル開始方法は、ページ末尾をご覧ください。)

    2 0
    0 109

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

    【開催概要】

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

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

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

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

    2 0
    0 65

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

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

    現在のネームスペース

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

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

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

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

    0 0
    0 83

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

    メモ:xxx にはネームスペース名が入ります。

    xxxENSTEMPは、プロダクション実行中に作成される一時データが保存されるデータベースです。
    ^IRIS.Temp.Ens* のグローバルがこのデータベースにマッピングされています。なお、xxxENSTEMPはジャーナルにかかれない設定のデータベースです。

    xxxSECONDARYは、プロダクションで使用される資格情報を保存するデータベースです。
    ^Ens.SecondaryData* のグローバルがこのデータベースにマッピングされています。

    注意:InterSystems IRIS for Health、HealthShare ではこれらデータベースは作成されません

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

    0 0
    0 57

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

    Interoperability を使った開発のスキルを披露してみませんか?
    次回のコンテストのお題は 🏆 InterSystems Interoperability Contest: サステナブルなソリューションの構築 🏆です!
    ​​​​

    期間: 2022年8月29日~9月18日

    💰賞金💰 $13,500 – 賞金の配分方法が変更されました!

    0 0
    0 58

    開発者の皆さん、こんにちは! DICOM 統合を実装したことはありますか? おそらく例やシミュレーターを探したことはあるかもしれません。 この記事では、有用な例を紹介したいと思います。

    DICOM はヘルスケアの分野で画像診断に広く使用されているメッセージ規格です。DICOM 規格は、IRIS For HealthHealth Connect の両方を使用して、相互運用性の本番環境で使用することができます。これについては、ドキュメントをご覧ください。

    多くの場合、DICOM 統合を開発する際に外部システム(PACS など)をシミュレーターで実行すると非常に便利です。実際のシステムに接続する前に、実装したいフローを完全にテストすることができます。

    IRIS For Health と dcm4che というシミュレーターを使った DICOM 統合の例があります。

    0 0
    0 97

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

    管理ポータルメニュー [Interoperability] > [構成] > [システムのデフォルト設定] で設定したデータを移行する場合、設定値が格納されているグローバル変数をエクスポートし、移行先システムでインポートします。

    画面で登録した以下のような情報は、

    グローバル変数 ^Ens.Config.DefaultSettingsD に格納されています。

    0 0
    0 114

    オリジナルの「InterSystems IRIS で Python を使って IMAPクライアントを実装する」は、埋め込みPythonを使用してIMAPインバウンドアダプタを実装されていますが、最近メールプロバイダがあいついでoAuth2認証しか受け付けなくなってきているので、その対応をしてみました。

    本稿のGitHubはこちらです。

    変更点

    GMAILに対してメールの送受信を可能とするためにオリジナルに以下の修正を施しています。

    0 0
    0 312

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

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

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

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

    0 0
    0 89

    皆さん、こんにちは!

    @Henrique Dias と私は、MessageViewer の最近のアップデートにおいて、IRIS Interoperability でメッセージを可視化する新しい方法を提案しました。 そのアップデートでは、UML シーケンス図に基づく可視化を提供しようとしました。 詳細は、の記事をご覧ください。

    2 0
    0 476

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

    • まず予め Visual Studioを使用して、呼び出したい内容のクラスライブラリを作成します。
    • そのプロジェクトをコンパイルし、DLLを作成します。
    • 管理ポータルでオブジェクトゲートウェイを作成します。   システム管理 > 構成 > 接続性 > オブジェクトゲートウェイ ゲートウェイ名 : testGateway サーバ名 / IPアドレス : 127.0.0.1 ポート : 55000 (後はデフォルト)
    • testGateway を開始します。


    ※管理ポータルから、もしくはコマンドから開始できます。


    do ##class(%Net.Remote.Service).StartGateway(gateway.Name)

    0 0
    0 191

    これまでの記事では、メールサーバーのメールボックスからのメッセージを処理する IMAP プロトコルの基本的な使用方法を学習しました。 とても興味深いものではありましたが、他の人が作成してすぐに利用できるようにライブラリに提供されている実装を利用することも可能です。

    IRIS データプラットフォームの改善の 1 つに、同じ IRIS プロセスで ObjectScript に並行して Python コードを記述できる機能があります。 この新機能は、組み込み Python と呼ばれます。 組み込み Python を使用すると、ObjectScript コードに巨大な Python エコシステムのライブラリの力を取り込むことができます。

    2 0
    0 220

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

    この記事では、【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 217
    記事
    · 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 193

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

    2つのシステムをつなぐだけだったら、わざわざInterSystems IRIS Data Platform(以下IRISと表記)のようなものを仲介させるのは無駄に思えるかもしれません。

    ですが、システムの接続は複数システム間に跨るのが一般的です。

    そしてシステムの数が増えるにつれ、その接続は複雑になっていき、接続のタイミング、接続プロジェクトの進行管理などが重荷になっていきます。

    また各接続は時が経つにつれ変化するのが一般的で、そういうことが起こると双方のシステムにその都度修正が必要になります。

    相互依存性が高まるわけです。

    また時が経つにつれ各システムが本来持っている機能と接続に関わる処理が混在するケースが多く、変更の影響範囲が多岐に渡ってしまい、 ちょっとした修正でも影響範囲の特定が困難となり、修正作業が膨大になるケースがあります。

    0 0
    0 97

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

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

    🔥 投票はこちらから! 🔥

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

    0 1
    0 102

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

    InterSystems Interoperability コンテスト 2021 の投票でポイントが加算される「テクノロジーボーナス」が発表されました!

    加点があるテクノロジは以下の内容です:

    • Business Process BPL または Business Rule の使用
    • カスタムアダプタの使用
    • Production EXtension(PEX) Java または .NET の使用
    • ワークフローエンジンの使用
    • Docker コンテナの使用
    • ZPM パッケージによるデプロイ
    • オンラインデモ公開
    • Code Quality pass
    • コミュニティに記事を投稿する
    • YouTubeでビデオを公開する

    詳細は以下の通りです。<--break->

    0 0
    0 80