Retornar resultados de case em um novo atributo

1. Retornar resultados de case em um novo atributo

Igor Alvim
AlvimIgor

(usa Ubuntu)

Enviado em 19/11/2019 - 17:48h

Boa tarde,

No banco de dados que trabalho tenho as informações a seguir, em diferentes tabelas: Acesso, Dose prescrita, tempo e volume.
Preciso, de acordo com essas informações, calcular dois valores chamados bolus e rate seguindo uma condicional. O problema é como vou retornar estes dois valores, se não há atributo onde eu possa inseri-los. Há como retornar estes dois atributos como o resultado de uma condicional? Ou eu deveria criar uma nova tabela pra eles? Existe como retornar estes atributos sem ter de mexer em nenhuma tabela?

O código atual que tenho, é: 
select 
a.nr_atendimento ATENDIMENTO,
obter_nome_pf_atend(a.nr_atendimento) NOME,
obter_data_nascto_pac_atend(a.nr_atendimento) NASCIMENTO,
'DOSE: ' || a.qt_dose,
'VOLUME: ' || a.qt_volume || ' ml' VOLUME,
obter_desc_material(a.cd_material) MEDICAMENTO,
d.qt_hora_min_sessao TEMPO,
e.nr_seq_tecnica ACESSO
-- Inserir aqui condicionais para cálculo de BOLUS e RATE
from
CPOE_material a, atend_paciente_unidade b, hd_escala_dialise c, cpoe_dialise d, hd_acesso e
where
a.cd_material = 49749 and
a.nr_atendimento = b.nr_atendimento and
d.nr_atendimento = b.nr_atendimento and
obter_cd_pes_fis_atend(b.nr_atendimento) = c.cd_pessoa_fisica and
b.dt_saida_unidade is null and
a.dt_liberacao is not null and
a.dt_suspensao is null and
d.dt_liberacao is not null and
d.dt_suspensao is null and
c.dt_fim is null and
e.cd_pessoa_fisica = obter_pessoa_atendimento(b.nr_atendimento,'C') and
e.ie_adequado = 'S' and
e.dt_perda_retirada is null and
c.nr_seq_turno = :turno and
c.nr_seq_escala = :escala


O algoritmo das condicionais que quero fazer seria mais ou menos assim:
Case acesso = 'arteriovenoso' then
case a.qt_dose = 2500 then bolus = volume e rate = null

Case a.qt_dose = 5000 then:
case tempo = 2:00h, 2:05h, 2:30h ou 2:35h then Bolus = volume e rate = '-'
case tempo = 3:00h ou 3:05 then Bolus = 6,0 e rate = 1,6
case tempo = 3:30h ou 3:35 then Bolus = 6,0 e rate = 1,3
e assim por diante...

Alguém saberia como me ajudar?

Valeu!




  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts