101. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 3/21/2018 5:29:12 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.

101.1 Files compared

# Location File Last Modified
1 Wed Mar 21 21:29:12 2018 UTC
2 AHOBPRe_v4.3.15_bld3.zip\DatabaseScripts\AHOBPR\Increment 2\Prod\Increment 2b - 20150915\AHOBPR_Database_1_0_51.zip Registry.AHOBPR.Database.Rollback.sql Thu Sep 10 16:24:54 2015 UTC

101.2 Comparison summary

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

101.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

101.4 Active regular expressions

No regular expressions were active.

101.5 Comparison detail

        1  
        2   :setvar Da tabaseName  "Registry "
        3   :setvar Ma jorRelease Number "1"
        4   :setvar Mi norRelease Number "0"
        5   :setvar Po intRelease Number "50 "
        6   :setvar De ployVersio n "2015082 0.1"
        7   PRINT ' 
        8   ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ------
        9   Registry.A HOBPR.Data base.Rollb ack.sql
        10  
        11   Version Re lease $(Ma jorRelease Number).$( MinorRelea seNumber). $(PointRel easeNumber )
        12  
        13   Build $(De ployVersio n)
        14  
        15   ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ------
        16    ';
        17   PRINT 'Sta rted ' + C AST(GETDAT E() as var char(20))  + '.';
        18   PRINT ' 
        19   ********** ********** ********** ********** ********** *******
        20   NOTE: This  script mu st be run  with SQLCM D Mode tur ned on.
        21   ********** ********** ********** ********** ********** *******
        22  
        23   ';
        24   GO
        25   :on error  exit
        26   GO
        27   :setvar __ IsSqlCmdEn abled "Tru e"
        28   /*
        29   Detect SQL CMD mode a nd disable  script ex ecution if  SQLCMD mo de is not  supported.
        30   To re-enab le the scr ipt after  enabling S QLCMD mode , execute  the follow ing:
        31   SET NOEXEC  OFF; 
        32   */
        33   GO
        34   IF N'$(__I sSqlCmdEna bled)' NOT  LIKE N'Tr ue'
        35       BEGIN
        36           PR INT N'SQLC MD mode mu st be enab led to suc cessfully  execute th is script. ';
        37           SE T NOEXEC O N;
        38       END
        39  
        40   GO
        41  
        42   USE [$(Dat abaseName) ]
        43   GO
        44  
        45   PRINT 'Cre ate TRIGGE R TRG_REGI STRANT_JSO N_INSERT.. .';
        46   GO
        47  
        48   CREATE TRI GGER [AHOB PR].[TRG_R EGISTRANT_ JSON_INSER T]
        49       ON [AH OBPR].[REG ISTRANT_JS ON]
        50       FOR IN SERT
        51       AS 
        52       BEGIN
        53           SE T NoCount  ON
        54           DE CLARE @reg istrantJso nId INT, @ objectId V ARCHAR(256 ), @object Type VARCH AR(100),   @CreatedBy  VARCHAR(1 00);
        55           
        56           SE LECT @regi strantJson Id = REGIS TRANT_JSON _ID, 
        57                   @obje ctId   = [ OBJECT_ID]
        58                   @obje ctType = [ OBJECT_TYP E],
        59                   @Crea tedBy  = [ CREATEDBY]  
        60              FROM INSER TED;
        61           
        62           --  Delete pr evious rec ords for t he same ob ject ID an d object t ype
        63           DE LETE FROM  [AHOBPR].[ REGISTRANT _JSON]
        64           WH ERE REGIST RANT_JSON_ ID != @reg istrantJso nId
        65                AND [OBJ ECT_ID] =  @objectId
        66                AND [OBJ ECT_TYPE]  = @objectT ype;
        67  
        68           --  Insert to  JSON_QUEU E table
        69           IN SERT INTO  [AHOBPR].[ JSON_QUEUE ] ([REGIST RANT_JSON_ ID], [CREA TED], [UPD ATED], [CR EATEDBY],  [UPDATEDBY ])
        70           VA LUES (@reg istrantJso nId, GETDA TE(),GETDA TE(),@Crea tedBy,@Cre atedBy);      
        71       END
        72   GO
        73  
        74   PRINT 'DRO P PROCEDUR E SP_JsonG etCurrent. ..';
        75   GO
        76  
        77   IF  EXISTS  (SELECT *  FROM sys. objects WH ERE object _id = OBJE CT_ID(N'[A HOBPR].[SP _JsonGetCu rrent]') A ND type in  (N'P', N' PC'))
        78   DROP PROCE DURE [AHOB PR].[SP_Js onGetCurre nt]
        79   GO
        80  
        81   PRINT 'DRO P PROCEDUR E SP_GetJs onQueue... ';
        82   GO
        83   IF  EXISTS  (SELECT *  FROM sys. objects WH ERE object _id = OBJE CT_ID(N'[A HOBPR].[sp _getJsonQu eue]') AND  type in ( N'P', N'PC '))
        84   DROP PROCE DURE [AHOB PR].[SP_Ge tJsonQueue ]
        85   GO
        86  
        87  
        88   PRINT 'ALT ER PROCEDU RE SP_Upda teFromCDW. ..';
        89   GO
        90   -- ======= ========== ========== ========== ========
        91   -- Author:                Bruce  Clegg
        92   -- Create  date: 6/12 /2015
        93   -- Descrip tion: Call ed after l oading CDW  Staging t ables
        94   -- 08/12/2 015 - Set  Gender to  MALE and F EMALE
        95   -- ======= ========== ========== ========== ========
        96   ALTER PROC EDURE [AHO BPR].[SP_U pdateFromC DW]
        97   AS
        98   BEGIN
        99  
        100     DECLARE  @Now DATET IME2(0) =  GETDATE();
        101     DECLARE  @ProcName  VARCHAR(30 ) = 'AHOBP R.SP_Updat eFromCDW';
        102  
        103     PRINT 'S et Institu tion ID in  Staged Pa tient';
        104     
        105     WITH Src
        106     AS(
        107     SELECT R EGISTRANT_ ID
        108                ,Preferr edInstitut ionCode
        109                ,Inst.ID
        110       FROM [ AHOBPR].[S TAGED_PATI ENT] Stg
        111       JOIN A HOBPR.VIEW _INSTITUTI ON Inst ON  Inst.STAT IONNUMBER  = Stg.Pref erredInsti tutionCode
        112       )
        113       MERGE  INTO [AHOB PR].[STAGE D_PATIENT]  AS Tgt
        114       USING  Src
        115               ON Tgt.RE GISTRANT_I D = Src.RE GISTRANT_I D
        116       WHEN M ATCHED
        117       THEN U PDATE
        118                         SET Tgt.ST D_INSTITUT ION_ID = S rc.ID;
        119     
        120     PRINT 'U pdate Regi strant fro m staged p atient...' ;
        121  
        122     WITH Src
        123     AS (
        124       SELECT  reg.REGIS TRANT_ID
        125              ,ISNULL(re g.GENDER,C ASE pat.GE NDER WHEN  'F' THEN ' FEMALE' 
        126                                                               WHEN  'M' THEN ' MALE' END)  as GENDER  
        127              ,pat.DECEA SED
        128              ,pat.DateO fDeath
        129              ,pat.RaceT ext
        130              ,pat.Marit alStatus
        131              ,pat.Eligi bilityStat us
        132              ,pat.Eligi bility
        133              ,ISNULL(re g.ICN,pat. PatientICN ) AS Patie ntICN
        134              ,pat.Enrol lmentStatu s
        135              ,pat.Prefe rredInstit utionCode
        136              ,pat.Enrol lmentDate
        137              ,pat.STD_I NSTITUTION _ID
        138         FROM  [AHOBPR]. [STAGED_PA TIENT] pat
        139         JOIN  [AHOBPR]. [REGISTRAN T] reg ON  reg.REGIST RANT_ID =  pat.REGIST RANT_ID
        140         )
        141         MERG E INTO [AH OBPR].[REG ISTRANT] A S Tgt
        142         USIN G Src
        143                 ON Tgt. REGISTRANT _ID = Src. REGISTRANT _ID
        144         WHEN  MATCHED
        145         THEN  UPDATE
        146                           SET Tgt. STD_INSTIT UTION_ID =  Src.STD_I NSTITUTION _ID
        147                              ,Tgt. GENDER = S rc.GENDER     
        148                              ,Tgt. MARITAL_ST ATUS = Src .[MaritalS tatus] 
        149                              ,Tgt. RACE = Src .[RaceText ]  
        150                              ,Tgt. DECEASED_F LAG = CONV ERT(BIT,(C ASE Src.[D ECEASED] W HEN 'Y' TH EN 1 ELSE  0 END))
        151                              ,Tgt. DEATH_DATE  = Src.[Da teOfDeath]     
        152                              ,Tgt. ELIGIBILIT Y_STATUS =  Src.[Elig ibilitySta tus]                        
        153                              ,Tgt. ELIGIBILIT Y = Src.[E ligibility ]    
        154                              ,Tgt. ENROLLMENT _STATUS =  Src.[Enrol lmentStatu s]    
        155                              ,Tgt. ENROLLED_D ATE = Src. [Enrollmen tDate]        
        156                              ,Tgt. ETL_UPDATE D = @Now;
        157                        
        158     PRINT 'D elete heal th factors  for encou nters bein g updated' ;
        159     DELETE 
        160     FROM AHO BPR.REGIST RANT_HEALT H_FACTOR
        161     WHERE EX ISTS(SELEC T REGISTRA NT_VISIT_I
        162                     FRO M AHOBPR.R EGISTRANT_ VISIT
        163                     JOI N AHOBPR.S TAGED_VISI T ON STAGE D_VISIT.RE GISTRANT_I D = REGIST RANT_VISIT .REGISTRAN T_ID
        164                    WHER E REGISTRA NT_VISIT.R EGISTRANT_ VISIT_ID =  REGISTRAN T_HEALTH_F ACTOR.REGI STRANT_VIS IT_ID
        165                      AN D STAGED_V ISIT.EVALU ATION_FLAG  = 'Y');
        166                      
        167     PRINT 'D elete enco uters bein g updated' ;
        168  
        169     DELETE 
        170     FROM AHO BPR.REGIST RANT_VISIT
        171     WHERE EV ALUATION_F LAG = 'Y'
        172       AND EX ISTS(SELEC T REGISTRA NT_ID FROM  AHOBPR.ST AGED_VISIT
        173                    WHER E STAGED_V ISIT.REGIS TRANT_ID =  REGISTRAN T_VISIT.RE GISTRANT_I D
        174                    AND  STAGED_VIS IT.EVALUAT ION_FLAG =  'Y');
        175  
        176     PRINT 'D elete rece nt visits  being upda ted';               
        177  
        178     DELETE 
        179     FROM AHO BPR.REGIST RANT_VISIT
        180     WHERE EV ALUATION_F LAG = 'N'
        181       AND EX ISTS(SELEC T REGISTRA NT_ID FROM  AHOBPR.ST AGED_VISIT
        182                    WHER E STAGED_V ISIT.REGIS TRANT_ID =  REGISTRAN T_VISIT.RE GISTRANT_I D
        183                    AND  STAGED_VIS IT.EVALUAT ION_FLAG =  'N');                                 
        184     
        185     PRINT 'S et Institu tion ID in  Staged VI SIT';
        186     
        187     WITH Src
        188     AS(
        189     SELECT S tg.VisitSI D
        190           ,S tg.INSTITU TION_CODE
        191           ,I nst.ID
        192       FROM [ AHOBPR].[S TAGED_VISI T] Stg
        193       JOIN A HOBPR.VIEW _INSTITUTI ON Inst ON  Inst.STAT IONNUMBER  = Stg.INST ITUTION_CO DE
        194       )
        195       MERGE  INTO [AHOB PR].[STAGE D_VISIT] A S Tgt
        196       USING  Src
        197               ON Tgt.Vi sitSID = S rc.VisitSI D
        198       WHEN M ATCHED
        199       THEN U PDATE
        200                         SET Tgt.ST D_INSTITUT ION_ID = S rc.ID;                      
        201                        
        202     PRINT 'I nsert enco unters and  visits... ';               
        203  
        204     INSERT I NTO [AHOBP R].[REGIST RANT_VISIT ]
        205                 ([REGIS TRANT_ID]
        206                 ,[VISIT _DATE_TIME ]
        207                 ,[STD_I NSTITUTION _ID]
        208                 ,[VISTA _Encounter ID]
        209                 ,[VISTA _Sta3n]
        210                 ,[VISTA _Eligibili tyStatus]
        211                 ,[EVALU ATION_FLAG ]
        212                 ,[APPOI NTMENT_TYP E]
        213                 ,[STOP_ CODE]
        214                 ,[CREAT EDBY]
        215                 ,[UPDAT EDBY]
        216                 ,[CREAT ED]
        217                 ,[UPDAT ED])
        218         SELE CT [REGIST RANT_ID]
        219                ,[VISIT_ DATE_TIME]
        220                ,[STD_IN STITUTION_ ID]
        221                ,[VISTA_ EncounterI D]
        222                ,[VISTA_ Sta3n]
        223                ,[VISTA_ Eligibilit y]
        224                ,[EVALUA TION_FLAG]
        225                ,[APPOIN TMENT_TYPE ]
        226                ,[STOP_C ODE]
        227                ,@ProcNa me
        228                ,@ProcNa me
        229                ,@Now
        230                ,@Now
        231       FROM [ AHOBPR].[S TAGED_VISI T];                     
        232    
        233     PRINT 'S et Standar d Health F actors ID  from STD_H EALTH_FACT OR...';  
        234       
        235     WITH Src
        236      AS(
        237         SELE CT [CDW_VI SIT_SID]
        238                ,[REGIST RANT_ID]
        239                ,std.[ST D_HEALTH_F ACTOR_ID]
        240                ,[HEALTH _FACTOR_TE XT]      
        241           FR OM [AHOBPR ].[STAGED_ HEALTH_FAC TOR] stage d
        242           JO IN AHOBPR. STD_HEALTH _FACTOR st d ON std.N AME = stag ed.HEALTH_ FACTOR_TEX T
        243       )
        244       MERGE  INTO AHOBP R.[STAGED_ HEALTH_FAC TOR] AS Tg t
        245       USING  Src  ON Tg t.[CDW_VIS IT_SID] =  Src.[CDW_V ISIT_SID]
        246       WHEN M ATCHED
        247                 AND Tgt .[REGISTRA NT_ID] = S rc.[REGIST RANT_ID]
        248                 AND Tgt .[HEALTH_F ACTOR_TEXT ] = Src.[H EALTH_FACT OR_TEXT]
        249       THEN U PDATE
        250                         SET Tgt.[S TD_HEALTH_ FACTOR_ID]  = Src.[ST D_HEALTH_F ACTOR_ID];
        251    
        252      PRINT ' Insert Hea lth Factor s...';  
        253      
        254     INSERT I NTO [AHOBP R].[REGIST RANT_HEALT H_FACTOR]
        255                 ([REGIS TRANT_VISI T_ID]
        256                 ,[STD_H EALTH_FACT OR_ID]
        257                 ,[ACTIV E_FLAG]
        258                 ,[HEALT H_FACTOR_T EXT]
        259                 ,[COMME NTS]
        260                 ,[CREAT EDBY]
        261                 ,[UPDAT EDBY]
        262                 ,[CREAT ED]
        263                 ,[UPDAT ED])           
        264         SELE CT visit.R EGISTRANT_ VISIT_ID
        265                ,hf.[STD _HEALTH_FA CTOR_ID]
        266                ,1
        267                ,hf.[HEA LTH_FACTOR _TEXT]
        268                ,hf.[COM MENTS]
        269                ,@ProcNa me    
        270                ,@ProcNa me
        271                ,@Now
        272                ,@Now      
        273       FROM [ AHOBPR].[S TAGED_HEAL TH_FACTOR]  hf -- 295
        274       JOIN A HOBPR.STAG ED_VISIT s tage ON st age.VisitS ID = hf.CD W_VISIT_SI D
        275       JOIN A HOBPR.REGI STRANT_VIS IT visit O N visit.VI STA_Encoun terID = st age.VISTA_ EncounterI
        276  
        277   END;
        278   -- EXECUTE  [AHOBPR]. [SP_Update FromCDW]; 
        279  
        280   GO
        281  
        282   PRINT 'ALT ER PROCEDU RE SP_Repo rtStatusBy Location.. .';
        283   GO
        284  
        285   -- ======= ========== ========== ========== ========
        286   -- Author:                Debora h Barr
        287   -- Create  date: Nove mber 12, 2 014
        288   -- Descrip tion: Used  for the A HOBPR Stat us by Loca tion Repor t
        289  
        290   -- Modific ation log
        291   -- 2015011 4 - Sherry  Wang: Cha nged query  for @Inst itutionId  and @VisnI d
        292   -- 2015020 2 - Change  state to  use state  codes, rem oved unnee ded tables  and joins , Removed  Distinct
        293   -- 2015021 9 - Change  state to  include te rritories  and Milita ry Bases
        294   -- 2015033 0 - Bruce  Clegg - Ad ded VisnId  value of  NLA to fin d Null loc ations
        295   -- 2015042 7 - Bruce  Clegg - Ch ange to Lo cationType  and Key,  for both A ssigned an d Evaluate d Location s
        296   -- 2015072 2 - Bruce  Clegg - Fi x bug with  @Evaluate dLocationT ype = 'Bas e'
        297   -- ======= ========== ========== ========== ========
        298   ALTER PROC EDURE [AHO BPR].[SP_R eportStatu sByLocatio n]
        299          @st ate varcha r(8000) =  NULL, -- M ultiple st ates, comm a-separate d values w hen not NU LL 
        300          @st atus varch ar(1000) =  NULL, --  Multiple s tatues, co mma-separa ted values  when not  NULL         
        301          @As signedLoca tionType   VARCHAR(20 ) = NULL,   -- 'VISN' , 'Base',  'Instituti on', 'NLA'  = No Loca tion Assig ned
        302          @As signedLoca tionKey    VARCHAR(50 ) = NULL,   -- 'V16',  'V01'     1000109,   1000089
        303          @Ev aluatedLoc ationType  VARCHAR(20 ) = NULL,   -- 'VISN' , 'Base',  'Instituti on', 'NLA'  = No Loca tion Assig ned
        304          @Ev aluatedLoc ationKey   VARCHAR(50 ) = NULL   -- 'V16',  'V01'    1 000109,  1 000089
        305   AS
        306   BEGIN
        307     DECLARE  @Today DAT ETIME2 = G ETDATE();
        308  
        309     DECLARE  @Query VAR CHAR(8000) ;
        310    
        311      --Temp  table conc atnate fla gs for Reg istrants w ith multip le flags
        312     CREATE T ABLE #stat e
        313     (
        314        [Regi strant_Id]  INT,
        315        [stat e] VARCHAR (8000)
        316     ) 
        317  
        318     SET @sta te = REPLA CE(@state,  'Foreign  Country/Ot her', 'FM, MH,PW,UM,U S,CANAD,MX ,EU,PI,FG, OT,UN')
        319  
        320     INSERT I NTO #state  ([Registr ant_Id], [ state])
        321     -- Load  Table
        322     SELECT a .REGISTRAN T_ID, 
        323           ST UFF((SELEC T ', ' + b .STATE 
        324                     FRO M AHOBPR.R EGISTRANT_ ADDRESS b 
        325                    WHER E a.REGIST RANT_ID =  b.REGISTRA NT_ID 
        326                    FOR  XML PATH(' ')), 1, 1,  '')  [STA TE]
        327       FROM A HOBPR.REGI STRANT a
        328      GROUP B Y a.REGIST RANT_ID;
        329    
        330    
        331     SET @Que ry = 'SELE CT  reg.RE GISTRANT_I D ' +
        332                                         ',(re g.LAST_NAM E + '', ''  + reg.FIR ST_NAME) A S Name ' +
        333                                         ',b.R EGISTRANT_ STATUS AS  Status ' +
        334                                         ',DAT EDIFF(day,  reg.REGIS TRANT_STAT US_LAST_UP DATED_DATE , ' +
        335                                         CONVE RT(VARCHAR (10),@Toda y,121) + ' ) As Days  ' +
        336                                         ',s.S TATE AS St ate ' +
        337                                         ',RIG HT(inst.Vi snID, 2)   AS VISN '  +
        338                                         ',ins t.Name AS  Facility '  +
        339                                         ',reg .BIRTH_DAT E AS Birth Date ' +
        340                            ',CONVE RT(VARCHAR (10), reg. BIRTH_DATE , 101) AS  BirthDateD isplay ' +
        341                            'FROM A HOBPR.REGI STRANT reg  ' +
        342                                  ' JOIN AHOBP R.STD_REGI STRANT_STA TUS b ' + 
        343                                     'ON reg.S TD_REGISTR ANT_STATUS _ID = b.ST D_REGISTRA NT_STATUS_ ID ' +
        344                      'L EFT JOIN A HOBPR.VIEW _FACILITY_ LOOKUP ins t ' +
        345                                     'ON inst. ID = reg.S TD_INSTITU TION_ID '  +
        346                             'LEFT  JOIN #stat e s ' +
        347                                     'ON reg.R EGISTRANT_ ID = s.Reg istrant_Id  ' +
        348                           'WHERE   1 = 1 ';
        349  
        350                           
        351     IF ISNUL L(@state,' ') > ''
        352       BEGIN
        353         SET  @state = R EPLACE(@St ate,',','' ',''');
        354         SET  @Query = @ Query + '  AND EXISTS (SELECT DI STINCT add r.REGISTRA NT_ID ' + 
        355                                                 'FROM AH OBPR.REGIS TRANT_ADDR ESS addr '  + 
        356                                                'WHERE ad dr.REGISTR ANT_ID = r eg.REGISTR ANT_ID ' +  
        357                                                  'AND ad dr.STATE   IN ( ''' +  @state +  ''') ) ';
        358       END;
        359  
        360     IF ISNUL L(@status, '') > '' 
        361                     SET  @Query =  @Query + '  AND reg.S TD_REGISTR ANT_STATUS _ID IN ('  + @status  + ') ';
        362                     
        363     IF @Assi gnedLocati onType = ' NLA' 
        364        SET @ Query = @Q uery + ' A ND reg.STD _INSTITUTI ON_ID IS N ULL ';
        365  
        366     IF @Assi gnedLocati onType = ' VISN' 
        367        SET @ Query = @Q uery + ' A ND EXISTS( SELECT * F ROM AHOBPR .VIEW_FACI LITY_LOOKU P inst ' +
        368                                               'WHERE ins t.ID = reg .STD_INSTI TUTION_ID  ' +
        369                                                 'AND ins t.VisnID =  ''' + @As signedLoca tionKey +  ''' ) ';
        370  
        371     IF @Assi gnedLocati onType = ' Base' 
        372        SET @ Query = @Q uery + 'AN D EXISTS(S ELECT * FR OM AHOBPR. VIEW_FACIL ITY_LOOKUP  inst ' +
        373                                             ' WHERE inst .ID = reg. STD_INSTIT UTION_ID '  +
        374                                                'AND inst .BASE_ID =  ' + @Assi gnedLocati onKey + ')  ';
        375  
        376     IF @Assi gnedLocati onType = ' Institutio n' 
        377        SET @ Query = @Q uery + 'AN D reg.STD_ INSTITUTIO N_ID = ' +  @Assigned LocationKe y + ' ';             
        378  
        379     IF @Eval uatedLocat ionType =  'NLA' 
        380         SET  @Query = @ Query + 'A ND NOT EXI STS( SELEC T * FROM A HOBPR.REGI STRANT_VIS IT eval '  +
        381                                                 '   WHER E eval.REG ISTRANT_ID  = Reg.REG ISTRANT_ID  ' +
        382                                                     ' AN D eval.EVA LUATION_FL AG = ''Y'' ) ';
        383    
        384     IF @Eval uatedLocat ionType =  'VISN' 
        385        SET @ Query = @Q uery + 'AN D EXISTS(S ELECT * FR OM AHOBPR. REGISTRANT _VISIT eva l ' +
        386                                                      'JO IN AHOBPR. VIEW_FACIL ITY_LOOKUP  inst ON i nst.ID = e val.STD_IN STITUTION_ ID ' +
        387                                                     'WHE RE eval.RE GISTRANT_I D = Reg.RE GISTRANT_I D ' +
        388                                                       'A ND inst.Vi snID = '''  + @Evalua tedLocatio nKey + '''  ' +
        389                                                       'A ND eval.EV ALUATION_F LAG = ''Y' ') ' 
        390  
        391     IF @Eval uatedLocat ionType =  'Base' 
        392        SET @ Query = @Q uery + 'AN D EXISTS(S ELECT * FR OM AHOBPR. REGISTRANT _VISIT eva l ' +
        393                                                      'JO IN AHOBPR. VIEW_FACIL ITY_LOOKUP  inst ON i nst.ID = e val.STD_IN STITUTION_ ID ' +
        394                                                     'WHE RE eval.RE GISTRANT_I D = Reg.RE GISTRANT_I D ' +
        395                                                       'A ND inst.BA SE_ID = '  + @Evaluat edLocation Key + ' ' 
        396                                                       'A ND eval.EV ALUATION_F LAG = ''Y' ' ) '; 
        397  
        398     IF @Eval uatedLocat ionType =  'Instituti on' 
        399        SET @ Query = @Q uery + 'AN D EXISTS(S ELECT * FR OM AHOBPR. REGISTRANT _VISIT eva l ' +
        400                                                     'WHE RE eval.RE GISTRANT_I D = Reg.RE GISTRANT_I D ' +
        401                                                       'A ND eval.ST D_INSTITUT ION_ID = '  + @Evalua tedLocatio nKey + ' '  +
        402                                                       'A ND eval.EV ALUATION_F LAG = ''Y' ' ) '; 
        403  
        404     PRINT  @ Query;
        405     
        406     EXECUTE  (@Query);   
        407  
        408     DROP TAB LE #state;
        409     
        410   END
        411  
        412   -- EXEC [A HOBPR].[SP _ReportSta tusByLocat ion] 
        413   -- EXEC [A HOBPR].[SP _ReportSta tusByLocat ion] @stat e = 'MD,VA '
        414   -- EXEC [A HOBPR].[SP _ReportSta tusByLocat ion] @stat us = '6,7'
        415  
        416   -- exec [A HOBPR].[SP _ReportSta tusByLocat ion]
        417   -- exec [A HOBPR].[SP _ReportSta tusByLocat ion] @Assi gnedLocati onType = ' NLA'
        418   -- exec [A HOBPR].[SP _ReportSta tusByLocat ion] @Assi gnedLocati onType = ' VISN', @As signedLoca tionKey =  'V16'
        419   -- exec [A HOBPR].[SP _ReportSta tusByLocat ion] @Assi gnedLocati onType = ' Base', @As signedLoca tionKey =  '1000089'
        420   -- exec [A HOBPR].[SP _ReportSta tusByLocat ion] @Assi gnedLocati onType = ' Institutio n', @Assig nedLocatio nKey = '10 00089'
        421   -- exec [A HOBPR].[SP _ReportSta tusByLocat ion]
        422   -- exec [A HOBPR].[SP _ReportSta tusByLocat ion] @Eval uatedLocat ionType =  'NLA'
        423   -- exec [A HOBPR].[SP _ReportSta tusByLocat ion] @Eval uatedLocat ionType =  'VISN', @E valuatedLo cationKey  = 'V16'
        424   -- exec [A HOBPR].[SP _ReportSta tusByLocat ion] @Eval uatedLocat ionType =  'Base', @E valuatedLo cationKey  = '1000089 '
        425   -- exec [A HOBPR].[SP _ReportSta tusByLocat ion] @Eval uatedLocat ionType =  'Instituti on', @Eval uatedLocat ionKey = ' 1000089'
        426   GO
        427  
        428   PRINT 'ALT ER PROCEDU RE SP_Repo rtRegistra ntContact. ..';
        429   GO
        430  
        431   -- ======= ========== ========== ========== ========
        432   -- Author:                Bruce  Clegg
        433   -- Create  date: Jan  12, 2015
        434   -- Descrip tion: Used  for the A HOBPR Cont act Report   -- exec  [AHOBPR].[ SP_ReportR egistrantC ontact]     (More opt ions at bo ttom)
        435   -- 2015-02 -23 - Cleg g - provid e individu al field n ames
        436   -- 2015033 0 - Bruce  Clegg - Ad ded VisnId  value of  NLA to fin d Null loc ations
        437   -- 2015042 7 - Bruce  Clegg - Ch ange to Lo cationType  and Key,  for both A ssigned an d Evaluate d Location s
        438   -- 2015042 9 - Bruce  Clegg - Ad ded Email  column (ag ain)
        439   -- 2015061 7 - D. Bar r - Added  state para meter
        440   -- 2015072 2 - Bruce  Clegg - Fi x bug with  @Evaluate dLocationT ype = 'Bas e'
        441   -- ======= ========== ========== ========== ========
        442   ALTER PROC EDURE [AHO BPR].[SP_R eportRegis trantConta ct]
        443          @Re gistrantSt atus       VARCHAR(50 ) = '',     -- '1,2,3 ,4,5,6,7,8 '
        444          @Sv cStatus               VARCHAR(50 ) = '',     -- '1,2,3 '
        445          @Ad minFlagId             INT = 0,               -- 60
        446          @Ad minFromDat eText      VARCHAR(50 ) = NULL,
        447          @Ad minToDateT ext        VARCHAR(50 ) = NULL,
        448          @Su bPopulatio nFlagId    INT = 0,               -- 65
        449          @As signedLoca tionType   VARCHAR(20 ) = NULL,   -- 'VISN' , 'Base',  'Instituti on', 'NLA'  = No Loca tion Assig ned
        450          @As signedLoca tionKey    VARCHAR(50 ) = NULL,   -- 'V16',  'V01'     1000109,   1000089
        451          @Ev aluatedLoc ationType  VARCHAR(20 ) = NULL,   -- 'VISN' , 'Base',  'Instituti on', 'NLA'  = No Loca tion Assig ned
        452          @Ev aluatedLoc ationKey   VARCHAR(50 ) = NULL,   -- 'V16',  'V01'     1000109,   1000089
        453          @Co mpletedFro mDateText  VARCHAR(50 ) = NULL,
        454          @Co mpletedToD ateText    VARCHAR(50 ) = NULL,
        455          @st ate varcha r(8000) =  NULL -- Mu ltiple sta tes, comma -separated  values wh en not NUL
        456   AS
        457   BEGIN
        458  
        459   DECLARE @A dminFromDa te DATETIM E2(0) = IS NULL(dbo.C leanDate(@ AdminFromD ateText),' 19000101')
        460   DECLARE @A dminToDate    DATETIM E2(0) = db o.AddMaxTi me(ISNULL( dbo.CleanD ate(@Admin ToDateText ),GETDATE( ))); 
        461   DECLARE @C ompletedFr omDate DAT ETIME2(0)  = ISNULL(d bo.CleanDa te(@Comple tedFromDat eText),'19 000101')
        462   DECLARE @C ompletedTo Date   DAT ETIME2(0)  = dbo.AddM axTime(ISN ULL(dbo.Cl eanDate(@C ompletedTo DateText), GETDATE()) ); 
        463  
        464   --PRINT @A ssignedLoc ationType;
        465   --PRINT @A ssignedLoc ationKey;
        466  
        467   DECLARE @A ssignedIns titutionId  INT = 0,
        468           @E valuatedIn stitutionI d INT = 0;
        469  
        470   IF @Assign edLocation Type IN (' Base','Ins titution')  
        471   AND ISNUME RIC(@Assig nedLocatio nKey) = 1
        472     SET @Ass ignedInsti tutionId =  CONVERT(I NT,@Assign edLocation Key);
        473     
        474   IF @Evalua tedLocatio nType IN ( 'Base','In stitution'
        475   AND ISNUME RIC(@Evalu atedLocati onKey) = 1
        476     SET @Eva luatedInst itutionId  = CONVERT( INT,@Evalu atedLocati onKey);
        477  
        478   WITH addr 
        479   AS (     
        480       SELECT  REGISTRAN T_ID,
        481                            ISNULL( STREET1,'' )  AS STRE ET1, 
        482                            ISNULL( STREET2,'' )  AS STRE ET2,
        483                            ISNULL( CITY,'')      AS CITY ,
        484                            ISNULL( [STATE],'' )  AS [STA TE],
        485                            ISNULL( COUNTRY,'' )  AS COUN TRY,
        486                            ISNULL( ZIP,'')       AS ZIP
        487                      FR OM  AHOBPR .[REGISTRA NT_ADDRESS ]
        488       )  
        489   ,phone1 
        490   AS (     
        491       SELECT  REGISTRAN T_ID,                      
        492                            ISNULL( PHONE_NUMB ER,'') AS  PHONE_NUMB ER_Main
        493         FROM  AHOBPR.RE GISTRANT_P HONE      
        494        WHERE  ISNULL(TY PE,'') !=  'Mobile'
        495       )        
        496   ,phone2 
        497   AS (     
        498       SELECT  REGISTRAN T_ID,                      
        499                            ISNULL( PHONE_NUMB ER,'') AS  PHONE_NUMB ER_Mobile
        500         FROM  AHOBPR.RE GISTRANT_P HONE      
        501        WHERE  TYPE = 'M obile'
        502       )
        503   ,email 
        504   AS (     
        505       SELECT  REGISTRAN T_ID,                      
        506                            ISNULL( EMAIL,'')  AS EMAIL
        507         FROM  AHOBPR.RE GISTRANT_E MAIL      
        508       )
        509   ,Pref    
        510   AS(
        511         SELE CT fr.REGI STRANT_ID 
        512               ,ans.TEXT  AS Contac tPreferenc e
        513           FR OM  AHOBPR .FORM_RESP ONSE fr
        514           JO IN AHOBPR. FORM_RESPO NSE_QUESTI ON rQst ON  fr.FORM_R ESPONSE_ID  = rQst.FO RM_RESPONS E_ID
        515           JO IN AHOBPR. STD_FORM_Q UESTION qs t ON rQst. STD_FORM_Q UESTION_ID  = qst.STD _FORM_QUES TION_ID
        516           JO IN AHOBPR. FORM_RESPO NSE_ANSWER  rAns ON r Qst.FORM_R ESPONSE_QU ESTION_ID  = rAns.FOR M_RESPONSE _QUESTION_ ID
        517           JO IN AHOBPR. STD_FORM_A NSWER ans  ON ans.STD _FORM_ANSW ER_ID = rA ns.STD_FOR M_ANSWER_I D
        518          WHE RE qst.STD _FORM_ID =  fr.STD_FO RM_ID
        519            A ND qst.FOR M_QUESTION _UNIQUE_ID  = '8.A'
        520    )            
        521           SE LECT 
        522                  reg.RE GISTRANT_I D,
        523                           ISNULL(r eg.LAST_NA ME,'') AS   LAST_NAME ,
        524              ISNULL(reg .FIRST_NAM E,'') AS   FIRST_NAME
        525              ISNULL(Pre f.ContactP reference, '') AS  Co ntactPrefe rence,
        526                           ISNULL(S TREET1,'')  AS  STREE T1, 
        527                           ISNULL(S TREET2,'')  AS  STREE T2,
        528                           ISNULL(C ITY,'') AS   CITY,
        529                           ISNULL([ STATE],'')  AS  [STAT E],
        530                           ISNULL(C OUNTRY,'')  AS  COUNT RY,
        531                           ISNULL(Z IP,'') AS   ZIP,
        532                           ISNULL(p hone1.PHON E_NUMBER_M ain,'') AS   PHONE_NU MBER_Main,
        533                           ISNULL(p hone2.PHON E_NUMBER_M obile,'')  AS  PHONE_ NUMBER_Mob ile,
        534              ISNULL(ema il.EMAIL,' ') AS EMAI L       
        535              FROM AHOBP R.REGISTRA NT reg    
        536              LEFT JOIN  addr  
        537                      ON  reg.REGIS TRANT_ID =  addr.REGI STRANT_ID       
        538              LEFT JOIN  phone1  
        539                      ON  reg.REGIS TRANT_ID =  phone1.RE GISTRANT_I D                       
        540              LEFT JOIN  phone2  
        541                      ON  reg.REGIS TRANT_ID =  phone2.RE GISTRANT_I D            
        542              LEFT JOIN  email  
        543                      ON  reg.REGIS TRANT_ID =  email.REG ISTRANT_ID                               
        544              LEFT JOIN  Pref  
        545                      ON  reg.REGIS TRANT_ID =  Pref.REGI STRANT_ID                                         
        546            W HERE (reg. STD_REGIST RANT_STATU S_ID IN (S ELECT * FR OM fncSpli t(@Registr antStatus,  ',')) 
        547                    OR I SNULL(@Reg istrantSta tus,'') =  '')
        548               AND (reg. STD_SERVIC E_STATUS_I D IN (SELE CT * FROM  fncSplit(@ SvcStatus,  ',')) 
        549                    OR I SNULL(@Svc Status,'')  = '')
        550        AND ( @AssignedL ocationTyp e IS NULL
        551              OR (@Assig nedLocatio nType = 'N LA' 
        552                  AND re g.STD_INST ITUTION_ID  IS NULL)
        553              OR (@Assig nedLocatio nType = 'V ISN' 
        554                   AND E XISTS(SELE CT * FROM  AHOBPR.VIE W_FACILITY _LOOKUP in st
        555                                        WHERE  inst.ID =  reg.STD_IN STITUTION_ ID
        556                                          AND  inst.VisnI D = @Assig nedLocatio nKey)
        557                 )  
        558              OR (@Assig nedLocatio nType = 'B ase' 
        559                   AND E XISTS(SELE CT * FROM  AHOBPR.VIE W_FACILITY _LOOKUP in st
        560                                        WHERE  inst.ID =  reg.STD_IN STITUTION_ ID
        561                                          AND  inst.BASE_ ID = @Assi gnedInstit utionId)
        562                 )  
        563              OR (@Assig nedLocatio nType = 'I nstitution
        564                   AND r eg.STD_INS TITUTION_I D = @Assig nedInstitu tionId)      
        565              )
        566        AND ( @Evaluated LocationTy pe IS NULL
        567              OR (@Evalu atedLocati onType = ' NLA' 
        568                  AND NO T EXISTS(  SELECT * F ROM AHOBPR .REGISTRAN T_VISIT ev al
        569                                     WHERE eva l.REGISTRA NT_ID = Re g.REGISTRA NT_ID 
        570                                       AND eva l.EVALUATI ON_FLAG =  'Y') 
        571                 )
        572              OR (@Evalu atedLocati onType = ' VISN' 
        573                   AND E XISTS(SELE CT * FROM  AHOBPR.REG ISTRANT_VI SIT eval
        574                                         JOIN  AHOBPR.VIE W_FACILITY _LOOKUP in st ON inst .ID = eval .STD_INSTI TUTION_ID
        575                                        WHERE  eval.REGIS TRANT_ID =  Reg.REGIS TRANT_ID
        576                                          AND  inst.VisnI D = @Evalu atedLocati onKey
        577                                          AND  eval.EVALU ATION_FLAG  = 'Y') 
        578                 )  
        579              OR (@Evalu atedLocati onType = ' Base' 
        580                   AND E XISTS(SELE CT * FROM  AHOBPR.REG ISTRANT_VI SIT eval
        581                                         JOIN  AHOBPR.VIE W_FACILITY _LOOKUP in st ON inst .ID = eval .STD_INSTI TUTION_ID
        582                                        WHERE  eval.REGIS TRANT_ID =  Reg.REGIS TRANT_ID
        583                                          AND  inst.BASE_ ID = @Eval uatedInsti tutionId
        584                                          AND  eval.EVALU ATION_FLAG  = 'Y' )     
        585                 )  
        586              OR (@Evalu atedLocati onType = ' Institutio n' 
        587                   AND E XISTS(SELE CT * FROM  AHOBPR.REG ISTRANT_VI SIT eval
        588                                        WHERE  eval.REGIS TRANT_ID =  Reg.REGIS TRANT_ID
        589                                          AND  eval.STD_I NSTITUTION _ID = @Eva luatedInst itutionId
        590                                          AND  eval.EVALU ATION_FLAG  = 'Y') 
        591                 )  
        592              )           
        593        AND ( ISNULL(@Su bPopulatio nFlagId, 0 ) = 0 
        594              OR EXISTS( SELECT [RE GISTRANT_I D] FROM AH OBPR.REGIS TRANT_REGI STRY_FLAG  popFlag
        595                          WHERE pop Flag.REGIS TRANT_ID =  reg.REGIS TRANT_ID
        596                            AND pop Flag.STD_R EGISTRY_FL AG_ID = @S ubPopulati onFlagId))
        597        AND ( ISNULL(@Ad minFlagId,  0) = 0 
        598              OR EXISTS( SELECT [RE GISTRANT_I D] FROM AH OBPR.REGIS TRANT_REGI STRY_FLAG  adminFlag
        599                          WHERE adm inFlag.REG ISTRANT_ID  = reg.REG ISTRANT_ID
        600                            AND adm inFlag.STD _REGISTRY_ FLAG_ID =  @AdminFlag Id
        601                            AND adm inFlag.CRE ATED BETWE EN @AdminF romDate AN D @AdminTo Date))   
        602        AND ( (ISNULL(@C ompletedFr omDateText ,'') = ''  AND ISNULL (@Complete dToDateTex t,'') = ''  )
        603            O R EXISTS(S ELECT resp .REGISTRAN T_ID, stat .QUESTIONN AIRE_COMPL ETED_DATE
        604                          FROM AHOB PR.FORM_RE SPONSE_STA TUS stat
        605                          JOIN AHOB PR.FORM_RE SPONSE res p
        606                            ON resp .FORM_RESP ONSE_ID =  stat.FORM_ RESPONSE_I D
        607                         WHERE resp .REGISTRAN T_ID = reg .REGISTRAN T_ID
        608                           AND stat .QUESTIONN AIRE_COMPL ETED_DATE  BETWEEN @C ompletedFr omDate AND  @Complete dToDate))
        609       AND (I SNULL(@sta te,'') = ' '
        610                   OR EX ISTS(SELEC T DISTINCT  addr.REGI STRANT_ID 
        611                                FRO M AHOBPR.R EGISTRANT_ ADDRESS ad dr 
        612                               WHER E addr.REG ISTRANT_ID  = reg.REG ISTRANT_ID  
        613                                 AN D addr.STA TE  IN (SE LECT * FRO M fncSplit (@state, ' ,'))))
        614         ;
        615                                                                                                                          
        616   END
        617   -- exec [A HOBPR].[SP _ReportReg istrantCon tact]
        618   -- exec [A HOBPR].[SP _ReportReg istrantCon tact] @Ass ignedLocat ionType =  'NLA'
        619   -- exec [A HOBPR].[SP _ReportReg istrantCon tact] @Ass ignedLocat ionType =  'VISN', @A ssignedLoc ationKey =  'V16'
        620   -- exec [A HOBPR].[SP _ReportReg istrantCon tact] @Ass ignedLocat ionType =  'Base', @A ssignedLoc ationKey =  '1000089'
        621   -- exec [A HOBPR].[SP _ReportReg istrantCon tact] @Ass ignedLocat ionType =  'Instituti on', @Assi gnedLocati onKey = '1 000089'
        622   -- exec [A HOBPR].[SP _ReportReg istrantCon tact]
        623   -- exec [A HOBPR].[SP _ReportReg istrantCon tact] @Eva luatedLoca tionType =  'NLA'
        624   -- exec [A HOBPR].[SP _ReportReg istrantCon tact] @Eva luatedLoca tionType =  'VISN', @ EvaluatedL ocationKey  = 'V16'
        625   -- exec [A HOBPR].[SP _ReportReg istrantCon tact] @Eva luatedLoca tionType =  'Base', @ EvaluatedL ocationKey  = '100008 9'
        626   -- exec [A HOBPR].[SP _ReportReg istrantCon tact] @Eva luatedLoca tionType =  'Institut ion', @Eva luatedLoca tionKey =  '1000089'
        627  
        628  
        629          --@ AssignedLo cationType   VARCHAR( 10) = NULL ,  -- 'VIS N', 'Base' , 'Institu tion', 'NL A' = No Lo cation Ass igned
        630          --@ AssignedLo cationKey    VARCHAR( 50) = NULL ,  -- 'V16 ', 'V01'     1000109,   1000089
        631    --exec [A HOBPR].[SP _ReportReg istrantCon tact] '5,6 ,7', NULL,  0, NULL,  NULL, 0, 0 , NULL  @E valuatedLo cationType
        632    --exec [A HOBPR].[SP _ReportReg istrantCon tact] NULL , '2', 0,  NULL, NULL , 0, 0, NU LL
        633    --exec [A HOBPR].[SP _ReportReg istrantCon tact] NULL , NULL, 60 , NULL, '2 0141204',  0, 0, NULL
        634    --exec [A HOBPR].[SP _ReportReg istrantCon tact] NULL , NULL, 60 , '12/04/2 014', NULL , 0, 0, NU LL
        635    --exec [A HOBPR].[SP _ReportReg istrantCon tact] NULL , NULL, 60 , '12/03/2 014', '12/ 12/2014',  0, 0, NULL
        636    --exec [A HOBPR].[SP _ReportReg istrantCon tact] NULL , NULL, 0,  NULL, NUL L, 65, 0,  NULL
        637    --exec [A HOBPR].[SP _ReportReg istrantCon tact] NULL , NULL, 0,  NULL, NUL L, 0, 1000 109, NULL
        638    --exec [A HOBPR].[SP _ReportReg istrantCon tact] NULL , NULL, 0,  NULL, NUL L, 0, 0, ' NLA' --'V0 1'
        639    --exec [A HOBPR].[SP _ReportReg istrantCon tact] @Com pletedFrom DateText =  '08/13/20 14'
        640    --exec [A HOBPR].[SP _ReportReg istrantCon tact] @Com pletedToDa teText = ' 08/13/2014 '
        641    --exec [A HOBPR].[SP _ReportReg istrantCon tact] @Com pletedFrom DateText =  '08/13/20 14', @Comp letedToDat eText = '0 8/13/2014'
        642   GO
        643  
        644   PRINT 'ALT ER PROCEDU RE SP_Repo rtAdHocByL ocation... ';
        645   GO
        646   -- ======= ========== ========== ========== ========
        647   -- Author:                Debora h Barr
        648   -- Create  date: Nove mber 12, 2 014
        649   -- Descrip tion: Used  for the A HOBPR Ad H oc Report   
        650  
        651   -- Modific ation log
        652   -- 2014-12 -31 - Chan ged from F LAG to RES PONSE for  Health Con cerns and  REQUEST_SE EN, Reform atted stat ements for  readabili ty
        653   -- 2015-01 -05 - Chan ge Date Fo rmat to MM /DD/YYYY
        654   -- 2015-01 -14 - Sher ry Wang Ad d more par ameters: @ healthFact or, @formS tartFromDa te, @formS tartToDate , @subpopu lationFlag
        655   -- 2015-01 -14 - Sher ry Wang Ad d more par ameters: @ adminFlag,  @deployme ntAll, @de ploymentEx posure, @a dminFlagFr omDate, @a dminFlagTo Date
        656   -- 2015-01 -16 - Bruc e Clegg -  Fix parame ters, Add  distinct a nd outer q uery to gr oup counts .
        657   -- 2015-02 -09 - Bruc e Clegg -  Change Hea lth Factor  Exists st atements t o use new  REGISTRANT _VISIT
        658   -- 2015-05 -07 - Bruc e Clegg -  Change Fac ility name  from "Oth er" to "No  Facitilty  Assigned"  when not  found
        659   -- 2015-06 -04 - Bruc e Clegg -  Add more p arameters
        660   -- 2015-06 -18 - Bruc e Clegg -  Changed @s eparationT ype to an  Integer 
        661   -- 2015-07 -09 - Bruc e Clegg -  Rewrote as  Dynamic S QL for per formance
        662   -- ======= ========== ========== ========== ========
        663   ALTER PROC EDURE [AHO BPR].[SP_R eportAdHoc ByLocation ]
        664          @st atus varch ar(100) =  NULL, -- M ultiple st atues, com ma-separat ed values  when not N ULL
        665          @du tyStatus v archar(100 ) = NULL,  -- Multipl e states,  comma-sepa rated valu es when no t NULL  
        666          @fo rmStartFro mDateText  varchar(10 0) = NULL,
        667          @fo rmStartToD ateText va rchar(100)  = NULL,
        668          @he althFactor  varchar(1 00) = NULL , -- Multi ple health  factor ID s, comma-s eparated v alues when  not NULL
        669          @fo rmCompleti onFromDate Text varch ar(100) =  NULL,
        670          @fo rmCompleti onToDateTe xt varchar (100) = NU LL,
        671          @qu estionNumb er varchar (100) = NU LL,
        672          @an swer varch ar(100) =  NULL,
        673          @he althConcer ns varchar (10) = 'Al l', 
        674          @re questToBeS een varcha r(10) = 'A ll',
        675          @gr oupBy VARC HAR(50) =  '',                   -- 'VISN'  or 'Facili ty'   
        676          @su bpopulatio nFlag varc har (10) =  NULL, 
        677          @ad minFlag va rchar (10)  = NULL, 
        678          @de ploymentAl l varchar  (256) = NU LL, 
        679          @de ploymentEx posure var char (256)  = NULL, 
        680          @ad minFlagFro mDateText  varchar (2 0) = NULL,  
        681          @ad minFlagToD ateText va rchar (20)  = NULL,
        682          @ex cludeDead  varchar(1)  = 'N',
        683          @ge nder varch ar(50) = ' ',
        684          @ra ce varchar (50) = '',
        685          @et hnicity va rchar(50)  = '',
        686          @se parationTy pe INT = 0 ,
        687          @se parationFr omDateText  varchar ( 20) = NULL
        688          @se parationTo DateText v archar (20 ) = NULL, 
        689          @en rollmentSt atus varch ar(50) = ' '
        690   AS
        691  
        692   BEGIN
        693  
        694     DECLARE  @formStart FromDate D ATETIME2(0 ) = NULL,
        695              @formStart ToDate DAT ETIME2(0)  = NULL,
        696              @formCompl etionFromD ate DATETI ME2(0) = N ULL,
        697              @formCompl etionToDat e DATETIME 2(0) = NUL L,
        698              @adminFlag FromDate D ATETIME2(0 ) = NULL,
        699              @adminFlag ToDate DAT ETIME2(0)  = NULL,
        700              @separatio nFromDate  DATETIME2( 0) = NULL,
        701              @separatio nToDate DA TETIME2(0)  = NULL;
        702             
        703     DECLARE  @Query VAR CHAR(8000) ;      
        704  
        705     -- Conve rt date pa rameters       
        706  
        707     SET @for mStartFrom Date = dbo .CleanDate (@formStar tFromDateT ext);
        708     SET @for mStartToDa te = dbo.A ddMaxTime( dbo.CleanD ate(@formS tartToDate Text));
        709     SET @for mCompletio nFromDate  = dbo.Clea nDate(@for mCompletio nFromDateT ext);
        710     SET @for mCompletio nToDate =  dbo.AddMax Time(dbo.C leanDate(@ formComple tionToDate Text));      
        711     SET @adm inFlagFrom Date = ISN ULL(dbo.Cl eanDate(@a dminFlagFr omDateText ),'1900010 1');
        712     SET @adm inFlagToDa te = dbo.A ddMaxTime( ISNULL(dbo .CleanDate (@adminFla gToDateTex t),GETDATE ())); 
        713     SET @sep arationFro mDate = db o.CleanDat e(@separat ionFromDat eText);
        714     SET @sep arationToD ate = dbo. AddMaxTime (dbo.Clean Date(@sepa rationToDa teText));    
        715  
        716     -- Build  Src TDE
        717     SET @Que ry = ' WIT H Src 
        718       AS( SE LECT a.REG ISTRANT_ID , a.STD_IN STITUTION_ ID FROM AH OBPR.REGIS TRANT a WH ERE 1 = 1  ';
        719     
        720     IF @stat us IS NOT  NULL
        721       SET @Q uery = @Qu ery + ' AN D a.STD_RE GISTRANT_S TATUS_ID I N (' + @st atus + ')' ;
        722  
        723     IF ISNUL L(@dutySta tus,'') >  ''
        724       SET @Q uery = @Qu ery + ' AN D a.STD_SE RVICE_STAT US_ID IN ( ' + @dutyS tatus + ') ';
        725             
        726     IF @heal thConcerns  != 'All'
        727       SET @Q uery = @Qu ery + ' AN D a.HEALTH _CONCERNS_ RESPONSE =  ''' + @he althConcer ns + '''';  
        728     
        729     IF @requ estToBeSee n != 'All'
        730       SET @Q uery = @Qu ery + ' AN D a.REQUES T_SEEN_RES PONSE = '' ' + @reque stToBeSeen   + '''';
        731       
        732     IF @form StartFromD ate IS NOT  NULL OR @ formStartT oDate IS N OT NULL 
        733     OR @form Completion FromDate I S NOT NULL  OR @formC ompletionT oDate IS N OT NULL
        734       BEGIN
        735         SET  @Query = @ Query + '  AND EXISTS ( SELECT d .REGISTRAN T_ID FROM  AHOBPR.FOR M_RESPONSE  d 
        736                                               JOIN AHOBP R.FORM_RES PONSE_STAT US e ON d. FORM_RESPO NSE_ID = e .FORM_RESP ONSE_ID   
        737                                             W HERE a.REG ISTRANT_ID  = d.REGIS TRANT_ID ' ;
        738                      IF  @formStar tFromDate  IS NOT NUL L                       
        739                          SET @Quer y = @Query  + ' AND e .QUESTIONN AIRE_START ED_DATE >=  ''' + CON VERT(VARCH AR(20),@fo rmStartFro mDate,121)  + '''';
        740                      IF  @formStar tToDate IS  NOT NULL                       
        741                          SET @Quer y = @Query  + ' AND e .QUESTIONN AIRE_START ED_DATE <=  ''' + CON VERT(VARCH AR(20),@fo rmStartToD ate,121) +  '''';
        742                      IF  @formComp letionFrom Date IS NO T NULL                       
        743                          SET @Quer y = @Query  + ' AND e .QUESTIONN AIRE_COMPL ETED_DATE  >= ''' + C ONVERT(VAR CHAR(20),@ formComple tionFromDa te,121) +  '''';
        744                      IF  @formComp letionToDa te IS NOT  NULL                       
        745                          SET @Quer y = @Query  + ' AND e .QUESTIONN AIRE_COMPL ETED_DATE  <= ''' + C ONVERT(VAR CHAR(20),@ formComple tionToDate ,121) + '' '';
        746                       S ET @Query  = @Query +  ' ) ' --  Close Exis its statem ent
        747       END     
        748       
        749     IF ISNUL L(@answer, '') != '' 
        750       --SET  @Query = @ Query + '  AND EXISTS (SELECT fr .REGISTRAN T_ID FROM  AHOBPR.FOR M_RESPONSE _ANSWER ra  ' +
        751       --                        'J OIN AHOBPR .FORM_RESP ONSE_QUEST ION rq ON  rq.FORM_RE SPONSE_QUE STION_ID =  ra.FORM_R ESPONSE_QU ESTION_ID  ' +
        752       --                        'J OIN AHOBPR .FORM_RESP ONSE fr ON  fr.FORM_R ESPONSE_ID  = rq.FORM _RESPONSE_ ID ' +
        753       --                      ' WH ERE ra.STD _FORM_ANSW ER_ID IN ( ' + @answe r + ') AND  fr.REGIST RANT_ID =  a.REGISTRA NT_ID )';
        754                             
        755     SET @Que ry = @Quer y + ' AND  EXISTS(SEL ECT fr.REG ISTRANT_ID  FROM AHOB PR.FORM_RE SPONSE_ANS WER ra ' +  
        756                             'JOIN  AHOBPR.FOR M_RESPONSE _QUESTION  rq ON rq.F ORM_RESPON SE_QUESTIO N_ID = ra. FORM_RESPO NSE_QUESTI ON_ID  ' +  
        757                             'JOIN  AHOBPR.FOR M_RESPONSE  fr ON fr. FORM_RESPO NSE_ID = r q.FORM_RES PONSE_ID   ' + 
        758                             'JOIN  AHOBPR.STD _FORM_ANSW ER A1 ON A 1.STD_FORM _ANSWER_ID  = ra.STD_ FORM_ANSWE R_ID ' + 
        759                             'JOIN  AHOBPR.STD _FORM_QUES TION Q1 ON  Q1.STD_FO RM_QUESTIO N_ID = rq. STD_FORM_Q UESTION_ID  ' + 
        760                             'JOIN  AHOBPR.STD _FORM_QUES TION Q2 ON  Q2.FORM_Q UESTION_UN IQUE_ID =  Q1.FORM_QU ESTION_UNI QUE_ID ' +  
        761                             'JOIN  AHOBPR.STD _FORM_ANSW ER A2 ON A 2.STD_FORM _QUESTION_ ID = Q2.ST D_FORM_QUE STION_ID '  + 
        762                             ' AND  A1.BRP_FOR M_ANSWER_I D = A2.BRP _FORM_ANSW ER_ID ' + 
        763                           ' WHERE  A2.STD_FOR M_ANSWER_I D IN (' +  @answer +  ') AND fr. REGISTRANT _ID = a.RE GISTRANT_I D )';                           
        764                             
        765     
        766     IF ISNUL L(@subpopu lationFlag ,'') != ''
        767       SET @Q uery = @Qu ery + ' AN D EXISTS(S ELECT * FR OM AHOBPR. REGISTRANT _REGISTRY_ FLAG subpo p ' +
        768                                            '  WHERE subp op.STD_REG ISTRY_FLAG _ID IN ('  + @subpopu lationFlag  + ') ' +
        769                                               ' AND subp op.REGISTR ANT_ID = a .REGISTRAN T_ID ) ';
        770  
        771           IF  ISNULL(@a dminFlag,' ') != ''
        772       SET @Q uery = @Qu ery + ' AN D EXISTS(S ELECT * FR OM AHOBPR. REGISTRANT _REGISTRY_ FLAG admin flag ' +
        773                             ' WHER E adminfla g.STD_REGI STRY_FLAG_ ID IN (' +  @adminFla g + ') ' +
        774                               ' AN D adminfla g.REGISTRA NT_ID = a. REGISTRANT _ID ' +
        775                               ' AN D adminfla g.CREATED  BETWEEN '' ' + CONVER T(VARCHAR( 20),@admin FlagFromDa te,121) + 
        776                                                          ''' AND '' ' + CONVER T(VARCHAR( 20),@admin FlagToDate ,121) + '' ' ) ';  
        777                                 
        778     IF ISNUL L(@healthF actor,'')  != ''
        779       SET @Q uery = @Qu ery + ' AN D EXISTS ( SELECT re. REGISTRANT _ID FROM A HOBPR.REGI STRANT_VIS IT re ' +
        780                                               ' JOIN AHO BPR.REGIST RANT_HEALT H_FACTOR h f ON re.RE GISTRANT_V ISIT_ID =  hf.REGISTR ANT_VISIT_ ID ' +
        781                                             '  WHERE a.R EGISTRANT_ ID = re.RE GISTRANT_I D AND re.E VALUATION_ FLAG = ''Y '' ' +
        782                                             '    AND hf. STD_HEALTH _FACTOR_ID  IN (' + @ healthFact or + ') )  '
        783  
        784     IF ISNUL L(@deploym entAll,'')  != '' 
        785       SET @Q uery = @Qu ery + ' AN D EXISTS ( SELECT dep l.REGISTRA NT_ID FROM  AHOBPR.RE GISTRANT_D EPLOYMENT  depl ' +
        786                                             '  WHERE a.R EGISTRANT_ ID = depl. REGISTRANT _ID
        787                                                  AND dep l.DEPLOYME NT_COUNTRY  = ''' + @ deployment All + ''')  ' ;
        788  
        789     IF ISNUL L(@deploym entExposur e,'') != '
        790       SET @Q uery = @Qu ery + ' AN D EXISTS(S ELECT depl oymentExpo sure.REGIS TRANT_ID F ROM AHOBPR .REGISTRAN T_DEPLOYME NT deploym entExposur e ' +
        791                                               '  JOIN AH OBPR.FORM_ RESPONSE_Q UESTION ex posure ON  deployment Exposure.R EGISTRANT_ DEPLOYMENT _ID = expo sure.REGIS TRANT_DEPL OYMENT_ID  ' +
        792                                               '  JOIN AH OBPR.STD_F ORM_QUESTI ON quest O N exposure .STD_FORM_ QUESTION_I D = quest. STD_FORM_Q UESTION_ID  ' +
        793                                               ' WHERE qu est.FORM_Q UESTION_UN IQUE_ID =  ''1.2.A''  ' +
        794                                               '   AND de ploymentEx posure.DEP LOYMENT_CO UNTRY = '' ' + @deplo ymentExpos ure + ''''  + 
        795                                               '   AND de ploymentEx posure.REG ISTRANT_ID  = a.REGIS TRANT_ID )  ';
        796     IF ISNUL L(@exclude Dead,'N')  = 'Y'
        797       SET @Q uery = @Qu ery + ' AN D a.DECEAS ED_FLAG =  0 ';
        798     
        799     IF ISNUL L(@gender, '') != ''
        800       SET @Q uery = @Qu ery + ' AN D ''' + @g ender + '' ' = ISNULL (a.GENDER, ''No Data  Available' ') ';
        801       
        802     IF ISNUL L(@ethnici ty,'') !=  ''
        803       SET @Q uery = @Qu ery + ' AN D ''' + @e thnicity +  ''' = ISN ULL(a.ETHN ICITY,''No  Data Avai lable'') ' ;
        804     
        805     IF ISNUL L(@separat ionType,0)  != 0
        806       SET @Q uery = @Qu ery + ' AN D ''' + @s eparationT ype + '''  = ISNULL(a .STD_SEPAR ATION_REAS ON_ID_CURR ENT,0) ';
        807  
        808     IF @sepa rationFrom Date IS NO T NULL 
        809       SET @Q uery = @Qu ery + ' AN D a.SEPARA TION_DATE_ CURRENT >=  ''' + CON VERT(VARCH AR(20),@se parationFr omDate,121 ) + '''';
        810     
        811     IF @sepa rationToDa te IS NOT  NULL 
        812       SET @Q uery = @Qu ery + ' AN D  a.SEPAR ATION_DATE _CURRENT < = ''' + CO NVERT(VARC HAR(20),@s eparationT oDate,121)  + '''';
        813     
        814     IF ISNUL L(@race,'' ) != ''
        815       SET @Q uery = @Qu ery + ' AN D ''' + @r ace + '''  =  ISNULL( a.RACE ,'' No Data Av ailable'')  ';
        816       
        817     IF ISNUL L(@enrollm entStatus, '') != ''
        818       SET @Q uery = @Qu ery + ' AN D ''' + @e nrollmentS tatus + '' ' = ISNULL (a.ENROLLM ENT_STATUS ,''No Data  Available '') ';
        819  
        820     -- Add S ummary TDE                     
        821     SET @Que ry = @Quer y + '  )     ,Summary   AS( ' + 
        822                             ' SELE CT Src.STD _INSTITUTI ON_ID, COU NT(*) AS T otalRegist rants FROM  Src ' +
        823                             ' GROU P BY STD_I NSTITUTION _ID ) ';
        824   -- By Faci lity 
        825           IF  @groupBy  = 'Facilit y'
        826              SET @Query  = @Query  + ' SELECT  inst.Name  AS Locati on, ' +
        827                                               ' ISNULL(C ONVERT(VAR CHAR(10),S ummary.STD _INSTITUTI ON_ID),''- 1'') AS Lo cationId,  ' +
        828                                         '  SU M(TotalReg istrants)  AS TotalRe gistrants  FROM Summa ry ' +                         
        829                                       '  JOIN  AHOBPR.VI EW_INSTITU TION_NAME  inst ON in st.ID = IS NULL(Summa ry.STD_INS TITUTION_I D,-1) ' +
        830                                       ' GROUP  BY inst.N ame,STD_IN STITUTION_ ID ' +
        831                                           ' O PTION (OPT IMIZE FOR  UNKNOWN);' ;
        832     
        833   -- By VISN
        834           IF  @groupBy  = 'VISN'
        835               SET @Quer y = @Query  + ' ,Visn Summary AS  ( ' +
        836                     ' S ELECT ISNU LL(inst.Vi snID,''NLA '') AS Loc ation, ' +
        837                            '  ISNU LL(inst.Vi snID, ''-1 '') AS Loc ationId, '  +
        838                            '  SUM( TotalRegis trants) AS  TotalRegi strants '  +                 
        839                     '    FROM Summ ary ' +   
        840                     '    LEFT JOIN  AHOBPR.VI EW_FACILIT Y_LOOKUP i nst ON ins t.ID = ISN ULL(Summar y.STD_INST ITUTION_ID ,-1) ' +  
        841                     '    GROUP BY  inst.VisnI D  ) ' +
        842                     ' S ELECT REPL ACE(Locati on,''NLA'' ,''No Faci tilty Assi gned'') AS  Location,  ' +
        843                     '         CONV ERT(VARCHA R(10),Loca tionId) AS  LocationI d, TotalRe gistrants  ' +
        844                     '    FROM Visn Summary  '  +
        845                     '   ORDER BY L ocation ' 
        846                     '   OPTION (OP TIMIZE FOR  UNKNOWN);  ' ;
        847           
        848     PRINT @Q uery;          
        849                                           
        850     EXECUTE  (@Query);                                                  
        851   END
        852   -- Paramet ers
        853     --@statu s, @dutySt atus ,@que stionnaire StartDate,  @question naireCompl eteDate, 
        854     --@quest ionNumber,  @answer,  @healthCon cerns= 'Al l', @reque stToBeSeen  = 'All',
        855     --@regis tryFlag,@I nstitution Id = 0, @V isnId = ''  
        856   -- Test Ca ses
        857   -- EXECUTE  [AHOBPR]. [SP_Report AdHocByLoc ation] @gr oupBy = 'V ISN',  @st atus = '6, 7'
        858   -- EXECUTE  [AHOBPR]. [SP_Report AdHocByLoc ation] @gr oupBy = 'V ISN',  @du tyStatus =  '1,2'
        859   -- EXECUTE  [AHOBPR]. [SP_Report AdHocByLoc ation] @gr oupBy = 'V ISN',  @fo rmStartFro mDateText   = '200101 01'
        860   -- EXECUTE  [AHOBPR]. [SP_Report AdHocByLoc ation] @gr oupBy = 'V ISN',  @fo rmStartToD ateText =  '20141231'
        861   -- EXECUTE  [AHOBPR]. [SP_Report AdHocByLoc ation] @gr oupBy = 'V ISN',  @he althFactor  = '44,45, 46,47' 
        862   -- EXECUTE  [AHOBPR]. [SP_Report AdHocByLoc ation] @gr oupBy = 'V ISN',  @fo rmCompleti onFromDate Text  = '2 0010101'
        863   -- EXECUTE  [AHOBPR]. [SP_Report AdHocByLoc ation] @gr oupBy = 'V ISN',  @fo rmCompleti onToDateTe xt  = '201 41231'
        864   -- EXECUTE  [AHOBPR]. [SP_Report AdHocByLoc ation] @gr oupBy = 'V ISN',  @he althConcer ns = 'Yes'  
        865   -- EXECUTE  [AHOBPR]. [SP_Report AdHocByLoc ation] @gr oupBy = 'V ISN',  @re questToBeS een = 'Yes '
        866   -- EXECUTE  [AHOBPR]. [SP_Report AdHocByLoc ation] @gr oupBy = 'V ISN',  @su bpopulatio nFlag = '6 4,65,66,67 '
        867   -- EXECUTE  [AHOBPR]. [SP_Report AdHocByLoc ation] @gr oupBy = 'V ISN',  @de ploymentAl l = 'Iraq'     -- 'Eg ypt'
        868   -- EXECUTE  [AHOBPR]. [SP_Report AdHocByLoc ation] @gr oupBy = 'V ISN',  @de ploymentEx posure  =  'Iraq'
        869   -- EXECUTE  [AHOBPR]. [SP_Report AdHocByLoc ation] @gr oupBy = 'V ISN',  @ad minFlag =  '59,60' ,@ adminFlagF romDateTex t = '20150 101' , @ad minFlagToD ateText =  '20150201'
        870   -- EXECUTE  [AHOBPR]. [SP_Report AdHocByLoc ation] @gr oupBy = 'V ISN',  @an swer = '22 21'
        871   -- EXECUTE  [AHOBPR]. [SP_Report AdHocByLoc ation] @gr oupBy =  ' Facility'  , @status  = '6,7' ,@ answer = ' 2346,1571, 17'   -- ' 20,795,157 0' 
        872   GO
        873  
        874   PRINT 'ALT ER PROCEDU RE SP_Repo rtAdHocByI ndividual. ..';
        875   GO
        876   -- ======= ========== ========== ========== ========
        877   -- Author:                Debora h Barr
        878   -- Create  date: Nove mber 12, 2 014
        879   -- Descrip tion: Used  for the A HOBPR Ad H oc Report   
        880  
        881   -- Modific ation log
        882   -- 2014-12 -31 - Chan ged from F LAG to RES PONSE for  Health Con cerns and  REQUEST_SE EN, Reform atted stat ements for  readabili ty
        883   -- 2015-01 -05 - Chan ge Date Fo rmat to MM /DD/YYYY
        884   -- 2015-01 -14 - Sher ry Wang Ad d more par ameters: @ healthFact or, @formS tartFromDa te, @formS tartToDate , @subpopu lationFlag
        885   -- 2015-01 -14 - Sher ry Wang Ad d more par ameters: @ adminFlag,  @deployme ntAll, @de ploymentEx posure, @a dminFlagFr omDate, @a dminFlagTo Date
        886   -- 2015-01 -16 - Bruc e Clegg -  Fix parame ters and r emove NULL s from dis play where  possible
        887   -- 2015-02 -09 - Bruc e Clegg -  Change Hea lth Factor  Exists st atements t o use new  REGISTRANT _VISIT
        888   -- 2015-03 -30 - Bruc e Clegg -  Added Visn Id value o f NLA to f ind Null l ocations
        889   -- 2015-04 -27 - Bruc e Clegg -  Change to  LocationTy pe and Key , for both  Assigned  and Evalua ted Locati ons
        890   -- 2015-06 -04 - Bruc e Clegg -  Add more p arameters
        891   -- 2015-06 -18 - Bruc e Clegg -  Changed @s eparationT ype to an  Integer 
        892   -- 2015-07 -09 - Bruc e CLegg -  Rewrote as  Dynamic S QL for per formance
        893   -- ======= ========== ========== ========== ========
        894   ALTER PROC EDURE [AHO BPR].[SP_R eportAdHoc ByIndividu al]
        895          @st atus varch ar(100) =  NULL, -- M ultiple st atues, com ma-separat ed values  when not N ULL
        896          @du tyStatus v archar(100 ) = NULL,  -- Multipl e states,  comma-sepa rated valu es when no t NULL  
        897          @fo rmStartFro mDateText  varchar(10 0) = NULL,
        898          @fo rmStartToD ateText va rchar(100)  = NULL,
        899          @he althFactor  varchar(1 00) = NULL , -- Multi ple health  factor ID s, comma-s eparated v alues when  not NULL
        900          @fo rmCompleti onFromDate Text varch ar(100) =  NULL,
        901          @fo rmCompleti onToDateTe xt varchar (100) = NU LL,
        902          @qu estionNumb er varchar (100) = NU LL,
        903          @an swer varch ar(100) =  NULL,
        904          @he althConcer ns varchar (100) = 'A ll', 
        905          @re questToBeS een varcha r(100) = ' All',
        906          @As signedLoca tionType   VARCHAR(20 ) = NULL,   -- 'VISN' , 'Base',  'Instituti on', 'NLA'  = No Loca tion Assig ned
        907          @As signedLoca tionKey    VARCHAR(50 ) = NULL,   -- 'V16',  'V01'     1000109,   1000089
        908          @Ev aluatedLoc ationType  VARCHAR(20 ) = NULL,   -- 'VISN' , 'Base',  'Instituti on', 'NLA'  = No Loca tion Assig ned
        909          @Ev aluatedLoc ationKey   VARCHAR(50 ) = NULL,   -- 'V16',  'V01'     1000109,   1000089
        910          @su bpopulatio nFlag varc har (10) =  NULL, 
        911          @ad minFlag va rchar (10)  = NULL, 
        912          @de ploymentAl l varchar  (256) = NU LL, 
        913          @de ploymentEx posure var char (256)  = NULL, 
        914          @ad minFlagFro mDateText  varchar (2 0) = NULL,  
        915          @ad minFlagToD ateText va rchar (20)  = NULL,
        916          @ex cludeDead  varchar(1)  = 'N',
        917          @ge nder varch ar(50) = ' ',
        918          @ra ce varchar (50) = '',
        919          @et hnicity va rchar(50)  = '',
        920          @se parationTy pe INT = 0 ,
        921          @se parationFr omDateText  varchar ( 20) = NULL
        922          @se parationTo DateText v archar (20 ) = NULL, 
        923          @en rollmentSt atus varch ar(50) = ' '
        924   AS
        925  
        926   BEGIN
        927  
        928   -- Convert  date para meters fro m VARCHAR  to DATETIM E2(0)    
        929     DECLARE  @formStart FromDate D ATETIME2(0 ) = NULL,
        930              @formStart ToDate DAT ETIME2(0)  = NULL,
        931              @formCompl etionFromD ate DATETI ME2(0) = N ULL,
        932              @formCompl etionToDat e DATETIME 2(0) = NUL L,
        933              @adminFlag FromDate D ATETIME2(0 ) = NULL,
        934              @adminFlag ToDate DAT ETIME2(0)  = NULL,
        935              @separatio nFromDate  DATETIME2( 0) = NULL,
        936              @separatio nToDate DA TETIME2(0)  = NULL;
        937  
        938     DECLARE  @Query VAR CHAR(8000) ;                 
        939     DECLARE  @MainQuery  VARCHAR(8 000);                  
        940     DECLARE  @RegCriter ia VARCHAR (8000) = ' ';                 
        941     DECLARE  @AdminWith  VARCHAR(8 000);                  
        942     DECLARE  @SubPopWit h VARCHAR( 8000);                  
        943     DECLARE  @DeployWit h VARCHAR( 8000);                  
        944  
        945     SET @for mStartFrom Date = dbo .CleanDate (@formStar tFromDateT ext);
        946     SET @for mStartToDa te = dbo.A ddMaxTime( dbo.CleanD ate(@formS tartToDate Text));
        947     SET @for mCompletio nFromDate  = dbo.Clea nDate(@for mCompletio nFromDateT ext);
        948     SET @for mCompletio nToDate =  dbo.AddMax Time(dbo.C leanDate(@ formComple tionToDate Text));      
        949     SET @adm inFlagFrom Date = ISN ULL(dbo.Cl eanDate(@a dminFlagFr omDateText ),'1900010 1');
        950     SET @adm inFlagToDa te = dbo.A ddMaxTime( ISNULL(dbo .CleanDate (@adminFla gToDateTex t),GETDATE ())); 
        951           SE T @separat ionFromDat e = dbo.Cl eanDate(@s eparationF romDateTex t);
        952     SET @sep arationToD ate = dbo. AddMaxTime (dbo.Clean Date(@sepa rationToDa teText)); 
        953  
        954           DE CLARE @Adm inType INT  = (SELECT  STD_REGIS TRY_FLAG_T YPE_ID
        955                                          FROM  AHOBPR.ST D_REGISTRY _FLAG_TYPE  
        956                                         WHERE  REGISTRY_ FLAG_TYPE  = 'Adminis trative Fl ag');
        957                                         
        958           DE CLARE @Sub PopType IN T = (SELEC T STD_REGI STRY_FLAG_ TYPE_ID
        959                                          FROM  AHOBPR.ST D_REGISTRY _FLAG_TYPE  
        960                                         WHERE  REGISTRY_ FLAG_TYPE  = 'SubPopu lation Fla g');                                  
        961                                              
        962   -- Set Ins titutionID  values if  needed.
        963   DECLARE @A ssignedIns titutionId  INT = 0,
        964           @E valuatedIn stitutionI d INT = 0;
        965  
        966   IF @Assign edLocation Type IN (' Base','Ins titution')  
        967   AND ISNUME RIC(@Assig nedLocatio nKey) = 1
        968     SET @Ass ignedInsti tutionId =  CONVERT(I NT,@Assign edLocation Key);
        969     
        970   IF @Evalua tedLocatio nType IN ( 'Base','In stitution'
        971   AND ISNUME RIC(@Evalu atedLocati onKey) = 1
        972     SET @Eva luatedInst itutionId  = CONVERT( INT,@Evalu atedLocati onKey);
        973  
        974     --Concat enate one  or more Su b-populati on flags f or Registr ants with  flags
        975     SET @Sub PopWith =  'WITH SubP op AS ( SE LECT a.REG ISTRANT_ID , '+
        976                                                    'STUF F((SELECT  '', '' + c .REGISTRY_ FLAG_NAME  ' +
        977                                                             ' FROM  AHOBPR.REG ISTRANT_RE GISTRY_FLA G b ' +
        978                                                             ' JOIN  AHOBPR.STD _REGISTRY_ FLAG c ON  b.STD_REGI STRY_FLAG_ ID = c.STD _REGISTRY_ FLAG_ID '  +
        979                                                            ' WHERE  a.REGISTRA NT_ID = b. REGISTRANT _ID ' +
        980                                                            '   AND  c.STD_REGI STRY_FLAG_ TYPE_ID =  ' + CONVER T(VARCHAR( 3),@SubPop Type) +
        981                                                              ' FOR  XML PATH(' ''')), 1,  1, '''') A S [REGISTR Y_FLAG_NAM E] ' +
        982                                           ' F ROM AHOBPR .REGISTRAN T a ' +
        983                                           'WH ERE 1 = 1  ';
        984                                           
        985     --Concat enate one  or more Ad min flags  for Regist rants with  flags
        986     SET @Adm inWith = ' , Admin AS  (  SELECT  a.REGISTR ANT_ID, '  +
        987                                       ' STUFF ((SELECT ' ', '' + c. REGISTRY_F LAG_NAME '  +
        988                                                '  FROM A HOBPR.REGI STRANT_REG ISTRY_FLAG  b ' +
        989                                                '  JOIN A HOBPR.STD_ REGISTRY_F LAG c ON b .STD_REGIS TRY_FLAG_I D = c.STD_ REGISTRY_F LAG_ID ' +
        990                                                ' WHERE a .REGISTRAN T_ID = b.R EGISTRANT_ ID ' +
        991                                                '   AND c .STD_REGIS TRY_FLAG_T YPE_ID = '  + CONVERT (VARCHAR(3 ),@AdminTy pe) +
        992                                                '   AND b .CREATED B ETWEEN '''  + CONVERT (VARCHAR(2 0),@adminF lagFromDat e,121) + 
        993                                                                   ' '' AND '''  + CONVERT (VARCHAR(2 0),@adminF lagToDate, 121) + ''' ' + 
        994                                                '   FOR X ML PATH('' '')), 1, 1 , '''') AS  [REGISTRY _FLAG_NAME ] ' +
        995                                     '  FROM A HOBPR.REGI STRANT a '  +
        996                                    '  WHERE 1  = 1 ';
        997  
        998     --Concat enate one  or more De ployment C ountries f or Registr ants with  Deployment s
        999     SET @Dep loyWith =  ', Deploy  AS (SELECT  a.REGISTR ANT_ID,  '  +
        1000                                             '  STUFF((SE LECT '', ' ' + b.DEPL OYMENT_COU NTRY ' + 
        1001                                                      '   FROM AHOBP R.REGISTRA NT_DEPLOYM ENT b ' +
        1002                                                     '  W HERE a.REG ISTRANT_ID  = b.REGIS TRANT_ID '  +
        1003                                                     '     FOR XML P ATH('''')) , 1, 1, '' '') AS DEP LOYMENT_CO UNTRY ' +
        1004                                        ' FROM  AHOBPR.RE GISTRANT a  ' +
        1005                                      '  WHERE  1 = 1 ';
        1006  
        1007     SET @Mai nQuery = '   SELECT D ISTINCT a. REGISTRANT _ID ' +
        1008                                 ', (a.LAST_NA ME + '', ' ' + a.FIRS T_NAME) AS  Name ' +
        1009                                 ', b.REGISTRA NT_STATUS  AS Status  ' +
        1010                                 ', c.SERVICE_ STATUS AS  DutyStatus  ' +
        1011                                 ', e.QUESTION NAIRE_STAR TED_DATE A S Question StartDate  ' +
        1012                                 ', e.QUESTION NAIRE_COMP LETED_DATE  AS Questi onComplete Date ' +
        1013                                 ', ISNULL(CON VERT(VARCH AR(10), e. QUESTIONNA IRE_STARTE D_DATE, 10 1),'''') A S Question StartDateD isplay ' +
        1014                                 ', ISNULL(CON VERT(VARCH AR(10), e. QUESTIONNA IRE_COMPLE TED_DATE,  101),'''')  AS Questi onComplete DateDispla y ';
        1015   --Decide w hich query  to run de pending on  if a ques tion was s elected as  a paramet er for the  report
        1016     IF ISNUL L(@questio nNumber, ' ') = ''
        1017       SET @M ainQuery =  @MainQuer y + ',''''  AS Questi onNumber '  +
        1018                                        ',''''  AS Answer  '
        1019     ELSE                                     
        1020       SET @M ainQuery =  @MainQuer y + ','''  + @questio nNumber +  ''' AS Que stionNumbe r ' +
        1021                                        ',STUF F((SELECT  '', '' + s tdAnswer.T EXT ' +
        1022                                                 '  FROM  AHOBPR.FOR M_RESPONSE _ANSWER an swer ' + 
        1023                                                 '  JOIN  AHOBPR.STD _FORM_ANSW ER stdAnsw er ON answ er.STD_FOR M_ANSWER_I D = stdAns wer.STD_FO RM_ANSWER_ ID ' +
        1024                                                 ' WHERE  formQuesti on.FORM_RE SPONSE_QUE STION_ID =  answer.FO RM_RESPONS E_QUESTION _ID ' +
        1025                                                 ' FOR XM L PATH(''' ')), 1, 1,  '''') AS  Answer ' ;                    
        1026       
        1027     SET @Mai nQuery = @ MainQuery  + ',ISNULL (a.HEALTH_ CONCERNS_R ESPONSE,'' '') AS Hea lthConcern s ' +
        1028                                      ',ISNULL (a.REQUEST _SEEN_RESP ONSE,'''')   AS Reque stBeSeen   ' +
        1029                                      ',RTRIM( LTRIM(ISNU LL(SubPop. REGISTRY_F LAG_NAME,' '''))) AS  Subpopulat ionFlag  '  +
        1030                                      ',RTRIM( LTRIM(ISNU LL(Admin.R EGISTRY_FL AG_NAME,'' ''))) AS A dminFlag   ' +
        1031                                      ',ISNULL (Deploy.DE PLOYMENT_C OUNTRY,''' ') AS Depl oymentCoun try             ' +
        1032                                                   ',a.BI RTH_DATE A S BirthDat e  ' +
        1033                                                   ',CONV ERT(VARCHA R(10), a.B IRTH_DATE,  101) AS B irthDateDi splay ' +
        1034                                      'FROM AH OBPR.REGIS TRANT a '
        1035                                      
        1036     SET @Mai nQuery = @ MainQuery  + ' JOIN A HOBPR.STD_ REGISTRANT _STATUS b  ON a.STD_R EGISTRANT_ STATUS_ID  = b.STD_RE GISTRANT_S TATUS_ID '  +
        1037                                            '  JOIN AHOBP R.STD_SERV ICE_STATUS  c ON a.ST D_SERVICE_ STATUS_ID  = c.STD_SE RVICE_STAT US_ID ' +
        1038                                                   ' LEFT  JOIN AHOB PR.FORM_RE SPONSE d O N a.REGIST RANT_ID =   d.REGISTR ANT_ID ' +
        1039                                                   ' LEFT  JOIN AHOB PR.FORM_RE SPONSE_STA TUS e ON d .FORM_RESP ONSE_ID =  e.FORM_RES PONSE_ID '  +
        1040                                                   ' LEFT  JOIN SubP op  ON a.R EGISTRANT_ ID = SubPo p.REGISTRA NT_ID ' +
        1041                                                   ' LEFT  JOIN Admi n   ON a.R EGISTRANT_ ID = Admin .REGISTRAN T_ID ' +
        1042                                                   ' LEFT  JOIN Depl oy  ON a.R EGISTRANT_ ID = Deplo y.REGISTRA NT_ID ';
        1043  
        1044     IF ISNUL L(@questio nNumber, ' ') != ''
        1045       SET @M ainQuery =  @MainQuer y + ' JOIN  AHOBPR.FO RM_RESPONS E_QUESTION  formQuest ion ON d.F ORM_RESPON SE_ID = fo rmQuestion .FORM_RESP ONSE_ID '  +
        1046                                        ' JOIN  AHOBPR.ST D_FORM_QUE STION stdQ uestion ON  formQuest ion.STD_FO RM_QUESTIO N_ID = std Question.S TD_FORM_QU ESTION_ID  ';
        1047  
        1048     SET @Mai nQuery = @ MainQuery  + ' WHERE  1 = 1 ';
        1049  
        1050     -- Quest ion Number  and Answe r criteria  are only  used again st Main Qu ery                  
        1051     IF ISNUL L(@questio nNumber, ' ') > ''
        1052              SET @MainQ uery = @Ma inQuery +  ' AND stdQ uestion.FO RM_QUESTIO N_UNIQUE_I D = ''' +  @questionN umber + '' ' ';
        1053             
        1054     IF ISNUL L(@answer, '') != '' 
        1055       SET @M ainQuery =  @MainQuer y +  ' AND  EXISTS(SE LECT fr.RE GISTRANT_I D FROM AHO BPR.FORM_R ESPONSE_AN SWER ra ' 
        1056                                          'JOI N AHOBPR.F ORM_RESPON SE_QUESTIO N rq ON rq .FORM_RESP ONSE_QUEST ION_ID = r a.FORM_RES PONSE_QUES TION_ID  '  + 
        1057                                          'JOI N AHOBPR.F ORM_RESPON SE fr ON f r.FORM_RES PONSE_ID =  rq.FORM_R ESPONSE_ID   ' + 
        1058                                          'JOI N AHOBPR.S TD_FORM_AN SWER A1 ON  A1.STD_FO RM_ANSWER_ ID = ra.ST D_FORM_ANS WER_ID ' +  
        1059                                          'JOI N AHOBPR.S TD_FORM_QU ESTION Q1  ON Q1.STD_ FORM_QUEST ION_ID = r q.STD_FORM _QUESTION_ ID ' + 
        1060                                          'JOI N AHOBPR.S TD_FORM_QU ESTION Q2  ON Q2.FORM _QUESTION_ UNIQUE_ID  = Q1.FORM_ QUESTION_U NIQUE_ID '  + 
        1061                                          'JOI N AHOBPR.S TD_FORM_AN SWER A2 ON  A2.STD_FO RM_QUESTIO N_ID = Q2. STD_FORM_Q UESTION_ID  ' + 
        1062                                          ' AN D A1.BRP_F ORM_ANSWER _ID = A2.B RP_FORM_AN SWER_ID ' 
        1063                                        ' WHER E A2.STD_F ORM_ANSWER _ID IN ('  + @answer  + ') AND f r.REGISTRA NT_ID = a. REGISTRANT _ID )';                                                         
        1064  
        1065     IF @form StartFromD ate IS NOT  NULL                       
        1066        SET @ MainQuery  = @MainQue ry + ' AND  e.QUESTIO NNAIRE_STA RTED_DATE  >= ''' + C ONVERT(VAR CHAR(20),@ formStartF romDate,12 1) + '''';
        1067        
        1068     IF @form StartToDat e IS NOT N ULL                       
        1069        SET @ MainQuery  = @MainQue ry + ' AND  e.QUESTIO NNAIRE_STA RTED_DATE  <= ''' + C ONVERT(VAR CHAR(20),@ formStartT oDate,121)  + '''';
        1070       
        1071     IF @form Completion FromDate I S NOT NULL                        
        1072        SET @ MainQuery  = @MainQue ry + ' AND  e.QUESTIO NNAIRE_COM PLETED_DAT E >= ''' +  CONVERT(V ARCHAR(20) ,@formComp letionFrom Date,121)  + '''';
        1073  
        1074     IF @form Completion ToDate IS  NOT NULL                       
        1075        SET @ MainQuery  = @MainQue ry + ' AND  e.QUESTIO NNAIRE_COM PLETED_DAT E <= ''' +  CONVERT(V ARCHAR(20) ,@formComp letionToDa te,121) +  '''';
        1076  
        1077     IF ISNUL L(@subpopu lationFlag ,'') != ''
        1078       SET @M ainQuery =  @MainQuer y + ' AND  EXISTS(SEL ECT * FROM  AHOBPR.RE GISTRANT_R EGISTRY_FL AG subpop  ' +
        1079                                            '  WHERE subp op.STD_REG ISTRY_FLAG _ID IN ('  + @subpopu lationFlag  + ') ' +
        1080                                               ' AND subp op.REGISTR ANT_ID = a .REGISTRAN T_ID ) ';
        1081  
        1082           IF  ISNULL(@a dminFlag,' ') != ''
        1083       SET @M ainQuery =  @MainQuer y + ' AND  EXISTS(SEL ECT * FROM  AHOBPR.RE GISTRANT_R EGISTRY_FL AG adminfl ag ' +
        1084                             ' WHER E adminfla g.STD_REGI STRY_FLAG_ ID IN (' +  @adminFla g + ') ' +
        1085                               ' AN D adminfla g.REGISTRA NT_ID = a. REGISTRANT _ID ' +
        1086                               ' AN D adminfla g.CREATED  BETWEEN '' ' + CONVER T(VARCHAR( 20),@admin FlagFromDa te,121) + 
        1087                                                          ''' AND '' ' + CONVER T(VARCHAR( 20),@admin FlagToDate ,121) + '' ' ) ';  
        1088                                                     
        1089     IF ISNUL L(@deploym entAll,'')  != '' 
        1090       SET @M ainQuery =  @MainQuer y + 'AND E XISTS (SEL ECT depl.R EGISTRANT_ ID FROM AH OBPR.REGIS TRANT_DEPL OYMENT dep l ' +
        1091                                                          ' WHERE a. REGISTRANT _ID = depl .REGISTRAN T_ID
        1092                                                              AND de pl.DEPLOYM ENT_COUNTR Y = ''' +  @deploymen tAll + ''' ) ' ;
        1093                                                            
        1094     IF ISNUL L(@healthF actor,'')  != ''
        1095       SET @M ainQuery =  @MainQuer y + ' AND  EXISTS (SE LECT re.RE GISTRANT_I D FROM AHO BPR.REGIST RANT_VISIT  re ' +
        1096                                               ' JOIN AHO BPR.REGIST RANT_HEALT H_FACTOR h f ON re.RE GISTRANT_V ISIT_ID =  hf.REGISTR ANT_VISIT_ ID ' +
        1097                                             '  WHERE a.R EGISTRANT_ ID = re.RE GISTRANT_I D AND re.E VALUATION_ FLAG = ''Y '' ' +
        1098                                             '    AND hf. STD_HEALTH _FACTOR_ID  IN (' + @ healthFact or + ') )  '
        1099  
        1100    
        1101     IF ISNUL L(@deploym entExposur e,'') != '
        1102       SET @M ainQuery =  @MainQuer y + ' AND  EXISTS(SEL ECT deploy mentExposu re.REGISTR ANT_ID FRO M AHOBPR.R EGISTRANT_ DEPLOYMENT  deploymen tExposure  ' +
        1103                                               '  JOIN AH OBPR.FORM_ RESPONSE_Q UESTION ex posure ON  deployment Exposure.R EGISTRANT_ DEPLOYMENT _ID = expo sure.REGIS TRANT_DEPL OYMENT_ID  ' +
        1104                                               '  JOIN AH OBPR.STD_F ORM_QUESTI ON quest O N exposure .STD_FORM_ QUESTION_I D = quest. STD_FORM_Q UESTION_ID  ' +
        1105                                               ' WHERE qu est.FORM_Q UESTION_UN IQUE_ID =  ''1.2.A''  ' +
        1106                                               '   AND de ploymentEx posure.DEP LOYMENT_CO UNTRY = '' ' + @deplo ymentExpos ure + ''''  + 
        1107                                               '   AND de ploymentEx posure.REG ISTRANT_ID  = a.REGIS TRANT_ID )  ';
        1108                                                              
        1109     
        1110    -- The re st of the  criteria w ill be app lied to Ma in Query a nd With st atememts 
        1111     IF @stat us IS NOT  NULL
        1112       SET @R egCriteria  = @RegCri teria + '  AND a.STD_ REGISTRANT _STATUS_ID  IN (' + @ status + ' )';
        1113  
        1114     IF ISNUL L(@dutySta tus,'') >  ''
        1115       SET @R egCriteria  = @RegCri teria + '  AND a.STD_ SERVICE_ST ATUS_ID IN  (' + @dut yStatus +  ')';
        1116             
        1117     IF @heal thConcerns  != 'All'
        1118       SET @R egCriteria  = @RegCri teria + '  AND a.HEAL TH_CONCERN S_RESPONSE  = ''' + @ healthConc erns + ''' '; 
        1119     
        1120     IF @requ estToBeSee n != 'All'
        1121       SET @R egCriteria  = @RegCri teria + '  AND a.REQU EST_SEEN_R ESPONSE =  ''' + @req uestToBeSe en  + '''' ;
        1122                                                                             
        1123     IF ISNUL L(@exclude Dead,'N')  = 'Y'
        1124       SET @R egCriteria  = @RegCri teria + '  AND a.DECE ASED_FLAG  = 0 ';
        1125     
        1126     IF ISNUL L(@gender, '') != ''
        1127       SET @R egCriteria  = @RegCri teria + '  AND ''' +  @gender +  ''' = ISNU LL(a.GENDE R,''No Dat a Availabl e'') ';
        1128       
        1129     IF ISNUL L(@ethnici ty,'') !=  ''
        1130       SET @R egCriteria  = @RegCri teria + '  AND ''' +  @ethnicity  + ''' = I SNULL(a.ET HNICITY,'' No Data Av ailable'')  ';
        1131     
        1132     IF ISNUL L(@separat ionType,0)  != 0
        1133       SET @R egCriteria  = @RegCri teria + '  AND ''' +  @separatio nType + '  = ISNULL(a .STD_SEPAR ATION_REAS ON_ID_CURR ENT,0) ';
        1134  
        1135     IF @sepa rationFrom Date IS NO T NULL 
        1136       SET @R egCriteria  = @RegCri teria + '  AND a.SEPA RATION_DAT E_CURRENT  >= ''' + C ONVERT(VAR CHAR(20),@ separation FromDate,1 21) + '''' ;
        1137     
        1138     IF @sepa rationToDa te IS NOT  NULL 
        1139       SET @R egCriteria  = @RegCri teria + '  AND  a.SEP ARATION_DA TE_CURRENT  <= ''' +  CONVERT(VA RCHAR(20), @separatio nToDate,12 1) + '''';
        1140     
        1141     IF ISNUL L(@race,'' ) != ''
        1142       SET @R egCriteria  = @RegCri teria + '  AND ''' +  @race + '' ' =  ISNUL L(a.RACE , ''No Data  Available' ') ';
        1143       
        1144     IF ISNUL L(@enrollm entStatus, '') != ''
        1145       SET @R egCriteria  = @RegCri teria + '  AND ''' +  @enrollmen tStatus +  ''' = ISNU LL(a.ENROL LMENT_STAT US,''No Da ta Availab le'') ';
        1146  
        1147     IF @Assi gnedLocati onType IS  NOT NULL
        1148       BEGIN
        1149         IF @ AssignedLo cationType  = 'NLA' 
        1150           SE T @RegCrit eria = @Re gCriteria  + ' AND a. STD_INSTIT UTION_ID I S NULL ' ;
        1151         ELSE
        1152         IF @ AssignedLo cationType  = 'VISN' 
        1153           SE T @RegCrit eria = @Re gCriteria  + ' AND EX ISTS(SELEC T * FROM A HOBPR.VIEW _FACILITY_ LOOKUP ins t ' +
        1154                                                                      ' WHERE i nst.ID = a .STD_INSTI TUTION_ID  ' + 
        1155                                                                      '   AND i nst.VisnID  = ''' + @ AssignedLo cationKey  + ''') ';
        1156         ELSE
        1157         IF @ AssignedLo cationType  = 'Base' 
        1158           SE T @RegCrit eria = @Re gCriteria  + ' AND EX ISTS(SELEC T * FROM A HOBPR.VIEW _FACILITY_ LOOKUP ins t ' +
        1159                                                              ' WHER E inst.ID  = a.STD_IN STITUTION_ ID ' +
        1160                                                              '   AN D inst.BAS E_ID = ' +  CONVERT(V ARCHAR(20) ,@Assigned Institutio nId) + ')  '
        1161         ELSE
        1162         IF @ AssignedLo cationType  = 'Instit ution' 
        1163           SE T @RegCrit eria = @Re gCriteria  + ' AND a. STD_INSTIT UTION_ID =  ' + CONVE RT(VARCHAR (20),@Assi gnedInstit utionId);
        1164      END;
        1165      
        1166     IF @Eval uatedLocat ionType IS  NOT NULL
        1167       BEGIN
        1168         IF @ EvaluatedL ocationTyp e = 'NLA' 
        1169           SE T @RegCrit eria = @Re gCriteria  + ' AND NO T EXISTS(  SELECT * F ROM AHOBPR .REGISTRAN T_VISIT ev al ' +
        1170                                                                   '  WHERE eva l.REGISTRA NT_VISIT_I D = a.REGI STRANT_ID  ' +
        1171                                                                   '    AND eva l.EVALUATI ON_FLAG =  ''Y'') ' ;  
        1172         ELSE
        1173         IF @ EvaluatedL ocationTyp e = 'VISN'  
        1174           SE T @RegCrit eria = @Re gCriteria  + ' AND EX ISTS(SELEC T * FROM A HOBPR.REGI STRANT_VIS IT eval '  +
        1175                                                               ' JOI N AHOBPR.V IEW_FACILI TY_LOOKUP  inst ON in st.ID = ev al.STD_INS TITUTION_I D ' +
        1176                                                              ' WHER E eval.REG ISTRANT_VI SIT_ID = a .REGISTRAN T_ID ' +
        1177                                                                ' AN D eval.EVA LUATION_FL AG = ''Y''  ' +
        1178                                                                ' AN D inst.Vis nID = '''  + @Evaluat edLocation Key + ''')  '; 
        1179         ELSE
        1180         IF @ EvaluatedL ocationTyp e = 'Base'  
        1181           SE T @RegCrit eria = @Re gCriteria  +  ' AND E XISTS(SELE CT * FROM  AHOBPR.REG ISTRANT_VI SIT eval '  +
        1182                                                               ' JOI N AHOBPR.V IEW_FACILI TY_LOOKUP  inst ON in st.ID = ev al.STD_INS TITUTION_I D ' +
        1183                                                              ' WHER E eval.REG ISTRANT_VI SIT_ID = a .REGISTRAN T_ID ' +
        1184                                                                ' AN D eval.EVA LUATION_FL AG = ''Y''  ' +
        1185                                                                ' AN D inst.BAS E_ID = ' +  CONVERT(V ARCHAR(20) ,@Evaluate dInstituti onId) + ')  ';
        1186         ELSE
        1187         IF @ EvaluatedL ocationTyp e = 'Insti tution' 
        1188           SE T @RegCrit eria = @Re gCriteria  +  ' AND E XISTS(SELE CT * FROM  AHOBPR.REG ISTRANT_VI SIT eval '  +
        1189                                                               ' JOI N AHOBPR.V IEW_FACILI TY_LOOKUP  inst ON in st.ID = ev al.STD_INS TITUTION_I D ' +
        1190                                                              ' WHER E eval.REG ISTRANT_VI SIT_ID = a .REGISTRAN T_ID ' +
        1191                                                                ' AN D eval.EVA LUATION_FL AG = ''Y''  ' +
        1192                                                                ' AN D eval.STD _INSTITUTI ON_ID = '  + CONVERT( VARCHAR(20 ),@Evaluat edInstitut ionId)  +  ') '; 
        1193       END;
        1194       
        1195   -- Add cri teria and  Close With  Statement
        1196     SET @Dep loyWith =  @DeployWit h + @RegCr iteria + '  GROUP BY  a.REGISTRA NT_ID ) ' 
        1197     SET @Sub PopWith =  @SubPopWit h + @RegCr iteria + '  GROUP BY  a.REGISTRA NT_ID ) ' 
        1198     SET @Adm inWith =   @AdminWith   + @RegCr iteria + '  GROUP BY  a.REGISTRA NT_ID ) ' 
        1199  
        1200     SET @Que ry =  @Sub PopWith +   @AdminWit h + @Deplo yWith +  @ MainQuery  + @RegCrit eria;             
        1201  
        1202     PRINT  @ Query;
        1203     
        1204    EXECUTE ( @Query);  
        1205   END;
        1206  
        1207  
        1208  
        1209   -- Test Ca ses
        1210   -- EXECUTE  [AHOBPR]. [SP_Report AdHocByInd ividual] 
        1211   -- EXECUTE  [AHOBPR]. [SP_Report AdHocByInd ividual] @ status = ' 6,7'
        1212   -- EXECUTE  [AHOBPR]. [SP_Report AdHocByInd ividual] @ dutyStatus  = '1,2'
        1213   -- EXECUTE  [AHOBPR]. [SP_Report AdHocByInd ividual] @ formStartF romDateTex t  = '2001 0101'
        1214   -- EXECUTE  [AHOBPR]. [SP_Report AdHocByInd ividual] @ formStartT oDateText  = '2014123 1'
        1215   -- EXECUTE  [AHOBPR]. [SP_Report AdHocByInd ividual] @ healthFact or = '44,4 5,46,47' 
        1216   -- EXECUTE  [AHOBPR]. [SP_Report AdHocByInd ividual] @ formComple tionFromDa teText  =  '20010101'
        1217   -- EXECUTE  [AHOBPR]. [SP_Report AdHocByInd ividual] @ formComple tionToDate Text  = '2 0141231'
        1218   -- EXECUTE  [AHOBPR]. [SP_Report AdHocByInd ividual] @ healthConc erns = 'Ye s'     , 
        1219   -- EXECUTE  [AHOBPR]. [SP_Report AdHocByInd ividual] @ requestToB eSeen = 'Y es
        1220   -- EXECUTE  [AHOBPR]. [SP_Report AdHocByInd ividual] @ subpopulat ionFlag =  '64,65,66, 67'
        1221   -- EXECUTE  [AHOBPR]. [SP_Report AdHocByInd ividual] @ deployment All = 'Egy pt'
        1222   -- EXECUTE  [AHOBPR]. [SP_Report AdHocByInd ividual] @ deployment Exposure   = 'Iraq'
        1223   -- EXECUTE  [AHOBPR]. [SP_Report AdHocByInd ividual] @ adminFlag  = '59,60'  ,@adminFla gFromDateT ext = '201 50101' , @ adminFlagT oDateText  = '2015020 1'
        1224   -- EXECUTE  [AHOBPR]. [SP_Report AdHocByInd ividual] @ questionNu mber = '5. 4.A'  , @a nswer = '2 221'
        1225   -- exec [A HOBPR].[SP _ReportAdH ocByIndivi dual]
        1226   -- exec [A HOBPR].[SP _ReportAdH ocByIndivi dual] @Ass ignedLocat ionType =  'NLA'
        1227   -- exec [A HOBPR].[SP _ReportAdH ocByIndivi dual] @Ass ignedLocat ionType =  'VISN', @A ssignedLoc ationKey =  'V16'
        1228   -- exec [A HOBPR].[SP _ReportAdH ocByIndivi dual] @Ass ignedLocat ionType =  'Base', @A ssignedLoc ationKey =  '1000089'
        1229   -- exec [A HOBPR].[SP _ReportAdH ocByIndivi dual] @Ass ignedLocat ionType =  'Instituti on', @Assi gnedLocati onKey = '1 000089'
        1230   -- exec [A HOBPR].[SP _ReportAdH ocByIndivi dual]  @et hnicity =  'JEWISH'
        1231   -- exec [A HOBPR].[SP _ReportAdH ocByIndivi dual] @Eva luatedLoca tionType =  'NLA'
        1232   -- exec [A HOBPR].[SP _ReportAdH ocByIndivi dual] @Eva luatedLoca tionType =  'VISN', @ EvaluatedL ocationKey  = 'V16'
        1233   -- exec [A HOBPR].[SP _ReportAdH ocByIndivi dual] @Eva luatedLoca tionType =  'Base', @ EvaluatedL ocationKey  = '100008 9'
        1234   -- exec [A HOBPR].[SP _ReportAdH ocByIndivi dual] @Eva luatedLoca tionType =  'Institut ion', @Eva luatedLoca tionKey =  '1000089'
        1235  
        1236   GO
        1237   PRINT 'ALT ER PROCEDU RE SP_Repo rtParticip ation...';
        1238   GO
        1239   -- ======= ========== ========== ========== ========
        1240   -- Author:                Bruce  Clegg
        1241   -- Create  date: Dec  30, 2014
        1242   -- Descrip tion: Used  for the A HOBPR Part icipation  Report        -- exec  [AHOBPR]. [SP_Report Participat ion] 
        1243   -- 2015033 0 - Bruce  Clegg - Ad ded VisnId  value of  NLA to fin d Null loc ations
        1244   -- 2015042 7 - Bruce  Clegg - Ch ange to Lo cationType  and Key,  for both A ssigned an d Evaluate d Location s
        1245   -- 2015071 0 - Bruce  Clegg - Re write usin g Dynamic  SQL for Pe rformance
        1246   -- ======= ========== ========== ========== ========
        1247   ALTER PROC EDURE [AHO BPR].[SP_R eportParti cipation]
        1248          @St artDate DA TETIME2(0)  = NULL,  
        1249          @En dDate   DA TETIME2(0)  = NULL,
        1250          @As signedLoca tionType   VARCHAR(20 ) = NULL,   -- 'VISN' , 'Base',  'Instituti on', 'NLA'  = No Loca tion Assig ned
        1251          @As signedLoca tionKey    VARCHAR(50 ) = NULL,   -- 'V16',  'V01'     1000109,   1000089
        1252          @Ev aluatedLoc ationType  VARCHAR(20 ) = NULL,   -- 'VISN' , 'Base',  'Instituti on', 'NLA'  = No Loca tion Assig ned
        1253          @Ev aluatedLoc ationKey   VARCHAR(50 ) = NULL    -- 'V16',  'V01'     1000109,   1000089
        1254   AS
        1255   BEGIN
        1256  
        1257     SET @Sta rtDate = I SNULL(@Sta rtDate,'19 900802');  -- Desert  Storm star t date
        1258     SET @End Date = ISN ULL(@EndDa te, GetDat e());
        1259     
        1260     DECLARE  @ConsentSt atusCount  INT = 0,
        1261              @EligibleS tatusCount  INT = 0,
        1262              @Participa ntStatusCo unt INT =  0,
        1263              @HealthCon cernsCount  INT = 0,
        1264              @NoHealthC oncernsCou nt INT = 0 ,
        1265              @RequestSe enCount IN T = 0,
        1266              @NoRequest SeenCount  INT = 0,
        1267              @DoNotKnow RequestSee nCount INT  = 0,
        1268              @VeteranSe rviceStatu sCount INT  = 0,
        1269              @ActiveDut yServiceSt atusCount  INT = 0,
        1270              @RetireeSe rviceStatu sCount INT  = 0,
        1271              @Afgh911Co unt INT =  0,
        1272              @Iraq911Co unt INT =  0,
        1273              @SWA911Cou nt INT = 0 ,
        1274              @Pre911Cou nt INT = 0 ,
        1275              @Djibouti9 11Count IN T = 0,
        1276              @MedianDay sToPartici pant DECIM AL(9,2) =  0;    
        1277     
        1278     DECLARE  @AssignedI nstitution Id INT = 0 ,
        1279           @E valuatedIn stitutionI d INT = 0;
        1280  
        1281     DECLARE  @Query NVA RCHAR(MAX) ;
        1282     DECLARE  @Criteria  VARCHAR(20 00) = '';
        1283  
        1284   IF @Assign edLocation Type IN (' Base','Ins titution')  
        1285   AND ISNUME RIC(@Assig nedLocatio nKey) = 1
        1286     SET @Ass ignedInsti tutionId =  CONVERT(I NT,@Assign edLocation Key);
        1287     
        1288   IF @Evalua tedLocatio nType IN ( 'Base','In stitution'
        1289   AND ISNUME RIC(@Evalu atedLocati onKey) = 1
        1290     SET @Eva luatedInst itutionId  = CONVERT( INT,@Evalu atedLocati onKey);
        1291  
        1292     --  Buil d Criteria  string
        1293  
        1294     SET @Cri teria = '  AND respon seStat.QUE STIONNAIRE _COMPLETED _DATE BETW EEN ''' +  CONVERT(VA RCHAR(20), @StartDate ,121) +
        1295                                                                             '' ' AND '''  + CONVERT( VARCHAR(20 ),@EndDate ,121) + '' ' ' ;
        1296     IF @Assi gnedLocati onType = ' NLA' 
        1297       SET @C riteria =  @Criteria  + ' AND re g.STD_INST ITUTION_ID  IS NULL ' ;
        1298  
        1299     IF @Assi gnedLocati onType = ' VISN' 
        1300       SET @C riteria =  @Criteria  + ' AND EX ISTS(SELEC T * FROM A HOBPR.VIEW _FACILITY_ LOOKUP ins t ' +
        1301                                            '  WHERE inst .ID = reg. STD_INSTIT UTION_ID '  +
        1302                                                'AND inst .VisnID =  ''' + @Ass ignedLocat ionKey + ' '') ';
        1303           
        1304     IF @Assi gnedLocati onType = ' Base' 
        1305       SET @C riteria =  @Criteria  + ' AND EX ISTS(SELEC T * FROM A HOBPR.VIEW _FACILITY_ LOOKUP ins t ' +
        1306                                             ' WHERE inst .ID = reg. STD_INSTIT UTION_ID '  +
        1307                                                'AND inst .BASE_ID =  ' + CONVE RT(VARCHAR (20),@Assi gnedInstit utionId) +  ' ) ';
        1308                    
        1309     IF @Assi gnedLocati onType = ' Institutio n' 
        1310       SET @C riteria =  @Criteria  + ' AND re g.STD_INST ITUTION_ID  = ' + CON VERT(VARCH AR(20),@As signedInst itutionId)  + ' '    
        1311     
        1312     IF @Eval uatedLocat ionType =  'NLA' 
        1313       SET @C riteria =  @Criteria  + ' AND NO T EXISTS(  SELECT * F ROM AHOBPR .REGISTRAN T_VISIT ev al ' +
        1314                                                   'WHERE  eval.REGI STRANT_ID  = Reg.REGI STRANT_ID  ' +
        1315                                                      'AN D eval.EVA LUATION_FL AG = ''Y''  ) ';
        1316             
        1317     IF @Eval uatedLocat ionType =  'VISN' 
        1318       SET @C riteria =  @Criteria  + ' AND EX ISTS(SELEC T * FROM A HOBPR.REGI STRANT_VIS IT eval '  +
        1319                                                      'JO IN AHOBPR. VIEW_FACIL ITY_LOOKUP  inst ON i nst.ID = e val.STD_IN STITUTION_ ID ' +
        1320                                                    ' WHE RE eval.RE GISTRANT_I D = Reg.RE GISTRANT_I D ' +
        1321                                                       'A ND inst.Vi snID = '''  +  @Evalu atedLocati onKey + '' ' ' +
        1322                                                       'A ND eval.EV ALUATION_F LAG = ''Y' ') ' ; 
        1323                    
        1324     IF @Eval uatedLocat ionType =  'Base' 
        1325       SET @C riteria =  @Criteria  + ' AND EX ISTS(SELEC T * FROM A HOBPR.REGI STRANT_VIS IT eval '  +
        1326                                                      'JO IN AHOBPR. VIEW_FACIL ITY_LOOKUP  inst ON i nst.ID = e val.STD_IN STITUTION_ ID ' +
        1327                                                    ' WHE RE eval.RE GISTRANT_I D = Reg.RE GISTRANT_I D ' +
        1328                                               ' AND inst .BASE_ID =  ' + CONVE RT(VARCHAR (20),@Eval uatedInsti tutionId) 
        1329                                                 ' AND ev al.EVALUAT ION_FLAG =  ''Y'') ';  
        1330     IF @Eval uatedLocat ionType =  'Instituti on' 
        1331       SET @C riteria =  @Criteria  + ' AND EX ISTS(SELEC T * FROM A HOBPR.REGI STRANT_VIS IT eval '  +
        1332                                            '  WHERE eval .REGISTRAN T_ID = Reg .REGISTRAN T_ID '+
        1333                                               ' AND eval .STD_INSTI TUTION_ID  = ' + CONV ERT(VARCHA R(20),@Eva luatedInst itutionId)  +
        1334                                               ' AND eval .EVALUATIO N_FLAG = ' 'Y'') '; 
        1335  
        1336     --  @Par ticipantSt atusCount
        1337     SET @Que ry = ' SEL ECT @Parti cipantStat usCount =  COUNT(*) '  +
        1338                    '  F ROM [AHOBP R].[REGIST RANT] reg  ' +
        1339                    '  J OIN AHOBPR .STD_REGIS TRANT_STAT US stat ON  stat.STD_ REGISTRANT _STATUS_ID  = reg.STD _REGISTRAN T_STATUS_I D ' +
        1340                    '  J OIN AHOBPR .FORM_RESP ONSE resp  ON resp.RE GISTRANT_I D = reg.RE GISTRANT_I D ' +
        1341                    '  J OIN AHOBPR .FORM_RESP ONSE_STATU S response Stat  ON r esponseSta t.FORM_RES PONSE_ID =  resp.FORM _RESPONSE_ ID '  
        1342                  + @Cri teria     
        1343                  + '  A ND stat.RE GISTRANT_S TATUS = '' Participan t'' '; 
        1344                    
        1345     PRINT @Q uery;
        1346     EXEC sp_ executesql  @Query,   N'@Partici pantStatus Count INT  OUTPUT',     @Partici pantStatus Count OUTP UT;
        1347  
        1348      
        1349       --  @H ealthConce rnsCount
        1350     SET @Que ry = ' SEL ECT @Healt hConcernsC ount = COU NT(*) ' +
        1351                    '  F ROM [AHOBP R].[REGIST RANT] reg  ' +
        1352                    '  J OIN AHOBPR .STD_REGIS TRANT_STAT US stat ON  stat.STD_ REGISTRANT _STATUS_ID  = reg.STD _REGISTRAN T_STATUS_I D ' +
        1353                    '  J OIN AHOBPR .FORM_RESP ONSE resp  ON resp.RE GISTRANT_I D = reg.RE GISTRANT_I D ' +
        1354                    '  J OIN AHOBPR .FORM_RESP ONSE_STATU S response Stat  ON r esponseSta t.FORM_RES PONSE_ID =  resp.FORM _RESPONSE_ ID '  
        1355                  + ' WH ERE reg.HE ALTH_CONCE RNS_RESPON SE = ''Yes '' '
        1356                  + @Cri teria; 
        1357                    
        1358     PRINT @Q uery;
        1359     EXEC sp_ executesql  @Query,   N'@HealthC oncernsCou nt INT OUT PUT',    @ HealthConc ernsCount  OUTPUT;
        1360  
        1361     --  @NoH ealthConce rnsCount
        1362     SET @Que ry = ' SEL ECT @NoHea lthConcern sCount = C OUNT(*) '  +
        1363                    '  F ROM [AHOBP R].[REGIST RANT] reg  ' +
        1364                    '  J OIN AHOBPR .STD_REGIS TRANT_STAT US stat ON  stat.STD_ REGISTRANT _STATUS_ID  = reg.STD _REGISTRAN T_STATUS_I D ' +
        1365                    '  J OIN AHOBPR .FORM_RESP ONSE resp  ON resp.RE GISTRANT_I D = reg.RE GISTRANT_I D ' +
        1366                    '  J OIN AHOBPR .FORM_RESP ONSE_STATU S response Stat  ON r esponseSta t.FORM_RES PONSE_ID =  resp.FORM _RESPONSE_ ID '  
        1367                  + ' WH ERE reg.HE ALTH_CONCE RNS_RESPON SE IS NULL  '
        1368                  + @Cri teria; 
        1369                    
        1370     PRINT @Q uery;
        1371     EXEC sp_ executesql  @Query,   N'@NoHealt hConcernsC ount INT O UTPUT',     @NoHealth ConcernsCo unt OUTPUT ;
        1372                                
        1373  
        1374     --  @Req uestSeenCo unt
        1375     SET @Que ry = ' SEL ECT @Reque stSeenCoun t = COUNT( *) ' +
        1376                    '  F ROM [AHOBP R].[REGIST RANT] reg  ' +
        1377                    '  J OIN AHOBPR .STD_REGIS TRANT_STAT US stat ON  stat.STD_ REGISTRANT _STATUS_ID  = reg.STD _REGISTRAN T_STATUS_I D ' +
        1378                    '  J OIN AHOBPR .FORM_RESP ONSE resp  ON resp.RE GISTRANT_I D = reg.RE GISTRANT_I D ' +
        1379                    '  J OIN AHOBPR .FORM_RESP ONSE_STATU S response Stat  ON r esponseSta t.FORM_RES PONSE_ID =  resp.FORM _RESPONSE_ ID '  
        1380                  + ' WH ERE reg.RE QUEST_SEEN _RESPONSE  = ''Yes''  '
        1381                  + @Cri teria;
        1382                    
        1383     PRINT @Q uery;
        1384     EXEC sp_ executesql  @Query,   N'@Request SeenCount  INT OUTPUT ',    @Req uestSeenCo unt OUTPUT ;
        1385                                                             
        1386     --  @NoR equestSeen Count
        1387     SET @Que ry = ' SEL ECT @NoReq uestSeenCo unt = COUN T(*) ' +
        1388                    '  F ROM [AHOBP R].[REGIST RANT] reg  ' +
        1389                    '  J OIN AHOBPR .STD_REGIS TRANT_STAT US stat ON  stat.STD_ REGISTRANT _STATUS_ID  = reg.STD _REGISTRAN T_STATUS_I D ' +
        1390                    '  J OIN AHOBPR .FORM_RESP ONSE resp  ON resp.RE GISTRANT_I D = reg.RE GISTRANT_I D ' +
        1391                    '  J OIN AHOBPR .FORM_RESP ONSE_STATU S response Stat  ON r esponseSta t.FORM_RES PONSE_ID =  resp.FORM _RESPONSE_ ID '  
        1392                  + ' WH ERE reg.RE QUEST_SEEN _RESPONSE  = ''No'' '
        1393                  + @Cri teria;
        1394                    
        1395     PRINT @Q uery;
        1396     EXEC sp_ executesql  @Query,   N'@NoReque stSeenCoun t INT OUTP UT',    @N oRequestSe enCount OU TPUT;
        1397                                                                                                    
        1398     --  @DoN otKnowRequ estSeenCou nt
        1399     SET @Que ry = ' SEL ECT @DoNot KnowReques tSeenCount  = COUNT(* ) ' +
        1400                    '  F ROM [AHOBP R].[REGIST RANT] reg  ' +
        1401                    '  J OIN AHOBPR .STD_REGIS TRANT_STAT US stat ON  stat.STD_ REGISTRANT _STATUS_ID  = reg.STD _REGISTRAN T_STATUS_I D ' +
        1402                    '  J OIN AHOBPR .FORM_RESP ONSE resp  ON resp.RE GISTRANT_I D = reg.RE GISTRANT_I D ' +
        1403                    '  J OIN AHOBPR .FORM_RESP ONSE_STATU S response Stat  ON r esponseSta t.FORM_RES PONSE_ID =  resp.FORM _RESPONSE_ ID '  
        1404                  + ' WH ERE ISNULL (reg.REQUE ST_SEEN_RE SPONSE,''' ') NOT IN  (''Yes'',' 'No'') '
        1405                  + @Cri teria;
        1406                    
        1407     PRINT @Q uery;
        1408     EXEC sp_ executesql  @Query,   N'@DoNotKn owRequestS eenCount I NT OUTPUT' , @DoNotKn owRequestS eenCount O UTPUT;       
        1409                                                           
        1410     --  @Act iveDutySer viceStatus Count
        1411     SET @Que ry = ' SEL ECT @Activ eDutyServi ceStatusCo unt = COUN T(*) ' +
        1412                    '  F ROM [AHOBP R].[REGIST RANT] reg  ' +
        1413                    '  J OIN AHOBPR .STD_REGIS TRANT_STAT US stat ON  stat.STD_ REGISTRANT _STATUS_ID  = reg.STD _REGISTRAN T_STATUS_I D ' +
        1414                    '  J OIN AHOBPR .FORM_RESP ONSE resp  ON resp.RE GISTRANT_I D = reg.RE GISTRANT_I D ' +
        1415                    '  J OIN AHOBPR .FORM_RESP ONSE_STATU S response Stat  ON r esponseSta t.FORM_RES PONSE_ID =  resp.FORM _RESPONSE_ ID ' +
        1416                    '  J OIN AHOBPR .STD_SERVI CE_STATUS  svc  ON sv c.STD_SERV ICE_STATUS _ID = reg. STD_SERVIC E_STATUS_I D '
        1417                  + ' WH ERE svc.SE RVICE_STAT US = ''Act ive Duty''  '
        1418                  + @Cri teria;
        1419                    
        1420     PRINT @Q uery;
        1421     EXEC sp_ executesql  @Query,   N'@ActiveD utyService StatusCoun t INT OUTP UT', @Acti veDutyServ iceStatusC ount OUTPU T;        
        1422            
        1423      
        1424     --  @Vet eranServic eStatusCou nt
        1425     SET @Que ry = ' SEL ECT @Veter anServiceS tatusCount  = COUNT(* ) ' +
        1426                    '  F ROM [AHOBP R].[REGIST RANT] reg  ' +
        1427                    '  J OIN AHOBPR .STD_REGIS TRANT_STAT US stat ON  stat.STD_ REGISTRANT _STATUS_ID  = reg.STD _REGISTRAN T_STATUS_I D ' +
        1428                    '  J OIN AHOBPR .FORM_RESP ONSE resp  ON resp.RE GISTRANT_I D = reg.RE GISTRANT_I D ' +
        1429                    '  J OIN AHOBPR .FORM_RESP ONSE_STATU S response Stat  ON r esponseSta t.FORM_RES PONSE_ID =  resp.FORM _RESPONSE_ ID ' +
        1430                    '  J OIN AHOBPR .STD_SERVI CE_STATUS  svc  ON sv c.STD_SERV ICE_STATUS _ID = reg. STD_SERVIC E_STATUS_I D '
        1431                  + ' WH ERE svc.SE RVICE_STAT US = ''Sep arated'' '
        1432                  + @Cri teria;
        1433                    
        1434     PRINT @Q uery;
        1435     EXEC sp_ executesql  @Query,   N'@Veteran ServiceSta tusCount I NT OUTPUT' , @Veteran ServiceSta tusCount O UTPUT;                      
        1436    
        1437     --  @Ret ireeServic eStatusCou nt
        1438     SET @Que ry = ' SEL ECT @Retir eeServiceS tatusCount  = COUNT(* ) ' +
        1439                    '  F ROM [AHOBP R].[REGIST RANT] reg  ' +
        1440                    '  J OIN AHOBPR .STD_REGIS TRANT_STAT US stat ON  stat.STD_ REGISTRANT _STATUS_ID  = reg.STD _REGISTRAN T_STATUS_I D ' +
        1441                    '  J OIN AHOBPR .FORM_RESP ONSE resp  ON resp.RE GISTRANT_I D = reg.RE GISTRANT_I D ' +
        1442                    '  J OIN AHOBPR .FORM_RESP ONSE_STATU S response Stat  ON r esponseSta t.FORM_RES PONSE_ID =  resp.FORM _RESPONSE_ ID ' +
        1443                    '  J OIN AHOBPR .STD_SERVI CE_STATUS  svc  ON sv c.STD_SERV ICE_STATUS _ID = reg. STD_SERVIC E_STATUS_I D '
        1444                  + ' WH ERE svc.SE RVICE_STAT US = ''Ret iree'' '
        1445                  + @Cri teria;
        1446                    
        1447     PRINT @Q uery;
        1448     EXEC sp_ executesql  @Query,   N'@Retiree ServiceSta tusCount I NT OUTPUT' , @Retiree ServiceSta tusCount O UTPUT;                      
        1449    
        1450        
        1451                                                                 
        1452   -- Deploym ent Counts   
        1453     SET @Que ry = 'WITH  Deploymen ts
        1454     AS ( 
        1455       SELECT  
        1456           dp ly.REGISTR ANT_ID ,
        1457         CASE  WHEN (SUM (CASE WHEN  [DEPLOYME NT_COUNTRY ] = ''Iraq '' 
        1458                                AND  [DEPLOYME NT_START_D ATE] > ''2 0010911'' 
        1459                                THE N 1 ELSE 0  END) )> 0  
        1460               THEN 1 EL SE 0 END A S Iraq911C ount,
        1461         CASE  WHEN (SUM (CASE WHEN  [DEPLOYME NT_COUNTRY ] = ''Afgh anistan''   
        1462                                AND  [DEPLOYME NT_START_D ATE] > ''2 0010911'' 
        1463                               THEN  1 ELSE 0  END)) > 0
        1464               THEN 1 EL SE 0 END A S Afgh911C ount,               
        1465         CASE  WHEN (SUM (CASE WHEN  [DEPLOYME NT_COUNTRY ] = ''Djib outi''  
        1466                                AND  [DEPLOYME NT_START_D ATE] > ''2 0010911'' 
        1467                               THEN  1 ELSE 0  END)) > 0
        1468               THEN 1 EL SE 0 END A S Djibouti 911Count,                
        1469         CASE  WHEN (SUM (CASE WHEN  [DEPLOYME NT_COUNTRY ] IN (''Ku wait'',''S audi Arabi a'',''Bahr ain'', ''G ulf of Ade n'', ''Gul f of Oman' ', ''Oman' ', ''Qatar '', ''Unit ed Arab Em irates'',  ''Persian  Gulf'', '' Arabian Se a'', ''Red  Sea'')
        1470                                AND  [DEPLOYME NT_START_D ATE] > ''2 0010911'' 
        1471                                THE N 1 ELSE 0  END)) > 0
        1472               THEN 1 EL SE 0 END A S SWA911Co unt,
        1473         CASE  WHEN (SUM (CASE WHEN  ([DEPLOYM ENT_START_ DATE] BETW EEN ''1990 0802'' AND  ''2001091 1'' ) 
        1474                                AND   [DEPLOYM ENT_COUNTR Y] IN (''I raq'',''Ku wait'',''S audi Arabi a'',''Bahr ain'', ''G ulf of Ade n'', ''Gul f of Oman' ', ''Oman' ', ''Qatar '', ''Unit ed Arab Em irates'',  ''Persian  Gulf'', '' Arabian Se a'', ''Red  Sea'')
        1475                               THEN  1 ELSE 0  END)) > 0
        1476               THEN 1 EL SE 0 END   AS Pre911C ount
        1477       FROM [ AHOBPR].[R EGISTRANT_ DEPLOYMENT ] dply
        1478           JO IN AHOBPR. REGISTRANT  Reg ON Re g.REGISTRA NT_ID = dp ly.REGISTR ANT_ID
        1479           JO IN AHOBPR. FORM_RESPO NSE resp O N resp.REG ISTRANT_ID  = dply.RE GISTRANT_I D
        1480           JO IN AHOBPR. FORM_RESPO NSE_STATUS  responseS tat ON res ponseStat. FORM_RESPO NSE_ID = r esp.FORM_R ESPONSE_ID    
        1481                 WHERE 1  = 1 ' +
        1482                 @Criter ia +                 
        1483       ' GROU P BY dply. REGISTRANT _ID 
        1484        )
        1485        SELEC T @Afgh911 Count =  S UM(ISNULL( Deployment s.Afgh911C ount,0))  
        1486               ,@Iraq911 Count =  S UM(ISNULL( Deployment s.Iraq911C ount,0))
        1487               ,@SWA911C ount = SUM (ISNULL(De ployments. SWA911Coun t,0))
        1488               ,@Pre911C ount =   S UM(ISNULL( Deployment s.Pre911Co unt,0))
        1489               ,@Djibout i911Count  = SUM(ISNU LL(Deploym ents.Djibo uti911Coun t,0))
        1490         FROM  Deploymen ts' ;
        1491         
        1492     PRINT @Q uery;
        1493     EXEC sp_ executesql  @Query,  
        1494          N'@ Afgh911Cou nt INT OUT PUT, @Iraq 911Count I NT OUTPUT,  @SWA911Co unt INT OU TPUT, @Pre 911Count I NT OUTPUT,  @Djibouti 911Count I NT OUTPUT'
        1495         , @A fgh911Coun t OUTPUT,  @Iraq911Co unt OUTPUT , @SWA911C ount OUTPU T, @Pre911 Count OUTP UT, @Djibo uti911Coun t OUTPUT;              
        1496  
        1497     
        1498        CREAT E TABLE #D aysToParti cipant(DAY S INT);
        1499      
        1500       -- Med ian Days f rom Eligib le to Part icipant St atus    
        1501       -- Not e that onl y Registra nts with B oth values  and DateP articipant  > DateEli gible will  be counte d for eith er Numerat or or Deno minator
        1502  
        1503       SET @Q uery = 'WI TH eligibl
        1504         AS (  
        1505              SELECT [RE GISTRANT_I D],MIN([CR EATED]) AS  DateEligi ble
        1506                FROM [AH OBPR].[PRO CESS_METRI CS]
        1507               WHERE [PR OCESS_METR ICS_VALUE]  = ''Eligi ble''
        1508               GROUP BY  [REGISTRAN T_ID]
        1509            ) ,
        1510         part icipant 
        1511         AS (
        1512            S ELECT [REG ISTRANT_ID ],MAX([CRE ATED]) AS  DatePartic ipant
        1513               FROM [AHO BPR].[PROC ESS_METRIC S]
        1514              WHERE [PRO CESS_METRI CS_VALUE]  = ''Partic ipant''   
        1515               GROUP BY  [REGISTRAN T_ID]
        1516              )
        1517        INSER T INTO #Da ysToPartic ipant(DAYS )
        1518       SELECT  
        1519         CASE  WHEN Date Participan t > DateEl igible THE N DATEDIFF (Day,DateE ligible,Da teParticip ant) ELSE  0 END AS D aysDiffere nce
        1520         FROM  [AHOBPR]. [REGISTRAN T] reg
        1521         JOIN  eligible  ON reg.REG ISTRANT_ID  = eligibl e.REGISTRA NT_ID
        1522         JOIN  participa nt ON reg. REGISTRANT _ID = part icipant.RE GISTRANT_I D   
        1523         JOIN  AHOBPR.FO RM_RESPONS E resp ON  resp.REGIS TRANT_ID =  reg.REGIS TRANT_ID
        1524         JOIN  AHOBPR.FO RM_RESPONS E_STATUS r esponseSta t ON respo nseStat.FO RM_RESPONS E_ID = res p.FORM_RES PONSE_ID '  +
        1525       'WHERE  1 = 1 '   + @Criteri a +  
        1526      ' ORDER  BY DaysDi fference';
        1527  
        1528     PRINT @Q uery;
        1529     EXECUTE( @Query);
        1530        
        1531       WITH C ounts AS
        1532       (
        1533          SEL ECT c=COUN T(*)
        1534          FRO M #DaysToP articipant
        1535       )
        1536       SELECT  @MedianDa ysToPartic ipant = AV G(0. + DAY S)
        1537       FROM C ounts a
        1538       CROSS  APPLY
        1539       (
        1540          SEL ECT TOP((( a.c - 1) /  2) + (1 +  (1 - a.c  % 2)))
        1541              DAYS, r=RO W_NUMBER()  OVER (ORD ER BY DAYS )
        1542          FRO M #DaysToP articipant  b
        1543          ORD ER BY DAYS
        1544       ) p
        1545       WHERE  r BETWEEN  ((a.c - 1)  / 2) + 1  AND (((a.c  - 1) / 2)  + (1 + (1  - a.c % 2 ))); 
        1546            
        1547       DROP   TABLE #Day sToPartici pant;                     
        1548    
        1549    -- Return  Results
        1550      SELECT  ISNULL(@Pa rticipantS tatusCount ,0) AS Par ticipantSt atusCount,
        1551              ISNULL(@He althConcer nsCount,0)  AS Report edHealthCo ncernsCoun t,
        1552              ISNULL(@No HealthConc ernsCount, 0) AS  NoR eportedHea lthConcern sCount,
        1553              ISNULL(@Re questSeenC ount,0) AS  RequestSe enCount,
        1554              ISNULL(@No RequestSee nCount,0)  AS NoReque stSeenCoun t,
        1555              ISNULL(@Do NotKnowReq uestSeenCo unt,0) AS  DoNotKnowR equestSeen Count,
        1556              ISNULL(@Ve teranServi ceStatusCo unt,0) AS  VeteranSer viceStatus Count ,
        1557              ISNULL(@Ac tiveDutySe rviceStatu sCount,0)  AS  Active DutyServic eStatusCou nt,
        1558              ISNULL(@Re tireeServi ceStatusCo unt,0) AS  RetireeSer viceStatus Count,
        1559              ISNULL(@Af gh911Count ,0) AS  Af gh911Count ,
        1560              ISNULL(@Ir aq911Count ,0) AS Ira q911Count,
        1561              ISNULL(@SW A911Count, 0) AS  Sou thWestAsia 911Count,
        1562              ISNULL(@Pr e911Count, 0) AS  Pre 911Count,
        1563              ISNULL(@Me dianDaysTo Participan t,0.0) AS  MedianDays ToParticip ant,
        1564              ISNULL(@Dj ibouti911C ount,0) AS  Djibouti9 11Count ;
        1565  
        1566   END
        1567  
        1568   -- exec [A HOBPR].[SP _ReportPar ticipation ]
        1569   -- exec [A HOBPR].[SP _ReportPar ticipation ] @Assigne dLocationT ype = 'NLA '
        1570   -- exec [A HOBPR].[SP _ReportPar ticipation ] @Assigne dLocationT ype = 'VIS N', @Assig nedLocatio nKey = 'V1 6'
        1571   -- exec [A HOBPR].[SP _ReportPar ticipation ] @Assigne dLocationT ype = 'Bas e', @Assig nedLocatio nKey = '10 00089'
        1572   -- exec [A HOBPR].[SP _ReportPar ticipation ] @Assigne dLocationT ype = 'Ins titution',  @Assigned LocationKe y = '10000 89'
        1573   -- exec [A HOBPR].[SP _ReportPar ticipation ]
        1574   -- exec [A HOBPR].[SP _ReportPar ticipation ] @Evaluat edLocation Type = 'NL A'
        1575   -- exec [A HOBPR].[SP _ReportPar ticipation ] @Evaluat edLocation Type = 'VI SN', @Eval uatedLocat ionKey = ' V16'
        1576   -- exec [A HOBPR].[SP _ReportPar ticipation ] @Evaluat edLocation Type = 'Ba se', @Eval uatedLocat ionKey = ' 1000089'
        1577   -- exec [A HOBPR].[SP _ReportPar ticipation ] @Evaluat edLocation Type = 'In stitution' , @Evaluat edLocation Key = '100 0089'
        1578   GO
        1579  
        1580   PRINT 'ALT ER PROCEDU RE SP_Repo rtParticip antDetails ...';
        1581   GO
        1582   -- ======= ========== ========== ========== ========
        1583   -- Author:                Bruce  Clegg
        1584   -- Create  date: Jan  5, 2015
        1585   -- Descrip tion: Used  for the A HOBPR Part icipation  Report Dri lldown  --  exec [AHO BPR].[SP_R eportParti cipantDeta ils]    (M ore option s at botto m)
        1586   -- 2015033 0 - Bruce  Clegg - Ad ded VisnId  value of  NLA to fin d Null loc ations
        1587   -- 2015042 7 - Bruce  Clegg - Ch ange to Lo cationType  and Key,  for both A ssigned an d Evaluate d Location s
        1588   -- 2015050 4 - Bruce  Clegg - Fi x @Request Seen selec tion logic  to match  Participat ion Report
        1589   -- 2015071 0 - Bruce  Clegg - Re write usin g Dynamic  SQL for Pe rformance
        1590   -- ======= ========== ========== ========== ========
        1591   ALTER PROC EDURE [AHO BPR].[SP_R eportParti cipantDeta ils]
        1592          @St artDate DA TETIME2(0)  = NULL,  
        1593          @En dDate DATE TIME2(0) =  NULL,
        1594          @Re gistrantSt atus  VARC HAR(50) =  '',  -- 'P articipant ', 'Review  - Not Eli gible', 'E ligible',  'No Consen t', 'Conse nt', 'Revi ew'
        1595          @Sv cStatus  V ARCHAR(50)  = '',          -- 'V eteran', ' Retiree',  'Active Du ty'
        1596          @Re questSeen   VARCHAR(5 0) = '',        -- 'Y es', 'No',  'Unknown'
        1597          @He althConcer n  VARCHAR (50) = '',      -- 'Y es', 'No'
        1598          @De ploymentGr oup VARCHA R(50) = '' ,    -- 'A fgh911', ' Iraq911',  'Southwest AsiaAfter9 11', 'Pre9 11',  'Dji boutiAfter 911'
        1599          @As signedLoca tionType   VARCHAR(20 ) = NULL,   -- 'VISN' , 'Base',  'Instituti on', 'NLA'  = No Loca tion Assig ned
        1600          @As signedLoca tionKey    VARCHAR(50 ) = NULL,   -- 'V16',  'V01'     1000109,   1000089
        1601          @Ev aluatedLoc ationType  VARCHAR(20 ) = NULL,   -- 'VISN' , 'Base',  'Instituti on', 'NLA'  = No Loca tion Assig ned
        1602          @Ev aluatedLoc ationKey   VARCHAR(50 ) = NULL    -- 'V16',  'V01'     1000109,   1000089
        1603   AS
        1604   BEGIN
        1605  
        1606     SET @Sta rtDate = I SNULL(@Sta rtDate,'19 900802');
        1607     SET @End Date = ISN ULL(@EndDa te, GetDat e());
        1608     SET @End Date = dbo .AddMaxTim e(@EndDate );  -- Add s 23:59:59  to criter ia paramet er
        1609  
        1610     DECLARE  @AssignedI nstitution Id INT = 0 ,
        1611              @Evaluated Institutio nId INT =  0;
        1612     DECLARE  @Query NVA RCHAR(MAX) ;
        1613  
        1614     IF @Assi gnedLocati onType IN  ('Base','I nstitution ') 
        1615     AND ISNU MERIC(@Ass ignedLocat ionKey) =  1
        1616       SET @A ssignedIns titutionId  = CONVERT (INT,@Assi gnedLocati onKey);
        1617     
        1618     IF @Eval uatedLocat ionType IN  ('Base',' Institutio n') 
        1619     AND ISNU MERIC(@Eva luatedLoca tionKey) =  1
        1620       SET @E valuatedIn stitutionI d = CONVER T(INT,@Eva luatedLoca tionKey);
        1621  
        1622     --Temp t able for D eployments
        1623     CREATE T ABLE #Depl oyments
        1624     (
        1625               [REGISTRA NT_ID] INT
        1626     ); 
        1627     
        1628     -- INSER T Registra nts if the y are in t he Deploym ent Group
        1629     SET @Que ry = ' INS ERT INTO # Deployment s([REGISTR ANT_ID]) '  +
        1630                   ' SEL ECT DISTIN CT deploym ent.REGIST RANT_ID '  +
        1631                   '   F ROM AHOBPR .REGISTRAN T_DEPLOYME NT deploym ent  ' +
        1632                   '  WH ERE 1 = 1  ';
        1633     IF @Depl oymentGrou p = 'Afgh9 11'    
        1634        SET @ Query =  @ Query + '  AND [DEPLO YMENT_COUN TRY] = ''A fghanistan '' ' + 
        1635                                 '  AND [DEPLO YMENT_STAR T_DATE] >  ''20010911 '' ';
        1636     ELSE
        1637     IF @Depl oymentGrou p = 'Iraq9 11'
        1638         SET  @Query =   @Query + '  AND [DEPL OYMENT_COU NTRY] = '' Iraq'' ' +  
        1639                                    'AND [DEPL OYMENT_STA RT_DATE] >  ''2001091 1'' '; 
        1640     ELSE
        1641     IF @Depl oymentGrou p = 'Djibo utiAfter91 1'
        1642         SET  @Query =   @Query + '  AND [DEPL OYMENT_COU NTRY] = '' Djibouti''  ' + 
        1643                                    'AND [DEPL OYMENT_STA RT_DATE] >  ''2001091 1'' '; 
        1644     ELSE
        1645     IF @Depl oymentGrou p = 'South westAsiaAf ter911'
        1646         SET  @Query =   @Query + '  AND [DEPL OYMENT_COU NTRY] IN ( ''Kuwait'' ,''Saudi A rabia'','' Bahrain'',  ''Gulf of  Aden'', ' 'Gulf of O man'', ''O man'', ''Q atar'', '' United Ara b Emirates '', ''Pers ian Gulf'' , ''Arabia n Sea'', ' 'Red Sea'' ) ' +
        1647                                  ' AND [DEPLO YMENT_STAR T_DATE] >  ''20010911 ''  ';
        1648     ELSE
        1649     IF @Depl oymentGrou p = 'Pre91 1'
        1650         SET  @Query =   @Query + '  AND [DEPL OYMENT_COU NTRY] IN ( ''Iraq'',' 'Kuwait'', ''Saudi Ar abia'',''B ahrain'',  ''Gulf of  Aden'', '' Gulf of Om an'', ''Om an'', ''Qa tar'', ''U nited Arab  Emirates' ', ''Persi an Gulf'',  ''Arabian  Sea'', '' Red Sea'')  ' +     
        1651                                  '  AND [DEPL OYMENT_STA RT_DATE] B ETWEEN ''1 9900802''  AND ''2001 0911''  ';
        1652     IF ISNUL L(@Deploym entGroup,' ') > ''
        1653       EXECUT E(@Query);
        1654      
        1655     SET @Que ry = '
        1656       WITH e ligible 
        1657         AS (  
        1658              SELECT [RE GISTRANT_I D],MIN([CR EATED]) AS  DateEligi ble
        1659                FROM [AH OBPR].[PRO CESS_METRI CS]
        1660               WHERE [PR OCESS_METR ICS_VALUE]  IN (''Eli gible'','' Reviewed -  Eligible' ')
        1661               GROUP BY  [REGISTRAN T_ID]
        1662            ) ,
        1663         part icipant 
        1664         AS (
        1665            S ELECT [REG ISTRANT_ID ], MAX([CR EATED]) AS  DateParti cipant
        1666               FROM [AHO BPR].[PROC ESS_METRIC S]
        1667              WHERE [PRO CESS_METRI CS_VALUE]  = ''Partic ipant''   
        1668              GROUP BY [ REGISTRANT _ID]
        1669              )        
        1670           SE LECT reg.R EGISTRANT_ ID
        1671                          ,(reg.LAS T_NAME + ' ', '' + re g.FIRST_NA ME) AS Nam e
        1672                          ,stat.REG ISTRANT_ST ATUS
        1673                          ,svc.SERV ICE_STATUS
        1674                          ,QUESTION NAIRE_COMP LETED_DATE
        1675                          ,ISNULL(r eg.REQUEST _SEEN_RESP ONSE, ''Un known'') A S REQUEST_ SEEN_RESPO NSE
        1676                          ,ISNULL(r eg.HEALTH_ CONCERNS_R ESPONSE,'' No'') AS H EALTH_CONC ERNS_RESPO NSE
        1677                          ,ISNULL(i nst.Name,' ''') AS In stitutionN ame
        1678                          ,CONVERT( VARCHAR(10 ), respons eStat.QUES TIONNAIRE_ COMPLETED_ DATE, 101)  AS QUESTI ONNAIRE_CO MPLETED_Di splay
        1679                          ,CASE WHE N DatePart icipant >  DateEligib le THEN DA TEDIFF(Day ,DateEligi ble,DatePa rticipant)  ELSE 0 EN D AS DaysE ligibleToP articipant
        1680            , reg.BIRTH_ DATE AS Bi rthDate
        1681            , CONVERT(VA RCHAR(10),  reg.BIRTH _DATE, 101 ) AS Birth DateDispla y
        1682              FROM AHOBP R.REGISTRA NT reg
        1683                    JOIN  AHOBPR.ST D_REGISTRA NT_STATUS  stat 
        1684                      ON  reg.STD_R EGISTRANT_ STATUS_ID  = stat.STD _REGISTRAN T_STATUS_I D
        1685                    JOIN  AHOBPR.ST D_SERVICE_ STATUS svc
        1686                      ON  svc.STD_S ERVICE_STA TUS_ID = r eg.STD_SER VICE_STATU S_ID
        1687                    JOIN  AHOBPR.FO RM_RESPONS E resp 
        1688                      ON  resp.REGI STRANT_ID  = reg.REGI STRANT_ID
        1689                    JOIN  AHOBPR.FO RM_RESPONS E_STATUS r esponseSta t
        1690                      ON  responseS tat.FORM_R ESPONSE_ID  = resp.FO RM_RESPONS E_ID
        1691       JOIN e ligible 
        1692         ON r eg.REGISTR ANT_ID = e ligible.RE GISTRANT_I D
        1693       JOIN p articipant  
        1694         ON r eg.REGISTR ANT_ID = p articipant .REGISTRAN T_ID                      
        1695                    LEFT  JOIN AHOB PR.VIEW_FA CILITY_LOO KUP inst
        1696                      ON  inst.ID =  reg.STD_I NSTITUTION _ID
        1697            W HERE respo nseStat.QU ESTIONNAIR E_COMPLETE D_DATE BET WEEN ''' + CONVERT(VA RCHAR(20),  @StartDat e,121) + 
        1698                                                           ''' AND ' '' + CONVE RT(VARCHAR (20), @End Date,121)  + ''' ';
        1699  
        1700     IF ISNUL L(@Registr antStatus, '') > ''
        1701              SET @Query  = @Query  + ' AND st at.REGISTR ANT_STATUS  = ''' + @ Registrant Status + ' '' ';
        1702  
        1703     IF ISNUL L(@SvcStat us,'') > ' '
        1704              SET @Query  = @Query  + ' AND sv c.SERVICE_ STATUS = ' '' +  @Svc Status + ' '' ';
        1705  
        1706     IF ISNUL L(@HealthC oncern,'')  > ''
        1707              SET @Query  = @Query  + ' AND IS NULL(reg.H EALTH_CONC ERNS_RESPO NSE,''No'' ) = ''' +   @HealthCo ncern + '' ' ';
        1708  
        1709     IF ISNUL L(@Request Seen,'') >  ''
        1710              SET @Query  = @Query  + 'AND ISN ULL(reg.RE QUEST_SEEN _RESPONSE,  ''Unknown '') = '''  +  @Reques tSeen + '' ' ';
        1711  
        1712     IF ISNUL L(@Deploym entGroup,' ') > ''
        1713              SET @Query  = @Query  + 'AND EXI STS(SELECT  * FROM #D eployments  WHERE #De ployments. REGISTRANT _ID = reg. REGISTRANT _ID) ';
        1714  
        1715     IF @Assi gnedLocati onType = ' NLA' 
        1716       SET @Q uery = @Qu ery + ' AN D reg.STD_ INSTITUTIO N_ID IS NU LL ' ;
        1717  
        1718     IF @Assi gnedLocati onType = ' VISN' 
        1719       SET @Q uery = @Qu ery + ' AN D EXISTS(S ELECT * FR OM AHOBPR. VIEW_FACIL ITY_LOOKUP  inst ' +
        1720                                                                  '  WHERE inst .ID = reg. STD_INSTIT UTION_ID '  + 
        1721                                                                  '    AND inst .VisnID =  ''' + @Ass ignedLocat ionKey + ' '') ';
        1722    
        1723     IF @Assi gnedLocati onType = ' Base' 
        1724       SET @Q uery = @Qu ery + ' AN D EXISTS(S ELECT * FR OM AHOBPR. VIEW_FACIL ITY_LOOKUP  inst ' +
        1725                                                          ' WHERE in st.ID = re g.STD_INST ITUTION_ID  ' +
        1726                                                          '   AND in st.BASE_ID  = ' + CON VERT(VARCH AR(20),@As signedInst itutionId)  + ') '
        1727    
        1728     IF @Assi gnedLocati onType = ' Institutio n' 
        1729       SET @Q uery = @Qu ery + ' AN D reg.STD_ INSTITUTIO N_ID = ' +  CONVERT(V ARCHAR(20) ,@Assigned Institutio nId);
        1730  
        1731     IF @Eval uatedLocat ionType =  'NLA' 
        1732       SET @Q uery = @Qu ery + ' AN D NOT EXIS TS( SELECT  * FROM AH OBPR.REGIS TRANT_VISI T eval ' +
        1733                                                                ' WH ERE eval.R EGISTRANT_ VISIT_ID =  reg.REGIS TRANT_ID '  +
        1734                                                                '    AND eval.E VALUATION_ FLAG = ''Y '') ' ; 
        1735    
        1736     IF @Eval uatedLocat ionType =  'VISN' 
        1737       SET @Q uery = @Qu ery + ' AN D EXISTS(S ELECT * FR OM AHOBPR. REGISTRANT _VISIT eva l ' +
        1738                                                            ' JOIN A HOBPR.VIEW _FACILITY_ LOOKUP ins t ON inst. ID = eval. STD_INSTIT UTION_ID '  +
        1739                                                          ' WHERE ev al.REGISTR ANT_VISIT_ ID = reg.R EGISTRANT_ ID ' +
        1740                                                            ' AND ev al.EVALUAT ION_FLAG =  ''Y'' ' +
        1741                                                            ' AND in st.VisnID  = ''' + @E valuatedLo cationKey  + ''') '; 
        1742    
        1743     IF @Eval uatedLocat ionType =  'Base' 
        1744       SET @Q uery = @Qu ery +  ' A ND EXISTS( SELECT * F ROM AHOBPR .REGISTRAN T_VISIT ev al ' +
        1745                                                            ' JOIN A HOBPR.VIEW _FACILITY_ LOOKUP ins t ON inst. ID = eval. STD_INSTIT UTION_ID '  +
        1746                                                          ' WHERE ev al.REGISTR ANT_VISIT_ ID = reg.R EGISTRANT_ ID ' +
        1747                                                            ' AND ev al.EVALUAT ION_FLAG =  ''Y'' ' +
        1748                                                            ' AND in st.BASE_ID  = ' + CON VERT(VARCH AR(20),@Ev aluatedIns titutionId ) + ') ';
        1749     
        1750     IF @Eval uatedLocat ionType =  'Instituti on' 
        1751       SET @Q uery = @Qu ery +  ' A ND EXISTS( SELECT * F ROM AHOBPR .REGISTRAN T_VISIT ev al ' +
        1752                                                            ' JOIN A HOBPR.VIEW _FACILITY_ LOOKUP ins t ON inst. ID = eval. STD_INSTIT UTION_ID '  +
        1753                                                          ' WHERE ev al.REGISTR ANT_VISIT_ ID = reg.R EGISTRANT_ ID ' +
        1754                                                            ' AND ev al.EVALUAT ION_FLAG =  ''Y'' ' +
        1755                                                            ' AND ev al.STD_INS TITUTION_I D = ' + CO NVERT(VARC HAR(20),@E valuatedIn stitutionI d)  + ') '
        1756  
        1757     SET @Que ry = @Quer y + ' ORDE R BY respo nseStat.QU ESTIONNAIR E_COMPLETE D_DATE ';
        1758  
        1759     PRINT @Q uery;
        1760     
        1761     EXECUTE( @Query);
        1762         
        1763     DROP TAB LE #Deploy ments;                                                                                                                 
        1764   END
        1765  
        1766   -- exec [A HOBPR].[SP _ReportPar ticipantDe tails] 
        1767   -- exec [A HOBPR].[SP _ReportPar ticipantDe tails] '20 140101', ' 20150101',  NULL, NUL L, 'Unknow n'
        1768   -- exec [A HOBPR].[SP _ReportPar ticipantDe tails] NUL L, NULL, ' Participan t'
        1769   -- exec [A HOBPR].[SP _ReportPar ticipantDe tails] NUL L, NULL, N ULL, 'Sepa rated'
        1770   -- exec [A HOBPR].[SP _ReportPar ticipantDe tails] NUL L, NULL, N ULL, NULL,  'Yes'
        1771   -- exec [A HOBPR].[SP _ReportPar ticipantDe tails] NUL L, NULL, N ULL, NULL,  'No'
        1772   -- exec [A HOBPR].[SP _ReportPar ticipantDe tails] NUL L, NULL, N ULL, NULL,  'Unknown'
        1773   -- exec [A HOBPR].[SP _ReportPar ticipantDe tails] NUL L, NULL, N ULL, NULL,  NULL, 'Ye s'
        1774   -- exec [A HOBPR].[SP _ReportPar ticipantDe tails] NUL L, NULL, N ULL, NULL,  NULL, 'No '
        1775   -- exec [A HOBPR].[SP _ReportPar ticipantDe tails] NUL L, NULL, N ULL, NULL,  NULL, NUL L, 'Afgh91 1'
        1776   -- exec [A HOBPR].[SP _ReportPar ticipantDe tails] NUL L, NULL, N ULL, NULL,  NULL, NUL L, 'Iraq91 1'
        1777   -- exec [A HOBPR].[SP _ReportPar ticipantDe tails] NUL L, NULL, N ULL, NULL,  NULL, NUL L, 'Southw estAsiaAft er911'
        1778   -- exec [A HOBPR].[SP _ReportPar ticipantDe tails] NUL L, NULL, N ULL, NULL,  NULL, NUL L, 'Djibou tiAfter911 '
        1779   -- exec [A HOBPR].[SP _ReportPar ticipantDe tails] NUL L, NULL, N ULL, NULL,  NULL, NUL L, 'Pre911 '
        1780  
        1781   -- exec [A HOBPR].[SP _ReportPar ticipantDe tails]
        1782   -- exec [A HOBPR].[SP _ReportPar ticipantDe tails] @As signedLoca tionType =  'NLA'
        1783   -- exec [A HOBPR].[SP _ReportPar ticipantDe tails] @As signedLoca tionType =  'VISN', @ AssignedLo cationKey  = 'V16'
        1784   -- exec [A HOBPR].[SP _ReportPar ticipantDe tails] @As signedLoca tionType =  'Base', @ AssignedLo cationKey  = '1000089 '
        1785   -- exec [A HOBPR].[SP _ReportPar ticipantDe tails] @As signedLoca tionType =  'Institut ion', @Ass ignedLocat ionKey = ' 1000089'
        1786   -- exec [A HOBPR].[SP _ReportPar ticipantDe tails]
        1787   -- exec [A HOBPR].[SP _ReportPar ticipantDe tails] @Ev aluatedLoc ationType  = 'NLA'
        1788   -- exec [A HOBPR].[SP _ReportPar ticipantDe tails] @Ev aluatedLoc ationType  = 'VISN',  @Evaluated LocationKe y = 'V16'
        1789   -- exec [A HOBPR].[SP _ReportPar ticipantDe tails] @Ev aluatedLoc ationType  = 'Base',  @Evaluated LocationKe y = '10000 89'
        1790   -- exec [A HOBPR].[SP _ReportPar ticipantDe tails] @Ev aluatedLoc ationType  = 'Institu tion', @Ev aluatedLoc ationKey =  '1000089'
        1791   GO
        1792  
        1793  
        1794  
        1795   INSERT INT O [dbo].[D atabaseCha ngeLog]
        1796               ([MajorRe leaseNumbe r]
        1797               ,[MinorRe leaseNumbe r]
        1798               ,[PointRe leaseNumbe r]
        1799               ,[Hotfix]
        1800               ,[ScriptN ame]
        1801               ,[ScriptD escription ]
        1802               ,[TargetR egistry]
        1803               ,[DateApp lied])
        1804        VALUE S
        1805               ('$(Major ReleaseNum ber)'
        1806               ,'$(Minor ReleaseNum ber)'
        1807               ,'$(Point ReleaseNum ber)'
        1808               ,0
        1809               ,'Registr y.AHOBPR.D atabase.Ro llback.sql '
        1810                            ,'Regis try.AHOBPR .Database. Rollback.s ql Script'
        1811               ,'AHOBPR'
        1812               ,GETDATE( ))
        1813  
        1814  
        1815   PRINT '';
        1816   PRINT 'Reg istry.AHOB PR.Databas e.Rollback .sql Scrip t Complete .';
        1817   PRINT '';
        1818   PRINT 'Com pleted ' +  CAST(GETD ATE() AS v archar(20) ) + '.';
        1819   GO