Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: SDES2UNDONOSHOW

SDES2UNDONOSHOW.m

Go to the documentation of this file.
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