0 フォロワー · 86 投稿

Representational state transfer (REST) は、Webサービスを作成するために使用される一連の制約を定義するソフトウェアアーキテクチャスタイルです。 RESTful Webサービス(RWS)と呼ばれる、RESTアーキテクチャスタイルに準拠したWebサービスは、インターネット上のコンピュータシステム間の相互運用性を提供します。 REST準拠のWebサービスを使用することで、要求されたシステムは、統一され事前定義されたステートレスな操作のセットを使用して、Webリソースのテキスト表現にアクセスし操作することができます。 SOAP Webサービスなどの他の種類のWebサービスは、独自の任意の操作セットを公開します。 詳細はこちら。

記事 Megumi Kakechi · 6月 27, 2023 1m read

Apache経由でREST通信する場合、ApacheでRESTを動かす場合の設定方法 (含:Webゲートウェイのインストール手順) の方法 で設定を行います。

この際、Apachの構成ファイル(httpd.conf)にRESTを動かすための設定を入れるのですが、設定後のシンタックスチェックで以下の警告が出る場合があります。

※httpd -t 実行時
Apache Configuration: CSP directive 'csp' detected in VirtualHost, only supported at default server level


こちらは、<VirtualHost> ~ </VirtualHost>  内に、CSP ディレクティブ の内容を設定している場合に出力されます。

 CSP on
 CSPFileTypes *

などの IRIS にアクセスをするための設定は、<VirtualHost> ディレクティブの外に設定するようにしてください。

詳細は以下のドキュメントをご覧ください。
追加ファイル・タイプを渡すための Apache の構成 (すべてのプラットフォーム)

0
0 177
記事 Mihoko Iijima · 2月 19, 2023 14m read

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

InterSystems デベロッパーツールコンテスト2023 の21の応募作品の中から、Experts Nomination 第3位に輝いた @Lorenzo Scalese  さんの OpenAPI-SuiteOpenAPI3.0 からObjectScriptコードを生成するためのツールセット)についてご紹介します。

現時点でIRISはOpenAPI2.0までの対応なのですが、このツールの凄いところは、OpenAPI3.0に対応しているところです!

提供している機能は、以下の通りです。

  1. サーバー側クラスの作成(OpenAPI2.0と同様に、APIファーストで作成するRESTディスパッチクラスの作成に必要なクラス群を作成します。)
  2. HTTPクライアントクラスの作成
  3. クライアントプロダクション(ビジネス・サービス、ビジネス・オペレーション、ビジネス・プロセス、Ens.Request、Ens.Response)
  4. このツールから生成する機能を指定できるWebインターフェース
  5. OpenAPI 1.x、2.x からバージョン3.0への変換ツール

各機能について詳しくは、@Lorenzo Scales さんが書かれた記事「OpenAPI Suite - Part 1」「OpenAPI Suite - Part 2」をご参照ください。

0
0 172
お知らせ Mihoko Iijima · 8月 3, 2020

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

インターシステムズは、2020年7月21日(火)に オンラインにて開催された開発者向けイベント「Developers Summit 2020 Summer」(主催:翔泳社)に協賛し、セミナーで IRIS プログラミングコンテストについてご紹介しました。

ご紹介内容は、コンテストに限らず、コンテナを使用した開発環境の整備にも使えますので、セミナーを見逃された方もぜひご覧ください!

もくじ

※ YouTubeでご覧いただくと目次の秒数にジャンプできます。

0
0 170
記事 Toshihiko Minamoto · 4月 18, 2023 14m read

今回は、「IRIS for Health Contest」に応募するために、どのような技術を使ってアプリケーションを開発していたのか、その詳細を紹介したいと思います。

  • OpenAPI仕様からのREST API生成
  • APIとWebページを保護する役割ベースのアクセス(RBAC)
  • InterSystems FHIR サーバー

内容

アプリケーション概要

まず、それらの技術に支えられたアプリケーションを簡単に紹介します。

このアプリケーションは、妊娠中の女性が簡単に症状を報告できるように設計されています。このアプリケーションはレスポンシブであるため、モバイルデバイスを使用して症状を簡単に報告することができます。このような症状は、FHIR Observation リソースInterSystems FHIR サーバーを使って記録されます。.

患者と医師は、通常のリレーショナル・テーブルを使用し、患者医師

0
0 168
InterSystems公式 Toshihiko Minamoto · 2月 18, 2021

InterSystems API Manager(IAM) バージョン1.5がリリースされました

 

以前のバージョンからアップグレードできるIAMコンテナはWRCソフトウェア配布サイトのComponents areaからダウンロードすることができます。

 

ビルド番号はIAM 1.5.0.9-4 です。

 

InterSystems API Manager 1.5 ではAPIトラフィックの管理や、環境とAPI利用者の統合がさらに簡単になりました。新機能は以下の通りです。

 

  • ユーザエクスペリエンスの改善
  • 新たな開発者ポータル
  • Kafka connectivityのサポート
  •  

    このリリースは、Kong Enterprise バージョン 1.5.0.9 をベースにしています。これまでのIAMリリースにはKong Enterpriseのホワイトラベルバージョンが入っていましたが、このリリースではホワイトラベルなしバージョンが入っています。この変更で、より頻繁にリリースすることができ、 Kongの提供するドキュメントやその他の資産を効果的に活用できるようになりました。

     

    IAM 1.5のドキュメントはこちらです。このドキュメントはIAM固有の部分のみカバーしています。

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

    ローコードへの挑戦

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

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

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

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

    1
    0 160
    記事 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 157
    お知らせ Mihoko Iijima · 10月 12, 2020

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

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

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

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

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

    🥈 2位 - $1,000 は apptools-admin を開発された Sergey Mikhailenk さんに贈られました!

    🥉 3位 - $500は realworld-intersystems-iris を開発された Dmitriy Maslenniko さんに贈られました!

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

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

    🥈 2位 - $250 は apptools-admin を開発された Sergey Mikhailenk さんに贈られました!

    1
    0 149
    記事 Mihoko Iijima · 1月 21, 2025 16m read

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

    Teams ワークフロー Webhook を用意すると、curl コマンドや REST クライアントを利用して Teams チャネルに任意メッセージを簡単に送信できるので、IRIS や IRIS の Interoperability を使って自動的に何か情報を入手+必要なときだけ Teams チャネル通知ができたら面白いな、と思い試してみた内容をご紹介します。

    以下、Teamsワークフローの作成例です。

    Teams ワークフローの仕様に合わせたメッセージ用 JSON が用意できれば、こんなメッセージを出すことができます。

    Teams チャネルにメッセージを通知するには「Teams ワークフローの Webhook」の用意が必要です。(この用意によってアクセスするために必要なURLが生成されます)詳しくは、「Microsoft Teamsのワークフローを使用して受信 Webhook を作成する」をご参照ください。

    通知までの設定などについては、こちらのページを参考にさせていただきました:Teams チャネルへメッセージ送信する方法

    以下、試した順でご紹介します。

    1. curl コマンドでまずは実行してみる

    2. シンプルにターミナルから試す

    3. 通知メッセージのJSONを変えてみる

    4. メッセージのJSONをJSONテンプレートエンジンで作ってみる

    5.

    0
    0 142
    記事 Tomoko Furuzono · 3月 19, 2025 3m read

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


    ISCLOG を有効にすることにより、CSP(REST)アクセスに関連するログ情報を収集できます。これを使用してCSP(REST)でのトラブル時の調査を行うことが可能です。
    ◎このツールをトラブルシューティングに使用する場合は、基本的に、エラーを(意図的に)再現できる状況で使用します。
     他のウェブアクセス等がない状態で、単体実行してエラーを発生させ、このログを取得して調査します。
    手順は以下のとおりです。

    ① ログをクリアします。

     //IRIS
     Kill ^ISCLOG
     //Caché
     Kill ^%ISCLOG


    ② ロギングレベルを設定します。

     Set ^%ISCLOG=3
    ------------------------------------
    #0 ― ログを記録しません。
    #1 ― 例外的なイベント (エラー・メッセージなど) のみをログに記録します。
    #2 ― 'method ABC invoked with parameters X,Y,Z and returned 1234' などの詳細な情報をログに記録します。
    #3 ― HTTP 要求から受け取ったデータなどの未処理のデータをログに記録します。
    ------------------------------------

     
    ③ CSPでエラーになる処理を行います。

    0
    1 136
    記事 Mihoko Iijima · 7月 7, 2025 3m read

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

    一般的に、500番台はサーバー側で発生したエラーを表していて、503番エラーはサーバーが何らかの理由で機能を停止していてクライアントの要求に回答できない場合に出現するエラーです。

    外部サイトの説明:503エラー 【HTTP 503 Service Unavailable】

    以下、InterSystems 製品の使用で発生する503エラーの考えられる原因について一覧します。

    REST/CSPページにアクセスできない

    原因:ライセンスが割り当てられない場合に発生します(ライセンスが「同時接続ユーザ」での購入である場合、ユーザ数が制限を迎えたためライセンスが割り当てられずこのエラーが発生します)。

    アプリケーションが「認証なし」アクセスを使用している場合、以下の原因により503エラーが発生します。

    • REST では、「認証なし」アクセスの場合は処理が終了しても10秒間ライセンスが保持されます。このため、保持するライセンス数を超えるような使用方法となっている可能性があります。
    • CSPアプリケーションでは、ブラウザごとにセッションを作成します。明示的にセッション終了を指定する、またはセッションタイムアウトを迎えるまでライセンスを保有し続けます。
    0
    0 127
    記事 Toshihiko Minamoto · 1月 31, 2024 3m read

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

    Open Exchange に最新の「IRIS Api Tester」アプリケーションをアップロードしました。

    InterSystems IRIS と Newman を使用した Docker プロジェクトで、素早く簡単に Postman コレクションをテストできます。

    リポジトリをクローンするだけで、初期状態で使用できるようになっています: https://github.com/daniel-aguilar-garcia/irisapitester

    docker-compose ファイルを実行します。

     

    この URL をブラウザで開きます。

    http://localhost:52773/csp/user/index.html

     

    テストを Postman コレクションに追加します。

    この例では、テストをコレクションの Test セクションに追加することでコレクションのすべてのエントリにグローバルテストを追加していますが、個別のテストを項目ごとに追加することもできます。

    ここでは、リクエストのステータスコードが 200 になることをテストしています。ステータスコードが 200 でない場合には、レポートにエラーとして表示されます。

    0
    0 123
    記事 Toshihiko Minamoto · 2月 20, 2025 4m read

    wsgi_logo

    コンテキスト

    ウェブサーバーゲートウェイインターフェース(WSGI)は、ウェブサーバーがリクエストを Python プログラミング言語で記述されたウェブアプリケーションまたはフレームワークに転送するための単純な呼び出し規則です。 WSGI は PEP 3333 で詳しく説明された Python 規格です。

    🤔 定義は良いとして、IRIS との関連性は何でしょうか?

    IRIS 2024.2+ の新機能により、直接 IRIS で WSGI アプリケーションを実行できます。 この機能は、IRIS を他の Python フレームワークとライブラリに統合する優れた方法です。

    これは、Python を使用して IRIS と対話できる Python ファーストエクスペリエンスのトレンドに沿ったもので、Python アプリケーションを IRIS 上で直接実行することもできるようになりました。

    使用方法

    IRIS で WSGI アプリケーションをインスタンス化するには、IRIS 管理ポータルのセキュリティ -> アプリケーション -> ウェブアプリケーションのセクションで構成する必要があります。

    単純な Flask の例:

    /irisdev/app/community ディレクトリにある app.

    0
    0 111
    記事 Hiroshi Sato · 2月 25, 2025 2m read

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

    以下の様なCurl コマンドで送信したファイルを受け取るRESTサービスを作成する方法を紹介します。

    curl -X POST "http://localhost/api/upload/csv?a=123&b=999" -F file=@"C:/temp/a.csv"

    クライアントからPOSTされたファイルを受け取ってサーバーに保存するRESTサービスは以下の様に作成します。 

    (このサンプルでは、1000文字以下の小さいサイズおよび文字コードはutf-8のファイルを想定しています。)

    Class User.MyREST Extends %CSP.REST
    {
    
    Parameter HandleCorsRequest = 1;
    XData UrlMap
    {
    <Routes>
      <Route Url="/csv" Method="POST" Call="readMimeData" />
      </Routes>
    }
    
    ClassMethod readMimeData() As %Status
    {
       set upload=$g(%request.MimeData("csvfile", 1))
       set fname=%request.MimeData("csvfile",1).
    0
    0 108
    記事 Hiroshi Sato · 9月 3, 2025 2m read

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

    ダイナミックオブジェクトの%ToJSONメソッドを利用することで簡単にJSONデータを送信することができます。

    但し、標準的な方法では、出力するJSONのデータがIRIS文字列の最大長(約32万文字 正確には$SYSTEM.SYS.MaxLocalLength()が返す値)を超えると<MAXLENGTH>エラーとなります。

    これを回避するためには、文字列として返すのではなく、%ToJSONメソッドの出力先としてStreamを指定し、その結果作成されたそのStreamデータを順次読み取って、出力先に書き出すようにする必要があります。

    以下のように処理できます。

    ClassMethod bigjson() As %Status [ ProcedureBlock = 0 ]
    
    {
    
       set x={}
    
       for i=1:1:100 { 
    
           set cmd=" set x.a"_i_" = ^a "    ;; ^aのサイズは1MB
           xecute cmd
    
       }
    
    
       set tmpStream = ##class(%Stream.GlobalCharacter).%New()
    
       do x.
    0
    0 106
    記事 Hiroshi Sato · 9月 12, 2024 1m read

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

    messages.logまたはcconsole.log内に記録されるCSPGatewayLatencyのメッセージは、サーバが、パフォーマンス測定のため定期的に「CSPゲートウェイにリクエストを送信して応答をもらう」ことを行っており、応答を受け取るまで一定時間以上かかったときに出る警告(応答時間の閾値)です。

    その既定値は1000ミリ秒です。

    WebGateway(CSPGateway)が稼働する Web サーバの負荷が高い場合に出力する場合がありますが、実際のCSPアプリケーションやREST APIの動作や応答速度に影響が見られなければ、特に問題はありません。

    またこのメッセージの出力頻度を下げるためにこの閾値を変更する方法もあります。

    変更方法は以下を参照ください

    ヘルスモニタのセンサー値をコマンドで変更する方法 

    0
    0 105
    記事 Toshihiko Minamoto · 5月 27, 2025 14m read

    次回の Python コンテストでは、Python を使用して IRIS をデータベースとして使用する簡単な REST アプリケーションを作成する方法についての小さなデモを作成しようと思います。 以下のツールを使用します。

    • FastAPI フレームワーク: 高パフォーマンス、学習しやすい、高速コーディング、プロダクション対応
    • SQLAlchemy: Python SQL ツールキットで、アプリケーション開発者が SQL の全性能と柔軟性を活用できるオブジェクトリレーションマッパーです。
    • Alembic: Python 用の SQLAlchemy データベースツールキットと使用する軽量のデータベース移行ツール。
    • Uvicorn: Python の ASGI ウェブサーバー実装。
    0
    0 97
    記事 Toshihiko Minamoto · 10月 18, 2023 7m read

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

    パート 1 では、すべてのパッケージ、使用されているライブラリ、および REST サービスについて説明しました。

    次は、コンバーターサービスとバリデーターサービスについて詳しく説明したいと思います。

    OpenAPI-Suite はデフォルトで、仕様バージョンが 3.0 未満である場合に HTTP リクエストを converter.swagger.io に送信し、別の HTTP リクエストを validator.swagger.io に送信して仕様ドキュメントの構造を単純化します。  

    オンラインユーティリティの使用は便利ではありますが、場合によっては独自のコンバーターとバリデーターのインスタンスを使用する方が便利な場合もあります。  たとえば、OpenAPI-Suite が ObjectScript 開発者向けに組織のサーバーに提供されている場合、外部サービスへのリクエストを回避する方が好ましいことがあります(プライバシーやリクエストレートの制限を回避するため)。 

    以下を実行してください。 

    docker run -d -p 8085:8080 --name swagger-converter swaggerapi/swagger-converter:latest
    docker run -d -p 8086:8080 --name swagger-validator-v2 swaggerapi/swagger-validator-v2:latest
    0
    0 93
    記事 Toshihiko Minamoto · 1月 7 25m read

     

    FHIRサーバー

    FHIRサーバーとは、FHIR(Fast Healthcare Interoperability Resources)標準を実装するソフトウェアアプリケーションであり、医療システムが標準化された方法で医療データを保存アクセス交換、および管理することができるようにします。

    Intersystems IRISは、以下のFHIRリソースを保存および取得できます。

    • リソースリポジトリ – IRISネイティブのFHIRサーバーは、FHIRバンドルやリソースをFHIRリポジトリに容易に直接保存することができます。
    • FHIR Facade – FHIRファサードレイヤーは、既存のもの(多くの場合、FHIR以外)の上にFHIRに準拠したAPIを公開するために使用されるソフトウェアアーキテクチャパターンです。 さらに、すべてのデータをFHIRネイティブシステムへ移行せずに、電子健康記録(EHR)、レガシーなデータベース、HL7 v2メッセージストアなどの医療データシステムを合理化します。

    FHIRとは?

    Fast Healthcare Interoperability Resources(FHIR)は、HL7 Internationalによって作成された標準化されたフレームワークであり、柔軟かつ開発者に優しい最新の方法で医療データの交換を促進します。

    0
    0 86
    記事 Toshihiko Minamoto · 4月 11, 2025 10m read

    django_logo

    説明

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

    インストール

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

    使用法

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

    エンドポイント

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

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

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

    0
    0 81
    記事 Hiroshi Sato · 2月 15 4m read

    IRISではCSPタグベースの開発は、非推奨(Deplicated)になっています。

    非推奨とはいえ、いますぐ使えなくなることはないと思います。

    が、CSP機能に含まれるHyperEventの#server()#呼び出しは、かなりやばいということがわかってきました。

    これはChromeを始めとするメジャーなブラウザーが提供しているSynchronous XMLHttpRequestという関数を呼び出しています。

    この関数をGoogleは10年前くらいから非推奨機能としていて、いつか完全に機能をドロップすると宣言しています。

    Stackoverflowの該当記事

    インターシステムズのドキュメントにもさりげなく記載されています。

    HyperEventCallメソッド

    とはいえ、10年もそのままなので、希望的観測をすれば、今後も使える可能性は高いかもしれません。

    しかし、ある日突然なくなるリスクはゼロではありません。

    ですので、#server()#呼び出しをお手元のコードからなるべく早く取り除くのが賢明です。

    それでは、どうすれば良いのか?

    ということですが、今のご時世で考えれば、REST APIに変えましょうというのが美しい世界ですが、おそらく書き換えのコストは、半端じゃないでしょう。

    ということで、現実的な解は、#Call()#に置き換えることだと思います。

    4
    2 78
    記事 Hiroshi Sato · 3月 4 13m read

    最近話題のClaude Codeを使って、ObjectScriptプログラミングをトライしてみました。

    もちろんClaude CodeにObjectScriptのコードを書かせるにはそれなりの指示が必要ですが、適切なプロンプトを与えると想像以上にちゃんとしたObjectScriptコードを書いてくれます。

    今回試したのは、少し前に投稿したCSPの#server問題に対応するため、#serverをREST APIに書き換えるというものです。

    元のソースは、

    https://github.com/wolfman0719/shopdemo

    これはCSPのデモアプリケーションですが、しっかりと#server機能を使用しています。


    結論をいうと、%sessionがRESTとCSP間で共有できないという根本問題があって、実行成功までには至っていませんが面倒なコーディングをかなりカーバーしてくれることがわかります。

    (REST APIをCSPクラスで実装することで%session共有の問題を回避でき、Claude Codeが生成したロジックの正しさは証明されました)

    そして、Claude Codeは、 ObjectScriptのことかなり理解してくれています。

    ObjectScriptプログラマーが少ない問題を大きく改善してくれる可能性があります。
     

    それでは、私がどのようなことを行ったか説明します。

    2
    0 60
    記事 Toshihiko Minamoto · 3月 6 7m read

    はじめに

    あるお客さんから、ワークフローの待受画面での新着通知方法についてご相談がありました。

    • 単純なポーリングだと、通知の遅延や、サーバリソースを消費する
    • ロングポーリングは、待ち受け画面のためにIRISのライセンスを消費する
    • MQTTなどを使うと専用のサーバプロセスが必要

    何か良い方法は無いでしょうか。 といった内容です。

    この課題に対して調査したところ、以下の方式が見つかりました。

    • ブラウザからSSE(Server-Sent Event)方式を使い、nginx上にアクセス
    • IRIS側から通知が必要なクライアントのIDに対してnginxにメッセージをPOST
    • nginxがルーティングを行い、当該クライアントにメッセージを通知

    今回は以下の点について手順や設定等解説していきたいと思います。

    • nginx のソースビルドと Web Gateway のインストール
    • nginx-push-stream-module を使った SSE (Server-Sent Events) 通知
    • ブラウザ受信 (/subscribe) とサーバ送信 (/publish) の最小実装

    全体構成

    まずは全体像です。データの流れをシンプルに分けることで、役割が明確になります。

    0
    0 35
    記事 Tomo Okuyama · 3月 19 5m read

    最近あるお客様にIRIS for Healthをご紹介する機会があり、技術者の方向けのデモを交えた説明をするためにIRIS for Healthのデモ環境の準備をしました。

    元ネタは @Mihoko Iijima がポストした以下の投稿です。

    FHIR R4 リソースリポジトリを簡単にお試しいただける開発環境テンプレートのご紹介

    非常にわかりやすい動画での説明もあるのでご覧ください。

    これから試す方向けに、新しいバージョン(2025.3)でお試しいただけるよう若干の修正をしましたので、紹介します。

    https://github.com/TomoOkuyama/iris4h-demo

    主な修正点は以下です。

    • IRIS for Health 2025.3 に対応 — ベースイメージを最新バージョンに更新
    • JsonAdvSQL ストレージ戦略を採用 — 2024.1 で導入された新しい FHIR サーバーのデフォルトストレージ戦略です。従来の JSON ストレージ戦略と比べ、FHIR REST API の検索性能・標準準拠性・スケーラビリティが大幅に向上しています。
    • 電子カルテ UI を今風にアップデート — FHIR API だけで動作する患者サマリ画面に刷新しました。
    0
    0 29
    記事 Megumi Kakechi · 3月 13 3m read

    これは InterSystems FAQ サイトの記事です。
    通常、フォームデータを受け取りたい場合は、CSPと同様に %request.Get() で受け取れます。

    URLパラメータで、?name=123 のようにリクエストする場合も、同様に%request.Get(“name”) で受け取れます。
     

    ファイルの場合は、%request.MimeDataで取得できます

    例:

      set fname=%request.MimeData("files",1).FileName
      set upload=%request.MimeData("files",1)
    
      set save=##class(%Stream.FileBinary).%New()
      set save.Filename="C:\work\in\"_fname
      do save.CopyFromAndSave(upload)


    HTMLやPostmanなどで、通常のテキストデータをフォームデータとして送る場合も、%request.Get() で受け取れます。

    例:

    set name=%request.
    0
    0 23
    記事 Toshihiko Minamoto · 3月 26 1m read

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

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

    例えば:

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

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

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

    0
    0 12