示例#1
0
        public EligibilityBenefitDocument Transform271ToBenefitResponse(Stream stream)
        {
            EligibilityBenefitDocument fullResponse = new EligibilityBenefitDocument();

            var parser       = new X12Parser();
            var interchanges = parser.ParseMultiple(stream);

            foreach (var interchange in interchanges)
            {
                var xml = interchange.Serialize();

                var transformStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("OopFactory.X12.Hipaa.Eligibility.Services.Xsl.X12-271-To-BenefitResponse.xslt");

                var transform = new XslCompiledTransform();
                if (transformStream != null)
                {
                    transform.Load(XmlReader.Create(transformStream));
                }

                var outputStream = new MemoryStream();

                transform.Transform(XmlReader.Create(new StringReader(xml)), new XsltArgumentList(), outputStream);
                outputStream.Position = 0;
                string responseXml = new StreamReader(outputStream).ReadToEnd();
                var    response    = EligibilityBenefitDocument.Deserialize(responseXml);
                fullResponse.EligibilityBenefitInquiries.AddRange(response.EligibilityBenefitInquiries);
                fullResponse.EligibilityBenefitResponses.AddRange(response.EligibilityBenefitResponses);
                fullResponse.RequestValidations.AddRange(response.RequestValidations);
            }
            return(fullResponse);
        }
        public void SerializationTest()
        {
            EligibilityBenefitDocument document = new EligibilityBenefitDocument();

            EligibilityBenefitResponse response = new EligibilityBenefitResponse
            {
                Source = new Entity
                {
                    Name = new EntityName
                    {
                        Type = new EntityType
                        {
                            Identifier = "PR",
                            Qualifier  = EntityNameQualifierEnum.NonPerson
                        },
                        LastName       = "ABC Company",
                        Identification = new Identification {
                            Qualifier = "PI", Id = "842610001"
                        }
                    }
                },
                Receiver = new Provider
                {
                    Name = new EntityName
                    {
                        Type = new EntityType
                        {
                            Identifier = "1P",
                            Qualifier  = EntityNameQualifierEnum.NonPerson
                        },
                        LastName       = "BONE AND JOIN CLINIC",
                        Identification = new Identification {
                            Qualifier = "SV", Id = "2000035"
                        }
                    }
                },
                Subscriber = new BenefitMember
                {
                    Gender      = GenderEnum.Male,
                    DateOfBirth = DateTime.Parse("1963-05-19"),
                    Name        = new EntityName
                    {
                        Type = new EntityType
                        {
                            Qualifier = EntityNameQualifierEnum.Person
                        },
                        LastName       = "SMITH",
                        FirstName      = "JOHN",
                        Identification = new Identification {
                            Qualifier = "MI", Id = "123456789"
                        }
                    },
                    Address = new PostalAddress
                    {
                        Line1      = "15197 BROADWAY AVENUE",
                        Line2      = "APT 215",
                        City       = "KANSAS CITY",
                        StateCode  = "MO",
                        PostalCode = "64108"
                    }
                }
            };

            response.Subscriber.Dates.Add(new QualifiedDate {
                Qualifier = "346", Date = DateTime.Parse("2006-01-01")
            });
            response.BenefitInfos.Add(new EligibilityBenefitInformation
            {
                InfoType = new Lookup {
                    Code = "1", Description = "Active Coverage"
                }
            });
            document.EligibilityBenefitResponses.Add(response);

            document.RequestValidations.Add(
                new RequestValidation
            {
                ValidRequest = true,
                RejectReason = new Lookup {
                    Code = "15", Description = "Required application data missing"
                }
            });


            string xml = document.Serialize();

            System.Diagnostics.Trace.WriteLine(xml);
        }