中かっこ {} の構文
該当する場合
この構文は、ビジネス・ルール、検索テーブル、検索フィルタ、BPL 要素 (<code> と <sql> 以外)、および DTL 要素 (<code> と <sql> 以外) 内で使用できます。
中かっこの構文で解決する場合は、メッセージ構造を把握している必要があります。現在のコンテキストでメッセージ構造が不明の場合は、可能であれば、代わりに、角かっこ [] 構文を使用します。
詳細
中かっこ {} 構文を使用して仮想プロパティにアクセスするには、以下の構文を使用します。
message.{myVirtualPropertyPath}
説明 :
-
message は、現在のメッセージを参照している変数です。この変数の名前はコンテキストによって異なります。
-
myVirtualPropertyPath は、前述した仮想プロパティ・パスです。
前述した構文は、以下のメソッド呼び出しと等価です。
message.GetValueAt("myVirtualPropertyPath")
中かっこ {} 構文の方が単純なため、幅広く使用されています。
一斉コピー
BPL または DTL で中かっこ {} 表記を使用している場合、セグメント全体、セグメントのグループ、またはセグメント内の複合フィールド全体をコピーできます。これを実現するには、仮想プロパティ・パスのフィールド部分 (およびコロン・セパレータ) を削除します。したがって、以下の DTL <assign> 文はすべて有効です。
<assign property='target.{MSH}' value='source.{MSH}' />
<assign property='target.{DG1()}' value='source.{DG1()}' />
<assign property='target.{DG1(1):DiagnosingClinician}' value='"^Bones^Billy"'/>
ソースとターゲットのタイプが異なる場合は (EnsLib.HL7.MessageOpens in a new tab から EnsLib.EDI.XML.DocumentOpens in a new tab へのコピーなど)、構造が並列であるように見える場合でも、一斉コピーを使用してサブプロパティを割り当てることはできません。このようなコピーの場合は、構造の各リーフ・ノードを別々に割り当てて、For Each アクションをプロセス反復に追加する必要があります。
上の例の最後の行は、コンポーネントの区切り文字としてキャレット (^) を使用しています。各 EDI 形式の詳細は、以下を参照してください。
-
"Ensemble HL7 バージョン 2 開発ガイド" の参照節内の “セパレータ”
-
"Ensemble ASTM 開発ガイド" の参照節内の “セパレータ”
-
"Ensemble EDIFACT 開発ガイド" の参照節内の “セパレータ”
-
"Ensemble X12 開発ガイド" の参照節内の “セパレータ”
例
以下に BPL の例を示します。
<if condition='source.{MSH:9.1}="BAR"'>
以下に DTL の例を示します。
<transform targetClass='EnsLib.HL7.Message'
targetDocType='2.3:ADT_A01'
sourceClass='EnsLib.HL7.Message'
sourceDocType='2.3:ADT_A01'
create='copy'
language='objectscript'>
<assign property='target.{PR1grp(1).PR1:Anesthesiologist.nametype}'
value='"M"'
action='set'/>
</transform>
以下にビジネス・ルールからの例を示します。
Document.Name
Document.Parent.DocType
Document.{PIDgrp.PV1grp.PV1:18}
Document.{PIDgrp.PID:PatientName.familylastname}
Document.{ORCgrp(1).OBRuniongrp.OBRunion.OBR:4.3}
以下は、検索テーブルからの引用です。
<Item DocType="" PropName="MSHControlID"
PropType="String:CaseSensitive" >{1:10}</Item>