Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

Ensemble 2014.1

Ensemble 2014.1 の新機能

Ensemble 2014.1 では、次の新機能と拡張機能が導入されました。

  • REST サービスおよびオペレーション

  • パススルー HTTP、REST、および SOAP のサービスとオペレーション

  • アラート管理

  • HL7 バージョン 2 フィールドレベル検証およびスキーマ・エディタの拡張機能

  • 拡張されたプロダクションのエクスポートとポータルからのインポート

  • XML VDoc の拡張機能

Ensemble 2014.1 にアップグレードする際の互換性の問題

このリリースの以下の変更によって、既存のシステムの動作が影響を受ける可能性があります。Ensemble のインスタンスをアップグレードする前に、以下の問題を確認してください。

"Caché リリース・ノートおよびアップグレード・チェックリスト・アーカイブ" も参照してください。

自動的にインデックスを追加する HL7 シーケンス・マネージャ

HL7 メッセージが正しい順序で処理されるようにする HL7 シーケンス・マネージャは、インデックスを追加して効率を向上させています。プロダクションに、EnsLib.HL7.SequenceManager のクラス、またはそのサブクラスを含むビジネス・プロセスがある場合、そのプロダクションは、Ensemble 2014.1 へのアップグレード後の最初のメッセージを処理するときに、パフォーマンスを向上させるためのインデックスを自動的に作成します。

このインデックスは、Ensemble 2014.1 へのアップグレード後、ビジネス・プロセスがメッセージの処理を開始する前に、以下の手順を実行することで手動で作成できます。

  1. シーケンス・マネージャのビジネス・プロセスが停止していることを確認します。

  2. Ensemble ターミナルを起動して、プロダクションに使用するネームスペースに設定します。

  3. 以下のコマンドを入力します。

    Set tSC=##class(EnsLib.HL7.SM.Version).Upgrade()
    
  4. エラー・ステータスがないか tSC を調べて、コマンドが正しく実行されたことを確認します。

導入パッケージのエクスポートを制御するための新しいセキュリティ・リソース

今回のリリースでは、%Ens_DeploymentPkg セキュリティ・リソースで導入パッケージのエクスポート機能を制御し、%Ens_Deploy セキュリティ・リソースで導入パッケージのプロダクションへの適用機能を制御します。これまでのリリースでは、これら両方の機能を %Ens_Deploy で制御していました。

Ensemble HL7 による長い文字列のサポート

今回のリリースでは、Ensemble HL7 フレームワークで長い文字列を使用できるようになりました (長い文字列がシステムで有効な場合)。長い文字列を有効にする方法の詳細は、"Caché プログラミング入門ガイド" の “長い文字列演算の使用可能化” を参照してください。長い文字列を有効にしていてるときに、セグメント・ストレージに対する既存の 32K 制限を維持するには、^Ens.Config("HL7-NoLongStrings") = 1 を設定します。

改善されたステータス情報を返す GetProductionStatus

今回のリリースでは、GetProductionStatus() メソッドは、ステータス情報を提供するローカライズされたテキストを返します。戻り値をテストする場合は、StatusEnum フィールドを使用する必要があります。このフィールドには数値のステータス値が含まれており、すべてのロケールで一貫したものになります。

Ens.Settings に追加された新しい GetSettingRow メソッド

Ens.SettingsOpens in a new tab クラスには、新しい GetSettingRow() 生成メソッドが含まれています。Ens.SettingsOpens in a new tab クラスを拡張していて、この名前のメソッドをクラスに既に定義している場合は、コードを更新する必要があります。拡張メソッドの名前を変更してからコードをリコンパイルして、メソッド名の競合を回避してください。

Ensemble CSP ページによる UseCookies プロパティの設定

Ensemble は、システムのアップグレード時または新しい CSP ページの作成時に、UseCookies プロパティを “Always” に設定するようになりました。

生の EDI コンテンツの表示に一貫性を保つために挿入される新規ライン

EDI メッセージの生のコンテンツを表示すると、Ensemble はセグメント間に必ず新規行文字を入れます。これまでのバージョンでは、すべてのセグメントではなく一部のセグメントが新規行文字で分けられていました。そのため、生のコンテンツの表示でテキストをコピーして貼り付けると、今回のリリースのデータには、以前のリリースで生成したデータには存在しない新規行文字が含まれることがあります。

FTP のファイル名に含まれる空白の処理の向上

FTP 受信アダプタは、FTP ファイル名の後の空白をファイル名の一部と見なし、別のフィールドの区切りとは見なしません。この変更により、FTP 受信アダプタは、ファイル名に含まれる空白を許容する FTP サーバに対応できるようになりました。そのため、FTP 受信アダプタは、ファイル名の終端にスペースを使用して、ファイル名の後に別のフィールドを含める FTP サーバをサポートできなくなりました。

アップグレード時の Ensemble による VDOC 検索テーブルの自動リコンパイル

Ensemble 2014.1 へのアップグレード時に、Ens.VDoc.SearchTableOpens in a new tab のすべてのユーザ定義サブクラスが、すべての Ensemble ネームスペースで自動的にリコンパイルされます。

コンパイル時に Ensemble カスタム・スキーマの検証により報告されるエラー

2014.1 では、HL7 カスタム・スキーマの検証が向上しています。スキーマのロード時または保存時には、より多くのエラーが表示されます。例えば、閉じかっこ } の欠落したメッセージ構造について、2013.1 では保存時にエラーは示されませんが、2014.1 ではロード時または保存時にエラー “エラー #5002: Cache エラー: メッセージ構造にブレース '{' および '}' の不一致があります …” が示されます。無効なメッセージ構造を含んでいるデータベースをアップグレードすると、アップグレード時にエラーは示されませんが、その後でスタジオまたはスキーマ・エディタからスキーマを保存しようとするとエラーが示されます。この種のエラーを含むスキーマの実行時の動作は、予測不可能であり、新しく特定されたエラーは修正する必要があります。問題のスキーマで引き続き実行している以前のバージョンのエラーを修正することについて検討する必要があります。

TCP アダプタのポート宣言プロパティの変更

2014.1 では、EnsLib.TCP.InboundAdapterOpens in a new tab で使用される Port プロパティは、タイプ Ens.DataType.TCPAgentPortOpens in a new tab として宣言されています。これは、独自の宣言を持ち %StringOpens in a new tab を拡張します。これまでのリリースでは、Port プロパティは、スーパークラス EnsLib.TCP.CommonOpens in a new tab でタイプ %IntegerOpens in a new tab として宣言されていました。サブクラス EnsLib.TCP.InboundAdapterOpens in a new tab を作成し、MAXVAL 修飾子と MINVAL 修飾子を指定した %IntegerOpens in a new tab として Port を宣言しているカスタム・アダプタ・クラスを作成すると、クラスのコンパイルによりエラーが発生します。このエラーを修正するには、Ens.DataType.TCPAgentPortOpens in a new tab として Port を宣言し、MAXVAL 修飾子と MINVAL 修飾子をすべて削除します。

HL7 メッセージ・ヘッダの名前フィールドの処理における変更

Ensemble では、MSH:9 フィールドの値に基づいて HL7 メッセージ名を計算します。この変更により、Ensemble での MSH:9.3 サブフィールドの扱い方が変わります。

HL7 メッセージでは MSH:9.3 サブフィールドを 1) 通常は数値でメッセージ名を修飾する、2) メッセージ構造のタイプを指定する、という 2 通りのどちらかの目的に使用します。例えば、MSH:9 の値が “ORM^001^5” の場合は、MSH:9.3 の値が “5” になります。これは ORM_001 メッセージのサブタイプを表しています。また、MSH:9 の値が “ADT^A08^ADT_A01” の場合は、MSH:9.3 の値が “ADT_A01” になります。これは、ADT_A01 構造タイプの ADT_A08 メッセージを指定しています。

Ensemble は MSH:9 フィールドを処理するときに、MSH:9.3 サブフィールドが単純な値 (“5” など) なのか、構造化された値 (“ADT_A01” など) なのかをテストします。このサブフィールドが単純な値を保持している場合、Ensemble は、その値をメッセージ名に付加し、そのメッセージ名を使用してスキーマ内の構造を検索して、Name プロパティの値を設定します。MSH:9.3 が複雑な値を保持している場合、Ensemble は、その値を無視します。Ensemble では、メッセージ構造のタイプを確実に取得するためにスキーマ定義を使用するため、この値を使用する必要がありません。

グローバル ^Ens.Config("HL7NamePropOld")=1 を設定すると、Ensemble は MSH:9 の処理に本来のロジックを使用し、MSH:9.3 の値が構造タイプを表していたとしても、常に、その値をメッセージ名に付加します。このグローバルは、HL7 プロダクションに使用するネームスペースで設定します。

HL7 スキーマ表現における変更

Ensemble 2014.1 には、HL7 スキーマ定義における以下の拡張が含まれています。

  • セグメント長 — これまでのバージョンでは、セグメント長の定義 (最大許容長の設定) のみが可能でした。今回のリリースでは、セグメントの最小長と最大長を指定できます。

  • データ構造のコンポーネント — 今回のリリースでは、コンポーネントの最小長と最大長を指定できます。また、コンポーネントがオプションであるか、必須であるかも指定できます。

これらの変更を実装するために、HL7 スキーマの要素を内部的にグローバルに保存する方法を変更しました。また、それらの要素の XML 表現にもマイナーな変更を加えました。ほとんどの場合は、これらの変更が互換性の問題を引き起こすことはありません。ただし、以下のいずれかを実施している場合は、互換性の問題について確認する必要があります。

  • ^EnsHL7.Schema グローバルまたは ^EnsHL7.Description グローバルに直接アクセスしている。これらは、内部的な Ensemble の構造体であり、新しい Ensemble 機能を実装するために変更されることがあります。

  • スキーマの XML 表現を生成するために EnsLib.HL7.Util.Generator メソッドを呼び出して、コンポーネント長属性またはデータ構造コンポーネントに明示的にアクセスしている。具体的には、以前のリリースのコンポーネント長は length 属性で指定されていましたが、Ensemble 2014.1 では max_length 属性で指定されています。ポータルまたはスタジオからのエクスポートによって XML スキーマを生成する場合は、同様の制限が適用されます。

  • EnsLib.HL7.SchemaOpens in a new tab DataStructures クエリを呼び出している。このクエリは、追加情報を返します。具体的には、基本データ型に関する情報を返します。このクエリから返されるデータに依存するコードには、互換性の問題が発生する可能性があります。

  • Ensemble 2014.1 以降の HL7 スキーマをエクスポートしていて、それ以前のバージョンの Ensemble にインポートしようとしている。以前のバージョンの Ensemble では、新しいセグメント長の属性とコンポーネントのデータ構造によるエラーが発生します。古いバージョンの Ensemble を使用して HL7 スキーマをエクスポートして、そのスキーマを Ensemble 2014.1 以降にインポートすることはできます。

FeedbackOpens in a new tab