SDES2UNDONOSHOW ;ALB/BLB,LAB,TJB,JHC,LAB - SDES2 UNDO NO-SHOW ; MAR 03,2026
;;5.3;Scheduling;**871,875,927,909,929**;Aug 13, 1993;Build 9
;;Per VHA Directive 6402, this routine should not be modified
;
; Reference to DUZ^XUP is supported by IA #7487
;
Q
;
UNDONOSHOW(JSON,SDCONTEXT,NOSHOW) ;
N ERRORS,RETURN,DATA,APPTIEN,DFN,PARENTREQUEST,APPTDATETIME,CLINICIEN,EVENT,REQUESTTYPE,REQUESTIEN,CLINICAPPTIEN,RECALL,PROVIDER,NOTE,RESOURCE
; Leaking variables from external calls
N %DT,C,DSIHCL,DSIHFS,DSPV150,EVN,J,HL16,HL7STRG,HLA,HLECH,HLFS,HLQ,IEN,PIVOT,R,REF,RTN,S,SEQ,SCHEMAIL,SDCODES,VA,VACNTRY,VAERR,XQXFLG,XX,Y,Z0
;
D VALCONTEXT^SDES2VALCONTEXT(.ERRORS,.SDCONTEXT)
I $D(ERRORS) S ERRORS("NoShow",1)="" D BUILDJSON^SDESBUILDJSON(.JSON,.ERRORS) Q
I $G(SDCONTEXT("USER DUZ"))'="" N DUZ D DUZ^XUP(SDCONTEXT("USER DUZ"))
;
D VALIDATE($G(NOSHOW("APPOINTMENT IEN")))
I $D(ERRORS) S ERRORS("UndoNoShow",1)="" D BUILDJSON^SDESBUILDJSON(.JSON,.ERRORS) Q
;
D POPULATE^SDES2NOSHOW(.NOSHOW,.SDCONTEXT,.APPTIEN,.DFN,.APPTDATETIME,.CLINICIEN,.REQUESTTYPE,.REQUESTIEN,.CLINICAPPTIEN,.PROVIDER,.NOTE,.RESOURCE,.PARENTREQUEST)
;
D EVENTHANDLER1^SDES2NOSHOW(.DATA,DFN,APPTDATETIME,CLINICIEN,.EVENT,CLINICAPPTIEN)
;
D NOSHOW40984(APPTIEN)
D NOSHOW2(APPTDATETIME,DFN)
;
I REQUESTTYPE="APPT" D NOSHOW40985(REQUESTIEN,PARENTREQUEST,APPTIEN,.SDCONTEXT)
I REQUESTTYPE="RECALL" D REOPEN^SDESRECALLREQ(.RECALL,APPTIEN)
I REQUESTTYPE="CONSULT" D
. N GMRCDUZ
. D NOSHOW^SDCNSLT(CLINICIEN,APPTDATETIME,DFN,REQUESTIEN,CLINICAPPTIEN),REQSET^SDESCONSULTUPD(REQUESTIEN,PROVIDER,,1,,NOTE,APPTDATETIME,RESOURCE)
;
D EVENTHANDLER2^SDES2NOSHOW(.DATA,DFN,APPTDATETIME,CLINICIEN,.EVENT,CLINICAPPTIEN)
;
S RETURN("UndoNoShow",1)="Undo no-show complete."
D BUILDJSON^SDESBUILDJSON(.JSON,.RETURN)
Q
;
NOSHOW40984(APPTIEN) ;
N FDA,IENS
;
S IENS=APPTIEN_","
S FDA(409.84,IENS,.1)=0
S FDA(409.84,IENS,.101)=""
S FDA(409.84,IENS,.102)=""
S FDA(409.84,IENS,.17)=""
D FILE^DIE(,"FDA") K FDA
Q
;
NOSHOW2(APPTDATETIME,DFN) ;
N FDA,IENS
;
S IENS=APPTDATETIME_","_DFN_","
S FDA(2.98,IENS,3)=""
S FDA(2.98,IENS,14)=""
S FDA(2.98,IENS,15)=""
D FILE^DIE(,"FDA") K FDA
Q
;
NOSHOW40985(REQUESTIEN,PARENTREQUEST,APPTIEN,SDCONTEXT) ;
N FDA,IENS,CHILDREQUEST,FOUND,CHILDIEN,REQUEST,CLINICIEN,DATACLERK,MADEDATE
;
S CLINICIEN=$$GET1^DIQ(409.831,$$GET1^DIQ(409.84,APPTIEN,.07,"I"),.04,"I")
S DATACLERK=$$GET1^DIQ(409.84,APPTIEN,.08,"I")
S MADEDATE=$$GET1^DIQ(409.84,APPTIEN,.09,"I")
S IENS=REQUESTIEN_","
S FDA(409.85,IENS,49)=0
S FDA(409.85,IENS,19)=MADEDATE
S FDA(409.85,IENS,20)=DATACLERK
S FDA(409.85,IENS,21)=$O(^SDEC(409.853,"B","REMOVED/SCHEDULED-ASSIGNED",""))
S FDA(409.85,IENS,23)="C"
S FDA(409.85,IENS,13)=$$GET1^DIQ(409.84,APPTIEN,.01,"I")
S FDA(409.85,IENS,13.1)=MADEDATE
S FDA(409.85,IENS,13.2)=CLINICIEN
S FDA(409.85,IENS,13.3)=$$GET1^DIQ(44,$G(CLINICIEN),3,"I") ; appt institution ;
S FDA(409.85,IENS,13.4)=$$GET1^DIQ(44,$G(CLINICIEN),8,"I") ; appt stop code
S FDA(409.85,IENS,13.6)=$$GET1^DIQ(40.8,$$GET1^DIQ(44,$G(CLINICIEN),3.5,"I"),1,"I") ; appt station number
S FDA(409.85,IENS,13.7)=DATACLERK
S FDA(409.85,IENS,13.8)="R" ; 'R' FOR Scheduled/Kept;
S FDA(409.85,IENS,100)=$G(SDCONTEXT("ACHERON AUDIT ID"))
D FILE^DIE(,"FDA") K FDA
;
S FOUND=0
I $G(PARENTREQUEST) D
. I '($O(^SDEC(409.85,PARENTREQUEST,2,"B",REQUESTIEN,""))) D
. . ; If request has been dispositioned prior to undoing no show, then need to add back to parent
. . D ADDMRTCLINKS^SDES2MRTCUTIL(REQUESTIEN,PARENTREQUEST)
. . D ADDMRTCPIDLINKS^SDES2MRTCUTIL(PARENTREQUEST,$$GET1^DIQ(409.85,REQUESTIEN,22,"I")) ;
. . D UPDATEAPPTNUM^SDES2MRTCUTIL(PARENTREQUEST)
. . D UPDATEMRTCSEQNUM^SDES2MRTCUTIL(PARENTREQUEST,$$GET1^DIQ(409.84,APPTIEN,.05,"I"))
. S CHILDIEN=""
. F S CHILDIEN=$O(^SDEC(409.85,PARENTREQUEST,2,"B",CHILDIEN)) Q:(CHILDIEN="")!(FOUND) D
. . S FOUND=($$GET1^DIQ(409.85,CHILDIEN_",",23,"E")="OPEN")
. ;
. I 'FOUND D
. . S FDA(409.85,PARENTREQUEST_",",19)=MADEDATE
. . S FDA(409.85,PARENTREQUEST_",",20)=DATACLERK
. . S FDA(409.85,PARENTREQUEST_",",21)=$O(^SDEC(409.853,"B","MRTC PARENT CLOSED",""))
. . S FDA(409.85,PARENTREQUEST_",",23)="C"
. . S FDA(409.85,PARENTREQUEST,100)=$G(SDCONTEXT("ACHERON AUDIT ID"))
. . D FILE^DIE(,"FDA","ERROR") K FDA
. S REQUEST("MRTC","CHILD REQUEST")=REQUESTIEN
. S REQUEST("MRTC","MRTC APPOINTMENT")=APPTIEN
. D BUILDMRTCLINKS^SDESEDITAPPTREQ(.REQUEST,PARENTREQUEST)
Q
;
VALIDATE(APPTIEN) ;
D VALFILEIEN^SDES2VALUTIL(,.ERRORS,409.84,APPTIEN,1,,14,15)
I $D(ERRORS) Q
I '$$GET1^DIQ(409.84,APPTIEN,.1,"I") D ERRLOG^SDESJSON(.ERRORS,368)
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HSDES2UNDONOSHOW 4726 printed May 25, 2026@12:59:27 Page 2
SDES2UNDONOSHOW ;ALB/BLB,LAB,TJB,JHC,LAB - SDES2 UNDO NO-SHOW ; MAR 03,2026
+1 ;;5.3;Scheduling;**871,875,927,909,929**;Aug 13, 1993;Build 9
+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 ;
UNDONOSHOW(JSON,SDCONTEXT,NOSHOW) ;
+1 NEW ERRORS,RETURN,DATA,APPTIEN,DFN,PARENTREQUEST,APPTDATETIME,CLINICIEN,EVENT,REQUESTTYPE,REQUESTIEN,CLINICAPPTIEN,RECALL,PROVIDER,NOTE,RESOURCE
+2 ; Leaking variables from external calls
+3 NEW %DT,C,DSIHCL,DSIHFS,DSPV150,EVN,J,HL16,HL7STRG,HLA,HLECH,HLFS,HLQ,IEN,PIVOT,R,REF,RTN,S,SEQ,SCHEMAIL,SDCODES,VA,VACNTRY,VAERR,XQXFLG,XX,Y,Z0
+4 ;
+5 DO VALCONTEXT^SDES2VALCONTEXT(.ERRORS,.SDCONTEXT)
+6 IF $DATA(ERRORS)
SET ERRORS("NoShow",1)=""
DO BUILDJSON^SDESBUILDJSON(.JSON,.ERRORS)
QUIT
+7 IF $GET(SDCONTEXT("USER DUZ"))'=""
NEW DUZ
DO DUZ^XUP(SDCONTEXT("USER DUZ"))
+8 ;
+9 DO VALIDATE($GET(NOSHOW("APPOINTMENT IEN")))
+10 IF $DATA(ERRORS)
SET ERRORS("UndoNoShow",1)=""
DO BUILDJSON^SDESBUILDJSON(.JSON,.ERRORS)
QUIT
+11 ;
+12 DO POPULATE^SDES2NOSHOW(.NOSHOW,.SDCONTEXT,.APPTIEN,.DFN,.APPTDATETIME,.CLINICIEN,.REQUESTTYPE,.REQUESTIEN,.CLINICAPPTIEN,.PROVIDER,.NOTE,.RESOURCE,.PARENTREQUEST)
+13 ;
+14 DO EVENTHANDLER1^SDES2NOSHOW(.DATA,DFN,APPTDATETIME,CLINICIEN,.EVENT,CLINICAPPTIEN)
+15 ;
+16 DO NOSHOW40984(APPTIEN)
+17 DO NOSHOW2(APPTDATETIME,DFN)
+18 ;
+19 IF REQUESTTYPE="APPT"
DO NOSHOW40985(REQUESTIEN,PARENTREQUEST,APPTIEN,.SDCONTEXT)
+20 IF REQUESTTYPE="RECALL"
DO REOPEN^SDESRECALLREQ(.RECALL,APPTIEN)
+21 IF REQUESTTYPE="CONSULT"
Begin DoDot:1
+22 NEW GMRCDUZ
+23 DO NOSHOW^SDCNSLT(CLINICIEN,APPTDATETIME,DFN,REQUESTIEN,CLINICAPPTIEN)
DO REQSET^SDESCONSULTUPD(REQUESTIEN,PROVIDER,,1,,NOTE,APPTDATETIME,RESOURCE)
End DoDot:1
+24 ;
+25 DO EVENTHANDLER2^SDES2NOSHOW(.DATA,DFN,APPTDATETIME,CLINICIEN,.EVENT,CLINICAPPTIEN)
+26 ;
+27 SET RETURN("UndoNoShow",1)="Undo no-show complete."
+28 DO BUILDJSON^SDESBUILDJSON(.JSON,.RETURN)
+29 QUIT
+30 ;
NOSHOW40984(APPTIEN) ;
+1 NEW FDA,IENS
+2 ;
+3 SET IENS=APPTIEN_","
+4 SET FDA(409.84,IENS,.1)=0
+5 SET FDA(409.84,IENS,.101)=""
+6 SET FDA(409.84,IENS,.102)=""
+7 SET FDA(409.84,IENS,.17)=""
+8 DO FILE^DIE(,"FDA")
KILL FDA
+9 QUIT
+10 ;
NOSHOW2(APPTDATETIME,DFN) ;
+1 NEW FDA,IENS
+2 ;
+3 SET IENS=APPTDATETIME_","_DFN_","
+4 SET FDA(2.98,IENS,3)=""
+5 SET FDA(2.98,IENS,14)=""
+6 SET FDA(2.98,IENS,15)=""
+7 DO FILE^DIE(,"FDA")
KILL FDA
+8 QUIT
+9 ;
NOSHOW40985(REQUESTIEN,PARENTREQUEST,APPTIEN,SDCONTEXT) ;
+1 NEW FDA,IENS,CHILDREQUEST,FOUND,CHILDIEN,REQUEST,CLINICIEN,DATACLERK,MADEDATE
+2 ;
+3 SET CLINICIEN=$$GET1^DIQ(409.831,$$GET1^DIQ(409.84,APPTIEN,.07,"I"),.04,"I")
+4 SET DATACLERK=$$GET1^DIQ(409.84,APPTIEN,.08,"I")
+5 SET MADEDATE=$$GET1^DIQ(409.84,APPTIEN,.09,"I")
+6 SET IENS=REQUESTIEN_","
+7 SET FDA(409.85,IENS,49)=0
+8 SET FDA(409.85,IENS,19)=MADEDATE
+9 SET FDA(409.85,IENS,20)=DATACLERK
+10 SET FDA(409.85,IENS,21)=$ORDER(^SDEC(409.853,"B","REMOVED/SCHEDULED-ASSIGNED",""))
+11 SET FDA(409.85,IENS,23)="C"
+12 SET FDA(409.85,IENS,13)=$$GET1^DIQ(409.84,APPTIEN,.01,"I")
+13 SET FDA(409.85,IENS,13.1)=MADEDATE
+14 SET FDA(409.85,IENS,13.2)=CLINICIEN
+15 ; appt institution ;
SET FDA(409.85,IENS,13.3)=$$GET1^DIQ(44,$GET(CLINICIEN),3,"I")
+16 ; appt stop code
SET FDA(409.85,IENS,13.4)=$$GET1^DIQ(44,$GET(CLINICIEN),8,"I")
+17 ; appt station number
SET FDA(409.85,IENS,13.6)=$$GET1^DIQ(40.8,$$GET1^DIQ(44,$GET(CLINICIEN),3.5,"I"),1,"I")
+18 SET FDA(409.85,IENS,13.7)=DATACLERK
+19 ; 'R' FOR Scheduled/Kept;
SET FDA(409.85,IENS,13.8)="R"
+20 SET FDA(409.85,IENS,100)=$GET(SDCONTEXT("ACHERON AUDIT ID"))
+21 DO FILE^DIE(,"FDA")
KILL FDA
+22 ;
+23 SET FOUND=0
+24 IF $GET(PARENTREQUEST)
Begin DoDot:1
+25 IF '($ORDER(^SDEC(409.85,PARENTREQUEST,2,"B",REQUESTIEN,"")))
Begin DoDot:2
+26 ; If request has been dispositioned prior to undoing no show, then need to add back to parent
+27 DO ADDMRTCLINKS^SDES2MRTCUTIL(REQUESTIEN,PARENTREQUEST)
+28 ;
DO ADDMRTCPIDLINKS^SDES2MRTCUTIL(PARENTREQUEST,$$GET1^DIQ(409.85,REQUESTIEN,22,"I"))
+29 DO UPDATEAPPTNUM^SDES2MRTCUTIL(PARENTREQUEST)
+30 DO UPDATEMRTCSEQNUM^SDES2MRTCUTIL(PARENTREQUEST,$$GET1^DIQ(409.84,APPTIEN,.05,"I"))
End DoDot:2
+31 SET CHILDIEN=""
+32 FOR
SET CHILDIEN=$ORDER(^SDEC(409.85,PARENTREQUEST,2,"B",CHILDIEN))
if (CHILDIEN="")!(FOUND)
QUIT
Begin DoDot:2
+33 SET FOUND=($$GET1^DIQ(409.85,CHILDIEN_",",23,"E")="OPEN")
End DoDot:2
+34 ;
+35 IF 'FOUND
Begin DoDot:2
+36 SET FDA(409.85,PARENTREQUEST_",",19)=MADEDATE
+37 SET FDA(409.85,PARENTREQUEST_",",20)=DATACLERK
+38 SET FDA(409.85,PARENTREQUEST_",",21)=$ORDER(^SDEC(409.853,"B","MRTC PARENT CLOSED",""))
+39 SET FDA(409.85,PARENTREQUEST_",",23)="C"
+40 SET FDA(409.85,PARENTREQUEST,100)=$GET(SDCONTEXT("ACHERON AUDIT ID"))
+41 DO FILE^DIE(,"FDA","ERROR")
KILL FDA
End DoDot:2
+42 SET REQUEST("MRTC","CHILD REQUEST")=REQUESTIEN
+43 SET REQUEST("MRTC","MRTC APPOINTMENT")=APPTIEN
+44 DO BUILDMRTCLINKS^SDESEDITAPPTREQ(.REQUEST,PARENTREQUEST)
End DoDot:1
+45 QUIT
+46 ;
VALIDATE(APPTIEN) ;
+1 DO VALFILEIEN^SDES2VALUTIL(,.ERRORS,409.84,APPTIEN,1,,14,15)
+2 IF $DATA(ERRORS)
QUIT
+3 IF '$$GET1^DIQ(409.84,APPTIEN,.1,"I")
DO ERRLOG^SDESJSON(.ERRORS,368)
+4 QUIT