Un sitio para guardar lo que veo, hago, y lo que quisiera ver, hacer y aprender.

Mensajes en la categoría Proyecto

Back in Business

Despues del viaje, y un merecido receso, volvemos a idear cosas para hacer en mis fichas clínicas. Es cierto que la posibilidad y el deseo de dejar la consulta de Puente Alto son ciertas pero hay que ser realistas y mientas todo siga funcionando, hay que hacerlo funcionar bien.

Por lo pronto la busqueda de consultas por fecha ya está casi lista. Bueno, es algo optimista el decir “casi lista”. Al menos ya tengo claro el calendario que voy a utilizar, aunque aún no lo he probado. Me estoy llendo con mucha más calma. Lo otro y en módulo, como para usar en forma independiente es un sistma para crear una receta en PDF. Esto porque además puede se usado para enviar la receta por e-mail si fuese necesario, de modo que los pacientes puedan imprimirla y usarla en sus casas.  Algo un poco arriesgado, pero con medicamentos no controlados, y con algunos pacientes, puede resultar no tan mal. Habría que revisar lo que dicen las leyes al respecto, pero no creo que hayan contemplado aún el uso de recetas por e-mail.

Fichas 2.0 – Evaluación Nutricional

Bueno, uno de los quebraderos de cabeza que tenía era cómo hacer para implementar este tema. Hasta ahora estaba usando un popup al que se le pasaba la información del peso y la talla, además de un modo de obtener la edad y de ese modo evaluar (hasta ahora) el IMC y eventualmente el estado nutricional de acuerdo a las tablas de la OMS. El problema es que al invocar el popup se reseteaba la página de origen y me borraba toda la información que hasta ese momento tenía ingresada. La solución momentánea era que al momento de cerrar la ventana popup se hiciera un parent.history.back y se restablecía lo que allí había. Feo pero usable.

Traté de buscar un método de enviar sólo la info de peso y talla como formulario a otra página que se abriese en popup, pero tendría que haber dividido el form en tres, con tres botones de envío, un desastre, tampoco es posible usar formularios anidados en HTML, no hay modo de hacerlo.

Así que después de leer muchos blogs acerca de este problema, llegué a la conclusión de que mi problema está mal planteado. Y la hasta ahora ínica solución posible es hacer una doble evaluación del formulario, es decir, dividir la página en tres. Primero evaluar si se envío la primera parte del formulario (evaluar peso y talla) que ademas contiene la Anamnesis y Examen Físico, esta info se reusa y muesta en un nuevo formulario, a la vez que se evalúa el estado nutricional, mostrándose el resto del formulario (anteriormente oculto), luego, al reenviar ese formulario, se valida completamente si están los diagnósticos, y se guarda en la base de datos. La tercera parte es la que muestra el formulario inicial que contiene los campos de Anamnesis, Examen Físico, Peso, Talla y el botón de envío.

Vamos a ver cómo hacemos todo eso. Por lo menos es hasta ahora la solución más elegante que he encontrado.

Fichas 2.0 en Construcción

Bueno, lo estoy haciendo. Ni idea de por qué, ya que lo único que quiero es dejar esa consulta, pero que le vamos a hacer, la necesidad tiene cara de hereje. 🙂
He reciclado gran parte del código, y deshice el sistema previo de una ‘maqueta’ que carga el código para cada ‘panel’ izquierdo y derecho, ya que es confuso y difícil de seguir y editar en caso de error. Ahora está todo en una misma página para cada necesidad, modifiqué además el menú, haciéndolo más sencillo, todo en un solo nivel y ya no como una función en que cada parámetro daba el nivel y tipo de menú que necesitaba, con enlaces fijos y poca flexibilidad. Además que lo moví a la derecha.
El calendario ahora sólo el visible en la primera página, el la edición de una nueva ficha se muestra en su lugar el nombre completo del paciente, la edad y las alergias en un fondo desatcado si las hubiera, seguido hacia abajo, las consultas anteriores del paciente si las hay.
Agregué un ingreso con clave y en cada página se chequea que esté inciada la sesion para el usuario y si no es así, te envía a la pantalla de login.
Cosas importantes que faltan, una búsqueda por fecha, con calendario en la página y no en pop-up, como está en las licencias, y lo de la evaluación del estado nutricional. Para esto estoy usando actualmente una script javascript que abre una ventana pop-up, pero que me borra todos los datos que tengo en la página inicial, así que tengo que probar algunas otras cosas. Una idea es tener un formulario aparte para evaluar el peso y talla, que en caso de ser enviado, me guarde toda la información en el resto de la página no sé, a lo mejor en una cookie, trabajar en los datos y evaluar el estado nutricional, y recargar la página inicial (‘parent’) y al hacerlo, evaluar si existe esa cookie, rescatar los datos y recargarlos en la página. Parece difícil. Lo otro es usar script javascript que evalúe constantemente los campos involucrados y ejecute los cálculos necesarios actualixando otros campos, no sé si se puede hacer algo así y cómo hacerlo ya que debería acceder a datos en la base mysql.
Uf!
Parece que lo estoy rehaciendo más que nada como un desafío y por las ganas de aprender algo nuevo.
🙂

Fichas 2.0

Esto es HORRIBLE! Hay que hacer todo de nuevo, casi desde cero. Sólo alcanzo a reciclar algo del código para acceder a la base de datos y procesar los datos, pero todo lo que es la plantilla CSS la estoy haciendo desde cero, ya que no hay nada que se le parezca, o al menos no lo he encontrado aún en la red.
Creo que me voy a tradar mucho más de lo que yo pensaba.
LEER MÁS »

Sin novedad en el frente

O más bien sin ganas de extender, mejorar, ampliar mi sistema de fichas electrónicas, ya que es un sistema que uso exclusivamente yo, así que se como by-pasear en caso de necesitar corregir algo.

Por qué? Básicamente porque lo ocupo en una sola consulta y que tengo unas ganas TERRIBLES de dejar de ir para allá. Eso.

Necesito Arreglar…

La página de edicion de antecedentes. Se muestra una página en blanco al tratar de editar los antecedentes personales.
——
Ok, era un ‘include’ que apuntaba a un archivo en desuso.

Codificar, codificar que el mundo se va a acabar

Bien, ahora solo queda escribir y escribir líneas y líneas de código para hacer las respectivas comparaciones. Ya probé con el peso y funciona bien. Ahora solo hay que trasladar lo hecho hacia la página definitiva, agregar lo que falta (entre ello, una tabla de talla para las niñas de 5 a 19 años… que descuido, por suerte el original en texto lo encontré en un respaldo, ahora solo hay que averiguar cómo hice para copiar todo eso en una tabla de mysql).

Esto es lo que hasta ahora va hecho:


//Comenzamos a crear el nombre de la tabla a abrir
//Para pacientes de menos de 5 años
if ($edades[0]<=5){ //Si son de sexo masculino if ($gender == 'M'){ $t_talla = 'talla_boys_0a5'; $t_peso = 'peso_boys_0a5'; $t_pesotalla = 'pesotalla_boys_0a5'; $t_pc = 'pc_boys_0a5'; } //Si son de sexo femenino if ($gender == 'F'){ $t_talla = 'talla_girls_0a5'; $t_peso = 'peso_boys_0a5'; $t_pesotalla = 'pesotalla_girls_0a5'; $t_pc = 'pc_girls_0a5'; } } //Para pacientes mayores de 5 años if ($edades[0]>5){
//Si son de sexo masculino
if ($gender == 'M'){
$t_talla = 'talla_boys_5a19';
$t_peso = 'peso_boys_5a10';
$t_pesotalla = 'pesotalla_boys_5a19';
$t_bmi = 'bmi_boys_5a19';
}
//Si son de sexo femenino
if ($gender == 'F'){
$t_talla = 'talla_girls_5a19';
$t_peso = 'peso_girls_5a10';
$t_pesotalla = 'pesotalla_girls_5a19';
$t_bmi = 'bmi_girls_5a19';
}
}
//Buscamos la información adecuada segun la edad
//en menores de 5 años incluye el perímetro craneal
//se muestra el valor promedio, +1 y -1 ds.
if ($edades[0]<=5){ $sql = 'SELECT * FROM '. $t_peso . ' WHERE day=' . $dias; open_now(); $cueri = @mysql_query($sql); $sel = @mysql_fetch_array($cueri); $menos3ds = $sel['SD3neg']; $menos2ds = $sel['SD2neg']; $menos1ds = $sel['SD1neg']; $sd0 = $sel['SD0']; $sd1 = $sel['SD1']; $sd2 = $sel['SD2']; close_now(); } //Procedemos hacer la comparación, esta vez con el peso y emitir el diagnóstico echo $menos2ds . ' - ' . $menos1ds . ' - ' . $sd0 . ' - ' . $sd1 . ' - ' . $sd2 . '
';
if ($peso < $menos3ds): echo 'Denutrido severo
';
elseif ($peso > $menos3ds && $peso < $menos2ds): echo 'Desnutrido moderado
';
elseif ($peso > $menos2ds && $peso < $menos1ds): echo 'Desnutrido leve
';
elseif ($peso > $menos1ds && $peso < $sd1): echo 'Eutrófico
';
elseif ($peso > $sd1 && $peso < $sd2): echo 'Sobrepeso
';
elseif ($peso > $sd2):
echo 'Obesidad
';
endif;

Problema en el formulario

Acabo de agregar el pop-up con sólo el cálculo del IMC, pero descubrí que cada vez que abro el pop-up, se recarga la página parent, y se borra todo el contenido ya escrito en el formulario. Darn!

Una solución transitoria es usar un history.back en el botón que cierra la ventana pop-up. Al menos funciona, mientras no escriba nada nuevo en la ventana parent.

Tengo que averiguar la causa de ese comportamiento, y evitarlo.

Vamos asegurándonos

Solo para estar seguros que los valores van a tener el formato adecuado:


$peso = $_GET['pe'];
$talla = $_GET['ta'];
$mom_id = $_GET['id'];
$peso = str_replace(',', '.', $peso);
$talla = str_replace(',', '.', $talla);
$peso = number_format($peso, 3);
$talla = number_format($talla/100, 2);

Y vamos avanzando.

Codigo Javascript Funcionando

Este es la función JavaScript funcionando con protección de error, es decir, tienes que tener el valor del peso Y la talla para abrir el pop-up:


<script>
function pop(){
var elpeso = document.peta.peso.value;
var latalla = document.peta.talla.value;
if (elpeso != ''  && latalla !='') {
var elid = document.peta.mom_id.value;
window.open("talla.php?pe="+elpeso+"&ta="+latalla+"&id="+elid,"talla","width=400,height=300,scrollbars=no");
} else {
alert ("Tiene que proporcionar el valor del Peso Y la Talla para esto");
}
}
</script>

Eso es.