static void Main(string[] args) { string x12Filename = args[0]; string outputFilename = args.Length > 1 ? args[1] : x12Filename + ".edi"; if (x12Filename.Length == 0) { Console.WriteLine("There was an error reading the input file argument. Please check the path and filename."); return; } var fs = new StreamReader(x12Filename); string xmltext = fs.ReadToEnd(); var parser = new Parsing.X12Parser(); string x12 = string.Empty; try { x12 = parser.TransformToX12(xmltext); } catch (Exception ex) { Console.WriteLine("The transformation encountered a problem: " + ex.Message + " -> " +ex.InnerException); } finally { fs.Close(); } var outputFs = new FileStream(outputFilename, FileMode.Create); var writer = new StreamWriter(outputFs); writer.Write(x12); writer.Close(); }
static void Main(string[] args) { string x12Filename = args[0]; string outputFilename = args.Length > 1 ? args[1] : x12Filename + ".edi"; if (x12Filename.Length == 0) { Console.WriteLine("There was an error reading the input file argument. Please check the path and filename."); return; } var fs = new StreamReader(x12Filename); string xmltext = fs.ReadToEnd(); var parser = new Parsing.X12Parser(); string x12 = string.Empty; try { x12 = parser.TransformToX12(xmltext); } catch (Exception ex) { Console.WriteLine("The transformation encountered a problem: " + ex.Message + " -> " + ex.InnerException); } finally { fs.Close(); } var outputFs = new FileStream(outputFilename, FileMode.Create); var writer = new StreamWriter(outputFs); writer.Write(x12); writer.Close(); }
public void TransToDentalClaim5010() { string x12 = @"ISA*00* *00* *01*9012345720000 *01*9088877320000 *020816*1144*U*00401*000000031*1*T*:~ GS*HC*901234572000*908887732000*20070816*1615*31*X*005010X096A1~ ST*837*873501~ BHT*0019*00*0125*19970411*1524*CH~ REF*87*004010X097~ NM1*41*2*DENTAL ASSOCIATES*****46*579999999~ PER*IC*SYDNEY SNOW*TE*2125557987~ NM1*40*2*HEISMAN INSURANCE COMPANY*****46*555667777~ HL*1**20*1~ NM1*85*2*DENTAL ASSOCIATES*****XX*591PD123~ N3*10 1/2 SHOEMAKER STREET~ N4*COBBLER*CA*99997~ REF*TJ*579999999~ HL*2*1*22*1~ SBR*P*****6***LM~ NM1*IL*1*HOWLING*HAL****MI*B99977791G~ NM1*PR*2*HEISMAN INSURANCE COMPANY*****PI*999888777~ HL*3*2*23*0~ PAT*41~ NM1*QC*1*DIMPSON*D*J***34*567324788~ N3*32 BUFFALO RUN~ N4*ROCKING HORSE*CA*99666~ DMG*D8*19480601*M~ REF*Y4*32323232~ CLM*900000032*390***11::1*Y**Y*Y**AA:::CA~ DTP*439*D8*19970201~ DTP*472*D8*19970202~ NM1*82*1*MOGLIE*BRUNO****34*224873702~ PRV*PE*ZZ*122300000N~ LX*1~ SV3*AD:D0330*40****1~ LX*2~ SV3*AD:D5820*350***I*1~ TOO*JP*8~ TOO*JP*9*M~ TOO*JP*13*M:O~ SE*35*873501~ GE*1*31~ IEA*1*000000031~"; var service = new ClaimTransformationService(); var x12Parser = new Parsing.X12Parser(); var document = service.Transform837ToClaimDocument(x12Parser.ParseMultiple(x12).First()); Claim claim = document.Claims.First(); Trace.Write(claim.Serialize()); Assert.AreEqual(3, claim.ServiceLines.Sum(sl => sl.ToothInformations.Count)); }
static void Main(string[] args) { int maxBatchSize = 10 * 1012 * 1012; // 10 Mbytes if (ConfigurationManager.AppSettings["MaxBatchSize"] != null) maxBatchSize = Convert.ToInt32(ConfigurationManager.AppSettings["MaxBatchSize"]); string x12Filename = args[0]; string outputFilename = args.Length > 1 ? args[1] : x12Filename + ".xml"; OopFactory.X12.Parsing.X12Parser parser = new Parsing.X12Parser(); byte[] header = new byte[6]; using (FileStream fs = new FileStream(x12Filename, FileMode.Open, FileAccess.Read)) { // peak at first 6 characters to determine if this is a unicode file fs.Read(header, 0, 6); fs.Close(); } Encoding encoding = (header[1] == 0 && header[3] == 0 && header[5] == 0) ? Encoding.Unicode : Encoding.UTF8; if (new FileInfo(x12Filename).Length <= maxBatchSize) { using (FileStream fs = new FileStream(x12Filename, FileMode.Open, FileAccess.Read)) { var interchanges = parser.ParseMultiple(fs, encoding); if (interchanges.Count >= 1) { using (FileStream outputFs = new FileStream(outputFilename, FileMode.Create)) { interchanges.First().Serialize(outputFs); } } if (interchanges.Count > 1) { for (int i = 1; i < interchanges.Count; i++) { outputFilename = string.Format("{0}_{1}.xml", args.Length > 1 ? args[1] : x12Filename, i + 1); using (FileStream outputFs = new FileStream(outputFilename, FileMode.Create)) { interchanges[i].Serialize(outputFs); } } } } } else { using (FileStream fs = new FileStream(x12Filename, FileMode.Open, FileAccess.Read)) { // Break up output files by batch size X12StreamReader reader = new X12StreamReader(fs, encoding); X12FlatTransaction currentTransactions = reader.ReadNextTransaction(); X12FlatTransaction nextTransaction = reader.ReadNextTransaction(); int i = 1; while (!string.IsNullOrEmpty(nextTransaction.Transactions.First())) { if (currentTransactions.GetSize() + nextTransaction.GetSize() < maxBatchSize && currentTransactions.IsaSegment == nextTransaction.IsaSegment && currentTransactions.GsSegment == nextTransaction.GsSegment) { currentTransactions.Transactions.AddRange(nextTransaction.Transactions); } else { outputFilename = string.Format("{0}_{1}.xml", args.Length > 1 ? args[1] : x12Filename, i++); using (FileStream outputFs = new FileStream(outputFilename, FileMode.Create)) { parser.ParseMultiple(currentTransactions.ToString()).First().Serialize(outputFs); } currentTransactions = nextTransaction; } nextTransaction = reader.ReadNextTransaction(); } outputFilename = string.Format("{0}_{1}.xml", args.Length > 1 ? args[1] : x12Filename, i++); using (FileStream outputFs = new FileStream(outputFilename, FileMode.Create)) { parser.ParseMultiple(currentTransactions.ToString()).First().Serialize(outputFs); } } } }
static void Main(string[] args) { int maxBatchSize = 10 * 1012 * 1012; // 10 Mbytes if (ConfigurationManager.AppSettings["MaxBatchSize"] != null) { maxBatchSize = Convert.ToInt32(ConfigurationManager.AppSettings["MaxBatchSize"]); } bool throwException = Convert.ToBoolean(ConfigurationManager.AppSettings["ThrowExceptionOnSyntaxErrors"]); string x12Filename = args[0]; string outputFilename = args.Length > 1 ? args[1] : x12Filename + ".xml"; OopFactory.X12.Parsing.X12Parser parser = new Parsing.X12Parser(throwException); parser.ParserWarning += new Parsing.X12Parser.X12ParserWarningEventHandler(parser_ParserWarning); byte[] header = new byte[6]; using (FileStream fs = new FileStream(x12Filename, FileMode.Open, FileAccess.Read)) { // peak at first 6 characters to determine if this is a unicode file fs.Read(header, 0, 6); fs.Close(); } Encoding encoding = (header[1] == 0 && header[3] == 0 && header[5] == 0) ? Encoding.Unicode : Encoding.UTF8; if (new FileInfo(x12Filename).Length <= maxBatchSize) { using (FileStream fs = new FileStream(x12Filename, FileMode.Open, FileAccess.Read)) { var interchanges = parser.ParseMultiple(fs, encoding); if (interchanges.Count >= 1) { using (FileStream outputFs = new FileStream(outputFilename, FileMode.Create)) { interchanges.First().Serialize(outputFs); } } if (interchanges.Count > 1) { for (int i = 1; i < interchanges.Count; i++) { outputFilename = string.Format("{0}_{1}.xml", args.Length > 1 ? args[1] : x12Filename, i + 1); using (FileStream outputFs = new FileStream(outputFilename, FileMode.Create)) { interchanges[i].Serialize(outputFs); } } } } } else { using (FileStream fs = new FileStream(x12Filename, FileMode.Open, FileAccess.Read)) { // Break up output files by batch size X12StreamReader reader = new X12StreamReader(fs, encoding); X12FlatTransaction currentTransactions = reader.ReadNextTransaction(); X12FlatTransaction nextTransaction = reader.ReadNextTransaction(); int i = 1; while (!string.IsNullOrEmpty(nextTransaction.Transactions.First())) { if (currentTransactions.GetSize() + nextTransaction.GetSize() < maxBatchSize && currentTransactions.IsaSegment == nextTransaction.IsaSegment && currentTransactions.GsSegment == nextTransaction.GsSegment) { currentTransactions.Transactions.AddRange(nextTransaction.Transactions); } else { outputFilename = string.Format("{0}_{1}.xml", args.Length > 1 ? args[1] : x12Filename, i++); using (FileStream outputFs = new FileStream(outputFilename, FileMode.Create)) { parser.ParseMultiple(currentTransactions.ToString()).First().Serialize(outputFs); } currentTransactions = nextTransaction; } nextTransaction = reader.ReadNextTransaction(); } outputFilename = string.Format("{0}_{1}.xml", args.Length > 1 ? args[1] : x12Filename, i++); using (FileStream outputFs = new FileStream(outputFilename, FileMode.Create)) { parser.ParseMultiple(currentTransactions.ToString()).First().Serialize(outputFs); } } } }