[613] | 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
|
---|