stupidedi 1.2.12 → 1.2.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +10 -4
- data/bin/edi-pp +1 -1
- data/doc/Generating.md +1 -1
- data/lib/ruby/to_d.rb +23 -20
- data/lib/stupidedi/config.rb +4 -0
- data/lib/stupidedi/guides/005010.rb +11 -3
- data/lib/stupidedi/guides/005010/X220-BE834.rb +709 -0
- data/lib/stupidedi/guides/005010/X220A1-BE834.rb +709 -0
- data/lib/stupidedi/guides/005010/X223-HC837I.rb +2582 -0
- data/lib/stupidedi/schema/table_def.rb +2 -2
- data/lib/stupidedi/version.rb +1 -1
- data/lib/stupidedi/versions/functional_groups/005010/element_defs.rb +471 -14
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs.rb +41 -2
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/ACT.rb +33 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/BGN.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/COB.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/DSB.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/EC.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/HD.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/HLH.rb +27 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/ICM.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/IDC.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/INS.rb +39 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/LE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/LS.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/LUI.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/PLA.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs.rb +3 -3
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/BE834.rb +163 -0
- data/lib/stupidedi/zipper/abstract_cursor.rb +2 -2
- data/spec/examples/ruby/symbol.example +22 -18
- data/spec/spec_helper.rb +1 -0
- metadata +25 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2e0bed8435395120843b4f51683cea5d686732e6
|
4
|
+
data.tar.gz: c5bb0aee47784bca3225adaa3cab3baf8fdc4635
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '08bb934927e0f00a6ace691da761ff6d283c0786ffb2681d0077864b8fd0e66c28e7529d31c100a8a6987c0f7f7b277a21a26688f5dcbbdfcc9c4cccc0bbd510'
|
7
|
+
data.tar.gz: f4d19956f28deed5d76affa8c980a17d320981e88fdd3cb085dd4fdac4774fd35c7048b5ee42c6a0fb6fde4a629dbb25863ec699e2abbc920b68073ab62bd041
|
data/README.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# Stupidedi
|
2
|
-
[![Build Status](https://secure.travis-ci.org/kputnam/stupidedi.png?branch=master)](http://travis-ci.org/kputnam/stupidedi) [![Dependency Status](https://gemnasium.com/irobayna/stupidedi.svg)](https://gemnasium.com/irobayna/stupidedi) [![GitHub version](https://badge.fury.io/gh/kputnam%2Fstupidedi.svg)](http://badge.fury.io/gh/kputnam%2Fstupidedi) [![Code Climate](https://codeclimate.com/github/kputnam/stupidedi.png)](https://codeclimate.com/github/kputnam/stupidedi) [![Inline docs](http://inch-ci.org/github/kputnam/stupidedi.png?branch=master)](http://inch-ci.org/github/kputnam/stupidedi)
|
2
|
+
[![Build Status](https://secure.travis-ci.org/kputnam/stupidedi.png?branch=master)](http://travis-ci.org/kputnam/stupidedi) [![Dependency Status](https://gemnasium.com/irobayna/stupidedi.svg)](https://gemnasium.com/irobayna/stupidedi) [![GitHub version](https://badge.fury.io/gh/kputnam%2Fstupidedi.svg)](http://badge.fury.io/gh/kputnam%2Fstupidedi) [![Code Climate](https://codeclimate.com/github/kputnam/stupidedi.png)](https://codeclimate.com/github/kputnam/stupidedi) [![Inline docs](http://inch-ci.org/github/kputnam/stupidedi.png?branch=master)](http://inch-ci.org/github/kputnam/stupidedi)
|
3
3
|
|
4
4
|
![Screenshot](https://raw.github.com/kputnam/stupidedi/master/doc/images/edi-pp.png)
|
5
5
|
|
@@ -205,10 +205,10 @@ Pretty print the syntax tree
|
|
205
205
|
TableVal[Table 3 - Summary](
|
206
206
|
SegmentVal[SE: Transaction Set Trailer](
|
207
207
|
Nn.value[ E96: Number of Included Segments](45),
|
208
|
-
AN.value[ E329: Transaction Set Control Number](0021)))),
|
208
|
+
AN.value[ E329: Transaction Set Control Number](0021)))),
|
209
209
|
SegmentVal[GE: Functional Group Trailer](
|
210
210
|
Nn.value[ E97: Number of Transaction Sets Included](1),
|
211
|
-
Nn.value[ E28: Group Control Number](1))),
|
211
|
+
Nn.value[ E28: Group Control Number](1))),
|
212
212
|
SegmentVal[IEA: Interchange Control Trailer](
|
213
213
|
Nn.value[ I16: Number of Included Functional Groups](1),
|
214
214
|
Nn.value[ I12: Interchange Control Number](905))))
|
@@ -297,7 +297,7 @@ b.machine.zipper.tap do |z|
|
|
297
297
|
# You can also serialize any subtree within the document (e.g., everything inside
|
298
298
|
# some ST..SE transaction set, or a single loop. Here, z.root is the entire tree.
|
299
299
|
w = Stupidedi::Writer::Default.new(z.root, separators)
|
300
|
-
w.write(
|
300
|
+
print w.write()
|
301
301
|
end
|
302
302
|
```
|
303
303
|
|
@@ -345,3 +345,9 @@ parser.first
|
|
345
345
|
.flatmap{|m| m.find(:NM1, "QC") }
|
346
346
|
.tap{|m| el(m, 3, 4){|l,f| puts "Patient: #{l}, #{f}" }}
|
347
347
|
```
|
348
|
+
|
349
|
+
### Testing
|
350
|
+
|
351
|
+
```ruby
|
352
|
+
rake spec
|
353
|
+
```
|
data/bin/edi-pp
CHANGED
data/doc/Generating.md
CHANGED
@@ -2,7 +2,7 @@ Generating X12
|
|
2
2
|
==============
|
3
3
|
|
4
4
|
Stupidedi has a simple interface for generating X12 documents. Once you have
|
5
|
-
defined a transaction set or implementation guide (see
|
5
|
+
defined a transaction set or implementation guide (see [Defining](unwritten/Defining.md)) ,
|
6
6
|
you can generate well-formed documents using [`BuilderDsl`][1].
|
7
7
|
|
8
8
|
[1]: Stupidedi/Builder/BuilderDsl.html
|
data/lib/ruby/to_d.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "bigdecimal"
|
4
|
+
require "bigdecimal/util"
|
4
5
|
require "rational"
|
5
6
|
|
6
7
|
module Stupidedi
|
@@ -13,27 +14,29 @@ module Stupidedi
|
|
13
14
|
end
|
14
15
|
end
|
15
16
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
(
|
20
|
-
|
21
|
-
|
22
|
-
|
17
|
+
if RUBY_VERSION < "2.4"
|
18
|
+
refine String do
|
19
|
+
BIGDECIMAL = /\A[+-]? (?# optional leading sign )
|
20
|
+
(?:
|
21
|
+
(?:\d+\.?\d*) | (?# whole with optional decimal or ..)
|
22
|
+
(?:\d*?\.?\d+) ) (?# optional whole with decimal )
|
23
|
+
(?:E[+-]?\d+)? (?# optional exponent )
|
24
|
+
\Z/ix
|
23
25
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
26
|
+
# Converts the string to a BigDecimal after validating the format. If the
|
27
|
+
# string does not match the pattern for a valid number, an `ArgumentError`
|
28
|
+
# is raised.
|
29
|
+
#
|
30
|
+
# @example
|
31
|
+
# "1.0".to_d #=> BigDecimal("1.0")
|
32
|
+
#
|
33
|
+
# @return [BigDecimal]
|
34
|
+
def to_d
|
35
|
+
if BIGDECIMAL =~ self
|
36
|
+
BigDecimal(to_s)
|
37
|
+
else
|
38
|
+
raise ArgumentError, "#{inspect} is not a valid number"
|
39
|
+
end
|
37
40
|
end
|
38
41
|
end
|
39
42
|
end
|
data/lib/stupidedi/config.rb
CHANGED
@@ -99,15 +99,19 @@ module Stupidedi
|
|
99
99
|
c.transaction_set.customize do |x|
|
100
100
|
x.register("004010", "HP", "835") { Stupidedi::Versions::FunctionalGroups::FortyTen::TransactionSetDefs::HP835 }
|
101
101
|
x.register("005010", "HN", "277") { Stupidedi::Versions::FunctionalGroups::FiftyTen::TransactionSetDefs::HN277 }
|
102
|
+
x.register("005010", "BE", "834") { Stupidedi::Versions::FunctionalGroups::FiftyTen::TransactionSetDefs::BE834 }
|
102
103
|
x.register("005010", "HP", "835") { Stupidedi::Versions::FunctionalGroups::FiftyTen::TransactionSetDefs::HP835 }
|
103
104
|
x.register("005010", "HC", "837") { Stupidedi::Versions::FunctionalGroups::FiftyTen::TransactionSetDefs::HC837 }
|
104
105
|
x.register("005010", "FA", "999") { Stupidedi::Versions::FunctionalGroups::FiftyTen::TransactionSetDefs::FA999 }
|
105
106
|
|
106
107
|
x.register("004010X091A1", "HP", "835") { Stupidedi::Guides::FortyTen::X091A1::HP835 }
|
107
108
|
x.register("005010X214", "HN", "277") { Stupidedi::Guides::FiftyTen::X214::HN277 }
|
109
|
+
x.register("005010X220", "BE", "834") { Stupidedi::Guides::FiftyTen::X220::BE834 }
|
108
110
|
x.register("005010X221", "HP", "835") { Stupidedi::Guides::FiftyTen::X221::HP835 }
|
109
111
|
x.register("005010X222", "HC", "837") { Stupidedi::Guides::FiftyTen::X222::HC837P }
|
112
|
+
x.register("005010X223", "HC", "837") { Stupidedi::Guides::FiftyTen::X223::HC837I }
|
110
113
|
x.register("005010X231", "FA", "999") { Stupidedi::Guides::FiftyTen::X231::FA999 }
|
114
|
+
x.register("005010X220A1", "BE", "834") { Stupidedi::Guides::FiftyTen::X220A1::BE834 }
|
111
115
|
x.register("005010X221A1", "HP", "835") { Stupidedi::Guides::FiftyTen::X221A1::HP835 }
|
112
116
|
x.register("005010X222A1", "HC", "837") { Stupidedi::Guides::FiftyTen::X222A1::HC837P }
|
113
117
|
x.register("005010X231A1", "FA", "999") { Stupidedi::Guides::FiftyTen::X231A1::FA999 }
|
@@ -17,6 +17,14 @@ module Stupidedi
|
|
17
17
|
autoload :HN277, "stupidedi/guides/005010/X214-HN277"
|
18
18
|
end
|
19
19
|
|
20
|
+
module X220
|
21
|
+
autoload :BE834, "stupidedi/guides/005010/X220-BE834"
|
22
|
+
end
|
23
|
+
|
24
|
+
module X220A1
|
25
|
+
autoload :BE834, "stupidedi/guides/005010/X220A1-BE834"
|
26
|
+
end
|
27
|
+
|
20
28
|
module X221
|
21
29
|
autoload :HP835, "stupidedi/guides/005010/X221-HP835"
|
22
30
|
end
|
@@ -33,9 +41,9 @@ module Stupidedi
|
|
33
41
|
autoload :HC837P, "stupidedi/guides/005010/X222A1-HC837P"
|
34
42
|
end
|
35
43
|
|
36
|
-
|
37
|
-
|
38
|
-
|
44
|
+
module X223
|
45
|
+
autoload :HC837I, "stupidedi/guides/005010/X223-HC837I"
|
46
|
+
end
|
39
47
|
|
40
48
|
# module X223A1
|
41
49
|
# autoload :HC837I, "stupidedi/guides/005010/X223A1-HC837I"
|
@@ -0,0 +1,709 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Stupidedi
|
3
|
+
using Refinements
|
4
|
+
|
5
|
+
module Guides
|
6
|
+
module FiftyTen
|
7
|
+
module X220
|
8
|
+
|
9
|
+
b = GuideBuilder
|
10
|
+
d = Schema
|
11
|
+
r = SegmentReqs
|
12
|
+
e = ElementReqs
|
13
|
+
s = Versions::FunctionalGroups::FiftyTen::SegmentDefs
|
14
|
+
t = Versions::FunctionalGroups::FiftyTen::TransactionSetDefs
|
15
|
+
|
16
|
+
BE834 = b.build(t::BE834,
|
17
|
+
d::TableDef.header("Table 1 - Header",
|
18
|
+
b::Segment(100, s::ST, "Transaction Set Header", r::Required, d::RepeatCount.bounded(1),
|
19
|
+
b::Element(e::Required, "Transaction Set Identifier Code", b::Values("834")),
|
20
|
+
b::Element(e::Required, "Transaction Set Control Number"),
|
21
|
+
b::Element(e::Required, "Implementation Convention Reference", b::Values("005010X220"))
|
22
|
+
),
|
23
|
+
b::Segment(200, s::BGN, "Beginning Segment", r::Required, d::RepeatCount.bounded(1),
|
24
|
+
b::Element(e::Required, "Transaction Set Purpose Code", b::Values("00", "15", "22")),
|
25
|
+
b::Element(e::Required, "Transaction Set Reference Number", b::MaxLength(50)),
|
26
|
+
b::Element(e::Required, "Transaction Set Creation Date"),
|
27
|
+
b::Element(e::Required, "Transaction Set Creation Time"),
|
28
|
+
b::Element(e::NotUsed, "Time Zone Code"),
|
29
|
+
b::Element(e::Situational, "Original Transaction Set Reference Number"),
|
30
|
+
b::Element(e::NotUsed, "Transaction Type Code"),
|
31
|
+
b::Element(e::Required, "Action Code", b::Values("2", "4", "RX")),
|
32
|
+
b::Element(e::NotUsed, "Security Level Code")
|
33
|
+
),
|
34
|
+
b::Segment(300, s::REF, "Transaction Set Policy Number", r::Situational, d::RepeatCount.bounded(1),
|
35
|
+
b::Element(e::Required, "Reference Identification Qualifier", b::Values("38")),
|
36
|
+
b::Element(e::Required, "Master Policy Number", b::MaxLength(50)),
|
37
|
+
b::Element(e::NotUsed, "Description"),
|
38
|
+
b::Element(e::NotUsed, "REFERENCE IDENTIFIER")
|
39
|
+
),
|
40
|
+
b::Segment(400, s::DTP, "File Effective Date", r::Situational, d::RepeatCount.bounded(2),
|
41
|
+
b::Element(e::Required, "Date Time Qualifier", b::Values("007", "090", "091", "303", "382", "388")),
|
42
|
+
b::Element(e::Required, "Date Time Period Format Qualifier", b::Values("D8")),
|
43
|
+
b::Element(e::Required, "Date Time Period", b::MaxLength(8))
|
44
|
+
),
|
45
|
+
b::Segment(600, s::QTY, "Transaction Set Control Totals", r::Situational, d::RepeatCount.bounded(3),
|
46
|
+
b::Element(e::Required, "Quantity Qualifier", b::Values("DT", "ET", "TO")),
|
47
|
+
b::Element(e::Required, "Record Totals", b::MaxLength(15)),
|
48
|
+
b::Element(e::NotUsed, "Composite Unit of Measure"),
|
49
|
+
b::Element(e::NotUsed, "Free-form Information")
|
50
|
+
),
|
51
|
+
d::LoopDef.build("1000A - SPONSOR NAME", d::RepeatCount.bounded(1),
|
52
|
+
b::Segment(700, s::N1, "Sponsor Name", r::Required, d::RepeatCount.bounded(1),
|
53
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("P5")),
|
54
|
+
b::Element(e::Situational, "Plan Sponsor Name", b::MaxLength(60)),
|
55
|
+
b::Element(e::Required, "Identification Code Qualifier", b::Values("24", "94", "FI")),
|
56
|
+
b::Element(e::Required, "Sponsor Identifier", b::MaxLength(80)),
|
57
|
+
b::Element(e::NotUsed, "Entity Relationship Code"),
|
58
|
+
b::Element(e::NotUsed, "Entity Identifier Code")
|
59
|
+
)
|
60
|
+
),
|
61
|
+
d::LoopDef.build("1000B - PAYER", d::RepeatCount.bounded(1),
|
62
|
+
b::Segment(700, s::N1, "Payer", r::Required, d::RepeatCount.bounded(1),
|
63
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("IN")),
|
64
|
+
b::Element(e::Situational, "Insurer Name", b::MaxLength(60)),
|
65
|
+
b::Element(e::Required, "Identification Code Qualifier", b::Values("94", "FI", "XV")),
|
66
|
+
b::Element(e::Required, "Insurer Identification Code", b::MaxLength(80)),
|
67
|
+
b::Element(e::NotUsed, "Entity Relationship Code"),
|
68
|
+
b::Element(e::NotUsed, "Entity Identifier Code")
|
69
|
+
)
|
70
|
+
),
|
71
|
+
d::LoopDef.build("1000C - TPA/BROKER NAME", d::RepeatCount.bounded(2),
|
72
|
+
b::Segment(700, s::N1, "TPA/Broker Name", r::Situational, d::RepeatCount.bounded(1),
|
73
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("BO", "TV")),
|
74
|
+
b::Element(e::Situational, "TPA or Broker Name", b::MaxLength(60)),
|
75
|
+
b::Element(e::Required, "Identification Code Qualifier", b::Values("94", "FI", "XV")),
|
76
|
+
b::Element(e::Required, "TPA or Broker Identification Code", b::MaxLength(80)),
|
77
|
+
b::Element(e::NotUsed, "Entity Relationship Code"),
|
78
|
+
b::Element(e::NotUsed, "Entity Identifier Code")
|
79
|
+
)
|
80
|
+
),
|
81
|
+
d::LoopDef.build("1100C - TPA/BROKER ACCOUNT INFORMATION", d::RepeatCount.bounded(1),
|
82
|
+
b::Segment(1200, s::ACT, "TPA/Broker Account Information", r::Situational, d::RepeatCount.bounded(1),
|
83
|
+
b::Element(e::Required, "TPA or Broker Account Number", b::MaxLength(35)),
|
84
|
+
b::Element(e::NotUsed, "Name"),
|
85
|
+
b::Element(e::NotUsed, "Identification Code Qualifier"),
|
86
|
+
b::Element(e::NotUsed, "Identification Code"),
|
87
|
+
b::Element(e::NotUsed, "Account Number Qualifier"),
|
88
|
+
b::Element(e::Situational, "TPA or Broker Account Number", b::MaxLength(35)),
|
89
|
+
b::Element(e::NotUsed, "Description"),
|
90
|
+
b::Element(e::NotUsed, "Payment Method Type Code"),
|
91
|
+
b::Element(e::NotUsed, "Benefit Status Code")
|
92
|
+
)
|
93
|
+
)
|
94
|
+
),
|
95
|
+
|
96
|
+
d::TableDef.detail("Table 2 - Detail",
|
97
|
+
d::LoopDef.build("2000 - MEMBER LEVEL DETAIL", d::RepeatCount.unbounded,
|
98
|
+
b::Segment(100, s::INS, "Member Level Detail", r::Required, d::RepeatCount.bounded(1),
|
99
|
+
b::Element(e::Required, "Member Indicator", b::Values("N", "Y")),
|
100
|
+
b::Element(e::Required, "Individual Relationship Code", b::Values("01", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "23", "24", "25", "26", "31", "38", "53", "60", "D2", "G8", "G9")),
|
101
|
+
b::Element(e::Required, "Maintenance Type Code", b::Values("001", "021", "024", "025", "030")),
|
102
|
+
b::Element(e::Situational, "Maintenance Reason Code", b::Values("01", "03", "04", "05", "06", "07", "08", "09", "10", "11", "14", "15", "16", "17", "18", "20", "21", "22", "25", "26", "27", "28", "29", "31", "32", "33", "37", "38", "39", "40", "41", "43", "59", "AA", "AB", "AC", "AD", "AE", "AF", "AG", "AH", "AI", "AJ", "AL", "EC", "XN", "XT")),
|
103
|
+
b::Element(e::Required, "Benefit Status Code", b::Values("A", "C", "S", "T")),
|
104
|
+
b::Element(e::Situational, "MEDICARE STATUS CODE",
|
105
|
+
b::Element(e::Required, "Medicare Plan Code", b::Values("A", "B", "C", "D", "E")),
|
106
|
+
b::Element(e::Situational, "Medicare Eligibility Reason Code", b::Values("0", "1", "2")),
|
107
|
+
b::Element(e::NotUsed, "Eligibility Reason Code"),
|
108
|
+
b::Element(e::NotUsed, "Eligibility Reason Code")
|
109
|
+
),
|
110
|
+
b::Element(e::Situational, "Consolidated Omnibus Budget Reconciliation Act (COBRA) Qualifying Event Code", b::Values("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "ZZ")),
|
111
|
+
b::Element(e::Situational, "Employment Status Code", b::Values("AC", "AO", "AU", "FT", "L1", "PT", "RT", "TE")),
|
112
|
+
b::Element(e::Situational, "Student Status Code", b::Values("F", "N", "P")),
|
113
|
+
b::Element(e::Situational, "Handicap Indicator", b::Values("N", "Y")),
|
114
|
+
b::Element(e::Situational, "Date Time Period Format Qualifier", b::Values("D8")),
|
115
|
+
b::Element(e::Situational, "Member Individual Death Date"),
|
116
|
+
b::Element(e::Situational, "Confidentiality Code", b::Values("R", "U")),
|
117
|
+
b::Element(e::NotUsed, "City Name"),
|
118
|
+
b::Element(e::NotUsed, "State or Province Code"),
|
119
|
+
b::Element(e::NotUsed, "Country Code"),
|
120
|
+
b::Element(e::Situational, "Birth Sequence Number")
|
121
|
+
),
|
122
|
+
b::Segment(200, s::REF, "Subscriber Identifier", r::Required, d::RepeatCount.bounded(1),
|
123
|
+
b::Element(e::Required, "Reference Identification Qualifier", b::Values("0F")),
|
124
|
+
b::Element(e::Required, "Subscriber Identifier", b::MaxLength(50)),
|
125
|
+
b::Element(e::NotUsed, "Description"),
|
126
|
+
b::Element(e::NotUsed, "REFERENCE IDENTIFIER")
|
127
|
+
),
|
128
|
+
b::Segment(200, s::REF, "Member Policy Number", r::Situational, d::RepeatCount.bounded(1),
|
129
|
+
b::Element(e::Required, "Reference Identification Qualifier", b::Values("1L")),
|
130
|
+
b::Element(e::Required, "Member Group or Policy Number", b::MaxLength(50)),
|
131
|
+
b::Element(e::NotUsed, "Description"),
|
132
|
+
b::Element(e::NotUsed, "REFERENCE IDENTIFIER")
|
133
|
+
),
|
134
|
+
b::Segment(200, s::REF, "Member Supplemental Identifier", r::Situational, d::RepeatCount.bounded(13),
|
135
|
+
b::Element(e::Required, "Reference Identification Qualifier", b::Values("17", "23", "3H", "4A", "6O", "ABB", "D3", "DX", "F6", "P5", "Q4", "QQ", "ZZ")),
|
136
|
+
b::Element(e::Required, "Member Supplemental Identifier", b::MaxLength(50)),
|
137
|
+
b::Element(e::NotUsed, "Description"),
|
138
|
+
b::Element(e::NotUsed, "REFERENCE IDENTIFIER")
|
139
|
+
),
|
140
|
+
b::Segment(250, s::DTP, "Member Level Dates", r::Situational, d::RepeatCount.bounded(24),
|
141
|
+
b::Element(e::Required, "Date Time Qualifier", b::Values("050", "286", "296", "297", "300", "301", "303", "336", "337", "338", "339", "340", "341", "350", "351", "356", "357", "383", "385", "386", "393", "394", "473", "474")),
|
142
|
+
b::Element(e::Required, "Date Time Period Format Qualifier", b::Values("D8")),
|
143
|
+
b::Element(e::Required, "Status Information Effective Date")
|
144
|
+
),
|
145
|
+
d::LoopDef.build("2100A - MEMBER", d::RepeatCount.bounded(1),
|
146
|
+
b::Segment(300, s::NM1, "Member Name", r::Required, d::RepeatCount.bounded(1),
|
147
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("74", "IL")),
|
148
|
+
b::Element(e::Required, "Entity Type Qualifier", b::Values("1")),
|
149
|
+
b::Element(e::Required, "Member Last Name", b::MaxLength(60)),
|
150
|
+
b::Element(e::Situational, "Member First Name", b::MaxLength(35)),
|
151
|
+
b::Element(e::Situational, "Member Middle Name", b::MaxLength(25)),
|
152
|
+
b::Element(e::Situational, "Member Name Prefix", b::MaxLength(10)),
|
153
|
+
b::Element(e::Situational, "Member Name Suffix", b::MaxLength(10)),
|
154
|
+
b::Element(e::Situational, "Identification Code Qualifier", b::Values("34", "ZZ")),
|
155
|
+
b::Element(e::Situational, "Member Identifier", b::MaxLength(80)),
|
156
|
+
b::Element(e::NotUsed, "Entity Relationship Code"),
|
157
|
+
b::Element(e::NotUsed, "Entity Identifier Code"),
|
158
|
+
b::Element(e::NotUsed, "Name Last or Organization Name")
|
159
|
+
),
|
160
|
+
b::Segment(400, s::PER, "Member Communications Numbers", r::Situational, d::RepeatCount.bounded(1),
|
161
|
+
b::Element(e::Required, "Contact Function Code", b::Values("IP")),
|
162
|
+
b::Element(e::NotUsed, "Name"),
|
163
|
+
b::Element(e::Required, "Communication Number Qualifier", b::Values("AP", "BN", "CP", "EM", "EX", "FX", "HP", "TE", "WP")),
|
164
|
+
b::Element(e::Required, "Communication Number", b::MaxLength(256)),
|
165
|
+
b::Element(e::Situational, "Communication Number Qualifier", b::Values("AP", "BN", "CP", "EM", "EX", "FX", "HP", "TE", "WP")),
|
166
|
+
b::Element(e::Situational, "Communication Number", b::MaxLength(256)),
|
167
|
+
b::Element(e::Situational, "Communication Number Qualifier", b::Values("AP", "BN", "CP", "EM", "EX", "FX", "HP", "TE", "WP")),
|
168
|
+
b::Element(e::Situational, "Communication Number", b::MaxLength(256)),
|
169
|
+
b::Element(e::NotUsed, "Contact Inquiry Reference")
|
170
|
+
),
|
171
|
+
b::Segment(500, s::N3, "Member Residence Street Address", r::Situational, d::RepeatCount.bounded(1),
|
172
|
+
b::Element(e::Required, "Member Address Line", b::MaxLength(55)),
|
173
|
+
b::Element(e::Situational, "Member Address Line", b::MaxLength(55))
|
174
|
+
),
|
175
|
+
b::Segment(600, s::N4, "Member City, State, Zip Code", r::Situational, d::RepeatCount.bounded(1),
|
176
|
+
b::Element(e::Required, "Member City Name"),
|
177
|
+
b::Element(e::Situational, "Member State Code"),
|
178
|
+
b::Element(e::Situational, "Member Postal Zone or Zip Code"),
|
179
|
+
b::Element(e::Situational, "Country Code"),
|
180
|
+
b::Element(e::Situational, "Location Qualifier", b::Values("60", "CY")),
|
181
|
+
b::Element(e::Situational, "Location Identifier"),
|
182
|
+
b::Element(e::Situational, "Country Subdivision Code")
|
183
|
+
),
|
184
|
+
b::Segment(800, s::DMG, "Member Demographics", r::Situational, d::RepeatCount.bounded(1),
|
185
|
+
b::Element(e::Required, "Date Time Period Format Qualifier", b::Values("D8")),
|
186
|
+
b::Element(e::Required, "Member Birth Date"),
|
187
|
+
b::Element(e::Required, "Gender Code", b::Values("F", "M", "U")),
|
188
|
+
b::Element(e::Situational, "Marital Status Code", b::Values("B", "D", "I", "M", "R", "S", "U", "W", "X")),
|
189
|
+
b::Element(e::Situational, "COMPOSITE RACE OR ETHNICITY INFORMATION",
|
190
|
+
b::Element(e::Situational, "Race or Ethnicity Code", b::Values("7", "8", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "N", "O", "P", "Z")),
|
191
|
+
b::Element(e::Situational, "Code List Qualifier Code", b::Values("RET")),
|
192
|
+
b::Element(e::Situational, "Race or Ethnicity Code")
|
193
|
+
),
|
194
|
+
b::Element(e::Situational, "Citizenship Status Code", b::Values("1", "2", "3", "4", "5", "6", "7")),
|
195
|
+
b::Element(e::NotUsed, "Country Code"),
|
196
|
+
b::Element(e::NotUsed, "Basis of Verification Code"),
|
197
|
+
b::Element(e::NotUsed, "Quantity"),
|
198
|
+
b::Element(e::Situational, "Code List Qualifier Code", b::Values("REC")),
|
199
|
+
b::Element(e::Situational, "Race or Ethnicity Collection Code")
|
200
|
+
),
|
201
|
+
b::Segment(1000, s::EC, "Employment Class", r::Situational, d::RepeatCount.unbounded,
|
202
|
+
b::Element(e::Required, "Employment Class Code", b::Values("01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "17", "18", "19", "20", "21", "22", "23")),
|
203
|
+
b::Element(e::Situational, "Employment Class Code", b::Values("01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "17", "18", "19", "20", "21", "22", "23")),
|
204
|
+
b::Element(e::Situational, "Employment Class Code", b::Values("01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "17", "18", "19", "20", "21", "22", "23")),
|
205
|
+
b::Element(e::NotUsed, "Percentage as Decimal"),
|
206
|
+
b::Element(e::NotUsed, "Information Status Code"),
|
207
|
+
b::Element(e::NotUsed, "Occupation Code")
|
208
|
+
),
|
209
|
+
b::Segment(1100, s::ICM, "Member Income", r::Situational, d::RepeatCount.bounded(1),
|
210
|
+
b::Element(e::Required, "Frequency Code", b::Values("1", "2", "3", "4", "6", "7", "8", "9", "B", "C", "H", "Q", "S", "U")),
|
211
|
+
b::Element(e::Required, "Wage Amount"),
|
212
|
+
b::Element(e::Situational, "Work Hours Count"),
|
213
|
+
b::Element(e::Situational, "Location Identification Code"),
|
214
|
+
b::Element(e::Situational, "Salary Grade Code"),
|
215
|
+
b::Element(e::NotUsed, "Currency Code")
|
216
|
+
),
|
217
|
+
b::Segment(1200, s::AMT, "Member Policy Amounts", r::Situational, d::RepeatCount.bounded(7),
|
218
|
+
b::Element(e::Required, "Amount Qualifier Code", b::Values("B9", "C1", "D2", "EBA", "FK", "P3", "R")),
|
219
|
+
b::Element(e::Required, "Contract Amount"),
|
220
|
+
b::Element(e::NotUsed, "Credit/Debit Flag Code")
|
221
|
+
),
|
222
|
+
b::Segment(1300, s::HLH, "Member Health Information", r::Situational, d::RepeatCount.bounded(1),
|
223
|
+
b::Element(e::Required, "Health Related Code", b::Values("N", "S", "T", "U", "X")),
|
224
|
+
b::Element(e::Situational, "Member Height"),
|
225
|
+
b::Element(e::Situational, "Member Weight"),
|
226
|
+
b::Element(e::NotUsed, "Weight"),
|
227
|
+
b::Element(e::NotUsed, "Description"),
|
228
|
+
b::Element(e::NotUsed, "Current Health Condition Code"),
|
229
|
+
b::Element(e::NotUsed, "Description")
|
230
|
+
),
|
231
|
+
b::Segment(1500, s::LUI, "Member Language", r::Situational, d::RepeatCount.unbounded,
|
232
|
+
b::Element(e::Situational, "Identification Code Qualifier", b::Values("LD", "LE")),
|
233
|
+
b::Element(e::Situational, "Language Code"),
|
234
|
+
b::Element(e::Situational, "Language Description"),
|
235
|
+
b::Element(e::Situational, "Language Use Indicator", b::Values("5", "6", "7", "8")),
|
236
|
+
b::Element(e::NotUsed, "Language Proficiency Indicator")
|
237
|
+
)
|
238
|
+
),
|
239
|
+
d::LoopDef.build("2100B - INCORRECT MEMBER NAME", d::RepeatCount.bounded(1),
|
240
|
+
b::Segment(300, s::NM1, "Incorrect Member Name", r::Situational, d::RepeatCount.bounded(1),
|
241
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("70")),
|
242
|
+
b::Element(e::Required, "Entity Type Qualifier", b::Values("1")),
|
243
|
+
b::Element(e::Required, "Prior Incorrect Member Last Name"),
|
244
|
+
b::Element(e::Situational, "Prior Incorrect Member First Name"),
|
245
|
+
b::Element(e::Situational, "Prior Incorrect Member Middle Name"),
|
246
|
+
b::Element(e::Situational, "Prior Incorrect Member Name Prefix"),
|
247
|
+
b::Element(e::Situational, "Prior Incorrect Member Name Suffix"),
|
248
|
+
b::Element(e::Situational, "Identification Code Qualifier", b::Values("34", "ZZ")),
|
249
|
+
b::Element(e::Situational, "Prior Incorrect Insured Identifier"),
|
250
|
+
b::Element(e::NotUsed, "Entity Relationship Code"),
|
251
|
+
b::Element(e::NotUsed, "Entity Identifier Code"),
|
252
|
+
b::Element(e::NotUsed, "Name Last or Organization Name")
|
253
|
+
),
|
254
|
+
b::Segment(800, s::DMG, "Incorrect Member Demographics", r::Situational, d::RepeatCount.bounded(1),
|
255
|
+
b::Element(e::Situational, "Date Time Period Format Qualifier", b::Values("D8")),
|
256
|
+
b::Element(e::Situational, "Prior Incorrect Insured Birth Date"),
|
257
|
+
b::Element(e::Situational, "Prior Incorrect Insured Gender Code", b::Values("F", "M", "U")),
|
258
|
+
b::Element(e::Situational, "Marital Status Code", b::Values("B", "D", "I", "M", "R", "S", "U", "W", "X")),
|
259
|
+
b::Element(e::Situational, "COMPOSITE RACE OR ETHNICITY INFORMATION",
|
260
|
+
b::Element(e::Situational, "Race or Ethnicity Code"),
|
261
|
+
b::Element(e::Situational, "Code List Qualifier Code"),
|
262
|
+
b::Element(e::Situational, "Race or Ethnicity Code")
|
263
|
+
),
|
264
|
+
b::Element(e::Situational, "Citizenship Status Code"),
|
265
|
+
b::Element(e::NotUsed, "Country Code"),
|
266
|
+
b::Element(e::NotUsed, "Basis of Verification Code"),
|
267
|
+
b::Element(e::NotUsed, "Quantity"),
|
268
|
+
b::Element(e::Situational, "Code List Qualifier Code"),
|
269
|
+
b::Element(e::Situational, "Race or Ethnicity Collection Code")
|
270
|
+
)
|
271
|
+
),
|
272
|
+
d::LoopDef.build("2100C - MEMBER MAILING ADDRESS", d::RepeatCount.bounded(1),
|
273
|
+
b::Segment(300, s::NM1, "Member Mailing Address", r::Situational, d::RepeatCount.bounded(1),
|
274
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("31")),
|
275
|
+
b::Element(e::Required, "Entity Type Qualifier", b::Values("1")),
|
276
|
+
b::Element(e::NotUsed, "Name Last or Organization Name"),
|
277
|
+
b::Element(e::NotUsed, "Name First"),
|
278
|
+
b::Element(e::NotUsed, "Name Middle"),
|
279
|
+
b::Element(e::NotUsed, "Name Prefix"),
|
280
|
+
b::Element(e::NotUsed, "Name Suffix"),
|
281
|
+
b::Element(e::NotUsed, "Identification Code Qualifier"),
|
282
|
+
b::Element(e::NotUsed, "Identification Code"),
|
283
|
+
b::Element(e::NotUsed, "Entity Relationship Code"),
|
284
|
+
b::Element(e::NotUsed, "Entity Identifier Code"),
|
285
|
+
b::Element(e::NotUsed, "Name Last or Organization Name")
|
286
|
+
),
|
287
|
+
b::Segment(500, s::N3, "Member Mail Street Address", r::Required, d::RepeatCount.bounded(1),
|
288
|
+
b::Element(e::Required, "Member Address Line", b::MaxLength(55)),
|
289
|
+
b::Element(e::Situational, "Member Address Line", b::MaxLength(55))
|
290
|
+
),
|
291
|
+
b::Segment(600, s::N4, "Member Mail City, State, Zip Code", r::Situational, d::RepeatCount.bounded(1),
|
292
|
+
b::Element(e::Required, "Member Mail City Name"),
|
293
|
+
b::Element(e::Situational, "Member Mail State Code"),
|
294
|
+
b::Element(e::Situational, "Member Mail Postal Zone or Zip Code"),
|
295
|
+
b::Element(e::Situational, "Country Code"),
|
296
|
+
b::Element(e::NotUsed, "Location Qualifier"),
|
297
|
+
b::Element(e::NotUsed, "Location Identifier"),
|
298
|
+
b::Element(e::Situational, "Country Subdivision Code")
|
299
|
+
)
|
300
|
+
),
|
301
|
+
d::LoopDef.build("2100D - MEMBER EMPLOYER", d::RepeatCount.bounded(3),
|
302
|
+
b::Segment(300, s::NM1, "Member Employer", r::Situational, d::RepeatCount.bounded(1),
|
303
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("36")),
|
304
|
+
b::Element(e::Required, "Entity Type Qualifier", b::Values("1", "2")),
|
305
|
+
b::Element(e::Situational, "Member Employer Name"),
|
306
|
+
b::Element(e::Situational, "Member Employer First Name"),
|
307
|
+
b::Element(e::Situational, "Member Employer Middle Name"),
|
308
|
+
b::Element(e::Situational, "Member Employer Name Prefix"),
|
309
|
+
b::Element(e::Situational, "Member Employer Name Suffix"),
|
310
|
+
b::Element(e::Situational, "Identification Code Qualifier", b::Values("24", "34")),
|
311
|
+
b::Element(e::Situational, "Member Employer Identifier"),
|
312
|
+
b::Element(e::NotUsed, "Entity Relationship Code"),
|
313
|
+
b::Element(e::NotUsed, "Entity Identifier Code"),
|
314
|
+
b::Element(e::NotUsed, "Name Last or Organization Name")
|
315
|
+
),
|
316
|
+
b::Segment(400, s::PER, "Member Employer Communications Numbers", r::Situational, d::RepeatCount.bounded(1),
|
317
|
+
b::Element(e::Required, "Contact Function Code", b::Values("EP")),
|
318
|
+
b::Element(e::Situational, "Member Employer Communications Contact Name"),
|
319
|
+
b::Element(e::Required, "Communication Number Qualifier", b::Values("AP", "BN", "CP", "EM", "EX", "FX", "TE")),
|
320
|
+
b::Element(e::Required, "Communication Number", b::MaxLength(256)),
|
321
|
+
b::Element(e::Situational, "Communication Number Qualifier", b::Values("AP", "BN", "CP", "EM", "EX", "FX", "TE")),
|
322
|
+
b::Element(e::Situational, "Communication Number", b::MaxLength(256)),
|
323
|
+
b::Element(e::Situational, "Communication Number Qualifier", b::Values("AP", "BN", "CP", "EM", "EX", "FX", "TE")),
|
324
|
+
b::Element(e::Situational, "Communication Number", b::MaxLength(256)),
|
325
|
+
b::Element(e::NotUsed, "Contact Inquiry Reference")
|
326
|
+
),
|
327
|
+
b::Segment(500, s::N3, "Member Employer Street Address", r::Situational, d::RepeatCount.bounded(1),
|
328
|
+
b::Element(e::Required, "Member Employer Address Line", b::MaxLength(55)),
|
329
|
+
b::Element(e::Situational, "Member Employer Address Line", b::MaxLength(55))
|
330
|
+
),
|
331
|
+
b::Segment(600, s::N4, "Member Employer City, State, Zip Code", r::Situational, d::RepeatCount.bounded(1),
|
332
|
+
b::Element(e::Required, "Member Employer City Name"),
|
333
|
+
b::Element(e::Situational, "Member Employer State Code"),
|
334
|
+
b::Element(e::Situational, "Member Employer Postal Zone or Zip Code"),
|
335
|
+
b::Element(e::Situational, "Country Code"),
|
336
|
+
b::Element(e::NotUsed, "Location Qualifier"),
|
337
|
+
b::Element(e::NotUsed, "Location Identifier"),
|
338
|
+
b::Element(e::Situational, "Country Subdivision Code")
|
339
|
+
)
|
340
|
+
),
|
341
|
+
d::LoopDef.build("2100E - MEMBER SCHOOL", d::RepeatCount.bounded(3),
|
342
|
+
b::Segment(300, s::NM1, "Member School", r::Situational, d::RepeatCount.bounded(1),
|
343
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("M8")),
|
344
|
+
b::Element(e::Required, "Entity Type Qualifier", b::Values("2")),
|
345
|
+
b::Element(e::Required, "School Name"),
|
346
|
+
b::Element(e::NotUsed, "Name First"),
|
347
|
+
b::Element(e::NotUsed, "Name Middle"),
|
348
|
+
b::Element(e::NotUsed, "Name Prefix"),
|
349
|
+
b::Element(e::NotUsed, "Name Suffix"),
|
350
|
+
b::Element(e::NotUsed, "Identification Code Qualifier"),
|
351
|
+
b::Element(e::NotUsed, "Identification Code"),
|
352
|
+
b::Element(e::NotUsed, "Entity Relationship Code"),
|
353
|
+
b::Element(e::NotUsed, "Entity Identifier Code"),
|
354
|
+
b::Element(e::NotUsed, "Name Last or Organization Name")
|
355
|
+
),
|
356
|
+
b::Segment(400, s::PER, "Member School Communications Numbers", r::Situational, d::RepeatCount.bounded(1),
|
357
|
+
b::Element(e::Required, "Contact Function Code", b::Values("SK")),
|
358
|
+
b::Element(e::Situational, "Member School Communications Contact Name"),
|
359
|
+
b::Element(e::Required, "Communication Number Qualifier", b::Values("EM", "EX", "FX", "TE")),
|
360
|
+
b::Element(e::Required, "Communication Number", b::MaxLength(256)),
|
361
|
+
b::Element(e::Situational, "Communication Number Qualifier", b::Values("EM", "EX", "FX", "TE")),
|
362
|
+
b::Element(e::Situational, "Communication Number", b::MaxLength(256)),
|
363
|
+
b::Element(e::Situational, "Communication Number Qualifier", b::Values("EM", "EX", "FX", "TE")),
|
364
|
+
b::Element(e::Situational, "Communication Number", b::MaxLength(256)),
|
365
|
+
b::Element(e::NotUsed, "Contact Inquiry Reference")
|
366
|
+
),
|
367
|
+
b::Segment(500, s::N3, "Member School Street Address", r::Situational, d::RepeatCount.bounded(1),
|
368
|
+
b::Element(e::Required, "School Address Line", b::MaxLength(55)),
|
369
|
+
b::Element(e::Situational, "School Address Line", b::MaxLength(55))
|
370
|
+
),
|
371
|
+
b::Segment(600, s::N4, "Member School City, State, Zip Code", r::Situational, d::RepeatCount.bounded(1),
|
372
|
+
b::Element(e::Required, "Member School City Name"),
|
373
|
+
b::Element(e::Situational, "Member School State Code"),
|
374
|
+
b::Element(e::Situational, "Member School Postal Zone or Zip Code"),
|
375
|
+
b::Element(e::Situational, "Country Code"),
|
376
|
+
b::Element(e::NotUsed, "Location Qualifier"),
|
377
|
+
b::Element(e::NotUsed, "Location Identifier"),
|
378
|
+
b::Element(e::Situational, "Country Subdivision Code")
|
379
|
+
)
|
380
|
+
),
|
381
|
+
d::LoopDef.build("2100F - CUSTODIAL PARENT", d::RepeatCount.bounded(1),
|
382
|
+
b::Segment(300, s::NM1, "Custodial Parent", r::Situational, d::RepeatCount.bounded(1),
|
383
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("S3")),
|
384
|
+
b::Element(e::Required, "Entity Type Qualifier", b::Values("1")),
|
385
|
+
b::Element(e::Required, "Custodial Parent Last Name"),
|
386
|
+
b::Element(e::Required, "Custodial Parent First Name"),
|
387
|
+
b::Element(e::Situational, "Custodial Parent Middle Name"),
|
388
|
+
b::Element(e::Situational, "Custodial Parent Name Prefix"),
|
389
|
+
b::Element(e::Situational, "Custodial Parent Name Suffix"),
|
390
|
+
b::Element(e::Situational, "Identification Code Qualifier", b::Values("34", "ZZ")),
|
391
|
+
b::Element(e::Situational, "Custodial Parent Identifier"),
|
392
|
+
b::Element(e::NotUsed, "Entity Relationship Code"),
|
393
|
+
b::Element(e::NotUsed, "Entity Identifier Code"),
|
394
|
+
b::Element(e::NotUsed, "Name Last or Organization Name")
|
395
|
+
),
|
396
|
+
b::Segment(400, s::PER, "Custodial Parent Communications Numbers", r::Situational, d::RepeatCount.bounded(1),
|
397
|
+
b::Element(e::Required, "Contact Function Code", b::Values("PQ")),
|
398
|
+
b::Element(e::NotUsed, "Name"),
|
399
|
+
b::Element(e::Required, "Communication Number Qualifier", b::Values("AP", "BN", "CP", "EM", "EX", "FX", "HP", "TE", "WP")),
|
400
|
+
b::Element(e::Required, "Communication Number", b::MaxLength(256)),
|
401
|
+
b::Element(e::Situational, "Communication Number Qualifier", b::Values("AP", "BN", "CP", "EM", "EX", "FX", "HP", "TE", "WP")),
|
402
|
+
b::Element(e::Situational, "Communication Number", b::MaxLength(256)),
|
403
|
+
b::Element(e::Situational, "Communication Number Qualifier", b::Values("AP", "BN", "CP", "EM", "EX", "FX", "HP", "TE", "WP")),
|
404
|
+
b::Element(e::Situational, "Communication Number", b::MaxLength(256)),
|
405
|
+
b::Element(e::NotUsed, "Contact Inquiry Reference")
|
406
|
+
),
|
407
|
+
b::Segment(500, s::N3, "Custodial Parent Street Address", r::Situational, d::RepeatCount.bounded(1),
|
408
|
+
b::Element(e::Required, "Custodial Parent Address Line", b::MaxLength(55)),
|
409
|
+
b::Element(e::Situational, "Custodial Parent Address Line", b::MaxLength(55))
|
410
|
+
),
|
411
|
+
b::Segment(600, s::N4, "Custodial Parent City, State, Zip Code", r::Situational, d::RepeatCount.bounded(1),
|
412
|
+
b::Element(e::Required, "Custodial Parent City Name"),
|
413
|
+
b::Element(e::Situational, "Custodial Parent State Code"),
|
414
|
+
b::Element(e::Situational, "Custodial Parent Postal Zone or Zip Code"),
|
415
|
+
b::Element(e::Situational, "Country Code"),
|
416
|
+
b::Element(e::NotUsed, "Location Qualifier"),
|
417
|
+
b::Element(e::NotUsed, "Location Identifier"),
|
418
|
+
b::Element(e::Situational, "Country Subdivision Code")
|
419
|
+
)
|
420
|
+
),
|
421
|
+
d::LoopDef.build("2100G - RESPONSIBLE PERSON", d::RepeatCount.bounded(13),
|
422
|
+
b::Segment(300, s::NM1, "Responsible Person", r::Situational, d::RepeatCount.bounded(1),
|
423
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("6Y", "9K", "E1", "EI", "EXS", "GB", "GD", "J6", "LR", "QD", "S1", "TZ", "X4")),
|
424
|
+
b::Element(e::Required, "Entity Type Qualifier", b::Values("1")),
|
425
|
+
b::Element(e::Required, "Responsible Party Last or Organization Name"),
|
426
|
+
b::Element(e::Situational, "Responsible Party First Name"),
|
427
|
+
b::Element(e::Situational, "Responsible Party Middle Name"),
|
428
|
+
b::Element(e::Situational, "Responsible Party Name Prefix"),
|
429
|
+
b::Element(e::Situational, "Responsible Party Name Suffix"),
|
430
|
+
b::Element(e::Situational, "Identification Code Qualifier", b::Values("34", "ZZ")),
|
431
|
+
b::Element(e::Situational, "Responsible Party Identifier"),
|
432
|
+
b::Element(e::NotUsed, "Entity Relationship Code"),
|
433
|
+
b::Element(e::NotUsed, "Entity Identifier Code"),
|
434
|
+
b::Element(e::NotUsed, "Name Last or Organization Name")
|
435
|
+
),
|
436
|
+
b::Segment(400, s::PER, "Responsible Person Communications Numbers", r::Situational, d::RepeatCount.bounded(1),
|
437
|
+
b::Element(e::Required, "Contact Function Code", b::Values("RP")),
|
438
|
+
b::Element(e::NotUsed, "Name"),
|
439
|
+
b::Element(e::Required, "Communication Number Qualifier", b::Values("AP", "BN", "CP", "EM", "EX", "FX", "HP", "TE", "WP")),
|
440
|
+
b::Element(e::Required, "Communication Number", b::MaxLength(256)),
|
441
|
+
b::Element(e::Situational, "Communication Number Qualifier", b::Values("AP", "BN", "CP", "EM", "EX", "FX", "HP", "TE", "WP")),
|
442
|
+
b::Element(e::Situational, "Communication Number", b::MaxLength(256)),
|
443
|
+
b::Element(e::Situational, "Communication Number Qualifier", b::Values("AP", "BN", "CP", "EM", "EX", "FX", "HP", "TE", "WP")),
|
444
|
+
b::Element(e::Situational, "Communication Number", b::MaxLength(256)),
|
445
|
+
b::Element(e::NotUsed, "Contact Inquiry Reference")
|
446
|
+
),
|
447
|
+
b::Segment(500, s::N3, "Responsible Person Street Address", r::Situational, d::RepeatCount.bounded(1),
|
448
|
+
b::Element(e::Required, "Responsible Party Address Line", b::MaxLength(55)),
|
449
|
+
b::Element(e::Situational, "Responsible Party Address Line", b::MaxLength(55))
|
450
|
+
),
|
451
|
+
b::Segment(600, s::N4, "Responsible Person City, State, Zip Code", r::Situational, d::RepeatCount.bounded(1),
|
452
|
+
b::Element(e::Required, "Responsible Person City Name"),
|
453
|
+
b::Element(e::Situational, "Responsible Person State Code"),
|
454
|
+
b::Element(e::Situational, "Responsible Person Postal Zone or Zip Code"),
|
455
|
+
b::Element(e::Situational, "Country Code"),
|
456
|
+
b::Element(e::NotUsed, "Location Qualifier"),
|
457
|
+
b::Element(e::NotUsed, "Location Identifier"),
|
458
|
+
b::Element(e::Situational, "Country Subdivision Code")
|
459
|
+
)
|
460
|
+
),
|
461
|
+
d::LoopDef.build("2100H - DROP OFF LOCATION", d::RepeatCount.bounded(1),
|
462
|
+
b::Segment(300, s::NM1, "Drop Off Location", r::Situational, d::RepeatCount.bounded(1),
|
463
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("45")),
|
464
|
+
b::Element(e::Required, "Entity Type Qualifier", b::Values("1")),
|
465
|
+
b::Element(e::Situational, "Name Last or Organization Name"),
|
466
|
+
b::Element(e::Situational, "Name First"),
|
467
|
+
b::Element(e::Situational, "Name Middle"),
|
468
|
+
b::Element(e::Situational, "Name Prefix"),
|
469
|
+
b::Element(e::Situational, "Name Suffix"),
|
470
|
+
b::Element(e::NotUsed, "Identification Code Qualifier"),
|
471
|
+
b::Element(e::NotUsed, "Identification Code"),
|
472
|
+
b::Element(e::NotUsed, "Entity Relationship Code"),
|
473
|
+
b::Element(e::NotUsed, "Entity Identifier Code"),
|
474
|
+
b::Element(e::NotUsed, "Name Last or Organization Name")
|
475
|
+
),
|
476
|
+
b::Segment(500, s::N3, "Drop Off Location Street Address", r::Situational, d::RepeatCount.bounded(1),
|
477
|
+
b::Element(e::Required, "Drop Off Location Address Line", b::MaxLength(55)),
|
478
|
+
b::Element(e::Situational, "Drop Off Location Address Line", b::MaxLength(55))
|
479
|
+
),
|
480
|
+
b::Segment(600, s::N4, "Drop Off Location City, State, Zip Code", r::Situational, d::RepeatCount.bounded(1),
|
481
|
+
b::Element(e::Required, "Drop Off Location City Name"),
|
482
|
+
b::Element(e::Situational, "Drop Off Location State Code"),
|
483
|
+
b::Element(e::Situational, "Drop Off Location Postal Zone or Zip Code"),
|
484
|
+
b::Element(e::Situational, "Country Code"),
|
485
|
+
b::Element(e::NotUsed, "Location Qualifier"),
|
486
|
+
b::Element(e::NotUsed, "Location Identifier"),
|
487
|
+
b::Element(e::Situational, "Country Subdivision Code")
|
488
|
+
)
|
489
|
+
),
|
490
|
+
d::LoopDef.build("2200 - DISABILITY INFORMATION", d::RepeatCount.unbounded,
|
491
|
+
b::Segment(2000, s::DSB, "Disability Information", r::Situational, d::RepeatCount.bounded(1),
|
492
|
+
b::Element(e::Required, "Disability Type Code", b::Values("1", "2", "3", "4")),
|
493
|
+
b::Element(e::NotUsed, "Quantity"),
|
494
|
+
b::Element(e::NotUsed, "Occupation Code"),
|
495
|
+
b::Element(e::NotUsed, "Work Intensity Code"),
|
496
|
+
b::Element(e::NotUsed, "Product Option Code"),
|
497
|
+
b::Element(e::NotUsed, "Monetary Amount"),
|
498
|
+
b::Element(e::Situational, "Product or Service ID Qualifier", b::Values("DX", "ZZ")),
|
499
|
+
b::Element(e::Situational, "Diagnosis Code")
|
500
|
+
),
|
501
|
+
b::Segment(2100, s::DTP, "Disability Eligibility Dates", r::Situational, d::RepeatCount.bounded(2),
|
502
|
+
b::Element(e::Required, "Date Time Qualifier", b::Values("360", "361")),
|
503
|
+
b::Element(e::Required, "Date Time Period Format Qualifier", b::Values("D8")),
|
504
|
+
b::Element(e::Required, "Disability Eligibility Date")
|
505
|
+
)
|
506
|
+
),
|
507
|
+
d::LoopDef.build("2300 - HEALTH COVERAGE", d::RepeatCount.bounded(99),
|
508
|
+
b::Segment(2600, s::HD, "Health Coverage", r::Situational, d::RepeatCount.bounded(1),
|
509
|
+
b::Element(e::Required, "Maintenance Type Code", b::Values("001", "002", "021", "024", "025", "026", "030", "032")),
|
510
|
+
b::Element(e::NotUsed, "Maintenance Reason Code"),
|
511
|
+
b::Element(e::Required, "Insurance Line Code", b::Values("AG", "AH", "AJ", "AK", "DCP", "DEN", "EPO", "FAC", "HE", "HLT", "HMO", "LTC", "LTD", "MM", "MOD", "PDG", "POS", "PPO", "PRA", "STD", "UR", "VIS")),
|
512
|
+
b::Element(e::Situational, "Plan Coverage Description"),
|
513
|
+
b::Element(e::Situational, "Coverage Level Code", b::Values("CHD", "DEP", "E1D", "E2D", "E3D", "E5D", "E6D", "E7D", "E8D", "E9D", "ECH", "EMP", "ESP", "FAM", "IND", "SPC", "SPO", "TWO")),
|
514
|
+
b::Element(e::NotUsed, "Count"),
|
515
|
+
b::Element(e::NotUsed, "Count"),
|
516
|
+
b::Element(e::NotUsed, "Underwriting Decision Code"),
|
517
|
+
b::Element(e::Situational, "Late Enrollment Indicator"),
|
518
|
+
b::Element(e::NotUsed, "Drug House Code"),
|
519
|
+
b::Element(e::NotUsed, "Yes/No Condition or Response Code")
|
520
|
+
),
|
521
|
+
b::Segment(2700, s::DTP, "Health Coverage Dates", r::Required, d::RepeatCount.bounded(6),
|
522
|
+
b::Element(e::Required, "Date Time Qualifier", b::Values("300", "303", "343", "348", "349", "543", "695")),
|
523
|
+
b::Element(e::Required, "Date Time Period Format Qualifier", b::Values("D8", "RD8")),
|
524
|
+
b::Element(e::Required, "Coverage Period")
|
525
|
+
),
|
526
|
+
b::Segment(2800, s::AMT, "Health Coverage Policy", r::Situational, d::RepeatCount.bounded(9),
|
527
|
+
b::Element(e::Required, "Amount Qualifier Code", b::Values("B9", "C1", "D2", "EBA", "FK", "P3", "R")),
|
528
|
+
b::Element(e::Required, "Contract Amount"),
|
529
|
+
b::Element(e::NotUsed, "Credit/Debit Flag Code")
|
530
|
+
),
|
531
|
+
b::Segment(2900, s::REF, "Health Coverage Policy Number", r::Situational, d::RepeatCount.bounded(14),
|
532
|
+
b::Element(e::Required, "Reference Identification Qualifier", b::Values("17", "1L", "9V", "CE", "E8", "M7", "PID", "RB", "X9", "XM", "XX1", "XX2", "ZX", "ZZ")),
|
533
|
+
b::Element(e::Required, "Member Group or Policy Number", b::MaxLength(50)),
|
534
|
+
b::Element(e::NotUsed, "Description"),
|
535
|
+
b::Element(e::NotUsed, "REFERENCE IDENTIFIER")
|
536
|
+
),
|
537
|
+
b::Segment(2900, s::REF, "Prior Coverage Months", r::Situational, d::RepeatCount.bounded(1),
|
538
|
+
b::Element(e::Required, "Reference Identification Qualifier", b::Values("QQ")),
|
539
|
+
b::Element(e::Required, "Prior Coverage Month Count", b::MaxLength(50)),
|
540
|
+
b::Element(e::NotUsed, "Description"),
|
541
|
+
b::Element(e::NotUsed, "REFERENCE IDENTIFIER")
|
542
|
+
),
|
543
|
+
b::Segment(3000, s::IDC, "Identification Card", r::Situational, d::RepeatCount.bounded(3),
|
544
|
+
b::Element(e::Required, "Plan Coverage Description"),
|
545
|
+
b::Element(e::Required, "Identification Card Type Code", b::Values("D", "H", "P")),
|
546
|
+
b::Element(e::Situational, "Identification Card Count"),
|
547
|
+
b::Element(e::Situational, "Action Code", b::Values("1", "2", "RX"))
|
548
|
+
),
|
549
|
+
d::LoopDef.build("2310 - PROVIDER INFORMATION", d::RepeatCount.bounded(30),
|
550
|
+
b::Segment(3100, s::LX, "Provider Information", r::Situational, d::RepeatCount.bounded(1),
|
551
|
+
b::Element(e::Required, "Assigned Number")
|
552
|
+
),
|
553
|
+
b::Segment(3200, s::NM1, "Provider Name", r::Required, d::RepeatCount.bounded(1),
|
554
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("1X", "3D", "80", "FA", "OD", "P3", "QA", "QN", "Y2")),
|
555
|
+
b::Element(e::Required, "Entity Type Qualifier", b::Values("1", "2")),
|
556
|
+
b::Element(e::Situational, "Provider Last or Organization Name"),
|
557
|
+
b::Element(e::Situational, "Provider First Name"),
|
558
|
+
b::Element(e::Situational, "Provider Middle Name"),
|
559
|
+
b::Element(e::Situational, "Provider Name Prefix"),
|
560
|
+
b::Element(e::Situational, "Provider Name Suffix"),
|
561
|
+
b::Element(e::Situational, "Identification Code Qualifier", b::Values("34", "FI", "SV", "XX")),
|
562
|
+
b::Element(e::Situational, "Provider Identifier"),
|
563
|
+
b::Element(e::Required, "Entity Relationship Code", b::Values("25", "26", "72")),
|
564
|
+
b::Element(e::NotUsed, "Entity Identifier Code"),
|
565
|
+
b::Element(e::NotUsed, "Name Last or Organization Name")
|
566
|
+
),
|
567
|
+
b::Segment(3500, s::N3, "Provider Address", r::Situational, d::RepeatCount.bounded(2),
|
568
|
+
b::Element(e::Required, "Provider Address Line", b::MaxLength(55)),
|
569
|
+
b::Element(e::Situational, "Provider Address Line", b::MaxLength(55))
|
570
|
+
),
|
571
|
+
b::Segment(3600, s::N4, "Provider City, State, Zip Code", r::Situational, d::RepeatCount.bounded(1),
|
572
|
+
b::Element(e::Required, "Provider City Name"),
|
573
|
+
b::Element(e::Situational, "Provider State Code"),
|
574
|
+
b::Element(e::Situational, "Provider Postal Zone or Zip Code"),
|
575
|
+
b::Element(e::Situational, "Country Code"),
|
576
|
+
b::Element(e::NotUsed, "Location Qualifier"),
|
577
|
+
b::Element(e::NotUsed, "Location Identifier"),
|
578
|
+
b::Element(e::Situational, "Country Subdivision Code")
|
579
|
+
),
|
580
|
+
b::Segment(3700, s::PER, "Provider Communications Numbers", r::Situational, d::RepeatCount.bounded(2),
|
581
|
+
b::Element(e::Required, "Contact Function Code", b::Values("IC")),
|
582
|
+
b::Element(e::NotUsed, "Name"),
|
583
|
+
b::Element(e::Required, "Communication Number Qualifier", b::Values("AP", "BN", "CP", "EM", "EX", "FX", "HP", "TE", "WP")),
|
584
|
+
b::Element(e::Required, "Communication Number", b::MaxLength(256)),
|
585
|
+
b::Element(e::Situational, "Communication Number Qualifier", b::Values("AP", "BN", "CP", "EM", "EX", "FX", "HP", "TE", "WP")),
|
586
|
+
b::Element(e::Situational, "Communication Number", b::MaxLength(256)),
|
587
|
+
b::Element(e::Situational, "Communication Number Qualifier", b::Values("AP", "BN", "CP", "EM", "EX", "FX", "HP", "TE", "WP")),
|
588
|
+
b::Element(e::Situational, "Communication Number", b::MaxLength(256)),
|
589
|
+
b::Element(e::NotUsed, "Contact Inquiry Reference")
|
590
|
+
),
|
591
|
+
b::Segment(3950, s::PLA, "Provider Change Reason", r::Situational, d::RepeatCount.bounded(1),
|
592
|
+
b::Element(e::Required, "Action Code", b::Values("2")),
|
593
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("1P")),
|
594
|
+
b::Element(e::Required, "Provider Effective Date"),
|
595
|
+
b::Element(e::NotUsed, "Time"),
|
596
|
+
b::Element(e::Required, "Maintenance Reason Code", b::Values("14", "22", "46", "AA", "AB", "AC", "AD", "AE", "AF", "AG", "AH", "AI", "AJ"))
|
597
|
+
)
|
598
|
+
),
|
599
|
+
d::LoopDef.build("2320 - COORDINATION OF BENEFITS", d::RepeatCount.bounded(5),
|
600
|
+
b::Segment(4000, s::COB, "Coordination of Benefits", r::Situational, d::RepeatCount.bounded(1),
|
601
|
+
b::Element(e::Required, "Payer Responsibility Sequence Number Code", b::Values("P", "S", "T", "U")),
|
602
|
+
b::Element(e::Situational, "Member Group or Policy Number", b::MaxLength(50)),
|
603
|
+
b::Element(e::Required, "Coordination of Benefits Code", b::Values("1", "5", "6")),
|
604
|
+
b::Element(e::Situational, "Service Code", b::Values("1", "35", "48", "50", "54", "89", "90", "A4", "AG", "AL", "BB"))
|
605
|
+
),
|
606
|
+
b::Segment(4050, s::REF, "Additional Coordination of Benefits Identifiers", r::Situational, d::RepeatCount.bounded(4),
|
607
|
+
b::Element(e::Required, "Reference Identification Qualifier", b::Values("60", "6P", "SY", "ZZ")),
|
608
|
+
b::Element(e::Required, "Member Group or Policy Number", b::MaxLength(50)),
|
609
|
+
b::Element(e::NotUsed, "Description"),
|
610
|
+
b::Element(e::NotUsed, "REFERENCE IDENTIFIER")
|
611
|
+
),
|
612
|
+
b::Segment(4070, s::DTP, "Coordination of Benefits Eligibility Dates", r::Situational, d::RepeatCount.bounded(2),
|
613
|
+
b::Element(e::Required, "Date Time Qualifier", b::Values("344", "345")),
|
614
|
+
b::Element(e::Required, "Date Time Period Format Qualifier", b::Values("D8")),
|
615
|
+
b::Element(e::Required, "Coordination of Benefits Date")
|
616
|
+
),
|
617
|
+
d::LoopDef.build("2330 - COORDINATION OF BENEFITS RELATED ENTITY", d::RepeatCount.bounded(3),
|
618
|
+
b::Segment(4100, s::NM1, "Coordination of Benefits Related Entity", r::Situational, d::RepeatCount.bounded(1),
|
619
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("36", "GW", "IN")),
|
620
|
+
b::Element(e::Required, "Entity Type Qualifier", b::Values("2")),
|
621
|
+
b::Element(e::Situational, "Coordination of Benefits Insurer Name"),
|
622
|
+
b::Element(e::NotUsed, "Name First"),
|
623
|
+
b::Element(e::NotUsed, "Name Middle"),
|
624
|
+
b::Element(e::NotUsed, "Name Prefix"),
|
625
|
+
b::Element(e::NotUsed, "Name Suffix"),
|
626
|
+
b::Element(e::Situational, "Identification Code Qualifier", b::Values("FI", "NI", "XV")),
|
627
|
+
b::Element(e::Situational, "Coordination of Benefits Insurer Identification Code"),
|
628
|
+
b::Element(e::NotUsed, "Entity Relationship Code"),
|
629
|
+
b::Element(e::NotUsed, "Entity Identifier Code"),
|
630
|
+
b::Element(e::NotUsed, "Name Last or Organization Name")
|
631
|
+
),
|
632
|
+
b::Segment(4300, s::N3, "Coordination of Benefits Related Entity Address", r::Situational, d::RepeatCount.bounded(1),
|
633
|
+
b::Element(e::Required, "Address Information", b::MaxLength(55)),
|
634
|
+
b::Element(e::Situational, "Address Information", b::MaxLength(55))
|
635
|
+
),
|
636
|
+
b::Segment(4400, s::N4, "Coordination of Benefits Other Insurance Company City, State, Zip Code", r::Situational, d::RepeatCount.bounded(1),
|
637
|
+
b::Element(e::Required, "Coordination of Benefits Other Insurance Company City Name"),
|
638
|
+
b::Element(e::Situational, "Coordination of Benefits Other Insurance Company State Code"),
|
639
|
+
b::Element(e::Situational, "Coordination of Benefits Other Insurance Company Postal Zone or Zip Code"),
|
640
|
+
b::Element(e::Situational, "Country Code"),
|
641
|
+
b::Element(e::NotUsed, "Location Qualifier"),
|
642
|
+
b::Element(e::NotUsed, "Location Identifier"),
|
643
|
+
b::Element(e::Situational, "Country Subdivision Code")
|
644
|
+
),
|
645
|
+
b::Segment(4500, s::PER, "Administrative Communications Contact", r::Situational, d::RepeatCount.bounded(1),
|
646
|
+
b::Element(e::Required, "Contact Function Code", b::Values("CN")),
|
647
|
+
b::Element(e::NotUsed, "Name"),
|
648
|
+
b::Element(e::Required, "Communication Number Qualifier", b::Values("TE")),
|
649
|
+
b::Element(e::Required, "Communication Number", b::MaxLength(256)),
|
650
|
+
b::Element(e::NotUsed, "Communication Number Qualifier"),
|
651
|
+
b::Element(e::NotUsed, "Communication Number"),
|
652
|
+
b::Element(e::NotUsed, "Communication Number Qualifier"),
|
653
|
+
b::Element(e::NotUsed, "Communication Number"),
|
654
|
+
b::Element(e::NotUsed, "Contact Inquiry Reference")
|
655
|
+
)
|
656
|
+
)
|
657
|
+
)
|
658
|
+
),
|
659
|
+
d::LoopDef.build("2700 - ADDITIONAL REPORTING CATEGORIES", d::RepeatCount.bounded(1),
|
660
|
+
b::Segment(6880, s::LS, "Additional Reporting Categories", r::Situational, d::RepeatCount.bounded(1),
|
661
|
+
b::Element(e::Required, "Loop Identifier Code", b::Values("2700"))
|
662
|
+
),
|
663
|
+
d::LoopDef.build("2710 - MEMBER REPORTING CATEGORIES", d::RepeatCount.unbounded,
|
664
|
+
b::Segment(6881, s::LX, "Member Reporting Categories", r::Situational, d::RepeatCount.bounded(1),
|
665
|
+
b::Element(e::Required, "Assigned Number")
|
666
|
+
),
|
667
|
+
d::LoopDef.build("2750 - REPORTING CATEGORY", d::RepeatCount.bounded(1),
|
668
|
+
b::Segment(6882, s::N1, "Reporting Category", r::Situational, d::RepeatCount.bounded(1),
|
669
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("75")),
|
670
|
+
b::Element(e::Required, "Member Reporting Category Name", b::MaxLength(60)),
|
671
|
+
b::Element(e::NotUsed, "Identification Code Qualifier"),
|
672
|
+
b::Element(e::NotUsed, "Identification Code"),
|
673
|
+
b::Element(e::NotUsed, "Entity Relationship Code"),
|
674
|
+
b::Element(e::NotUsed, "Entity Identifier Code")
|
675
|
+
),
|
676
|
+
b::Segment(6883, s::REF, "Reporting Category Reference", r::Situational, d::RepeatCount.bounded(16),
|
677
|
+
b::Element(e::Required, "Reference Identification Qualifier", b::Values("00", "17", "18", "19", "26", "3L", "6M", "9V", "9X", "GE", "LU", "PID", "XX1", "XX2", "YY", "ZZ")),
|
678
|
+
b::Element(e::Required, "Member Reporting Category Reference ID", b::MaxLength(50)),
|
679
|
+
b::Element(e::NotUsed, "Description"),
|
680
|
+
b::Element(e::NotUsed, "REFERENCE IDENTIFIER")
|
681
|
+
),
|
682
|
+
b::Segment(6884, s::DTP, "Reporting Category Date", r::Situational, d::RepeatCount.bounded(1),
|
683
|
+
b::Element(e::Required, "Date Time Qualifier", b::Values("007")),
|
684
|
+
b::Element(e::Required, "Date Time Period Format Qualifier", b::Values("D8", "RD8")),
|
685
|
+
b::Element(e::Required, "Member Reporting Category Effective Date(s)", b::MaxLength(35))
|
686
|
+
)
|
687
|
+
)
|
688
|
+
),
|
689
|
+
b::Segment(6885, s::LE, "Additional Reporting Categories Loop Termination", r::Situational, d::RepeatCount.bounded(1),
|
690
|
+
b::Element(e::Required, "Loop Identifier Code", b::Values("2700"))
|
691
|
+
)
|
692
|
+
)
|
693
|
+
),
|
694
|
+
repeatable: false
|
695
|
+
),
|
696
|
+
|
697
|
+
# This structure doesn't match the specification, but it does ensure
|
698
|
+
# that the first occurrence of SE terminates the transaction set.
|
699
|
+
d::TableDef.summary("Table 3 - Summary",
|
700
|
+
b::Segment(6900, s::SE, "Transaction Set Trailer", r::Required, d::RepeatCount.bounded(1),
|
701
|
+
b::Element(e::Required, "Transaction Segment Count"),
|
702
|
+
b::Element(e::Required, "Transaction Set Control Number")
|
703
|
+
)
|
704
|
+
)
|
705
|
+
)
|
706
|
+
end
|
707
|
+
end
|
708
|
+
end
|
709
|
+
end
|