Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagec#
titleSource code example
linenumberstrue
using System;
using System.Collections.Generic;
using System.IO;
using Greenrain.Connect;
using Greenrain.Mnc;

namespace Greenrain.ExamplesMncExamples
{
    class Program
    {
        public static void Main(string[] args)
        {
            // Input XML file name.
        

               // The example file can be in the folder Greenrain.Mnc.Examples\Example Files\TestOneClaimWithErrors.xml.
            // This file can be copied to the executable file folder and run app with the parameter.
            // For example> "C:\Greenrain.Mnc.Examples\Greenrain.Mnc.Examples\bin\Debug>Greenrain.Mnc.Examples.exe TestOneClaimWithErrors.xml"
            // Or use the next line:
            //args = new[] { "TestOneClaimWithErrors.xml" };

            // Exceptions info and validation errors.
            ValidationResult result;

            var mnc = new GreenrainMnc();

            Console.WriteLine("Running...");
            Console.WriteLine();

            // Check input parameters
            if (args == null || args.Length == 0)
            {
                // Examples for GreenrainMnc.RunMnc().
                result = RunMncExample(mnc);
            }
            else
            {
                // Examples for GreenrainMnc.RunClaimSubmissionChecks().
                result = RunClaimSubmissionChecksExample(args, mnc);
            }

            PrintMncResult(result);

            // Exit the app.
            Console.WriteLine();
            Console.WriteLine("Press any key to exit...");
            Console.ReadKey();
        }

        private static ValidationResult RunMncExample(GreenrainMnc mnc)
        {
            // MNC validation: Exception code -1002 "Claim ID must have value".
            //*
            var result = mnc.RunMnc(null, null, null, null,
null, null, null);              //new MNCList<string> validation: Exception code -1003 "At least one CPT code must be provided".{ "82550", "82565", "85379", "82575", "82947", "85025", "0001F", "0005F" },
             //var result = mnc.RunMnc("id_512", null, null, null, null, null, null);"R51",
                new List<string> { "I10", "R06.02" });
            */

            // MNC validation: 10 errors.
            var result = mnc.RunMnc(
                "id_512", null, 0, 1,
                new List<string> {"82550", "82565", "85379", "82575", "82947", "85025", "0001F", "0005F"},
                "R51",
                new List<string> {"I10", "R06.02"});

            return result;
        }

        private static ValidationResult RunClaimSubmissionChecksExample(string[] args, GreenrainMnc mnc)
        {
            var result = new ValidationResult();

            var fileName = args[0];

            if (string.IsNullOrEmpty(fileName))
            {
                Console.WriteLine("File name not present.");
                Console.WriteLine();
                return result;
            }

            if (Path.GetExtension(fileName).ToUpper() != ".XML")
            {
                Console.WriteLine($"It is not XML file - {fileName}.");
                Console.WriteLine();
                return result;
            }

            if (!File.Exists(Path.Combine(Directory.GetCurrentDirectory(), fileName)))
            {
                Console.WriteLine($"Not found file - {fileName}.");
                Console.WriteLine();
                return result;
            }

            // Read XML file data
            var content = File.ReadAllBytes(Path.Combine(Directory.GetCurrentDirectory(), fileName));

            // Run MNC validation.
            result = mnc.RunClaimSubmissionChecks(content, fileName);

            return result;
        }

        private static void PrintMncResult(ValidationResult result)
        {
            if (result == null)
            {
                return;
            }

            // Exception code. if the code < 0, then an exception has occurred
            Console.WriteLine($"Result Code: {result.Code}");
            Console.WriteLine($"Result exception description: {result.Description}");

            Console.WriteLine($"Errors count: {result.ErrorCollection.ValidationErrors.Count}");

            // Print error list
            Console.WriteLine();
            Console.WriteLine("Errors:");
            foreach (var error in result.ErrorCollection.ValidationErrors)
            {
                Console.WriteLine(
                    $" - {error.ValidationRuleId}; " +
                    $"{error.ReferenceObjectName}; {error.ReferenceObjectPropertyName}; {error.ReferenceObjectPropertyValue}; " +
                    $"{error.OwnerObjectName}; {error.OwnerObjectPropertyName}; {error.OwnerObjectPropertyValue}; " +
                    $"{error.ErrorType}; \n{error.ErrorDescription}; ");
                Console.WriteLine();
            }
        }
    }
}

...