Skip to main content
Announcements
See what Drew Clarke has to say about the Qlik Talend Cloud launch! READ THE BLOG
cancel
Showing results for 
Search instead for 
Did you mean: 
carolinne88
Creator
Creator

Sinalizar paciente internado em série histórica

Pessoal, bom dia! 
Possuo uma base com a lista de pacientes, a data de internação, a data de alta e o status (INTERNADO, ALTA). Essa base é sempre atualizada (sobrescreve a anterior) e, por este motivo, perco o total de internados diário, fico apenas com o total do último dia.
Preciso de uma ajuda para construir uma série histórica que contabilize o paciente entre as datas de internação e alta.

Exemplo: João foi internado em 27/02/21 e recebeu alta dia 02/03/21. Preciso que a série histórica conte João em 27/02, 28/02 e 01/03.

1 Solution

Accepted Solutions
joaopaulo_delco
Partner - Creator III
Partner - Creator III

@carolinne88 , Acho que o script abaixo resolve sua situação.

[LISTA_DATAS]: // lista das datas que você quer gerar o arquivo
LOAD
    A AS DataBase
FROM [lib://Projetos/Temp/Aux Community Pacientes.xlsx]
(ooxml, no labels, table is [Datas Base]);



For Each b in FieldValueList('DataBase')  
    vDataBase = '$(b)';
    vData_Arquivo = Date('$(vDataBase)','YYYY-MM-DD'); 
     
    [HISTORICO_INTERNADOS]: // sua tabela de internados    
    LOAD
        Paciente,
        Data_Internacao,
        Data_Alta
    FROM [lib://Projetos/Temp/Aux Community Pacientes.xlsx]
    (ooxml, embedded labels, table is Internações) where Data_Internacao<='$(vDataBase)' and (IsNull(Data_Alta) or Data_Alta> '$(vDataBase)');
    Store HISTORICO_INTERNADOS into [lib://Projetos/Temp/Historico_Internados_$(vData_Arquivo).qvd] (qvd);
    Drop Table [HISTORICO_INTERNADOS];
     

Next b;
Exit Script;

Segue em anexo os dados que utilizei como exemplo no excel.

Help users find answers! Don't forget to mark a solution that worked for you!

View solution in original post

4 Replies
joaopaulo_delco
Partner - Creator III
Partner - Creator III

Olá @carolinne88 !

 

               Você pode tratar isso na carga, normalmente eu faço isso na transformação e programo para gerar o histórico no final do dia para saber a última posição.

Veja o script abaixo:

vDataAtual = Date(Today(),'YYYY-MM-DD');

[HISTORICO_PACIENTES]:
Load
    '$(vDataAtual)' as Data_Historico,
    ID_Paciente
Resident SUA_TABELA
where Status = 'INTERNADO';

// Grava o histórico dia a dia
Store [HISTORICO_PACIENTES] into [lib://PASTA/Pacientes_Internados_$(vdDataAtual).qvd] (qvd);
Drop Table [HISTORICO_PACIENTES];

    
// Para acessar o histórico de todos os dias, você pode utilizar o script abaixo
[HISTORICO_PACIENTES]:
Load
    *
from [lib://PASTA/Pacientes_Internados_*.qvd] (qvd);    

Com isso você terá um arquivo qvd diário com a posição no final do dia.

Espero que ajude.

Help users find answers! Don't forget to mark a solution that worked for you!
carolinne88
Creator
Creator
Author

João, o meu maior problema é que não tenho os arquivos anteriores. Estou tentando uma forma de fazer isso apenas com as datas de internação e alta justamente por não ter os arquivos anteriores. Eu entrei em um setor novo e venho guardando os arquivos desde que cheguei (30 dias), mas os anteriores não eram guardados.

joaopaulo_delco
Partner - Creator III
Partner - Creator III

@carolinne88 , Acho que o script abaixo resolve sua situação.

[LISTA_DATAS]: // lista das datas que você quer gerar o arquivo
LOAD
    A AS DataBase
FROM [lib://Projetos/Temp/Aux Community Pacientes.xlsx]
(ooxml, no labels, table is [Datas Base]);



For Each b in FieldValueList('DataBase')  
    vDataBase = '$(b)';
    vData_Arquivo = Date('$(vDataBase)','YYYY-MM-DD'); 
     
    [HISTORICO_INTERNADOS]: // sua tabela de internados    
    LOAD
        Paciente,
        Data_Internacao,
        Data_Alta
    FROM [lib://Projetos/Temp/Aux Community Pacientes.xlsx]
    (ooxml, embedded labels, table is Internações) where Data_Internacao<='$(vDataBase)' and (IsNull(Data_Alta) or Data_Alta> '$(vDataBase)');
    Store HISTORICO_INTERNADOS into [lib://Projetos/Temp/Historico_Internados_$(vData_Arquivo).qvd] (qvd);
    Drop Table [HISTORICO_INTERNADOS];
     

Next b;
Exit Script;

Segue em anexo os dados que utilizei como exemplo no excel.

Help users find answers! Don't forget to mark a solution that worked for you!
carolinne88
Creator
Creator
Author

Excelente, João! Muito obrigada!! 😍