Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
                }
            }
        }