Skip to content

getting exceptions when trying to parse hl7 messages containing large data in obx-5 #594

Closed

Description

@AlexFJaxFL

getting the following exception when parsing files containing large embedded images:

Parse error in DoEDieIn: NHapi.Base.DataTypeException: Failed validation rule: Maxumim size <= 65536 characters
at NHapi.Base.Model.Varies.fixOBX5(ISegment segment, IModelClassFactory factory)
at NHapi.Base.Parser.PipeParser.Parse(ISegment destination, String segment, EncodingCharacters encodingChars)
at NHapi.Base.Parser.PipeParser.DoParse(String message, String version)
at NHapi.Base.Parser.ParserBase.Parse(String message, String version)
at EPDHL7ListenerSvc2.EPDHL7ListenerSvc2.TryParseMessage(String HL7Message).

not sure if this limitation is to be expected or maybe it will be resolved in future versions

Regards,
Alex

Activity

  1. milkshakeuk commented on Sep 24, 2024

    @milkshakeuk
    Member

    hi @AlexFJaxFL do you have any example code?

  2. milkshakeuk commented on Sep 24, 2024

    @milkshakeuk
    Member

    also @AlexFJaxFL might be worth checking #105 to see if this issue is similar or not?

  3. AlexFJaxFL commented on Sep 24, 2024

    @AlexFJaxFL
    Author

    hi @AlexFJaxFL do you have any example code?

    Public Shared Function ParseHL7Messages(HL7Messages As String, FType As FeedType) As Boolean
    Dim MsgType As String = ""
    Dim SendingApp As String = ""
    Dim iEPDFacNo As Integer = 0

        Try
            FieldSeparator = HL7Messages(3)
            ComponentSeparator = HL7Messages(4)
    
            Dim HL7MessageName As String = ""
    
            If Not HL7Messages.StartsWith("MSH") Then
                If blnInService = True Then 'if running in the service
                    WriteEventLog("Error in ParseHL7Messages: does not start with MSH " & vbCrLf & HL7Messages, EventLogEntryType.Error)
                Else
                    Dim ex As New Exception("Error in ParseHL7Messages: does not start with MSH " & vbCrLf & HL7Messages)
                    Throw ex
                End If
            End If
    
            Dim prsr As New Parser.PipeParser()
            Dim imsg As Model.IMessage = Nothing
            Dim trsr As Util.Terser
            Dim blnFilterOut As Boolean = False
    
            For Each strMsg In HL7Messages.Split(New String() {"MSH|"}, StringSplitOptions.RemoveEmptyEntries)
                strMsg = "MSH|" & strMsg 'add the split chars back on.
    
                'If prsr.GetMessageStructure(strMsg) = "ORU_R01" Then
                strMsg = SetOBX2DataType(strMsg) '
                'End If
    
                Try
                    imsg = prsr.Parse(strMsg)
                Catch ex As Exception
                    Try
                        EPDnHapi.SetPtrnFindReplace(strMsg)
                        imsg = prsr.Parse(strMsg)
                    Catch ex1 As Exception
                        If strMsg.Contains("ORU^R01") OrElse strMsg.Contains("ORM^O01") Then ' for IB ORU/ORM clearing OBR-13 since not needed 
                            EPDnHapi.ClearField(strMsg, "OBR|", 13)  ' and causing problems for parser (AF)
                            Try
                                imsg = prsr.Parse(strMsg)
                            Catch ex2 As Exception
                                imsg = prsr.Parse(strMsg, "2.4")
                            End Try
                        End If
                    End Try
                End Try
    
  4. AlexFJaxFL commented on Sep 24, 2024

    @AlexFJaxFL
    Author

    also @AlexFJaxFL might be worth checking #105 to see if this issue is similar or not?

    i can see there is certain correlation between my issue and discussion that took place in #105,
    my data looks like this:

    image

  5. AlexFJaxFL commented on Sep 24, 2024

    @AlexFJaxFL
    Author

    maybe this structure does not match what your engine parser is expecting ..

  6. milkshakeuk commented on Sep 25, 2024

    @milkshakeuk
    Member

    Hi @AlexFJaxFL we have some unit tests showing how it should look,

    + "OBX|1|ED|PDF^Display format in PDF^AUSPDI||^TX^PDF^Base64^JVBERi0xLjcNJeLjz9MNCjI0IDAgb2JqDTw8L0xpbmVhcml6ZWQgMS9MIDExMjQxNi9PIDI2L0UgNTQ2MTkvTiAyL1QgMTExODE2L0ggWyA5NzYgMjk3XT4+DWVuZG9iag0gICAgICAgICAgICAgICAgDQp4cmVmDQoyNCAzNA0KMDAwMDAwMDAxNiAwMDAwMCBuDQowMDAwMDAxMjczIDAwMDAwIG4NCjAwMDAwMDE0NDUgMDAwMDAgbg0KMDAwMDAwMTg5OSAwMDAwMCBuDQowMDAwMDAyNDgwIDAwMDAwIG4NCjAwMDAwMDI1MTUgMDAwMDAgbg0KMDAwMDAwMjYyOCAwMDAwMCBuDQowMDAwMDAyODgzIDAwMDAwIG4NCjAwMDAwMDM0NTEgMDAwMDAgbg0KMDAwMDAwNDI0OSAwMDAwMCBuDQowMDAwMDA0MzgzIDAwMDAwIG4NCjAwMDAwMDQ5MjYgMDAwMDAgbg0KMDAwMDAwNTAzNyAwMDAwMCBuDQowMDAwMDA1MDYyIDAwMDAwIG4NCjAwMDAwMDU1NjcgMDAwMDAgbg0KMDAwMDAwNTgyMyAwMDAwMCBuDQowMDAwMDA2MzA4IDAwMDAwIG4NCjAwMDAwMDcwMTYgMDAwMDAgbg0KMDAwMDAwNzYyNCAwMDAwMCBuDQowMDAwMDA4MjE0IDAwMDAwIG4NCjAwMDAwMDg4NzAgMDAwMDAgbg0KMDAwMDAwOTM0NyAwMDAwMCBuDQowMDAwMDA5Nzg3IDAwMDAwIG4NCjAwMDAwMTA0NDMgMDAwMDAgbg0KMDAwMDAxMzA5MiAwMDAwMCBuDQowMDAwMDEzMTYxIDAwMDAwIG4NCjAwMDAwMTMyNjAgMDAwMDAgbg0KMDAwMDAxOTU3NSAwMDAwMCBuDQowMDAwMDE5ODQzIDAwMDAwIG4NCjAwMDAwMjAyNDIgMDAwMDAgbg0KMDAwMDAyODAyNCAwMDAwMCBuDQowMDAwMDM0MzUyIDAwMDAwIG4NCjAwMDAwNTE0OTQgMDAwMDAgbg0KMDAwMDAwMDk3NiAwMDAwMCBuDQp0cmFpbGVyDQo8PC9TaXplIDU4L1Jvb3QgMjUgMCBSL0luZm8gMjMgMCBSL0lEWzxDNzc3RERCRUE2QTE1RDQwODZEMDg2MTlBODBGOEVBOD48RjlDREEyMTExMzgzMTU0MzhGRjlGNzgwQkMzRDZEQzc+XS9QcmV2IDExMTgwNT4+DQpzdGFydHhyZWYNCjANCiUlRU9GDQogICAgICAgICAgICANCjU3IDAgb2JqDTw8L0ZpbHRlci9GbGF0ZURlY29kZS9JIDI1Mi9MZW5ndGggMjA0L08gMjM2L1MgOTgvVCAxOTE+PnN0cmVhbQ0KaN5iYGDgY2BgqWFgZWA4tZSBmwEBuIFibAwsDBwdDIsUGJY6MKACDiMvnUJWNmFexdDpidNmFzAwMAoKCnYAAVhaUALIagBqBAJ+BsZ514G0PBArgWUlGfiZozg2MASwNsgcaD/Y1JDLwsMYwcAgxyDzoJgxtMmdJYvzDp+C5Ae/RxMYxBi8DFWYz3BvfHJZ+MN2Nz4GceZLDD4wdwgzMC5MANJMIA6TLgMXkGJkwAQqDUBCCKjYFKpAG4jFGRg33YfytwIEGAADmimBDQplbmRzdHJlYW0NZW5kb2JqDTI1IDAgb2JqDTw8L0V4dGVuc2lvbnM8PC9BREJFPDwvQmFzZVZlcnNpb24vMS43L0V4dGVuc2lvbkxldmVsIDM+Pj4+L01ldGFkYXRhIDIyIDAgUi9PdXRsaW5lcyAxOCAwIFIvUGFnZXMgMjEgMCBSL1R5cGUvQ2F0YWxvZy9WaWV3ZXJQcmVmZXJlbmNlczw8L0RpcmVjdGlvbi9MMlI+Pj4+DWVuZG9iag0yNiAwIG9iag08PC9BcnRCb3hbMC4wIDAuMCA2MTIuMCA3OTIuMF0vQmxlZWRCb3hbMC4wIDAuMCA2MTIuMCA3OTIuMF0vQ29udGVudHNbMzIgMCBSIDQwIDAgUiA0MSAwIFIgNDIgMCBSIDQzIDAgUiA0NCAwIFIgNDUgMCBSIDQ2IDAgUl0vQ3JvcEJveFswLjAgMC4wIDYxMi4wIDc5Mi4wXS9NZWRpYUJveFswLjAgMC4wIDYxMi4wIDc5Mi4wXS9QYXJlbnQgMjEgMCBSL1Jlc291cmNlczw8L0NvbG9yU3BhY2U8PC9DUzAgMjggMCBSPj4vRXh0R1N0YXRlPDwvR1MwIDI5IDAgUi9HUzEgMzUgMCBSPj4vRm9udDw8L0MyXzAgMzMgMCBSL1RUMCAyNyAwIFIvVFQxIDM0IDAgUj4+L1Byb2NTZXRbL1BERi9UZXh0L0ltYWdlQ10vWE9iamVjdDw8L0ltMCA1NiAwIFI+Pj4+L1JvdGF0ZSAwL1RhYnMvVy9UaHVtYiAxOSAwIFIvVHJpbUJveFswLjAgMC4wIDYxMi4wIDc5Mi4wXS9UeXBlL1BhZ2U+Pg1lbmRvYmoNMjcgMCBvYmoNPDwvQmFzZUZvbnQvSlhGUU1MK1doaXRuZXktQm9vay9FbmNvZGluZy9XaW5BbnNpRW5jb2RpbmcvRmlyc3RDaGFyIDMyL0ZvbnREZXNjcmlwdG9yIDMwIDAgUi9MYXN0Q2hhciAxNzQvU3VidHlwZS9UcnVlVHlwZS9Ub1VuaWNvZGUgMzEgMCBSL1R5cGUvRm9udC9XaWR0aHNbMjI2IDAgMCAwIDAgMCAwIDAgMzk4IDM5OCAwIDAgMjE5IDM2NCAyMTkgNTE3IDAgMCA1MzUgNTIzIDAgMCAwIDUzMiAwIDAgMjI3IDAgMCAwIDAgMCAwIDY5MSAwIDY0OCA3MDEgNTA0IDQ3NyAwIDcwNSAyNjggMzY0IDAgNDY2IDkwNyA3MDUgNzQ1IDUzMyAwIDU2NyA1MTIgNTgxIDY4MSA2ODAgMCA2MzUgMCAwIDAgMCAwIDAgMCAwIDQ4OSA1MjggNDY2IDUzMSA0OTEgMjk4IDUwMiA1MjMgMjMzIDAgNDY2IDIzNCA4MTkgNTIzIDUyMyA1MzEgNTI4IDM0NCA0MzggMzMwIDUyMyA0NzAgNzMwIDQ3MCA0ODAgNDQ5IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAyMTkgMzg4IDM4OCAwIDQ1NiAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgNTY2XT4+DWVuZG9iag0yOCAwIG9iag1bL0lDQ0Jhc2VkIDQ3IDAgUl0NZW5kb2JqDTI5IDAgb2JqDTw8L0FJUyBmYWxzZS9CTS9Ob3JtYWwvQ0EgMS4wL09QIGZhbHNlL09QTSAxL1NBIHRydWUvU01hc2svTm9uZS9UeXBlL0V4dEdTdGF0ZS9jYSAxLjAvb3AgZmFsc2U+Pg1lbmRvYmoNMzAgMCBvYmoNPDwvQXNjZW50IDkzOS9DYXBIZWlnaHQgNjkwL0Rlc2NlbnQgLTIwMC9GbGFncyAzMi9Gb250QkJveFstNzYg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|||A|||F|||201411201536\r"

    There is also this blog which might help.
    http://healthbase.info/blog/?p=376

  7. AlexFJaxFL commented on Oct 1, 2024

    @AlexFJaxFL
    Author

    Ok, this information is very helpful indeed and will be used for .pdf related feeds which we have plenty.
    What approach should I use if incoming hl7 message contains .rtf content in obx-5 the way I demonstrated above ?

  8. milkshakeuk commented on Oct 9, 2024

    @milkshakeuk
    Member

    @AlexFJaxFL I think you can use a similar approach to the pdf for rtf files.

  9. AlexFJaxFL commented on Oct 25, 2024

    @AlexFJaxFL
    Author

    @AlexFJaxFL I think you can use a similar approach to the pdf for rtf files.

    ok, data does not come in to us in the same format so i will have to do some custom programming to adjust accordingly and then will go from there

  10. AlexFJaxFL commented on Oct 28, 2024

    @AlexFJaxFL
    Author

    it appears other data types in OBX-2 (like ST, TX and ED which is used in your example above) work with nhapi parser just fine,
    however, in our case, we are getting type FT [formatted text] and for this type nhapi for me does not always work as expected.

    data comes in like this: OBX|1|FT|^EDIE_VISIT_HISTORY||{\rtf1{\info{\

    planning to override FT and make it ST or TX unless perhaps you might provide some other recommendations

  11. milkshakeuk commented on Dec 16, 2024

    @milkshakeuk
    Member

    @AlexFJaxFL do you have some sample code? I suspect it could be something to do with special character escaping etc

  12. AlexFJaxFL commented on Dec 16, 2024

    @AlexFJaxFL
    Author

    @AlexFJaxFL do you have some sample code? I suspect it could be something to do with special character escaping etc

    Public Shared Function TryParseMessage(HL7Message As String) As String 'Steve K. - 20210503
        Dim imsg As Model.IMessage = Nothing
        Dim prsr As New Parser.PipeParser()
        Dim ret As String = ""
    
        Try
            If Not HL7Message.StartsWith("MSH") Then
                If blnInService = True Then 'if running in the service
                    WriteEventLog("Error in TryParseMessage: does not start with MSH " & vbCrLf & HL7Message, EventLogEntryType.Error)
                Else
                    Dim ex As New Exception("Error in TryParseMessage: does not start with MSH " & vbCrLf & HL7Message)
                    Throw ex
                End If
            End If
    
            Try
                HL7Message = SetOBX2DataType(HL7Message) 'Steve K. - 20210504
    
                imsg = prsr.Parse(HL7Message)
            Catch ex As Exception
                Try
                    EPDnHapi.SetPtrnFindReplace(HL7Message)
                    imsg = prsr.Parse(HL7Message)
                Catch ex1 As Exception
                    If HL7Message.Contains("ORU^R01") OrElse HL7Message.Contains("ORM^O01") Then ' for IB ORU/ORM clearing OBR-13 since not needed 
                        EPDnHapi.ClearField(HL7Message, "OBR|", 13)  ' and causing problems for parser (AF)
                        Try
                            imsg = prsr.Parse(HL7Message)
                        Catch ex2 As Exception
                            imsg = prsr.Parse(HL7Message, "2.4")
                        End Try
                    End If
                End Try
            End Try
    
            If imsg Is Nothing Then
                ret = $"Can't parse HL7Message: {vbCrLf}{EPDnHapi.GetCleanHeaderString(HL7Message)}"
            End If
    
        Catch ex As Exception
            imsg = Nothing
            ret = ex.ToString 'If error return error messsage.
        End Try
    
        Return ret
    End Function

    client that had this issue decided to use another vendor next year so this issue does not seem as critical

  13. milkshakeuk commented on Dec 16, 2024

    @milkshakeuk
    Member

    @AlexFJaxFL do you have an example message?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions