Example #1
0
        /// <summary>
        /// Заполнение полей при изменении кода КСГ
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void comboBoxKSG_SelectedIndexChanged(object sender, EventArgs e)
        {
            MKBEngine mkbEngine = _dbEngine.GetCorrectMKBEngine(comboBoxTypeKSG.Text);

            if (mkbEngine == null)
            {
                return;
            }

            MKBClass mkbInfo = mkbEngine.GetMkbInfo(comboBoxMKB.Text, comboBoxKSG.Text);

            textBoxKSGDecoding.Text = mkbInfo.KsgDecoding;
            textBoxKDNorm.Text      = mkbInfo.KDNorm;
            textBoxKDMin.Text       = mkbInfo.KDMin;
            textBoxKDMax.Text       = mkbInfo.KDMax;
            textBoxSpecialty.Text   = mkbInfo.Specialiy;
        }
Example #2
0
        public MKBEngine(string mkbData)
        {
            _mkb = new Dictionary <string, List <MKBClass> >();

            string[] mkbs = mkbData.Split(new[] { MkbInfoSplitStr }, StringSplitOptions.RemoveEmptyEntries);

            foreach (string mkb in mkbs)
            {
                var kgs = new MKBClass(mkb);
                if (_mkb.ContainsKey(kgs.MkbName))
                {
                    _mkb[kgs.MkbName].Add(kgs);
                }
                else
                {
                    _mkb.Add(kgs.MkbName, new List <MKBClass> {
                        kgs
                    });
                }
            }
        }
Example #3
0
        public static void Export(List <PatientClass> patientList, DbEngine dbEngine)
        {
            CultureInfo oldCi = Thread.CurrentThread.CurrentCulture;

            try
            {
                Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");

                // Стартуем Excel-приложение
                _oxl = new Application();

                // Создаем новую книгу
                _oxb = _oxl.Workbooks.Add(Missing.Value);

                _ows = (_Worksheet)_oxb.Sheets[3];
                _ows.Delete();
                _ows = (_Worksheet)_oxb.Sheets[2];
                _ows.Delete();

                _ows = (_Worksheet)_oxb.Sheets[1];

                _ows.Cells.WrapText            = true;
                _ows.Cells.VerticalAlignment   = 2;
                _ows.Cells.HorizontalAlignment = 2;

                _owr                     = _ows.get_Range("A1", "Q1");
                _owr.MergeCells          = true;
                _owr.Font.Bold           = true;
                _owr.Font.Size           = 14;
                _owr.RowHeight           = 30;
                _owr.HorizontalAlignment = 3;
                _ows.Cells[1, 1]         = "Список пациентов на " + ConvertEngine.GetRightDateString(DateTime.Now);

                _owr                     = _ows.get_Range("R1", "AB1");
                _owr.MergeCells          = true;
                _owr.Font.Bold           = true;
                _owr.Font.Size           = 14;
                _owr.RowHeight           = 30;
                _owr.HorizontalAlignment = 3;
                _ows.Cells[1, 18]        = "Данные по операциям";

                _owr                     = _ows.get_Range("A2", "A2");
                _owr.ColumnWidth         = 15;
                _owr.Font.Bold           = true;
                _owr.HorizontalAlignment = 3;
                _owr.Value2              = "ФИО пациента";

                _owr                     = _ows.get_Range("B2", "B2");
                _owr.ColumnWidth         = 4;
                _owr.Font.Bold           = true;
                _owr.HorizontalAlignment = 3;
                _owr.Value2              = "Возраст";

                _owr                     = _ows.get_Range("C2", "C2");
                _owr.ColumnWidth         = 10;
                _owr.Font.Bold           = true;
                _owr.HorizontalAlignment = 3;
                _owr.Value2              = "Дата рождения";

                _owr                     = _ows.get_Range("D2", "D2");
                _owr.ColumnWidth         = 14;
                _owr.Font.Bold           = true;
                _owr.HorizontalAlignment = 3;
                _owr.Value2              = "Адрес";

                _owr                     = _ows.get_Range("E2", "E2");
                _owr.ColumnWidth         = 14;
                _owr.Font.Bold           = true;
                _owr.HorizontalAlignment = 3;
                _owr.Value2              = "Место работы";

                _owr                     = _ows.get_Range("F2", "F2");
                _owr.ColumnWidth         = 9;
                _owr.Font.Bold           = true;
                _owr.HorizontalAlignment = 3;
                _owr.Value2              = "Телефон";

                _owr                     = _ows.get_Range("G2", "G2");
                _owr.ColumnWidth         = 9;
                _owr.Font.Bold           = true;
                _owr.HorizontalAlignment = 3;
                _owr.Value2              = "Тип стационара";

                _owr                     = _ows.get_Range("H2", "H2");
                _owr.ColumnWidth         = 9;
                _owr.Font.Bold           = true;
                _owr.HorizontalAlignment = 3;
                _owr.Value2              = "Код МКБ";

                _owr                     = _ows.get_Range("I2", "I2");
                _owr.ColumnWidth         = 9;
                _owr.Font.Bold           = true;
                _owr.HorizontalAlignment = 3;
                _owr.Value2              = "Код КСГ";

                _owr                     = _ows.get_Range("J2", "J2");
                _owr.ColumnWidth         = 20;
                _owr.Font.Bold           = true;
                _owr.HorizontalAlignment = 3;
                _owr.Value2              = "Расшифровка кода КСГ";

                _owr                     = _ows.get_Range("K2", "K2");
                _owr.ColumnWidth         = 13;
                _owr.Font.Bold           = true;
                _owr.HorizontalAlignment = 3;
                _owr.Value2              = "Нозология";

                _owr                     = _ows.get_Range("L2", "L2");
                _owr.ColumnWidth         = 10;
                _owr.Font.Bold           = true;
                _owr.HorizontalAlignment = 3;
                _owr.Value2              = "Лечащий врач";

                _owr                     = _ows.get_Range("M2", "M2");
                _owr.ColumnWidth         = 9;
                _owr.Font.Bold           = true;
                _owr.HorizontalAlignment = 3;
                _owr.Value2              = "Дата поступления";

                _owr                     = _ows.get_Range("N2", "N2");
                _owr.ColumnWidth         = 10;
                _owr.Font.Bold           = true;
                _owr.HorizontalAlignment = 3;
                _owr.Value2              = "Дата выписки";

                _owr                     = _ows.get_Range("O2", "O2");
                _owr.ColumnWidth         = 7;
                _owr.Font.Bold           = true;
                _owr.HorizontalAlignment = 3;
                _owr.Value2              = "№ истории болезни";

                _owr                     = _ows.get_Range("P2", "P2");
                _owr.ColumnWidth         = 5;
                _owr.Font.Bold           = true;
                _owr.HorizontalAlignment = 3;
                _owr.Value2              = "Количество операций";

                _owr                     = _ows.get_Range("Q2", "Q2");
                _owr.ColumnWidth         = 25;
                _owr.Font.Bold           = true;
                _owr.HorizontalAlignment = 3;
                _owr.Value2              = "Диагноз";

                _owr                     = _ows.get_Range("R2", "R2");
                _owr.ColumnWidth         = 22;
                _owr.Font.Bold           = true;
                _owr.HorizontalAlignment = 3;
                _owr.Value2              = "Название операции";

                _owr                     = _ows.get_Range("S2", "S2");
                _owr.ColumnWidth         = 10;
                _owr.Font.Bold           = true;
                _owr.HorizontalAlignment = 3;
                _owr.Value2              = "Дата операции";

                _owr                     = _ows.get_Range("T2", "T2");
                _owr.ColumnWidth         = 6;
                _owr.Font.Bold           = true;
                _owr.HorizontalAlignment = 3;
                _owr.Value2              = "Время начала операции";

                _owr                     = _ows.get_Range("U2", "U2");
                _owr.ColumnWidth         = 6;
                _owr.Font.Bold           = true;
                _owr.HorizontalAlignment = 3;
                _owr.Value2              = "Время окончания операции";

                _owr                     = _ows.get_Range("V2", "V2");
                _owr.ColumnWidth         = 10;
                _owr.Font.Bold           = true;
                _owr.HorizontalAlignment = 3;
                _owr.Value2              = "Список хирургов";

                _owr                     = _ows.get_Range("W2", "W2");
                _owr.ColumnWidth         = 12;
                _owr.Font.Bold           = true;
                _owr.HorizontalAlignment = 3;
                _owr.Value2              = "Список ассистентов";

                _owr                     = _ows.get_Range("X2", "X2");
                _owr.ColumnWidth         = 8;
                _owr.Font.Bold           = true;
                _owr.HorizontalAlignment = 3;
                _owr.Value2              = "Анестезист";

                _owr                     = _ows.get_Range("Y2", "Y2");
                _owr.ColumnWidth         = 8;
                _owr.Font.Bold           = true;
                _owr.HorizontalAlignment = 3;
                _owr.Value2              = "Анестезистка";

                _owr                     = _ows.get_Range("Z2", "Z2");
                _owr.ColumnWidth         = 8;
                _owr.Font.Bold           = true;
                _owr.HorizontalAlignment = 3;
                _owr.Value2              = "Операц. мед. сестра";

                _owr                     = _ows.get_Range("AA2", "AA2");
                _owr.ColumnWidth         = 8;
                _owr.Font.Bold           = true;
                _owr.HorizontalAlignment = 3;
                _owr.Value2              = "Санитар";

                _owr                     = _ows.get_Range("AB2", "AB2");
                _owr.ColumnWidth         = 85;
                _owr.Font.Bold           = true;
                _owr.HorizontalAlignment = 3;
                _owr.Value2              = "Ход операции";

                int rowCnt = 3;
                for (int i = 0; i < patientList.Count; i++)
                {
                    _ows.Cells[rowCnt, 1] = patientList[i].GetFullName();
                    _ows.Cells[rowCnt, 2] = patientList[i].Age.ToString();
                    if (patientList[i].Birthday.HasValue)
                    {
                        _ows.Cells[rowCnt, 3] = ConvertEngine.GetRightDateString(patientList[i].Birthday.Value, false);
                    }

                    _ows.Cells[rowCnt, 4] = patientList[i].GetAddress();
                    _ows.Cells[rowCnt, 5] = patientList[i].WorkPlace;
                    _ows.Cells[rowCnt, 6] = patientList[i].Phone;

                    _ows.Cells[rowCnt, 7] = patientList[i].TypeOfKSG;
                    _ows.Cells[rowCnt, 8] = patientList[i].MKB;
                    _ows.Cells[rowCnt, 9] = patientList[i].KSG;

                    if (!string.IsNullOrEmpty(patientList[i].MKB) &&
                        !string.IsNullOrEmpty(patientList[i].KSG) &&
                        !string.IsNullOrEmpty(patientList[i].TypeOfKSG))
                    {
                        MKBEngine mkb     = dbEngine.GetCorrectMKBEngine(patientList[i].TypeOfKSG);
                        MKBClass  mkbInfo = mkb.GetMkbInfo(patientList[i].MKB, patientList[i].KSG);
                        _ows.Cells[rowCnt, 10] = mkbInfo.KsgDecoding;
                    }

                    _ows.Cells[rowCnt, 11] = patientList[i].Nosology;
                    _ows.Cells[rowCnt, 12] = patientList[i].DoctorInChargeOfTheCase;
                    _ows.Cells[rowCnt, 13] = ConvertEngine.GetRightDateString(patientList[i].DeliveryDate, true);
                    if (patientList[i].ReleaseDate.HasValue)
                    {
                        _ows.Cells[rowCnt, 14] = ConvertEngine.GetRightDateString(patientList[i].ReleaseDate.Value, true);
                    }

                    _ows.Cells[rowCnt, 15] = patientList[i].NumberOfCaseHistory;
                    _ows.Cells[rowCnt, 16] = patientList[i].Operations.Count.ToString();
                    _ows.Cells[rowCnt, 17] = patientList[i].Diagnose;

                    if (patientList[i].Operations.Count == 0)
                    {
                        rowCnt++;
                    }
                    else
                    {
                        foreach (OperationClass operationInfo in patientList[i].Operations)
                        {
                            _ows.Cells[rowCnt, 18] = operationInfo.Name;
                            _ows.Cells[rowCnt, 19] = ConvertEngine.GetRightDateString(operationInfo.DataOfOperation);
                            _ows.Cells[rowCnt, 20] = ConvertEngine.GetRightTimeString(operationInfo.StartTimeOfOperation);
                            _ows.Cells[rowCnt, 21] = ConvertEngine.GetRightTimeString(operationInfo.EndTimeOfOperation);
                            _ows.Cells[rowCnt, 22] = ListToString(operationInfo.Surgeons);
                            _ows.Cells[rowCnt, 23] = ListToString(operationInfo.Assistents);
                            _ows.Cells[rowCnt, 24] = operationInfo.HeAnaesthetist;
                            _ows.Cells[rowCnt, 25] = operationInfo.SheAnaesthetist;
                            _ows.Cells[rowCnt, 26] = operationInfo.ScrubNurse;
                            _ows.Cells[rowCnt, 27] = operationInfo.Orderly;
                            _ows.Cells[rowCnt, 28] = operationInfo.OperationCourse;

                            rowCnt++;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                if (_oxl != null)
                {
                    _oxl.Visible     = true;
                    _oxl.UserControl = true;

                    if (_oxb != null)
                    {
                        Marshal.ReleaseComObject(_oxb);
                        _oxb = null;
                    }

                    if (_ows != null)
                    {
                        Marshal.ReleaseComObject(_ows);
                        _ows = null;
                    }

                    if (_owr != null)
                    {
                        Marshal.ReleaseComObject(_owr);
                        _owr = null;
                    }

                    Marshal.ReleaseComObject(_oxl);
                    _oxl = null;

                    GC.Collect();
                    GC.WaitForPendingFinalizers();
                    GC.Collect();
                }

                Thread.CurrentThread.CurrentCulture = oldCi;
            }
        }