Estudo de Caso - “Consultório VIVA_BEM” 1- Escopo do Sistema: O Consultório VIVA-BEM é uma empresa de pequeno porte que trabalha no atendimento de pacientes com problemas médicos. Atualmente a VIVA-BEM possui apenas um consultório, onde são atendidos em média 30 pacientes/dia, possui 6 médicos conveniados, que também são donos do consultório, uma secretaria que faz o controle geral, tanto da parte administrativa como da parte pessoal e financeira e um office-boy que faz o serviço bancário. A contabilidade é terceirizada. Todos os processos são administrados manualmente, através de agendas e arquivos tanto de médicos como de pacientes. A empresa deseja melhorar o atendimento aos pacientes, obter informações mais robustas e detalhadas e um melhor controle dos pacientes, médicos e consultas. De acordo com determinação dos donos, num primeiro momento serão informatizados os processos consulta e cadastramento de pacientes onde serão colocados um computador em cada sala de consulta de cada médico e um computador na mesa da secretária. Mais especificamente, o cliente deseja: • Quando o paciente ligar solicitando agendamento de consulta, a secretária poderá consultar horários disponíveis e registrar o horário requerido pelo paciente; • A secretária deverá ligar confirmando as consultas com 24 horas de antecedência, emitindo uma lista de pacientes que deverão ser atendidos no próximo dia; • Quando o paciente chegar a clínica ele deverá ser cadastrado com todos os dados necessários; • Na consulta (atendimento do paciente) o médico deverá registrar sintomas, dados vitais, diagnostico, receita, pedidos de exames, resultados dos exames e agendar retorno do paciente; • O médico poderá também solicitar histórico do paciente coletando informações das consultas já realizadas; • O médico, por motivos de adversos (viagens, congressos,...), poderá cancelar consultas marcadas em um determinado período, onde deverá ser informada o período do afastamento (dia-inicial+horário-inicial e dia-final+horário-final) e a secretária deverá obter uma lista de pacientes que terão suas consultas cancelada, emitindo opcionalmente uma carta de aviso e pedido de desculpas. • Como processos de suporte o programa deverá: cadastrar médicos, cadastrar horário de atendimento de cada médico e etc; 2 - Modelo Ambiental 2.1 - Objetivos do Sistema: O propósito do Sistema de Consultório Médico – SICMED é manipular todos os detalhes da consulta médica de uma clinica, bem como controle de todos os pacientes e agendamento de consultas do consultório. O sistema deverá controla também todos os médicos e suas especialidades, juntamente com o horário de atendimento de cada um. Todo o histórico do paciente deverá fiar armazenado no sistema para posterior consulta. 2.2 – Lista de Eventos Lista de Eventos Inicial 1. Paciente marca consulta 2. Paciente cancela consulta 3. Secretaria confirma consulta 4. Secretária cancela consulta por afastamento do médico 5. Cadastrar paciente 6. Cadastrar convênio do paciente 7. Medico consulta paciente e guarda sintomas e dados vitais 8. Médico Analisa o histórico do paciente 9. Medico fornece o diagnostico do paciente 10. Médico fornece pedido de exames laboratoriais 11. Medico receita medicação para paciente 12. Medico marca retorno 13. Medico analisa exames e receita tratamento a paciente 14. Cadastrar Médicos 15. Cadastrar convênio do médico 16. Cadastrar especialidades 17. Cadastrar horário de atendimento de médicos 18. Gerar relatório de consultas a confirmar para próximo dia 19. Gerar carta de aviso e pedido de desculpas por cancelamento de consulta 20. Cadastrar Clinica 21. Cadastrar Exames 22. Cadastrar empresa conveniada 2.3 - Diagrama de Contexto 3 – Modelo Comportamental 3.1 - Resposta do Sistema aos eventos 1. Paciente marca consulta • Identificar especialidade / médico • Identificar disponibilidade de agenda • Verifica disponibilidade de horários • Identificar / pré-cadastrar cliente • Agendar consulta 2. Paciente cancela consulta • Identificar paciente • Localizar consulta agendada • Cancelar consulta 3. Secretaria confirma consulta • Identificar consulta / paciente • Confirmar consulta 4. Secretária cancela consulta por afastamento do médico • Identificar paciente • Identificar Consulta com horário do paciente • Gerar carta de cancelamento para paciente • Gerar lista de consultas para cancelamento • Cancelar consulta 5. Cadastrar paciente • Registrar informações do paciente 6. Cadastrar convênio do paciente • Identificar Paciente • Registrar Convênio do Paciente 7. Medico consulta paciente e guarda sintomas e dados vitais • Identificar paciente • Coletar dados vitais e registrar • Coletar sintomas e registrar 8. Médico Analisa o histórico do paciente • Medico pede histórico do paciente • Identificar Paciente • Identificar consultas do paciente • Identificar médico da consulta • Gerar histórico do paciente de todas as consultas 9. Medico fornece o diagnostico do paciente • Identificar paciente • Registrar diagnostico de paciente 10. Médico fornece pedido de exames laboratoriais • Identificar Paciente • Registrar exames laboratoriais 11. Medico receita medicação para paciente • Identificar paciente • Registrar receita da consulta 12. Medico marca retorno • Identificar paciente • Verifica disponibilidade de horário • Verifica disponibilidade de agenda • Agendar retorno 13. Medico analisa exames e receita tratamento a paciente • Cadastrar resultados de exames • Cadastrar tratamento de consulta • Medico Finaliza Consulta 14. Cadastrar Médicos • Registrar informações do medico 15. Cadastrar convênio do médico • Identificar médico • Registrar informações do convenio do medico 16. Cadastrar especialidades • Registrar informações da especialidade 17. Cadastrar horário de atendimento de médicos • Identificar médico • Registrar informações do horário do médico 18. Cadastra Clinica • Registrar informações da clínica 19. Cadastrar Exames • Registrar informações da exames 20. Cadastrar empresa conveniada • Registrar informações da empresa conveniada Construção de bolha de processo para cada evento do sistema 1. Paciente marca consulta 5. Cadastrar paciente 2. Paciente cancela consulta 6. Cadastrar convênio do paciente 3. Secretaria confirma consulta 7. Medico consulta paciente e guarda sintomas e dados vitais 4. Secretária cancela consulta por afastamento do médico 8. Médico Analisa o histórico do paciente 9. Medico fornece o diagnostico do paciente 10. Médico fornece pedido exames laboratoriais 13. Medico atende retorno, analisa exames e receita tratamento a paciente de 11. Medico receita medicação para paciente 14. Cadastrar Médicos 15. Cadastrar convênio do médico 16. Cadastrar especialidades 12. Medico marca retorno 19. Cadastrar Exames 17. Cadastrar Horário de Atendimento do Médico 20. Cadastrar empresa conveniada 18. Cadastrar Clinica 3.2 – Classificando os eventos em Categorias Lista de Eventos Categorizada Controle de agenda de consultas: 1. Paciente marca consulta 2. Paciente cancela consulta 3. Secretaria confirma consulta 4. Secretária cancela consulta por afastamento do médico Atendimento a paciente: 5. Cadastrar paciente 6. Cadastrar convênio do paciente Consulta Médica: 7. Medico consulta paciente e guarda sintomas e dados vitais 8. Médico Analisa o histórico do paciente 9. Medico fornece o diagnostico do paciente 10. Médico fornece pedido de exames laboratoriais 11. Medico receita medicação para paciente 12. Medico marca retorno Retorno ao médico: 13. Medico analisa exames e receita tratamento a paciente Processos administrativos: 14. Cadastrar Médicos 15. Cadastrar convênio do médico 16. Cadastrar especialidades 17. Cadastrar horário de atendimento de médicos 18. Cadastrar Clinica 19. Cadastrar Exames 20. Cadastrar empresa conveniada 3.3 - Diagrama de Fluxo de Dados Nivelado 3.3.1 - Diagrama de Fluxo de Dados - Diagrama de Contexto – Nível 0 3.3.2 - Diagrama de Fluxo de Dados - Clinica Médica - Nível 1 3.3.3 - DFD Nível 2 - Clinica Médica – (1 - Controlar Agenda) 3.3.4 - DFD Nível 2 - Clinica Médica – (2 - Atender Paciente) 3.3.5 - DFD Nível 2 - Clinica Médica – (3 - Consultar Paciente) 3.3.6 - DFD Nível 2 - Clinica Médica – (4 - Administrar Clínica) 3.3.7 - DFD Nível 3 - Clinica Médica – (3.1 – Atender Consulta) 3.3.8 - DFD Nível 3 - Clinica Médica – (3.4 – Atender Retorno) 3.4 – Dicionário de Dados # = digito AGENDA = @código_agenda + @ código_méd + código_cons + data_agenda + hora_agenda + descrição_agenda = 1{caracter}20 bairro caracter celular_med celular_pac cep código código_agenda código_cli código_cons código_espec código_med código_pac complemento CONSULTA cpf cpf_med cpf_pac dados_consulta = [a..z | A..Z | 0..9 | - | | “ ] = telefone = telefone = ##.###-### = 1{digito}5 = código = código = código = código = código = código = 0{caracter}20 = 1{ @cogido_cons + código_pac + código_méd + tipo_cons + status_cons + dados_vitais + sintomas + receita + tratamento + diagnostico }N = ###.###.### - ## = cpf = cpf dados_vitais data data_agenda descrição_agenda diagnostico digito = nome_pac + telefone_pac + data_cons + hora_cons + nome_méd + (especialidade_méd) + tipo_cons = cpf_med + crm_med + nome_med + endereço_med + telefone_med + celular_med + email_med = cpf_pac + nome_pac + endereço_pac + telefone_pac + celular_pac + email_pac = 1{caracter}500 = ## / ## / #### = data = 1{caracter}30 = 1{caracter}500 = [0..9] email email_med email_pac endereço endereço_med endereço_pac = 1{caracter}30 = email = email = rua + numero + complemento + bairro + estado + cep = endereço = endereço dados_medico dados_paciente especiaçidade_méd estado = 0{caracter}20 = 2{caracter}2 hora hora_agenda = ## : ## = hora MEDICO = 1{@codigo_med + código_espec + código_cli + dados_medico}N nome nome_med nome_pac numero = 1{caracter}30 = nome = nome = código PACIENTE = 1{@codigo_pac + dados_paciente}N receita rua = 1{caracter}500 = 1{caracter}40 sintomas status_cons = 1{caracter}500 = [ MA | CO | CP | CM | AT | RT | FI ] ** MA – consulta marcada; CO – consulta confirmada; CP – consulta cancelada pelo paciente; CM – consulta cancelada pelo medico; AT – consulta atendida; RT – consulta em retorno; FI – consulta finalizada ** telefone telefone_med telefone_pac tipo_cons tratamento = (###) #### - #### = telefone = telefone =[P|C] ** P – pagamento em dinheiro; C – convênio ** = 1{caracter}500 valor = #.###.###,## . . . (continua para o todos os outros fluxos e todos os outros depósitos de dados) 3.5 – Especificação de Processos Primitivos Processo 1.1 – Marcar Consulta 1. RECEBER dados_consulta da entidade externa Paciente 2. FAZER BUSCA de registro no deposito de dados PACIENTE através do cpf_pac 3. se não existir cpf_pac a. GRAVAR nome_pac + cpf_pac + telefone_pac em novo registro do deposito de dados PACIENTE 4. se existir cpf_pac a. MOSTRAR registro na tela 5. FAZER BUSCA de registro no deposito de dados MEDICO através de nome_méd 6. FAZER BUSCA de registro no deposito de dados ESPECIALIZAÇÂO através de cod_med 7. APRESENTAR na tela nome_méd + crm_méd + nome_esp 8. MONTAR calendário na tela baseado no mês atual 9. MONTAR agenda de atendimento do médico com co_méd através dos depósitos de dados AGENDA e HORÁRIO na data especificada no calendário 10. DEFINIR horário da consulta com hora-agenda + data_agenda 11. GRAVAR um novo registro no deposito de CONSULTA com código_pac + código_med + tipo_cons 12. GRAVAR novo registro no deposito de dados AGENDA com hora-agenda + data_agenda + condigo_cons Processo 2.1 - Cadastrar Paciente 1. RECEBER dados_paciente da entidade externa Paciente 2. FAZER BUSCA de registro no depósito PACIENTE através do cpf_pac 3. se existir cpf_pac a. MOSTRAR registro na tela b. DISPONIBILIZAR registro para alteração 4. se não existir cpf_pac a. GRAVAR dados_paciente em novo registro no deposito de dados PACIENTE b. APRESENTAR mensagem “ REGISTRO GRAVADO” . . . (continua para o todos os outros processos primitivos o DFD) 3.6 – Diagrama de Transição de Estados 4 – Projeto do Sistema - Modelo de Dados Diagrama de Entidades-Relacionamentos – Modelo Lógico tb_PACIENTE tb_PAC_CONV cod_pac nome_pac cpf_pac end_pac cidade_pac estado_pac cep_pac telefone_pac celular_pac email_pac tb_AGENDA cod_agenda cod_MED (FK) cod_cons (FK) data_agenda hora_agenda descricao_agenda cod_pac (FK) cod_conv (FK) tb_CONSULTA cod_cons cod_pac (FK) dados_vitais_cons sintomas_cons receita_cons tratamento_cons cod_MED (FK) diagnostico_cons status_cons tipo_consulta cod_MED cod_espec nome_espec descricao_espec tb_DISPONIBILIDADE cod_disp hora_disp dia_disp descricao_disp tb_EXA_CONS cod_cons (FK) cod_exa (FK) resultado_exa_pac tb_EXAMES cod_exa descricao_exame tipo_exame tb_CONVENIO tb_MEDICO tb_ESPECIALIDADE numero_pac_conv validade_pac_conv lcob_pac_conv produto_pac_conv empresa_pac_conv cod_espec (FK) cod_CLI (FK) nome_med end_med cidade_med estado_med cep_med email_med telefone_med celular_med tb_ATENDIMENTO cod_MED (FK) cod_disp (FK) tipo_atend tb_MED_CONV cod_conv (FK) cod_MED (FK) numero_med_conv data_inicio descricao_med_conv tb_CLINICA cod_CLI nome_clinica cidade_cli estado_cli end_clinica cep_cli telefone_cli fax_cli email_cli url_cli cod_conv nome_conv end_conv cidade_conv estado_conv cep_conv telefone_conv fax_conv email_conv url_conv