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
|
---|