Beispiel #1
0
 private void InitializeComponent()
 {
     System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormPath));
     this.butOK           = new OpenDental.UI.Button();
     this.butCancel       = new OpenDental.UI.Button();
     this.textDocPath     = new System.Windows.Forms.TextBox();
     this.textExportPath  = new System.Windows.Forms.TextBox();
     this.butBrowseExport = new OpenDental.UI.Button();
     this.butBrowseDoc    = new OpenDental.UI.Button();
     this.fb     = new System.Windows.Forms.FolderBrowserDialog();
     this.label1 = new System.Windows.Forms.Label();
     this.labelPathSameForAll = new System.Windows.Forms.Label();
     this.label3                     = new System.Windows.Forms.Label();
     this.butBrowseLetter            = new OpenDental.UI.Button();
     this.textLetterMergePath        = new System.Windows.Forms.TextBox();
     this.checkMultiplePaths         = new System.Windows.Forms.CheckBox();
     this.groupbox1                  = new System.Windows.Forms.GroupBox();
     this.butBrowseLocal             = new OpenDental.UI.Button();
     this.butBrowseServer            = new OpenDental.UI.Button();
     this.labelServerPath            = new System.Windows.Forms.Label();
     this.textServerPath             = new System.Windows.Forms.TextBox();
     this.labelLocalPath             = new System.Windows.Forms.Label();
     this.textLocalPath              = new System.Windows.Forms.TextBox();
     this.radioAtoZfolderNotRequired = new System.Windows.Forms.RadioButton();
     this.radioUseFolder             = new System.Windows.Forms.RadioButton();
     this.groupbox1.SuspendLayout();
     this.SuspendLayout();
     //
     // butOK
     //
     this.butOK.AdjustImageLocation = new System.Drawing.Point(0, 0);
     this.butOK.Anchor       = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
     this.butOK.Autosize     = true;
     this.butOK.BtnShape     = OpenDental.UI.enumType.BtnShape.Rectangle;
     this.butOK.BtnStyle     = OpenDental.UI.enumType.XPStyle.Silver;
     this.butOK.CornerRadius = 4F;
     this.butOK.Location     = new System.Drawing.Point(440, 502);
     this.butOK.Name         = "butOK";
     this.butOK.Size         = new System.Drawing.Size(75, 26);
     this.butOK.TabIndex     = 2;
     this.butOK.Text         = "&OK";
     this.butOK.Click       += new System.EventHandler(this.butOK_Click);
     //
     // butCancel
     //
     this.butCancel.AdjustImageLocation = new System.Drawing.Point(0, 0);
     this.butCancel.Anchor       = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
     this.butCancel.Autosize     = true;
     this.butCancel.BtnShape     = OpenDental.UI.enumType.BtnShape.Rectangle;
     this.butCancel.BtnStyle     = OpenDental.UI.enumType.XPStyle.Silver;
     this.butCancel.CornerRadius = 4F;
     this.butCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
     this.butCancel.Location     = new System.Drawing.Point(539, 502);
     this.butCancel.Name         = "butCancel";
     this.butCancel.Size         = new System.Drawing.Size(75, 26);
     this.butCancel.TabIndex     = 3;
     this.butCancel.Text         = "&Cancel";
     this.butCancel.Click       += new System.EventHandler(this.butCancel_Click);
     //
     // textDocPath
     //
     this.textDocPath.Location = new System.Drawing.Point(26, 82);
     this.textDocPath.Name     = "textDocPath";
     this.textDocPath.Size     = new System.Drawing.Size(497, 20);
     this.textDocPath.TabIndex = 1;
     //
     // textExportPath
     //
     this.textExportPath.Location = new System.Drawing.Point(19, 358);
     this.textExportPath.Name     = "textExportPath";
     this.textExportPath.Size     = new System.Drawing.Size(515, 20);
     this.textExportPath.TabIndex = 1;
     //
     // butBrowseExport
     //
     this.butBrowseExport.AdjustImageLocation = new System.Drawing.Point(0, 0);
     this.butBrowseExport.Autosize            = true;
     this.butBrowseExport.BtnShape            = OpenDental.UI.enumType.BtnShape.Rectangle;
     this.butBrowseExport.BtnStyle            = OpenDental.UI.enumType.XPStyle.Silver;
     this.butBrowseExport.CornerRadius        = 4F;
     this.butBrowseExport.Location            = new System.Drawing.Point(538, 355);
     this.butBrowseExport.Name     = "butBrowseExport";
     this.butBrowseExport.Size     = new System.Drawing.Size(76, 25);
     this.butBrowseExport.TabIndex = 91;
     this.butBrowseExport.Text     = "Browse";
     this.butBrowseExport.Click   += new System.EventHandler(this.butBrowseExport_Click);
     //
     // butBrowseDoc
     //
     this.butBrowseDoc.AdjustImageLocation = new System.Drawing.Point(0, 0);
     this.butBrowseDoc.Autosize            = true;
     this.butBrowseDoc.BtnShape            = OpenDental.UI.enumType.BtnShape.Rectangle;
     this.butBrowseDoc.BtnStyle            = OpenDental.UI.enumType.XPStyle.Silver;
     this.butBrowseDoc.CornerRadius        = 4F;
     this.butBrowseDoc.Location            = new System.Drawing.Point(529, 78);
     this.butBrowseDoc.Name     = "butBrowseDoc";
     this.butBrowseDoc.Size     = new System.Drawing.Size(76, 25);
     this.butBrowseDoc.TabIndex = 2;
     this.butBrowseDoc.Text     = "&Browse";
     this.butBrowseDoc.Click   += new System.EventHandler(this.butBrowseDoc_Click);
     //
     // fb
     //
     this.fb.SelectedPath = "C:\\";
     //
     // label1
     //
     this.label1.Location  = new System.Drawing.Point(20, 294);
     this.label1.Name      = "label1";
     this.label1.Size      = new System.Drawing.Size(596, 59);
     this.label1.TabIndex  = 92;
     this.label1.Text      = resources.GetString("label1.Text");
     this.label1.TextAlign = System.Drawing.ContentAlignment.BottomLeft;
     //
     // labelPathSameForAll
     //
     this.labelPathSameForAll.Location  = new System.Drawing.Point(26, 37);
     this.labelPathSameForAll.Name      = "labelPathSameForAll";
     this.labelPathSameForAll.Size      = new System.Drawing.Size(579, 41);
     this.labelPathSameForAll.TabIndex  = 93;
     this.labelPathSameForAll.Text      = resources.GetString("labelPathSameForAll.Text");
     this.labelPathSameForAll.TextAlign = System.Drawing.ContentAlignment.BottomLeft;
     //
     // label3
     //
     this.label3.Location  = new System.Drawing.Point(20, 384);
     this.label3.Name      = "label3";
     this.label3.Size      = new System.Drawing.Size(596, 57);
     this.label3.TabIndex  = 96;
     this.label3.Text      = resources.GetString("label3.Text");
     this.label3.TextAlign = System.Drawing.ContentAlignment.BottomLeft;
     //
     // butBrowseLetter
     //
     this.butBrowseLetter.AdjustImageLocation = new System.Drawing.Point(0, 0);
     this.butBrowseLetter.Autosize            = true;
     this.butBrowseLetter.BtnShape            = OpenDental.UI.enumType.BtnShape.Rectangle;
     this.butBrowseLetter.BtnStyle            = OpenDental.UI.enumType.XPStyle.Silver;
     this.butBrowseLetter.CornerRadius        = 4F;
     this.butBrowseLetter.Location            = new System.Drawing.Point(538, 444);
     this.butBrowseLetter.Name     = "butBrowseLetter";
     this.butBrowseLetter.Size     = new System.Drawing.Size(76, 25);
     this.butBrowseLetter.TabIndex = 95;
     this.butBrowseLetter.Text     = "Browse";
     this.butBrowseLetter.Click   += new System.EventHandler(this.butBrowseLetter_Click);
     //
     // textLetterMergePath
     //
     this.textLetterMergePath.Location = new System.Drawing.Point(19, 447);
     this.textLetterMergePath.Name     = "textLetterMergePath";
     this.textLetterMergePath.Size     = new System.Drawing.Size(515, 20);
     this.textLetterMergePath.TabIndex = 94;
     //
     // checkMultiplePaths
     //
     this.checkMultiplePaths.CheckAlign = System.Drawing.ContentAlignment.TopLeft;
     this.checkMultiplePaths.Location   = new System.Drawing.Point(26, 108);
     this.checkMultiplePaths.Name       = "checkMultiplePaths";
     this.checkMultiplePaths.Size       = new System.Drawing.Size(580, 44);
     this.checkMultiplePaths.TabIndex   = 98;
     this.checkMultiplePaths.Text       = resources.GetString("checkMultiplePaths.Text");
     this.checkMultiplePaths.TextAlign  = System.Drawing.ContentAlignment.TopLeft;
     this.checkMultiplePaths.UseVisualStyleBackColor = true;
     //
     // groupbox1
     //
     this.groupbox1.Controls.Add(this.butBrowseLocal);
     this.groupbox1.Controls.Add(this.butBrowseServer);
     this.groupbox1.Controls.Add(this.labelServerPath);
     this.groupbox1.Controls.Add(this.textServerPath);
     this.groupbox1.Controls.Add(this.labelLocalPath);
     this.groupbox1.Controls.Add(this.textLocalPath);
     this.groupbox1.Controls.Add(this.radioAtoZfolderNotRequired);
     this.groupbox1.Controls.Add(this.radioUseFolder);
     this.groupbox1.Controls.Add(this.checkMultiplePaths);
     this.groupbox1.Controls.Add(this.labelPathSameForAll);
     this.groupbox1.Controls.Add(this.textDocPath);
     this.groupbox1.Controls.Add(this.butBrowseDoc);
     this.groupbox1.Location = new System.Drawing.Point(10, 12);
     this.groupbox1.Name     = "groupbox1";
     this.groupbox1.Size     = new System.Drawing.Size(654, 291);
     this.groupbox1.TabIndex = 0;
     this.groupbox1.TabStop  = false;
     this.groupbox1.Text     = "A to Z Images Folder for storing images and documents";
     //
     // butBrowseLocal
     //
     this.butBrowseLocal.AdjustImageLocation = new System.Drawing.Point(0, 0);
     this.butBrowseLocal.Autosize            = true;
     this.butBrowseLocal.BtnShape            = OpenDental.UI.enumType.BtnShape.Rectangle;
     this.butBrowseLocal.BtnStyle            = OpenDental.UI.enumType.XPStyle.Silver;
     this.butBrowseLocal.CornerRadius        = 4F;
     this.butBrowseLocal.Location            = new System.Drawing.Point(529, 224);
     this.butBrowseLocal.Name     = "butBrowseLocal";
     this.butBrowseLocal.Size     = new System.Drawing.Size(76, 25);
     this.butBrowseLocal.TabIndex = 103;
     this.butBrowseLocal.Text     = "Browse";
     this.butBrowseLocal.Click   += new System.EventHandler(this.butBrowseLocal_Click);
     //
     // butBrowseServer
     //
     this.butBrowseServer.AdjustImageLocation = new System.Drawing.Point(0, 0);
     this.butBrowseServer.Autosize            = true;
     this.butBrowseServer.BtnShape            = OpenDental.UI.enumType.BtnShape.Rectangle;
     this.butBrowseServer.BtnStyle            = OpenDental.UI.enumType.XPStyle.Silver;
     this.butBrowseServer.CornerRadius        = 4F;
     this.butBrowseServer.Location            = new System.Drawing.Point(529, 178);
     this.butBrowseServer.Name     = "butBrowseServer";
     this.butBrowseServer.Size     = new System.Drawing.Size(76, 25);
     this.butBrowseServer.TabIndex = 106;
     this.butBrowseServer.Text     = "Browse";
     this.butBrowseServer.Click   += new System.EventHandler(this.butBrowseServer_Click);
     //
     // labelServerPath
     //
     this.labelServerPath.Location  = new System.Drawing.Point(26, 162);
     this.labelServerPath.Name      = "labelServerPath";
     this.labelServerPath.Size      = new System.Drawing.Size(488, 17);
     this.labelServerPath.TabIndex  = 107;
     this.labelServerPath.Text      = "Path override for this server.  Usually leave blank.";
     this.labelServerPath.TextAlign = System.Drawing.ContentAlignment.BottomLeft;
     //
     // textServerPath
     //
     this.textServerPath.Location = new System.Drawing.Point(26, 182);
     this.textServerPath.Name     = "textServerPath";
     this.textServerPath.Size     = new System.Drawing.Size(497, 20);
     this.textServerPath.TabIndex = 105;
     //
     // labelLocalPath
     //
     this.labelLocalPath.Location  = new System.Drawing.Point(26, 208);
     this.labelLocalPath.Name      = "labelLocalPath";
     this.labelLocalPath.Size      = new System.Drawing.Size(498, 17);
     this.labelLocalPath.TabIndex  = 104;
     this.labelLocalPath.Text      = "Path override for this computer.  Usually leave blank.";
     this.labelLocalPath.TextAlign = System.Drawing.ContentAlignment.BottomLeft;
     //
     // textLocalPath
     //
     this.textLocalPath.Location = new System.Drawing.Point(26, 228);
     this.textLocalPath.Name     = "textLocalPath";
     this.textLocalPath.Size     = new System.Drawing.Size(497, 20);
     this.textLocalPath.TabIndex = 102;
     //
     // radioAtoZfolderNotRequired
     //
     this.radioAtoZfolderNotRequired.Location = new System.Drawing.Point(10, 262);
     this.radioAtoZfolderNotRequired.Name     = "radioAtoZfolderNotRequired";
     this.radioAtoZfolderNotRequired.Size     = new System.Drawing.Size(537, 17);
     this.radioAtoZfolderNotRequired.TabIndex = 101;
     this.radioAtoZfolderNotRequired.TabStop  = true;
     this.radioAtoZfolderNotRequired.Text     = "Store images directly in database.  No AtoZ folder. (Some features will be unavai" +
                                                "lable)";
     this.radioAtoZfolderNotRequired.UseVisualStyleBackColor = true;
     this.radioAtoZfolderNotRequired.Click += new System.EventHandler(this.radioAtoZfolderNotRequired_Click);
     //
     // radioUseFolder
     //
     this.radioUseFolder.Location = new System.Drawing.Point(9, 19);
     this.radioUseFolder.Name     = "radioUseFolder";
     this.radioUseFolder.Size     = new System.Drawing.Size(333, 17);
     this.radioUseFolder.TabIndex = 0;
     this.radioUseFolder.TabStop  = true;
     this.radioUseFolder.Text     = "Store images and documents on a local or network folder.";
     this.radioUseFolder.UseVisualStyleBackColor = true;
     this.radioUseFolder.CheckedChanged         += new System.EventHandler(this.radioUseFolder_CheckedChanged);
     //
     // FormPath
     //
     this.AcceptButton      = this.butOK;
     this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
     this.CancelButton      = this.butCancel;
     this.ClientSize        = new System.Drawing.Size(683, 540);
     this.Controls.Add(this.groupbox1);
     this.Controls.Add(this.butBrowseLetter);
     this.Controls.Add(this.butBrowseExport);
     this.Controls.Add(this.label3);
     this.Controls.Add(this.textLetterMergePath);
     this.Controls.Add(this.label1);
     this.Controls.Add(this.textExportPath);
     this.Controls.Add(this.butCancel);
     this.Controls.Add(this.butOK);
     this.Icon          = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
     this.MaximizeBox   = false;
     this.MinimizeBox   = false;
     this.Name          = "FormPath";
     this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
     this.Text          = "Edit Paths";
     this.Closing      += new System.ComponentModel.CancelEventHandler(this.FormPath_Closing);
     this.Load         += new System.EventHandler(this.FormPath_Load);
     this.groupbox1.ResumeLayout(false);
     this.groupbox1.PerformLayout();
     this.ResumeLayout(false);
     this.PerformLayout();
 }
        private void butExport_Click(object sender, EventArgs e)
        {
            string strCcdValidationErrors = EhrCCD.ValidateSettings();

            if (strCcdValidationErrors != "")            //Do not even try to export if global settings are invalid.
            {
                MessageBox.Show(strCcdValidationErrors); //We do not want to use translations here, because the text is dynamic. The errors are generated in the business layer, and Lan.g() is not available there.
                return;
            }
            FolderBrowserDialog dlg    = new FolderBrowserDialog();
            DialogResult        result = dlg.ShowDialog();

            if (result != DialogResult.OK)
            {
                return;
            }
            DateTime dateNow    = DateTime.Now;
            string   folderPath = ODFileUtils.CombinePaths(dlg.SelectedPath, (dateNow.Year + "_" + dateNow.Month + "_" + dateNow.Day));

            if (Directory.Exists(folderPath))
            {
                int loopCount = 1;
                while (Directory.Exists(folderPath + "_" + loopCount))
                {
                    loopCount++;
                }
                folderPath = folderPath + "_" + loopCount;
            }
            try {
                Directory.CreateDirectory(folderPath);
            }
            catch {
                MessageBox.Show("Error, Could not create folder");
                return;
            }
            this.Cursor = Cursors.WaitCursor;
            Patient patCur;
            string  fileName;
            int     numSkipped      = 0;   //Number of patients skipped. Set to -1 if only one patient was selected and had CcdValidationErrors.
            string  patientsSkipped = "";  //Names of the patients that were skipped, so we can tell the user which ones didn't export correctly.

            for (int i = 0; i < gridMain.SelectedIndices.Length; i++)
            {
                patCur = Patients.GetPat((long)gridMain.ListGridRows[gridMain.SelectedIndices[i]].Tag);              //Cannot use GetLim because more information is needed in the CCD message generation below.
                strCcdValidationErrors = EhrCCD.ValidatePatient(patCur);
                if (strCcdValidationErrors != "")
                {
                    if (gridMain.SelectedIndices.Length == 1)
                    {
                        numSkipped = -1;                       //Set to -1 so we know below to not show the "exported" message.
                        MessageBox.Show(Lan.g(this, "Patient not exported due to the following errors") + ":\r\n" + strCcdValidationErrors);
                        continue;
                    }
                    //If one patient is missing the required information for export, then simply skip the patient. We do not want to popup a message,
                    //because it would be hard to get through the export if many patients were missing required information.
                    numSkipped++;
                    patientsSkipped += "\r\n" + patCur.LName + ", " + patCur.FName;
                    continue;
                }
                fileName = "";
                string lName = patCur.LName;
                for (int j = 0; j < lName.Length; j++)             //Strip all non-letters from FName
                {
                    if (Char.IsLetter(lName, j))
                    {
                        fileName += lName.Substring(j, 1);
                    }
                }
                fileName += "_";
                string fName = patCur.FName;
                for (int k = 0; k < fName.Length; k++)             //Strip all non-letters from LName
                {
                    if (Char.IsLetter(fName, k))
                    {
                        fileName += fName.Substring(k, 1);
                    }
                }
                fileName += "_" + patCur.PatNum;              //LName_FName_PatNum
                string ccd = EhrCCD.GeneratePatientExport(patCur);
                try {
                    File.WriteAllText(ODFileUtils.CombinePaths(folderPath, fileName + ".xml"), ccd);
                }
                catch {
                    MessageBox.Show("Error, Could not create xml file");
                    this.Cursor = Cursors.Default;
                    return;
                }
            }
            if (numSkipped == -1)               //Will be -1 if only one patient was selected, and it did not export correctly.
            {
                this.Cursor = Cursors.Default;
                return;                //Don't display "Exported" to the user because the CCD was not exported.
            }
            try {
                File.WriteAllText(ODFileUtils.CombinePaths(folderPath, "CCD.xsl"), FormEHR.GetEhrResource("CCD"));
            }
            catch {
                MessageBox.Show("Error, Could not create stylesheet file");
            }
            string strMsg = Lan.g(this, "Exported");

            if (numSkipped > 0)
            {
                strMsg += ". " + Lan.g(this, "Patients skipped due to missing information") + ": " + numSkipped + patientsSkipped;
                MsgBoxCopyPaste msgCP = new MsgBoxCopyPaste(strMsg);
                msgCP.Show();
            }
            else
            {
                MessageBox.Show(strMsg);
            }
            this.Cursor = Cursors.Default;
        }