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