none
Pacientes Faltosos RRS feed

  • 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)

    segunda-feira, 18 de fevereiro de 2013 19:46

Todas as Respostas

  • Allan, boa tarde.

    Dê uma pesquisada sobre as funções de datas no SQL server. Especialmente o DATEADD.

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    segunda-feira, 18 de fevereiro de 2013 20:26
  • Depende, qual a estrutura da sua tabela?

    VOcê possui um campo para datas das consultas?


    Twitter: @MayogaX
    Blog: Dev Blog

    terça-feira, 19 de fevereiro de 2013 13:10
  • 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]

    terça-feira, 19 de fevereiro de 2013 16:25
  • 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
    terça-feira, 19 de fevereiro de 2013 18:04
  • 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

    Abraços

    quarta-feira, 20 de fevereiro de 2013 13:39
  • 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

    quarta-feira, 20 de fevereiro de 2013 18:00