[Resolvido] Retornar resultados de case em um novo atributo
Boa tarde,
No banco de dados 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 tem atributo onde eu possa inseri-los?
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: ' || decode(a.qt_dose,',5','2.500 UI','1','5.000 UI','1,5','7.500 UI','2','10.000 UI','2,5','12.500 UI','3','15.000 UI','3,5','17.500 UI',
'4','20.000 UI','4,5','22.500 UI','5','25.000 UI','5,5','27.500 UI','6','30.000 UI') 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
E as condicionais que quero inserir é mais ou menos assim:
SE acesso arteriovenoso então:
se dose_prescrita = 2500 então bolus = volume e rate = '-'
se dose_prescrita = 5000 então:
se tempo = 2:00h, 2:05h, 2:30h ou 2:35h então Bolus = volume e rate = '-'
se tempo = 3:00h ou 3:05 então Bolus = 6,0 e rate = 1,6
se tempo = 3:30h ou 3:35 então Bolus = 6,0 e rate = 1,3
se tempo = 4:00 ou 4:05h então bolus = 6,0 e rate = 1,1
se dose_prescrita = 7500 então
se tempo = 2:00h, 2:05h, 2:30h ou 2:35h então Bolus = volume e rate = '-'
se tempo = 3:00h ou 3:05 então Bolus = 8,0 e rate = 2,8
se tempo = 3:30h ou 3:35 então Bolus = 8,0 e rate = 2,3
se tempo = 4:00 ou 4:05h então bolus = 8,0 e rate = 2,0
se dose_prescrita = 10000 então
se tempo = 2:00h, 2:05h, 2:30h ou 2:35h então Bolus = volume e rate = '-'
se tempo = 3:00h ou 3:05 então Bolus = 10,0 e rate = 4,0
se tempo = 3:30h ou 3:35 então Bolus = 10,0 e rate = 3,3
se tempo = 4:00 ou 4:05h então bolus = 10,0 e rate = 2,9
se dose_prescrita = 12500 então
se tempo = 2:00h, 2:05h, 2:30h ou 2:35h então Bolus = volume e rate = '-'
se tempo = 3:00h ou 3:05 então Bolus = 11,0 e rate = 5,6
se tempo = 3:30h ou 3:35 então Bolus = 11,0 e rate = 4,7
se tempo = 4:00 ou 4:05h então bolus = 11,0 e rate = 4,0
se dose_prescrita = 15000 então
se tempo = 2:00h, 2:05h, 2:30h ou 2:35h então Bolus = volume e rate = '-'
se tempo = 3:00h ou 3:05 então Bolus = 13,0 e rate = 6,8
se tempo = 3:30h ou 3:35 então Bolus = 13,0 e rate = 5,7
se tempo = 4:00 ou 4:05h então bolus = 13,0 e rate = 4,9
se dose_prescrita = 30000 então
se tempo = 2:00h, 2:05h, 2:30h ou 2:35h então Bolus = volume e rate = '-'
se tempo = 3:00h ou 3:05 então Bolus = 23,0 e rate = 14,8
se tempo = 3:30h ou 3:35 então Bolus = 23,0 e rate = 12,3
se tempo = 4:00 ou 4:05h então bolus = 23,0 e rate = 10,6
se não
então null
SE acesso cateter então:
se dose_prescrita = 2500 então bolus = volume e rate = '-'
se dose_prescrita = 5000 então:
se tempo = 2:00h, 2:05h, 2:30h ou 2:35h então Bolus = volume e rate = '-'
se tempo = 3:00h ou 3:05 então Bolus = 6,0 e rate = 1,3
se tempo = 3:30h ou 3:35 então Bolus = 6,0 e rate = 1,1
se tempo = 4:00 ou 4:05h então bolus = 6,0 e rate = 1,0
se dose_prescrita = 7500 então
se tempo = 2:00h, 2:05h, 2:30h ou 2:35h então Bolus = volume e rate = '-'
se tempo = 3:00h ou 3:05 então Bolus = 8,0 e rate = 2,3
se tempo = 3:30h ou 3:35 então Bolus = 8,0 e rate = 2,0
se tempo = 4:00 ou 4:05h então bolus = 8,0 e rate = 1,8
se dose_prescrita = 10000 então
se tempo = 2:00h, 2:05h, 2:30h ou 2:35h então Bolus = volume e rate = '-'
se tempo = 3:00h ou 3:05 então Bolus = 10,0 e rate = 3,3
se tempo = 3:30h ou 3:35 então Bolus = 10,0 e rate = 2,9
se tempo = 4:00 ou 4:05h então bolus = 10,0 e rate = 2,5
se dose_prescrita = 12500 então
se tempo = 2:00h, 2:05h, 2:30h ou 2:35h então Bolus = volume e rate = '-'
se tempo = 3:00h ou 3:05 então Bolus = 11,0 e rate = 4,7
se tempo = 3:30h ou 3:35 então Bolus = 11,0 e rate = 4,0
se tempo = 4:00 ou 4:05h então bolus = 11,0 e rate = 3,5
se dose_prescrita = 15000 então
se tempo = 2:00h, 2:05h, 2:30h ou 2:35h então Bolus = volume e rate = '-'
se tempo = 3:00h ou 3:05 então Bolus = 13,0 e rate = 5,7
se tempo = 3:30h ou 3:35 então Bolus = 13,0 e rate = 4,9
se tempo = 4:00 ou 4:05h então bolus = 13,0 e rate = 4,3
se dose_prescrita = 30000 então
se tempo = 2:00h, 2:05h, 2:30h ou 2:35h então Bolus = volume e rate = '-'
se tempo = 3:00h ou 3:05 então Bolus = 23,0 e rate = 12,3
se tempo = 3:30h ou 3:35 então Bolus = 23,0 e rate = 10,6
se tempo = 4:00 ou 4:05h então bolus = 23,0 e rate = 9,3
Atenciosamente,
Igor
Discussão (7)
Carregando comentários...