記事 Shintaro Kaminaka · 2021年11月3日 15m read SUSHIを使ってFHIRプロファイルを作成しようパート2 開発者の皆さん、こんにちは。 この記事は、FHIRの関連技術として、FHIRプロファイル作成ツールであるSUSHIの使い方を紹介するシリーズの第2弾です。パート2である今回まで半年の期間が経ってしまいました。 前回のパート1では、FHIRとは?FHIRプロファイルとは?FHIR Shorthandとは?そしてSUSHIとはどのようなツールなのか?どのような物を作成できるのか?について、サンプルの成果物のスクリーンショットを交えながら説明しました。 今回の記事では、SUSHIで作成したプロファイルの実際の活用例として、SUSHIを使ってPatientリソースに Extension を追加し、さらにそのExtensionの項目に対する新しい SearchParameter を定義し、IRIS for HealthのFHIR Repositoyで新しいSearchParameterが使えるようになるまで、をご紹介します。 #FHIR #InterSystems IRIS for Health 1 0 0 839
お知らせ Mihoko Iijima · 2021年11月2日 InterSystems セキュリティコンテスト 開催! 開発者の皆さん、こんにちは! 次の InterSystems オンラインプログラミングコンテストが決定しました! お題は・・・・ 🏆 InterSystems Security Contest 🏆 応募期間は 2021年11月15日~11月28日 です! 💰 賞金総額: $9,450 💰 #イベント #コンテスト #セキュリティ #InterSystems IRIS #IRIS contest #Open Exchange #開発者コミュニティ公式 0 0 0 104
InterSystems公式 Yoichi Miyashita · 2021年11月2日 警告:ECPデータベースサーバの再起動またはフェイルオーバー後のロックの欠落 対象バージョン 2020.1.0以降のInterSystems IRISおよびInterSystems IRIS for Healthのすべてのメジャー・リリースおよびメンテナンス・バージョン 対象プラットフォーム 全て 発生する問題 分散型キャッシュ・クラスタ(ECP 構成) でアプリケーションのロック保証に違反し、アプリケーションの整合性に問題が生じる可能性があります。 問題の詳細 この問題は、データサーバの再起動またはフェイルオーバー後に、アプリケーションサーバがECPリカバリを正常に実行した場合にのみ発生します。以下のようなケースです。 #ECP #InterSystems IRIS #InterSystems IRIS for Health #InterSystems公式 0 0 0 62
記事 Toshihiko Minamoto · 2021年11月1日 9m read REST経由でファイル転送しプロパティに格納する - パート2 この連載の第1回目の記事では、「大規模な」チャンクのデータをHTTP POSTメソッドのRaw本体から読み取って、それをクラスのストリームプロパティとしてデータベースに格納する方法について説明しました。 では、そのようなデータとメタデータをJSON形式で格納する方法について見てみましょう。 #REST API #InterSystems IRIS Open Exchange app 0 0 0 390
InterSystems公式 Mihoko Iijima · 2021年11月1日 大事なお知らせ: 2021.1 CommunityEdition のライセンス期限切れ(対処方法のご紹介) InterSystems IRIS と InterSystems IRIS for Health 2021.1 CommunityEdition の組み込みライセンスが 2021年10月30日で期限切れになるよう誤って設定されていることが判明しました。大変申し訳ありません。 CommunityEdition は開発用途であるため、実稼働バージョンへの影響はありませんが、CommunityEdition のキーが期限を迎えると、ご利用中インスタンスの実行が停止する、または開始できない状況になります。 ご利用を継続いただくためには、新しいインスタンスに置き換えていただく必要があります。インスタンスの置き換えが行えない場合には、ライセンスキーのオーバーライドが行える拡張用キーをご提供しております。 ご不便おかけし、大変申し訳ありません。 #InterSystems IRIS #InterSystems IRIS for Health #InterSystems公式 0 1 0 226
記事 Megumi Kakechi · 2021年10月28日 2m read TIMESTAMP型のフォーマットについて これは InterSystems FAQ サイトの記事です。 TIMESTAMP型はInterSystems製品では、%Library.TimeStampデータタイプ(=%TimeStamp)に対応していて、フォーマットは YYYY-MM-DD HH:MM:SS.nnnnnnnnn です。 小数点以下の精度を変更したい場合は、以下の方法で設定します。 1) システムワイドに設定する 管理ポータル:[システム管理] > [構成] > [SQLとオブジェクトの設定] > [一般SQL設定] GETDATE(), CURRENT_TIME, CURRENT_TIMESTAMP のデフォルト時刻精度 に 0~9 の範囲で桁数を指定できます。 #ObjectScript #SQL #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 1.1K
記事 Toshihiko Minamoto · 2021年10月28日 8m read REST経由でファイル転送しプロパティに格納する - パート1 #REST API #InterSystems IRIS Open Exchange app 0 0 0 976
記事 Hiroshi Sato · 2021年10月27日 1m read ターミナルでSQLを実行する方法 これは、InterSystems FAQサイトの記事です。$system.SQL.Shell() を使用します。 以下にサンプルを示しますので参考にしてください。 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 529
お知らせ Mihoko Iijima · 2021年10月26日 ★受賞者発表!★InterSystems Interoperability コンテスト 2021 開発者の皆さん、こんにちは! InterSystems Interoperability コンテスト 2021 の投票結果が発表されました! 今回も、コーディングコンテストにご興味おもちいただきありがとうございました! この記事では、コンテスト受賞者を発表します! 受賞された開発者の皆さん、👏おめでとうございます!🎊 #コンテスト #InterSystems IRIS #Open Exchange 0 0 0 97
記事 Toshihiko Minamoto · 2021年10月26日 10m read InterSystems IRIS DBMSのセキュリティ強化 InterSystems IRISを初めて使用し始める際には、最低限のセキュリティレベルでのみシステムをインストールするのが通例です。 パスワードを入力する回数が少なくて済むため、初めて作業を始めるときに、開発サービスやWebアプリケーションの操作がより簡単になるからです。 また、開発済みのプロジェクトまたはソリューションをデプロイする際には、最小限のセキュリティを適用している方が便利な場合があります。 それでも、プロジェクトを開発環境から非常に敵対的な可能性のあるインターネット環境に移行する時が来れば、本番環境にデプロイされる前に、最大限のセキュリティ設定(つまり、完全なロックダウン状態)でテストしなければなりません。 これがこの記事の論点です。 InterSystems Caché、Ensemble、およびIRISにおけるDBMSセキュリティ問題をさらに包括的に説明した記事については、私の別の記事、「Recommendations on installing the InterSystems Caché DBMS for a production environment」(本番環境向けにInterSystems Caché DBMS をインストールするための推奨事項)をご覧ください。 InterSystems IRISのセキュリティシステムは、さまざまなカテゴリ(ユーザー、サービス、リソース、特権、およびアプリケーション)に異なるセキュリティ設定を適用する概念に基づいています。 ユーザーにはロールを割り当てることができます。 ユーザーとロールには、データベース、サービス、およびアプリケーションといったリソースに対し、さまざまな読み取り、書き込み、および使用の権限を付与することができます。 ユーザーとロールには、データベースのSQLテーブルに対するSQL特権も与えられます。 #システム管理 #セキュリティ #初心者 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health Open Exchange app 0 0 0 203
記事 Hiroshi Sato · 2021年10月26日 1m read %付きWebページを開くとエラーになる場合の対処法。 これは、InterSystems FAQサイトの記事です。InterSystems 製品の管理ツールやWebページのセキュリティ強化のため、%付きのWebページ(例:管理ポータル上のユニットテストポータル、Webサービスクラスのテスト画面)に対するアクセスがより効率的に制御できるよう、新しいルールが追加されました。 これによりデフォルトで参照可能なページ以外については、明示的に参照許可を設定する必要があり、設定しない場合参照エラーとなります。 以下のドキュメントをご参照いただき、必要に応じて参照許可を設定するようにしてください。 %CSP ページへのアプリケーション・アクセスの制御について Webサービスクラスのテスト画面の場合は、以下をご覧ください。 #CSP #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 114
記事 Hiroshi Sato · 2021年10月21日 2m read システム日付を変更して行うテストについての注意点 これは、InterSystems FAQサイトの記事です。システム日付の変更をすると、InterSystems Data Platform(以下IRIS)が正常に開始しなくなる場合があります。 IRISは開始時にジャーナルファイル削除処理を行いますが、システム日付を変更すると不正な日付のジャーナルファイルが作成されます。 ジャーナルファイル削除処理では、ジャーナルファイル内部に記録された前後のファイルの情報も参照し処理を進めます。 システム日付けの変更によりジャーナルファイルの繋がりに矛盾が生じると、削除処理でループ状態となり、IRISの開始処理が完了しなくなることがありますので、ご注意ください。 システム日付を変更することはIRISに限らず、OSやミドルウェア、その上で動作するアプリケーションの依存性など様々な影響の可能性が考えられます。 テスト・検証などの関係で、どうしてもシステム日付を変更しなければならない場合には、IRISのアンインストールや再インストールが自由に行える環境(仮想環境など)でテストされることを推奨致します。 #システム管理 #ヒントとコツ #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 579
記事 Toshihiko Minamoto · 2021年10月20日 4m read PythonとIRISグローバルを使用したブログの作成 インターネットを使うようになってから (1990年代後半)、PythonとIRIS グローバルを使ってブログを書いていますが、常にCMS (コンテンツ管理システム) でブログ、ソーシャルメディア、さらには企業ページに情報を簡単に投稿できるようにしていました。 数年後、自分がマークダウンファイルに収めて使ってきたすべてのコードをgithubに入れました。 ネイティブAPIでデータをIntersystems IRISに入れて永続化するのはとても簡単だったので、このアプリケーションを作成して少しSQLを忘れ、キー・バリュー・データベースモデルを受け入れることにしました! ブログとは? これはWEB LOGの略名で、基本的にはユーザーが書いてページに投稿、公開できるプラットフォームです。 #Multi-model #Python #グローバル #InterSystems IRIS Open Exchange app 1 0 0 168
記事 Hiroshi Sato · 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 などのアダプタもあります。 さらに標準で用意していないカスタムアプリケーション用にはカスタムアダプタを作成することもできます。 #相互運用性 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 245
記事 Tomoko Furuzono · 2021年10月19日 1m read アップグレード後、管理ポータルを開こうとするとERROR #5001となり、開くことができません。 これは、InterSystems FAQサイトの記事です。システムをアップグレードした後、管理ポータルを開こうとすると、下記のエラーが表示される場合があります。 ERROR #5001: Server version of object does not match version sent from the client: %ZEN.Component.vgroup このエラーは、ブラウザのキャシュに古い情報が残っているために発生しています。 ブラウザのキャッシュをクリアすることでエラーを解消することができます。 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 177
記事 Hiroshi Sato · 2021年10月19日 2m read システムを個別に繋ぐ方法とIRISで接続する方法で何が違うのですか? これはInterSystems FAQ サイトの記事です。 2つのシステムをつなぐだけだったら、わざわざInterSystems IRIS Data Platform(以下IRISと表記)のようなものを仲介させるのは無駄に思えるかもしれません。 ですが、システムの接続は複数システム間に跨るのが一般的です。 そしてシステムの数が増えるにつれ、その接続は複雑になっていき、接続のタイミング、接続プロジェクトの進行管理などが重荷になっていきます。 また各接続は時が経つにつれ変化するのが一般的で、そういうことが起こると双方のシステムにその都度修正が必要になります。 相互依存性が高まるわけです。 また時が経つにつれ各システムが本来持っている機能と接続に関わる処理が混在するケースが多く、変更の影響範囲が多岐に渡ってしまい、 ちょっとした修正でも影響範囲の特定が困難となり、修正作業が膨大になるケースがあります。 #相互運用性 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 136
記事 Toshihiko Minamoto · 2021年10月19日 9m read %Statusを使ったデバッグのヒント はじめに ObjectScriptで複雑な問題を解決している場合、おそらく%Status値を使用したコードがたくさんあることでしょう。 オブジェクトの観点(%Save、%OpenIdなど)から永続クラスを操作したことがある場合は、ほぼ確実にその状況に遭遇したことがあるでしょう。 %StatusはInterSystemsのプラットフォームでローカライズ可能なエラーメッセージのラッパーを提供します。 OKステータス($$$OK)は1に等しいだけであるのに対し、不良ステータス($$$ERROR(errorcode,arguments...))は0、スペース、エラーに関する構造化情報を含む$ListBuildリストとして表されます。 $System.Status(クラスリファレンスを参照)は、%Status値を操作するための便利なAPIをいくつか提供しています。クラスリファレンスを役立てられるので、ここでは繰り返しません。 このトピックに関する有用な記事/質問もほかにいくつかあります(最後のリンクをご覧ください)。 この記事では、コーディングのベストプラクティスではなく、いくつかのデバッグのコツや手法に焦点を当てています(ベストプラクティスについては、最後のリンクをご覧ください)。 #エラーハンドリング #ObjectScript #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 1 238
記事 Shintaro Kaminaka · 2021年10月18日 14m read FHIRリポジトリをカスタマイズしよう!パート2(カスタムOperation編) 特報!! この記事の中でご紹介している、FHIRオペレーションのデモを含め、FHIR PathやFHIRプロファイル対応などの2021.1のFHIR関連新機能をご紹介するウェビナーが、2021年10月21日 12:30~13:00 に開催されます!!ご興味ある方はこちらからご登録ください!! #FHIR #InterSystems IRIS for Health 1 0 0 443
お知らせ Mihoko Iijima · 2021年10月18日 ★投票開始!★ InterSystems Interoperability コンテスト 2021 開発者の皆さん、こんにちは! 今週から、InterSystems Interoperability コンテスト 2021の投票が始まりました!InterSystems IRIS を使い開発されたベストソリューションにぜひ、投票をお願いします! 🔥 投票はこちらから! 🔥 投票方法については、以下ご参照ください。 #コンテスト #相互運用性 #InterSystems IRIS for Health #Open Exchange 0 1 0 139
記事 Hiroshi Sato · 2021年10月18日 1m read テーブル名(クラス名)やカラム名(プロパティ名)の命名規約について これはInterSystems FAQ サイトの記事です。命名規約については、それぞれ下記のドキュメントページをご確認ください。 テーブル名(クラス名)について 識別子のルールとガイドライン - クラス カラム名(プロパティ名)について 識別子のルールとガイドライン - クラス・メンバ #コーディングのガイドライン #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 568
お知らせ Makiko Kokubun · 2021年10月17日 InterSystems Virtual Summit 2021: データにおけるイノベーション 開発者の皆さん、こんにちは! インターシステムズでは、今年も年次カンファレンス InterSystems Virtual Summit 2021を開催致します。 ⚡️ 事前登録はこちらから ⚡️ #イベント #InterSystems IRIS 3 0 0 94
記事 Hiroshi Sato · 2021年10月14日 2m read 文字コードを変換するときに利用できる変換テーブル名を取得する これはInterSystems FAQ サイトの記事です。文字コードの変換に利用できる変換テーブル名は、以下のシステム関数で取得できます。 Write $$GetIONames^%SYS.NLS() 現在のロケールにおいて各デバイス(ファイル、ターミナル等)のデフォルトの変換テーブル名を取得するには、%SYS.NLS.Table クラスを使用します。 確認方法は以下の通りです。 (1) システムデフォルト設定を取得するため、%SYS.NLS.Table のインスタンスを生成します。(引数に、"System" を指定します。) set obj=##class(%SYS.NLS.Table).%New("System") (2) GetIOTable() メソッドを使用して、確認したいデバイスの現在の変換テーブル名を取得します。 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 355
記事 Hiroshi Sato · 2021年10月13日 3m read System routine buffer (# KB) shortage is detected.... のメッセージの意味と対処方法 これはInterSystems FAQ サイトの記事です。コンソールログファイル (※1) に、以下のメッセージが表示されることがあります。 05/14/19-09:32:14:056 (6888) 0 System routine buffer (64 KB) shortage is detected, 430 routine buffers configured, adjusted per process cached rtn to 71 (※1)コンソールログファイルは、[管理ポータル] > [システムオペレーション] > [システムログ] > [コンソール・ログ] から参照できます。または、以下ファイルを直接参照することもできます。 <インストールディレクトリ>\mgr\cconsole.log 上記メッセージでは、ルーチンバッファサイズのうちの 64KB バッファの不足が検出されています。 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 166
記事 Toshihiko Minamoto · 2021年10月13日 6m read Dockerのディスクスペースの扱いについて @Evgeny.Shvarovの記事へのコメントとして書こうとしていましたが、 コメントが長すぎたため、別に投稿することにしました。 dockerがどのようにディスクスペースを使用し、クリーンアップするかについて、少し説明を加えたいと思います。 私はmacOSを使用しているため、以下に示すものは主にmacOSを対象としていますが、dockerコマンドはすべてのプラットフォームでも使用できます。 #Docker #クラウド #コンテナ化 #システム管理 #Caché #InterSystems IRIS 2 0 0 5.5K
記事 Toshihiko Minamoto · 2021年10月13日 4m read インターシステムズ開発者コミュニティで学習する方法 パート2: タグ 開発者の皆さん、こんにちは。 ここでは開発者コミュニティでのタグの使用方法ついて説明します。この機能を最大限に活用しましょう! #ヒントとコツ #初心者 #開発者コミュニティ公式 0 0 0 64
記事 Hiroshi Sato · 2021年10月12日 1m read DBリストア手順 これはInterSystems FAQ サイトの記事です。^BACKUP ユーティリティを使用して、DBリストアする方法をご紹介します。 添付のドキュメントでは、オンラインバックアップ と レガシー並行外部バックアップ の2種類のバックアップからのリストア処理の方法を紹介しています。 リストア処理の詳細は、下記ドキュメントページを参照してください。 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 199
記事 Hiroshi Sato · 2021年10月12日 2m read %Net.FtpSession クラスを使用してファイルサイズを取得する方法 これはInterSystems FAQ サイトの記事です。ファイルサイズを取得する専用メソッドはありませんが、%Net.FtpSession クラスの sendCommand() メソッドを通してFTPのSIZEコマンドを呼び出し、サイズを取得できます。 簡単な利用例をご紹介します。 まず、以下の様なクラスを定義します。 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 223
記事 Toshihiko Minamoto · 2021年10月12日 11m read InterSystems IRISでマクロを使用したロギングシステム 前の記事では、マクロの潜在的なユースケースををレビューしました。そこで、マクロの使用方法についてより包括的な例を見てみることにしましょう。 この記事では、ロギングシステムを設計して構築します。 ロギングシステム ロギングシステムは、アプリケーションの作業を監視するための便利なツールで、デバッグや監視にかける時間を大幅に節約してくれます。 これから構築するシステムは2つの部分で構成されます。 ストレージクラス(レコードをログ記録するためのクラス) 新しいレコードをログに自動的に追加する一連のマクロ #オブジェクトデータモデル #コンパイラ #Caché #InterSystems IRIS 0 0 0 221
記事 Mihoko Iijima · 2021年10月12日 6m read いつも使用しているユーザで IRIS や Caché にアクセスできなくなった時の原因の探り方(監査の使い方) 開発者の皆さん、こんにちは。 いつも使用しているユーザでアプリケーションや InterSystems 製品(IRIS/Caché/Ensemble/HealthShare) にアクセスしたとき、セキュリティ設定変更などの影響で急にアクセスできなくなった!という場合に、調査に便利な監査ログの参照方法をご紹介します。 ここでは、%Allロールを持つシステム管理ユーザ( _system や SuperUser )で管理ポータルにアクセスできる状態での確認方法をご紹介します。 監査ログですが、まずはシステムで監査が取られる設定になっているかご確認ください(通常無効化されている場合は、調査の時だけ有効に変更してください)。 管理ポータル > システム管理 > セキュリティ > 監査 > 監査を有効に 次に、アクセスできなくなった原因を探るため、以下のシステムイベントの監査を取得できるように変更します。 #システム管理 #セキュリティ #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 581
記事 Shintaro Kaminaka · 2021年10月10日 10m read FHIRリポジトリをカスタマイズしよう!パート1 開発者の皆さん、こんにちは。 IRIS for Health 2021.1がリリースされてからしばらくたちますが、多くのユーザさんにFHIRリポジトリ機能をお使いいただいています。 今日はFHIRリポジトリのサーバ側の処理をカスタマイズする機能をご紹介したいと思います。 この記事で紹介している内容のFHIRリポジトリカスタマイズに関するドキュメントマニュアルはこちらになります。 この記事はIRIS for Health 2021.1 をベースに記載しています。バージョンによってはカスタマイズに必要なクラスが異なることがあります(例えば2020.1では後述のRepoManagerクラスはまだありません。) #FHIR #InterSystems IRIS for Health 2 0 1 499