def home(): form = forms.TransForm() alert = FormError() if form.validate_on_submit(): try: message = HL7Message.from_string(form.message.data) mapping = HL7Mapping.from_string(form.mapping.data) transform = HL7Transform(mapping) message_out = transform.execute(message) form.message_out.data = message.to_string() except APIError as e: alert.text = 'Could not read HL7 message. Please check your format.' alert.trace = e.args[0] alert.error_status = True # except (TypeError, IndexError) as e: # alert.text = 'Could not read HL7 message. Please check your format.' # alert.trace = str(e) # alert.error_status = True except json.decoder.JSONDecodeError as e: alert.text = 'Could not read your mapping scheme. Please check if the JSON format is valid.' alert.trace = str(e) alert.error_status = True except (IndexError, KeyError, RuntimeError) as e: alert.text = 'Error occurred during processing.' alert.trace = str(e) alert.error_status = True return render_template("home.html", form=form, alert=alert)
def test_execute(self): op = GenerateCurrentDatetime(['MSH.2'], {}) msg = HL7Message.from_file('hl7_transform/test/test_transform.hl7') s = io.StringIO() with redirect_stderr(s): # hides the warning message from output res1 = op.execute(msg) self.assertIn('deprecated', s.getvalue()) res2 = op(msg) self.assertEqual(res1, res2)
def main_cli(args): if args.type == 'json': mapping = HL7Mapping.from_json(args.mappingfile) elif args.type == 'csv': mapping = HL7Mapping.from_csv(args.mappingfile) else: raise TypeError( 'Unsupported mapping file type. Currently supported are: json, csv.' ) transform = HL7Transform(mapping) if args.message: message = HL7Message.from_file(args.message) else: message = HL7Message.new() message_transformed = transform(message) if args.out is not None: with open(args.out, 'w') as f_out: f_out.write(message_transformed.to_string()) else: print(message_transformed.to_string())
def setUp(self): mapping = HL7Mapping.from_json( 'hl7_transform/test/test_transform.json') # using example message from hl7 library (readthedocs) self.message = HL7Message.from_file('hl7_transform/test/test_msg.hl7') self.transform = HL7Transform(mapping)
def setUp(self): self.message = HL7Message.from_file('hl7_transform/test/test_msg.hl7')
def test_raises(self): with self.assertRaises(APIError): HL7Message.from_string('MSH|')
def test_generatenumericid(self): field = 'NTE.4' op = GenerateNumericID([field], {}) msg = HL7Message.from_file('hl7_transform/test/test_transform.hl7') res = op(msg) self.assertTrue(0 <= int(res) <= 1e9)
def test_generatealphanumericid(self): field = 'NTE.4' op = GenerateAplhanumericID([field], {}) msg = HL7Message.from_file('hl7_transform/test/test_transform.hl7') res = op(msg) self.assertIsNotNone(res)