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

BSDX24.m

Go to the documentation of this file.
  1. BSDX24 ; IHS/OIT/HMW/MSC/SAT - WINDOWS SCHEDULING RPCS ;
  1. ;;3.0;IHS WINDOWS SCHEDULING;;DEC 09, 2010
  1. ;
  1. ;
  1. Q
  1. CRCONTXT(RESULT,OPTION) ;EP
  1. ;Entry point for debugging XWBSEC
  1. ;
  1. ;D DEBUG^%Serenji("CRCONTXT^XWBSEC(.RESULT,OPTION)")
  1. ;;H .5
  1. ;;D CRCONTXT^XWBSEC(.RESULT,OPTION)
  1. ;;S BSDX="^BSDXTMP($J,"
  1. ;;S ^BSDXTMP($J,0)=RESULT
  1. ;;S RESULT=1
  1. Q
  1. TEST0(BSDX) ;EP Delete user from 200
  1. S DIK="^VA(200,"
  1. S DA=BSDX
  1. D ^DIK
  1. ;
  1. Q
  1. KILLM ;EP Delete BMXMENU entry
  1. S DIK="^DIC(19,"
  1. S DA=$O(^DIC(19,"B","BMXMENU",0))
  1. Q:'+DA
  1. D ^DIK
  1. Q
  1. ;
  1. TEST1 ;EP Adding an entry to 200
  1. ;
  1. S BSDXFDA(200,"+1,",.01)="BMXNET,APPLICATION"
  1. K BSDXIEN,BSDXMSG
  1. S DIC(0)=""
  1. D UPDATE^DIE("","BSDXFDA","BSDXIEN","BSDXMSG")
  1. ;
  1. Q
  1. TEST2 ;EP
  1. ;How to change the ACCESS CODE, VERIFY CODE, DATE VERIFY CODE LAST CHANGED field
  1. ;ACCESS CODE BSDXXX1^1_(a>yr}:3x3ja9\8vbH
  1. ;VERIFY CODE BSDXXX2^$;HOSs|:3w25lLD}Be=
  1. N BSDXFDA
  1. S BSDXFDA(200,"36,",2)="1_(a>yr}:3x3ja9\8vbH"
  1. S BSDXFDA(200,"36,",11)="$;HOSs|:3w25lLD}Be="
  1. S BSDXFDA(200,"36,",11.2)="88888,88888"
  1. S BSDXFDA(200,"36,",201)="BMXRPC"
  1. D FILE^DIE("","BSDXFDA","BSDXMSG")
  1. Q
  1. ;
  1. ;
  1. SEARCHD(BSDXY,BSDXRES,BSDXSTRT,BSDXEND,BSDXTYPES,BSDXAMPM,BSDXWKDY) ;EP
  1. ;Entry point for debugging
  1. ;
  1. ;D DEBUG^%Serenji("SEARCH^BSDX24(.RES,""ROGERS,BUCK|FUNAKOSHI,GICHIN"","""","""","""","""","""")")
  1. ;D DEBUG^%Serenji("SEARCH^BSDX24(.BSDXY,BSDXRES,BSDXSTRT,BSDXEND,BSDXTYPES,BSDXAMPM,BSDXWKDY)")
  1. Q
  1. ;
  1. ;Searches availability database for availability blocks between
  1. ;BSDXSTRT and BSDXEND for each of the resources in BSDXRES.
  1. ;The av blocks must be one of the types in BSDXTYPES, must be
  1. ;AM or PM depending on value in BSDXAMPM and
  1. ;must be on one of the weekdays listed in BSDXWKDY.
  1. ;
  1. ;Return recordset containing the start times of availability blocks
  1. ;meeting the search criteria.
  1. ;
  1. ;Variables:
  1. ;BSDXRES |-Delimited list of resource names
  1. ;BSDXSTRT FM-formatted beginning date of search
  1. ;BSDXEND FM-Formatted ending date of search
  1. ;BSDXTYPES |-Delimited list of access type IENs
  1. ;BSDXAMPM "AM" for am-only, "PM" for pm-only, "BOTH" for both
  1. ;BSDXWKDY "" if any weekday, else |-delimited list of weekdays
  1. ;
  1. ;NOTE: If BSDXEND="" Then:
  1. ; either ONE record is returned matching the first available block
  1. ; -or- NO record is returned indicating no available block exists
  1. ;
  1. ;Called by BSDX SEARCH AVAILABILITY
  1. ;Test Line:
  1. ;D SEARCH^BSDX24(.RES,"ROGERS,BUCK|FUNAKOSHI,GICHIN","","","","","") ZW RES
  1. ;
  1. ;
  1. S X=BSDXSTRT,%DT="X" D ^%DT S BSDXSTRT=$P(Y,".")
  1. S:+BSDXSTRT<0 BSDXSTRT=DT
  1. S X=BSDXEND,%DT="X" D ^%DT S BSDXEND=$P(Y,".")
  1. S:+BSDXEND<0 BSDXEND=9990101
  1. S BSDXEND=BSDXEND_".99"
  1. N BSDXRESN,BSDXRESD,BSDXDATE,BSDXI,BSDXABD,BSDXNOD,BSDXATD,BSDXATN
  1. N BSDXTYPE
  1. ;
  1. ;Set up access types array
  1. F BSDX=1:1:$L(BSDXTYPES,"|") D
  1. . S BSDXATD=$P(BSDXTYPES,"|",BSDX)
  1. . S:+BSDXATD BSDXTYPE(BSDXTYPD)=""
  1. ;
  1. S BSDXI=0
  1. S BSDXY="^BSDXTMP("_$J_")"
  1. S ^BSDXTMP($J,0)="T00030RESOURCENAME^D00030DATE^T00030ACCESSTYPE^T00030COMMENT"_$C(30)
  1. F BSDX=1:1:$L(BSDXRES,"|") S BSDXRESN=$P(BSDXRES,"|",BSDX) D
  1. . Q:'$D(^BSDXRES("B",BSDXRESN))
  1. . S BSDXRESD=$O(^BSDXRES("B",BSDXRESN,0))
  1. . Q:'+BSDXRESD
  1. . Q:'$D(^BSDXRES(BSDXRESD,0))
  1. . Q:'$D(^BSDXAB("ARSCT",BSDXRESD))
  1. . S BSDXDATE=$O(^BSDXAB("ARSCT",BSDXRESD,BSDXSTRT))
  1. . Q:BSDXDATE=""
  1. . Q:BSDXDATE>BSDXEND
  1. . ;TODO: Screen for AMPM
  1. . ;TODO: Screen for Weekday
  1. . ;
  1. . S BSDXI=BSDXI+1
  1. . S BSDXABD=$O(^BSDXAB("ARSCT",BSDXRESD,BSDXDATE,0))
  1. . S BSDXNOD=$G(^BSDXAB(BSDXABD,0))
  1. . Q:BSDXNOD=""
  1. . S Y=$P(BSDXDATE,".")
  1. . D DD^%DT
  1. . S BSDXATD=$P(BSDXNOD,U,5) ;ACCESS TYPE POINTER
  1. . S BSDXATD=$G(^BSDXTYPE(+BSDXATD,0))
  1. . S BSDXATN=$P(BSDXATD,U)
  1. . I +BSDXATD,BSDXTYPES]"" Q:'$D(BSDXTYPES(BSDXATD))
  1. . ;TODO: Screen for TYPE ----DONE!
  1. . ;TODO: Comment
  1. . S ^BSDXTMP($J,BSDXI)=BSDXRESN_U_Y_U_BSDXATN_U_$C(30)
  1. S BSDXI=BSDXI+1
  1. S ^BSDXTMP($J,BSDXI)=$C(31)
  1. Q