1 | SDPCE2 ;MJK/ALB - Process PCE - Bulletin ;01 APR 1993
|
---|
2 | ;;5.3;Scheduling;**27**;08/13/93
|
---|
3 | ;
|
---|
4 | ; **** See SDPCE0 for variable definitions ****
|
---|
5 | ;
|
---|
6 | BULL(DFN,SDT,SDCL,SDEVENT,SDERR,SDVSIT,SDACT) ;
|
---|
7 | ; input:
|
---|
8 | ; o Required Variables:
|
---|
9 | ; DFN := ifn of patient
|
---|
10 | ; SDT := visit date [internal date format]
|
---|
11 | ; SDCL := ifn of clinic
|
---|
12 | ; SDEVENT() := event info array
|
---|
13 | ; SDERR() := error info array
|
---|
14 | ; SDACT := activity [free text]
|
---|
15 | ; SDVSIT() := visit info array
|
---|
16 | ;
|
---|
17 | ;
|
---|
18 | N SDBUL,XMDUZ,XMSUB,XMTEXT,SDLN,VA,SDTYPE,SDMSG,SDATA,STATUS
|
---|
19 | ;
|
---|
20 | ; -- check status... if cancelled or no-show quit
|
---|
21 | S SDATA=$G(^DPT(DFN,"S",SDT,0))
|
---|
22 | S STATUS=+$$STATUS^SDAM1(DFN,SDT,SDCL,SDATA,$G(SDDA))
|
---|
23 | IF "^4^5^6^7^9^10^"[U_STATUS_U G BULLQ
|
---|
24 | ;
|
---|
25 | ; -- should message be sent
|
---|
26 | S SDMSG=$$MSG() IF SDMSG="" G BULLQ
|
---|
27 | ;
|
---|
28 | ; -- if no notifications to process then quit
|
---|
29 | IF '$D(SDERR("ERROR")),'$D(SDERR("WARNING")) G BULLQ
|
---|
30 | ;
|
---|
31 | ; -- if (no 'errors' to process) and ('warnings' are NOT to be processed) then quit
|
---|
32 | IF '$D(SDERR("ERROR")),SDMSG'["WARNING" G BULLQ
|
---|
33 | ;
|
---|
34 | ; use site specified mg and bull is only sent if mg defined
|
---|
35 | D XMY^SDUTL2(+$P($G(^DG(43,1,"SCLR")),U,26),0,0) G BULLQ:'$D(XMY)
|
---|
36 | S XMSUB="Scheduling API Error/Warning",XMTEXT="SDBUL("
|
---|
37 | D SET("The following background error has occurred:")
|
---|
38 | D SET("")
|
---|
39 | D SET(" Activity: "_SDACT)
|
---|
40 | D SET(" Visit File Entry #: "_SDVSIT)
|
---|
41 | D SET(" Visit Date: "_$$FTIME^VALM1(SDT))
|
---|
42 | D SET(" Clinic: "_$P($G(^SC(+SDCL,0)),U))
|
---|
43 | D PID^VADPT6
|
---|
44 | D SET(" Patient: "_$P($G(^DPT(+DFN,0)),U)_" ("_VA("BID")_")")
|
---|
45 | D SET("")
|
---|
46 | F SDTYPE="ERROR","WARNING" IF SDMSG[SDTYPE D TYPE(SDTYPE)
|
---|
47 | D ^XMD
|
---|
48 | BULLQ K XMY Q
|
---|
49 | ;
|
---|
50 | SET(X) ; -- set text into array
|
---|
51 | S SDLN=$G(SDLN)+1,SDBUL(SDLN,0)=X Q
|
---|
52 | ;
|
---|
53 | TYPE(SDTYPE) ; -- insert errors/warnings into msg
|
---|
54 | N SDI,X,Y,SDCNT
|
---|
55 | S SDCNT=0
|
---|
56 | D SET(SDTYPE_" #:")
|
---|
57 | D SET($E("-------------",1,$L(SDTYPE)+3))
|
---|
58 | S SDI=0 F S SDI=$O(SDERR(SDTYPE,SDI)) Q:'SDI D
|
---|
59 | . S X=SDERR(SDTYPE,SDI),Y=$P(X,U,2),SDCNT=SDCNT+1
|
---|
60 | . D SET(" "_$P(X,U)_$E(" ",1,8-$L($P(X,U)))_"-> "_$E(Y,1,60)) S Y=$E(Y,61,999)
|
---|
61 | . F Q:Y="" D SET(" "_$E(Y,1,60)) S Y=$E(Y,61,999)
|
---|
62 | IF 'SDCNT D SET(" <none reported>")
|
---|
63 | D SET(""),SET("")
|
---|
64 | Q
|
---|
65 | ;
|
---|
66 | MSG() ; -- msg flag 'ERROR' or 'WARNING' or 'ERROR+WARNING'
|
---|
67 | N Y,X
|
---|
68 | S Y=$P($G(^DG(43,1,"SCLR")),U,27),X=""
|
---|
69 | I Y["E" S X=X_"ERROR/"
|
---|
70 | I Y["W" S X=X_"WARNING"
|
---|
71 | Q X
|
---|
72 | ;
|
---|