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

SDES2UNDOCHKOUT.m

Go to the documentation of this file.
  1. SDES2UNDOCHKOUT ;ALB/ANU/TJB - VISTA SCHEDULING RPCS - SDES2 UNDO CHECKOUT ;APR 08, 2024
  1. ;;5.3;Scheduling;**877**;Aug 13, 1993;Build 14
  1. ;;Per VHA Directive 6402, this routine should not be modified;
  1. ;
  1. ; Reference to MAS PARAMETERS in ICR #483
  1. ; Reference to WARD LOCATION in ICR #1377
  1. ; Reference to MAS PARAMETERS in ICR #2296
  1. ; Reference to VISIT in ICR #2028
  1. ;
  1. Q
  1. ; INPUT
  1. ;
  1. ; SDCONTEXT("ACHERON AUDIT ID") = Up to 40 Character unique ID number. Ex: 11d9dcc6-c6a2-4785-8031-8261576fca37
  1. ; SDCONTEXT("USER DUZ") = The DUZ of the user taking action in the calling application.
  1. ; SDCONTEXT("USER SECID") = The SECID of the user taking action in the calling application.
  1. ; SDCONTEXT("PATIENT DFN") = The DFN/IEN of the target patient from the calling application.
  1. ; SDCONTEXT("PATIENT ICN") = The ICN of the target patient from the calling application.
  1. ; SDINPUT("APPOINTMENT IEN") = (Required) Appointment IEN
  1. ;
  1. UNDOCHECKOUT(JSONRETURN,SDCONTEXT,SDINPUT) ;
  1. N ERRORS,SDRETURN,PARAMETERS,SDDUZ
  1. D VALCONTEXT^SDES2VALCONTEXT(.ERRORS,.SDCONTEXT)
  1. I $D(ERRORS) S ERRORS("UndoCheckOut",1)="" D BUILDJSON^SDES2JSON(.JSONRETURN,.ERRORS) Q
  1. S PARAMETERS=$$VALPARAMS(.SDINPUT,.ERRORS)
  1. I $D(ERRORS) S ERRORS("UndoCheckOut",1)="" D BUILDJSON^SDES2JSON(.JSONRETURN,.ERRORS) Q
  1. ;
  1. S SDDUZ=$S(+$G(SDCONTEXT("USER DUZ")):+SDCONTEXT("USER DUZ"),1:$G(DUZ))
  1. D UNDOCKOUT(.SDRETURN,PARAMETERS,SDDUZ)
  1. I '$D(SDRETURN) S SDRETURN("UndoCheckOut",1)=""
  1. D BUILDJSON^SDES2JSON(.JSONRETURN,.SDRETURN)
  1. Q
  1. ;
  1. VALPARAMS(PARAMS,SDERRORS) ; Validate
  1. N SDIEN,SDCHECKDT
  1. ;
  1. ; Validate Appointment IEN
  1. S SDIEN=$G(PARAMS("APPOINTMENT IEN"))
  1. I '$G(SDIEN) D ERRLOG^SDES2JSON(.SDERRORS,14) Q 0
  1. I '$D(^SDEC(409.84,SDIEN,0)) D ERRLOG^SDES2JSON(.SDERRORS,15) Q 0 ;invalid appt IEN
  1. S SDCHECKDT=$$GET1^DIQ(409.84,SDIEN,.14,"I")
  1. I 'SDCHECKDT D ERRLOG^SDES2JSON(.SDERRORS,377) Q 0
  1. I $$FMDIFF^XLFDT(DT,SDCHECKDT,1)'=0 D ERRLOG^SDES2JSON(.SDERRORS,47,"Undo Checkout must be performed same calendar day as checkout") Q 0
  1. ;
  1. Q:$D(SDERRORS) 0
  1. Q SDIEN
  1. ;
  1. UNDOCKOUT(SDRETURN,APPTIEN,SDDUZ) ;
  1. N ERRORS,APPTSUBIEN44,APPTSTARTTIME,DFN,CLINICIEN,RESOURCEIEN,SDATA,SDCIHDL
  1. ;
  1. S APPTSTARTTIME=$$GET1^DIQ(409.84,APPTIEN,.01,"I")
  1. S DFN=$$GET1^DIQ(409.84,APPTIEN,.05,"I")
  1. S RESOURCEIEN=$$GET1^DIQ(409.84,APPTIEN,.07,"I")
  1. S CLINICIEN=$$GET1^DIQ(409.831,RESOURCEIEN,.04,"I")
  1. S APPTSUBIEN44=$$FIND^SDESCHECKOUT(DFN,APPTSTARTTIME,CLINICIEN)
  1. S SDATA=APPTSUBIEN44_U_DFN_U_APPTSTARTTIME_U_CLINICIEN
  1. S SDCIHDL=$$HANDLE^SDAMEVT(1)
  1. ;
  1. D BEFOREEVENT($G(APPTSTARTTIME),$G(DFN),$G(CLINICIEN),$G(APPTSUBIEN44),SDCIHDL,.SDATA)
  1. D UNDO($G(APPTIEN),$G(CLINICIEN),$G(APPTSTARTTIME),$G(DFN),SDDUZ)
  1. D AFTEREVENT($G(APPTSTARTTIME),$G(DFN),$G(CLINICIEN),$G(APPTSUBIEN44),SDCIHDL,.SDATA)
  1. ;
  1. S SDRETURN("UndoCheckOut","UndoCheckOutCompleted")=1
  1. Q
  1. ;
  1. UNDO(APPTIEN,CLINICIEN,APPTSTARTTIME,DFN,SDDUZ) ;
  1. N FDA84,ERR84,FDA44,ERR44,IENS44,ENCOUNTERIEN,VISITFILEIEN,FDA9000010,ERR9000010,FDA40968,ERR40968
  1. ;
  1. S FDA84(409.84,APPTIEN_",",.14)="@"
  1. S FDA84(409.84,APPTIEN_",",.08)=$G(SDDUZ)
  1. D FILE^DIE(,"FDA84","ERR84") K FDA84
  1. ;
  1. S IENS44=$$GET44RECORDIENS^SDESCANCELAPPTS(CLINICIEN,APPTSTARTTIME,DFN)
  1. I $G(IENS44) D
  1. .S FDA44(44.003,IENS44,303)="@"
  1. .S FDA44(44.003,IENS44,304)="@"
  1. .S FDA44(44.003,IENS44,306)="@"
  1. .D FILE^DIE(,"FDA44","ERR44") K FDA44
  1. ;
  1. S ENCOUNTERIEN=$$GETAPT^SDVSIT2(DFN,APPTSTARTTIME,CLINICIEN)
  1. S VISITFILEIEN=$$GET1^DIQ(409.68,ENCOUNTERIEN,.05,"I")
  1. I $D(^AUPNVSIT($G(VISITFILEIEN),0)) D
  1. .S FDA9000010(9000010,VISITFILEIEN_",",.18)="@"
  1. .D FILE^DIE(,"FDA9000010","ERR9000010") K FDA9000010
  1. ;
  1. I $D(^SCE($G(ENCOUNTERIEN),0)),$$GET1^DIQ(409.84,APPTIEN,.19,"I") D
  1. .S FDA40968(409.68,ENCOUNTERIEN_",",.07)="@"
  1. .S FDA40968(409.68,ENCOUNTERIEN_",",.12)=$$GET1^DIQ(409.84,APPTIEN,.19,"I")
  1. .S FDA40968(409.68,ENCOUNTERIEN_",",101)=$G(SDDUZ)
  1. .S FDA40968(409.68,ENCOUNTERIEN_",",102)=$$NOW^XLFDT
  1. .D FILE^DIE(,"FDA40968","ERR40968") K FDA40968
  1. ;
  1. Q
  1. ;
  1. BEFOREEVENT(APPTSTARTTIME,DFN,CLINICIEN,APPTSUBIEN44,SDCIHDL,SDATA) ;
  1. D BEFORE^SDAMEVT(.SDATA,DFN,APPTSTARTTIME,CLINICIEN,APPTSUBIEN44,SDCIHDL)
  1. Q
  1. ;
  1. AFTEREVENT(APPTSTARTTIME,DFN,CLINICIEN,APPTSUBIEN44,SDCIHDL,SDATA) ;
  1. D AFTER^SDAMEVT(.SDATA,DFN,APPTSTARTTIME,CLINICIEN,APPTSUBIEN44,SDCIHDL)
  1. D EVT^SDAMEVT(.SDATA,5,2,SDCIHDL) ;
  1. Q
  1. ;