Una pausa

Estos cinco últimos días han sido muy difíciles para mí. Por circunstancias personales (defunción de una persona muy cercana) me veo obligado a hacer una pausa en el desarrollo del proyecto (pensaba liberar el sabado la alpha3 y en breve la 0.1). Tampoco se cuando reanudaré el proyecto porque esto es muy difícil y no se el tiempo que tardaré en superarlo.

Enhorabuena a todos los que habeis sacado el proyecto adelante y espero volver pronto a esto otra vez.

3 comments Abril 10, 2007

Version alpha1 !!!

Por fin! Lo conseguí!.

El programa ya es capaz de tasar tranquilamente (sin tener en cuenta aportaciones o colectivos de pertenencia) e imprimir un ticket y un prospecto al paciente. También puede llevar la gestión de pacientes, facultativos y proveedores, recepcionar materias primas (aunque todavía no descuenta cantidad al dispensar y tampoco registra las formulas dispensadas).

Los datos de los que dispongo no me permiten hacer mucho, ya que no poseo los tramos de tasación de las diferentes formulaciones para cada comunidad ni los precios de referencia de las materias primas, pero por lo que he podido probar funcionarian igual de bien.

Los detalles anteriores los dejo para la alpha2 que podria estar en 3-4 dias., asi como la ayuda para el usuario, el control de calidad, las aceptaciones y algun que otro fleco que se me haya pasado (controles de seguridad en acceso y eso).

El plan es hacer al menos una alpha3 antes de tener una version 0.1 completa con todas sus funciones y un instalador decente con su gestion propia de su base de datos y asistentes de configuracion y eso.
De todas formas, como siempre si alguien quiere probar y eso voy a dejar un paquete para descargar con binarios y fuentes así como el esquema SQL en la sección de la forja (siento que sea un zip pero 7zip no quiere hacer un tarball :\ ) . Para instalar solo hay que seguir los pasos indicados en el INSTALL y usar ‘mono formulacionmagistral.exe’ para ejecutar. Ah, el usuario por defecto administrador es alvaro password alvaro :P .

Add comment Abril 3, 2007

A mi ritmo

El tiempo restante es escaso, pero si puedo seguir a este ritmo podría tener algo terminado para dentro de muy poco.

El caso es que ya he terminado algunas partes de carga y demas de los componentes de las formulas magistrales y  he establecido las bases para la tasacion(solo tengo que juntar las piezas :P )

(tasacion mejorada)

tasando_a_medias.JPG

Ademas me he currado un pequeño micro-editor que permite editar los prospectos y etiquetas y guardarlos en RTF. Esta muy verde y algunas cosas estan a medias, pero ahi esta:

(editorcillo)

editor.JPG

Tambien he terminado la parte de registro de materias primas, aunque falta implementar la seleccion de la materia prima en concreto con lo que es poco util de momento….

Con un poco de suerte podre currarme un asistente de inicio que obtenga la informacion de factor P, comunidad, año para tasacion, configuracion del servicio y esas cosas que son necesarias para el programa, además de completar los documento de ayuda al usuario que ya tengo.

Por cierto: despues de estar media hora investigando porque no puedo subir mi trabajo al SVN con errores extraños, me fijo que la bd de la forja esta…caida?(sin animo de ofender…). Puede que sea cosa mia, en fin.

Add comment Marzo 28, 2007

Por los pelos

A pesar de la falta de tiempo (como siempre), desde mi ultimo post he avanzado notablemente en el grueso y ultima parte de la aplicación: la tasación y gestión de materias primas. Aunque voy algo corto de tiempo creo que terminare y tendre algo funcional y razonablemente estable casi por los pelos.

La tasación es algo compleja por la descentralizacion autonomica que hace que cada comunidad tenga su propias normas y demas como ya explique en otro post sobre legislacion, asi que la unica forma de funcionar es con tablas separadas para cada comunidad autonoma y para cada año, con lo que el programa ha de gestionar estos parametro al igual que el factor P de corrección de honorarios profesionales. En cualquier caso el modulo de tasación ya es capaz de controlar todos estos parametros a falta de la tasacion de los componentes de la formula por separado:

(eligiendo el envase en la tasacion)

tasacion.JPG

Por otra parte he corregido ciertos errores en modulos como impresion (impresion multipagina), telefonos de los modulos clonicos(problemas con la clave primaria en las tablas) y he desarrollado otros como el visor de alertas de seguridad (impresion, borrado, niveles de acceso)

(imprimiendo varias paginas de logs de seguridad)

visor_alertas.JPG

Por ultimo comentar que tambien he avanzado de forma visible en la gestion de formulas(almacenado y cargado) y que pronto terminare esta parte y la edicion de prospectos informativos.

(cargando una formula inventada)

gestion_formulas_verde.JPG

Se puede observar una limitacion a 11 componentes por formula. Esto es debido a los problemas e incompatibilidades del datagrid de mono sobre todo cuando hay relations de por medio (y hay muuuchas relaciones entre tablas y demas)

Como siempre los ultimos detalles mas explicados en el log del repositorio.

Add comment Marzo 20, 2007

Una feature no documentada

Resulta que reescribiendo las partes de los datasets relacionadas con material de acondicionamiento y personal me he encontrado que tengo con una “feature no documentada” (=bug). Al parecer no funciona correctamente la introducción de nuevos registro y siempre responde un error de Update que afecta a 0 rows. Probando y probando me he dado cuenta de que pasa absolutamente de hacer los inserts si la tabla tiene alguna cosa “extraña” como foreign keys o indices raros. Para resolver el problema he ideado otro invento extraño que hace el insert con datos genericos y después “invita” a modificarlos con lo que el update puede funcionar correctamente. Hasta ahora las dos alternativos que tenia para el UPDATE eran estas:

UPDATE table Set tableid =?tableid…….;

UPDATE table Set campo = ?campo….. WHERE tableid =?tableid

La primera funcionaba perfectamente en runtime de Mocosoft y en algunos casos como el de insertar un nuevo registro con el bug en Mono, pero no funciona correctamente al modificar los datos de un registro que esta actualmente en la base de datos.

La segunda funciona bastante bien en runtime de Mocosoft y en Mono con los casos en los que el registro ya existe y se modifica, pero con el bug, el insert no funciona y cuando intenta hacer el UPDATE sale el error de las 0 rows, porque, evidentemente, no existe el registro con el tableid que estan en la clausula WHERE.

Puede que a alguien se le hubiera occurido algo muy ingenioso en SQL como suspender CONSTRAINTS, hacerlo todo y despues hacer el COMMIT  o algo de eso, pero con mis actuales conocimientos y mas que nada mi tiempo actual no me permiten hacer nada mejor.

Pues en esto estoy, en que esta semana me voy a llevar un colchón directamente al laboratorio (para ahorrar tiempo mas que nada entre clase-lab de micro-lab de jornadas) y con un poco de suerte termino ya con estos problemas y me empiezo con el diseño del Form de dispensación.

Como siempre casi lo último que he hecho esta en el repositorio y si alguien quiere usarlo la guia esta en la seccion de documentos en la forja.

Add comment Marzo 11, 2007

En la linea

Bueno, en el tiempo desde mi último post, a pesar de estar hasta arriba con el asunto de las Jornadas de investigación para alumnos de pregrado y vivir practicamente en la facultad, he podido hacer una serie de cosas que me permite seguir en la línea del desarrollo:

-  He mejorado la ayuda bastante. Ahora se basa en archivos RTF con la consiguiente mejor apariencia de los archivos y la unificación de documentación que eso supone.

-  He implementado cierta parte relacionada con las implementación de las recepciones de materiales (Aceptaciones) y parte de la gestión del personal que faltaba (MiniVista de Personal) .

(Aqui un esbozo de las aceptaciones)

aceptaciones.JPG

(Aqui con la gestion de personal)

pre_personal.JPG

- También he añadido al módulo de configuración el soporte para especificar los datos del servicio que pueden ser usados en la impresión de documentos.

generic_info.JPG

- Por último, también he acabado de sustituir todos los módulos clónicos por el invento que deja atras todos los problemas de los DataBindings y el CurrencyManager.

Además si alguien quiere (que lo dudo mucho) ya se puede compilar el proyecto y echar un ojo a los progresos directamente desde el subversion puesto que he subido un build para nant.  Y por si fuera poco he escrito un pequeño documento en OpenOffice explicando como montar un entorno para probar el desarrollo. Se puede sacar de la forja aqui:

https://forja.rediris.es/docman/view.php/165/258/desarrollo.odt

o mirando desde aqui:

https://forja.rediris.es/docman/?group_id=165

Puede que no funcione bien todo ya que el esquema Sql de la forja esta un poco atrasado con respecto al de mi arbol de desarrollo, pero es mejor que nada…..

Add comment Marzo 4, 2007

Un reves potente

Hasta ahora iba a buen ritmo en el desarrollo. Habia programado casi todos los modulos con dependencia total de la base de datos, la autentificacion de usuarios, los niveles de acceso  y con la impresion estaba teniendo bastantes buenos resultados:

Aqui se ve el Print Preview

shot_impresion1.JPG

Incluso habia programado algo de ayuda – cutre, eso si. Seguire el cosejo dado por Christian López(gracias por la sugerencia) y metere RTF, si se puede en algun control de Mono claro esta -

Ademas las cosas programadas seguian funcionando normalmente. La vida era fácil. Utilizaba Mono-1.1.18 para compilar y todo parecia ir bien despues de desactivar la optimizacion del codigo en el SharpDevelop.

Hace 2 dias tuve la brillante idea de cambiar a una version de la rama 1.2, puesto que tenia el soporte completo de WinForms 1.1, cosa bastante necesaria para el programa. Desde entonces todo mal…

- Los DataBindings hacen lo que quieren. No se puede modificar el contenido de ningun TextBox y los DataValues y esas cosas de los listbox no estan implementados (Exception extraña), por no hablar del CurrencyManager y cosas de las sentencias SQL de Update que dejan de funcionar misteriosamente.

- El Application.Exit(), no tira como se espera.

- La aplicacion hace extraños en Linux de vez en cuando con Exceptions muy muy raras.

Asi que me he puesto a reescribir parte de los modulos para rodear la necesidad de los DataBindings y el CurrencyManager, para ello me he tenido que meter con la documentacion de los DataTables y DataRows y pegarme con las actualizacion de las Rows maracadas con Deleted que no se quieren borrar del todo.

El tema de los extraños esta por ver al igual que el del Application.Exit() pero parece ser que las cosas se empiezan a arreglar en el ultimo commit del svn con el nuevo prototipo de modulo que funciona bastante bien con el runtime de mono en win32 (sin probar en Linux. No, hoy no me apetece reiniciar ni arrancar la maquina virtual) y parece que no se cae:

Aqui se ve que he tenido que llevarme por delante el DataGrid porque no le hace caso al DataMember en los Bindings. He optado por desdoblar en dos formularios.

proveedores_funciona.JPG

Aqui borrando (POR FIN!!!)  por un chungo extraño de evento RowDeleted+metodo  RemoveAt de RowsCollection (hey, pero funciona)
borrando_bien.JPG

Aqui se le ve funcionando modificando los datos (realmente a pelo sobre la Row del dataset)

guardando_bien.JPG

Espero que en el proximo commit del svn lo tengo totalmente controlado para facultativos, pacientes y demas, y que no me retrase mucho en mi camino hacia “el modulo de tasacion” verdadero objetivo del programa.

Add comment Febrero 20, 2007

Leyes

Bueno, hace tiempo que tenía este post pendiente, y hoy, por fin, me he decidido a escribir sobre las leyes que regulan la elaboración de formulas magistrales.

Basicamente son estas leyes las que me han indicado el camino a seguir ya que no he cursado todavía ninguna asignatura de formulación (puede que no lo haga nunca) y tampoco he tenido experiencia profesional de este tipo.

- Primero. Las formulas magistrales están definidas en la flamante “nueva” ley de Garantias y uso racional de los medicamentos y productos sanitarios de 2006 como “el medicamento destinado a un paciente individualizado, preparado por un farmacéutico, o bajo su dirección, para cumplimentar expresamente una prescripción facultativa detallada de los principios activos que incluye, según las normas de correcta elaboración y control de calidad establecidas al efecto, dispensado en oficina de farmacia o servicio farmacéutico y con la debida información al usuario en los términos previstos en el artículo 42.5

(En los articulos 42, 43 y 44 de dicha ley se ponen ciertas condiciones a la formulas magistrales y se habla sobre el Formulario Nacional y los preparados oficinales)

Todo lo anterior esta bien pero no indica demasiada información sobre como se hacen las cosas realmente y que hay que documentar y gestionar para facilitar la vida al boticario que de eso es lo que se trata. Para ello esta el Real Decreto 175/2001.

- Segundo. Real Decreto 175/2001 del 23 de Febrero por el que se aprueban las normas de la correcta elaboración y control de calidad de formulas magistrales y preparados oficinales.

En este decreto se especifica de una manera exhaustiva toda la información que hay que mantener en los registros y de los procedimientos para llevar un control de todas las operaciones y garantizar así la calidad. Se habla desde el registro de las materias primas, hasta las advertencias a incluir en el prospecto al paciente.

Es el capítulo III de esta ley sobre documentación en el que he basado absolutamente todos mis modelos de datos iniciales que posteriormente según avanzaba el desarrollo he tenido que ir modificando ligeramente al descubrir errores o imprecisiones.

- Tercero. No todo iba a ser tan bonito. En España existen comunidades autonomas. Desde hace varios años las competencias de sanidad se han cedido desde el estado a dichas comunidades con lo que cada una a pretendido legislar lo que le parecía oportuno. Así uno se encuentra con una gran variedad de leyes que solo afectan a una pequeña parte del territorio y donde se varían cosas tan importantes como el factor P y los precios de principios activos y excipientes.
Me he quedado agusto. Esto es un breve resumen de todas las leyes que me he comido y que tienen poco aplicación real sobre la actividad del programa pero que es necesario leer para asegurarse de que “cumplen con la legislacion actual” (Requisito planteado inicialmente).

Add comment Febrero 16, 2007

Ayuda “Inteligente”

Por fin he terminado los examenes!!!!

Ya han sido festejados y ahora toca ponerse a trabajar otra vez plenamente. Mientras estaba concentrado en Farmacologia, Microbiologia y demás implemente unas cuantas cosas que por lo que sea no recuerdo muy bien  (cosas que pasan) , pero entre ellas esta la ayuda “inteligente”. Digo “Inteligente” y no inteligente porque para ello tendría que ser un conjunto de redes neurales que aprendieran de las acciones del usuario y dedujeran la accion mas apropiada a sugerir.

Pues bien, aunque el requisito inicial se definio como “algo parecido al asistente de openoffice-m$office-etc-offfice” más bien se referia a algo a lo que pudieras preguntar claramente y obtener un tema relacionado y mostrar la información de la acción. Asi que el resultado es algo que cumple con el requisito, funciona, pero de lo que probablemente necesitaría una mayor puesta a punto (si no una reescritura,  ¿¿los vapores de clorhidrico??). Sea como sea aquí esta el enjendro (MWAHAHAHA):

Aqui se le ve respondiendo a una pregunta tipica de  concursante de Gran Hermano (si, yo querer poder responder mejor):

farmakito_en_accion.JPG

Aquí mostrando una ayuda un poco corta(posiblemente mejorable con cosas HTML, pero requiere navegador y mas tiron de ordenador para ejecutar el mono y un firefox). Hey y ademas esta en las tablas de la base de datos asi que no se le puede pedir mucho.

farmakit_contenido_no_definitivo.JPG

Lo mas probable es que referencie en la base de datos a un archivo HTML, o de otro tipo que contenga la ayuda mas clara y asi juntar toda la documentacion de una forma facil.

Pero bueno, no se puede pedir mas mientras estaba estudiando, que encima he aprobado Farma!!!!!!

1 comment Febrero 14, 2007

Sexto commit

Aunque sigo enfrascado en examenes y dije claramente que no iba a programar más mientras los tuviera(ya me arrepentiré cuando me las den todas seguidas en la cara), he tenido algo de tiempo de implementar y hacer algunas cosillas.

- Sexto commit

  • Los modulos clónicos de pacientes, facultativos, proveedores, etc … ya casi son definitivos con algún que otro detalle por implementar (creo que solo busqueda).
  • El control de acceso es simple pero efectivo: 4 acciones por módulo, nuevo, modificar, borrar y acceder. Cada accion de cada módulo es independiente. Y los módulos especiales como el de tasación y la impresión quedan por extender (simplemente añadirlos en la tabla de la base de datos).
  • El módulo de control de calidad (controles y ensayos realizados sobre materiales del registro)  esta practicamente acabado, solo queda el control de acciones y un problemilla de concurrencia misterioso con los dos CurrencyManager y datarelations, pero facil de arreglar.

- En breve

  • He estado investigando sobre nant y pronto tendre unos builds para poder compilar con mono en distintas plataformas y no solo con el SharpDevelop como hasta ahora.
  • No se si podre contenerme antes de que terminen lo examenes o me pondre ya finalemente con la impresión y tasacion-materiasprimas-envases (eje del programa). Pero eso si, lo siguiente va a ser el modulo de ayuda inteligente.
  • Ademas, tengo pendiente un post de las actuales leyes que rigen la formulación magistral y los preparados oficinales.

A ver si tengo suerte en farmacologia mañana…..

Add comment Febrero 1, 2007

Previous Posts


Categories

  • Blogroll

  • Feeds