
SELECT
 pac.cns as cns_pac,
 pac.cpf as cpf_pac,
 pac.nome as nome_pac,
 pac.nome_mae AS nome_mae_pac, 
 DATE_FORMAT(pac.dt_nasc, "%d/%m/%Y") AS dt_nasc,
 pac.sexo as sexo_pac,
-- Dados de endereço do paciente removidos
 proc.id AS id_proced,
 proc.cns_medico,
 proc.cpf_medico,
 proc.nome_medico,
 proc.cod_proced,
 sigtap.no_procedimento,
 sigtap.tp_complexidade,
 proc.codigo_sisreg_ser,
 espmed.id AS esp_med_id,
 espmed.descricao AS esp_med_desc,
 prior.id AS prior_id,
 prior.descricao AS prior_desc,
 lat.id AS lat_id,
 lat.descricao AS lat_desc,
 riscir.id AS riscir_id,
 riscir.descricao AS riscir_desc,
 cadreg.id AS cadreg_id,
 cadreg.descricao AS cadreg_desc,
 filajud.id AS filajud_id,
 filajud.descricao AS filajud_desc,
 fila_ordenacao.ordem_geral,
  fila_ordenacao_geral.ordem_sms,
 status.status AS desc_status,
 status.id AS id_status, 
 DATE_FORMAT(proc.data_entrada, "%d/%m/%Y") AS data_entrada,
 proc.cod_cid,
 proc.prontuario,
 proc.detalhe_lateralidade,
 cid.nm_cid10, 
-- DATE_FORMAT(risc.data_risco, "%d/%m/%Y") AS data_risco,
-- risc.doencas_associadas,
 CONCAT(proc.cnes_usuario_logado," - ", un.nome_fanta) AS hosp_origem,
 -- DATE_FORMAT(st_nao_pode_cir.datahora, "%d/%m/%Y %H:%i:%s") AS st_nao_pode_cir_datahora,
 -- DATE_FORMAT(st_ob.datahora, "%d/%m/%Y %H:%i:%s") AS st_ob_datahora,
 -- DATE_FORMAT(st_prop_rea.datahora, "%d/%m/%Y %H:%i:%s") AS st_prop_rea_datahora,
 -- DATE_FORMAT(st_prop_rea.data_cirurgia, "%d/%m/%Y") AS st_prop_rea_datacirurgia,
 -- DATE_FORMAT(st_sem_cont.datahora, "%d/%m/%Y %H:%i:%s") AS st_sem_cont_datahora,
 -- DATE_FORMAT(st_sem_indcir.datahora, "%d/%m/%Y %H:%i:%s") AS st_sem_indcir_datahora,
 -- DATE_FORMAT(st_sem_indcir_prop.datahora, "%d/%m/%Y %H:%i:%s") AS st_sem_indcir_prop_datahora,

DATE_FORMAT(proc.datahora, "%d/%m/%Y %H:%i:%s") AS datahora_procedimento,

CASE
WHEN un.COD_ESFADM = 1 THEN "Federal"
WHEN un.COD_ESFADM = 2 THEN "Estadual"
WHEN un.COD_ESFADM = 3 THEN "Municipal"
WHEN un.COD_ESFADM = 4 THEN "Privado"
END AS esferaAdministrativa,

case 
when proc.status = 1 then DATE_FORMAT(st_ag_cir.timestamp, "%d/%m/%Y %H:%i:%s")  
when proc.status = 2 then DATE_FORMAT(st_prop_rea.timestamp, "%d/%m/%Y %H:%i:%s")  
when proc.status = 3 then DATE_FORMAT(st_sem_indcir.timestamp, "%d/%m/%Y %H:%i:%s")  
when proc.status = 4 then DATE_FORMAT(st_sem_indcir_prop.timestamp, "%d/%m/%Y %H:%i:%s")  
when proc.status = 5 then DATE_FORMAT(st_nao_pode_cir.timestamp, "%d/%m/%Y %H:%i:%s")  
when proc.status = 6 then DATE_FORMAT(st_ob.timestamp, "%d/%m/%Y %H:%i:%s")  
when proc.status = 7 then DATE_FORMAT(st_sem_cont.timestamp, "%d/%m/%Y %H:%i:%s")  
when proc.status = 8 then DATE_FORMAT(st_cir_externa.timestamp, "%d/%m/%Y %H:%i:%s")   
when proc.status = 9 then DATE_FORMAT(st_desistencia.timestamp, "%d/%m/%Y %H:%i:%s")   
end as ultima_movimentacao

FROM
 tbl_procedimento proc

inner JOIN sms_pacientes.tb_pacientes pac ON (pac.cns = (SELECT cns FROM sms_pacientes.tb_cns_provisorios p WHERE p.cns_provisorio = proc.cns) )
INNER JOIN tbl_risco_cirurgico risc ON (risc.id_procedimento = proc.id)
INNER JOIN subpav_principal.unidades un ON (un.cod_ub = proc.cnes_usuario_logado)
INNER JOIN tbl_op_esp_medica espmed ON (espmed.id = proc.esp_medica)
INNER JOIN tbl_op_prioridade prior ON (prior.id = proc.prioridade)
INNER JOIN tbl_op_lateralidade lat ON (lat.id = proc.lateralidade)
INNER JOIN tbl_op_risco_cirurgico riscir ON (riscir.id = risc.risco_cirurgico)
INNER JOIN tbl_op_cad_reg cadreg ON (cadreg.id = proc.cadastro_regulacao)
INNER JOIN tbl_op_fila_jud filajud ON (filajud.id = proc.fila_judicializada)
INNER JOIN tbl_status status ON (status.id = proc.status)
-- LEFT JOIN tbl_log_status log_status ON (log_status.id_procedimento = proc.id)
LEFT OUTER
JOIN (
SELECT
						proc.id AS id_ordenacao,
						@row_number := CASE WHEN @cod_proced = proc.cod_proced THEN
						@row_number + 1 ELSE
						1 END AS ordem_geral,
                  @cod_proced := proc.cod_proced AS cod_proced
						
						FROM
						tbl_procedimento proc, (
						SELECT 
						
							@row_number:=0, 
							
							@cod_proced:='' 
							 ) AS t
						WHERE
						proc.status in (1,5)
						ORDER BY
						proc.cnes_usuario_logado ASC,
						proc.cod_proced ASC,
						proc.data_entrada ASC
			  
) fila_ordenacao ON (fila_ordenacao.id_ordenacao = proc.id AND un.cod_esfadm != 5 )
LEFT OUTER
JOIN (
SELECT
						proc.id AS id_ordenacao,
						@row_number := CASE WHEN @cod_proced = proc.cod_proced THEN
						@row_number + 1 ELSE
						1 END AS ordem_sms,
                  @cod_proced := proc.cod_proced AS cod_proced

						FROM
						tbl_procedimento proc, (
						SELECT 
							 
							@row_number:=0, 
							
							@cod_proced:='' 
							 ) AS t
						WHERE
						proc.status in (1,5)
						ORDER BY
						proc.cod_proced ASC, proc.data_entrada ASC, proc.cnes_usuario_logado 
) fila_ordenacao_geral ON (fila_ordenacao_geral.id_ordenacao = proc.id AND un.cod_esfadm != 5 )
-- JOIN tbl_pac_telefone tels removido pois dados de telefone não são mais necessários
-- JOIN tbl_pac_endereco end removido pois dados de endereço não são mais necessários
-- JOIN sms_pacientes.tb_pacientes_telefones tel_pac removido pois dados de telefone não são mais necessários
LEFT OUTER
JOIN subhue.vw_procedimento_ult_compet sigtap ON (sigtap.co_procedimento = proc.cod_proced)
LEFT OUTER
JOIN subpav_principal.tb_cid10 cid ON (cid.cod_cid10 = proc.cod_cid)
-- LEFT OUTER
-- JOIN tbl_quadro_clinico qc ON (qc.id_procedimento = proc.id)
LEFT OUTER
JOIN tbl_status_nao_pode_cir st_nao_pode_cir ON (st_nao_pode_cir.id_procedimento = proc.id)
LEFT OUTER
JOIN tbl_status_obito st_ob ON (st_ob.id_procedimento = proc.id)
LEFT OUTER
JOIN tbl_status_prop_realizada st_prop_rea ON (st_prop_rea.id_procedimento = proc.id)
LEFT OUTER
JOIN tbl_status_sem_contato st_sem_cont ON (st_sem_cont.id_procedimento = proc.id)
LEFT OUTER
JOIN tbl_status_sem_ind_cir st_sem_indcir ON (st_sem_indcir.id_procedimento = proc.id)
LEFT OUTER
JOIN tbl_status_sem_ind_cir_prop st_sem_indcir_prop ON (st_sem_indcir_prop.id_procedimento = proc.id)
left outer
join tbl_status_cir_externa st_cir_externa on (proc.id = st_cir_externa.id_procedimento)
left outer
join tbl_status_desistencia st_desistencia on (proc.id = st_desistencia.id_procedimento)
left outer
join  tbl_status_ag_cir st_ag_cir on (proc.id = st_ag_cir.id_procedimento) 

{{WHERES}}
-- GROUP BY
--  proc.id
ORDER BY
 proc.cod_proced, fila_ordenacao.ordem_geral




