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

SDESREACTVTCLIN.m

Go to the documentation of this file.
  1. SDESREACTVTCLIN ;ALB/RRM - VISTA SCHEDULING REACTIVATE CLINIC RPC in HOSPITAL LOCATION FILE 44 ;July 21, 2022
  1. ;;5.3;Scheduling;**823**;Aug 13, 1993;Build 9
  1. ;;Per VHA Directive 6402, this routine should not be modified
  1. ;
  1. ; Documented API's and Integration Agreements
  1. ; -------------------------------------------
  1. ; Reference to $$GET1^DIQ is supported by IA #2056
  1. ; Reference to TURNON^DIAUTL is supported by IA #4397
  1. ;
  1. Q ;No Direct Call
  1. ;
  1. ; The parameter list for this RPC must be kept in sync.
  1. ; If you need to add or remove a parameter, ensure that the Remote Procedure File #8994 definition is also updated.
  1. ;
  1. REACTIVATECLIN(RETURNJSON,SDCLINICIEN,REACTIVATIONDATE,SDEAS) ;Entry point for SDES REACTIVATE CLINIC RPC
  1. ; Input:
  1. ; SDCLINICIEN [Required] - The CLINIC IEN from the HOSPITAL LOCATION FILE #44
  1. ; REACTIVATIONDATE [Required] - The Clinic reactivation date in ISO FORMAT. It must have been previously inactivated.
  1. ; SDEAS [optional] - The Enterprise Appointment Scheduling (EAS) Tracking Number associated to an appointment.
  1. ;
  1. ; Output:
  1. ; Successful Return:
  1. ; RETURNJSON = Returns the reactivated clinic IEN along with the successful message in JSON formatted string.
  1. ; Otherwise, JSON Errors will be returned for any invalid/missing parameters.
  1. ;
  1. N ERRORS,RETURNERROR,RETURN ;temp data storage for input validation error
  1. N ISREACTIVATED
  1. ;
  1. K RETURNJSON ;always kill the return json array
  1. ;
  1. D INITVAR
  1. D VALCLNIENREACTDT(.ERRORS,SDCLINICIEN,REACTIVATIONDATE)
  1. D VALIDATEEAS^SDESINPUTVALUTL(.ERRORS,SDEAS)
  1. I $O(ERRORS("Error",""))'="" D SETERRORRETURN(.ERRORS,.RETURNERROR,.RETURNJSON) Q
  1. D TURNON^DIAUTL(44,2506,"y") ;turn on auditing for REACTIVATE DATE field in the HOSPITAL LOCATION (#44) file
  1. S REACTIVATIONDATE=$$ISOTFM^SDAMUTDT(REACTIVATIONDATE,SDCLINICIEN)
  1. S ISREACTIVATED=$$REACTIVATE(.RETURN,SDCLINICIEN,REACTIVATIONDATE)
  1. I $O(ERRORS("Error",""))'="" D SETERRORRETURN(.ERRORS,.RETURNERROR,.RETURNJSON) Q ;error occured during filing
  1. I ISREACTIVATED D UPDATECLNRES(SDCLINICIEN,REACTIVATIONDATE)
  1. D BUILDJSON^SDESBUILDJSON(.RETURNJSON,.RETURN)
  1. Q
  1. ;
  1. INITVAR ;Initialize input parameter
  1. S SDCLINICIEN=$G(SDCLINICIEN)
  1. S SDEAS=$G(SDEAS)
  1. S REACTIVATIONDATE=$G(REACTIVATIONDATE)
  1. Q
  1. ;
  1. REACTIVATE(RETURN,SDCLINICIEN,REACTIVATIONDATE) ;Reactivate Clinic
  1. N SDERR,SDFDA,SDCLNNAME,ISFILED
  1. S ISFILED=0
  1. ;Only update the Reactivate Date field if the reacivation passed in is different
  1. I $$GET1^DIQ(44,SDCLINICIEN,2506)'=$P(REACTIVATIONDATE,".") D
  1. . S SDCLNNAME=$$GET1^DIQ(44,SDCLINICIEN,.01)
  1. . I $E(SDCLNNAME,1,2)="ZZ" S SDFDA(44,SDCLINICIEN_",",.01)=$E($$GET1^DIQ(44,SDCLINICIEN,.01),3,32)
  1. . S SDFDA(44,SDCLINICIEN_",",2506)=$P(REACTIVATIONDATE,".")
  1. . D FILE^DIE("","SDFDA","SDERR")
  1. . I $G(SDERR) S ISFILED=0 D ERRLOG^SDESJSON(.ERRORS,239) Q
  1. . S RETURN("Clinic","IEN")=SDCLINICIEN
  1. . S RETURN("Clinic","SuccessMessage")="Clinic is successfully reactivated effective "_$TR($$FMTE^XLFDT(REACTIVATIONDATE,"5DF")," ","0")
  1. . S ISFILED=1
  1. Q ISFILED
  1. ;
  1. UPDATECLNRES(SDCLINICIEN,REACTIVATIONDATE) ;Update REACTIVATED DATE/TIME and REACTIVATED BY USER in SDEC RESOURCE File #409.831
  1. N SDRESFDA,SDCLINRES
  1. S SDCLINRES=$$GETRES^SDECUTL(SDCLINICIEN,1)
  1. Q:SDCLINRES=""
  1. S SDRESFDA(409.831,SDCLINRES_",",.025)=$P(REACTIVATIONDATE,".")
  1. S SDRESFDA(409.831,SDCLINRES_",",.026)=DUZ
  1. D FILE^DIE("","SDRESFDA")
  1. Q
  1. ;
  1. VALCLNIENREACTDT(ERRORS,CLINICIEN,REACTIVATIONDATE) ;validate Clinic IEN and Reactivation Date (they need to go hand in hand together)
  1. N INACTDT,REACTDT
  1. I CLINICIEN="" D ERRLOG^SDESJSON(.ERRORS,18)
  1. I CLINICIEN'="" D
  1. . I '$D(^SC(CLINICIEN,0)) D ERRLOG^SDESJSON(.ERRORS,19) Q
  1. . I $P(^SC(CLINICIEN,0),"^",3)'="C" D ERRLOG^SDESJSON(.ERRORS,236) Q
  1. . I $S('$D(^SC(CLINICIEN,"I")):1,'$P(^SC(CLINICIEN,"I"),"^",1):1,1:0) D ERRLOG^SDESJSON(.ERRORS,235)
  1. ;
  1. I REACTIVATIONDATE="" D ERRLOG^SDESJSON(.ERRORS,240)
  1. I REACTIVATIONDATE'="",$$ISOTFM^SDAMUTDT(REACTIVATIONDATE,SDCLINICIEN)<1 D ERRLOG^SDESJSON(.ERRORS,238) Q
  1. I REACTIVATIONDATE'="" D
  1. . S REACTIVATIONDATE=$$ISOTFM^SDAMUTDT(REACTIVATIONDATE,SDCLINICIEN)
  1. . I REACTIVATIONDATE=-1 D ERRLOG^SDESJSON(.ERRORS,238) Q
  1. . Q:CLINICIEN=""
  1. . Q:'$D(^SC(CLINICIEN,0))
  1. . S INACTDT=$P($G(^SC(CLINICIEN,"I")),"^")
  1. . S REACTDT=$P($G(^SC(CLINICIEN,"I")),"^",2)
  1. . I $P(REACTIVATIONDATE,".")'>$G(INACTDT) D ERRLOG^SDESJSON(.ERRORS,237) Q
  1. . I $$GET1^DIQ(44,CLINICIEN,2506,"I")=$P(REACTIVATIONDATE,".") D Q
  1. . . S ERRORS("Error",1)="Clinic already reactivated effective "_$TR($$FMTE^XLFDT(REACTIVATIONDATE,"5DF")," ","0")
  1. . I $G(REACTDT)>DT D Q
  1. . . S ERRORS("Error",1)="Clinic is inactive as of "_$TR($$FMTE^XLFDT(INACTDT,"5DF")," ","0")
  1. . . S ERRORS("Error",1)=ERRORS("Error",1)_" and is already scheduled to be reactivated as of "_$TR($$FMTE^XLFDT(REACTDT,"5DF")," ","0")
  1. Q
  1. ;
  1. SETERRORRETURN(ERRORS,RETURNERROR,RETURNJSON) ;
  1. M RETURNERROR=ERRORS
  1. D SETEMPTYOBJECT(.RETURNERROR) ;set the return object into null if an error occur
  1. D BUILDJSON^SDESBUILDJSON(.RETURNJSON,.RETURNERROR)
  1. Q
  1. ;
  1. SETEMPTYOBJECT(RETURNERROR) ;set the return object into null if an error occur
  1. S RETURNERROR("Clinic","IEN")=""
  1. S RETURNERROR("Clinic","SuccessMessage")=""
  1. Q
  1. ;