| 1 | PRSPESR3 ;WOIFO/JAH - Part-time physicians ESR Edit;11/04/04
 | 
|---|
| 2 |  ;;4.0;PAID;**93**;Sep 21, 1995;Build 7
 | 
|---|
| 3 |  ;;Per VHA Directive 2004-038, this routine should not be modified.
 | 
|---|
| 4 |  Q
 | 
|---|
| 5 | GETTOUR(PRSIEN,PRSD,TC,Y1,Y4) ; Return all segments of tour with special
 | 
|---|
| 6 |  ; tour indicators if any
 | 
|---|
| 7 |  N L1,A1,L3,L4,PRSTR
 | 
|---|
| 8 |  I Y1="" S Y1=$S(TC=1:"Day Off",TC=2:"Day Tour",TC=3!(TC=4):"Intermittent",1:"")
 | 
|---|
| 9 |  ;
 | 
|---|
| 10 |  S PRSTR=""
 | 
|---|
| 11 |  S (L3,L4)=0
 | 
|---|
| 12 |  ;
 | 
|---|
| 13 |  F L1=1:3:19 S A1=$P(Y1,"^",L1) Q:A1=""  D
 | 
|---|
| 14 |  . S L3=L3+1,Y1(L3)=A1
 | 
|---|
| 15 |  . S:$P(Y1,"^",L1+1)'="" Y1(L3)=Y1(L3)_"-"_$P(Y1,"^",L1+1)
 | 
|---|
| 16 |  . S:PRSTR'="" PRSTR=PRSTR_", " S PRSTR=PRSTR_Y1(L3)
 | 
|---|
| 17 |  . I $P(Y1,"^",L1+2)'="" D
 | 
|---|
| 18 |  ..  S L3=L3+1
 | 
|---|
| 19 |  ..  S Y1(L3)="  "_$P($G(^PRST(457.2,+$P(Y1,"^",L1+2),0)),"^",1)
 | 
|---|
| 20 |  ..  S PRSTR=PRSTR_" "_$P($G(^PRST(457.2,+$P(Y1,"^",L1+2),0)),"^",6)
 | 
|---|
| 21 |  ;
 | 
|---|
| 22 |  ; add all segments of second tour if any
 | 
|---|
| 23 |  ;
 | 
|---|
| 24 |  I Y4'="" D
 | 
|---|
| 25 |  .F L1=1:3:19 S A1=$P(Y4,"^",L1) Q:A1=""  D
 | 
|---|
| 26 |  .. S L3=L3+1,Y1(L3)=A1
 | 
|---|
| 27 |  .. S:$P(Y4,"^",L1+1)'="" Y1(L3)=Y1(L3)_"-"_$P(Y4,"^",L1+1)
 | 
|---|
| 28 |  .. S:PRSTR'="" PRSTR=PRSTR_", " S PRSTR=PRSTR_Y1(L3)
 | 
|---|
| 29 |  .. I $P(Y4,"^",L1+2)'="" D
 | 
|---|
| 30 |  ...  S L3=L3+1
 | 
|---|
| 31 |  ...  S Y1(L3)="  "_$P($G(^PRST(457.2,+$P(Y4,"^",L1+2),0)),"^",1)
 | 
|---|
| 32 |  ...  S PRSTR=PRSTR_" "_$P($G(^PRST(457.2,+$P(Y1,"^",L1+2),0)),"^",6)
 | 
|---|
| 33 |  ;
 | 
|---|
| 34 |  Q PRSTR
 | 
|---|
| 35 | INCESRS(PRSIEN,PPI) ;function returns count of incomplete ESR 
 | 
|---|
| 36 |  ;                days (ESR status xref)
 | 
|---|
| 37 |  ; effectively a count of the ptp's unsigned esr days (status < 4).
 | 
|---|
| 38 |  ; days off don't get added to total
 | 
|---|
| 39 |  ; 
 | 
|---|
| 40 |  ;
 | 
|---|
| 41 |  N INCS
 | 
|---|
| 42 |  S INCS=0
 | 
|---|
| 43 |  Q:(($G(PRSIEN)'>0)!($G(PPI)'>0)) INCS
 | 
|---|
| 44 |  N PPE,STAT,I
 | 
|---|
| 45 |  S PPE=$P($G(^PRST(458,PPI,0)),U)
 | 
|---|
| 46 |  Q:PPE="" INCS
 | 
|---|
| 47 |  S I=0
 | 
|---|
| 48 |  F  S I=$O(^PRST(458,"AEA",PRSIEN,PPE,I)) Q:I=""  D
 | 
|---|
| 49 |  .  S STAT=$$GETSTAT^PRSPESR1(PRSIEN,PPI,I)
 | 
|---|
| 50 |  .  I STAT<4 S INCS=INCS+1
 | 
|---|
| 51 |  Q INCS
 | 
|---|
| 52 | WARNMSG(STR) ; write string to 80 column output
 | 
|---|
| 53 |  ; format a long message string to break lines at words
 | 
|---|
| 54 |  N WORD,I
 | 
|---|
| 55 |  S WORD=""
 | 
|---|
| 56 |  F I=1:1:$L(STR," ") D
 | 
|---|
| 57 |  .  S WORD=$P(STR," ",I)
 | 
|---|
| 58 |  .  Q:WORD=""
 | 
|---|
| 59 |  .  I ($X+$L(WORD)+10)>IOM W !
 | 
|---|
| 60 |  .  W WORD," "
 | 
|---|
| 61 |  Q
 | 
|---|