Пример #1
0
        private void FillGrid()
        {
            RefAttachList = RefAttaches.RefreshFiltered(PatNum, checkShowAll.Checked, ProcNum);
            gridMain.BeginUpdate();
            gridMain.Columns.Clear();
            ODGridColumn col = new ODGridColumn(Lan.g("TableRefList", "From/To"), 50);

            gridMain.Columns.Add(col);
            col = new ODGridColumn(Lan.g("TableRefList", "Name"), 120);
            gridMain.Columns.Add(col);
            col = new ODGridColumn(Lan.g("TableRefList", "Date"), 70);
            gridMain.Columns.Add(col);
            col = new ODGridColumn(Lan.g("TableRefList", "Status"), 90);
            gridMain.Columns.Add(col);
            col = new ODGridColumn(Lan.g("TableRefList", "Proc"), 120);
            gridMain.Columns.Add(col);
            col = new ODGridColumn(Lan.g("TableRefList", "Note"), 200);
            gridMain.Columns.Add(col);
            gridMain.Rows.Clear();
            ODGridRow row;

            //Referral referral;
            for (int i = 0; i < RefAttachList.Count; i++)
            {
                row = new ODGridRow();
                if (RefAttachList[i].IsFrom)
                {
                    row.Cells.Add(Lan.g(this, "From"));
                }
                else
                {
                    row.Cells.Add(Lan.g(this, "To"));
                }
                row.Cells.Add(Referrals.GetNameFL(RefAttachList[i].ReferralNum));
                //referral=ReferralL.GetReferral(RefAttachList[i].ReferralNum);
                if (RefAttachList[i].RefDate.Year < 1880)
                {
                    row.Cells.Add("");
                }
                else
                {
                    row.Cells.Add(RefAttachList[i].RefDate.ToShortDateString());
                }
                row.Cells.Add(Lan.g("enumReferralToStatus", RefAttachList[i].RefToStatus.ToString()));
                if (RefAttachList[i].ProcNum == 0)
                {
                    row.Cells.Add("");
                }
                else
                {
                    Procedure proc = Procedures.GetOneProc(RefAttachList[i].ProcNum, false);
                    string    str  = Procedures.GetDescription(proc);
                    row.Cells.Add(str);
                }
                row.Cells.Add(RefAttachList[i].Note);
                gridMain.Rows.Add(row);
            }
            gridMain.EndUpdate();
        }
Пример #2
0
        private void gridMu_CellClick(object sender, ODGridClickEventArgs e)
        {
            FormMedical FormMed;

            if (e.Col == 3)
            {
                switch (listMu[e.Row].MeasureType)
                {
                case EhrMeasureType.ProblemList:
                    FormMed = new FormMedical(PatNotCur, PatCur, "tabProblems");
                    FormMed.ShowDialog();
                    FillGridMu();
                    break;

                case EhrMeasureType.MedicationList:
                    FormMed = new FormMedical(PatNotCur, PatCur, "tabMedications");
                    FormMed.ShowDialog();
                    FillGridMu();
                    break;

                case EhrMeasureType.AllergyList:
                    FormMed = new FormMedical(PatNotCur, PatCur, "tabAllergies");
                    FormMed.ShowDialog();
                    FillGridMu();
                    break;

                case EhrMeasureType.Demographics:
                    FormPatientEdit FormPatEdit = new FormPatientEdit(PatCur, PatFamCur);
                    FormPatEdit.ShowDialog();
                    FillGridMu();
                    break;

                case EhrMeasureType.Education:
                    FormEhrEduResourcesPat FormEDUPat = new FormEhrEduResourcesPat();
                    FormEDUPat.patCur = PatCur;
                    FormEDUPat.ShowDialog();
                    FillGridMu();
                    break;

                case EhrMeasureType.TimelyAccess:
                case EhrMeasureType.ElectronicCopyAccess:
                    FormPatientPortal FormPatPort = new FormPatientPortal(PatCur);
                    FormPatPort.ShowDialog();
                    FillGridMu();
                    break;

                case EhrMeasureType.ProvOrderEntry:
                case EhrMeasureType.CPOE_MedOrdersOnly:
                case EhrMeasureType.CPOE_PreviouslyOrdered:
                    //LaunchOrdersWindow();
                    break;

                case EhrMeasureType.Rx:
                    //no action available
                    break;

                case EhrMeasureType.VitalSigns:
                case EhrMeasureType.VitalSignsBMIOnly:
                case EhrMeasureType.VitalSignsBPOnly:
                case EhrMeasureType.VitalSigns2014:
                    FormMed = new FormMedical(PatNotCur, PatCur, "tabVitalSigns");
                    FormMed.ShowDialog();
                    FillGridMu();
                    break;

                case EhrMeasureType.Smoking:
                    FormMed = new FormMedical(PatNotCur, PatCur, "tabTobaccoUse");
                    FormMed.ShowDialog();
                    FillGridMu();
                    break;

                case EhrMeasureType.Lab:
                    if (DataConnection.DBtype == DatabaseType.Oracle)
                    {
                        MsgBox.Show(this, "Labs not supported with Oracle");
                        break;
                    }
                    FormEhrLabOrders FormLP = new FormEhrLabOrders();
                    FormLP.PatCur = PatCur;
                    FormLP.ShowDialog();
                    FillGridMu();
                    break;

                case EhrMeasureType.ElectronicCopy:
                    if (listMu[e.Row].Action == "Provide elect copy to Pt")
                    {
                        FormEhrElectronicCopy FormE = new FormEhrElectronicCopy();
                        FormE.PatCur = PatCur;
                        FormE.ShowDialog();
                        FillGridMu();
                    }
                    break;

                case EhrMeasureType.ClinicalSummaries:
                    FormEhrClinicalSummary FormCS = new FormEhrClinicalSummary();
                    FormCS.PatCur = PatCur;
                    FormCS.ShowDialog();
                    FillGridMu();
                    break;

                case EhrMeasureType.Reminders:
                    FormEhrReminders FormRem = new FormEhrReminders();
                    FormRem.PatCur = PatCur;
                    FormRem.ShowDialog();
                    FillGridMu();
                    break;

                case EhrMeasureType.MedReconcile:
                    int compare = EhrMeasures.CompareReferralsToReconciles(PatNum);
                    if (compare == 1 || compare == 0)                         //Referral count is less than reconcile count or both are zero.
                    {
                        FormReferralSelect FormRS = new FormReferralSelect();
                        FormRS.IsDoctorSelectionMode = true;
                        FormRS.IsSelectionMode       = true;
                        FormRS.ShowDialog();
                        if (FormRS.DialogResult != DialogResult.OK)
                        {
                            return;
                        }
                        List <RefAttach> RefAttachList = RefAttaches.RefreshFiltered(PatNum, false, 0);
                        RefAttach        refattach     = new RefAttach();
                        refattach.ReferralNum = FormRS.SelectedReferral.ReferralNum;
                        refattach.PatNum      = PatNum;
                        refattach.RefType     = ReferralType.RefFrom;
                        refattach.RefDate     = DateTimeOD.Today;
                        if (FormRS.SelectedReferral.IsDoctor)                                 //whether using ehr or not
                        {
                            refattach.IsTransitionOfCare = true;
                        }
                        int order = 0;
                        for (int i = 0; i < RefAttachList.Count; i++)
                        {
                            if (RefAttachList[i].ItemOrder > order)
                            {
                                order = RefAttachList[i].ItemOrder;
                            }
                        }
                        refattach.ItemOrder = order + 1;
                        RefAttaches.Insert(refattach);
                        SecurityLogs.MakeLogEntry(Permissions.RefAttachAdd, PatNum, "Referred From " + Referrals.GetNameFL(refattach.ReferralNum));
                    }
                    else if (compare == -1)                           //The referral count is greater than the reconcile count.
                    //So we do not need to show the referral window, we just need to reconcile below.
                    {
                    }
                    FormEhrSummaryOfCare FormMedRec = new FormEhrSummaryOfCare();
                    FormMedRec.PatCur = PatCur;
                    FormMedRec.ShowDialog();
                    FillGridMu();
                    break;

                case EhrMeasureType.SummaryOfCare:
                    FormEhrSummaryOfCare FormSoC = new FormEhrSummaryOfCare();
                    FormSoC.PatCur = PatCur;
                    FormSoC.ShowDialog();
                    FillGridMu();
                    break;

                case EhrMeasureType.SummaryOfCareElectronic:
                    FormEhrSummaryOfCare FormSoCE = new FormEhrSummaryOfCare();
                    FormSoCE.PatCur = PatCur;
                    FormSoCE.ShowDialog();
                    FillGridMu();
                    break;

                case EhrMeasureType.SecureMessaging:
                    if (PrefC.GetInt(PrefName.MeaningfulUseTwo) == 2)                           /*Modified Stage 2*/
                    {
                        FormWebMailMessageEdit FormWMME = new FormWebMailMessageEdit(PatCur.PatNum);
                        FormWMME.ShowDialog();
                        FillGridMu();
                    }
                    break;

                case EhrMeasureType.FamilyHistory:
                    FormMed = new FormMedical(PatNotCur, PatCur, "tabFamHealthHist");
                    FormMed.ShowDialog();
                    FillGridMu();
                    break;

                case EhrMeasureType.ElectronicNote:
                    //Sign a Note
                    break;

                case EhrMeasureType.CPOE_RadiologyOrdersOnly:
                case EhrMeasureType.CPOE_LabOrdersOnly:
                    if (DataConnection.DBtype == DatabaseType.Oracle)
                    {
                        MsgBox.Show(this, "Labs not supported with Oracle");
                        break;
                    }
                    FormEhrLabOrders FormLab = new FormEhrLabOrders();
                    FormLab.PatCur = PatCur;
                    FormLab.ShowDialog();
                    FillGridMu();
                    break;

                case EhrMeasureType.LabImages:
                    if (DataConnection.DBtype == DatabaseType.Oracle)
                    {
                        MsgBox.Show(this, "Labs not supported with Oracle");
                        break;
                    }
                    FormEhrLabOrders FormLO = new FormEhrLabOrders();
                    FormLO.PatCur = PatCur;
                    FormLO.ShowDialog();
                    FillGridMu();
                    break;

                case EhrMeasureType.DrugDrugInteractChecking:
                    EhrMeasureEvent measureEventDDIC = new EhrMeasureEvent();
                    measureEventDDIC.DateTEvent = DateTime.Now;
                    measureEventDDIC.EventType  = EhrMeasureEventType.DrugDrugInteractChecking;
                    measureEventDDIC.MoreInfo   = EhrMeasureEvents.GetLatestInfoByType(EhrMeasureEventType.DrugDrugInteractChecking);
                    measureEventDDIC.IsNew      = true;
                    FormEhrMeasureEventEdit FormDDIC = new FormEhrMeasureEventEdit(measureEventDDIC);
                    FormDDIC.MeasureDescript = "Explain how you have enabled Drug-Drug Interaction Checking";
                    FormDDIC.ShowDialog();
                    if (FormDDIC.DialogResult == DialogResult.OK)
                    {
                        FillGridMu();
                    }
                    break;

                case EhrMeasureType.DrugFormularyChecking:
                    EhrMeasureEvent measureEventDFC = new EhrMeasureEvent();
                    measureEventDFC.DateTEvent = DateTime.Now;
                    measureEventDFC.EventType  = EhrMeasureEventType.DrugFormularyChecking;
                    measureEventDFC.MoreInfo   = EhrMeasureEvents.GetLatestInfoByType(EhrMeasureEventType.DrugFormularyChecking);
                    measureEventDFC.IsNew      = true;
                    FormEhrMeasureEventEdit FormDFC = new FormEhrMeasureEventEdit(measureEventDFC);
                    FormDFC.MeasureDescript = "Explain how you have enabled Drug Formulary Checks";
                    FormDFC.ShowDialog();
                    if (FormDFC.DialogResult == DialogResult.OK)
                    {
                        FillGridMu();
                    }
                    break;

                case EhrMeasureType.ProtectElectHealthInfo:
                    EhrMeasureEvent measureEventPEHI = new EhrMeasureEvent();
                    measureEventPEHI.DateTEvent = DateTime.Now;
                    measureEventPEHI.EventType  = EhrMeasureEventType.ProtectElectHealthInfo;
                    measureEventPEHI.MoreInfo   = EhrMeasureEvents.GetLatestInfoByType(EhrMeasureEventType.ProtectElectHealthInfo);
                    measureEventPEHI.IsNew      = true;
                    FormEhrMeasureEventEdit FormPEHI = new FormEhrMeasureEventEdit(measureEventPEHI);
                    FormPEHI.MeasureDescript = "Have you performed your security risk analysis?  Explain.";
                    FormPEHI.ShowDialog();
                    if (FormPEHI.DialogResult == DialogResult.OK)
                    {
                        FillGridMu();
                    }
                    break;

                case EhrMeasureType.ImmunizationRegistries:
                    EhrMeasureEvent measureEventIR = new EhrMeasureEvent();
                    measureEventIR.DateTEvent = DateTime.Now;
                    measureEventIR.EventType  = EhrMeasureEventType.ImmunizationRegistries;
                    measureEventIR.MoreInfo   = EhrMeasureEvents.GetLatestInfoByType(EhrMeasureEventType.ImmunizationRegistries);
                    measureEventIR.IsNew      = true;
                    FormEhrMeasureEventEdit FormIR = new FormEhrMeasureEventEdit(measureEventIR);
                    FormIR.MeasureDescript = "Check with your state agency for guidance and recommendations.  Usually excluded.  Explain.";
                    FormIR.ShowDialog();
                    if (FormIR.DialogResult == DialogResult.OK)
                    {
                        FillGridMu();
                    }
                    break;

                case EhrMeasureType.SyndromicSurveillance:
                    EhrMeasureEvent measureEventSS = new EhrMeasureEvent();
                    measureEventSS.DateTEvent = DateTime.Now;
                    measureEventSS.EventType  = EhrMeasureEventType.SyndromicSurveillance;
                    measureEventSS.MoreInfo   = EhrMeasureEvents.GetLatestInfoByType(EhrMeasureEventType.SyndromicSurveillance);
                    measureEventSS.IsNew      = true;
                    FormEhrMeasureEventEdit FormSS = new FormEhrMeasureEventEdit(measureEventSS);
                    FormSS.MeasureDescript = "Check with your state agency for guidance and recommendations.  Usually excluded.  Explain.";
                    FormSS.ShowDialog();
                    if (FormSS.DialogResult == DialogResult.OK)
                    {
                        FillGridMu();
                    }
                    break;

                case EhrMeasureType.PatientList:
                    FormPatListEHR2014 FormPL = new FormPatListEHR2014();
                    FormPL.ShowDialog();
                    FillGridMu();
                    break;

                case EhrMeasureType.ClinicalInterventionRules:
                    FormCdsTriggers FormET = new FormCdsTriggers();
                    FormET.ShowDialog();
                    FillGridMu();
                    break;
                }
            }
            if (e.Col == 4)
            {
                switch (listMu[e.Row].MeasureType)
                {
                case EhrMeasureType.MedReconcile:
                    int compare = EhrMeasures.CompareReferralsToReconciles(PatNum);
                    if (compare == 1 || compare == 0)
                    {
                        FormReferralSelect FormRS = new FormReferralSelect();
                        FormRS.IsDoctorSelectionMode = true;
                        FormRS.IsSelectionMode       = true;
                        FormRS.ShowDialog();
                        if (FormRS.DialogResult == DialogResult.OK)
                        {
                            List <RefAttach> RefAttachList = RefAttaches.RefreshFiltered(PatNum, false, 0);
                            RefAttach        refattach     = new RefAttach();
                            refattach.ReferralNum = FormRS.SelectedReferral.ReferralNum;
                            refattach.PatNum      = PatNum;
                            refattach.RefType     = ReferralType.RefFrom;
                            refattach.RefDate     = DateTimeOD.Today;
                            if (FormRS.SelectedReferral.IsDoctor)                                     //whether using ehr or not
                            //we're not going to ask.  That's stupid.
                            //if(MsgBox.Show(this,MsgBoxButtons.YesNo,"Is this an incoming transition of care from another provider?")){
                            {
                                refattach.IsTransitionOfCare = true;
                            }
                            int order = 0;
                            for (int i = 0; i < RefAttachList.Count; i++)
                            {
                                if (RefAttachList[i].ItemOrder > order)
                                {
                                    order = RefAttachList[i].ItemOrder;
                                }
                            }
                            refattach.ItemOrder = order + 1;
                            RefAttaches.Insert(refattach);
                            SecurityLogs.MakeLogEntry(Permissions.RefAttachAdd, PatNum, "Referred From " + Referrals.GetNameFL(refattach.ReferralNum));
                            FormMedicationReconcile FormMedRec = new FormMedicationReconcile();
                            FormMedRec.PatCur = PatCur;
                            FormMedRec.ShowDialog();
                        }
                    }
                    else if (compare == -1)
                    {
                        FormMedicationReconcile FormMedRec = new FormMedicationReconcile();
                        FormMedRec.PatCur = PatCur;
                        FormMedRec.ShowDialog();
                    }
                    FillGridMu();
                    //ResultOnClosing=EhrFormResult.Referrals;
                    //Close();
                    break;

                case EhrMeasureType.SummaryOfCare:
                case EhrMeasureType.SummaryOfCareElectronic:
                    FormReferralsPatient FormRefSum = new FormReferralsPatient();
                    FormRefSum.PatNum = PatCur.PatNum;
                    FormRefSum.ShowDialog();
                    FillGridMu();
                    //ResultOnClosing=EhrFormResult.Referrals;
                    //Close();
                    break;

                case EhrMeasureType.Lab:
                    //Redundant now that everything is done from one window
                    break;

                case EhrMeasureType.CPOE_RadiologyOrdersOnly:
                    if (DataConnection.DBtype == DatabaseType.Oracle)
                    {
                        MsgBox.Show(this, "Labs not supported with Oracle");
                        break;
                    }
                    //As of v15.4 we started storing radiology orders at the procedure level by flagging the procedure itself as IsCpoe.
                    //Show the radiology order window which will be the best way for the provider to mark "radiology orders" as CPOE.
                    FormRadOrderList FormROL = new FormRadOrderList(Security.CurUser);
                    FormROL.ShowDialog();                            //Do not use a non-modal window in this case due to needing to refresh the grid after closing.
                    //FormEhrLabOrders FormRad=new FormEhrLabOrders();
                    //FormRad.PatCur=PatCur;
                    //FormRad.ShowDialog();
                    FillGridMu();
                    break;
                }
            }
        }
Пример #3
0
        private void FillGrid()
        {
            RefAttachList = RefAttaches.RefreshFiltered(PatNum, true, 0);
            string referralDescript = DisplayFields.GetForCategory(DisplayFieldCategory.PatientInformation)
                                      .FirstOrDefault(x => x.InternalName == "Referrals")?.Description;

            if (string.IsNullOrWhiteSpace(referralDescript))             //either not displaying the Referral field or no description entered, default to 'Referral (other)'
            {
                referralDescript = Lan.g(this, "Referral (other)");
            }
            gridMain.BeginUpdate();
            gridMain.ListGridColumns.Clear();
            gridMain.ListGridColumns.Add(new GridColumn(Lan.g("TableRefList", "Referral Type"), 85));
            gridMain.ListGridColumns.Add(new GridColumn(Lan.g("TableRefList", "Name"), 120));
            gridMain.ListGridColumns.Add(new GridColumn(Lan.g("TableRefList", "Date"), 65));
            gridMain.ListGridColumns.Add(new GridColumn(Lan.g("TableRefList", "Status"), 70));
            gridMain.ListGridColumns.Add(new GridColumn(Lan.g("TableRefList", "Proc"), 120));
            gridMain.ListGridColumns.Add(new GridColumn(Lan.g("TableRefList", "Note"), 170));
            gridMain.ListGridColumns.Add(new GridColumn(Lan.g("TableRefList", "Email"), 190));
            gridMain.ListGridRows.Clear();
            bool          hasInvalidRef = false;
            GridRow       row;
            List <string> listRefTypeNames = new List <string>()
            {
                Lan.g(this, "To"), Lan.g(this, "From"), referralDescript
            };

            for (int i = 0; i < RefAttachList.Count; i++)
            {
                RefAttach refAttachCur = RefAttachList[i];
                if (ProcNum != 0 && !checkShowAll.Checked &&
                    ProcNum != refAttachCur.ProcNum)
                {
                    continue;
                }
                row = new GridRow();
                row.Cells.Add(listRefTypeNames[(int)refAttachCur.RefType]);
                row.Cells.Add(Referrals.GetNameFL(refAttachCur.ReferralNum));
                if (refAttachCur.RefDate.Year < 1880)
                {
                    row.Cells.Add("");
                }
                else
                {
                    row.Cells.Add(refAttachCur.RefDate.ToShortDateString());
                }
                row.Cells.Add(Lan.g("enumReferralToStatus", refAttachCur.RefToStatus.ToString()));
                if (refAttachCur.ProcNum == 0)
                {
                    row.Cells.Add("");
                }
                else
                {
                    Procedure proc = Procedures.GetOneProc(refAttachCur.ProcNum, false);
                    string    str  = Procedures.GetDescription(proc);
                    row.Cells.Add(str);
                }
                row.Cells.Add(refAttachCur.Note);
                Referral referral = ReferralL.GetReferral(refAttachCur.ReferralNum, false);
                if (referral == null)
                {
                    hasInvalidRef = true;
                    continue;
                }
                row.Cells.Add(referral.EMail);
                row.Tag = refAttachCur;
                gridMain.ListGridRows.Add(row);
            }
            if (hasInvalidRef)
            {
                ReferralL.ShowReferralErrorMsg();
            }
            gridMain.EndUpdate();
            for (int i = 0; i < RefAttachList.Count; i++)
            {
                if (RefAttachList[i].RefAttachNum == DefaultRefAttachNum)
                {
                    gridMain.SetSelected(i, true);
                    break;
                }
            }
        }