Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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.
@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.
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.
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.
@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.
Excelente, João! Muito obrigada!! 😍