Produced by Araxis Merge on 10/26/2017 10:44:44 PM Eastern Daylight Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.
| # | Location | File | Last Modified |
|---|---|---|---|
| 1 | OSCIF_BMS_v2_iter 2_September_2017.zip\BMS_Cand\Source\Sources\Database\BMSv2Updates\2.1.6.3\Reports | DROP_CREATE_BMS_DW_usp_Rpt_FutureDischarge.sql | Wed Oct 18 19:06:44 2017 UTC |
| 2 | OSCIF_BMS_v2_iter 2_September_2017.zip\BMS_Cand\Source\Sources\Database\BMSv2Updates\2.1.6.3\Reports | DROP_CREATE_BMS_DW_usp_Rpt_FutureDischarge.sql | Thu Oct 26 19:34:32 2017 UTC |
| Description | Between Files 1 and 2 |
|
|---|---|---|
| Text Blocks | Lines | |
| Unchanged | 2 | 424 |
| Changed | 1 | 2 |
| Inserted | 0 | 0 |
| Removed | 0 | 0 |
| Whitespace | |
|---|---|
| Character case | Differences in character case are significant |
| Line endings | Differences in line endings (CR and LF characters) are ignored |
| CR/LF characters | Not shown in the comparison detail |
No regular expressions were active.
| 1 | USE [BMS_D W] | |
| 2 | GO | |
| 3 | ||
| 4 | /****** Ob ject: Sto redProcedu re [dbo].[ usp_Rpt_Fu tureDischa rge] Sc ript Date: 6/14/2016 9:15:23 A M ******/ | |
| 5 | DROP PROCE DURE [dbo] .[usp_Rpt_ FutureDisc harge] | |
| 6 | GO | |
| 7 | ||
| 8 | /****** Ob ject: Sto redProcedu re [dbo].[ usp_Rpt_Fu tureDischa rge] Sc ript Date: 6/14/2016 9:15:23 A M ******/ | |
| 9 | SET ANSI_N ULLS ON | |
| 10 | GO | |
| 11 | ||
| 12 | SET QUOTED _IDENTIFIE R ON | |
| 13 | GO | |
| 14 | ||
| 15 | ||
| 16 | --exec usp _Rpt_Futur eDischarge @WARDGROU P_ID=8267, @START_DAT E='2004-05 -05 00:00: 01',@END_D ATE='2016- 05-05 23:5 9:59',@USE R_NAME=N' DNS ',@FACILIT Y_EXTENSIO N=N'69378E 0F-B210-49 3B-B2A1-21 30C9F7F394 ',@PATIENT _IDENTIFIE R=NULL,@TI ME_ZONE_MI NUTES_OFFS ET=0 | |
| 17 | CREATE PRO CEDURE [db o].[usp_Rp t_FutureDi scharge] | |
| 18 | -- @WARD_ID I NT = NULL, | |
| 19 | @W ARDGROUP_I D INT = NU LL, | |
| 20 | @S TART_DATE DATETIME = NULL, | |
| 21 | @E ND_DATE DA TETIME = N ULL, | |
| 22 | @U SER_NAME N VARCHAR(50 0)= NULL, | |
| 23 | @F ACILITY_EX TENSION NV ARCHAR(250 ), | |
| 24 | @P ATIENT_IDE NTIFIER NV ARCHAR(250 ) = NULL, | |
| 25 | @T IME_ZONE_M INUTES_OFF SET INT | |
| 26 | ||
| 27 | AS | |
| 28 | BEGIN | |
| 29 | ||
| 30 | IF @START_DA TE > @END_ DATE | |
| 31 | RAIS ERROR ('Th e start da te is grea ter than t he end dat e. Please correct.', 18, 13) | |
| 32 | EL SE | |
| 33 | BE GIN | |
| 34 | ||
| 35 | /* SELECT NULL AS W ARD_NAME, | |
| 36 | NULL AS BED_NAME, | |
| 37 | NULL AS PATIENT_N AME, | |
| 38 | NULL AS PT_SHORT, | |
| 39 | NULL AS APPOINTME NT_DATE, | |
| 40 | NULL AS CURRENT_S TATUS, | |
| 41 | NULL AS SIGNED_DA TE, | |
| 42 | NULL AS DISCHARGE D_DATE, | |
| 43 | NULL AS SIGNED_DI FF, | |
| 44 | NULL AS MOVEMENT_ DATE, | |
| 45 | NULL AS APPT_DIFF , | |
| 46 | NULL AS CLICNIC_N AME | |
| 47 | */ | |
| 48 | ||
| 49 | DE CLARE @SQL _SELECT NV ARCHAR(400 0), @SQL_W HERE NVARC HAR(4000), @SQL NVAR CHAR(4000) | |
| 50 | ||
| 51 | se t @START_D ATE = DATE ADD (minut e , -@TIME _ZONE_MINU TES_OFFSET , @START_ DATE ); | |
| 52 | se t @END_DAT E = DATEAD D (minute , -@TIME_Z ONE_MINUTE S_OFFSET , @END_DATE ); | |
| 53 | -- create permission table | |
| 54 | CR EATE TABLE #PERMISSI ON | |
| 55 | ( | |
| 56 | D IM_ORGANIZ ATION_ID I NT, | |
| 57 | D IM_WARD_ID INT | |
| 58 | ) | |
| 59 | --inse rt permiss ion for th e user | |
| 60 | INSERT INTO #PER MISSION | |
| 61 | SELE CT * FROM dbo.ufn_Ge tPermissio nByUserNam e(@USER_NA ME) | |
| 62 | CREATE NONCLUSTE RED INDEX [DIM_ORGAN IZATION_ID ] ON #PERM ISSION ([D IM_ORGANIZ ATION_ID] ASC) | |
| 63 | WITH ( | |
| 64 | PAD_INDEX = OFF, | |
| 65 | STATISTIC S_NORECOMP UTE = OFF , | |
| 66 | SORT_IN_T EMPDB = OF F, | |
| 67 | IGNORE_DU P_KEY = OF F, | |
| 68 | DROP_EXIS TING = OFF , | |
| 69 | ONLINE = OFF, | |
| 70 | ALLOW_ROW _LOCKS = ON, | |
| 71 | ALLOW_PAG E_LOCKS = ON) | |
| 72 | CREATE NONCLUSTE RED INDEX DIM_WARD_I D ON #PERM ISSION (DI M_WARD_ID ASC) | |
| 73 | WITH ( | |
| 74 | PAD_INDEX = OFF, | |
| 75 | STATISTIC S_NORECOMP UTE = OFF , | |
| 76 | SORT_IN_T EMPDB = OF F, | |
| 77 | IGNORE_DU P_KEY = OF F, | |
| 78 | DROP_EXIS TING = OFF , | |
| 79 | ONLINE = OFF, | |
| 80 | ALLOW_ROW _LOCKS = ON, | |
| 81 | ALLOW_PAG E_LOCKS = ON) ; | |
| 82 | ||
| 83 | ||
| 84 | ||
| 85 | DE CLARE @FAC ILITY_ID I NT | |
| 86 | -- get facili ty id | |
| 87 | SE T @FACILIT Y_ID = dbo .ufn_GetFa cilityIdBy Identifier (@FACILITY _EXTENSION ); | |
| 88 | ||
| 89 | -- check if t he user ha s permissi on for the facility | |
| 90 | IF EXISTS(SE LECT 1 | |
| 91 | FROM #PERMISSI ON | |
| 92 | WHER E DIM_ORGA NIZATION_I D = @FACIL ITY_ID) | |
| 93 | BEGI N | |
| 94 | ||
| 95 | CREATE TABLE #WA RD | |
| 96 | ( | |
| 97 | ID INT | |
| 98 | ) | |
| 99 | CREATE NONCLUSTE RED INDEX WARD_ID ON #WARD(ID ASC) | |
| 100 | ||
| 101 | IF @EN D_DATE IS NULL | |
| 102 | SELECT @ START_DATE = CAST(CO NVERT(VARC HAR(10),GE TUTCDATE() ,101) + ' 00:01' as datetime) | |
| 103 | ||
| 104 | IF @WA RDGROUP_ID = -1 OR @ WARDGROUP_ ID IS NULL | |
| 105 | INSERT I NTO #WARD( ID) | |
| 106 | SELECT W ARD.ID FRO M dbo.ufn_ GetWardsBy FacilityId (@FACILITY _ID) AS WA RD | |
| 107 | INNER JO IN dbo.DIM _WARD AS A CTIVE_WARD ON ACTIVE _WARD.ID = WARD.ID | |
| 108 | WHERE AC TIVE_WARD. STATUS = ' active' | |
| 109 | ELSE | |
| 110 | INSERT INT O #WARD(ID ) | |
| 111 | SELECT DIM _WARD_ID F ROM dbo.GR OUP_WARD_O RGANIZATIO N GWO | |
| 112 | WHERE DIM_ ORGANIZATI ON_ID = @W ARDGROUP_I D | |
| 113 | ||
| 114 | CREATE TABLE #PA TIENT(DIM_ PATIENT_ID INT, DIM_ BED_ID INT , VISTA_SI TE_DIM_ORG ANIZATION_ ID INT) | |
| 115 | INSERT INTO #PAT IENT(DIM_P ATIENT_ID, VISTA_SIT E_DIM_ORGA NIZATION_I D, DIM_BED _ID) | |
| 116 | SELECT EVN.DIM_P ATIENT_ID, EVN.VISTA _SITE_DIM_ ORGANIZATI ON_ID, EVN .DIM_BED_I D | |
| 117 | FROM F ACT_ADMISS ION_EVN AS EVN | |
| 118 | INNER JOIN ( | |
| 119 | SELECT MAX(CAST( EVN.IEN AS BIGINT)) AS IEN, EV N.DIM_PATI ENT_ID, EV N.VISTA_SI TE_DIM_ORG ANIZATION_ ID | |
| 120 | FROM F ACT_ADMISS ION_EVN AS EVN | |
| 121 | INNER JOIN #WARD AS WARD O N WARD.ID = EVN.DIM_ WARD_ID | |
| 122 | WHERE EVN.HAS_DI SCHARGE = 0 AND EVN. DIM_BED_ID IS NOT NU LL | |
| 123 | GROUP BY EVN.DIM _PATIENT_I D, EVN.VIS TA_SITE_DI M_ORGANIZA TION_ID) M AX_PATIENT | |
| 124 | ON MAX _PATIENT.V ISTA_SITE_ DIM_ORGANI ZATION_ID = EVN.VIST A_SITE_DIM _ORGANIZAT ION_ID | |
| 125 | AND MA X_PATIENT. DIM_PATIEN T_ID = EVN .DIM_PATIE NT_ID | |
| 126 | AND MA X_PATIENT. IEN = CAST (EVN.IEN A S BIGINT) | |
| 127 | ||
| 128 | SET @S QL_SELECT = 'SELECT WARD.NAME AS WARD_NA ME, | |
| 129 | BED.N AME AS BED _NAME, | |
| 130 | PATIE NT.LAST_NA ME + '' '' + RIGHT(P ATIENT.SSN ,4) as PAT IENT_NAME, | |
| 131 | LEFT( PATIENT.LA ST_NAME,1) + RIGHT(P ATIENT.SSN ,4) as PT_ SHORT, | |
| 132 | CONVERT(VA RCHAR, DAT EADD (minu te, ' + CA ST(@TIME_Z ONE_MINUTE S_OFFSET A S varchar) + ', DISC HARGE.APPO INTMENT_DA TE ), 101) + '' '' + | |
| 133 | CONVERT(VA RCHAR(5), DATEADD (m inute, ' + CAST(@TIM E_ZONE_MIN UTES_OFFSE T AS varch ar) + ', D ISCHARGE.A PPOINTMENT _DATE ), 1 08) AS APP OINTMENT_D ATE, | |
| 134 | DISCH ARGE.STATU S AS CURRE NT_STATUS, | |
| 135 | CONVE RT(VARCHAR , DATEADD (minute, ' + CAST(@T IME_ZONE_M INUTES_OFF SET AS var char) + ', DISCH_REQ .SIGNED_DA TE ), 101) + '' '' + | |
| 136 | CO NVERT(VARC HAR(5), DA TEADD (min ute, ' + C AST(@TIME_ ZONE_MINUT ES_OFFSET AS varchar ) + ', DIS CH_REQ.SIG NED_DATE ) , 108) AS SIGNED_DAT E, | |
| 137 | CONVE RT(VARCHAR , DATEADD (minute, ' + CAST(@T IME_ZONE_M INUTES_OFF SET AS var char) + ', DISCHARGE _EVN.DISCH ARGED_DATE ), 101) + '' '' + | |
| 138 | CO NVERT(VARC HAR(5), DA TEADD (min ute, ' + C AST(@TIME_ ZONE_MINUT ES_OFFSET AS varchar ) + ', DIS CHARGE_EVN .DISCHARGE D_DATE ), 108) AS DI SCHARGED_D ATE, | |
| 139 | CONVE RT(VARCHAR , DATEADD (minute, ' + CAST(@T IME_ZONE_M INUTES_OFF SET AS var char) + ', DISCHARGE _EVN.DISCH ARGED_DATE ), 101) + '' '' + | |
| 140 | CONVE RT(VARCHAR (5), DATEA DD (minute , ' + CAST (@TIME_ZON E_MINUTES_ OFFSET AS varchar) + ', MOVEME NT_EVN.MOV EMENT_DATE ), 108) A S MOVEMENT _DATE, | |
| 141 | dbo.uf n_GetDateD iff(MOVEME NT_EVN.MOV EMENT_DATE ,DISCHARG E.APPOINTM ENT_DATE ) AS APPT_D IFF, | |
| 142 | dbo.uf n_GetDateD iff(DISCH_ REQ.SIGNED _DATE, MOV EMENT_EVN. MOVEMENT_D ATE) AS SI GNED_DIFF, | |
| 143 | HOSPI TAL_LOCATI ON.NAME AS CLICNIC_N AME | |
| 144 | FROM d bo.FACT_DI SCHARGE_IN T AS DISCH ARGE | |
| 145 | INNER JO IN dbo.DIM _HOSPITAL_ LOCATION_A PPOINTMENT AS HOSPIT AL_APPOINT MENT ON DI SCHARGE.HO SPITAL_LOC ATION_DIM_ ORGANIZATI ON_ID = HO SPITAL_APP OINTMENT.H OSPITAL_LO CATION_DIM _ORGANIZAT ION_ID AND | |
| 146 | HOSPITAL_A PPOINTMENT .FACILITY_ DIM_ORGANI ZATION_ID = ''' + ca st(@FACILI TY_ID as v archar) + ''' | |
| 147 | INNER JO IN #WARD A S W ON W.I D = DISCHA RGE.DIM_WA RD_ID | |
| 148 | INNER JO IN dbo.DIM _WARD AS W ARD ON WAR D.ID = W.I D | |
| 149 | INNER JO IN #PATIEN T AS PAT O N PAT.DIM_ PATIENT_ID = DISCHAR GE.DIM_PAT IENT_ID | |
| 150 | INNER JO IN dbo.DIM _BED AS BE D ON BED.I D = PAT.DI M_BED_ID | |
| 151 | INNER JO IN dbo.DIM _PATIENT A S PATIENT ON PATIENT .ID = PAT. DIM_PATIEN T_ID | |
| 152 | LEFT JOI N dbo.DIM_ ORGANIZATI ON AS HOSP ITAL_LOCAT ION ON HOS PITAL_LOCA TION.ID = HOSPITAL_A PPOINTMENT .HOSPITAL_ LOCATION_D IM_ORGANIZ ATION_ID | |
| 153 | LE FT JOIN DB O.FACT_DIS CHARGE_REQ AS DISCH_ REQ ON DIS CH_REQ.ID = | |
| 154 | (S ELECT MAX( ID) AS ID | |
| 155 | F ROM DBO.FA CT_DISCHAR GE_REQ AS DISCH_REQ | |
| 156 | W HERE DISCH _REQ.DIM_P ATIENT_ID = DISCHARG E.DIM_PATI ENT_ID | |
| 157 | A ND DISCH_R EQ.VISTA_S ITE_DIM_OR GANIZATION _ID = DISC HARGE.VIST A_SITE_DIM _ORGANIZAT ION_ID | |
| 158 | A ND ORDERED _DATE BETW EEN '''+ C ONVERT(VAR CHAR(25), @START_DAT E, 126) + | |
| 159 | ' '' AND ''' + CONVERT (VARCHAR(3 0), DATEAD D(ms, -3, @END_DATE + 1)) + ' '' ) | |
| 160 | LEFT JOI N DBO.FACT _DISCHARGE _EVN AS DI SCHARGE_EV N ON DISCH ARGE_EVN.I D = | |
| 161 | (S ELECT MAX( ID) AS ID | |
| 162 | FR OM DBO.FAC T_DISCHARG E_EVN AS D ISCH_EVN | |
| 163 | WH ERE DISCH_ EVN.DIM_PA TIENT_ID = DISCHARGE. DIM_PATIEN T_ID | |
| 164 | AN D DISCH_EV N.VISTA_SI TE_DIM_ORG ANIZATION_ ID = DISCH ARGE.VISTA _SITE_DIM_ ORGANIZATI ON_ID | |
| 165 | AN D ENTERED_ DATE BETWE EN '''+ CO NVERT(VARC HAR(25), @ START_DATE , 126) + | |
| 166 | ' '' AND ''' + CONVERT (VARCHAR(3 0), DATEAD D(ms, -3, @END_DATE + 1)) + ' '' ) | |
| 167 | LEFT JOI N DBO.FACT _MOVEMENT_ EVN AS MOV EMENT_EVN ON DISCHAR GE_EVN.ID = | |
| 168 | (S ELECT MAX( ID) AS ID | |
| 169 | FR OM DBO.FAC T_MOVEMENT _EVN AS MO VEMENT_EVN | |
| 170 | WH ERE MOVEME NT_EVN.DIM _PATIENT_I D =DISCHAR GE.DIM_PAT IENT_ID | |
| 171 | AN D MOVEMENT _EVN.VISTA _SITE_DIM_ ORGANIZATI ON_ID = DI SCHARGE.VI STA_SITE_D IM_ORGANIZ ATION_ID | |
| 172 | AN D ENTERED_ DATE BETWE EN '''+ CO NVERT(VARC HAR(25), @ START_DATE , 126) + | |
| 173 | ' '' AND ''' + CONVERT (VARCHAR(3 0), DATEAD D(ms, -3, @END_DATE + 1)) + ' '' )' | |
| 174 | ||
| 175 | SET @S QL_WHERE = ' WHERE D ISCHARGE.S TATUS NOT LIKE ''%CA NCELLED%'' AND DISCH ARGE.STATU S NOT LIKE ''%DISCON TINUED%'' AND | |
| 176 | DIS CHARGE.STA TUS NOT LI KE ''%COMP LETE%'' AN D DISCHARG E.IS_ACTIV E = 1 ' | |
| 177 | ||
| 178 | IF @PA TIENT_IDEN TIFIER IS NOT NULL | |
| 179 | SET @SQL _WHERE += ' AND PATI ENT.SOURCE _ID = ''' + @PATIENT _IDENTIFIE R + '''' | |
| 180 | ||
| 181 | IF @EN D_DATE IS NOT NULL | |
| 182 | SET @SQL _WHERE += ' AND DISC HARGE.APPO INTMENT_DA TE BETWEEN ''' + CON VERT(VARCH AR(25), @S TART_DATE, 126) + '' ' AND ''' + CONVERT( VARCHAR(25 ), @END_DA TE, 126) + '''' | |
| 183 | ELSE | |
| 184 | SET @SQL _WHERE += ' AND DISC HARGE.APPO INTMENT_DA TE > ''' + CONVERT(V ARCHAR(25) , @START_D ATE, 126) + '''' | |
| 185 | ||
| 186 | SET @S QL = @SQL_ SELECT + @ SQL_WHERE | |
| 187 | ||
| 188 | EXECUT E sp_execu tesql @SQL | |
| 189 | ||
| 190 | DROP T ABLE #WARD | |
| 191 | DROP T ABLE #PATI ENT | |
| 192 | ||
| 193 | END | |
| 194 | -- ELSE | |
| 195 | -- BEGI N | |
| 196 | -- SELECT N ULL AS WAR D_NAME, | |
| 197 | -- NULL AS BED_NAME, | |
| 198 | -- NULL AS PATIENT_N AME, | |
| 199 | -- NULL AS PT_SHORT, | |
| 200 | -- NULL AS APPOINTME NT_DATE, | |
| 201 | -- NULL AS CURRENT_S TATUS, | |
| 202 | -- NULL AS CLICNIC_N AME | |
| 203 | -- END | |
| 204 | ||
| 205 | DR OP TABLE # PERMISSION | |
| 206 | ||
| 207 | EN D --error | |
| 208 | END | |
| 209 | ||
| 210 | ||
| 211 | GO | |
| 212 | ||
| 213 |
Araxis Merge (but not the data content of this report) is Copyright © 1993-2016 Araxis Ltd (www.araxis.com). All rights reserved.