context: /***************************************************************
  * Copyright (C) 2011 Jeremy Reagan, All Rights Reserved.
  * I may be reached via email at: jeremy.reagan@live.com
  * 
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; under version 2
  * of the License.
  * 
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  ****************************************************************/
  
  using System;
  using System.Collections.Generic;
  using HL7Lib.Base;
  
  namespace HL7Lib.Segments
  {
  	/// <summary>
  /// IN2 Class: Constructs an HL7 IN2 Segment Object
  /// </summary>
  public class IN2
  	{
  		public string Name {get; set;}
  		public string Description {get; set;}
  		public List<Field> Fields {get; set;}
  
  		public IN2()
  		{
  			Name = "IN2";
  			Description = "Insurance Additional Information";
  			List<Field> fs = new List<Field>();
  			fs.Add(Field.SegName());
  			fs.Add(IN21());
  			fs.Add(IN22());
  			fs.Add(IN23());
  			fs.Add(IN24());
  			fs.Add(IN25());
  			fs.Add(IN26());
  			fs.Add(IN27());
  			fs.Add(IN28());
  			fs.Add(IN29());
  			fs.Add(IN210());
  			fs.Add(IN211());
  			fs.Add(IN212());
  			fs.Add(IN213());
  			fs.Add(IN214());
  			fs.Add(IN215());
  			fs.Add(IN216());
  			fs.Add(IN217());
  			fs.Add(IN218());
  			fs.Add(IN219());
  			fs.Add(IN220());
  			fs.Add(IN221());
  			fs.Add(IN222());
  			fs.Add(IN223());
  			fs.Add(IN224());
  			fs.Add(IN225());
  			fs.Add(IN226());
  			fs.Add(IN227());
  			fs.Add(IN228());
  			fs.Add(IN229());
  			fs.Add(IN230());
  			fs.Add(IN231());
  			fs.Add(IN232());
  			fs.Add(IN233());
  			fs.Add(IN234());
  			fs.Add(IN235());
  			fs.Add(IN236());
  			fs.Add(IN237());
  			fs.Add(IN238());
  			fs.Add(IN239());
  			fs.Add(IN240());
  			fs.Add(IN241());
  			fs.Add(IN242());
  			fs.Add(IN243());
  			fs.Add(IN244());
  			fs.Add(IN245());
  			fs.Add(IN246());
  			fs.Add(IN247());
  			fs.Add(IN248());
  			fs.Add(IN249());
  			fs.Add(IN250());
  			fs.Add(IN251());
  			fs.Add(IN252());
  			fs.Add(IN253());
  			fs.Add(IN254());
  			fs.Add(IN255());
  			fs.Add(IN256());
  			fs.Add(IN257());
  			fs.Add(IN258());
  			fs.Add(IN259());
  			fs.Add(IN260());
  			fs.Add(IN261());
  			fs.Add(IN262());
  			fs.Add(IN263());
  			fs.Add(IN264());
  			fs.Add(IN265());
  			fs.Add(IN266());
  			fs.Add(IN267());
  			fs.Add(IN268());
  			fs.Add(IN269());
  			fs.Add(IN270());
  			fs.Add(IN271());
  			fs.Add(IN272());
  			Fields = fs;
  		}
  		private Field IN21()
  		{
  			Field f = new Field("Insured's Employee ID");
  			List<Component> c = new List<Component>();
  			c.Add(new Component("ID Number", "IN2-1.1"));
  			c.Add(new Component("Check Digit", "IN2-1.2"));
  			c.Add(new Component("Check Digit Scheme", "IN2-1.3"));
  			c.Add(new Component("Assigning Authority", "IN2-1.4"));
  			c.Add(new Component("Identifier Type Code", "IN2-1.5"));
  			c.Add(new Component("Assigning Facility", "IN2-1.6"));
  			c.Add(new Component("Effective Date", "IN2-1.7"));
  			c.Add(new Component("Expiration Date", "IN2-1.8"));
  			c.Add(new Component("Assigning Jurisdiction", "IN2-1.9"));
  			c.Add(new Component("Assigning Agency or Department", "IN2-1.10"));
  			f.Components = c;
  			return f;
  		}
  		private Field IN22()
  		{
  			Field f = new Field("Insured's Social Security Number");
  			List<Component> c = new List<Component>();
  			c.Add(new Component("", "IN2-2.1"));
  			f.Components = c;
  			return f;
  		}
  		private Field IN23()
  		{
  			Field f = new Field("Insured's Employer's Name and ID");
  			List<Component> c = new List<Component>();
  			c.Add(new Component("ID Number", "IN2-3.1"));
  			c.Add(new Component("Family Name", "IN2-3.2"));
  			c.Add(new Component("Given Name", "IN2-3.3"));
  			c.Add(new Component("Second and Further Given Names or Initials Thereof", "IN2-3.4"));
  			c.Add(new Component("Suffix", "IN2-3.5"));
  			c.Add(new Component("Prefix", "IN2-3.6"));
  			c.Add(new Component("Degree", "IN2-3.7"));
  			c.Add(new Component("Source Table", "IN2-3.8"));
  			c.Add(new Component("Assigning Authority", "IN2-3.9"));
  			c.Add(new Component("Name Type Code", "IN2-3.10"));
  			c.Add(new Component("Identifier Check Digit", "IN2-3.11"));
  			c.Add(new Component("Check Digit Scheme", "IN2-3.12"));
  			c.Add(new Component("Identifier Type Code", "IN2-3.13"));
  			c.Add(new Component("Assigning Facility", "IN2-3.14"));
  			c.Add(new Component("Name Respresentation Code", "IN2-3.15"));
  			c.Add(new Component("Name Context", "IN2-3.16"));
  			c.Add(new Component("Name Validity Range", "IN2-3.17"));
  			c.Add(new Component("Name Assembly Order", "IN2-3.18"));
  			c.Add(new Component("Effective Date", "IN2-3.19"));
  			c.Add(new Component("Expiration Date", "IN2-3.20"));
  			c.Add(new Component("Professional Suffix", "IN2-3.21"));
  			c.Add(new Component("Assigning Jurisdiction", "IN2-3.22"));
  			c.Add(new Component("Assigning Agency or Department", "IN2-3.23"));
  			f.Components = c;
  			return f;
  		}
  		private Field IN24()
  		{
  			Field f = new Field("Employer Information Data");
  			List<Component> c = new List<Component>();
  			c.Add(new Component("", "IN2-4.1"));
  			f.Components = c;
  			return f;
  		}
  		private Field IN25()
  		{
  			Field f = new Field("Mail Claim Party");
  			List<Component> c = new List<Component>();
  			c.Add(new Component("", "IN2-5.1"));
  			f.Components = c;
  			return f;
  		}
  		private Field IN26()
  		{
  			Field f = new Field("Medicare Health Ins Card Number");
  			List<Component> c = new List<Component>();
  			c.Add(new Component("", "IN2-6.1"));
  			f.Components = c;
  			return f;
  		}
  		private Field IN27()
  		{
  			Field f = new Field("Medicaid Case Name");
  			List<Component> c = new List<Component>();
  			c.Add(new Component("Family Name", "IN2-7.1"));
  			c.Add(new Component("Given Name", "IN2-7.2"));
  			c.Add(new Component("Second and Further Given Names or Initials Thereof", "IN2-7.3"));
  			c.Add(new Component("Suffix", "IN2-7.4"));
  			c.Add(new Component("Prefix", "IN2-7.5"));
  			c.Add(new Component("Degree", "IN2-7.6"));
  			c.Add(new Component("Name Type Code", "IN2-7.7"));
  			c.Add(new Component("Name Respresentation Code", "IN2-7.8"));
  			c.Add(new Component("Name Context", "IN2-7.9"));
  			c.Add(new Component("Name Validity Range", "IN2-7.10"));
  			c.Add(new Component("Name Assembly Order", "IN2-7.11"));
  			c.Add(new Component("Effective Date", "IN2-7.12"));
  			c.Add(new Component("Expiration Date", "IN2-7.13"));
  			c.Add(new Component("Professional Suffix", "IN2-7.14"));
  			f.Components = c;
  			return f;
  		}
  		private Field IN28()
  		{
  			Field f = new Field("Medicaid Case Number");
  			List<Component> c = new List<Component>();
  			c.Add(new Component("", "IN2-8.1"));
  			f.Components = c;
  			return f;
  		}
  		private Field IN29()
  		{
  			Field f = new Field("Military Sponsor Name");
  			List<Component> c = new List<Component>();
  			c.Add(new Component("Family Name", "IN2-9.1"));
  			c.Add(new Component("Given Name", "IN2-9.2"));
  			c.Add(new Component("Second and Further Given Names or Initials Thereof", "IN2-9.3"));
  			c.Add(new Component("Suffix", "IN2-9.4"));
  			c.Add(new Component("Prefix", "IN2-9.5"));
  			c.Add(new Component("Degree", "IN2-9.6"));
  			c.Add(new Component("Name Type Code", "IN2-9.7"));
  			c.Add(new Component("Name Respresentation Code", "IN2-9.8"));
  			c.Add(new Component("Name Context", "IN2-9.9"));
  			c.Add(new Component("Name Validity Range", "IN2-9.10"));
  			c.Add(new Component("Name Assembly Order", "IN2-9.11"));
  			c.Add(new Component("Effective Date", "IN2-9.12"));
  			c.Add(new Component("Expiration Date", "IN2-9.13"));
  			c.Add(new Component("Professional Suffix", "IN2-9.14"));
  			f.Components = c;
  			return f;
  		}
  		private Field IN210()
  		{
  			Field f = new Field("Military ID Number");
  			List<Component> c = new List<Component>();
  			c.Add(new Component("", "IN2-10.1"));
  			f.Components = c;
  			return f;
  		}
  		private Field IN211()
  		{
  			Field f = new Field("Dependent Of Military Recipient");
  			List<Component> c = new List<Component>();
  			c.Add(new Component("Identifier", "IN2-11.1"));
  			c.Add(new Component("", "IN2-11.2"));
  			c.Add(new Component("Name of Coding System", "IN2-11.3"));
  			c.Add(new Component("Alternate Identifier", "IN2-11.4"));
  			c.Add(new Component("Alternate Text", "IN2-11.5"));
  			c.Add(new Component("Name of Alternate Coding System", "IN2-11.6"));
  			f.Components = c;
  			return f;
  		}
  		private Field IN212()
  		{
  			Field f = new Field("Military Organization");
  			List<Component> c = new List<Component>();
  			c.Add(new Component("", "IN2-12.1"));
  			f.Components = c;
  			return f;
  		}
  		private Field IN213()
  		{
  			Field f = new Field("Military Station");
  			List<Component> c = new List<Component>();
  			c.Add(new Component("", "IN2-13.1"));
  			f.Components = c;
  			return f;
  		}
  		private Field IN214()
  		{
  			Field f = new Field("Military Service");
  			List<Component> c = new List<Component>();
  			c.Add(new Component("", "IN2-14.1"));
  			f.Components = c;
  			return f;
  		}
  		private Field IN215()
  		{
  			Field f = new Field("Military Rank/Grade");
  			List<Component> c = new List<Component>();
  			c.Add(new Component("", "IN2-15.1"));
  			f.Components = c;
  			return f;
  		}
  		private Field IN216()
  		{
  			Field f = new Field("Military Status");
  			List<Component> c = new List<Component>();
  			c.Add(new Component("", "IN2-16.1"));
  			f.Components = c;
  			return f;
  		}
  		private Field IN217()
  		{
  			Field f = new Field("Military Retire Date");
  			List<Component> c = new List<Component>();
  			c.Add(new Component("", "IN2-17.1"));
  			f.Components = c;
  			return f;
  		}
  		private Field IN218()
  		{
  
gt: 			Field f = new Field("Military Non-Avail Cert On File");