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()
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)
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
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)
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)