Sdfdsfsfsasd
Sdfdsfsfsasd
Sdfdsfsfsasd
RESIDENTES UFN
Tiago Resch Moreira1 , Ana Paula Canal1 , Alexandre Zamberlan1
1
Sistemas de Informações
Universidade Franciscana (UFN), Santa Maria, RS, Brasil
{tiagoresch;apc;alexz}@ufn.edu.br
Abstract. In the context of Residency programs, there are flows and processes
that need attention. One of the flows is the control of the frequency of residents
in their shifts (or scales) in care units. In this way, coordinators and preceptors
could view the attendance history of residents in care units, generating reports.
Thus, this work designed, implemented and installed a Web and Online System
for Frequency Control for Residents at UFN, by Python-Django technology, Bo-
otstrap framework, Linux server, Gunicorn and Nginx services, under the best
practices of SCRUM methodology and Kanban technique. The results were sig-
nificant, as the system is in operation at the UFN teaching hospitals.
1. Introdução
Os Sistemas de Informações ou os Sistemas de Conhecimentos estão presentes na socie-
dade e já se tornam indispensáveis nas mais diversas tarefas do dia-a-dia. Esses sistemas,
há muito, fazem mais do que armazenar dados para futuros relatórios, eles promovem a
integração e a contextualização da informação, permitindo a localização e a manipulação
de padrões presentes nas bases de dados.
Um exemplo, é a gestão de residentes em seus programas de residência e em suas
escalas em hospitais escolas. A gestão automatizada e informatizada desses processos
permite aos coordenadores agilizar suas tarefas, receber e lidar com informações mais
precisas, descobrir padrões dos perfis de residentes (sexo, idade, religião, entre outros),
perfis comportamentais (atrasos, comprometimentos, entre outros).
Dessa forma, nesse contexto de programas de residência, um dos fluxos importan-
tes é o controle da frequência dos residentes em suas escalas (plantões ou estágios) em
unidades de atendimento. Com isso, gestores (coordenadores ou preceptores) podem mo-
nitorar históricos de frequência de residentes em unidades e, futuramente, tomar decisões,
sobre quais unidades precisam mais ou menos de residentes, quais foram os preceptores
que mais atenderam residentes, entre outros.
Portanto, o objetivo deste trabalho foi projetar, implementar e implantar um Sis-
tema Web e Online para Gestão e Controle de Frequência para Residentes. E como obje-
tivos especı́ficos: i) pesquisar e compilar sobre gestão de recursos humanos em geral; ii)
pesquisar e compilar sobre controle de horas e frequência ponto; iii) identificar as catego-
rias de sistemas de informação, para classificar adequadamente a proposta; iv) pesquisar e
aplicar as boas práticas de desenvolvimento de software no sistema proposto; v) investigar
e testar os frameworks de desenvolvimento Web no universo Python; vi) identificar nos
trabalhos relacionados boas práticas e soluções utilizadas em contextos similares a dessa
pesquisa; vii) usar o mapeamento objeto-relacional na construção do sistema.
2. Revisão bibliográfica
Esta seção busca apresentar conceitos, definições e exemplos que contextualizem a pes-
quisa e a proposta de sistema.
Nesta seção buscou-se apresentar conceitos exemplos de boas práticas dos processos de
projeto e desenvolvimento de sistemas, principalmente via a metodologia SCRUM e a
técnica Kanban. Além disso, foram apresentadas noções de frameworks.
Na metodologia SCRUM é possı́vel dividi-la em papéis (scrum mas-
ter, product owner, dev team), eventos (planejamento, revisão e retrospectiva
de sprint) e artefatos (product backlog, sprint backlog e incremento/entrega)
[Wykowski and Wykowska 2019].
Conforme em [Sutherland 2016], é consenso que a metodologia SCRUM tem por
prioridade o desenvolvimento de um sistema (produto ou serviço) de modo menos com-
plexo, mais eficiente e focado em resultados. Os encontros (sprints) são semanais ou
quinzenais e sempre há apresentações das funcionalidades do sistema (product backlog)
em forma de protótipo. Isto é, o interessado ou o responsável pelo sistema acompanha e
testa toda funcionalidade implementada até aquele instante.
Dentro do contexto deste trabalho, há os papéis do coordenador da Comissão de
Residências Multidisciplinar (COREMU), alunos da área da Computação da Universi-
dade Franciscana e professor do Laboratório de Práticas da área da Computação. Dessa
forma, os idealizadores deste sistema (coordenador da COREMU e o professor do Labo-
ratório de Práticas da Computação) são os responsáveis pelos processos de modelagem,
desenvolvimento, testes e implantação do sistema. O delineamento, as definições de as-
pectos funcionais (planejamento, execução, revisão e retrospectiva do sprint) do sistema,
os layouts e a dinâmica de funcionamento geral ficaram sob responsabilidade do coorde-
nador da COREMU. Os alunos da área da Computação fazem parte do time de desenvol-
vimento (dev team) do sistema. O professor do Laboratório de Práticas da Computação
comportou-se, também como scrum master, que deve gerenciar o desenvolvimento como
um todo (prazos, metas, responsáveis, controle de versões do sistema, reuniões, etc). E a
COREMU e a Universidade Franciscana são consideradas as donas do produto (product
owner).
Em geral, a metodologia SCRUM fornece sugestões ou boas práticas no projeto
e/ou desenvolvimento de sistemas, que podem ser customizadas ou, até mesmo, suprimi-
das. Porém, o uso da técnica Kanban auxilia na gestão de tarefas, prazos, responsáveis,
entre outros, impactando diretamente nos sprints e nos product backlog. Dentro das boas
práticas de projeto e desenvolvimento de sistemas, há o de versionamento de código asso-
ciado a frameworks. Um framework para desenvolvimento de software é uma abstração
que fornece funcionalidades genéricas para reutilização de código para partes do sistema
em desenvolvimento [Wykowski and Wykowska 2019]. As principais vantagens de usar
frameworks são maior facilidade para a detecção de erros, a concentração na abstração de
soluções do problema e a eficiência na resolução dos problemas e otimização de recursos.
Django é um framework que é usado para criação de aplicações Web escrito em Python,
com o intuito de agilizar a construção dos programas e garantir qualidade e segurança do
sistema, uma vez que possui inúmeras bibliotecas ou pacotes com funcionalidades diver-
sas ao programador [Framework Django 2020]. Django também ajuda na escalabilidade
dos sistemas, ou seja, consegue oferecer capacidade de expansão sem perda de desem-
penho, como é o que acontece por exemplo com Mozilla Firefox, Pinterest e Instagram
[Santiago et al. 2020]. Diferente de outros frameworks Web que utilizam o MVC (Model-
View-Controller), o Django utiliza a estrutura MTV (Model-Template-View), onde o fra-
mework gerencia a maior parte da comunicação entre requisições HTTP. Quando é criado
um projeto em Django, há um diretório inicial de pastas e arquivos, onde estão os arquivos
models.py, views.py e urls.py, responsáveis pelo fluxo MTV [Framework Django 2020].
O Bootstrap é um framework front-end, que disponibiliza código fonte para a
criação de interfaces Web. É considerado um “kit de ferramentas”, contendo compo-
nentes HTML, CSS e JavaScript cujo uso proporciona rapidez e praticidade ao desen-
volvimento. Este framework tem como principal objetivo auxiliar na criação de sites
amigáveis e responsivos. Além disso, oferece uma grande variedade de plug-ins, possui
temas compatı́veis com vários outros frameworks e possui suporte para todos os nave-
gadores. Também oferece extensibilidade usando JavaScript, com suporte interno para
plug-ins jQuery e uma API JavaScript.
O Bootstrap pode ser usado com qualquer ambiente de desenvolvimento ou editor
e com qualquer tecnologia ou linguagem back-end como ASP.NET, PHP, Ruby on Rails
ou Python [Santiago et al. 2020]. A responsividade proporcionada pelo Bootstrap per-
mite que os usuários possam acessar os sites em todos os tipos de dispositivos de forma
otimizada e sem que informações sejam perdidas durante a navegação. Por conta disso, os
desenvolvedores não precisam se preocupar em fazer várias versões de um site para todos
os tipos e tamanhos de telas disponı́veis. O sistema de grid (ou grade) do Bootstrap, faz
uso de vários tipos de containers, linhas e colunas para organizar e alinhar visualmente
o conteúdo. Containers são estruturas que contêm a informação e que ajudam a dispor o
conteúdo no site. A informação contida nos containers é organizada em colunas, sendo
12 no total pelo padrão Bootstrap. O layout, o alinhamento e o tamanho das colunas
da grid são customizáveis através de um conjunto de utilitários chamado flexbox. Para
implementações mais sofisticadas, também é possı́vel utilizar CSSs personalizados, além
dos CSSs já disponibilizados pelo Bootstrap [Santiago et al. 2020].
Os trabalhos relacionados discutidos nesta seção são de [Cezário and Zamberlan 2021]
e [Zamberlan et al. 2021], ambos utilizaram arquitetura cliente-servidor (monolı́tica),
frameworks Bootstrap e Django, linguagem Python, servidor Linux Ubuntu, serviços
NGINX e GUNICORN. Os trabalhos foram escolhidos como relacionados, pois usaram
tecnologias que estão sendo utilizadas nesta pesquisa. Além disso, os pontos positivos (ou
boas práticas de desenvolvimento) foram incorporadas neste sistema proposto, ou seja,
funcionalidades previamente implementadas e testadas estão sendo reutilizadas neste sis-
tema.
No trabalho de [Cezário and Zamberlan 2021], foi projetado e implementado um
sistema Web para gerenciar uma base de dados referentes a pacientes diabéticos. O sis-
tema Web garantiu os processos de Create, Retrieve, Update, Delete (CRUD) de pacien-
tes, nutricionistas, educadores fı́sicos, médicos, atividades fı́sicas, alimentos, medicamen-
tos, refeições realizadas, atividades executadas, entre outros. Trabalhou-se com dados de
monitoramento referentes a data, quantidade de insulina utilizada, quantidade de calorias
e carboidratos ingeridos, qualidade do sono (escala Likert) e esforço subjetivo de ativi-
dades fı́sicas (escala Borg). A pesquisa também teve foco no estudo e na avaliação de
métodos de mineração de dados adequados para o contexto de monitoramento de dados
de pacientes diabéticos. A pesquisa foi baseada em revisão bibliográfica e estudo de caso.
Os resultados foram considerados significativos, uma vez que 3 algoritmos ((RandomFo-
rest, Expectation Maximisation e Bagging)) tiveram respostas conclusivas do estudo.
O trabalho de [Zamberlan et al. 2021] tratou de gestão informatizada de docu-
mentos, uma vez que a legislação brasileira têm facilitado as organizações em manipular
documentos na sua forma eletrônica, em detrimento de sua forma fısica, liberando espaços
e auxiliando em consultas diversas a conteúdos presentes nos documentos armazenados.
O objetivo do trabalho foi implementar um sistema Web de gestão de documentos do tipo
ata, para coordenações e secretarias de cursos de instituições de ensino. A pesquisa foi
amparada por revisão bibliográfica e estudo de caso, e o sistema foi construı́do seguindo
as boas praticas da metodologia SCRUM. O sistema também possui CRUD para usuários
professores e secretárias, além de documentos do tipo ata. Uma das principais funciona-
lidades do sistema é a geração automatizada das atas (formato .pdf) e um mecanismo de
pesquisa nos conteúdos das atas.
3. Materiais e métodos
Este trabalho é uma pesquisa interdisciplinar entre o curso de Sistemas de Informação,
Laboratório de Práticas da Computação UFN, Programa de Residência da UFN e empresa
parceira do Laboratório de Práticas (ER Sistemas).
Na Figura 1, é possı́vel visualizar as relações entre os conceitos de Sistemas de
Informação, a área da Computação, o sistema de controle de frequência e a aplicação na
Residência UFN.
A solução proposta é baseada na metodologia SCRUM e na técnica Kanban. As
ferramentas utilizadas são:
• Trello: ferramenta online para operacionalizar a técnica Kanban, que gerencia o
cronograma de atividades deste trabalho;
• Astah: ferramenta para a diagramação de aspectos funcionais e estruturais da
solução proposta;
• GitHub: Sistema online para controle de versionamento de código do sistema;
Figura 1. Mapa mental da relação Sistemas de Informação, área da Computação
e Residência UFN.
4. Resultados
Na Figura 2, é possı́vel perceber os atores (Administrador, Coordenador, Tutor, Preceptor,
Secretária, Residente) que usam ou interagem com o sistema, bem como as funcionali-
dades básicas, como por exemplo gerenciar usuários, gerenciar programas de residência,
gerenciar unidades de atendimento, associar residentes a preceptores, liberar o ponto de
residente, marcar ponto, entre outras.
Em relação à modelagem de aspectos estruturais do sistema, na Figura 3,
apresenta-se os dois principais pacotes da proposta que são gestão básica e controle de
frequência (foco do trabalho). O controle de frequência tem relação a um programa de
residência e seus integrantes (basicamente, residentes e preceptores).
Na Figura 4, há o Diagrama de Entidade-Relacionamento que ilustra como os da-
dos do sistema são armazenados em tabelas (entidades). As principais tabelas (entidades)
são:
• Administrativo: dados de todos os usuários que não são residentes, como matri-
cula, cpf, email, etc;
• Especialidade: armazena dados de especialidades que serão utilizadas para cate-
gorizar tanto um usuário Administrativo, quanto um setor de um hospital;
• Setor: dados dos diferentes setores ou alas de um hospital, por exemplo, ambu-
latório, UTI, etc;
• Hospital: dados de hospitais, prontos socorros e unidades de atendimento em uma
cidade;
• Programa: dados dos programas de residência cadastrados, com nome, conselho
de residência, duração do programa, etc;
Figura 2. Diagrama de Casos de Uso com as principais funcionalidades do sis-
tema.
Na Figura 12, o residente pode preencher campos para justificar a sua ocorrência
do ponto, inclusive carregar arquivo com imagem de atestado, por exemplo.
A Figura 13 apresenta as interfaces gráficas em que a secretária ou técnico da
unidade libera página modal3 para que residentes realizem o ponto, via autenticação de
usuário por senha.
4.2. Implementação
Nesta seção, busca-se destacar alguns trechos de código que significam o trabalho, forne-
cendo aspectos de implementação da funcionalidade do ponto eletrônico.
3
Modals são páginas que são posicionadas acima de todos os elementos do documento, removendo a
barra de rolagem para que o conteúdo não role.
Figura 12. Visão do Residente com formulário para entrar com justificativa da
falha no ponto.
capturar e tratar registros de pontos ou frequências. Decidiu-se por usar uma interface
modal, como apresentado na Figura 13. Nesse código, há a classe PontoLoginAjaxView
que tem dois métodos: gerar entrada saida e post. Esse último método que autentica o
residente no sistema antes de abrir o modal para realização do ponto.
5. Conclusões
Ao longo do texto, buscou-se discutir a proposta do sistema, mas sempre
contextualizando-o no tipo de Sistema de Informação a que ele pertence: mescla de Sis-
tema de Informação Gerencial com Sistema de Apoio à Decisão. Também, foram apre-
sentados fundamentos sobre boas práticas de desenvolvimento de sistemas, passando pela
metodologia SCRUM, técnica Kanban, uso de frameworks.
Sabe-se que o sistema proposto possui peculiaridades e alguns desafios que pre-
cisam ser superados, principalmente na parte de aceitação dos residentes, uma vez que
presença e carga horária em suas escalas são monitoradas. Para isso, foram realiza-
das reuniões com todos os membros do Conselho de Residência Multiprofissional (CO-
REMU), em que além da apresentação do sistema, houve momento de conscientização da
importância do sistema.
Portanto, pode-se afirmar que os objetivos (geral e especı́ficos) do trabalho foram
atingidos. Além disso, todas as funcionalidade mapeadas na modelagem foram imple-
mentadas, testadas e aprovadas durante o piloto do sistema.
Finalmente, o sistema foi desenvolvido sob a coordenação do Laboratório de
Práticas da Computação e com a assessoria da Empresa ER Sistemas. E isso contribuiu
para a qualidade das funcionalidades pensadas, implementadas e entregues.
Referências
Cezário, R. and Zamberlan, A. (2021). Algoritmos De Mineração De Dados Em Sis-
tema De Monitoramento De Diabetes. Trabalho de Conclusão de Curso Sistemas De
Informação - Universidade Franciscana (UFN), Santa Maria, RS, Brasil. Disponı́vel
em https://tfgonline.lapinf.ufn.edu.br.
dos Santos, R. E., de Oliveira Zamberlan, A., Vieira, S. A. G., Kurtz, G. C., and Frohlich,
R. (2021). Proposta de uma plataforma de cloud computing para disponibilização de
um sistema online para consultórios e clı́nicas por meio do modelo saas. Tópicos em
Ciências da Saúde Volume 24, page 7.
Framework Django (2020). Django: the web framework for perfectionists with deadlines.
Disponı́vel em https://www.djangoproject.com.
Laudon, J. P. and Laudon, K. C. (2014). Sistemas de Informação Gerenciais. Pearson, 11
edition.
Molinari, L. (2007). Gerência de configuração-técnicas e práticas no desenvolvimento do
software. Florianópolis: Visual Book.
O’brien, J. A. and Marakas, G. M. (2013). Administração de sistemas de informação.
AMGH, São Paulo.
Porto (2020). Infopédia. Porto Editora, Disponı́vel em
https://www.infopedia.pt/dicionarios/lingua-portuguesa/refatorar. Acessado em
Junho de 2022.
Rezende, E. d. A. (2018). Análise de sistema de informação para controle do registro de
ponto: estudo em empresa de segurança privada em belém-pa.
Santiago, C. P., Veras, N. L., de Aragão, A. P., Carvalho, D. A., and Amaral, L. A. (2020).
Desenvolvimento de sistemas web orientado a reuso com python, django e bootstrap.
Sociedade Brasileira de Computação.
Sutherland, J. (2016). Scrum: a arte de fazer o dobro do trabalho na metade do tempo.
Leya.
Wykowski, T. and Wykowska, J. (2019). Lessons learned: Using scrum in non-technical
teams.
Zamberlan, A., Perozzo, R. F., dos Santos, R. E., and Kurtz, G. C. (2021). Sistema web
para gestão de documentos atas construı́do por muitas mãos: Experiência extensionista
na computação. Disciplinarum Scientia— Ciências Humanas, 22(2):165–177.