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?

仮想プロパティ・パスの基本設定

仮想プロパティ・パスの作成方法について説明します。

概要

ほとんどの EDI 形式 (XML 仮想ドキュメントではなく) において、仮想プロパティ・パスは次のような構文になります。

segmentorsubsegmentID:fieldorsubfieldID

説明 :

仮想プロパティ・パスは、特定のメッセージ構造に対して相対的で、その他のメッセージ構造では無効となります。管理ポータルには、パスを特定するのに役立つページが用意されています“ポータル・ツール” の章を参照してください。

Important:

XML 仮想ドキュメントの場合は、構文が異なります。"Ensemble XML 仮想ドキュメント開発ガイド" を参照してください。

セグメント識別子とサブセグメント識別子

セグメントを参照するには、以下のどちらかを使用します。

  • セグメントのシンボリック名。

    メッセージに同じ名前の複数のセグメントが含まれている場合は、識別子の最後に (n) を付加します。ここで、n は必要なセグメントの 1–ベースの位置です。

  • メッセージに含まれているセグメントの数。この数は不明なことが多いため、この構文はあまり役に立ちません。例外 (HL7 バージョン 2 の場合) は常に先頭に来る MSH セグメントです。

セグメントにはサブセグメントを追加できます。サブセグメントにはさらにサブセグメントを追加できます。サブセグメントを特定するには、以下の構文を使用します。

segmentID.subsegmentID

ここで、segmentIDsubsegmentID はともに、セグメントを特定するための前述の規則に従います。シンボリック名と数値識別子を混在させることはできないことに注意してください。つまり、この構文の一部でシンボリック名を使用している場合は、構文全体でシンボリック名を使用する必要があります。同様に、この構文の一部で数値識別子を使用している場合は、構文全体で数値識別子を使用する必要があります。

フィールド識別子とサブフィールド識別子

フィールドを参照するには、以下のどちらかを使用します。

  • フィールドのシンボリック名。

    親セグメントまたはサブセグメントに同じ名前の複数のフィールドが含まれている場合は、識別子の最後に (n) を付加します。ここで、n は必要なフィールドの 1–ベースの位置です。

  • 親セグメントまたはサブセグメント内のフィールドの数

フィールドにはサブフィールドを追加できます。サブフィールドにはさらにサブフィールドを追加できます。サブフィールドを特定するには、以下の構文を使用します。

fieldID.subfieldID

ここで、fieldIDsubfieldID はともに、フィールドを特定するための前述の規則に従います。シンボリック名と数値識別子を混在させることはできないことに注意してください。つまり、この構文の一部でシンボリック名を使用している場合は、構文全体でシンボリック名を使用する必要があります。同様に、この構文の一部で数値識別子を使用している場合は、構文全体で数値識別子を使用する必要があります。

下の仮想プロパティ・パスは、2 つ目の NK1 セグメントの Address フィールドの streetaddress サブフィールドにアクセスします。

NK1(2):Address.streetaddress

下の仮想プロパティ・パスは、1 つ目の PR1grp セグメントの AUTgrp.CTD サブセグメントの ContactAddress フィールドの streetaddress サブフィールドにアクセスします。

PR1grp(1).AUTgrp.CTD:ContactAddress.streetaddress

繰り返しフィールドの特殊なバリエーション

この節では、繰り返しフィールドを参照するときに適用される仮想プロパティ・パスのバリエーションについて説明します。

繰り返しフィールドを通した繰り返し

BPL または DTL 内で中かっこ {} 表記が使用されている場合は、ショートカット () が繰り返しフィールドのすべてのインスタンスを通して繰り返されます。例えば、DTL の次の 1 行を見てください。

<assign property='target.{PID:3().4}' value='"001"'/>

この行は、同じく有効な DTL の次の 3 行と等価です。

<foreach key='i' property='target.{PID:3()}'>
   <assign property='target.{PID:3(i).4}' value='"001"'/>
</foreach>

同じ () 規則は、BPL でも利用できます。

フィールドのカウント

パスが繰り返しフィールドを参照している場合は、(*) を使用してフィールド数を返すことができます。例えば、ORCgroup は HL7 メッセージの繰り返しフィールドです。次の式は、最初の PID グループ内にある ORC グループ数を返します。

 HL7.{PIDgrpgrp(1).ORCgrp(*)} 
Important:

DTL 内のフィールド数をカウントするには、(*) の代わりに ("*") を使用します。

この構文は、標準メッセージ内のコレクション・プロパティにも使用できます。

一連の繰り返しフィールド内の最後のフィールドへのアクセス

パスが繰り返しフィールドを参照している場合は、.(-) を使用して最後のフィールドを返すことができます。

この構文は、標準メッセージ内のコレクション・プロパティにも使用できます。

一連の繰り返しフィールドへの追加

パスが繰り返しフィールドを参照している場合は、.() を使用して別のフィールドを追加できます。

この構文は、標準メッセージ内のコレクション・プロパティにも使用できます。

FeedbackOpens in a new tab