Module: Stupidedi::Versions::FunctionalGroups::FiftyTen::TransactionSetDefs

Defined in:
lib/stupidedi/versions/functional_groups/005010/transaction_set_defs.rb,
lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/BE834.rb,
lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/FA999.rb,
lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HB271.rb,
lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HC837.rb,
lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HI278.rb,
lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HN277.rb,
lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HP835.rb,
lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HR276.rb,
lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HS270.rb,
lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/RA820.rb

Constant Summary collapse

BE834 =
d::TransactionSetDef.build("BE", "834",
  "Benefit Enrollment and Maintenance",

  d::TableDef.header("Table 1 - Header",
    s:: ST.use(100, r::Mandatory, d::RepeatCount.bounded(1)),
    s::BGN.use(200, r::Mandatory, d::RepeatCount.bounded(1)),
    s::REF.use(300, r::Optional,  d::RepeatCount.bounded(1)),
    s::DTP.use(400, r::Optional,  d::RepeatCount.unbounded),
    s::QTY.use(600, r::Optional,  d::RepeatCount.bounded(3)),

    d::LoopDef.build("1000A", d::RepeatCount.bounded(1),
      s::N1.use(700, r::Mandatory, d::RepeatCount.bounded(1))),

    d::LoopDef.build("1000B", d::RepeatCount.bounded(1),
      s::N1.use(700, r::Mandatory, d::RepeatCount.bounded(1))),

    d::LoopDef.build("1000C", d::RepeatCount.bounded(2),
      s::N1.use(700, r::Optional, d::RepeatCount.bounded(1))),

    d::LoopDef.build("1100C", d::RepeatCount.bounded(1),
      s::ACT.use(1200, r::Optional, d::RepeatCount.bounded(1))),
  ),

  d::TableDef.detail("Table 2 - Detail",
    d::LoopDef.build("2000", d::RepeatCount.unbounded,
      s::INS.use(100, r::Mandatory, d::RepeatCount.bounded(1)),
      s::REF.use(200, r::Mandatory, d::RepeatCount.bounded(1)),
      s::REF.use(200, r::Optional,  d::RepeatCount.bounded(1)),
      s::REF.use(200, r::Optional,  d::RepeatCount.bounded(13)),
      s::DTP.use(250, r::Optional,  d::RepeatCount.bounded(24)),

      d::LoopDef.build("2100A", d::RepeatCount.bounded(1),
        s::NM1.use(300,  r::Mandatory, d::RepeatCount.bounded(1)),
        s::PER.use(400,  r::Optional,  d::RepeatCount.bounded(1)),
        s:: N3.use(500,  r::Optional,  d::RepeatCount.bounded(1)),
        s:: N4.use(600,  r::Mandatory, d::RepeatCount.bounded(1)),
        s::DMG.use(800,  r::Optional,  d::RepeatCount.bounded(1)),
        s:: EC.use(1000, r::Optional,  d::RepeatCount.unbounded),
        s::ICM.use(1100, r::Optional,  d::RepeatCount.bounded(1)),
        s::AMT.use(1200, r::Optional,  d::RepeatCount.bounded(7)),
        s::HLH.use(1300, r::Optional,  d::RepeatCount.bounded(1)),
        s::LUI.use(1500, r::Optional,  d::RepeatCount.unbounded)
      ),

      d::LoopDef.build("2100B", d::RepeatCount.bounded(1),
        s::NM1.use(300, r::Optional, d::RepeatCount.bounded(1)),
        s::DMG.use(800, r::Optional, d::RepeatCount.bounded(1))
      ),

      d::LoopDef.build("2100C", d::RepeatCount.bounded(1),
        s::NM1.use(300, r::Optional,  d::RepeatCount.bounded(1)),
        s:: N3.use(500, r::Mandatory, d::RepeatCount.bounded(1)),
        s:: N4.use(600, r::Mandatory, d::RepeatCount.bounded(1))
      ),

      d::LoopDef.build("2100D", d::RepeatCount.bounded(3),
        s::NM1.use(300, r::Optional,  d::RepeatCount.bounded(1)),
        s::PER.use(400, r::Optional,  d::RepeatCount.bounded(1)),
        s:: N3.use(500, r::Optional,  d::RepeatCount.bounded(1)),
        s:: N4.use(600, r::Mandatory, d::RepeatCount.bounded(1))
      ),

      d::LoopDef.build("2100E", d::RepeatCount.bounded(3),
        s::NM1.use(300, r::Optional,  d::RepeatCount.bounded(1)),
        s::PER.use(400, r::Optional,  d::RepeatCount.bounded(1)),
        s:: N3.use(500, r::Optional,  d::RepeatCount.bounded(1)),
        s:: N4.use(600, r::Mandatory, d::RepeatCount.bounded(1))
      ),

      d::LoopDef.build("2100F", d::RepeatCount.bounded(1),
        s::NM1.use(300, r::Optional,  d::RepeatCount.bounded(1)),
        s::PER.use(400, r::Optional,  d::RepeatCount.bounded(1)),
        s:: N3.use(500, r::Optional,  d::RepeatCount.bounded(1)),
        s:: N4.use(600, r::Mandatory, d::RepeatCount.bounded(1))
      ),

      d::LoopDef.build("2100G", d::RepeatCount.bounded(13),
        s::NM1.use(300, r::Optional,  d::RepeatCount.bounded(1)),
        s::PER.use(400, r::Optional,  d::RepeatCount.bounded(1)),
        s:: N3.use(500, r::Optional,  d::RepeatCount.bounded(1)),
        s:: N4.use(600, r::Mandatory, d::RepeatCount.bounded(1))
      ),

      d::LoopDef.build("2100H", d::RepeatCount.bounded(1),
        s::NM1.use(300, r::Optional,  d::RepeatCount.bounded(1)),
        s:: N3.use(500, r::Optional,  d::RepeatCount.bounded(1)),
        s:: N4.use(600, r::Mandatory, d::RepeatCount.bounded(1))
      ),

      d::LoopDef.build("2200", d::RepeatCount.unbounded,
        s::DSB.use(2000, r::Optional, d::RepeatCount.bounded(1)),
        s::DTP.use(2100, r::Optional, d::RepeatCount.bounded(2))
      ),

      d::LoopDef.build("2300", d::RepeatCount.bounded(99),
        s:: HD.use(2600, r::Optional,  d::RepeatCount.bounded(1)),
        s::DTP.use(2700, r::Mandatory, d::RepeatCount.bounded(6)),
        s::AMT.use(2800, r::Optional,  d::RepeatCount.bounded(9)),
        s::REF.use(2900, r::Optional,  d::RepeatCount.bounded(14)),
        s::REF.use(2900, r::Optional,  d::RepeatCount.bounded(1)),
        s::IDC.use(3000, r::Optional,  d::RepeatCount.bounded(3)),

        d::LoopDef.build("2310", d::RepeatCount.bounded(30),
          s:: LX.use(3100, r::Optional,  d::RepeatCount.bounded(1)),
          s::NM1.use(3200, r::Mandatory, d::RepeatCount.bounded(1)),
          s:: N3.use(3500, r::Optional,  d::RepeatCount.bounded(2)),
          s:: N4.use(3600, r::Mandatory, d::RepeatCount.bounded(1)),
          s::PER.use(3700, r::Optional,  d::RepeatCount.bounded(2)),
          s::PLA.use(3950, r::Optional,  d::RepeatCount.bounded(1))
        ),

        d::LoopDef.build("2320", d::RepeatCount.bounded(5),
          s::COB.use(4000, r::Optional, d::RepeatCount.bounded(1)),
          s::REF.use(4050, r::Optional, d::RepeatCount.bounded(4)),
          s::DTP.use(4070, r::Optional, d::RepeatCount.bounded(2)),

          d::LoopDef.build("2330", d::RepeatCount.bounded(3),
            s::NM1.use(4100, r::Optional,  d::RepeatCount.bounded(1)),
            s:: N3.use(4300, r::Optional,  d::RepeatCount.bounded(1)),
            s:: N4.use(4400, r::Mandatory, d::RepeatCount.bounded(1)),
            s::PER.use(4500, r::Optional,  d::RepeatCount.bounded(1))
          )
        )
      ),

      d::LoopDef.build("2700", d::RepeatCount.bounded(1),
        s:: LS.use(6880, r::Optional, d::RepeatCount.bounded(1)),

        d::LoopDef.build("2710", d::RepeatCount.unbounded,
          s:: LX.use(6881, r::Optional, d::RepeatCount.bounded(1)),

          d::LoopDef.build("2750", d::RepeatCount.bounded(1),
            s:: N1.use(6882, r::Optional, d::RepeatCount.bounded(1)),
            s::REF.use(6883, r::Optional, d::RepeatCount.bounded(16)),
            s::DTP.use(6884, r::Optional, d::RepeatCount.bounded(1))
          )
        ),

        s:: LE.use(6885, r::Optional, d::RepeatCount.bounded(1))
      )
    ),
    s::SE.use(6900, r::Mandatory, d::RepeatCount.bounded(1)),
    repeatable: false
  )
)
FA999 =
d::TransactionSetDef.build("FA", "999",
            "Implementation Acknowledgment",

            d::TableDef.header("Table 1 - Header",
s:: ST.use(100, r::Mandatory, d::RepeatCount.bounded(1)),
s::AK1.use(200, r::Mandatory, d::RepeatCount.bounded(1)),

d::LoopDef.build("2000", d::RepeatCount.unbounded,
  s::AK2.use(300, r::Optional,  d::RepeatCount.bounded(1)),

  d::LoopDef.build("2100", d::RepeatCount.unbounded,
    s::IK3.use(400, r::Optional,  d::RepeatCount.bounded(1)),
    s::CTX.use(500, r::Optional,  d::RepeatCount.bounded(10)),

    d::LoopDef.build("2110", d::RepeatCount.unbounded,
      s::IK4.use(600, r::Optional,  d::RepeatCount.bounded(1)),
      s::CTX.use(700, r::Optional,  d::RepeatCount.bounded(10)))),

  s::IK5.use(800, r::Mandatory, d::RepeatCount.bounded(1))),

s::AK9.use( 900, r::Mandatory, d::RepeatCount.bounded(1)),
s:: SE.use(1000, r::Mandatory, d::RepeatCount.bounded(1))))
HB271 =
d::TransactionSetDef.build("HB", "271",
            "Eligibility, Coverage, or Benefit Information",

            d::TableDef.header("Table 1 - Header",
s:: ST.use(100, r::Mandatory, d::RepeatCount.bounded(1)),
s::BHT.use(200, r::Mandatory, d::RepeatCount.bounded(1))),

            d::TableDef.detail("Table 2 - Detail",
d::LoopDef.build("2000", d::RepeatCount.unbounded,
  s:: HL.use(100, r::Mandatory, d::RepeatCount.bounded(1)),
  s::TRN.use(200, r::Optional,  d::RepeatCount.bounded(9)),
  s::AAA.use(300, r::Optional,  d::RepeatCount.bounded(9)),

  d::LoopDef.build("2100", d::RepeatCount.unbounded,
    s::NM1.use( 300, r::Mandatory, d::RepeatCount.bounded(1)),
    s::REF.use( 400, r::Optional,  d::RepeatCount.bounded(9)),
    s:: N2.use( 500, r::Optional,  d::RepeatCount.bounded(1)),
    s:: N3.use( 600, r::Optional,  d::RepeatCount.bounded(1)),
    s:: N4.use( 700, r::Optional,  d::RepeatCount.bounded(1)),
    s::PER.use( 800, r::Optional,  d::RepeatCount.bounded(3)),
    s::AAA.use( 850, r::Optional,  d::RepeatCount.bounded(9)),
    s::PRV.use( 900, r::Optional,  d::RepeatCount.bounded(1)),
    s::DMG.use(1000, r::Optional,  d::RepeatCount.bounded(1)),
    s::INS.use(1100, r::Optional,  d::RepeatCount.bounded(1)),
    s:: HI.use(1150, r::Optional,  d::RepeatCount.bounded(1)),
    s::DTP.use(1200, r::Optional,  d::RepeatCount.bounded(9)),
    s::LUI.use(1250, r::Optional,  d::RepeatCount.bounded(9)),
    s::MPI.use(1275, r::Optional,  d::RepeatCount.bounded(9)),

    d::LoopDef.build("2110", d::RepeatCount.unbounded,
      s:: EB.use(1300, r::Optional,  d::RepeatCount.bounded(1)),
      s::HSD.use(1350, r::Optional,  d::RepeatCount.bounded(9)),
      s::REF.use(1400, r::Optional,  d::RepeatCount.bounded(9)),
      s::DTP.use(1500, r::Optional,  d::RepeatCount.bounded(20)),
      s::AAA.use(1600, r::Optional,  d::RepeatCount.bounded(9)),
      s::VEH.use(1700, r::Optional,  d::RepeatCount.bounded(1)),
      s::PID.use(1800, r::Optional,  d::RepeatCount.bounded(1)),
      s::PDR.use(1900, r::Optional,  d::RepeatCount.bounded(1)),
      s::PDP.use(2000, r::Optional,  d::RepeatCount.bounded(1)),
      s::LIN.use(2100, r::Optional,  d::RepeatCount.bounded(1)),
      s:: EM.use(2200, r::Optional,  d::RepeatCount.bounded(1)),
      s::SD1.use(2300, r::Optional,  d::RepeatCount.bounded(1)),
      s::PKD.use(2400, r::Optional,  d::RepeatCount.bounded(1)),
      s::MSG.use(2500, r::Optional,  d::RepeatCount.bounded(10)),

      d::LoopDef.build("2115", d::RepeatCount.unbounded,
        s::III.use(2600, r::Optional,  d::RepeatCount.bounded(1)),
        s::DTP.use(2700, r::Optional,  d::RepeatCount.bounded(5)),
        s::AMT.use(2800, r::Optional,  d::RepeatCount.bounded(5)),
        s::PCT.use(2900, r::Optional,  d::RepeatCount.bounded(5)),

        d::LoopDef.build("2117", d::RepeatCount.unbounded,
          s:: LQ.use(3000, r::Optional,  d::RepeatCount.bounded(1)),
          s::AMT.use(3100, r::Optional,  d::RepeatCount.bounded(5)),
          s::PCT.use(3200, r::Optional,  d::RepeatCount.bounded(5)))),

      s:: LS.use(3300, r::Optional,  d::RepeatCount.bounded(1)),

      d::LoopDef.build("2120", d::RepeatCount.unbounded,
        s::NM1.use(3400, r::Optional,  d::RepeatCount.bounded(1)),
        s:: N2.use(3500, r::Optional,  d::RepeatCount.bounded(1)),
        s:: N3.use(3600, r::Optional,  d::RepeatCount.bounded(1)),
        s:: N4.use(3700, r::Optional,  d::RepeatCount.bounded(1)),
        s::PER.use(3800, r::Optional,  d::RepeatCount.bounded(3)),
        s::PRV.use(3900, r::Optional,  d::RepeatCount.bounded(1))),

      s:: LE.use(4000, r::Optional,  d::RepeatCount.bounded(1))))),

s:: SE.use(4100, r::Mandatory, d::RepeatCount.bounded(1))))
HC837 =
d::TransactionSetDef.build("HC", "837",
            "Health Care Claim",

            d::TableDef.header("Table 1 - Header",
s:: ST.use( 50, r::Mandatory, d::RepeatCount.bounded(1)),
s::BHT.use(100, r::Mandatory, d::RepeatCount.bounded(1)),
s::REF.use(150, r::Optional,  d::RepeatCount.bounded(3)),

d::LoopDef.build("1000", d::RepeatCount.bounded(10),
  s::NM1.use(200, r::Optional,  d::RepeatCount.bounded(1)),
  s:: N2.use(250, r::Optional,  d::RepeatCount.bounded(2)),
  s:: N3.use(300, r::Optional,  d::RepeatCount.bounded(2)),
  s:: N4.use(350, r::Optional,  d::RepeatCount.bounded(1)),
  s::REF.use(400, r::Optional,  d::RepeatCount.bounded(2)),
  s::PER.use(450, r::Optional,  d::RepeatCount.bounded(2)))),

            d::TableDef.detail("Table 2 - Detail",
d::LoopDef.build("2000", d::RepeatCount.unbounded,
  s:: HL.use( 10, r::Mandatory, d::RepeatCount.bounded(1)),
  s::PRV.use( 30, r::Optional,  d::RepeatCount.bounded(1)),
  s::SBR.use( 50, r::Optional,  d::RepeatCount.bounded(1)),
  s::PAT.use( 70, r::Optional,  d::RepeatCount.bounded(1)),
  s::DTP.use( 90, r::Optional,  d::RepeatCount.bounded(5)),
  s::CUR.use(100, r::Optional,  d::RepeatCount.bounded(1)),

  d::LoopDef.build("2010", d::RepeatCount.bounded(10),
    s::NM1.use(150, r::Optional,  d::RepeatCount.bounded(1)),
    s:: N2.use(200, r::Optional,  d::RepeatCount.bounded(2)),
    s:: N3.use(250, r::Optional,  d::RepeatCount.bounded(2)),
    s:: N4.use(300, r::Optional,  d::RepeatCount.bounded(1)),
    s::DMG.use(320, r::Optional,  d::RepeatCount.bounded(1)),
    s::REF.use(350, r::Optional,  d::RepeatCount.bounded(20)),
    s::PER.use(400, r::Optional,  d::RepeatCount.bounded(2))),

  d::LoopDef.build("2300", d::RepeatCount.bounded(100),
    s::CLM.use(1300, r::Optional,  d::RepeatCount.bounded(1)),
    s::DTP.use(1350, r::Optional,  d::RepeatCount.bounded(150)),
    s::CL1.use(1400, r::Optional,  d::RepeatCount.bounded(1)),
    s::DN1.use(1450, r::Optional,  d::RepeatCount.bounded(1)),
    s::DN2.use(1500, r::Optional,  d::RepeatCount.bounded(35)),
    s::PWK.use(1550, r::Optional,  d::RepeatCount.bounded(10)),
    s::CN1.use(1600, r::Optional,  d::RepeatCount.bounded(1)),
  # s::DSB.use(1650, r::Optional,  d::RepeatCount.bounded(1)),
  # s:: UR.use(1700, r::Optional,  d::RepeatCount.bounded(1)),
    s::AMT.use(1750, r::Optional,  d::RepeatCount.bounded(40)),
    s::REF.use(1800, r::Optional,  d::RepeatCount.bounded(30)),
    s:: K3.use(1850, r::Optional,  d::RepeatCount.bounded(10)),
    s::NTE.use(1900, r::Optional,  d::RepeatCount.bounded(20)),
    s::CR1.use(1950, r::Optional,  d::RepeatCount.bounded(1)),
    s::CR2.use(2000, r::Optional,  d::RepeatCount.bounded(1)),
    s::CR3.use(2050, r::Optional,  d::RepeatCount.bounded(1)),
  # s::CR4.use(2100, r::Optional,  d::RepeatCount.bounded(3)),
  # s::CR5.use(2150, r::Optional,  d::RepeatCount.bounded(1)),
  # s::CR6.use(2160, r::Optional,  d::RepeatCount.bounded(1)),
  # s::CR8.use(2190, r::Optional,  d::RepeatCount.bounded(9)),
    s::CRC.use(2200, r::Optional,  d::RepeatCount.bounded(100)),
    s:: HI.use(2310, r::Optional,  d::RepeatCount.bounded(25)),
    s::QTY.use(2400, r::Optional,  d::RepeatCount.bounded(10)),
    s::HCP.use(2410, r::Optional,  d::RepeatCount.bounded(1)),

  # d::LoopDef.build("2305", d::RepeatCount.bounded(6),
  #   s::CR7.use(2420, r::Optional,  d::RepeatCount.bounded(1)),
  #   s::HSD.use(2430, r::Optional,  d::RepeatCount.bounded(12))),

    d::LoopDef.build("2310", d::RepeatCount.bounded(9),
      s::NM1.use(2500, r::Optional,  d::RepeatCount.bounded(1)),
      s::PRV.use(2550, r::Optional,  d::RepeatCount.bounded(1)),
      s:: N2.use(2600, r::Optional,  d::RepeatCount.bounded(2)),
      s:: N3.use(2650, r::Optional,  d::RepeatCount.bounded(2)),
      s:: N4.use(2700, r::Optional,  d::RepeatCount.bounded(1)),
      s::REF.use(2710, r::Optional,  d::RepeatCount.bounded(20)),
      s::PER.use(2750, r::Optional,  d::RepeatCount.bounded(2))),

    d::LoopDef.build("2320", d::RepeatCount.bounded(10),
      s::SBR.use(2900, r::Optional,  d::RepeatCount.bounded(1)),
      s::CAS.use(2950, r::Optional,  d::RepeatCount.bounded(1)),
      s::AMT.use(3000, r::Optional,  d::RepeatCount.bounded(1)),
      s::DMG.use(3050, r::Optional,  d::RepeatCount.bounded(1)),
      s:: OI.use(3100, r::Optional,  d::RepeatCount.bounded(1)),
      s::MIA.use(3150, r::Optional,  d::RepeatCount.bounded(1)),
      s::MOA.use(3200, r::Optional,  d::RepeatCount.bounded(1)),

      d::LoopDef.build("2330", d::RepeatCount.bounded(10),
        s::NM1.use(3250, r::Optional,  d::RepeatCount.bounded(1)),
        s:: N2.use(3300, r::Optional,  d::RepeatCount.bounded(2)),
        s:: N3.use(3320, r::Optional,  d::RepeatCount.bounded(2)),
        s:: N4.use(3400, r::Optional,  d::RepeatCount.bounded(1)),
        s::PER.use(3450, r::Optional,  d::RepeatCount.bounded(2)),
        s::DTP.use(3500, r::Optional,  d::RepeatCount.bounded(9)),
        s::REF.use(3550, r::Optional,  d::RepeatCount.unbounded))),

    d::LoopDef.build("2400", d::RepeatCount.unbounded,
      s:: LX.use(3650, r::Optional,  d::RepeatCount.bounded(1)),
      s::SV1.use(3700, r::Optional,  d::RepeatCount.bounded(1)),
      s::SV2.use(3750, r::Optional,  d::RepeatCount.bounded(1)),
      s::SV3.use(3800, r::Optional,  d::RepeatCount.bounded(1)),
      s::TOO.use(3820, r::Optional,  d::RepeatCount.bounded(32)),
    # s::SV4.use(3850, r::Optional,  d::RepeatCount.bounded(1)),
      s::SV5.use(4000, r::Optional,  d::RepeatCount.bounded(1)),
    # s::SV6.use(4050, r::Optional,  d::RepeatCount.bounded(1)),
    # s::SV7.use(4100, r::Optional,  d::RepeatCount.bounded(1)),
      s:: HI.use(4150, r::Optional,  d::RepeatCount.bounded(25)),
      s::PWK.use(4200, r::Optional,  d::RepeatCount.bounded(10)),
      s::CR1.use(4250, r::Optional,  d::RepeatCount.bounded(1)),
      s::CR2.use(4300, r::Optional,  d::RepeatCount.bounded(5)),
      s::CR3.use(4350, r::Optional,  d::RepeatCount.bounded(1)),
    # s::CR4.use(4400, r::Optional,  d::RepeatCount.bounded(3)),
    # s::CR5.use(4450, r::Optional,  d::RepeatCount.bounded(1)),
      s::CRC.use(4500, r::Optional,  d::RepeatCount.bounded(3)),
      s::DTP.use(4550, r::Optional,  d::RepeatCount.bounded(15)),
      s::QTY.use(4600, r::Optional,  d::RepeatCount.bounded(5)),
      s::MEA.use(4620, r::Optional,  d::RepeatCount.bounded(20)),
      s::CN1.use(4650, r::Optional,  d::RepeatCount.bounded(1)),
      s::REF.use(4700, r::Optional,  d::RepeatCount.bounded(30)),
      s::AMT.use(4750, r::Optional,  d::RepeatCount.bounded(15)),
      s:: K3.use(4800, r::Optional,  d::RepeatCount.bounded(10)),
      s::NTE.use(4850, r::Optional,  d::RepeatCount.bounded(10)),
      s::PS1.use(4880, r::Optional,  d::RepeatCount.bounded(1)),
    # s::IMM.use(4900, r::Optional,  d::RepeatCount.unbounded),
    # s::HSD.use(4910, r::Optional,  d::RepeatCount.bounded(1)),
      s::HCP.use(4920, r::Optional,  d::RepeatCount.bounded(1)),

      d::LoopDef.build("2410", d::RepeatCount.unbounded,
        s::LIN.use(4930, r::Optional,  d::RepeatCount.bounded(1)),
        s::CTP.use(4940, r::Optional,  d::RepeatCount.bounded(1)),
        s::REF.use(4950, r::Optional,  d::RepeatCount.bounded(1))),

      d::LoopDef.build("2420", d::RepeatCount.bounded(10),
        s::NM1.use(5000, r::Optional,  d::RepeatCount.bounded(1)),
        s::PRV.use(5050, r::Optional,  d::RepeatCount.bounded(1)),
        s:: N2.use(5100, r::Optional,  d::RepeatCount.bounded(2)),
        s:: N3.use(5140, r::Optional,  d::RepeatCount.bounded(2)),
        s:: N4.use(5200, r::Optional,  d::RepeatCount.bounded(1)),
        s::REF.use(5250, r::Optional,  d::RepeatCount.bounded(20)),
        s::PER.use(5300, r::Optional,  d::RepeatCount.bounded(2))),

      d::LoopDef.build("2430", d::RepeatCount.unbounded,
        s::SVD.use(5400, r::Optional,  d::RepeatCount.bounded(1)),
        s::CAS.use(5450, r::Optional,  d::RepeatCount.bounded(99)),
        s::DTP.use(5500, r::Optional,  d::RepeatCount.bounded(9)),
        s::AMT.use(5505, r::Optional,  d::RepeatCount.bounded(20))),

      d::LoopDef.build("2440", d::RepeatCount.unbounded,
        s:: LQ.use(5510, r::Optional,  d::RepeatCount.bounded(1)),
        s::FRM.use(5520, r::Mandatory, d::RepeatCount.bounded(99))))))),

            d::TableDef.summary("Table 3 - Summary",
s:: SE.use(5550, r::Mandatory, d::RepeatCount.bounded(1))))
HI278 =
d::TransactionSetDef.build("HI", "278",
            "Health Care Services Review Information",

            d::TableDef.header("Table 1 - Header",
s:: ST.use(100, r::Mandatory, d::RepeatCount.bounded(1)),
s::BHT.use(200, r::Mandatory, d::RepeatCount.bounded(1))),

            # Need to define SegmentDefs for most of these segments first.
            #
            # d::TableDef.detail("Table 2 - Detail",
            #   d::LoopDef.build("HL", d::RepeatCount.unbounded,
            #     s:: HL.use( 100, r::Mandatory, d::RepeatCount.bounded(1)),
            #     s::TRN.use( 200, r::Optional,  d::RepeatCount.bounded(9)),
            #     s::AAA.use( 300, r::Optional,  d::RepeatCount.bounded(9)),
            #     s:: UM.use( 400, r::Optional,  d::RepeatCount.bounded(1)),
            #     s::HCR.use( 500, r::Optional,  d::RepeatCount.bounded(1)),
            #     s::REF.use( 600, r::Optional,  d::RepeatCount.bounded(9)),
            #     s::DTP.use( 700, r::Optional,  d::RepeatCount.bounded(9)),
            #     s:: HI.use( 800, r::Optional,  d::RepeatCount.bounded(1)),
            #     s::SV1.use( 810, r::Optional,  d::RepeatCount.bounded(1)),
            #     s::SV2.use( 820, r::Optional,  d::RepeatCount.bounded(1)),
            #     s::SV3.use( 830, r::Optional,  d::RepeatCount.bounded(1)),
            #     s::TOO.use( 840, r::Optional,  d::RepeatCount.bounded(32)),
            #     s::HSD.use( 900, r::Optional,  d::RepeatCount.bounded(1)),
            #     s::CRC.use(1000, r::Optional,  d::RepeatCount.bounded(9)),
            #     s::CL1.use(1100, r::Optional,  d::RepeatCount.bounded(1)),
            #     s::CR1.use(1200, r::Optional,  d::RepeatCount.bounded(1)),
            #     s::CR2.use(1300, r::Optional,  d::RepeatCount.bounded(1)),
            #     s::CR4.use(1350, r::Optional,  d::RepeatCount.bounded(1)),
            #     s::CR5.use(1400, r::Optional,  d::RepeatCount.bounded(1)),
            #     s::CR6.use(1500, r::Optional,  d::RepeatCount.bounded(1)),
            #     s::CR7.use(1520, r::Optional,  d::RepeatCount.bounded(1)),
            #     s::CR8.use(1530, r::Optional,  d::RepeatCount.bounded(1)),
            #     s::PWK.use(1550, r::Optional,  d::RepeatCount.unbounded),
            #     s::MSG.use(1600, r::Optional,  d::RepeatCount.bounded(1)),
            #
            #     d::LoopDef.build("HL/NM1", d::RepeatCount.unbounded,
            #       s::NM1.use(1700, r::Optional,  d::RepeatCount.bounded(1)),
            #       s::REF.use(1700, r::Optional,  d::RepeatCount.bounded(9)),
            #       s:: N2.use(1700, r::Optional,  d::RepeatCount.bounded(1)),
            #       s:: N3.use(1700, r::Optional,  d::RepeatCount.bounded(1)),
            #       s:: N4.use(1700, r::Optional,  d::RepeatCount.bounded(1)),
            #       s::PER.use(1700, r::Optional,  d::RepeatCount.bounded(3)),
            #       s::AAA.use(1700, r::Optional,  d::RepeatCount.bounded(9)),
            #       s::PRV.use(1700, r::Optional,  d::RepeatCount.bounded(1)),
            #       s::DMG.use(1700, r::Optional,  d::RepeatCount.bounded(1)),
            #       s::INS.use(1700, r::Optional,  d::RepeatCount.bounded(1)),
            #       s::DTP.use(1700, r::Optional,  d::RepeatCount.bounded(9))))),

            d::TableDef.summary("Table 3 - Summary",
s:: SE.use(2700, r::Mandatory, d::RepeatCount.bounded(1))))
HN277 =
d::TransactionSetDef.build("HN", "277",
            "Heath Care Information Status Notification",

            d::TableDef.header("Table 1 - Header",
s:: ST.use(100, r::Mandatory, d::RepeatCount.bounded(1)),
s::BHT.use(200, r::Mandatory, d::RepeatCount.bounded(1)),
s::REF.use(300, r::Optional,  d::RepeatCount.bounded(10)),

d::LoopDef.build("1000", d::RepeatCount.unbounded,
  s::NM1.use(400, r::Optional,  d::RepeatCount.bounded(1)),
  s:: N2.use(500, r::Optional,  d::RepeatCount.bounded(2)),
  s:: N3.use(600, r::Optional,  d::RepeatCount.bounded(2)),
  s:: N4.use(700, r::Optional,  d::RepeatCount.bounded(1)),
  s::REF.use(800, r::Optional,  d::RepeatCount.bounded(2)),
  s::PER.use(900, r::Optional,  d::RepeatCount.bounded(1)))),

            d::TableDef.detail("Table 2 - Detail",
d::LoopDef.build("2000", d::RepeatCount.unbounded,
  s:: HL.use(100, r::Mandatory, d::RepeatCount.bounded(1)),
  s::SBR.use(200, r::Optional,  d::RepeatCount.bounded(1)),
  s::PAT.use(300, r::Optional,  d::RepeatCount.bounded(1)),
  s::DMG.use(400, r::Optional,  d::RepeatCount.bounded(1)),

  d::LoopDef.build("2100", d::RepeatCount.unbounded,
    s::NM1.use(500, r::Optional,  d::RepeatCount.bounded(1)),
    s:: N3.use(600, r::Optional,  d::RepeatCount.bounded(2)),
    s:: N4.use(700, r::Optional,  d::RepeatCount.bounded(1)),
    s::PER.use(800, r::Optional,  d::RepeatCount.bounded(1))),

  d::LoopDef.build("2200", d::RepeatCount.unbounded,
    s::TRN.use( 900, r::Optional,  d::RepeatCount.bounded(1)),
    s::STC.use(1000, r::Optional,  d::RepeatCount.bounded(1)),
    s::REF.use(1100, r::Optional,  d::RepeatCount.unbounded),
    s::DTP.use(1200, r::Optional,  d::RepeatCount.bounded(2)),
    s::QTY.use(1210, r::Optional,  d::RepeatCount.bounded(5)),
    s::AMT.use(1220, r::Optional,  d::RepeatCount.bounded(5)),

    d::LoopDef.build("2210", d::RepeatCount.unbounded,
      s::PWK.use(1300, r::Optional,  d::RepeatCount.bounded(1)),
      s::PER.use(1400, r::Optional,  d::RepeatCount.bounded(1)),
      s:: N1.use(1500, r::Optional,  d::RepeatCount.bounded(1)),
      s:: N3.use(1600, r::Optional,  d::RepeatCount.bounded(1)),
      s:: N4.use(1700, r::Optional,  d::RepeatCount.bounded(1))),

    d::LoopDef.build("2220", d::RepeatCount.unbounded,
      s::SVC.use(1800, r::Optional,  d::RepeatCount.bounded(1)),
      s::STC.use(1900, r::Optional,  d::RepeatCount.unbounded),
      s::REF.use(2000, r::Optional,  d::RepeatCount.bounded(1)),
      s::DTP.use(2100, r::Optional,  d::RepeatCount.bounded(1)),

      d::LoopDef.build("2225", d::RepeatCount.unbounded,
        s::PWK.use(2200, r::Optional,  d::RepeatCount.bounded(1)),
        s::PER.use(2300, r::Optional,  d::RepeatCount.bounded(1)),
        s:: N1.use(2400, r::Optional,  d::RepeatCount.bounded(1)),
        s:: N2.use(2500, r::Optional,  d::RepeatCount.bounded(1)),
        s:: N3.use(2600, r::Optional,  d::RepeatCount.bounded(1)))))),

s:: SE.use(2700, r::Mandatory, d::RepeatCount.bounded(1))))
HP835 =
d::TransactionSetDef.build("HP", "835",
            "Health Care Claim Payment/Advice",

            d::TableDef.header("Table 1 - Header",
s:: ST.use(100, r::Mandatory, d::RepeatCount.bounded(1)),
s::BPR.use(200, r::Mandatory, d::RepeatCount.bounded(1)),
s::NTE.use(300, r::Mandatory, d::RepeatCount.unbounded),
s::TRN.use(400, r::Optional,  d::RepeatCount.bounded(1)),
s::CUR.use(500, r::Optional,  d::RepeatCount.bounded(1)),
s::REF.use(600, r::Optional,  d::RepeatCount.unbounded),
s::DTM.use(700, r::Optional,  d::RepeatCount.unbounded),

d::LoopDef.build("1000", d::RepeatCount.bounded(200),
  s:: N1.use( 800, r::Optional,  d::RepeatCount.bounded(1)),
  s:: N2.use( 900, r::Optional,  d::RepeatCount.unbounded),
  s:: N3.use(1000, r::Optional,  d::RepeatCount.unbounded),
  s:: N4.use(1100, r::Optional,  d::RepeatCount.bounded(1)),
  s::REF.use(1200, r::Optional,  d::RepeatCount.unbounded),
  s::PER.use(1300, r::Optional,  d::RepeatCount.unbounded)),
  s::RDM.use(1400, r::Optional,  d::RepeatCount.bounded(1)),
  s::DTM.use(1500, r::Optional,  d::RepeatCount.bounded(1))),

            d::TableDef.detail("Table 2 - Detail",
d::LoopDef.build("2000", d::RepeatCount.unbounded,
  s:: LX.use(30, r::Optional,  d::RepeatCount.bounded(1)),
  s::TS3.use(50, r::Optional,  d::RepeatCount.bounded(1)),
  s::TS2.use(70, r::Optional,  d::RepeatCount.bounded(1)),

  d::LoopDef.build("2100", d::RepeatCount.unbounded,
    s::CLP.use(100, r::Mandatory, d::RepeatCount.bounded(1)),
    s::CAS.use(200, r::Optional,  d::RepeatCount.bounded(99)),
    s::NM1.use(300, r::Mandatory, d::RepeatCount.bounded(9)),
    s::MIA.use(330, r::Optional,  d::RepeatCount.bounded(1)),
    s::MOA.use(350, r::Optional,  d::RepeatCount.bounded(1)),
    s::REF.use(400, r::Optional,  d::RepeatCount.bounded(99)),
    s::DTM.use(500, r::Optional,  d::RepeatCount.bounded(9)),
    s::PER.use(600, r::Optional,  d::RepeatCount.bounded(3)),
    s::AMT.use(620, r::Optional,  d::RepeatCount.bounded(3)),
    s::QTY.use(640, r::Optional,  d::RepeatCount.bounded(20))),

    d::LoopDef.build("2110", d::RepeatCount.bounded(999),
      s::SVC.use( 700, r::Optional,  d::RepeatCount.bounded(1)),
      s::DTM.use( 800, r::Optional,  d::RepeatCount.bounded(9)),
      s::CAS.use( 900, r::Optional,  d::RepeatCount.bounded(99)),
      s::REF.use(1000, r::Optional,  d::RepeatCount.bounded(99)),
      s::AMT.use(1100, r::Optional,  d::RepeatCount.bounded(20)),
      s::QTY.use(1200, r::Optional,  d::RepeatCount.bounded(20)),
      s:: LQ.use(1300, r::Optional,  d::RepeatCount.bounded(99))))),

            d::TableDef.summary("Table 3 - Summary",
s::PLB.use(100, r::Optional,  d::RepeatCount.unbounded),
s:: SE.use(200, r::Mandatory, d::RepeatCount.bounded(1))))
HR276 =
d::TransactionSetDef.build("HR", "276",
            "Health Care Claim Status Request",

            d::TableDef.header("Table 1 - Header",
s:: ST.use(100, r::Mandatory, d::RepeatCount.bounded(1)),
s::BHT.use(200, r::Mandatory, d::RepeatCount.bounded(1)),
s::REF.use(300, r::Optional,  d::RepeatCount.bounded(10)),

d::LoopDef.build("1000", d::RepeatCount.unbounded,
  s::NM1.use(400, r::Optional,  d::RepeatCount.bounded(1)),
  s:: N2.use(500, r::Optional,  d::RepeatCount.bounded(2)),
  s:: N3.use(600, r::Optional,  d::RepeatCount.bounded(2)),
  s:: N4.use(700, r::Optional,  d::RepeatCount.bounded(1)),
  s::REF.use(800, r::Optional,  d::RepeatCount.bounded(2)),
  s::PER.use(900, r::Optional,  d::RepeatCount.bounded(1)))),

            d::TableDef.detail("Table 2 - Detail",
d::LoopDef.build("2000", d::RepeatCount.unbounded,
  s:: HL.use(100, r::Mandatory, d::RepeatCount.bounded(1)),
  s::SBR.use(200, r::Optional,  d::RepeatCount.bounded(1)),
  s::PAT.use(300, r::Optional,  d::RepeatCount.bounded(1)),
  s::DMG.use(400, r::Optional,  d::RepeatCount.bounded(1)),

  d::LoopDef.build("2100", d::RepeatCount.unbounded,
    s::NM1.use(500, r::Optional,  d::RepeatCount.bounded(1)),
    s:: N3.use(600, r::Optional,  d::RepeatCount.bounded(2)),
    s:: N4.use(700, r::Optional,  d::RepeatCount.bounded(1)),
    s::PER.use(800, r::Optional,  d::RepeatCount.bounded(1))),

  d::LoopDef.build("2200", d::RepeatCount.unbounded,
    s::TRN.use( 900, r::Optional,  d::RepeatCount.bounded(1)),
    s::REF.use(1000, r::Optional,  d::RepeatCount.bounded(9)),
    s::AMT.use(1100, r::Optional,  d::RepeatCount.bounded(1)),
    s::DTP.use(1200, r::Optional,  d::RepeatCount.bounded(2)),

    d::LoopDef.build("2210", d::RepeatCount.unbounded,
      s::SVC.use(1300, r::Optional,  d::RepeatCount.bounded(1)),
      s::REF.use(1400, r::Optional,  d::RepeatCount.bounded(1)),
      s::DTP.use(1500, r::Optional,  d::RepeatCount.bounded(1))))),

s:: SE.use(1600, r::Mandatory, d::RepeatCount.bounded(1))))
HS270 =
d::TransactionSetDef.build("HS", "270",
            "Eligibility, Coverage, or Benefit Inquiry",

            d::TableDef.header("Table 1 - Header",
s:: ST.use(100, r::Mandatory, d::RepeatCount.bounded(1)),
s::BHT.use(200, r::Mandatory, d::RepeatCount.bounded(1))),

            d::TableDef.detail("Table 2 - Detail",
d::LoopDef.build("2000", d::RepeatCount.unbounded,
  s:: HL.use( 100, r::Mandatory, d::RepeatCount.bounded(1)),
  s::TRN.use( 200, r::Optional,  d::RepeatCount.bounded(9)),

  d::LoopDef.build("2100", d::RepeatCount.unbounded,
    s::NM1.use( 300, r::Mandatory, d::RepeatCount.bounded(1)),
    s::REF.use( 400, r::Optional,  d::RepeatCount.bounded(9)),
    s:: N2.use( 500, r::Optional,  d::RepeatCount.bounded(1)),
    s:: N3.use( 600, r::Optional,  d::RepeatCount.bounded(1)),
    s:: N4.use( 700, r::Optional,  d::RepeatCount.bounded(1)),
    s::PER.use( 800, r::Optional,  d::RepeatCount.bounded(3)),
    s::PRV.use( 900, r::Optional,  d::RepeatCount.bounded(1)),
    s::DMG.use(1000, r::Optional,  d::RepeatCount.bounded(1)),
    s::INS.use(1100, r::Optional,  d::RepeatCount.bounded(1)),
    s:: HI.use(1150, r::Optional,  d::RepeatCount.bounded(1)),
    s::DTP.use(1200, r::Optional,  d::RepeatCount.bounded(9)),
    s::MPI.use(1250, r::Optional,  d::RepeatCount.bounded(9)),

    d::LoopDef.build("2110", d::RepeatCount.bounded(99),
      s:: EQ.use(1300, r::Optional,  d::RepeatCount.bounded(1)),
      s::AMT.use(1350, r::Optional,  d::RepeatCount.bounded(2)),
      s::VEH.use(1400, r::Optional,  d::RepeatCount.bounded(1)),
      s::PDR.use(1500, r::Optional,  d::RepeatCount.bounded(1)),
      s::PDP.use(1600, r::Optional,  d::RepeatCount.bounded(1)),
      s::III.use(1700, r::Optional,  d::RepeatCount.bounded(10)),
      s::REF.use(1900, r::Optional,  d::RepeatCount.bounded(1)),
      s::DTP.use(2000, r::Optional,  d::RepeatCount.bounded(9))))),

s:: SE.use(2100, r::Mandatory, d::RepeatCount.bounded(1))))
RA820 =
d::TransactionSetDef.build("RA", "820",
            "Payment Order/Remittance Advice",

            d::TableDef.header("Table 1 - Header",
s:: ST.use(100, r::Mandatory, d::RepeatCount.bounded(1)),
s::BHT.use(200, r::Mandatory, d::RepeatCount.bounded(1)),
s::NTE.use(300, r::Optional,  d::RepeatCount.unbounded),
s::TRN.use(350, r::Optional,  d::RepeatCount.bounded(1)),
s::CUR.use(400, r::Optional,  d::RepeatCount.bounded(1)),
s::REF.use(500, r::Optional,  d::RepeatCount.unbounded),
s::DTM.use(600, r::Optional,  d::RepeatCount.unbounded),

d::LoopDef.build("N1", d::RepeatCount.unbounded,
  s:: N1.use( 700, r::Optional,  d::RepeatCount.bounded(1)),
  s:: N2.use( 800, r::Optional,  d::RepeatCount.unbounded),
  s:: N3.use( 900, r::Optional,  d::RepeatCount.unbounded),
  s:: N4.use(1000, r::Optional,  d::RepeatCount.bounded(1)),
  s::REF.use(1100, r::Optional,  d::RepeatCount.unbounded),
  s::PER.use(1200, r::Optional,  d::RepeatCount.unbounded),
  s::RDM.use(1300, r::Optional,  d::RepeatCount.bounded(1)),
  s::DTM.use(1400, r::Optional,  d::RepeatCount.bounded(1)))),

            # Need to define SegmentDefs for most of these segments first.
            #
            # d::TableDef.detail("Table 2 - Detail",
            #   d::LoopDef.build("ENT", d::RepeatCount.unbounded,
            #     s::ENT.use( 100, r::Optional,  d::RepeatCount.bounded(1)),
            #
            #     d::LoopDef.build("ENT/FA1", d::RepeatCount.unbounded,
            #       s::FA1.use( 150, r::Optional,  d::RepeatCount.bounded(1)),
            #       s::FA2.use( 160, r::Mandatory, d::RepeatCount.unbounded)),
            #
            #     d::LoopDef.build("ENT/NM1", d::RepeatCount.unbounded,
            #       s::NM1.use( 200, r::Optional,  d::RepeatCount.bounded(1)),
            #       s:: N2.use( 300, r::Optional,  d::RepeatCount.unbounded),
            #       s:: N3.use( 400, r::Optional,  d::RepeatCount.unbounded),
            #       s:: N4.use( 500, r::Optional,  d::RepeatCount.bounded(1)),
            #       s::REF.use( 600, r::Optional,  d::RepeatCount.unbounded),
            #       s::PER.use( 700, r::Optional,  d::RepeatCount.unbounded)),
            #
            #     d::LoopDef.build("ENT/ADX", d::RepeatCount.unbounded,
            #       s::ADX.use( 800, r::Optional,  d::RepeatCount.bounded(1)),
            #       s::NTE.use( 900, r::Optional,  d::RepeatCount.unbounded),
            #       s::PER.use(1000, r::Optional,  d::RepeatCount.unbounded),
            #       s::DTM.use(1050, r::Optional,  d::RepeatCount.bounded(1)),
            #
            #       d::LoopDef.build("ENT/ADX/REF", d::RepeatCount.unbounded,
            #         s::REF.use(1100, r::Optional,  d::RepeatCount.bounded(1)),
            #         s::DTM.use(1200, r::Optional,  d::RepeatCount.unbounded)),
            #
            #       d::LoopDef.build("ENT/ADX/IT1", d::RepeatCount.unbounded,
            #         s::IT1.use(1300, r::Optional,  d::RepeatCount.bounded(1)),
            #         s::RPA.use(1310, r::Optional,  d::RepeatCount.bounded(1)),
            #         s::QTY.use(1320, r::Optional,  d::RepeatCount.bounded(1)),
            #
            #         d::LoopDef.build("ENT/ADX/IT1/REF", d::RepeatCount.unbounded,
            #           s::REF.use(1400, r::Optional,  d::RepeatCount.bounded(1)),
            #           s::DTM.use(1410, r::Optional,  d::RepeatCount.bounded(1))),
            #
            #         d::LoopDef.build("ENT/ADX/IT1/SAC", d::RepeatCount.unbounded,
            #           s::SAC.use(1420, r::Optional,  d::RepeatCount.bounded(1)),
            #           s::TXI.use(1430, r::Optional,  d::RepeatCount.unbounded),
            #           s::DTM.use(1440, r::Optional,  d::RepeatCount.bounded(10))),
            #
            #         d::LoopDef.build("ENT/ADX/IT1/SLN", d::RepeatCount.unbounded,
            #           s::SLN.use(1450, r::Optional,  d::RepeatCount.bounded(1)),
            #
            #           d::LoopDef.build("ENT/ADX/IT1/SLN/REF", d::RepeatCount.unbounded,
            #             s::REF.use(1460, r::Optional,  d::RepeatCount.bounded(1)),
            #             s::DTM.use(1470, r::Optional,  d::RepeatCount.unbounded)),
            #
            #           d::LoopDef.build("ENT/ADX/IT1/SLN/SAC", d::RepeatCount.unbounded,
            #             s::SAC.use(1480, r::Optional,  d::RepeatCount.bounded(1)),
            #             s::TXI.use(1490, r::Optional,  d::RepeatCount.unbounded)))),
            #
            #       d::LoopDef.build("ENT/ADX/FA1", d::RepeatCount.unbounded,
            #         s::FA1.use(1495, r::Optional,  d::RepeatCount.bounded(1)),
            #         s::FA2.use(1496, r::Mandatory, d::RepeatCount.bounded(1)))),
            #
            #     d::LoopDef.build("ENT/RMR", d::RepeatCount.unbounded,
            #       s::RMR.use(1500, r::Optional,  d::RepeatCount.bounded(1)),
            #       s::NTE.use(1600, r::Optional,  d::RepeatCount.unbounded),
            #       s::REF.use(1700, r::Optional,  d::RepeatCount.unbounded),
            #       s::DTM.use(1800, r::Optional,  d::RepeatCount.unbounded),
            #       s::VEH.use(1850, r::Optional,  d::RepeatCount.bounded(1)),
            #
            #       d::LoopDef.build("ENT/RMR/IT1", d::RepeatCount.unbounded,
            #         s::IT1.use(1900, r::Optional,  d::RepeatCount.bounded(1)),
            #         s::RPA.use(1920, r::Optional,  d::RepeatCount.bounded(1)),
            #         s::QTY.use(1940, r::Optional,  d::RepeatCount.bounded(1)),
            #
            #         d::LoopDef.build("ENT/RMR/IT1/REF", d::RepeatCount.unbounded,
            #           s::REF.use(2000, r::Optional,  d::RepeatCount.bounded(1)),
            #           s::DTM.use(2010, r::Optional,  d::RepeatCount.bounded(1))),
            #
            #         d::LoopDef.build("ENT/RMR/IT1/SAC", d::RepeatCount.unbounded,
            #           s::SAC.use(2020, r::Optional,  d::RepeatCount.bounded(1)),
            #           s::TXI.use(2030, r::Optional,  d::RepeatCount.unbounded)),
            #
            #         d::LoopDef.build("ENT/RMR/IT1/SLN", d::RepeatCount.unbounded,
            #           s::SLN.use(2040, r::Optional,  d::RepeatCount.bounded(1)),
            #
            #           d::LoopDef.build("ENT/RMR/IT1/SLN/REF", d::RepeatCount.unbounded,
            #             s::REF.use(2050, r::Optional,  d::RepeatCount.bounded(1)),
            #             s::DTM.use(2060, r::Optional,  d::RepeatCount.unbounded)),
            #
            #           d::LoopDef.build("ENT/RMR/IT1/SLN/SAC", d::RepeatCount.unbounded,
            #             s::SAC.use(2070, r::Optional,  d::RepeatCount.bounded(1)),
            #             s::TXI.use(2080, r::Optional,  d::RepeatCount.unbounded)))),
            #
            #       d::LoopDef.build("ENT/RMR/ADX", d::RepeatCount.unbounded,
            #         s::ADX.use(2100, r::Optional,  d::RepeatCount.unbounded),
            #         s::NTE.use(2200, r::Optional,  d::RepeatCount.unbounded),
            #         s::PER.use(2300, r::Optional,  d::RepeatCount.unbounded),
            #
            #         d::LoopDef.build("ENT/RMR/ADX/REF", d::RepeatCount.unbounded,
            #           s::REF.use(2400, r::Optional,  d::RepeatCount.bounded(1)),
            #           s::DTM.use(2500, r::Optional,  d::RepeatCount.unbounded)),
            #
            #         d::LoopDef.build("ENT/RMR/ADX/IT1", d::RepeatCount.unbounded,
            #           s::IT1.use(2600, r::Optional,  d::RepeatCount.bounded(1)),
            #           s::RPA.use(2610, r::Optional,  d::RepeatCount.bounded(1)),
            #           s::QTY.use(2620, r::Optional,  d::RepeatCount.bounded(1)),
            #
            #           d::LoopDef.build("ENT/RMR/ADX/IT1/REF", d::RepeatCount.unbounded,
            #             s::REF.use(2700, r::Optional,  d::RepeatCount.bounded(1)),
            #             s::DTM.use(2710, r::Optional,  d::RepeatCount.bounded(1))),
            #
            #           d::LoopDef.build("ENT/RMR/ADX/IT1/SAC", d::RepeatCount.unbounded,
            #             s::SAC.use(2720, r::Optional,  d::RepeatCount.bounded(1)),
            #             s::TXI.use(2730, r::Optional,  d::RepeatCount.unbounded)),
            #             s::DTM.use(2740, r::Optional,  d::RepeatCount.bounded(10))),
            #
            #           d::LoopDef.build("ENT/RMR/ADX/IT1/SLN", d::RepeatCount.unbounded,
            #             s::SLN.use(2750, r::Optional,  d::RepeatCount.bounded(1)),
            #
            #             d::LoopDef.build("ENT/RMR/ADX/IT1/SLN/REF", d::RepeatCount.unbounded,
            #               s::REF.use(2760, r::Optional,  d::RepeatCount.bounded(1)),
            #               s::DTM.use(2770, r::Optional,  d::RepeatCount.unbounded)),
            #
            #             d::LoopDef.build("ENT/RMR/ADX/IT1/SLN/SAC", d::RepeatCount.unbounded,
            #               s::SAC.use(2780, r::Optional,  d::RepeatCount.bounded(1)),
            #               s::TXI.use(2790, r::Optional,  d::RepeatCount.unbounded)))),
            #
            #       d::LoopDef.build("ENT/RMR/FA1", d::RepeatCount.unbounded,
            #         s::FA1.use(2795, r::Optional,  d::RepeatCount.unbounded),
            #         s::FA2.use(2796, r::Optional,  d::RepeatCount.unbounded))),
            #
            #   d::LoopDef.build("TXP", d::RepeatCount.unbounded,
            #     s::TXP.use(2800, r::Optional,  d::RepeatCount.bounded(1)),
            #     s::TXI.use(2850, r::Optional,  d::RepeatCount.unbounded),
            #     s::REF.use(2855, r::Optional,  d::RepeatCount.unbounded),
            #     s::DTM.use(2860, r::Optional,  d::RepeatCount.unbounded)),
            #
            #   d::LoopDef.build("DED", d::RepeatCount.unbounded,
            #     s::DED.use(2870, r::Optional,  d::RepeatCount.bounded(1))),
            #
            #   d::LoopDef.build("LX", d::RepeatCount.unbounded,
            #     s:: LX.use(2900, r::Optional,  d::RepeatCount.bounded(1)),
            #     s::REF.use( 100, r::Optional,  d::RepeatCount.unbounded),
            #     s::TRN.use( 100, r::Optional,  d::RepeatCount.unbounded),
            #
            #     d::LoopDef.build("LX/NM1", d::RepeatCount.unbounded,
            #       s::NM1.use( 100, r::Optional,  d::RepeatCount.bounded(1)),
            #       s::REF.use( 100, r::Optional,  d::RepeatCount.unbounded),
            #       s::G53.use( 100, r::Optional,  d::RepeatCount.bounded(1)),
            #
            #       d::LoopDef.build("LX/NM1/AIN", d::RepeatCount.unbounded,
            #         s::AIN.use( 100, r::Optional,  d::RepeatCount.bounded(1)),
            #         s::QTY.use( 100, r::Optional,  d::RepeatCount.unbounded),
            #         s::DTP.use( 100, r::Optional,  d::RepeatCount.unbounded)),
            #
            #       d::LoopDef.build("LX/NM1/PEN", d::RepeatCount.unbounded,
            #         s::PEN.use( 100, r::Optional,  d::RepeatCount.bounded(1)),
            #         s::AMT.use( 100, r::Optional,  d::RepeatCount.unbounded),
            #         s::DTP.use( 100, r::Optional,  d::RepeatCount.unbounded),
            #
            #         d::LoopDef.build("LX/NM1/PEN/INV", d::RepeatCount.unbounded,
            #           s::INV.use( 100, r::Optional,  d::RepeatCount.bounded(1))),
            #           s::DTP.use( 100, r::Optional,  d::RepeatCount.unbounded)))),
            #
            #   d::LoopDef.build("N9", d::RepeatCount.unbounded,
            #     s:: N9.use( 100, r::Optional,  d::RepeatCount.bounded(1)),
            #     s::REF.use( 100, r::Optional,  d::RepeatCount.unbounded),
            #
            #     d::LoopDef.build("N9/AMT", d::RepeatCount.unbounded,
            #       s::AMT.use( 100, r::Optional,  d::RepeatCount.bounded(1)),
            #       s::REF.use( 100, r::Optional,  d::RepeatCount.unbounded)),
            #
            #     d::LoopDef.build("N9/N1", d::RepeatCount.unbounded,
            #       s:: N1.use( 100, r::Optional,  d::RepeatCount.bounded(1)),
            #       s::REF.use( 100, r::Optional,  d::RepeatCount.unbounded),
            #
            #       d::LoopDef.build("N9/N1/EMS", d::RepeatCount.unbounded,
            #         s::EMS.use( 100, r::Optional,  d::RepeatCount.bounded(1)),
            #         s::ATN.use( 100, r::Optional,  d::RepeatCount.unbounded),
            #         s::AIN.use( 100, r::Optional,  d::RepeatCount.unbounded),
            #         s::PYD.use( 100, r::Optional,  d::RepeatCount.unbounded)))),
            #
            #   d::LoopDef.build("RYL", d::RepeatCount.unbounded,
            #     s::RYL.use( 100, r::Optional,  d::RepeatCount.bounded(1)),
            #
            #     d::LoopDef.build("RYL/NM1", d::RepeatCount.unbounded,
            #       s::NM1.use( 100, r::Optional,  d::RepeatCount.bounded(1)),
            #
            #       d::LoopDef.build("RYL/NM1/LOC", d::RepeatCount.unbounded,
            #         s::LOC.use( 100, r::Optional,  d::RepeatCount.bounded(1)),
            #
            #         d::LoopDef.build("RYL/NM1/LOC/PID", d::RepeatCount.unbounded,
            #           s::PID.use( 100, r::Optional,  d::RepeatCount.bounded(1)),
            #             s::DTM.use( 100, r::Optional,  d::RepeatCount.bounded(1)),
            #
            #           d::LoopDef.build("RYL/NM1/LOC/PID/PCT", d::RepeatCount.unbounded,
            #             s::PCT.use( 100, r::Optional,  d::RepeatCount.bounded(1)),
            #             s::QTY.use( 100, r::Optional,  d::RepeatCount.bounded(1)),
            #
            #             d::LoopDef.build("RYL/NM1/LOC/PID/PCT/AMT", d::RepeatCount.unbounded,
            #               s::AMT.use( 100, r::Optional,  d::RepeatCount.bounded(1)),
            #               s::ADX.use( 100, r::Optional,  d::RepeatCount.unbounded))))),
            #
            #       d::LoopDef.build("RYL/NM1/ASM", d::RepeatCount.unbounded,
            #         s::ASM.use( 100, r::Optional,  d::RepeatCount.bounded(1)),
            #         s::ADX.use( 100, r::Optional,  d::RepeatCount.bounded(1))))))),

            d::TableDef.summary("Table 3 - Summary",
s:: SE.use( 100, r::Mandatory, d::RepeatCount.bounded(1))))