Skip to main content

x12_types/v005010/segment/
h.rs

1use serde::{Deserialize, Serialize};
2use validator::Validate;
3use x12_types_macros::{DisplaySegment, ParseSegment};
4
5/// HAD - Hospital Affiliation Detail
6///
7/// To convey a provider's hospital affiliation detail
8///
9/// REF | ID | NAME | REQ | TYPE | MIN/MAX
10/// ----|----|-------|----|------|-------
11/// 01 | 546 | Status Code | M | ID | 2/2
12/// 02 | 1073 | Yes/No Condition or Response Code | O | ID | 1/1
13/// 03 | 1073 | Yes/No Condition or Response Code | O | ID | 1/1
14/// 04 | 1073 | Yes/No Condition or Response Code | O | ID | 1/1
15/// 05 | 1270 | Code List Qualifier Code | X | ID | 1/3
16/// 06 | 1271 | Industry Code | X | AN | 1/30
17#[derive(
18    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
19)]
20pub struct HAD {
21    #[serde(rename = "01")]
22    pub _01: crate::v005010::element::E546,
23    #[serde(rename = "02")]
24    pub _02: Option<crate::v005010::element::E1073>,
25    #[serde(rename = "03")]
26    pub _03: Option<crate::v005010::element::E1073>,
27    #[serde(rename = "04")]
28    pub _04: Option<crate::v005010::element::E1073>,
29    #[serde(rename = "05")]
30    pub _05: Option<String>,
31    #[serde(rename = "06")]
32    pub _06: Option<String>,
33}
34
35/// HPL - Health Care Provider License
36///
37/// To provide license, certification, accreditation, and registration information for health care providers
38///
39/// REF | ID | NAME | REQ | TYPE | MIN/MAX
40/// ----|----|-------|----|------|-------
41/// 01 | 128 | Reference Identification Qualifier | C | ID | 2/3
42/// 02 | 127 | Reference Identification | C | AN | 1/50
43/// 03 | 546 | Status Code | O | ID | 2/2
44/// 04 | 156 | State or Province Code | O | ID | 2/2
45/// 05 | 352 | Description | O | AN | 1/80
46/// 06 | 83 | Code For Licensing, Certification, Registration, or Accreditation Agency | C | ID | 1/2
47#[derive(
48    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
49)]
50pub struct HPL {
51    #[serde(rename = "01")]
52    pub _01: Option<String>,
53    #[serde(rename = "02")]
54    pub _02: Option<String>,
55    #[serde(rename = "03")]
56    pub _03: Option<crate::v005010::element::E546>,
57    #[serde(rename = "04")]
58    pub _04: Option<String>,
59    #[serde(rename = "05")]
60    pub _05: Option<String>,
61    #[serde(rename = "06")]
62    pub _06: Option<crate::v005010::element::E83>,
63}
64
65/// HCP - Health Care Pricing
66#[derive(
67    Serialize,
68    Deserialize,
69    Clone,
70    Default,
71    Debug,
72    Validate,
73    PartialEq,
74    Eq,
75    DisplaySegment,
76    ParseSegment,
77)]
78pub struct HCP {
79    #[serde(rename = "01")]
80    pub _01: Option<String>,
81    #[serde(rename = "02")]
82    pub _02: Option<String>,
83    #[serde(rename = "03")]
84    pub _03: Option<String>,
85    #[serde(rename = "04")]
86    pub _04: Option<String>,
87    #[serde(rename = "05")]
88    pub _05: Option<String>,
89    #[serde(rename = "06")]
90    pub _06: Option<String>,
91    #[serde(rename = "07")]
92    pub _07: Option<String>,
93    #[serde(rename = "08")]
94    pub _08: Option<String>,
95    #[serde(rename = "09")]
96    pub _09: Option<String>,
97    #[serde(rename = "10")]
98    pub _10: Option<String>,
99    #[serde(rename = "11")]
100    pub _11: Option<String>,
101    #[serde(rename = "12")]
102    pub _12: Option<String>,
103    #[serde(rename = "13")]
104    pub _13: Option<String>,
105    #[serde(rename = "14")]
106    pub _14: Option<String>,
107    #[serde(rename = "15")]
108    pub _15: Option<String>,
109}
110
111/// HCR - Health Care Services Review
112#[derive(
113    Serialize,
114    Deserialize,
115    Clone,
116    Default,
117    Debug,
118    Validate,
119    PartialEq,
120    Eq,
121    DisplaySegment,
122    ParseSegment,
123)]
124pub struct HCR {
125    #[serde(rename = "01")]
126    pub _01: Option<String>,
127    #[serde(rename = "02")]
128    pub _02: Option<String>,
129    #[serde(rename = "03")]
130    pub _03: Option<String>,
131}
132
133/// HD - Health Coverage
134#[derive(
135    Serialize,
136    Deserialize,
137    Clone,
138    Default,
139    Debug,
140    Validate,
141    PartialEq,
142    Eq,
143    DisplaySegment,
144    ParseSegment,
145)]
146pub struct HD {
147    #[serde(rename = "01")]
148    pub _01: String,
149    #[serde(rename = "02")]
150    pub _02: Option<String>,
151    #[serde(rename = "03")]
152    pub _03: Option<String>,
153    #[serde(rename = "04")]
154    pub _04: Option<String>,
155    #[serde(rename = "05")]
156    pub _05: Option<String>,
157    #[serde(rename = "06")]
158    pub _06: Option<String>,
159    #[serde(rename = "07")]
160    pub _07: Option<String>,
161    #[serde(rename = "08")]
162    pub _08: Option<String>,
163    #[serde(rename = "09")]
164    pub _09: Option<String>,
165    #[serde(rename = "10")]
166    pub _10: Option<String>,
167    #[serde(rename = "11")]
168    pub _11: Option<String>,
169}
170
171/// HI - Health Care Information Codes
172#[derive(
173    Serialize,
174    Deserialize,
175    Clone,
176    Default,
177    Debug,
178    Validate,
179    PartialEq,
180    Eq,
181    DisplaySegment,
182    ParseSegment,
183)]
184pub struct HI {
185    #[serde(rename = "01")]
186    pub _01: String,
187    #[serde(rename = "02")]
188    pub _02: Option<String>,
189    #[serde(rename = "03")]
190    pub _03: Option<String>,
191    #[serde(rename = "04")]
192    pub _04: Option<String>,
193    #[serde(rename = "05")]
194    pub _05: Option<String>,
195    #[serde(rename = "06")]
196    pub _06: Option<String>,
197    #[serde(rename = "07")]
198    pub _07: Option<String>,
199    #[serde(rename = "08")]
200    pub _08: Option<String>,
201    #[serde(rename = "09")]
202    pub _09: Option<String>,
203    #[serde(rename = "10")]
204    pub _10: Option<String>,
205    #[serde(rename = "11")]
206    pub _11: Option<String>,
207    #[serde(rename = "12")]
208    pub _12: Option<String>,
209}
210
211/// HL - Hierarchical Level
212#[derive(
213    Serialize,
214    Deserialize,
215    Clone,
216    Default,
217    Debug,
218    Validate,
219    PartialEq,
220    Eq,
221    DisplaySegment,
222    ParseSegment,
223)]
224pub struct HL {
225    #[serde(rename = "01")]
226    pub _01: String,
227    #[serde(rename = "02")]
228    pub _02: Option<String>,
229    /// 735 - Hierarchical Level Code
230    #[serde(rename = "03")]
231    pub _03: crate::v005010::element::E735,
232    /// 736 - Hierarchical Child Code
233    #[serde(rename = "04")]
234    pub _04: Option<crate::v005010::element::E736>,
235}
236
237/// HLH - Health Information
238#[derive(
239    Serialize,
240    Deserialize,
241    Clone,
242    Default,
243    Debug,
244    Validate,
245    PartialEq,
246    Eq,
247    DisplaySegment,
248    ParseSegment,
249)]
250pub struct HLH {
251    #[serde(rename = "01")]
252    pub _01: String,
253    #[serde(rename = "02")]
254    pub _02: String,
255    #[serde(rename = "03")]
256    pub _03: Option<String>,
257    #[serde(rename = "04")]
258    pub _04: Option<String>,
259    #[serde(rename = "05")]
260    pub _05: Option<String>,
261    #[serde(rename = "06")]
262    pub _06: Option<String>,
263    #[serde(rename = "07")]
264    pub _07: Option<String>,
265}
266
267/// HSD - Health Care Services Delivery
268#[derive(
269    Serialize,
270    Deserialize,
271    Clone,
272    Default,
273    Debug,
274    Validate,
275    PartialEq,
276    Eq,
277    DisplaySegment,
278    ParseSegment,
279)]
280pub struct HSD {
281    #[serde(rename = "01")]
282    pub _01: Option<String>,
283    #[serde(rename = "02")]
284    pub _02: Option<String>,
285    #[serde(rename = "03")]
286    pub _03: Option<String>,
287    #[serde(rename = "04")]
288    pub _04: Option<String>,
289    #[serde(rename = "05")]
290    pub _05: Option<String>,
291    #[serde(rename = "06")]
292    pub _06: Option<String>,
293    #[serde(rename = "07")]
294    pub _07: Option<String>,
295    #[serde(rename = "08")]
296    pub _08: Option<String>,
297}
298
299/// H1 - Hazardous Material
300///
301/// To specify information relative to hazardous material
302///
303/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
304/// ----|----|------|--------|----|------|-------
305/// 01 | 62 | Hazardous Material Code | 1 | M | AN | 4/10
306/// 02 | 209 | Hazardous Material Class Code | 1 | O | AN | 1/4
307/// 03 | 208 | Hazardous Material Code Qualifier | 1 | O | ID | 1/1
308/// 04 | 64 | Hazardous Material Description | 1 | O | AN | 2/30
309/// 05 | 63 | Hazardous Material Contact | 1 | O | AN | 1/24
310/// 06 | 200 | Hazardous Materials Page | 1 | O | AN | 1/6
311/// 07 | 77 | Flashpoint Temperature | 1 | X | N | 1/3
312/// 08 | 355 | Unit or Basis for Measurement Code | 1 | X | ID | 2/2
313/// 09 | 254 | Packing Group Code | 1 | O | ID | 1/3
314#[derive(
315    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
316)]
317pub struct H1 {
318    #[serde(rename = "01")]
319    pub _01: String,
320    #[serde(rename = "02")]
321    pub _02: Option<String>,
322    #[serde(rename = "03")]
323    pub _03: Option<String>,
324    #[serde(rename = "04")]
325    pub _04: Option<String>,
326    #[serde(rename = "05")]
327    pub _05: Option<String>,
328    #[serde(rename = "06")]
329    pub _06: Option<String>,
330    #[serde(rename = "07")]
331    pub _07: Option<crate::v005010::element::E77>,
332    #[serde(rename = "08")]
333    pub _08: Option<String>,
334    #[serde(rename = "09")]
335    pub _09: Option<String>,
336}
337
338/// H2 - Additional Hazardous Material Description
339///
340/// To specify free-form hazardous material descriptive data in addition to the information provided in the H1 segment
341///
342/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
343/// ----|----|------|--------|----|------|-------
344/// 01 | 64 | Hazardous Material Description | M |  | AN 2/30
345/// 02 | 274 | Hazardous Material Classification | O |  | AN 1/30
346#[derive(
347    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
348)]
349pub struct H2 {
350    #[serde(rename = "01")]
351    pub _01: String,
352    #[serde(rename = "02")]
353    pub _02: Option<String>,
354}
355
356/// H6 - Special Services
357///
358/// To specify special services to be performed and associated pallet and weight detail
359///
360/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
361/// ----|----|-------|--------|----|------|-------
362/// 01 | 560 | Special Services Code | 1 | X | ID | 2/10
363/// 02 | 560 | Special Services Code | 1 | O | ID | 2/10
364/// 03 | 406 | Quantity of Pallets Shipped | 1 | O | N0 | 1/3
365/// 04 | 399 | Pallet Exchange Code | 1 | O | ID | 1/1
366/// 05 | 81 | Weight | 1 | O | R | 1/10
367/// 06 | 188 | Weight Unit Code | 1 | O | ID | 1/1
368/// 07 | 108 | Pickup or Delivery Code | 1 | X | ID | 1/2
369#[derive(
370    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
371)]
372pub struct H6 {
373    #[serde(rename = "01")]
374    pub _01: Option<crate::v005010::element::E560>,
375    #[serde(rename = "02")]
376    pub _02: Option<crate::v005010::element::E560>,
377    #[serde(rename = "03")]
378    pub _03: Option<crate::v005010::element::E406>,
379    #[serde(rename = "04")]
380    pub _04: Option<crate::v005010::element::E399>,
381    #[serde(rename = "05")]
382    pub _05: Option<crate::v005010::element::E81>,
383    #[serde(rename = "06")]
384    pub _06: Option<String>,
385    #[serde(rename = "07")]
386    pub _07: Option<crate::v005010::element::E108>,
387}
388
389/// H5 - Car Service Order
390///
391/// To identify the car service directive or other car movement instructions applicable to the empty movement of the car
392///
393/// REF | ID | NAME | REQ | TYPE | MIN/MAX
394/// ----|----|-------|----|------|-------
395/// 01 | 240 | Car Service Order Code | M | ID | 3/5
396/// 02 | 19 | City Name | O | AN | 2/30
397/// 03 | 156 | State or Province Code | O | ID | 2/2
398#[derive(
399    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
400)]
401pub struct H5 {
402    #[serde(rename = "01")]
403    pub _01: crate::v005010::element::E240,
404    #[serde(rename = "02")]
405    pub _02: Option<String>,
406    #[serde(rename = "03")]
407    pub _03: Option<String>,
408}
409
410/// H3 - Special Handling Instructions
411///
412/// To specify special handling instructions in coded or free-form format
413///
414/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
415/// ----|----|------|--------|----|------|-------
416/// 01 | 152 | Special Handling Code | 1 | X | ID | 2/3
417/// 02 | 153 | Special Handling Description | 1 | X | AN | 2/30
418/// 03 | 241 | Protective Service Code | 1 | O | ID | 1/4
419/// 04 | 242 | Vent Instruction Code | 1 | O | ID | 1/7
420/// 05 | 257 | Tariff Application Code | 1 | O | ID | 1/1
421#[derive(
422    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
423)]
424pub struct H3 {
425    #[serde(rename = "01")]
426    pub _01: Option<String>,
427    #[serde(rename = "02")]
428    pub _02: Option<String>,
429    #[serde(rename = "03")]
430    pub _03: Option<crate::v005010::element::E241>,
431    #[serde(rename = "04")]
432    pub _04: Option<crate::v005010::element::E242>,
433    #[serde(rename = "05")]
434    pub _05: Option<crate::v005010::element::E257>,
435}