Esempio n. 1
0
        /// <summary>
        /// Build institutional claim.
        /// Original from http://www.x12.org/examples/005010X223/institutional/837-institutional-claim/
        /// The patient is a different person than the subscriber. The payer is a commercial health insurance company.
        /// Scenario:
        /// PRIMARY PAYER SUBSCRIBER: John T Doe
        /// SUBSCRIBER ADDRESS: 125 City Avenue, Centerville, PA 17111
        /// SEX: M
        /// DOB: 11/11/1926
        /// MEDICARE INSURANCE ID#: 030005074A
        /// PAYER ID #: 00435
        /// PATIENT: Same as Primary Subscriber
        /// DESTINATION PAYER: Medicare B
        /// SUBMITTER: Jones Hospital
        /// EDI#: 12345
        /// RECEIVER: Medicare
        /// EDI#: 00120
        /// BILLING PROVIDER: Jones Hospital
        /// NPI: 9876540809
        /// TIN: 567891234
        /// MEDICARE PROVIDER: #330127
        /// ADDRESS: 225 Main Street Barkley Building, Centerville, PA 17111
        /// ATTENDING PHYSICIAN: John J Jones
        /// UPIN #: B99937
        /// PATIENT ACCOUNT NUMBER: 756048Q
        /// DATE OF ADMISSION: 09/11/96
        /// STATEMENT PERIOD DATE: 09/11/96 - 09/11/96
        /// PLACE OF SERVICE: Inpatient Hospital
        /// Occurrence Codes and Dates:
        /// A1 11/11/26
        /// A2 11/01/91
        /// B1 11/11/26
        /// B2 01/01/87
        /// Condition Codes: 09
        /// Value Codes: A2 $15.31
        /// PRINCIPAL DIAGNOSIS CODE: 366.9
        /// SECONDARY DIAGNOSIS CODES:
        /// 401.9
        /// 794.31
        /// NUMBER OF COVERED DAYS: 1
        /// SERVICES:
        /// INSTITUTIONAL SERVICES RENDERED:
        /// REVENUE CODE: 0305 HCPCS Procedure Code: 85025 Unit: 1 Price $13.39
        /// REVENUE CODE: 0730 HCPCS Procedure Code: 93005 Unit: 1 Price: $76.54
        /// TOTAL CHARGES: $89.93
        /// SECONDARY PAYER SUBSCRIBER: Jane S Doe(wife)
        /// SUBSCRIBER ADDRESS: 125 City Avenue, Centerville, PA 17111
        /// SEX: F
        /// DOB: 12/11/1927
        /// STATE TEACHERS ID#: 222004433
        /// PAYER ID #: 1135
        /// </summary>
        static TS837I BuildInstitutionalClaim(string controlNumber)
        {
            var result = new TS837I();

            //  ST TRANSACTION SET HEADER
            result.ST = new ST();
            result.ST.TransactionSetIdentifierCode_01       = "837";
            result.ST.TransactionSetControlNumber_02        = controlNumber.PadLeft(9, '0');
            result.ST.ImplementationConventionPreference_03 = "005010X223A2";

            //  BHT BEGINNING OF HIERARCHICAL TRANSACTION
            result.BHT_BeginningofHierarchicalTransaction = new BHT_BeginningofHierarchicalTransaction_7();
            result.BHT_BeginningofHierarchicalTransaction.HierarchicalStructureCode_01      = "0019";
            result.BHT_BeginningofHierarchicalTransaction.TransactionSetPurposeCode_02      = "00";
            result.BHT_BeginningofHierarchicalTransaction.SubmitterTransactionIdentifier_03 = "0123";
            result.BHT_BeginningofHierarchicalTransaction.TransactionSetCreationDate_04     = "19960918";
            result.BHT_BeginningofHierarchicalTransaction.TransactionSetCreationTime_05     = "0932";
            result.BHT_BeginningofHierarchicalTransaction.TransactionTypeCode_06            = "CH";

            //  Occurrence of NM1 Loops in any order
            result.AllNM1 = new All_NM1_837I_6();

            //  Begin 1000A Loop SUBMITTER NAME
            result.AllNM1.Loop1000A = new Loop_1000A_837I();

            //  NM1 SUBMITTER NAME
            result.AllNM1.Loop1000A.NM1_SubmitterName = new NM1_InformationReceiverName_2();
            result.AllNM1.Loop1000A.NM1_SubmitterName.EntityIdentifierCode_01 = "41";
            result.AllNM1.Loop1000A.NM1_SubmitterName.EntityTypeQualifier_02  = "2";
            result.AllNM1.Loop1000A.NM1_SubmitterName.ResponseContactLastorOrganizationName_03 = "JONES HOSPITAL";
            result.AllNM1.Loop1000A.NM1_SubmitterName.IdentificationCodeQualifier_08           = "46";
            result.AllNM1.Loop1000A.NM1_SubmitterName.ResponseContactIdentifier_09             = "12345";

            //  Repeating PER Patient information
            result.AllNM1.Loop1000A.PER_SubmitterEDIContactInformation = new List <PER_AdditionalPatientInformationContactInformation>();

            //  PER SUBMITTER EDI CONTACT INFORMATION
            var per1 = new PER_AdditionalPatientInformationContactInformation();

            per1.ContactFunctionCode_01                = "IC";
            per1.ResponseContactName_02                = "JANE DOE";
            per1.CommunicationNumberQualifier_03       = "TE";
            per1.ResponseContactCommunicationNumber_04 = "9005555555";
            result.AllNM1.Loop1000A.PER_SubmitterEDIContactInformation.Add(per1);

            //  End 1000A Loop

            //  Begin 1000B Loop RECEIVER NAME
            result.AllNM1.Loop1000B = new Loop_1000B_837I();

            //  NM1 RECEIVER NAME
            result.AllNM1.Loop1000B.NM1_ReceiverName = new NM1_ReceiverName();
            result.AllNM1.Loop1000B.NM1_ReceiverName.EntityIdentifierCode_01 = "40";
            result.AllNM1.Loop1000B.NM1_ReceiverName.EntityTypeQualifier_02  = "2";
            result.AllNM1.Loop1000B.NM1_ReceiverName.ResponseContactLastorOrganizationName_03 = "MEDICARE";
            result.AllNM1.Loop1000B.NM1_ReceiverName.IdentificationCodeQualifier_08           = "46";
            result.AllNM1.Loop1000B.NM1_ReceiverName.ResponseContactIdentifier_09             = "00120";

            //  End 1000B Loop

            //  Repeating 2000A Loops
            result.Loop2000A = new List <Loop_2000A_837I>();

            //  Begin 2000A Loop BILLING PROVIDER
            var loop2000A = new Loop_2000A_837I();

            //  HL BILLING PROVIDER HIERARCHICAL LEVEL
            loop2000A.HL_BillingProviderHierarchicalLevel = new HL_BillingProviderHierarchicalLevel();
            loop2000A.HL_BillingProviderHierarchicalLevel.HierarchicalIDNumber_01  = "1";
            loop2000A.HL_BillingProviderHierarchicalLevel.HierarchicalLevelCode_03 = "20";
            loop2000A.HL_BillingProviderHierarchicalLevel.HierarchicalChildCode_04 = "1";

            //  PRV BILLING PROVIDER SPECIALTY
            loop2000A.PRV_BillingProviderSpecialtyInformation = new PRV_BillingProviderSpecialtyInformation();
            loop2000A.PRV_BillingProviderSpecialtyInformation.ProviderCode_01 = "BI";
            loop2000A.PRV_BillingProviderSpecialtyInformation.ReferenceIdentificationQualifier_02 = "PXC";
            loop2000A.PRV_BillingProviderSpecialtyInformation.ProviderTaxonomyCode_03             = "203BA0200N";

            //  Occurrence of NM1 Loops in any order
            loop2000A.AllNM1 = new All_NM1_837I();

            //  Begin 2010AA Loop BILLING PROVIDER NAME
            loop2000A.AllNM1.Loop2010AA = new Loop_2010AA_837I();

            //  NM1 BILLING PROVIDER NAME INCLUDING NATIONAL PROVIDER ID
            loop2000A.AllNM1.Loop2010AA.NM1_BillingProviderName = new NM1_BillingProviderName_2();
            loop2000A.AllNM1.Loop2010AA.NM1_BillingProviderName.EntityIdentifierCode_01 = "85";
            loop2000A.AllNM1.Loop2010AA.NM1_BillingProviderName.EntityTypeQualifier_02  = "2";
            loop2000A.AllNM1.Loop2010AA.NM1_BillingProviderName.ResponseContactLastorOrganizationName_03 = "JONES HOSPITAL";
            loop2000A.AllNM1.Loop2010AA.NM1_BillingProviderName.IdentificationCodeQualifier_08           = "XX";
            loop2000A.AllNM1.Loop2010AA.NM1_BillingProviderName.ResponseContactIdentifier_09             = "9876540809";

            //  N3 BILLING PROVIDER ADDRESS
            loop2000A.AllNM1.Loop2010AA.N3_BillingProviderAddress = new N3_AdditionalPatientInformationContactAddress();
            loop2000A.AllNM1.Loop2010AA.N3_BillingProviderAddress.ResponseContactAddressLine_01 = "225 MAIN STREET BARKLEY BUILDING";

            //  N4 BILLING PROVIDER LOCATION
            loop2000A.AllNM1.Loop2010AA.N4_BillingProviderCity_State_ZIPCode = new N4_AdditionalPatientInformationContactCity();
            loop2000A.AllNM1.Loop2010AA.N4_BillingProviderCity_State_ZIPCode.AdditionalPatientInformationContactCityName_01            = "CENTERVILLE";
            loop2000A.AllNM1.Loop2010AA.N4_BillingProviderCity_State_ZIPCode.AdditionalPatientInformationContactStateCode_02           = "PA";
            loop2000A.AllNM1.Loop2010AA.N4_BillingProviderCity_State_ZIPCode.AdditionalPatientInformationContactPostalZoneorZIPCode_03 = "17111";

            //  REF BILLING PROVIDER TAX IDENTIFICATION NUMBER
            loop2000A.AllNM1.Loop2010AA.REF_BillingProviderTaxIdentification = new REF_BillingProviderTaxIdentification_2();
            loop2000A.AllNM1.Loop2010AA.REF_BillingProviderTaxIdentification.ReferenceIdentificationQualifier_01 = "EI";
            loop2000A.AllNM1.Loop2010AA.REF_BillingProviderTaxIdentification.MemberGrouporPolicyNumber_02        = "567891234";

            //  Repeating PER billing provider contact information
            loop2000A.AllNM1.Loop2010AA.PER_BillingProviderContactInformation = new List <PER_AdditionalPatientInformationContactInformation>();

            //  PER BILLING PROVIDER CONTACT INFORMATION
            var per2 = new PER_AdditionalPatientInformationContactInformation();

            per2.ContactFunctionCode_01                = "IC";
            per2.ResponseContactName_02                = "CONNIE";
            per2.CommunicationNumberQualifier_03       = "TE";
            per2.ResponseContactCommunicationNumber_04 = "3055551234";
            loop2000A.AllNM1.Loop2010AA.PER_BillingProviderContactInformation.Add(per2);

            //  End 2010AA Loop

            //  Repeating 2000B Loops
            loop2000A.Loop2000B = new List <Loop_2000B_837I>();

            //  Begin 2000B Loop SUBSCRIBER HL LOOP
            var loop2000B = new Loop_2000B_837I();

            //  HL SUBSCRIBER HIERARCHICAL LEVEL
            loop2000B.HL_SubscriberHierarchicalLevel = new HL_SubscriberHierarchicalLevel();
            loop2000B.HL_SubscriberHierarchicalLevel.HierarchicalIDNumber_01       = "2";
            loop2000B.HL_SubscriberHierarchicalLevel.HierarchicalParentIDNumber_02 = "1";
            loop2000B.HL_SubscriberHierarchicalLevel.HierarchicalLevelCode_03      = "22";
            loop2000B.HL_SubscriberHierarchicalLevel.HierarchicalChildCode_04      = "0";

            //  SBR SUBSCRIBER INFORMATION
            loop2000B.SBR_SubscriberInformation = new SBR_SubscriberInformation();
            loop2000B.SBR_SubscriberInformation.PayerResponsibilitySequenceNumberCode_01 = "P";
            loop2000B.SBR_SubscriberInformation.IndividualRelationshipCode_02            = "18";
            loop2000B.SBR_SubscriberInformation.ClaimFilingIndicatorCode_09 = "MB";

            //  Occurrence of NM1 Loops in any order
            loop2000B.AllNM1 = new All_NM1_837I_2();

            //  Begin 2010BA Loop SUBSCRIBER NAME LOOP
            loop2000B.AllNM1.Loop2010BA = new Loop_2010BA_837I();

            //  NM1 SUBSCRIBER NAME
            loop2000B.AllNM1.Loop2010BA.NM1_SubscriberName = new NM1_InsuredName();
            loop2000B.AllNM1.Loop2010BA.NM1_SubscriberName.EntityIdentifierCode_01 = "IL";
            loop2000B.AllNM1.Loop2010BA.NM1_SubscriberName.EntityTypeQualifier_02  = "1";
            loop2000B.AllNM1.Loop2010BA.NM1_SubscriberName.ResponseContactLastorOrganizationName_03 = "DOE";
            loop2000B.AllNM1.Loop2010BA.NM1_SubscriberName.ResponseContactFirstName_04    = "JOHN";
            loop2000B.AllNM1.Loop2010BA.NM1_SubscriberName.ResponseContactMiddleName_05   = "T";
            loop2000B.AllNM1.Loop2010BA.NM1_SubscriberName.IdentificationCodeQualifier_08 = "MI";
            loop2000B.AllNM1.Loop2010BA.NM1_SubscriberName.ResponseContactIdentifier_09   = "030005074A";

            //  N3 SUBSCRIBER ADDRESS
            loop2000B.AllNM1.Loop2010BA.N3_SubscriberAddress = new N3_AdditionalPatientInformationContactAddress();
            loop2000B.AllNM1.Loop2010BA.N3_SubscriberAddress.ResponseContactAddressLine_01 = "125 CITY AVENUE";

            //  N4 SUBSCRIBER LOCATION
            loop2000B.AllNM1.Loop2010BA.N4_SubscriberCity_State_ZIPCode = new N4_AdditionalPatientInformationContactCity();
            loop2000B.AllNM1.Loop2010BA.N4_SubscriberCity_State_ZIPCode.AdditionalPatientInformationContactCityName_01            = "CENTERVILLE";
            loop2000B.AllNM1.Loop2010BA.N4_SubscriberCity_State_ZIPCode.AdditionalPatientInformationContactStateCode_02           = "PA";
            loop2000B.AllNM1.Loop2010BA.N4_SubscriberCity_State_ZIPCode.AdditionalPatientInformationContactPostalZoneorZIPCode_03 = "17111";

            //  DMG SUBSCRIBER DEMOGRAPHIC INFORMATION
            loop2000B.AllNM1.Loop2010BA.DMG_SubscriberDemographicInformation = new DMG_DependentDemographicInformation();
            loop2000B.AllNM1.Loop2010BA.DMG_SubscriberDemographicInformation.DateTimePeriodFormatQualifier_01 = "D8";
            loop2000B.AllNM1.Loop2010BA.DMG_SubscriberDemographicInformation.DependentBirthDate_02            = "19261111";
            loop2000B.AllNM1.Loop2010BA.DMG_SubscriberDemographicInformation.DependentGenderCode_03           = "M";

            //  End 2010BA Loop

            //  Begin 2010BB Loop PAYER NAME LOOP
            loop2000B.AllNM1.Loop2010BB = new Loop_2010BB_837I();

            //  NM1 PAYER NAME
            loop2000B.AllNM1.Loop2010BB.NM1_PayerName = new NM1_CorrectedPriorityPayerName();
            loop2000B.AllNM1.Loop2010BB.NM1_PayerName.EntityIdentifierCode_01 = "PR";
            loop2000B.AllNM1.Loop2010BB.NM1_PayerName.EntityTypeQualifier_02  = "2";
            loop2000B.AllNM1.Loop2010BB.NM1_PayerName.ResponseContactLastorOrganizationName_03 = "MEDICARE B";
            loop2000B.AllNM1.Loop2010BB.NM1_PayerName.IdentificationCodeQualifier_08           = "PI";
            loop2000B.AllNM1.Loop2010BB.NM1_PayerName.ResponseContactIdentifier_09             = "00435";

            //  Occurrence of REF Segments in any order
            loop2000B.AllNM1.Loop2010BB.AllREF = new All_REF_837I_3();

            //  REF BILLING PROVIDER SECONDARY IDENTIFICATION
            loop2000B.AllNM1.Loop2010BB.AllREF.REF_BillingProviderSecondaryIdentification = new REF_BillingProviderSecondaryIdentification();
            loop2000B.AllNM1.Loop2010BB.AllREF.REF_BillingProviderSecondaryIdentification.ReferenceIdentificationQualifier_01 = "G2";
            loop2000B.AllNM1.Loop2010BB.AllREF.REF_BillingProviderSecondaryIdentification.MemberGrouporPolicyNumber_02        = "330127";

            //  End 2010BB Loop

            //  Repeating 2300 Loops
            loop2000B.Loop2300 = new List <Loop_2300_837I_2>();

            //  Begin 2300 Loop CLAIM INFORMATION
            var loop2300 = new Loop_2300_837I_2();

            //  CLM CLAIM LEVEL INFORMATION
            loop2300.CLM_Claiminformation = new CLM_ClaimInformation();
            loop2300.CLM_Claiminformation.PatientControlNumber_01                 = "756048Q";
            loop2300.CLM_Claiminformation.TotalClaimChargeAmount_02               = "89.93";
            loop2300.CLM_Claiminformation.NonInstitutionalClaimTypeCode_04        = "14:A:1";
            loop2300.CLM_Claiminformation.HealthCareServiceLocationInformation_05 = new C023_HealthCareServiceLocationInformation();
            loop2300.CLM_Claiminformation.HealthCareServiceLocationInformation_05.FacilityTypeCode_01 = "A";
            loop2300.CLM_Claiminformation.ProviderorSupplierSignatureIndicator_06 = "Y";
            loop2300.CLM_Claiminformation.AssignmentorPlanParticipationCode_07    = "Y";

            //  Occurrence of DTP Segments in any order
            loop2300.AllDTP = new All_DTP_837I();

            //  DTP STATEMENT DATES
            loop2300.AllDTP.DTP_StatementDates = new DTP_StatementDates();
            loop2300.AllDTP.DTP_StatementDates.DateTimeQualifier_01             = "434";
            loop2300.AllDTP.DTP_StatementDates.DateTimePeriodFormatQualifier_02 = "RD8";
            loop2300.AllDTP.DTP_StatementDates.AccidentDate_03 = "19960911";

            //  CL1 INSTITUTIONAL CLAIM CODE
            loop2300.CL1_InstitutionalClaimCode = new CL1_InstitutionalClaimCode();
            loop2300.CL1_InstitutionalClaimCode.AdmissionTypeCode_01 = "3";
            loop2300.CL1_InstitutionalClaimCode.PatientStatusCode_03 = "01";

            //  Occurrence of HI Segments in any order
            loop2300.AllHI = new All_HI_837I();

            //  HI PRINCIPAL DIAGNOSIS CODES
            loop2300.AllHI.HI_PrincipalDiagnosis = new HI_PrincipalDiagnosis();
            loop2300.AllHI.HI_PrincipalDiagnosis.HealthCareCodeInformation_01 = new C022_HealthCareCodeInformation();
            loop2300.AllHI.HI_PrincipalDiagnosis.HealthCareCodeInformation_01.CodeListQualifierCode_01 = "BK";
            loop2300.AllHI.HI_PrincipalDiagnosis.HealthCareCodeInformation_01.IndustryCode_02          = "3669";

            //  Repeatable HI Other Diagnostics
            loop2300.AllHI.HI_OtherDiagnosisInformation = new List <HI_OtherDiagnosisInformation>();

            //  HI OTHER DIAGNOSIS INFORMATION
            var hi1 = new HI_OtherDiagnosisInformation();

            hi1.HealthCareCodeInformation_01 = new C022_HealthCareCodeInformation();
            hi1.HealthCareCodeInformation_01.CodeListQualifierCode_01 = "BF";
            hi1.HealthCareCodeInformation_01.IndustryCode_02          = "4019";
            hi1.HealthCareCodeInformation_02 = new C022_HealthCareCodeInformation();
            hi1.HealthCareCodeInformation_02.CodeListQualifierCode_01 = "BF";
            hi1.HealthCareCodeInformation_02.IndustryCode_02          = "79431";
            loop2300.AllHI.HI_OtherDiagnosisInformation.Add(hi1);

            //  Repeatable HI Occurrence Information
            loop2300.AllHI.HI_OccurrenceInformation = new List <HI_OccurrenceInformation>();

            //  HI OCCURRENCE INFORMATION
            var hi3 = new HI_OccurrenceInformation();

            hi3.HealthCareCodeInformation_01 = new C022_HealthCareCodeInformation();
            hi3.HealthCareCodeInformation_01.CodeListQualifierCode_01         = "BH";
            hi3.HealthCareCodeInformation_01.IndustryCode_02                  = "A1";
            hi3.HealthCareCodeInformation_01.DateTimePeriodFormatQualifier_03 = "D8";
            hi3.HealthCareCodeInformation_01.DateTimePeriod_04                = "19261111";
            hi3.HealthCareCodeInformation_02 = new C022_HealthCareCodeInformation();
            hi3.HealthCareCodeInformation_02.CodeListQualifierCode_01         = "BH";
            hi3.HealthCareCodeInformation_02.IndustryCode_02                  = "A2";
            hi3.HealthCareCodeInformation_02.DateTimePeriodFormatQualifier_03 = "D8";
            hi3.HealthCareCodeInformation_02.DateTimePeriod_04                = "19911101";
            hi3.HealthCareCodeInformation_03 = new C022_HealthCareCodeInformation();
            hi3.HealthCareCodeInformation_03 = new C022_HealthCareCodeInformation();
            hi3.HealthCareCodeInformation_03.CodeListQualifierCode_01         = "BH";
            hi3.HealthCareCodeInformation_03.IndustryCode_02                  = "B1";
            hi3.HealthCareCodeInformation_03.DateTimePeriodFormatQualifier_03 = "D8";
            hi3.HealthCareCodeInformation_03.DateTimePeriod_04                = "19261111";
            hi3.HealthCareCodeInformation_04 = new C022_HealthCareCodeInformation();
            hi3.HealthCareCodeInformation_04.CodeListQualifierCode_01         = "BH";
            hi3.HealthCareCodeInformation_04.IndustryCode_02                  = "B2";
            hi3.HealthCareCodeInformation_04.DateTimePeriodFormatQualifier_03 = "D8";
            hi3.HealthCareCodeInformation_04.DateTimePeriod_04                = "19870101";
            loop2300.AllHI.HI_OccurrenceInformation.Add(hi3);

            //  Repeatable HI Value Information
            loop2300.AllHI.HI_ValueInformation = new List <HI_ValueInformation>();

            //  HI VALUE INFORMATION
            var hi7 = new HI_ValueInformation();

            hi7.HealthCareCodeInformation_01 = new C022_HealthCareCodeInformation();
            hi7.HealthCareCodeInformation_01.CodeListQualifierCode_01 = "BE";
            hi7.HealthCareCodeInformation_01.IndustryCode_02          = "A2";
            hi7.HealthCareCodeInformation_01.MonetaryAmount_05        = "15.31";
            loop2300.AllHI.HI_ValueInformation.Add(hi7);

            //  Repeatable HI Condition Information
            loop2300.AllHI.HI_ConditionInformation = new List <HI_ConditionInformation>();

            //  HI CONDITION INFORMATION
            var hi8 = new HI_ConditionInformation();

            hi8.HealthCareCodeInformation_01 = new C022_HealthCareCodeInformation();
            hi8.HealthCareCodeInformation_01.CodeListQualifierCode_01 = "BG";
            hi8.HealthCareCodeInformation_01.IndustryCode_02          = "09";
            loop2300.AllHI.HI_ConditionInformation.Add(hi8);

            //  Occurrence of NM1 Loops in any order
            loop2300.AllNM1 = new All_NM1_837I_3();

            //  Begin 2310A Loop ATTENDING PROVIDER NAME
            loop2300.AllNM1.Loop2310A = new Loop_2310A_837I();

            //  NM1 ATTENDING PROVIDER
            loop2300.AllNM1.Loop2310A.NM1_AttendingProviderName = new NM1_AttendingProviderName();
            loop2300.AllNM1.Loop2310A.NM1_AttendingProviderName.EntityIdentifierCode_01 = "71";
            loop2300.AllNM1.Loop2310A.NM1_AttendingProviderName.EntityTypeQualifier_02  = "1";
            loop2300.AllNM1.Loop2310A.NM1_AttendingProviderName.ResponseContactLastorOrganizationName_03 = "JONES";
            loop2300.AllNM1.Loop2310A.NM1_AttendingProviderName.ResponseContactFirstName_04  = "JOHN";
            loop2300.AllNM1.Loop2310A.NM1_AttendingProviderName.ResponseContactMiddleName_05 = "J";

            //  Repeating REF Secondary Identification
            loop2300.AllNM1.Loop2310A.REF_AttendingProviderSecondaryIdentification = new List <REF_AssistantSurgeonSecondaryIdentification>();

            //  REF ATTENDING PROVIDER SECONDARY IDENTIFICATION
            var ref1 = new REF_AssistantSurgeonSecondaryIdentification();

            ref1.ReferenceIdentificationQualifier_01 = "1G";
            ref1.MemberGrouporPolicyNumber_02        = "B99937";
            loop2300.AllNM1.Loop2310A.REF_AttendingProviderSecondaryIdentification.Add(ref1);

            //  End 2310A Loop

            //  Repeating 2320 Loops
            loop2300.Loop2320 = new List <Loop_2320_837I>();

            //  Begin 2320 Loop OTHER SUBSCRIBER INFORMATION
            var loop2320 = new Loop_2320_837I();

            //  SBR OTHER SUBSCRIBER INFORMATION
            loop2320.SBR_OtherSubscriberInformation = new SBR_OtherSubscriberInformation();
            loop2320.SBR_OtherSubscriberInformation.PayerResponsibilitySequenceNumberCode_01 = "S";
            loop2320.SBR_OtherSubscriberInformation.IndividualRelationshipCode_02            = "01";
            loop2320.SBR_OtherSubscriberInformation.InsuredGrouporPolicyNumber_03            = "351630";
            loop2320.SBR_OtherSubscriberInformation.OtherInsuredGroupName_04    = "STATE TEACHERS";
            loop2320.SBR_OtherSubscriberInformation.ClaimFilingIndicatorCode_09 = "CI";

            //  OI OTHER INSURANCE COVERAGE INFORMATION
            loop2320.OI_OtherInsuranceCoverageInformation = new OI_OtherInsuranceCoverageInformation();
            loop2320.OI_OtherInsuranceCoverageInformation.BenefitsAssignmentCertificationIndicator_03 = "Y";
            loop2320.OI_OtherInsuranceCoverageInformation.ReleaseofInformationCode_06 = "Y";

            //  Occurrence of NM1 Loops in any order
            loop2320.AllNM1 = new All_NM1_837I_4();

            //  Begin 2330A Loop OTHER SUBSCRIBER NAME
            loop2320.AllNM1.Loop2330A = new Loop_2330A_837I();

            //  NM1 OTHER SUBSCRIBER NAME
            loop2320.AllNM1.Loop2330A.NM1_OtherSubscriberName = new NM1_InsuredName();
            loop2320.AllNM1.Loop2330A.NM1_OtherSubscriberName.EntityIdentifierCode_01 = "IL";
            loop2320.AllNM1.Loop2330A.NM1_OtherSubscriberName.EntityTypeQualifier_02  = "1";
            loop2320.AllNM1.Loop2330A.NM1_OtherSubscriberName.ResponseContactLastorOrganizationName_03 = "DOE";
            loop2320.AllNM1.Loop2330A.NM1_OtherSubscriberName.ResponseContactFirstName_04    = "JANE";
            loop2320.AllNM1.Loop2330A.NM1_OtherSubscriberName.ResponseContactMiddleName_05   = "S";
            loop2320.AllNM1.Loop2330A.NM1_OtherSubscriberName.IdentificationCodeQualifier_08 = "MI";
            loop2320.AllNM1.Loop2330A.NM1_OtherSubscriberName.ResponseContactIdentifier_09   = "222004433";

            //  N3 OTHER SUBSCRIBER ADDRESS
            loop2320.AllNM1.Loop2330A.N3_OtherSubscriberAddress = new N3_AdditionalPatientInformationContactAddress();
            loop2320.AllNM1.Loop2330A.N3_OtherSubscriberAddress.ResponseContactAddressLine_01 = "125 CITY AVENUE";

            //  N4 OTHER SUBSCRIBER CITY, STATE, ZIP CODE
            loop2320.AllNM1.Loop2330A.N4_OtherSubscriberCity_State_ZIPCode = new N4_AdditionalPatientInformationContactCity();
            loop2320.AllNM1.Loop2330A.N4_OtherSubscriberCity_State_ZIPCode.AdditionalPatientInformationContactCityName_01            = "CENTERVILLE";
            loop2320.AllNM1.Loop2330A.N4_OtherSubscriberCity_State_ZIPCode.AdditionalPatientInformationContactStateCode_02           = "PA";
            loop2320.AllNM1.Loop2330A.N4_OtherSubscriberCity_State_ZIPCode.AdditionalPatientInformationContactPostalZoneorZIPCode_03 = "17111";

            //  End 2330A Loop

            //  Begin 2330B Loop OTHER PAYER NAME
            loop2320.AllNM1.Loop2330B = new Loop_2330B_837I();

            //  NM1 OTHER PAYER NAME
            loop2320.AllNM1.Loop2330B.NM1_OtherPayerName = new NM1_CorrectedPriorityPayerName();
            loop2320.AllNM1.Loop2330B.NM1_OtherPayerName.EntityIdentifierCode_01 = "PR";
            loop2320.AllNM1.Loop2330B.NM1_OtherPayerName.EntityTypeQualifier_02  = "2";
            loop2320.AllNM1.Loop2330B.NM1_OtherPayerName.ResponseContactLastorOrganizationName_03 = "STATE TEACHERS";
            loop2320.AllNM1.Loop2330B.NM1_OtherPayerName.IdentificationCodeQualifier_08           = "PI";
            loop2320.AllNM1.Loop2330B.NM1_OtherPayerName.ResponseContactIdentifier_09             = "1135";

            //  End 2330B Loop

            //  End 2320 Loop
            loop2300.Loop2320.Add(loop2320);

            //  Repeating 2400 Loops
            loop2300.Loop2400 = new List <Loop_2400_837I>();

            //  Begin 2400 Loop 1 SERVICE LINE
            var loop24001 = new Loop_2400_837I();

            //  LX SERVICE LINE COUNTER
            loop24001.LX_ServiceLineNumber = new LX_HeaderNumber();
            loop24001.LX_ServiceLineNumber.AssignedNumber_01 = "1";

            //  SV2 INSTITUTIONAL SERVICE
            loop24001.SV2_InstitutionalServiceLine = new SV2_InstitutionalServiceLine();
            loop24001.SV2_InstitutionalServiceLine.ServiceLineRevenueCode_01 = "0305";
            loop24001.SV2_InstitutionalServiceLine.CompositeMedicalProcedureIdentifier_02 = new C003_CompositeMedicalProcedureIdentifier();
            loop24001.SV2_InstitutionalServiceLine.CompositeMedicalProcedureIdentifier_02.ProductorServiceIDQualifier_01 = "HC";
            loop24001.SV2_InstitutionalServiceLine.CompositeMedicalProcedureIdentifier_02.ProcedureCode_02 = "85025";
            loop24001.SV2_InstitutionalServiceLine.LineItemChargeAmount_03          = "13.39";
            loop24001.SV2_InstitutionalServiceLine.UnitorBasisforMeasurementCode_04 = "UN";
            loop24001.SV2_InstitutionalServiceLine.ServiceUnitCount_05 = "1";

            //  DTP DATE - SERVICE DATES
            loop24001.DTP_Date_ServiceDate = new DTP_ClaimLevelServiceDate();
            loop24001.DTP_Date_ServiceDate.DateTimeQualifier_01             = "472";
            loop24001.DTP_Date_ServiceDate.DateTimePeriodFormatQualifier_02 = "D8";
            loop24001.DTP_Date_ServiceDate.AccidentDate_03 = "19960911";

            //  End 2400 Loop 1
            loop2300.Loop2400.Add(loop24001);

            //  Begin 2400 Loop 2 SERVICE LINE
            var loop24002 = new Loop_2400_837I();

            //  LX SERVICE LINE COUNTER
            loop24002.LX_ServiceLineNumber = new LX_HeaderNumber();
            loop24002.LX_ServiceLineNumber.AssignedNumber_01 = "2";

            //  SV2 INSTITUTIONAL SERVICE
            loop24002.SV2_InstitutionalServiceLine = new SV2_InstitutionalServiceLine();
            loop24002.SV2_InstitutionalServiceLine.ServiceLineRevenueCode_01 = "0730";
            loop24002.SV2_InstitutionalServiceLine.CompositeMedicalProcedureIdentifier_02 = new C003_CompositeMedicalProcedureIdentifier();
            loop24002.SV2_InstitutionalServiceLine.CompositeMedicalProcedureIdentifier_02.ProductorServiceIDQualifier_01 = "HC";
            loop24002.SV2_InstitutionalServiceLine.CompositeMedicalProcedureIdentifier_02.ProcedureCode_02 = "93005";
            loop24002.SV2_InstitutionalServiceLine.LineItemChargeAmount_03          = "76.54";
            loop24002.SV2_InstitutionalServiceLine.UnitorBasisforMeasurementCode_04 = "UN";
            loop24002.SV2_InstitutionalServiceLine.ServiceUnitCount_05 = "3";

            //  DTP DATE - SERVICE DATES
            loop24002.DTP_Date_ServiceDate = new DTP_ClaimLevelServiceDate();
            loop24002.DTP_Date_ServiceDate.DateTimeQualifier_01             = "472";
            loop24002.DTP_Date_ServiceDate.DateTimePeriodFormatQualifier_02 = "D8";
            loop24002.DTP_Date_ServiceDate.AccidentDate_03 = "19960911";

            //  End 2400 Loop 2
            loop2300.Loop2400.Add(loop24002);

            //  End 2300 Loop
            loop2000B.Loop2300.Add(loop2300);

            //  End 2000B Loop
            loop2000A.Loop2000B.Add(loop2000B);

            //  End 2000A Loop
            result.Loop2000A.Add(loop2000A);

            return(result);
        }
Esempio n. 2
0
        /// <summary>
        /// Build claim.
        /// Original from http://www.x12.org/examples/005010X222/commercial-health-insurance/
        /// </summary>
        public static TS837P BuildClaim(string controlNumber)
        {
            var result = new TS837P();

            //  Indicates the start of a claim transaction set and assigns a control number.
            result.ST = new ST();
            result.ST.TransactionSetIdentifierCode_01       = "837";
            result.ST.TransactionSetControlNumber_02        = controlNumber.PadLeft(9, '0');
            result.ST.ImplementationConventionPreference_03 = "005010X222A1";

            //  Indicates the claim was created on October 15, 2006 and submitter is identified with 244579.
            result.BHT_BeginningofHierarchicalTransaction = new BHT_BeginningofHierarchicalTransaction_7();
            result.BHT_BeginningofHierarchicalTransaction.HierarchicalStructureCode_01      = "0019";
            result.BHT_BeginningofHierarchicalTransaction.TransactionSetPurposeCode_02      = "00";
            result.BHT_BeginningofHierarchicalTransaction.SubmitterTransactionIdentifier_03 = "244579";
            result.BHT_BeginningofHierarchicalTransaction.TransactionSetCreationDate_04     = "20061015";
            result.BHT_BeginningofHierarchicalTransaction.TransactionSetCreationTime_05     = "1023";
            result.BHT_BeginningofHierarchicalTransaction.TransactionTypeCode_06            = "CH";

            //  Occurrence of NM1 Loops in any order
            result.AllNM1 = new All_NM1_837P_6();

            //  Begin 1000A Loop SUBMITTER
            result.AllNM1.Loop1000A = new Loop_1000A_837P();

            //  Premier Billing Service with EDI# TGJ23
            result.AllNM1.Loop1000A.NM1_SubmitterName = new NM1_InformationReceiverName_2();
            result.AllNM1.Loop1000A.NM1_SubmitterName.EntityIdentifierCode_01 = "41";
            result.AllNM1.Loop1000A.NM1_SubmitterName.EntityTypeQualifier_02  = "2";
            result.AllNM1.Loop1000A.NM1_SubmitterName.ResponseContactLastorOrganizationName_03 = "PREMIER BILLING SERVICE";
            result.AllNM1.Loop1000A.NM1_SubmitterName.IdentificationCodeQualifier_08           = "46";
            result.AllNM1.Loop1000A.NM1_SubmitterName.ResponseContactIdentifier_09             = "TGJ23";

            //  Repeating PER
            result.AllNM1.Loop1000A.PER_SubmitterEDIContactInformation = new List <PER_AdditionalPatientInformationContactInformation>();

            //  CONTACT PERSON AND PHONE NUMBER: JERRY, 305-555-2222 ext. 231
            var perLoop1000A = new PER_AdditionalPatientInformationContactInformation();

            perLoop1000A.ContactFunctionCode_01                = "IC";
            perLoop1000A.ResponseContactName_02                = "JERRY";
            perLoop1000A.CommunicationNumberQualifier_03       = "TE";
            perLoop1000A.ResponseContactCommunicationNumber_04 = "3055552222";
            perLoop1000A.CommunicationNumberQualifier_05       = "EX";
            perLoop1000A.ResponseContactCommunicationNumber_06 = "231";
            result.AllNM1.Loop1000A.PER_SubmitterEDIContactInformation.Add(perLoop1000A);

            //  End 1000A Loop SUBMITTER

            //  Begin 1000B Loop RECEIVER
            result.AllNM1.Loop1000B = new Loop_1000B_837P();

            //  Key Insurance Company with EDI #:66783JJT
            result.AllNM1.Loop1000B.NM1_ReceiverName = new NM1_ReceiverName();
            result.AllNM1.Loop1000B.NM1_ReceiverName.EntityIdentifierCode_01 = "40";
            result.AllNM1.Loop1000B.NM1_ReceiverName.EntityTypeQualifier_02  = "2";
            result.AllNM1.Loop1000B.NM1_ReceiverName.ResponseContactLastorOrganizationName_03 = "KEY INSURANCE COMPANY";
            result.AllNM1.Loop1000B.NM1_ReceiverName.IdentificationCodeQualifier_08           = "46";
            result.AllNM1.Loop1000B.NM1_ReceiverName.ResponseContactIdentifier_09             = "66783JJT";

            //  End 1000B Loop RECEIVER

            //  Repeating 2000A Loops
            result.Loop2000A = new List <Loop_2000A_837P>();

            //  Begin 2000A Loop BILLING PROVIDER Hierarchy
            var loop2000A = new Loop_2000A_837P();

            //  Hierarchical Number 1
            loop2000A.HL_BillingProviderHierarchicalLevel = new HL_BillingProviderHierarchicalLevel();
            loop2000A.HL_BillingProviderHierarchicalLevel.HierarchicalIDNumber_01  = "1";
            loop2000A.HL_BillingProviderHierarchicalLevel.HierarchicalLevelCode_03 = "20";
            loop2000A.HL_BillingProviderHierarchicalLevel.HierarchicalChildCode_04 = "1";

            //  Taxonomy Code: 203BF0100Y
            loop2000A.PRV_BillingProviderSpecialtyInformation = new PRV_BillingProviderSpecialtyInformation();
            loop2000A.PRV_BillingProviderSpecialtyInformation.ProviderCode_01 = "BI";
            loop2000A.PRV_BillingProviderSpecialtyInformation.ReferenceIdentificationQualifier_02 = "PXC";
            loop2000A.PRV_BillingProviderSpecialtyInformation.ProviderTaxonomyCode_03             = "203BF0100Y";

            //  Occurrence of NM1 Loops in any order
            loop2000A.AllNM1 = new All_NM1_837P();

            //  Begin 2010AA Loop BILLING PROVIDER
            loop2000A.AllNM1.Loop2010AA = new Loop_2010AA_837P();

            //  Name is BEN KILDARE SERVICE with NPI: 9876543210
            loop2000A.AllNM1.Loop2010AA.NM1_BillingProviderName = new NM1_BillingProviderName();
            loop2000A.AllNM1.Loop2010AA.NM1_BillingProviderName.EntityIdentifierCode_01 = "85";
            loop2000A.AllNM1.Loop2010AA.NM1_BillingProviderName.EntityTypeQualifier_02  = "2";
            loop2000A.AllNM1.Loop2010AA.NM1_BillingProviderName.ResponseContactLastorOrganizationName_03 = "BEN KILDARE SERVICE";
            loop2000A.AllNM1.Loop2010AA.NM1_BillingProviderName.IdentificationCodeQualifier_08           = "XX";
            loop2000A.AllNM1.Loop2010AA.NM1_BillingProviderName.ResponseContactIdentifier_09             = "9876543210";

            //  ADDRESS: 234 Seaway St
            loop2000A.AllNM1.Loop2010AA.N3_BillingProviderAddress = new N3_AdditionalPatientInformationContactAddress();
            loop2000A.AllNM1.Loop2010AA.N3_BillingProviderAddress.ResponseContactAddressLine_01 = "234 SEAWAY ST";

            //  LOCATION: Miami, FL, 33111
            loop2000A.AllNM1.Loop2010AA.N4_BillingProviderCity_State_ZIPCode = new N4_AdditionalPatientInformationContactCity();
            loop2000A.AllNM1.Loop2010AA.N4_BillingProviderCity_State_ZIPCode.AdditionalPatientInformationContactCityName_01            = "MIAMI";
            loop2000A.AllNM1.Loop2010AA.N4_BillingProviderCity_State_ZIPCode.AdditionalPatientInformationContactStateCode_02           = "FL";
            loop2000A.AllNM1.Loop2010AA.N4_BillingProviderCity_State_ZIPCode.AdditionalPatientInformationContactPostalZoneorZIPCode_03 = "33111";

            //  Occurrence of REF Loops in any order
            loop2000A.AllNM1.Loop2010AA.AllREF = new All_REF_837P_8();

            //  TIN: 587654321
            loop2000A.AllNM1.Loop2010AA.AllREF.REF_BillingProviderTaxIdentification = new REF_BillingProviderTaxIdentification();
            loop2000A.AllNM1.Loop2010AA.AllREF.REF_BillingProviderTaxIdentification.ReferenceIdentificationQualifier_01 = "EI";
            loop2000A.AllNM1.Loop2010AA.AllREF.REF_BillingProviderTaxIdentification.MemberGrouporPolicyNumber_02        = "587654321";

            //  End 2010AA Loop BILLING PROVIDER

            //  Begin 2010AB Loop PAY-TO PROVIDER
            loop2000A.AllNM1.Loop2010AB = new Loop_2010AB_837P();

            //  PAY-TO PROVIDER Name is Kildare Associates
            loop2000A.AllNM1.Loop2010AB.NM1_Pay_AddressName = new NM1_Pay();
            loop2000A.AllNM1.Loop2010AB.NM1_Pay_AddressName.EntityIdentifierCode_01 = "87";
            loop2000A.AllNM1.Loop2010AB.NM1_Pay_AddressName.EntityTypeQualifier_02  = "2";
            loop2000A.AllNM1.Loop2010AB.NM1_Pay_AddressName.ResponseContactLastorOrganizationName_03 = "Kildare Associates";

            //  PROVIDER ADDRESS: 2345 Ocean Blvd
            loop2000A.AllNM1.Loop2010AB.N3_Pay_ToAddress_ADDRESS = new N3_AdditionalPatientInformationContactAddress();
            loop2000A.AllNM1.Loop2010AB.N3_Pay_ToAddress_ADDRESS.ResponseContactAddressLine_01 = "2345 OCEAN BLVD";

            //  PROVIDER LOCATION: Miami, Fl 33111
            loop2000A.AllNM1.Loop2010AB.N4_Pay_AddressCity_State_ZIPCode = new N4_AdditionalPatientInformationContactCity();
            loop2000A.AllNM1.Loop2010AB.N4_Pay_AddressCity_State_ZIPCode.AdditionalPatientInformationContactCityName_01            = "MIAMI";
            loop2000A.AllNM1.Loop2010AB.N4_Pay_AddressCity_State_ZIPCode.AdditionalPatientInformationContactStateCode_02           = "FL";
            loop2000A.AllNM1.Loop2010AB.N4_Pay_AddressCity_State_ZIPCode.AdditionalPatientInformationContactPostalZoneorZIPCode_03 = "33111";

            //  End 2010AB Loop PAY-TO PROVIDER

            //  Repeating 2000B Loops
            loop2000A.Loop2000B = new List <Loop_2000B_837P>();

            //  Begin 2000B Loop SUBSCRIBER Hierarchy
            var loop2000B = new Loop_2000B_837P();

            //  Hierarchical Number 2
            loop2000B.HL_SubscriberHierarchicalLevel = new HL_SubscriberHierarchicalLevel();
            loop2000B.HL_SubscriberHierarchicalLevel.HierarchicalIDNumber_01       = "2";
            loop2000B.HL_SubscriberHierarchicalLevel.HierarchicalParentIDNumber_02 = "1";
            loop2000B.HL_SubscriberHierarchicalLevel.HierarchicalLevelCode_03      = "22";
            loop2000B.HL_SubscriberHierarchicalLevel.HierarchicalChildCode_04      = "1";

            //  SUBSCRIBER GROUP #: 2222-SJ
            loop2000B.SBR_SubscriberInformation = new SBR_SubscriberInformation();
            loop2000B.SBR_SubscriberInformation.PayerResponsibilitySequenceNumberCode_01 = "P";
            loop2000B.SBR_SubscriberInformation.InsuredGrouporPolicyNumber_03            = "2222-SJ";
            loop2000B.SBR_SubscriberInformation.ClaimFilingIndicatorCode_09 = "CI";

            //  Occurrence of NM1 Loops in any order
            loop2000B.AllNM1 = new All_NM1_837P_2();

            //  Begin 2010BA Loop SUBSCRIBER
            loop2000B.AllNM1.Loop2010BA = new Loop_2010BA_837P();

            //  SUBSCRIBER name is Jane Smith
            loop2000B.AllNM1.Loop2010BA.NM1_SubscriberName = new NM1_InsuredName();
            loop2000B.AllNM1.Loop2010BA.NM1_SubscriberName.EntityIdentifierCode_01 = "IL";
            loop2000B.AllNM1.Loop2010BA.NM1_SubscriberName.EntityTypeQualifier_02  = "1";
            loop2000B.AllNM1.Loop2010BA.NM1_SubscriberName.ResponseContactLastorOrganizationName_03 = "SMITH";
            loop2000B.AllNM1.Loop2010BA.NM1_SubscriberName.ResponseContactFirstName_04    = "JANE";
            loop2000B.AllNM1.Loop2010BA.NM1_SubscriberName.IdentificationCodeQualifier_08 = "MI";
            loop2000B.AllNM1.Loop2010BA.NM1_SubscriberName.ResponseContactIdentifier_09   = "JS00111223333";

            //  SUBSCRIBER SEX: F and DOB: 05 / 01 / 43
            loop2000B.AllNM1.Loop2010BA.DMG_SubscriberDemographicInformation = new DMG_DependentDemographicInformation();
            loop2000B.AllNM1.Loop2010BA.DMG_SubscriberDemographicInformation.DateTimePeriodFormatQualifier_01 = "D8";
            loop2000B.AllNM1.Loop2010BA.DMG_SubscriberDemographicInformation.DependentBirthDate_02            = "19430501";
            loop2000B.AllNM1.Loop2010BA.DMG_SubscriberDemographicInformation.DependentGenderCode_03           = "F";

            //  End 2010BA Loop SUBSCRIBER

            //  Begin 2010BB Loop PAYER
            loop2000B.AllNM1.Loop2010BB = new Loop_2010BB_837P();

            //  Payer name is Key Insurance Company with PAYER ID: 999996666
            loop2000B.AllNM1.Loop2010BB.NM1_PayerName = new NM1_CorrectedPriorityPayerName();
            loop2000B.AllNM1.Loop2010BB.NM1_PayerName.EntityIdentifierCode_01 = "PR";
            loop2000B.AllNM1.Loop2010BB.NM1_PayerName.EntityTypeQualifier_02  = "2";
            loop2000B.AllNM1.Loop2010BB.NM1_PayerName.ResponseContactLastorOrganizationName_03 = "KEY INSURANCE COMPANY";
            loop2000B.AllNM1.Loop2010BB.NM1_PayerName.IdentificationCodeQualifier_08           = "PI";
            loop2000B.AllNM1.Loop2010BB.NM1_PayerName.ResponseContactIdentifier_09             = "999996666";

            //  Occurrence of REF in any order
            loop2000B.AllNM1.Loop2010BB.AllREF = new All_REF_837P_5();

            //  Repeating REF
            loop2000B.AllNM1.Loop2010BB.AllREF.REF_BillingProviderSecondaryIdentification = new List <REF_BillingProviderSecondaryIdentification>();

            //  KEY INSURANCE COMPANY PROVIDER ID #: KA6663
            var refLoop2000B = new REF_BillingProviderSecondaryIdentification();

            refLoop2000B.ReferenceIdentificationQualifier_01 = "G2";
            refLoop2000B.MemberGrouporPolicyNumber_02        = "KA6663";
            loop2000B.AllNM1.Loop2010BB.AllREF.REF_BillingProviderSecondaryIdentification.Add(refLoop2000B);

            //  End 2010BB Loop PAYER

            //  Repeating 2000C Loops
            loop2000B.Loop2000C = new List <Loop_2000C_837P>();

            //  Begin 2000C Loop PATIENT Hierarchy
            var loop2000C = new Loop_2000C_837P();

            //  Hierarchical Number 3
            loop2000C.HL_PatientHierarchicalLevel = new HL_DependentLevel();
            loop2000C.HL_PatientHierarchicalLevel.HierarchicalIDNumber_01       = "3";
            loop2000C.HL_PatientHierarchicalLevel.HierarchicalParentIDNumber_02 = "2";
            loop2000C.HL_PatientHierarchicalLevel.HierarchicalLevelCode_03      = "23";
            loop2000C.HL_PatientHierarchicalLevel.HierarchicalChildCode_04      = "0";

            loop2000C.PAT_PatientInformation = new PAT_PatientInformation();
            loop2000C.PAT_PatientInformation.IndividualRelationshipCode_01 = "19";

            //  Begin 2010CA Loop PATIENT
            loop2000C.Loop2010CA = new Loop_2010CA_837P();

            //  PATIENT name is Ted Smith
            loop2000C.Loop2010CA.NM1_PatientName = new NM1_DependentName_2();
            loop2000C.Loop2010CA.NM1_PatientName.EntityIdentifierCode_01 = "QC";
            loop2000C.Loop2010CA.NM1_PatientName.EntityTypeQualifier_02  = "1";
            loop2000C.Loop2010CA.NM1_PatientName.ResponseContactLastorOrganizationName_03 = "SMITH";
            loop2000C.Loop2010CA.NM1_PatientName.ResponseContactFirstName_04 = "TED";

            //  PATIENT ADDRESS: 236 N. Main St.
            loop2000C.Loop2010CA.N3_PatientAddress = new N3_AdditionalPatientInformationContactAddress();
            loop2000C.Loop2010CA.N3_PatientAddress.ResponseContactAddressLine_01 = "236 N MAIN ST";

            //  PATIENT LOCATION: Miami, Fl, 33413
            loop2000C.Loop2010CA.N4_PatientCity_State_ZIPCode = new N4_AdditionalPatientInformationContactCity();
            loop2000C.Loop2010CA.N4_PatientCity_State_ZIPCode.AdditionalPatientInformationContactCityName_01            = "MIAMI";
            loop2000C.Loop2010CA.N4_PatientCity_State_ZIPCode.AdditionalPatientInformationContactStateCode_02           = "FL";
            loop2000C.Loop2010CA.N4_PatientCity_State_ZIPCode.AdditionalPatientInformationContactPostalZoneorZIPCode_03 = "33413";

            //  PATIENT SEX: M and DOB: 05 / 01 / 73
            loop2000C.Loop2010CA.DMG_PatientDemographicInformation = new DMG_DependentDemographicInformation();
            loop2000C.Loop2010CA.DMG_PatientDemographicInformation.DateTimePeriodFormatQualifier_01 = "D8";
            loop2000C.Loop2010CA.DMG_PatientDemographicInformation.DependentBirthDate_02            = "19730501";
            loop2000C.Loop2010CA.DMG_PatientDemographicInformation.DependentGenderCode_03           = "M";

            //  End 2010CA Loop PATIENT

            //  Repeating 2300 Loops
            loop2000C.Loop2300 = new List <Loop_2300_837P>();

            //  Begin 2300 Loop CLAIM
            var loop2300 = new Loop_2300_837P();

            //  PATIENT ACCOUNT NUMBER: 2-646-3774
            loop2300.CLM_ClaimInformation = new CLM_ClaimInformation();
            loop2300.CLM_ClaimInformation.PatientControlNumber_01   = "26463774";
            loop2300.CLM_ClaimInformation.TotalClaimChargeAmount_02 = "100";
            loop2300.CLM_ClaimInformation.HealthCareServiceLocationInformation_05 = new C023_HealthCareServiceLocationInformation();
            loop2300.CLM_ClaimInformation.HealthCareServiceLocationInformation_05.FacilityTypeCode_01       = "11";
            loop2300.CLM_ClaimInformation.HealthCareServiceLocationInformation_05.FacilityCodeQualifier_02  = "B";
            loop2300.CLM_ClaimInformation.HealthCareServiceLocationInformation_05.ClaimFrequencyTypeCode_03 = "1";
            loop2300.CLM_ClaimInformation.ProviderorSupplierSignatureIndicator_06     = "Y";
            loop2300.CLM_ClaimInformation.AssignmentorPlanParticipationCode_07        = "A";
            loop2300.CLM_ClaimInformation.BenefitsAssignmentCertificationIndicator_08 = "Y";
            loop2300.CLM_ClaimInformation.ReleaseofInformationCode_09 = "I";

            //  Occurrence of REF in any order
            loop2300.AllREF = new All_REF_837P_6();

            //  ELECTRONIC ROUTE: Billing provider (sender), to VAN to Key Insurance Company (receiver). VAN claim identification number = 17312345600006351.
            loop2300.AllREF.REF_ClaimIdentifierForTransmissionIntermediaries = new REF_ClaimIdentificationNumberForClearinghousesandOtherTransmissionIntermediaries();
            loop2300.AllREF.REF_ClaimIdentifierForTransmissionIntermediaries.ReferenceIdentificationQualifier_01 = "D9";
            loop2300.AllREF.REF_ClaimIdentifierForTransmissionIntermediaries.MemberGrouporPolicyNumber_02        = "17312345600006351";

            //  Occurrence of HI in any order
            loop2300.AllHI = new All_HI_837P();

            //  CASE: Patient has sore throat.
            loop2300.AllHI.HI_HealthCareDiagnosisCode = new HI_DependentHealthCareDiagnosisCode();
            loop2300.AllHI.HI_HealthCareDiagnosisCode.HealthCareCodeInformation_01 = new C022_HealthCareCodeInformation();
            loop2300.AllHI.HI_HealthCareDiagnosisCode.HealthCareCodeInformation_01.CodeListQualifierCode_01 = "BK";
            loop2300.AllHI.HI_HealthCareDiagnosisCode.HealthCareCodeInformation_01.IndustryCode_02          = "0340";
            loop2300.AllHI.HI_HealthCareDiagnosisCode.HealthCareCodeInformation_02 = new C022_HealthCareCodeInformation();
            loop2300.AllHI.HI_HealthCareDiagnosisCode.HealthCareCodeInformation_02.CodeListQualifierCode_01 = "BF";
            loop2300.AllHI.HI_HealthCareDiagnosisCode.HealthCareCodeInformation_02.IndustryCode_02          = "V7389";

            //  Repeating 2400 Loops
            loop2300.Loop2400 = new List <Loop_2400_837P>();

            //  Begin 2400 Loop SERVICE LINE 1
            var loop24001 = new Loop_2400_837P();

            loop24001.LX_ServiceLineNumber = new LX_HeaderNumber();
            loop24001.LX_ServiceLineNumber.AssignedNumber_01 = "1";

            //  SERVICES: Office visit, intermediate service, established patient, throat culture.
            //  CHARGES: Office first visit = $40.00
            loop24001.SV1_ProfessionalService = new SV1_ProfessionalService();
            loop24001.SV1_ProfessionalService.CompositeMedicalProcedureIdentifier_01 = new C003_CompositeMedicalProcedureIdentifier();
            loop24001.SV1_ProfessionalService.CompositeMedicalProcedureIdentifier_01.ProductorServiceIDQualifier_01 = "HC";
            loop24001.SV1_ProfessionalService.CompositeMedicalProcedureIdentifier_01.ProcedureCode_02 = "99213";
            loop24001.SV1_ProfessionalService.LineItemChargeAmount_02          = "40";
            loop24001.SV1_ProfessionalService.UnitorBasisforMeasurementCode_03 = "UN";
            loop24001.SV1_ProfessionalService.ServiceUnitCount_04 = "1";
            loop24001.SV1_ProfessionalService.CompositeDiagnosisCodePointer_07 = new C004_CompositeDiagnosisCodePointer();
            loop24001.SV1_ProfessionalService.CompositeDiagnosisCodePointer_07.DiagnosisCodePointer_01 = "1";

            //  Occurrence of DTP in any order
            loop24001.AllDTP = new All_DTP_837P();

            //  INITIAL VISIT: DOS=10/03/06. POS=Office
            loop24001.AllDTP.DTP_Date_ServiceDate = new DTP_ClaimLevelServiceDate();
            loop24001.AllDTP.DTP_Date_ServiceDate.DateTimeQualifier_01             = "472";
            loop24001.AllDTP.DTP_Date_ServiceDate.DateTimePeriodFormatQualifier_02 = "D8";
            loop24001.AllDTP.DTP_Date_ServiceDate.AccidentDate_03 = "20061003";

            //  End 2400 Loop SERVICE LINE 1
            loop2300.Loop2400.Add(loop24001);

            //  Begin 2400 Loop SERVICE LINE 2
            var loop24002 = new Loop_2400_837P();

            loop24002.LX_ServiceLineNumber = new LX_HeaderNumber();
            loop24002.LX_ServiceLineNumber.AssignedNumber_01 = "2";

            //  SERVICES: Office visit, intermediate service, established patient, throat culture.
            //  CHARGES: Lab test for strep = $15.00
            loop24002.SV1_ProfessionalService = new SV1_ProfessionalService();
            loop24002.SV1_ProfessionalService.CompositeMedicalProcedureIdentifier_01 = new C003_CompositeMedicalProcedureIdentifier();
            loop24002.SV1_ProfessionalService.CompositeMedicalProcedureIdentifier_01.ProductorServiceIDQualifier_01 = "HC";
            loop24002.SV1_ProfessionalService.CompositeMedicalProcedureIdentifier_01.ProcedureCode_02 = "87070";
            loop24002.SV1_ProfessionalService.LineItemChargeAmount_02          = "15";
            loop24002.SV1_ProfessionalService.UnitorBasisforMeasurementCode_03 = "UN";
            loop24002.SV1_ProfessionalService.ServiceUnitCount_04 = "1";
            loop24002.SV1_ProfessionalService.CompositeDiagnosisCodePointer_07 = new C004_CompositeDiagnosisCodePointer();
            loop24002.SV1_ProfessionalService.CompositeDiagnosisCodePointer_07.DiagnosisCodePointer_01 = "1";

            //  Occurrence of DTP in any order
            loop24002.AllDTP = new All_DTP_837P();

            //  INITIAL VISIT: DOS=10/03/06. POS=Office
            loop24002.AllDTP.DTP_Date_ServiceDate = new DTP_ClaimLevelServiceDate();
            loop24002.AllDTP.DTP_Date_ServiceDate.DateTimeQualifier_01             = "472";
            loop24002.AllDTP.DTP_Date_ServiceDate.DateTimePeriodFormatQualifier_02 = "D8";
            loop24002.AllDTP.DTP_Date_ServiceDate.AccidentDate_03 = "20061003";

            //  End 2400 Loop SERVICE LINE 2
            loop2300.Loop2400.Add(loop24002);

            //  Begin 2400 Loop SERVICE LINE 3
            var loop24003 = new Loop_2400_837P();

            loop24003.LX_ServiceLineNumber = new LX_HeaderNumber();
            loop24003.LX_ServiceLineNumber.AssignedNumber_01 = "3";

            //  SERVICES: Office visit, intermediate service, established patient, mono screening.
            //  CHARGES: Follow-up visit = $35.00
            loop24003.SV1_ProfessionalService = new SV1_ProfessionalService();
            loop24003.SV1_ProfessionalService.CompositeMedicalProcedureIdentifier_01 = new C003_CompositeMedicalProcedureIdentifier();
            loop24003.SV1_ProfessionalService.CompositeMedicalProcedureIdentifier_01.ProductorServiceIDQualifier_01 = "HC";
            loop24003.SV1_ProfessionalService.CompositeMedicalProcedureIdentifier_01.ProcedureCode_02 = "99214";
            loop24003.SV1_ProfessionalService.LineItemChargeAmount_02          = "35";
            loop24003.SV1_ProfessionalService.UnitorBasisforMeasurementCode_03 = "UN";
            loop24003.SV1_ProfessionalService.ServiceUnitCount_04 = "1";
            loop24003.SV1_ProfessionalService.CompositeDiagnosisCodePointer_07 = new C004_CompositeDiagnosisCodePointer();
            loop24003.SV1_ProfessionalService.CompositeDiagnosisCodePointer_07.DiagnosisCodePointer_01 = "2";

            //  Occurrence of DTP in any order
            loop24003.AllDTP = new All_DTP_837P();

            //  FOLLOW-UP VISIT: DOS=10/10/06 POS=Office
            loop24003.AllDTP.DTP_Date_ServiceDate = new DTP_ClaimLevelServiceDate();
            loop24003.AllDTP.DTP_Date_ServiceDate.DateTimeQualifier_01             = "472";
            loop24003.AllDTP.DTP_Date_ServiceDate.DateTimePeriodFormatQualifier_02 = "D8";
            loop24003.AllDTP.DTP_Date_ServiceDate.AccidentDate_03 = "20061010";

            //  End 2400 Loop SERVICE LINE 3
            loop2300.Loop2400.Add(loop24003);

            //  Begin 2400 Loop SERVICE LINE 4
            var loop24004 = new Loop_2400_837P();

            loop24004.LX_ServiceLineNumber = new LX_HeaderNumber();
            loop24004.LX_ServiceLineNumber.AssignedNumber_01 = "4";

            //  SERVICES: Office visit, intermediate service, established patient, mono screening.
            //  CHARGES: Lab test for mono = $10.00
            loop24004.SV1_ProfessionalService = new SV1_ProfessionalService();
            loop24004.SV1_ProfessionalService.CompositeMedicalProcedureIdentifier_01 = new C003_CompositeMedicalProcedureIdentifier();
            loop24004.SV1_ProfessionalService.CompositeMedicalProcedureIdentifier_01.ProductorServiceIDQualifier_01 = "HC";
            loop24004.SV1_ProfessionalService.CompositeMedicalProcedureIdentifier_01.ProcedureCode_02 = "86663";
            loop24004.SV1_ProfessionalService.LineItemChargeAmount_02          = "10";
            loop24004.SV1_ProfessionalService.UnitorBasisforMeasurementCode_03 = "UN";
            loop24004.SV1_ProfessionalService.ServiceUnitCount_04 = "1";
            loop24004.SV1_ProfessionalService.CompositeDiagnosisCodePointer_07 = new C004_CompositeDiagnosisCodePointer();
            loop24004.SV1_ProfessionalService.CompositeDiagnosisCodePointer_07.DiagnosisCodePointer_01 = "2";

            //  Occurrence of DTP in any order
            loop24004.AllDTP = new All_DTP_837P();

            //  FOLLOW-UP VISIT: DOS=10/10/06 POS=Office
            loop24004.AllDTP.DTP_Date_ServiceDate = new DTP_ClaimLevelServiceDate();
            loop24004.AllDTP.DTP_Date_ServiceDate.DateTimeQualifier_01             = "472";
            loop24004.AllDTP.DTP_Date_ServiceDate.DateTimePeriodFormatQualifier_02 = "D8";
            loop24004.AllDTP.DTP_Date_ServiceDate.AccidentDate_03 = "20061010";

            //  End 2400 Loop SERVICE LINE 4
            loop2300.Loop2400.Add(loop24004);

            //  End 2300 Loop CLAIM
            loop2000C.Loop2300.Add(loop2300);

            //  End 2000C Loop PATIENT Hierarchy
            loop2000B.Loop2000C.Add(loop2000C);

            //  End 2000B Loop SUBSCRIBER Hierarchy
            loop2000A.Loop2000B.Add(loop2000B);

            //  End 2000A Loop BILLING PROVIDER Hierarchy
            result.Loop2000A.Add(loop2000A);

            return(result);
        }
Esempio n. 3
0
        /// <summary>
        /// Build dental claim.
        /// Original from http://www.x12.org/examples/005010X224/commercial-health-insurance/
        /// The patient is a different person than the subscriber. The payer is a commercial health insurance company.
        /// Scenario:
        /// SUBSCRIBER: Jane Smith
        /// KEY INSURANCE COMPANY ID #: SSN
        /// SSN: 111-22-3333
        /// PATIENT: Ted Smith
        /// PATIENT ADDRESS: 236 N.Main St., Miami, Fl, 33413
        /// SEX: M
        /// DOB: 05/01/1992
        /// PATIENT RELATIONSHIP: Child
        /// DESTINATION PAYER: Insurance Company XYZ
        /// RECEIVER: Insurance Company XYZ
        /// ETIN#: 66783JJT
        /// SUBMITTER: Premier Billing Service
        /// ETIN#: TGJ23
        /// BILLING PROVIDER: Dental Associates
        /// NPI: 1234567890
        /// TIN: 587654321
        /// ADDRESS: 234 Seaway St., Miami, FL, 33111
        /// RENDERING PROVIDER: Dr.Ben Kildare
        /// NPI: 9876543210
        /// PATIENT ACCOUNT NUMBER: 2-640-3774
        /// DOS: 20061029
        /// POS= Office
        /// SERVICES RENDERED: Two surface amalgam on tooth #12 (mesial and occlusal surfaces) and prophy.
        /// CHARGES: amalgam = $100.00, prophy = $50.00.
        /// ELECTRONIC ROUTE: VAN submits claim on behalf of billing provider (submitter) to Insurance Company XYZ (receiver).
        /// VAN CLAIM IDENTIFICATION NUMBER: 17312345600006351.
        /// </summary>
        static TS837D BuildDentalClaim(string controlNumber)
        {
            var result = new TS837D();

            //  ST TRANSACTION SET HEADER
            result.ST = new ST();
            result.ST.TransactionSetIdentifierCode_01       = "837";
            result.ST.TransactionSetControlNumber_02        = controlNumber.PadLeft(9, '0');
            result.ST.ImplementationConventionPreference_03 = "005010X224A2";

            //  BHT TRANSACTION SET HIERARCHY AND CONTROL INFORMATION
            result.BHT_BeginningofHierarchicalTransaction = new BHT_BeginningofHierarchicalTransaction_7();
            result.BHT_BeginningofHierarchicalTransaction.HierarchicalStructureCode_01      = "0019";
            result.BHT_BeginningofHierarchicalTransaction.TransactionSetPurposeCode_02      = "00";
            result.BHT_BeginningofHierarchicalTransaction.SubmitterTransactionIdentifier_03 = "0123";
            result.BHT_BeginningofHierarchicalTransaction.TransactionSetCreationDate_04     = "20061123";
            result.BHT_BeginningofHierarchicalTransaction.TransactionSetCreationTime_05     = "1023";
            result.BHT_BeginningofHierarchicalTransaction.TransactionTypeCode_06            = "CH";

            //  Occurrence of NM1 Loops in any order
            result.AllNM1 = new All_NM1_837D_6();

            //  Begin 1000A Loop SUBMITTER NAME
            result.AllNM1.Loop1000A = new Loop_1000A_837D();

            //  NM1 SUBMITTER
            result.AllNM1.Loop1000A.NM1_SubmitterName = new NM1_InformationReceiverName_2();
            result.AllNM1.Loop1000A.NM1_SubmitterName.EntityIdentifierCode_01 = "41";
            result.AllNM1.Loop1000A.NM1_SubmitterName.EntityTypeQualifier_02  = "2";
            result.AllNM1.Loop1000A.NM1_SubmitterName.ResponseContactLastorOrganizationName_03 = "PREMIER BILLING SERVICE";
            result.AllNM1.Loop1000A.NM1_SubmitterName.IdentificationCodeQualifier_08           = "46";
            result.AllNM1.Loop1000A.NM1_SubmitterName.ResponseContactIdentifier_09             = "TGJ23";

            //  Repeating PER Patient information
            result.AllNM1.Loop1000A.PER_SubmitterEDIContactInformation = new List <PER_AdditionalPatientInformationContactInformation>();

            //  PER SUBMITTER EDI CONTACT INFORMATION
            var per1 = new PER_AdditionalPatientInformationContactInformation();

            per1.ContactFunctionCode_01                = "IC";
            per1.ResponseContactName_02                = "JERRY";
            per1.CommunicationNumberQualifier_03       = "TE";
            per1.ResponseContactCommunicationNumber_04 = "7176149999";
            result.AllNM1.Loop1000A.PER_SubmitterEDIContactInformation.Add(per1);

            //  End 1000A Loop

            //  Begin 1000B Loop RECEIVER NAME
            result.AllNM1.Loop1000B = new Loop_1000B_837D();

            //  NM1 RECEIVER
            result.AllNM1.Loop1000B.NM1_ReceiverName = new NM1_ReceiverName();
            result.AllNM1.Loop1000B.NM1_ReceiverName.EntityIdentifierCode_01 = "40";
            result.AllNM1.Loop1000B.NM1_ReceiverName.EntityTypeQualifier_02  = "2";
            result.AllNM1.Loop1000B.NM1_ReceiverName.ResponseContactLastorOrganizationName_03 = "INSURANCE COMPANY XYZ";
            result.AllNM1.Loop1000B.NM1_ReceiverName.IdentificationCodeQualifier_08           = "46";
            result.AllNM1.Loop1000B.NM1_ReceiverName.ResponseContactIdentifier_09             = "66783JJT";

            //  End 1000B Loop

            //  Repeating 2000A Loops
            result.Loop2000A = new List <Loop_2000A_837D>();

            //  Begin 2000A Loop BILLING PROVIDER
            var loop2000A = new Loop_2000A_837D();

            //  HIERARCHAL LEVEL 1
            loop2000A.HL_BillingProviderHierarchicalLevel = new HL_BillingProviderHierarchicalLevel();
            loop2000A.HL_BillingProviderHierarchicalLevel.HierarchicalIDNumber_01  = "1";
            loop2000A.HL_BillingProviderHierarchicalLevel.HierarchicalLevelCode_03 = "20";
            loop2000A.HL_BillingProviderHierarchicalLevel.HierarchicalChildCode_04 = "1";

            //  Occurrence of NM1 Loops in any order
            loop2000A.AllNM1 = new All_NM1_837D();

            //  Begin 2010AA Loop BILLING PROVIDER NAME
            loop2000A.AllNM1.Loop2010AA = new Loop_2010AA_837D();

            //  NM1 BILLING PROVIDER NAME
            loop2000A.AllNM1.Loop2010AA.NM1_BillingProviderName = new NM1_BillingProviderName();
            loop2000A.AllNM1.Loop2010AA.NM1_BillingProviderName.EntityIdentifierCode_01 = "85";
            loop2000A.AllNM1.Loop2010AA.NM1_BillingProviderName.EntityTypeQualifier_02  = "2";
            loop2000A.AllNM1.Loop2010AA.NM1_BillingProviderName.ResponseContactLastorOrganizationName_03 = "DENTAL ASSOCIATES";
            loop2000A.AllNM1.Loop2010AA.NM1_BillingProviderName.IdentificationCodeQualifier_08           = "XX";
            loop2000A.AllNM1.Loop2010AA.NM1_BillingProviderName.ResponseContactIdentifier_09             = "1234567890";

            //  N3 BILLING PROVIDER ADDRESS
            loop2000A.AllNM1.Loop2010AA.N3_BillingProviderAddress = new N3_AdditionalPatientInformationContactAddress();
            loop2000A.AllNM1.Loop2010AA.N3_BillingProviderAddress.ResponseContactAddressLine_01 = "234 SEAWAY ST";

            //  N4 BILLING PROVIDER LOCATION
            loop2000A.AllNM1.Loop2010AA.N4_BillingProviderCity_State_ZIPCode = new N4_AdditionalPatientInformationContactCity();
            loop2000A.AllNM1.Loop2010AA.N4_BillingProviderCity_State_ZIPCode.AdditionalPatientInformationContactCityName_01            = "MIAMI";
            loop2000A.AllNM1.Loop2010AA.N4_BillingProviderCity_State_ZIPCode.AdditionalPatientInformationContactStateCode_02           = "FL";
            loop2000A.AllNM1.Loop2010AA.N4_BillingProviderCity_State_ZIPCode.AdditionalPatientInformationContactPostalZoneorZIPCode_03 = "33111";

            //  Occurrence of REF Segments in any order
            loop2000A.AllNM1.Loop2010AA.AllREF = new All_REF_837D_8();

            //  REF BILLING PROVIDER'S TAX IDENTIFICATION
            loop2000A.AllNM1.Loop2010AA.AllREF.REF_BillingProviderTaxIdentification = new REF_BillingProviderTaxIdentification();
            loop2000A.AllNM1.Loop2010AA.AllREF.REF_BillingProviderTaxIdentification.ReferenceIdentificationQualifier_01 = "EI";
            loop2000A.AllNM1.Loop2010AA.AllREF.REF_BillingProviderTaxIdentification.MemberGrouporPolicyNumber_02        = "587654321";

            //  Repeating PER billing provider contact information
            loop2000A.AllNM1.Loop2010AA.PER_BillingProviderContactInformation = new List <PER_AdditionalPatientInformationContactInformation>();

            //  End 2010AA Loop

            //  Repeating 2000B Loops
            loop2000A.Loop2000B = new List <Loop_2000B_837D>();

            //  Begin 2000B Loop SUBSCRIBER HL LOOP
            var loop2000B = new Loop_2000B_837D();

            //  HIERARCHAL LEVEL 2
            loop2000B.HL_SubscriberHierarchicalLevel = new HL_SubscriberHierarchicalLevel();
            loop2000B.HL_SubscriberHierarchicalLevel.HierarchicalIDNumber_01       = "2";
            loop2000B.HL_SubscriberHierarchicalLevel.HierarchicalParentIDNumber_02 = "1";
            loop2000B.HL_SubscriberHierarchicalLevel.HierarchicalLevelCode_03      = "22";
            loop2000B.HL_SubscriberHierarchicalLevel.HierarchicalChildCode_04      = "1";

            //  SBR SUBSCRIBER INFORMATION
            loop2000B.SBR_SubscriberInformation = new SBR_SubscriberInformation();
            loop2000B.SBR_SubscriberInformation.PayerResponsibilitySequenceNumberCode_01 = "P";
            loop2000B.SBR_SubscriberInformation.ClaimFilingIndicatorCode_09 = "CI";

            //  Occurrence of NM1 Loops in any order
            loop2000B.AllNM1 = new All_NM1_837D_2();

            //  Begin 2010BA Loop SUBSCRIBER NAME LOOP
            loop2000B.AllNM1.Loop2010BA = new Loop_2010BA_837D();

            //  NM1 SUBSCRIBER'S NAME
            loop2000B.AllNM1.Loop2010BA.NM1_SubscriberName = new NM1_InsuredName();
            loop2000B.AllNM1.Loop2010BA.NM1_SubscriberName.EntityIdentifierCode_01 = "IL";
            loop2000B.AllNM1.Loop2010BA.NM1_SubscriberName.EntityTypeQualifier_02  = "1";
            loop2000B.AllNM1.Loop2010BA.NM1_SubscriberName.ResponseContactLastorOrganizationName_03 = "SMITH";
            loop2000B.AllNM1.Loop2010BA.NM1_SubscriberName.ResponseContactFirstName_04    = "JANE";
            loop2000B.AllNM1.Loop2010BA.NM1_SubscriberName.IdentificationCodeQualifier_08 = "MI";
            loop2000B.AllNM1.Loop2010BA.NM1_SubscriberName.ResponseContactIdentifier_09   = "111223333";

            //  End 2010BA Loop

            //  Begin 2010BB Loop PAYER NAME LOOP
            loop2000B.AllNM1.Loop2010BB = new Loop_2010BB_837D();

            //  NM1 PAYER'S NAME
            loop2000B.AllNM1.Loop2010BB.NM1_PayerName = new NM1_CorrectedPriorityPayerName();
            loop2000B.AllNM1.Loop2010BB.NM1_PayerName.EntityIdentifierCode_01 = "PR";
            loop2000B.AllNM1.Loop2010BB.NM1_PayerName.EntityTypeQualifier_02  = "2";
            loop2000B.AllNM1.Loop2010BB.NM1_PayerName.ResponseContactLastorOrganizationName_03 = "INSURANCE COMPANY XYZ";
            loop2000B.AllNM1.Loop2010BB.NM1_PayerName.IdentificationCodeQualifier_08           = "PI";
            loop2000B.AllNM1.Loop2010BB.NM1_PayerName.ResponseContactIdentifier_09             = "66783JJT";

            //  End 2010BB Loop

            //  Repeating 2000C Loops
            loop2000B.Loop2000C = new List <Loop_2000C_837D>();

            //  Begin 2000C Loop PATIENT'S HL LOOP
            var loop2000C = new Loop_2000C_837D();

            //  HIERARCHAL LEVEL 3
            loop2000C.HL_PatientHierarchicalLevel = new HL_DependentLevel();
            loop2000C.HL_PatientHierarchicalLevel.HierarchicalIDNumber_01       = "3";
            loop2000C.HL_PatientHierarchicalLevel.HierarchicalParentIDNumber_02 = "2";
            loop2000C.HL_PatientHierarchicalLevel.HierarchicalLevelCode_03      = "23";
            loop2000C.HL_PatientHierarchicalLevel.HierarchicalChildCode_04      = "0";

            //  PAT PATIENT INFORMATION
            loop2000C.PAT_PatientInformation = new PAT_PatientInformation();
            loop2000C.PAT_PatientInformation.IndividualRelationshipCode_01 = "19";

            //  Begin 2010CA Loop PATIENT
            loop2000C.Loop2010CA = new Loop_2010CA_837D();

            //  NM1 PATIENT'S NAME
            loop2000C.Loop2010CA.NM1_PatientName = new NM1_DependentName_2();
            loop2000C.Loop2010CA.NM1_PatientName.EntityIdentifierCode_01 = "QC";
            loop2000C.Loop2010CA.NM1_PatientName.EntityTypeQualifier_02  = "1";
            loop2000C.Loop2010CA.NM1_PatientName.ResponseContactLastorOrganizationName_03 = "SMITH";
            loop2000C.Loop2010CA.NM1_PatientName.ResponseContactFirstName_04 = "TED";

            //  N3 PATIENT'S ADDRESS
            loop2000C.Loop2010CA.N3_PatientAddress = new N3_AdditionalPatientInformationContactAddress();
            loop2000C.Loop2010CA.N3_PatientAddress.ResponseContactAddressLine_01 = "236 N MAIN ST";

            //  N4 PATIENT'S CITY
            loop2000C.Loop2010CA.N4_PatientCity_State_ZIPCode = new N4_AdditionalPatientInformationContactCity();
            loop2000C.Loop2010CA.N4_PatientCity_State_ZIPCode.AdditionalPatientInformationContactCityName_01            = "MIAMI";
            loop2000C.Loop2010CA.N4_PatientCity_State_ZIPCode.AdditionalPatientInformationContactStateCode_02           = "FL";
            loop2000C.Loop2010CA.N4_PatientCity_State_ZIPCode.AdditionalPatientInformationContactPostalZoneorZIPCode_03 = "33413";

            //  DMG PATIENT DEMOGRAPHIC INFORMATION
            loop2000C.Loop2010CA.DMG_PatientDemographicInformation = new DMG_DependentDemographicInformation();
            loop2000C.Loop2010CA.DMG_PatientDemographicInformation.DateTimePeriodFormatQualifier_01 = "D8";
            loop2000C.Loop2010CA.DMG_PatientDemographicInformation.DependentBirthDate_02            = "19920501";
            loop2000C.Loop2010CA.DMG_PatientDemographicInformation.DependentGenderCode_03           = "M";

            //  End 2010CA Loop

            //  Repeating 2300 Loops
            loop2000C.Loop2300 = new List <Loop_2300_837D>();

            //  Begin 2300 Loop CLAIM
            var loop2300 = new Loop_2300_837D();

            //  CLM HEALTH CLAIM INFORMATION
            loop2300.CLM_ClaimInformation = new CLM_ClaimInformation();
            loop2300.CLM_ClaimInformation.PatientControlNumber_01   = "26403774";
            loop2300.CLM_ClaimInformation.TotalClaimChargeAmount_02 = "150";
            loop2300.CLM_ClaimInformation.HealthCareServiceLocationInformation_05 = new C023_HealthCareServiceLocationInformation();
            loop2300.CLM_ClaimInformation.HealthCareServiceLocationInformation_05.FacilityTypeCode_01       = "11";
            loop2300.CLM_ClaimInformation.HealthCareServiceLocationInformation_05.FacilityCodeQualifier_02  = "B";
            loop2300.CLM_ClaimInformation.HealthCareServiceLocationInformation_05.ClaimFrequencyTypeCode_03 = "1";
            loop2300.CLM_ClaimInformation.ProviderorSupplierSignatureIndicator_06     = "Y";
            loop2300.CLM_ClaimInformation.AssignmentorPlanParticipationCode_07        = "A";
            loop2300.CLM_ClaimInformation.BenefitsAssignmentCertificationIndicator_08 = "Y";
            loop2300.CLM_ClaimInformation.ReleaseofInformationCode_09 = "I";

            //  Occurrence of DTP Segments in any order
            loop2300.AllDTP = new All_DTP_837D_2();

            //  DTP DATE - SERVICE DATE
            loop2300.AllDTP.DTP_Date_ServiceDate = new DTP_ClaimLevelServiceDate();
            loop2300.AllDTP.DTP_Date_ServiceDate.DateTimeQualifier_01             = "472";
            loop2300.AllDTP.DTP_Date_ServiceDate.DateTimePeriodFormatQualifier_02 = "D8";
            loop2300.AllDTP.DTP_Date_ServiceDate.AccidentDate_03 = "20061029";

            //  Occurrence of REF Segments in any order
            loop2300.AllREF = new All_REF_837D_6();

            //  REF VAN CLAIM NUMBER
            loop2300.AllREF.REF_ClaimIdentifierForTransmissionIntermediaries = new REF_ClaimIdentificationNumberForClearinghousesandOtherTransmissionIntermediaries();
            loop2300.AllREF.REF_ClaimIdentifierForTransmissionIntermediaries.ReferenceIdentificationQualifier_01 = "D9";
            loop2300.AllREF.REF_ClaimIdentifierForTransmissionIntermediaries.MemberGrouporPolicyNumber_02        = "17312345600006351";

            //  Occurrence of NM1 Loops in any order
            loop2300.AllNM1 = new All_NM1_837D_3();

            //  Begin 2310B Loop RENDERING PROVIDER
            loop2300.AllNM1.Loop2310B = new Loop_2310B_837D();

            //  NM1 RENDERING PROVIDER’S NAME
            loop2300.AllNM1.Loop2310B.NM1_RenderingProviderName = new NM1_OtherPayerRenderingProvider_2();
            loop2300.AllNM1.Loop2310B.NM1_RenderingProviderName.EntityIdentifierCode_01 = "82";
            loop2300.AllNM1.Loop2310B.NM1_RenderingProviderName.EntityTypeQualifier_02  = "1";
            loop2300.AllNM1.Loop2310B.NM1_RenderingProviderName.ResponseContactLastorOrganizationName_03 = "KILDARE";
            loop2300.AllNM1.Loop2310B.NM1_RenderingProviderName.ResponseContactFirstName_04    = "BEN";
            loop2300.AllNM1.Loop2310B.NM1_RenderingProviderName.IdentificationCodeQualifier_08 = "XX";
            loop2300.AllNM1.Loop2310B.NM1_RenderingProviderName.ResponseContactIdentifier_09   = "9876543210";

            loop2300.AllNM1.Loop2310B.PRV_RenderingProviderSpecialtyInformation = new PRV_RenderingProviderSpecialtyInformation();
            loop2300.AllNM1.Loop2310B.PRV_RenderingProviderSpecialtyInformation.ProviderCode_01 = "PE";
            loop2300.AllNM1.Loop2310B.PRV_RenderingProviderSpecialtyInformation.ReferenceIdentificationQualifier_02 = "PXC";
            loop2300.AllNM1.Loop2310B.PRV_RenderingProviderSpecialtyInformation.ProviderTaxonomyCode_03             = "1223G0001X";

            //  End 2310B Loop

            //  Repeating 2400 Loops
            loop2300.Loop2400 = new List <Loop_2400_837D>();

            //  Begin 2400 Loop 1 SERVICE LINE
            var loop24001 = new Loop_2400_837D();

            //  LX SERVICE LINE NUMBER
            loop24001.LX_ServiceLineNumber = new LX_HeaderNumber();
            loop24001.LX_ServiceLineNumber.AssignedNumber_01 = "1";

            //  SV3 DENTAL SERVICE
            loop24001.SV3_DentalService = new SV3_DentalService();
            loop24001.SV3_DentalService.CompositeMedicalProcedureIdentifier_01 = new C003_CompositeMedicalProcedureIdentifier();
            loop24001.SV3_DentalService.CompositeMedicalProcedureIdentifier_01.ProductorServiceIDQualifier_01 = "AD";
            loop24001.SV3_DentalService.CompositeMedicalProcedureIdentifier_01.ProcedureCode_02 = "D2150";
            loop24001.SV3_DentalService.LineItemChargeAmount_02 = "100";
            loop24001.SV3_DentalService.ProcedureCount_06       = "1";

            //  Repeating TOO
            loop24001.TOO_ToothInformation = new List <TOO_ToothInformation>();

            //  TOO TOOTH NUMBER/SURFACES
            var too = new TOO_ToothInformation();

            too.CodeListQualifierCode_01            = "JP";
            too.ToothCode_02                        = "12";
            too.ToothSurface_03                     = new C005_ToothSurface();
            too.ToothSurface_03.ToothSurfaceCode_01 = "M";
            too.ToothSurface_03.ToothSurfaceCode_02 = "O";
            loop24001.TOO_ToothInformation.Add(too);

            //  End 2400 Loop 1
            loop2300.Loop2400.Add(loop24001);

            //  Begin 2400 Loop 2 SERVICE LINE
            var loop24002 = new Loop_2400_837D();

            //  LX SERVICE LINE NUMBER
            loop24002.LX_ServiceLineNumber = new LX_HeaderNumber();
            loop24002.LX_ServiceLineNumber.AssignedNumber_01 = "2";

            //  SV3 DENTAL SERVICE
            loop24002.SV3_DentalService = new SV3_DentalService();
            loop24002.SV3_DentalService.CompositeMedicalProcedureIdentifier_01 = new C003_CompositeMedicalProcedureIdentifier();
            loop24002.SV3_DentalService.CompositeMedicalProcedureIdentifier_01.ProductorServiceIDQualifier_01 = "AD";
            loop24002.SV3_DentalService.CompositeMedicalProcedureIdentifier_01.ProcedureCode_02 = "D1110";
            loop24002.SV3_DentalService.LineItemChargeAmount_02 = "50";
            loop24002.SV3_DentalService.ProcedureCount_06       = "1";

            //  End 2400 Loop 2
            loop2300.Loop2400.Add(loop24002);

            //  End 2300 Loop
            loop2000C.Loop2300.Add(loop2300);

            //  End 2000C Loop
            loop2000B.Loop2000C.Add(loop2000C);

            //  End 2000B Loop
            loop2000A.Loop2000B.Add(loop2000B);

            //  End 2000A Loop
            result.Loop2000A.Add(loop2000A);

            return(result);
        }