private static void TestParserAutomatedContext() { if (_messages.Count > 0) { Console.WriteLine("\n==============================================\nTesting parsing with automated context."); var parser = new PipeParser(); var context = new AutomatedContext(parser.ValidationContext); parser.ValidationContext = context; Console.WriteLine("Encodingrules added:\t {0}", context.EncodingRuleCount); Console.WriteLine("Messagerules added:\t {0}", context.MessageRuleCount); Console.WriteLine("PrimitiveTyperules added: {0}", context.PrimitiveRuleCount); Console.WriteLine(); var count = 0; foreach (var m in _messages) { var im = parser.Parse(m); var structure = im.GetStructureName(); Console.WriteLine("Parsed {0}, V{1}.", structure, im.Version); count++; } Console.WriteLine("\nDone! (Parsed {0})", count); } }
public void ParsesAllHl7MessagesWithAutomatedContext() { Console.WriteLine("\n==============================================\nTesting parsing with automated context."); // Arrange var expectedEncodingRulesCount = 1; var expectedMessageRulesCount = 2; var expectedPrimitiveTypeRulesCount = 1; var expectedParse = new List <ParseResult> { new ParseResult("ADT_A01", "2.5"), new ParseResult("ADT_A08", "2.3"), new ParseResult("ADT_A08", "2.3"), new ParseResult("DFT_P03", "2.3"), new ParseResult("ORU_R01", "2.4"), new ParseResult("SIU_S12", "2.3") }; var messages = GetHl7Strings(); var parser = new PipeParser(); var context = new AutomatedContext(parser.ValidationContext); parser.ValidationContext = context; Console.WriteLine("Encoding Rules added:\t\t{0}", context.EncodingRuleCount); Console.WriteLine("Message Rules added:\t\t{0}", context.MessageRuleCount); Console.WriteLine("PrimitiveType Rules added:\t{0}\n", context.PrimitiveRuleCount); var parsed = new List <ParseResult>(); foreach (var m in messages) { var im = parser.Parse(m); var structure = im.GetStructureName(); Console.WriteLine("Parsed {0}, V{1}.", structure, im.Version); parsed.Add(new ParseResult(structure, im.Version)); } Assert.AreEqual(expectedEncodingRulesCount, context.EncodingRuleCount); Assert.AreEqual(expectedMessageRulesCount, context.MessageRuleCount); Assert.AreEqual(expectedPrimitiveTypeRulesCount, context.PrimitiveRuleCount); Assert.AreEqual(expectedParse, parsed); Console.WriteLine("\nDone! (Parsed {0})", parsed.Count); }
private static void DemonstrateNhapiToolsAutomatedContext() { try { //Using an automated context should automatically load all validation rules in the assembly //use app.config setting key "NHapiRulesNamespace" to specify which .NET assembly to load for rules //here, we are including the message rule class "AdtA01MustHaveEvn4DataMessageRule" in the same assembly const string adtMessageToValidateAgainst = "MSH|^~\\&|SENDING_APPLICATION|SENDING_FACILITY|RECEIVING_APPLICATION|RECEIVING_FACILITY|" + "20110613083617||ADT^A01|2323232223232|P|2.3||||\r" + "EVN|A01|20110613083617|||\r" + "PID|1||135769||MOUSE^MICKEY^||19281118|M|||123 Main St.^^Lake Buena Vista^FL^32830|" + "|(407)939-1289^^^[email protected]|||||1719|99999999||||||||||||||||||||\r" + "PV1|1|O|||||^^^^^^^^|^^^^^^^^";; LogToDebugConsole("Demonstration of NHAPI Tools Automated Context..."); var parser = new PipeParser(); //this should load the var context = new AutomatedContext(parser.ValidationContext); parser.ValidationContext = context; //parse the message containing no event reason code data (EVN-4) //this should trigger a validation exception parser.Parse(adtMessageToValidateAgainst); } catch (System.Exception ex) { LogToDebugConsole("Validation exception thrown..."); if (ex.InnerException != null) { LogToDebugConsole("Custom Validation: Message failed during parsing:" + ex.InnerException.Message); } } }