Example #1
0
        public static string RunOne(bool showForms)
        {
            string  retVal  = "";
            long    provNum = ProviderC.ListShort[0].ProvNum;       //dentist #1
            Patient pat     = Patients.GetPat(PatientTC.PatNum1);   //patient#1

            if (pat.PriProv != provNum)
            {
                Patient oldPat = pat.Copy();
                pat.PriProv = provNum;              //this script uses the primary provider for the patient
                Patients.Update(pat, oldPat);
            }
            PatPlan patplan = PatPlans.GetPatPlan(pat.PatNum, 1);
            InsSub  sub     = InsSubs.GetOne(patplan.InsSubNum);
            InsPlan plan    = InsPlans.GetPlan(sub.PlanNum, new List <InsPlan>());
            //the UI would block this due to carrier not supporting this transaction type.
            Clearinghouse    clearinghouseHq   = Clearinghouses.GetDefaultDental();
            Clearinghouse    clearinghouseClin = Clearinghouses.OverrideFields(clearinghouseHq, Clinics.ClinicNum);
            long             etransNum         = CanadianOutput.SendElegibility(clearinghouseClin, pat.PatNum, plan, new DateTime(1999, 1, 1), patplan.Relationship, patplan.PatID, showForms, sub);
            Etrans           etrans            = Etranss.GetEtrans(etransNum);
            string           message           = EtransMessageTexts.GetMessageText(etrans.EtransMessageTextNum);
            CCDFieldInputter formData          = new CCDFieldInputter(message);
            string           responseStatus    = formData.GetValue("G05");

            if (responseStatus != "R")
            {
                throw new Exception("Should be R");
            }
            retVal += "Eligibility #1 successful.\r\n";
            return(retVal);
        }
Example #2
0
 private void FormEtrans277Edit_Load(object sender, EventArgs e)
 {
     MessageText = EtransMessageTexts.GetMessageText(EtransCur.EtransMessageTextNum);
     x277        = new X277(MessageText);
     FillHeader();
     FillGrid();
 }
Example #3
0
        public static string RunFour(bool showForms)
        {
            string  retVal  = "";
            long    provNum = ProviderC.ListShort[1].ProvNum;       //dentist #2
            Patient pat     = Patients.GetPat(PatientTC.PatNum6);   //patient#6

            if (pat.PriProv != provNum)
            {
                Patient oldPat = pat.Copy();
                pat.PriProv = provNum;              //this script uses the primary provider for the patient
                Patients.Update(pat, oldPat);
            }
            PatPlan          patplan        = PatPlans.GetPatPlan(pat.PatNum, 1);
            InsSub           sub            = InsSubs.GetOne(patplan.InsSubNum);
            InsPlan          plan           = InsPlans.GetPlan(sub.PlanNum, new List <InsPlan>());
            long             etransNum      = CanadianOutput.SendElegibility(pat.PatNum, plan, new DateTime(1999, 1, 1), patplan.Relationship, patplan.PatID, showForms, sub);
            Etrans           etrans         = Etranss.GetEtrans(etransNum);
            string           message        = EtransMessageTexts.GetMessageText(etrans.EtransMessageTextNum);
            CCDFieldInputter formData       = new CCDFieldInputter(message);
            string           responseStatus = formData.GetValue("G05");

            if (responseStatus != "M")
            {
                throw new Exception("Should be M");
            }
            retVal += "Eligibility #4 successful.\r\n";
            return(retVal);
        }
Example #4
0
        private void FormEtrans270Edit_Load(object sender, EventArgs e)
        {
            MessageText    = EtransMessageTexts.GetMessageText(EtransCur.EtransMessageTextNum);
            MessageTextAck = "";
            //textMessageText.Text=MessageText;
            textNote.Text = EtransCur.Note;
            EtransAck271  = Etranss.GetEtrans(EtransCur.AckEtransNum);
            x271          = null;
            if (EtransAck271 != null)
            {
                MessageTextAck = EtransMessageTexts.GetMessageText(EtransAck271.EtransMessageTextNum);              //.Replace("~","~\r\n");
                if (EtransAck271.Etype == EtransType.BenefitResponse271)
                {
                    x271 = new X271(MessageTextAck);
                }
            }
            listDTP = new List <DTP271>();
            if (x271 != null)
            {
                listDTP = x271.GetListDtpSubscriber();
            }
            radioBenefitSendsPat.Checked = (!_isConinsuranceInverted);
            radioBenefitSendsIns.Checked = (_isConinsuranceInverted);
            FillGridDates();
            CreateListOfBenefits();
            FillGrid();
            FillGridBen();
            if (IsInitialResponse)
            {
                SelectForImport();
            }
            long patNum = (EtransCur.PatNum == 0?_subPatNum:EtransCur.PatNum);        //Older 270/217s were always for the subscriber and have etrans.PatNum of 0.

            this.Text += ": " + Patients.GetNameLF(patNum);
        }
Example #5
0
 private void FormEtrans270Edit_Load(object sender, EventArgs e)
 {
     MessageText    = EtransMessageTexts.GetMessageText(EtransCur.EtransMessageTextNum);
     MessageTextAck = "";
     //textMessageText.Text=MessageText;
     textNote.Text = EtransCur.Note;
     EtransAck271  = Etranss.GetEtrans(EtransCur.AckEtransNum);
     x271          = null;
     if (EtransAck271 != null)
     {
         MessageTextAck = EtransMessageTexts.GetMessageText(EtransAck271.EtransMessageTextNum);              //.Replace("~","~\r\n");
         if (EtransAck271.Etype == EtransType.BenefitResponse271)
         {
             x271 = new X271(MessageTextAck);
         }
     }
     listDTP = new List <DTP271>();
     if (x271 != null)
     {
         listDTP = x271.GetListDtpSubscriber();
     }
     FillGridDates();
     CreateListOfBenefits();
     FillGrid();
     FillGridBen();
     if (IsInitialResponse)
     {
         SelectForImport();
     }
 }
 private void FormEtrans277Edit_Load(object sender, EventArgs e)
 {
     MessageText = EtransMessageTexts.GetMessageText(EtransCur.EtransMessageTextNum);
     try {
         x277 = new X277(MessageText);
     }
     catch (Exception ex) {
         MessageBox.Show(Lan.g(this, "Claim Status Response not valid.  An error occurred while loading: ") + "\r\n" + ex.Message);
         DialogResult = DialogResult.Cancel;
         return;
     }
     FillHeader();
     FillGrid();
 }
Example #7
0
 private void FormEtransEdit_Load(object sender, EventArgs e)
 {
     MessageText            = EtransMessageTexts.GetMessageText(EtransCur.EtransMessageTextNum);
     textMessageText.Text   = MessageText;
     textDateTimeTrans.Text = EtransCur.DateTimeTrans.ToString();
     textClaimNum.Text      = EtransCur.ClaimNum.ToString();
     textBatchNumber.Text   = EtransCur.BatchNumber.ToString();
     textTransSetNum.Text   = EtransCur.TransSetNum.ToString();
     textAckCode.Text       = EtransCur.AckCode;
     textNote.Text          = EtransCur.Note;
     if (EtransCur.Etype == EtransType.ClaimSent)
     {
         if (X12object.IsX12(MessageText))
         {
             X12object x12obj = new X12object(MessageText);
             if (x12obj.IsFormat4010())
             {
                 X837_4010 x837 = new X837_4010(MessageText);
                 checkAttachments.Checked = x837.AttachmentsWereSent(EtransCur.ClaimNum);                      //This function does not currently work, so the corresponding checkbox is hidden on the form as well.
             }
             else if (x12obj.IsFormat5010())
             {
                 X837_5010 x837 = new X837_5010(MessageText);
                 checkAttachments.Checked = x837.AttachmentsWereSent(EtransCur.ClaimNum);                      //This function does not currently work, so the corresponding checkbox is hidden on the form as well.
             }
         }
     }
     if (EtransCur.AckEtransNum > 0)
     {
         AckCur = Etranss.GetEtrans(EtransCur.AckEtransNum);
         if (AckCur != null)
         {
             textAckMessage.Text  = EtransMessageTexts.GetMessageText(AckCur.EtransMessageTextNum);
             textAckDateTime.Text = AckCur.DateTimeTrans.ToString();
             textAckNote.Text     = AckCur.Note;
         }
     }
     else
     {
         AckCur           = null;
         groupAck.Visible = false;
     }
     if (!CultureInfo.CurrentCulture.Name.EndsWith("CA"))             //Not Canadian.
     {
         butPrintAck.Visible = false;
     }
 }
        private void FormEtrans270Edit_Load(object sender, EventArgs e)
        {
            MessageText    = EtransMessageTexts.GetMessageText(EtransCur.EtransMessageTextNum);
            MessageTextAck = "";
            //textMessageText.Text=MessageText;
            textNote.Text = EtransCur.Note;
            EtransAck271  = Etranss.GetEtrans(EtransCur.AckEtransNum);
            x271          = null;
            if (EtransAck271 != null)
            {
                MessageTextAck = EtransMessageTexts.GetMessageText(EtransAck271.EtransMessageTextNum);              //.Replace("~","~\r\n");
                if (EtransAck271.Etype == EtransType.BenefitResponse271)
                {
                    x271 = new X271(MessageTextAck);
                }
            }
            listDTP = new List <DTP271>();
            if (x271 != null)
            {
                listDTP = x271.GetListDtpSubscriber();
                textResponseGroupNum.Text = x271.GetGroupNum();
            }
            if (textCurrentGroupNum.Text != textResponseGroupNum.Text)
            {
                errorProviderGroupNum.SetError(textCurrentGroupNum, Lan.g(this, "Mismatched group number."));
            }
            radioBenefitSendsPat.Checked = (!_isConinsuranceInverted);
            radioBenefitSendsIns.Checked = (_isConinsuranceInverted);
            FillGridDates();
            CreateListOfBenefits();
            FillGrid();
            FillGridBen();
            if (IsInitialResponse)
            {
                SelectForImport();
            }
            long patNum = (EtransCur.PatNum == 0?_subPatNum:EtransCur.PatNum);        //Older 270/217s were always for the subscriber and have etrans.PatNum of 0.

            this.Text += ": " + Patients.GetNameLF(patNum);
            if (Clearinghouses.GetFirstOrDefault(x => x.ClearinghouseNum == EtransCur.ClearingHouseNum)?.CommBridge == EclaimsCommBridge.EDS &&
                EtransAck271 != null && EtransAck271.AckEtransNum != 0)
            {
                _htmlResponse    = EtransMessageTexts.GetMessageText(Etranss.GetEtrans(EtransAck271.AckEtransNum).EtransMessageTextNum);
                butPrint.Visible = true;
            }
        }
Example #9
0
        public static string Run(int scriptNum, string responseExpected, Claim claim)
        {
            string           retVal         = "";
            InsPlan          insPlan        = InsPlans.GetPlan(claim.PlanNum, null);
            InsSub           insSub         = InsSubs.GetOne(claim.InsSubNum);
            long             etransNum      = CanadianOutput.SendClaimReversal(claim, insPlan, insSub);
            Etrans           etrans         = Etranss.GetEtrans(etransNum);
            string           message        = EtransMessageTexts.GetMessageText(etrans.EtransMessageTextNum);
            CCDFieldInputter formData       = new CCDFieldInputter(message);
            string           responseStatus = formData.GetValue("G05");

            if (responseStatus != responseExpected)
            {
                return("G05 should be " + responseExpected + "\r\n");
            }
            retVal += "Reversal #" + scriptNum.ToString() + " successful.\r\n";
            return(retVal);
        }
Example #10
0
        public static string Run(int scriptNum, string responseExpected, string responseTypeExpected, Claim claim, bool showForms, int pageNumber, int lastPageNumber, double firstExamFee, double diagnosticPhaseFee)
        {
            string             retVal            = "";
            ClaimSendQueueItem queueItem         = Claims.GetQueueList(claim.ClaimNum, claim.ClinicNum, 0)[0];
            Clearinghouse      clearinghouseHq   = ClearinghouseL.GetClearinghouseHq(queueItem.ClearinghouseNum);
            Clearinghouse      clearinghouseClin = Clearinghouses.OverrideFields(clearinghouseHq, Clinics.ClinicNum);

            Eclaims.GetMissingData(clearinghouseClin, queueItem);           //,out warnings);
            if (queueItem.MissingData != "")
            {
                return("Cannot send predetermination until missing data is fixed:\r\n" + queueItem.MissingData + "\r\n");
            }
#if DEBUG
            Canadian.testNumber = scriptNum;
            claim.PreAuthString = "" + pageNumber + "," + lastPageNumber + "," + firstExamFee + "," + diagnosticPhaseFee;
#endif
            long             etransNum    = Canadian.SendClaim(clearinghouseClin, queueItem, showForms);
            Etrans           etrans       = Etranss.GetEtrans(etransNum);
            string           message      = EtransMessageTexts.GetMessageText(etrans.EtransMessageTextNum);
            CCDFieldInputter formData     = new CCDFieldInputter(message);
            string           responseType = formData.GetValue("A04");
            if (responseType != responseTypeExpected)
            {
                return("Form type is '" + responseType + "' but should be '" + responseTypeExpected + "'\r\n");
            }
            string responseStatus = formData.GetValue("G05");
            if (responseStatus != responseExpected)
            {
                return("G05 is '" + responseStatus + "' but should be '" + responseExpected + "'\r\n");
            }
            if (responseExpected == "R" && responseTypeExpected == "11")
            {
                //so far, only for #6.  We need some other way to test if successful transaction
                string errorMsgCount = formData.GetValue("G06");
                if (errorMsgCount == "00")
                {
                    return("Wrong message count.\r\n");
                }
            }
            retVal += "Predetermination #" + scriptNum + " page " + pageNumber + " of " + lastPageNumber + " successful.\r\n";
            return(retVal);
        }
Example #11
0
        public static string Run(int scriptNum, string responseExpected, string responseTypeExpected, Claim claim, bool showForms)
        {
            string             retVal            = "";
            ClaimSendQueueItem queueItem         = Claims.GetQueueList(claim.ClaimNum, claim.ClinicNum, 0)[0];
            Clearinghouse      clearinghouseHq   = ClearinghouseL.GetClearinghouseHq(queueItem.ClearinghouseNum);
            Clearinghouse      clearinghouseClin = Clearinghouses.OverrideFields(clearinghouseHq, Clinics.ClinicNum);

            Eclaims.GetMissingData(clearinghouseClin, queueItem);           //,out warnings);
            if (queueItem.MissingData != "")
            {
                return("Cannot send claim until missing data is fixed:\r\n" + queueItem.MissingData + "\r\n");
            }
#if DEBUG
            Canadian.testNumber = scriptNum;
#endif
            long             etransNum    = Canadian.SendClaim(clearinghouseClin, queueItem, showForms);
            Etrans           etrans       = Etranss.GetEtrans(etransNum);
            string           message      = EtransMessageTexts.GetMessageText(etrans.EtransMessageTextNum);
            CCDFieldInputter formData     = new CCDFieldInputter(message);
            string           responseType = formData.GetValue("A04");
            if (responseType != responseTypeExpected)
            {
                return("Form type should be " + responseTypeExpected + "\r\n");
            }
            string responseStatus = formData.GetValue("G05");
            if (responseStatus != responseExpected)
            {
                return("G05 should be " + responseExpected + "\r\n");
            }
            if (responseExpected == "R" && responseTypeExpected == "11")
            {
                //so far, only for #6.  We need some other way to test if successful transaction
                string errorMsgCount = formData.GetValue("G06");
                if (errorMsgCount == "00")
                {
                    return("Wrong message count.\r\n");
                }
            }
            retVal += "Claim #" + scriptNum.ToString() + " successful.\r\n";
            return(retVal);
        }
Example #12
0
        public static string Run(int scriptNum, string responseExpected, Claim claim)
        {
            string        retVal          = "";
            InsPlan       insPlan         = InsPlans.GetPlan(claim.PlanNum, null);
            InsSub        insSub          = InsSubs.GetOne(claim.InsSubNum);
            Carrier       carrier         = Carriers.GetCarrier(insPlan.CarrierNum);
            Clearinghouse clearinghouseHq =
                Clearinghouses.GetClearinghouse(Clearinghouses.AutomateClearinghouseHqSelection(carrier.ElectID, claim.MedType));
            Clearinghouse    clearinghouseClin = Clearinghouses.OverrideFields(clearinghouseHq, Clinics.ClinicNum);
            long             etransNum         = CanadianOutput.SendClaimReversal(clearinghouseClin, claim, insPlan, insSub);
            Etrans           etrans            = Etranss.GetEtrans(etransNum);
            string           message           = EtransMessageTexts.GetMessageText(etrans.EtransMessageTextNum);
            CCDFieldInputter formData          = new CCDFieldInputter(message);
            string           responseStatus    = formData.GetValue("G05");

            if (responseStatus != responseExpected)
            {
                return("G05 should be " + responseExpected + "\r\n");
            }
            retVal += "Reversal #" + scriptNum.ToString() + " successful.\r\n";
            return(retVal);
        }
Example #13
0
 private void FormEtransEdit_Load(object sender, EventArgs e)
 {
     MessageText            = EtransMessageTexts.GetMessageText(EtransCur.EtransMessageTextNum);
     textMessageText.Text   = MessageText;
     textDateTimeTrans.Text = EtransCur.DateTimeTrans.ToString();
     textClaimNum.Text      = EtransCur.ClaimNum.ToString();
     textBatchNumber.Text   = EtransCur.BatchNumber.ToString();
     textTransSetNum.Text   = EtransCur.TransSetNum.ToString();
     textAckCode.Text       = EtransCur.AckCode;
     textNote.Text          = EtransCur.Note;
     if (EtransCur.Etype == EtransType.ClaimSent)
     {
         if (X12object.IsX12(MessageText))
         {
             //TODO: we need to do something different here for 5010s.
             X837_4010 x837 = new X837_4010(MessageText);
             checkAttachments.Checked = x837.AttachmentsWereSent(EtransCur.ClaimNum);
         }
     }
     if (EtransCur.AckEtransNum > 0)
     {
         AckCur = Etranss.GetEtrans(EtransCur.AckEtransNum);
         if (AckCur != null)
         {
             textAckMessage.Text  = EtransMessageTexts.GetMessageText(AckCur.EtransMessageTextNum);
             textAckDateTime.Text = AckCur.DateTimeTrans.ToString();
         }
         groupAck.Text = Lan.g(this, "Acknowledgement");
     }
     else
     {
         AckCur           = null;
         groupAck.Visible = false;
     }
     if (!CultureInfo.CurrentCulture.Name.EndsWith("CA"))             //Not Canadian.
     {
         butPrintAck.Visible = false;
     }
 }
Example #14
0
 private void FormEtrans835Edit_Load(object sender, EventArgs e)
 {
     MessageText = EtransMessageTexts.GetMessageText(EtransCur.EtransMessageTextNum);
     x835        = new X835(MessageText);
     FillAll();
 }