Uso da cama hospitalar com o Tableau Prep
Alcançar a capacidade em um hospital é problemático, mas abundância de recursos também é. É importante entender as camas hospitalares da perspectiva da cama como um recurso. Contudo, os dados geralmente são armazenados da perspectiva do paciente. Como podemos pegar os dados que capturam quando os pacientes estão nas camas e determinar o uso da cama?
Observação: para concluir as tarefas nestes tutoriais, é necessário ter o Tableau Prep e, opcionalmente, o Tableau Desktop instalados:
Para instalar o Tableau Prep e o Tableau Desktop, consulte o Guia de implantação do Tableau Desktop e do Tableau Prep(O link abre em nova janela). Caso contrário, é possível baixar as versões gratuitas de avaliação do Tableau Prep(O link abre em nova janela) e do Tableau Desktop(O link abre em nova janela).
Também será necessário baixar os três arquivos de dados. É recomendado salvá-los na pasta Meu repositório do Tableau Prep > Fontes de dados.
- Beds.xlsx(O link abre em nova janela)
- Hours.xlsx(O link abre em nova janela)
- Patient Beds.xlsx(O link abre em nova janela)
Os dados
Para nossas quatro camas A, B, C e D, rastreamos qual paciente estava na cama e seu horário de chegada e saída nela. Os dados têm esta aparência:
Análise preliminar
Se trouxermos esses dados para o Tableau Desktop, poderemos criar um gráfico de Gantt para mostrar quando os pacientes estão nas camas.
Isso é útil visualmente Podemos ver que há apenas pequenas lacunas em uso para as camas A e B, mas a cama C é pouco utilizada. O paciente da cama D não tem horário de saída, mas pudemos abordar essa questão com alguns cálculos. Isso nos da uma visão geral de como as camas são usadas.
Contudo, e se quiséssemos contas as horas que uma cama ficou vazia? Ou comparar o tempo de cama aberto antes e depois que uma nova política foi implementada? Não há uma maneira fácil de fazer isso com o jeito que os dados estão estruturados no momento.
Estrutura de dados desejada
Ao criar alguns conjuntos de dados muito básicos e combiná-los no Tableau Prep, poderemos modificar esse conjunto de dados em um formulário que permitirá executar uma análise mais detalhada e criar visualizações ainda mais úteis.
Antes de irmos para o Tableau Prep, vamos dar um passo atrás e pensar sobre o que precisamos criar para responder a pergunta “Quantas horas cada cama ficou vazia?”
Precisamos ser capaz de olhar cada cama para cada horário e saber se tinha ou não um paciente nela. No momento, os dados são exclusivamente de quando o paciente estava na cama; não fornecemos informações ao Tableau sobre as horas vazias.
Para criar essa matriz completa de todas as camas e todos os horários, criaremos dois conjuntos de dados novos. Um é apenas uma lista de camas (A, B, C, D), o outro é uma lista de horários (1, 2, 3, …, 23, 24). Ao executar uma união de colunas cruzada (unindo cada linha no outro conjunto de dados) terminaremos com todas as combinações possíveis de camas e horários.
O conjunto de dados Beds.xlsx tem esta aparência: | O conjunto de dados Hours.xlsx tem esta aparência: | E os resultados da união cruzada têm esta aparência: |
Em seguida, traremos a informações das Camas com pacientes, rotulando cada combinação de cama e horário como tendo ou não um paciente específico. terminaremos com um conjunto de dados que tem uma linha para cada cama - horário, e se um paciente estava na cama, além de seu número e horários de entrada e saída. Os valores nulos indicam que a cama estava desocupada.
Com os dados nesta estrutura, podemos executar análises dessa forma, o que permite investigar camas desocupadas tão fácil quanto camas com pacientes.
Reestruturação dos dados
Como fazemos isso com o Tableau Prep? Criaremos o fluxo em duas partes, primeiro criando a matriz Horários das camas, em seguida combinando-a com os dados das Camas com paciente. Certifique-se de que baixou todos os três arquivos Excel (Beds.xlsx, Hours.xlsx e Patient Beds.xlsx) para prosseguir.
Matriz de Horários das camas
Primeiro, vamos conectar ao arquivo Beds.xls.
Abra o Tableau Prep.
Na tela inicial, clique em Conectar aos dados.
No painel Conexões, clique em Microsoft Excel. Navegue até onde salvou o Beds.xls e clique em Abrir.
A planilha Camas deverá ser trazida automaticamente para o painel Fluxo.
Dica: para obter mais informações sobre como se conectar a dados, consulte Conectar a dados(O link abre em nova janela).
Em seguida, vamos criar um campo que podemos usar para fazer a união de colunas cruzada com o conjunto de dados Horários. Adicionaremos um cálculo que é simplesmente o valor 1.
No painel Fluxo, selecione Camas e clique em Etapa de limpeza.
Com a etapa de Limpeza recém-adicionada, o painel Perfil será exibido. Clique em Criar campo calculado na barra de ferramentas.
Nomeie o campo União de colunas cruzada e insira o valor 1.
A Grade de dados deverá atualizar para mostrar o estado atual dos dados.
Agora repetiremos o processo com o conjunto de dados Horários.
No painel Conexões, clique no botão Adicionar conexão para adicionar outra conexão de dados.
Escolha Microsoft Excel, selecione o arquivo Hours.xlsx e clique em Abrir.
No painel Fluxo, selecione Horas e clique em Etapa de limpeza para adicioná-lo ao fluxo.
Na barra de ferramentas do painel Perfil, crie um campo calculado chamado União de colunas cruzada e insira o valor 1.
Ambos os conjuntos de dados agora possuem um campo compartilhado, União de colunas cruzada, e podem ser unidos.
Una as duas etapas de limpeza ao arrastar Limpeza 2 para Limpeza 1 e soltar na opção Unir colunas.
No Perfil de união de colunas abaixo, as configurações da união deverão ser preenchidas automaticamente.
Como nomeamos ambos os campos como União de colunas cruzada, o Tableau Prep as identifica automaticamente como o campo compartilhado e cria as Cláusulas de união de colunas aplicadas adequadas.
O Tipo de união de colunas padrão é interno, que é o que queremos.
Essa união de colunas corresponderá todas as linha de Camas com todas as linhas de Horários, como visto na Grade de dados.
A. Cláusulas de união de colunas
B. Tipo de união de colunas
C. Resultado da grade de dados
Dica: para obter mais informações sobre uniões de colunas, consulte Unir colunas de dados(O link abre em nova janela).
Não precisamos mais dos campos de União de colunas cruzada, então podemos removê-los.
No painel Fluxo, selecione União de colunas 1, clique no ícone de adição e selecione Adicionar etapa de limpeza.
Selecione os campos União de colunas cruzada-1 e União de colunas cruzada e clique em Remover campos.
Clique duas vezes no rótulo Limpeza 3 e renomeie essa etapa como Matriz de Horários das camas.
Agora temos o conjunto de dados Matriz Horários das camas que contém todas as camas e horários. Dessa forma concluímos a primeira parte da criação de nosso conjunto de dados.
Uso da cama pelo paciente
A segunda parte traz o uso da cama pelo paciente. Para começar, nos conectaremos aos dados.
No painel Conexões, clique no botão Adicionar conexão para adicionar outra conexão de dados.
Escolha Microsoft Excel, selecione o arquivo Patient Beds.xlsx e clique em Abrir.
No painel Fluxo, selecione Leitos de pacientes e clique na Etapa de limpeza sugerida para adicioná-la ao fluxo.
Como o arquivo Matriz Horários das camas é baseado na hora mas Camas com paciente é baseado na horário real, precisamos tirar o horário de entrada e saída das Camas com paciente. Além disso, para o horário de saída, queremos garantir que se um paciente ainda estiver na cama no final do dia (meia-noite, hora 24) nós indicaremos que a cama está ocupada, mesmo que não tenha horário de saída no conjunto de dados. Adicionaremos um campo calculado nessa nova etapa.
Na barra de ferramentas, clique em Criar campo calculado.
Nomeie o campo como Hora de chegada. Para o cálculo, insira
DATEPART('hour',[Start Time])
.Crie outro campo calculado chamado Hora de saída. Para o cálculo, insira
IFNULL(DATEPART('hour',[End Time]), 24)
.
Isso pega o horário da hora de chegada e o retira. Sendo assim, "1/1/18 9:35 AM” se torna apenas "9".
A parte DATEPART
pega o horário da hora de saída. A parte IFNULL
atribuirá uma hora de saída de 24 (meia-noite) a qualquer hora de saída ausente.
Agora estamos prontos para unir colunas do uso das camas por paciente à Matriz de Horários das camas. Isso é uma união de colunas pouco mais complexa que a que fizemos anteriormente. Uma união de colunas interna retornaria apenas valores presentes nos dois conjuntos de dados. Como queremos nos certificar de manter todos as faixas cama - horário, independente se tinha ou não um paciente na cama, precisaremos fazer uma união de colunas à esquerda. Isso resultará em muitos nulos, mas é o mais adequado.
Também precisaremos corresponder quando uma faixa cama - horário estiver ocupada por um paciente (ou pacientes). Portanto, além de corresponder a cama na qual o paciente está, precisamos considerar a hora. O conjunto de dados Matriz Horários das camas ó possui um campo Horário, e o conjunto de dados Camas com pacientes possui Hora de chegada e Hora de saída. Usaremos uma lógica básica para determinar se um paciente deveria estar atribuído a uma determinada faixa cama - horário: um paciente consta em uma cama se a hora de chegada for menor ou igual (<=) à faixa cama - horário E a hora de saída for maior ou igual (>=) à faixa cama - horário.
Sendo assim, são necessárias três cláusulas de união de colunas para corresponder adequadamente esses dois conjuntos de dados.
Una as colunas da etapa Limpeza 3 à etapa Matriz de Horários das camas.
Na área Cláusulas de união de colunas aplicadas, o padrão deve ser Horário = Hora de saída. Clique na cláusula de união de colunas para alterar o operador de "=" para "<=".
Clique no ícone de adição no canto superior direito da área Cláusulas de união de colunas aplicadas para adicionar outra cláusula de união. Defina como Hora >= Hora de chegada
Adicione uma terceira cláusula de união de colunas para Cama = Cama de hospital.
Na seção Tipo de união de colunas, clique na área não sombreada do gráfico, próximo a Matriz de Horários das camas para alterar o tipo de união para uma união à esquerda.
Observação: se você arrastar Matriz de Horários das camas para Limpeza 3 em vez do contrário, os resultados esperados podem ser obtidos usando uma união de colunas à direita em vez de à esquerda. A ordem para arrastar as etapas é importante para a orientação da união de colunas. As cláusulas de união de colunas também estarão na ordem contrária, certifique-se de preservar a lógica correta de comparação dos horários.
Nossos dados agora estão unidos, mas devemos limpar alguns artefatos da união de colunas e certificar de que os campos estão organizados. Não precisamos mais da Hora de chagada e Hora de saída. Cama de hospital e Cama também são redundantes. Finalmente, um valor nulo no campo Paciente significa que a cama está desocupada.
No painel Fluxo, adicione uma etapa de limpeza para que possamos organizar os dados da união.
Ctrl+clique (Command+clique no Mac) para selecionar vários campos Hora de saída, Hora de chagada e Cama de hospital e clique em Remover campos na barra de ferramentas.
No cartão de perfil do campo Paciente, clique duas vezes no valor nulo e digite Desocupado.
Agora temos uma estrutura de dados com uma linha para cada cama - horário; se houver um paciente na cama durante esse horário, também teremos as informações do paciente. Tudo que resta a fazer é adicionar uma etapa de saída e gerar o conjunto de dados.
No painel Fluxo, selecione Limpeza 4, clique no ícone de adição e selecione Adicionar saída.
No painel Saída, altere o Tipo de saída para .csv e clique em Procurar.
Insira Matriz de Horários das camas com paciente para o nome e selecione o local desejado antes de clicar em Aceitar para salvar.
Clique no botão Executar fluxo na parte inferior do painel para gerar a saída. Clique em Concluído na caixa de diálogo do status e feche-a.
Dica: para obter mais informações sobre as saídas e a execução de um fluxo, consulte Salvar e compartilhar seu trabalho(O link abre em nova janela).
O fluxo final deve ter esta aparência:
Análise no Tableau Desktop
Para instalar o Tableau Desktop antes de continuar com este tutorial, é possível baixar a avaliação gratuita.
Agora que temos o conjunto de dados na estrutura desejada, podemos executar uma análise mais detalhada que com os dados originais.
Abra o Tableau Desktop. No painel Conectar, selecione Arquivo de texto, navegue até o arquivo Bed Hour Patient Matrix.csv e clique em Abrir.
Na guia Fonte de dados, os dados deverão aparecer na tela por padrão. Clique em Planilha 1.
No painel Dados, arraste Horário acima da linha separando Medidas e Dimensões para tornar uma dimensão discreta.
Arraste Cama para a divisória Linhas e Horário para a divisória Colunas.
Arraste Paciente para a divisória Cor.
A formatação é opcional, mas pode ajudar na leitura do visual.
Clique na divisória Cor e selecione Editar cores.
Na área à esquerda, selecione Desocupado. No menu suspenso à direita, selecione a paleta de cores Seattle Grays.
Selecione o quarto cinza mais claro e clique em OK.
Clique na divisória Cor novamente, em seguida clique no menu suspenso Borda. Selecione a segunda opção de cinza mais à direita.
Na barra de ferramentas, no menu suspenso Tamanho, altere de Padrão para Ajustar à largura.
Clique no menu Formatar e em Bordas.
Para Divisória de linha, clique no menu suspenso Painel e selecione um cinza bem claro.
Ajuste o controle deslizante de Nível para a segunda marca.
Repita na Divisória e coluna. Defina a cor do Painel como um cinza claro e o Nível para a segunda marca.
Clique duas vezes na guia da planilha na parte inferior e renomeie como Uso da cama por hora.
Essa exibição permite ver rapidamente quando determinada cama estava ocupada ou disponível.
Mas podemos ir além e contar o número de horas cada capa esteve desocupada.
Clique no ícone da nova guia da planilha na parte inferior para abrir uma planilha em branco.
Arraste Paciente para Linhas.
Arraste Horário para Colunas. Clique com o botão direito do mouse na pílula de Horário para abrir o menu. Selecione Medida > Contagem.
Arraste outra cópia do campo Paciente do painel Dados para a divisória Cor.
Clique com o botão direito do mouse no eixo e selecione Editar eixo. Altere o título para Horas e feche a caixa de diálogo.
Renomeie a guia da planilha Horários das camas por paciente.
Essa exibição permite identificar quantas horas de cama desocupada tivemos, algo que não poderíamos fazer com o conjunto de dados original. Quais outros gráficos ou painéis você pode criar? Tente agora que seus dados estão na estrutura correta.
Resumo e recursos
Para criar esta estrutura de dados usando o Tableau Prep, precisamos executar as seguintes ações:
Crie um conjunto de dados para cada aspecto que queremos analisar, neste caso Camas e Horas.
Faça uma união de colunas cruzada desses conjuntos de dados para criar um conjunto de dados Matriz de Horários das camas com cada combinação possível de camas e horas.
Una as colunas dos dados Matriz de Horários das camas aos dados Cama com paciente, certificando-se de que a união de colunas mantenha as faixas cama - horário e as cláusulas da união de colunas correspondam adequadamente os dados de cama com paciente às faixas cama - horário.
Usamos os cálculos a seguir para criar campos aos quais poderíamos unir as colunas. O segundo e o terceiro pegas as informações de horário dos campos de data e hora originais.
União de colunas cruzada =
1
Isso atribui o valor 1 a todas as linhas
Hora de chegada =
DATEPART('hour',[Start Time])
Isso pega o horário da hora de chegada e o retira. Sendo assim, "1/1/18 9:35 AM” se torna apenas "9".
Hora de saída =
IFNULL(DATEPART('hour',[End Time]), 24)
Poderíamos usar
DATEPART('hour',[End Time])
, como fizemos com Hora de chegada. Isso pega o horário da hora de saída e o retira. Sendo assim, "1/1/18 4:34 PM” se torna apenas "4".Mas queremos indicar que a cama com paciente que ainda está ocupada (sem hora de saída) está em uso, não vazia. Para isso, atribuiremos uma hora de saída de 24 (meia-noite) a qualquer hora de saída ausente usando a função
IFNULL
. Se o primeiro argumentoDATEPART('hour',[End Time])
for nulo, o cálculo retornará "24".
Observação: quer verificar seu trabalho? Baixe o arquivo de fluxo em pacote do Tableau Prep (Hospital Beds.tflx(O link abre em nova janela)) e o arquivo de pasta de trabalho em pacote do Tableau Desktop (Hospital Beds.twbx(O link abre em nova janela)).
Recursos: precisa de mais treinamento? Faça um curso de treinamento presencial(O link abre em nova janela). Está curioso sobre os recursos compatíveis? Veja os outros tópicos na Ajuda online do Tableau Prep. Procurando recursos adicionais? O post Domine o Tableau Prep com essa lista de recursos de aprendizado(O link abre em nova janela) no blog é para você.