1 | SDAMWI ;ALB/MJK - Unscheduled Appointments ; 5/3/05 5:50pm
|
---|
2 | ;;5.3;Scheduling;**63,94,241,250,296,380,327**;Aug 13, 1993
|
---|
3 | ;
|
---|
4 | EN(DFN,SC) ; -- main entry point
|
---|
5 | ; input: DFN ; SC := clinic#
|
---|
6 | ; returned: success or fail := 1/0
|
---|
7 | ;
|
---|
8 | N SDY,SDAPTYP,SDRE,SDRE1,SDIN,SDSL,SDD,SDALLE,SDATD,SDDECOD,SDEC,SDEMP,SDOEL,SDPL,SDRT,SDSC,SDTTM,COLLAT,SDX,SDSTART,ORDER,SDREP,SDDA,SDCL
|
---|
9 | D 2^VADPT I +VADM(6) W !!?5,*7,"o Patient has died!" D PAUSE^VALM1 S SDY=0 G ENQ
|
---|
10 | S SDCL=SC,SDSL=$S($D(^SC(SC,"SL")):+^("SL"),1:""),SDD=0
|
---|
11 | K SDRE,SDIN,SDRE1
|
---|
12 | I $D(^SC(SC,"I")) S Y=^("I"),SDIN=+Y,SDRE=+$P(Y,U,2),SDRE1=$$FDATE^VALM1(SDRE)
|
---|
13 | I $D(SDIN),SDIN,SDIN'>DT,SDRE,SDRE>DT W !!?5,*7,"o Clinic is inactive from ",$$FTIME^VALM1(SDIN)," to "_SDRE1 D PAUSE^VALM1 S SDY=0 G ENQ
|
---|
14 | I $D(SDIN),SDIN,SDIN'>DT,'SDRE W !!?5,*7,"o Clinic is inactive as of ",$$FTIME^VALM1(SDIN) D PAUSE^VALM1 S SDY=0 G ENQ
|
---|
15 | N SDRES S SDRES=$$CLNCK^SDUTL2(SC,1)
|
---|
16 | I 'SDRES W !,?5,*7,"o Clinic MUST be corrected before continuing." D PAUSE^VALM1 S SDY=0 G ENQ
|
---|
17 | I '$$TIME(.DFN,.SC,.SDT) D WL^SDM1(SC) S SDY=0 G ENQ ;SD/327
|
---|
18 | S Y=SDT D ^SDM4 I X="^" S SDY=0 G ENQ
|
---|
19 | ; ** SD*5.3*250 MT Blocking check removed
|
---|
20 | ;S X="EASMTCHK" X ^%ZOSF("TEST") I $T N EASACT S EASACT="W" I $$MT^EASMTCHK(DFN,+$G(SDAPTYP),EASACT) D PAUSE^VALM1 S SDY=0 G ENQ
|
---|
21 | ;-- get sub-category for appointment type
|
---|
22 | S SDXSCAT=$$SUB^DGSAUTL(SDAPTYP,2,"")
|
---|
23 | S SDY=$$MAKE^SDAMWI1(DFN,SDCL,SDT)
|
---|
24 | K SDXSCAT
|
---|
25 | ENQ D KVAR^VADPT
|
---|
26 | Q SDY
|
---|
27 | ;
|
---|
28 | TIME(DFN,SC,SDT) ; -- get appt date/time
|
---|
29 | ; input: DFN ; SC := clinic#
|
---|
30 | ; output: SDT := date/time of wi appt
|
---|
31 | ; returned: success or fail := 1/0
|
---|
32 | ;
|
---|
33 | N SDY,%DT
|
---|
34 | ASK R !!,"APPOINTMENT TIME: NOW// ",X:DTIME S X=$$UPPER^VALM1(X)
|
---|
35 | I X["^"!('$T) S SDY=0 G TIMEQ
|
---|
36 | I X?.E1"?" D G ASK
|
---|
37 | .W !," Enter a time or date@time for the appointment or return for 'NOW'."
|
---|
38 | .W !,"The date must be today or earlier."
|
---|
39 | S:X=""!(X="N")!(X="NO") X="NOW"
|
---|
40 | I X'="NOW",X'["@" S X="T@"_X
|
---|
41 | S %DT="TEP",%DT(0)=-(DT+1) D ^%DT G ASK:Y<0 S SDT=Y
|
---|
42 | G:'$$CANCHK(.SC,.SDT) ASK
|
---|
43 | I $D(^DPT(DFN,"S",SDT,0)) W !?5,*7,"o Patient already has an appt on ",$$FTIME^VALM1(SDT) G ASK
|
---|
44 | S SDY=1
|
---|
45 | TIMEQ Q SDY
|
---|
46 | ;
|
---|
47 | CANCHK(SC,SDT) ; -- is clinic cancelled for date
|
---|
48 | ; input: SC := clinic# ; SDT := date/time of wi appt
|
---|
49 | ; returned: success or fail := 1/0
|
---|
50 | ;
|
---|
51 | N SDY
|
---|
52 | S SDY=1
|
---|
53 | I $D(^SC(SC,"ST",$P(SDT,"."))),'$D(^SC(SC,"ST",$P(SDT,"."),"CAN")) G CANCHKQ
|
---|
54 | I $D(^SC(SC,"ST",$P(SDT,"."),"CAN")),$G(^SC(SC,"ST",$P(SDT,"."),1))["CANCEL" W !?5,*7,"o This date's clinic has been cancelled!" S SDY=0 G CANCHKQ
|
---|
55 | I $D(^SC(SC,"ST",$P(SDT,"."),"CAN")),$G(^SC(SC,"ST",$P(SDT,"."),1))'["CANCEL" W !?5,*7,"o Warning: Part of this day's clinic has been cancelled!" G CANCHKQ
|
---|
56 | S SDY=$$AVAIL(.SC,.SDT)
|
---|
57 | CANCHKQ Q SDY
|
---|
58 | ;
|
---|
59 | AVAIL(SC,SDT) ; -- does clinic meet
|
---|
60 | ; input: SC := clinic# ; SDT := date/time of wi appt
|
---|
61 | ; returned: success or fail := 1/0
|
---|
62 | ;
|
---|
63 | N SDY
|
---|
64 | S X=$P(SDT,".") D DOW^SDM0
|
---|
65 | I $D(^SC(SC,"T"_Y)) S Z=$O(^SC(SC,"T"_Y,DT)) I Z'="",$D(^SC(SC,"T"_Y,Z,1)),^(1)]"" S SDY=1 G AVAILQ
|
---|
66 | W !?5,*7,"o Clinic does not meet on this date!" S SDY=0
|
---|
67 | AVAILQ Q SDY
|
---|
68 | ;
|
---|
69 | CL(DFN) ; -- make wi appt
|
---|
70 | ; input: DFN
|
---|
71 | ; returned: success or fail := 1/0
|
---|
72 | ;
|
---|
73 | S DIC="^SC(",DIC(0)="AEMQ",DIC("A")="Select Clinic: ",DIC("S")="I $P(^(0),U,3)=""C"",'$G(^(""OOS""))"
|
---|
74 | D ^DIC K DIC
|
---|
75 | I Y<0 S SDY=0 G CLQ
|
---|
76 | S SC=+Y S SDY=$$EN(.DFN,.SC)
|
---|
77 | CLQ Q SDY
|
---|
78 | ;
|
---|
79 | PT(SC) ;
|
---|
80 | ; input: SC := clinic#
|
---|
81 | ; returned: success or fail := 1/0
|
---|
82 | ;
|
---|
83 | S DIC="^DPT(",DIC(0)="AEMQ",DIC("A")="Select Patient: "
|
---|
84 | D ^DIC K DIC
|
---|
85 | I Y<0 S SDY=0 G PTQ
|
---|
86 | S DFN=+Y S SDY=$$EN(.DFN,.SC)
|
---|
87 | PTQ Q SDY
|
---|
88 | ;
|
---|