private void butClaimDetails_Click(object sender, EventArgs e) { if (gridClaimDetails.SelectedIndices.Length == 0) { MsgBox.Show(this, "Choose a claim paid before viewing details."); return; } Hx835_Claim claimPaid = (Hx835_Claim)gridClaimDetails.ListGridRows[gridClaimDetails.SelectedIndices[0]].Tag; FormEtrans835ClaimEdit formE = new FormEtrans835ClaimEdit(_x835, claimPaid); formE.Show(this); //This window is just used to display information. }
private void gridClaimDetails_CellDoubleClick(object sender, ODGridClickEventArgs e) { Hx835_Claim claimPaid = (Hx835_Claim)gridClaimDetails.ListGridRows[e.Row].Tag; Claim claim = claimPaid.GetClaimFromDb(); bool isAttachNeeded = (!claimPaid.IsAttachedToClaim); if (claim == null) //Not found in db. { claim = ClaimSelectionHelper(claimPaid); if (claim != null) //A claim was selected. { isAttachNeeded = true; //Hard attach selected claim to db claim, since user manually picked matching claim. } } if (claim == null) //Claim not found and user did not select one. { return; } //From this point on claim is not null. bool isReadOnly = true; CreateAttachForClaim(claimPaid, claim.ClaimNum, isAttachNeeded); if (claimPaid.IsSplitClaim) { //Sync ClaimNum for all split claims in the same group, based on user selection. claimPaid.GetOtherNotDetachedSplitClaims() .ForEach(x => CreateAttachForClaim(x, claim.ClaimNum, isAttachNeeded)); } if (claimPaid.IsProcessed(_listClaimProcs, _listAttaches)) { //If the claim is already received, then we do not allow the user to enter payments. //The user can edit the claim to change the status from received if they wish to enter the payments again. if (Security.IsAuthorized(Permissions.ClaimView)) { Patient pat = Patients.GetPat(claim.PatNum); Family fam = Patients.GetFamily(claim.PatNum); FormClaimEdit formCE = new FormClaimEdit(claim, pat, fam); formCE.ShowDialog(); //Modal, because the user could edit information in this window. } isReadOnly = false; } else if (Security.IsAuthorized(Permissions.InsPayCreate)) //Claim found and is not received. Date not checked here, but it will be checked when actually creating the check. { EtransL.ImportEraClaimData(_x835, claimPaid, claim, false); RefreshFromDb(); //ClaimProcs could have been split, need to refresh both claimProc list and attaches. isReadOnly = false; } if (isReadOnly) { FormEtrans835ClaimEdit formC = new FormEtrans835ClaimEdit(_x835, claimPaid); formC.Show(this); //This window is just used to display information. } if (!gridClaimDetails.IsDisposed) //Not sure how the grid is sometimes disposed, perhaps because of it being non-modal. //Refresh the claim detail row in case something changed above. { gridClaimDetails.BeginUpdate(); List <GridRow> listRows = new List <GridRow>() { gridClaimDetails.ListGridRows[e.Row] }; //Row associated to claimPaid if (claimPaid.IsSplitClaim) //Need to update multiple rows. { List <Hx835_Claim> listOtherSplitClaims = claimPaid.GetOtherNotDetachedSplitClaims(); List <GridRow> listAdditionalRows = gridClaimDetails.ListGridRows .Where(x => x != gridClaimDetails.ListGridRows[e.Row] && listOtherSplitClaims.Contains((Hx835_Claim)x.Tag) ).ToList(); listRows.AddRange(listAdditionalRows); } SetClaimDetailRows(listRows, listRows.Select(x => (Hx835_Claim)x.Tag).ToList(), true); gridClaimDetails.EndUpdate(); } }
private void butClaimDetails_Click(object sender,EventArgs e) { if(gridClaimDetails.SelectedIndices.Length==0) { MsgBox.Show(this,"Choose a claim paid before viewing details."); return; } Hx835_Claim claimPaid=(Hx835_Claim)gridClaimDetails.Rows[gridClaimDetails.SelectedIndices[0]].Tag; FormEtrans835ClaimEdit formE=new FormEtrans835ClaimEdit(claimPaid); formE.ShowDialog(); }
private void butViewEobDetails_Click(object sender,EventArgs e) { FormEtrans835ClaimEdit FormE=new FormEtrans835ClaimEdit(_claimPaid); FormE.ShowDialog(); }
private void gridClaimDetails_CellDoubleClick(object sender,ODGridClickEventArgs e) { Hx835_Claim claimPaid=(Hx835_Claim)gridClaimDetails.Rows[e.Row].Tag; Claim claim=claimPaid.GetClaimFromDb(); if(claimPaid.IsSplitClaim && (claim==null || claim.ClaimStatus!="R")) { if(MessageBox.Show(Lan.g(this,"The insurance carrier has split the claim")+". " +Lan.g(this,"You must manually locate and split the claim before entering the payment information")+". " +Lan.g(this,"Continue entering payment")+"?","",MessageBoxButtons.OKCancel)!=DialogResult.OK) { return; } } bool isReadOnly=true; if(claim==null) {//Original claim not found. MessageBox.Show(Lan.g(this,"Original claim not found")+". "+Lan.g(this,"The claim details from the EOB will be displayed instead")+". " +Lan.g(this,"Locate the Claim Identifier on the EOB and manually edit the Claim Identifier of the original claim to match, then try again")+"."); } else if(claim.ClaimStatus=="R") {//Claim found and is already received. //If the claim is already received, then we do not allow the user to enter payments. //The user can edit the claim to change the status from received if they wish to enter the payments again. Patient pat=Patients.GetPat(claim.PatNum); Family fam=Patients.GetFamily(claim.PatNum); FormClaimEdit formCE=new FormClaimEdit(claim,pat,fam); formCE.ShowDialog(); isReadOnly=false; } else if(Security.IsAuthorized(Permissions.InsPayCreate)) {//Claim found and is not received. Date not checked here, but it will be checked when actually creating the check. EnterPayment(claimPaid,claim,false); isReadOnly=false; } if(isReadOnly) { FormEtrans835ClaimEdit formC=new FormEtrans835ClaimEdit(claimPaid); formC.ShowDialog(this); } else { claim=claimPaid.GetClaimFromDb();//Refresh the claim, since the claim status might have changed above. if(claim.ClaimStatus=="R") { gridClaimDetails.Rows[e.Row].Cells[0].Text="X";//Indicate that payment is Received. } else { gridClaimDetails.Rows[e.Row].Cells[0].Text="";//Indicate that payment is not Received. } } }