private MigraDoc.DocumentObjectModel.Document CreateDocument() { MigraDoc.DocumentObjectModel.Document doc = new MigraDoc.DocumentObjectModel.Document(); doc.DefaultPageSetup.PageWidth = MigraDoc.DocumentObjectModel.Unit.FromInch(8.5); doc.DefaultPageSetup.PageHeight = MigraDoc.DocumentObjectModel.Unit.FromInch(11); doc.DefaultPageSetup.TopMargin = MigraDoc.DocumentObjectModel.Unit.FromInch(.5); doc.DefaultPageSetup.LeftMargin = MigraDoc.DocumentObjectModel.Unit.FromInch(.5); doc.DefaultPageSetup.RightMargin = MigraDoc.DocumentObjectModel.Unit.FromInch(.5); MigraDoc.DocumentObjectModel.Section section = doc.AddSection(); MigraDoc.DocumentObjectModel.Font headingFont = MigraDocHelper.CreateFont(13, true); MigraDoc.DocumentObjectModel.Font subHeadingFont = MigraDocHelper.CreateFont(10, true); #region printHeading //Heading--------------------------------------------------------------------------------------------------------------- MigraDoc.DocumentObjectModel.Paragraph par = section.AddParagraph(); MigraDoc.DocumentObjectModel.ParagraphFormat parformat = new MigraDoc.DocumentObjectModel.ParagraphFormat(); parformat.Alignment = MigraDoc.DocumentObjectModel.ParagraphAlignment.Center; par.Format = parformat; string text = Lans.g(this, "Service Date View"); par.AddFormattedText(text, headingFont); par.AddLineBreak(); //SubHeading--------------------------------------------------------------------------------------------------------------- text = (IsFamily ? Lans.g(this, "Entire Family:") + " " : "") + $"{_fam.GetNameInFamFL(PatNum)}"; par.AddFormattedText(text, subHeadingFont); par.AddLineBreak(); text = Lans.g(this, "Date") + " " + DateTime.Now.ToShortDateString(); par.AddFormattedText(text, subHeadingFont); #endregion MigraDocHelper.InsertSpacer(section, 10); section.PageSetup.Orientation = MigraDoc.DocumentObjectModel.Orientation.Landscape; MigraDocHelper.DrawGrid(section, gridMain); return(doc); }
private void FormGuardianEdit_Load(object sender, EventArgs e) { textPatient.Text = _fam.GetNameInFamFL(_guardianCur.PatNumChild); if (_guardianCur.PatNumGuardian != 0) { textFamilyMember.Text = _fam.GetNameInFamFL(_guardianCur.PatNumGuardian); } Patient patChild = Patients.GetPat(_guardianCur.PatNumChild); if (_guardianCur.IsNew) { if (patChild.Position == PatientPosition.Child) { //True by default if entering relationship from a child patient, because this is how the old guardian feature worked before we added support for other relationship types. checkIsGuardian.Checked = true; } } else //Existing guardian record. { checkIsGuardian.Checked = _guardianCur.IsGuardian; } _listRelationshipNames = new List <string>(Enum.GetNames(typeof(GuardianRelationship))); _listRelationshipNames.Sort(); for (int i = 0; i < _listRelationshipNames.Count; i++) { comboRelationship.Items.Add(Lan.g("enumGuardianRelationship", _listRelationshipNames[i])); if (_listRelationshipNames[i] == _guardianCur.Relationship.ToString()) { comboRelationship.SelectedIndex = i; } } }
private void FormGuardianEdit_Load(object sender, EventArgs e) { textDependant.Text = Fam.GetNameInFamFL(GuardianCur.PatNumChild); textGuardian.Text = Fam.GetNameInFamFL(GuardianCur.PatNumGuardian); string[] relationshipNames = Enum.GetNames(typeof(GuardianRelationship)); for (int i = 0; i < relationshipNames.Length; i++) { listRelationship.Items.Add(relationshipNames[i]); } listRelationship.SelectedIndex = (int)GuardianCur.Relationship; }
private void FormProvIncTransAdd_Load(object sender,EventArgs e) { for(int i=0;i<Providers.List.Length;i++) { comboProvFrom.Items.Add(Providers.List[i].Abbr); comboProvTo.Items.Add(Providers.List[i].Abbr); } for(int i=0;i<FamCur.List.Length;i++) { comboFromPat.Items.Add(FamCur.GetNameInFamFL(i)); comboToPat.Items.Add(FamCur.GetNameInFamFL(i)); if(FamCur.List[i].PatNum==PatNum){ comboFromPat.SelectedIndex=i; comboToPat.SelectedIndex=i; } } }
///<summary>This does not make any calls to db (except one tiny one). Simply refreshes screen for SplitList.</summary> private void FillMain() { gridMain.BeginUpdate(); gridMain.Columns.Clear(); ODGridColumn col = new ODGridColumn(Lan.g("FormProviderIncTrans", "Date"), 70); gridMain.Columns.Add(col); col = new ODGridColumn(Lan.g("FormProviderIncTrans", "Prov"), 50); gridMain.Columns.Add(col); col = new ODGridColumn(Lan.g("FormProviderIncTrans", "Patient"), 130); gridMain.Columns.Add(col); col = new ODGridColumn(Lan.g("FormProviderIncTrans", "Amount"), 60, HorizontalAlignment.Right); gridMain.Columns.Add(col); gridMain.Rows.Clear(); ODGridRow row; Procedure proc; for (int i = 0; i < SplitList.Count; i++) { row = new ODGridRow(); row.Cells.Add(SplitList[i].ProcDate.ToShortDateString()); row.Cells.Add(Providers.GetAbbr(SplitList[i].ProvNum)); row.Cells.Add(FamCur.GetNameInFamFL(SplitList[i].PatNum)); row.Cells.Add(SplitList[i].SplitAmt.ToString("F")); gridMain.Rows.Add(row); } gridMain.EndUpdate(); FillGridBal(); }
///<summary>Gets a description of the specified plan, including carrier name and subscriber. It's fastest if you supply a plan list that contains the plan, but it also works just fine if it can't initally locate the plan in the list. You can supply an array of length 0 for both family and planlist.</summary> public static string GetDescript(int planNum, Family family, InsPlan[] PlanList) { if (planNum == 0) { return(""); } InsPlan plan = GetPlan(planNum, PlanList); if (plan == null || plan.PlanNum == 0) { return(""); } string subscriber = family.GetNameInFamFL(plan.Subscriber); if (subscriber == "") //subscriber from another family { subscriber = Patients.GetLim(plan.Subscriber).GetNameLF(); } string retStr = ""; //loop just to get the index of the plan in the family list bool otherFam = true; for (int i = 0; i < PlanList.Length; i++) { if (PlanList[i].PlanNum == planNum) { otherFam = false; //retStr += (i+1).ToString()+": "; } } if (otherFam) //retStr=="") { retStr = "(other fam):"; } Carrier carrier = Carriers.GetCarrier(plan.CarrierNum); string carrierName = carrier.CarrierName; if (carrierName.Length > 20) { carrierName = carrierName.Substring(0, 20) + "..."; } retStr += carrierName; retStr += " (" + subscriber + ")"; return(retStr); }
///<summary>raised for each page to be printed. One page per appointment.</summary> private void pd_PrintPage(object sender, PrintPageEventArgs ev) { if (ApptNum != 0) //just for one appointment { date = Appointments.DateSelected; } Graphics g = ev.Graphics; float y = 50; float x = 0; string str; float sizeW; //used when measuring text for placement Font fontTitle = new Font(FontFamily.GenericSansSerif, 11, FontStyle.Bold); Font fontHeading = new Font(FontFamily.GenericSansSerif, 9, FontStyle.Bold); Font font = new Font(FontFamily.GenericSansSerif, 8); SolidBrush brush = new SolidBrush(Color.Black); //Title---------------------------------------------------------------------------------------------------------- str = Lan.g(this, "Routing Slip"); sizeW = g.MeasureString(str, fontTitle).Width; x = 425 - sizeW / 2; g.DrawString(str, fontTitle, brush, x, y); y += 35; x = 75; //Today's appointment, including procedures----------------------------------------------------------------------- Family fam = Patients.GetFamily(Appts[pagesPrinted].PatNum); Patient pat = fam.GetPatient(Appts[pagesPrinted].PatNum); str = pat.GetNameFL(); g.DrawString(str, fontHeading, brush, x, y); y += 18; str = Appts[pagesPrinted].AptDateTime.ToShortTimeString() + " " + Appts[pagesPrinted].AptDateTime.ToShortDateString(); g.DrawString(str, fontHeading, brush, x, y); y += 18; str = (Appts[pagesPrinted].Pattern.Length * 5).ToString() + " " + Lan.g(this, "minutes"); g.DrawString(str, font, brush, x, y); y += 15; str = Providers.GetAbbr(Appts[pagesPrinted].ProvNum); g.DrawString(str, font, brush, x, y); y += 15; if (Appts[pagesPrinted].ProvHyg != 0) { str = Providers.GetAbbr(Appts[pagesPrinted].ProvHyg); g.DrawString(str, font, brush, x, y); y += 15; } str = Lan.g(this, "Procedures:"); g.DrawString(str, font, brush, x, y); y += 15; Procedure[] procsAll = Procedures.Refresh(pat.PatNum); Procedure[] procsApt = Procedures.GetProcsOneApt(Appts[pagesPrinted].AptNum, procsAll); for (int i = 0; i < procsApt.Length; i++) { str = " " + Procedures.GetDescription(procsApt[i]); g.DrawString(str, font, brush, x, y); y += 15; } str = Lan.g(this, "Note:") + " " + Appts[pagesPrinted].Note; g.DrawString(str, font, brush, x, y); y += 25; //Patient/Family Info--------------------------------------------------------------------------------------------- g.DrawLine(Pens.Black, 75, y, 775, y); str = Lan.g(this, "Patient Info"); g.DrawString(str, fontHeading, brush, x, y); y += 18; str = Lan.g(this, "PatNum:") + " " + pat.PatNum.ToString(); g.DrawString(str, font, brush, x, y); y += 15; str = Lan.g(this, "Age:") + " "; if (pat.Age > 0) { str += pat.Age.ToString(); } g.DrawString(str, font, brush, x, y); y += 15; str = Lan.g(this, "Date of First Visit:") + " "; if (pat.DateFirstVisit.Year < 1880) { str += "?"; } else if (pat.DateFirstVisit == Appts[pagesPrinted].AptDateTime.Date) { str += Lan.g(this, "New Patient"); } else { str += pat.DateFirstVisit.ToShortDateString(); } g.DrawString(str, font, brush, x, y); y += 15; str = Lan.g(this, "Billing Type:") + " " + DefB.GetName(DefCat.BillingTypes, pat.BillingType); g.DrawString(str, font, brush, x, y); y += 15; Recall[] recallList = Recalls.GetList(new int[] { pat.PatNum }); str = Lan.g(this, "Recall Due Date:") + " "; if (recallList.Length > 0) { str += recallList[0].DateDue.ToShortDateString(); } g.DrawString(str, font, brush, x, y); y += 15; str = Lan.g(this, "Medical notes:") + " " + pat.MedUrgNote; g.DrawString(str, font, brush, x, y); y += 25; //Other Family Members str = Lan.g(this, "Other Family Members"); g.DrawString(str, fontHeading, brush, x, y); y += 18; for (int i = 0; i < fam.List.Length; i++) { if (fam.List[i].PatNum == pat.PatNum) { continue; } str = fam.List[i].GetNameFL(); if (fam.List[i].Age > 0) { str += ", " + fam.List[i].Age.ToString(); } g.DrawString(str, font, brush, x, y); y += 15; } y += 10; //Insurance Info-------------------------------------------------------------------------------------------------- g.DrawLine(Pens.Black, 75, y, 775, y); str = Lan.g(this, "Insurance"); g.DrawString(str, fontHeading, brush, x, y); y += 18; PatPlan[] patPlanList = PatPlans.Refresh(pat.PatNum); InsPlan[] plans = InsPlans.Refresh(fam); ClaimProc[] claimProcList = ClaimProcs.Refresh(pat.PatNum); Benefit[] benefits = Benefits.Refresh(patPlanList); InsPlan plan; Carrier carrier; string subscriber; double max; double deduct; if (patPlanList.Length == 0) { str = Lan.g(this, "none"); g.DrawString(str, font, brush, x, y); y += 15; } for (int i = 0; i < patPlanList.Length; i++) { plan = InsPlans.GetPlan(patPlanList[i].PlanNum, plans); carrier = Carriers.GetCarrier(plan.CarrierNum); str = carrier.CarrierName; g.DrawString(str, fontHeading, brush, x, y); y += 18; subscriber = fam.GetNameInFamFL(plan.Subscriber); if (subscriber == "") //subscriber from another family { subscriber = Patients.GetLim(plan.Subscriber).GetNameLF(); } str = Lan.g(this, "Subscriber:") + " " + subscriber; g.DrawString(str, font, brush, x, y); y += 15; bool isFamMax = Benefits.GetIsFamMax(benefits, plan.PlanNum); str = ""; if (isFamMax) { str += Lan.g(this, "Family "); } str += Lan.g(this, "Annual Max:") + " "; max = Benefits.GetAnnualMax(benefits, plan.PlanNum, patPlanList[i].PatPlanNum); if (max != -1) { str += max.ToString("n0") + " "; } str += " "; bool isFamDed = Benefits.GetIsFamDed(benefits, plan.PlanNum); if (isFamDed) { str += Lan.g(this, "Family "); } str += Lan.g(this, "Deductible:") + " "; deduct = Benefits.GetDeductible(benefits, plan.PlanNum, patPlanList[i].PatPlanNum); if (deduct != -1) { str += deduct.ToString("n0"); } g.DrawString(str, font, brush, x, y); y += 15; str = ""; for (int j = 0; j < benefits.Length; j++) { if (benefits[j].PlanNum != plan.PlanNum) { continue; } if (benefits[j].BenefitType != InsBenefitType.Percentage) { continue; } if (str != "") { str += ", "; } str += CovCats.GetDesc(benefits[j].CovCatNum) + " " + benefits[j].Percent.ToString() + "%"; } if (str != "") { g.DrawString(str, font, brush, x, y); y += 15; } double pend = 0; double used = 0; if (isFamMax || isFamDed) { ClaimProc[] claimProcsFam = ClaimProcs.RefreshFam(plan.PlanNum); used = InsPlans.GetInsUsed(claimProcsFam, date, plan.PlanNum, patPlanList[i].PatPlanNum, -1, plans, benefits); pend = InsPlans.GetPending(claimProcsFam, date, plan, patPlanList[i].PatPlanNum, -1, benefits); } else { used = InsPlans.GetInsUsed(claimProcList, date, plan.PlanNum, patPlanList[i].PatPlanNum, -1, plans, benefits); pend = InsPlans.GetPending(claimProcList, date, plan, patPlanList[i].PatPlanNum, -1, benefits); } str = Lan.g(this, "Ins Used:") + " " + used.ToString("n"); g.DrawString(str, font, brush, x, y); y += 15; str = Lan.g(this, "Ins Pending:") + " " + pend.ToString("n"); g.DrawString(str, font, brush, x, y); y += 15; } y += 10; //Account Info--------------------------------------------------------------------------------------------------- g.DrawLine(Pens.Black, 75, y, 775, y); str = Lan.g(this, "Account Info"); g.DrawString(str, fontHeading, brush, x, y); y += 18; str = Lan.g(this, "Guarantor:") + " " + fam.List[0].GetNameFL(); g.DrawString(str, font, brush, x, y); y += 15; str = Lan.g(this, "Balance:") + (fam.List[0].BalTotal - fam.List[0].InsEst).ToString("c"); if (fam.List[0].InsEst > .01) { str += " (" + fam.List[0].BalTotal.ToString("c") + " - " + fam.List[0].InsEst.ToString("c") + " " + Lan.g(this, "InsEst") + ")"; } g.DrawString(str, font, brush, x, y); y += 15; str = Lan.g(this, "Aging:") + " 0-30:" + fam.List[0].Bal_0_30.ToString("c") + " 31-60:" + fam.List[0].Bal_31_60.ToString("c") + " 61-90:" + fam.List[0].Bal_61_90.ToString("c") + " 90+:" + fam.List[0].BalOver90.ToString("c"); g.DrawString(str, font, brush, x, y); y += 15; str = Lan.g(this, "Fam Urgent Fin Note:") + fam.List[0].FamFinUrgNote; g.DrawString(str, font, brush, x, y); y += 15; y += 10; //Treatment Plan-------------------------------------------------------------------------------------------------- g.DrawLine(Pens.Black, 75, y, 775, y); str = Lan.g(this, "Treatment Plan"); g.DrawString(str, fontHeading, brush, x, y); y += 18; for (int i = 0; i < procsAll.Length; i++) { if (procsAll[i].ProcStatus != ProcStat.TP) { continue; } str = Procedures.GetDescription(procsAll[i]); g.DrawString(str, font, brush, x, y); y += 15; } pagesPrinted++; if (pagesPrinted == Appts.Length) { ev.HasMorePages = false; pagesPrinted = 0; } else { ev.HasMorePages = true; } }