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

SDEC33.m

Go to the documentation of this file.
  1. SDEC33 ;ALB/SAT,WTC - VISTA SCHEDULING RPCS ;Feb 12, 2020@15:22
  1. ;;5.3;Scheduling;**627,694**;Aug 13, 1993;Build 61
  1. ;
  1. Q
  1. ;
  1. REBKNEXT(SDECY,SDECDATE,SDECRES,SDECTPID) ; find the next ACCESS BLOCK in resource SDECRES after SDECSTART
  1. ;REBKNEXT(SDECY,SDECDATE,SDECRES,SDECTPID) external parameter tag is in SDEC
  1. ;SDECDATE - Date in external form
  1. ;SDECRES - Resource Name from the NAME field of the SDEC RESOURCE file
  1. ;SDECTPID - Access Type Id - Pointer to the SDEC ACCESS TYPE file
  1. ;Returns 1 in ERRORID and date in NEXTBLOCK if a block was found or NULL in NEXTBLOCK of no date found
  1. ;Otherwise, returns 0 and error message in ERRORTEXT
  1. ;If SDECTPID = 0 then any access type match
  1. ;
  1. N SDAB,SDECI,SDECIENS,SDI,%DT,SDECMSG,X,Y,SDECRESD,SDECFND,SDECIEN,SDECNOD,SDECATID
  1. S SDAB="^TMP("_$J_",""SDEC"",""BLKS"")"
  1. K @SDAB
  1. S SDECY="^TMP(""SDEC"","_$J_")"
  1. K @SDECY
  1. S SDECI=0
  1. S ^TMP("SDEC",$J,SDECI)="I00020ERRORID^D00010NEXTBLOCK^T00030ERRORTEXT"_$C(30)
  1. ;
  1. I SDECRES="" D ERR2("","SDEC REBOOK NEXT BLOCK: Invalid resource name") Q
  1. I '$D(^SDEC(409.831,"B",SDECRES)) D ERR2(SDECRES,"SDEC REBOOK NEXT BLOCK: Invalid resource name") Q
  1. S SDECRESD=$O(^SDEC(409.831,"B",SDECRES,0))
  1. I '+SDECRESD D ERR2(SDECRES,"SDEC REBOOK NEXT BLOCK: Invalid resource name") Q
  1. S X=SDECDATE,%DT="XT" D ^%DT
  1. I Y=-1 D ERR2(1,"SDEC REBOOK NEXT BLOCK: Invalid datetime") Q
  1. S SDECDATE=$P(Y,".")
  1. ;
  1. S SDECFND=0
  1. D GETSLOTS^SDEC04(SDAB,SDECRESD,SDECDATE,$$FMADD^XLFDT(SDECDATE,10))
  1. S SDI=0 F S SDI=$O(@SDAB@(SDI)) Q:SDI'>0 D
  1. .S SDECNOD=@SDAB@(SDI)
  1. .Q:+$P(SDECNOD,U,4)=0 ;Slots
  1. .S SDECATID=$P(SDECNOD,U,5)
  1. .I SDECTPID=0!(SDECATID=SDECTPID) S SDECFND=$P(SDECNOD,U,2) Q
  1. ;
  1. I SDECFND=0 S SDECFND=""
  1. ;
  1. ; Change date/time conversion so midnight is handled properly. wtc 694 5/17/18
  1. ;
  1. E S SDECFND=$$FMTONET^SDECDATE(SDECFND,"Y") ;
  1. ;E S Y=SDECFND X ^DD("DD") S SDECFND=Y
  1. ;S SDECFND=$TR(SDECFND,"@"," ")
  1. S SDECI=SDECI+1
  1. S ^TMP("SDEC",$J,SDECI)="1^"_SDECFND_"^"_$C(30)_$C(31)
  1. Q
  1. ;
  1. SETRBOOK(SDECY,SDECAPPT,SDECDATE) ;Sets rebook date into appointment
  1. ;SETRBOOK(SDECY,SDECAPPT,SDECDATE) external parameter tag is in SDEC
  1. ;SDECAPPT - Appointment ID
  1. ;SDECDATE - Rebook Datetime in external format
  1. ;Called by SDEC REBOOK SET
  1. ;
  1. ;ErrorID:
  1. ; 0 if a problem. Message in ERRORTEXT
  1. ; 1 if OK
  1. ;
  1. N SDECFDA,SDECI,SDECIENS,%DT,SDECMSG,X,Y
  1. S SDECY="^TMP(""SDEC"","_$J_")"
  1. K @SDECY
  1. S SDECI=0
  1. S ^TMP("SDEC",$J,SDECI)="I00020ERRORID^T00030ERRORTEXT"_$C(30)
  1. ;
  1. I '+SDECAPPT
  1. I '$D(^SDEC(409.84,SDECAPPT,0)) D ERR(1,"SDEC REBOOK SET: Invalid appointment ID") Q
  1. ;
  1. ; Change date/time conversion so midnight is handled properly. wtc 694 5/17/18
  1. ;
  1. S SDECDATE=$$NETTOFM^SDECDATE(SDECDATE,"Y","N") I SDECDATE=-1 D ERR(1,"SDEC REBOOK SET: Invalid rebook datetime") Q
  1. ;S X=SDECDATE,%DT="XT" D ^%DT
  1. ;I Y=-1 D ERR(1,"SDEC REBOOK SET: Invalid rebook datetime") Q
  1. ;S SDECDATE=Y
  1. S SDECIENS=SDECAPPT_","
  1. S SDECFDA(409.84,SDECIENS,.11)=SDECDATE
  1. ;
  1. K SDECMSG
  1. D FILE^DIE("","SDECFDA","SDECMSG")
  1. S SDECI=SDECI+1
  1. S ^TMP("SDEC",$J,SDECI)="1^"_$C(31)
  1. ;
  1. Q
  1. ;
  1. ERR(SDECERID,ERRTXT) ;Error processing
  1. S:'+$G(SDECI) SDECI=999999
  1. S SDECI=SDECI+1
  1. S ^TMP("SDEC",$J,SDECI)=SDECERID_"^"_ERRTXT_$C(30)
  1. S SDECI=SDECI+1
  1. S ^TMP("SDEC",$J,SDECI)=$C(31)
  1. Q
  1. ;
  1. ERROR ;
  1. D ^%ZTER
  1. I '+$G(SDECI) N SDECI S SDECI=999999
  1. S SDECI=SDECI+1
  1. D ERR(0,"SDEC33 Error")
  1. Q
  1. ;
  1. ERR2(SDECERID,ERRTXT) ;Error processing
  1. S:'+$G(SDECI) SDECI=999999
  1. S SDECI=SDECI+1
  1. S ^TMP("SDEC",$J,SDECI)=SDECERID_"^^"_ERRTXT_$C(30)
  1. S SDECI=SDECI+1
  1. S ^TMP("SDEC",$J,SDECI)=$C(31)
  1. Q
  1. ;
  1. ERROR2 ;
  1. D ^%ZTER
  1. I '+$G(SDECI) N SDECI S SDECI=999999
  1. S SDECI=SDECI+1
  1. D ERR2(0,"SDEC33 Error")
  1. Q