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

SDES2UNDOCHECKIN.m

Go to the documentation of this file.
SDES2UNDOCHECKIN ;ALB/AGW - VISTA SCHEDULING RPCS ;MAR 12, 2026
 ;;5.3;Scheduling;**940**;Aug 13, 1993;Build 5
 ;;Per VHA Directive 6402, this routine should not be modified
 ;; Reference to DUZ^XUP is supported by IA #7487
 ; 
 ; Clone of SDESCANCHECKIN
 ;
 ; The SDCONTEXT array is controlled by the Acheron application and its fields are
 ; needed for the storage of the required auditing information.
 ;
 ; 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.
 ;
 ; SDINPUT  
 ; SDINPUT("APPT IEN") = IEN of SDEC APPOINTMENT (#409.84) file record to remove check in (required)
 ; SDINPUT("FULL OBJECT") = 1 RETURNS THE FULL APPOINTMENT OBJECT (OPT)
 ;
 Q
UNDOCHECKIN(SDRESULT,SDCONTEXT,SDINPUT) ;Remove checkin
 N DFN,SDESSTART,RESOURCE,CLINICIEN,SDESSTART,SDERRORS,CANCKIN,APPTDAT,APPTOBJ,FDA,UNDOCKIN
 N RES,C,DA,DSIHCL,DSIHFS,DSIHFS,DSPV150,EVN,FS,HL16,HL7STRG,HLA,HLHDR,HLN,HLECH
 N HLPARAM,HLQ,HLSAN,HLTYPE,HLX,IEN,J,PIVOT,R,REF,S,VA,VACNTRY,VAERR,XQXFLG,XX,Y,Z0,ZMID,ZTSK
 N DGNOCOPF,DGWRT,DIERR,DISYS,DT,DTIME,IVMZ10F,VALRET,APPTIEN,APPTIENS,HLFS,DGMT,%DT
 N HLCS,HLDOM,HLFORMAT,HLINST,HLPROD,HLRESLT,HLARYTYP
 D VALCONTEXT^SDES2VALCONTEXT(.SDERRORS,.SDCONTEXT)
 I $D(SDERRORS) S SDERRORS("undoCheckin",1)="" D BUILDJSON^SDES2JSON(.SDRESULT,.SDERRORS) Q
 I $G(SDCONTEXT("USER DUZ"))'="" N DUZ D DUZ^XUP(SDCONTEXT("USER DUZ"))
 D VALIDATE(.SDINPUT,.APPTIEN,.DFN,.CLINICIEN,.SDESSTART,.RESOURCE,.APPTOBJ,.SDERRORS)
 I $D(SDERRORS) S SDERRORS("undoCheckin",1)="" D BUILDJSON^SDES2JSON(.SDRESULT,.SDERRORS) Q
 D SDECCHK(APPTIEN,DFN,CLINICIEN,SDESSTART,.SDERRORS) ; sets field .03 (Checkin), in file 409.84
 I $D(SDERRORS) D ERRLOG^SDES2JSON S SDERRORS("undoCheckin",1)="" D BUILDJSON^SDES2JSON(.SDRESULT,.SDERRORS) Q
 D BUILDJSON(.SDRESULT,APPTOBJ,.SDERRORS)
 I $D(SDERRORS) D ERRLOG^SDES2JSON S SDERRORS("undoCheckin",1)="" D BUILDJSON^SDES2JSON(.SDRESULT,.SDERRORS) Q
 Q
 ;
SDECCHK(APPTIEN,DFN,CLINICIEN,SDESSTART,SDERRORS) ;  sets field .03 (Checkin), in file 409.84
 N SDDA,SDCIHDL,SDATA,SDECFDA,SDECMSG,SDECIENS
 S SDDA=$$FIND^SDESCHECKOUT(DFN,SDESSTART,CLINICIEN)
 S SDATA=SDDA_U_DFN_U_SDESSTART_U_CLINICIEN
 S SDCIHDL=$$HANDLE^SDAMEVT(1)
 D BEFORE^SDAMEVT(.SDATA,DFN,SDESSTART,CLINICIEN,SDDA,SDCIHDL)
 S APPTIENS=APPTIEN_","
 S FDA(409.84,APPTIENS,100)=$G(SDCONTEXT("ACHERON AUDIT ID"))
 S SDECFDA(409.84,APPTIENS,.03)="@"
 S SDECFDA(409.84,APPTIENS,.04)="@"
 D FILE^DIE("","SDECFDA","SDERRORS")
 S FDA(44.003,SDDA_","_SDESSTART_","_CLINICIEN_",",309)="" D FILE^DIE(,"FDA","ERR")
 K FDA,ERR
 D AFTER^SDAMEVT(.SDATA,DFN,SDESSTART,CLINICIEN,SDDA,SDCIHDL)
 D EVT^SDAMEVT(.SDATA,4,2,SDCIHDL)
 M UNDOCKIN("UndoCheckIn",1)=SDATA(1)
 Q
 ;
VALIDATE(SDINPUT,APPTIEN,DFN,CLINICIEN,SDESSTART,RESOURCE,APPTOBJ,SDERRORS) ;Validate SDINPUT
 N APPTIENS,SL,SDSI,X1,X2,SDDAY,SDCNT,ESC
 S APPTIEN=$G(SDINPUT("APPT IEN"))
 D VALFILEIEN^SDES2VALUTIL(.VALRET,.SDERRORS,409.84,APPTIEN,1,0,14,15) Q:$D(SDERRORS)
 S APPTIENS=APPTIEN_","
 D GETS^DIQ(409.84,APPTIEN,".01;.03;.05;.07;.12","I","APPTDAT","SDERRORS") Q:$D(SDERRORS)
 I $G(APPTDAT(409.84,APPTIENS,.12,"I"))]"" D ERRLOG^SDES2JSON(.SDERRORS,322) Q
 I '$G(APPTDAT(409.84,APPTIENS,.03,"I")) D ERRLOG^SDES2JSON(.SDERRORS,318) Q
 S RESOURCE=$$GET1^DIQ(409.84,APPTIEN,.07,"I") I ('RESOURCE) D ERRLOG^SDES2JSON(.SDERRORS,282) Q
 S CLINICIEN=$$GET1^DIQ(409.831,RESOURCE,.04,"I")
 I 'CLINICIEN D ERRLOG^SDESJSON(.SDERRORS,283) Q
 S DFN=$$GET1^DIQ(409.84,APPTIEN,.05,"I")
 S SDESSTART=$$GET1^DIQ(409.84,APPTIEN,.01,"I")
 S APPTOBJ=$G(SDINPUT("FULL OBJECT")) S:APPTOBJ="" APPTOBJ=0
 D VALBOOLEAN^SDES2UTIL1(.SDERRORS,APPTOBJ,0,"SDINPUT(""FULL OBJECT"")")
 Q
 ;
BUILDJSON(SDRESULT,APPTOBJ,SDERRORS) ; build json file
 I '($G(APPTOBJ)) D
 . S CANCKIN("undoCheckin",1,"Results")="Undo check-in successful"
 . D BUILDJSON^SDES2JSON(.SDRESULT,.CANCKIN)
 . Q
 I ($G(APPTOBJ)) D
 . D BUILDAPPTOBJ^SDES2BLDAPPTOBJ(.APPTOBJ,APPTIEN,1,.SDERRORS)
 . I $D(SDERRORS) S SDERRORS("undoCheckin",1)="" Q
 . M CANCKIN("undoCheckin",1,"Appointment")=APPTOBJ("Appointment",1)
 . S CANCKIN("undoCheckin",1,"Results")="Undo check-in successful"
 . D BUILDJSON^SDES2JSON(.SDRESULT,.CANCKIN)
 . Q
 Q