Ignore:
Timestamp:
Jun 21, 2012, 7:24:56 PM (12 years ago)
Author:
Sam Habiel
Message:

Moved Unit Tests and UT Set-up to BSDXUT, started refactoring BSDX08.

File:
1 edited

Legend:

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

    r1452 r1454  
    1 BSDX08  ; VW/UJO/SMH - WINDOWS SCHEDULING RPCS ; 6/20/12 3:52pm
     1BSDX08  ; VW/UJO/SMH - WINDOWS SCHEDULING RPCS ; 6/21/12 4:49pm
    22        ;;1.6;BSDX;;Aug 31, 2011;Build 18
    33        ;
     
    3838        Q
    3939        ;
    40 UT      ; Unit Tests
    41         N RESNAM S RESNAM="UTCLINIC"
    42         N HLRESIENS ; holds output of UTCR^BSDX35 - HL IEN^Resource IEN
    43         D
    44         . N $ET S $ET="D ^%ZTER B"
    45         . S HLRESIENS=$$UTCR^BSDX35(RESNAM)
    46         . I HLRESIENS<0 S $EC=",U1," ; not supposed to happen - hard crash if so
    47         ;
    48         N HLIEN,RESIEN
    49         S HLIEN=$P(HLRESIENS,U)
    50         S RESIEN=$P(HLRESIENS,U,2)
    51         ;
    52         ; Get start and end times
    53         N TIMES S TIMES=$$TIMES^BSDX35 ; appt time^end time
    54         N APPTTIME S APPTTIME=$P(TIMES,U)
    55         N ENDTIME S ENDTIME=$P(TIMES,U,2)
    56         ;
    57         ; Test 1: Make normal appointment and cancel it. See if every thing works
    58         N ZZZ,DFN
    59         S DFN=3
    60         D APPADD^BSDX07(.ZZZ,APPTTIME,ENDTIME,DFN,RESNAM,30,"Sam's Note",1)
    61         S APPID=+$P(^BSDXTMP($J,1),U)
    62         D APPDEL^BSDX08(.ZZZ,APPID,"PC",1,"Sam's Cancel Note")
    63         I $P(^BSDXAPPT(APPID,0),U,12)'>0 W "Error in Cancellation-1"
    64         I $O(^SC(2,"S",APPTTIME,1,0))]"" W "Error in Cancellation-2"
    65         I $P(^DPT(4,"S",APPTTIME,0),U,2)'="PC" W "Error in Cancellation-3"
    66         I ^DPT(4,"S",3110123.2,"R")'="Sam's Cancel Note" W "Error in Cancellation-4"
    67         ;
    68         ; Test 2: Check for -1
    69         ; Make appt
    70         D APPADD^BSDX07(.ZZZ,3110125.2,3110125.3,4,"Dr Office",10,"Sam's Note",1)
    71         ; Lock the node in another job
    72         S APPID=+$P(^BSDXTMP($J,1),U)
    73         ; W "Lock ^BSDXAPPT("_APPID_") in another session. You have 10 seconds." H 10
    74         D APPDEL^BSDX08(.ZZZ,APPID,"PC",1,"Sam's Cancel Note")
    75         ;
    76         ; Test 3: Check for -100
    77         S bsdxdie=1
    78         D APPADD^BSDX07(.ZZZ,3110126.2,3110126.3,4,"Dr Office",10,"Sam's Note",1)
    79         S APPID=+$P(^BSDXTMP($J,1),U)
    80         D APPDEL^BSDX08(.ZZZ,APPID,"PC",1,"Reasons")
    81         I $P(^BSDXTMP($J,1),"~")'=-100 W "Error in -100",!
    82         K bsdxdie
    83         ;
    84         ; Test 4: Restartable transaction
    85         S bsdxrestart=1
    86         D APPADD^BSDX07(.ZZZ,3110128.2,3110128.3,4,"Dr Office",10,"Sam's Note",1)
    87         S APPID=+$P(^BSDXTMP($J,1),U)
    88         D APPDEL^BSDX08(.ZZZ,APPID,"PC",1,"Reasons")
    89         I $P(^DPT(4,"S",3110128.2,0),U,2)'="PC" W "Error in Restartable Transaction",!
    90         ;
    91         ; Test 5: for invalid Appointment ID (-2 and -3)
    92         D APPDEL^BSDX08(.ZZZ,0,"PC",1,"Reasons")
    93         I $P(^BSDXTMP($J,1),"~")'=-2 W "Error in -2",!
    94         D APPDEL^BSDX08(.ZZZ,999999,"PC",1,"Reasons")
    95         I $P(^BSDXTMP($J,1),"~")'=-3 W "Error in -3",!
    96 UT2     ; More unit Tests
    97         ;
    98         ; Test 6: for Cancelling walkin and checked-in appointments
    99         S BSDXSTART=$E($$NOW^XLFDT,1,12),BSDXEND=BSDXSTART+.0001
    100         D APPADD^BSDX07(.ZZZ,BSDXSTART,BSDXEND,4,"Dr Office",10,"Sam's Note",1) ; Add appt
    101         S APPID=+$P(^BSDXTMP($J,1),U)
    102         I APPID=0 W "Error in test 6",!
    103         D CHECKIN^BSDX25(.ZZZ,APPID,$$NOW^XLFDT) ; check-in
    104         D APPDEL^BSDX08(.ZZZ,APPID,"PC",10,"Cancel Note") ; Delete appt
    105         I $P(^BSDXTMP($J,1),$C(30))'="" W "Error in test 6",!
    106         ;
    107         ; Test 7: for cancelling walkin and checked-in appointments
    108         S BSDXSTART=$E($$NOW^XLFDT,1,12)+.0001,BSDXEND=BSDXSTART+.0001
    109         D APPADD^BSDX07(.ZZZ,BSDXSTART,BSDXEND,4,"Dr Office",10,"Sam's Note",1) ; Add appt
    110         S APPID=+$P(^BSDXTMP($J,1),U)
    111         I APPID=0 W "Error in test 6",!
    112         D CHECKIN^BSDX25(.ZZZ,APPID,$$NOW^XLFDT) ; Checkin
    113         S BSDXRES=$O(^BSDXRES("B","Dr Office",""))
    114         S BSDXCLN=$P(^BSDXRES(BSDXRES,0),U,4)
    115         S BSDXRESULT=$$RMCI^BSDXAPI(4,BSDXCLN,BSDXSTART) ; remove checkin
    116         D APPDEL^BSDX08(.ZZZ,APPID,"PC",10,"Cancel Note") ; delete appt
    117         I $P(^BSDXTMP($J,1),$C(30))'="" W "Error in test 6",!
    118         QUIT
    11940APPDEL(BSDXY,BSDXAPTID,BSDXTYP,BSDXCR,BSDXNOT)         ;EP
    12041        ;Called by RPC: BSDX CANCEL APPOINTMENT
     
    14162        ; Counter
    14263        N BSDXI S BSDXI=0
     64        ;
    14365        ; Header Node
    14466        S ^BSDXTMP($J,BSDXI)="T00100ERRORID"_$C(30)
     
    15880        ;
    15981        ;;;test for error inside transaction. See if %ZTER works
    160         I $G(bsdxdie) S X=1/0
     82        I $G(BSDXDIE) S X=1/0
    16183        ;;;test
    16284        ;;;test for TRESTART
    163         I $G(bsdxrestart) K bsdxrestart TRESTART
     85        I $G(BSDXRESTART) K BSDXRESTART tRESTART
    16486        ;;;test
    16587        ;
     
    187109        N BSDXERR S BSDXERR=0
    188110        ; Only file in 2/44 if there is an associated hospital location
    189         I BSDXLOC D  QUIT:BSDXERR 
     111        I BSDXLOC D  QUIT:BSDXERR
    190112        . I '$D(^SC(BSDXLOC,0)) S BSDXERR=1 D ERR(BSDXI,"-6~BSDX08: Invalid Hosp Location stored in Database") QUIT
    191113        . ; Get the IEN of the appointment in the "S" node of ^SC
     
    215137        ;See SDCNP0
    216138        N SD,S  ; Start Date
    217         S (SD,S)=BSDXSTART 
     139        S (SD,S)=BSDXSTART
    218140        N I ; Clinic IEN in 44
    219141        S I=BSDXSCD
     
    244166        ; Y#1 -> Minutes; *SI -> * Slots per hour; \.6 trunc min to hour
    245167        ; Y\1 -> Hours since start of day; * SI: * slots
    246         S ST=Y#1*SI\.6+(Y\1*SI) 
     168        S ST=Y#1*SI\.6+(Y\1*SI)
    247169        N SS ; how many slots are supposed to be taken by appointment
    248170        S SS=SL*HSI/60 ; (nb: try SL: 30 min; HSI: 4 slots)
     
    251173        . ; loop through pattern. Tired of documenting.
    252174        . F I=ST+ST:SDDIF D  Q:Y=""  Q:SS'>0
    253         . . S Y=$E(STR,$F(STR,$E(S,I+1))) Q:Y="" 
     175        . . S Y=$E(STR,$F(STR,$E(S,I+1))) Q:Y=""
    254176        . . S S=$E(S,1,I)_Y_$E(S,I+2,999)
    255         . . S SS=SS-1 
     177        . . S SS=SS-1
    256178        . . Q:SS'>0
    257179        S ^SC(BSDXSCD,"ST",SD\1,1)=S  ; new pattern; global set
Note: See TracChangeset for help on using the changeset viewer.