コードのデバッグ
<DEBUGGING> タグを使用すると、ステップを追って変換を実行することができます。変換内で値を取得したい場所に <DEBUGGING> タグを配置します。タグ内のコードで変数、属性、または Xpath の値を取得できます。
以下に、さまざまな状況におけるデバッグ・コードの例を示します。
—変数の値の取得—
この例では、FileName.xsl という XSL 内で変数 $variable の値を取得します。
<DEBUGGING-VARIABLE-file-FileName.xsl-TemplateName>
$variable = <xsl:value-of select="$variable"/>
</DEBUGGING-VARIABLE-file-FileName.xsl-TemplateName>
—属性の値の取得—
この例では、/ClinicalDocument/id にある root 属性の XSL パス値を取得します。
<DEBUGGING-PATHVALUE>
CDA source OID = <xsl:value-of select="/hl7:ClinicalDocument/hl7:id/@root"/>
</DEBUGGING-PATHVALUE>
—ノード位置付きの XPath の取得—
XPath の取得では、テンプレートを利用します。テンプレート currentXPathWithPos を呼び出すと、現在の XPath がノード位置付きで返されます。例えば ClinicalDocument/component[1] と指定すると、ClinicalDocument 内の最初の component 要素が返されます。以下の例は、現在の位置の XPath をノード位置付きで取得する方法を示しています。
<DEBUGGING-PATHXMLWithPos>
<xsl:apply-templates select="." mode="currentXPathWithPos"/>
</DEBUGGING-PATHXMLWithPos>
この呼び出しの結果は、以下のようになります。
<DEBUGGING-PATHXMLWithPos>/ClinicalDocument[1]/component[1]/structuredBody[1]/component[8]
/section[1]/entry[1]/procedure[1]</DEBUGGING-PATHXMLWithPos>
—ノード位置なしでの XPath の取得—
currentXPath テンプレートを呼び出すと、XPath がノード位置なしで返されます。以下の例は、現在の位置の XPath をノード位置なしで取得する方法を示しています。
<DEBUGGING-PATHXMLWithoutPos>
<xsl:apply-templates select="." mode="currentXPath"/>
</DEBUGGING-PATHXMLWithoutPos>
この呼び出しの結果は、以下のようになります。
<DEBUGGING-PATHXMLWithoutPos>/ClinicalDocument/component/structuredBody/component
/section/entry/procedure</DEBUGGING-PATHXMLWithoutPos>
テンプレート currentXPathWithPos と currentXPath は、install-dir/csp/xslt/SDA3/CDA-Support-Files/System/Common/Functions.xsl にあります。
—XPath ツリーの取得—
copy テンプレートを呼び出すと、現在の XPath ツリーが返されます。以下の例では、DEBUGGING タグに現在の XPath ツリーを挿入して、現在の XPath ツリーを取得します。
<DEBUGGING-PATHXMLTree>
<xsl:apply-templates select="." mode="copy"/>
</DEBUGGING-PATHXMLTree>
テンプレート copy は、install-dir/csp/xslt/SDA3/CDA-Support-Files/System/Common/Functions.xsl にあります。
これらの <DEBUGGING> タグと取得した値は、変換には表示されますが、Clinical Viewer や [要約の表示] ページには表示されません。
<DEBUGGING> タグを使用すると、CDA の処理が失敗する場合があります。このため、<DEBUGGING> タグはデバッグ・プロセスでのみ使用してください。