#InterSystems IRIS for Health

0 フォロワー · 930 投稿

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

記事 Tomoko Furuzono · 4月 3, 2025 1m read

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

HTTPプロキシサーバまたは負荷分散装置(ロードバランサ)を経由してウェブサーバに接続するクライアントの送信元IPアドレスを特定する際は、HTTPヘッダ:X-Forwarded-For (XFF) を取得しますが、IRISでは以下で取得できます。

set ip = %request.GetCgiEnv("HTTP_X_FORWARDED_FOR")


もし、取得できない場合は、Webゲートウェイ 管理画面で、アプリケーションアクセス毎に指定できる「追加のCGI環境変数(Extra CGI Environment)」に HTTP_X_FORWARDED_FOR を設定し、再度ご確認ください。

管理ポータル:[システム管理] > [構成] > [ウェブゲートウェイ管理]
 >>> Webゲートウェイ管理画面:[アプリケーションアクセス] > 「/csp」を選択
 

(英語)

0
0 105
記事 Tomoko Furuzono · 4月 3, 2025 3m read

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

InterSystems製品は、二要素認証をサポートしています。
下記ドキュメントページに詳細について記載がありますので、ご参照ください。
2要素認証


以下、例として、スマートフォン用認証アプリを用いて、IRIS上のCSPアプリケーションの2要素認証を行うための設定方法を解説します。

1.IRIS側の設定​
1-1.インスタンスに対する 2 要素認証の有効化および構成を行います。
管理ポータルで、[システム管理] > [セキュリティ] > [システム・セキュリティ] > [認証/Web セッション・オプション]と進み、[2 要素のタイムベース・ワンタイム・パスワード認証を許可] チェック・ボックスにチェックを付けます。
チェックを付けると、[2 要素のタイムベース・ワンタイム・パスワードの発行者] フィールドが表示されますので、ここに発行者を示す文字列(任意)を入力します。 1-2.次に、このアプリケーションに接続するユーザの設定を行います。
[システム管理] > [セキュリティ] > [ユーザ]で、該当のユーザの編集を行います。
[二要素認証]の[タイムベースのワンタイム・パスコード有効]にチェックを付けて保存します。
ここで、ワンタイム・パスワードキー(OTPキー)及びQRコードが表示されます。

0
0 61
InterSystems公式 Seisuke Nakahashi · 4月 3, 2025

IRIS 2024.3 で発生する2つの製品障害が確認されました。お使いの環境が該当する場合は、それぞれの解決方法にしたがってご対応いただきますよう、よろしくお願いします。

0
0 73
記事 Hiroshi Sato · 4月 2, 2025 2m read

その1で設定したODBCのシステムDSNを使って、LibreOfficeからアクセスしてみたいと思います。

ここでLibreOfficeをデスクトップから起動すると、詳細は不明ですが、日本語の表示がうまくできません。

(ロケール情報が正しく取得できていない様です)

なので、少し面倒なのですがターミナルから起動する必要があります。

起動する前にロケールが正しく設定されているか確認する必要があります。
一般的には、LC_ALLは設定されていないので、この環境変数に値を設定してエクスポートします。

 % locale                                              
LANG="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_CTYPE="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_ALL=""
% export LC_ALL="ja_JP.UTF-8"
% locale                     
LANG="ja_JP.UTF-8"
LC_COLLATE="ja_JP.
0
0 68
記事 Hiroshi Sato · 4月 2, 2025 3m read

Mac版のIRISにSQLを使用して他ツールからアクセスするケースはそもそも少ないと思いますが、DBeaverにJDBCを使用してアクセスできることはこのコミュニティの住人であれば、知っている人は結構いるかと思います。

しかし今回ちょっと理由があってMac上のIRISにODBCを使ってアクセスする方法についてトライしてみました。

ここではその備忘録を書き留めておこうと思います。

実際の所、Mac上のクライアントツールでODBCでアクセスできるツールもそんなにないのですが、

候補としてMS-Excel(MS-Query経由)またはLibreOfficeがありました。

まず結論としてExcelは色々とトライしましたが、原因不明ですがうまくつながりませんでした。

(どうもExcel(MS-Query)が拒絶している感じです)

LibreOfficeは何とか接続でき、データの取得はできる様になりました。

まず、前準備としてODBC Driver Managerというものをセットアップする必要があります。

細かくいうとこれにもiODBCとUnixODBCの2系統があるのですが、ExcelおよびLibreOfficeはiODBCにしか対応していない感じです。

0
0 74
記事 Hiroshi Sato · 4月 1, 2025 1m read

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

Content-Typeにcharset 情報が含まれていない場合、IRIS/Cachéは文字コードを判断できず文字コード変換が行われません。

 

そこで、以下のように、「自動的な文字変換を行わず、UTF-8に変換する処理を記述」することで、その指定がある無しに関わらず、対応することができます。
 

 // requestオブジェクトは以下のように生成 
 // 詳細処理は省略
 // set request=##class(%Net.HttpRequest).%New()
 // リクエスト時に、文字変換を行わないように指定
 set request.ReadRawMode=1
 do request.Send("POST",URL)

 // 受取ったデータを、UTF-8に変換してから、JSON変換
 set response = request.HttpResponse.Data
 set data = response.Read()
 set data2 = $zcvt(data,"I","UTF8")
 set response = {}.%FromJSON(data2)
 write response.
0
0 126
記事 Tomoko Furuzono · 3月 31, 2025 2m read

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

小数点桁数を指定しない単純な整数への切り上げ・切り捨ては、それぞれ、以下の関数で実行できます。

(SQL関数)

切り上げ:CEILING
切り捨て:FLOOR

(ObjectScript関数)

切り上げ: $system.SQL.Functions.CEILING()
切り捨て: $system.SQL.Functions.FLOOR()

USER>write $system.SQL.Functions.CEILING(168.5)
169
USER>write $system.SQL.Functions.FLOOR(168.5)
168

※バージョン2021.1以前は以下のメソッドを使用します。

 切り上げ: $system.SQL.CEILING()
 切り捨て: $system.SQL.FLOOR()


小数桁数を指定して切り上げ・切り捨てを行いたい場合は、2つの関数を組み合わせ、以下のようなメソッドを作成して対応します。

Class Sample.
0
0 117
記事 Tomoko Furuzono · 3月 31, 2025 1m read

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

ウィンドウ関数は、結果セットを部分的に切り出した領域に集約関数を適用できるもので、WHERE GROUP BY および HAVING 節が適用された後、SELECT クエリで選択された行に対して作用します。
IRIS/IRIS for Health 2021.1からサポートしています。
サポートされるウィンドウ関数は以下の通りです。

  • FIRST_VALUE(field)
  • PERCENT_RANK()
  • RANK()
  • ROW_NUMBER()
  • SUM(field)

詳細については、下記ドキュメントページをご確認ください。
ウィンドウ関数の概要
関連記事:IRIS SQLでは OFFSET/LIMIT句のような機能をサポートしてますか?
                  IRIS SQLクエリで取得した結果セットのランキング(順位)を算出する方法

0
0 68
記事 Mihoko Iijima · 3月 28, 2025 4m read

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

先日、EM リリース新バージョン 2025.1 がリリースされました。

コンテナ版以外ですが、新規インストール時に指定する初期セキュリティオプションのデフォルトが「ロックダウン(Locked Down)」に変更となりましたので、今までとの違いについて以下ご説明します。

 

以前のバージョンのデフォルトは、IRIS:「最小(Minimal)」、IRIS for Health:「通常(Normal)」です。

ロックダウンオプションは、初期セキュリティの中で一番厳しいセキュリティ設定を行うオプションで、例えば、オブジェクト/SQL のアクセスが行えない、VSCode から IRIS にアクセスできない状況からスタートします。

そのため、使用したいアクセスに対してアクセス許可追加していく必要のあるセキュリティオプションです。

0
0 64
InterSystems公式 Masahito Miura · 3月 27, 2025

インターシステムズは、InterSystems IRIS®data platformInterSystems IRIS® for HealthTM、および HealthShare® Health Connect の 2025.1 リリースを一般提供 (GA) したことを発表しました。2025.1 は、拡張メンテナンス(EM)リリースです。
リリースハイライト
今回のリリースには、以下のような数々の興味深いアップデートが含まれます:

  1. 高度なベクトル検索機能
    • 新しいディスクベースの近似最近傍探索 (ANN) インデックスにより、ベクトル検索クエリが大幅に高速化され、数百万のベクトルに対して秒以下の応答が得られます。詳しくは、次の演習 - Vectorizing and Searching Text with InterSystems SQL をご覧ください。
  2. ビジネス・インテリジェンスの強化
    • IRIS BI キューブの構築と同期における自動依存関係分析により、複雑なキューブの依存関係における一貫性と整合性が保証されます。
  3. SQL とデータ管理の向上
    • 標準 SQL ページネーション構文 (LIMIT.、OFFSET.、OFFSET.
0
0 171
記事 Tomoko Furuzono · 3月 27, 2025 2m read

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

管理ポータルの [システムオペレーション] > [ジャーナル]のページで実行できる、 整合性チェックの実行や、サマリーの表示は、%SYS.Journal.File クラスのメソッドやクエリでも実行することができます。

クラスリファレンス:%SYS.Journal.File

以下、実行例です。
※全て、%SYSネームスペースで実行します。

(1) 整合性チェック

 set status = ##class(%SYS.Journal.File).CheckIntegrity(<ジャーナルファイルパス>,1)
// 整合性チェックで問題なければ status=1


(2)サマリー

 set status = ##class(%SYS.Journal.File).Summary(<ジャーナルファイルパス>,.
0
0 82
記事 Tomoko Furuzono · 3月 27, 2025 1m read

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

システムログ(messages.log/cconsole.log)に出力される、

[Utility.Event] %SYS.Task.FeatureTracker failed to transfer data

というログは、機能トラッカというタスクが出力しているメッセージです。
このタスクは、弊社がユーザ使用状況の統計を取得する為のデータ送信タスクになります。
エラーは弊社と通信が行われてない為に発生しています。

機能トラッカの詳細については下記ドキュメントをご確認ください。
機能トラッカによる使用量統計の収集

このタスク自体は、アプリケーションやシステムの動作自体に関連はありませんので、メッセージが出ていても影響はありませんが、タスクを無効にすることもできます。
機能トラッカのタスクを無効にする手順は以下の通りです。

1. 管理ポータルで、[システム操作]→[タスクマネージャ]→[タスクスケジュール] を選択
2. 機能トラッカの行を見つけて、[機能トラッカ] を選択
3. タスク詳細のページが表示されたら、[一時停止]
4. [タスク実行が一時停止された場合にタスクを再スケジュールしますか?] という質問に適切に回答
 → いいえ
5. [このアクションをすぐに実行する] を選択、タスクを停止

0
0 40
記事 Tomoko Furuzono · 3月 25, 2025 1m read

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

SQLでクエリ実行時、ORDER BYで並べ替えをする場合、各RDBMSによって、照合順が異なることがあります。

たとえば、NULLと空文字の混じった文字列のカラムを並べ替える場合、

IRIS SQLでは、既定の照合順は下記のようになりますが、 

NULL, 空文字, 0, 00, 01, 1, 10, 100, 11, A, a, B, b

Oracleでは、下記のような照合順になります。

空文字, 0, 00, 01, 1, 10, 100, 11, A, B, a, b, NULL


複数のDB由来のデータを取り扱う際には、このような照合順の違いを合わせたい場合があります。

IRISの場合、既定の文字列照合はSQLUPPERですが、照合タイプを変更することによって、照合順を変えることが出来ます。
ドキュメント:照合

上記のIRIS SQLとOracleの違いを合わせるためには、照合タイプを「SQLSTRING」に設定し、インデックスを作成します。

0
0 90
記事 Megumi Kakechi · 3月 25, 2025 6m read

以前公開している こちら の記事では、「OAuth 2.0 を利用して IRIS から Gmail を送信する」方法をご紹介しています。

本記事では、 %Net.POP3 クラスを使用してメールを受信するサンプルをご紹介します。


【事前準備(Gmailの場合)】

外部アプリからGmailを受信するには OAuth 2.0が必要となるため、こちらの手順 に従ってAccessToken を取得しておきます。
また、「2.【準備】IRIS で、SSLクライアントの設定をする : 手順(4)」の手順に従って、GMAILSSL(任意の名前)の構成を作成しておきます。


【サンプルの内容】

以下のサンプルでは、

1.Gmailの受信サーバ(servername = pop.gmail.com)に、ユーザ名(user = xxx@gmail.com)、パスワード(pass = パスワード)、AccessTokenを使用して接続し、

Set status=server.Connect(servername,user,pass,accesstoken)

2.メールボックスの情報を取得し、

Do ..ShowMailbox(server)

3.Fetch() メソッドを使用して、添付ファイルを含むメールの内容の取得し、
  (添付は server.AttachDir で指定したディレクトリに保存)

Do 
0
0 68
記事 Tomoko Furuzono · 3月 23, 2025 1m read

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

クライアントーサーバ接続を担当するスーパーサーバで、SSLバージョン3とTLSバージョン1での通信が可能です。
このオプションを利用することで、通信上のデータを暗号化できます。

その他、Kerberosを使うことで通信上の暗号化も可能です。

0
0 57
記事 Tomoko Furuzono · 3月 21, 2025 1m read

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


大量の更新を行うプログラムで、処理途中に何らかの問題が発生してもデータを初期化して再度実行することができる状況では、プロセスレベルでジャーナリングを無効/有効に変更することが可能です。

※但し、トランザクションのロールバックにはジャーナルが必要ですので、ロールバックを正しく動作させたい場合にはこの方法は使用しないでください。

以下のコマンドを使用します。更新処理の開始と終了(またエラー処理での終了)の際に以下のコマンドを追加します。

 //ジャーナリング無効化(停止)
 do DISABLE^%SYS.NOJRN
 
 //ジャーナリング有効化
 do ENABLE^%SYS.NOJRN


【注意】
こちらの機能は、ミラーリング対象のデータベースには使用できません。
DISABLE^%NOJRN を使用してジャーナリングを無効にしても、ミラーリングされたデータベースに影響はありません。


詳細は、以下のドキュメントをご参照ください。
ドキュメント:DISABLE^%NOJRN を使用したプロセス・レベルでのジャーナリングの管理

0
0 96
記事 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 117
記事 Tomoko Furuzono · 3月 19, 2025 1m read

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


質問:

オンラインバックアップの保存先にネットワークドライブ(NAS等)を指定することはできますか?

回答:

バックアップの保存先に指定することはできますが、推奨はしておりません。

推奨しない理由は、
オンラインバックアップの最終フェーズにDBアクセスを禁止して処理が実行されますが、 このとき、万一ネットワークエラー等でバックアップ処理がハングアップすることがあれば、システム全体に影響が及ぶリスクがあるからです。

0
0 41
記事 Hiroshi Sato · 3月 17, 2025 2m read

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

ネームスペースを管理ポータルで作成する際に、デフォルトでは、『相互運用プロダクション用にネームスペースを有効化』にチェックがついているため、そのチェックを意図的に外さない限り、新規作成したネームスペースは、インターオペラビリティ機能が有効になっています。

この機能が有効であることによる実用上の弊害(パフォーマンス等に影響する)は、特にありませんが、管理ポータル上のクラス表示にこの機能に関連するクラスが先に表示されて、ユーザー作成クラスの表示に余計な操作が必要になる等の操作上の余分な手間が発生する場合があります。

管理ポータル上でこの設定を無効にするメニューは用意されていませんが、以下の手順で無効化することができます。

- 相互運用性ネームスペースの無効化  

USER>set $namespace = “%SYS%SYS>write ##class(%EnsembleMgr).DisableNamespace("FAQ",1)

1

 

- 管理ポータルより該当のネームスペースの削除

- 管理ポータルより該当のネームスペースの再作成

再作成の際に「相互運用プロダクション用にネームスペースを有効化」のチェックを外す 

- 相互運用性ネームスペースの確認

%SYS>w ##class(%EnsembleMgr).
0
0 37
InterSystems公式 Seisuke Nakahashi · 3月 11, 2025

InterSystems IRIS での OpenEHR を利用について

InterSystems IRIS で OpenEHR を利用することについてご質問をいただくことがあります。それに対する回答は一般的に、組織がアプリ構築において OpenEHR をなぜどのように実装したいのかに大きく左右されます。簡単なガイドはこちらになります。

  • InterSystems は相互運用性に注力しています:  InterSystems はHL7、IHE、DICOM、ISO などの標準規格による相互運用性を優先しています。これまでの私たちの経験から、ひとつの標準規格だけで複雑なヘルスケアデータのあらゆるニーズを満たせるとは考えていません。そのため OpenEHR の実装に際しては、これら標準規格と組み合わせて評価いただき、どのシナリオが最もうまく各標準規格によって対応できるか分析いただくことをお勧めします。
  • InterSystems 製品と OpenEHR: OpenEHR モデルを使用してアプリケーションやデータを構築する組織にとって、InterSystems IRIS は理想的なプラットフォームです。InterSystems IRIS はマルチモデル機能、スケーラビリティ、高性能、信頼性といった機能を提供します。
0
0 52
記事 Hiroshi Sato · 3月 11, 2025 1m read

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

8192文字を超える文字列をODBC経由で取得した場合に特定のODBCクライアントとの組み合わせにおいて文字列が途切れて取得されるケースが報告されています。

このような状況が発生した場合、該当するODBCデータソースの設定画面でUnicode SQLタイプをチェックすることで問題が解消されることがわかっています。

 

0
0 145
記事 Hiroshi Sato · 3月 10, 2025 1m read

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

大量のレコードが含まれるテーブルに対して、select count(*) from テーブル名の応答が遅い、または応答がタイムアウトする場合には、ビットマップ・エクステント・インデックスを追加することで問題を解消することができます。 

ビットマップ・エクステント・インデックスを追加する方法は、以下をご参照ください。 

ビットマップ・エクステント・インデックスの追加方法

クラス定義に以下のような定義を行うことで、ビットマップ・エクステント・インデックスを追加することもできます。

 

Index IndexName [ Extent, Type = bitmap ];
0
0 194
記事 Hiroshi Sato · 3月 4, 2025 2m read

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

ObjectScriptの%Netパッケージのライブラリクラスを利用して、ファイルを他のサーバーにアップロードすることができます。

以下のCurl コマンドと同じことを ObjectScript で実現する方法を紹介します。

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

クライアントのObjectScriptコードを以下の様に作成します。

Class User.MyRestClient Extends %Base
{

ClassMethod readMimeData() As %Status
{
    // form-data (for CSV)
    set msg= ##class(%Net.MIMEPart).%New()

    set msg.ContentType = "multipart/form-data"
    set inputstream=##class(%Stream.FileBinary).%New()
    set sc=inputstream.LinkToFile("c:¥temp¥a.
0
0 132
記事 Hiroshi Sato · 3月 4, 2025 4m read

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

計算プロパティを定義する際に利用可能なキーワードが複数あります。

詳細は、以下をご参照ください。

計算プロパティの定義

実際のこれらのキーワードの関連性は、少々複雑ですので具体的なコードを作成して動作を確認してみます。 

以下のようなクラス定義を作成します。(プロパティとインデックス定義のみ表示します)

完全なクラス定義は以下より、ダウンロードできます。

サンプルクラス定義

Class Sample.
0
0 81
記事 Hiroshi Sato · 3月 3, 2025 1m read

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

IRISには、データ項目の値を実体として持たずに、何らかの演算処理の結果として提供する機能があります。

これを計算プロパティまたは計算フィールドといいます。

計算プロパティを定義するためには、最低限以下の手順を実行します。

プロパティ定義にSqlComputedキーワードを含めます。

プロパティ定義にSqlComputedCodeを含めて、値を算出するための処理ロジックとして含めます。

または、SqlComputedCodeを含めずに、代わりに<プロパティ名>Computationという名前のクラスメソッドを記述します。

以下は、Age(年齢)プロパティを計算プロパティとして定義した例になります。

Class Sample.Person Extends %Persistent {         

  Property FirstName As %String;       
  Property LastName As %String;       
  Property DOB As %Date;     
  Property Age As %Integer [ SqlComputed ]; // ...
ClassMethod AgeComputation(cols As %Librar
0
0 65
記事 Mihoko Iijima · 10月 10, 2023 15m read

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

この記事では、複雑なJSON形式の文書を「JSONテンプレートエンジン」を利用して生成させる方法をご紹介します。

「JSONテンプレートエンジン」については、6月のウェビナーで使用例をご紹介しましたが、JSON生成対象として医療情報交換標準規格であるFHIRリソースのJSON(例:Patientリソース)を例に解説しています。

このエンジンは、JSON形式の文書であればどのような種類のデータでもご利用いただけますので、一般的なJSON形式の文書を利用して使い方をご紹介します。

例に使用するJSONはこちら👉 https://api.openbd.jp/v1/get?isbn=978-4-7808-0204-7&pretty

このサンプルから以下の部分を抜き出して、ObjectScriptでJSON形式の文書を組み立てていく方法をご紹介します。

7
0 1524
記事 Megumi Kakechi · 2月 26, 2025 2m read

これは InterSystems FAQ サイトの記事です。
埋め込みSQLの出力ホスト変数は、SQLCODE=0(埋め込みSQL正常終了)の場合のみ、正しい値が設定されていることが保証されます。

InterSystems製品のバージョンによっては、SQLCODEが0以外の場合(該当データがない100やエラー等)で値が設定される場合もありますが、その値は無効です。

特に、IRIS2021.1以降のバージョンでは、SQLCODE=100 の場合、INTO 節で指定された出力ホスト変数は NULL("") にクリアされますので注意が必要です。

Cacheや、IRIS2020.x 以前のバージョンでは、明示的な値のクリアを行っておりませんでしたが、こちらについても値は保証されるものではありません。

埋め込みSQLを使用する場合は、必ずSQLCODEを確認してエラーチェックを行うようにして下さい。
また、エラーチェック以外でも、SQLCODE = 0(データあり) の場合と SQLCODE = 100(データなし) の場合は処理を分けるようにし、SQLCODE = 100 の場合は出力ホスト変数を参照しないようご注意ください。


例)
誤った使用例:

  &sql( select name into :name from sample.
0
0 56
記事 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 100
InterSystems公式 Masahito Miura · 2月 21, 2025

2025 年 2 月 15 日 – 警告:SQLクエリが間違った結果を返す

インターシステムズは、SQL クエリが不正な結果を返す原因となる 2 つの問題を修正しました。さらに、日付/時刻データ型の処理における不整合を修正しました。この日付/時刻データ型の処理の修正により以前の不整合な動作に依存していた既存のアプリケーションでは、異なる予期しない(正しい)結果が返される可能性があります。

DP-436825: ラテラル結合を使用したSQLクエリが間違った結果を返すことがある

最初の問題 (DP-436825) は、プロセスあたりの最大メモリ (.cpf ファイルの「bbsiz」パラメータ) を既定値以外で構成されたインスタンスで、暗黙的または明示的にラテラル結を使用する SQL クエリにのみ影響します。InterSystems IRIS を新規にインストールすると、bbsiz は既定値の -1 (つまり、メモリ制限はありません) に設定されます。一方、古いバージョンからのアップグレードでは、以前の設定が維持されます。この設定でクエリが実行時に並列処理を使用する場合 (システムが並列処理を使用する場合を含む)、クエリが正しくない結果を返すことがあります。この問題は、以下の製品のバージョン 2023.3、2024.1.0、2024.1.1、2024.1.2、2024.2、および 2024.

0
0 76
お知らせ Mihoko Iijima · 2月 17, 2025

皆さん、こんにちは!

これから InterSystems 製品で開発を始める/未使用の機能を確認したい/運用保守を担当する  など、担当される役割や学習目的に合わせた最適なラーニングパス(学習経路)を確認できるページを公開しました!

💡InterSystems ラーニングパス💡

学習経路に沿った学習内容(数分の解説ビデオ、対象となる日本語ドキュメント、コミュニティ記事、セルフラーニングビデオ、体験環境付き演習(英語のみ)、オンラインラーニング(英語のみ)、講師付きトレーニングコース)を確認しながらご自身のペースで学習を進めていただくことができます。

以下、ページの使い方を簡単にご紹介します。下図のように、役割毎に各種パスが用意されています。

0
1 121