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

Mensajes etiquetados Ficha

Un Nuevo Desafíos

Los cambios que las leyes introducen en la forma de trabajar, crean nuevos desafíos. Es el caso de la necesidad de incorporar el nombre del medicamento genérico de los meicamentos en la receta, y ya que en la Clínica Vespucio son algo lentos, voy a ver si puedo hacerlo antes.

La idea es hacer una base de datos de medicamentos, que en un campo indique si se trata de monodroga y de ser así añadir el nombre de la droga. Asi que tengo que investigar un poco en la forma de realizar formularios dinámicos, ya que al no saber cuántos medicamentos van a ser indicados, tengo que ir agregando campos en la medida que sean requeridos. Una forma de hacerlo sería con php puro, aunqe algo complicado y debe ser realizado enviando y re-enviando la página cada vez al servidor. Otra forma más práctica es con el uso de JavaScript que al ejecutarse en el ciente, genera cambios inmediatos.

Vamos  a ver.

Muerto!

Justo cuando terminé de hacer, diseñar y que había quedado completamente satisfecho con como había quedado la nueva aplicación para los formularios de la leche, la había subido al ‘servidor’ el antiguo netbook Samsung que dejé funcionando para efectos de servidor web, intercambios torrent y esas cosas, y le da por morirse. Muerto completamente, no hace ni asco al presionar el botón de encendido, así que le saqué el disco duro, para recuperar la información, la tarjeta de memoria por si sirve en algotra cosa y al cajón de los desperdicios electrónicos.

La pega fué cómo lo hago ahora. Una solución era ocupar la instalación actual de servidor web del mi actual netbook (que uso en modo local para la ficha electrónica), para lo cual, bastaba instalar el programa que actualiza el ip (DynDNS) y configurar adecuadamente el router tanto fijo de la casa, como el móvil. La pega es que no funciona con el sistema de internet móvil de Vomistar, ya que usa un proxy para asignar los números de IP individuales. Nada de mal desde el punto de vista de la seguridad pero… nada puede entrar a menos que sea a través de un canal VPN. Engorroso. Si funciona usando el router inalámbrico de Entel. Punto a favor. La pega es que es… lento.

La otra solución es montar un servidor web en el PC de escritorio, redirigir los puertos del router a ese equipo, instalar el programa de DynDNS en el PC y configurar adecuadamente todo. No es que no me gusten este tipo de desafíos, pero debo confesar que me dió un poco de lata, pero finalmente es lo que hice. Nada complicado si reciclas los archivos de configuración de un PC difunto. Una pequeña pega con el cambio de directorio del WordPress, pero finalmente resuelto.

Aplicacion Milk

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 »

Busqueda por fecha

Necesito implementarla. Pronto.
YA!!

Idea

Y que pasaría si, para lo del cálculo de IMC y ver el estado nutricional, sin que se me borren los datos de la plantilla que estoy editando, con un javascript copio los datos necesarios a una nueva plantilla en otra ventana y esa es la que uso para enviar a evaluar? Habría que ver un método para enviar la plantilla apenas reciba la información. Sería como usar una página web intermedia, pero que no se mostraría al usuario, sino que este vería la información final solamente.
Podría ser.

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.