Ejemplo n.º 1
0
    def _route_message(self, msg):
        try:
            try:
                msg_type = get_message_type(msg)
            except ParserError:
                raise InvalidHL7Message

            try:
                handler, args = self.handlers[msg_type][0], self.handlers[msg_type][1:]
            except KeyError:
                raise UnsupportedMessageType(msg_type)

            h = handler(msg, *args)
            return h.reply()
        except Exception as e:
            try:
                err_handler, args = self.handlers['ERR'][0], self.handlers['ERR'][1:]
            except KeyError:
                raise e
            else:
                h = err_handler(e, msg, *args)
                return h.reply()
Ejemplo n.º 2
0
    def test_get_message_type(self):
        msh = 'MSH|^~\&|SEND APP|SEND FAC|REC APP|REC FAC|20080115153000||{}|0123456789|P|2.5||||AL\r'

        for mt in ('ADT^A01^ADT_A01', 'ADT^A01', '^^^', '^^ADT_A01'):
            self.assertEqual(get_message_type(msh.format(mt)), mt)
Ejemplo n.º 3
0
 def is_pdqv_message(self):
     try:
         return get_message_type(self.raw_msg) == "QBP^ZV1^QBP_Q21"
     except Exception, e:
         logger.debug("Invalid message: %s: %s" % (self.raw_msg, str(e)))
         return False
Ejemplo n.º 4
0
    def test_get_message_type(self):
        msh = 'MSH|^~\&|SENDING APP|SENDING FAC|REC APP|REC FAC|20080115153000||{}|0123456789|P|2.5||||AL\r'

        for mt in ("ADT^A01^ADT_A01", "ADT^A01", "^^^", "^^ADT_A01"):
            self.assertEqual(get_message_type(msh.format(mt)), mt)
Ejemplo n.º 5
0
    def test_get_message_type(self):
        msh = 'MSH|^~\\&|SEND APP|SEND FAC|REC APP|REC FAC|20080115153000||{}|0123456789|P|2.5||||AL\r'

        for mt in ('ADT^A01^ADT_A01', 'ADT^A01', '^^^', '^^ADT_A01'):
            self.assertEqual(get_message_type(msh.format(mt)), mt)