| 1 | BPSJINI1 ;BHAM ISC/LJF - HL7 Application Registration ;21-NOV-2003
 | 
|---|
| 2 |  ;;1.0;E CLAIMS MGMT ENGINE;**1**;JUN 2004
 | 
|---|
| 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 |  Q  ; No direct entry allowed
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 |  ; Operating Hours
 | 
|---|
| 8 |  ;
 | 
|---|
| 9 | EN(PHRMIX) ;
 | 
|---|
| 10 |  N HOURS,HROPEN,HRCLOSE,TAB,BPSJWAIT,BPSJANS,BPSJOH,DTOUT
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 |  S HROPEN=$G(^BPS(9002313.56,PHRMIX,"TOPEN"))
 | 
|---|
| 13 |  S HRCLOSE=$G(^BPS(9002313.56,PHRMIX,"TCLOSE"))
 | 
|---|
| 14 |  ; initialize to standard hours or ensure hours are valid
 | 
|---|
| 15 |  I HROPEN="" D
 | 
|---|
| 16 |  . S HROPEN="^0800^0800^0800^0800^0800^0800"
 | 
|---|
| 17 |  . S HRCLOSE="^1600^1600^1600^1600^1600^1600"
 | 
|---|
| 18 |  E  F BPSJOH=1:1:7 D
 | 
|---|
| 19 |  . I $P(HROPEN,U,BPSJOH)="" S $P(HRCLOSE,U,BPSJOH)="" Q
 | 
|---|
| 20 |  . I $P(HROPEN,U,BPSJOH)<$P(HRCLOSE,U,BPSJOH) Q
 | 
|---|
| 21 |  . S $P(HROPEN,U,BPSJOH)="",$P(HRCLOSE,U,BPSJOH)=""
 | 
|---|
| 22 |  ;
 | 
|---|
| 23 |  S BPSJWAIT=300    ; time out for questions
 | 
|---|
| 24 |  ;
 | 
|---|
| 25 |  F  D  Q:BPSJANS=""
 | 
|---|
| 26 |  . W !!,"DAILY HOURS OF OPERATION",!
 | 
|---|
| 27 |  . W "DAY",?16,"1-SUN",?24,"2-MON",?32,"3-TUE",?40,"4-WED",?48,"5-THU",?56,"6-FRI",?64,"7-SAT",!
 | 
|---|
| 28 |  . S BPSJANS=0
 | 
|---|
| 29 |  . W !,"OPEN TIME" F BPSJOH=1:1:7 S TAB="?"_(BPSJOH*8+8) W @TAB,$P(HROPEN,U,BPSJOH)
 | 
|---|
| 30 |  . W !,"CLOSE TIME" F BPSJOH=1:1:7 S TAB="?"_(BPSJOH*8+8) W @TAB,$P(HRCLOSE,U,BPSJOH)
 | 
|---|
| 31 |  . S BPSJANS=$$EDITDAY(.HROPEN,.HRCLOSE) I BPSJANS="^" S BPSJANS=""
 | 
|---|
| 32 |  ;
 | 
|---|
| 33 |  S ^BPS(9002313.56,PHRMIX,"TOPEN")=HROPEN
 | 
|---|
| 34 |  S ^BPS(9002313.56,PHRMIX,"TCLOSE")=HRCLOSE
 | 
|---|
| 35 |  W !
 | 
|---|
| 36 |  ;
 | 
|---|
| 37 |  Q
 | 
|---|
| 38 |  ;
 | 
|---|
| 39 | EDITDAY(HROPEN,HRCLOSE) ;
 | 
|---|
| 40 |  ;
 | 
|---|
| 41 |  N BPSJDAY,BPSJT,BPSJO,BPSJC,DIR,X
 | 
|---|
| 42 |  ;
 | 
|---|
| 43 |  W !
 | 
|---|
| 44 |  S DIR("A")="Enter Day to Edit"
 | 
|---|
| 45 |  S DIR("?")="^D DOC^BPSJINI1(0)"
 | 
|---|
| 46 |  S DIR(0)="NO^1:7"
 | 
|---|
| 47 |  D ^DIR S BPSJDAY=X  ; ^,1-7,null
 | 
|---|
| 48 |  I '$G(DTOUT),BPSJDAY
 | 
|---|
| 49 |  E  Q BPSJDAY  ; Non-Numeric or Zero or Timed out
 | 
|---|
| 50 |  ;
 | 
|---|
| 51 |  ;OPEN TIME
 | 
|---|
| 52 |  F  S BPSJO=$$OPENTIME  Q:BPSJO=0
 | 
|---|
| 53 |  ;
 | 
|---|
| 54 |  Q 0
 | 
|---|
| 55 |  ;
 | 
|---|
| 56 | OPENTIME() ;
 | 
|---|
| 57 |  N HH,MM,OPEN,DIR,X
 | 
|---|
| 58 |  ;
 | 
|---|
| 59 |  S DIR("?")="^D DOC^BPSJINI1(1)"
 | 
|---|
| 60 |  S DIR("A")="Enter Open Time (4 digit military time, C=Closed,24 for open 24 hours)"
 | 
|---|
| 61 |  S DIR(0)="FOU^0:4"
 | 
|---|
| 62 |  D ^DIR S OPEN=X
 | 
|---|
| 63 |  I '$G(DTOUT),$L(OPEN),$E(OPEN)'="^"
 | 
|---|
| 64 |  E  Q 0
 | 
|---|
| 65 |  ;
 | 
|---|
| 66 |  I $TR($E(OPEN),"c","C")="C" S $P(HROPEN,U,BPSJDAY)="",$P(HRCLOSE,U,BPSJDAY)="" Q 0
 | 
|---|
| 67 |  I OPEN=24 S $P(HROPEN,U,BPSJDAY)="0000",$P(HRCLOSE,U,BPSJDAY)="2359" Q 0
 | 
|---|
| 68 |  I OPEN?4N
 | 
|---|
| 69 |  E  W !!,"INVALID TIME ENTERED" D DOC(1) Q 1
 | 
|---|
| 70 |  S HH=$E(OPEN,1,2),MM=$E(OPEN,3,4)
 | 
|---|
| 71 |  I OPEN>-1,OPEN<2359
 | 
|---|
| 72 |  E  W !!,"INVALID TIME: OPEN TIME MUST BE FROM 0000 TO 2358." Q 1
 | 
|---|
| 73 |  I MM>59 W !!,"INVALID TIME: MINUTES MUST FROM 00 TO 59." Q 1
 | 
|---|
| 74 |  I HH>23 W !!,"INVALID TIME: HOURS MUST BE FROM 00 AND 23." Q 1
 | 
|---|
| 75 |  ;
 | 
|---|
| 76 |  ;Close Time
 | 
|---|
| 77 |  F  S BPSJC=$$ENDTIME Q:$L(BPSJC)
 | 
|---|
| 78 |  I BPSJC S $P(HROPEN,U,BPSJDAY)=OPEN,$P(HRCLOSE,U,BPSJDAY)=BPSJC
 | 
|---|
| 79 |  Q 0
 | 
|---|
| 80 |  ;
 | 
|---|
| 81 | ENDTIME() ;
 | 
|---|
| 82 |  N CLOSE,DIR,X
 | 
|---|
| 83 |  S DIR("?")="^D DOC^BPSJINI1(2)"
 | 
|---|
| 84 |  S DIR("A")="Enter Close Time (4 digit military time)"
 | 
|---|
| 85 |  S DIR(0)="FOU^4:4"
 | 
|---|
| 86 |  D ^DIR S CLOSE=X
 | 
|---|
| 87 |  I '$G(DTOUT),$L(CLOSE),$E(CLOSE)'="^"
 | 
|---|
| 88 |  E  Q 0
 | 
|---|
| 89 |  S HH=$E(CLOSE,1,2),MM=$E(CLOSE,3,4)
 | 
|---|
| 90 |  I MM>59 W !!,"INVALID TIME: MINUTES MUST FROM 00 TO 59." Q ""
 | 
|---|
| 91 |  I HH>23 W !!,"INVALID TIME: HOURS MUST BE FROM 00 AND 23." Q ""
 | 
|---|
| 92 |  I CLOSE>0,CLOSE<2400
 | 
|---|
| 93 |  E  W !!,"INVALID TIME: CLOSE TIME MUST BE FROM 0001 TO 2359." Q ""
 | 
|---|
| 94 |  I CLOSE<(OPEN+1) W !!,"INVALID TIME: CLOSE TIME MUST BE LATER THAN OPEN TIME." Q ""
 | 
|---|
| 95 |  Q CLOSE
 | 
|---|
| 96 |  ;
 | 
|---|
| 97 | DOC(DOCIX) ;
 | 
|---|
| 98 |  I $G(DOCIX)="" Q
 | 
|---|
| 99 |  I DOCIX=0 D  Q
 | 
|---|
| 100 |  .W !,"ENTER 1 TO INDICATE SUNDAY, 2 FOR MONDAY ... 7 FOR SATURDAY",!
 | 
|---|
| 101 |  .W !,"ENTER <CR> OR '^' TO EXIT."
 | 
|---|
| 102 |  ;
 | 
|---|
| 103 |  I DOCIX=1 D  Q
 | 
|---|
| 104 |  .W !,"ENTER C TO INDICATE THE PHARMACY IS CLOSED ON THIS DAY."
 | 
|---|
| 105 |  .W !," (NO CLOSING TIME WILL BE REQUESTED)",!
 | 
|---|
| 106 |  .W !,"ENTER 24 TO INDIACTE THE PHARMACY IS OPEN FOR THE ENTIRE 24 HOURS OF THIS DAY."
 | 
|---|
| 107 |  .W !," (NO CLOSING TIME WILL BE REQUESTED)",!
 | 
|---|
| 108 |  .W !,"ENTER A MILITARY TIME FROM 0000 TO 2358."
 | 
|---|
| 109 |  .W !," (THIS WILL ALLOW THE PHARMACY TO BE OPEN FOR AT LEAST 1 MINUTE IF DESIRED)"
 | 
|---|
| 110 |  .W !," A CLOSING TIME WILL BE REQUESTED AND THE ALLOWED TIME WILL BE FROM 1 MINUTE"
 | 
|---|
| 111 |  .W !,"  AFTER OPENING TIME TO 2359.",!!!
 | 
|---|
| 112 |  ;
 | 
|---|
| 113 |  I DOCIX=2 D  Q
 | 
|---|
| 114 |  .W !,"ENTER A MILITARY TIME FROM 0001 TO 2359."
 | 
|---|
| 115 |  .W !," THE CLOSING TIME MUST BE AT LEAST 1 MINUTE AFTER THE OPENING TIME, UP TO 2359.",!!!
 | 
|---|
| 116 |  ;
 | 
|---|
| 117 |  Q
 | 
|---|