Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
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!! 😍