Upload
phungdiep
View
219
Download
0
Embed Size (px)
Citation preview
UNIVERSIDAD DE LAS TUNASFACULTAD DE CIENCIAS TÉCNICASDEPARTAMENTO DE INFORMÁTICA
SISTEMA DE CONTROL DE MEDICAMENTOS HOSPITALARIOS
TRABAJO DE DIPLOMA PARA OPTAR POR EL TÍTULO DEINGENIERO INFORMÁTICO
AUTOR: Daimara Rodríguez Leyva
TUTOR: Dr.C. David Mario Morales Rey
CONSULTANTES: Ing. Alejandro Toledo González
Ing. Feisy Pérez Amores
Las Tunas, mayo de 2013
DEDICATORIA
A Dios que me ha dado sabiduría en todo tiempo.
En especial a mi esposo Juan Rafael Pino por ayudarme siempre.
A mi madre Nelvis y a mi padrastro Martín.
A mi familia por darme su apoyo incondicional.
A mi tutor David, consultantes Alejandro Toledo, Feisy y profesores que me dieron su
gran ayuda.
Agradecimientos
A Dios y mi familia.A mi esposo Juan.A mi madre Nelvis y a mi padrastro Martín.A mis consultantes Alejandro Toledo y Feisy Pérez por su apoyoincondicional.A mi tutor David.A todo el que confió en mí.A todo el que me ayudó, en algún momento.A los que me tendieron su mano, y a los que me la negaron también.A todos, gracias.
DECLARACIÓN DE AUTORÍA
Declaro que soy el único autor de este trabajo y autorizo a la Facultad de Ciencias
Técnicas así como al Departamento de Informática para que hagan el uso que
estimen pertinente con este trabajo.
Para que así conste firmo la presente a los ___ días del mes de ___________ de
________.
______________ ______________ Firma del Autor Firma del Tutor
OPINIÓN DEL TUTOR DEL TRABAJO DE DIPLOMA
Título: Sistema de Control de Medicamentos HospitalariosAutor: Daimara Rodríguez Leyva
El tutor David Mario Morales Rey del presente Trabajo de Diploma considera quedurante su ejecución el estudiante mostró las cualidades que a continuación sedetallan.
Por todo lo anteriormente expresado considero que el estudiante está apto paraejercer como Ingeniero Informático; y propongo que se le otorgue al Trabajo deDiploma la calificación de .
__________________ _______________Firma Fecha
RESUMEN
En el marco de la salud en Cuba, el Hospital General Docente Doctor Ernesto
Guevara de la Serna de la provincia Las Tunas, en el área de la Farmacia Interna –
Almacén de Medicamentos y con el propósito de prestar un mejor servicio en la
distribución de medicamentos que son dispensados a las distintas salas para la
atención a pacientes hospitalizados y para el control de su existencia, como también
para los pedidos, sucedía que cada vez que una de estas áreas procesaba la
información o realizaba una solicitud para la obtención de la información deseada,
tenían que hacer el proceso de forma manual y estaba sujeta a distintos errores o
falta de control de esta actividad, lo que proporcionaba el desvío y falta de control de
éstos recursos.
Se decidió elaborar un sistema informático, para elevar la calidad de los servicios,
tener un mejor control de los distintos movimientos que se realizan en el almacén, así
como los destinos de éstos y los pedidos que se realicen a la Empresa
Comercializadora de Medicamentos (EMCOMED) de manera rápida y correcta,
permitiendo la rapidez en la obtención de la información deseada.
Con la realización de este sistema se le proporcionó a esta entidad un programa que
permite un mejor procesamiento de las informaciones que se controlan, garantizando
una mayor seguridad en los datos que se manejan y almacenan. De esta forma se
produce un mayor rendimiento del colectivo que manipulaba de forma manual estas
informaciones. También benefició a la parte directiva del hospital, brindando
información fiable para la toma de decisiones. Puede ser explotado en PC con la
siguiente configuración: Pentium II (o superior) con 128 MB de RAM sobre Windows,
HD 80 GB.
ÍNDICE
INTRODUCCIÓN------------------------------------------------------------------------------------------1
CAPÍTULO 1. FUNDAMENTACIÓN TEÓRICA ---------------------------------------------------5
Introducción ---------------------------------------------------------------------------------------------------- 5
1.1 Realización del control de medicamentos hospitalarios y pedidos en la Farmacia Interna -Almacén de Medicamentos.---------------------------------------------------------------------------------- 5
1.2 Sistemas para realizar el Control de Medicamentos Hospitalarios. ----------------------------- 9
1.3 Metodologías, Lenguajes y Herramientas utilizadas. --------------------------------------------- 111.3.1 Lenguajes. ------------------------------------------------------------------------------------------------------------ 111.3.2 Herramientas.--------------------------------------------------------------------------------------------------------- 141.3.3 Sistemas Gestores de Base de Datos ----------------------------------------------------------------------------- 151.3.4 Patrón CRUD--------------------------------------------------------------------------------------------------------- 161.3.5 Metodologías. ------------------------------------------------------------------------------------------------------- 16
Conclusiones parciales--------------------------------------------------------------------------------------- 17
CAPÍTULO 2. ANÁLISIS Y DISEÑO DEL SISTEMA. ------------------------------------------ 18
Introducción --------------------------------------------------------------------------------------------------- 18Objeto de Automatización ------------------------------------------------------------------------------------------------ 18
2.1 Modelado del Negocio ----------------------------------------------------------------------------------- 182.1.1 Actores del Negocio------------------------------------------------------------------------------------------------- 182.1.2 Definición de Caso de Uso----------------------------------------------------------------------------------------- 19
2.1.2.1 Casos de Uso del Negocio ------------------------------------------------------------------------------ 192.1.2.2 Diagrama de caso de uso del negocio --------------------------------------------------------------- 19
2.1.3 Descripción textual de los casos de uso del negocio.---------------------------------------------------------- 20
2.2 Flujo de Requerimientos. ------------------------------------------------------------------------------- 242.2.1 Requisitos Funcionales. -------------------------------------------------------------------------------------------- 242.2.3 Requisitos no funcionales. ---------------------------------------------------------------------------------------- 262.2.3 Actores del sistema y su justificación. --------------------------------------------------------------------------- 272.2.4 Casos de uso del sistema. ------------------------------------------------------------------------------------------ 28
2.2.4.1 Diagrama de casos de uso del sistema.------------------------------------------------------------- 292.2.5 Descripción textual de los casos de uso del sistema. ---------------------------------------------------------- 30
2.3 Flujo de Diseño.------------------------------------------------------------------------------------------- 382.3.1 Diagrama de Clases del Diseño ----------------------------------------------------------------------------------- 392.3.2 Diagrama de secuencia.--------------------------------------------------------------------------------------------- 412.3.3 Diagrama de clases persistentes. ---------------------------------------------------------------------------------- 472.3.4 Modelo de Datos. ---------------------------------------------------------------------------------------------------- 492.3.5 Modelo de Despliegue. --------------------------------------------------------------------------------------------- 49
2.4 Flujo de Implementación.------------------------------------------------------------------------------- 492.4.1 Modelo de Componentes. ------------------------------------------------------------------------------------------ 49
2.4.1.1 Diagrama de la arquitectura del sistema. ----------------------------------------------------------- 492.4.1.2 Diagramas de componentes de los casos de usos más importantes. ---------------------- 51
Conclusiones parciales--------------------------------------------------------------------------------------- 52
CAPÍTULO 3. IMPLEMENTACIÓN DEL SISTEMA.------------------------------------------- 53
Introducción --------------------------------------------------------------------------------------------------- 53
3.1 Aspectos relativos a la implementación del sistema.----------------------------------------------- 53
3.2 Diseño de la interfaz. ------------------------------------------------------------------------------------ 53
3.3 Forma general y principios en que se basa el sistema de ayuda. -------------------------------- 54
3.4 Forma general y principios de la protección y seguridad.---------------------------------------- 54
3.5 Forma general del tratamiento de errores.---------------------------------------------------------- 55
Conclusiones parciales--------------------------------------------------------------------------------------- 55
CONCLUSIONES---------------------------------------------------------------------------------------- 56
RECOMENDACIONES -------------------------------------------------------------------------------- 57
BIBLIOGRAFÍA ----------------------------------------------------------------------------------------- 58
ANEXOS --------------------------------------------------------------------------------------------------- 60
Anexo #1. Descripción textual del caso de uso del sistema Gestionar Salida de Medicamentos.------------------------------------------------------------------------------------------------------------------- 60
Anexo #2. Diagramas de secuencias del CUS_Gestionar Salida de Medicamentos -------------- 65
Anexo #3. Modelo de Datos. -------------------------------------------------------------------------------- 69
1
INTRODUCCIÓN
En el ámbito de la salud en Cuba, el Hospital General Docente Doctor Ernesto
Guevara de la Serna de la provincia Las Tunas, en el área de la Farmacia Interna –
Almacén de Medicamentos y con la intención de prestar un mejor servicio en la
distribución de medicamentos, que son dispensados a las distintas salas para la
atención a pacientes hospitalizados y para el control de su existencia, como también
para los pedidos, sucede que cada vez que una de estas áreas procesa la
información o realiza una solicitud para la obtención de la información deseada, tiene
que hacer el proceso de forma manual, lo cual atrasa la actividad cuando en muchos
de los casos no se puede perder tiempo, o está sujeta a distintos errores en los datos
de las informaciones que se llevan o falta de control de esta actividad. Todo ésto da
lugar a un descontrol en la información, duplicidad y la no actualización, lo que
proporciona el desvío y descontrol de éstos recursos, provocando pérdidas
económicas al estado y que los medicamentos no lleguen en tiempo y forma a los
pacientes.
En la actualidad existe un sistema informático implementado, pero no cumple
eficientemente con todos los requisitos, como una correcta creación de pedidos,
entradas y salidas de medicamentos, etc. Por lo que se ha continuado realizando
dichos procesos de forma manual, al no satisfacer al usuario con el producto
informático entregado.
Se decide para elevar la calidad de los servicios, elaborar un sistema informático
que cumpla con todos los requisitos para tener un mejor control de las distintas
operaciones de entrada y salida que se realizan en el almacén, así como los destinos
de éstos y los pedidos que se realicen a la Empresa Comercializadora de
Medicamentos (EMCOMED) de manera rápida y correcta, logrando establecer un
sistema de control y organización de la información general en la actividad de
medicamentos en el hospital.
La utilidad de un Sistema de Control de Medicamentos Hospitalarios que realice con
eficiencia y calidad el control de los medicamentos hospitalarios posee importancia
vital para el personal farmacéutico y en especial para el responsable del Almacén de
2
Medicamentos de dicho hospital, lo que contribuye a prestar un mejor servicio en la
distribución de medicamentos y control de su existencia, destinos y los pedidos de
éstos, que son dispensados a las distintas salas para la atención a pacientes
hospitalizados, contribuyendo a elevar la calidad de vida y salud de los mismos, y
evitar el desvío de éstos recursos.
Con la realización de esta aplicación se le proporciona a esta entidad un programa
que le permitirá un mejor procesamiento de las informaciones que controlan en dicha
área, garantizando una mayor seguridad con toda esta información almacenada. De
esta forma se produce un mayor rendimiento del colectivo que manipula de forma
manual estas informaciones, satisface las necesidades de esta área, lo que beneficia
a la parte directiva del hospital brindándole información fiable para la toma de
decisiones. Ello permite una correcta organización, eliminándose un grupo de
registros y controles manuales que demoran la gestión de la actividad en los
momentos actuales. Las personas que controlan esta información son: responsable
de Almacén de Medicamentos, técnica en informática, jefe de farmacia y el
informático encargado de recibir el pedido en EMCOMED.
En el proceso de realización del control de éstos recursos y los pedidos de los
mismos, en el Almacén de Medicamentos del Hospital General Docente Dr. Ernesto
Guevara de la Serna de la provincia Las Tunas, se detectaron varias deficiencias:
1. Errores en la realización del informe de recepción, donde se refleja la
cantidad de medicamentos que entra de EMCOMED.
2. Error en la información de los movimientos que se hacen mediante los valesde transferencia, para dar salida del almacén a la Farmacia Interna, ya sea
porque mandan un medicamento y no lo reflejan en el vale o mandan de más
o de menos a lo que está escrito en el vale.
3. No se refleja en muchas ocasiones la existencia real de cada medicamento,
por lo que proporciona un descuadre en los saldos.
4. Incorrecto cálculo de los máximos y mínimos de cada medicamento a tener el
almacén, lo que provoca que a la hora de realizar el pedido a EMCOMED no
se pida lo que realmente necesita tener el hospital para un mejor servicio o se
pediría de más, lo que ocasionaría excesivos gastos innecesarios al país.
3
El hecho de que la realización del control de medicamentos hospitalarios se realice
de forma manual auxiliándose del actual sistema informático ineficiente, para realizar
solamente el archivo del pedido, trae consigo otras dificultades como son:
1. Demora en darle entrada o salida a los medicamentos del almacén a la
farmacia, ya que el actual programa no tiene un sistema de búsqueda para
agilizar este proceso, por lo que sigue haciéndose de forma manual.
2. Mucho tiempo empleado en la confección de los pedidos.
3. Interfaz inadecuada, en el actual sistema, ya que no le da facilidades al
usuario para evitar equivocaciones en los distintos procesos que se realizan,
en especial, en la realización del archivo de pedidos.
4. Poca funcionalidad en lo que realmente se necesita para satisfacer las
necesidades de esta área.
Tomando en consideración lo expresado con anterioridad arribamos al siguiente
Problema Científico: La carencia de un software de propósito general, que realice
con eficiencia y calidad el control de los medicamentos hospitalarios y un correcto
pedido de los mismos atenta contra la buena marcha de los procesos que se realizan
en la Farmacia Interna – Almacén de Medicamentos, del Hospital General Docente
Dr. Ernesto Guevara de la Serna.
Este problema se enmarca en el Objeto de Estudio: proceso de control, recepción y
realización de pedidos de medicamentos hospitalarios.
Objetivo: implementar un sistema para el control de medicamentos hospitalarios y
realización de pedidos de los mismos, con una adecuada interfaz y facilidades para
el usuario en el área Farmacia Interna – Almacén de Medicamentos.
Campo de Acción: proceso de control de medicamentos hospitalarios, recepción y
pedidos de los mismos, en el área de la Farmacia Interna – Almacén de
Medicamentos del Hospital General Docente Doctor Ernesto Guevara de la Serna.
El problema detectado y el objetivo formulado permiten declarar la siguienteidea a defender: La elaboración informatizada del Sistema de Control de
Medicamentos Hospitalarios permite un mejor control de los mismos y realización de
pedidos de forma adecuada.
4
Tareas de la Investigación:
Estudio de resoluciones, instrucciones, manuales, normativas, etc., sobre
temas de inventarios o medios de rotación, en la parte de medicamentos
hospitalarios.
Estudio de los sistemas de control de medicamentos hospitalarios existentes
en el área nacional e internacional.
Estudio del lenguaje de programación, herramientas, metodología y sistema
gestor de base de datos a utilizar.
Análisis, diseño e implementación del Sistema de Control de Medicamentos
Hospitalarios en el área de la Farmacia Interna – Almacén de Medicamentos.
Lo que nos lleva a utilizar los siguientes métodos científicos:
Teóricos:
Histórico-Lógico: se emplea para hacer una búsqueda exhaustiva sobre
Sistemas Informáticos que resuelvan problemas semejantes al planteado.
Análisis y Síntesis: se realiza para resumir los aspectos más importantes de la
literatura y las fuentes consultadas, vinculadas con el problema tratado.
Inducción-deducción: Se emplea durante todas las etapas de la investigación
para relevar la relación entre lo particular y lo general, y viceversa.
Sistémico-estructural: Se emplea en la elaboración del sistema para la gestión
de la información, así como para abordar todos los procesos involucrados en
la temática estudiada.
Empíricos:
Revisión documental: Se emplea para la recopilación de la información
necesaria respecto al objeto de estudio de la investigación.
Entrevista: Se emplea en la recopilación de información mediante una
conversación profesional para lograr mejores resultados en la misión.
5
CAPÍTULO 1. FUNDAMENTACIÓN TEÓRICA
Introducción
En el presente capítulo se realiza una breve explicación de los controles que se
realizan a los medicamentos hospitalarios, así como de los pedidos de los mismos.
Se analizan algunas aplicaciones existentes y otras con problemas encontrados en
su funcionalidad e interfaz. Se describe la metodología, lenguaje y herramientas para
la realización del software. Todo esto posibilita una mejor comprensión de lo
expuesto en el problema.
1.1 Realización del control de medicamentos hospitalarios y pedidos en laFarmacia Interna - Almacén de Medicamentos.En el área Farmacia Interna - Almacén de Medicamentos del Hospital General
Docente Doctor Ernesto Guevara de la Serna de la provincia Las Tunas, se realiza el
control de medicamentos con respecto a su existencia y los movimientos que tengan
los mismos, así como también de la documentación necesaria para el manejo de los
datos de dichos recursos, lo que permite realizar un correcto pedido a EMCOMED,
según el máximo y mínimo de existencia que tenga cada uno de los medicamentos,
para garantizar la salud de los pacientes y un adecuado control económico.
El proceso de este control se inicia mediante una correcta recepción de los
medicamentos que se plasman en el informe mediante la factura y su conteo físico,
que realiza el responsable del Almacén de Medicamentos. Este informe derecepción incluye código de cada medicamento, nombre, unidad de medida,
cantidad, precio, importe, saldo e importe total. Además se recogerán los
movimientos de entradas, salidas y saldo de cada medicamento en las tarjetas de
estibas, estas se deben mantener actualizadas permanentemente.
Existen dos tipos de recepción de medicamentos:
Recepción preliminar.
Recepción detallada.
Recepción preliminar: la recepción preliminar es la que se realiza en el momento
de recibir los productos de los suministradores en presencia del transportista o
persona que realiza la entrega, durante la cual se verifican: identificación y
6
documentación recibida del suministrador, correspondencia entre la cantidad de
bultos o paquetes recibidos y la reflejada en la factura, conduce o nota de envío,
proveniente del suministrador e integridad física del envío, en el cual se comprobará
que los bultos o paquetes que se reciben estén en buen estado, correctamente
sellados y no presenten señales de haber sido abiertos o dañados.
Recepción detallada: se establece con carácter obligatorio la recepción detallada en
el término de las 48 horas inmediatas posteriores a la preliminar, con excepción de
los productos de frío y desabastecidos a los cuales se les hará de inmediato. En la
recepción detallada se cumplirá la “recepción a ciegas”, que consiste en la apertura
de todos y cada uno de los bultos o paquetes recibidos para verificar el surtido, la
cantidad y la calidad de lo recibido, para posteriormente comprobar su coincidencia
con lo que aparece registrado por el almacén suministrador en la factura. Esta
revisión es la más importante (Cuba. Ministerio de Salud Pública 2006, p. 27).
Una vez hecha la recepción detallada, dichos productos forman parte del inventario
de la unidad procediendo a la ubicación en el almacén según los procedimientos
para el almacenamiento. Además se realiza el informe del inventario de
medicamentos una vez al mes para un alto control de su existencia.
Otro de los controles se lleva en el libro de vencimientos, éste se emplea para que
los medicamentos roten, es decir, se le vaya dando salida por el lote con la fecha
más próxima a vencer, por lo que evita que éstos se venzan por lento movimiento al
no darle prioridad. Además para un mejor control de esta actividad una vez al mes se
realiza un informe de próximos a vencer en los siguientes tres meses.
Además, se realiza el control de medicamentos retenidos, ya sea por sospecha de
mala calidad, errores en los datos rotulados, etc. El proceso se inicia cuando llega
una orden de retención que emite EMCOMED, mediante el “plan de aviso”, donde
se informa el nombre genérico y/o comercial del medicamento, presentación, lote y
vencimiento, así como la causa. Luego se aparta la cantidad que el almacén de
medicamentos tenga de existencia del lote señalado y se registra en el libro decontrol de retenidos. Luego, mediante otro plan de aviso se ordena la liberación
por estar todo normal o retirada y destrucción de la cantidad del medicamento antes
retenido.
7
Cuando ocurren roturas en los medicamentos por mala manipulación de los mismos
o al vencerse se realizan ajustes mediante la rebaja en la tarjeta de estiba de la
cantidad que se vio afectada, actualizando el saldo.
El farmacéutico debe elaborar un vale de solicitud de entrega de medicamentos al
almacén, donde se plasma el código de cada medicamento, nombre, unidad de
medida y cantidad. Luego el responsable del almacén de acuerdo a la existencia
que tenga de los mismos procede a realizar la salida a la Farmacia Interna mediante
el vale de transferencia y rebajando dicha cantidad de la tarjeta de estiba. Dicho
vale debe tener código de cada medicamento, nombre, unidad de medida, cantidad,
precio y saldo. Todos estos son documentos legales que tienen gran importancia
para tener el control de medicamentos que solicita la Farmacia Interna al almacén y
las salidas que este le da a los mismos.
Para confeccionar el pedido de medicamentos primeramente se debe de tener un
máximo y mínimo de existencia de cada medicamento en el almacén, esto se obtiene
mediante el chequeo que el responsable del mismo realiza cada seis meses, es
decir, dos veces al año, procediendo a su correcto cálculo.
Metodología para el cálculo de los máximos y mínimos: para una mejor
interpretación del contenido de esta metodología se relacionan a continuación las
definiciones de los términos fundamentales.
Máximos Y Mínimos: constituye un procedimiento por el cual las farmacias
controlan sus necesidades de abastecimiento en dependencia del consumo, con el
objetivo de garantizar la disponibilidad de los productos farmacéuticos de forma
eficaz y eficiente. Las cifras Máximo y Mínimo constituyen sus dos componentes
fundamentales.
Máximo: es la cantidad máxima de un producto de que deberá disponer la
farmacia, por lo que también constituye el volumen máximo que pudiera pedir de un
producto en específico en el caso de que su existencia fuera cero.
Mínimo: es la cifra que indica cuando se debe realizar la solicitud de un
medicamento al almacén suministrador, previendo que no caiga en falta durante el
proceso de suministro. Cuando el período de abastecimiento de una farmacia sea de
8
7 a 10 días, el Mínimo es el 60 % del Máximo y si el período de abastecimiento es
de 15 a 30 días el Mínimo es el 80 %.
Consumo: es la salida que tuvo un producto en un período de tiempo prefijado,
destinada a satisfacer las necesidades de consumo de los pacientes. Otros acápites
como traslado, pérdidas por vencimiento y mal estado, no se incluyen en él.
Días Abastecidos: representa el total de días en que el producto estuvo presente
en la farmacia durante un período de tiempo determinado.
Norma de Abastecimiento: cantidad óptima de días en existencia que deben tener
los productos en la farmacia para garantizar que éstos no se terminen durante el
ciclo de despacho de los pedidos por parte de la Droguería según la frecuencia de
abastecimiento.
Procedimiento: Para calcular el máximo de existencia que debe tener cada
medicamento se aplica la siguiente fórmula:
entoAbastecimideNormasAbastecidoDías
ConsumoMáximo *
Donde, el Máximo es igual al consumo del medicamento en un período de seis meses
(Consumo) dividido entre los días que estuvo abastecido en ese período (Días
Abastecidos) por la norma de abastecimiento (Norma de Abastecimiento) que representa
la cantidad óptima de días en existencia que deben tener los productos en la
farmacia, según la frecuencia de abastecimiento.
Para calcular el consumo de cada medicamento en un período de seis meses se
aplica la siguiente fórmula:
Consumo = Existencia Inicial + Entradas – Existencia Final
Donde, Consumo es igual a la existencia inicial del medicamento (Existencia Inicial)
más la suma de las cantidades de las entradas (Entradas) menos la existencia final
(Existencia Final) en un período de seis meses.
Para calcular los días que estuvo abastecido cada medicamento en un período de
seis meses se aplica la siguiente fórmula:
Días Abastecidos = Días del Período – Días en Falta
9
Donde, Días Abastecidos son igual a los días del período de seis meses, igual a 180
días (Días del Período) menos los días que estuvo en falta este recurso en ese
período (Días en Falta).
La Norma de Abastecimiento varía según la frecuencia de pedido establecido.
Frecuencia del pedido Norma de Abastecimiento
Semanal 30 días
Decenal 40 días
Quincenal 45 días
Mensual 60 días
(Cuba. Ministerio de Salud Pública 2006, p. 88, 89, 91).
En este caso el responsable de almacén realiza el pedido cada 15 días. El mínimo de
existencia de cada medicamento es el 80 % del máximo de existencia.
El resultado obtenido, le proporciona al responsable de almacén tener los máximos y
mínimos de existencia de cada medicamento actualizados para luego, según la
existencia actual del medicamento, se pide si está por debajo o igual al mínimo de
existencia a completar el máximo. Todo esto permite realizar un correcto pedido,
evitando que no se pida de más, lo cual provoca que los medicamentos se venzan,
por lento movimiento, además del sobre abastecimiento, ocasionando pérdidas
económicas al estado, como también si se pide de menos ocasiona que los
medicamentos no lleguen en tiempo y forma a los pacientes hospitalizados, lo cual
atenta contra la salud de los mismos.
1.2 Sistemas para realizar el Control de Medicamentos Hospitalarios.Existe una gran cantidad de sistemas idóneos para realizar el Control de
Medicamentos Hospitalarios de acuerdo a las particularidades de cada institución de
salud que lo utilizan.
MAZ Matepss nº 11: integra el control de medicamentos en su gestión hospitalaria
con Microsoft. Es un sistema de gestión interna de historiales clínicos y
asignación/consumo de medicamentos. Se basa en las tecnologías Microsoft
Windows Server y BizTalk Server junto con la migración de sus aplicativos a .NET.
Su objetivo es la integración de la aplicación de gestión hospitalaria con los
dispensadores de medicamentos recién adquiridos como Pyxis, de la empresa
10
Cardinal Health, y Kardex. La automatización y control del almacén de
medicamentos, pues, se estableció en dos niveles: las operaciones de despacho
(entradas y salidas del almacén, inventario, etc.), y la integración con los sistemas de
gestión de expedientes que alcanza a los servicios de planta y quirófanos. El
resultado obtenido es un sistema de control de medicamentos totalmente
automatizado (MAZ integra el control de medicamentos en su gestión hospitalaria
con Microsoft)
xHosp: es un sistema de información hospitalario para el apoyo operacional y el
control administrativo integral de un hospital o clínica. Una de sus principales
funciones es que incluye el control de farmacias para llevar a cabo la entrada de
medicamentos y suministros así como el despacho de estos artículos a pacientes,
hacia las diferentes áreas hospitalarias o la transferencia de artículos entre las
distintas farmacias dentro del hospital. Fue diseñado desde su inicio como un
sistema modular y escalable, con interfaz de usuario gráfica y amigable, capacidad
de compartir la información con otras aplicaciones de Windows como Word, Excel o
Access entre otras (xHosp - Sistema integral para la administración hospitalaria)
Control de Materiales Hospitalarios: este Sistema, asociado a una red, automatiza
el control de inventario de los medicamentos, materiales de curación y todo tipo de
materiales existentes en: Almacén Central, Almacén de la Farmacia y el Almacén del
Centro Quirúrgico, así como en cualquier otro tipo de almacén. Facilita la operación
de los mismos, así como el control de los consumos de los distintos centros de costo
con que cuenta el Hospital, como elemento vital para el funcionamiento del mismo y
el conocimiento del nivel de gastos a los distintos niveles de gerencia (Control de
materiales hospitalarios)
Los sistemas informáticos antes referidos como MAZ Matepss nº 11 y xHosp son
comercializados con un precio muy elevado, por lo cual nuestro país no puede
adquirirlos para poder implementarlos en nuestros hospitales. También no se ajustan
a la política de nuestro país de emigrar a software libre. Otro como Control deMateriales Hospitalarios de nuestro país no está en uso por su desactualización.
En el año 2012 en EMCOMED de Las Tunas fue creada una aplicación de escritorio:
Sistema de Pedidos, que proporciona la realización del control de medicamentos y
11
el pedido de los mismos para el área de la Farmacia Interna - Almacén de
Medicamentos del Hospital Provincial.
Esta aplicación presenta muchas deficiencias que dificultan el control adecuado de
medicamentos y la realización correcta de los pedidos:
Demora en darle entrada o salida a los medicamentos del almacén a la farmacia,
ya que el actual programa no tiene un sistema de búsqueda para agilizar este
proceso, por lo que sigue haciéndose de forma manual.
Mucho tiempo empleado en la confección de los pedidos.
Interfaz inadecuada, en el actual sistema, ya que no le da facilidades al usuario
para evitar equivocaciones en los distintos procesos que se realizan, en especial,
en la realización del archivo de pedidos.
Poca funcionalidad en lo que realmente se necesita para satisfacer las
necesidades de esta área.
1.3 Metodologías, Lenguajes y Herramientas utilizadas.1.3.1 Lenguajes.En la actualidad existe una gran cantidad de lenguajes de programación orientados
al desarrollo de aplicaciones de escritorio como C++, JAVA, C#, C, Delphi, Pascal
entre otros, con diversas características útiles para que el programador valore y
decida cuál de ellos es la opción más apropiada a la hora de desarrollar un sistema
informático que cumpla con eficiencia sus objetivos.
Para exponer de los lenguajes de programación más conocidos su estado, será
realizada una breve comparación entre algunos de ellos. La intención de este análisis
es tomar la mejor elección del lenguaje que se ajuste al problema que se desea
solucionar.
C++: es un lenguaje de programación de propósito general basado en el C. Diseñado
a mediados de los años 1980 por Bjarne Stroustrup. La intención de su creación fue
el extender al exitoso lenguaje de programación C con mecanismos que permitan la
manipulación de objetos, además de añadirle cualidades y características de las que
carecía.
Las ventajas del C y C++ es que puede reutilizar código en forma de librerías de
usuario. Con la excepción del ensamblador, generan los programas más compactos
12
y rápidos. El código es transportable, es decir, un programa ANSI en C o C++ podrá
ejecutarse en cualquier máquina y bajo cualquier sistema operativo. Tienen más de
30 años de vida, y no parece que su uso se debilite demasiado. Sistemas operativos
como Linux, Unix o incluso Windows se escriben casi por completo en C. Existe una
inmensa comunidad de programadores alrededor de todo el mundo. Con tan gran
cantidad de personas aprendiendo y programando, el programador no tendrá
ninguna dificultad para encontrar ayuda y recursos accesibles en Internet. En caso
de que el programador original falte podrán hacerse modificaciones cuando el
desarrollo del programa esté finalizado, o se haya dejado a medias, sin ninguna
dificultad.
C#: el lenguaje de programación C#, es uno de los últimos lenguajes salidos al
mercado. Según sus creadores, C# se encuentra basado en los lenguajes C/C++,
Visual Basic y Java. Al igual que el resto, presenta ventajas y desventajas que
ameritan ser analizadas. En teoría, C# se encuentra diseñado con el objetivo de ser
portable a cualquier sistema operativo o computadora. En la práctica, solo Windows
está disponible. Microsoft promete realizar esfuerzos en este sentido pero hasta el
momento nada en concreto se ha logrado.
Debido al poco tiempo de nacido que tiene C#, aún no se ha solidificado una
comunidad de programadores lo suficientemente poderosa. Resulta difícil encontrar
en Internet recursos disponibles escritos en este lenguaje. Además, a pesar que
Microsoft publicó de forma gratis la plataforma .NET – la cual cuenta con el
compilador y herramientas necesarias para el desarrollo de aplicaciones en C# –, el
entorno visual para la escritura de programas en este lenguaje es necesario pagarlo
a altos precios.
Debido a la gran cantidad de características adicionales que presenta el C#, resulta
un lenguaje sumamente complejo de aprender – pero nunca tan complejo como
resulta el C / C++. No obstante, debido a las similitudes en el código, programadores
de Java y C++ encontrarán muy fácil esta tarea (Sánchez 2009)
Java: según Zukowski (Zukowski 2006, p. 51): Java es uno de los lenguajes que ha
ganado renombre en la programación moderna. Al igual que C / C++, cuenta con una
inmensa comunidad de programadores alrededor del mundo. Con Java pueden ser
13
creadas poderosas aplicaciones, sitios Web o pequeños programas (conocidos como
applets) que pueden ser corridos en Internet.
Java es un lenguaje de programación basado en las fortalezas y debilidades del C++.
Al igual que el Visual Basic, el Java aísla al programador de los detalles respecto al
hardware y memoria de la computadora. Como resultado, los programas escritos en
Java serán mucho más seguros que sus equivalentes escritos en C / C++.
Java utiliza un mecanismo llamado recolector de basura (garbage collector) para
eliminar los objetos creados por el programador en la memoria de la computadora.
Esto trae consigo que no existan desbordes de memoria (como en C / C++), y que el
código sea mucho más limpio y fácil de escribir.
De la misma forma que C / C++, Java se encuentra diseñado con el objetivo de
brindar una plataforma de libre distribución para la creación de aplicaciones. Todo lo
contrario a Visual Basic, por el que hay que pagar determinada cantidad de dinero
para su adquisición. En Internet puede encontrarse un gran número de entornos de
programación libre de impuestos para el desarrollo de programas en Java.
A pesar de sus grandes ventajas, Java también cuenta con un número de
desventajas que deberán ser analizadas en el momento de tomar una decisión. Por
ejemplo, los programas en Java tienden a ser mucho más lentos que sus
equivalentes escritos en otros lenguajes de programación. Además, al igual que el C
/ C++, Java es un lenguaje con una curva de aprendizaje bastante elevada.
Teóricamente los programas escritos utilizando Java podrán ser ejecutados en
cualquier entorno, pero en realidad, el programador deberá realizar pruebas a la
aplicación en cada nueva plataforma para asegurarse que esto sea así, lo que trae
consigo una gran pérdida de tiempo el cual pudiera ser aprovechado en la mejora y
actualización del código fuente (Sánchez 2009)
¿Por qué C++? Al ser analizadas las características generales de los lenguajes de
programación y las posibilidades de uso de cada uno de ellos acordamos usar C++
por el uso fácil de desarrollo de programas a través del uso de técnicas orientadas a
objeto, brinda una poderosa herramienta conceptual para utilizar en el proceso de
desarrollo, así como un eficiente medio de implementar el diseño de software.
Además por tener eficiencia del nivel de máquina y porque brinda un medio para
14
mejoras en la reutilización de componentes y empaquetarlos de forma tal que son
incorporados simplemente en los sistemas según se necesiten y nos ayuda al
desarrollo y mantenimiento de la aplicación informática.
UML: Es un lenguaje que proporciona un vocabulario y reglas que se centran en la
representación conceptual y física de un sistema, y que indican cómo crear y leer
modelos bien formados. Incluye aspectos conceptuales tales como procesos de
negocios y funciones del sistema, y aspectos concretos como expresiones de
lenguajes de programación, esquemas de bases de datos y componentes de
software reutilizables. Es un lenguaje gráfico para visualizar, especificar y
documentar cada una de las partes que comprende el desarrollo de software,
utilizado para la construcción de aplicaciones basadas en conceptos orientados a
objetos.
1.3.2 Herramientas.Rational Rose: Es una herramienta CASE (Computer – Arded Software
Engineering), traducido al español como Ingeniería Asistida por Computadora,
desarrollada por Rational Corporation basada en el Lenguaje Unificado de
Modelación (UML), es una herramienta para el despliegue, diseño, construcción,
pruebas y administración de proyectos en el proceso de desarrollo de software.
Realiza el modelado visual, forma parte de un conjunto más amplio de herramientas
que todas juntas abarcan el ciclo de vida del desarrollo de software. Rational Rose es
considerado una de las mejores herramientas para traducir requisitos de alto nivel a
una arquitectura basada en componentes.
C++ Builder: es un entorno de desarrollo rápido de aplicaciones en lenguaje C++
para Windows inicialmente propiedad de la empresa Borland, y actualmente de la
empresa Embarcadero, quien compró de Borland la división Codegear encargada del
producto. Combina la biblioteca Visual Component Library y el IDE escrito en Delphi
con un compilador de C++. Incluye herramientas que permiten desarrollo visual de
arrastrar-y-soltar componentes sobre la aplicación e incorpora constructor de interfaz
gráfica WYSIWYG en su IDE.
15
1.3.3 Sistemas Gestores de Base de DatosUn Sistema Gestor de Base de Datos (SGBD) es una aplicación que organiza el
almacenamiento de datos. Un SGBD es un tipo de software muy específico,
dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que
la utilizan. Controla la creación, mantenimiento y uso de las estructuras de base de
datos de almacenamiento de las organizaciones y de sus usuarios finales.
PostgreSQL: es un popular Sistema de Gestión de Base de Datos relacional
orientada a objetos y libre. Dirigido por una comunidad de desarrolladores y
organizaciones comerciales las cuales trabajan en su desarrollo, esta comunidad es
denominada el PGDG (PostgreSQL Global Development Group). Este potente gestor
incorpora una amplia variedad de tipos de datos, presenta una alta concurrencia e
implementa ciertas características orientadas a objetos, es además muy seguro,
multiplataforma y robusto.
Microsoft SQL Server: es un Sistema de Gestión de Bases de Datos desarrollado
por Microsoft basado en el modelo relacional, y sus lenguajes de consulta son
TransactSQL y ANSI SQL. Entre sus características más importantes están que
posee soporte para transacciones, así como procedimientos almacenados, tiene una
gran escalabilidad, seguridad y estabilidad, también incluye un poderoso entorno
gráfico para la administración y permite trabajar en modo cliente- servidor, donde los
datos se guardan en las bases de datos que están en el servidor y los clientes solo
pueden acceder a las mismas (Pérez 2011, p. 4 - 5)
MySQL: es un Sistema de Gestión de Base de Datos relacional, multihilo y
multiusuario. Por una parte se ofrece bajo la GNU GPL (GNU General Public
Licence) para todos los usos compatibles con esta licencia, pero las empresas que
deseen insertarlo en productos privados deben comprar a los dueños una licencia
que permita este tipo de uso. Todo lo contrario de Apache, donde la aplicación es
desarrollada por varias personas y el copyright del código está en manos del autor
individual (Pérez 2011, p. 5)
¿Por qué PostgreSQL? Al ser analizadas las características de los SGBD decidimos
utilizar PostgreSQL, ya que presenta una licencia de código abierto, se puede
programar funciones y procedimientos en diferentes lenguajes de una forma
16
dinámica, presenta un proceso de instalación / mantenimiento medio, tiene vistas
actualizables. Además, posee índices funcionales o índices basados en funciones.
1.3.4 Patrón CRUD: CRUD (create, read, update, y delete) significan “crear, leer,
actualizar y borrar”. Estas son las 4 operaciones básicas que toda base de datos
provee para realizar cualquier operación. Las operaciones significan:
Crear es “hacer persistente un objeto específico en la base de datos”. Una
operación de crear finaliza cuando otro proceso puede leer información del
objeto.
Leer es “recuperar un objeto especifico de la base de datos”. La operación de
leer es la misma operación que cuando realizamos una consulta.
Actualizar es “modificar un objeto especifico del grupo de objetos de la base
de datos”.
Borrar es “remover un objeto del grupo de objetos de la base de datos”.
1.3.5 Metodologías.La Ingeniería de software es una disciplina que contiene el proceso, los métodos y
las herramientas para el desarrollo de un sistema informático. El proceso de
desarrollo del software define el conjunto de actividades precisas para convertir los
requisitos de los usuarios en el conjunto seguro y resistente de artefactos que
componen un producto software. Por lo que es necesario especificar metodologías
para guiar el proceso de desarrollo de un producto de software. Las metodologías se
definen por pasos a seguir para que se cumpla un objetivo. Entre las metodologías
para el desarrollo de software más usadas actualmente encontramos: FDD (Feature
Driven Development), XP (eXtreme Programing), MSF (Microsoft Solution Features),
ADOSI, ERICSON, OBJECTORY (Object Factory), RUP (Rational Unified Process).
Por las características de este sistema se decide usar la metodología AM-RUP.
AM (Modelado Ágil): es una metodología para el modelado efectivo de sistemas de
software, una serie de prácticas, guiadas por principios y valores que pueden ser
aplicados por profesionales de software. Es una estrategia de modelado (de clases,
de datos, de procesos) pensada para contrarrestar la sospecha de que los métodos
ágiles no modelan y no documentan. Su objetivo es orientar el modelado de una
manera efectiva y ágil.
17
RUP (Proceso Unificado de Desarrollo): es un proceso de desarrollo de software
que garantiza la elaboración de todas las fases de un sistema orientado a objetos.
Está basado en componentes e interfaces bien definidas, y junto con el Lenguaje
Unificado de Modelado (UML), constituye la metodología estándar más utilizada para
el análisis, implementación y documentación de sistemas orientados a objetos.
Además define “quién” está haciendo “qué”, “cuándo” y “cómo” para alcanzar un
determinado objetivo. Sus principales características son: dirigido por casos de usos,
centrado en la arquitectura, iterativo e incremental.
AM-RUP: AM se combina con RUP debido a que permite hacer más ligeros los
procesos que usa este último. RUP es un proceso para describir el sistema
caracterizado por ser iterativo e incremental, donde cada fase se desarrolla en
iteraciones donde se involucran actividades de todos los flujos de trabajo, centrado
en la arquitectura que muestra la visión común del sistema completo en la que el
equipo de proyecto y los usuarios deben estar de acuerdo; dirigido por caso de uso,
ya que estos reflejan lo que los usuarios futuros necesitan y desean. Esta unión
preserva las características esenciales de RUP, pero con la diferencia que las partes
opcionales del RUP fueron obviadas, surgiendo como resultado un proceso muy
simple que cumple con los principios fundamentales de la metodología RUP.
Conclusiones parcialesEn este capítulo se abordaron los procesos de las actividades que se realizan en el
área de la Farmacia Interna – Almacén de Medicamentos en el Hospital General
Docente Doctor Ernesto Guevara de la Serna de la provincia de Las Tunas, para el
control de los medicamentos y los pedidos de los mismos. Además se analizaron
algunas aplicaciones existentes en el área nacional e internacional. Se exponen los
argumentos que definen la metodología, el lenguaje y las herramientas utilizadas,
basadas en las necesidades y los recursos disponibles.
18
CAPÍTULO 2. ANÁLISIS Y DISEÑO DEL SISTEMA.IntroducciónEn el presente capítulo se presenta el modelado de negocio, requerimientos, diseño
e implementación del sistema atendiendo a la metodología AM-RUP, definida en el
capítulo anterior.
Objeto de AutomatizaciónEl proceso a automatizar es el control, recepción y realización de pedidos de
medicamentos hospitalarios en el Hospital General Docente Doctor Ernesto Guevara
de la Serna de la provincia Las Tunas. El mismo se desarrolla mediante los distintos
informes para el manejo de datos referente a este tema, mediante los distintos
movimientos que tengan los mismos y un correcto cálculo de máximos y mínimos de
existencia de los mismos, para un correcto pedido a EMCOMED.
2.1 Modelado del NegocioUn proceso de negocio es un conjunto de tareas relacionadas lógicamente realizadas
para lograr un resultado de negocio definido. El modelo del negocio tiene como
objetivo describir los procesos, existentes u observados, con el propósito de
comprenderlos.
2.1.1 Actores del NegocioUn actor del negocio es cualquier individuo, grupo, organización, entidad, máquina o
sistema de información externos; con los que el negocio interactúa. Lo que se
modela como actor es el rol que se juega cuando se interactúa con el negocio para
beneficiarse de sus resultados.
En el sistema propuesto, interviene 1 actor principal, el Farmacéutico. En la
siguiente tabla se da una breve descripción de las funciones que realiza este sujeto.
Ver tabla 1Tabla 1. Justificación del actor del negocio
Actor del Negocio Justificación
Farmacéutico El farmacéutico es el que inicia todas
las acciones que dan comienzo a los
procesos del negocio analizados,
19
controla y pide medicamentos al
almacén, es el principal beneficiado
con el resultado de dichos procesos
de negocio.
2.1.2 Definición de Caso de Uso“Un caso de uso es un documento narrativo que describe la secuencia de eventos de
un actor (agente externo) que utiliza un sistema para completar un proceso.” (Álvarez
2000, p. 48)
Otra definición para describir mejor un caso de uso sería:
“Un caso de uso es una sucesión de transacciones realizada por un sistema que
rinde un resultado mensurable de valores para un actor particular.” (Quatrani 1999, p.
23)
2.1.2.1 Casos de Uso del Negocio
Controlar Medicamento.
Pedir Medicamento.
Pedir Medicamento a EMCOMED.
2.1.2.2 Diagrama de caso de uso del negocioUn diagrama de casos de uso del negocio representa gráficamente a los procesos
del negocio y su interacción con los actores del negocio. Ver Figura 1
20
Controlar Medicamento
(from Casos de Usos)
Pedir Medicamento
(from Casos de Usos)
Farmacéutico
(from Actores)
Pedir Medicamento a EMCOMED
(from Casos de Usos)
<<extend>>
Figura 1. Diagrama de caso de uso del negocio
2.1.3 Descripción textual de los casos de uso del negocio.Tabla 2. Descripción textual del caso de uso del negocio Controlar Medicamento.Nombre del Caso de Uso CUN_Controlar Medicamento
Actores Farmacéutico (inicia).Trabajadores Especialista.
Almacenero.Propósito Permite el control de los medicamentos.Resumen El caso de uso se inicia cuando el farmacéutico llega al Almacén
de Medicamentos, es atendido por el Especialista, el cual leproporciona varios informes realizados por el almacenero, segúnlo que solicite el Farmacéutico para el control de estos recursos,finalizando así el caso de uso.
Curso normal de los eventosAcciones del Actor Respuesta del proceso de
negocio
21
1 El Farmacéutico llega al almacén y solicitauno o varios tipos de informes.
5 El Farmacéutico firma cada informe.
7 El Farmacéutico recibe el informe o losinformes y se marcha.
2 El Especialista busca el informe olos informes realizados por elalmacenero, según lo solicitado porel farmacéutico.3 El Especialista imprime el informeo los informes.4 El Almacenero firma cadainforme.
6 El Especialista guarda copia decada informe y entrega informe alfarmacéutico.
Curso alternativo de los eventos.
Prioridad AltaMejoras Se logra un control más rápido y automatizado de los
medicamentos.
Tabla 3. Descripción textual del caso de uso del negocio Pedir Medicamento.
Nombre del Caso de Uso CUN_Pedir Medicamento
Actores Farmacéutico (inicia).Trabajadores Almacenero.Propósito Permitir al farmacéutico recibir los medicamentos pedidos al
almacén.Resumen El caso de uso se inicia cuando el Farmacéutico llega al
Almacén de Medicamentos, hace un pedido de dichos recursos,este es atendido por el Almacenero, el cual procede a la entrega,finalizando así el caso de uso.
Curso normal de los eventosAcciones del Actor Respuesta del proceso de
negocio
22
1 El Farmacéutico llega al Almacén deMedicamentos, hace el pedido de dichosrecursos que esté igual o por debajo delmínimo de existencia en la farmacia, medianteun vale de solicitud de entrega al almacén.
6 El Farmacéutico firma el vale detransferencia.
8 El Farmacéutico recibe el vale detransferencia, los medicamentos y se marcha.
2 El Almacenero recibe el pedido.3 El Almacenero rebaja lacantidad pedida del medicamentode la tarjeta de estiba.4 El Almacenero hace un vale detransferencia según la cantidadpedida de cada medicamento.5 El Almacenero imprime el valede transferencia y lo firma.
7 El Almacenero guarda copia delvale de transferencia y entrega elvale y los medicamentos alFarmacéutico.
Curso alternativo de los eventos.3.1 Si el saldo o existencia delmedicamento solicitado está encero o si la cantidad solicitada esmayor que la existencia en elalmacén se realiza el pedido delmismo a EMCOMED.Procediendo a la entrega de loque queda en el almacén(Continuando en el CUNExtendido Pedir Medicamento aEMCOMED).
Prioridad AltaMejoras Se logra un pedido más rápido y automatizado.Caso de usoasociado
CUN_Pedir Medicamento a EMCOMED (Extendido)
23
Tabla 4. Descripción textual del caso de uso del negocio Pedir Medicamento a EMCOMED(Extendido).Nombre del Caso de Uso CUN_Pedir Medicamento a EMCOMED
(Extendido)Actores Farmacéutico (inicia).Trabajadores Almacenero.Propósito Permitir realizar un correcto pedido para abastecer el Almacén
de Medicamentos.Resumen El caso de uso se inicia cuando el Farmacéutico llega al
almacén, solicita varios medicamentos, este es atendido por elalmacenero, el cual verifica que su existencia está en cero o enbaja cobertura, por lo que realiza el pedido de dichos recursosde acuerdo al máximo y mínimo de existencia que tenga cadauno a EMCOMED para su abastecimiento finalizando así el casode uso.
Curso normal de los eventosAcciones del Actor Respuesta del proceso de
negocio1 El Farmacéutico llega al almacén, realiza lasolicitud de entrega de varios medicamentos,mediante el vale.
4 El Farmacéutico se marcha.
2 El Almacenero recibe el vale desolicitud de entrega demedicamentos.3 El Almacenero verifica que suexistencia está en cero o en bajacobertura y se lo informa alFarmacéutico.
5 El Almacenero realiza el pedidode los medicamentos que esténpor debajo o igual al mínimo deexistencia a completar el máximoa EMCOMED, cada 15 días.
Curso alternativo de los eventos.
Prioridad AltaMejoras Se logra un pedido más rápido, adecuado y automatizado.
24
2.2 Flujo de Requerimientos.Un requisito es una condición o capacidad que necesita un usuario para resolver un
problema o lograr un objetivo. Condición o capacidad que tiene que ser alcanzada o
poseída por un sistema o componente de un sistema para satisfacer un contrato,
estándar, u otro documento impuesto formalmente.
2.2.1 Requisitos Funcionales.Los requisitos funcionales son capacidades o condiciones que el sistema debe
cumplir. Las actividades a automatizar en la realización de los Casos de Uso del
Negocio constituyen el punto de partida de los requisitos funcionales del sistema.
Requisitos Funcionales:
1. Autenticar usuarioRF 1.1 Registrar usuario
2. Gestionar usuarioRF 2.1 Crear usuario
RF 2.2 Modificar usuario
RF 2.3 Eliminar usuario
RF 2.4 Mostrar listado de usuarios
3. Gestionar ProvinciaRF 3.1 Crear Provincia
RF 3.2 Modificar Provincia
RF 3.3 Eliminar Provincia
RF 3.4 Mostrar Listado de Provincias
4. Gestionar MunicipioRF 4.1 Crear Municipio
RF 4.2 Modificar Municipio
RF 4.3 Eliminar Municipio
RF 4.4 Mostrar Listado de Municipios
5. Gestionar EntidadRF 5.1 Crear Entidad
RF 5.2 Modificar Entidad
RF 5.3 Eliminar Entidad
25
RF 5.4 Mostrar Listado de Entidades
6. Gestionar MedicamentoRF 6.1 Crear Medicamento
RF 6.2 Modificar Medicamento
RF 6.3 Eliminar Medicamento
RF 6.4 Mostrar Listado de Medicamentos
RF 6.5 Imprimir Listado de Medicamentos
7. Gestionar Entrada de MedicamentosRF 7.1 Crear Entrada de Medicamentos
RF 7.2 Modificar Entrada de Medicamentos
RF 7.3 Eliminar Entrada de Medicamentos
RF 7.4 Mostrar Listado de Entradas de Medicamentos
RF 7.5 Buscar Entrada de Medicamentos
8. Gestionar Salida de MedicamentosRF 8.1 Crear Salida de Medicamentos
RF 8.2 Modificar Salida de Medicamentos
RF 8.3 Eliminar Salida de Medicamentos
RF 8.4 Mostrar Listado de Salidas de Medicamentos
RF 8.5 Buscar Salida de Medicamentos
9. Gestionar Ajuste de MedicamentosRF 9.1 Crear Ajuste de Medicamentos
RF 9.2 Modificar Ajuste de Medicamentos
RF 9.3 Eliminar Ajuste de Medicamentos
RF 9.4 Mostrar Listado de Ajustes de Medicamentos
RF 9.5 Buscar Ajuste de Medicamentos
10.Retener Lote de MedicamentoRF 10.1 Transferir Lote de Medicamento a Retenido
RF 10.2 Transferir Retenido a Lote de Medicamento
11.Gestionar PedidoRF 11.1 Crear Pedido
RF 11.2 Mostrar Listado de Pedidos
26
RF 11.3 Visualizar Pedido
RF 11.4 Buscar Pedido
12.Analizar Máximos y MínimosRF 12.1 Calcular Máximos y Mínimos
RF 12.2 Mostrar Resultado
13.Generar reportes
RF 13.1 Generar Listado de Datos de los Medicamentos
RF 13.2 Imprimir Listado de Datos de los Medicamentos
RF 13.3 Generar Inventario de Medicamentos
RF 13.4 Imprimir Inventario de Medicamentos
14.Visualizar TrazasRF 14.1 Visualizar Trazas
RF 14.2 Buscar Trazas
15.Buscar MedicamentoRF 15.1 Buscar Medicamento
2.2.3 Requisitos no funcionales.Los requisitos no funcionales son propiedades o cualidades que el producto debe
tener. Características que hacen al producto atractivo, usable, rápido o confiable.
Requerimientos de apariencia o interfaz externa: El sistema debe ser fácil de
usar, legible y profesional. La interfaz debe ser sencilla y fácil de entender,
manteniendo una misma línea de principio a fin.
Requerimientos de Hardware: Se debe disponer de una máquina, con
procesador Pentium II (o superior) con 128 MB de RAM como mínimo sobre
Windows, HD 80 GB o mayor.
Requerimientos de Software: El software fue realizado en el lenguaje de
programación C++ Builder 2010, por lo que se debe disponer el SistemaOperativo Windows.
Requerimientos de Seguridad:Confidencialidad: La información manejada por el sistema está protegida de acceso
no autorizado y divulgación.
27
Integridad: La información manejada por el sistema es objeto de cuidadosa
protección contra la corrupción y estados inconsistentes, de la misma forma será
considerada igual a la fuente o autoridad de los datos.
Disponibilidad: Al usuario autorizado se le garantiza el acceso a la información y que
los dispositivos o mecanismos utilizados para lograr la seguridad no ocultaran o
retrasaran al mismo la obtención de los datos deseados en un momento dado.
Usabilidad: El sistema podrá ser usado por el almacenero, jefe de almacén y
técnica en informática o especialista del Almacén de Medicamentos del Hospital
General Docente Dr. Ernesto Guevara de la Serna y el informático encargado de
recibir el pedido en EMCOMED. El sistema debe ser fácil de usar de manera que
tenga gran aceptación entre los usuarios.
Rendimiento: En general el sistema debe ser rápido y responder en un tiempo
adecuado como para clasificarlo como interactivo.
Soporte: Fácil instalación, pruebas y mantenimiento. El sistema debe contar con
un manual de usuario. De esta manera el usuario se sentirá más seguro y tendrá
una guía de ayuda además del administrador.
2.2.3 Actores del sistema y su justificación.Los actores del sistema son personas (u otros sistemas) que eran trabajadores en el
Negocio. También pueden ser actores del negocio que interactúan de alguna forma
con el sistema. Por lo general estimulan el sistema con eventos de entradas o
reciben algo de él. O sea, es un rol de un usuario, que puede intercambiar
información. Puede ser un recipiente pasivo de información.Tabla 5. Actores del sistema y su justificación.
Actores del Sistema Justificación
Especialista Es el encargado de introducir
correctamente los datos de cada
medicamento al sistema y efectúa las
nuevas entradas, salidas, ajustes,
realiza las retenciones de lotes de los
mismos, el análisis de máximos y
28
mínimos, así como los distintos
reportes, por lo que actualiza la Base
de Datos.
Jefe de Farmacia Es el encargado de realizar las
modificaciones o eliminaciones de las
entradas, salidas y ajustes de
medicamentos, por lo que actualiza la
Base de Datos.
Almacenero Es el encargado de realizar los
pedidos de medicamentos en el
sistema para su posterior envío a
EMCOMED.
Administrador Informático calificado que se
encargará de gestionar los distintos
tipos de usuarios, la entidad, provincia
y municipio a que pertenecen.
Gestor Gestor generalizado, puede ser el Jefe
de Farmacia o el Especialista.
Usuario Usuario generalizado, puede ser elAdministrador, el Jefe de Farmacia,
Especialista o Almacenero.
2.2.4 Casos de uso del sistema.Los casos de uso se utilizan para obtener información de como debe trabajar el
sistema, son artefactos narrativos que describen mediante acciones y reacciones, el
29
comportamiento del sistema desde el punto de vista del usuario. Los casos de usos
definidos son los siguientes:
Autenticar usuario
Gestionar usuario
Gestionar Provincia
Gestionar Municipio
Gestionar Entidad
Gestionar Medicamento
Gestionar Entrada de Medicamentos
Gestionar Salida de Medicamentos
Gestionar Ajuste de Medicamentos
Retener Lote de Medicamento
Analizar Máximos y Mínimos
Gestionar Pedido
Generar reportes
Visualizar Trazas
Buscar Medicamento
2.2.4.1 Diagrama de casos de uso del sistema.Un diagrama de caso de uso del sistema es un modelo de las funciones deseadas
para el sistema y su entorno, y sirve como contrato entre el cliente y los
desarrolladores. Representa gráficamente a los procesos y su interacción con los
actores. Se utiliza como entrada esencial para las actividades de análisis, diseño y
prueba. Ver Figura 2
30
Autenticar usuario
(from Autenticar usua...
Usuario
(from Actors)
Gestionar Prov incia
(from Gestionar Provin...
Gestionar Municipio
(from Gestionar Munici...
Gestionar usuario
(from Gestionar usua...
Gestionar Entidad
(from Gestionar Enti...
Administrador
(from Actors)
Visualizar Trazas
(from Visualizar Trazas)
Buscar Medicamento
(from Buscar Medicame...
Gestionar Pedido
(from Gestionar Ped...
Almacenero
(from Actors)
<<include>>
Especialista
(from Actors)
Gestionar Medicamento
(from Gestionar Medicame...
<<include>>
Gestionar Entrada de Medicamentos
(from Gestionar Entrada de Medicamen...
<<include>>
Gestionar Salida de Medicamentos
(from Gestionar Salida de Medicamen...
<<include>>
Gestionar Ajuste de Medicamentos
(from Gestionar Ajuste de Medicamen... <<include>>
Retener Lote de Medicamento
(from Retener Lote de Medicame...
Analizar Máximos y Mínimos
(from Analizar Máximos y Míni...
Gestor
(from Actors)
Generar reportes
(from Generar repor...
Jef e de Farmacia
(from Actors)
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
Figura 2 Diagrama de caso de uso del sistema.
2.2.5 Descripción textual de los casos de uso del sistema.Ver Anexo #1Tabla 6. Descripción textual del caso de uso del sistema Gestionar Entrada de Medicamentos
Nombre del Caso de Uso CUS_Gestionar Entrada de Medicamentos
Actores Generalizado: Gestor, Especializados: Especialista, Jefe deFarmacia
Propósito Realizar entradas de medicamentos.
31
Resumen El CUS se inicia cuando el Gestor desea dar una nuevaentrada de medicamentos, mostrar listado de entradas, buscarentrada de medicamentos, pero modificar o eliminar solo lopuede realizar el Jefe de Farmacia y termina luego que elsistema permite realizar cualquiera de estas opciones.
Referencias RF 7.1, RF 7.2, RF 7.3, RF 7.4, RF 7.5, CUS_BuscarMedicamento (Incluido), CUS_Autenticar usuario (Incluido)
Pre-condiciones Que el usuario haya accedido al sistema.Pos-condiciones (-).
Curso Normal de los EventosAcciones del Actor Respuesta del Sistema1. El Gestor selecciona el menú“Gestión”.
2. El sistema le muestra la opción: Movimientos de Productos: Nueva Entrada de Medicamentos. Mostrar Listado de Entradas de
Medicamentos. Buscar Entrada de Medicamentos. Modificar Entrada de Medicamentos. Eliminar Entrada de Medicamentos.
1. Si el Gestor selecciona la opción:Nueva Entrada de Medicamentos,ir a la sección “Nueva Entrada deMedicamentos”.
2. Si el Gestor selecciona la opción:Mostrar Listado de Entradas deMedicamentos, ir a la sección“Mostrar Listado de Entradas deMedicamentos”.
32
3. Si el Gestor selecciona la opción:Buscar Entrada de Medicamentos,ir a la sección “Buscar Entrada deMedicamentos”.
4. Si el Gestor selecciona la opción:Modificar Entrada deMedicamentos, ir a la sección“Modificar Entrada deMedicamentos”.
5. Si el Gestor selecciona la opción:Eliminar Entrada de Medicamentos,ir a la sección “Eliminar Entrada deMedicamentos”.
Sección “Nueva Entrada de Medicamentos”1. El Gestor selecciona la opción“Movimientos de Productos”.
2. El sistema habilita los campos, muestrael listado de todos los medicamentos,llamando al CUS_Buscar Medicamento.
3. El Gestor presiona el botón“Adicionar”.
4. El sistema habilita los campos de lainterfaz Adicionar.
5. El Gestor introduce el número yfecha de entrada.6. El Gestor introduce código onombre del medicamento para subúsqueda.
7. El sistema devuelve los registros quecoincidan con los datos introducidos.
8. El Gestor selecciona elmedicamento a dar entrada.
9. El sistema muestra los datos delmedicamento seleccionado.
10. El Gestor introduce cantidad, lotey vencimiento del medicamento,realizando la misma acción para cadauno de los mismos a dar entrada ypresiona el botón “Aceptar”.
33
11. El sistema verifica validez de los datosintroducidos.12. El sistema verifica que no exista elnúmero de la entrada de medicamentosen la Base de Datos.13. El sistema capta los datosintroducidos y los inserta en la Base deDatos.
Curso Alternativo de los Eventos11.1 Al existir campos vacíos, muestra unmensaje de error y regresa a la acción #9. ( Ver Curso Normal de Eventos)10.1 AL existir el número de la entrada demedicamentos en la Base de Datos,muestra un mensaje de error y regresa ala acción # 3. ( Ver Curso Normal deEventos)
Sección “Modificar Entrada de Medicamentos”1. El Jefe de Farmacia selecciona laopción “Movimientos de Productos”.
2. El sistema muestra el listado y labúsqueda por número de entrada demedicamentos.
3. El Jefe de Farmacia introduce elnúmero de la entrada para subúsqueda.
4. El sistema devuelve los registros quecoincidan con los datos introducidos.
5. El Jefe de Farmacia selecciona laentrada de medicamentos a modificary presiona el botón “Modificar”.
6. El sistema habilita los campos amodificar.
7. El Jefe de Farmacia modifica losdatos en los campos y presiona elbotón “Guardar”.
8. El sistema verifica validez de los datosintroducidos en los distintos campos.
34
9. El sistema guarda los datosmodificados en los campos y actualiza laBase de Datos.
Curso Alternativo de los Eventos8.1 Al existir campos vacíos, muestra unmensaje de error y regresa a la acción #7. ( Ver Curso Normal de Eventos)
Sección “Eliminar Entrada de Medicamentos”1. El Jefe de Farmacia selecciona laopción “Movimientos de Productos”.
2. El sistema muestra el listado y labúsqueda por número de entrada demedicamentos.
3. El Jefe de Farmacia introduce elnúmero de la entrada a eliminar parasu búsqueda.
4. El sistema devuelve los registros quecoincidan con los datos introducidos.
5. El Jefe de Farmacia selecciona laentrada de medicamentos a eliminar ypresiona el botón “Eliminar”.
6. El sistema muestra un mensaje paraconfirmar si desea realmente eliminarlo.
7. El Jefe de Farmacia aceptaeliminarlo.
8. El sistema elimina el registro de laentrada de medicamentos y actualiza laBase de Datos.
Curso Alternativo de los Eventos
7.1 El Jefe de Farmacia oprime elbotón “No”.
7.2 El sistema regresa a la acción # 2. (Ver Curso Normal de Eventos)
Sección “Mostrar Listado de Entradas de Medicamentos”1. El Gestor selecciona la opción“Movimientos de Productos”
2. El sistema muestra el listado deentradas de medicamentos.
Curso Alternativo de los Eventos
35
Sección “Buscar Entrada de Medicamentos”1. El Gestor selecciona la opción“Movimientos de Productos”.
2. El sistema muestra el listado y labúsqueda por número de entrada demedicamentos, mediante un edit.
3. El Gestor introduce en el edit eldato que identifica la entrada demedicamentos (número de la entrada)para su búsqueda.
4. El sistema verifica que exista el númerode la entrada de medicamentos en laBase de Datos.5. El sistema devuelve los registros quecoincidan con los datos introducidos.
Curso Alternativo de los Eventos4.1 Al no existir el registro de la entradaen la Base de Datos, muestra un mensajede error. (Ver # 2 del Curso Normal deEventos)
Tabla 7. Descripción textual del caso de uso del sistema Gestionar Pedido
Nombre del Caso de Uso CUS_Gestionar Pedido
Actores Almacenero.Propósito Realizar pedido de medicamentos.Resumen El CUS se inicia cuando el Almacenero desea realizar un
nuevo pedido de medicamentos, visualizar pedido, mostrarlistado de los documentos de pedidos o buscar pedido ytermina luego que el sistema permite realizar cualquiera deestas opciones.
Referencias RF 11.1, RF 11.2, RF 11.3, RF 11.4, CUS_BuscarMedicamento (Incluido)
Pre-condiciones Que el usuario haya accedido al sistema.Pos-condiciones (-).
Curso Normal de los EventosAcciones del Actor Respuesta del Sistema
36
1. El Almacenero selecciona elmenú “Pedidos”.
2. El sistema le muestra la opción: Pedidos de Medicamentos: Nuevo Pedido. Visualizar Pedido. Mostrar Listado de Pedidos. Buscar Pedido.1. Si el Almacenero selecciona la
opción: Nuevo Pedido, ir a la sección“Nuevo Pedido”.
2. Si el Almacenero selecciona laopción: Visualizar Pedido, ir a lasección “Visualizar Pedido”.
3. Si el Almacenero selecciona laopción: Mostrar Listado de Pedidos,ir a la sección “Mostrar Listado dePedidos”.
4. Si el Almacenero selecciona laopción: Buscar Pedido, ir a lasección “Buscar Pedido”.
Sección “Nuevo Pedido”1. El Almacenero selecciona la opción“Pedidos de Medicamentos”.
2. El sistema habilita los campos, muestrael listado de todos los medicamentos,llamando al CUS_Buscar Medicamento.
3. El Almacenero presiona el botón“Adicionar”.
4. El sistema habilita los campos de lainterfaz Adicionar.
5. El Almacenero introduce número yfecha del pedido.6. El Almacenero desea verificar quela existencia por medicamento estébien, por lo que introduce código onombre del medicamento para subúsqueda.
7. El sistema devuelve los registros quecoincidan con los datos introducidos.
37
8. El Almacenero presiona el botón“Proponer”.
9. El sistema realiza la selección de cadamedicamento que su existencia esté igualo por debajo del mínimo y realiza uncálculo a completar al máximo ya definido,generando la cantidad a pedir, guardandoel resultado en la Base de Datos.
10. El Almacenero presiona el botón“Exportar”.
11. El sistema genera un archivo con elpedido realizado para su posterior envíopor e-mail a EMCOMED.
Curso Alternativo de los Eventos
Sección “Visualizar Pedido ”1. El Almacenero selecciona la opción“Pedidos de Medicamentos”.
2. El sistema muestra el listado y labúsqueda por intervalo de fechas derealizados los pedidos de medicamentos.
3. El Almacenero introduce la primeray segunda fecha.
4. El sistema solicita los pedidos demedicamentos realizados en ese períodoa la Base de Datos.5. El sistema muestra todos los pedidosde medicamentos del período buscado.
6. El Almacenero selecciona el pedidoa visualizar y presiona el botón “Ver”.
7. El sistema muestra el pedidoseleccionado.
Curso Alternativo de los Eventos
38
Sección “Mostrar Listado de Pedidos de Medicamentos”1. El Almacenero selecciona la opción“Pedidos de Medicamentos”.
2. El sistema muestra el listado depedidos.
Curso Alternativo de los Eventos
Sección “Buscar Pedido”1. El Almacenero selecciona la opción“Pedidos de Medicamentos”.
2. El sistema muestra la búsqueda paraun intervalo de fechas.
3. El Almacenero introduce la primeray segunda fecha para la búsqueda depedidos de medicamentos realizadasen ese intervalo de tiempo.
4. El sistema verifica que exista o existanpedidos en ese período en la Base deDatos.5. El sistema devuelve los registros quecoincidan con los datos introducidos.4. El sistema solicita los pedidos demedicamentos realizados en ese períodoa la Base de Datos.5. El sistema muestra todos los pedidosde medicamentos del período buscado.
Curso Alternativo de los Eventos4.1 Al no existir el registro del pedido en laBase de Datos, muestra un mensaje deerror. (Ver # 2 del Curso Normal deEventos)
2.3 Flujo de Diseño.El flujo de diseño tiene como propósito modelar el sistema y encontrar su forma para
que soporte todos los requisitos. Crear una entrada apropiada y un punto de partida
para actividades de implementación. En este modelo son utilizados los diagramas de
secuencia y diagramas de clases del diseño correspondientes a los casos de usos
seleccionados en el modelado del sistema.
39
2.3.1 Diagrama de Clases del DiseñoSon diagramas de estructura estática que muestran las clases del sistema y sus
interrelaciones. Son utilizados tanto para mostrar lo que el sistema puede hacer
(análisis), como para mostrar cómo puede ser construido (diseño). Un diagrama de
clases muestra un conjunto de clases, interfaces y colaboraciones, así como sus
relaciones.
A continuación se muestra alguno de los diagrama de clases del diseño de los casos
de usos más importantes:
CUS_Gestionar Entrada de Medicamentos
CE_entrada_detalle
codcup : integeridentrada : integercantidad : integer
(f rom Clases Persistentes)
CE_medicamentos
idcodcup : integerproducto : varcharmaximo : integerminimo : integerexistencia : integeridformfarma : integernrolote : varcharidalm : varcharexistini : integerexistfinal : integerconsumo : integerdiasabast : integernormaabast : integerprecio : real
(f rom Clases Persistentes)
n
1
n
1
CE_entrada
identrada : integernrodoc : integerfecha : dateexistant : integerexistact : integeriddestino : integer
Crear Entrada()Modificar Entrada()Eliminar Entrada()Buscar Entrada()Mostrar Entrada()
(f rom Clases Persistentes)
n1
n1
CI_PrincipalCC_Entrada
CI_Modificar Entrada de Medicamentos
CI_Eliminar Entrada de Medicamentos
CI_Mostrar Entradas de Medicamentos
CI_Nueva Entrada de Medicamentos
Figura 3. Diagrama de Clases del Diseño del CUS_Gestionar Entrada de Medicamentos
40
CUS_Gestionar Salida de Medicamentos
CE_salida_detalle
codcup : integeridsalida : integercantidad : integer
(f rom Clases Persistentes)
CE_salida
idsalida : integernrodoc : integerfecha : dateexistant : integerexistact : integeriddestino : integer
Crear Salida()Modificar Salida()Eliminar Salida()Buscar Salida()Mostrar Salida()
(f rom Clases Persistentes)
n1
n1
CE_medicamentos
idcodcup : integerproducto : varcharmaximo : integerminimo : integerexistencia : integeridformfarma : integernrolote : varcharidalm : varcharexistini : integerexistfinal : integerconsumo : integerdiasabast : integernormaabast : integerprecio : real
(f rom Clases Persistentes)
n
1
n
1
CI_Principal CC_Salida
CI_Eliminar Salida deMedicamentos
CI_Modificar Salida deMedicamentosCI_Mostrar Salida de Medicamentos
CI_Nueva Salida deMedicamentos
Figura 4. Diagrama de Clases del Diseño del CUS_Gestionar Salida de Medicamentos
CUS_Gestionar Pedido de Medicamentos
CI_Principal
CE_pedido_detalle
numped : integercodcup : integercantidad : integer
(f rom Clases Persistentes)
CI_ Visualizar Pedido
CE_ pedidos
numped : integerfecha : date
Crear Pedido()Mostrar Pedidos()Visualizar Pedido()Buscar Pedido()
(f rom Clases Persistentes)
1n
1n
CE_medicamentos
idcodcup : integerproducto : varcharmaximo : integerminimo : integerexistencia : integeridformfarma : integernrolote : varcharidalm : varcharexistini : integerexistfinal : integerconsumo : integerdiasabast : integernormaabast : integerprecio : real
(f rom Clases Persistentes)
n
1
n
1
CC_Pedido
CI_Mostrar Pedidos
CI_Nuevo Pedido
Figura 5. Diagrama de Clases del Diseño del CUS_Gestionar Pedido.
41
2.3.2 Diagrama de secuencia.Muestran interacciones ordenadas en una secuencia de tiempo y los objetos que
participan. Ver Anexo #2.Figura 6 Diagramas de secuencias del CUS_Gestionar Entrada de MedicamentosCrear Entrada de Medicamentos
: Gestor : CI_Principal : CI_Nuev a Entrada deMedicamentos
: CC_Entrada : CE_entrada : CE_entrada_detalle : CE_medicamentos : CI_Mostrar Entradas deMedicamentos
Obtiene listado y datos de los medicamentos
Obtiene datos coincidentes
Selecciona medicamento a dar entrada
Crear entrada de med.
Guarda entrada de med.
Solicita medicamento a dar entrada
Guarda cantidad de entrada del med.
Muestra listado de entradas de medicamentos y la búsqueda
Introduce número y f echa de entrada
Selecciona del menú la opción "Mov imientos de Productos"
Introduce código o nombre del med. para su búsqueda
Presiona el botón "Adicionar"
Solicita listado y datos de los medicamentos
Solicita adicionar una nuev a entrada de med.
Muestra datos del med. seleccionado
Dev uelv eMed(codcup, producto, f orma_f armaceutica, precio)
Solicita datos del medicamento
Introduce datos (cantidad, lote y v encimiento) y selecciona aceptar
Comprueba campos
Muestra la entrada de medicamentos a adicionar
42
Modificar Entrada de Medicamentos
: Jefe de Farmacia : CI_Principal : CI_Mostrar Entradas deMedicamentos
: CI_Modificar Entrada deMedicamentos
: CC_Entrada : CE_entrada : CE_entrada_detalle : CE_medicamentos
Selecciona del menú la opción "Movimientos de Productos"
Sol ici ta listado de entradas de medicamentos
Obtiene l istado de entradas de medicamentos
Muestra listado de entradas de medicamentos y la búsqueda
Introduce nro. de entrada para su búsqueda
Buscar datos coincidentes
Obtiene datos de los medicamentos
Obtiene datos coincidentes
Muestra datos coincidentes
Selecciona la entrada y oprime el botón "Modificar"
Sol ici ta modificar entrada de medicamentos
Muestra la entrada de medicamentos a modifcar
Introduce nuevos datos y selecciona guardar
Modificar entrada de medicamentos
Comprueba campos
Guarda datos modificados
Guarda nueva cantidad
43
Eliminar Entrada de Medicamentos
: CI_Principal : CI_Mostrar Entradas deMedicamentos
: CI_Eliminar Entradade Medicamentos
: CC_Entrada : CE_entrada : CE_entrada_detalle : CE_medicamentos : Jefe de Farmacia
Solicita listado de entradas de medicamentos
Obtiene listado de entradas de medicamentos
Muestra listado de entradas de medicamentos y la búsqueda
Busca datos coincidentes
Obtiene datos coincidentes
Elimina entrada
Obtiene datos de los medicamentos
Solicita eliminar entrada de med.
Muestra datos coincidentes
Elimina cantidad
Selecciona del menú la opción "Movimientos de Productos"
Introduce nro. de entrada para su búsqueda
Selecciona entrada y selecciona eliminar
Presiona el botón "Si"
Solicita eliminar la entrada
Muestra mensaje de confirmación
Mostrar Listado de Entradas de Medicamentos
: CI_Principal : CI_Mostrar Entradasde Medicamentos
: CC_Entrada : CE_entrada : Gestor
Solicita listado de entradas de medicamentos
Obtiene listado de entradas de medicamentos
Muestra listado de entradas de medicamentos
Selecciona del menú la opción "Mov imientos de Productos"
44
Buscar Entrada de Medicamentos
: Gestor : CI_Mostrar Entradasde Medicamentos
: CC_Entrada : CE_entrada : CI_Principal
Muestra el listado de entradas de medicamentos y la búsqueda
Busca datos coincidentes
Muestra datos coincidentes
Introduce nro. de entrada para su búsqueda
Obtiene listado de entradas de medicamentos
Selecciona del menú la opción "Movimientos de Productos"
Solicita listado de entradas de medicamentos
Obtiene datos coincidentes
45
Figura 7 Diagramas de secuencias del CUS_Gestionar Pedidos
Crear Pedido
: Almacenero : CI_Principal : CI_NuevoPedido
: CC_Pedido : CE_ pedidos : CE_pedido_detalle : CE_medicamentos
Selecciona del menú la opción "Pedido de Medicamentos "
Solicita datos de los medicamentos
Obtiene datos de los medicamentos
Muestra interfaz
Presiona el botón "Proponer"
Solicita selección med. igual o por debajo del mínimo y cálculo a completar al máximo
Realiza cálculo a completar al máximo y crea Pedido
Guarda cantidad
Presiona el botón "Exportar"
Generar archivo de pedido
Introduce número y fecha del pedido
Introduce código o nombre del med. para su búsqueda
Obtiene datos coincidentes
Solicita datos del medicamento
Devuelve datos coincidentes
46
Visualizar Pedido
: Almacenero : CI_Principal : CI_MostrarPedidos
: CC_Pedido : CE_ pedidos : CE_pedido_detalle : CE_medicamentos : CI_ VisualizarPedido
Selecciona del menú la opción "Pedidos de Medicamentos"
Solicita l istado de pedidos
Obtiene listado de pedidos
Muestra listado de pedidos y la búsqueda por intervalo de fechas
Introduce la primera y segunada fecha
Solicita pedidos realizados en ese período
Obtiene pedidos realizados del período
Obtiene datos de los medicamentos
Muestra pedidos real izados del período
Selecciona el pedido a visualizar y presiona el botón "Ver"
Solicita vizualizar el pedido seleccionado
Visualiza el pedido seleccionado
Obtiene datos cantidades pedidas por med.
47
Mostrar Listado de Pedidos
: Almacenero : CI_Principal : CI_MostrarPedidos
: CC_Pedido : CE_ pedidos
Selecciona del menú la opción "Pedidos de Medicamentos"
Solicita listado de pedidos
Obtiene listado de pedidos
Muestra listado de pedidos
Buscar Pedido
: Almacenero : CI_MostrarPedidos
: CC_Pedido : CE_ pedidos : CI_Principal
Introduce primera y segunda fecha para buscar pedidos del período
Busca pedidos del período
Muestra pedidos del período buscado
Muestra el listado de pedidos y la búsqueda
Obtiene listado de pedidos de medicamentos
Obtiene pedidos del período
Selecciona del menú la opción "Pedidos de Medicamentos"
Solicita listado de pedidos de medicamentos
48
2.3.3 Diagrama de clases persistentes.Las clases persistentes son las clases que necesitan ser capaz de guardar su estado
en un medio permanente, la necesidad de guardar su estado está dada por el
almacenamiento físico permanente de la información de la clase, para el intercambio
de información, o para la copia de seguridad en caso del fracaso del sistema.
CE_ destinosiddestino : integerdestino : v archar
CE_pedidosnumped : integerf echa : dateidpedido : serial
Crear Pedido()Mostrar Pedidos()Visualizar Pedido()Buscar Pedido()
CE_salidaidsalida : serialnrodoc : v archarf echa : dateexistant : integerexistact : integeriddestino : integer
Crear Salida()Modif icar Salida()Eliminar Salida()Buscar Salida()Mostrar Salida()
n1 n1
CE_ ajusteidajuste : serialnrodoc : v archarf echa : dateexistant : integerexistact : integeriddestino : integer
n
1
n
1
CE_retenidosidretenido : integerf echa : datedetalle : v archarnroplanav iso : v archar
CE_ prov eedoresidprov ee : v archarprov eedor : v archar
CE_ entradaidentrada : v archarf echa : dateexistant : integerexistact : integeriddestino : integerid_ent : serial
Crear Entrada()Modif icar Entrada()Eliminar Entrada()Buscar Entrada()Mostrar Entrada()
n
1
n
1
CE_pedido_detalleidpedido : serialidmedicamentos : serialcantidad : integerid_pd : serial
n1 n1
CE_f ormas_f armaceuticasidf ormf arm : integerf orma_f armaceutica : v archar
CE_salida_detalleidmedicamentos. serialidsalida : serialcantidad : integerid_sd : serial
1n
1n
CE_ ajuste_detalleidmedicamentos : serialidajuste : serialcantidad : integerid_ad : serial
1n 1n
CE_ lotesnrolote : v archarf echav enc : datecantidad : integeridprov ee : v archaridretenido : integerid_lote : serial
1..n
1
1..n
1
1
n
1
n
CE_ entrada_detalleidmedicamentos : serialcantidad : integerid_ent : serialid_ed : serial 1n 1n
CE_ medicamentosidcodcup : integerproducto : v archarmaximo : integerminimo : integerexistencia : integeridf ormf arma : integernrolote : v archaridalm : v archarexistini : integerexistf inal : integerconsumo : integerdiasabast : integernormaabast : integerprecio : realidmedicamentos : serial
1
n
1
n
n1 n1
1
n
1
n
1
n
1
n
nn nn1
n1
n
CE_ prov inciaidprov incia : integerprov incia : v archar
CE_ almacenidalm : v archarnombre : v archaridmunicipio : integerdireccion : v archar
n
1
n
1
CE_rolesidrol : integernombre : v archar
CE_municipioidmunicipio : integermunicipio : v archaridprov incia : integeridusuario : integer
1n 1n
1
1..n
1
1..n
CE_ trazasid_traza : serialuser_name : charactercargo : characterf echa-hora : timestampacciones : charateruser_id : integer
CE_usuariosidusuario : integerusuario : v archarpass : v archarrol : integeridmunicipio : integer
1..n1 1..n1 1n 1n
n1
n1
Figura 8 Diagrama de clases persistentes.
49
2.3.4 Modelo de Datos.El modelo de los datos describe la representación física y lógica de datos
persistentes en el sistema. Ver Anexo #3.
2.3.5 Modelo de Despliegue.El diagrama de despliegue muestra la configuración de los nodos contribuyentes en
la ejecución de un sistema. Se modela la topología del hardware sobre la que se
ejecuta el sistema y la distribución física del mismo.
Figura 9 Modelo de Despliegue.
2.4 Flujo de Implementación.El flujo de implementación está compuesto por los modelos de componentes, general
y por cada caso de uso, que son los encargados de representar los componentes a
construir y su organización y dependencia entre nodos físicos en los que funcionará
la aplicación.
2.4.1 Modelo de Componentes.2.4.1.1 Diagrama de la arquitectura del sistema.Es la arquitectura con que está diseñado el sistema, en el cual se separan los datosde la aplicación, la interfaz de usuario y la lógica de negocio en tres componentesdistintos Modelo Vista Controlador (MVC).
Paquete Vis ual Paquete Contro l Paquete clas es Entidad
farm acia
Figura 10 Diagrama de componentes general
PC
Impresora
USB
50
Paquete Visual
Autenticarusuario.hError.h
Gestionarusuario.h
GestionarProv incia.h
GestionarMunicipio.h
GestionarEntidad.h
GestionarMedicamento.h
Gestionar Entrada deMedicamentos.h
Principal.h
Gestionar Salida deMedicamentos.h
Gestionar Ajuste deMedicamentos.h
Retener lote deMedicamento.h
GestionarPedido.h
Analizar Máximos yMínimos.h
VisualizarTrazas.h
Generarreportes.h
Figura 10.1 Diagrama de componentes Paquete Visual
Paquete Control
CAutenticar.h
CUsuario.h
CProvincia.h
CMunicipio.h
CEntidad.h
CMedicamento.hCEntrada.hCSalida.h
CAjuste.h
CRetener.h
CPedido.h
CMáximo.h
CTrazas.h
Figura 10.2 Diagrama de componentes Paquete Control
51
Paquete clases Entidad
usuario.h
Provincia.h
Municipio.h
Almacén.h
Proveedor.h
Lotes.h
Lotes_Medicamentos.h
Formas_Farmacéuticas.h
Medicamentos.h
Retenidos.hEntrada.h
Entrada_Detalle.h
Salida.h
Salida_Detalles.h
Ajuste.h
Ajuste_Detalle.h
Proveedores.h
Destinos.h
Pedido.h Pedido_Detalle.h
Trazas.h
Figura 10.3 Diagrama de componentes Paquete Modelo
2.4.1.2 Diagramas de componentes de los casos de usos más importantes.
Gestionar Entrada deMedicamentos.h
CEntrada.h
Entrada.h
Entrada_Detalle.h
Medicamentos.h
farmacia
Principal.h
Figura 13 Diagrama de componentes CUS_Entrada de Medicamentos
52
Gestionar Salida deMedicamentos.h
Principal.h
Salida.h
Salida_Detalles.h
Medicamentos.h
farmacia
Figura 14 Diagrama de componentes CUS_Salida de Medicamentos
Pedido.h
Principal.h GestionarPedido.h
CPedido.h Pedido_Detalle.h
Medicamentos.h
farmacia
Figura 15 Diagrama de componentes CUS_Pedido
Conclusiones parcialesEn este capítulo mediante el modelado del negocio se entendieron mejor los
métodos de trabajo, con el levantamiento de requerimientos funcionales se definieron
los casos de uso críticos a automatizar. Se muestran además, los requerimientos no
funcionales. Se describieron los actores que interactúan con el sistema, los casos de
uso a automatizar y se presenta el diagrama de casos de uso del sistema y el
diagrama de clases del diseño. También se realizaron los diagramas de secuencia
del diseño, las clases persistentes, el modelo de datos, el diagrama de la arquitectura
del sistema y el diagrama de componentes de los casos de uso más importantes.
53
CAPÍTULO 3. IMPLEMENTACIÓN DEL SISTEMA.IntroducciónEn el presentación capítulo se tratarán una serie de elementos que son necesarios
para dar una amplia perspectiva del objetivo que se persigue con la implementación
del sistema de la presente investigación, con el fin de organizar las ideas analizadas;
dando una amplia información del diseño de la interfaz del software; la forma general
y principios en que se basa el sistema de ayuda, y la forma general y principios de la
protección y seguridad; así como forma general del tratamiento de errores.
3.1 Aspectos relativos a la implementación del sistema.El sistema se desarrolló en el Embarcadero RAD Studio C++ Builder 2010, el cual es
un entorno de desarrollo rápido de aplicaciones, en lenguaje C++ para Windows.
Este tiende a englobar la usabilidad, utilidad y la rapidez de ejecución. Además se
utiliza para el desarrollo rápido de interfaces gráficas de usuario.
3.2 Diseño de la interfaz.El diseño de la interfaz de usuario es la categoría de diseño que establece un medio
de comunicación entre el usuario y la computadora. Tiene como objetivo definir las
acciones de interfaz (y sus representaciones en pantalla) que posibilitan al usuario
explotar las opciones que brinda el sistema. Una interfaz bien diseñada mejora la
percepción del contenido y de los servicios que proporciona el sistema de software
(Pressman 2005, p.259). Para el diseño de la interfaz del sistema se tuvo en cuenta
que toda aplicación en ambiente Escritorio, lleva necesariamente incluido en su
proceso, el cumplimiento de determinadas características como la claridad, la
sencillez y facilidad de manipulación, pues ello le posibilita al usuario la accesibilidad
efectiva a la información a través de una simple interacción con los elementos de la
pantalla; estando desarrollado dichos elementos en un entorno atrayente y
agradable, ya que uno de los objetivos principales de un sistema informático que
automatice un proceso dado es que sea aceptado sin problemas por el usuario, o
sea, que el cambio no involucre rechazo.
54
Figura 16 Interfaz principal
3.3 Forma general y principios en que se basa el sistema de ayuda.La ayuda de la aplicación es una opción que ofrece al usuario una herramienta de
consulta sobre los conocimientos necesarios para la explotación del mismo.
Contempla toda la información concerniente a la aplicación, manipulación y servicios
que brinda el sistema. El usuario puede acceder a la ayuda seleccionando en el
menú.
3.4 Forma general y principios de la protección y seguridad.Con el propósito de garantizar la seguridad de la información que se encuentra en la
base de datos del sistema se han definido varios usuarios con diferentes roles para
la manipulación de los recursos de la misma. Los niveles de acceso están
proporcionados por los tipos de usuarios definidos según las características de los
usuarios que interactúan con el sistema. Cada usuario tendrá acceso solo a las
opciones del sistema que le admite el rol especificado para él. Garantizando así la
confidencialidad de la información.
55
3.5 Forma general del tratamiento de errores.Una parte significativa en el desarrollo de un sistema lo constituye la validación de
los datos que interactúan con el usuario y el análisis de los errores que éstos puedan
generar. Tener ésto en cuenta y solucionarlo contribuye en gran medida a la calidad
del producto terminado.
Al realizarse un error la aplicación debe detectarlo y tratar de corregirlo. El mejor
remedio para evitar los errores es la prevención, pero evidentemente éstos ocurrirán
incluso con los usuarios de más avanzados, por lo que si no se pueden evitar los
errores al menos hay que tratar de minimizar sus consecuencias y ayudar a los
usuarios a recuperarse de éstos.
Las entradas de datos incorrectos causan, al menos, pérdida de tiempo a los
usuarios y pueden inclusive provocarle interrupciones a la aplicación. Para evitar
entradas incorrectas se usaron en la mayoría los casos controles de selección, de
forma que el usuario no tenga que teclear la información, sino que la escoja a partir
de valores ya existentes.
Se incluyen mensajes de errores comprensibles y útiles, para ayudar a los usuarios a
completar operaciones sobre los distintos objetos del sistema, logrando mejorar en
gran medida su interacción y garantizando la confianza y seguridad en la
manipulación del mismo.
Conclusiones parcialesEn este capítulo se abordaron una serie de elementos necesarios para la
implementación del sistema de la presente investigación, dando a conocer todo lo
necesario a la hora de confeccionar un buen diseño de la interfaz, así como dando
las formas generales y principios en que se basa el sistema de ayuda, el sistema de
protección y seguridad, y por último todo lo relacionado con el tratamiento de errores
en la aplicación.
56
CONCLUSIONESAl finalizar este trabajo se arribaron a las siguientes conclusiones:
Se alcanzó el objetivo mediante la implementación de un sistema para el
control de medicamentos hospitalarios y realización de pedidos de los
mismos, con una adecuada interfaz y facilidades para el usuario en el área
Farmacia Interna – Almacén de Medicamentos.
Las tecnologías utilizadas para el desarrollo de la aplicación permitieron
garantizar el cumplimiento de los requerimientos técnicos y de explotación de
la misma así como los requisitos solicitados por el usuario.
Se definieron los conceptos relacionados con el problema en cuestión, así
como las características que distinguen a los que manipulan toda la
información, lográndose así un diseño consistente y de fácil manipulación para
el usuario.
57
RECOMENDACIONES
Se recomienda:
Extender el sistema a otras entidades de salud.
Enriquecer el sistema aumentando las funcionalidades actuales, teniendo en
cuenta lo abarcador que puede ser el tema referente al control, recepción y
realización de pedidos de medicamentos hospitalarios.
58
BIBLIOGRAFÍA1. ÁLVAREZ, S. y HERNÁNDEZ, A. (2000). Metodología para el desarrollo de
aplicaciones con tecnologías orientadas a objetos utilizando notación UML. La
Habana: [s. n.].p. 48.
2. Control de materiales hospitalarios. [Disponible en:
http://www.infomed.sld.cu/instituciones/cedisap/Asimed3.html]. [Consultado: 4/ 2/
13]
3. CUBA. Ministerio de Salud Pública. (2006). Manual de normas y procedimientos
farmacia hospitalaria. [La Habana]. t.1. p. 27, 88, 89, 91.
4. DIETEL, H. M. y DIETEL, P. J. (2010). Cómo programar en C / C ++. La Habana:
Félix Varela. 3 t.
5. HERNÁNDEZ SAMPIER, R. (2003). Metodología de la investigación. La Habana:
Félix Varela. 2 t.
6. MAZ integra el control de medicamentos en su gestión hospitalaria con Microsoft
[Disponible en: http://www.computing.es/informatica-
profesional/noticias/1031525001701/maz-integra-control-medicamentos.1.html].
[Consultado: 4/ 2/ 13]
7. PÉREZ MARCHÁN, H. L. (2011). Sistema para la migración y diagnóstico de la
base de datos de intranet de ACINOX desde SQL Server hacia PostgreSQL.
Trabajo de Diploma para optar por el título de Ingeniero Informático. Universidad
de Las Tunas: Vladimir Ilich Lenin. p. 4, 5.
8. PRESSMAN, R. S. (2005). Ingeniería del Software. Un enfoque práctico. La
Habana: Félix Varela. p. 259.
59
9. QUATRANI, F. (1999). Visual modeling with Rational Rose 2000 and UML. USA:
Addison- Wesley. p. 23.
10.SÁNCHEZ ABÍN, A. (2009). Programa para el monitoreo y registro de variables
en fermentadores. Trabajo de Diploma para optar por el título de Ingeniero
Informático, Universidad de Camagüey.
11.xHosp - Sistema integral para la administración hospitalaria. [Disponible en:
http://www.virtus.com.mx/xhosp/index.html]. [Consultado: 4/ 2/ 13]
12.ZUKOWSKI, J. (2006). Programación Java 2 J2SE 1.4. La Habana: Félix Varela.
3 t. p. 51.
60
ANEXOSAnexo #1. Descripción textual del caso de uso del sistema Gestionar Salida deMedicamentos.
Nombre del Caso de Uso CUS_Gestionar Salida de Medicamentos
Actores Generalizado: Gestor, Especializados: Especialista, Jefe deFarmacia
Propósito Realizar salidas de medicamentos.Resumen El CUS se inicia cuando el Gestor desea dar una nueva salida
de medicamentos, mostrar listado de salidas, buscar salida demedicamentos, pero modificar o eliminar solo lo puede realizarel jefe de farmacia y termina luego que el sistema permiterealizar cualquiera de estas opciones.
Referencias RF 8.1, RF 8.2, RF 8.3, RF 8.4, RF 8.5, CUS_BuscarMedicamento (Incluido), CUS_Autenticar usuario (Incluido)
Pre-condiciones Que el usuario haya accedido al sistema.Pos-condiciones (-).
Curso Normal de los EventosAcciones del Actor Respuesta del Sistema1. El Gestor selecciona el menú“Gestión”.
2. El sistema le muestra la opción: Movimientos de Productos:
Nueva Salida de Medicamentos. Mostrar Listado de Salidas de
Medicamentos. Buscar Salida de Medicamentos. Modificar Salida de Medicamentos. Eliminar Salida de Medicamentos.1. Si el Gestor selecciona la opción:
Nueva Salida de Medicamentos, ira la sección “Nueva Salida deMedicamentos”.
2. Si el Gestor selecciona la opción:Mostrar Listado de Salidas deMedicamentos, ir a la sección“Mostrar Listado de Salidas deMedicamentos”.
61
3. Si el Gestor selecciona la opción:Buscar Salida de Medicamentos, ira la sección “Buscar Salida deMedicamentos”.
4. Si el Gestor selecciona la opción:Modificar Salida de Medicamentos,ir a la sección “Modificar Salida deMedicamentos”.
5. Si el Gestor selecciona la opción:Eliminar Salida de Medicamentos,ir a la sección “Eliminar Salida deMedicamentos”.
Sección “Nueva Salida de Medicamentos”1. El Gestor selecciona la opción“Movimientos de Productos”.
2. El sistema habilita el listado de losmedicamentos y los campos deldocumento salida, llamando alCUS_Buscar Medicamento.
3. El Gestor presiona el botón“Adicionar”.
4. El sistema habilita los campos de lainterfaz Adicionar.
5. El Gestor introduce el número yfecha de la salida.6. El Gestor introduce código onombre del medicamento para subúsqueda.
7. El sistema devuelve los registros quecoincidan con los datos introducidos.
8. El Gestor selecciona elmedicamento a dar salida.
9. El sistema muestra los datos delmedicamento seleccionado.
10. El Gestor introduce cantidad a darsalida y continúa realizando la mismaacción para cada uno de los mismos adar salida y presiona el botón“Aceptar”.
62
11. El sistema verifica validez de los datosintroducidos.12. El sistema verifica que no exista elnúmero de la salida de medicamentos enla Base de Datos.13. El sistema rebaja la cantidad de laexistencia en la Base de Datos, que estécon el lote más próximo a vencer.
Curso Alternativo de los Eventos11.1 Al existir campos vacíos, muestra unmensaje de error o al introducir unacantidad mayor que la existencia real yregresa a la acción # 9. ( Ver CursoNormal de Eventos)12.1 AL existir el número del documentoen la Base de Datos, muestra un mensajede error y regresa a la acción # 5. ( VerCurso Normal de Eventos)
Sección “Modificar Salida de Medicamentos”1. El Jefe de Farmacia selecciona laopción “Movimientos de Productos”.
2. El sistema muestra el listado y labúsqueda por número de salida demedicamentos.
3. El Jefe de Farmacia introduce elnúmero del documento para subúsqueda.
4. El sistema devuelve los registros quecoincidan con los datos introducidos.
5. El Jefe de Farmacia selecciona eldocumento de salida a modificar ypresiona el botón “Modificar”.
6. El sistema habilita los campos amodificar.
7. El Jefe de Farmacia modifica losdatos en los campos y presiona elbotón “Guardar”.
63
8. El sistema verifica validez los datosintroducidos en los distintos campos.9. El sistema guarda los datosmodificados en los campos y actualiza laBase de Datos.
Curso Alternativo de los Eventos8.1 Al existir campos vacíos, muestra unmensaje de error y regresa a la acción #7. ( Ver Curso Normal de Eventos)
Sección “Eliminar Salida de Medicamentos”1. El Jefe de Farmacia selecciona laopción “Movimientos de Productos”.
2. El sistema muestra el listado y labúsqueda por número de salida demedicamentos.
3. El Jefe de Farmacia introduce elnúmero de la salida a eliminar para subúsqueda.
4. El sistema devuelve los registros quecoincidan con los datos introducidos.
5. El Jefe de Farmacia selecciona lasalida de medicamentos a eliminar ypresiona el botón “Eliminar”.
6. El sistema muestra un mensaje paraconfirmar si desea realmente eliminarlo.
7. El Jefe de Farmacia aceptaeliminarlo.
8. El sistema elimina el registro de lasalida de medicamentos y actualiza laBase de Datos.
Curso Alternativo de los Eventos
7.1 El Jefe de Farmacia oprime elbotón “No”.
7.2 El sistema regresa a la acción # 2. (Ver Curso Normal de Eventos)
Sección “Mostrar Listado de Salida de Medicamentos”
64
1. El Gestor selecciona la opción“Movimientos de Productos”.
2. El sistema muestra el listado de salidasde medicamentos.
Curso Alternativo de los Eventos
Sección “Buscar Salida de Medicamentos”1. El Gestor selecciona la opción“Movimientos de Productos”.
2. El sistema muestra un edit para labúsqueda.
3. El Gestor introduce en el edit eldato que identifica la salida demedicamentos (número de la salida)para la búsqueda.
4. El sistema verifica que exista el númerode la salida de medicamentos en la Basede Datos.5. El sistema devuelve los registros quecoincidan con los datos introducidos.
Curso Alternativo de los Eventos4.1 Al no existir el registro de la salida enla Base de Datos, muestra un mensaje deerror. (Ver # 2 del Curso Normal deEventos)
65
Anexo #2. Diagramas de secuencias del CUS_Gestionar Salida deMedicamentosCrear Salida de Medicamentos
: Gestor : CI_Principal : CI_Nueva Salidade Medicamentos
: CC_Salida : CE_salida : CE_salida_detalle : CE_medicamentos : CI_Mostrar Salidade Medicamentos
Selecciona del menú la opción "Movimientos de Productos"
Solici ta listado y datos de los medicamentos
Obtiene l istado y datos de los medicamentos
Introduce número y fecha de sal ida
Introduce código o nombre del med. para su búsqueda
Solici ta datos del medicamento
Obtiene datos coincidentes
DevuelveMed(codcup, producto, forma_farmaceutica, precio)
Selecciona medicamento a dar salida
Solici ta medicamento a dar sal ida
Muestra datos del med. seleccionado
Introduce cantida a dar salida y selecciona aceptar
Comprueba campos
Guarda salida de med.
Guarda cantidad de salida del med.
Rebaja cantidad actual del med.
Muestra listado de salidas de medicamentos y la búsqueda
Presiona el botón "Adicionar"
Sol ici ta adicionar una nueva salida de med.
Muestra la sal ida de medicamentos a adicionar
Crear salida de med.
66
Modificar Salida de Medicamentos
: CI_Principal : CI_Mostrar Salidade Medicamentos
: CI_Modificar Salida deMedicamentos
: CE_salida : CC_Salida : CE_salida_detalle : CE_medicamentos : Jefe de Farmacia
Solicita listado de salidas de medicamentos
Obtiene listado de salidas de medicamentosMuestra listado de salidas de medicamentos y la búsqueda
Busca datos coincidentes
Obtiene datos coincidentes
Muestra datos coincidentes
Solicita modificar salida de med.
Muetra salida de med. a modificar
Modificar salida de med.
Comprueba campos
Guarda datos modificados
Guarda nueva cantidad
Rebaja nueva cantidad actual del med.
Selecciona del menú la opción "Movimientos de Productos"
Introduce nro. de salida para su búsqueda
Selecciona salida y selecciona modificar
Obtiene datos de los medicamentos
Introduce nuevos datos y selecciona guardar
67
Eliminar Salida de Medicamentos
: CI_Principal : CI_Mostrar Salidade Medicamentos
: CI_Eliminar Salidade Medicamentos
: CC_Salida : CE_salida : CE_salida_detalle : CE_medicamentos : Jefe de Farmacia
Solicita listado de salidas de medicamentos
Obtiene listado de salidas de medicamentos
Muestra listado de salidas de medicamentos y la búsqueda
Busca datos coincidentes
Obtiene datos de los medicamentos
Obtiene datos coincidentes
Muestra datos coincidentes
Solicita eliminar salida de med.
Elimina salida
Elimina cantidad
Selecciona del menú la opción "Movimientos de Productos"
Introduce nro. de salida para su búsqueda
Selecciona salida y selecciona eliminar
Muestra mensaje de confirmación
Presiona el botón "Si"
Solicita eliminar salida de med.
68
Mostrar Listado de Salidas de Medicamentos
: CI_Principal : CI_Mostrar Salidade Medicamentos
: CC_Salida : CE_salida : Gestor
Solicita listado de salidas de medicamentos
Obtiene listado de salidas de medicamentos
Muestra listado de salidas de medicamentos
Selecciona del menú la opción "Histórico"
Buscar Salida de Medicamentos
: Gestor : CI_Mostrar Salidade Medicamentos
: CC_Salida : CE_salida : CI_Principal
Obtiene datos coincidentes
Muestra datos coincidentes
Introduce nro. de salida para su búsqueda
Obtiene listado de salidas de medicamentos
Muestra el listado de salidas de medicamentos y la búsqueda
Selecciona del menú la opción "Histórico"
Solicita listado de salidas de medicamentos
Busca datos coincidentes
69
Anexo #3. Modelo de Datos.
T_f armaciaprov eedores
idprov ee : SMALLINTprov eedor : SMALLINT
<<PK>> PK_T_f armaciaprov eedores4()
T_f armaciaretenidos
idretenido : SMALLINTf echa : SMALLINTdetalle : SMALLINTnroplanav iso : SMALLINT
<<PK>> PK_T_f armaciaretenidos11()
T_f armaciapedidos
numped : SMALLINTf echa : SMALLINT
<<PK>> PK_T_f armaciapedidos12()
T_f armaciapedido_detalle
numped : SMALLINTcodcup : SMALLINTcantidad : SMALLINTT_f armaciapedidos_numped : SMALLINTidcodcup : SMALLINTidf ormf arm : SMALLINT
<<PK>> PK_T_f armaciapedido_detalle13()<<FK>> FK_T_f armaciapedido_detalle30()<<FK>> FK_T_f armaciapedido_detalle32()
1..*1
1..*1
<<Identif y ing>>
T_f armaciaroles
idrol : SMALLINTnombre : SMALLINT
<<PK>> PK_T_f armaciaroles17()
T_f armaciausuariosidusuario : SMALLINTusuario : SMALLINTpass : SMALLINTrol : SMALLINTidmunicipio : SMALLINTidrol : SMALLINTT_f armaciamunicipio_idmunicipio : SMALLINT...
<<PK>> PK_T_f armaciausuarios16()<<FK>> FK_T_f armaciausuarios33()<<FK>> FK_T_f armaciausuarios34()
1..*
1
1..*
1
<<Non-Identif y ing>>
T_f armaciaf ormas_f armaceuticas
idf ormf arm : SMALLINTf orma_f armaceutica : SMALLINT
<<PK>> PK_T_f armaciaf ormas_f armaceuticas1()
T_f armacialotes
nrolote : SMALLINTf echav enc : SMALLINTcantidad : SMALLINTidprov ee : SMALLINTidretenido : SMALLINTT_f armaciaprov eedores_idprov ee : SMALLINTT_f armaciaretenidos_idretenido : SMALLINT
<<PK>> PK_T_f armacialotes2()<<FK>> FK_T_f armacialotes26()<<FK>> FK_T_f armacialotes27()
1..*
1
1..*
1
<<Non-Identif y ing>>1..*
1
1..*
1
<<Non-Identif y ing>>
T_f armaciaalmacen
idalm : SMALLINTnombre : SMALLINTidmunicipio : SMALLINTdireccion : SMALLINTT_f armaciamunicipio_idmunicipio : SMALLINT...
<<PK>> PK_T_f armaciaalmacen3()<<FK>> FK_T_f armaciaalmacen41()
T_f armaciaprov inciaidprov incia : SMALLINTprov incia : SMALLINT
<<PK>> PK_T_f armaciaprov incia14()
T_f armaciamunicipio
idmunicipio : SMALLINTmunicipio : SMALLINTidprov incia : SMALLINTidusuario : SMALLINTT_f armaciaprov incia_idprov incia : SMALLINT
<<PK>> PK_T_f armaciamunicipio15()<<FK>> FK_T_f armaciamunicipio42()
1..* 11..* 1
<<Non-Identif y ing>>
1..*
1
1..*
1<<Non-Identif y ing>>
1..* 11..* 1
<<Non-Identif y ing>>
T_f armaciaentrada_detalle
codcup : SMALLINTidentrada : SMALLINTcantidad : SMALLINTT_f armaciaentrada_identrada : SMALLINTidf ormf arm : SMALLINTidcodcup : SMALLINT
<<PK>> PK_T_f armaciaentrada_detalle6()<<FK>> FK_T_f armaciaentrada_detalle43()<<FK>> FK_T_f armaciaentrada_detalle44()
T_f armaciasalida_detalle
codcup : SMALLINTidsalida : SMALLINTcantidad : SMALLINTT_f armaciasalida_idsalida : SMALLINTidf ormf arm : SMALLINTidcodcup : SMALLINT
<<PK>> PK_T_f armaciasalida_detalle8()<<FK>> FK_T_f armaciasalida_detalle49()<<FK>> FK_T_f armaciasalida_detalle50()
T_lotes_medicamentos
idf ormf arm : SMALLINTidcodcup : SMALLINTnrolote : SMALLINT
<<FK>> FK_T_lotes_medicamentos39()<<PK>> PK_T_lotes_medicamentos20()<<FK>> FK_T_lotes_medicamentos40()
1..*
1
1..*
1
<<Identif y ing>>
T_f armaciamedicamentosidcodcup : SMALLINTproducto : SMALLINTmaximo : SMALLINTminimo : SMALLINTexistencia : SMALLINTidf ormf arma : SMALLINTnrolote : SMALLINTidalm : SMALLINTexistini : SMALLINTexistf inal : SMALLINTconsumo : SMALLINTdiasabast : SMALLINTnormaabast : SMALLINTprecio : SMALLINTT_f armaciaalmacen_idalm : SMALLINTidf ormf arm : SMALLINT
<<PK>> PK_T_f armaciamedicamentos0()<<FK>> FK_T_f armaciamedicamentos29()<<FK>> FK_T_f armaciamedicamentos36()
1..*
1
1..*
1
<<Non-Identif y ing>>
1..*
1
1..*
1
<<Identif y ing>>
1..*1
1..*1
<<Identif y ing>>
1..*
1
1..*
1<<Identif y ing>>
1..*1
1..*1
<<Identif y ing>>
1..*
1
1..*
1
<<Identif y ing>>
T_f armaciaajuste_detalle
codcup : SMALLINTidajuste : SMALLINTcantidad : SMALLINTT_f armaciaajuste_idajuste : SMALLINTidf ormf arm : SMALLINTidcodcup : SMALLINT
<<PK>> PK_T_f armaciaajuste_detalle10()<<FK>> FK_T_f armaciaajuste_detalle51()<<FK>> FK_T_f armaciaajuste_detalle53()
1..*
1
1..*
1
<<Identif y ing>>
T_f armaciasalidaidsalida : SMALLINTnrodoc : SMALLINTf echa : SMALLINTexistant : SMALLINTexistact : SMALLINTiddestino : SMALLINTT_f armaciadestinos_iddestino : SMALLINT
<<PK>> PK_T_f armaciasalida7()<<FK>> FK_T_f armaciasalida54()
1..*
1
1..*
1
<<Identif y ing>>
T_f armaciaentradaidentrada : SMALLINTnrodoc : SMALLINTf echa : SMALLINTexistant : SMALLINTexistact : SMALLINTiddestino : SMALLINTT_f armaciadestinos_iddestino : SMALLINT
<<PK>> PK_T_f armaciaentrada5()<<FK>> FK_T_f armaciaentrada55()
1..* 11..* 1
<<Identif y ing>>
T_f armaciadestinos
iddestino : SMALLINTdestino : SMALLINT
<<PK>> PK_T_f armaciadestinos18()
1..*1 1..*1
<<Non-Identif y ing>>
1..*
1
1..*
1
<<Non-Identif y ing>>
T_f armaciaajusteidajuste : SMALLINTnrodoc : SMALLINTf echa : SMALLINTexistant : SMALLINTexistact : SMALLINTiddestino : SMALLINTT_f armaciadestinos_iddestino : SMALLINT
<<PK>> PK_T_f armaciaajuste9()<<FK>> FK_T_f armaciaajuste56()
1..*
1
1..*
1<<Identif y ing>>
1..*
1
1..*
1
<<Non-Identif y ing>>