예제 #1
0
        public DdtEpicrisis GetById(string id)
        {
            using (dynamic connection = connectionFactory.GetConnection())
            {
                String sql = String.Format("SELECT dsid_hospitality_session, r_object_id, r_modify_date, dsdt_epicrisis_date, dss_diagnosis, r_creation_date, dsi_epicrisis_type, dsid_doctor, dsid_patient FROM ddt_epicrisis 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())
                    {
                        DdtEpicrisis obj = new DdtEpicrisis();
                        obj.HospitalitySession = reader.IsDBNull(0) ? null : reader.GetString(0);
                        obj.ObjectId           = reader.IsDBNull(1) ? null : reader.GetString(1);
                        obj.ModifyDate         = reader.IsDBNull(2) ? DateTime.MinValue : reader.GetDateTime(2);
                        obj.EpicrisisDate      = reader.IsDBNull(3) ? DateTime.MinValue : reader.GetDateTime(3);
                        obj.Diagnosis          = reader.IsDBNull(4) ? null : reader.GetString(4);
                        obj.CreationDate       = reader.IsDBNull(5) ? DateTime.MinValue : reader.GetDateTime(5);
                        obj.EpicrisisType      = reader.IsDBNull(6) ? -1 : reader.GetInt16(6);
                        obj.Doctor             = reader.IsDBNull(7) ? null : reader.GetString(7);
                        obj.Patient            = reader.IsDBNull(8) ? null : reader.GetString(8);
                        return(obj);
                    }
                }
            }
            return(null);
        }
예제 #2
0
        private void releasePatientBtn_Click(object sender, EventArgs e)
        {
            hospitalitySession.Active     = false;
            hospitalitySession.RejectCure = refusedBtn.Checked;
            service.GetDdtHospitalService().Save(hospitalitySession);

            DdtEpicrisis epicrisis = service.GetDdtEpicrisisService().GetById(epicrisisId);

            if (epicrisis == null)
            {
                epicrisis                    = new DdtEpicrisis();
                epicrisis.Doctor             = hospitalitySession.CuringDoctor;
                epicrisis.HospitalitySession = hospitalitySession.ObjectId;
                epicrisis.Patient            = hospitalitySession.Patient;
            }
            epicrisis.Diagnosis     = hospitalitySession.Diagnosis;
            epicrisis.EpicrisisDate = DateTime.Now;
            epicrisis.EpicrisisType = deathBtn.Checked ? (int)DdtEpicrisisDsiType.DEATH : transferBtn.Checked ? (int)DdtEpicrisisDsiType.TRANSFER : (int)DdtEpicrisisDsiType.RELEASE;
            service.GetDdtEpicrisisService().Save(epicrisis);

            if (transferBtn.Checked)
            {
                MessageBox.Show("Необходимо создать письмо в скорую помощь!", "Предупреждение!", MessageBoxButtons.OK);
            }
            else if (deathBtn.Checked)
            {
                MessageBox.Show("Необходимо констатировать смерть!", "Предупреждение!", MessageBoxButtons.OK);
            }
            Close();
        }
예제 #3
0
        private void saveObject()
        {
            DdtEpicrisis obj = service.GetDdtEpicrisisService().GetById(objectId);

            if (obj == null)
            {
                obj                    = new DdtEpicrisis();
                obj.Doctor             = hospitalitySession.CuringDoctor;
                obj.HospitalitySession = hospitalitySession.ObjectId;
                obj.Patient            = hospitalitySession.Patient;
            }
            obj.EpicrisisDate = epicrisisDateTxt.Value;
            obj.Diagnosis     = diagnosisTxt.Text;
            obj.EpicrisisType = (int)DdtEpicrisisDsiType.BEFORE_OPERATION;
            objectId          = service.GetDdtEpicrisisService().Save(obj);
            obj.ObjectId      = objectId;

            DataGridViewRowCollection rows = analysisGrid.Rows;

            for (int i = 0; i < rows.Count; i++)
            {
                DataGridViewRow row  = rows[i];
                string          id   = (string)row.Cells[0].Value;
                string          type = (string)row.Cells[1].Value;
                if (service.GetDdtRelationService().GetByParentAndChildIds(objectId, id) == null)
                {
                    DdtRelation rel = new DdtRelation();
                    rel.Child     = id;
                    rel.Parent    = objectId;
                    rel.ChildType = type;
                    service.GetDdtRelationService().Save(rel);
                }
            }
        }
예제 #4
0
        public string Save(DdtEpicrisis obj)
        {
            using (dynamic connection = connectionFactory.GetConnection())
            {
                if (GetById(obj.ObjectId) != null)
                {
                    string sql = "UPDATE ddt_epicrisis SET " +
                                 "dsid_hospitality_session = @HospitalitySession, " +
                                 "dsid_patient = @Patient, " +
                                 "dsid_doctor = @Doctor, " +
                                 "dsdt_epicrisis_date = @EpicrisisDate, " +
                                 "dss_diagnosis = @Diagnosis, " +
                                 "dsi_epicrisis_type = @EpicrisisType " +
                                 "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("@EpicrisisDate", obj.EpicrisisDate);
                        cmd.Parameters.AddWithValue("@Diagnosis", obj.Diagnosis == null ? "" : obj.Diagnosis);
                        cmd.Parameters.AddWithValue("@EpicrisisType", obj.EpicrisisType);
                        cmd.Parameters.AddWithValue("@ObjectId", obj.ObjectId);
                        cmd.ExecuteNonQuery();
                    }
                    return(obj.ObjectId);
                }
                else
                {
                    string sql = "INSERT INTO ddt_epicrisis(dsid_hospitality_session,dsid_patient,dsid_doctor,dsdt_epicrisis_date,dss_diagnosis,dsi_epicrisis_type) " +
                                 "VALUES(@HospitalitySession,@Patient,@Doctor,@EpicrisisDate,@Diagnosis,@EpicrisisType) 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("@EpicrisisDate", obj.EpicrisisDate);
                        cmd.Parameters.AddWithValue("@Diagnosis", obj.Diagnosis == null ? "" : obj.Diagnosis);
                        cmd.Parameters.AddWithValue("@EpicrisisType", obj.EpicrisisType);
                        return((string)cmd.ExecuteScalar());
                    }
                }
            }
        }
예제 #5
0
 private string getTemplateName(DdtEpicrisis obj)
 {
     if (obj.EpicrisisType == (int)DdtEpicrisisDsiType.TRANSFER)
     {
         return(TEMPLATE_FILE_NAME_TRANSFER);
     }
     else if (obj.EpicrisisType == (int)DdtEpicrisisDsiType.DEATH)
     {
         return(TEMPLATE_FILE_NAME_DEATH);
     }
     else
     {
         return(TEMPLATE_FILE_NAME);
     }
 }
예제 #6
0
 private void InitControls()
 {
     if (!string.IsNullOrEmpty(objectId))
     {
         DdvPatient patient = service.GetDdvPatientService().GetById(hospitalitySession.Patient);
         if (patient != null)
         {
             Text += " " + patient.ShortName;
         }
         DdtEpicrisis epicrisis = service.GetDdtEpicrisisService().GetById(objectId);
         if (epicrisis != null)
         {
             diagnosisTxt.Text      = epicrisis.Diagnosis;
             epicrisisDateTxt.Value = epicrisis.EpicrisisDate;
             refreshGrid();
         }
     }
     else
     {
         diagnosisTxt.Text = hospitalitySession.Diagnosis;
     }
 }
예제 #7
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>();
            }
            DdtEpicrisis obj = service.GetDdtEpicrisisService().GetById(objectId);

            values.Add("{diagnosis}", obj.Diagnosis);
            values.Add("{date}", obj.EpicrisisDate.ToShortDateString());

            DdvPatient patient = service.GetDdvPatientService().GetById(obj.Patient);

            values.Add("{patient.initials}", patient == null ? "" : patient.ShortName);
            values.Add("{patient.age}", patient == null ? "" : (DateTime.Now.Year - patient.Birthdate.Year) + "");

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

            values.Add("{patient.admission_date}", hospital.AdmissionDate.ToShortDateString());

            DdtAnamnesis anamnesis = service.GetDdtAnamnesisService().GetByHospitalSessionId(hospital.ObjectId);

            values.Add("{complaints}", anamnesis == null ? " " : anamnesis.Complaints);
            values.Add("{anamnesis}", anamnesis == null ? " " : anamnesis.AnamnesisMorbi);

            StringBuilder inspectonBld = new StringBuilder();

            inspectonBld.Append(CompileValue("St.Presens", anamnesis?.StPresens));
            inspectonBld.Append(CompileValue("Органы дыхания", anamnesis?.RespiratorySystem));
            inspectonBld.Append(CompileValue("Сердечно-сосудистая система", anamnesis?.CardiovascularSystem));
            inspectonBld.Append(CompileValue("Органы пищеварения", anamnesis?.DigestiveSystem));
            values.Add("{inspection}", anamnesis == null ? " " : inspectonBld.ToString());

            DdtSerology   serology    = service.GetDdtSerologyService().GetByHospitalSession(hospital.ObjectId);
            StringBuilder serologyBld = new StringBuilder();

            if (serology != null)
            {
                serologyBld.Append(CompileValue("Группа крови", serology.BloodType));
                serologyBld.Append(CompileValue("Резус-фактор", serology.RhesusFactor));
                serologyBld.Append(CompileValue("RW", serology.Rw));
            }
            values.Add("{serology}", serology == null ? " " : serologyBld.ToString());
            PutAnalysisData(values, service, obj.ObjectId);
            StringBuilder bloodStr = new StringBuilder();

            if (serology != null)
            {
                bloodStr.Append(CompileValue("KELL-ag", serology.KellAg));
                bloodStr.Append(CompileValue("HBs ag", serology.HbsAg));
                bloodStr.Append(CompileValue("Anti HCV крови", serology.AntiHcv));
                bloodStr.Append(CompileValue("HIV", serology.Hiv));
            }
            if (obj.EpicrisisType == (int)DdtEpicrisisDsiType.TRANSFER)
            {
                DdtTransfer transfer = service.GetDdtTransferService().GetByHospitalSession(hospitalitySession);
                if (transfer != null)
                {
                    values.Add("{destination}", transfer.Destination);
                    values.Add("{contact}", transfer.Contacts);
                    values.Add("{transport_justification}", transfer.TransferJustification);
                    values.Add("{patient.release_date}", transfer.StartDate.ToShortDateString());
                }
            }
            else if (obj.EpicrisisType == (int)DdtEpicrisisDsiType.DEATH)
            {
                values.Add("{conclusion}", " ");
            }

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

            values.Add("{doctor.who.short}", doc.ShortName);
            DdvDoctor surgery = service.GetDdvDoctorService().GetById(hospital.DutyDoctor);

            values.Add("{surgery}", surgery?.ShortName + "\n");
            DdvDoctor anest = service.GetDdvDoctorService().GetById(hospital.AnesthetistDoctor);

            values.Add("{anestesiolog}", anest?.ShortName);

            string resultFileName = TemplatesUtils.getTempFileName("Эпикриз", patient.FullName);

            return(TemplatesUtils.FillTemplate(Directory.GetCurrentDirectory() + "\\Templates\\" + getTemplateName(obj), values, resultFileName));
        }