| 1 | SCMCTPU4 ;ALB/MJK - Team Position Dangler Bulletin ; 10-JUL-1998
 | 
|---|
| 2 |  ;;5.3;Scheduling;**148,177**;AUG 13, 1993
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | BULL ; -- send bulletin (called from SCMCTPU3)
 | 
|---|
| 5 |  N XMY,XMTEXT,XMSUB,XMDUZ,SCLCNT
 | 
|---|
| 6 |  D INIT
 | 
|---|
| 7 |  D TEXT
 | 
|---|
| 8 |  IF 'SCSTOP D ^XMD
 | 
|---|
| 9 |  D FINAL
 | 
|---|
| 10 |  Q
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 | INIT ; -- set vars for bulletin
 | 
|---|
| 13 |  N SCPCT
 | 
|---|
| 14 |  S XMDUZ=.5
 | 
|---|
| 15 |  S XMY($S($G(DUZ):DUZ,1:XMDUZ))=""
 | 
|---|
| 16 |  S XMSUB="Patient Team Position Assignment Review"
 | 
|---|
| 17 |  K ^TMP("SCTPTEXT",$J)
 | 
|---|
| 18 |  S XMTEXT="^TMP(""SCTPTEXT"",$J,"
 | 
|---|
| 19 |  S SCLCNT=0
 | 
|---|
| 20 |  S SCPCT="0.00"
 | 
|---|
| 21 |  IF $G(SCNT("TOTAL")) S SCPCT=(+$G(SCNT("BAD"))/+$G(SCNT("TOTAL")))*100
 | 
|---|
| 22 |  ;
 | 
|---|
| 23 |  ; -- summary info
 | 
|---|
| 24 |  ;
 | 
|---|
| 25 |  D SET("  In order to correct the following active positions with discharged team")
 | 
|---|
| 26 |  D SET("assignments, please refer to the documentation for the Patient Team")
 | 
|---|
| 27 |  D SET("Position Assignment Review option found in the Stand-alone Options")
 | 
|---|
| 28 |  D SET("Section of the PCMM User Guide.")
 | 
|---|
| 29 |  D SET(" ")
 | 
|---|
| 30 |  ;
 | 
|---|
| 31 |  ;D SET(" ")
 | 
|---|
| 32 |  ;D SET(" Mode: "_$S(SCMODE=1:"Diagnostic Only",1:"Fix"))
 | 
|---|
| 33 |  ;
 | 
|---|
| 34 |  ; -- show teams
 | 
|---|
| 35 |  D SET("   Teams Reviewed: "_$S(SCTMLST=1:"All",1:""))
 | 
|---|
| 36 |  IF SCTMLST=0 D
 | 
|---|
| 37 |  . ; -- sort and set
 | 
|---|
| 38 |  . N SCTMI,X
 | 
|---|
| 39 |  . S SCTMI=0
 | 
|---|
| 40 |  . F  S SCTMI=$O(SCTMLST(SCTMI)) Q:'SCTMI  S X(SCTMLST(SCTMI)_SCTMI)=SCTMLST(SCTMI)
 | 
|---|
| 41 |  . S SCTMI=""
 | 
|---|
| 42 |  . F  S SCTMI=$O(X(SCTMI)) Q:SCTMI=""  D SET("       "_X(SCTMI))
 | 
|---|
| 43 |  . D SET(" ")
 | 
|---|
| 44 |  . Q
 | 
|---|
| 45 |  ;
 | 
|---|
| 46 |  D SET(" ")
 | 
|---|
| 47 |  D SET("   Patient Team Position Assignments Reviewed: "_$J(+$G(SCNT("TOTAL")),6))
 | 
|---|
| 48 |  D SET("   Number of Assignments with Problems       : "_$J(+$G(SCNT("BAD")),6)_"  ("_$J(SCPCT,6,2)_"%)")
 | 
|---|
| 49 |  D SET(" ")
 | 
|---|
| 50 |  D DASH("=")
 | 
|---|
| 51 |  Q
 | 
|---|
| 52 |  ;
 | 
|---|
| 53 | FINAL ; -- clean up
 | 
|---|
| 54 |  K ^TMP("SCTPTEXT",$J)
 | 
|---|
| 55 |  Q
 | 
|---|
| 56 |  ;
 | 
|---|
| 57 | TEXT ; -- set of mm array
 | 
|---|
| 58 |  N SCTMI,SCTPI,SCPTI,SCASDTI,SCPTAI
 | 
|---|
| 59 |  ; 
 | 
|---|
| 60 |  ; -- sort is by team, position, patient, assign date, position assignment ien
 | 
|---|
| 61 |  ;
 | 
|---|
| 62 |  S SCSTOP=0
 | 
|---|
| 63 |  S SCTMI=""
 | 
|---|
| 64 |  F  S SCTMI=$O(@SCERTMP@(SCTMI)) Q:SCTMI=""  D  Q:SCSTOP
 | 
|---|
| 65 |  . S SCTPI="" F  S SCTPI=$O(@SCERTMP@(SCTMI,SCTPI)) Q:SCTPI=""  D
 | 
|---|
| 66 |  . . S SCPTI="" F  S SCPTI=$O(@SCERTMP@(SCTMI,SCTPI,SCPTI)) Q:SCPTI=""  D
 | 
|---|
| 67 |  . . . S SCASDTI=0 F  S SCASDTI=$O(@SCERTMP@(SCTMI,SCTPI,SCPTI,SCASDTI)) Q:'SCASDTI  D
 | 
|---|
| 68 |  . . . . S SCTPAI=0 F  S SCTPAI=$O(@SCERTMP@(SCTMI,SCTPI,SCPTI,SCASDTI,SCTPAI)) Q:'SCTPAI  D PTA
 | 
|---|
| 69 |  . ;
 | 
|---|
| 70 |  . ; -- check if user asked job to stop
 | 
|---|
| 71 |  . IF $$S^%ZTLOAD() S (SCSTOP,ZTSTOP)=1
 | 
|---|
| 72 |  Q
 | 
|---|
| 73 |  ;
 | 
|---|
| 74 | PTA ; -- process errors for team position assignment
 | 
|---|
| 75 |  N SCTP,SCTP0,SCTPNM
 | 
|---|
| 76 |  N SCTM,SCTM0,SCTMNM
 | 
|---|
| 77 |  N SCPT,SCPT0,SCPTNM,SCPTID
 | 
|---|
| 78 |  N SCTPA,SCTPA0,SCTPASDT,SCTPUNDT
 | 
|---|
| 79 |  N SCTMA,SCTMA0,SCTMASDT,SCTMUNDT
 | 
|---|
| 80 |  N SCER
 | 
|---|
| 81 |  ; -- get data
 | 
|---|
| 82 |  D DATA^SCMCTPU3(SCTPAI)
 | 
|---|
| 83 |  ;
 | 
|---|
| 84 |  ; -- set mm text
 | 
|---|
| 85 |  D SET(" Team: "_SCTMNM_"              Position: "_SCTPNM)
 | 
|---|
| 86 |  D SET("         Patient: "_SCPTNM_" ("_SCPTID_")")
 | 
|---|
| 87 |  S SCER=0
 | 
|---|
| 88 |  F  S SCER=$O(@SCERTMP@(SCTMI,SCTPI,SCPTI,SCASDTI,SCTPAI,SCER)) Q:'SCER  D
 | 
|---|
| 89 |  . IF SCER=1 D
 | 
|---|
| 90 |  . . D SET("           Error: Position Assigned Date is BEFORE Team Assigned Date")
 | 
|---|
| 91 |  . . D SET("                    Position Assigned Date: "_$$FMTE^XLFDT($E(SCTPASDT,1,7),"5Z"))
 | 
|---|
| 92 |  . . D SET("                        Team Assigned Date: "_$$FMTE^XLFDT($E(SCTMASDT,1,7),"5Z"))
 | 
|---|
| 93 |  . ; 
 | 
|---|
| 94 |  . IF SCER=2 D
 | 
|---|
| 95 |  . . D SET("           Error: Position Unassigned Date is AFTER Team Unassigned Date")
 | 
|---|
| 96 |  . . D SET("                         Team Unassigned Date: "_$S(SCTMUNDT=9999999:"<none>",1:$$FMTE^XLFDT($E(SCTMUNDT,1,7),"5Z")))
 | 
|---|
| 97 |  . . D SET("                     Position Unassigned Date: "_$S(SCTPUNDT=9999999:"<none>",1:$$FMTE^XLFDT($E(SCTPUNDT,1,7),"5Z")))
 | 
|---|
| 98 |  . ; -- do fix if selected
 | 
|---|
| 99 |  . IF SCMODE=2 D FIX
 | 
|---|
| 100 |  D DASH()
 | 
|---|
| 101 |  Q
 | 
|---|
| 102 |  ;
 | 
|---|
| 103 | FIX ; -- fix team position assignment entry (future)
 | 
|---|
| 104 |  Q
 | 
|---|
| 105 |  ;
 | 
|---|
| 106 | SET(X) ;
 | 
|---|
| 107 |  S SCLCNT=SCLCNT+1,^TMP("SCTPTEXT",$J,SCLCNT,0)=X
 | 
|---|
| 108 |  Q
 | 
|---|
| 109 |  ;
 | 
|---|
| 110 | DASH(CHAR) ; -- send line of CHAR
 | 
|---|
| 111 |  N X
 | 
|---|
| 112 |  S $P(X,$E($G(CHAR,"-")),78)=""
 | 
|---|
| 113 |  D SET(" "_X)
 | 
|---|
| 114 |  Q
 | 
|---|
| 115 |  ;
 | 
|---|