public IList <DdtKag> GetByQuery(string sql) { IList <DdtKag> list = new List <DdtKag>(); using (dynamic connection = connectionFactory.GetConnection()) { Logger.Debug(CultureInfo.CurrentCulture, "SQL: {0}", sql); Npgsql.NpgsqlCommand command = new Npgsql.NpgsqlCommand(sql, connection); using (DbDataReader reader = command.ExecuteReader()) { if (reader.Read()) { DdtKag obj = new DdtKag(); obj.ObjectId = reader.IsDBNull(0) ? null : reader.GetString(0); obj.AnalysisDate = reader.IsDBNull(1) ? DateTime.MinValue : reader.GetDateTime(1); obj.EndTime = reader.IsDBNull(2) ? DateTime.MinValue : reader.GetDateTime(2); obj.CreationDate = reader.IsDBNull(3) ? DateTime.MinValue : reader.GetDateTime(3); obj.Parent = reader.IsDBNull(4) ? null : reader.GetString(4); obj.KagManipulation = reader.IsDBNull(5) ? null : reader.GetString(5); obj.Doctor = reader.IsDBNull(6) ? null : reader.GetString(6); obj.Patient = reader.IsDBNull(7) ? null : reader.GetString(7); obj.HospitalitySession = reader.IsDBNull(8) ? null : reader.GetString(8); obj.StartTime = reader.IsDBNull(9) ? DateTime.MinValue : reader.GetDateTime(9); obj.ModifyDate = reader.IsDBNull(10) ? DateTime.MinValue : reader.GetDateTime(10); obj.ParentType = reader.IsDBNull(11) ? null : reader.GetString(11); obj.Results = reader.IsDBNull(12) ? null : reader.GetString(12); obj.KagAction = reader.IsDBNull(13) ? null : reader.GetString(13); list.Add(obj); } } } return(list); }
public void refreshObject(object obj) { if (obj != null && obj is DdtKag) { DdtKag kag = (DdtKag)obj; kagResultsTxt.Text = kag.Results; kagManipulationTxt.Text = kag.KagManipulation; kagActionsTxt.Text = kag.KagAction; DateTime startTime = kag.StartTime == default(DateTime) ? DateTime.Now : kag.StartTime; kagDate.Value = startTime; kagStartTime.Value = startTime; kagEndTime.Value = kag.EndTime == default(DateTime) ? startTime.AddHours(1) : kag.EndTime; title.Text = "Анализы за " + kag.AnalysisDate.ToShortDateString(); objectId = kag.ObjectId; isNew = string.IsNullOrEmpty(objectId); hasChanges = false; } else { DdtHospital hospitalitySession = DbDataService.GetInstance().GetDdtHospitalService().GetById(hospitalSessionId); DateTime admissionDate = hospitalitySession.AdmissionDate; kagDate.Value = admissionDate; kagStartTime.Value = admissionDate.AddMinutes(30); kagEndTime.Value = kagStartTime.Value.AddHours(1); } }
public DdtKag GetById(string id) { using (dynamic connection = connectionFactory.GetConnection()) { String sql = String.Format("SELECT r_object_id, dsdt_analysis_date, dsdt_end_time, r_creation_date, dsid_parent, dss_kag_manipulation, dsid_doctor, dsid_patient, dsid_hospitality_session, dsdt_start_time, r_modify_date, dss_parent_type, dss_results, dss_kag_action FROM ddt_kag WHERE r_object_id = '{0}'", id); Logger.Debug(CultureInfo.CurrentCulture, "SQL: {0}", sql); Npgsql.NpgsqlCommand command = new Npgsql.NpgsqlCommand(sql, connection); using (DbDataReader reader = command.ExecuteReader()) { if (reader.Read()) { DdtKag obj = new DdtKag(); obj.ObjectId = reader.IsDBNull(0) ? null : reader.GetString(0); obj.AnalysisDate = reader.IsDBNull(1) ? DateTime.MinValue : reader.GetDateTime(1); obj.EndTime = reader.IsDBNull(2) ? DateTime.MinValue : reader.GetDateTime(2); obj.CreationDate = reader.IsDBNull(3) ? DateTime.MinValue : reader.GetDateTime(3); obj.Parent = reader.IsDBNull(4) ? null : reader.GetString(4); obj.KagManipulation = reader.IsDBNull(5) ? null : reader.GetString(5); obj.Doctor = reader.IsDBNull(6) ? null : reader.GetString(6); obj.Patient = reader.IsDBNull(7) ? null : reader.GetString(7); obj.HospitalitySession = reader.IsDBNull(8) ? null : reader.GetString(8); obj.StartTime = reader.IsDBNull(9) ? DateTime.MinValue : reader.GetDateTime(9); obj.ModifyDate = reader.IsDBNull(10) ? DateTime.MinValue : reader.GetDateTime(10); obj.ParentType = reader.IsDBNull(11) ? null : reader.GetString(11); obj.Results = reader.IsDBNull(12) ? null : reader.GetString(12); obj.KagAction = reader.IsDBNull(13) ? null : reader.GetString(13); return(obj); } } } return(null); }
private void InitControls() { DdtKag kag = DbDataService.GetInstance().GetDdtKagService().GetById(objectId); refreshObject(kag); kagResultsTxt.Enabled = isEditable; kagManipulationTxt.Enabled = isEditable; kagActionsTxt.Enabled = isEditable; kagDate.Enabled = isEditable; kagStartTime.Enabled = isEditable; kagEndTime.Enabled = isEditable; showBlanksBtn.Visible = isEditable; }
private void removeKAG_Click(object sender, EventArgs e) { if (!string.IsNullOrEmpty(kagId)) { DdtKag kag = service.GetDdtKagService().GetById(kagId); if (kag != null) { kag.Parent = null; service.GetDdtKagService().Save(kag); } } kagId = null; }
private void selectKAGBtn_Click(object sender, EventArgs e) { AnalysisSelector.getInstance().ShowDialog(DdtKag.NAME, "dsid_hospitality_session='" + hospitalitySession.ObjectId + "'", "r_creation_date", "r_object_id", new List <string> { "" }); if (AnalysisSelector.getInstance().isSuccess()) { List <string> ids = AnalysisSelector.getInstance().returnValues(); if (ids.Count > 0) { DdtKag kag = service.GetDdtKagService().GetById(ids[0]); initKag(kag); } } }
public object getObject() { DdtKag kag = DbDataService.GetInstance().GetDdtKagService().GetById(objectId); if (kag == null) { kag = new DdtKag(); } kag.KagManipulation = kagManipulationTxt.Text; kag.Results = kagResultsTxt.Text; kag.KagAction = kagActionsTxt.Text; kag.StartTime = CommonUtils.ConstructDateWIthTime(kagDate.Value, kagStartTime.Value); kag.AnalysisDate = CommonUtils.ConstructDateWIthTime(kagDate.Value, kagStartTime.Value); kag.EndTime = CommonUtils.ConstructDateWIthTime(kagDate.Value, kagEndTime.Value); return(kag); }
private void initKag(DdtKag kag) { DateTime dt = hospitalitySession.AdmissionDate.AddHours(1); if (kag != null) { kagDiagnosisTxt.Text = kag.KagAction; if (kag.EndTime != default(DateTime)) { dt = kag.EndTime.AddMinutes(15); } kagId = kag.ObjectId; } admissionDateTxt.Value = dt; admissionTimeTxt.Value = dt; if (dt != default(DateTime) && dt.Hour > 8) { dt = dt.AddDays(1); } }
public void saveObject(DdtHospital hospitalitySession, string parentId, string parentType) { if (isEditable && (isNew || isDirty())) { DdtKag kag = (DdtKag)getObject(); kag.HospitalitySession = hospitalitySession.ObjectId; kag.Doctor = hospitalitySession.CuringDoctor; kag.Patient = hospitalitySession.Patient; if (parentId != null) { kag.Parent = parentId; } if (parentType != null) { kag.ParentType = parentType; } objectId = DbDataService.GetInstance().GetDdtKagService().Save(kag); isNew = false; hasChanges = false; } }
private void initKag(IDbDataService service, DdtJournal kagJournal) { bool hasKag = false; if (kagJournal != null) { IList <DdtKag> kags = service.GetDdtKagService().GetByParentId(kagJournal.ObjectId); DdtKag kag = kags.Count > 0 ? kags[0] : null; if (kag != null && inspectionObj != null) { kagId = kag.ObjectId; DdtRelation relation = new DdtRelation(); relation.Parent = inspectionObj.ObjectId; relation.Child = kag.ObjectId; relation.ChildType = DdtKag.NAME; DbDataService.GetInstance().GetDdtRelationService().Save(relation); kagContainer.Visible = true; hasKag = true; } } }
public string processTemplate(IDbDataService service, string hospitalitySession, string objectId, Dictionary <string, string> aditionalValues) { Dictionary <string, string> values = null; if (aditionalValues != null) { values = new Dictionary <string, string>(aditionalValues); } else { values = new Dictionary <string, string>(); } DdtJournalDay day = service.GetDdtJournalDayService().GetById(objectId); PutAnalysisData(values, service, objectId); DdvDoctor doc = service.GetDdvDoctorService().GetById(day.Doctor); values.Add("{doctor.initials}", doc == null ? "" : doc.ShortName); IList <DdtKag> kags = service.GetDdtKagService().GetByParentId(day.ObjectId); DdtKag kag = kags.Count > 0 ? kags[0] : null; string kagValue = ""; if (kag != null) { kagValue += kag.Results == null ? "" : "У пациента по данным КАГ выявлено:" + kag.Results + "\n"; kagValue += kag.KagManipulation == null ? "" : "Пациенту выполнено:" + kag.KagManipulation + "\n"; kagValue += kag.KagAction == null ? "" : "Таким образом, у пациента:" + kag.KagAction + "\n"; } List <string> partsPaths = new List <string>(); if (day.JournalType == (int)DdtJournalDsiType.AfterKag) { Dictionary <string, string> first = new Dictionary <string, string>(); DdtVariousSpecConcluson cardiovascular = service.GetDdtVariousSpecConclusonService().GetByParentId(objectId); DdvDoctor surgeryDoc = service.GetDdvDoctorService().GetById(cardiovascular?.AdditionalInfo4); first.Add("{time}", day.AdmissionDate.ToShortTimeString()); first.Add("{title}", "Осмотр дежурного кардиореаниматолога " + (doc == null ? "" : doc.ShortName) + " совместно с ангиохирургом " + surgeryDoc?.ShortName + ". \n Пациента доставили из рентгеноперационной."); first.Add("{complaints}", "Жалоб на момент осмотра не предъявляет."); first.Add("{journal}", JournalShuffleUtils.shuffleJournalText()); first.Add("{on_monitor}", ""); first.Add("{monitor}", ""); first.Add("{doctor.initials}", doc == null ? "" : doc.ShortName); first.Add("{kag_diagnosis}", kagValue); first.Add("{diagnosis}", kag == null ? "Таким образом, у пациента:" + day.Diagnosis : ""); PutAnalysisData(first, service, null); partsPaths.Add(TemplatesUtils.FillTemplate(Directory.GetCurrentDirectory() + "\\Templates\\" + TEMPLATE_FILE_NAME, first)); Dictionary <string, string> surgeryValues = new Dictionary <string, string>(); surgeryValues.Add("{time}", cardiovascular.AdmissionDate.ToShortTimeString()); surgeryValues.Add("{title}", "Осмотр ренгеноваскулярного хирурга " + surgeryDoc?.ShortName + ". \n"); surgeryValues.Add("{complaints}", "Жалоб на момент осмотра не предъявляет."); surgeryValues.Add("{journal}", cardiovascular?.SpecialistConclusion); surgeryValues.Add("{on_monitor}", ""); surgeryValues.Add("{monitor}", " "); surgeryValues.Add("{kag_diagnosis}", " "); surgeryValues.Add("{diagnosis}", " "); surgeryValues.Add("{doctor.initials}", surgeryDoc == null ? "" : surgeryDoc.ShortName); PutAnalysisData(surgeryValues, service, null); partsPaths.Add(TemplatesUtils.FillTemplate(Directory.GetCurrentDirectory() + "\\Templates\\" + TEMPLATE_FILE_NAME, surgeryValues)); } List <DdtJournal> journals = service.GetDdtJournalService().GetByJournalDayId(objectId); for (int i = 0; i < journals.Count; i++) { Dictionary <string, string> jrnlValues = new Dictionary <string, string>(); DdtJournal journal = journals[i]; jrnlValues.Add("{time}", journal.AdmissionDate.ToShortTimeString()); jrnlValues.Add("{title}", " "); jrnlValues.Add("{complaints}", journal.Complaints); jrnlValues.Add("{on_monitor}", string.IsNullOrEmpty(journal.Monitor) ? string.Empty : "По монитору: "); jrnlValues.Add("{journal}", journal.Journal); jrnlValues.Add("{monitor}", string.IsNullOrEmpty(journal.Monitor) ? string.Empty : journal.Monitor); DdvDoctor jrnlDoc = service.GetDdvDoctorService().GetById(journal.Doctor); jrnlValues.Add("{doctor.initials}", day.JournalType == (int)DdtJournalDsiType.AfterKag || jrnlDoc == null ? doc?.ShortName : jrnlDoc.ShortName); if (i == journals.Count - 1) { jrnlValues.Add("{kag_diagnosis}", kagValue); jrnlValues.Add("{diagnosis}", String.IsNullOrEmpty(day.Diagnosis) ? "" : "Таким образом, у пациента:" + day.Diagnosis); PutAnalysisData(jrnlValues, service, objectId); } else { jrnlValues.Add("{kag_diagnosis}", " "); jrnlValues.Add("{diagnosis}", " "); PutAnalysisData(jrnlValues, service, null); } string mainPart = TemplatesUtils.FillTemplate(Directory.GetCurrentDirectory() + "\\Templates\\" + TEMPLATE_FILE_NAME, jrnlValues); partsPaths.Add(mainPart); } DdvPatient patient = service.GetDdvPatientService().GetById(day.Patient); string resultName = TemplatesUtils.getTempFileName("Журнал", patient.FullName); return(TemplatesUtils.MergeFiles(partsPaths.ToArray(), false, resultName)); }
public string Save(DdtKag obj) { using (dynamic connection = connectionFactory.GetConnection()) { if (GetById(obj.ObjectId) != null) { string sql = "UPDATE ddt_kag SET " + "dsid_hospitality_session = @HospitalitySession, " + "dsid_patient = @Patient, " + "dsid_doctor = @Doctor, " + "dsdt_analysis_date = @AnalysisDate, " + "dss_results = @Results, " + "dsdt_start_time = @StartTime, " + "dsdt_end_time = @EndTime, " + "dss_kag_manipulation = @KagManipulation, " + "dss_kag_action = @KagAction, " + "dsid_parent = @Parent, " + "dss_parent_type = @ParentType " + "WHERE r_object_id = @ObjectId"; Logger.Debug(CultureInfo.CurrentCulture, "SQL: {0}", sql); using (Npgsql.NpgsqlCommand cmd = new Npgsql.NpgsqlCommand(sql, connection)) { cmd.CommandType = CommandType.Text; cmd.Parameters.AddWithValue("@HospitalitySession", obj.HospitalitySession); cmd.Parameters.AddWithValue("@Patient", obj.Patient); cmd.Parameters.AddWithValue("@Doctor", obj.Doctor); cmd.Parameters.AddWithValue("@AnalysisDate", obj.AnalysisDate); cmd.Parameters.AddWithValue("@Results", obj.Results == null ? "" : obj.Results); cmd.Parameters.AddWithValue("@StartTime", obj.StartTime); cmd.Parameters.AddWithValue("@EndTime", obj.EndTime); cmd.Parameters.AddWithValue("@KagManipulation", obj.KagManipulation == null ? "" : obj.KagManipulation); cmd.Parameters.AddWithValue("@KagAction", obj.KagAction == null ? "" : obj.KagAction); cmd.Parameters.AddWithValue("@Parent", obj.Parent == null ? "0000000000000000" : obj.Parent); cmd.Parameters.AddWithValue("@ParentType", obj.ParentType == null ? "" : obj.ParentType); cmd.Parameters.AddWithValue("@ObjectId", obj.ObjectId); cmd.ExecuteNonQuery(); } return(obj.ObjectId); } else { string sql = "INSERT INTO ddt_kag(dsid_hospitality_session,dsid_patient,dsid_doctor,dsdt_analysis_date,dss_results,dsdt_start_time,dsdt_end_time,dss_kag_manipulation,dss_kag_action,dsid_parent,dss_parent_type) " + "VALUES(@HospitalitySession,@Patient,@Doctor,@AnalysisDate,@Results,@StartTime,@EndTime,@KagManipulation,@KagAction,@Parent,@ParentType) RETURNING r_object_id"; Logger.Debug(CultureInfo.CurrentCulture, "SQL: {0}", sql); using (Npgsql.NpgsqlCommand cmd = new Npgsql.NpgsqlCommand(sql, connection)) { cmd.CommandType = CommandType.Text; cmd.Parameters.AddWithValue("@HospitalitySession", obj.HospitalitySession); cmd.Parameters.AddWithValue("@Patient", obj.Patient); cmd.Parameters.AddWithValue("@Doctor", obj.Doctor); cmd.Parameters.AddWithValue("@AnalysisDate", obj.AnalysisDate); cmd.Parameters.AddWithValue("@Results", obj.Results == null ? "" : obj.Results); cmd.Parameters.AddWithValue("@StartTime", obj.StartTime); cmd.Parameters.AddWithValue("@EndTime", obj.EndTime); cmd.Parameters.AddWithValue("@KagManipulation", obj.KagManipulation == null ? "" : obj.KagManipulation); cmd.Parameters.AddWithValue("@KagAction", obj.KagAction == null ? "" : obj.KagAction); cmd.Parameters.AddWithValue("@Parent", obj.Parent == null ? "0000000000000000" : obj.Parent); cmd.Parameters.AddWithValue("@ParentType", obj.ParentType == null ? "" : obj.ParentType); return((string)cmd.ExecuteScalar()); } } } }
private void initControls() { wrongDateWarning.Visible = false; CommonUtils.InitRangedItems(chssSurgeryTxt, 40, 200); CommonUtils.InitRangedItems(chddSurgeryTxt, 14, 26); afterKagDiagnosisTxt.Text = hospitalitySession.Diagnosis; CommonUtils.InitDoctorsByGroupComboboxValues(service, journalDocBox, "cardioreanimation_department"); CommonUtils.InitDoctorsByGroupComboboxValues(service, cardioVascularBox, "xray_department"); DdvPatient patientView = service.GetDdvPatientService().GetById(hospitalitySession.Patient); Text += " " + patientView?.ShortName; if (!string.IsNullOrEmpty(journalDayId)) { DdtJournalDay journalDay = service.GetDdtJournalDayService().GetById(journalDayId); if (journalDay != null) { DdtVariousSpecConcluson cardioVascularConcls = service.GetDdtVariousSpecConclusonService().GetByParentId(journalDayId); surgeryInspectationTxt.Text = cardioVascularConcls?.SpecialistConclusion; chddSurgeryTxt.Text = cardioVascularConcls?.AdditionalInfo1; adSurgeryTxt.Text = cardioVascularConcls?.AdditionalInfo3; chssSurgeryTxt.Text = cardioVascularConcls?.AdditionalInfo2; cardioDate.Value = cardioVascularConcls == null ? DateTime.Now : cardioVascularConcls.AdmissionDate; cardioTime.Value = cardioVascularConcls == null ? DateTime.Now : cardioVascularConcls.AdmissionDate; cardioVascularBox.SelectedValue = cardioVascularConcls?.AdditionalInfo4; admissionTimeTxt.Value = journalDay.AdmissionDate; admissionDateTxt.Value = journalDay.AdmissionDate; afterKagDiagnosisTxt.Text = journalDay.Diagnosis; journalDocBox.SelectedValue = journalDay.Doctor; IList <DdtKag> kags = service.GetDdtKagService().GetByParentId(journalDay.ObjectId); DdtKag kag = kags.Count > 0 ? kags[0] : null; if (kag != null) { kagDiagnosisTxt.Text = kag.KagAction; kagId = kag.ObjectId; analysisTabControl1.addAnalisis(DdtKag.NAME, "КАГ", kag.ObjectId); } initCardioConslusions(service); } } else { //Для нового дневника ставим время через 1 час после приема. если есть КАГ, то через 15 мин после КАГ String sql = String.Format("SELECT r_object_id, dsdt_analysis_date, dsdt_end_time, r_creation_date, dsid_parent, dss_kag_manipulation, " + "dsid_doctor, dsid_patient, dsid_hospitality_session, dsdt_start_time, r_modify_date, dss_parent_type, dss_results, dss_kag_action " + "FROM ddt_kag WHERE dsid_hospitality_session = '{0}' order by dsdt_analysis_date desc", hospitalitySession.ObjectId); IList <DdtKag> kags = service.GetDdtKagService().GetByQuery(sql); initKag(kags.Count > 0 ? kags[0] : null); getIsValid(); journalDocBox.SelectedValue = hospitalitySession.CuringDoctor; cardioVascularBox.SelectedValue = hospitalitySession.DutyDoctor; } }
public bool Save() { if (!getIsValid()) { return(false); } service.GetDdtHospitalService().Save(hospitalitySession); DdtJournalDay journalDay = null; if (!string.IsNullOrEmpty(journalDayId)) { journalDay = service.GetDdtJournalDayService().GetById(journalDayId); } else { journalDay = new DdtJournalDay(); journalDay.JournalType = 1; journalDay.HospitalitySession = hospitalitySession.ObjectId; journalDay.Patient = hospitalitySession.Patient; journalDay.JournalType = (int)DdtJournalDsiType.AfterKag; //journal.Complaints = "Жалоб на момент осмотра не предъявляет."; } journalDay.AdmissionDate = CommonUtils.ConstructDateWIthTime(admissionDateTxt.Value, admissionTimeTxt.Value); DdvDoctor doc = (DdvDoctor)journalDocBox.SelectedItem; journalDay.Doctor = doc == null ? hospitalitySession.DutyDoctor : doc.ObjectId; journalDay.Diagnosis = afterKagDiagnosisTxt.Text; journalDayId = service.GetDdtJournalDayService().Save(journalDay); DdtVariousSpecConcluson cardioVascularConc = service.GetDdtVariousSpecConclusonService().GetByParentId(journalDayId); if (cardioVascularConc == null) { cardioVascularConc = new DdtVariousSpecConcluson(); cardioVascularConc.Parent = journalDayId; } cardioVascularConc.AdmissionDate = CommonUtils.ConstructDateWIthTime(cardioDate.Value, cardioTime.Value); cardioVascularConc.SpecialistConclusion = surgeryInspectationTxt.Text; cardioVascularConc.AdditionalInfo1 = chddSurgeryTxt.Text; cardioVascularConc.AdditionalInfo3 = adSurgeryTxt.Text; cardioVascularConc.AdditionalInfo2 = chssSurgeryTxt.Text; cardioVascularConc.AdditionalInfo4 = (string)cardioVascularBox.SelectedValue; service.GetDdtVariousSpecConclusonService().Save(cardioVascularConc); if (!string.IsNullOrEmpty(kagDiagnosisTxt.Text)) { DdtKag kag = service.GetDdtKagService().GetById(kagId); if (kag == null) { kag = new DdtKag(); kag.Doctor = hospitalitySession.CuringDoctor; kag.HospitalitySession = hospitalitySession.ObjectId; kag.Patient = hospitalitySession.Patient; DateTime admissionDateTime = CommonUtils.ConstructDateWIthTime(admissionDateTxt.Value, admissionTimeTxt.Value); kag.AnalysisDate = admissionDateTime.AddMinutes(-75); kag.StartTime = admissionDateTime.AddMinutes(-75); kag.EndTime = admissionDateTime.AddMinutes(-15); kag.KagAction = kagDiagnosisTxt.Text; kagId = service.GetDdtKagService().Save(kag); IDdtRelationService relationService = DbDataService.GetInstance().GetDdtRelationService(); if (kagId != null && relationService.GetByParentAndChildIds(journalDayId, kagId) == null) { DdtRelation relation = new DdtRelation(); relation.Parent = journalDayId; relation.Child = kagId; relation.ChildType = DdtJournal.NAME; relationService.Save(relation); } } } for (int i = 0; i < dutyCardioContainer.Controls.Count; i++) { JournalKAGControl journalCtrl = (JournalKAGControl)dutyCardioContainer.Controls[i]; journalCtrl.saveObject(hospitalitySession, journalDayId, DdtJournal.NAME); } analysisTabControl1.save(journalDayId, DdtJournal.NAME); return(true); }