SDES2DELCLNREADT ;ALB/MGD,MGD - SDES2 DEL CLINIC REACT DATE ;SEP 08, 2026
;;5.3;Scheduling;**953,954**;Aug 13, 1993;Build 4
;;Per VHA Directive 6402, this routine should not be modified
;
; Documented API's and Integration Agreements
; -------------------------------------------
;Reference to $$GETS^DIQ is supported by IA #2056
;Reference to $$GETS1^DIQ is supported by IA #2056
;Reference to DUZ^XUP is supported by IA #7487
;;
Q
;
SDDELREACTDT(SDRETURN,SDCONTEXT,SDPARAM) ; RPC: SDES2 DEL CLINIC REACT DATE
;INPUT -
; SDCONTEXT("ACHERON AUDIT ID") = Up to 40 Character unique ID number. Ex: 11d9dcc6-c6a2-4785-8031-8261576fca37
; SDCONTEXT("PATIENT DFN") = The DFN/IEN of the target patient from the calling application.
; SDCONTEXT("PATIENT ICN") = The ICN of the target patient from the calling application.
; SDCONTEXT("USER DUZ") = The DUZ of the user taking action in the calling application.
; SDCONTEXT("USER SECID") = The SECID of the user taking action in the calling application.
;
; SDPARAM("CLINIC IEN")=CLINIC IEN IEN of the clinic in file 44 - Hospital location
;
;RETURN PARMETER:
; Status
;
N ERRORS,RESULTS
; Newing these variables that leak from down stream calls
N CLIN,IEN,PROVDUZ,SDECI
; validate context array
D VALCONTEXT^SDES2VALCONTEXT(.ERRORS,.SDCONTEXT)
I $D(ERRORS) S ERRORS("Clinic",1)="" D BUILDJSON^SDES2JSON(.SDRETURN,.ERRORS) Q
; visitor pattern
I $G(SDCONTEXT("USER DUZ"))'="" N DUZ D DUZ^XUP(SDCONTEXT("USER DUZ"))
D VALCLINIEN^SDES2VAL44(.ERRORS,$G(SDPARAM("CLINIC IEN")),1)
I $D(ERRORS) S ERRORS("Clinic",1)="" D BUILDJSON^SDES2JSON(.SDRETURN,.ERRORS) Q
; validate SDPARAM array
D VALSDPARAM(.ERRORS,.SDPARAM)
I $D(ERRORS) S ERRORS("Clinic",1)="" D BUILDJSON^SDES2JSON(.SDRETURN,.ERRORS) Q
; Remove the Reactivation Date on HOSPITAL LOCATION & SDEC RESOURCE
D DELETEREACTDT(.ERRORS,.SDPARAM)
I $D(ERRORS) S ERRORS("Clinic",1)="" D BUILDJSON^SDES2JSON(.SDRETURN,.ERRORS) Q
; Build Clinic Object for return
D BLDCLNREC^SDES2CLININFO(.RESULTS,$G(SDPARAM("CLINIC IEN")))
D BUILDJSON^SDES2JSON(.SDRETURN,.RESULTS)
Q
VALSDPARAM(ERRORS,SDPARAM) ; Check if we are doing a delete inactivation date
N SDCLINICIEN,SDINACTIVE,SDINACTIVEDT,SDREACTIVEDT,SDRESOURCEIEN,SDRESREACTEDT,SDRESINACTEDT
; Clinic IEN checks
S SDCLINICIEN=$G(SDPARAM("CLINIC IEN"))
I SDCLINICIEN="" D ERRLOG^SDES2JSON(.ERRORS,18) Q ; Missing Clinic ID
I SDCLINICIEN'="",'$D(^SC(SDCLINICIEN,0)) D ERRLOG^SDES2JSON(.ERRORS,19) Q ; Invalid Clinic ID
; Clinic Reactivate Date checks
S SDINACTIVEDT=$$GET1^DIQ(44,SDCLINICIEN,2505,"I") ;inactive date/time
S SDREACTIVEDT=$$GET1^DIQ(44,SDCLINICIEN,2506,"I") ;reactive date/time
I SDREACTIVEDT="" D ERRLOG^SDES2JSON(.ERRORS,659) Q
I SDREACTIVEDT<=DT D ERRLOG^SDES2JSON(.ERRORS,660) Q
; Inactive Clinic checks
S SDINACTIVE=$$INACTIVE^SDES2UTIL(SDCLINICIEN,DT) ; 0=ACTIVE 1=INACTIVE
I SDINACTIVE,SDREACTIVEDT="" D ERRLOG^SDES2JSON(.ERRORS,661) Q
; Active Clinic checks
I 'SDINACTIVE,(SDINACTIVEDT="") D ERRLOG^SDES2JSON(.ERRORS,662) Q
; Resource IEN Checks
; the ,1 returns IEN whether clinic is Active or Inactive
S SDRESOURCEIEN=$$GETRES^SDES2UTIL1(SDCLINICIEN,1)
I 'SDRESOURCEIEN D ERRLOG^SDES2JSON(.ERRORS,663) Q
; Resource Reactivate Date checks
S SDRESINACTEDT=$$GET1^DIQ(409.831,SDRESOURCEIEN,.021,"I")
S SDRESREACTEDT=$$GET1^DIQ(409.831,SDRESOURCEIEN,.025,"I")
I SDRESREACTEDT="" D ERRLOG^SDES2JSON(.ERRORS,664) Q
I SDRESREACTEDT<=DT D ERRLOG^SDES2JSON(.ERRORS,665) Q
; The ,0 only returns IEN if clinic is Active
S SDRESOURCEIEN=$$GETRES^SDES2UTIL1(SDCLINICIEN,0)
; Inactive Resource checks 'SDRESOURCEIEN = Inactive
I 'SDRESOURCEIEN,SDRESREACTEDT="" D ERRLOG^SDES2JSON(.ERRORS,666) Q
; Active Resource checks I SDRESOURCEIEN = Active
I SDRESOURCEIEN,SDRESINACTEDT="" D ERRLOG^SDES2JSON(.ERRORS,667) Q
I SDRESOURCEIEN,(SDRESINACTEDT="") D ERRLOG^SDES2JSON(.ERRORS,667) Q
Q
DELETEREACTDT(ERRORS,SDPARAM) ;
N SDCLINICIEN,SDINACTIVE,SDRESOURCEIEN,SDINACTIVEDT,SDREACTIVEDT
S SDCLINICIEN=$G(SDPARAM("CLINIC IEN"))
; the ,1 returns IEN whether clinic is Active or Inactive
S SDRESOURCEIEN=$$GETRES^SDES2UTIL1(SDCLINICIEN,1)
I 'SDRESOURCEIEN D ERRLOG^SDES2JSON(.ERRORS,663) Q
S SDINACTIVE=$$INACTIVE^SDES2UTIL(SDCLINICIEN,DT) ; 0=ACTIVE 1=INACTIVE
; Clinic Reactivate Date checks
S SDINACTIVEDT=$$GET1^DIQ(44,SDCLINICIEN,2505,"I") ;inactive date/time
S SDREACTIVEDT=$$GET1^DIQ(44,SDCLINICIEN,2506,"I") ;reactive date/time
; Final checks for removing Reactivation date
; If clinic is currently inactive and has a future reactivation date, then remove reactivation date.
I SDINACTIVE,((SDREACTIVEDT'="")&(SDREACTIVEDT>DT)) D Q:$D(ERRORS)
. S FDA(44,SDCLINICIEN_",",2506)="@"
. I $G(SDCONTEXT("ACHERON AUDIT ID"))'="" S FDA(44,SDCLINICIEN_",",100)=SDCONTEXT("ACHERON AUDIT ID")
. I $G(XWB(2,"RPC"))'="" S FDA(44,SDCLINICIEN_",",100.1)=XWB(2,"RPC")
. I $G(SDCONTEXT("APPID"))'="" S FDA(44,SDCLINICIEN_",",100.2)=SDCONTEXT("APPID")
. D FILE^DIE("","FDA","FDERR")
. I $D(FDERR) D ERRLOG^SDES2JSON(.ERRORS,668) Q
. K FDA,FDERR
. ;
. S FDA(409.831,SDRESOURCEIEN_",",.025)="@"
. S FDA(409.831,SDRESOURCEIEN_",",.026)="@"
. I $G(SDCONTEXT("ACHERON AUDIT ID"))'="" S FDA(409.831,SDRESOURCEIEN_",",100)=SDCONTEXT("ACHERON AUDIT ID")
. I $G(XWB(2,"RPC"))'="" S FDA(409.831,SDRESOURCEIEN_",",101)=XWB(2,"RPC")
. I $G(SDCONTEXT("APPID"))'="" S FDA(409.831,SDRESOURCEIEN_",",102)=SDCONTEXT("APPID")
. D FILE^DIE("","FDA","FDERR")
. I $D(FDERR) D ERRLOG^SDES2JSON(.ERRORS,669) Q
;
; if clinic is inactive in the future and has a reactivation date in the future, then remove reactivation date.
I ((SDINACTIVEDT'="")&(SDINACTIVEDT>DT))&((SDREACTIVEDT'="")&(SDREACTIVEDT>SDINACTIVEDT)) D Q:$D(ERRORS)
. S FDA(44,SDCLINICIEN_",",2506)="@"
. I $G(SDCONTEXT("ACHERON AUDIT ID"))'="" S FDA(44,SDCLINICIEN_",",100)=SDCONTEXT("ACHERON AUDIT ID")
. I $G(XWB(2,"RPC"))'="" S FDA(44,SDCLINICIEN_",",100.1)=XWB(2,"RPC")
. I $G(SDCONTEXT("APPID"))'="" S FDA(44,SDCLINICIEN_",",100.2)=SDCONTEXT("APPID")
. D FILE^DIE("","FDA","FDERR")
. I $D(FDERR) D ERRLOG^SDES2JSON(.ERRORS,668) Q
. K FDA,FDERR
. ;
. S FDA(409.831,SDRESOURCEIEN_",",.025)="@"
. S FDA(409.831,SDRESOURCEIEN_",",.026)="@"
. I $G(SDCONTEXT("ACHERON AUDIT ID"))'="" S FDA(409.831,SDRESOURCEIEN_",",100)=SDCONTEXT("ACHERON AUDIT ID")
. I $G(XWB(2,"RPC"))'="" S FDA(409.831,SDRESOURCEIEN_",",101)=XWB(2,"RPC")
. I $G(SDCONTEXT("APPID"))'="" S FDA(409.831,SDRESOURCEIEN_",",102)=SDCONTEXT("APPID")
. D FILE^DIE("","FDA","FDERR")
. I $D(FDERR) D ERRLOG^SDES2JSON(.ERRORS,669) Q
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HSDES2DELCLNREADT 6712 printed Oct 28, 2026@01:48:01 Page 2
SDES2DELCLNREADT ;ALB/MGD,MGD - SDES2 DEL CLINIC REACT DATE ;SEP 08, 2026
+1 ;;5.3;Scheduling;**953,954**;Aug 13, 1993;Build 4
+2 ;;Per VHA Directive 6402, this routine should not be modified
+3 ;
+4 ; Documented API's and Integration Agreements
+5 ; -------------------------------------------
+6 ;Reference to $$GETS^DIQ is supported by IA #2056
+7 ;Reference to $$GETS1^DIQ is supported by IA #2056
+8 ;Reference to DUZ^XUP is supported by IA #7487
+9 ;;
+10 QUIT
+11 ;
SDDELREACTDT(SDRETURN,SDCONTEXT,SDPARAM) ; RPC: SDES2 DEL CLINIC REACT DATE
+1 ;INPUT -
+2 ; SDCONTEXT("ACHERON AUDIT ID") = Up to 40 Character unique ID number. Ex: 11d9dcc6-c6a2-4785-8031-8261576fca37
+3 ; SDCONTEXT("PATIENT DFN") = The DFN/IEN of the target patient from the calling application.
+4 ; SDCONTEXT("PATIENT ICN") = The ICN of the target patient from the calling application.
+5 ; SDCONTEXT("USER DUZ") = The DUZ of the user taking action in the calling application.
+6 ; SDCONTEXT("USER SECID") = The SECID of the user taking action in the calling application.
+7 ;
+8 ; SDPARAM("CLINIC IEN")=CLINIC IEN IEN of the clinic in file 44 - Hospital location
+9 ;
+10 ;RETURN PARMETER:
+11 ; Status
+12 ;
+13 NEW ERRORS,RESULTS
+14 ; Newing these variables that leak from down stream calls
+15 NEW CLIN,IEN,PROVDUZ,SDECI
+16 ; validate context array
+17 DO VALCONTEXT^SDES2VALCONTEXT(.ERRORS,.SDCONTEXT)
+18 IF $DATA(ERRORS)
SET ERRORS("Clinic",1)=""
DO BUILDJSON^SDES2JSON(.SDRETURN,.ERRORS)
QUIT
+19 ; visitor pattern
+20 IF $GET(SDCONTEXT("USER DUZ"))'=""
NEW DUZ
DO DUZ^XUP(SDCONTEXT("USER DUZ"))
+21 DO VALCLINIEN^SDES2VAL44(.ERRORS,$GET(SDPARAM("CLINIC IEN")),1)
+22 IF $DATA(ERRORS)
SET ERRORS("Clinic",1)=""
DO BUILDJSON^SDES2JSON(.SDRETURN,.ERRORS)
QUIT
+23 ; validate SDPARAM array
+24 DO VALSDPARAM(.ERRORS,.SDPARAM)
+25 IF $DATA(ERRORS)
SET ERRORS("Clinic",1)=""
DO BUILDJSON^SDES2JSON(.SDRETURN,.ERRORS)
QUIT
+26 ; Remove the Reactivation Date on HOSPITAL LOCATION & SDEC RESOURCE
+27 DO DELETEREACTDT(.ERRORS,.SDPARAM)
+28 IF $DATA(ERRORS)
SET ERRORS("Clinic",1)=""
DO BUILDJSON^SDES2JSON(.SDRETURN,.ERRORS)
QUIT
+29 ; Build Clinic Object for return
+30 DO BLDCLNREC^SDES2CLININFO(.RESULTS,$GET(SDPARAM("CLINIC IEN")))
+31 DO BUILDJSON^SDES2JSON(.SDRETURN,.RESULTS)
+32 QUIT
VALSDPARAM(ERRORS,SDPARAM) ; Check if we are doing a delete inactivation date
+1 NEW SDCLINICIEN,SDINACTIVE,SDINACTIVEDT,SDREACTIVEDT,SDRESOURCEIEN,SDRESREACTEDT,SDRESINACTEDT
+2 ; Clinic IEN checks
+3 SET SDCLINICIEN=$GET(SDPARAM("CLINIC IEN"))
+4 ; Missing Clinic ID
IF SDCLINICIEN=""
DO ERRLOG^SDES2JSON(.ERRORS,18)
QUIT
+5 ; Invalid Clinic ID
IF SDCLINICIEN'=""
IF '$DATA(^SC(SDCLINICIEN,0))
DO ERRLOG^SDES2JSON(.ERRORS,19)
QUIT
+6 ; Clinic Reactivate Date checks
+7 ;inactive date/time
SET SDINACTIVEDT=$$GET1^DIQ(44,SDCLINICIEN,2505,"I")
+8 ;reactive date/time
SET SDREACTIVEDT=$$GET1^DIQ(44,SDCLINICIEN,2506,"I")
+9 IF SDREACTIVEDT=""
DO ERRLOG^SDES2JSON(.ERRORS,659)
QUIT
+10 IF SDREACTIVEDT<=DT
DO ERRLOG^SDES2JSON(.ERRORS,660)
QUIT
+11 ; Inactive Clinic checks
+12 ; 0=ACTIVE 1=INACTIVE
SET SDINACTIVE=$$INACTIVE^SDES2UTIL(SDCLINICIEN,DT)
+13 IF SDINACTIVE
IF SDREACTIVEDT=""
DO ERRLOG^SDES2JSON(.ERRORS,661)
QUIT
+14 ; Active Clinic checks
+15 IF 'SDINACTIVE
IF (SDINACTIVEDT="")
DO ERRLOG^SDES2JSON(.ERRORS,662)
QUIT
+16 ; Resource IEN Checks
+17 ; the ,1 returns IEN whether clinic is Active or Inactive
+18 SET SDRESOURCEIEN=$$GETRES^SDES2UTIL1(SDCLINICIEN,1)
+19 IF 'SDRESOURCEIEN
DO ERRLOG^SDES2JSON(.ERRORS,663)
QUIT
+20 ; Resource Reactivate Date checks
+21 SET SDRESINACTEDT=$$GET1^DIQ(409.831,SDRESOURCEIEN,.021,"I")
+22 SET SDRESREACTEDT=$$GET1^DIQ(409.831,SDRESOURCEIEN,.025,"I")
+23 IF SDRESREACTEDT=""
DO ERRLOG^SDES2JSON(.ERRORS,664)
QUIT
+24 IF SDRESREACTEDT<=DT
DO ERRLOG^SDES2JSON(.ERRORS,665)
QUIT
+25 ; The ,0 only returns IEN if clinic is Active
+26 SET SDRESOURCEIEN=$$GETRES^SDES2UTIL1(SDCLINICIEN,0)
+27 ; Inactive Resource checks 'SDRESOURCEIEN = Inactive
+28 IF 'SDRESOURCEIEN
IF SDRESREACTEDT=""
DO ERRLOG^SDES2JSON(.ERRORS,666)
QUIT
+29 ; Active Resource checks I SDRESOURCEIEN = Active
+30 IF SDRESOURCEIEN
IF SDRESINACTEDT=""
DO ERRLOG^SDES2JSON(.ERRORS,667)
QUIT
+31 IF SDRESOURCEIEN
IF (SDRESINACTEDT="")
DO ERRLOG^SDES2JSON(.ERRORS,667)
QUIT
+32 QUIT
DELETEREACTDT(ERRORS,SDPARAM) ;
+1 NEW SDCLINICIEN,SDINACTIVE,SDRESOURCEIEN,SDINACTIVEDT,SDREACTIVEDT
+2 SET SDCLINICIEN=$GET(SDPARAM("CLINIC IEN"))
+3 ; the ,1 returns IEN whether clinic is Active or Inactive
+4 SET SDRESOURCEIEN=$$GETRES^SDES2UTIL1(SDCLINICIEN,1)
+5 IF 'SDRESOURCEIEN
DO ERRLOG^SDES2JSON(.ERRORS,663)
QUIT
+6 ; 0=ACTIVE 1=INACTIVE
SET SDINACTIVE=$$INACTIVE^SDES2UTIL(SDCLINICIEN,DT)
+7 ; Clinic Reactivate Date checks
+8 ;inactive date/time
SET SDINACTIVEDT=$$GET1^DIQ(44,SDCLINICIEN,2505,"I")
+9 ;reactive date/time
SET SDREACTIVEDT=$$GET1^DIQ(44,SDCLINICIEN,2506,"I")
+10 ; Final checks for removing Reactivation date
+11 ; If clinic is currently inactive and has a future reactivation date, then remove reactivation date.
+12 IF SDINACTIVE
IF ((SDREACTIVEDT'="")&(SDREACTIVEDT>DT))
Begin DoDot:1
+13 SET FDA(44,SDCLINICIEN_",",2506)="@"
+14 IF $GET(SDCONTEXT("ACHERON AUDIT ID"))'=""
SET FDA(44,SDCLINICIEN_",",100)=SDCONTEXT("ACHERON AUDIT ID")
+15 IF $GET(XWB(2,"RPC"))'=""
SET FDA(44,SDCLINICIEN_",",100.1)=XWB(2,"RPC")
+16 IF $GET(SDCONTEXT("APPID"))'=""
SET FDA(44,SDCLINICIEN_",",100.2)=SDCONTEXT("APPID")
+17 DO FILE^DIE("","FDA","FDERR")
+18 IF $DATA(FDERR)
DO ERRLOG^SDES2JSON(.ERRORS,668)
QUIT
+19 KILL FDA,FDERR
+20 ;
+21 SET FDA(409.831,SDRESOURCEIEN_",",.025)="@"
+22 SET FDA(409.831,SDRESOURCEIEN_",",.026)="@"
+23 IF $GET(SDCONTEXT("ACHERON AUDIT ID"))'=""
SET FDA(409.831,SDRESOURCEIEN_",",100)=SDCONTEXT("ACHERON AUDIT ID")
+24 IF $GET(XWB(2,"RPC"))'=""
SET FDA(409.831,SDRESOURCEIEN_",",101)=XWB(2,"RPC")
+25 IF $GET(SDCONTEXT("APPID"))'=""
SET FDA(409.831,SDRESOURCEIEN_",",102)=SDCONTEXT("APPID")
+26 DO FILE^DIE("","FDA","FDERR")
+27 IF $DATA(FDERR)
DO ERRLOG^SDES2JSON(.ERRORS,669)
QUIT
End DoDot:1
if $DATA(ERRORS)
QUIT
+28 ;
+29 ; if clinic is inactive in the future and has a reactivation date in the future, then remove reactivation date.
+30 IF ((SDINACTIVEDT'="")&(SDINACTIVEDT>DT))&((SDREACTIVEDT'="")&(SDREACTIVEDT>SDINACTIVEDT))
Begin DoDot:1
+31 SET FDA(44,SDCLINICIEN_",",2506)="@"
+32 IF $GET(SDCONTEXT("ACHERON AUDIT ID"))'=""
SET FDA(44,SDCLINICIEN_",",100)=SDCONTEXT("ACHERON AUDIT ID")
+33 IF $GET(XWB(2,"RPC"))'=""
SET FDA(44,SDCLINICIEN_",",100.1)=XWB(2,"RPC")
+34 IF $GET(SDCONTEXT("APPID"))'=""
SET FDA(44,SDCLINICIEN_",",100.2)=SDCONTEXT("APPID")
+35 DO FILE^DIE("","FDA","FDERR")
+36 IF $DATA(FDERR)
DO ERRLOG^SDES2JSON(.ERRORS,668)
QUIT
+37 KILL FDA,FDERR
+38 ;
+39 SET FDA(409.831,SDRESOURCEIEN_",",.025)="@"
+40 SET FDA(409.831,SDRESOURCEIEN_",",.026)="@"
+41 IF $GET(SDCONTEXT("ACHERON AUDIT ID"))'=""
SET FDA(409.831,SDRESOURCEIEN_",",100)=SDCONTEXT("ACHERON AUDIT ID")
+42 IF $GET(XWB(2,"RPC"))'=""
SET FDA(409.831,SDRESOURCEIEN_",",101)=XWB(2,"RPC")
+43 IF $GET(SDCONTEXT("APPID"))'=""
SET FDA(409.831,SDRESOURCEIEN_",",102)=SDCONTEXT("APPID")
+44 DO FILE^DIE("","FDA","FDERR")
+45 IF $DATA(FDERR)
DO ERRLOG^SDES2JSON(.ERRORS,669)
QUIT
End DoDot:1
if $DATA(ERRORS)
QUIT
+46 QUIT