SDES2UNBLOCKPBSP ;ALB/BLB,MCB - SDES2 UNBLOCK PBSP CLINIC AVAIL; JUNE 20 2025
;;5.3;Scheduling;**877,909**;Aug 13, 1993;Build 12
;;Per VHA Directive 6402, this routine should not be modified
;
; Reference to DUZ^XUP is supported by IA #7487
;
Q
;
UNBLOCK(JSON,SDCONTEXT,UNBLOCK) ;
N ERRORS,PBSPID,RESTOREDATETIME,RETURN
;
D VALCONTEXT^SDES2VALCONTEXT(.ERRORS,.SDCONTEXT)
I $D(ERRORS) S ERRORS("UnBlockPBSPID")="" D BUILDJSON^SDES2JSON(.JSON,.ERRORS) Q
I $G(SDCONTEXT("USER DUZ"))'="" N DUZ D DUZ^XUP(SDCONTEXT("USER DUZ"))
;
D POPULATE(.UNBLOCK,.PBSPID,.RESTOREDATETIME)
D VALIDATE(.ERRORS,$G(PBSPID),$G(RESTOREDATETIME))
I $D(ERRORS) S ERRORS("UnBlockPBSPID")="" D BUILDJSON^SDES2JSON(.JSON,.ERRORS) Q
;
D UNBLOCKSLOTS(PBSPID,RESTOREDATETIME,.SDCONTEXT)
S RETURN("UnBlockPBSPID")=1
D BUILDJSON^SDES2JSON(.JSON,.RETURN)
Q
;
UNBLOCKSLOTS(PBSPID,RESTOREDATETIME,SDCONTEXT) ;
N CLINICIEN,RESTORE,RESTOREJSON
;
S CLINICIEN=0
F S CLINICIEN=$O(^SC("PBSP",PBSPID,CLINICIEN)) Q:'CLINICIEN D
.S RESTORE("CLINIC IEN")=CLINICIEN
.S RESTORE("DATE OR DATETIME")=RESTOREDATETIME
.S RESTORE("RESTORE TYPE")="P"
.;
.D RESTORE^SDES2RSTCAVAIL(.RESTOREJSON,.SDCONTEXT,.RESTORE)
Q
;
VALIDATE(ERRORS,PBSPID,RESTOREDATETIME) ;
;
S RESTOREDATETIME=$$VALISODTTM^SDES2VALISODTTM(.ERRORS,RESTOREDATETIME,,1,165,166)
;
I '$L($G(PBSPID)) D ERRLOG^SDESJSON(.ERRORS,557) Q
I '$D(^SC("PBSP",PBSPID)) D ERRLOG^SDESJSON(.ERRORS,556) Q
I $L(PBSPID)>100 D ERRLOG^SDESJSON(.ERRORS,556)
I $D(ERRORS) Q
;
Q
;
POPULATE(UNBLOCK,PBSPID,RESTOREDATETIME) ;
S PBSPID=$G(UNBLOCK("PBSPID"))
S RESTOREDATETIME=$G(UNBLOCK("RESTORE DATE TIME"))
Q
;
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HSDES2UNBLOCKPBSP 1702 printed May 25, 2026@12:59:25 Page 2
SDES2UNBLOCKPBSP ;ALB/BLB,MCB - SDES2 UNBLOCK PBSP CLINIC AVAIL; JUNE 20 2025
+1 ;;5.3;Scheduling;**877,909**;Aug 13, 1993;Build 12
+2 ;;Per VHA Directive 6402, this routine should not be modified
+3 ;
+4 ; Reference to DUZ^XUP is supported by IA #7487
+5 ;
+6 QUIT
+7 ;
UNBLOCK(JSON,SDCONTEXT,UNBLOCK) ;
+1 NEW ERRORS,PBSPID,RESTOREDATETIME,RETURN
+2 ;
+3 DO VALCONTEXT^SDES2VALCONTEXT(.ERRORS,.SDCONTEXT)
+4 IF $DATA(ERRORS)
SET ERRORS("UnBlockPBSPID")=""
DO BUILDJSON^SDES2JSON(.JSON,.ERRORS)
QUIT
+5 IF $GET(SDCONTEXT("USER DUZ"))'=""
NEW DUZ
DO DUZ^XUP(SDCONTEXT("USER DUZ"))
+6 ;
+7 DO POPULATE(.UNBLOCK,.PBSPID,.RESTOREDATETIME)
+8 DO VALIDATE(.ERRORS,$GET(PBSPID),$GET(RESTOREDATETIME))
+9 IF $DATA(ERRORS)
SET ERRORS("UnBlockPBSPID")=""
DO BUILDJSON^SDES2JSON(.JSON,.ERRORS)
QUIT
+10 ;
+11 DO UNBLOCKSLOTS(PBSPID,RESTOREDATETIME,.SDCONTEXT)
+12 SET RETURN("UnBlockPBSPID")=1
+13 DO BUILDJSON^SDES2JSON(.JSON,.RETURN)
+14 QUIT
+15 ;
UNBLOCKSLOTS(PBSPID,RESTOREDATETIME,SDCONTEXT) ;
+1 NEW CLINICIEN,RESTORE,RESTOREJSON
+2 ;
+3 SET CLINICIEN=0
+4 FOR
SET CLINICIEN=$ORDER(^SC("PBSP",PBSPID,CLINICIEN))
if 'CLINICIEN
QUIT
Begin DoDot:1
+5 SET RESTORE("CLINIC IEN")=CLINICIEN
+6 SET RESTORE("DATE OR DATETIME")=RESTOREDATETIME
+7 SET RESTORE("RESTORE TYPE")="P"
+8 ;
+9 DO RESTORE^SDES2RSTCAVAIL(.RESTOREJSON,.SDCONTEXT,.RESTORE)
End DoDot:1
+10 QUIT
+11 ;
VALIDATE(ERRORS,PBSPID,RESTOREDATETIME) ;
+1 ;
+2 SET RESTOREDATETIME=$$VALISODTTM^SDES2VALISODTTM(.ERRORS,RESTOREDATETIME,,1,165,166)
+3 ;
+4 IF '$LENGTH($GET(PBSPID))
DO ERRLOG^SDESJSON(.ERRORS,557)
QUIT
+5 IF '$DATA(^SC("PBSP",PBSPID))
DO ERRLOG^SDESJSON(.ERRORS,556)
QUIT
+6 IF $LENGTH(PBSPID)>100
DO ERRLOG^SDESJSON(.ERRORS,556)
+7 IF $DATA(ERRORS)
QUIT
+8 ;
+9 QUIT
+10 ;
POPULATE(UNBLOCK,PBSPID,RESTOREDATETIME) ;
+1 SET PBSPID=$GET(UNBLOCK("PBSPID"))
+2 SET RESTOREDATETIME=$GET(UNBLOCK("RESTORE DATE TIME"))
+3 QUIT
+4 ;