private void realizar_atencion_citas_gestante() { DataTable odtCitaPrenatal = new DataTable(); CapaDeNegocios.CitaPreNatal.cCitaPrenatal oCitaPrenatal = new CapaDeNegocios.CitaPreNatal.cCitaPrenatal(); DateTime fecha_cita; int semana_gestacional = 0; DataTable odtCitas = new DataTable(); /*preparando datatable citas*/ odtCitas.Columns.Add("N° CITA", typeof(string)); odtCitas.Columns.Add("FECHA CITA", typeof(string)); odtCitas.Columns.Add("EDAD GESTACIONAL", typeof(string)); //oCitaPrenatal.HistoriaClinica.Idthistoriaclinica = HistoriaClinica; if (dtgCitasMedicas.Rows.Count > 0) { /*Si primera cita es diferente a fecha de registro se procede a borrar todas las citas del control de gestante y se añaden nuevamente*/ //fecha_cita = (DateTime) dtgCitasMedicas.Rows[0].Cells["FECHA CITA"].Value; fecha_cita = (DateTime)dtgCitasMedicas.Rows[0].Cells[3].Value; semana_gestacional = (int)dtgCitasMedicas.Rows[0].Cells[4].Value; //FUR = FUR.AddDays(Math.Abs(dias_gestacional)); if (fecha_cita.ToString("dd/MM/yyyy") != Fecha_Registro.ToString("dd/MM/yyyy") || semana_gestacional != Semana_Gestacional) { oCitaPrenatal.HistoriaClinica.Idthistoriaclinica = HistoriaClinica; oCitaPrenatal.EliminarCitaXHistoriaClinica(oCitaPrenatal); edad_gestacional_citas = Semana_Gestacional; odtCitas = realizar_citas(odtCitas); } } else { edad_gestacional_citas = Semana_Gestacional; odtCitas = realizar_citas(odtCitas); } /* SE EVALUA LA SEMANA DE LA PRIMERA ATENCION PRENATAL PARA QUE COHINCIDA CON EL PRONOSTICO */ }
private DataTable realizar_citas(DataTable odtCitas) { CapaDeNegocios.CitaPreNatal.cCitaPrenatal oCitaPrenatal = new CapaDeNegocios.CitaPreNatal.cCitaPrenatal(); DataTable odtCitaPrenatal = new DataTable(); DateTime fecha_cita, fecha_prox_cita, fecha_fin; int semana_gestacional = 0; DataRow odrCitas = odtCitas.NewRow(); int k = 0; bool ocupado = false; /*calculando numero de cita*/ fecha_cita = Fecha_Registro; fecha_prox_cita = Fecha_Registro; //fecha_prox_cita = Fecha_Registro.AddMonths(1); //fecha_fin = Fecha_Registro.AddDays(28); semana_gestacional = edad_gestacional_citas; while (semana_gestacional <= 42 && Fecha_Registro.Date < FPP.Date) { /*nº cita, fecha cita, edad gestacional */ odrCitas = odtCitas.NewRow(); /*Numero de cita prenatal*/ oCitaPrenatal.HistoriaClinica.Idthistoriaclinica = HistoriaClinica; odtCitaPrenatal = oCitaPrenatal.ListaCitasPreNatal(); if (odtCitaPrenatal.Rows.Count > 0) { oCitaPrenatal.NumeroCita = Convert.ToInt16(odtCitaPrenatal.Rows[odtCitaPrenatal.Rows.Count - 1][2]) + 1; odrCitas[0] = Convert.ToInt16(odtCitaPrenatal.Rows[odtCitaPrenatal.Rows.Count - 1][2]) + 1; } else { oCitaPrenatal.NumeroCita = 1; odrCitas[0] = 1; } /*codigo, codigo historia clinica, n° cita, fecha cita, edad gestacional, fua, presion arterial, sulfato ferroso, presion arterial s, presion arterial d, fecha prox. cita*/ /*codigo cita prenatal*/ cSiguienteCodigo miSiguienteCodigo = new cSiguienteCodigo(); foreach (DataRow row in miSiguienteCodigo.SiguientesCodigo("tcitaprenatal", Establecimiento).Rows) { oCitaPrenatal.CodigoCitaPrenatal = row[0].ToString(); } if (k != 0) { if (edad_gestacional_citas <= 28 && !ocupado) { edad_gestacional_citas += +4; ocupado = true; } if (edad_gestacional_citas >= 29 && edad_gestacional_citas <= 36 && !ocupado) { edad_gestacional_citas = ((edad_gestacional_citas * 7) + 14) / 7; ocupado = true; } if (edad_gestacional_citas >= 37 && edad_gestacional_citas <= 42 && !ocupado) { edad_gestacional_citas += +1; ocupado = true; } ocupado = false; if (edad_gestacional_citas <= 28 && !ocupado) { //Fecha_Registro = Fecha_Registro.AddDays(28); fecha_cita = fecha_prox_cita; fecha_prox_cita = Fecha_Registro.AddDays(28); Fecha_Registro = fecha_prox_cita; //fecha_prox_cita = Fecha_Registro.AddDays(28); //edad_gestacional_citas += +4; ocupado = true; } if (edad_gestacional_citas >= 29 && edad_gestacional_citas <= 36 && !ocupado) { //Fecha_Registro = fecha_prox_cita.AddDays(15); fecha_cita = fecha_prox_cita; //fecha_prox_cita = Fecha_Registro; fecha_prox_cita = fecha_prox_cita.AddDays(14); Fecha_Registro = fecha_prox_cita; //edad_gestacional_citas = ((edad_gestacional_citas * 7) + 15) / 7; ocupado = true; } if (edad_gestacional_citas >= 37 && edad_gestacional_citas <= 42 && !ocupado) { //Fecha_Registro = fecha_prox_cita.AddDays(7); fecha_cita = fecha_prox_cita; fecha_prox_cita = fecha_prox_cita.AddDays(7); Fecha_Registro = fecha_prox_cita; //edad_gestacional_citas += +1; ocupado = true; } } else { if (edad_gestacional_citas <= 28 && !ocupado) { fecha_cita = Fecha_Registro; fecha_prox_cita = Fecha_Registro.AddDays(28); Fecha_Registro = fecha_prox_cita; ocupado = true; } if (edad_gestacional_citas >= 29 && edad_gestacional_citas <= 36 && !ocupado) { fecha_cita = Fecha_Registro; fecha_prox_cita = Fecha_Registro.AddDays(14); Fecha_Registro = fecha_prox_cita; ocupado = true; } if (edad_gestacional_citas >= 37 && edad_gestacional_citas <= 42 && !ocupado) { fecha_cita = Fecha_Registro; fecha_prox_cita = Fecha_Registro.AddDays(7); Fecha_Registro = fecha_prox_cita; ocupado = true; } } semana_gestacional = edad_gestacional_citas; ocupado = false; odrCitas[1] = Fecha_Registro; odrCitas[2] = edad_gestacional_citas; odtCitas.Rows.InsertAt(odrCitas, k); k++; oCitaPrenatal.HistoriaClinica.Idthistoriaclinica = HistoriaClinica; oCitaPrenatal.EdadGestacional = edad_gestacional_citas; oCitaPrenatal.Fua = ""; oCitaPrenatal.PresionArterialD = 60; oCitaPrenatal.PresionArterialS = 90; oCitaPrenatal.SulfatoFerroso = 30; /*calculando fecha cita y proxima cita*/ oCitaPrenatal.FechaCitaPrenatal = fecha_cita; oCitaPrenatal.FechaProximaCitaPrenatal = fecha_prox_cita; oCitaPrenatal.Asistencia = 0; oCitaPrenatal.IdObstetra = IdObstetra; oCitaPrenatal.AgregarCita(oCitaPrenatal); } oCitaPrenatal.HistoriaClinica.Idthistoriaclinica = HistoriaClinica; dtgCitasMedicas.DataSource = oCitaPrenatal.ListaCitasPreNatal(); pintar_asistencias(); return(odtCitas); }