/// <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; }
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 }); } } }
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; } }