2

terser または happi API を使用して非標準のメッセージ セグメントを解析できません。セグメント「PV2」は、メッセージを解析するための私のセグメントである非標準セグメントとして示されている、構造体に複数回存在します。

message.printStructure() を使用すると、次の構造体 (サンプル) が表示されます。

ADT_A08 (start)
MSH - MSH|^~\&|||||||ADT^A08||P|2.3||||
EVN - Not populated
PID - PID|1||^^^&ISO~^^&~^^^     &ISO~^^^&||^||19230324|F||-1|  ^^ BOXES^CA^81125||||||||
[ PD1 ] - PD1||||^^
[ { NK1 } ] - NK1|1|^|CH||
             NK1|2|^|||
PV1 - PV1|1|I|^MC3706^1|C|||^^^|^^^|^^^|||||1|||^^^|IN||||||||||||||||||||||||||202308211705
[ PV2 ] - Not populated
[ { DB1 } ] - Not populated
PROCEDURE (start)
[{
   PR1 - Not populated
  [ { ROL } ] - Not populated
}]
PROCEDURE (end)
[ { GT1 } ] - GT1|1||^||  ^^^^|(408)-283-1928|||||SLF|828-46-4375||||INFORMATION UNAVAILABLE
[ { PV22 } ] (non-standard) - PV2||ABC|^XYZ
.
.
.
ADT_A08 (end) 

PV2 非標準セグメントのいずれかのフィールドを取得する必要があります。terserまたはHAPI APIを使用して、セグメント「PV22」の値を取得できます。(ただし、使用目的ではありません)

terser.get("/.PV22-3-2");  // outputs XYZ

セグメント名として「PV2」のみを知っている「PV2」非標準値を取得するにはどうすればよいですか???

terser.get("/.PV2-3-2"); // outputs null

しかし、私は「PV22」の使用時の出力を期待しています。すなわち。出力は「XYZ」である必要があります。どうすれば達成できますか?? 前もって感謝します。!!!!!!

4

2 に答える 2

4

これは、PV2 セグメントがソース メッセージ内の間違った位置にあるためです。PV1 セグメントの直後に来る必要があり、その場合は正常に解析されます。

これはメッセージの末尾にあるため、非標準セグメントとして解析され、HAPI は末尾に「2」を追加して、標準の PV1 セグメントと区別します。

于 2016-09-28T21:10:19.597 に答える
1

ジェームス・アグニューがマスターなので、彼の返事はかなり決定的でした。私は HL7 や HAPI について彼ほどよく知りません。ポイントは、メッセージが非標準である場合 (最後に PV2 が追加されている場合など)、HAPI から必要なものすべてを取得できない可能性があることです。それは魔法ではありません。AbstractGroup.getNonStandardNames() は、実行時に PV22 を検出するのに十分なアクセスを提供しているように見えますが、その状況に合わせてカスタム コードを記述した場合です。terser は、標準に厳密に準拠したメッセージを操作するために利用できる便利なフレームワークのように思えます。適合性の低いメッセージについては、より多くの作業を行う必要があります。

于 2016-10-04T00:27:53.830 に答える