예제 #1
0
        private void printBtn_Click(object sender, EventArgs e)
        {
            SaveIssuedMedicine();

            Dictionary <string, string> values  = new Dictionary <string, string>();
            DdtIssuedMedicineList       medList = service.GetDdtIssuedMedicineListService().GetById(issuedMedId);
            DdtHospital hospitalSession         = service.GetDdtHospitalService().GetById(hospitalitySession.ObjectId);

            DdvDoctor  doc      = null;
            DdvDoctor  nurse    = null;
            DdvDoctor  director = null;
            DdvDoctor  pharma   = null;
            DdvPatient patient  = null;

            if (medList != null)
            {
                doc      = service.GetDdvDoctorService().GetById(medList.Doctor);
                nurse    = service.GetDdvDoctorService().GetById(medList.Nurse);
                director = service.GetDdvDoctorService().GetById(medList.Director);
                pharma   = service.GetDdvDoctorService().GetById(medList.Pharmacologist);
                patient  = service.GetDdvPatientService().GetById(medList.Patient);
            }

            values.Add(@"{doctor.who.short}", doc?.ShortName);
            values.Add(@"{patient.diagnosis}", diagnosisTxt.Text);
            values.Add(@"{patient.age}", patient != null? DateTime.Now.Year - patient.Birthdate.Year + "": "");
            values.Add(@"{admission.date}", hospitalSession.AdmissionDate.ToShortDateString());
            values.Add(@"{patient.historycard}", patient?.MedCode);
            values.Add(@"{patient.fullname}", patient?.FullName);
            values.Add(@"{kag}", kagBtn.Checked ? shortlyOperationTxt.Text : "");
            values.Add(@"{nurse}", nurse?.ShortName);
            values.Add(@"{doctor.pharma}", pharma?.ShortName);
            values.Add(@"{doctor.director}", director?.ShortName);
            values.Add(@"{room}", hospitalitySession.RoomCell);
            values.Add(@"{cell}", "");
            values.Add(@"{diet}", "НКД");
            values.Add(@"{date}", DateTime.Now.ToShortDateString());
            //todo переписать,когда будет время. Сделать добавление в таблицу строчек автоматом
            for (int i = 0; i < 19; i++)
            {
                string value = "";
                if (i < medicineList.Count)
                {
                    DdtCure cure = service.GetDdtCureService().GetById(medicineList[i].Cure);
                    value = cure.Name;
                }
                values.Add(@"{issued_medicine_" + i + "}", value);
            }
            string templatePath = Directory.GetCurrentDirectory() + "\\Templates\\issued_medicine_template.doc";

            TemplatesUtils.FillTemplateAndShow(templatePath, values, TemplatesUtils.getTempFileName("Назначения", patient.FullName));
        }
예제 #2
0
        private void InitIssuedCure()
        {
            DdtIssuedMedicineList medList = service.GetDdtIssuedMedicineListService().GetById(issuedMedId);

            InitDocBoxValue(clinicalPharmacologistBox, medList?.Pharmacologist);
            InitDocBoxValue(nurseBox, medList?.Nurse);
            InitDocBoxValue(cardioReanimBox, medList == null ? hospitalitySession.DutyDoctor : medList.Doctor);
            InitDocBoxValue(directorBox, medList?.Director);
            templateName = medList?.TemplateName;
            markTemplateBtn(templateName);

            InitIssuedMedList(medList);
        }
예제 #3
0
        private void InitIssuedMedicine()
        {
            DdtIssuedMedicineList medList =
                service.GetDdtIssuedMedicineListService().GetListByParentId(anamnesis?.ObjectId);

            if (medList != null)
            {
                IList <DdtIssuedMedicine> list = DbDataService.GetInstance().GetDdtIssuedMedicineService().GetListByMedicineListId(medList.ObjectId);
                foreach (DdtIssuedMedicine med in list)
                {
                    DdtCure cure = DbDataService.GetInstance().GetDdtCureService().GetById(med.Cure);
                    AddIssuedMedicine(med, cure);
                }
                templateName = medList.TemplateName;
            }
        }
예제 #4
0
        private void SaveIssuedMedicine(IDbDataService service)
        {
            DdtIssuedMedicineList medList = service.GetDdtIssuedMedicineListService().GetListByParentId(anamnesis.ObjectId);

            if (medList == null)
            {
                medList                    = new DdtIssuedMedicineList();
                medList.Doctor             = hospitalSession.DutyDoctor;
                medList.HospitalitySession = hospitalSession.ObjectId;
                medList.Patient            = hospitalSession.Patient;
                medList.ParentType         = "ddt_anamnesis";
                medList.ParentId           = anamnesis.ObjectId;
                medList.IssuingDate        = DateTime.Now;
            }
            medList.TemplateName = templateName;
            service.GetDdtIssuedMedicineListService().Save(medList);
            IList <DdtIssuedMedicine> list = service.GetDdtIssuedMedicineService().GetListByMedicineListId(medList.ObjectId);

            //Добавляем текущий список
            foreach (DdtIssuedMedicine med in medicineList)
            {
                if (med.Cure != null)
                {
                    med.MedList = medList.ObjectId;
                    service.GetDdtIssuedMedicineService().Save(med);
                }
            }

            //Удаляем то, что было в списке, а сейчас нет
            foreach (DdtIssuedMedicine old in list)
            {
                bool found = false;
                foreach (DdtIssuedMedicine med in medicineList)
                {
                    if (old.ObjectId == med.ObjectId)
                    {
                        found = true;
                        break;
                    }
                }
                if (!found)
                {
                    service.GetDdtIssuedMedicineService().Delete(old.ObjectId);
                }
            }
        }
예제 #5
0
        private void copyFirstMedicineBtn_Click(object sender, EventArgs e)
        {
            DdtIssuedMedicineList medList = service.GetDdtIssuedMedicineListService().GetListByHospitalIdAndParentType(DdtAnamnesis.NAME, hospitalitySession.ObjectId);

            if (medList != null)
            {
                IList <DdtCure> cures = service.GetDdtCureService().GetListByMedicineListId(medList.ObjectId);
                foreach (DdtCure cure in cures)
                {
                    DdtIssuedMedicine med = new DdtIssuedMedicine
                    {
                        Cure = cure.ObjectId
                    };
                    AddIssuedMedicine(med, cure);
                }
            }
        }
예제 #6
0
        public DdtIssuedMedicineList GetListByParentId(string id)
        {
            if (id == null)
            {
                return(null);
            }

            using (dynamic connection = connectionFactory.GetConnection())
            {
                String sql = String.Format("SELECT r_object_id, dss_has_kag, dsid_parent_id, dsid_pharmacologist, dss_diagnosis, r_creation_date, " +
                                           "dsid_director, dsid_doctor, dsid_patient, dsid_hospitality_session, dsid_nurse, r_modify_date, dss_parent_type, dss_template_name, " +
                                           "dsdt_issuing_date, dsb_skip_print FROM ddt_issued_medicine_list WHERE dsid_parent_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())
                    {
                        DdtIssuedMedicineList obj = new DdtIssuedMedicineList();
                        obj.ObjectId           = reader.IsDBNull(0) ? null : reader.GetString(0);
                        obj.HasKag             = reader.IsDBNull(1) ? null : reader.GetString(1);
                        obj.ParentId           = reader.IsDBNull(2) ? null : reader.GetString(2);
                        obj.Pharmacologist     = reader.IsDBNull(3) ? null : reader.GetString(3);
                        obj.Diagnosis          = reader.IsDBNull(4) ? null : reader.GetString(4);
                        obj.CreationDate       = reader.IsDBNull(5) ? DateTime.MinValue : reader.GetDateTime(5);
                        obj.Director           = reader.IsDBNull(6) ? null : reader.GetString(6);
                        obj.Doctor             = reader.IsDBNull(7) ? null : reader.GetString(7);
                        obj.Patient            = reader.IsDBNull(8) ? null : reader.GetString(8);
                        obj.HospitalitySession = reader.IsDBNull(9) ? null : reader.GetString(9);
                        obj.Nurse        = reader.IsDBNull(10) ? null : reader.GetString(10);
                        obj.ModifyDate   = reader.IsDBNull(11) ? DateTime.MinValue : reader.GetDateTime(11);
                        obj.ParentType   = reader.IsDBNull(12) ? null : reader.GetString(12);
                        obj.TemplateName = reader.IsDBNull(13) ? null : reader.GetString(13);
                        obj.IssuingDate  = reader.IsDBNull(14) ? DateTime.MinValue : reader.GetDateTime(14);
                        obj.SkipPrint    = reader.GetBoolean(15);

                        return(obj);
                    }
                }
            }
            return(null);
        }
예제 #7
0
        private void InitIssuedMedList(DdtIssuedMedicineList medList)
        {
            if (medList != null)
            {
                diagnosisTxt.Text        = medList.Diagnosis;
                shortlyOperationTxt.Text = medList.HasKag;

                IList <DdtIssuedMedicine> list = DbDataService.GetInstance().GetDdtIssuedMedicineService().GetListByMedicineListId(medList.ObjectId);
                foreach (DdtIssuedMedicine med in list)
                {
                    DdtCure cure = DbDataService.GetInstance().GetDdtCureService().GetById(med.Cure);
                    AddIssuedMedicine(med, cure);
                }
            }
            else
            {
                copyFirstMedicineBtn_Click(null, null);
            }
        }
예제 #8
0
        private void lastIssuedMedList_Click(object sender, EventArgs e)
        {
            IEnumerator it = hospitalPatientsTbl.SelectedRows.GetEnumerator();

            if (it.MoveNext())
            {
                DataGridViewRow       row  = (DataGridViewRow)it.Current;
                DataGridViewCell      cell = row.Cells[0];
                DdtIssuedMedicineList issuedMedicineList = service.GetDdtIssuedMedicineListService().GetLastMedList(cell.Value.ToString());
                if (issuedMedicineList == null || string.IsNullOrEmpty(issuedMedicineList.ObjectId))
                {
                    MessageBox.Show("Для пациента еще не создано ни одного листа назначений", "Предупреждение", MessageBoxButtons.OK);
                }
                else
                {
                    DdtHospital    hospitalSession = service.GetDdtHospitalService().GetById(cell.Value.ToString());
                    IssuedMedicine form            = new IssuedMedicine(this.service, hospitalSession, issuedMedicineList.ObjectId);
                    form.ShowDialog();
                }
            }
        }
예제 #9
0
        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>();
            }
            DdtAnamnesis anamnesis = service.GetDdtAnamnesisService().GetById(objectId);

            values.Add("{allergy}", anamnesis.AnamnesisAllergy);
            values.Add("{complaints}", anamnesis.Complaints);
            values.Add("{anamnesis}", anamnesis.AnamnesisMorbi);
            values.Add("{chronicle}", anamnesis.AccompanyingIllnesses);
            values.Add("{epid}", anamnesis.AnamnesisEpid);
            values.Add("{alco}", anamnesis.DrugsIntoxication);
            values.Add("{st_presens}", anamnesis.StPresens);
            values.Add("{respiratory_system}", anamnesis.RespiratorySystem);
            values.Add("{cardiovascular}", anamnesis.CardiovascularSystem);
            values.Add("{digestive_system}", anamnesis.DigestiveSystem);
            values.Add("{urinary_system}", anamnesis.UrinarySystem);
            values.Add("{nervous_system}", anamnesis.NervousSystem);
            values.Add("{past_surgeries}", anamnesis.PastSurgeries);
            values.Add("{operation_cause}", anamnesis.OperationCause);
            values.Add("{diagnosis}", anamnesis.Diagnosis);
            values.Add("{justification}", anamnesis.DiagnosisJustification);

            DdvDoctor doc = service.GetDdvDoctorService().GetById(anamnesis.Doctor);

            values.Add("{cardio}", doc.ShortName);

            PutAnalysisData(values, service, anamnesis.ObjectId);
            StringBuilder builder = new StringBuilder();

            DdtIssuedMedicineList medList = service.GetDdtIssuedMedicineListService().GetListByParentId(anamnesis?.ObjectId);

            if (medList != null)
            {
                IList <DdtIssuedMedicine> med = service.GetDdtIssuedMedicineService().GetListByMedicineListId(medList.ObjectId);
                for (int i = 0; i < med.Count; i++)
                {
                    DdtCure cure = service.GetDdtCureService().GetById(med[i].Cure);
                    if (cure != null)
                    {
                        builder.Append(cure.Name).Append('\n');
                    }
                }
            }
            values.Add("{issued_medicine}", builder.ToString());

            StringBuilder           actionsBuilder = new StringBuilder();
            IList <DdtIssuedAction> actions        = service.GetDdtIssuedActionService().GetListByParentId(objectId);

            for (int i = 0; i < actions.Count; i++)
            {
                actionsBuilder.Append(i + 1).Append(". ");
                actionsBuilder.Append(actions[i].Action).Append('\n');
            }
            values.Add("{issued_actions}", actionsBuilder.ToString());

            DdtHospital hospital = service.GetDdtHospitalService().GetById(hospitalitySession);

            values.Add("{date}", hospital.AdmissionDate.ToShortDateString() + " " + hospital.AdmissionDate.ToShortTimeString());

            DdvPatient patient    = service.GetDdvPatientService().GetById(hospital.Patient);
            string     resultName = TemplatesUtils.getTempFileName("Первичный осмотр", patient.FullName);

            return(TemplatesUtils.FillTemplate(Directory.GetCurrentDirectory() + "\\Templates\\" + TEMPLATE_FILE_NAME, values, resultName));
        }
예제 #10
0
        private void SaveIssuedMedicine()
        {
            DdtIssuedMedicineList medList = service.GetDdtIssuedMedicineListService().GetById(issuedMedId);

            if (medList == null)
            {
                medList = new DdtIssuedMedicineList();
                medList.HospitalitySession = hospitalitySession.ObjectId;
                medList.Patient            = hospitalitySession.Patient;
            }
            DdvDoctor dir = (DdvDoctor)directorBox.SelectedItem;

            medList.Director = dir?.ObjectId;

            DdvDoctor pharm = (DdvDoctor)clinicalPharmacologistBox.SelectedItem;

            medList.Pharmacologist = pharm?.ObjectId;

            DdvDoctor nurse = (DdvDoctor)nurseBox.SelectedItem;

            medList.Nurse = nurse?.ObjectId;

            DdvDoctor doc = (DdvDoctor)cardioReanimBox.SelectedItem;

            medList.Doctor = doc == null ? hospitalitySession.DutyDoctor : doc.ObjectId;

            medList.Diagnosis    = diagnosisTxt.Text;
            medList.TemplateName = templateName;
            medList.HasKag       = shortlyOperationTxt.Text;
            medList.IssuingDate  = createDateTxt.Value;

            service.GetDdtIssuedMedicineListService().Save(medList);

            IList <DdtIssuedMedicine> list = service.GetDdtIssuedMedicineService().GetListByMedicineListId(medList.ObjectId);

            //Добавляем текущий список
            foreach (DdtIssuedMedicine med in medicineList)
            {
                if (med.Cure != null)
                {
                    med.MedList = medList.ObjectId;
                    service.GetDdtIssuedMedicineService().Save(med);
                }
            }

            //Удаляем то, что было в списке, а сейчас нет
            foreach (DdtIssuedMedicine old in list)
            {
                bool found = false;
                foreach (DdtIssuedMedicine med in medicineList)
                {
                    if (old.ObjectId == med.ObjectId)
                    {
                        found = true;
                        break;
                    }
                }
                if (!found)
                {
                    service.GetDdtIssuedMedicineService().Delete(old.ObjectId);
                }
            }
        }
예제 #11
0
        public string Save(DdtIssuedMedicineList obj)
        {
            using (dynamic connection = connectionFactory.GetConnection())
            {
                if (GetById(obj.ObjectId) != null)
                {
                    string sql = "UPDATE ddt_issued_medicine_list SET " +
                                 "dsid_doctor = @Doctor, " +
                                 "dsid_patient = @Patient, " +
                                 "dsid_hospitality_session = @HospitalitySession, " +
                                 "dsdt_issuing_date = @IssuingDate, " +
                                 "dsid_parent_id = @ParentId, " +
                                 "dss_parent_type = @ParentType, " +
                                 "dss_diagnosis = @Diagnosis, " +
                                 "dss_has_kag = @HasKag, " +
                                 "dsb_skip_print = @SkipPrint, " +
                                 "dsid_pharmacologist = @Pharmacologist, " +
                                 "dsid_nurse = @Nurse, " +
                                 "dsid_director = @Director, " +
                                 "dss_template_name = @TemplateName " +
                                 "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("@Doctor", obj.Doctor);
                        cmd.Parameters.AddWithValue("@Patient", obj.Patient);
                        cmd.Parameters.AddWithValue("@HospitalitySession", obj.HospitalitySession);
                        cmd.Parameters.AddWithValue("@IssuingDate", obj.IssuingDate);
                        cmd.Parameters.AddWithValue("@ParentId", obj.ParentId);
                        cmd.Parameters.AddWithValue("@ParentType", obj.ParentType == null ? "" : obj.ParentType);
                        cmd.Parameters.AddWithValue("@Diagnosis", obj.Diagnosis == null ? "" : obj.Diagnosis);
                        cmd.Parameters.AddWithValue("@HasKag", obj.HasKag == null ? "" : obj.HasKag);
                        cmd.Parameters.AddWithValue("@SkipPrint", obj.SkipPrint);
                        cmd.Parameters.AddWithValue("@Pharmacologist", obj.Pharmacologist);
                        cmd.Parameters.AddWithValue("@Nurse", obj.Nurse);
                        cmd.Parameters.AddWithValue("@Director", obj.Director);
                        cmd.Parameters.AddWithValue("@TemplateName", obj.TemplateName == null ? "" : obj.TemplateName);
                        cmd.Parameters.AddWithValue("@ObjectId", obj.ObjectId);
                        cmd.ExecuteNonQuery();
                    }
                    return(obj.ObjectId);
                }
                else
                {
                    string sql = "INSERT INTO ddt_issued_medicine_list(dsid_doctor,dsid_patient,dsid_hospitality_session,dsdt_issuing_date,dsid_parent_id," +
                                 "dss_parent_type, dss_diagnosis,dss_has_kag,dsb_skip_print,dsid_pharmacologist,dsid_nurse,dsid_director,dss_template_name) " +
                                 "VALUES(@Doctor,@Patient,@HospitalitySession,@IssuingDate,@ParentId,@ParentType," +
                                 "@Diagnosis,@HasKag,@SkipPrint,@Pharmacologist,@Nurse,@Director,@TemplateName) " +
                                 "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("@Doctor", obj.Doctor == null ? "" : obj.Doctor);
                        cmd.Parameters.AddWithValue("@Patient", obj.Patient);
                        cmd.Parameters.AddWithValue("@HospitalitySession", obj.HospitalitySession);
                        cmd.Parameters.AddWithValue("@IssuingDate", obj.IssuingDate);
                        cmd.Parameters.AddWithValue("@ParentId", obj.ParentId == null ? "" : obj.ParentId);
                        cmd.Parameters.AddWithValue("@ParentType", obj.ParentType == null ? "" : obj.ParentType);
                        cmd.Parameters.AddWithValue("@Diagnosis", obj.Diagnosis == null ? "" : obj.Diagnosis);
                        cmd.Parameters.AddWithValue("@HasKag", obj.HasKag == null ? "" : obj.HasKag);
                        cmd.Parameters.AddWithValue("@SkipPrint", obj.SkipPrint);
                        cmd.Parameters.AddWithValue("@Pharmacologist", obj.Pharmacologist == null ? "" : obj.Pharmacologist);
                        cmd.Parameters.AddWithValue("@Nurse", obj.Nurse == null ? "" : obj.Nurse);
                        cmd.Parameters.AddWithValue("@Director", obj.Director == null ? "" : obj.Director);
                        cmd.Parameters.AddWithValue("@TemplateName", obj.TemplateName == null ? "" : obj.TemplateName);
                        obj.ObjectId = (string)cmd.ExecuteScalar();
                        return(obj.ObjectId);
                    }
                }
            }
        }