///<summary>The MIA segment is for Medicare inpatient adjudication information.</summary> private List<Hx835_Info> ProcessMIA(int segNum) { X12Segment segMIA=_listSegments[segNum]; List<Hx835_Info> listAdjudicationInfo=new List<Hx835_Info>(); for(int i=1;i<=24;i++) { if(segMIA.Get(i)=="") { continue; } Hx835_Info info=new Hx835_Info(); info.FieldValueRaw=segMIA.Get(i); info.IsRemarkCode=false; if(i==1) { info.FieldName="Covered Days or Visits Count"; info.FieldValue=segMIA.Get(1); } else if(i==2) { info.FieldName="PPS Operating Outlier Amount"; info.FieldValue=PIn.Decimal(segMIA.Get(2)).ToString("f2"); } else if(i==3) { info.FieldName="Lifetime Psychiatric Days Count"; info.FieldValue=segMIA.Get(3); } else if(i==4) { info.FieldName="Claim Diagnosis Related Group Amount"; info.FieldValue=PIn.Decimal(segMIA.Get(4)).ToString("f2"); } else if(i==5) { info.FieldName="Claim Payment Remark"; info.FieldValue=GetDescriptFrom411(segMIA.Get(5)); info.IsRemarkCode=true; } else if(i==6) { info.FieldName="Disproportionate Share Amount"; info.FieldValue=PIn.Decimal(segMIA.Get(6)).ToString("f2"); } else if(i==7) { info.FieldName="Medicare Secondary Payer (MSP) Pass-Through Amount"; info.FieldValue=PIn.Decimal(segMIA.Get(7)).ToString("f2"); } else if(i==8) { info.FieldName="Prospective Payment System (PPS) Capital Amount"; info.FieldValue=PIn.Decimal(segMIA.Get(8)).ToString("f2"); } else if(i==9) { info.FieldName="Prospectice Payment System (PPS) Capital, Federal Specific Portion, Diagnosis Related Group (DRG) Amount"; info.FieldValue=PIn.Decimal(segMIA.Get(9)).ToString("f2"); } else if(i==10) { info.FieldName="Prospective Payment System (PPS) Capital, Hospital Specific Portion, Diagnosis Related Group (DRG) Amount"; info.FieldValue=PIn.Decimal(segMIA.Get(10)).ToString("f2"); } else if(i==11) { info.FieldName="Prospective Payment System (PPS) Capital, Disproportionate Share, Hospital Diagnosis Related Group (DRG) Amount"; info.FieldValue=PIn.Decimal(segMIA.Get(11)).ToString("f2"); } else if(i==12) { info.FieldName="Old Capital Amount"; info.FieldValue=PIn.Decimal(segMIA.Get(12)).ToString("f2"); } else if(i==13) { info.FieldName="Prospective Payment System (PPS) Capital Indirect Medical Education Claim Amount"; info.FieldValue=PIn.Decimal(segMIA.Get(13)).ToString("f2"); } else if(i==14) { info.FieldName="Hospital Specific Diagnosis Related Group (DRG) Amount"; info.FieldValue=PIn.Decimal(segMIA.Get(14)).ToString("f2"); } else if(i==15) { info.FieldName="Cost Report Day Count"; info.FieldValue=segMIA.Get(15); } else if(i==16) { info.FieldName="Federal Specific Diagnosis Related Group (DRG) Amount"; info.FieldValue=PIn.Decimal(segMIA.Get(16)).ToString("f2"); } else if(i==17) { info.FieldName="Prospective Payment System (PPS) Capital Outlier Amount"; info.FieldValue=PIn.Decimal(segMIA.Get(17)).ToString("f2"); } else if(i==18) { info.FieldName="Indirect Teaching Amount"; info.FieldValue=PIn.Decimal(segMIA.Get(18)).ToString("f2"); } else if(i==19) { info.FieldName="Professional Component Amount Billed But Not Payable"; info.FieldValue=PIn.Decimal(segMIA.Get(19)).ToString("f2"); } else if(i==20) { info.FieldName="Claim Payment Remark"; info.FieldValue=GetDescriptFrom411(segMIA.Get(20)); info.IsRemarkCode=true; } else if(i==21) { info.FieldName="Claim Payment Remark"; info.FieldValue=GetDescriptFrom411(segMIA.Get(21)); info.IsRemarkCode=true; } else if(i==22) { info.FieldName="Claim Payment Remark"; info.FieldValue=GetDescriptFrom411(segMIA.Get(22)); info.IsRemarkCode=true; } else if(i==23) { info.FieldName="Claim Payment Remark"; info.FieldValue=GetDescriptFrom411(segMIA.Get(23)); info.IsRemarkCode=true; } else if(i==24) { info.FieldName="Prospective Payment System (PPS) Capital Exception Amount"; info.FieldValue=PIn.Decimal(segMIA.Get(24)).ToString("f2"); } listAdjudicationInfo.Add(info); } return listAdjudicationInfo; }
///<summary>The MOA segment is for Medicare outpatient adjudication information.</summary> private List<Hx835_Info> ProcessMOA(int segNum) { X12Segment segMOA=_listSegments[segNum]; List<Hx835_Info> listAdjudicationInfo=new List<Hx835_Info>(); for(int i=1;i<=9;i++) { if(segMOA.Get(i)=="") { continue; } Hx835_Info info=new Hx835_Info(); info.FieldValueRaw=segMOA.Get(i); info.IsRemarkCode=false; if(i==1) { info.FieldName="Reimbursement Rate"; info.FieldValue=((PIn.Decimal(segMOA.Get(1))*100).ToString()+"%"); } else if(i==2) { info.FieldName="Claim Health Care Financing Administration Common Procedural Coding System (HCPCS) Payable Amount"; info.FieldValue=PIn.Decimal(segMOA.Get(2)).ToString("f2"); } else if(i==3) { info.FieldName="Claim Payment Remark"; info.FieldValue=GetDescriptFrom411(segMOA.Get(3)); info.IsRemarkCode=true; } else if(i==4) { info.FieldName="Claim Payment Remark"; info.FieldValue=GetDescriptFrom411(segMOA.Get(4)); info.IsRemarkCode=true; } else if(i==5) { info.FieldName="Claim Payment Remark"; info.FieldValue=GetDescriptFrom411(segMOA.Get(5)); info.IsRemarkCode=true; } else if(i==6) { info.FieldName="Claim Payment Remark"; info.FieldValue=GetDescriptFrom411(segMOA.Get(6)); info.IsRemarkCode=true; } else if(i==7) { info.FieldName="Claim Payment Remark"; info.FieldValue=GetDescriptFrom411(segMOA.Get(7)); info.IsRemarkCode=true; } else if(i==8) { info.FieldName="End Stage Renal Disease (ESRD) Payment Amount"; info.FieldValue=PIn.Decimal(segMOA.Get(8)).ToString("f2"); } else if(i==9) { info.FieldName="Professional Component Amount Billed But Not Payable"; info.FieldValue=PIn.Decimal(segMOA.Get(9)).ToString("f2"); } listAdjudicationInfo.Add(info); } return listAdjudicationInfo; }
///<summary>AMT segments are found both at the claim and procedure levels.</summary> private Hx835_Info ProcessAMT(int segNum) { X12Segment segAMT=_listSegments[segNum]; Hx835_Info info=new Hx835_Info(); info.FieldName=GetDescriptForAmountQualifierCode(segAMT.Get(1)); info.FieldValue=PIn.Decimal(segAMT.Get(2)).ToString("f2"); return info; }