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/BSDX08.m

    r1007 r1041  
    1 BSDX08  ; IHS/OIT/HMW - WINDOWS SCHEDULING RPCS ; 11/16/10 7:12am
    2         ;;1.42;BSDX;;Sep 29, 2010
    3     ;
    4     ; Original by HMW. New Written by Sam Habiel. Licensed under LGPL.
    5     ;
    6     ; Change History
    7     ; 3101022 UJO/SMH v1.42
    8     ;  - Transaction now restartable. Thanks to
    9     ;   --> Zach Gonzalez and Rick Marshall for fix.
    10     ;  - Extra TROLLBACK in Lock Statement when lock fails.
    11     ;   --> Removed--Rollback is already in ERR tag.
    12     ;  - Added new statements to old SD code in AVUPDT to obviate
    13     ;   --> need to restore variables in transaction
    14     ;  - Refactored this chunk of code. Don't really know whether it
    15     ;   --> worked in the first place. Waiting for bug report to know.
    16     ;  - Refactored all of APPDEL.
    17     ;
    18     ; Error Reference:
    19     ;  -1~BSDX08: Appt record is locked. Please contact technical support.
    20     ;  -2~BSDX08: Invalid Appointment ID
     1BSDX08  ; IHS/OIT/HMW - WINDOWS SCHEDULING RPCS ; 12/6/10 12:35pm
     2        ;;1.42;BSDX;;Dec 07, 2010
     3           ;
     4           ; Original by HMW. New Written by Sam Habiel. Licensed under LGPL.
     5           ;
     6           ; Change History
     7           ; 3101022 UJO/SMH v1.42
     8           ;  - Transaction now restartable. Thanks to
     9           ;   --> Zach Gonzalez and Rick Marshall for fix.
     10           ;  - Extra TROLLBACK in Lock Statement when lock fails.
     11           ;   --> Removed--Rollback is already in ERR tag.
     12           ;  - Added new statements to old SD code in AVUPDT to obviate
     13           ;   --> need to restore variables in transaction
     14           ;  - Refactored this chunk of code. Don't really know whether it
     15           ;   --> worked in the first place. Waiting for bug report to know.
     16           ;  - Refactored all of APPDEL.
     17           ;
     18           ; Error Reference:
     19           ;  -1~BSDX08: Appt record is locked. Please contact technical support.
     20           ;  -2~BSDX08: Invalid Appointment ID
    2121        ;  -3~BSDX08: Invalid Appointment ID
    22     ;  -4~BSDX08: Cancelled appointment does not have a Resouce ID 
    23     ;  -5~BSDX08: Resouce ID does not exist in BSDX RESOURCE
    24     ;  -6~BSDX08: Invalid Hosp Location stored in Database
    25     ;  -7~BSDX08: Patient does not have an appointment in PIMS Clinic
    26     ;  -8^BSDX08: Unable to find associated PIMS appointment for this patient
    27     ;  -9^BSDX08: BSDXAPI returned an error: (error)
    28     ;  -100~BSDX08 Error: (Mumps Error)
     22           ;  -4~BSDX08: Cancelled appointment does not have a Resouce ID 
     23           ;  -5~BSDX08: Resouce ID does not exist in BSDX RESOURCE
     24           ;  -6~BSDX08: Invalid Hosp Location stored in Database
     25           ;  -7~BSDX08: Patient does not have an appointment in PIMS Clinic
     26           ;  -8^BSDX08: Unable to find associated PIMS appointment for this patient
     27           ;  -9^BSDX08: BSDXAPI returned an error: (error)
     28           ;  -100~BSDX08 Error: (Mumps Error)
    2929        ;
    3030APPDELD(BSDXY,BSDXAPTID,BSDXTYP,BSDXCR,BSDXNOT) ;EP
     
    3333        Q
    3434        ;
    35 UT ; Unit Tests
    36     ; Test 1: Make normal appointment and cancel it. See if every thing works
    37     N ZZZ
    38     D APPADD^BSDX07(.ZZZ,3110123.2,3110123.3,4,"Dr Office",10,"Sam's Note",1)
    39     S APPID=+$P(^BSDXTMP($J,1),U)
    40     D APPDEL^BSDX08(.ZZZ,APPID,"PC",1,"Sam's Cancel Note")
    41     I $P(^BSDXAPPT(APPID,0),U,12)'>0 W "Error in Cancellation-1"
    42     I $O(^SC(2,"S",3110123.2,1,0))]"" W "Error in Cancellation-2"
    43     I $P(^DPT(4,"S",3110123.2,0),U,2)'="PC" W "Error in Cancellation-3"
    44     I ^DPT(4,"S",3110123.2,"R")'="Sam's Cancel Note" W "Error in Cancellation-4"
    45     ;
    46     ; Test 2: Check for -1
    47     ; Make appt
    48     D APPADD^BSDX07(.ZZZ,3110125.2,3110125.3,4,"Dr Office",10,"Sam's Note",1)
    49     ; Lock the node in another job
    50     S APPID=+$P(^BSDXTMP($J,1),U)
    51     ; W "Lock ^BSDXAPPT("_APPID_") in another session. You have 10 seconds." H 10
    52     D APPDEL^BSDX08(.ZZZ,APPID,"PC",1,"Sam's Cancel Note")
    53     ;
    54     ; Test 3: Check for -100
    55     S bsdxdie=1
    56     D APPADD^BSDX07(.ZZZ,3110126.2,3110126.3,4,"Dr Office",10,"Sam's Note",1)
    57     S APPID=+$P(^BSDXTMP($J,1),U)
    58     D APPDEL^BSDX08(.ZZZ,APPID,"PC",1,"Reasons")
    59     I $P(^BSDXTMP($J,1),"~")'=-100 W "Error in -100",!
    60     K bsdxdie
    61     ;
    62     ; Test 4: Restartable transaction
    63     S bsdxrestart=1
    64     D APPADD^BSDX07(.ZZZ,3110128.2,3110128.3,4,"Dr Office",10,"Sam's Note",1)
    65     S APPID=+$P(^BSDXTMP($J,1),U)
    66     D APPDEL^BSDX08(.ZZZ,APPID,"PC",1,"Reasons")
    67     I $P(^DPT(4,"S",3110128.2,0),U,2)'="PC" W "Error in Restartable Transaction",!
    68     ;
    69     ; Test 5: for invalid Appointment ID (-2 and -3)
    70     D APPDEL^BSDX08(.ZZZ,0,"PC",1,"Reasons")
    71     I $P(^BSDXTMP($J,1),"~")'=-2 W "Error in -2",!
    72     D APPDEL^BSDX08(.ZZZ,999999,"PC",1,"Reasons")
    73     I $P(^BSDXTMP($J,1),"~")'=-3 W "Error in -3",!
    74     QUIT
    75     ; Lock the node in another job for testing.
    76 UTL(APPID) L +^BSDXAPPT(APPID) HANG 10 QUIT
    77     ;
     35UT      ; Unit Tests
     36           ; Test 1: Make normal appointment and cancel it. See if every thing works
     37           N ZZZ
     38           D APPADD^BSDX07(.ZZZ,3110123.2,3110123.3,4,"Dr Office",10,"Sam's Note",1)
     39           S APPID=+$P(^BSDXTMP($J,1),U)
     40           D APPDEL^BSDX08(.ZZZ,APPID,"PC",1,"Sam's Cancel Note")
     41           I $P(^BSDXAPPT(APPID,0),U,12)'>0 W "Error in Cancellation-1"
     42           I $O(^SC(2,"S",3110123.2,1,0))]"" W "Error in Cancellation-2"
     43           I $P(^DPT(4,"S",3110123.2,0),U,2)'="PC" W "Error in Cancellation-3"
     44           I ^DPT(4,"S",3110123.2,"R")'="Sam's Cancel Note" W "Error in Cancellation-4"
     45           ;
     46           ; Test 2: Check for -1
     47           ; Make appt
     48           D APPADD^BSDX07(.ZZZ,3110125.2,3110125.3,4,"Dr Office",10,"Sam's Note",1)
     49           ; Lock the node in another job
     50           S APPID=+$P(^BSDXTMP($J,1),U)
     51           ; W "Lock ^BSDXAPPT("_APPID_") in another session. You have 10 seconds." H 10
     52           D APPDEL^BSDX08(.ZZZ,APPID,"PC",1,"Sam's Cancel Note")
     53           ;
     54           ; Test 3: Check for -100
     55           S bsdxdie=1
     56           D APPADD^BSDX07(.ZZZ,3110126.2,3110126.3,4,"Dr Office",10,"Sam's Note",1)
     57           S APPID=+$P(^BSDXTMP($J,1),U)
     58           D APPDEL^BSDX08(.ZZZ,APPID,"PC",1,"Reasons")
     59           I $P(^BSDXTMP($J,1),"~")'=-100 W "Error in -100",!
     60           K bsdxdie
     61           ;
     62           ; Test 4: Restartable transaction
     63           S bsdxrestart=1
     64           D APPADD^BSDX07(.ZZZ,3110128.2,3110128.3,4,"Dr Office",10,"Sam's Note",1)
     65           S APPID=+$P(^BSDXTMP($J,1),U)
     66           D APPDEL^BSDX08(.ZZZ,APPID,"PC",1,"Reasons")
     67           I $P(^DPT(4,"S",3110128.2,0),U,2)'="PC" W "Error in Restartable Transaction",!
     68           ;
     69           ; Test 5: for invalid Appointment ID (-2 and -3)
     70           D APPDEL^BSDX08(.ZZZ,0,"PC",1,"Reasons")
     71           I $P(^BSDXTMP($J,1),"~")'=-2 W "Error in -2",!
     72           D APPDEL^BSDX08(.ZZZ,999999,"PC",1,"Reasons")
     73           I $P(^BSDXTMP($J,1),"~")'=-3 W "Error in -3",!
     74           QUIT
     75           ; Lock the node in another job for testing.
     76UTL(APPID)      L +^BSDXAPPT(APPID) HANG 10 QUIT
     77           ;
    7878APPDEL(BSDXY,BSDXAPTID,BSDXTYP,BSDXCR,BSDXNOT)         ;EP
    7979        ;Called by RPC: BSDX CANCEL APPOINTMENT
    8080        ;Cancels existing appointment in BSDX APPOINTMENT and 44/2 subfiles
    81     ;Input Parameters:
     81           ;Input Parameters:
    8282        ; - BSDXAPTID is entry number in BSDX APPOINTMENT file
    8383        ; - BSDXTYP is C for clinic-cancelled and PC for patient cancelled
     
    8585        ; - BSDXNOT is user note
    8686        ;
    87     ; Returns error code in recordset field ERRORID. Zero is success.
    88     ; Returns Global Array. Must use this type in RPC.
    89         ;
    90     ; Return Array: set Return and clear array
     87           ; Returns error code in recordset field ERRORID. Zero is success.
     88           ; Returns Global Array. Must use this type in RPC.
     89        ;
     90           ; Return Array: set Return and clear array
    9191        S BSDXY=$NA(^BSDXTMP($J))
    92     K ^BSDXTMP($J)
    93         ;
    94     ; Set min DUZ vars if they don't exist
    95     D ^XBKVAR
    96     ;
    97     ; $ET
    98     N $ET S $ET="G ETRAP^BSDX08"
    99         ;
    100     ; Counter
     92           K ^BSDXTMP($J)
     93        ;
     94           ; Set min DUZ vars if they don't exist
     95           D ^XBKVAR
     96           ;
     97           ; $ET
     98           N $ET S $ET="G ETRAP^BSDX08"
     99        ;
     100           ; Counter
    101101        N BSDXI S BSDXI=0
    102     ; Header Node
    103         S ^BSDXTMP($J,BSDXI)="T00030ERRORID"_$C(30)
    104         ;
    105     ; Lock BSDX node, only to synchronize access to the globals.
    106     ; It's not expected that the error will ever happen as no filing
    107     ; is supposed to take 5 seconds.
    108     L +^BSDXAPPT(BSDXAPTID):5 I '$T D ERR(BSDXI,"-1~BSDX08: Appt record is locked. Please contact technical support.") Q
    109         ;
    110     ;Restartable Transaction; restore paramters when starting.
    111     ; (Params restored are what's passed here + BSDXI)
    112     TSTART (BSDXY,BSDXAPTID,BSDXTYP,BSDXCR,BSDXNOT,BSDXI):T="BSDX CANCEL APPOINTEMENT^BSDX08"
    113         ;
    114     ; Turn off SDAM APPT PROTOCOL BSDX Entries
     102           ; Header Node
     103        S ^BSDXTMP($J,BSDXI)="T00100ERRORID"_$C(30)
     104        ;
     105           ; Lock BSDX node, only to synchronize access to the globals.
     106           ; It's not expected that the error will ever happen as no filing
     107           ; is supposed to take 5 seconds.
     108           L +^BSDXAPPT(BSDXAPTID):5 I '$T D ERR(BSDXI,"-1~BSDX08: Appt record is locked. Please contact technical support.") Q
     109        ;
     110           ;Restartable Transaction; restore paramters when starting.
     111           ; (Params restored are what's passed here + BSDXI)
     112           TSTART (BSDXY,BSDXAPTID,BSDXTYP,BSDXCR,BSDXNOT,BSDXI):T="BSDX CANCEL APPOINTEMENT^BSDX08"
     113        ;
     114           ; Turn off SDAM APPT PROTOCOL BSDX Entries
    115115        N BSDXNOEV
    116116        S BSDXNOEV=1 ;Don't execute BSDX CANCEL APPOINTMENT protocol
    117117        ;
    118     ;;;test for error inside transaction. See if %ZTER works
    119     I $G(bsdxdie) S X=1/0
    120     ;;;test
    121     ;;;test for TRESTART
    122     I $G(bsdxrestart) K bsdxrestart TRESTART
    123     ;;;test
    124     ;
    125     ; Check appointment ID and whether it exists
    126     I '+BSDXAPTID D ERR(BSDXI,"-2~BSDX08: Invalid Appointment ID") Q
     118           ;;;test for error inside transaction. See if %ZTER works
     119           I $G(bsdxdie) S X=1/0
     120           ;;;test
     121           ;;;test for TRESTART
     122           I $G(bsdxrestart) K bsdxrestart TRESTART
     123           ;;;test
     124           ;
     125           ; Check appointment ID and whether it exists
     126           I '+BSDXAPTID D ERR(BSDXI,"-2~BSDX08: Invalid Appointment ID") Q
    127127        I '$D(^BSDXAPPT(BSDXAPTID,0)) D ERR(BSDXI,"-3~BSDX08: Invalid Appointment ID") Q
    128128        ;
    129129        ; Start Processing:
    130     ; First, add cancellation date to appt entry in BSDX APPOINTMENT
     130           ; First, add cancellation date to appt entry in BSDX APPOINTMENT
    131131        N BSDXNOD S BSDXNOD=^BSDXAPPT(BSDXAPTID,0) ; BSDX Appt Node
    132132        N BSDXPATID S BSDXPATID=$P(BSDXNOD,U,5) ; Patient ID
     
    134134        D BSDXCAN(BSDXAPTID)  ; Add a cancellation date in BSDX APPOINTMENT
    135135        ;
    136     ; Second, cancel appt in "S" nodes in file 2 and 44, then update Legacy PIMS Availability
     136           ; Second, cancel appt in "S" nodes in file 2 and 44, then update Legacy PIMS Availability
    137137        N BSDXSC1 S BSDXSC1=$P(BSDXNOD,U,7) ;RESOURCEID
    138     ; If the resouce id doesn't exist...
     138           ; If the resouce id doesn't exist...
    139139        I BSDXSC1="" D ERR(BSDXI,"-4~BSDX08: Cancelled appointment does not have a Resouce ID") QUIT
    140     I '$D(^BSDXRES(BSDXSC1,0)) D ERR(BSDXI,"-5~BSDX08: Resouce ID does not exist in BSDX RESOURCE") QUIT
     140           I '$D(^BSDXRES(BSDXSC1,0)) D ERR(BSDXI,"-5~BSDX08: Resouce ID does not exist in BSDX RESOURCE") QUIT
    141141        ; Get zero node of resouce
    142     S BSDXNOD=^BSDXRES(BSDXSC1,0)
    143     ; Get Hosp location
     142           S BSDXNOD=^BSDXRES(BSDXSC1,0)
     143           ; Get Hosp location
    144144        N BSDXLOC S BSDXLOC=$P(BSDXNOD,U,4)
    145     ; Error indicator for Hosp Location filing for getting out of routine
    146     N BSDXERR S BSDXERR=0
    147     ; Only file in 2/44 if there is an associated hospital location
    148     I BSDXLOC D  QUIT:BSDXERR 
     145           ; Error indicator for Hosp Location filing for getting out of routine
     146           N BSDXERR S BSDXERR=0
     147           ; Only file in 2/44 if there is an associated hospital location
     148           I BSDXLOC D  QUIT:BSDXERR 
    149149        . I '$D(^SC(BSDXLOC,0)) S BSDXERR=1 D ERR(BSDXI,"-6~BSDX08: Invalid Hosp Location stored in Database") QUIT
    150     . ; Get the IEN of the appointment in the "S" node of ^SC
    151     . N BSDXSCIEN
     150           . ; Get the IEN of the appointment in the "S" node of ^SC
     151           . N BSDXSCIEN
    152152        . S BSDXSCIEN=$$SCIEN^BSDXAPI(BSDXPATID,BSDXLOC,BSDXSTART)
    153     . I BSDXSCIEN="" S BSDXERR=1 D ERR(BSDXI,"-7~BSDX08: Patient does not have an appointment in PIMS Clinic") QUIT
     153           . I BSDXSCIEN="" S BSDXERR=1 D ERR(BSDXI,"-7~BSDX08: Patient does not have an appointment in PIMS Clinic") QUIT
    154154        . ; Get the appointment node
    155     . S BSDXNOD=$G(^SC(BSDXLOC,"S",BSDXSTART,1,BSDXSCIEN,0))
     155           . S BSDXNOD=$G(^SC(BSDXLOC,"S",BSDXSTART,1,BSDXSCIEN,0))
    156156        . I BSDXNOD="" S BSDXERR=1 D ERR(BSDXI,"-8^BSDX08: Unable to find associated PIMS appointment for this patient") QUIT
    157157        . N BSDXLEN S BSDXLEN=$P(BSDXNOD,U,2)
    158158        . ; Cancel through BSDXAPI
    159     . N BSDXZ
    160     . D APCAN(.BSDXZ,BSDXLOC,BSDXPATID,BSDXSTART)
    161     . I +BSDXZ>0 S BSDXERR=1 D ERR(BSDXI,"-9^BSDX08: BSDXAPI returned an error: "_$P(BSDXZ,U,2)) QUIT
     159           . N BSDXZ
     160           . D APCAN(.BSDXZ,BSDXLOC,BSDXPATID,BSDXSTART)
     161           . I +BSDXZ>0 S BSDXERR=1 D ERR(BSDXI,"-9^BSDX08: BSDXAPI returned an error: "_$P(BSDXZ,U,2)) QUIT
    162162        . ; Update Legacy PIMS clinic Availability
    163163        . D AVUPDT(BSDXLOC,BSDXSTART,BSDXLEN)
     
    174174        ;See SDCNP0
    175175        N SD,S  ; Start Date
    176     S (SD,S)=BSDXSTART
    177     N I ; Clinic IEN in 44
     176           S (SD,S)=BSDXSTART
     177           N I ; Clinic IEN in 44
    178178        S I=BSDXSCD
    179     ; if day has no schedule in legacy PIMS, forget about this update.
     179           ; if day has no schedule in legacy PIMS, forget about this update.
    180180        Q:'$D(^SC(I,"ST",SD\1,1))
    181     N SL ; Clinic characteristics node (length of appt, when appts start etc)
     181           N SL ; Clinic characteristics node (length of appt, when appts start etc)
    182182        S SL=^SC(I,"SL")
    183     N X ; Hour Clinic Display Begins
    184     S X=$P(SL,U,3)
    185     N STARTDAY ; When does the day start?
    186     S STARTDAY=$S($L(X):X,1:8) ; If defined, use it; otherwise, 8am
    187     N SB ; ?? Who knows? Day Start - 1 divided by 100.
    188     S SB=STARTDAY-1/100
    189     S X=$P(SL,U,6) ; Now X is Display increments per hour
    190     N HSI ; Slots per hour, try 1
    191     S HSI=$S(X:X,1:4) ; if defined, use it; otherwise, 4
    192     N SI ; Slots per hour, try 2
    193     S SI=$S(X="":4,X<3:4,X:X,1:4) ; If slots "", or less than 3, then 4
    194     N STR ; ??
    195     S STR="#@!$* XXWVUTSRQPONMLKJIHGFEDCBA0123456789jklmnopqrstuvwxyz"
    196     N SDDIF ; Slots per hour diff??
    197     S SDDIF=$S(HSI<3:8/HSI,1:2)
     183           N X ; Hour Clinic Display Begins
     184           S X=$P(SL,U,3)
     185           N STARTDAY ; When does the day start?
     186           S STARTDAY=$S($L(X):X,1:8) ; If defined, use it; otherwise, 8am
     187           N SB ; ?? Who knows? Day Start - 1 divided by 100.
     188           S SB=STARTDAY-1/100
     189           S X=$P(SL,U,6) ; Now X is Display increments per hour
     190           N HSI ; Slots per hour, try 1
     191           S HSI=$S(X:X,1:4) ; if defined, use it; otherwise, 4
     192           N SI ; Slots per hour, try 2
     193           S SI=$S(X="":4,X<3:4,X:X,1:4) ; If slots "", or less than 3, then 4
     194           N STR ; ??
     195           S STR="#@!$* XXWVUTSRQPONMLKJIHGFEDCBA0123456789jklmnopqrstuvwxyz"
     196           N SDDIF ; Slots per hour diff??
     197           S SDDIF=$S(HSI<3:8/HSI,1:2)
    198198        S SL=BSDXLEN ; Dammit, reusing variable; SL now Appt Length from GUI
    199199        S S=^SC(I,"ST",SD\1,1) ; reusing var again; S now Day Pattern from PIMS
    200     N Y ; Hours since start of Date
    201     S Y=SD#1-SB*100 ;SD#1=FM Time portion; -SB minus start of day; conv to hrs
    202     N ST  ; ??
    203     ; Y#1 -> Minutes; *SI -> * Slots per hour; \.6 trunc min to hour
    204     ; Y\1 -> Hours since start of day; * SI: * slots
    205     S ST=Y#1*SI\.6+(Y\1*SI)
    206     N SS ; how many slots are supposed to be taken by appointment
    207     S SS=SL*HSI/60 ; (nb: try SL: 30 min; HSI: 4 slots)
     200           N Y ; Hours since start of Date
     201           S Y=SD#1-SB*100 ;SD#1=FM Time portion; -SB minus start of day; conv to hrs
     202           N ST  ; ??
     203           ; Y#1 -> Minutes; *SI -> * Slots per hour; \.6 trunc min to hour
     204           ; Y\1 -> Hours since start of day; * SI: * slots
     205           S ST=Y#1*SI\.6+(Y\1*SI)
     206           N SS ; how many slots are supposed to be taken by appointment
     207           S SS=SL*HSI/60 ; (nb: try SL: 30 min; HSI: 4 slots)
    208208        N I
    209     I Y'<1 D  ; If Hours since start of Date is greater than 1
    210     . ; loop through pattern. Tired of documenting.
    211     . F I=ST+ST:SDDIF D  Q:Y=""  Q:SS'>0
    212     . . S Y=$E(STR,$F(STR,$E(S,I+1))) Q:Y="" 
    213     . . S S=$E(S,1,I)_Y_$E(S,I+2,999)
    214     . . S SS=SS-1
    215     . . Q:SS'>0
     209           I Y'<1 D  ; If Hours since start of Date is greater than 1
     210           . ; loop through pattern. Tired of documenting.
     211           . F I=ST+ST:SDDIF D  Q:Y=""  Q:SS'>0
     212           . . S Y=$E(STR,$F(STR,$E(S,I+1))) Q:Y="" 
     213           . . S S=$E(S,1,I)_Y_$E(S,I+2,999)
     214           . . S SS=SS-1
     215           . . Q:SS'>0
    216216        S ^SC(BSDXSCD,"ST",SD\1,1)=S  ; new pattern; global set
    217217        Q
     
    296296ETRAP   ;EP Error trap entry
    297297        N $ET S $ET="D ^%ZTER HALT"  ; Emergency Error Trap
    298     ; Rollback, otherwise ^XTER will be empty from future rollback
    299     I $TL>0 TROLLBACK
    300     D ^%ZTER
    301     S $EC=""  ; Clear Error
     298           ; Rollback, otherwise ^XTER will be empty from future rollback
     299           I $TL>0 TROLLBACK
     300           D ^%ZTER
     301           S $EC=""  ; Clear Error
    302302        ; Log error message and send to client
    303     I '$D(BSDXI) N BSDXI S BSDXI=0
     303           I '$D(BSDXI) N BSDXI S BSDXI=0
    304304        D ERR(BSDXI,"-100~BSDX08 Error: "_$G(%ZTERZE))
    305305        QUIT
    306     ;
    307     ;;;NB: This is code that is unused in both original and port.
    308     ; ; If not appt in the "S" node is found in ^SC then check associated RPMS Clinic Multiple
    309     ; I BSDXSCIEN="" D  I 'BSDXZ Q  ;Q:BSDXZ
     306           ;
     307           ;;;NB: This is code that is unused in both original and port.
     308           ; ; If not appt in the "S" node is found in ^SC then check associated RPMS Clinic Multiple
     309           ; I BSDXSCIEN="" D  I 'BSDXZ Q  ;Q:BSDXZ
    310310        ; . S BSDXERR="BSDX08: Unable to find associated RPMS appointment for this patient. "
    311311        ; . S BSDXZ=1
    312     ; . ; Check if there are associated RPMS clinics. (not currently used) Does the multiple exist? No, then quit
     312           ; . ; Check if there are associated RPMS clinics. (not currently used) Does the multiple exist? No, then quit
    313313        ; . I '$D(^BSDXRES(BSDXSC1,20)) S BSDXZ=0 QUIT
    314     ; . ; Loop through the multiple. Get Location and then the ^SC "S" node IEN.
     314           ; . ; Loop through the multiple. Get Location and then the ^SC "S" node IEN.
    315315        ; . N BSDX1 S BSDX1=0
    316316        ; . F  S BSDX1=$O(^BSDXRES(BSDXSC1,20,BSDX1)) Q:'+BSDX1  Q:BSDXZ=0  D
Note: See TracChangeset for help on using the changeset viewer.