677. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 10/26/2017 10:44:45 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.

677.1 Files compared

# Location File Last Modified
1 OSCIF_BMS_v2_iter 2_September_2017.zip\BMS_Cand\Source\Sources\Database\BMSv2Updates\2.2.17.1 USP_Filter_Bed_Information.sql Wed Oct 18 19:03:30 2017 UTC
2 OSCIF_BMS_v2_iter 2_September_2017.zip\BMS_Cand\Source\Sources\Database\BMSv2Updates\2.2.17.1 USP_Filter_Bed_Information.sql Thu Oct 26 19:41:50 2017 UTC

677.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 2 718
Changed 1 2
Inserted 0 0
Removed 0 0

677.3 Comparison options

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

677.4 Active regular expressions

No regular expressions were active.

677.5 Comparison detail

  1   USE [BMS]
  2   GO
  3   /****** Ob ject:  Sto redProcedu re [dbo].[ usp_Filter _Bed_Infor mation]     Script Da te: 6/26/2 017 2:18:1 9 PM ***** */
  4   SET ANSI_N ULLS ON
  5   GO
  6   SET QUOTED _IDENTIFIE R ON
  7   GO
  8   -- ======= ========== ========== ========== ========
  9   -- Author:                silvic ap
  10   -- Create  date: 30.1 1.2011
  11   -- Descrip tion: Filt er bed inf ormation.
  12   -- ======= ========== ========== ========== ========
  13   -- ======= ========== ========== ========== ========
  14   -- Update  by:    PII
  15   -- Update  date: 5/29 /2012
  16   -- Descrip tion: Opti mizations.
  17   -- ======= ========== ========== ========== ========
  18   -- ======= ========== ========== ========== ========
  19   -- Update  by:   silv icap
  20   -- Update  date: 25.1 0.2012
  21   -- Descrip tion: Sepa rated orde rs from ac ts. 
  22   -- ======= ========== ========== ========== ========
  23  
  24   ALTER PROC EDURE [dbo ].[usp_Fil ter_Bed_In formation]       
  25           @W ARD_LIST N VARCHAR(MA X),
  26           @F ACILITY_UI D UNIQUEID ENTIFIER
  27   AS
  28   BEGIN
  29   SET NOCOUN T ON                            
  30                    
  31                    CREA TE TABLE # WARDS(WARD _UID UNIQU EIDENTIFIE R PRIMARY  KEY)
  32                    INSE RT INTO #W ARDS(WARD_ UID)
  33                    SELE CT WARD.VA LUE
  34                    FROM  dbo.fn_Sp lit(@WARD_ LIST, ',')  AS WARD 
  35                    
  36                    CREA TE TABLE # BED_CLEAN( ID INT PRI MARY KEY,  DOMAIN_ID  NVARCHAR(5 0), BED_UI D UNIQUEID ENTIFIER,  WARD_UID U NIQUEIDENT IFIER, EVE NT_IEN NVA RCHAR(50))
  37                    INSE RT INTO #B ED_CLEAN(I D, DOMAIN_ ID, BED_UI D, WARD_UI D, EVENT_I EN)
  38                    SELE CT BC.ID,  BC.DOMAIN_ ID, BC.BED _UID, BC.W ARD_UID, B C.EVENT_IE N
  39                    FROM  BED_CLEAN  AS BC
  40                    INNE R JOIN (SE LECT MAX(C LN.ID) AS  ID, CLN.BE D_UID
  41                                                FROM BED_ CLEAN CLN
  42                                                INNER JOI N #WARDS A S WARD ON  WARD.WARD_ UID = CLN. WARD_UID
  43                                                GROUP BY  BED_UID) M AX_BED_CLE AN 
  44                                                ON MAX_BE D_CLEAN.BE D_UID = BC .BED_UID A ND MAX_BED _CLEAN.ID  = BC.ID
  45                    WHER E BC.REQUE STED_DATE  >= DATEADD (HH, -72,  GETUTCDATE ()) AND (B C.COMPLETE D_DATE IS  NULL OR BC .COMPLETED _DATE >= D ATEADD(HH,  -2, GETUT CDATE()))                                     
  46                    
  47                    CREA TE NONCLUS TERED INDE X [IDX_BED _UID] ON [ #BED_CLEAN ] (BED_UID  ASC) INCL UDE (ID)
  48                    CREA TE NONCLUS TERED INDE X [IDX_BED _UID_EVENT _IEN] ON [ #BED_CLEAN ] (BED_UID  ASC, EVEN T_IEN ASC)  INCLUDE ( ID, DOMAIN _ID, WARD_ UID)
  49                                                                                                                              
  50                    CREA TE TABLE # BED_OCCUPA NCY_INFORM ATION 
  51                             (ACT_I D INT,                      
  52                             FLOW_I D UNIQUEID ENTIFIER,
  53                             DOMAIN _ID NVARCH AR(50),
  54                             PATIEN T_UID UNIQ UEIDENTIFI ER,   
  55                             BED_UI D UNIQUEID ENTIFIER,
  56                             BED_CL EAN_ID INT ,
  57                             BED_UN AVAILABLE_ ID INT,                   
  58                             WARD_U ID UNIQUEI DENTIFIER,  
  59                             MOVEME NT_DATE DA TETIME,
  60                             ADMISS ION_DATE D ATETIME,
  61                             DISCHA RGE_ORDER_ TEXT NVARC HAR(MAX),
  62                             DISCHA RGE_REQ_ID  INT,
  63                             IS_VAC ATED BIT,
  64                             INTERW ARD_TRANSF ER INT,
  65                             LEVEL_ OF_CARE NV ARCHAR(50) ,
  66                             LEVEL_ OF_CARE_DA TE DATETIM E,
  67                             LEVEL_ OF_CARE_CH ANGE_DATE  DATETIME)
  68                             
  69                    CREA TE TABLE # VACATED_BE D
  70                             (ACT_I D INT,                      
  71                             FLOW_I D UNIQUEID ENTIFIER,
  72                             DOMAIN _ID NVARCH AR(50),
  73                             PATIEN T_UID UNIQ UEIDENTIFI ER,   
  74                             BED_UI D UNIQUEID ENTIFIER,
  75                             BED_CL EAN_ID INT ,
  76                             BED_UN AVAILABLE_ ID INT,                   
  77                             WARD_U ID UNIQUEI DENTIFIER,  
  78                             MOVEME NT_DATE DA TETIME,
  79                             ADMISS ION_DATE D ATETIME,
  80                             DISCHA RGE_ORDER_ TEXT NVARC HAR(MAX),
  81                             DISCHA RGE_REQ_ID  INT,
  82                             IS_VAC ATED BIT,
  83                             INTERW ARD_TRANSF ER INT,
  84                             LEVEL_ OF_CARE NV ARCHAR(50) ,
  85                             LEVEL_ OF_CARE_DA TE DATETIM E,
  86                             LEVEL_ OF_CARE_CH ANGE_DATE  DATETIME)                       
  87  
  88                    CREA TE TABLE # ACTIVE_ADM ISSION(
  89                             ADMISS ION_ID INT  NOT NULL  PRIMARY KE Y,
  90                             CREATE D_DATE DAT ETIME NULL )
  91                    
  92                    CREA TE TABLE # ADMISSION_ AND_TRANSF ER(
  93                             ADMISS ION_ID INT  NOT NULL,
  94                             BED_UI D UNIQUEID ENTIFIER,
  95                             CREATE D_DATE DAT ETIME NULL ,
  96                             IS_ADM ISSION_EVN  BIT)
  97                             
  98                    --GE T ACTIVE A DMISSION
  99                    --If  more pati ents were  admitted i n the same  bed on th e whiteboa rd is disp layed last  patient a dmitted
  100                    CREA TE CLUSTER ED INDEX [ IDX_ADMISS ION_ID] ON  [#ADMISSI ON_AND_TRA NSFER] (AD MISSION_ID )
  101                    CREA TE NONCLUS TERED INDE X [IDX_BED _UID] ON [ #ADMISSION _AND_TRANS FER] (BED_ UID ASC) I NCLUDE (CR EATED_DATE
  102                    CREA TE NONCLUS TERED INDE X [IDX_BED _UID_CREAT ION_DATE]  ON [#ADMIS SION_AND_T RANSFER] ( BED_UID AS C , CREATE D_DATE ASC ) INCLUDE  (ADMISSION _ID)
  103                    
  104                    INSE RT INTO #A DMISSION_A ND_TRANSFE R(ADMISSIO N_ID, BED_ UID, CREAT ED_DATE, I S_ADMISSIO N_EVN)
  105                    SELE CT ADM_EVN .ID, ADM_E VN.BED_UID , ADM_EVN. ADMISSION_ DATE, 1
  106                    FROM  ADMISSION _EVN AS AD M_EVN
  107                    INNE R JOIN #WA RDS AS WAR D ON WARD. WARD_UID =  ADM_EVN.W ARD_UID
  108                    WHER E ADM_EVN. HAS_DISCHA RGE = 0
  109  
  110                    INSE RT INTO #A DMISSION_A ND_TRANSFE R(ADMISSIO N_ID, BED_ UID, CREAT ED_DATE, I S_ADMISSIO N_EVN)
  111                    SELE CT MOV_EVN .ADMISSION _ID, MOV_E VN.BED_UID , MOV_EVN. MOVEMENT_D ATE, 0
  112                    FROM  MOVEMENT_ EVN AS MOV _EVN
  113                    INNE R JOIN (SE LECT MAX(L AST_MOV_EV N.MOVEMENT _DATE) AS  MOVEMENT_D ATE, LAST_ MOV_EVN.AD MISSION_ID
  114                                               FROM MOVEM ENT_EVN LA ST_MOV_EVN
  115                                               INNER JOIN  #ADMISSIO N_AND_TRAN SFER AS AD M_EVN ON A DM_EVN.ADM ISSION_ID  = LAST_MOV _EVN.ADMIS SION_ID
  116                                               GROUP BY L AST_MOV_EV N.ADMISSIO N_ID) MAX_ ME_EVENT 
  117                                               ON MAX_ME_ EVENT.MOVE MENT_DATE  = MOV_EVN. MOVEMENT_D ATE AND MA X_ME_EVENT .ADMISSION _ID = MOV_ EVN.ADMISS ION_ID
  118                                              
  119                    DELE TE DEL FRO M #ADMISSI ON_AND_TRA NSFER AS D EL
  120                    INNE R JOIN #AD MISSION_AN D_TRANSFER  AS ADM ON  ADM.ADMIS SION_ID =  DEL.ADMISS ION_ID AND  ADM.BED_U ID <> DEL. BED_UID AN D ADM.IS_A DMISSION_E VN = 1
  121                    WHER E DEL.IS_A DMISSION_E VN = 0
  122  
  123                    INSE RT INTO #A CTIVE_ADMI SSION(ADMI SSION_ID,  CREATED_DA TE)
  124                    SELE CT DISTINC T ADMISSIO N_INFO.ADM ISSION_ID,  ADMISSION _INFO.CREA TED_DATE
  125                    FROM  #ADMISSIO N_AND_TRAN SFER AS AD MISSION_IN FO
  126                    INNE R JOIN 
  127                    (    SELECT MAX (CREATED_D ATE) AS CR EATED_DATE , BED_UID
  128                             FROM # ADMISSION_ AND_TRANSF ER
  129                             GROUP  BY BED_UID
  130                    ) LA ST_ADMISIS ON_INFO ON  LAST_ADMI SISON_INFO .CREATED_D ATE = ADMI SSION_INFO .CREATED_D ATE AND LA ST_ADMISIS ON_INFO.BE D_UID = AD MISSION_IN FO.BED_UID
  131  
  132                    DROP  TABLE #AD MISSION_AN D_TRANSFER
  133                    
  134                    INSE RT INTO #B ED_OCCUPAN CY_INFORMA TION (
  135                             ACT_ID ,
  136                             FLOW_I D,
  137                             DOMAIN _ID,
  138                             PATIEN T_UID,
  139                             BED_UI D,
  140                             BED_CL EAN_ID,
  141                             BED_UN AVAILABLE_ ID,                       
  142                             WARD_U ID,
  143                             MOVEME NT_DATE,
  144                             ADMISS ION_DATE,
  145                             DISCHA RGE_ORDER_ TEXT,
  146                             DISCHA RGE_REQ_ID ,
  147                             INTERW ARD_TRANSF ER,
  148                             LEVEL_ OF_CARE,
  149                             LEVEL_ OF_CARE_DA TE,
  150                             LEVEL_ OF_CARE_CH ANGE_DATE)
  151                    SELE CT                   
  152                             [AE].[ ID],                        
  153                             NULL,
  154                             [AE].[ DOMAIN_ID] ,
  155                             [AE].[ PATIENT_UI D],
  156                             [AE].[ BED_UID],
  157                             [BC].[ ID],
  158                             [BU].[ ACT_ID],           
  159                             [AE].[ WARD_UID],
  160                             [ADM_E VN].[CREAT ED_DATE] A S [MOVEMEN T_DATE],
  161                         [AE].[ADMI SSION_DATE ] AS ADMIS SION_DATE,
  162                             CASE 
  163                                      WHEN DRE Q.ID IS NO T NULL THE N 'DISCHAR GE ORDER'
  164                                      WHEN ADR EQ.ID IS N OT NULL 
  165                                                 AND ( (  ADREQ.ORDE R_TEXT LIK E '%ANTICI PATE%' OR  ADREQ.ORDE R_TEXT LIK E '%PLANNE D%') AND
  166                                                                (ADR EQ.ORDER_T EXT LIKE ' %DISCHARGE %') )
  167                                                 THEN 'AN TICIPATED  DISCHARGE  ORDER'
  168                                      WHEN DI. ID IS NOT  NULL THEN  'DISCHARGE  APPOINTME NT'
  169                                      ELSE NUL L
  170                             END,
  171                             CASE 
  172                                      WHEN DRE Q.ID IS NO T NULL THE N DREQ.ID
  173                                      WHEN DRE Q.ID IS NU LL AND ADR EQ.ID IS N OT NULL TH EN ADREQ.I D
  174                                      ELSE NUL L
  175                             END,
  176                             CASE 
  177                                      WHEN DRE Q.ID IS NU LL AND ADR EQ.ID IS N ULL AND MR .ID IS NOT  NULL THEN  MR.ID
  178                                      ELSE  NU LL
  179                             END      AS INTER WARD_TRANS FER,                    
  180                             [ALOC] .[LEVEL_OF _CARE] AS  LEVEL_OF_C ARE,
  181                             [ALOC] .[CREATION _DATE] AS  LEVEL_OF_C ARE_DATE,
  182                             [ALOC] .[LEVEL_OF _CARE_CHAN GE_DATE] A S LEVEL_OF _CARE_CHAN GE_DATE
  183                    FROM  ADMISSION _EVN AS AE
  184                             INNER  JOIN #ACTI VE_ADMISSI ON AS ADM_ EVN ON ADM _EVN.ADMIS SION_ID =  AE.ID
  185                             LEFT J OIN ADMISS ION_LEVEL_ OF_CARE AS  ALOC ON A E.ID = ALO C.ADMISSIO N_ID                                     
  186                             LEFT J OIN #BED_C LEAN AS BC  ON BC.BED _UID = AE. BED_UID   
  187                             LEFT J OIN BED_UN AVAILABLE  AS BU ON B U.BED_UID  = AE.BED_U ID AND BU. COMPLETED_ DATE IS NU LL
  188                             
  189                             LEFT J OIN (SELEC T MAX(CAST (M_REQ.IEN  as BIGINT )) AS IEN,  M_REQ.PAT IENT_UID,  M_REQ.WARD _UID, M_RE Q.VISTA_SI TE_UID
  190                                                  FROM MO VEMENT_REQ  AS M_REQ
  191                                                  INNER J OIN ORDER_ FACILITY A S O_FAC ON  M_REQ.ID  = O_FAC.OR DER_ID AND  O_FAC.FAC ILITY_UID  = @FACILIT Y_UID AND  O_FAC.ORDE R_TYPE ='T RA'
  192                                                  WHERE M _REQ.IS_AC TIVE = 1
  193                                                  GROUP B Y M_REQ.PA TIENT_UID,  M_REQ.WAR D_UID,  M_ REQ.VISTA_ SITE_UID)  MAX_MR_ORD ER 
  194                                                  ON AE.V ISTA_SITE_ UID = MAX_ MR_ORDER.V ISTA_SITE_ UID AND  A E.WARD_UID  = MAX_MR_ ORDER.WARD _UID AND A E.PATIENT_ UID = MAX_ MR_ORDER.P ATIENT_UID
  195                             LEFT J OIN MOVEME NT_REQ AS  MR ON MAX_ MR_ORDER.I EN = CAST( MR.IEN AS  BIGINT) AN D MAX_MR_O RDER.VISTA _SITE_UID  = MR.VISTA _SITE_UID            
  196                             
  197                             LEFT J OIN (SELEC T MAX(CAST (D_REQ.IEN  as BIGINT )) AS IEN,  D_REQ.PAT IENT_UID,  D_REQ.WARD _UID, D_RE Q.VISTA_SI TE_UID
  198                                                  FROM DI SCHARGE_RE Q AS D_REQ
  199                                                  INNER J OIN ORDER_ FACILITY A S O_FAC ON  D_REQ.ID  = O_FAC.OR DER_ID AND  O_FAC.FAC ILITY_UID  = @FACILIT Y_UID AND  O_FAC.ORDE R_TYPE ='D IS'
  200                                                  WHERE D _REQ.IS_AC TIVE = 1 A ND D_REQ.O RDERABLE_I TEM_ID IS  NOT NULL
  201                                                  GROUP B Y D_REQ.PA TIENT_UID,  D_REQ.WAR D_UID, D_R EQ.VISTA_S ITE_UID) M AX_DR_ORDE
  202                                                  ON AE.W ARD_UID =  MAX_DR_ORD ER.WARD_UI D AND 
  203                                                          AE.PATIENT _UID = MAX _DR_ORDER. PATIENT_UI D AND
  204                                                          AE.VISTA_S ITE_UID =  MAX_DR_ORD ER.VISTA_S ITE_UID
  205                             LEFT J OIN DISCHA RGE_REQ AS  DREQ ON M AX_DR_ORDE R.IEN = CA ST(DREQ.IE N AS BIGIN T) AND MAX _DR_ORDER. VISTA_SITE _UID = DRE Q.VISTA_SI TE_UID
  206                             
  207                             LEFT J OIN (SELEC T MAX(CAST (D_REQ.IEN  as BIGINT )) AS IEN,  D_REQ.PAT IENT_UID,  D_REQ.WARD _UID, D_RE Q.VISTA_SI TE_UID
  208                                                  FROM DI SCHARGE_RE Q AS D_REQ
  209                                                  INNER J OIN ORDER_ FACILITY A S O_FAC ON  D_REQ.ID  = O_FAC.OR DER_ID AND  O_FAC.FAC ILITY_UID  = @FACILIT Y_UID AND  O_FAC.ORDE R_TYPE ='D IS'
  210                                                  WHERE D _REQ.IS_AC TIVE = 1 A ND D_REQ.O RDERABLE_I TEM_ID is  null
  211                                                  GROUP B Y D_REQ.PA TIENT_UID,  D_REQ.WAR D_UID, D_R EQ.VISTA_S ITE_UID) M AX_ADR_ORD ER 
  212                                                  ON AE.W ARD_UID =  MAX_ADR_OR DER.WARD_U ID AND 
  213                                                          AE.PATIENT _UID = MAX _ADR_ORDER .PATIENT_U ID AND
  214                                                          AE.VISTA_S ITE_UID =  MAX_ADR_OR DER.VISTA_ SITE_UID
  215                             LEFT J OIN DISCHA RGE_REQ AS  ADREQ ON  MAX_ADR_OR DER.IEN =  CAST(ADREQ .IEN AS BI GINT) AND  MAX_ADR_OR DER.VISTA_ SITE_UID =  ADREQ.VIS TA_SITE_UI D
  216                             
  217                             LEFT J OIN (SELEC T MAX(D_IN T.APPOINTM ENT_DATE)  AS APPOINT MENT_DATE,  D_INT.PAT IENT_UID,  D_INT.WARD _UID, D_IN T.VISTA_SI TE_UID
  218                                                  FROM DI SCHARGE_IN T AS D_INT  
  219                                                  INNER J OIN HOSPIT AL_LOCATIO N_APPOINTM ENT AS HLA  ON D_INT. HOSPITAL_L OCATION_UI D = HLA.HO SPITAL_LOC ATION_UID  AND HLA.FA CILITY_UID  = @FACILI TY_UID
  220                                                  WHERE D _INT.APPOI NTMENT_DAT E > GETUTC DATE() AND  
  221                                                                 D_I NT.STATUS  NOT LIKE ' %CANCELLED %' AND D_I NT.STATUS  NOT LIKE ' %DISCONTIN UED%' AND 
  222                                                                 D_I NT.STATUS  NOT LIKE ' %COMPLETE% ' AND D_IN T.IS_ACTIV E = 1 
  223                                                  GROUP B Y D_INT.PA TIENT_UID,  D_INT.WAR D_UID, D_I NT.VISTA_S ITE_UID) M AX_DI_APPO IMENT 
  224                                                  ON AE.W ARD_UID =  MAX_DI_APP OIMENT.WAR D_UID AND 
  225                                                          AE.PATIENT _UID = MAX _DI_APPOIM ENT.PATIEN T_UID AND
  226                                                          AE.VISTA_S ITE_UID =  MAX_DI_APP OIMENT.VIS TA_SITE_UI D AND
  227                                                          AE.ADMISSI ON_DATE <  MAX_DI_APP OIMENT.APP OINTMENT_D ATE                                      
  228                             LEFT J OIN DISCHA RGE_INT AS  DI ON MAX _DI_APPOIM ENT.APPOIN TMENT_DATE  = DI.APPO INTMENT_DA TE AND MAX _DI_APPOIM ENT.PATIEN T_UID = DI .PATIENT_U ID      AN D DI.VISTA _SITE_UID  = MAX_DI_A PPOIMENT.V ISTA_SITE_ UID                                                                                         
  229                    
  230                    DROP  TABLE #AC TIVE_ADMIS SION
  231                                      
  232                    UPDA TE #BED_OC CUPANCY_IN FORMATION
  233                    SET  DISCHARGE_ ORDER_TEXT  = ' '
  234                             WHERE  DISCHARGE_ REQ_ID IS  NOT NULL A ND (DISCHA RGE_ORDER_ TEXT IS NU LL OR LEN( DISCHARGE_ ORDER_TEXT ) = 0)
  235                             
  236                    CREA TE NONCLUS TERED INDE X [IDX_BED _UID] ON [ #BED_OCCUP ANCY_INFOR MATION] (B ED_UID ASC )
  237                    
  238                    DECL ARE @MAX_B U TABLE (A CT_ID INT,  BED_UID U NIQUEIDENT IFIER, PRI MARY KEY ( ACT_ID), U NIQUE CLUS TERED (BED _UID))
  239                    INSE RT INTO @M AX_BU(ACT_ ID, BED_UI D)
  240                    SELE CT MAX(BU. ACT_ID) AS  ACT_ID, B U.BED_UID
  241                    FROM  BED_UNAVA ILABLE AS  BU 
  242                    INNE R JOIN BED _UNAVAILAB LE_WARD AS  BUW ON BU W.BED_UNAV AILABLE_ID  = BU.ACT_ ID
  243                    INNE R JOIN #WA RDS AS WAR D ON WARD. WARD_UID =  BUW.WARD_ UID
  244                    WHER E BU.COMPL ETED_DATE  IS NULL
  245                    GROU P BY BU.BE D_UID                                
  246  
  247                    INSE RT INTO #V ACATED_BED  
  248                             (ACT_I D, 
  249                             DOMAIN _ID,
  250                             BED_UI D,
  251                             BED_CL EAN_ID,
  252                             BED_UN AVAILABLE_ ID,
  253                             WARD_U ID,                
  254                             IS_VAC ATED)
  255                    SELE CT DISTINC T
  256                             ISNULL (DEVN.ID,  BC.ID), 
  257                             ISNULL (DEVN.DOMA IN_ID, BC. DOMAIN_ID) ,
  258                             BC.BED _UID, 
  259                             BC.ID  AS BED_CLE AN_ID,
  260                             BU.ACT _ID, 
  261                             BC.WAR D_UID,
  262                             1
  263                    FROM  #BED_CLEA N AS BC
  264                             LEFT O UTER JOIN  #BED_OCCUP ANCY_INFOR MATION AS  BO ON BC.B ED_UID = B O.BED_UID                       
  265                             LEFT J OIN @MAX_B U AS BU ON  BU.BED_UI D = BC.BED _UID                                                                                                                                                            
  266                             LEFT J OIN (SELEC T BED_UID  , VISTA_SI TE_UID, MA X(CAST(IEN  AS BIGINT )) AS MAX_ DE_IEN 
  267                                                       FR OM DISCHAR GE_EVN 
  268                                                       GR OUP BY BED _UID, VIST A_SITE_UID ) DA ON DA .BED_UID =  BC.BED_UI D AND BC.E VENT_IEN =  DA.MAX_DE _IEN
  269                             LEFT J OIN DISCHA RGE_EVN AS  DEVN ON C AST(DEVN.I EN AS BIGI NT) = DA.M AX_DE_IEN  AND DEVN.V ISTA_SITE_ UID = DA.V ISTA_SITE_ UID
  270                    WHER E BO.BED_U ID IS NULL
  271                    
  272                    CREA TE NONCLUS TERED INDE X [IDX_BED _UID] ON [ #VACATED_B ED] (BED_U ID ASC)
  273                              
  274                    INSE RT INTO #V ACATED_BED  
  275                             (ACT_I D, 
  276                             FLOW_I D, 
  277                             DOMAIN _ID,
  278                             BED_UI D,                          
  279                             BED_UN AVAILABLE_ ID)
  280                    SELE CT DACT.ID
  281                             DACT.F LOW_ID, 
  282                             DACT.D OMAIN_ID, 
  283                             BU.BED _UID,                                
  284                             BU.ACT _ID                                  
  285                    FROM  @MAX_BU A S BU
  286                             INNER  JOIN ACT A S DACT ON  DACT.ID =  BU.ACT_ID                                       
  287                             LEFT O UTER JOIN  #BED_OCCUP ANCY_INFOR MATION AS  BO ON BU.B ED_UID = B O.BED_UID
  288                             LEFT O UTER JOIN  #VACATED_B ED AS VB O N BU.BED_U ID = VB.BE D_UID
  289                    WHER E BO.BED_U ID IS NULL  AND VB.BE D_UID IS N ULL                                    
  290                    
  291                    SELE CT DISTINC T RESULT.A CT_ID AS A CT_ID,                                   
  292                                      RESULT.F LOW_ID AS  FLOW_ID,
  293                                      RESULT.D OMAIN_ID A S DOMAIN_I D,                            
  294                                      RESULT.P ATIENT_UID  AS PATIEN T_UID,
  295                                      RESULT.B ED_UID AS  EVN_BED_UI D,
  296                                      RESULT.W ARD_UID AS  EVN_WARD_ UID,                                                                               
  297                                      BC.REQUE STED_DATE  AS BED_CLE AN_REQUEST ED_DATE,
  298                                      BC.ACCEP TED_DATE A S BED_CLEA N_ACCEPTED _DATE,
  299                                      BC.COMPL ETED_DATE  AS BED_CLE AN_COMPLET ED_DATE,  
  300                                      BOOSS.CO DE AS BED_ AVAILABILI TY_STATUS,                             
  301                                      BOOSR.DI SPLAY_NAME  AS REASON ,                             
  302                                      BU.IS_UN AVAILABLE_ FROM_VISTA  AS IS_UNA VAILABLE_F ROM_VISTA,
  303                                      RESULT.D ISCHARGE_O RDER_TEXT  AS  DISCHA RGE_ORDER_ TEXT,
  304                                      RESULT.M OVEMENT_DA TE AS MOVE MENT_DATE,
  305                                      RESULT.I S_VACATED  AS IS_VACA TED,
  306                                      RESULT.I NTERWARD_T RANSFER,
  307                                      RESULT.A DMISSION_D ATE AS ADM ISSION_DAT E,
  308                                      RESULT.L EVEL_OF_CA RE AS LEVE L_OF_CARE,
  309                                      RESULT.L EVEL_OF_CA RE_DATE AS  LEVEL_OF_ CARE_DATE,
  310                                      RESULT.L EVEL_OF_CA RE_CHANGE_ DATE AS LE VEL_OF_CAR E_CHANGE_D ATE,
  311                                      ICON_FLA G_IDS_OF_B ED = STUFF ( (SELECT  ',' + CAST (ICON_FLAG _ID AS NVA RCHAR(10))
  312                                                                          FROM  ICON_ASSOC IATION
  313                                                                          WHERE  BED_UID =  RESULT.BE D_UID AND  ICON_FLAG_ ID IS NOT  NULL
  314                                                                          FOR X ML PATH('' )), 
  315                                                                         1, 1,  ''),
  316                                      ICON_FLA G_IDS_OF_P ATIENT = S TUFF( (SEL ECT ',' +  CAST(ICON_ FLAG_ID AS  NVARCHAR( 10))
  317                                                                          FROM  ICON_ASSOC IATION
  318                                                                          WHERE  PATIENT_U ID = RESUL T.PATIENT_ UID AND IC ON_FLAG_ID  IS NOT NU LL
  319                                                                          FOR X ML PATH('' )), 1, 1,  ''),
  320                                      ICON_FLA G_FACILITY _IDS_OF_BE D = STUFF(  (SELECT ' ,' + CAST( IFF.ICON_F LAG_ID AS  NVARCHAR(1 0))
  321                                                                          FROM  ICON_ASSOC IATION AS  ICON_ASSOC _OF_BED
  322                                                                          INNER  JOIN ICON _FLAG_FACI LITY AS IF F ON IFF.I D = ICON_A SSOC_OF_BE D.ICON_FLA G_FACILITY _ID
  323                                                                          WHERE  IFF.FACIL ITY_UID =  @FACILITY_ UID AND IC ON_ASSOC_O F_BED.BED_ UID = RESU LT.BED_UID  AND ICON_ ASSOC_OF_B ED.ICON_FL AG_FACILIT Y_ID IS NO T NULL
  324                                                                          FOR X ML PATH('' )), 1, 1,  ''),
  325                                      ICON_FLA G_FACILITY _IDS_OF_PA TIENT = ST UFF( (SELE CT ',' + C AST(IFF.IC ON_FLAG_ID  AS NVARCH AR(10))
  326                                                                          FROM  ICON_ASSOC IATION AS  ICON_ASSOC _OF_PATIEN T
  327                                                                          INNER  JOIN ICON _FLAG_FACI LITY AS IF F ON IFF.I D = ICON_A SSOC_OF_PA TIENT.ICON _FLAG_FACI LITY_ID
  328                                                                          WHERE  IFF.FACIL ITY_UID =  @FACILITY_ UID AND IC ON_ASSOC_O F_PATIENT. PATIENT_UI D = RESULT .PATIENT_U ID AND ICO N_ASSOC_OF _PATIENT.I CON_FLAG_F ACILITY_ID  IS NOT NU LL
  329                                                                          FOR X ML PATH('' )), 1, 1,  ''),
  330                                      A.PATIEN T_UID AS W AITING_LIS T_PATIENT_ UID,      
  331                                ' -  Bed Assig ned - {0}  from ' + i snull(WA.D ISPLAY_NAM E,'') + '  - ' + isnu ll(WL.COMM ENTS,'') A S WAITING_ LIST_INFO,
  332                                      WL_EVACU ATION.IS_E VACUATION_ PATIENT AS  IS_EVACUA TION_PATIE NT,
  333                                      EVACUATI ON_DISPOSI TION_STATU S.DISPLAY_ NAME AS EV ACUATION_D ISPOSITION _STATUS                                
  334                    FROM  
  335                             (SELEC T * FROM # BED_OCCUPA NCY_INFORM ATION
  336                             UNION 
  337                             SELECT  * FROM #V ACATED_BED ) AS RESUL T
  338                                      LEFT JOI N BED_CLEA N AS BC ON  BC.ID = R ESULT.BED_ CLEAN_ID
  339                                      LEFT JOI N BED_UNAV AILABLE AS  BU ON BU. ACT_ID = R ESULT.BED_ UNAVAILABL E_ID
  340                                      LEFT JOI N CONCEPT  AS BOOSS O N BOOSS.ID  = BU.TYPE _ID
  341                                      LEFT JOI N CONCEPT  AS BOOSR O N BOOSR.ID  = BU.REAS ON_ID                              
  342                                      LEFT JOI N WAITING_ LIST WL ON  WL.REQUES TED_BED_UI D = RESULT .BED_UID A ND WL.REMO VED_DATE I S NULL AND  WL.REQUES TED_BED_UI D IS NOT N ULL                                                          
  343                                      LEFT JOI N CONCEPT  AS WA ON W L.WAITING_ AREA_ID =  WA.ID
  344                                      LEFT JOI N ACT AS A  ON A.ID =  WL.ACT_ID           
  345                                      LEFT JOI N (SELECT  MAX(A_EVAC UATION.ID)  AS ID, A_ EVACUATION .PATIENT_U ID AS PATI ENT_UID
  346                                                           FROM ACT  AS A_EVACU ATION
  347                                                                INNE R JOIN WAI TING_LIST  WL_EVACUAT ION ON WL_ EVACUATION .REMOVED_D ATE IS NUL L AND WL_E VACUATION. ACT_ID = A _EVACUATIO N.ID
  348                                                           GROUP BY  A_EVACUATI ON.PATIENT _UID)
  349                                                           EVACUATIO N_WAITING_ LIST ON EV ACUATION_W AITING_LIS T.PATIENT_ UID = RESU LT.PATIENT _UID
  350                                      LEFT JOI N WAITING_ LIST WL_EV ACUATION O N WL_EVACU ATION.ACT_ ID = EVACU ATION_WAIT ING_LIST.I D
  351                                      LEFT JOI N CONCEPT  AS EVACUAT ION_DISPOS ITION_STAT US ON EVAC UATION_DIS POSITION_S TATUS.ID =  WL_EVACUA TION.EVACU ATION_DISP OSITION_ST ATUS_ID                                                                        
  352  
  353           DR OP TABLE # WARDS
  354           DR OP TABLE # BED_OCCUPA NCY_INFORM ATION
  355           DR OP TABLE # VACATED_BE D
  356           DR OP TABLE # BED_CLEAN
  357  
  358   END
  359  
  360   SET QUOTED _IDENTIFIE R ON