public static void Insert(ClaimCondCodeLog claimCondCodeLog) { if(RemotingClient.RemotingRole==RemotingRole.ClientWeb) { Meth.GetVoid(MethodBase.GetCurrentMethod(),claimCondCodeLog); return; } Crud.ClaimCondCodeLogCrud.Insert(claimCondCodeLog); }
public static long Insert(ClaimCondCodeLog claimCondCodeLog) { if (RemotingClient.RemotingRole == RemotingRole.ClientWeb) { claimCondCodeLog.ClaimCondCodeLogNum = Meth.GetLong(MethodBase.GetCurrentMethod(), claimCondCodeLog); return(claimCondCodeLog.ClaimCondCodeLogNum); } return(Crud.ClaimCondCodeLogCrud.Insert(claimCondCodeLog)); }
///<summary>Updates this claim to the database.</summary> private void UpdateClaim(){ if(notAuthorized){ return; } //patnum ClaimCur.DateService=PIn.Date(textDateService.Text); if(textDateSent.Text==""){ ClaimCur.DateSent=DateTime.MinValue; } else{ ClaimCur.DateSent=PIn.Date(textDateSent.Text); } bool wasSentOrReceived=false; switch(comboClaimStatus.SelectedIndex){ case 0: ClaimCur.ClaimStatus="U"; break; case 1: ClaimCur.ClaimStatus="H"; break; case 2: ClaimCur.ClaimStatus="W"; break; case 3: ClaimCur.ClaimStatus="P"; break; case 4: ClaimCur.ClaimStatus="S"; wasSentOrReceived=true; break; case 5: ClaimCur.ClaimStatus="R"; wasSentOrReceived=true; break; } //claimType can't be changed here. ClaimCur.MedType=(EnumClaimMedType)comboMedType.SelectedIndex; if(comboClaimForm.SelectedIndex==0){ ClaimCur.ClaimForm=0; } else{ ClaimCur.ClaimForm=ClaimForms.ListShort[comboClaimForm.SelectedIndex-1].ClaimFormNum; } if(textDateRec.Text==""){ ClaimCur.DateReceived=DateTime.MinValue; } else{ ClaimCur.DateReceived=PIn.Date(textDateRec.Text); } //planNum ClaimCur.SpecialProgramCode=(EnumClaimSpecialProgram)comboSpecialProgram.SelectedIndex; ClaimCur.CustomTracking=0; if(comboCustomTracking.Visible && comboCustomTracking.SelectedIndex!=0) { ClaimCur.CustomTracking=DefC.Long[(int)DefCat.ClaimCustomTracking][comboCustomTracking.SelectedIndex-1].DefNum; } //patRelats will always be selected ClaimCur.PatRelat=(Relat)comboPatRelat.SelectedIndex; ClaimCur.PatRelat2=(Relat)comboPatRelat2.SelectedIndex; if(comboProvTreat.SelectedIndex!=-1){ ClaimCur.ProvTreat=ProviderC.ListShort[comboProvTreat.SelectedIndex].ProvNum; } ClaimCur.PriorAuthorizationNumber=textPriorAuth.Text; ClaimCur.PreAuthString=textPredeterm.Text; //isprosthesis handled earlier ClaimCur.PriorDate=PIn.Date(textPriorDate.Text); ClaimCur.ReasonUnderPaid=textReasonUnder.Text; ClaimCur.ClaimNote=textNote.Text; //ispreauth if(comboProvBill.SelectedIndex!=-1){ ClaimCur.ProvBill=ProviderC.ListShort[comboProvBill.SelectedIndex].ProvNum; } ClaimCur.IsOrtho=checkIsOrtho.Checked; ClaimCur.OrthoRemainM=PIn.Byte(textOrthoRemainM.Text); ClaimCur.OrthoDate=PIn.Date(textOrthoDate.Text); ClaimCur.RefNumString=textRefNum.Text; ClaimCur.PlaceService=(PlaceOfService)comboPlaceService.SelectedIndex; ClaimCur.EmployRelated=(YN)comboEmployRelated.SelectedIndex; switch(comboAccident.SelectedIndex){ case 0: ClaimCur.AccidentRelated=""; break; case 1: ClaimCur.AccidentRelated="A"; break; case 2: ClaimCur.AccidentRelated="E"; break; case 3: ClaimCur.AccidentRelated="O"; break; } //AccidentDate is further down ClaimCur.AccidentST=textAccidentST.Text; if(comboClinic.SelectedIndex==0){//none ClaimCur.ClinicNum=0; } else{ ClaimCur.ClinicNum=Clinics.List[comboClinic.SelectedIndex-1].ClinicNum; } ClaimCur.DateResent=PIn.Date(textDateResent.Text); ClaimCur.CorrectionType=(ClaimCorrectionType)Enum.GetValues(typeof(ClaimCorrectionType)).GetValue(comboCorrectionType.SelectedIndex); ClaimCur.ClaimIdentifier=textClaimIdentifier.Text; ClaimCur.OrigRefNum=textOrigRefNum.Text; //attachments ClaimCur.Radiographs=PIn.Byte(textRadiographs.Text); ClaimCur.AttachedImages=PIn.Int(textAttachImages.Text); ClaimCur.AttachedModels=PIn.Int(textAttachModels.Text); List<string> flags=new List<string>(); if(checkAttachEoB.Checked){ flags.Add("EoB"); } if(checkAttachNarrative.Checked){ flags.Add("Note"); } if(checkAttachPerio.Checked){ flags.Add("Perio"); } if(checkAttachMisc.Checked){ flags.Add("Misc"); } if(radioAttachMail.Checked){ flags.Add("Mail"); } if(radioAttachElect.Checked){ flags.Add("Elect"); } ClaimCur.AttachedFlags=""; for(int i=0;i<flags.Count;i++){ if(i>0){ ClaimCur.AttachedFlags+=","; } ClaimCur.AttachedFlags+=flags[i]; } ClaimCur.AttachmentID=textAttachID.Text; //Canadian--------------------------------------------------------------------------------- if(CultureInfo.CurrentCulture.Name.EndsWith("CA")) {//Canadian. en-CA or fr-CA ClaimCur.CanadianMaterialsForwarded=""; if(checkEmail.Checked) { ClaimCur.CanadianMaterialsForwarded+="E"; } if(checkCorrespondence.Checked) { ClaimCur.CanadianMaterialsForwarded+="C"; } if(checkModels.Checked) { ClaimCur.CanadianMaterialsForwarded+="M"; } if(checkXrays.Checked) { ClaimCur.CanadianMaterialsForwarded+="X"; } if(checkImages.Checked) { ClaimCur.CanadianMaterialsForwarded+="I"; } ClaimCur.CanadianReferralProviderNum=textReferralProvider.Text; ClaimCur.CanadianReferralReason=(byte)comboReferralReason.SelectedIndex; ClaimCur.AccidentDate=PIn.Date(textCanadianAccidentDate.Text); ClaimCur.IsOrtho=checkCanadianIsOrtho.Checked; //max prosth----------------------------------------------------------------------------------------------------- switch(comboMaxProsth.SelectedIndex) { case 0: ClaimCur.CanadianIsInitialUpper=""; break; case 1: ClaimCur.CanadianIsInitialUpper="Y"; break; case 2: ClaimCur.CanadianIsInitialUpper="N"; break; case 3: ClaimCur.CanadianIsInitialUpper="X"; break; } ClaimCur.CanadianDateInitialUpper=PIn.Date(textDateInitialUpper.Text); ClaimCur.CanadianMaxProsthMaterial=(byte)comboMaxProsthMaterial.SelectedIndex; //mand prosth----------------------------------------------------------------------------------------------------- switch(comboMandProsth.SelectedIndex) { case 0: ClaimCur.CanadianIsInitialLower=""; break; case 1: ClaimCur.CanadianIsInitialLower="Y"; break; case 2: ClaimCur.CanadianIsInitialLower="N"; break; case 3: ClaimCur.CanadianIsInitialLower="X"; break; } ClaimCur.CanadianDateInitialLower=PIn.Date(textDateInitialLower.Text); ClaimCur.CanadianMandProsthMaterial=(byte)comboMandProsthMaterial.SelectedIndex; //ortho treatment if(groupCanadaOrthoPredeterm.Enabled && textDateCanadaEstTreatStartDate.Text!="" && textCanadaInitialPayment.Text!="" && textCanadaExpectedPayCycle.Text!="" && textCanadaTreatDuration.Text!="" && textCanadaNumPaymentsAnticipated.Text!="" && textCanadaAnticipatedPayAmount.Text!="") { ClaimCur.CanadaEstTreatStartDate=DateTime.Parse(textDateCanadaEstTreatStartDate.Text); ClaimCur.CanadaInitialPayment=Double.Parse(textCanadaInitialPayment.Text); ClaimCur.CanadaPaymentMode=byte.Parse(textCanadaExpectedPayCycle.Text); ClaimCur.CanadaTreatDuration=byte.Parse(textCanadaTreatDuration.Text); ClaimCur.CanadaNumAnticipatedPayments=byte.Parse(textCanadaNumPaymentsAnticipated.Text); ClaimCur.CanadaAnticipatedPayAmount=Double.Parse(textCanadaAnticipatedPayAmount.Text); } else { ClaimCur.CanadaEstTreatStartDate=DateTime.MinValue; ClaimCur.CanadaInitialPayment=0; ClaimCur.CanadaPaymentMode=0; ClaimCur.CanadaTreatDuration=0; ClaimCur.CanadaNumAnticipatedPayments=0; ClaimCur.CanadaAnticipatedPayAmount=0; } }//End Canadian----------------------------------------------------------------------------- else { ClaimCur.AccidentDate=PIn.Date(textAccidentDate.Text); ClaimCur.IsOrtho=checkIsOrtho.Checked; } ClaimCur.UniformBillType=textBillType.Text; ClaimCur.AdmissionTypeCode=textAdmissionType.Text; ClaimCur.AdmissionSourceCode=textAdmissionSource.Text; ClaimCur.PatientStatusCode=textPatientStatus.Text; Claims.Update(ClaimCur); if(ListClaimValCodes!=null){ for(int i=0;i<ListClaimValCodes.Count;i++){ //update existing Value Code pairs ClaimValCodeLog vc = (ClaimValCodeLog)ListClaimValCodes[i]; TextBox code = (TextBox)Controls.Find("textVC" + i + "Code", true)[0]; vc.ValCode=code.Text.ToString(); TextBox amount = (TextBox)Controls.Find("textVC" + i + "Amount", true)[0]; string amt = amount.Text; if(amt=="") { amt = "0"; } vc.ValAmount=Double.Parse(amt); } for(int i=(ListClaimValCodes.Count);i<12;i++){ //add new Value Code pairs ClaimValCodeLog vc = new ClaimValCodeLog(); TextBox code = (TextBox)Controls.Find("textVC" + i + "Code", true)[0]; vc.ValCode=code.Text.ToString(); TextBox amount = (TextBox)Controls.Find("textVC" + i + "Amount", true)[0]; string amt = amount.Text; if(amt=="") { amt = "0"; } vc.ValAmount=Double.Parse(amt); vc.ClaimNum=ClaimCur.ClaimNum; vc.ClaimValCodeLogNum=0; if(vc.ValCode!="" || vc.ValAmount!=0){ ListClaimValCodes.Add(vc); } } ClaimValCodeLogs.UpdateList(ListClaimValCodes); } if(ClaimCondCodeLogCur!=null || textCode0.Text!="" || textCode1.Text!="" || textCode2.Text!="" || textCode3.Text!="" || textCode4.Text!="" || textCode5.Text!="" || textCode6.Text!="" || textCode7.Text!="" || textCode8.Text!="" || textCode9.Text!="" || textCode10.Text!="") { if(ClaimCondCodeLogCur==null) { ClaimCondCodeLogCur=new ClaimCondCodeLog(); ClaimCondCodeLogCur.ClaimNum=ClaimCur.ClaimNum; ClaimCondCodeLogCur.IsNew=true; } ClaimCondCodeLogCur.Code0=textCode0.Text; ClaimCondCodeLogCur.Code1=textCode1.Text; ClaimCondCodeLogCur.Code2=textCode2.Text; ClaimCondCodeLogCur.Code3=textCode3.Text; ClaimCondCodeLogCur.Code4=textCode4.Text; ClaimCondCodeLogCur.Code5=textCode5.Text; ClaimCondCodeLogCur.Code6=textCode6.Text; ClaimCondCodeLogCur.Code7=textCode7.Text; ClaimCondCodeLogCur.Code8=textCode8.Text; ClaimCondCodeLogCur.Code9=textCode9.Text; ClaimCondCodeLogCur.Code10=textCode10.Text; if(ClaimCondCodeLogCur.IsNew) { ClaimCondCodeLogs.Insert(ClaimCondCodeLogCur); } else { ClaimCondCodeLogs.Update(ClaimCondCodeLogCur); } } for(int i=0;i<ClaimProcsForClaim.Count;i++) { Procedure proc=Procedures.GetProcFromList(ProcList,ClaimProcsForClaim[i].ProcNum); if(proc.PlaceService!=ClaimCur.PlaceService) { Procedure oldProc=proc.Copy(); proc.PlaceService=ClaimCur.PlaceService; Procedures.Update(proc,oldProc); } } if(wasSentOrReceived){ SecurityLogs.MakeLogEntry(Permissions.ClaimSentEdit,ClaimCur.PatNum, PatCur.GetNameLF()+", " +Lan.g(this,"Date of service: ")+ClaimCur.DateService.ToShortDateString()); } }
private void FormClaimEdit_Load(object sender, System.EventArgs e) { //the control box (x to close window) is not shown in this form because new users are temped to use it as an OK button, causing errors. if(System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height<this.Height){ this.Height=System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height;//make this window as tall as possible. } if(IsFromBatchWindow) { butBatch.Visible=false; labelBatch.Visible=false; } if(CultureInfo.CurrentCulture.Name.EndsWith("CA")) {//Canadian. en-CA or fr-CA labelPredeterm.Text=Lan.g(this,"Predeterm Num"); labelPriorAuth.Visible=false; textPriorAuth.Visible=false; labelSpecialProgram.Visible=false; comboSpecialProgram.Visible=false; groupProsth.Visible=false; groupReferral.Visible=false; groupOrtho.Visible=false; groupAttachments.Visible=false; groupAttachedImages.Visible=false; groupAccident.Visible=false; labelNote.Text="Claim Note (will only show on printed claims)"; tabMain.SelectedTab=tabCanadian; if(ClaimCur.DateSent.Date==MiscData.GetNowDateTime().Date) { //Reversal can only happen on the same day that the claim was originally sent. butReverse.Enabled=(ClaimCur.CanadaTransRefNum!=null && ClaimCur.CanadaTransRefNum!=""); } butSend.Enabled=(ClaimCur.CanadaTransRefNum==null || ClaimCur.CanadaTransRefNum==""); if(ClaimCur.ClaimType=="PreAuth") { List <PatPlan> patPlansForPat=PatPlans.Refresh(ClaimCur.PatNum); for(int i=0;i<patPlansForPat.Count;i++) { if(patPlansForPat[i].InsSubNum==ClaimCur.InsSubNum && patPlansForPat[i].Ordinal!=1) { butSend.Enabled=false;//Do not allow the user to send secondary predeterminations because there is no format that supports such a transaction in ITRANS. } } } } else { textLabFees.Visible=false; textDedApplied.Location=textLabFees.Location; textInsPayEst.Location=new Point(textDedApplied.Right-1,textInsPayEst.Location.Y); textInsPayAmt.Location=new Point(textInsPayEst.Right-1,textInsPayEst.Location.Y); textWriteOff.Location=new Point(textInsPayAmt.Right-1,textInsPayEst.Location.Y); tabMain.TabPages.Remove(tabCanadian); } if(IsNew){ //butCheckAdd.Enabled=false; //button was removed. groupEnterPayment.Enabled=false; } else if(ClaimCur.ClaimStatus=="S" || ClaimCur.ClaimStatus=="R"){//sent or received if(!Security.IsAuthorized(Permissions.ClaimSentEdit,ClaimCur.DateSent)){ butOK.Enabled=false; butDelete.Enabled=false; //butPrint.Enabled=false;//allowed to print, but just won't save changes. notAuthorized=true; groupEnterPayment.Enabled=false; gridPay.Enabled=false; gridProc.Enabled=false; comboClaimStatus.Enabled=false; //butCheckAdd.Enabled=false; //button was removed. } } if(ClaimCur.ClaimType=="PreAuth"){ labelPredeterm.Visible=false; textPredeterm.Visible=false; textDateService.Visible=false; labelDateService.Visible=false; label20.Visible=false;//warning when delete textReasonUnder.Visible=false; label4.Visible=false;//reason under butPayTotal.Visible=false; butPaySupp.Visible=false; butSplit.Visible=false; } if(PrefC.GetBool(PrefName.EasyNoClinics)){ labelClinic.Visible=false; comboClinic.Visible=false; } comboClaimType.Items.Add(Lan.g(this,"Primary")); comboClaimType.Items.Add(Lan.g(this,"Secondary")); comboClaimType.Items.Add(Lan.g(this,"PreAuth")); comboClaimType.Items.Add(Lan.g(this,"Other")); comboClaimType.Items.Add(Lan.g(this,"Capitation")); comboClaimStatus.Items.Add(Lan.g(this,"Unsent")); comboClaimStatus.Items.Add(Lan.g(this,"Hold until Pri received")); comboClaimStatus.Items.Add(Lan.g(this,"Waiting to Send"));//2 comboClaimStatus.Items.Add(Lan.g(this,"Probably Sent")); comboClaimStatus.Items.Add(Lan.g(this,"Sent - Verified")); comboClaimStatus.Items.Add(Lan.g(this,"Received")); comboSpecialProgram.Items.Clear(); for(int i=0;i<Enum.GetNames(typeof(EnumClaimSpecialProgram)).Length;i++) { comboSpecialProgram.Items.Add(Enum.GetNames(typeof(EnumClaimSpecialProgram))[i]); } string[] enumRelat=Enum.GetNames(typeof(Relat)); for(int i=0;i<enumRelat.Length;i++){; comboPatRelat.Items.Add(Lan.g("enumRelat",enumRelat[i])); comboPatRelat2.Items.Add(Lan.g("enumRelat",enumRelat[i])); } ClaimList=Claims.Refresh(PatCur.PatNum); ClaimProcList=ClaimProcs.Refresh(PatCur.PatNum); ProcList=Procedures.Refresh(PatCur.PatNum); SubList=InsSubs.RefreshForFam(FamCur); PlanList=InsPlans.RefreshForSubList(SubList); PatPlanList=PatPlans.Refresh(PatCur.PatNum); if(InsPlans.GetPlan(ClaimCur.PlanNum,PlanList).PlanType=="p"){//ppo butPayTotal.Enabled=false; } //this section used to be "supplemental"--------------------------------------------------------------------------------- textRefNum.Text=ClaimCur.RefNumString; string[] enumPlaceOfService=Enum.GetNames(typeof(PlaceOfService)); for(int i=0;i<enumPlaceOfService.Length;i++) { comboPlaceService.Items.Add(Lan.g("enumPlaceOfService",enumPlaceOfService[i])); } comboPlaceService.SelectedIndex=(int)ClaimCur.PlaceService; string[] enumYN=Enum.GetNames(typeof(YN)); for(int i=0;i<enumYN.Length;i++) { comboEmployRelated.Items.Add(Lan.g("enumYN",enumYN[i])); } comboEmployRelated.SelectedIndex=(int)ClaimCur.EmployRelated; comboAccident.Items.Add(Lan.g(this,"No")); comboAccident.Items.Add(Lan.g(this,"Auto")); comboAccident.Items.Add(Lan.g(this,"Employment")); comboAccident.Items.Add(Lan.g(this,"Other")); switch(ClaimCur.AccidentRelated) { case "": comboAccident.SelectedIndex=0; break; case "A": comboAccident.SelectedIndex=1; break; case "E": comboAccident.SelectedIndex=2; break; case "O": comboAccident.SelectedIndex=3; break; } //accident date is further down textAccidentST.Text=ClaimCur.AccidentST; textRefProv.Text=Referrals.GetNameLF(ClaimCur.ReferringProv); if(ClaimCur.ReferringProv==0){ butReferralEdit.Enabled=false; } else{ butReferralEdit.Enabled=true; } //medical data ListClaimValCodes=ClaimValCodeLogs.GetForClaim(ClaimCur.ClaimNum); ClaimCondCodeLogCur=ClaimCondCodeLogs.GetByClaimNum(ClaimCur.ClaimNum); FillForm(); FillCanadian(); }
///<summary>Updates the claim to the database.</summary> public static UpdateData UpdateClaim(Claim ClaimCur, List <ClaimValCodeLog> listClaimValCodes, ClaimCondCodeLog claimCondCodeLog, List <Procedure> listProcsToUpdatePlaceOfService, Patient pat, bool doMakeSecLog, Permissions permissionToLog) { if (RemotingClient.RemotingRole == RemotingRole.ClientWeb) { return(Meth.GetObject <UpdateData>(MethodBase.GetCurrentMethod(), ClaimCur, listClaimValCodes, claimCondCodeLog, listProcsToUpdatePlaceOfService, pat, doMakeSecLog, permissionToLog)); } UpdateData data = new UpdateData(); Claims.Update(ClaimCur); if (listClaimValCodes != null) { ClaimValCodeLogs.UpdateList(listClaimValCodes); } if (claimCondCodeLog != null) { if (claimCondCodeLog.IsNew) { ClaimCondCodeLogs.Insert(claimCondCodeLog); } else { ClaimCondCodeLogs.Update(claimCondCodeLog); } } foreach (Procedure proc in listProcsToUpdatePlaceOfService) { Procedure oldProc = proc.Copy(); proc.PlaceService = ClaimCur.PlaceService; Procedures.Update(proc, oldProc); } if (doMakeSecLog) { SecurityLogs.MakeLogEntry(permissionToLog, ClaimCur.PatNum, pat.GetNameLF() + ", Date of service: " + ClaimCur.DateService.ToShortDateString()); } data.ListSendQueueItems = Claims.GetQueueList(ClaimCur.ClaimNum, ClaimCur.ClinicNum, 0); return(data); }
///<summary></summary> public FormClaimInstEdit(Claim claimCur,Patient patCur,Family famCur) { PatCur=patCur; FamCur=famCur; ClaimCur=claimCur; if(ClaimCur.ClaimForm != 0){ ClaimFormCur=ClaimForms.GetClaimForm(ClaimCur.ClaimForm); ClaimValCodes=ClaimValCodeLogs.GetValCodes(ClaimCur.ClaimNum); CurCondCodeLog=ClaimCondCodeLogs.GetOne(ClaimCur.ClaimNum); } InitializeComponent();// Required for Windows Form Designer support //tbPay.CellDoubleClicked += new OpenDental.ContrTable.CellEventHandler(tbPay_CellDoubleClicked); //tbProc.CellClicked += new OpenDental.ContrTable.CellEventHandler(tbProc_CellClicked); //tbPay.CellClicked += new OpenDental.ContrTable.CellEventHandler(tbPay_CellClicked); Lan.F(this); }