static void Main(string[] args) { var opts = new ExecutionOptions(args); var service = new ClaimFormTransformationService( new ProfessionalClaimToHcfa1500FormTransformation("HCFA1500_Red.gif"), new InstitutionalClaimToUB04ClaimFormTransformation("UB04_Red.gif"), new DentalClaimToJ400FormTransformation("ADAJ400_Red.gif")); foreach (var filename in Directory.GetFiles(opts.Path, opts.SearchPattern, SearchOption.TopDirectoryOnly)) { try { #if DEBUG FileStream stream = new FileStream(filename, FileMode.Open, FileAccess.Read); var parser = new X12.Parsing.X12Parser(); var interchange = parser.Parse(stream); File.WriteAllText(filename + ".dat", interchange.SerializeToX12(true)); stream.Close(); #endif DateTime start = DateTime.Now; FileStream inputFilestream = new FileStream(filename, FileMode.Open, FileAccess.Read); var claimDoc = service.Transform837ToClaimDocument(inputFilestream); FileInfo fi = new FileInfo(filename); DirectoryInfo di = new DirectoryInfo(opts.OutputPath); if (opts.MakeXml) { string outputFilename = string.Format("{0}\\{1}.xml", di.FullName, fi.Name); string xml = claimDoc.Serialize(); xml = xml.Replace("encoding=\"utf-16\"", "encoding=\"utf-8\""); File.WriteAllText(outputFilename, xml); } if (opts.MakePdf) { string outputFilename = string.Format("{0}\\{1}.pdf", di.FullName, fi.Name); using (FileStream pdfOutput = new FileStream(outputFilename, FileMode.Create, FileAccess.Write)) { XmlDocument foDoc = new XmlDocument(); string foXml = service.TransformClaimDocumentToFoXml(claimDoc); foDoc.LoadXml(foXml); var driver = Fonet.FonetDriver.Make(); driver.Render(foDoc, pdfOutput); pdfOutput.Close(); } } opts.WriteLine(string.Format("{0} parsed in {1}.", filename, DateTime.Now - start)); } catch (Exception exc) { opts.WriteLine(string.Format("Exception occurred: {0}. {1}. {2}", exc.GetType().FullName, exc.Message, exc.StackTrace)); } } }
public void X12ToHcfaPdfTest() { Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("OopFactory.X12.Hipaa.Tests.Unit.Claims.TestData.ProfessionalClaim1.txt"); // new up a ClaimTransformationService object var service = new ClaimFormTransformationService( new ProfessionalClaimToHcfa1500FormTransformation(@"..\..\..\tests\OopFactory.X12.Hipaa.Tests.Unit\Claims\Images\HCFA1500_Red.gif"), new InstitutionalClaimToUB04ClaimFormTransformation(@"..\..\..\tests\OopFactory.X12.Hipaa.Tests.Unit\Claims\Images\UB04_Red.gif"), new ProfessionalClaimToHcfa1500FormTransformation(@"..\..\..\tests\OopFactory.X12.Hipaa.Tests.Unit\Claims\Images\HCFA1500_Red.gif") ); ClaimDocument document = service.Transform837ToClaimDocument(stream); XmlDocument foDocument = new XmlDocument(); string foXml = service.TransformClaimDocumentToFoXml(document); foDocument.LoadXml(foXml); #if DEBUG var driver = Fonet.FonetDriver.Make(); FileStream outputFile = new FileStream("c:\\Temp\\Pdfs\\ProfessionalClaim1.pdf", FileMode.Create, FileAccess.Write); driver.Render(foDocument, outputFile); #endif }