Пример #1
0
    def test_multiple_segments_parse(self):
        message = HL7Message(self.msg_string1)

        lines = self.msg_string1.splitlines()

        self.assertEqual(six.text_type(message.nk1[0]), lines[3])
        self.assertEqual(six.text_type(message.nk1[1]), lines[4])
        self.assertEqual(six.text_type(message.nk1[2]), lines[5])
Пример #2
0
    def test_unknown_message_parse(self):
        message = HL7Message(self.msg_string1)

        # check parsing of unknown message
        self.assertEqual("45", six.text_type(message.lol[0]))
        self.assertEqual("blubber", six.text_type(message.lol[1][0][1]))
        self.assertEqual("blubber", six.text_type(message.lol[1][0][1]))
        self.assertEqual("hehe", six.text_type(message.lol[1][1][0]))
        self.assertEqual("dumdeldi", six.text_type(message.lol[2][0][1]))
        self.assertEqual("debbel", six.text_type(message.lol[2][1][1]))
Пример #3
0
 def test_datetime(self):
     message = HL7Message(self.msg_string1)
     self.assertEqual(six.text_type(message.pid.datetime_of_birth),
                      '19610615')
     delimiters = HL7Delimiters(*"|^~\&")
     old = "18710826"
     dt = HL7Datetime(old, delimiters)
     self.assertEqual(six.text_type(dt), old)
     time = "19610615132733.0065"
     dt = HL7Datetime(time, delimiters)
     self.assertEqual(six.text_type(dt), time)
Пример #4
0
 def test_mrg_message_parse(self):
     message = HL7Message(self.msg_mrg)
     self.assertEqual(
         "A34", six.text_type(message.header.message_type.trigger_event))
     mrg = message.mrg
     self.assertTrue(mrg.prior_patient_identifier_list)
     self.assertEqual(1, len(mrg.prior_patient_identifier_list))
     self.assertTrue(mrg.prior_patient_identifier_list[0])
     self.assertEqual(
         "3150123",
         six.text_type(mrg.prior_patient_identifier_list[0].id_number))
     self.assertEqual("Q3150123",
                      six.text_type(mrg.prior_alternate_patient_id))
    def getData(self, fileName):
        with open(fileName) as hl7File:
            hl7File = hl7File.read()
            h = HL7Message(hl7File)
            mshDict = {}
            pidDict = {}
            obxList = h.obx
            obxDict = {}
            hl7Dict = {}
            for obxdata in range(len(obxList)):
                key = obxList[obxdata].observation_identifier[1]
                value = obxList[obxdata].observation_value[0]
                obxDict[str(key)] = str(value)

            # adding PID and MSH seperately as they do not change and are required as a valid hl7 message
            pidDict['MDC_ATTR_PT_NAME_GIVEN'] = str(h.pid.patient_name[0][1])
            pidDict['MDC_ATTR_PT_NAME_FAMILY'] = str(h.pid.patient_name[0][0])

            mshDict['SEND_DATE'] = str(h.msh[5])
            mshDict['SENDING_FACILITY'] = str(h.msh[2])
            mshDict['RECEIVING_FACILITY'] = str(h.msh[4])
            self.hl7Dict = dict(**pidDict, **mshDict, **obxDict)
            return self.hl7Dict
Пример #6
0
    def test_unsuccessful_query_status(self):
        message = HL7Message(self.insuccessful_query_result)

        self.assertEqual(six.text_type(message.msa.acknowledgement_code), "AE")
        self.assertEqual(six.text_type(message.msa.text_message), "2018")
Пример #7
0
def test_unicode_message():
    """ unicode message can be cast to unicode and bytestring """
    message = HL7Message("MSH|Dingdong the witch is dead\nFOO|Baababamm")
    str(message)
    six.text_type(message)
Пример #8
0
    def test_message_parse(self):
        message = HL7Message(self.msg_string1)

        # the expected delimiters
        expected_delimiters = HL7Delimiters('|', '^', '~', '\\', '&')

        self.assertEqual(six.text_type(expected_delimiters),
                         str(message.delimiters))

        # check patient data
        self.assertEqual("ADAM",
                         six.text_type(message.pid.patient_name[0].given_name))
        self.assertEqual("ADAM", six.text_type(message.pid[4][0][1]))
        self.assertEqual(
            "EVERYMAN", six.text_type(message.pid.patient_name[0].family_name))
        # unset fields should still exist as attributes
        self.assertTrue(message.pid.patient_name[0].prefix is None)
        self.assertTrue(
            message.pid.patient_name[0].name_representation_code is None)

        # check correct parsing of extended composite ID
        self.assertEqual(2, len(message.pid.patient_identifier_list))

        self.assertEqual(
            "GOOD HEALTH HOSPITAL",
            six.text_type(
                message.pid.patient_identifier_list[0].assigning_facility))
        self.assertEqual(
            "123456789",
            six.text_type(message.pid.patient_identifier_list[1].id_number))

        # check correct parsing of extended adress

        self.assertEqual(
            "HOME STREET",
            six.text_type(
                message.pid.patient_address[0].street_address.street_name))
        self.assertEqual("Greensboro",
                         six.text_type(message.pid.patient_address[0].city))
        self.assertEqual("Westeros",
                         six.text_type(message.pid.patient_address[0].country))

        # check correct parsing of coded with exception

        self.assertEqual("Caucasian", six.text_type(message.pid.race[0].text))

        # check correct parsing of message type

        self.assertEqual(
            "A01", six.text_type(message.header.message_type.trigger_event))
        self.assertEqual(
            "ADT", six.text_type(message.header.message_type.message_code))

        # check correct parsing of processing type

        self.assertEqual(
            "P", six.text_type(message.header.processing_id.processing_id))
        self.assertEqual(
            "default",
            six.text_type(message.header.processing_id.processing_mode))

        # check correct parsing of version identifier

        self.assertEqual("2.7",
                         six.text_type(message.header.version_id.version_id))

        def invalid_attr():
            message.foobar

        self.assertRaises(AttributeError, invalid_attr)
Пример #9
0
    def test_simple_segments_parse(self):
        message = HL7Message(self.msg_string1)

        pid_seg = self.msg_string1.splitlines()[2]

        assert six.text_type(message.pid) == pid_seg
Пример #10
0
 def test_address(self):
     message = HL7Message(self.msg_string1)
     self.assertEqual(six.text_type(message.pid.patient_address),
                      '&HOME STREET&2^^Greensboro^NC^27401-1020^Westeros')