Ignore:
Timestamp:
Jun 27, 2012, 7:45:33 PM (12 years ago)
Author:
Sam Habiel
Message:

Done refactoring BSDX31 plus all Unit Tests

File:
1 edited

Legend:

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

    r1461 r1462  
    1 BSDX31   ; IHS/OIT/HMW - WINDOWS SCHEDULING RPCS ; 6/26/12 4:35pm
     1BSDX31   ; IHS/OIT/HMW - WINDOWS SCHEDULING RPCS ; 6/27/12 4:57pm
    22        ;;1.7T1;BSDX;;Aug 31, 2011;Build 18
    33        ; Licensed under LGPL
     
    1010        ;                       - Made BSDXNOS extrinsic.
    1111        ;                       - Moved Unit Tests to BSDXUT1
     12        ;                       - BSDXNOS deletes no-show rather than file 0 for
     13        ;                         undoing a no show
    1214        ;
    1315        ; Error Reference:
     
    8587        N BSDXRESNOD S BSDXRESNOD=^BSDXRES(BSDXRES,0)
    8688        N BSDXLOC S BSDXLOC=$P(BSDXRESNOD,U,4) ;HOSPITAL LOCATION
    87         I '$D(^SC(BSDXLOC,0)) S BSDXLOC="" ; Unlink it if it doesn't exist
    88         ; I can go and then delete it from BSDXLOC like Mailman code which tries
    89         ; to be too helpful... but I will postpone that until this is need it.
    90         ;
    91         ; Edit BSDX APPOINTMENT entry
    92         N BSDXMSG S BSDXMSG=$$BSDXNOS(BSDXAPTID,BSDXNS)  ;Edit BSDX APPOINTMENT entry NOSHOW field
     89        I BSDXLOC,'$D(^SC(BSDXLOC,0)) S BSDXLOC="" ; Unlink it if it doesn't exist
     90        ; I can go and then delete it from ^BSDXRES like Mailman code which tries
     91        ; to be too helpful... but I will postpone that until this is a need.
     92        ;
     93        ; Check if it's okay to no-show patient.
     94        N BSDXERR S BSDXERR=0 ; Error variable
     95        I BSDXLOC S BSDXERR=$$NOSHOWCK^BSDXAPI1(BSDXPATID,BSDXLOC,BSDXSTART,BSDXNS)
     96        I BSDXERR D ERR(-5,"BSDX31: "_$P(BSDXERR,U,2)) QUIT
     97        ;
     98        ; Simulated Error
     99        I $G(BSDXSIMERR1) D ERR(-4,"BSDX31: Simulated Error") QUIT
     100        ; Edit BSDX APPOINTMENT entry No-show field
     101        ; Failure Analysis: If we fail here, no rollback needed, as this is the 1st
     102        ; call
     103        N BSDXMSG S BSDXMSG=$$BSDXNOS(BSDXAPTID,BSDXNS)
    93104        I BSDXMSG D ERR(-4,"BSDX31: "_$P(BSDXMSG,U,2)) QUIT
    94105        ;
    95106        ; Edit File 2 "S" node entry
    96         N BSDXERR ; Error variable
     107        ; Failure Analysis: If we fail here, we need to rollback the BSDX
     108        ; Apptointment Entry
     109        N BSDXERR S BSDXERR=0 ; Error variable
    97110        ; If HL exist, (resource is linked to PIMS), file no show in File 2
    98111        I BSDXLOC S BSDXERR=$$NOSHOW^BSDXAPI1(BSDXPATID,BSDXLOC,BSDXSTART,BSDXNS)
    99         I BSDXERR D ERR(-5,"BSDX31: "_$P(BSDXERR,U,2)) QUIT
    100         ;
     112        I BSDXERR D  QUIT
     113        . D ERR(-5,"BSDX31: "_$P(BSDXERR,U,2))
     114        . N % S %=$$BSDXNOS(BSDXAPTID,'BSDXNS) ; no error checking for filer
     115        ;
     116        ; Return data in ADO.net table
    101117        S BSDXI=BSDXI+1
    102118        S ^BSDXTMP($J,BSDXI)="1^"_$C(30) ; 1 means everything okay
     
    106122        ;
    107123BSDXNOS(BSDXAPTID,BSDXNS) ; $$ Private; File/unfile noshow in ^BSDXAPPT
     124        ; in v1.7 I delete the no-show value rather than file zero
    108125        N BSDXFDA,BSDXIENS,BSDXMSG
     126        N BSDXVALUE ; What to file: 1 or delete it.
     127        I BSDXNS S BSDXVALUE=1
     128        E  S BSDXVALUE="@"
    109129        S BSDXIENS=BSDXAPTID_","
    110         S BSDXFDA(9002018.4,BSDXIENS,.1)=BSDXNS ;NOSHOW
     130        S BSDXFDA(9002018.4,BSDXIENS,.1)=BSDXVALUE ;NOSHOW 1 or 0
    111131        D FILE^DIE("","BSDXFDA","BSDXMSG")
    112132        QUIT:$D(BSDXMSG) -1_U_BSDXMSG("DIERR",1,"TEXT",1)
     
    157177        ;
    158178ERR(BSDXERID,ERRTXT)       ;Error processing
     179        ; If last line is $C(31), we are done. No more errors to send to client.
     180        I ^BSDXTMP($J,$O(^BSDXTMP($J," "),-1))=$C(31) QUIT
    159181        S BSDXI=BSDXI+1
    160182        S ERRTXT=$TR(ERRTXT,"^","~")
     
    166188ETRAP     ;EP Error trap entry
    167189        N $ET S $ET="D ^%ZTER HALT"  ; Emergency Error Trap
    168         I $G(BSDXAPTID),$D(BSDXNS) N % S %=$$BSDXNOS(BSDXAPTID,'BSDXNS) ; Reverse No-Show status (whatever it was)
    169190        D ^%ZTER
    170191        S $EC="" ; Clear Error
     192        I $G(BSDXAPTID),$D(BSDXNS) N % S %=$$BSDXNOS(BSDXAPTID,'BSDXNS) ; Reverse No-Show status (whatever it was)
    171193        ; Send to client
    172194        I '$D(BSDXI) N BSDXI S BSDXI=0
    173195        D ERR(-100,"BSDX31 Error: "_$G(%ZTERZE))
    174         QUIT
     196        Q:$Q 100_U_"Mumps Error" Q
    175197        ;
    176198IMHERE(BSDXRES) ;EP
Note: See TracChangeset for help on using the changeset viewer.