|
AdamWest
Constraint Violating Yak Guru
360 Posts |
Posted - 2011-12-08 : 15:07:57
|
| USE [PRO2] GO /****** Object: StoredProcedure [OPTC].[THS_GET_CNA_BMDNO_DETAILS] Script Date: 12/08/2011 15:00:26 ******/ SET ansi_nulls ON GO SET quoted_identifier ON GO ALTER PROCEDURE [OPTC].[Ths_get_cna_bmdno_details](@FACILITYKEY VARCHAR(1000), @STARTDATE DATETIME, @ENDDATE DATETIME, @THEUNIT VARCHAR(25), @MENUID NUMERIC(9), @MENUIDVALUE NUMERIC(9), @MINVALUE NUMERIC(9), @MAXVALUE NUMERIC(9), @SHIFTFACILITY CHAR(4), @THESHIFT NUMERIC(1)) AS BEGIN SELECT Isnull(pm.unit_code, '') AS unit, Isnull(pm.room_bed, '') room_bed , Isnull(pm.pat_number, '') pat_number, Isnull(pm.patient_id, '') patient_id, Isnull(pm.mrn, '') mrn, pm.first_name, pm.last_name, Isnull(Rtrim(pm.last_name) + ',' + Rtrim(pm.first_name), '') AS name_full , CASE WHEN pat_bm.pat_number IS NULL THEN 0 ELSE 1 END AS is_found, Isnull(CASE WHEN pat_bm.pat_number IS NULL THEN 'No Info Found' ELSE 'Didn''t occur' END, '') AS info, pm.facility_key FROM ogen.gen_m_patient_mast pm JOIN (SELECT DISTINCT tr1.pat_number, tr1.tr_datetime FROM optc.ths_t_transactions1 tr1 JOIN ogen.gen_m_patient_mast pm1 ON ( pm1.pat_number = tr1.pat_number ) WHERE optc.Dbd_get_arch(tr1.facility_key, @STARTDATE, @ENDDATE ) >= 0 AND tr1.facility_key IN (SELECT VALUE FROM ogen.Comma_to_table(@FACILITYKEY)) AND tr1.tr_datetime BETWEEN @STARTDATE AND @ENDDATE AND tr1.edit_no < 0 AND tr1.menu_id = @MENUID AND tr1.menu_id_value = @MENUIDVALUE AND ( Nullif(@THEUNIT, '') IS NULL OR Ltrim(Rtrim(pm1.unit_code)) = @THEUNIT ) UNION SELECT DISTINCT tr2.pat_number, tr2.tr_datetime FROM optc.ths_t_transactions_archive tr2 JOIN ogen.gen_m_patient_mast pm2 ON ( pm2.pat_number = tr2.pat_number ) WHERE optc.Dbd_get_arch(tr2.facility_key, @STARTDATE, @ENDDATE ) <= 0 AND tr2.facility_key IN (SELECT VALUE FROM ogen.Comma_to_table(@FACILITYKEY)) AND tr2.tr_datetime BETWEEN @STARTDATE AND @ENDDATE AND tr2.edit_no < 0 AND tr2.menu_id = @MENUID AND tr2.menu_id_value = @MENUIDVALUE AND ( Nullif(@THEUNIT, '') IS NULL OR Ltrim(Rtrim(pm2.unit_code)) = @THEUNIT )) pat_bm ON ( pat_bm.pat_number = pm.pat_number ) WHERE pm.facility_key IN (SELECT VALUE FROM ogen.Comma_to_table(@FACILITYKEY)) AND pm.admit_date <= @STARTDATE AND ( pm.discharge_date IS NULL OR ( pm.discharge_date >= @ENDDATE ) ) AND ( Nullif(@THEUNIT, '') IS NULL OR Ltrim(Rtrim(pm.unit_code)) = @THEUNIT ) AND ( ( optc.Dbd_get_arch(pm.facility_key, @STARTDATE, @ENDDATE) < 0 ) OR NOT EXISTS(SELECT * FROM optc.ths_t_transactions1 t1 WHERE t1.pat_number = pm.pat_number AND t1.facility_key IN (SELECT VALUE FROM ogen.Comma_to_table(@FACILITYKEY)) AND t1.tr_datetime BETWEEN @STARTDATE AND @ENDDATE AND t1.edit_no < 0 AND t1.menu_id = @MENUID AND t1.menu_id_value <> @MENUIDVALUE) ) AND ( ( optc.Dbd_get_arch(pm.facility_key, @STARTDATE, @ENDDATE) > 0 ) OR NOT EXISTS(SELECT * FROM optc.ths_t_transactions_archive t2 WHERE t2.pat_number = pm.pat_number AND t2.facility_key IN (SELECT VALUE FROM ogen.Comma_to_table(@FACILITYKEY)) AND t2.tr_datetime BETWEEN @STARTDATE AND @ENDDATE AND t2.edit_no < 0 AND t2.menu_id = @MENUID AND t2.menu_id_value <> @MENUIDVALUE) ) AND CONVERT(DATETIME, CONVERT(VARCHAR(8), pat_bm.tr_datetime, 1)) IS NOT NULL ORDER BY 1, 2, 3; END |
|