-
Notifications
You must be signed in to change notification settings - Fork 97
Description
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?