Esempio n. 1
0
        public void InitializeDoctorList()
        {
            tabDoctorCards.Controls.Clear();
            List <GetBriefQueue_Result> allQueues = null;

            allQueues = MerkDBBusinessLogicEngine.GetBriefQueue(null, null, null, null);

            List <IGrouping <int, GetBriefQueue_Result> > groupedByList = allQueues.GroupBy(item => item.DoctorID).ToList();

            if (groupedByList.Count == 0)
            {
                return;
            }

            if (CheckButtonDictionaryList == null)
            {
                CheckButtonDictionaryList = new Dictionary <int, QueueManager_DoctorCard_UC>();
            }

            foreach (IGrouping <int, GetBriefQueue_Result> queueResults in groupedByList)
            {
                QueueManager_DoctorCard_UC doctorCard = new QueueManager_DoctorCard_UC();
                doctorCard.Dock = DockStyle.Right;
                Doctor_cu doctor =
                    Doctor_cu.ItemsList.Find(item => Convert.ToInt32(item.Person_CU_ID).Equals(Convert.ToInt32(queueResults.Key)));
                if (doctor == null)
                {
                    continue;
                }
                doctorCard.Initiaize(doctor, this);
                tabDoctorCards.Controls.Add(doctorCard);

                CheckButtonDictionaryList.Add(doctor.Person_CU_ID, doctorCard);
            }
        }
        public void Initialize()
        {
            if (ApplicationStaticConfiguration.ActiveLoginUser == null)
            {
                return;
            }

            List <StationPoint_cu> stationPointsList =
                MerkDBBusinessLogicEngine.GetOrganizationMachineStationPoint(ApplicationStaticConfiguration
                                                                             .OrganizationMachine);

            CommonViewsActions.FillGridlookupEdit(lkeStationPoint, stationPointsList, "Name_S");

            //List<StationPointStage_cu> stationPointStagesList =
            //	MerkDBBusinessLogicEngine.GetOrganizationMachineStationPointStages(
            //		ApplicationStaticConfiguration.OrganizationMachine, ApplicationStaticConfiguration.Application);
            //if (stationPointStagesList != null && stationPointStagesList.Count > 0)
            //{
            //	stationPointStagesList = stationPointStagesList.OrderBy(item => item.OrderIndex).ToList();
            //	MerkDBBusinessLogicEngine.ActiveStationPointStage = stationPointStagesList.FirstOrDefault();
            //}

            //CommonViewsActions.FillGridlookupEdit(lkeStationPointStages, stationPointStagesList, "StationPointStageFullName");
            //if (MerkDBBusinessLogicEngine.ActiveStationPointStage != null)
            //{
            //	StationPoint_cu stationPoint = StationPoint_cu.ItemsList.Find(item =>
            //		Convert.ToInt32(item.ID)
            //			.Equals(Convert.ToInt32(MerkDBBusinessLogicEngine.ActiveStationPointStage.StationPoint_CU_ID)));
            //	MerkDBBusinessLogicEngine.ActiveStationPoint = stationPoint;
            //	lkeStationPointStages.EditValue = MerkDBBusinessLogicEngine.ActiveStationPointStage.ID;
            //}
        }
        public void Initialize(Patient_cu patient, AdmissionType admissionType)
        {
            ActivePatient     = patient;
            readyInvoicesList = MerkDBBusinessLogicEngine.ReadyInvoicesForAction(admissionType, null, null, true, true, false, null,
                                                                                 null, ActivePatient);

            gridControl1.DataSource = readyInvoicesList.Count > 0 ? readyInvoicesList : null;
        }
        private void gridView1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            var rowObject = CommonViewsActions.GetSelectedRowObject(layoutView1);

            if (rowObject is ReadyInvoicesForAction)
            {
                InvoiceObject =
                    MerkDBBusinessLogicEngine.GetInvoiceFullTree(Convert.ToInt32((rowObject as ReadyInvoicesForAction).InvoiceID));
                btnPayments.Enabled = true;
            }
        }
 private void btnStage_Click(object sender, System.EventArgs e)
 {
     if (MerkDBBusinessLogicEngine.UpdateAndSave_QueueManagerStatus(QueueResult.QueueManagerID,
                                                                    DB_QueueManagerStatus.Waiting))
     {
         XtraMessageBox.Show("Sent Successfully");
     }
     else
     {
         XtraMessageBox.Show("Not Sent");
     }
 }
        private void btnPlay_Click(object sender, System.EventArgs e)
        {
            DialogResult result = XtraMessageBox.Show("Do you want to run serving this patient ?", "Notice",
                                                      MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);

            switch (result)
            {
            case DialogResult.Yes:
                if (ActiveQueueResult == null || MerkDBBusinessLogicEngine.ActiveStationPoint == null ||
                    MerkDBBusinessLogicEngine.ActiveStationPointStage == null)
                {
                    return;
                }

                if (ActiveQueueResult == null)
                {
                    return;
                }

                DB_QueueManagerStatus queueManagerStatus = (DB_QueueManagerStatus)ActiveQueueResult.QueueStatusID;
                switch (queueManagerStatus)
                {
                case DB_QueueManagerStatus.Paused:
                case DB_QueueManagerStatus.Served:
                    List <GetPreviousMedicalVisits_Result> previousVisitsList =
                        MerkDBBusinessLogicEngine.GetPreviousMedicalVisitsList(PatientID, true,
                                                                               null, DateTime.Now.Date, DateTime.Now.Date, DoctorID);
                    if (previousVisitsList.Count > 0)
                    {
                        PEMRBusinessLogic.ActivePEMRObject =
                            PEMRBusinessLogic.GetVisitFullTree(previousVisitsList[0]);
                    }
                    break;

                case DB_QueueManagerStatus.Waiting:
                    PEMRBusinessLogic.ActiveVisitTimming = PEMRBusinessLogic.CreateNewVisitTiming(
                        ActiveQueueResult.InvoiceDetailID, MerkDBBusinessLogicEngine.ActiveStationPoint.ID,
                        MerkDBBusinessLogicEngine.ActiveStationPointStage.ID, DoctorID, DateTime.Now,
                        ApplicationStaticConfiguration.PEMRSavingMode);
                    break;
                }

                if (PEMRBusinessLogic.ActiveVisitTimming == null)
                {
                    return;
                }

                ParentPEMRContainer.ShowLeftQueuePanel(true);
                ParentPEMRContainer.ShowPEMRHistoryContainer(ActiveQueueResult, PEMRBusinessLogic.ActiveVisitTimming, true);
                break;
            }
        }
        public void ShowPEMRHistoryContainer(GetBriefQueue_Result queueResult, VisitTiming visitTiming, bool doShow)
        {
            if (doShow)
            {
                QueueResult       = queueResult;
                ActiveVisitTiming = visitTiming;
                InvoiceDetailID   = QueueResult.InvoiceDetailID;
                switch (ApplicationStaticConfiguration.Application)
                {
                case DB_Application.PEMR:
                    CommonViewsActions.ShowUserControl(ref _pemrServingContainer, splitContainerControl1.Panel2);
                    if (_pemrServingContainer != null)
                    {
                        DB_QueueManagerStatus queueManagerStatus = (DB_QueueManagerStatus)queueResult.QueueStatusID;
                        switch (queueManagerStatus)
                        {
                        case DB_QueueManagerStatus.Waiting:
                            PEMRBusinessLogic.ActivePEMRObject            = PEMRBusinessLogic.GetPEMRObject(InvoiceDetailID);
                            PEMRBusinessLogic.ActivePEMRObject.PEMRStatus = PEMRStatus.CreateNewVisit;
                            break;
                        }

                        _pemrServingContainer.InitializePatientInfo(this, QueueResult, ActiveVisitTiming,
                                                                    PEMRBusinessLogic.ActivePEMRObject);
                        MerkDBBusinessLogicEngine.UpdateAndSave_QueueManagerStatus(queueResult.QueueManagerID,
                                                                                   DB_QueueManagerStatus.Serving);
                        lytPatientQueue.Visibility   = LayoutVisibility.Never;
                        lytPreviousVisits.Visibility = LayoutVisibility.Never;
                        emptySpaceItem1.Visibility   = LayoutVisibility.Never;
                        if (ApplicationStaticConfiguration.ActiveLoginUser != null &&
                            ApplicationStaticConfiguration.ActiveLoginUser.FullName != null)
                        {
                            btnUserDropDown.Text = PEMRBusinessLogic.ActiveLoggedInUser.FullName.ToString();
                        }
                    }
                    break;

                case DB_Application.OphalmologySurgeryApplication:

                    break;
                }
            }
            else
            {
                splitContainerControl1.Panel2.Controls.Clear();
                _pemrQueueContainer.Initialize(MerkDBBusinessLogicEngine.ActiveStationPointStage);
                lytPatientQueue.Visibility   = LayoutVisibility.Always;
                lytPreviousVisits.Visibility = LayoutVisibility.Always;
                emptySpaceItem1.Visibility   = LayoutVisibility.Always;
            }
        }
        private void btnSearch_Click(object sender, System.EventArgs e)
        {
            tabQueue.Controls.Clear();

            if ((txtPatientID.EditValue == null || string.IsNullOrEmpty(txtPatientID.Text) ||
                 string.IsNullOrWhiteSpace(txtPatientID.Text)) &&
                (lkeDoctors.EditValue == null || string.IsNullOrEmpty(lkeDoctors.Text) ||
                 string.IsNullOrWhiteSpace(lkeDoctors.Text)) &&
                (txtPatientName.EditValue == null || string.IsNullOrEmpty(txtPatientName.Text) ||
                 string.IsNullOrWhiteSpace(txtPatientName.Text)) &&
                (lkeService.EditValue == null || string.IsNullOrEmpty(lkeService.Text) ||
                 string.IsNullOrWhiteSpace(lkeService.Text)) &&
                (dtFrom.EditValue == null || string.IsNullOrEmpty(dtFrom.Text) ||
                 string.IsNullOrWhiteSpace(dtFrom.Text)) &&
                (dtTo.EditValue == null || string.IsNullOrEmpty(dtTo.Text) || string.IsNullOrWhiteSpace(dtTo.Text)))
            {
                XtraMessageBox.Show("You should write a search criteria before searching.", "Error",
                                    MessageBoxButtons.OK, MessageBoxIcon.Stop, MessageBoxDefaultButton.Button1, DefaultBoolean.Default);
                return;
            }

            List <GetPreviousMedicalVisits_Result> previousVisitsList =
                MerkDBBusinessLogicEngine.GetPreviousMedicalVisitsList(txtPatientID.EditValue, true,
                                                                       lkeService.EditValue, dtFrom.EditValue, dtTo.EditValue, lkeDoctors.EditValue);

            if (previousVisitsList.Count == 0)
            {
                XtraMessageBox.Show("No Previous visits found.", "Not Found",
                                    MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, DefaultBoolean.Default);
                return;
            }

            foreach (GetPreviousMedicalVisits_Result medicalVisitsResult in previousVisitsList)
            {
                PEMR_PreviousVisitCard_UC card = new PEMR_PreviousVisitCard_UC();
                card.Dock = DockStyle.Top;
                PEMRObject pemrObject = PEMRBusinessLogic.GetVisitFullTree(medicalVisitsResult);
                if (pemrObject == null)
                {
                    return;
                }
                card.Initialize(ParentContainer, pemrObject, medicalVisitsResult);
                tabQueue.Controls.Add(card);
            }
        }
        private void gridControl1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            var rowObject = CommonViewsActions.GetSelectedRowObject(gridView1);

            if (rowObject is GetInvoiceForAddmission_Result)
            {
                InvoiceObject invoiceObject =
                    MerkDBBusinessLogicEngine.GetInvoiceFullTree(((GetInvoiceForAddmission_Result)rowObject).InvoiceID);
                if (invoiceObject == null)
                {
                    return;
                }

                MainPatientInvoiceActions patienActions = new MainPatientInvoiceActions();
                patienActions.Initialize(invoiceObject);
                PopupBaseForm.ShowAsPopup(patienActions, this);
            }
        }
Esempio n. 10
0
        private void btnReturnToPausedQueue_Click(object sender, EventArgs e)
        {
            DialogResult result = XtraMessageBox.Show("Do you put this Patient to the Paused Queue ?", "Note",
                                                      MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, DefaultBoolean.Default);

            switch (result)
            {
            case DialogResult.Yes:
                PEMRBusinessLogic.UpdateAll(PEMRBusinessLogic.ActivePEMRObject);
                MerkDBBusinessLogicEngine.UpdateAndSave_QueueManagerStatus(QueueResult.QueueManagerID,
                                                                           DB_QueueManagerStatus.Paused);
                PEMRContainer.ShowLeftQueuePanel(false);
                PEMRContainer.ShowPEMRHistoryContainer(QueueResult, ActiveVisitTiming, false);
                ClearControls(true);
                SetupTabs();
                break;
            }
        }
Esempio n. 11
0
        public void Initialize(StationPointStage_cu activeStage, GetBriefQueue_Result queueResult)
        {
            if (activeStage == null)
            {
                return;
            }

            ActiveStage = activeStage;
            QueueResult = queueResult;

            List <StationPointStage_cu> stationPointStagesList =
                MerkDBBusinessLogicEngine.GetOrganizationMachineStationPointStages(
                    ApplicationStaticConfiguration.OrganizationMachine, DB_Application.All);

            if (stationPointStagesList != null && stationPointStagesList.Count > 0)
            {
                stationPointStagesList = stationPointStagesList.OrderBy(item => item.OrderIndex).ToList();
                MerkDBBusinessLogicEngine.ActiveStationPointStage = ActiveStage;
            }

            CommonViewsActions.FillGridlookupEdit(lkeStationPointStages, stationPointStagesList, "Name_S");
            if (MerkDBBusinessLogicEngine.ActiveStationPointStage != null)
            {
                lkeStationPointStages.EditValue = MerkDBBusinessLogicEngine.ActiveStationPointStage.ID;
            }

            if (stationPointStagesList != null)
            {
                foreach (StationPointStage_cu stationPointStageCu in stationPointStagesList.FindAll(item =>
                                                                                                    !Convert.ToInt32(item.ID).Equals(Convert.ToInt32(ActiveStage.ID))))
                {
                    SendToStageCard_UC card = new SendToStageCard_UC();
                    card.Dock = DockStyle.Top;
                    card.Initialize(stationPointStageCu, QueueResult);
                    tabPage.Controls.Add(card);
                }
            }
        }
        private void lkeStationPoint_EditValueChanged(object sender, EventArgs e)
        {
            if (lkeStationPoint.EditValue == null)
            {
                return;
            }

            tabWaiting.Controls.Clear();
            tabPaused.Controls.Clear();
            tabServed.Controls.Clear();

            StationPoint_cu stationPoint = StationPoint_cu.ItemsList.Find(item =>
                                                                          Convert.ToInt32(item.ID).Equals(Convert.ToInt32(lkeStationPoint.EditValue)));

            if (stationPoint == null)
            {
                return;
            }
            List <StationPointStage_cu> stagesList = MerkDBBusinessLogicEngine.GetStationPointStagesList(stationPoint);

            MerkDBBusinessLogicEngine.ActiveStationPoint = stationPoint;

            CommonViewsActions.FillGridlookupEdit(lkeStationPointStages, stagesList, "Name_S");
        }
        public void Initialize()
        {
            tabInPatientWithInsurance.Controls.Clear();
            tabInPatientWithoutInsurance.Controls.Clear();
            tabOutPatientWithInsurance.Controls.Clear();
            tabOutPatientWithoutInsurance.Controls.Clear();

            List <ReadyInvoicesForAction> readyInvoices =
                MerkDBBusinessLogicEngine.ReadyInvoicesForAction(AdmissionType.InPatientAdmission, null, null, true, false, false,
                                                                 null, null, null);

            if (readyInvoices != null)
            {
                readyInvoices.AddRange(MerkDBBusinessLogicEngine.ReadyInvoicesForAction(AdmissionType.InPatientAdmission, null,
                                                                                        null, true, true, false,
                                                                                        null, null, null));
            }
            if (readyInvoices != null)
            {
                readyInvoices.AddRange(MerkDBBusinessLogicEngine.ReadyInvoicesForAction(AdmissionType.ClinicAdmission, null, null,
                                                                                        true, false, false,
                                                                                        null, null, null));
            }
            if (readyInvoices != null)
            {
                readyInvoices.AddRange(MerkDBBusinessLogicEngine.ReadyInvoicesForAction(AdmissionType.ClinicAdmission, null, null,
                                                                                        true, true, false,
                                                                                        null, null, null));
            }

            if (readyInvoices == null || readyInvoices.Count == 0)
            {
                return;
            }

            lblInvoicesCount.Text = "عدد الفواتير : " + readyInvoices.Count.ToString();

            List <ReadyInvoicesForAction> inPatientWithInsuranceInvoices =
                MerkDBBusinessLogicEngine.GetSpecificReadyInvoices(readyInvoices, true, true);
            List <ReadyInvoicesForAction> inPatientWithoutInsuranceInvoices =
                MerkDBBusinessLogicEngine.GetSpecificReadyInvoices(readyInvoices, false, true);
            List <ReadyInvoicesForAction> outPatientWithInsuranceInvoices =
                MerkDBBusinessLogicEngine.GetSpecificReadyInvoices(readyInvoices, true, false);
            List <ReadyInvoicesForAction> outPatientWithoutInsuranceInvoices =
                MerkDBBusinessLogicEngine.GetSpecificReadyInvoices(readyInvoices, false, false);

            #region InPatient with Insurance

            if (inPatientWithInsuranceInvoices.Count > 0)
            {
                foreach (ReadyInvoicesForAction readyInvoice in inPatientWithInsuranceInvoices)
                {
                    InvoiceManagerPatientQueueCard_UC card = new InvoiceManagerPatientQueueCard_UC();
                    card.Dock = DockStyle.Top;
                    string reservationTime = "";

                    card.Initialize(ParentControlWithHeaderIcon, readyInvoice);
                    tabInPatientWithInsurance.Controls.Add(card);
                }
            }

            #endregion

            #region InPatient without Insurance

            if (inPatientWithoutInsuranceInvoices.Count > 0)
            {
                foreach (ReadyInvoicesForAction readyInvoice in inPatientWithoutInsuranceInvoices)
                {
                    InvoiceManagerPatientQueueCard_UC card = new InvoiceManagerPatientQueueCard_UC();
                    card.Dock = DockStyle.Top;
                    string reservationTime = "";

                    reservationTime = "20 يوم";

                    card.Initialize(ParentControlWithHeaderIcon, readyInvoice);

                    tabInPatientWithoutInsurance.Controls.Add(card);
                }
            }

            #endregion

            #region OutPatient with Insurance

            if (outPatientWithInsuranceInvoices.Count > 0)
            {
                foreach (ReadyInvoicesForAction readyInvoice in outPatientWithInsuranceInvoices)
                {
                    InvoiceManagerPatientQueueCard_UC card = new InvoiceManagerPatientQueueCard_UC();
                    card.Dock = DockStyle.Top;
                    string reservationTime = "";

                    reservationTime = "20 يوم";

                    card.Initialize(ParentControlWithHeaderIcon, readyInvoice);

                    tabOutPatientWithInsurance.Controls.Add(card);
                }
            }

            #endregion

            #region OutPatient without Insurance

            if (outPatientWithoutInsuranceInvoices.Count > 0)
            {
                foreach (ReadyInvoicesForAction readyInvoice in outPatientWithoutInsuranceInvoices)
                {
                    InvoiceManagerPatientQueueCard_UC card = new InvoiceManagerPatientQueueCard_UC();
                    card.Dock = DockStyle.Top;
                    string reservationTime = "";

                    reservationTime = "20 يوم";

                    card.Initialize(ParentControlWithHeaderIcon, readyInvoice);
                    tabOutPatientWithoutInsurance.Controls.Add(card);
                }
            }

            #endregion
        }
Esempio n. 14
0
        private void btnAddToList_Click(object sender, EventArgs e)
        {
            if (Line_InventoryItemAvaliableQuantity == null || Line_InventoryItem_CU_ID == null ||
                Line_UnitMeasurment_CU_ID == null || Line_Quantity == null || Line_PricePerUnit == null)
            {
                return;
            }

            InventoryItem_cu inventoryItem =
                InventoryItem_cu.ItemsList.Find(item => Convert.ToInt32(item.ID).Equals(Convert.ToInt32(Line_InventoryItem_CU_ID)));

            if (inventoryItem == null || inventoryItem.InventoryTrackingUnitMeasurment == null)
            {
                return;
            }

            UnitMeasurment_cu transactionUnitMeasurment =
                UnitMeasurment_cu.ItemsList.Find(item => Convert.ToInt32(item.ID).Equals(Convert.ToInt32(Line_UnitMeasurment_CU_ID)));
            double transactionQuantity = Convert.ToDouble(Line_Quantity);

            if (InventoryBusinessLogicEngine.CanBeAdded((DB_InvoiceType)InvoiceTypeID, inventoryItem, InventoryHousing_CU_ID,
                                                        transactionUnitMeasurment, transactionQuantity))
            {
                FinanceInvoiceDetail financeInvoiceDetail = MerkDBBusinessLogicEngine.CreateNew_FinanceInvoiceDetail(null,
                                                                                                                     Line_InventoryItem_CU_ID, Line_PricePerUnit, Line_UnitMeasurment_CU_ID, Line_Quantity, InvoiceCreationDate,
                                                                                                                     Line_DiscountAmount, Line_DiscountTypeID, Line_Description, Line_IsSurchargeApplied, 0);
                if (financeInvoiceDetail == null)
                {
                    return;
                }

                if (FinanceInvoiceDetailsList == null)
                {
                    FinanceInvoiceDetailsList = new List <FinanceInvoiceDetail>();
                }

                if (InventoryBusinessLogicEngine.List_ActiveFinanceInvoiceDetails == null)
                {
                    InventoryBusinessLogicEngine.List_ActiveFinanceInvoiceDetails = new List <FinanceInvoiceDetail>();
                }
                if (FinanceInvoiceDetailsList.Count == 0)
                {
                    FinanceInvoiceDetailsList.Add(financeInvoiceDetail);
                }
                else
                {
                    if (FinanceInvoiceDetailsList.Exists(
                            item =>
                            Convert.ToInt32(item.InventoryItem_CU_ID).Equals(Convert.ToInt32(financeInvoiceDetail.InventoryItem_CU_ID)) &&
                            Convert.ToInt32(item.UnitMeasurment_CU_ID).Equals(Convert.ToInt32(financeInvoiceDetail.UnitMeasurment_CU_ID))))
                    {
                        DialogResult result =
                            XtraMessageBox.Show("قـد تمـت إضـافتــــه مـن قبــل." + "\r\n\r\n" + "هـل تـريــد إضـافتـــه ؟", "تنبيـــه",
                                                MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, DefaultBoolean.Default);
                        switch (result)
                        {
                        case DialogResult.Yes:
                            FinanceInvoiceDetailsList.Add(financeInvoiceDetail);
                            break;
                        }
                    }
                    else
                    {
                        FinanceInvoiceDetailsList.Add(financeInvoiceDetail);
                    }
                }
            }
            else
            {
                switch ((DB_InvoiceType)InvoiceTypeID)
                {
                case DB_InvoiceType.SellingInvoice:
                    XtraMessageBox.Show(
                        "لا يمكنـك الإضـافـــة، حيـث أن العــدد أكبــر مـن الحــد الأدنـى للمخــزون" + "\r\n\r\n" + "الحـــد الأدنـــــى : " +
                        inventoryItem.StockMinLevel + " " + inventoryItem.InventoryTrackingUnitMeasurment.Name_P, "تنبيـــه",
                        MessageBoxButtons.OK, MessageBoxIcon.Stop,
                        MessageBoxDefaultButton.Button1, DefaultBoolean.Default);
                    break;

                case DB_InvoiceType.PurchasingInvoice:
                    XtraMessageBox.Show(
                        "لا يمكنـك الإضـافـــة، حيـث أن الكميـــة المضـافــــــة تخطــت الحـــد الأقصـــى للمخـــــزون" + "\r\n\r\n" +
                        "الحـــد الأقصـــى : " + inventoryItem.StockMaxLevel + " " + inventoryItem.InventoryTrackingUnitMeasurment.Name_P,
                        "تنبيـــه", MessageBoxButtons.OK, MessageBoxIcon.Stop, MessageBoxDefaultButton.Button1);
                    break;
                }
            }

            grdInventoryItems.DataSource = FinanceInvoiceDetailsList;
            InventoryBusinessLogicEngine.List_ActiveFinanceInvoiceDetails = FinanceInvoiceDetailsList;
            spnAccummulativeAmount.EditValue =
                spnAmountPaid.EditValue      = FinancialBusinessLogicLibrary.GetTotalNet(FinanceInvoiceDetailsList);

            grdInventoryItems.RefreshDataSource();
            ClearControls();
        }
        public override bool AfterSave()
        {
            if ((Invoice)ActiveDBItem == null)
            {
                return(false);
            }

            if (Grid_InvoiceDetails != null && (Grid_InvoiceDetails).Count > 0)
            {
                switch (CommonTransactionType)
                {
                case DB_CommonTransactionType.CreateNew:
                    foreach (InvoiceDetail invoiceDetail in Grid_InvoiceDetails)
                    {
                        QueueManager manager =
                            MerkDBBusinessLogicEngine.CreateNewQueueManager((Invoice)ActiveDBItem, invoiceDetail);
                        if (manager != null)
                        {
                            manager.SaveChanges();
                        }
                    }
                    break;

                case DB_CommonTransactionType.UpdateExisting:
                    if (Grid_InvoiceDetails.Count >= ((Invoice)ActiveDBItem).InvoiceDetails.Count)
                    {
                        foreach (InvoiceDetail invoiceDetail in Grid_InvoiceDetails)
                        {
                            if (((Invoice)ActiveDBItem).List_InvoiceDetails != null && ((Invoice)ActiveDBItem).InvoiceDetails.Count > 0)
                            {
                                if (((Invoice)ActiveDBItem).List_InvoiceDetails.ToList()
                                    .Exists(item => Convert.ToInt32(item.ID)
                                            .Equals(Convert.ToInt32(invoiceDetail.ID))))
                                {
                                    continue;
                                }
                            }
                            QueueManager manager = MerkDBBusinessLogicEngine.CreateNewQueueManager((Invoice)ActiveDBItem, invoiceDetail);
                            if (manager != null)
                            {
                                manager.SaveChanges();
                            }
                        }
                    }
                    else
                    {
                        foreach (InvoiceDetail invoiceDetail in ((Invoice)ActiveDBItem).InvoiceDetails)
                        {
                            if (Grid_InvoiceDetails.ToList()
                                .Exists(item => Convert.ToInt32(item.ID).Equals(Convert.ToInt32(invoiceDetail.ID))))
                            {
                                continue;
                            }
                            QueueManager queueManager = invoiceDetail.QueueManagers.ToList()
                                                        .Find(item => Convert.ToInt32(item.InvoiceDetailID)
                                                              .Equals(Convert.ToInt32(invoiceDetail.ID)));
                            if (queueManager == null)
                            {
                                continue;
                            }
                            queueManager.DBCommonTransactionType = DB_CommonTransactionType.UpdateExisting;
                            queueManager.IsOnDuty = false;
                            queueManager.SaveChanges();
                        }
                    }

                    break;
                }
            }

            return(true);
        }
        private void btnOpen_Click(object sender, EventArgs e)
        {
            List <string> copiedImagesList =
                FileManager.FileDialogeAndCopy(ActiveSelectedPatient.Person_CU_ID.ToString(),
                                               FileManager.GetServerDirectoryPath(DB_ServerDirectory.ScanDirectory), true,
                                               FileSelectionFilter.Images, ref errorMessage,
                                               ActiveSelectedPatient.Person_CU_ID + "_" + (int)ImageType_P_ID + "_" + DateTime.Now.Date.Day +
                                               "_" + DateTime.Now.Date.Month + "_" + DateTime.Now.Date.Year);

            if (!string.IsNullOrEmpty(errorMessage))
            {
                XtraMessageBox.Show(errorMessage, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error,
                                    MessageBoxDefaultButton.Button1, DefaultBoolean.Default);
                errorMessage = string.Empty;
                return;
            }

            if (copiedImagesList == null || copiedImagesList.Count == 0)
            {
                return;
            }

            if (ImagesList == null)
            {
                ImagesList = new List <PatientAttachment_cu>();
            }

            foreach (string fileName in copiedImagesList)
            {
                PatientAttachment_cu patientAttachment = MerkDBBusinessLogicEngine.CreateNewPatientAttachement(
                    ActiveSelectedPatient.Person_CU_ID,
                    Path.GetFileName(fileName), fileName, (DB_ImageType)ImageType_P_ID, Description,
                    ApplicationStaticConfiguration.ActiveLoginUser.Person_CU_ID);

                switch (ActiveScanningMode)
                {
                case ScanningMode.Regular:
                    if (MerkDBBusinessLogicEngine.SavePatientAttachement(patientAttachment))
                    {
                        ImagesList.Add(patientAttachment);
                    }
                    break;

                case ScanningMode.MedicalVisit:
                    VisitTiming_Attachment visitTimingAttachement =
                        PEMRBusinessLogic.CreateNew_VisitTiming_Attachment(
                            patientAttachment, ApplicationStaticConfiguration.ActiveLoginUser.Person_CU_ID);
                    if (visitTimingAttachement != null)
                    {
                        if (PEMRBusinessLogic.ActivePEMRObject.List_VisitTiming_Attachment == null)
                        {
                            PEMRBusinessLogic.ActivePEMRObject.List_VisitTiming_Attachment = new List <VisitTiming_Attachment>();
                        }
                    }
                    PEMRBusinessLogic.ActivePEMRObject.List_VisitTiming_Attachment.Add(visitTimingAttachement);
                    ImagesList.Add(patientAttachment);

                    break;
                }
            }

            txtDescription.EditValue = null;
            txtPictureName.EditValue = null;
            CommonViewsActions.FillListBoxControl(lstImageNames, ImagesList, "ImageName");
            lstImageNames.Refresh();
        }
Esempio n. 17
0
        public void Initialize()
        {
            tabWaitingPatients.Controls.Clear();
            tabServedPatients.Controls.Clear();
            tabPausedPatients.Controls.Clear();

            List <GetBriefQueue_Result> allQueues = null;

            allQueues = MerkDBBusinessLogicEngine.GetBriefQueue((int?)DoctorID, null, null, null);

            if (allQueues == null || allQueues.Count == 0)
            {
                return;
            }

            List <GetBriefQueue_Result> waitingQueue =
                allQueues.FindAll(item => Convert.ToInt32(item.QueueStatusID).Equals((int)DB_QueueManagerStatus.Waiting));
            List <GetBriefQueue_Result> pausedQueue =
                allQueues.FindAll(item => Convert.ToInt32(item.QueueStatusID).Equals((int)DB_QueueManagerStatus.Paused));
            List <GetBriefQueue_Result> servedQueue =
                allQueues.FindAll(item => Convert.ToInt32(item.QueueStatusID).Equals((int)DB_QueueManagerStatus.Served));

            #region waitingQueue
            if (waitingQueue.Count > 0)
            {
                foreach (GetBriefQueue_Result queue in waitingQueue)
                {
                    InvoiceManagerPatientQueueCard_UC card = new InvoiceManagerPatientQueueCard_UC();
                    card.Dock = DockStyle.Top;

                    Invoice invoice = DBCommon.GetEntity <Invoice>(queue.InvoiceID);
                    if (invoice == null)
                    {
                        continue;
                    }
                    Patient_cu patient = DBCommon.GetEntity <Patient_cu>(invoice.Patient_CU_ID);
                    if (patient == null)
                    {
                        continue;
                    }
                    InvoiceDetail invoiceDetail = DBCommon.GetEntity <InvoiceDetail>(queue.InvoiceDetailID);
                    if (invoiceDetail == null)
                    {
                        continue;
                    }
                    QueueManager queueManager = DBCommon.GetEntity <QueueManager>(queue.QueueManagerID);
                    if (queueManager == null)
                    {
                        continue;
                    }
                    card.Initialize(this, invoice, patient, invoiceDetail, queueManager, queue.PatientID.ToString(), queue.PatientFullName,
                                    queue.DoctorID.ToString(), queue.DoctorFullName, queue.ServiceName, queue.ReservationTime.ToString());
                    tabWaitingPatients.Controls.Add(card);
                }
            }
            #endregion

            #region PausedQueue
            if (pausedQueue.Count > 0)
            {
                foreach (GetBriefQueue_Result queue in pausedQueue)
                {
                    InvoiceManagerPatientQueueCard_UC card = new InvoiceManagerPatientQueueCard_UC();
                    card.Dock = DockStyle.Top;

                    Invoice invoice = DBCommon.GetEntity <Invoice>(queue.InvoiceID);
                    if (invoice == null)
                    {
                        continue;
                    }
                    Patient_cu patient = DBCommon.GetEntity <Patient_cu>(invoice.Patient_CU_ID);
                    if (patient == null)
                    {
                        continue;
                    }
                    InvoiceDetail invoiceDetail = DBCommon.GetEntity <InvoiceDetail>(queue.InvoiceDetailID);
                    if (invoiceDetail == null)
                    {
                        continue;
                    }
                    QueueManager queueManager = DBCommon.GetEntity <QueueManager>(queue.QueueManagerID);
                    if (queueManager == null)
                    {
                        continue;
                    }
                    card.Initialize(this, invoice, patient, invoiceDetail, queueManager, queue.PatientID.ToString(), queue.PatientFullName,
                                    queue.DoctorID.ToString(), queue.DoctorFullName, queue.ServiceName, queue.ReservationTime.ToString());
                    tabPausedPatients.Controls.Add(card);
                }
            }
            #endregion

            #region servedQueue
            if (servedQueue.Count > 0)
            {
                foreach (GetBriefQueue_Result queue in servedQueue)
                {
                    InvoiceManagerPatientQueueCard_UC card = new InvoiceManagerPatientQueueCard_UC();
                    card.Dock = DockStyle.Top;

                    Invoice invoice = DBCommon.GetEntity <Invoice>(queue.InvoiceID);
                    if (invoice == null)
                    {
                        continue;
                    }
                    Patient_cu patient = DBCommon.GetEntity <Patient_cu>(invoice.Patient_CU_ID);
                    if (patient == null)
                    {
                        continue;
                    }
                    InvoiceDetail invoiceDetail = DBCommon.GetEntity <InvoiceDetail>(queue.InvoiceDetailID);
                    if (invoiceDetail == null)
                    {
                        continue;
                    }
                    QueueManager queueManager = DBCommon.GetEntity <QueueManager>(queue.QueueManagerID);
                    if (queueManager == null)
                    {
                        continue;
                    }
                    card.Initialize(this, invoice, patient, invoiceDetail, queueManager, queue.PatientID.ToString(), queue.PatientFullName,
                                    queue.DoctorID.ToString(), queue.DoctorFullName, queue.ServiceName, queue.ReservationTime.ToString());
                    tabServedPatients.Controls.Add(card);
                }
            }
            #endregion

            if (DoctorID != null)
            {
                Doctor_cu doctor =
                    Doctor_cu.ItemsList.Find(item => Convert.ToInt32(item.Person_CU_ID).Equals(Convert.ToInt32(DoctorID)));
                if (doctor != null)
                {
                    tabDoctorName.Text = doctor.Name_P;
                }
            }
        }
        public void Initialize(StationPointStage_cu stationPointStage)
        {
            if (stationPointStage == null)
            {
                return;
            }

            tabWaiting.Controls.Clear();
            tabPaused.Controls.Clear();
            tabServed.Controls.Clear();

            List <GetBriefQueue_Result> allQueues = MerkDBBusinessLogicEngine.GetBriefQueue(
                ApplicationStaticConfiguration.ActiveLoginUser.Person_CU_ID, stationPointStage.ID, DateTime.Now.Date,
                null);

            if (allQueues == null || allQueues.Count == 0)
            {
                return;
            }

            List <GetBriefQueue_Result> waitingQueue = allQueues.FindAll(item =>
                                                                         Convert.ToInt32(item.QueueStatusID).Equals((int)DB_QueueManagerStatus.Waiting));

            List <GetBriefQueue_Result> pausedQueue = allQueues.FindAll(item =>
                                                                        Convert.ToInt32(item.QueueStatusID).Equals((int)DB_QueueManagerStatus.Paused));

            List <GetBriefQueue_Result> servedQueue = allQueues.FindAll(item =>
                                                                        Convert.ToInt32(item.QueueStatusID).Equals((int)DB_QueueManagerStatus.Served));

            if (waitingQueue.Count > 0)
            {
                foreach (GetBriefQueue_Result queueResult in waitingQueue.OrderByDescending(
                             item => item.ReservationTime))
                {
                    PEMRPatientQueueCard card = new PEMRPatientQueueCard();
                    card.Dock = DockStyle.Top;
                    card.Initialize(ParentContainer, queueResult);
                    tabWaiting.Controls.Add(card);
                }
            }

            if (pausedQueue.Count > 0)
            {
                foreach (GetBriefQueue_Result queue in pausedQueue.OrderByDescending(item => item.ReservationTime))
                {
                    PEMRPatientQueueCard card = new PEMRPatientQueueCard();
                    card.Dock = DockStyle.Top;
                    card.Initialize(ParentContainer, queue);
                    tabPaused.Controls.Add(card);
                }
            }

            if (servedQueue.Count > 0)
            {
                foreach (GetBriefQueue_Result queue in servedQueue.OrderByDescending(item => item.ReservationTime))
                {
                    PEMRPatientQueueCard card = new PEMRPatientQueueCard();
                    card.Dock = DockStyle.Top;
                    card.Initialize(ParentContainer, queue);
                    tabServed.Controls.Add(card);
                }
            }
        }
        private void btnScanner_Click(object sender, EventArgs e)
        {
            if (txtPictureName.EditValue == null)
            {
                XtraMessageBox.Show("يجــب كتابــة إســم الصـــورة", "Note",
                                    MessageBoxButtons.OK, MessageBoxIcon.Error,
                                    MessageBoxDefaultButton.Button1, DefaultBoolean.Default);
                return;
            }

            string savedPath = "";
            Image  image     = WIAScannerEngine.ScanFile(ActiveSelectedPatient.Person_CU_ID.ToString(),
                                                         ActiveSelectedPatient.Person_CU_ID + "_" + (int)ImageType_P_ID + "_" + DateTime.Now.Date.Day + "_" +
                                                         DateTime.Now.Date.Month + "_" + DateTime.Now.Date.Year + "_" + txtPictureName.Text, ImageFormat.JPEG,
                                                         false, ref savedPath, ref errorMessage);

            if (image == null)
            {
                if (!string.IsNullOrEmpty(errorMessage) && !string.IsNullOrWhiteSpace(errorMessage))
                {
                    XtraMessageBox.Show(errorMessage, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error,
                                        MessageBoxDefaultButton.Button1, DefaultBoolean.Default);
                    errorMessage = string.Empty;
                    return;
                }
            }

            if (!string.IsNullOrEmpty(errorMessage) && !string.IsNullOrWhiteSpace(errorMessage))
            {
                XtraMessageBox.Show(errorMessage, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error,
                                    MessageBoxDefaultButton.Button1, DefaultBoolean.Default);
                errorMessage = string.Empty;
                return;
            }

            pictureEdit1.Image = image;
            if (ImagesList == null)
            {
                ImagesList = new List <PatientAttachment_cu>();
            }

            PatientAttachment_cu patientAttachment = MerkDBBusinessLogicEngine.CreateNewPatientAttachement(
                ActiveSelectedPatient.Person_CU_ID,
                txtPictureName.Text, savedPath, (DB_ImageType)ImageType_P_ID, Description,
                ApplicationStaticConfiguration.ActiveLoginUser.Person_CU_ID);
            VisitTiming_InvestigationResult investigationResult    = null;
            VisitTiming_Attachment          visitTimingAttachement = null;

            switch (ActiveScanningMode)
            {
            case ScanningMode.Regular:
                if (MerkDBBusinessLogicEngine.SavePatientAttachement(patientAttachment))
                {
                    ImagesList.Add(patientAttachment);
                }
                break;

            case ScanningMode.MedicalVisit:
                visitTimingAttachement =
                    PEMRBusinessLogic.CreateNew_VisitTiming_Attachment(
                        patientAttachment, ApplicationStaticConfiguration.ActiveLoginUser.Person_CU_ID);
                if (visitTimingAttachement != null)
                {
                    if (PEMRBusinessLogic.ActivePEMRObject.List_VisitTiming_Attachment == null)
                    {
                        PEMRBusinessLogic.ActivePEMRObject.List_VisitTiming_Attachment = new List <VisitTiming_Attachment>();
                    }
                    PEMRBusinessLogic.ActivePEMRObject.List_VisitTiming_Attachment.Add(visitTimingAttachement);
                    ImagesList.Add(patientAttachment);

                    switch (MedicalType)
                    {
                    case MedicalType.InvestigationResult:
                        investigationResult =
                            PEMRBusinessLogic.CreateNew_VisitTiming_InvestigationResult(visitTimingAttachement,
                                                                                        Active_VisitTiming_InvestigationReservation,
                                                                                        ApplicationStaticConfiguration.ActiveLoginUser.Person_CU_ID);
                        if (investigationResult != null)
                        {
                            if (PEMRBusinessLogic.ActivePEMRObject.List_VisitTiming_InvestigationResult == null)
                            {
                                PEMRBusinessLogic.ActivePEMRObject.List_VisitTiming_InvestigationResult =
                                    new List <VisitTiming_InvestigationResult>();
                            }
                        }
                        PEMRBusinessLogic.ActivePEMRObject.List_VisitTiming_InvestigationResult.Add(
                            investigationResult);
                        break;
                    }
                }

                break;
            }

            txtDescription.EditValue = null;
            txtPictureName.EditValue = null;
            CommonViewsActions.FillListBoxControl(lstImageNames, ImagesList, "ImageName");
            lstImageNames.Refresh();

            if (investigationResult != null && visitTimingAttachement != null &&
                PEMRBusinessLogic.ActiveVisitTimming != null && SaveImmediately)
            {
                visitTimingAttachement.VisitTimingID = PEMRBusinessLogic.ActiveVisitTimming.ID;
                investigationResult.VisitTiming_InvestigationReservationID =
                    Active_VisitTiming_InvestigationReservation.ID;
                if (investigationResult.SaveChanges())
                {
                    PatientAttachment_cu.ItemsList.Add(patientAttachment);
                }
            }
        }