public List <Dictionary <string, string> > GetM1Fields()
        {
            string m1Field    = "";
            string m1SubField = "";
            //TODO extract details out of             HicapsParams.ClaimData
            List <Dictionary <string, string> > listFieldsM1 = new List <Dictionary <string, string> >();

            ///   int linecount = 0;
            //  int m1FieldLen = 0;
            string[] ClaimData = ClaimDetails.ToArray();
            // Each Sub Claim Line
            for (int i = 0; i < ClaimData.Length; i++)
            {
                var fieldsM1 = new Dictionary <string, string>();
                //        6          6          8                  2            6           5            1                       6
                //data = itemNum + feeamount + dateofservice + itemOverrideCde + lspNum + equipmentId + selfDeemedCde + contribPatientAmountStr;
                //00002301000021072009        000000
                //00002301000021072009              000000
                string data                 = ClaimData[i];
                string itemNumber           = data.Substring(0, 6).Trim();   //= "12345";
                string chargeAmount         = data.Substring(6, 6).Trim();;  //= "0000060";
                string dateofservice        = data.Substring(12, 8).Trim();; //= "01072009";
                string itemOverrideCode     = data.Substring(20, 2).Trim();  //= "AP"; //"AP"
                string lspn                 = data.Substring(22, 6).Trim();  //= "123456"; //123456
                string equipmentId          = data.Substring(28, 5).Trim();  //= "12345"; //12345
                string selfDeemedCde        = data.Substring(33, 2).Trim();  //= "Y";  //Y
                string contribPatientAmount = data.Substring(35, 6).Trim();  //= "000000"; // "0000000";
                string spcid                = data.Substring(41, 4).Trim();  // = "    "

                // D1 = Charge Amount
                if (!string.IsNullOrEmpty(chargeAmount) && chargeAmount != "000000")
                {
                    // can only be size 7
                    int    amount   = Convert.ToInt32(chargeAmount);
                    string hexField = amount.ToString("X").PadLeft(6, '0');
                    fieldsM1.Add("D1", hexField);
                }
                // D9 = Date of Service
                if (!string.IsNullOrEmpty(dateofservice))
                {
                    // can only be size 8
                    fieldsM1.Add("D9", dateofservice);
                }
                // D2 = ItemNumber AlphsNumeric
                if (!string.IsNullOrEmpty(itemNumber))
                {
                    // Can only be size 6
                    fieldsM1.Add("D2", itemNumber);
                }
                // D3 = Item OVerride Code ?
                if (!string.IsNullOrEmpty(itemOverrideCode))
                {
                    // itemOverrideCode can only be 2.
                    fieldsM1.Add("D3", itemOverrideCode);
                }
                // D4 = Patient Contributon amount
                if (!string.IsNullOrEmpty(contribPatientAmount) && contribPatientAmount != "000000")
                {
                    // Can only be most size 7, 9999999
                    int    contribAmount = Convert.ToInt32(contribPatientAmount);
                    string hexField2     = contribAmount.ToString("X").PadLeft(6, '0');
                    fieldsM1.Add("D4", hexField2);
                }

                // D8 = LSPN
                if (!string.IsNullOrEmpty(lspn))
                {
                    // can only be len 6
                    lspn = lspn.PadLeft(6, '0');
                    fieldsM1.Add("D8", lspn);
                }

                // DA selfDeemedCde Id
                if (!string.IsNullOrEmpty(selfDeemedCde))
                {
                    // can only be len 2
                    fieldsM1.Add("DA", selfDeemedCde);
                }

                // DB Equipment Id
                if (!string.IsNullOrEmpty(equipmentId))
                {
                    // Can only be len 5
                    fieldsM1.Add("DB", equipmentId);
                }
                // DC spcid
                if (!string.IsNullOrEmpty(spcid))
                {
                    // Can only be len 4
                    fieldsM1.Add("DC", spcid);
                }

                listFieldsM1.Add(fieldsM1);
                // End of repeat line
            }
            return(listFieldsM1);
        }