private void butSlip_Click(object sender, EventArgs e)
        {
            int idx = gridMain.GetSelectedIndex();

            if (idx == -1)
            {
                MsgBox.Show(this, "Please select a referral first");
                return;
            }
            Referral referral = ReferralL.GetReferral(((RefAttach)gridMain.ListGridRows[idx].Tag).ReferralNum);

            if (referral == null)
            {
                return;
            }
            SheetDef sheetDef;

            if (referral.Slip == 0)
            {
                sheetDef = SheetsInternal.GetSheetDef(SheetInternalType.ReferralSlip);
            }
            else
            {
                sheetDef = SheetDefs.GetSheetDef(referral.Slip);
            }
            Sheet sheet = SheetUtil.CreateSheet(sheetDef, PatNum);

            SheetParameter.SetParameter(sheet, "PatNum", PatNum);
            SheetParameter.SetParameter(sheet, "ReferralNum", referral.ReferralNum);
            SheetFiller.FillFields(sheet);
            SheetUtil.CalculateHeights(sheet);
            FormSheetFillEdit.ShowForm(sheet);
        }
示例#2
0
        ///<summary>Supply a template sheet as well as a list of primary keys.  This method creates a new collection of sheets which each have a parameter of int.  It also fills the sheets with data from the database, so no need to run that separately.</summary>
        public static List <Sheet> CreateBatch(SheetDef sheetDef, List <long> priKeys)
        {
            //we'll assume for now that a batch sheet has only one parameter, so no need to check for values.
            //foreach(SheetParameter param in sheet.Parameters){
            //	if(param.IsRequired && param.ParamValue==null){
            //		throw new ApplicationException(Lan.g("Sheet","Parameter not specified for sheet: ")+param.ParamName);
            //	}
            //}
            List <Sheet> retVal = new List <Sheet>();
            //List<int> paramVals=(List<int>)sheet.Parameters[0].ParamValue;
            Sheet          newSheet;
            SheetParameter paramNew;

            for (int i = 0; i < priKeys.Count; i++)
            {
                newSheet            = CreateSheet(sheetDef);
                newSheet.Parameters = new List <SheetParameter>();
                paramNew            = new SheetParameter(sheetDef.Parameters[0].IsRequired, sheetDef.Parameters[0].ParamName);
                paramNew.ParamValue = priKeys[i];
                newSheet.Parameters.Add(paramNew);
                SheetFiller.FillFields(newSheet);
                retVal.Add(newSheet);
            }
            return(retVal);
        }
示例#3
0
        private void butPrint_Click(object sender, System.EventArgs e)
        {
            //only visible if sheet==null.
            if (comboSendStatus.SelectedIndex == (int)RxSendStatus.InElectQueue ||
                comboSendStatus.SelectedIndex == (int)RxSendStatus.SentElect)
            {
                //do not change status
            }
            else
            {
                comboSendStatus.SelectedIndex = (int)RxSendStatus.Printed;
            }
            if (!SaveRx())
            {
                return;
            }
            SheetDef        sheetDef;
            List <SheetDef> customSheetDefs = SheetDefs.GetCustomForType(SheetTypeEnum.Rx);

            if (customSheetDefs.Count == 0)
            {
                sheetDef = SheetsInternal.GetSheetDef(SheetInternalType.Rx);
            }
            else
            {
                sheetDef = customSheetDefs[0];
                SheetDefs.GetFieldsAndParameters(sheetDef);
            }
            sheet = SheetUtil.CreateSheet(sheetDef, PatCur.PatNum);
            SheetParameter.SetParameter(sheet, "RxNum", RxPatCur.RxNum);
            SheetFiller.FillFields(sheet);
            SheetUtil.CalculateHeights(sheet, this.CreateGraphics());
            SheetPrinting.PrintRx(sheet, RxPatCur.IsControlled);
            DialogResult = DialogResult.OK;
        }
示例#4
0
        private void butAdd_Click(object sender, EventArgs e)
        {
            FormSheetPicker FormS = new FormSheetPicker();

            FormS.SheetType = SheetTypeEnum.ExamSheet;
            FormS.ShowDialog();
            if (FormS.DialogResult != DialogResult.OK)
            {
                return;
            }
            SheetDef sheetDef;
            Sheet    sheet = null;       //only useful if not Terminal

            for (int i = 0; i < FormS.SelectedSheetDefs.Count; i++)
            {
                sheetDef = FormS.SelectedSheetDefs[i];
                sheet    = SheetUtil.CreateSheet(sheetDef, PatNum);
                SheetParameter.SetParameter(sheet, "PatNum", PatNum);
                SheetFiller.FillFields(sheet);
                SheetUtil.CalculateHeights(sheet, this.CreateGraphics());
            }
            FormSheetFillEdit FormSF = new FormSheetFillEdit(sheet);

            FormSF.ShowDialog();
            if (FormSF.DialogResult == DialogResult.OK)
            {
                FillGrid();
                gridMain.SetSelected(false);                         //unselect all rows
                gridMain.SetSelected(gridMain.Rows.Count - 1, true); //Select the newly added row. Always last, since ordered by date.
            }
        }
        public List <SheetParameter> GetSheetParameters()
        {
            List <SheetParameter> parameters = new List <SheetParameter>();

            try
            {
                if (null != connection && null != command)
                {
                    using (SQLiteCommand cmd = new SQLiteCommand(connection))
                    {
                        cmd.CommandText = "SELECT * FROM SheetParameters";
                        using (SQLiteDataReader reader = cmd.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                SheetParameter parameter = new SheetParameter();
                                parameter.ParameterId   = reader.GetGuid(reader.GetOrdinal("Parameter_Id"));
                                parameter.ParameterName = reader.GetString(reader.GetOrdinal("Parameter_Name"));
                                parameter.ParameterType = reader.GetString(reader.GetOrdinal("Parameter_Type"));
                                parameters.Add(parameter);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                string message = ex.Message;
            }
            return(parameters);
        }
示例#6
0
        ///<summary></summary>
        public static void PrintAppointment(long aptNum)
        {
            SheetDef        sheetDef;
            List <SheetDef> customSheetDefs = SheetDefs.GetCustomForType(SheetTypeEnum.LabelAppointment);

            if (customSheetDefs.Count == 0)
            {
                sheetDef = SheetsInternal.GetSheetDef(SheetInternalType.LabelAppointment);
            }
            else
            {
                sheetDef = customSheetDefs[0];
                SheetDefs.GetFieldsAndParameters(sheetDef);
            }
            Sheet sheet = SheetUtil.CreateSheet(sheetDef);

            SheetParameter.SetParameter(sheet, "AptNum", aptNum);
            SheetFiller.FillFields(sheet);
            try {
                SheetPrinting.Print(sheet);
            }
            catch (Exception ex) {
                MessageBox.Show(ex.Message);
            }
        }
示例#7
0
        private void butLettersPreview_Click(object sender, EventArgs e)
        {
            //Create letters. loop through each row and insert information into sheets,
            //take all the sheets and add to one giant pdf for preview.
            if (gridMain.SelectedIndices.Length == 0)
            {
                MsgBox.Show(this, "Please select patient(s) first.");
                return;
            }
            FormSheetPicker FormS = new FormSheetPicker();

            FormS.SheetType = SheetTypeEnum.PatientLetter;
            FormS.ShowDialog();
            if (FormS.DialogResult != DialogResult.OK)
            {
                return;
            }
            SheetDef     sheetDef;
            Sheet        sheet      = null;
            List <Sheet> listSheets = new List <Sheet>();         //for saving

            for (int i = 0; i < FormS.SelectedSheetDefs.Count; i++)
            {
                PdfDocument document        = new PdfDocument();
                PdfPage     page            = new PdfPage();
                string      filePathAndName = "";
                for (int j = 0; j < gridMain.SelectedIndices.Length; j++)
                {
                    sheetDef = FormS.SelectedSheetDefs[i];
                    sheet    = SheetUtil.CreateSheet(sheetDef, PIn.Long(((DataRow)gridMain.SelectedGridRows[j].Tag)["PatNum"].ToString()));
                    SheetParameter.SetParameter(sheet, "PatNum", PIn.Long(((DataRow)gridMain.SelectedGridRows[j].Tag)["PatNum"].ToString()));
                    SheetFiller.FillFields(sheet);
                    sheet.SheetFields.Sort(SheetFields.SortDrawingOrderLayers);
                    SheetUtil.CalculateHeights(sheet);
                    SheetPrinting.PagesPrinted = 0;                  //Clear out the pages printed variable before printing all pages for this pdf.
                    int pageCount = Sheets.CalculatePageCount(sheet, SheetPrinting.PrintMargin);
                    for (int k = 0; k < pageCount; k++)
                    {
                        page = document.AddPage();
                        SheetPrinting.CreatePdfPage(sheet, page, null);
                    }
                    listSheets.Add(sheet);
                }
                filePathAndName = PrefC.GetRandomTempFile(".pdf");
                document.Save(filePathAndName);
                if (ODBuild.IsWeb())
                {
                    ThinfinityUtils.HandleFile(filePathAndName);
                }
                else
                {
                    Process.Start(filePathAndName);
                }
                DialogResult = DialogResult.OK;
            }
            if (MsgBox.Show(this, MsgBoxButtons.YesNo, "Would you like to save the sheets for the selected patients?"))
            {
                Sheets.SaveNewSheetList(listSheets);
            }
        }
 private static void ReadSheetParameters(ref RevitSheetData sheetData)
 {
     try
     {
         sheetData.SheetParameters.Clear();
         using (SQLiteCommand cmd = new SQLiteCommand(connection))
         {
             cmd.CommandText = "SELECT * FROM SheetParameters";
             using (SQLiteDataReader reader = cmd.ExecuteReader())
             {
                 while (reader.Read())
                 {
                     SheetParameter parameter = new SheetParameter();
                     parameter.ParameterId   = reader.GetGuid(reader.GetOrdinal("Parameter_Id"));
                     parameter.ParameterName = reader.GetString(reader.GetOrdinal("Parameter_Name"));
                     parameter.ParameterType = reader.GetString(reader.GetOrdinal("Parameter_Type"));
                     sheetData.SheetParameters.Add(parameter);
                 }
             }
         }
     }
     catch (Exception ex)
     {
         string message = ex.Message;
     }
 }
示例#9
0
 private void butOK_Click(object sender, EventArgs e)
 {
     SaveSignature();            //"saves" signature to TPCur, does not save to DB.
     TreatPlans.Update(TPcur);   //save signature to DB.
     TPcur.ListProcTPs = ProcTPs.RefreshForTP(TPcur.TreatPlanNum);
     if (DoPrintUsingSheets)
     {
         SheetParameter.SetParameter(SheetTP, "TreatPlan", TPcur);               //update TP on sheet to have new signature for generating pdfs
     }
     if (TPcur.Signature.Length > 0 && TPcur.DocNum == 0 && PrefC.GetBool(PrefName.TreatPlanSaveSignedToPdf))
     {
         SigChanged = true;
     }
     else if (TPcur.DocNum > 0 && !Documents.DocExists(TPcur.DocNum) && PrefC.GetBool(PrefName.TreatPlanSaveSignedToPdf))
     {
         //Setting SigChanged to True will resave document below.
         SigChanged = MsgBox.Show(this, MsgBoxButtons.YesNo, "Cannot find saved copy of signed PDF, would you like to resave the document?");
     }
     if (PrefC.GetBool(PrefName.TreatPlanSaveSignedToPdf) && SaveDocDelegate != null && SigChanged && TPcur.Signature.Length > 0)
     {
         List <Document> docs = SaveDocDelegate(true, SheetTP);
         if (docs.Count > 0)
         {
             TPcur.DocNum = docs[0].DocNum;                //attach first Doc to TP.
             TreatPlans.Update(TPcur);                     //update docnum. must be called after signature is updated.
         }
     }
     SecurityLogs.MakeLogEntry(Permissions.TreatPlanEdit, TPcur.PatNum, "Sign TP");
     DialogResult = DialogResult.OK;
 }
示例#10
0
        private void dataGridParameters_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
        {
            try
            {
                List <string> paramNames = GetExistingParameters();

                DataGridRow row     = e.Row;
                TextBox     textBox = e.EditingElement as TextBox;
                if (null != row && null != textBox)
                {
                    SheetParameter oldParameter     = row.Item as SheetParameter;
                    string         updatedParameter = textBox.Text;

                    if (paramNames.Contains(updatedParameter))
                    {
                        e.Cancel = true;
                        MessageBox.Show(updatedParameter + " already exists.\nPlease enter a different name.", "Existing Sheet Parameter", MessageBoxButton.OK, MessageBoxImage.Information);
                        return;
                    }

                    int index = rvtSheetData.SheetParameters.IndexOf(oldParameter);
                    this.RvtSheetData.SheetParameters.RemoveAt(index);

                    oldParameter.ParameterName = updatedParameter;
                    this.RvtSheetData.SheetParameters.Insert(index, oldParameter);

                    bool databaseUpdated = SheetDataWriter.ChangeSheetParameter(oldParameter, CommandType.UPDATE);
                }
            }
            catch (Exception ex)
            {
                string message = ex.Message;
            }
        }
示例#11
0
        private void buttonDelete_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (null != dataGridParameters.SelectedItem)
                {
                    SheetParameter selectedParam = dataGridParameters.SelectedItem as SheetParameter;

                    MessageBoxResult msgResult = MessageBox.Show("Are you sure you want to delete the parameter [" + selectedParam.ParameterName + "]?\nAll data currently stored under the parameter will be lost.", "Delete Parameter", MessageBoxButton.YesNo, MessageBoxImage.Question);
                    if (msgResult == MessageBoxResult.Yes)
                    {
                        this.RvtSheetData.SheetParameters.Remove(selectedParam);
                        bool updatedTable = SheetDataWriter.ChangeSheetParameter(selectedParam, CommandType.DELETE);

                        //delete from RevitSheet
                        for (int i = 0; i < rvtSheetData.Sheets.Count; i++)
                        {
                            this.RvtSheetData.Sheets[i].SheetParameters.Remove(selectedParam.ParameterId);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                string message = ex.Message;
            }
        }
示例#12
0
        private void butSlip_Click(object sender, EventArgs e)
        {
            int idx = gridMain.GetSelectedIndex();

            if (idx == -1)
            {
                MsgBox.Show(this, "Please select a referral first");
                return;
            }
            Referral referral = Referrals.GetReferral(RefAttachList[idx].ReferralNum);
            SheetDef sheetDef;

            if (referral.Slip == 0)
            {
                sheetDef = SheetsInternal.GetSheetDef(SheetInternalType.ReferralSlip);
            }
            else
            {
                sheetDef = SheetDefs.GetSheetDef(referral.Slip);
            }
            Sheet sheet = SheetUtil.CreateSheet(sheetDef, PatNum);

            SheetParameter.SetParameter(sheet, "PatNum", PatNum);
            SheetParameter.SetParameter(sheet, "ReferralNum", referral.ReferralNum);
            SheetFiller.FillFields(sheet);
            SheetUtil.CalculateHeights(sheet, this.CreateGraphics());
            FormSheetFillEdit FormS = new FormSheetFillEdit(sheet);

            FormS.ShowDialog();
            //grid will not be refilled, so no need to reselect.
        }
示例#13
0
        private void PrintClickHelper(bool isPreviewMode)
        {
            Sheet sheet = SheetUtil.CreateSheet(SheetDefs.GetInternalOrCustom(SheetInternalType.ERA));

            SheetParameter.GetParamByName(sheet.Parameters, "ERA").ParamValue = _x835;         //Required param
            SheetFiller.FillFields(sheet);
            SheetPrinting.Print(sheet, isPreviewMode: isPreviewMode);
        }
示例#14
0
        private void butAdd_Click(object sender, EventArgs e)
        {
            FormSheetPicker FormS = new FormSheetPicker();

            FormS.SheetType = SheetTypeEnum.PatientForm;
            FormS.ShowDialog();
            if (FormS.DialogResult != DialogResult.OK)
            {
                return;
            }
            SheetDef sheetDef;
            Sheet    sheet = null;       //only useful if not Terminal
            bool     isPatUsingEClipboard = MobileAppDevices.PatientIsAlreadyUsingDevice(PatNum);

            for (int i = 0; i < FormS.SelectedSheetDefs.Count; i++)
            {
                sheetDef = FormS.SelectedSheetDefs[i];
                if (FormS.TerminalSend && isPatUsingEClipboard && !sheetDef.HasMobileLayout)
                {
                    if (!MsgBox.Show(MsgBoxButtons.YesNo, $"The patient is currently using an eClipboard to fill out forms, but the " +
                                     $"{sheetDef.Description} sheet does not have a mobile layout and cannot be used with eClipboard. " +
                                     $"If you add this form to the patient's list it will not be shown in eClipboard. Do you still want to add this form?"))
                    {
                        continue;
                    }
                }
                sheet = SheetUtil.CreateSheet(sheetDef, PatNum);
                SheetParameter.SetParameter(sheet, "PatNum", PatNum);
                SheetFiller.FillFields(sheet);
                SheetUtil.CalculateHeights(sheet);
                if (FormS.TerminalSend)
                {
                    sheet.InternalNote   = "";                //because null not ok
                    sheet.ShowInTerminal = (byte)(Sheets.GetBiggestShowInTerminal(PatNum) + 1);
                    Sheets.SaveNewSheet(sheet);               //save each sheet.
                    //Push new sheet to eClipboard.
                    if (isPatUsingEClipboard && sheetDef.HasMobileLayout)
                    {
                        OpenDentBusiness.WebTypes.PushNotificationUtils.CI_AddSheet(sheet.PatNum, sheet.SheetNum);
                    }
                }
            }
            if (FormS.TerminalSend)
            {
                //do not show a dialog now.  User will need to click the terminal button.
                FillGrid();
                Signalods.SetInvalid(InvalidType.Kiosk);
            }
            else if (sheet != null)
            {
                FormSheetFillEdit.ShowForm(sheet, FormSheetFillEdit_FormClosing);
            }
        }
示例#15
0
        /// <summary>
        /// </summary>
        private Sheet CreateSheet(long PatNum, WebForms_Sheet webFormSheet)
        {
            Sheet newSheet = null;

            try{
                SheetDef sheetDef = new SheetDef((SheetTypeEnum)webFormSheet.SheetType);
                newSheet = SheetUtil.CreateSheet(sheetDef, PatNum);
                SheetParameter.SetParameter(newSheet, "PatNum", PatNum);
                newSheet.DateTimeSheet = webFormSheet.DateTimeSheet;
                newSheet.Description   = webFormSheet.Description;
                newSheet.Height        = webFormSheet.Height;
                newSheet.Width         = webFormSheet.Width;
                newSheet.FontName      = webFormSheet.FontName;
                newSheet.FontSize      = webFormSheet.FontSize;
                newSheet.SheetType     = (SheetTypeEnum)webFormSheet.SheetType;
                newSheet.IsLandscape   = webFormSheet.IsLandscape;
                newSheet.InternalNote  = "";
                newSheet.IsWebForm     = true;
                //loop through each variable in a single sheetfield
                foreach (WebForms_SheetField field in webFormSheet.SheetFields)
                {
                    SheetField sheetfield = new SheetField();
                    sheetfield.FieldName        = field.FieldName;
                    sheetfield.FieldType        = field.FieldType;
                    sheetfield.FontIsBold       = field.FontIsBold;
                    sheetfield.FontName         = field.FontName;
                    sheetfield.FontSize         = field.FontSize;
                    sheetfield.Height           = field.Height;
                    sheetfield.Width            = field.Width;
                    sheetfield.XPos             = field.XPos;
                    sheetfield.YPos             = field.YPos;
                    sheetfield.IsRequired       = field.IsRequired;
                    sheetfield.TabOrder         = field.TabOrder;
                    sheetfield.ReportableName   = field.ReportableName;
                    sheetfield.RadioButtonGroup = field.RadioButtonGroup;
                    sheetfield.RadioButtonValue = field.RadioButtonValue;
                    sheetfield.GrowthBehavior   = field.GrowthBehavior;
                    sheetfield.FieldValue       = field.FieldValue;
                    sheetfield.TextAlign        = field.TextAlign;
                    sheetfield.ItemColor        = field.ItemColor;
                    newSheet.SheetFields.Add(sheetfield);
                }                        // end of j loop
                Sheets.SaveNewSheet(newSheet);
                return(newSheet);
            }
            catch (Exception e) {
                gridMain.EndUpdate();
                MessageBox.Show(e.Message);
            }
            return(newSheet);
        }
示例#16
0
        private void butPrint_Click(object sender, System.EventArgs e)
        {
            if (textDate.errorProvider1.GetError(textDate) != "")
            {
                MsgBox.Show(this, "Please fix data entry errors first.");
                return;
            }
            if (IsNew)
            {
                if (!SaveToDB())
                {
                    return;
                }
            }
            else             //not new
                             //Only allowed to change date and bank account info, NOT attached checks.
                             //We enforce security here based on date displayed, not date entered.
                             //If user is trying to change date without permission:
            {
                DateTime date = PIn.Date(textDate.Text);
                if (Security.IsAuthorized(Permissions.DepositSlips, date, true))
                {
                    if (!SaveToDB())
                    {
                        return;
                    }
                }
                //if security.NotAuthorized, then it simply skips the save process before printing
            }
            SheetDef        sheetDef         = null;
            List <SheetDef> depositSheetDefs = SheetDefs.GetCustomForType(SheetTypeEnum.DepositSlip);

            if (depositSheetDefs.Count > 0)
            {
                sheetDef = depositSheetDefs[0];
                SheetDefs.GetFieldsAndParameters(sheetDef);
            }
            else
            {
                sheetDef = SheetsInternal.DepositSlip();
            }
            Sheet sheet = SheetUtil.CreateSheet(sheetDef, 0);

            SheetParameter.SetParameter(sheet, "DepositNum", DepositCur.DepositNum);
            SheetFiller.FillFields(sheet);
            SheetUtil.CalculateHeights(sheet, this.CreateGraphics());
            FormSheetFillEdit FormSF = new FormSheetFillEdit(sheet);

            FormSF.ShowDialog();
            DialogResult = DialogResult.OK;          //this is imporant, since we don't want to insert the deposit slip twice.
        }
示例#17
0
        public static bool ChangeSheetParameter(SheetParameter item, CommandType cmdType)
        {
            bool result = false;

            try
            {
                if (null != connection && null != command)
                {
                    switch (cmdType)
                    {
                    case CommandType.INSERT:
                        command.CommandText = @"INSERT INTO SheetParameters (Parameter_Id, Parameter_Name, Parameter_Type)" +
                                              "VALUES ('" + item.ParameterId.ToString() + "', @parameterName, '" + item.ParameterType + "')";
                        command.Parameters["@parameterName"].Value = item.ParameterName;
                        if (command.ExecuteNonQuery() > 0)
                        {
                            result = true;
                        }
                        break;

                    case CommandType.UPDATE:
                        command.CommandText = @"UPDATE SheetParameters SET Parameter_Name =  @parameterName, Parameter_Type = '" + item.ParameterType + "'" +
                                              " WHERE Parameter_Id = '" + item.ParameterId.ToString() + "'";
                        command.Parameters["@parameterName"].Value = item.ParameterName;
                        if (command.ExecuteNonQuery() > 0)
                        {
                            result = true;
                        }
                        break;

                    case CommandType.DELETE:
                        command.CommandText = "DELETE FROM SheetParameters WHERE Parameter_Id = '" + item.ParameterId.ToString() + "'";
                        if (command.ExecuteNonQuery() > 0)
                        {
                            result = true;
                        }
                        command.CommandText = "DELETE FROM SheetParameterValues WHERE ParameterValue_Parameter_Id = '" + item.ParameterId.ToString() + "'";
                        if (command.ExecuteNonQuery() > 0)
                        {
                            result = true;
                        }
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                string message = ex.Message;
            }
            return(result);
        }
示例#18
0
        private void butPrint_Click(object sender, EventArgs e)
        {
            Sheet sheet = SheetUtil.CreateSheet(SheetDefs.GetInternalOrCustom(SheetInternalType.ERA));
            X835  x835  = _x835.Copy();

            x835.ListClaimsPaid = new List <Hx835_Claim>()
            {
                _claimPaid
            };                                                                                      //Only print the current claim.
            SheetParameter.GetParamByName(sheet.Parameters, "ERA").ParamValue = x835;               //Required param
            SheetParameter.GetParamByName(sheet.Parameters, "IsSingleClaimPaid").ParamValue = true; //Value is null if not set
            SheetFiller.FillFields(sheet);
            SheetPrinting.Print(sheet, isPreviewMode: true);
        }
示例#19
0
        public static void PrintPatientLFPatNum(long patNum)
        {
            SheetDef sheetDef = SheetsInternal.GetSheetDef(SheetInternalType.LabelPatientLFPatNum);
            Sheet    sheet    = SheetUtil.CreateSheet(sheetDef);

            SheetParameter.SetParameter(sheet, "PatNum", patNum);
            SheetFiller.FillFields(sheet);
            try {
                SheetPrinting.Print(sheet);
            }
            catch (Exception ex) {
                MessageBox.Show(ex.Message);
            }
        }
示例#20
0
        public static void PrintCustomPatient(long patNum, SheetDef sheetDef)
        {
            SheetDefs.GetFieldsAndParameters(sheetDef);
            Sheet sheet = SheetUtil.CreateSheet(sheetDef);

            SheetParameter.SetParameter(sheet, "PatNum", patNum);
            SheetFiller.FillFields(sheet);
            try {
                SheetPrinting.Print(sheet);
            }
            catch (Exception ex) {
                MessageBox.Show(ex.Message);
            }
        }
示例#21
0
        /*private void buttonEmail_Click(object sender,EventArgs e) {
         *      int CurPatNum=CaseCur.PatNum;
         *      EmailMessage message=new EmailMessage();
         *      message.PatNum=CurPatNum;
         *      Patient pat=Patients.GetPat(CurPatNum);
         *      message.ToAddress="";//pat.Email;
         *      message.FromAddress=PrefC.GetString(PrefName.EmailSenderAddress");
         *      message.Subject=Lan.g(this,"RE: ")+pat.GetNameFL();
         *      FormEmailMessageEdit FormE=new FormEmailMessageEdit(message);
         *      FormE.IsNew=true;
         *      FormE.ShowDialog();
         *
         * }*/

        private void butSlip_Click(object sender, EventArgs e)
        {
            if (sheet == null)           //create new
            {
                if (!SaveToDb())
                {
                    return;
                }
                Laboratory lab = ListLabs[listLab.SelectedIndex];
                SheetDef   sheetDef;
                if (lab.Slip == 0)
                {
                    sheetDef = SheetsInternal.GetSheetDef(SheetInternalType.LabSlip);
                }
                else
                {
                    sheetDef = SheetDefs.GetSheetDef(lab.Slip);
                }
                sheet = SheetUtil.CreateSheet(sheetDef, CaseCur.PatNum);
                SheetParameter.SetParameter(sheet, "PatNum", CaseCur.PatNum);
                SheetParameter.SetParameter(sheet, "LabCaseNum", CaseCur.LabCaseNum);
                SheetFiller.FillFields(sheet);
                SheetUtil.CalculateHeights(sheet, this.CreateGraphics());
                FormSheetFillEdit FormS = new FormSheetFillEdit(sheet);
                FormS.ShowDialog();
                //if(FormS.DialogResult!=DialogResult.OK) {
                //	sheet=null;
                //	return;
                //}
            }
            else              //edit existing
            {
                SheetFields.GetFieldsAndParameters(sheet);
                FormSheetFillEdit FormS = new FormSheetFillEdit(sheet);
                FormS.ShowDialog();
                //if(FormS.DialogResult!=DialogResult.OK) {
                //	return;
                //}
            }
            //refresh
            sheet = Sheets.GetLabSlip(CaseCur.PatNum, CaseCur.LabCaseNum);
            if (sheet == null)
            {
                butSlip.Text = Lan.g(this, "New Slip");
            }
            else
            {
                butSlip.Text = Lan.g(this, "Edit Slip");
            }
        }
示例#22
0
        public ActionResult AdvanceSearch(
            string name     = null, DateTime?startTime = null, DateTime?endTime = null,
            double?minMoney = null, double?maxMoney    = null, SheetType?type   = null,
            int?RID         = null, string content     = null, Order order = Order.Time,
            Cost?Cost       = null, int page = 1, int rows                 = 20
            )
        {
            var parameter = new SheetParameter
            {
                Name      = name,
                StartTime = startTime,
                EndTime   = endTime,
                minMoney  = minMoney,
                maxMoney  = maxMoney,
                Type      = type,
                Order     = order,
                Deleted   = false,
                Page      = new PageParameter(page, rows)
            };

            if (parameter.Type.HasValue)
            {
                switch (parameter.Type.Value)
                {
                case SheetType.Daily:
                    parameter.RID = RID;
                    break;

                case SheetType.Errand:
                    parameter.Content = content;
                    break;

                case SheetType.Transfer:
                    parameter.Cost = Cost;
                    break;
                }
            }
            var list = Core.SheetViewManager.Search(parameter);

            ViewBag.List      = list;
            ViewBag.Parameter = parameter;
            var users      = Core.UserManager.GetAllUsers();
            var reportType = Core.Report_TypeManager.Get();

            ViewBag.Users      = users;
            ViewBag.ReportType = reportType;
            return(View());
        }
示例#23
0
 public Dictionary <string, List <SheetView> > Download(SheetParameter parameter)
 {
     using (var db = GetDbContext())
     {
         var query = db.SheetViews.Where(e => e.CheckTime.HasValue).AsQueryable();
         if (parameter.Type.HasValue)
         {
             query = query.Where(e => e.Type == parameter.Type.Value);
         }
         if (parameter.Deleted.HasValue)
         {
             query = query.Where(e => e.Deleted == parameter.Deleted.Value);
         }
         if (parameter.Cost.HasValue)
         {
             query = query.Where(e => e.Cost == parameter.Cost.Value);
         }
         if (!string.IsNullOrEmpty(parameter.Name))
         {
             query = query.Where(e => e.Name == parameter.Name);
         }
         if (parameter.StartTime.HasValue)
         {
             query = query.Where(e => e.CheckTime >= parameter.StartTime.Value);
         }
         if (parameter.EndTime.HasValue)
         {
             query = query.Where(e => e.CheckTime <= parameter.EndTime.Value);
         }
         if (parameter.minMoney.HasValue)
         {
             query = query.Where(e => e.Money >= parameter.minMoney.Value);
         }
         if (parameter.maxMoney.HasValue)
         {
             query = query.Where(e => e.Money <= parameter.maxMoney.Value);
         }
         //if (parameter.RID.HasValue)
         //{
         //    query = query.Where(e => e.RID == parameter.RID.Value);
         //}
         if (!string.IsNullOrEmpty(parameter.Content))
         {
             query = query.Where(e => (!string.IsNullOrEmpty(e.Place) && e.Place.ToLower().Contains(parameter.Content.ToLower()) || (!string.IsNullOrEmpty(e.Reason) && e.Reason.ToLower().Contains(parameter.Content.ToLower()))));
         }
         return(query.ToList().GroupBy(e => e.PrintNumber).ToDictionary(e => e.Key, e => e.ToList()));
     }
 }
示例#24
0
        public static void PrintText(long patNum, string text)
        {
            SheetDef sheetDef = SheetsInternal.GetSheetDef(SheetInternalType.LabelText);
            Sheet    sheet    = SheetUtil.CreateSheet(sheetDef);

            SheetParameter.SetParameter(sheet, "PatNum", patNum);
            sheet.Parameters.Add(new SheetParameter(false, "text"));
            SheetParameter.SetParameter(sheet, "text", text);
            SheetFiller.FillFields(sheet);
            try {
                SheetPrinting.Print(sheet);
            }
            catch (Exception ex) {
                MessageBox.Show(ex.Message);
            }
        }
        private void OnCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
        {
            try
            {
                var columnHeaders = from column in dataGridSheets.Columns where null != column.Header select column.Header.ToString();

                List <string> columnNames = columnHeaders.ToList();

                if (e.NewItems != null && columnHeaders.Count() > 0)
                {
                    foreach (object item in e.NewItems)
                    {
                        SheetParameter parameter = item as SheetParameter;
                        int            index     = viewModel.RvtSheetData.SheetParameters.IndexOf(parameter);
                        if (!columnNames.Contains(parameter.ParameterName))
                        {
                            //add column
                            DataGridTextColumn txtColumn = new DataGridTextColumn();
                            txtColumn.Header  = parameter.ParameterName;
                            txtColumn.Binding = new Binding("SheetParameters[" + parameter.ParameterId + "].ParameterValue");
                            dataGridSheets.Columns.Insert(index + 3, txtColumn);
                        }
                    }
                }
                if (e.OldItems != null)
                {
                    foreach (object item in e.OldItems)
                    {
                        SheetParameter parameter = item as SheetParameter;
                        if (columnNames.Contains(parameter.ParameterName))
                        {
                            //remove column
                            var columnFound = from column in dataGridSheets.Columns where column.Header.ToString() == parameter.ParameterName select column;
                            if (columnFound.Count() > 0)
                            {
                                dataGridSheets.Columns.Remove(columnFound.First());
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                string message = ex.Message;
            }
        }
示例#26
0
        /*private void buttonEmail_Click(object sender,EventArgs e) {
         *      int CurPatNum=CaseCur.PatNum;
         *      EmailMessage message=new EmailMessage();
         *      message.PatNum=CurPatNum;
         *      Patient pat=Patients.GetPat(CurPatNum);
         *      message.ToAddress="";//pat.Email;
         *      message.FromAddress=PrefC.GetString(PrefName.EmailSenderAddress");
         *      message.Subject=Lan.g(this,"RE: ")+pat.GetNameFL();
         *      FormEmailMessageEdit FormE=new FormEmailMessageEdit(message);
         *      FormE.IsNew=true;
         *      FormE.ShowDialog();
         *
         * }*/

        private void butSlip_Click(object sender, EventArgs e)
        {
            if (sheet == null)           //create new
            {
                if (!SaveToDb())
                {
                    return;
                }
                Laboratory lab = ListLabs[listLab.SelectedIndex];
                SheetDef   sheetDef;
                if (lab.Slip == 0)
                {
                    sheetDef = SheetsInternal.GetSheetDef(SheetInternalType.LabSlip);
                }
                else
                {
                    sheetDef = SheetDefs.GetSheetDef(lab.Slip);
                }
                sheet = SheetUtil.CreateSheet(sheetDef, CaseCur.PatNum);
                SheetParameter.SetParameter(sheet, "PatNum", CaseCur.PatNum);
                SheetParameter.SetParameter(sheet, "LabCaseNum", CaseCur.LabCaseNum);
                SheetFiller.FillFields(sheet);
                SheetUtil.CalculateHeights(sheet, this.CreateGraphics());
                FormSheetFillEdit FormS = new FormSheetFillEdit(sheet);
                FormS.ShowDialog();
            }
            else              //edit existing
            {
                SheetFields.GetFieldsAndParameters(sheet);
                FormSheetFillEdit FormS = new FormSheetFillEdit(sheet);
                FormS.ShowDialog();
            }
            //refresh
            sheet = Sheets.GetLabSlip(CaseCur.PatNum, CaseCur.LabCaseNum);
            if (sheet == null)
            {
                butSlip.Text = Lan.g(this, "New Slip");
            }
            else
            {
                butSlip.Text      = Lan.g(this, "Edit Slip");
                butCancel.Enabled = false;              //user can still click X to close window, but we do handle that as well.
            }
        }
示例#27
0
        private void butPrint_Click(object sender, System.EventArgs e)
        {
            if (PrinterSettings.InstalledPrinters.Count == 0)
            {
                MsgBox.Show(this, "Error: No Printers Installed\r\n" +
                            "If you do have a printer installed, restarting the workstation may solve the problem."
                            );
                return;
            }
            //only visible if sheet==null.
            if (comboSendStatus.SelectedIndex == (int)RxSendStatus.InElectQueue ||
                comboSendStatus.SelectedIndex == (int)RxSendStatus.SentElect)
            {
                //do not change status
            }
            else
            {
                comboSendStatus.SelectedIndex = (int)RxSendStatus.Printed;
            }
            if (!SaveRx())
            {
                return;
            }
            //This logic is an exact copy of FormRxManage.butPrintSelect_Click()'s logic when 1 Rx is selected.
            //If this is updated, that method needs to be updated as well.
            SheetDef sheetDef = SheetDefs.GetSheetsDefault(SheetTypeEnum.Rx, Clinics.ClinicNum);

            sheet = SheetUtil.CreateSheet(sheetDef, PatCur.PatNum);
            SheetParameter.SetParameter(sheet, "RxNum", RxPatCur.RxNum);
            SheetFiller.FillFields(sheet);
            SheetUtil.CalculateHeights(sheet);
            if (!SheetPrinting.PrintRx(sheet, RxPatCur))
            {
                return;
            }
            if (RxPatCur.IsNew)
            {
                AutomationL.Trigger(AutomationTrigger.RxCreate, new List <string>(), PatCur.PatNum, 0, new List <RxPat>()
                {
                    RxPatCur
                });
            }
            DialogResult = DialogResult.OK;
        }
示例#28
0
        private void OnCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
        {
            try
            {
                var columnHeaders = from column in dataGridSheets.Columns where null != column.Header select column.Header.ToString();

                if (e.Action == NotifyCollectionChangedAction.Reset && dataGridSheets.Columns.Count > 4)
                {
                    for (int i = dataGridSheets.Columns.Count - 1; i > 3; i--)
                    {
                        dataGridSheets.Columns.RemoveAt(i);
                    }
                }
                if (e.NewItems != null && columnHeaders.Count() > 0)
                {
                    foreach (object item in e.NewItems)
                    {
                        SheetParameter parameter = item as SheetParameter;
                        AddParameterColumn(parameter);
                    }
                }
                if (e.OldItems != null)
                {
                    foreach (object item in e.OldItems)
                    {
                        SheetParameter parameter = item as SheetParameter;
                        if (columnHeaders.Contains(parameter.ParameterName))
                        {
                            //remove column
                            var columnFound = from column in dataGridSheets.Columns where column.Header.ToString() == parameter.ParameterName select column;
                            if (columnFound.Count() > 0)
                            {
                                dataGridSheets.Columns.Remove(columnFound.First());
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                string message = ex.Message;
            }
        }
示例#29
0
        private void butLettersPreview_Click(object sender, EventArgs e)
        {
            //Create letters. loop through each row and insert information into sheets,
            //take all the sheets and add to one giant pdf for preview.
            if (gridMain.SelectedIndices.Length == 0)
            {
                MsgBox.Show(this, "Please select patient(s) first.");
                return;
            }
            FormSheetPicker FormS = new FormSheetPicker();

            FormS.SheetType = SheetTypeEnum.PatientLetter;
            FormS.ShowDialog();
            if (FormS.DialogResult != DialogResult.OK)
            {
                return;
            }
            SheetDef sheetDef;
            Sheet    sheet = null;

            for (int i = 0; i < FormS.SelectedSheetDefs.Count; i++)
            {
                PdfDocument       document        = new PdfDocument();
                FormSheetFillEdit FormSF          = null;
                PdfPage           page            = new PdfPage();
                string            filePathAndName = "";
                for (int j = 0; j < gridMain.SelectedIndices.Length; j++)
                {
                    page     = document.AddPage();
                    sheetDef = FormS.SelectedSheetDefs[i];
                    sheet    = SheetUtil.CreateSheet(sheetDef, PIn.Long(table.Rows[gridMain.SelectedIndices[j]]["PatNum"].ToString()));
                    SheetParameter.SetParameter(sheet, "PatNum", PIn.Long(table.Rows[gridMain.SelectedIndices[j]]["PatNum"].ToString()));
                    SheetFiller.FillFields(sheet);
                    SheetUtil.CalculateHeights(sheet, this.CreateGraphics());
                    FormSF = new FormSheetFillEdit(sheet);
                    SheetPrinting.CreatePdfPage(sheet, page);
                }
                filePathAndName = Path.ChangeExtension(Path.GetTempFileName(), ".pdf");
                document.Save(filePathAndName);
                Process.Start(filePathAndName);
                DialogResult = DialogResult.OK;
            }
        }
示例#30
0
        private void butAdd_Click(object sender, EventArgs e)
        {
            FormSheetPicker FormS = new FormSheetPicker();

            FormS.SheetType = SheetTypeEnum.PatientForm;
            FormS.ShowDialog();
            if (FormS.DialogResult != DialogResult.OK)
            {
                return;
            }
            SheetDef sheetDef;
            Sheet    sheet = null;       //only useful if not Terminal

            for (int i = 0; i < FormS.SelectedSheetDefs.Count; i++)
            {
                sheetDef = FormS.SelectedSheetDefs[i];
                sheet    = SheetUtil.CreateSheet(sheetDef, PatNum);
                SheetParameter.SetParameter(sheet, "PatNum", PatNum);
                SheetFiller.FillFields(sheet);
                SheetUtil.CalculateHeights(sheet, this.CreateGraphics());
                if (FormS.TerminalSend)
                {
                    sheet.InternalNote   = "";                //because null not ok
                    sheet.ShowInTerminal = (byte)(Sheets.GetBiggestShowInTerminal(PatNum) + 1);
                    Sheets.SaveNewSheet(sheet);               //save each sheet.
                }
            }
            if (FormS.TerminalSend)
            {
                //do not show a dialog now.
                //User will need to click the terminal button.
                FillGrid();
            }
            else
            {
                FormSheetFillEdit FormSF = new FormSheetFillEdit(sheet);
                FormSF.ShowDialog();
                if (FormSF.DialogResult == DialogResult.OK)
                {
                    FillGrid();
                }
            }
        }