Пример #1
0
 ///<summary>Supply the transaction header(ST) when creating this object.</summary>
 public X12Transaction(X12Segment header)
 {
 }
Пример #2
0
 ///<summary>Supply the functional group header(GS) when creating this object.</summary>
 public X12FunctionalGroup(X12Segment header)
 {
     Header = header.Copy();
 }
Пример #3
0
        private static string SegmentToString(X12Segment segment)
        {
            string retVal = "";
            string rn     = "\r\n";

            //HL
            if (segment.SegmentID == "HL")
            {
                retVal += rn;              //insert a blank line before each loop
                switch (segment.Get(3))
                {
                case "20":
                    retVal += "Information Source:";
                    break;

                case "21":
                    retVal += "Information Receiver:";
                    break;

                case "19":
                    retVal += "Service Provider:";
                    break;

                case "22":
                    retVal += "Subscriber:";
                    break;

                case "23":
                    retVal += "Dependent:";
                    break;
                }
                retVal += rn;
            }
            //NM1
            else if (segment.SegmentID == "NM1")
            {
                switch (segment.Get(1))                //payer ID code
                {
                case "PR":
                    retVal = "Payer: ";
                    break;

                case "41":
                    retVal = "Submitter: ";
                    break;

                case "1P":
                    retVal = "Provider: ";
                    break;

                case "IL":
                    retVal = "Insured or Subscriber: ";
                    break;

                case "QC":
                    retVal = "Patient: ";
                    break;

                case "85":
                    retVal = "Billing Provider: ";
                    break;
                }
                retVal += segment.Get(3) + ", "                //LName
                          + segment.Get(4) + " "               //Fname
                          + segment.Get(5) + " "               //MiddleName
                          + segment.Get(7) + ", "              //Suffix
                          + "ID code: " + segment.Get(9) + rn; //ID code
            }
            //PER
            else if (segment.SegmentID == "PER")
            {
                retVal = "Information Contact: "
                         + segment.Get(2) + " "            //Name
                         + GetPERqualifier(segment.Get(3)) + " "
                         + segment.Get(4) + " "
                         + GetPERqualifier(segment.Get(5)) + " "
                         + segment.Get(6) + " "
                         + GetPERqualifier(segment.Get(7)) + " "
                         + segment.Get(8) + rn;
            }
            //TRN
            else if (segment.SegmentID == "TRN")
            {
                retVal = "Trace Number: "
                         + segment.Get(2) + rn;
            }
            //STC-Status information
            else if (segment.SegmentID == "STC")
            {
                retVal = "ClaimStatus :"
                                                                 //+segment.Get(1,1)+" "//Industry R code
                         + "LOINC:" + segment.Get(1, 2) + ", "   //LOINC code
                         + "DATE: " + ConvertDate(segment.Get(2)) + " "
                         + ConvertCurrency(segment.Get(4)) + " " //monetary amount
                         + segment.Get(10, 2) + " "              //LOINC code 2
                         + segment.Get(11, 2) + rn;              //LOINC code 3
            }
            //REF
            else if (segment.SegmentID == "REF")
            {
                switch (segment.Get(1))
                {
                case "EJ":
                    retVal = "Patient Account Number: ";
                    break;

                case "BLT":
                    retVal = "Billing Type: ";
                    break;

                case "EA":
                    retVal = "Medical Record ID Number: ";
                    break;

                case "D9":
                    retVal = "Claim Number: ";
                    break;

                case "FJ":
                    retVal = "Line Item Control Number: ";
                    break;

                case "87":
                    //functional category irrelevant
                    return("");

                case "9F":
                    retVal = "Referral Number: ";
                    break;

                case "6R":
                    retVal = "Provider Control Number: ";
                    break;

                case "G5":
                    retVal = "Provider Site Number: ";
                    break;

                case "1B":
                    retVal = "Blue Shield Provider Number: ";
                    break;
                }
                retVal += segment.Get(2) + rn;
            }
            //DTP(x2)-Date or Time period
            else if (segment.SegmentID == "DTP")
            {
                switch (segment.Get(1))
                {
                case "434":
                    retVal = "Statement date: ";
                    break;

                case "106":
                    retVal = "Required by: ";
                    break;

                case "472":
                    retVal = "Service date: ";
                    break;
                }
                if (segment.Get(2) == "D8")              //Date eight char
                {
                    retVal += ConvertDate(segment.Get(3)) + rn;
                }
                else if (segment.Get(2) == "RD8")              //Range Date eight char
                {
                    retVal += ConvertDateRange(segment.Get(3)) + rn;
                }
            }
            //PWK-not very useful here
            //N1
            else if (segment.SegmentID == "N1")
            {
                switch (segment.Get(1))                //
                {
                case "PR":
                    retVal = "Payer: ";
                    break;
                }
                retVal += segment.Get(2) + rn;
            }
            //N3
            else if (segment.SegmentID == "N3")
            {
                retVal = segment.Get(1) + " "            //address
                         + segment.Get(2) + rn;          //address2
            }
            //N4-CityStateZip
            else if (segment.SegmentID == "N4")
            {
                retVal = segment.Get(1) + ", "           //City
                         + segment.Get(2) + "  "         //State
                         + segment.Get(3) + " ";         //Zip
                if (segment.Get(5) == "B1")              //branch
                {
                    retVal += "Branch " + segment.Get(6);
                }
                else if (segment.Get(5) == "DP")              //department
                {
                    retVal += "Department " + segment.Get(6);
                }
                retVal += rn;
            }
            //SVC-Service Line Information
            else if (segment.SegmentID == "SVC")
            {
                retVal = segment.Get(1, 2) + " "                 //procedure code
                         + ConvertCurrency(segment.Get(2)) + " " //amount
                         + segment.Get(4) + rn;                  //national Uniform Billing Code??? on institutional claims.
            }
            //SBR-subscriber on 837
            //DMG-birthdate,gender on 837
            //CLM-claim on 837
            //DN2-tooth status on 837
            //LX-line counter not needed
            //SV3-Dental service on 837
            //TOO-Tooth info on 837
            return(retVal);
        }