#HealthShare

0 フォロワー · 154 投稿

InterSystems HealthShareは病院、統合配信ネットワーク(IDN)、地域および国の医療情報交換組織(HIE)向けの医療情報プラットフォームです。HealthShareには、医療情報交換、データ集約、ワークフロー、テキスト分析、分析テクノロジーなどの機能が搭載されています。

詳細はこちらをご覧ください

新着
記事 Toshihiko Minamoto · 2月 9 3m read

IRIS DocDB Explorerの紹介:InterSystems IRISでJSONドキュメントを管理できるスタイリッシュなUI

IRISは、DocDBを使用してJSONドキュメントを保存および取得できる専用機能を提供しており、事前定義されたスキーマを必要としません。

開発者は、複数のツールを切り替えたり、冗長なコードを書いたりせずに、ドキュメントを素早く簡単に閲覧、作成、編集できる方法を求めています。 そこで私は、DocDBと簡単にやり取りできるクリーンでレスポンシブなインターフェースを提供するCSPベースのオープンソースアプリケーション、iris-docdb-uiを開発しました。 ユーザーは、ネームスペースやドキュメントデータベースの作成、保存されたドキュメントの閲覧、新規ドキュメントの追加、既存ドキュメントの編集を、すべて1つの便利なプラットフォーム上で簡単に行えます。

このアプリケーションは、InterSystems Open Exchangeでも公開されているため、簡単にインストールして、すぐに使い始めることができます。

DocDBを使いやすくする方法

0
0 22
お知らせ Mihoko Iijima · 2月 5

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

新年度を前に、InterSystems 製品を利用した開発・運用に携わる方向けのトレーニングコースを開催します。

2月26日開始の開発者向けコース、3月2日開始の管理者向けコースをご用意しており、日常業務の振り返りや知識の整理を行う機会としてご活用いただけます。

4月からの業務をよりスムーズに進めるための準備として、ぜひご検討ください。

※コースは全てオンラインでの開催です。

開発者向けトレーニング

InterSystems SQLの使い方(2日間)

  • 開催日時:2月26日~27日 10:00~17:00
  • 対象:InterSystems 製品で SQL アクセスを利用される方

こんな方におすすめ

  • InterSystems 製品を利用した開発を担当することになり、SQL 周りの基本を整理して理解したい方
  • 日常的な開発に入る前に、実務でよく使う機能や設計の考え方を確認しておきたい方

コース概要

InterSystems 製品における SQL アクセスを利用した開発を想定し、実務に役立つ知識を体系的に学べるトレーニングコースです。

ツールの基本的な使い方から、ストアドプロシージャやサーバ側ロジックの実装、インデックス設計、パフォーマンスチューニングまで、日常業務を想定した実践的な内容を扱います。

※ サーバ側ロジックの記述には ObjectScript を使用します。

0
0 15
記事 Mihoko Iijima · 1月 28 7m read

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

この記事では、InterSystems IRIS サーバサイドで実行できるPython(Embedded Python)のデバッグ方法をご紹介します。

前提:VSCode の Python デバッガ用モジュールの debugpy を利用するため、Python スクリプトファイルに記載した Embedded Python のコードが対象です。クラス定義に[Language = python]を指定して記載しているコードは対象外となります。ご注意ください!

0
0 27
記事 Toshihiko Minamoto · 1月 12 7m read

血液検査の結果を見て、何が書いてあるのか全然わからないあの感じ、分かるかと思います。 その問題を解決してくれるのがFHIRInsightです。 そもそも医療データは怖いものや分かりにくいものではなく、誰もが活用できるものであるべきだ、という考えから始まりました。 血液検査は健康チェックではとても一般的ですが、正直なところ、理解するのは多くの人にとって難しく、臨床検査を専門としない医療スタッフにとっても難しいことがあります。 FHIRInsightは、血液検査のプロセスをもっと分かりやすくし、情報をより活用しやすくすることを目指しています。

🤖 FHIRInsightを構築した理由

すべては、シンプルながら強力なこの質問から始まりました。

「なぜ血液検査の結果を読むのは、時には医師にとってもこんなに難しいのか?」

血液検査の結果を見たことがあるなら、大量の数字、意味の分かりにくい略語、そして自分の年齢や性別、状態に合っているかどうかもわからない「基準範囲」を見たことがあると思います。 確かに診断ツールではありますが、状況が分からなければ、結局推測することになります。 経験豊富な医療従事者でさえ、すべてを理解するためにはガイドラインや論文、専門家の意見を照らし合わせる必要があることがあります。

そこで登場するのがFHIRInsightです。

0
0 29
記事 Mihoko Iijima · 1月 12 1m read

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

バージョン2025.1以降では、ジャーナルファイルを作成したインスタンスと同じバージョン、またはそれ以降のバージョンへのジャーナルファイルのリストアは保証されていますが、2025.1以降で作成されたジャーナルファイルを2024.1以前のインスタンスにリストアできません。

ドキュメント:ジャーナル・リストアの互換性 (アップグレード関連)

2025.1以降のインスタンスのデータを、2024.1以前にリストアしたい場合、時間がかかる方法となりますが、2025.1以降のバージョンから対象グローバル変数をエクスポートし、2024.1以前のバージョンにインポートする方法を利用できます。

InterSystems 製品のミラーリングについては、全メンバー(プライマリ/バックアップ/非同期)で同一バージョンを使用する必要があります。

ミラーリングは、ジャーナルファイルのリストアを内部的に利用しているため、バージョン2025.1へアップグレードした場合、全メンバーのバージョンが2025.1以降である必要があります。ご注意ください。

ご参考「InterSystems IRIS インスタンスの互換性

0
0 26
記事 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とは?

0
0 41
記事 Mihoko Iijima · 12月 25, 2025 2m read

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

InterSystems 製品の内部日付時刻($HOROLOG)を利用して時刻を取得している場合、オペレーティング・システムが提供するアルゴリズムに基づいて季節的な時刻調整を行います。

そのため、オペレーティングシステムにてサマータイムの調整が行われる場合は、InterSystems 製品は、オペレーティングシステムで対応したサマータイム時刻で動作します。

注意点としては、$HOROLOG 値が大きく変更されるケースもあるため、時刻比較やこの値をキーにしたアプリケーションの処理などがもしある場合は、その変更を考慮していただく必要があります。

ご参考:「ローカル時刻調整のしきい値

なお、$NOW() 関数を使用して内部日付時刻を取得している場合は、オペレーティングシステムのサマータイムの調整に対応していませんのでご注意ください。

$NOW() 関数は、$ZTIMEZONEの値を使用してローカル時刻を決定しています。
$ZTIMEZONEは1年を通して連続的で、サマータイム(DST)などのローカル時刻の調整に対応していないためです。

また、小数点以下を含むタイムスタンプ値をサマータイム対応済のローカル時刻で取得したい場合、$HOROLOG では対応できませんので、以下の2つ方法のどちらかを利用して取得します。

0
0 37
記事 Mihoko Iijima · 12月 22, 2025 8m read

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

InterSystems 製品で利用できる ID およびアクセスの管理には、Kerberos、OS ベース、InterSystems ログイン(=インスタンス認証/パスワード認証)、2 要素認証、JWT 認証、LDAP 認証(AD も含む)、OAuth2 などが用意されていますが、これらのどの方法にも当てはめることのできない独自の管理方法をお持ちの場合に利用できる方法があり「代行認証」(または委譲認証)と呼びます。

ドキュメント:代行認証

このトピックでは、代行認証を行うまでの手続きについて解説します。

サンプルコードはこちら👉https://github.com/Intersystems-jp/FAQ-716

シナリオとして、アプリケーション用ユーザ名、パスワードを管理する専用テーブルがあるとしています。特定の REST API のログイン、またはターミナルアクセス利用時にこの情報を使用して代行認証を行う方法を解説します。

大まかな手順は以下の通りです。

[1] 専用ルーチンを作成する

[2] システム・セキュリティの認証/ウェブセッションオプションを変更する

[3] 使用するサービスに対して代行認証を有効化する

[4] テストする

[1] 専用ルーチンを作成する

以下の流れで作成します。

1、サンプルコードのダウンロード

0
0 42
InterSystems公式 Ayumu Tanaka · 11月 27, 2025
2025年第3四半期の最新情報をお伝えします。

2025.3 では、すべてのオペレーティングシステムで OpenSSL 3 が使用されます。SUSE 15 sp6 は、SUSEを利用する IRISユーザのミニマムサポート OS となります。
ミニマムサポート CPU の基準が 2025.3 で引き上げられます。
Windows Server 2016 は 2025.3 でサポート対象外となります。

初めてご覧になる方、はじめまして!この記事では、最近おこなわれた変更点や今後予定されている変更点に関する情報を、みなさまに共有させていただきます。ただ、将来の予測は難しい側面があり、ロードマップは約束されたものではないということを十分ご理解くださいませ。   

 
InterSystems IRIS 本番環境用オペレーティングシステムと CPU アーキテクチャ
ミニマムサポート CPU アーキテクチャ
2024年、インターシステムズは、IRIS をより速くするために新しい CPU 命令を利用できるよう、すべての Intel および AMD ベースのサーバに関する ミニマムサポート CPU モデルを発表しました。IRIS 2025.3 ではこのリストが更新され、AVX、AVX2、BMI、BMI2 命令を利用する x86-64-v3 マイクロアーキテクチャ 

0
0 55
記事 Mihoko Iijima · 8月 7, 2025 4m read

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

Windows 版 IRIS/IRIS for Health 2025.1 以降で Embedded Python をご利用いただく場合、Windows に Python のインストールが必要になりました。

以前のバージョンから Embedded Python をご利用いただいている場合は、新しいバージョンにアップグレードした後、Python のインストールと IRIS 側に必要な設定がありますのでご注意ください。

※ 2024.1 以前のバージョンでは、IRIS インストールと同時にインストールされる Python ご利用いただく必要があったため、Windows への Python インストールは不要でした。

補足:フレキシブル Python ランタイム機能の導入により、OS にインストールされた Python のバージョンを IRIS 側で指定できるようになりました。

詳細はドキュメントもご参照ください:フレキシブル Python ランタイム機能の概要

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

1) サポートする Python のバージョンを確認

サポートしている Python のバージョンを確認します。(Windows は、Python 3.9以降)

0
3 138
記事 Mihoko Iijima · 7月 14, 2025 6m read

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

InterSystems 製品の Windows 版インストールキットでは、IIS に対して Web ゲートウェイをインストールするインストールキットの提供はありますが、Windows にインストールした Apache に対するインストールキットが提供されていないため、以下の手順で Web ゲートウェイを構成します。

1、InterSystems 製品のインストール

2、Apache for Windows のインストール

3、Windows 版 Web ゲートウェイのインストール(※)

4、https.conf の修正

5、Apache を Windows サービスにインストールし開始する

6、Web ゲートウェイ管理画面で各種設定

(※)Windows 版 Web ゲートウェイのインストールキットは WRC よりダウンロードいただけます。

以下、手順詳細です。

インストール時、インスタンス名を IRISTEST、インストールディレクトリを c:\InterSystems\IRISTEST に設定した流れでの図解で解説しています。

例では、http://Webサーバ/インスタンス名/csp/sys/UtilHome.csp で管理ポータルへアクセスできるようにするための設定例で記載しています。

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

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

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

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

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

 

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

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

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

0
0 102
記事 Mihoko Iijima · 7月 3, 2025 4m read

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

InterSystems 製品では、ファイルオープン時に文字コードを指定すれば指定の文字コードで正しくファイルの中身を処理できます。

文字コードを指定しない場合、InterSystems 製品をインストールした OS に合わせて設定されたファイル I/O 用文字コードを利用してファイルをオープンします(Linux 系は UTF8、Windows は SJIS)。

また、文字列については文字コードが判明していれば $ZCONVERT() 関数を使用して指定文字コードで文字列を処理することができます。

 例)$ZCONVERT(文字列,"I","IRIS内文字コード")

文字コードが不明な場合、残念ながら InterSystems 製品だけでそのコードを判別することができないため、例えば Embedded Python で Python の chardet パッケージを使用して文字コード判別し、IRIS 内文字コードを取得しファイルオープン、文字列の文字コード変換をすることができます。

chardetパッケージについては、外部サイトですが参考となります。ぜひご参照ください。

参考ページ:[解決!Python]テキストファイルのエンコーディングを調べて、その内容を読み込むには(chardetパッケージ)

0
1 169
InterSystems公式 Masahito Miura · 7月 1, 2025

インターシステムズは、以下の製品が Red Hat Enterprise Linux 10 に対応したことをお知らせします。

  • InterSystems IRIS Data Platform 2025.1.0.230.2
  • InterSystems IRIS for Health 2025.1.0.230.2
  • HealthShare Health Connect 2025.1.0.230.2

今回のリリースでは、Red Hat Enterprise Linux 10 オペレーティング・システムのサポートが追加されました。 RHEL 10 には、Linux カーネル 6.12.0、セキュリティの改善、パフォーマンスの最適化、および開発者ツールの改善が含まれています。

ソフトウェアの入手方法

インストール・パッケージは、 WRC Direct の 製品ダウンロードページ ページから入手できます。 また、評価用キットは、 評価サービス ウェブサイトからも入手できます。

0
0 49
記事 Mihoko Iijima · 6月 30, 2025 2m read

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

ObjectScript で日付の比較を行う場合、一旦 $HOROLOG 形式(内部数値)に変換することで算出しやすくなりますが、SQL 関数を利用して算出することもできます。

ObjectScript から SQL 関数を実行するには、%SYSTEM.SQL.Functions クラスを使用します。

※ 2021.1以前のバージョンでは、%SYSTEM.SQL クラスを使用します。

%SYSTEM パッケージは、システム・オブジェクトと呼ばれ ObjectScript では $SYSTEM 特殊変数を利用して以下の構文で実行します。

  $SYSTEM.サブパッケージ名.クラス名.メソッド名() または $SYSTEM.クラス名.メソッド名()

以下、SQL 関数 DATEDIFF を使用して日付の比較を行う例です。

USER>write$system.SQL.Functions.DATEDIFF("dd","2025-01-20","2025-03-20")
59

 

分での比較

USER>write$system.SQL.Functions.DATEDIFF("mi","2025-01-20","2025-03-20")
84960

 

秒での比較

0
0 47
記事 Mihoko Iijima · 6月 25, 2025 3m read

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

管理ポータルのシステム管理やシステムエクスプローラーなど最上位のメニューについては、事前定義ロールをユーザに付与することでアクセスを制限することができます。

最下位のメニュー、例えば [システム管理] > [構成] > [システム構成] > [ネームスペース] などは、事前定義ロールの %Manager を付与されたユーザであれば、全てのユーザが利用できてしまいます。

このページに対して、「%Manager ロールを持っているが、あるユーザは使用でき あるユーザは使用できない」のようにユーザ毎のアクセス制限を追加したい場合は、カスタムリソースを作成し再下位メニューに対して作成したカスタムリソースを付与することで制限を追加することができます。

手順は以下の通りです。

  1. カスタムリソースを任意名で作成する。この時パブリック許可は設定しない。
  2. 管理ポータルの任意の再下位メニューに 1 で作成したカスタムリソースを設定する。
  3. 新規でロールを作成し、1で作成したカスタムリソースに対する USE 許可を設定する。
  4. メニューを利用できるユーザを 3 で作成したロールのメンバーに設定する。

具体的な設定の流れは以下の通りです。

1. カスタムリソースを任意名で作成する。この時パブリック許可は設定しない。

0
0 45
記事 Mihoko Iijima · 6月 24, 2025 11m read

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

InterSystems 製品インストール時に用意されている事前定義ロールを利用して、ログインユーザ毎に管理ポータルメニュー(システム管理/システムエクスプローラー/システムオペレーション など)のアクセスを制限することができます。

管理ポータルメニューに対するアクセス制限を行うためには、管理ポータルへの「認証なし(UnknownUser)」アクセス(※1)を使用しない環境が必要です。

管理ポータル上部の「ログアウト」をクリックしてログイン画面が表示されない場合は、関連記事「管理ポータル/スタジオ/ターミナルにパスワード認証を設定するにはどうしたらいいですか?」をご覧いただき必要な設定を行ってください。

以下、インストールデフォルトで管理ポータルへのフルアクセスが許可されている事前定義ユーザ(※2): SuperUser や _SYSTEM アカウントを使用して管理ポータルにログインした状態の設定例でご説明します。

これらユーザのパスワードはインストール時に設定しています(インストール時の「初期セキュリティ」を「最小」でインストールした環境では、パスワードは大文字の SYS が設定されています)。

0
0 78
記事 Mihoko Iijima · 6月 1, 2025 7m read

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

InterSystems 製品では、ユーザが持つロールによって「InterSystems 製品内で何ができるのか」が決まります。

では、ロールには何が含まれているのでしょうか。

ロールには、複数の特権を含めることができます。特権とは、リソース(保護対象)に対する許可の設定を指しています。

本記事では、IRIS の開発者である山田さん(Yamada) を例に、以下の内容をご説明します。

1) ロールから付与される特権(=リソースに対する許可)について具体例を利用した確認方法

2) ロールを利用したセキュリティ設定について

《ご参考》

ビデオでの解説もあります。ラーニングパスの「InterSystems IRIS 管理の基本」の「4. セキュリティの構成と管理」をご参照ください。

ラーニングパスには、管理者ではないけれど管理概要も知っておきたい方向けの「開発者向け InterSystems IRIS の管理概要」もあります。ぜひご参照ください。

1) ロールから付与される特権(=リソースに対する許可)について具体例を利用した確認方法

0
0 84
記事 Mihoko Iijima · 1月 15, 2021 1m read

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

InterSystemsでは、既存のお客様および見込みのお客様と実施した他DBMS製品との比較を行った様々なベンチマーク結果を持っています。

しかし、それらの結果に関して、ほとんどのRDBMSベンダのライセンス条項に当該RDBMSベンダの承諾なしにベンチマーク結果を公表してはならないという条項があるため、現実問題として一般的な公表は、難しい状況です。

一方、TPC等の公共の機関等がベンチマーク条件を策定、公開しているベンチマークに関しては、必要な実施コストに対して得られるものが少ないと考えており、過去にも実施しておりませんし、将来も実施する予定はありません。

InterSystemsは、TPCの様な現実のシナリオからかけ離れたベンチマークを実施するのではなく、実際のアプリケーションを模したベンチマークシナリオを構築し、それに基づき、各ハードウェアベンダ、パートナ企業、エンドユーザとの協力の基、ベンチマークを実施しております。

様々なベンチマークの結果をまとめた記事があります。ぜひご参照ください。

IRISで公開しているベンチマーク資料

2
0 347
記事 Mihoko Iijima · 9月 29, 2020 2m read

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


LAST_IDENTITY() SQL関数を使用すると取得できます。
※ この関数は、埋め込み SQL または ODBC 利用時に使用できます。ダイナミック SQL、SQL シェル、または管理ポータルの SQL インタフェースによる値には設定されません。

簡単な埋め込み SQL での例をご紹介します。

1
0 1105
InterSystems公式 Masahito Miura · 2月 21, 2025

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

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

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

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

皆さん、こんにちは!

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

💡InterSystems ラーニングパス💡

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

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

0
1 114
記事 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テンプレートエンジンで作ってみる

0
0 119
InterSystems公式 Ayumu Tanaka · 1月 15, 2025

インターシステムズは、特定の $List シンタックスを使用することで不正なデータベースとジャーナルレコードが作成される問題を修正しました。この問題が発生する可能性は非常に低いものですが、発生した場合の影響は非常に大きなものとなります。

この問題は、以下の製品およびそれらベースとしたその他のインターシステムズ製品に存在します:

  • InterSystems IRIS® : 2023.3, 2024.1.0, 2024.1.1, 2024.1.2, 2024.2, 2024.3
  • InterSystems IRIS® for Health: 2023.3, 2024.1.0, 2024.1.1, 2024.1.2, 2024.2, 2024.3
  • HealthShare® Health Connect: 2023.3.0, 2024.1, 2024.1.1, 2024.1.2, 2024.2, 2024.3
  • HealthShare® Unified Care Record と関連製品: 2024.2

この問題はUnicode版の製品でのみ発生します。

以下のシンタックスでグローバル上のリスト形式データに新しい要素を追加する際に問題が発生します。

SET $LIST(<グローバル>, *+1) = 値

0
0 101
記事 Mihoko Iijima · 12月 24, 2024 3m read

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

イベントログの削除には、Ens.Util.LogクラスのPurge()メソッドを使用します。実行時以下の引数を指定します。

第1引数:削除数(参照渡し)

第2引数:保持日数(デフォルト7)

メッセージの削除には、2種類の方法があります。

1) 2022.1.2以降の導入されたマルチプロセスで削除する方法

Ens.Ens.Util.MessagePurgeクラスのPurge()メソッドを使用します。実行時以下の引数を指定します。

第1引数:削除数(参照渡し)

第2引数:保持日数(デフォルト7)

第3引数:1を指定(Completeではないメッセージの削除を防止するための指定)

第4引数:メッセージボディも一緒に削除する場合は1を指定

第5引数:デフォルトは500(秒)が設定されていますが、大量のメッセージをパージするとクリアされたビットマップの最適化に時間を要して最適化が完了しない場合があるため、大量削除の場合は 10000000000など大きな値を指定します。

2) Ens.MessageHeaderクラスのPurge()メソッドを使用する方法。

実行時以下の引数を指定します。

第1引数:削除数(参照渡し)

第2引数:保持日数(デフォルト7)

第3引数:1を指定(Completeではないメッセージの削除を防止するための指定)

0
0 71
記事 Mihoko Iijima · 12月 18, 2024 2m read

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

試していたWebAPIでは、POST要求時クエリパラメータとボディの両方を送る必要がありましたので、HTTPアウトバウンドアダプタが提供するメソッド:Post()/PostFormDataArray()/PostURL() 辺りをドキュメントで確認していたのですが、残念ながら両方を渡せるように作成された丁度良いメソッドがありませんでした。

ドキュメント:HTTPアウトバウンドアダプタが提供するメソッド

では、どのように送ったかというと、SendFormDataArray()の第3引数を利用して両方の情報を送付してみました。

具体的には、SendFormDataArray()の第2引数にはHTTPメソッド(GET、POST、PUT、DELETEなど)第3引数に%Net.HttpRequestのインスタンスが渡せる仕様になっていましたので、クエリパラメータとボディを%Net.HttpRequestのインスタンスに設定し、第3引数に指定して実行する方法をとりました。

set status=..Adapter.SendFormDataArray(.pHttpResponse,"POST",httprequest)
  if$$$ISERR(status) {
    return status
  }

変数httprequestの中身は以下のように作成しています

0
0 107
記事 Mihoko Iijima · 3月 13, 2023 3m read

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

永続クラス定義では、データを格納するグローバル変数名を初回クラスコンパイル時に決定しています。
グローバル変数名は、コンパイル後に表示されるストレージ定義(Storage)で確認できます。

例)

4
0 430
記事 Mihoko Iijima · 2月 29, 2024 5m read

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

新しいインデックスを定義した後、インデックスの再構築が完了する前にクエリを実行するとデータが存在しているにもかかわらず「検索結果0件」や検索結果数が徐々に増えるような状況が発生します。

インデックスを永続クラス定義(またはテーブル定義)に追加しコンパイルすることで今まで使用していたクエリ実行経路が削除され、再度同じクエリを実行するタイミングで新しいインデックス定義を含めた実行経路が作成されるためです。(この時にインデックス再構築が完了していないとインデックスデータが存在しない、または不完全であるため0件や徐々に検索結果数が増えるような状況を起こします。)

これを起こさなために、新しいインデックスの再構築が終了するまでクエリオプティマイザにインデックスを使用させないように指定する方法が用意されています。

※ 2024/8/2: 2024.1以降から利用できる方法を追加しました。

2024.1以降

CREATE INDEXのDEFERオプションを使用します(オプションを付けないCREATE INDEX文では、作成時にインデックスの再構築も同時に行われます)。

1
0 354