アセスメント、HPI、ROS、バイタルなどのセクションを含むドキュメントがあります。各セクションのメモを抽出したいと思います。私はこの目的のためにGATEを使用しています。評価セクションのメモを抽出するJAPEファイルを作成しました。以下は文法です、
Input: Token
Options: control=appelt debug=true
Rule: Assess
({Token.string =~"(?i)diagnose[d]?"}{Token.string=="with"} | {Token.string=~"(?i)suffering"}{Token.string=~"(?i)from"} | {Token.string=~"(?i)suffering"}{Token.string=~"(?i)with"})
(
({Token})*
):assessments
({Token.string =~"(?i)HPI"} | {Token.string =~"(?i)ROS"} | {Token.string =~"(?i)EXAM"} | {Token.string =~"(?i)VITAL[S]"} | {Token.string =~"(?i)TREATMENT[s]"} |{Token.string=~"(?i)use[d]?"}{Token.string=~"(?i)orderset[s]?"} | {Token.string=~"$"})
-->
:assessments.Assessments = {}
これで、評価セクションがドキュメントの最後にあるときに、メモを適切に取得できます。ただし、2つのセクションの間にある場合は、評価セクションからファイルの終わりまでドキュメント全体が返されます。
{Token.string =〜 "$"}をさまざまな方法で使用しようとしましたが、ドキュメント内の場所に関係なく、評価セクションのみを抽出できませんでした。
JAPE文法を使用してこれを達成する方法を説明してください。