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