Ignore:
Timestamp:
Dec 12, 2010, 11:11:57 AM (13 years ago)
Author:
Sam Habiel
Message:

Updated routines version to 1.42

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Scheduling/trunk/m/BSDX05.m

    r968 r1041  
    1 BSDX05  ; IHS/OIT/HMW - WINDOWS SCHEDULING RPCS ; 7/15/10 12:51pm
    2         ;;1.41;BSDX;;Sep 29, 2010
    3         ;
     1BSDX05   ; IHS/OIT/HMW - WINDOWS SCHEDULING RPCS ; 12/6/10 5:36pm
     2           ;;1.42;BSDX;;Dec 07, 2010
     3           ;
    44           ; Change Log:
    55           ; UJO/SMH - July 11 2010: pass FM Dates for Start and End rather than US Dates
    6         ;
    7 APBLKOV(BSDXY,BSDXSTART,BSDXEND,BSDXRES)         ;EP
    8         ;Called by BSDX APPT BLOCKS OVERLAP
    9            ; July 11 2010 - pass FM Dates for Start and End rather than US Dates
    10         ;(Duplicates old qryAppointmentBlocksOverlapB)
    11         ;BSDXRES is resource name
    12         ;
    13         ;Test lines:
    14         ;D APBLKOV^BSDX05(.RES,"11-8-2000","11-8-2004","WHITT") ZW RES
    15         ;BSDX APPT BLOCKS OVERLAP^11-8-2000^11-8-2004^WHITT
    16         ;S ^HW("BSDXD05")=BSDXSTART_U_BSDXEND_U_BSDXRES
    17         ;
    18         N BSDXERR,BSDXIEN,BSDXDEP,BSDXBS,BSDXI,BSDXNEND,BSDXNSTART,BSDXPEND,BSDXRESD,BSDXRESN,BSDXS,BSDXAD,BSDXNOD
    19         K ^BSDXTMP($J)
    20         S BSDXERR=""
    21         S BSDXY="^BSDXTMP("_$J_")"
    22         S ^BSDXTMP($J,0)="D00030START_TIME^D00030END_TIME"_$C(30)
    23         D
    24         . S BSDXBS=0
    25         . S BSDXEND=BSDXEND+.9999 ;Go to end of day
    26         . S BSDXRESN=BSDXRES
    27         . Q:BSDXRESN=""
    28         . Q:'$D(^BSDXRES("B",BSDXRESN))
    29         . S BSDXRESD=$O(^BSDXRES("B",BSDXRESN,0))
    30         . Q:'+BSDXRESD
    31         . Q:'$D(^BSDXAPPT("ARSRC",BSDXRESD))
    32         . D STRES(BSDXRESD,BSDXSTART,BSDXEND)
    33         . Q
    34         ;
    35         S BSDXI=$G(BSDXI)+1
    36         S ^BSDXTMP($J,BSDXI)=$C(31)
    37         Q
    38         ;
    39 STRES(BSDXRESD,BSDXSTART,BSDXEND)       ;
    40         ;$O THRU "ARSRC" XREF OF ^BSDXAPPT
    41         ;Start at the beginning of the day -- appts can't overlap days
    42         S BSDXS=$P(BSDXSTART,"."),BSDXS=BSDXS-.0001
    43         S BSDXI=0
    44         F  S BSDXS=$O(^BSDXAPPT("ARSRC",BSDXRESD,BSDXS)) Q:'+BSDXS  Q:BSDXS>BSDXEND  D
    45         . S BSDXAD=0 F  S BSDXAD=$O(^BSDXAPPT("ARSRC",BSDXRESD,BSDXS,BSDXAD)) Q:'+BSDXAD  D STCOMM(BSDXAD) ;BSDXAD Is the AppointmentID
    46         . Q
    47         Q
    48         ;
    49 STCOMM(BSDXAD)  ;
    50         S BSDXNEND=0,BSDXNSTART=0,BSDXPEND=0
    51         Q:'$D(^BSDXAPPT(BSDXAD,0))
    52         S BSDXNOD=^BSDXAPPT(BSDXAD,0)
    53         Q:$P(BSDXNOD,U,10)=1  ;NO-SHOW Flag
    54         Q:$P(BSDXNOD,U,12)]""  ;CANCELLED APPT
    55         Q:$P(BSDXNOD,U,13)="y"  ;WALKIN
    56         S BSDXNSTART=$P(BSDXNOD,U)
    57         S BSDXNEND=$P(BSDXNOD,U,2)
    58         I BSDXNEND'>BSDXSTART Q  ;End is less than start
    59         S Y=BSDXNSTART X ^DD("DD") S BSDXNSTART=$TR(Y,"@"," ")
    60         S Y=BSDXNEND X ^DD("DD") S BSDXNEND=$TR(Y,"@"," ")
    61         S BSDXI=BSDXI+1
    62         S ^BSDXTMP($J,BSDXI)=BSDXNSTART_U_BSDXNEND_$C(30)
    63         Q
     6           ; UJO/SMH - Dec 8 2010: In STCOMM, the logic was that an appointment
     7           ;  that was a walk-in didn't count towards slot calculations.
     8           ;  I checked PIMS, and Walk-ins do indeed count towards slot calculations.
     9           ;  Therefore, I commented this line out:
     10           ;    ;Q:$P(BSDXNOD,U,13)="y"  ;WALKIN
     11           ;
     12APBLKOV(BSDXY,BSDXSTART,BSDXEND,BSDXRES)            ;EP
     13           ;Called by BSDX APPT BLOCKS OVERLAP
     14              ; July 11 2010 - pass FM Dates for Start and End rather than US Dates
     15           ;(Duplicates old qryAppointmentBlocksOverlapB)
     16           ;BSDXRES is resource name
     17           ;
     18           ;Test lines:
     19           ;D APBLKOV^BSDX05(.RES,"11-8-2000","11-8-2004","WHITT") ZW RES
     20           ;BSDX APPT BLOCKS OVERLAP^11-8-2000^11-8-2004^WHITT
     21           ;S ^HW("BSDXD05")=BSDXSTART_U_BSDXEND_U_BSDXRES
     22           ;
     23           N BSDXERR,BSDXIEN,BSDXDEP,BSDXBS,BSDXI,BSDXNEND,BSDXNSTART,BSDXPEND,BSDXRESD,BSDXRESN,BSDXS,BSDXAD,BSDXNOD
     24           K ^BSDXTMP($J)
     25           S BSDXERR=""
     26           S BSDXY="^BSDXTMP("_$J_")"
     27           S ^BSDXTMP($J,0)="D00030START_TIME^D00030END_TIME"_$C(30)
     28           D
     29           . S BSDXBS=0
     30           . S BSDXEND=BSDXEND+.9999 ;Go to end of day
     31           . S BSDXRESN=BSDXRES
     32           . Q:BSDXRESN=""
     33           . Q:'$D(^BSDXRES("B",BSDXRESN))
     34           . S BSDXRESD=$O(^BSDXRES("B",BSDXRESN,0))
     35           . Q:'+BSDXRESD
     36           . Q:'$D(^BSDXAPPT("ARSRC",BSDXRESD))
     37           . D STRES(BSDXRESD,BSDXSTART,BSDXEND)
     38           . Q
     39           ;
     40           S BSDXI=$G(BSDXI)+1
     41           S ^BSDXTMP($J,BSDXI)=$C(31)
     42           Q
     43           ;
     44STRES(BSDXRESD,BSDXSTART,BSDXEND)         ;
     45           ;$O THRU "ARSRC" XREF OF ^BSDXAPPT
     46           ;Start at the beginning of the day -- appts can't overlap days
     47           S BSDXS=$P(BSDXSTART,"."),BSDXS=BSDXS-.0001
     48           S BSDXI=0
     49           F  S BSDXS=$O(^BSDXAPPT("ARSRC",BSDXRESD,BSDXS)) Q:'+BSDXS  Q:BSDXS>BSDXEND  D
     50           . S BSDXAD=0 F  S BSDXAD=$O(^BSDXAPPT("ARSRC",BSDXRESD,BSDXS,BSDXAD)) Q:'+BSDXAD  D STCOMM(BSDXAD) ;BSDXAD Is the AppointmentID
     51           . Q
     52           Q
     53           ;
     54STCOMM(BSDXAD)   ;
     55           S BSDXNEND=0,BSDXNSTART=0,BSDXPEND=0
     56           Q:'$D(^BSDXAPPT(BSDXAD,0))
     57           S BSDXNOD=^BSDXAPPT(BSDXAD,0)
     58           Q:$P(BSDXNOD,U,10)=1  ;NO-SHOW Flag
     59           Q:$P(BSDXNOD,U,12)]""  ;CANCELLED APPT
     60           ; Q:$P(BSDXNOD,U,13)="y"  ;WALKIN -- new in V 1.42. See top comments.
     61           S BSDXNSTART=$P(BSDXNOD,U)
     62           S BSDXNEND=$P(BSDXNOD,U,2)
     63           I BSDXNEND'>BSDXSTART Q  ;End is less than start
     64           S Y=BSDXNSTART X ^DD("DD") S BSDXNSTART=$TR(Y,"@"," ")
     65           S Y=BSDXNEND X ^DD("DD") S BSDXNEND=$TR(Y,"@"," ")
     66           S BSDXI=BSDXI+1
     67           S ^BSDXTMP($J,BSDXI)=BSDXNSTART_U_BSDXNEND_$C(30)
     68           Q
Note: See TracChangeset for help on using the changeset viewer.