Inquiridor
Pacientes Faltosos

Pergunta
-
Boa tarde,
Estou com um problema em criar um report.
Ex. Um paciente é atendido na unidade, obrigatoriamente ele voltará em 90 dias.
Preciso saber quem teve esse atendimento 90 dias atrás e não veio hoje.
A relação desses pacientes faltosos.
De um jeito que eu coloque a data atual, ele compare com a mesma data 90 dias atrás. (meses)
Todas as Respostas
-
-
Allan,
Como você controla as suas consultas?
Através da data de agendamento do paciente você poderia fazer este tipo de cálculo.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
-
Olá Allan,
Como a Priscila falou, precisamos saber pelo menos a estrutura da tua tabela para podermos ajudar.
Eu poderia imaginar uma tabela "consultas" que tenha o paciente e a data que ele esteve na unidade e então pegar todos os pacientes que não estiveram lá há mais de 90 dias, mas não sei se isso pode ajudar, uma vez que devem existir pacientes que tiveram o tratamento encerrado e que não devem mais voltar realmente.
Então, se puder, no passe mais informações da tua estrutura e do que você já tentou fazer para podermos ajudar com maior acertividade.
[]'s!
- Sugerido como Resposta Allan Werneck quarta-feira, 20 de fevereiro de 2013 18:10
-
Allan,
Vamos supor que você tenha uma estrutura simples de tabelas, podemos aplicar o script abaixo.
--CRIO UMA ESTRUTURA DE TABELA SIMPLES, COM OS PACIENTES E AS DATAS DE ATENDIMENTO DECLARE @TBL_ATENDIMENTO TABLE( ID_PACIENTE INT, DATA_ATENDIMENTO DATETIME ) INSERT INTO @TBL_ATENDIMENTO (ID_PACIENTE,DATA_ATENDIMENTO) VALUES (1,'2012-01-10') INSERT INTO @TBL_ATENDIMENTO (ID_PACIENTE,DATA_ATENDIMENTO) VALUES (2,'2012-11-22') INSERT INTO @TBL_ATENDIMENTO (ID_PACIENTE,DATA_ATENDIMENTO) VALUES (3,'2012-11-22') INSERT INTO @TBL_ATENDIMENTO (ID_PACIENTE,DATA_ATENDIMENTO) VALUES (4,'2012-11-22') INSERT INTO @TBL_ATENDIMENTO (ID_PACIENTE,DATA_ATENDIMENTO) VALUES (5,'2012-11-22') INSERT INTO @TBL_ATENDIMENTO (ID_PACIENTE,DATA_ATENDIMENTO) VALUES (5,'2013-02-20') --VERIFICO OS PACIENTES QUE TEVE ATENDIMENTO EM 90 DIAS ATRÁS E NÃO FORAM ATENDIDOS HOJE SELECT * FROM @TBL_ATENDIMENTO A WHERE DATA_ATENDIMENTO > DATEADD(DAY,-91,GETDATE()) AND DATA_ATENDIMENTO < DATEADD(DAY,-90,GETDATE()) AND NOT EXISTS(SELECT 1 FROM @TBL_ATENDIMENTO B --Esse not exists é para verificar o atendimento na data de hoje. WHERE A.ID_PACIENTE = B.ID_PACIENTE AND DATA_ATENDIMENTO > DATEADD(DAY,-1,GETDATE()) AND DATA_ATENDIMENTO < DATEADD(DAY,1,GETDATE()))
Para entender melhor sobre a função DATEADD leia:
http://msdn.microsoft.com/en-us/library/ms186819.aspx
http://www.mssqltips.com/sqlservertip/2509/add-and-subtract-dates-using-dateadd-in-sql-server/
http://www.devmedia.com.br/funcoes-de-data-no-sql-server/1946
- Sugerido como Resposta Priscila Mayumi Sato quarta-feira, 20 de fevereiro de 2013 13:56
-
Logan, na verdade meu problema era esse já que existem pacientes que realmente não voltariam, mas consegui resolver.
Eles não baseiam o ultimo atendimento em agendamento já que o paciente deve voltar obrigatoriamente em 90 dias, então no período especificado como inicial fiz um not exists especificando que me traria apenas os pacientes que tiveram 'os' gerada no período (90 dias atrás) e não tiveram os geradas no período (atual buscado).
Obrigado pela ajuda
- Sugerido como Resposta Marcus Vinícius BittencourtMVP segunda-feira, 25 de fevereiro de 2013 18:52
- Não Sugerido como Resposta Marcus Vinícius BittencourtMVP segunda-feira, 25 de fevereiro de 2013 18:52