1 | SDAMN ;ALB/MJK - No-Show Appt Action ; 2/4/92
|
---|
2 | ;;5.3;Scheduling;**478**;Aug 13, 1993
|
---|
3 | ;
|
---|
4 | EN ; -- protocol SDAM APPT NO-SHOW entry pt
|
---|
5 | ; input: VALMY := array entries
|
---|
6 | ;
|
---|
7 | N VALMY,SDI,SDAT,SDTIME,SDNSACT,DFN,SDCL,SDT,SDSTB,SDSTA,SDSTOP
|
---|
8 | S VALMBCK="",(SDNSACT,SDSTOP)=0
|
---|
9 | D SEL^VALM2 G ENQ:'$O(VALMY(0))
|
---|
10 | D FULL^VALM1 S VALMBCK="R",SDI=0
|
---|
11 | F S SDI=$O(VALMY(SDI)) Q:'SDI I $D(^TMP("SDAMIDX",$J,SDI)) K SDAT S SDAT=^(SDI) D Q:SDSTOP
|
---|
12 | .D NOW^%DTC S SDTIME=%
|
---|
13 | .W !,^TMP("SDAM",$J,+SDAT,0),!
|
---|
14 | .S DFN=+$P(SDAT,U,2),SDT=+$P(SDAT,U,3),SDCL=+$P(SDAT,U,4)
|
---|
15 | .S SDSTB=$$STATUS^SDAM1(DFN,SDT,SDCL,$G(^DPT(DFN,"S",SDT,0))) ; before status
|
---|
16 | .Q:'$$CHK
|
---|
17 | .S SDSTOP=$$NS(DFN,SDT,SDCL,SDTIME,.SDNSACT)
|
---|
18 | .S SDSTA=$$STATUS^SDAM1(DFN,SDT,SDCL,$G(^DPT(DFN,"S",SDT,0))) ; after status
|
---|
19 | .I 'SDNSACT,'$$UPD(SDSTB,SDSTA,SDAT,$G(CNSTLNK)) S SDNSACT=2
|
---|
20 | ; values for SDNSACT : 0 = no re-build
|
---|
21 | ; 1 = re-build because of re-book
|
---|
22 | ; 2 = re-build because after not for list
|
---|
23 | I SDNSACT,SDAMTYP="P" D BLD^SDAM1
|
---|
24 | I SDNSACT,SDAMTYP="C" D BLD^SDAM3
|
---|
25 | ENQ Q
|
---|
26 | ;
|
---|
27 | NS(DFN,SDT,SC,SDTIME,SDNSACT) ; execute no-show code
|
---|
28 | ; input: DFN := pt file ifn
|
---|
29 | ; SDT := d/t of appt
|
---|
30 | ; SC := clinic ifn
|
---|
31 | ; SDTIME := now
|
---|
32 | ; SDNSACT := ns processing flag
|
---|
33 | ; [return] := did user uparrow [ 0|no , 1|yes]
|
---|
34 | ;
|
---|
35 | N SDI,SDCP,SDYES,SDINP,SDLT1,SDLT,SDDT,SDMSG,A,L,I,SDV1,SDCL
|
---|
36 | K ^UTILITY($J)
|
---|
37 | D LO^DGUTL S SDLT1="",SDYES="",SDDT=DT,I=SDT,SDT=$P(I,".")
|
---|
38 | S SDMSG=" DOES NOT HAVE A NO-SHOW LETTER ASSIGNED TO IT!"
|
---|
39 | S SDV1=$O(^DG(40.8,0)) D DIV^SDUTL I $T S SDV1=$P($G(^SC(SC,0)),U,15)
|
---|
40 | D EN1^SDN,73^SDN,PAUSE^VALM1
|
---|
41 | NSQ Q 'Y
|
---|
42 | ;
|
---|
43 | CHK() ; -- check if status of appt permits no-show
|
---|
44 | N SDOK S SDOK=1
|
---|
45 | I '$D(^SD(409.63,"ANS",1,+SDSTB)) S SDOK=0,X="You cannot execute no-show processing for this appointment."
|
---|
46 | I SDOK,SDT>SDTIME S SDOK=1,X="It is too soon to no-show this appointment."
|
---|
47 | I 'SDOK W !!,*7,X K VALMY(SDI) D PAUSE^VALM1
|
---|
48 | Q SDOK
|
---|
49 | ;
|
---|
50 | UPD(BEFORE,AFTER,SDAT,CNST) ; can just the 1 display line be changed w/o re-build
|
---|
51 | ; input: BEFORE := before status info in $$STATUS format
|
---|
52 | ; AFTER := after " " " " "
|
---|
53 | ; SDAT := selected VALMY entry's data
|
---|
54 | ; CNST := consult status (null, consult link ien)
|
---|
55 | N Y S Y=0
|
---|
56 | I +BEFORE=+AFTER S Y=1 G UPDQ
|
---|
57 | I $D(SDAMLIST(+AFTER)) S Y=1 I $D(SDAMLIST("SCR")) X SDAMLIST("SCR") S Y=$T
|
---|
58 | I 'Y,$P(SDAMLIST,U)="ALL" S Y=1
|
---|
59 | I Y D
|
---|
60 | . S ^TMP("SDAM",$J,+SDAT,0)=$$SETFLD^VALM1($P(AFTER,";",3),^TMP("SDAM",$J,+SDAT,0),"STAT")
|
---|
61 | . I '$G(CNST) S ^TMP("SDAM",$J,+SDAT,0)=$$SETFLD^VALM1(" ",^TMP("SDAM",$J,+SDAT,0),"CONSULT")
|
---|
62 | UPDQ Q Y
|
---|