1

HL7アクセラレータを使用する非常に複雑なBizTalkインターフェイスがあります。

正規のスキーマを使用します。このスキーマには、メインの患者管理システムからのいくつかのタイプのトランザクションの1つを含めることができ、ターゲットアプリケーションのHL7メッセージにマッピングします。

オーケストレーションは、スクリプトシェイプを使用して、受信したトランザクションのタイプやその他の基準に基づいてマップを動的に呼び出します。

呼び出すことができる約20の異なるマップがあり、それらの多くは共通のHL7セグメントを共有しています。たとえば、それらのほとんどは、患者識別データをHL7PIDセグメントにマッピングします。

PIDマッピングは、インラインXSLTを使用して単一のスクリプト関数で実行されます。なぜこのように行われたのかと尋ねると、答えは次のとおりでした。

「PIDセグメントは複数のマップにあるため、マッピングを更新する必要がある場合は、多くの個別のファンクトイドをいじる必要はなく、XSLTを他のマップにコピーして貼り付けることができます。」

PIDマッピングにバグを見つけたので、1つのマップでXSLTを修正してから、他の20のマップにコピーする必要がありました。これは非常に時間がかかり、DRYの原則に完全に反します。

複数のマップ間でXSLTを共有する方法はBizTalkにありますか?一度指定して何度も呼びたいです。

4

2 に答える 2

0

すべてのマップで同じである場合は、オーケストレーションからの動的マップの後に1つのマップを呼び出すか、オーケストレーションから直接xsltを呼び出します。

于 2011-12-08T15:14:02.807 に答える
0

この共有XSLTを含むライブラリを構築してみましたか?スクリプトタイプがExternalAssemblyのスクリプトFunctoidを使用して呼び出すと、そのアセンブリをすべての場所で書き直すことなく、多くのマップ間で共有できます。

于 2011-12-08T15:17:05.057 に答える