2016-09-27 12 views
1

terserまたはhappi APIを使用して非標準メッセージセグメントを解析できません。 セグメント "PV2"は、複数の構造に存在し、1つは非標準セグメントとして記述されています。これは、メッセージを解析するセグメントです。HL7 Hapi標準セグメントにセグメント名がありません

message.printStructure()を使用した後、次の構造(Sample)が表示されます。

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」の値を取得することができるよ。(でもない、使用目的など)私は「PV2」非標準値は「PV2を知ってもらうにはどうすればよい

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

"セグメント名として???

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

しかし、私は "PV22"の使用の出力を期待しています。すなわち、出力は「XYZ」でなければなりません。 どのように達成できますか? ありがとうございます。!!!!!!

答えて

1

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

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

+0

はい。 Group APIは、既に名前が使用されている場合は番号を付け加えることを指定しています。しかし、PV2がRUNTIMEで標準または非標準であるかどうかを知りたいと思います。私は、PV22を示すAbstractGroup.getNonStandardNames()を使用して非標準セグメントのリストを取得することができますが、標準または非標準に関係なく、terserを使用してPV2値の値を取得したいと思います。 terser.get( "/。PV2-3-2")のように、PV22を指定しないでください。 –

1

James Agnewがマスターであるため、彼の返信はかなり確定しています。私はHL7やHAPIについてはほとんど知らない。ポイントは、あなたのメッセージが標準ではない場合(PV2が最後に貼られているため)、HAPIから必要なものすべてを手に入れることができない場合があります。それは魔法ではない。 AbstractGroup.getNonStandardNames()は、その状況にカスタムコードを書くと、実行時にPV22を検出するのに十分なアクセス権を提供しているようです。標準に近づくようなメッセージを扱うための便利なフレームワークが気に入っているようです。より順応性の低いメッセージでは、より多くの作業を行う必要があります。

関連する問題