Pessoal... finalizei a questão da "logica de cancelamento", mas para mim a lógica não ficou clara...
Se cancelar a consulta, é somente adicionar uma coluna "motivo_cancelamento", e dentro dela o respectivo motivo na tabela não é uma tratativa um pouco vazia? Tipo, para mim faltou algo. Algo como adicionar uma coluna de status da consulta do tipo boolean e definir se essa consulta está ativa ou não... será que isso é redundante? estou com uma interrogação na cabeça referente a isso... e na maioria dos casos de desenvolvimento em programação... é como se pra mim sempre faltasse algo mais "explícito" para definir uma implementação de classe de correção / melhoria em algum projeto.
Por favor, se tiverem sugestões sobre isso, ou um simples comentário que possa fazer eu compreender essa lógica por uma ótica que talvez não tenha observado, agradeço!!