简体   繁体   English

解析后将可选管道保留在 HL7 中

[英]Keep optional pipe in HL7 after parsing

Original HL7原装HL7

MSH|^~\&|RadImage^124|xxx|EI-ARTEFACT|xxx|123456789||ORM^O01|1234||2.3|||AL
PID|1|xxxxxx|xxxx||xxxxx^xxxxx xxxxx|xxx xxx|19391007|F|||104-430, xxx^^xxx^xx^xx^xx||(999)999-999|"||V|||||"||||||||"|N
PV1|1|A|11^11-1^^^^^2|||||123^xxx, xxx|||||||||123^xxx, xxx|||01|||||||||||||||||||NA|||||20191211082900|||||||
ORC|XO|"^"|xxx||CM||^^^xxx^^R||123456789|INTERF^INTERFACE||123^xxx, xxx|HOSPI^Hospitalisé|||KDICTE|3A^3A||"^"
OBR|1|"^"|xxx|82561^SCAN SINUS C+^^82561^SCAN SINUS C+|VU|xxx|"|"|||||"|||1234^xxx, xxx||xx|xxx|xxx|IMAGES^|xxxx||CT|"||^^^xxx^^VU||||AAAA~BBB~CCC|"^"||","~"|"|xxx|A|B|||
ZDS|1.11.11.11.1.11.1.1.11^RadImage^Application^DICOM

End result HL7最终结果 HL7

MSH|^~\&|RadImage^124|xxx|EI-ARTEFACT|xxx|123456789||ORM^O01|1234||2.3|||AL
PID|1|xxxxxx|xxxx||xxxxx^xxxxx xxxxx|xxx xxx|19391007|F|||104-430, xxx^^xxx^xx^xx^xx||(999)999-999|"||V|||||"||||||||"|N
PV1|1|A|11^11-1^^^^^2|||||123^xxx, xxx|||||||||123^xxx, xxx|||01|||||||||||||||||||NA|||||20191211082900
ORC|XO|"^"|xxx||CM||^^^xxx^^R||123456789|INTERF^INTERFACE||123^xxx, xxx|HOSPI^Hospitalisé|||KDICTE|3A^3A||"^"
OBR|1|"^"|xxx|82561^SCAN SINUS C+^^82561^SCAN SINUS C+|VU|xxx|"|"|||||"|||1234^xxx, xxx||xx|xxx|xxx|IMAGES^|xxxx||CT|"||^^^xxx^^VU||||AAAA~BBB~CCC|"^"||","~"|"|xxx|A|B|||
ZDS|1.11.11.11.1.11.1.1.11^RadImage^Application^DICOM

Hi,你好,

I'm making a DLL in C# for parsing and modyfing a HL7 message using the nhapi Hl7 DLL.我正在 C# 中制作一个 DLL,用于使用 nhapi Hl7 DLL 解析和修改 HL7 消息。 The only thing I'm struggling to is to keep the empty pipe at the end of the PV1 segment.我唯一正在努力的是将空管道保持在 PV1 段的末尾。 It'S removing the pipe in the "End result HL7" vs "Orginal HL7".它正在移除“最终结果 HL7”与“原始 HL7”中的管道。

I would like to keep those pipe我想保留那些管道

This is my actual code这是我的实际代码

...
    using NHapi.Base.Model;
    using NHapi.Base.Parser;
    using NHapi.Base.Util;
    using System.Diagnostics;
    using NHapi.Model.V23.Segment;
    using NHapi.Model.V22.Segment;
    using NHapi.Model.V21.Segment;
    using NHapi.Model.V231.Segment;
...
...
    public void PreAnalysis(ITratmContext ctx, MemBuf mb)
        {
            var parser = new PipeParser();
            Debug.WriteLine(mb.ToString());
            var parsedMessage = parser.Parse(mb.ToString());
            var pipeDelimitedMessage = parser.Encode(parsedMessage);
            Debug.WriteLine(pipeDelimitedMessage);  //Message lose the empty pipe HERE
            var genericMethod = parsedMessage as AbstractMessage;

            // create a terser object instance by wrapping it around the message object
            Terser terser = new Terser(parsedMessage);

            OurTerserHelper terserHelper = new OurTerserHelper(terser);
            String terserExpression = "MSH-12";
            String HL7Version = terserHelper.GetData(terserExpression);

            if (HL7Version == "2.3")
            {
                var obr = genericMethod.GetStructure("OBR") as NHapi.Model.V23.Segment.OBR;
                if (obr != null)
                {
                    for (int i = 0; i < obr.ReasonForStudyRepetitionsUsed; i++)
                    {
                        obr.GetReasonForStudy(i).Identifier.Value = StringExtention.Clean(obr.GetReasonForStudy(i).Identifier.ToString());
                    }
                }
                //var obrRep = obr.ReasonForStudyRepetitionsUsed;
                Debug.WriteLine(parser.Encode(genericMethod.Message));
                mb.Init(parser.Encode(genericMethod.Message));
            }
        }

Thank you very much !!!!非常感谢 !!!!

There is no need to keep any field separators after the last populated field in a segment.在段中最后填充的字段之后不需要保留任何字段分隔符。 They are superfluous and a waste of space.它们是多余的,浪费空间。

I don`t see a point in having a field separator after the last populated field.我认为在最后一个填充字段之后使用字段分隔符没有意义。 But if you insist on doing this you could you could append a custom separator at the end.但是如果你坚持这样做,你可以在最后附加一个自定义分隔符。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM