October 26, 2026
Desenvolvimento de um software rastreador de coleta de água de hemodiálise com scheduler automático
Pedro Henrique Taveira Moreira da Fonseca; Eduardo Fernando Mendes
DOI: 10.22167/2675-6528-202601314
Artigo elaborado pela ferramenta ResumeAI, solução de inteligência artificial desenvolvida pelo Instituto Pecege voltada à síntese e redação.
Resumo
A gestão de coletas e análises de água em clínicas de hemodiálise representa um processo crítico para assegurar a conformidade com normas sanitárias e a segurança dos pacientes, exigindo controle rigoroso de prazos e uma distribuição eficiente das atividades. Objetivou-se desenvolver um sistema web inovador para o rastreamento e planejamento automático dessas coletas, incorporando um algoritmo de agendamento capaz de gerar cronogramas otimizados. A metodologia adotada consistiu na construção de um sistema completo, que incluiu um *backend*, um *frontend*, um simulador de dados e um algoritmo de *scheduling* baseado em programação por restrições (CP-SAT). Para a avaliação do desempenho, definiram-se indicadores relacionados à homogeneidade da distribuição das coletas, ao atraso e ao adiantamento, e realizou-se uma análise experimental detalhada com variação dos pesos da função objetivo para avaliar a qualidade das soluções geradas. Os resultados demonstraram que o modelo foi capaz de produzir cronogramas totalmente aderentes às restrições temporais, eliminando atrasos e adiantamentos em diversas configurações. Evidenciou-se que a principal diferenciação entre as soluções residiu na distribuição das coletas ao longo do tempo. Adicionalmente, o sistema desenvolvido apresentou uma arquitetura modular e robusta, adequada ao problema, permitindo integração eficiente entre as camadas e proporcionando uma boa experiência de uso. Concluiu-se que a abordagem proposta é viável para apoiar significativamente a gestão de coletas em ambientes de engenharia clínica, contribuindo para maior eficiência operacional e conformidade regulatória.
Palavras-chave: Conformidade regulatória; Engenharia clínica; Otimização; Programação por restrições; Sistemas web.
1. Introdução
A qualidade da água utilizada em procedimentos de hemodiálise é fundamental para a segurança e o bem-estar dos pacientes com doença renal crônica. Este tratamento vital exige que a água empregada esteja em conformidade com rigorosos padrões físico-químicos e microbiológicos, conforme estabelecido pela Agência Nacional de Vigilância Sanitária (ANVISA, 2014). A não observância dessas normas pode acarretar sérias complicações à saúde dos pacientes, comprometendo a eficácia do tratamento. No Brasil, a hemodiálise é o principal tratamento terapêutico para 157.357 pessoas em 882 clínicas, segundo o censo de diálise de 2023 (Nerbass et al., 2025). Essa vasta rede de atendimento reforça a criticidade da gestão da qualidade da água, que envolve coletas periódicas e análises laboratoriais complexas, demandando controle preciso de prazos e distribuição eficiente das atividades para garantir a conformidade contínua e a segurança operacional.
A gestão desses processos insere-se no escopo da Engenharia Clínica, disciplina que aplica princípios de engenharia e gestão para otimizar o ciclo de vida de equipamentos e sistemas em ambientes de saúde. Ela é crucial na manutenção de dispositivos médicos e na garantia da conformidade regulatória, aprimorando a qualidade dos serviços e a segurança do paciente, enquanto otimiza recursos (Cunha, 2024; de Souza e Rufino, 2024). No contexto hospitalar, o agendamento de tarefas representa um desafio logístico complexo, com múltiplos recursos e restrições temporais. A complexidade é ampliada nas coletas de água para hemodiálise, que possuem periodicidades variadas (diária, mensal, semestral e anual) e exigem agendamento preciso para evitar atrasos e desconformidade regulatória. A otimização desses cronogramas é essencial para equilibrar a carga de trabalho e assegurar a aderência às normas, minimizando riscos e custos.
Apesar da relevância da gestão de equipamentos em engenharia clínica, soluções comerciais como Neovero, Effort (Globalthings [Effort], 2025) e Arkmeds (Arkmeds, 2025) carecem de módulos específicos para o agendamento automático de análises de água para hemodiálise. Softwares de gestão laboratorial, como o myLims (myLims, 2025), também não permitem a vinculação direta de pontos de coleta a máquinas, limitando sua aplicabilidade. Essa ausência de funcionalidades nativas para a criação automática de agendas de coleta e análise representa uma lacuna que impacta a eficiência e a conformidade. A literatura explora abordagens para agendamento e otimização de recursos finitos, como algoritmos genéticos e aprendizado por reforço (Nucci e Papadia, 2025; Tseremoglou et al., 2023) e programação não-linear inteira mista (Boudjemaa, 2023), demonstrando a viabilidade de soluções automatizadas. Contudo, a programação por restrições (CP-SAT) destaca-se pela capacidade de modelar diretamente regras de negócio complexas e lidar eficientemente com a natureza combinatória de problemas de agendamento, oferecendo maior flexibilidade e facilidade de manutenção (da Col e Teppan, 2022; Hagebring et al., 2016).
A complexidade regulatória e a vasta demanda de pacientes em clínicas de hemodiálise, somadas à ausência de ferramentas especializadas para a gestão automatizada de coletas de água, evidenciam um desafio significativo. Processos manuais ou semi-automatizados para o agendamento são suscetíveis a erros e atrasos, o que compromete a segurança do paciente e eleva custos operacionais. Esta lacuna justifica o desenvolvimento de uma solução inovadora que otimize o planejamento e garanta a conformidade sanitária. Assim, o objetivo deste trabalho é desenvolver um sistema web para o rastreamento e planejamento automático de coletas e análises de água em clínicas de hemodiálise, integrando um algoritmo de agendamento baseado em programação por restrições, capaz de gerar cronogramas otimizados que assegurem a aderência regulatória e promovam a eficiência operacional.
2. Material e Métodos
A metodologia adotada para o desenvolvimento do sistema e a avaliação do algoritmo de agendamento caracterizou-se como uma pesquisa experimental. Quanto aos objetivos, a abordagem foi exploratória, buscando investigar a viabilidade de uma solução automatizada para o agendamento de coletas de água. Em relação à natureza, o estudo foi misto, com aspectos qualitativos na concepção do software e sua execução, e quantitativos na avaliação do desempenho do algoritmo de agendamento. As técnicas e instrumentação para obtenção dos dados incluíram pesquisa bibliográfica e o desenvolvimento de um simulador.
O contexto do estudo envolveu uma rede de clínicas de hemodiálise fictícias, projetadas para simular ambientes reais sem a utilização de dados sensíveis. O período de agendamento considerado foi um horizonte de planejamento de doze meses. A unidade de análise compreendeu as clínicas individualmente, os pontos de coleta de água (tanto da infraestrutura quanto das máquinas de hemodiálise) e as análises laboratoriais associadas a esses pontos, que foram geradas de forma simulada para o propósito da pesquisa.
A população de estudo consistiu em uma rede simulada de oito a doze clínicas de hemodiálise. Essas clínicas fictícias foram categorizadas por porte: grande, médio e pequeno. A distribuição por porte foi definida de forma aleatória, com dez a vinte e cinco por cento das clínicas sendo de grande porte, vinte e cinco a setenta e cinco por cento de médio porte, e o restante de pequeno porte, garantindo uma representação variada de cenários.
Os critérios de seleção para os pontos de coleta de água foram baseados no porte da clínica. Clínicas de grande porte possuíam entre setenta e cem pontos de coleta, com cinco a seis sendo de infraestrutura. Clínicas de médio porte tinham trinta a cinquenta pontos, com quatro a cinco de infraestrutura. As de pequeno porte apresentavam dez a trinta pontos, com três a quatro de infraestrutura. Os pontos restantes foram atribuídos às máquinas de hemodiálise, simulando a proporção usual em ambientes clínicos.
Os instrumentos de coleta de dados foram, na verdade, geradores de dados implementados em um simulador de rede de clínicas. Este simulador foi concebido a partir de uma entrevista com um profissional de engenharia clínica, assegurando que os valores e intervalos para cada parâmetro fossem factíveis e representativos do mercado. O simulador populou as tabelas do banco de dados com informações sobre clínicas, pontos de coleta e análises, incluindo dados aleatórios de análises vencidas e reprovadas para testar a priorização do algoritmo.
As análises de água geradas pelo simulador incluíram parâmetros como pH, condutividade, cloro livre, bactérias heterotróficas, coliformes totais e endotoxinas, conforme a regulamentação da Agência Nacional de Vigilância Sanitária (ANVISA, 2014). As periodicidades de coleta foram definidas como mensais para pH e condutividade, semestrais para cloro livre, bactérias heterotróficas e coliformes totais, e anuais para endotoxinas, refletindo as exigências normativas.
A execução da pesquisa iniciou-se com uma revisão bibliográfica sobre algoritmos de agendamento (scheduling) aplicados a problemas de manutenção programada e escalonamento de recursos finitos. Em seguida, realizou-se o projeto e a implementação do banco de dados, seguido pela implementação dos serviços de backend, frontend e o cadastro dos componentes necessários. Por fim, o algoritmo de agendamento automático foi implementado, utilizando os dados gerados pelo simulador.
O sistema foi desenvolvido com uma arquitetura em camadas, utilizando PostgreSQL como banco de dados relacional, Python para o backend (com o framework Django e Django-Ninja para a API) e React.js para o frontend. O algoritmo de agendamento foi implementado como um módulo independente dentro da camada de utilidades do backend, utilizando o solver CP-SAT da biblioteca OR-Tools, que permitiu modelar diretamente as regras de negócio e lidar com a natureza combinatória do problema de agendamento.
Para avaliar o desempenho do algoritmo de agendamento, realizou-se uma variação sistemática dos pesos da função objetivo. Diferentes combinações de pesos para os critérios de atraso, adiantamento e homogeneidade da distribuição foram testadas em execuções em lote (batch). Cada execução gerou um relatório com indicadores de desempenho, e os resultados foram persistidos no banco de dados para análise posterior, permitindo a comparação entre as configurações.
O tratamento e análise dos dados envolveram a modelagem do problema de agendamento por meio de programação por restrições. Variáveis binárias foram utilizadas para indicar a alocação de cada tarefa em um mês específico. Restrições foram aplicadas para garantir que cada tarefa ocorresse uma única vez, que análises dentro do prazo fossem alocadas em uma janela próxima à data esperada, e que análises atrasadas ou reprovadas fossem tratadas como urgentes, com penalizações para incentivar sua execução precoce.
Para parâmetros semestrais, uma restrição adicional garantiu um intervalo mínimo de três meses e máximo de seis meses entre as duas coletas. A capacidade mensal de tarefas foi controlada por um limite máximo, calculado como a razão entre o total de tarefas anuais da clínica e seis, visando distribuir as análises de forma mais homogênea ao longo do tempo e evitar concentrações excessivas.
A função objetivo do algoritmo combinou três fatores principais: atraso, antecipação e distribuição. Penalizou-se o atraso para análises urgentes, incentivando sua execução o mais cedo possível. Para análises dentro do prazo, penalizou-se a antecipação excessiva. Adicionalmente, aplicou-se uma penalização quadrática sobre a quantidade de tarefas em cada mês, com o objetivo de promover uma distribuição mais uniforme da carga de trabalho.
Três indicadores principais foram definidos para a análise dos resultados: o coeficiente de variação (CV) da distribuição mensal de tarefas, o número de análises atrasadas após o agendamento e o adiantamento médio exclusivo das coletas. O CV mediu a homogeneidade da distribuição, o atraso refletiu a capacidade de priorizar tarefas críticas, e o adiantamento quantificou a antecipação em relação à data prevista.
Para permitir a comparação direta entre as diferentes execuções do algoritmo, os indicadores foram normalizados utilizando a técnica min-max scaling. Após a normalização, um score total foi calculado como a soma dos valores normalizados do coeficiente de variação, atraso e adiantamento. Esse score final permitiu ordenar as configurações de pesos e identificar aquelas que apresentaram o melhor equilíbrio entre os critérios de otimização.
Em relação aos aspectos éticos, a pesquisa não utilizou dados de pacientes ou quaisquer informações que pudessem identificar pessoas ou instituições. O estudo enquadrou-se no parágrafo único, inciso VIII, da Resolução 510/2016, que dispensa a apreciação por Comitê de Ética em Pesquisa para trabalhos que utilizam informações de acesso público ou que não identificam os participantes.
As limitações metodológicas do trabalho incluíram a dependência de dados simulados, o que pode restringir a generalização dos resultados para cenários reais mais complexos ou com dinâmicas operacionais distintas. A calibração empírica dos pesos da função objetivo também pode impactar a aplicabilidade. Além disso, simplificações como a modelagem mensal do horizonte de planejamento e a ausência de restrições mais detalhadas de capacidade operacional podem influenciar a execução do cronograma gerado.
3. Resultados e Discussão
A elaboração do sistema proposto para a gestão de coletas e análises de água em clínicas de hemodiálise foi estruturada em quatro etapas principais, cada uma contribuindo para a robustez e funcionalidade da solução. Estas etapas incluíram o desenvolvimento do backend, a criação de um simulador de rede de clínicas, a implementação do algoritmo de agendamento e a construção do frontend. A integração harmoniosa dessas componentes permitiu a validação da viabilidade de uma solução automatizada e otimizada para um problema logístico complexo, conforme as exigências regulatórias da Agência Nacional de Vigilância Sanitária (ANVISA, 2014).
O backend, como infraestrutura básica do sistema, concentrou a maior parte da lógica de negócio, a persistência de dados e a exposição das APIs para interação. A escolha de uma arquitetura em camadas (layered-based architecture) foi fundamental para o projeto, oferecendo simplicidade, organização e facilidade de manutenção, características essenciais para sistemas que podem necessitar de evolução contínua. Esta abordagem contrasta com arquiteturas baseadas em funcionalidades (feature-based architecture), que, embora adequadas para sistemas de grande porte e alta complexidade, poderiam introduzir complexidade desnecessária para o escopo inicial deste projeto (Farzin, 2024). A adoção de uma arquitetura em camadas promove um baixo acoplamento entre os módulos, o que é crucial para a manutenibilidade e escalabilidade do sistema, permitindo que alterações em uma camada não afetem drasticamente as outras.
Fonte: Resultados originais da pesquisa
Figura 1. representação da arquitetura do sistema
Conforme apresentado na Figura 1, a estrutura do backend foi cuidadosamente delineada para segregar responsabilidades. As camadas principais incluíram a Camada de API, responsável pela exposição dos *endpoints* e recepção de requisições externas; a Camada de Serviços, que implementa as regras de negócio e orquestra as operações; a Camada de Persistência (Models/ORM), encarregada do mapeamento objeto-relacional e comunicação com o banco de dados; a Camada de Validação (Schemas), que garante a integridade dos dados trafegados na API; e a Camada de Utilidades (Utils), onde residem algoritmos auxiliares, incluindo o algoritmo de *scheduling*. Essa separação clara de preocupações é um pilar da engenharia de software moderna, facilitando não apenas o desenvolvimento paralelo, mas também a identificação e correção de falhas, bem como a introdução de novas funcionalidades sem comprometer a estabilidade do sistema existente. A modularidade intrínseca a essa arquitetura, conforme defendido por diversos autores (e.g., Sommerville, 2011), é um diferencial para a longevidade e adaptabilidade da solução.
As ferramentas selecionadas para o backend refletem uma escolha estratégica para garantir robustez e eficiência. O PostgreSQL foi escolhido como banco de dados relacional devido à sua confiabilidade, suporte a relacionamentos complexos e capacidade de gerenciar grandes volumes de dados de forma eficiente (Douglas & Douglas, 2003). Essas características são vitais para um sistema que lida com informações críticas de saúde, onde a integridade e a disponibilidade dos dados são primordiais. A linguagem Python, com o framework Django e Django-Ninja para a API, foi empregada no backend. Python é reconhecida por sua vasta biblioteca de algoritmos de inteligência artificial e aprendizado de máquina, o que a torna ideal para a implementação de algoritmos complexos como o de agendamento (Hill et al., 2024). Django, por sua vez, oferece uma estrutura completa para desenvolvimento backend, incluindo um ORM que simplifica a interação com o banco de dados e promove um código mais estruturado e de fácil manutenção. A integração com Django-Ninja permite a criação de APIs de forma simples, bem documentada e com validação de dados robusta via Pydantic. Pydantic, em particular, foi crucial para validar e tipar os dados trafegados nas APIs, minimizando erros e aumentando a confiabilidade do sistema ao garantir que os dados estejam no formato correto antes do processamento.
Fonte: Resultados originais da pesquisa
Figura 2. Visualização do banco de dados preliminar
A visualização do banco de dados preliminar, conforme a Figura 2, ilustra a estrutura das cinco entidades principais: clínicas, pontos, análises, parâmetros e simulações. Cada entidade foi modelada para refletir os requisitos do domínio de negócio, permitindo um armazenamento organizado e eficiente das informações. As clínicas representam as unidades de tratamento, os pontos de coleta são os locais físicos onde as amostras de água são retiradas (infraestrutura ou máquinas de hemodiálise), as análises registram os resultados das coletas, os parâmetros definem as diretrizes e limites aceitáveis, e as simulações armazenam os resultados das execuções do algoritmo. É importante notar que a tabela de simulações foi concebida com propósitos acadêmicos, facilitando a coleta e visualização de dados para avaliação do algoritmo. Em um produto final, essa tabela poderia ser abstraída, com o algoritmo configurado com base nas métricas ótimas identificadas. A clareza na modelagem do banco de dados é um fator crítico para o desempenho do sistema, pois uma estrutura bem definida otimiza as consultas e a integridade referencial, aspectos que impactam diretamente a velocidade e a confiabilidade das operações do sistema.
A etapa de geração de dados, realizada pelo simulador de rede de clínicas, foi crucial para criar um ambiente controlado e realista para a validação do algoritmo. A utilização de dados simulados, em vez de dados reais, permitiu contornar questões éticas relacionadas à privacidade de pacientes e instituições, conforme a Resolução 510/2016, que dispensa a apreciação por Comitê de Ética em Pesquisa para trabalhos que não identificam participantes. Além disso, a simulação oferece a vantagem de gerar cenários variados e reproduzíveis, essenciais para testar o algoritmo sob diferentes condições e avaliar sua robustez. A parametrização do simulador foi embasada em entrevistas com profissionais de engenharia clínica, garantindo que os valores e intervalos para cada parâmetro fossem factíveis e representativos do mercado. Essa abordagem assegura que os resultados obtidos sejam aplicáveis a cenários reais, apesar da natureza simulada dos dados.
O simulador gerou uma rede fictícia de 8 a 12 clínicas de hemodiálise, categorizadas por porte (grande, médio e pequeno), com uma distribuição aleatória para representar a diversidade de cenários operacionais. Clínicas de grande porte possuíam entre 70 e 100 pontos de coleta, médio porte entre 30 e 50, e pequeno porte entre 10 e 30, com uma proporção definida de pontos de infraestrutura e máquinas de hemodiálise. Essa variação no número de pontos e no porte das clínicas é fundamental para testar a adaptabilidade do algoritmo a diferentes escalas de demanda e complexidade. A distinção entre pontos de infraestrutura e máquinas, embora não afete diretamente a análise da água, é relevante para o gerenciamento de ativos, pois máquinas podem ser transferidas, enquanto pontos de infraestrutura são fixos. Os pontos de coleta gerados foram associados a análises de água, incluindo parâmetros como pH, condutividade, cloro livre, bactérias heterotróficas, coliformes totais e endotoxinas, com periodicidades definidas pela ANVISA (2014), como mensais, semestrais e anuais. A inclusão de análises vencidas e reprovadas (10-20% em atraso, 1-5% reprovadas) foi um aspecto crítico para testar a capacidade do algoritmo de priorizar tarefas urgentes, um requisito fundamental em um ambiente regulado como o da hemodiálise.
O algoritmo de *scheduling* automático foi o cerne da solução, projetado para definir quando cada análise de água deve ser realizada ao longo de um horizonte de planejamento de 12 meses. A modelagem do problema foi realizada utilizando programação por restrições (CP – Constraint Programming) com o solver CP-SAT da biblioteca OR-Tools (Google [Ortools], 2025). A escolha da programação por restrições foi motivada pela sua capacidade de representar diretamente as regras de negócio e lidar eficientemente com a natureza combinatória do problema, diferentemente da Programação Linear Inteira Mista (MILP) que exige a linearização das relações (da Col & Teppan, 2022). Essa flexibilidade na modelagem é crucial para incorporar restrições complexas e garantir a manutenção do modelo. Em comparação com abordagens como MILP ou RDL (Reinforcement Learning), o CP-SAT demonstrou ser particularmente eficaz em problemas com forte presença de restrições lógicas e instâncias de menor escala, onde o desempenho computacional pode ser superior (Hagebring et al., 2016; Tseremoglou et al., 2023).
Para cada análise, o algoritmo gera uma ou duas tarefas de agendamento, dependendo da periodicidade do parâmetro. Variáveis binárias (x_i,m) foram utilizadas para indicar a alocação de cada tarefa em um mês específico, garantindo que cada tarefa ocorra uma única vez, conforme a Equação (1) apresentada na metodologia. Para análises dentro do prazo, a alocação foi restrita a uma janela próxima da data esperada, permitindo uma pequena antecipação. No entanto, análises atrasadas ou reprovadas foram tratadas como urgentes, com penalizações para incentivar sua execução precoce, sem tornar o problema inviável. Para parâmetros semestrais, uma restrição adicional garantiu um intervalo mínimo de três meses e máximo de seis meses entre as duas coletas, proporcionando flexibilidade e conformidade regulatória. O controle da capacidade mensal de tarefas, calculado como a razão entre o total de tarefas anuais da clínica e seis (C_m = T_r / 6), foi implementado para evitar a concentração excessiva de análises em determinados meses, promovendo uma distribuição mais homogênea da carga de trabalho. Essa restrição é vital para a operacionalidade das clínicas, pois picos de demanda podem sobrecarregar os recursos humanos e logísticos.
A função objetivo do algoritmo combinou três fatores principais: atraso, antecipação e distribuição, com pesos ajustáveis (w_d, w_e, w_s) para cada critério, conforme a Equação (4) da metodologia. Penalizou-se o atraso para análises urgentes, incentivando sua execução o mais cedo possível, um aspecto crítico para a conformidade regulatória e a segurança do paciente. Para análises dentro do prazo, penalizou-se a antecipação excessiva, evitando custos desnecessários ou o esgotamento prematuro do prazo de validade da análise. Adicionalmente, aplicou-se uma penalização quadrática sobre a quantidade de tarefas em cada mês, com o objetivo de promover uma distribuição mais uniforme da carga de trabalho, o que otimiza a utilização dos recursos da clínica. Essa abordagem multifatorial permite que o algoritmo encontre um equilíbrio entre a urgência das tarefas, a eficiência operacional e a conformidade regulatória, gerando cronogramas que são tanto viáveis quanto otimizados.
Para avaliar o desempenho do algoritmo, foram definidos três indicadores principais: o coeficiente de variação (CV) da distribuição mensal de tarefas, o número de análises atrasadas após o agendamento e o adiantamento médio exclusivo das coletas. O CV mede a homogeneidade da distribuição, com valores mais baixos indicando uma carga de trabalho mais uniforme. O número de análises atrasadas reflete a capacidade do algoritmo de priorizar tarefas críticas e garantir a conformidade. O adiantamento médio quantifica a antecipação em relação à data prevista, sendo um indicador de eficiência e planejamento proativo. Para permitir a comparação direta entre as diferentes execuções do algoritmo com variações nos pesos da função objetivo, os indicadores foram normalizados utilizando a técnica min-max scaling, conforme a Equação (7) da metodologia. Essa normalização é crucial, pois os indicadores possuem escalas e unidades distintas, e a sua unificação em uma escala comum permite a criação de um score total, que é a soma dos valores normalizados do CV, atraso e adiantamento. Esse score final permitiu ordenar as configurações de pesos e identificar aquelas que apresentaram o melhor equilíbrio entre os critérios de otimização.
Tabela 1. Menores escores após simulações
|
Whomog |
Watraso |
Wadiantamento |
CV_norm |
At_norm |
Ad_norm |
Score |
|
10 |
500 |
1 |
0,6607 |
0 |
0 |
0,6607 |
|
10 |
250 |
1 |
0,6450 |
0 |
0,0498 |
0,6949 |
|
25 |
500 |
10 |
0,6061 |
0,0435 |
0,0554 |
0,7050 |
|
25 |
500 |
1 |
0,6006 |
0,0435 |
0,0994 |
0,7435 |
|
1 |
500 |
1 |
0,6495 |
0 |
0,1009 |
0,7504 |
Fonte: Resultados originais da pesquisa
A Tabela 1 apresenta os cinco menores escores obtidos após as simulações, revelando as configurações de pesos (W_homog, W_atraso, W_adiantamento) que resultaram nos melhores desempenhos do algoritmo. Observa-se que, nas duas primeiras configurações com os menores escores (0,6607 e 0,6949), o atraso normalizado (At_norm) e o adiantamento normalizado (Ad_norm) são zero ou muito baixos. Isso indica que o algoritmo foi altamente eficaz em eliminar atrasos e minimizar adiantamentos, o que é um resultado de grande importância prática. A priorização do critério de atraso é fundamental, pois atrasos em coletas de água para hemodiálise implicam em desconformidade com a norma vigente (ANVISA, 2014), podendo acarretar sanções e riscos à segurança do paciente. A configuração com W_atraso = 500 e W_adiantamento = 1, com W_homog = 10, resultou no menor score total (0,6607), com zero atraso e zero adiantamento, e um CV normalizado de 0,6607. Isso sugere que, ao penalizar fortemente o atraso e o adiantamento, o algoritmo consegue gerar cronogramas que cumprem os prazos, e a principal diferenciação entre as soluções passa a ser a homogeneidade da distribuição das coletas.
A análise da Tabela 1 também revela que, mesmo em configurações onde o W_atraso é menor (e.g., W_atraso = 250), o At_norm permanece zero, reforçando a robustez do algoritmo em evitar atrasos críticos. No entanto, o Ad_norm começa a aparecer em valores maiores quando o W_adiantamento é menor, como na configuração com W_adiantamento = 1, que apresenta Ad_norm de 0,1009. Isso demonstra o *trade-off* entre os critérios: uma menor penalização para o adiantamento pode levar a um maior número de coletas antecipadas, o que, embora não seja uma violação regulatória, pode ter implicações financeiras e operacionais para a clínica. A homogeneidade da distribuição (CV_norm) varia entre 0,6006 e 0,6607 nas melhores soluções, indicando que, mesmo com a priorização de atrasos e adiantamentos, o algoritmo ainda busca otimizar a distribuição da carga de trabalho ao longo do tempo. A capacidade de equilibrar esses múltiplos objetivos é uma das principais contribuições do algoritmo, permitindo que os gestores ajustem os pesos de acordo com as prioridades específicas de cada clínica ou rede.
Fonte: Resultados originais da pesquisa
Figura 3. Fronteira de Pareto em 3 dimensões
A Figura 3, que representa a fronteira de Pareto em 3 dimensões (CV Normalizado, Adiantamento Normalizado e Atraso Normalizado), oferece uma visão abrangente dos *trade-offs* entre os objetivos de otimização. A fronteira de Pareto é um conceito fundamental em otimização multiobjetivo, onde uma solução é considerada Pareto-ótima se não é possível melhorar um objetivo sem piorar outro. No contexto deste estudo, os pontos na fronteira representam as melhores configurações de pesos que o algoritmo conseguiu encontrar, demonstrando o equilíbrio entre a homogeneidade da distribuição, o atraso e o adiantamento. A presença de soluções com atraso e adiantamento nulos na fronteira de Pareto é um resultado significativo, pois indica que o modelo é capaz de gerar cronogramas totalmente aderentes aos prazos regulatórios. Nesses casos, a diferenciação entre as melhores soluções ocorre principalmente em função da dispersão (CV), tornando a homogeneidade o único critério não zerado. Isso valida a capacidade do algoritmo de cumprir as restrições temporais mais críticas, enquanto ainda oferece flexibilidade para otimizar a distribuição da carga de trabalho.
Ainda na Figura 3, a observação da fronteira de Pareto revela a existência de *trade-offs* nas demais soluções, indicando que, quando a conformidade temporal (ausência de atraso e adiantamento) não é plenamente atingida, há compensações entre os critérios. Por exemplo, uma solução pode ter um CV normalizado mais baixo (melhor homogeneidade) à custa de um pequeno adiantamento, ou vice-versa. Essa visualização é extremamente útil para a tomada de decisão, permitindo que os profissionais de engenharia clínica compreendam as implicações de diferentes configurações de pesos e escolham a que melhor se alinha com suas prioridades operacionais e financeiras. A capacidade do algoritmo de gerar um conjunto de soluções Pareto-ótimas, em vez de uma única solução, oferece uma ferramenta poderosa para a gestão estratégica, permitindo a exploração de diferentes cenários e a adaptação do planejamento às necessidades dinâmicas do ambiente hospitalar. Isso reforça a aplicabilidade prática da programação por restrições em problemas de agendamento complexos, onde múltiplos objetivos precisam ser balanceados (Nucci & Papadia, 2025).
Apesar dos resultados satisfatórios, o modelo apresenta limitações importantes que devem ser consideradas. A dependência de dados simulados, embora eticamente justificada e controlada, pode restringir a generalização dos resultados para cenários reais mais complexos ou com dinâmicas operacionais distintas. A calibração empírica dos pesos da função objetivo, embora sistemática, pode impactar a aplicabilidade em diferentes contextos. Além disso, simplificações como a modelagem mensal do horizonte de planejamento e a ausência de restrições mais detalhadas de capacidade operacional (e.g., disponibilidade de técnicos, tempo de deslocamento) podem influenciar a execução do cronograma gerado. Futuras pesquisas poderiam explorar a incorporação de dados reais, a utilização de técnicas de aprendizado de máquina para calibração de pesos e a inclusão de restrições operacionais mais granulares para aumentar a precisão e a aplicabilidade do modelo.
O frontend do sistema é a camada responsável pela interação com o usuário, visualização dos dados e acionamento das funcionalidades disponibilizadas pelo backend. Sua implementação foi estruturada para garantir organização, reutilização de componentes e baixo acoplamento com a camada de serviços. A escolha de uma arquitetura baseada em componentes, inspirada em princípios de organização por funcionalidades, foi adotada para o frontend. Diferente do backend, onde a arquitetura em camadas foi mais adequada devido à necessidade de acesso a diversos componentes em múltiplos contextos, a modularização por páginas no frontend torna a escolha por uma arquitetura baseada em funcionalidades mais viável. A interação entre as páginas se dá por uma página *hub* que concentra o acesso a todas as outras funcionalidades, resultando em um acoplamento quase nulo entre as diversas *features*. Essa abordagem promove a reutilização de código e facilita a manutenção, permitindo que diferentes partes do sistema compartilhem elementos comuns sem duplicação.
Fonte: Resultados originais da pesquisa
Figura 4. a) tela de clínicas com filtro, mostrando todos os pontos de cada clínica. b) detalhamento de todas as análises de um ponto qualquer. c) Calendário de agendamentos (nenhum atraso). d) Calendário de agendamentos após movimentação manual de coleta (um atraso em vermelho e um adiantamento em verde escuro).
Conforme ilustrado na Figura 4, o frontend oferece uma interface intuitiva e funcional. A tela de clínicas (Figura 4a) permite a visualização e filtragem dos pontos de coleta, enquanto o detalhamento das análises de um ponto específico (Figura 4b) oferece informações cruciais para o acompanhamento. O calendário de agendamentos (Figura 4c e 8d) é uma funcionalidade central, permitindo a visualização do cronograma mensal e a movimentação manual de coletas, com indicadores visuais (vermelho para atraso, verde para adiantamento) que alertam o usuário sobre desvios. A arquitetura modular e a separação entre componentes, funcionalidades e serviços contribuem para um sistema de fácil manutenção e evolução. O uso de tecnologias modernas e amplamente adotadas, como React, TypeScript, Vite e Tailwind CSS, garante maior produtividade no desenvolvimento e uma melhor experiência para o usuário final (Vyas, 2022). React, como biblioteca principal, oferece uma abordagem baseada em componentes que facilita a construção de interfaces complexas e reutilizáveis. TypeScript adiciona tipagem estática, reduzindo erros e aumentando a confiabilidade do código. Vite, como ferramenta de *build*, proporciona rapidez no ambiente de desenvolvimento. Tailwind CSS, por sua vez, facilita a construção de interfaces responsivas e padronizadas, reduzindo a necessidade de arquivos CSS complexos.
A integração com o backend é realizada por meio de chamadas HTTP centralizadas na camada de serviços do frontend, garantindo que o frontend consuma os *endpoints* de forma organizada e previsível. Essa abordagem facilita alterações futuras na API sem impacto direto nos componentes visuais, promovendo um baixo acoplamento entre as camadas. A estrutura do fluxo das páginas, organizada em um formato de *dashboard* (Figura 7 na metodologia), serve como um *hub* de onde todas as outras funcionalidades são acessadas. Cada cartão no *dashboard* leva a uma página diferente e possui uma cor associada, criando uma identidade visual que facilita a navegação e promove a usabilidade. Essa preocupação com a experiência do usuário (UX) é fundamental em sistemas de gestão, pois uma interface intuitiva e eficiente reduz a curva de aprendizado e aumenta a aceitação da ferramenta pelos profissionais de engenharia clínica. A capacidade de visualizar o histórico de análises, gerenciar pontos de coleta e acompanhar o calendário de agendamentos de forma clara e interativa são resultados diretos dessa abordagem de design, contribuindo para a eficiência operacional e a conformidade regulatória nas clínicas de hemodiálise.
4. Conclusão
Conclui-se que o objetivo foi atingido, com o desenvolvimento de um sistema web para o rastreamento e planejamento automático de coletas e análises de água em clínicas de hemodiálise. O sistema integrou com sucesso um algoritmo de agendamento baseado em programação por restrições, capaz de gerar cronogramas otimizados que asseguram a aderência regulatória e promovem a eficiência operacional. A abordagem adotada demonstrou-se eficaz na representação das regras do problema e na geração de cronogramas consistentes com as exigências sanitárias, priorizando a eliminação de atrasos e minimizando adiantamentos. A arquitetura modular do sistema, com backend, frontend e simulador de dados, provou ser robusta e adequada ao escopo, facilitando a manutenibilidade e a experiência do usuário.
Apesar dos resultados satisfatórios, o modelo apresenta limitações importantes. A dependência de dados simulados pode restringir a generalização para cenários reais mais complexos. A calibração empírica dos pesos da função objetivo, embora sistemática, pode impactar a aplicabilidade em diferentes contextos. Além disso, simplificações como a modelagem mensal do horizonte de planejamento e a ausência de restrições mais detalhadas de capacidade operacional, como disponibilidade de técnicos ou tempo de deslocamento, podem influenciar a execução do cronograma. Para estudos futuros, sugere-se a incorporação de dados reais, a utilização de técnicas de aprendizado de máquina para calibração de pesos, a inclusão de restrições operacionais mais granulares e a expansão das funcionalidades para análise automática de laudos e importação de dados via CSV, visando aumentar a precisão e a aplicabilidade do modelo em ambientes reais.
Referências Bibliográficas
Agência Nacional de Vigilância Sanitária. 2014. Resolução da diretoria colegiada – RDC N° 11. Diário Oficial da União, Brasília, 13 de março de 2014. p 40-42.
Arkmeds. 2022. Arkmeds user guide. Disponível em <https://arkmeds.com/en/>. Acesso em 28 de outubro de 2025.
Boudjemaa, Y. 2023. Predictive Maintenance Scheduling for Critical Medical Equipment Fleets to Minimize Downtime and Lifecycle Costs. Studies in Knowledge Discovery, Intelligent Systems, and Distributed Analytics 13(11): 1-10.
Cunha, B.S.A.D. 2024. Desenvolvimento de um Projeto Lean no Hospital Lusíadas Lisboa – Serviço de Manutenção e Engenharia Clínica: Estudo de Caso. Dissertação de Mestrado em Engenharia Biomédica. Escola Superior de Saúde de Lisboa, Lisboa, Portugal.
da Col, G.; Erich, C. 2022. Industrial-size job shop scheduling with constraint programming. OperationsResearchPerspectives 9(12): 90-95.
Douglas K.; Douglas S. 2003. PostgreSQL – A comprehensive guide to building, programming and administering PostgreSQL databases. 2ª ed. Sams Publishing, Indianapolis, Indiana, Estados Unidos.
Farzin, N. 2024. Comparing Layered-Based and Feature-Based Clean Architecture in Flutter. Disponível em: <https://nimafarzin-pr.medium.com/comparing-layered-based-and-feature-based-clean-architecture-in-flutter-221b4bb3bf63>. Acesso em: 8 de fevereiro de 2025.
Globalthings. 2021. Effort User Guide. Disponível em: <https://globalthings.net/effort/>. Acesso em 28 de outubro de 2025.
Google [Ortools]. 2025. Google OR-Tools Reference. <https://developers.google.com/optimization/reference/python/sat/python/cp_model>. Acesso em: 6 fevereiro 2025.
Hagebring, F.; Wigstrom, O.; Lennartson, B.; Ware, S.I.; Su, R. 2016. Comparing MILP, CP, and A* for for Multiple Stacker Crane Scheduling. Proceedings of the 13th International Workshop on Discrete Event (WODES), Xi’an, China, pp. 63-70
Hill, C.; Du, L.; Johnson M. 2024. Comparing programming languages for data analytics: Accuracy of estimation in Python and R. WIREs Data Mining and Knowledge Discovery 14(3): e1531.
MyLims. 2023. MyLims User Guide. Disponível em: <https://lab.confience.io/pt/mylims/>. Acesso em 28 de outubro de 2025.
Nerbass, F.B.; Lima, H.do N.; Strogoff-de-Matos, J.P.; Zawadzki, B.; Moura Neto, J.A.; Lugon, J.R.; Sesso, R. Censo Brasileiro de Diálise 2023. Brazilian Journal of Nephrology 47(1): 77-86.
Nucci, F.; Papadia, G.D. 2025. Hybrid Genetic Algorithm and Deep Reinforcement Learning Framework for IoT-Enabled Healthcare Equipment Maintenance Scheduling. Electronics 14(21): 4160.
Sommerville, 2011 [Referência completa não encontrada no documento original]
Souza, J.de N.; Rufino, S. 2024. Metodologia lean na otimização do processo de manutenção em engenharia clínica. Revista Observatorio de La Economia Latinoamericana 22(11): e7964.
Tseremoglou, I.; van Kessel, P.J.; Santos, B.F. 2023. A Comparative Study of Optimization Models for Condition-Based Maintenance Scheduling of an Aircraft Fleet. MDPI Aerospace 10(2): 120.
Vyas, R. 2022. Comparative Analysis on Front-End Frameworks for Web Applications. International Journal for Research in Applied Science & Enginieering Technology 10(7): 298-307.
Artigo oriundo de Trabalho de Conclusão de Curso da Especialização em Engenharia de Software do MBA USP/Esalq
Para saber mais sobre o curso, clique aqui e acesse a plataforma MBX Academy