public void Unbundling835ByLoop2000() { string unbundledLoop2000 = @"ISA*00* *00* *ZZ*ASHTB *ZZ*01017 *040315*1005*U*00401*004075123*0*P*:~ GS*HP*ASHTB*01017*20040315*1005*1*X*004010X091A1~ ST*835*07504123~ BPR*H*5.75*C*NON************20040315~ TRN*1*A04B001017.07504*1346000128~ DTM*405*20040308~ N1*PR*ASHTABULA COUNTY ADAMH BD~ N3*4817 STATE ROAD SUITE 203~ N4*ASHTABULA*OH*44004~ N1*PE*LAKE AREA RECOVERY CENTER *FI*346608640~ N3*2801 C. COURT~ N4*ASHTABULA*OH*44004~ REF*PQ*1017~ LX*1~ CLP*444444*1*56.70*56.52*0*MC*0000000655555555*53~ NM1*QC*1*FUDD*ELMER*S***MI*1333333~ NM1*82*2*WECOVERWY SVCS*****FI*346608640~ REF*F8*A76B04054~ SVC*HC:H0005:HF:H9*56.70*56.52**6~ DTM*472*20040205~ CAS*CO*42*0.18*0~ REF*6R*444444~ CLP*999999*4*25.95*0*25.95*13*0000000555555555*11~ NM1*QC*1*SAM*YOSEMITE*A***MI*3333333~ NM1*82*2*ACME AGENCY*****FI*310626223~ REF*F8*H57B10401~ SVC*ZZ:M2200:HE*25.95*0**1~ DTM*472*20021224~ CAS*CR*18*25.95*0~ CAS*CO*42*0*0~ REF*6R*999999~ CLP*888888*4*162.13*0*162.13*MC*0000000456789123*11~ NM1*QC*1*SQUAREPANTS*BOB* ***MI*2222222~ NM1*82*2*BIKINI AGENCY*****FI*310626223~ REF*F8*H57B10401~ SVC*ZZ:M151000:F0*162.13*0**1.9~ DTM*472*20020920~ CAS*CO*29*162.13*0*42*0*0~ REF*6R*888888~ CLP*111111*2*56.52*18.88*0*13*0000000644444444*53~ NM1*QC*1*LEGHORN*FOGHORN*P***MI*7777777~ NM1*82*2*CHICKENHAWK SVCS*****FI*346608640~ REF*F8*A76B04054~ SVC*HC:H0005:HF:H9*56.52*18.88**6~ DTM*472*20031209~ CAS*CO*42*0*0~ CAS*OA*23*37.64*0~ REF*6R*111111~ CLP*121212*4*56.52*0*0*13*0000000646464640*53~ NM1*QC*1*EXPLORER*DORA****MI*1717171~ NM1*82*2*SWIPER AGENCY*****FI*346608640~ REF*F8*A76B04054~ SVC*HC:H0005:HF:H9*56.52*0**6~ DTM*472*20031202~ CAS*CO*42*0*0~ CAS*OA*23*57.6*0*23*-1.08*0~ REF*6R*121212~ CLP*333333*1*74.61*59.69*14.92*13*0000000688888888*55~ NM1*QC*1*BEAR*YOGI* ***MI*2222222~ NM1*82*2*JELLYSTONE SVCS*****FI*346608640~ REF*F8*A76B04054~ SVC*ZZ:A0230:HF*74.61*59.69**1~ DTM*472*20040203~ CAS*PR*2*14.92*0~ CAS*CO*42*0*0~ REF*6R*333333~ CLP*777777*25*136.9*0*0*13*0000000622222222*53~ NM1*QC*1*BIRD*TWEETY*M***MI*4444444~ NM1*82*2*GRANNY AGENCY*****FI*340716747~ REF*F8*A76B03293~ SVC*HC:H0015:HF:99:H9*136.9*0**1~ DTM*472*20030911~ CAS*PI*104*136.72*0~ CAS*CO*42*0.18*0~ REF*6R*777777~ CLP*123456*22*-42.58*-42.58*0*13*0000000657575757*11~ NM1*QC*1*SIMPSON*HOMER* ***MI*8787888~ NM1*82*2*DOH GROUP*****FI*310626223~ REF*F8*A57B04033~ SVC*HC:H0036:GT:UK*-42.58*-42.58**-2~ DTM*472*20040102~ CAS*CR*141*0*0*42*0*0*22*0*0~ CAS*OA*141*0*0~ REF*6R*123456~ CLP*090909*22*-86.76*-86.76*0*MC*0000000648484848*53~ NM1*QC*1*DUCK*DAFFY*W***MI*1245849~ NM1*82*2*ABTHSOLUTE HELP*****FI*346608640~ REF*F8*A76B04054~ SVC*HC:H0004:HF:H9*-86.76*-86.76**-4~ DTM*150*20040210~ DTM*151*20040211~ CAS*CR*22*0*0*42*0*0~ CAS*OA*22*0*0~ REF*6R*090909~ AMT*AU*86.76~ QTY*NE*53~ LQ*HE*MA92~ PLB*123456*19960930*CV:9876514*-1.27~ SE*97*07504123~ GE*1*1~ IEA*1*004075123~"; X12Parser parser = new X12Parser(); Interchange interchange = parser.ParseMultiple(Extensions.GetEdi("INS._835._4010.Example1_GripElements.txt")).First(); var list = parser.UnbundleByLoop(interchange, "2000"); Assert.AreEqual(1, list.Count); Assert.AreEqual(unbundledLoop2000, list[0].SerializeToX12(true)); Trace.WriteLine(list[0].SerializeToX12(true)); }
public void FlattenUsingXmlDocument() { Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("OopFactory.X12.Tests.Unit.Parsing._SampleEdiFiles.ORD._820.Example1_MortgageBankers.txt"); X12Parser parser = new X12Parser(); Interchange interchange = parser.ParseMultiple(stream).First(); string xml = interchange.Serialize(); XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); FileStream fstream = new FileStream("c:\\Temp\\ORD._820.Example1.txt", FileMode.Create); StreamWriter writer = new StreamWriter(fstream); writer.WriteLine("Transaction,Creation Date,Submitter Name, Borrower Last Name, Remittance ID"); foreach (XmlElement transaction in doc.SelectNodes("/Interchange/FunctionGroup/Transaction")) { foreach (XmlElement entity in transaction.SelectNodes("Loop[@LoopId='ENT']")) { foreach (XmlElement remit in entity.SelectNodes("Loop[@LoopId='RMR']")) { writer.WriteLine("{0},{1},{2},{3},{4}", transaction.SelectSingleNode("ST/ST02").InnerText, transaction.SelectSingleNode("DTM[DTM01='097']/DTM02").InnerText, transaction.SelectSingleNode("Loop[@LoopId='N1']/N1[N101='41']/N102").InnerText, entity.SelectSingleNode("Loop[@LoopId='NM1']/NM1[NM101='BW']/NM103").InnerText, remit.SelectSingleNode("RMR/RMR02").InnerText); } } } writer.Close(); fstream.Close(); }
public void UnbundleItemsFrom856Test() { X12Parser parser = new X12Parser(); Interchange interchange = parser.ParseMultiple(Extensions.GetEdi("ORD._856.Example1.txt")).First(); var list = parser.UnbundleByLoop(interchange, "ITEM"); foreach (var item in list) { Trace.WriteLine("..."); Trace.WriteLine(item.SerializeToX12(true)); } }
/// <summary> /// Reads a claim that has been st /// </summary> /// <param name="stream"></param> /// <returns></returns> public ClaimDocument Transform837ToClaimDocument(Stream stream) { var parser = new X12Parser(); var interchanges = parser.ParseMultiple(stream); ClaimDocument doc = new ClaimDocument(); foreach (var interchange in interchanges) { var thisDoc = Transform837ToClaimDocument(interchange); doc.Claims.AddRange(thisDoc.Claims); } return doc; }
static void Main(string[] args) { var opts = new ExecutionOptions(); try { opts.LoadOptions(args); } catch (ArgumentException exc) { Console.Write(exc.Message); return; } X12Parser parser = new X12Parser(); foreach (var filename in Directory.GetFiles(opts.InputDirectory, opts.FilenamePattern)) { FileInfo inputFile = new FileInfo(filename); List<Interchange> list = new List<Interchange>(); using (FileStream fs = new FileStream(inputFile.FullName, FileMode.Open, FileAccess.Read)) { X12StreamReader reader = new X12StreamReader(fs, Encoding.UTF8); X12FlatTransaction transaction = reader.ReadNextTransaction(); while (!string.IsNullOrEmpty(transaction.Transactions.First())) { string x12 = transaction.ToString(); var interchange = parser.ParseMultiple(x12).First(); if (opts.LoopId == "ST") list.Add(interchange); else { list.AddRange(parser.UnbundleByLoop(interchange, opts.LoopId)); } transaction = reader.ReadNextTransaction(); } } List<Interchange> interchanges = parser.ParseMultiple(new FileStream(filename, FileMode.Open, FileAccess.Read)); for (int i = 0; i < list.Count; i++) { string outputFilename = String.Format(opts.FormatString, opts.OutputDirectory, inputFile.Name, i + 1, inputFile.Extension); using (FileStream outputFilestream = new FileStream(outputFilename, FileMode.Create, FileAccess.Write)) { using (StreamWriter writer = new StreamWriter(outputFilestream)) { writer.Write(list[i].SerializeToX12(opts.IncludeWhitespace)); writer.Close(); } outputFilestream.Close(); } } } }
public void FlattenUsingXslt() { Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("OopFactory.X12.Tests.Unit.Parsing._SampleEdiFiles.ORD._820.Example1_MortgageBankers.txt"); X12Parser parser = new X12Parser(); Interchange interchange = parser.ParseMultiple(stream).First(); string xml = interchange.Serialize(); var transform = new XslCompiledTransform(); transform.Load(XmlReader.Create(Assembly.GetExecutingAssembly().GetManifestResourceStream("OopFactory.X12.Tests.Unit.Flattening.820-XML-to-csv.xslt"))); var writer = new StringWriter(); transform.Transform(XmlReader.Create(new StringReader(xml)), new XsltArgumentList(), writer); System.Diagnostics.Trace.WriteLine(writer.GetStringBuilder().ToString()); }
public void ParseToXml() { string resourcePath = Convert.ToString(TestContext.DataRow["ResourcePath"]); Trace.WriteLine(resourcePath); Stream stream = GetEdi(resourcePath); X12Parser parser = new X12Parser(); Interchange interchange = parser.ParseMultiple(stream).First(); string xml = interchange.Serialize(); #if DEBUG new FileStream(@"c:\Temp\" + resourcePath.Replace(".txt", ".xml"), FileMode.Create).PrintToFile(xml); #endif XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); int index = 1; string query = GetXPathQuery(index); while (!string.IsNullOrWhiteSpace(query)) { string expected = GetExpectedValue(index); XmlNode node = doc.SelectSingleNode((string)query); Assert.IsNotNull(node, "Query '{0}' not found in {1}.", query, resourcePath); Assert.AreEqual(expected, node.InnerText, "Value {0} not expected from query {1} in {2}.", node.InnerText, query, resourcePath); Trace.WriteLine(String.Format("Query '{0}' succeeded.", query)); query = GetXPathQuery(++index); } if (resourcePath.Contains("_837D")) { stream = GetEdi(resourcePath); parser = new X12Parser(new DentalClaimSpecificationFinder()); interchange = parser.ParseMultiple(stream).First(); xml = interchange.Serialize(); #if DEBUG new FileStream(@"c:\Temp\" + resourcePath.Replace(".txt", "_837D.xml"), FileMode.Create).PrintToFile(xml); #endif } if (resourcePath.Contains("_837I")) { stream = GetEdi(resourcePath); parser = new X12Parser(new InstitutionalClaimSpecificationFinder()); interchange = parser.ParseMultiple(stream).First(); xml = interchange.Serialize(); #if DEBUG new FileStream(@"c:\Temp\" + resourcePath.Replace(".txt", "_837I.xml"), FileMode.Create).PrintToFile(xml); #endif } }
private Stream normalParse(Stream input, Encoding encoding) { OopFactory.X12.Parsing.X12Parser parser = new OopFactory.X12.Parsing.X12Parser(throwException); Stream stream = new MemoryStream(); StreamWriter writer = new StreamWriter(stream, encoding); var interchanges = parser.ParseMultiple(input, encoding); writer.Write("<Interchanges>"); for (int i = 0; i < interchanges.Count; i++) { var interchange = interchanges[i].Serialize(); writer.Write(interchange.RemoveXmlDeclaration()); } writer.Write("</Interchanges>"); writer.Flush(); stream.Position = 0; return(stream); }
private static void MergeEdiTest() { using (Stream stream1 = Assembly.GetExecutingAssembly().GetManifestResourceStream("EdiTransform.InstitutionalClaim4010.txt")) { using (Stream stream2 = Assembly.GetExecutingAssembly().GetManifestResourceStream("EdiTransform.InstitutionalClaim5010.txt")) { var parser = new X12Parser(); var interchange1 = parser.ParseMultiple(stream1).ToList().FirstOrDefault(); var interchange2 = parser.ParseMultiple(stream2).ToList().FirstOrDefault(); foreach (var transaction in interchange2.FunctionGroups.ToArray().First().Transactions) { interchange1.FunctionGroups.ToArray().First().Transactions.Add(transaction); } string newX12 = interchange1.SerializeToX12(true); Debug.WriteLine("After passing through interchange object:"); Debug.WriteLine(newX12); } } }
private Stream chunkParse(Stream input, Encoding encoding, int maxBatchSize) { OopFactory.X12.Parsing.X12Parser parser = new OopFactory.X12.Parsing.X12Parser(throwException); Stream stream = new MemoryStream(); StreamWriter writer = new StreamWriter(stream, encoding); writer.Write("<Interchanges>"); // Break up output files by batch size X12StreamReader reader = new X12StreamReader(stream, 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 { var interchange = parser.ParseMultiple(currentTransactions.ToString()).First().Serialize(); writer.Write(interchange.RemoveXmlDeclaration()); currentTransactions = nextTransaction; } nextTransaction = reader.ReadNextTransaction(); } var finalInterchange = parser.ParseMultiple(currentTransactions.ToString()).First().Serialize(); writer.Write(finalInterchange.RemoveXmlDeclaration()); writer.Write("</Interchanges>"); writer.Flush(); stream.Position = 0; return(stream); }
public X12EdiParsingService(bool suppressComments, ISpecificationFinder specFinder) { _parser = new X12Parser(specFinder); }
public X12EdiParsingService(bool suppressComments) { _parser = new X12Parser(); _suppressComments = suppressComments; }
public void Unbundling835ByLoop2110() { X12Parser parser = new X12Parser(); Interchange interchange = parser.ParseMultiple(Extensions.GetEdi("INS._835._4010.Example1_GripElements.txt")).First(); var list = parser.UnbundleByLoop(interchange, "2110"); Assert.AreEqual(9, list.Count); }
public void Unbundling835ByLoop2100() { string thirdUnbundledClaim = @"ISA*00* *00* *ZZ*ASHTB *ZZ*01017 *040315*1005*U*00401*004075123*0*P*:~ GS*HP*ASHTB*01017*20040315*1005*1*X*004010X091A1~ ST*835*07504123~ BPR*H*5.75*C*NON************20040315~ TRN*1*A04B001017.07504*1346000128~ DTM*405*20040308~ N1*PR*ASHTABULA COUNTY ADAMH BD~ N3*4817 STATE ROAD SUITE 203~ N4*ASHTABULA*OH*44004~ N1*PE*LAKE AREA RECOVERY CENTER *FI*346608640~ N3*2801 C. COURT~ N4*ASHTABULA*OH*44004~ REF*PQ*1017~ LX*1~ CLP*888888*4*162.13*0*162.13*MC*0000000456789123*11~ NM1*QC*1*SQUAREPANTS*BOB* ***MI*2222222~ NM1*82*2*BIKINI AGENCY*****FI*310626223~ REF*F8*H57B10401~ SVC*ZZ:M151000:F0*162.13*0**1.9~ DTM*472*20020920~ CAS*CO*29*162.13*0*42*0*0~ REF*6R*888888~ PLB*123456*19960930*CV:9876514*-1.27~ SE*22*07504123~ GE*1*1~ IEA*1*004075123~"; X12Parser parser = new X12Parser(); Interchange interchange = parser.ParseMultiple(Extensions.GetEdi("INS._835._4010.Example1_GripElements.txt")).First(); var list = parser.UnbundleByLoop(interchange, "2100"); Assert.AreEqual(9, list.Count); Assert.AreEqual(thirdUnbundledClaim, list[2].SerializeToX12(true)); Trace.WriteLine(list[2].SerializeToX12(true)); }
public void UnbundleClaimsIn837FromNthTest() { X12Parser parser = new X12Parser(); Interchange interchange = parser.ParseMultiple(Extensions.GetEdi("INS._837P._4010.FromNth.837_DeIdent_05.dat")).First(); var list = parser.UnbundleByLoop(interchange, "2300"); Assert.AreEqual(186, list.Count); }
public void UnbundleClaimsIn837ByServiceLineTest() { string lastServiceLine = @"ISA*00* *01*SECRET *ZZ*SUBMITTERS.ID *ZZ*RECEIVERS.ID *930602*1253*^*00401*000000905*1*T*:~ GS*HC*SENDER CODE*RECEIVER CODE*1994033*0802*1*X*004010X098A1~ ST*837*0021~ BHT*0019*00*0123*19981015*1023*RP~ REF*87*004010X098~ NM1*41*2*PREMIER BILLING SERVICE*****46*TGJ23~ PER*IC*JERRY*TE*3055552222*EX*231~ NM1*40*2*REPRICER XYZ*****46*66783JJT~ HL*1**20*1~ NM1*85*2*PREMIER BILLING SERVICE*****24*587654321~ N3*234 Seaway St~ N4*Miami*FL*33111~ NM1*87*2*KILDARE ASSOC*****24*581234567~ N3*2345 OCEAN BLVD~ N4*MIAMI*FL*33111~ HL*2*1*22*0~ SBR*P*18*12312-A******HM~ NM1*IL*1*SMITH*TED****34*000221111~ N3*236 N MAIN ST~ N4*MIAMI*FL*33413~ DMG*D8*19430501*M~ NM1*PR*2*ALLIANCE HEALTH AND LIFE INSURANCE*****PI*741234~ CLM*26462967*100***11::1*Y*A*Y*Y*C~ DTP*431*D8*19981003~ REF*D9*17312345600006351~ HI*BK:0340*BF:V7389~ NM1*82*1*KILDARE*BEN****34*112233334~ PRV*PE*ZZ*203BF0100Y~ NM1*77*2*KILDARE ASSOCIATES*****24*581234567~ N3*2345 OCEAN BLVD~ N4*MIAMI*FL*33111~ LX*4~ SV1*HC:86663*10*UN*1***2**N~ DTP*472*D8*19981010~ SE*33*0021~ GE*1*1~ IEA*1*000000905~"; X12Parser parser = new X12Parser(); Interchange interchange = parser.ParseMultiple(Extensions.GetEdi("INS._837P._4010.Spec_4.1.1_PatientIsSubscriber.txt")).First(); var list = parser.UnbundleByLoop(interchange, "2400"); Assert.AreEqual(4, list.Count); Assert.AreEqual(lastServiceLine, list[3].SerializeToX12(true)); }
public void UnbundleClaimsFrom837Test() { X12Parser parser = new X12Parser(); Interchange interchange = parser.ParseMultiple(Extensions.GetEdi("INS._837P._5010.Example1_2_And_3_Combined.txt")).First(); var list = parser.UnbundleByLoop(interchange, "2300"); Assert.AreEqual(3, list.Count); foreach (var item in list) { Trace.WriteLine("..."); Trace.WriteLine(item.SerializeToX12(true)); } Assert.AreEqual(expectedClaim1, list[0].SerializeToX12(true)); Assert.AreEqual(expectedClaim2, list[1].SerializeToX12(true)); Assert.AreEqual(expectedClaim3, list[2].SerializeToX12(true)); }
private static void UpdateEdiTest() { using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("EdiTransform.ProfessionalClaim1.txt")) { var parser = new X12Parser(); var interchanges = parser.ParseMultiple(stream); var service = new ProfessionalClaimToHcfa1500FormTransformation(""); ClaimDocument doc = service.Transform837ToClaimDocument(interchanges.First()); var claim = doc.Claims.First(); claim.ServiceLines[0].Procedure.ProcedureCode = "87070"; claim.ServiceLines[1].Procedure.ProcedureCode = "99213"; claim.BillingProvider.TaxId = "12345"; XmlDocument newdoc = TransformClaimDocumentTo837(interchanges.First(), claim); string x12 = parser.TransformToX12(newdoc.OuterXml); var modifiedInterchange = parser.ParseMultiple(x12).First(); string newX12 = modifiedInterchange.SerializeToX12(true); Debug.WriteLine("After passing through interchange object:"); Debug.WriteLine(newX12); } }
public void ParseAndTransformToX12() { string resourcePath = Convert.ToString(TestContext.DataRow["ResourcePath"]); // "INS._837P._4010.Spec_4.1.1_PatientIsSubscriber.txt"; if (!resourcePath.Contains("_0x1D")) { Trace.WriteLine(resourcePath); Stream stream = GetEdi(resourcePath); var parser = new X12Parser(); Interchange interchange = parser.ParseMultiple(stream).First(); string originalX12 = interchange.SerializeToX12(true); string xml = interchange.Serialize(); string x12 = parser.TransformToX12(xml); Interchange newInterchange = parser.ParseMultiple(x12).First(); string newX12 = newInterchange.SerializeToX12(true); Assert.AreEqual(originalX12, newX12); Trace.Write(x12); } }
public void ParseUnicodeFile() { var fs = Assembly.GetExecutingAssembly().GetManifestResourceStream("OopFactory.X12.Tests.Unit.Parsing._SampleEdiFiles.INS._837P._5010.UnicodeExample.txt"); X12Parser parser = new X12Parser(); var interchange = parser.ParseMultiple(fs, Encoding.Unicode); Trace.Write(interchange.First().Serialize()); }
public void ParseModifyAndTransformBackToX12() { var stream = GetEdi("INS._270._4010.Example1_DHHS.txt"); var parser = new X12Parser(); Interchange interchange = parser.ParseMultiple(stream).First(); string originalX12 = interchange.SerializeToX12(true); string xml = interchange.Serialize(); XmlDocument doc = new XmlDocument(); doc.PreserveWhitespace = true; doc.LoadXml(xml); XmlElement dmgElement = (XmlElement)(doc.GetElementsByTagName("DMG")[0]); dmgElement.ParentNode.RemoveChild(dmgElement); Console.WriteLine(doc.OuterXml); string x12 = parser.TransformToX12(doc.OuterXml); Console.WriteLine("ISA Segmemt:"); Console.WriteLine(x12.Substring(0, 106)); Console.WriteLine("Directly from XML:"); Console.WriteLine(x12); var modifiedInterchange = parser.ParseMultiple(x12).First(); string newX12 = modifiedInterchange.SerializeToX12(true); Console.WriteLine("After passing through interchange object:"); Console.WriteLine(newX12); var seSegment = modifiedInterchange.FunctionGroups.First().Transactions.First().TrailerSegments.FirstOrDefault(ts => ts.SegmentId == "SE"); Assert.IsNotNull(seSegment); Assert.AreEqual("0001", seSegment.GetElement(2)); Assert.AreEqual("15", seSegment.GetElement(1)); }
public void ParseAndUnparse() { string resourcePath = Convert.ToString(TestContext.DataRow["ResourcePath"]); Trace.WriteLine(resourcePath); Stream stream = GetEdi(resourcePath); string orignalX12 = new StreamReader(stream).ReadToEnd(); stream = GetEdi(Convert.ToString(TestContext.DataRow["ResourcePath"])); List<Interchange> interchanges = new X12Parser().ParseMultiple(stream); if (resourcePath.Contains("_811")) Trace.Write(""); StringBuilder x12 = new StringBuilder(); foreach (var interchange in interchanges) x12.AppendLine(interchange.SerializeToX12(true)); Assert.AreEqual(orignalX12, x12.ToString().Trim()); Trace.Write(x12.ToString()); }