Skip to content

ORM^O01 .validate() and .parse_message() issues #142

@paw-bor

Description

@paw-bor

Hi everyone

I build a hl7 ORM^O01 message:

msh = "MSH|^~\&|GHH_ADT||||20080115153000||ORM^O01|0123456789|P|2.5||||AL"
pid = "PID|1||566-554-3423^^^GHH^MR||EVERYMAN^ADAM^A|||M|||2222 HOME STREET^^ANN ARBOR^MI^^USA||555-555-2004~444-333-222|||M"
pv1 = "PV1|1|I|GHH PATIENT WARD|U||||^SENDER^SAM^^MD|^PUMP^PATRICK^P|CAR||||2|A0|||||||||||||||||||||||||||||2008"
in1 = "IN1|1|HCID-GL^GLOBAL|HCID-23432|HC PAYOR, INC.|5555 INSURERS CIRCLE^^ANN ARBOR^MI^99999^USA||||||||||||||||||||||||||||||||||||||||||||444-33-3333"
orc = "ORC|1||||||1||20150414120000"
obr = "OBR|1|1|1100|1||||||||||20150414110000|||||||||||||1"

hl7_msg = Message(name='ORM_O01', version='2.3')
hl7_msg.msh=msh
hl7_msg.add_segment("PID")
hl7_msg.pid=pid
hl7_msg.add_segment("PV1")
hl7_msg.pv1=pv1
hl7_msg.add_segment("IN1")
hl7_msg.in1=in1
hl7_msg.add_segment("ORC")
hl7_msg.orc=orc
hl7_msg.add_segment("OBR")
hl7_msg.obr=obr

After that, I have got:

hl7_msg.value -> 'MSH|^~\\&|GHH_ADT||||20080115153000||ORM^O01|0123456789|P|2.5||||AL\rPID|1||566-554-3423^^^GHH^MR||EVERYMAN^ADAM^A|||M|||2222 HOME STREET^^ANN ARBOR^MI^^USA||555-555-2004~444-333-222|||M\rPV1|1|I|GHH PATIENT WARD|U||||^SENDER^SAM^^MD|^PUMP^PATRICK^P|CAR||||2|A0|||||||||||||||||||||||||||||2008\rIN1|1|HCID-GL^GLOBAL|HCID-23432|HC PAYOR, INC.|5555 INSURERS CIRCLE^^ANN ARBOR^MI^99999^USA||||||||||||||||||||||||||||||||||||||||||||444-33-3333\rORC|1||||||1||20150414120000\rOBR|1|1|1100|1||||||||||20150414110000|||||||||||||1'

Q1:

When I test each segment, everything seems to be OK:

hl7_msg.msh.validate() -> True
hl7_msg.pid.validate() -> True
hl7_msg.pv1.validate() -> True
hl7_msg.in1.validate() -> True
hl7_msg.orc.validate() -> True
hl7_msg.obr.validate() -> True

But when I try to test hl7_msg.validate(), I got the error:

Traceback (most recent call last):
File "<pyshell#352>", line 1, in
hl7_msg.validate()
File "C:\Projects\LIStoLIS\venv\Lib\site-packages\hl7apy\core.py", line 751, in validate
return Validator.validate(self, reference=self.reference, report_file=report_file)
File "C:\Projects\LIStoLIS\venv\Lib\site-packages\hl7apy\validation.py", line 207, in validate
raise errors[0]
hl7apy.exceptions.ValidationError: Invalid children detected for : ['PID', 'IN1', 'OBR', 'PV1', 'ORC']

What's the problem?

Q2:

Then, I try to parse the value of the communicate:

orm = parser.parse_message(hl7_msg.value)

orm -> <Message ORM_O01>

orm.value -> 'MSH|^~\\&|GHH_ADT||||20080115153000||ORM^O01|0123456789|P|2.5||||AL\rPID|1||566-554-3423^^^GHH^MR||EVERYMAN^ADAM^A|||M|||2222 HOME STREET^^ANN ARBOR^MI^^USA||555-555-2004~444-333-222|||M\rPV1|1|I|GHH PATIENT WARD|U||||^SENDER^SAM^^MD|^PUMP^PATRICK^P|CAR||||2|A0|||||||||||||||||||||||||||||2008\rIN1|1|HCID-GL^GLOBAL|HCID-23432|HC PAYOR, INC.|5555 INSURERS CIRCLE^^ANN ARBOR^MI^99999^USA||||||||||||||||||||||||||||||||||||||||||||444-33-3333\rORC|1||||||1||20150414120000\rOBR|1|1|1100|1||||||||||20150414110000|||||||||||||1'
orm.msh.value -> 'MSH|^~\\&|GHH_ADT||||20080115153000||ORM^O01|0123456789|P|2.5||||AL'

Everything seems to be OK, but:

orm.pid.validate
Traceback (most recent call last):
File "<pyshell#367>", line 1, in
orm.pid.validate()
File "C:\Projects\LIStoLIS\venv\Lib\site-packages\hl7apy\core.py", line 751, in validate
return Validator.validate(self, reference=self.reference, report_file=report_file)
File "C:\Projects\LIStoLIS\venv\Lib\site-packages\hl7apy\validation.py", line 207, in validate
raise errors[0]
hl7apy.exceptions.ValidationError: Missing required child PID.PID_3

I checked the value of the pid segment, but it is empty:
orm.pid.value -> 'PID'

The rest of the segments are also empty.
The same happens, when I want to parse another way:

msg = msh + '\r' + pid + '\r' + pv1 + '\r' + in1 + '\r' + orc + '\r' + obr

What is the problem?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions