お知らせ Mihoko Iijima · 7月 20, 2023

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

InterSystems製品に関連するアイデアをご提案いただく「アイデアソン」の2回目の開催が決定しました!

🎁 第2回 InterSystems Idea-A-Thon(アイデアソン) 🎁

8月1日~21日の期間にInterSystems 製品やサービスに関連するアイデアをご提案いただくコンテストで賞品の用意があります!

どなたでもご参加いただけます!

0
0 172
記事 Mihoko Iijima · 7月 14, 2023 4m read

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

InterSystems IRIS 、InterSystems IRIS for Healthのコミュニティエディションは、WindowsやLinuxにインストールするキットの他にコンテナ版も公開されています。

コンテナ版はダウンロードページからではなく、InterSystemsコンテナレジストリ よりpullいただけます。

この記事では、InterSystemsコンテナレジストリ の使い方と、コンテナ開始までの流れをご紹介します。

0
1 271
記事 Mihoko Iijima · 6月 29, 2023 3m read

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

LOAD DATAは、バージョン2022.1から追加されたSQLコマンドで、CSVファイルやJDBCソースからデータをテーブルにロードするコマンドです。
データが存在するテーブルにLOAD DATAを実行した場合、データは追記されます。

※ バージョン2022.1をご利用いただく場合は、バージョン2022.1.3 をご利用ください。(2022.1.0~2022.1.2は、使用するJARファイルの不備により動作しません。)

LOAD DATAを利用する際、Javaの外部サーバ(Javaゲートウェイ)を使用するため、IRISをインストールした環境にJavaのインストールが必要です。
サポート対象のJavaバージョンについては、ドキュメントの「サポート対象Javaテクノロジ」をご参照ください。

LOAD DATAを利用するためには、Javaインストール済、かつ外部言語サーバで %Java_Server 設定済の環境である必要があります。

※ 環境変数JAVA_HOMEの設定がある場合は以下 %Java_Serverの設定は不要です。

%Java_Server 設定詳細は以下の通りです。

  • Javaホームディレクトリ:インストールしたJavaのホームディレクトリを指定します。

 

利用手順は以下の通りです。

以下のCSVを読み込む場合の手順を説明します。

0
0 1059
記事 Mihoko Iijima · 6月 13, 2023 1m read

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

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

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

set$namespace="プロダクションのあるネームスペース名指定"do##class(Ens.Director).CleanProduction()

ドキュメント:ネームスペースでのプロダクションのリセット

プロダクション全体ではなく、一部コンポーネントの実行中データをリセットする場合は、アダプタの ClearAllAppData() を使用します。
引数にはプロダクションに登録している構成名を指定してください。

例)SQLインバウンドアダプタが保持している永続値をリセットする

do##class(EnsLib.SQL.InboundAdapter).ClearAllAppData("構成名称")

ドキュメント:受信アダプタで以前に処理された行のリセット

例)FTPインバウンドアダプタが処理したファイルの情報をリセットする

do##class(EnsLib.FTP.InboundAdapter).ClearAllAppData("構成名称")
0
0 132
記事 Mihoko Iijima · 6月 12, 2023 2m read

FHIRドキュメント(診療情報提供書や退院時サマリ―など)をFHIRリポジトリにPOSTする場合、

エンドポイント/Bundle

上記URLでPOSTできます。(以下の例では、IRIS for Healthに用意したFHIRリポジトリを使用しています。)

GET要求で確認してみます。

登録できたことを確認できました。

FHIRリポジトリに登録したFHIRドキュメントですが、文書番号を指定してGETできると便利なのですが、現時点(バージョン2023.1)のIRIS for HealthのFHIRリポジトリでは、FHIR標準仕様にあるBundle の SearchParameter :composition について未対応のため、Composition.identifier を指定した Bundleリソースに対する GET要求が行えません。

そこで回避策として、Bundle登録時 Composition.identifier.value に設定している文書番号を Bundle.identifier.value にも設定しPOSTします。こうすることで、Bundle の Search Parameter:identifier に文書番号を指定でき、対象となるBundleリソースをGETできます。

文書例:(長いので途中までの抜粋です)

0
0 333
お知らせ Mihoko Iijima · 6月 12, 2023

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

InterSystems グランプリコンテスト2023 では、InterSystems IRIS data platform を使用する機能であればどんな内容でもご応募いただけます。

以下の機能を含めた場合、ボーナスポイントを獲得できます。

詳細は以下の通りです。

0
0 100
記事 Mihoko Iijima · 6月 11, 2023 2m read

IRIS for HealthのFHIRリポジトリには、「条件付き削除結果の最大数」がデフォルトで3件に設定されています。

そのため、条件指定のDELETE要求で4件以上が対象となる場合、以下のエラーが発生します。

例えば、あるcodeで条件指定したリソースが5件あるとします。

これをDELETE要求に変えて実行すると、以下のようにHTTPステータス412が戻り、「Conditional delete search found more than maximum allowed number of 3 results」のエラーが発生します。

HTTP応答を確認すると、ConditionalDeleteOverflowのエラーが発生しています。

これは、条件付き削除の最大値が3件で設定されているため、発生しています。

ということで、FHIR Configuration画面を開き、設定を確認します。

管理ポータル > [Health] > ネームスペース選択 > [FHIR Configuration] > [Server Configuration]

対象のエンドポイントを選択すると以下の設定画面が表示されます。

Max Conditional Delete Results の項目に 3 と設定されています。

0
0 162
記事 Mihoko Iijima · 6月 9, 2023 2m read

FHIRリソースをリポジトリから削除するには、対象リソースに対してDELETE要求を使用すればよいのですが、例えば「テスト的に登録していたリソースばかりなので、リポジトリのデータを一括で全消去したい!」という場合の方法をご紹介します。

実行前に、エンドポイントのURLを確認します。

管理ポータル > [Health] > ネームスペース選択 > [FHIR Configuration] > [Server Configuration] で確認できます。

データの全消去を行うには、IRIS for HealthのFHIRサーバ機能で提供されているAPIを使用します。実行のため IRISのターミナルを開く、またはIRISにログインします。

ご参考:HS.FHIRServer.Storage.Json.RepoManagerクラスにあるDeleteService()メソッドを使用して削除します。

WindowsにIRISをインストールされている場合は、タスクバー上のIRISランチャー  をクリックし、ターミナルを選択します。

Windows以外でお試しいただいてる場合は、iris session コマンドでIRISにログインしてください。

※ iris session インスタンス名 (インスタンス名=インストール時に指定した名称)

iris session irishealth
0
1 238
記事 Mihoko Iijima · 6月 8, 2023 3m read

FHIR関連トレーニングの中で複数の方よりいただいたご質問をご紹介していきます。

IRIS for HealthのFHIRリポジトリでは、リソースPOST時のデフォルトの動作としてリポジトリ内でユニークな論理ID(id)を自動的に付与します。

例えば、以下のようなPatientリソースをPOSTした場合

0
0 244
記事 Mihoko Iijima · 6月 6, 2023 5m read

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

ターミナルでルーチンやクラスのコンパイルを行う際、コンパイル結果が画面に表示されるのでエラーが発生した場合でも確認しやすいですが、一括コンパイルの場合は、大量のコンパイル結果の中にエラー情報が含まれてしまうためエラー情報だけを取得したい場合には少し工夫が必要です。

以下、ルーチン/クラスの一括コンパイル時の結果からエラー情報を取得する方法をご紹介します。

ルーチンの場合

ネームスペースにあるルーチンをターミナルで一括コンパイルするには、%Library.Routine クラスの CompileAll() メソッドを使用します。

以下実行例は、USERネームスペースにあるルーチンを一括コンパイルした結果です。TestRoutine1でコンパイルエラーが発生しています。

0
0 245
記事 Mihoko Iijima · 6月 2, 2023 6m read

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

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

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

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

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

0
0 324
記事 Mihoko Iijima · 6月 1, 2023 21m read

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

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

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

A.事前準備

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

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

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

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

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

《サンプルのテーマ》

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

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

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

0
0 192
お知らせ Mihoko Iijima · 5月 30, 2023

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

毎年恒例の InterSystems IRIS開発者向け「グランプリ・コンテスト」の開催が決定しました!

今年のお題は「InterSystems IRIS data platformを利用してオープンソースを作成する」です。

🏆 InterSystemsグランプリ・コンテスト2023 🏆

期間: 2023年6月12日~7月2日

賞金総額: $26,000

0
0 179
記事 Mihoko Iijima · 5月 30, 2023 2m read

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

%SYSTEMパッケージには沢山の便利なシステムクラスがあり、Embedded Pythonでも一般クラスと同様に%SYSTEMパッケージ以下クラスを操作できます(iris.cls("クラス名").メソッド名()で呼び出せます)。

ObjectScriptでは、$SYSTEM特殊変数を利用して、%SYSTEMパッケージ以下クラスのメソッドを呼び出すことができますが、Embedded Pythonでは、iris.system を利用して実行することができます。

以下実行例をご紹介します。

現在のネームスペースを取得する

一般クラスと同じ呼び出し方の例

iris.cls("%SYSTEM.SYS").NameSpace()

iris.systemを利用する例

iris.system.SYS.NameSpace()

 

binディレクトリのパスを返す

一般クラスと同じ呼び出し方の例

iris.cls("%SYSTEM.Util").BinaryDirectory()

iris.systemを利用する例

iris.system.Util.BinaryDirectory()

 

SQL関連をまとめたSQLクラスの例は以下の通りです。

YYYY-MM-DDから$horolog形式の日付を返す

一般クラスと同じ呼び出し方の例

0
0 120
記事 Mihoko Iijima · 5月 26, 2023 6m read

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

IRISではジャーナルファイルが自動的に圧縮される仕組みが導入されています。

ジャーナルファイルの圧縮機能について詳しくは、別の記事「ジャーナル圧縮機能について」をご参照ください。

例えば、CachéからIRISへ移行された後に、念のためIRISで更新されたデータを手動でCachéにも反映させたいことばある場合に、IRISのジャーナルファイルをCachéにリストアすることができます。

手順は以下の通りです。

(手順1) IRISのジャーナルファイル(YYYYMMDD.nnnz) ファイルを解凍する
(手順2,3) 解凍した ジャーナルファイルを Cachéに転送してリストアする

リストアの方法として、以下の2パタンをご紹介

(A) 指定グローバルとデータベースについて、指定ジャーナルから、全エントリをリストア
(B) 指定グローバルとデータベースについて、指定ジャーナルから、特定のアドレスまでリストアする

(A) 指定グローバルとデータベースについて、指定ジャーナルから、全エントリをリストア

(手順1) IRISサーバ上で以下のコマンドにより、ジャーナルを解凍する

IRIS 2022.1 以降、現在実行中のジャーナル以外は、拡張子 z で圧縮されています。

以下のコマンドで解凍し、指定のフォルダにコピーします。

0
0 184
記事 Mihoko Iijima · 4月 24, 2023 6m read

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

過去に開催した開発者向けウェビナー アーカイブビデオのまとめページを作成しました。

今後もウェビナーを開催していきますのでこのページをブックマークしていただけると嬉しいですlaugh

プレイリストはこちら👉https://www.youtube.com/playlist?list=PLzSN_5VbNaxB39_H2QMMEG_EsNEFc0ASz

2025年開催分:

✅ウェビナー

Connpassから申込が行えます:🤖はじめてのAI開発 ~ゼロからのIRIS環境構築とOpenAI連携チャットボット作り~🤖
残席7席ですので、ぜひお早めにお申し込みください!💨

9
0 635
記事 Mihoko Iijima · 4月 17, 2023 1m read

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

以下の状態の時、ReadOnlyでマウントされます。

0
0 257
記事 Mihoko Iijima · 4月 10, 2023 4m read

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

バージョン2017.2以降から、CREATE TABLE文で作成したテーブル定義のデータを格納するグローバル変数の命名ルールが変わり ^EPgS.D8T6.1 のようなハッシュ化したグローバル変数名が設定されます。(この変更はパフォーマンス向上のために追加されました。)

※ バージョン2017.1以前については、永続クラス定義のルールと同一です。詳細は関連記事「永続クラス定義のデータが格納されるグローバル変数名について」をご参照ください。

以下のテーブル定義を作成すると、同名の永続クラス定義が作成されます。

CREATETABLE Test.Product(
    ProductID VARCHAR(10) PRIMARY KEY,
    ProductName VARCHAR(50),
    Price INTEGER
)

 永続クラス:Test.Productの定義は以下の通りです。(パラメータ:USEEXTENTSETに1が設定されます) 

0
0 293
記事 Mihoko Iijima · 4月 6, 2023 1m read

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

この記事では、Developer Hub にあるチュートリアルの4番目のご紹介となる REST + Augular App チュートリアル についてご紹介します。

チュートリアルでは、IRISを利用してRESTサービスで使用するテーブル、データ、RESTサーバの機能をサンプルコードをコピーしながら作成していきます。

チュートリアルの中で作成するWebアプリはとてもシンプルな内容で、データベースにブックマークとして登録したいURLを保存し、参照するだけのページとしています。

データの登録も、IRISの管理ポータルのSQLメニューでINSERT文を実行する形式で進めていきます。

最終的には、以下の図にあるように「Add a new bookmark」以下のテキストボックスで新しいブックマークを登録できるように、Web画面とRESTサーバ用コードを追加していきます。

アカウント作成やログインも不要で  ボタンをクリックするだけで始められます👍

ぜひ、お試しください!​​​​​​

0
0 228
記事 Mihoko Iijima · 4月 4, 2023 7m read

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

Python Native APIを利用すると、IRISにあるグローバル変数の参照/更新をPythonから行えたり、メソッドやルーチンをPythonから実行することができます。

この記事では「AWS Lambda の IRIS Python Native API IRIS」の記事を参考に、NativeAPIを利用してPythonからIRISに接続するAWS Lambda関数を作成する流れで必要となる、レイヤー作成と関数用コードの作成例をご紹介します。

※ 事前にAWSのEC2インスタンス(Ubuntu 20.04を選択)にIRISをインストールした環境を用意した状態からの例でご紹介します。

0
0 364
お知らせ Mihoko Iijima · 4月 4, 2023

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

技術文書ライティングコンテストの受賞者が発表されたばかりですが、次のコンテスト:InterSystems IRIS Cloud SQL and IntegratedML コンテスト 2023 のテクノロジーボーナス詳細が決定しましたのでお知らせします📣

  • IntegratedML の利用
  • オンラインデモ
  • コミュニティに記事を投稿する
  • コミュニティに2つ目の記事を投稿する
  • YouTubeにビデオを公開する
  • はじめてチャレンジされた方
  • InterSystems Idea 内 Community Opportunityの実装

獲得ポイントについて詳細は、以下ご参照ください。

0
0 108
お知らせ Mihoko Iijima · 4月 3, 2023

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

第4回 InterSystems 技術文書ライティングコンテスト:InterSystems IRIS チュートリアル が終了しました。

期間内に投稿された🌟 24の素晴らしい記事はこちらから 🌟ご覧いただけます。

この記事では、コンテスト受賞者を発表します📣

 

3
0 113
記事 Mihoko Iijima · 3月 28, 2023 3m read

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

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

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

0
0 304
お知らせ Mihoko Iijima · 3月 27, 2023

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

技術文書ライティングコンテスト:InterSystems IRISチュートリアル へ応募いただいた記事のボーナスポイントが決定しました!

※ 14番の記事は日本のメンバーからのご応募です!💪

0
0 147