HL7v2 メッセージの次の PV1 セグメントについて考えてみましょう。
PV1|1|E|MYLOC||||55555^Doctor^Doc^D^^Dr^^DOCT|||||||HO||||ER||BC|||||||||||||||||||VALUE||REG|||201406270627||||||||55555^Doctor^Secondary^H^^Dr^^DOCT2|
そこには52のフィールドがあります。私たちの Meditech システムは、このインターフェイスで常にフィールド 52 (PV1_52_OtherHealthcareProvider) を送信します。これは、ここでは で表され55555^Doctor^Secondary^H^^Dr^^DOCT2
ます。Allow Trailing Delimitersが ONになるように設定しました。ご覧のとおり、このセグメントには末尾の区切り文字がありますが、これはセグメントの最後のフィールドの後にあり、たまたま上記のデータが含まれています。
これは常に当てはまります。Meditech は常にこのインターフェイスの末尾に区切り文字を追加しています。
他のセグメントはいずれも最終フィールドにデータを持っていないため、末尾に区切り文字があるにもかかわらず、この問題は発生していません。PV1 セグメントで、次のエラーが表示されます。
Error happened in body during parsing
Error # 1
Segment Id: PV1
Sequence Number: 1
Error Number: 100
Error Description: Segment sequence error (Unexpected end of message body found)
Encoding System: HL79999
デリミタを手動で削除して再送信すると、エラーは発生しないため、これは末尾のデリミタが原因であることが判明しました。また、スキーマを変更してダミー(PV1_53_ExtraField) フィールドを追加すると、メッセージが許可されます。
私の質問は次のとおりです。この場合、末尾の区切り文字を許可するとどのような動作が期待されますか? すべての場合に末尾の区切り文字を許可することになっていますか、それとも最終フィールドにデータがないセグメント (つまり、セグメントの最後の余分なフィールド) にのみ適用されますか?