Пример #1
0
 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);
 }
Пример #2
0
        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;
                }
            }
        }
Пример #3
0
 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();
        }
Пример #6
0
        ///<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);
        }
Пример #7
0
        ///<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;
            }
        }