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