| 1 | RMPRUTL1 ;PHX/HPL - PROSTHETICS UTILITY SUBROUTINES ;10/31/1994
 | 
|---|
| 2 |  ;;3.0;PROSTHETICS;**3,44,49,59**;Feb 09, 1996
 | 
|---|
| 3 |  ;;PROSTHETICS;3.0;Apr. 17, 1995
 | 
|---|
| 4 |  ;OJ - p49 rewrite of RAP to overcome letter printing line wrap problems
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 | RAP(LINE,TB) ;WRAP A LINE IF NEEDED
 | 
|---|
| 7 |  N MAX,S,NW,NXT,FIN,SL
 | 
|---|
| 8 |  S MAX=IOM-(2*TB),FIN=0
 | 
|---|
| 9 |  F  Q:FIN  D
 | 
|---|
| 10 |  . S SL=$L(LINE)
 | 
|---|
| 11 |  . I SL'>MAX W !?TB,LINE S FIN=1 Q
 | 
|---|
| 12 |  . S S=$E(LINE,1,MAX),NXT=MAX
 | 
|---|
| 13 |  . I $E(S,MAX)'=" " D
 | 
|---|
| 14 |  . . S NW=$L(S," ")-1
 | 
|---|
| 15 |  . . I NW=0 D
 | 
|---|
| 16 |  . . . S NXT=MAX-1,S=$E(S,1,NXT)_"-"
 | 
|---|
| 17 |  . . . Q
 | 
|---|
| 18 |  . . E  D
 | 
|---|
| 19 |  . . . S S=$P(S," ",1,NW),NXT=$L(S)
 | 
|---|
| 20 |  . . . Q
 | 
|---|
| 21 |  . . Q
 | 
|---|
| 22 |  . W !?TB,S
 | 
|---|
| 23 |  . F  S NXT=NXT+1 Q:NXT>SL  Q:$E(LINE,NXT)'=" "
 | 
|---|
| 24 |  . I NXT>SL S FIN=1 Q
 | 
|---|
| 25 |  . S LINE=$E(LINE,NXT,SL)
 | 
|---|
| 26 |  . Q
 | 
|---|
| 27 |  Q ""
 | 
|---|
| 28 | FND ;FIND NEXT NON SPACE POSITION
 | 
|---|
| 29 |  Q:'$D(LINE)  F NLP=LP:1:H S B=NLP Q:$E(LINE,B,B)'=" "
 | 
|---|
| 30 |  Q
 | 
|---|
| 31 | PARS(NAME) ;PARSE AN INTERNAL FORM NAME INTO A LETTER FORMAT NAME
 | 
|---|
| 32 |  I NAME["," S LNAME=$P(NAME,",",1),FNAME=$P(NAME,",",2)
 | 
|---|
| 33 |  E  D
 | 
|---|
| 34 |  .S LNAME=NAME,PIECES=1,FNAME="",FNAME(1)="",TITLE=""
 | 
|---|
| 35 |  I LNAME'[" " S LP=1,LNAME(1)=LNAME,LNAME(2)=""
 | 
|---|
| 36 |  E  D
 | 
|---|
| 37 |  .S LP=2,LNAME(2)=$P(LNAME," ",2),LNAME(1)=$P(LNAME," ",1)
 | 
|---|
| 38 |  F LUP=1:1:LP S NAME=LNAME(LUP) D TRANS S LNAME(LUP)=RMPRNAME
 | 
|---|
| 39 |  S LASTNAME=LNAME(1)_" "_LNAME(2)
 | 
|---|
| 40 |  S PIECES=$S($L(FNAME," ")>1:$L(FNAME," "),1:1) S TITLE=""
 | 
|---|
| 41 |  I PIECES>1&($L($P(FNAME," ",PIECES))>1) D
 | 
|---|
| 42 |  .S TITLE=$P(FNAME," ",PIECES)
 | 
|---|
| 43 |  .S PIECES=PIECES-1
 | 
|---|
| 44 |   S FRSTNAME="" F LP=1:1:PIECES S NAME=$P(FNAME," ",LP) D TRANS S FRSTNAME=FRSTNAME_" "_RMPRNAME
 | 
|---|
| 45 |  S NAME=TITLE
 | 
|---|
| 46 |  I TITLE'["I" D TRANS S TITLE=RMPRNAME
 | 
|---|
| 47 |  S FIXDNAME=FRSTNAME_" "_LASTNAME_" "
 | 
|---|
| 48 |  Q FIXDNAME
 | 
|---|
| 49 | TRANS S RMPRU="ABCDEFGHIJKLMNOPQRSTUVWXYZ",RMPRL="abcdefghijklmnopqrstuvwxyz",RMPR1=$E(NAME),RMPR2=$E(NAME,2,25),RMPRNAME=$TR(RMPR1,RMPRL,RMPRU)_$TR(RMPR2,RMPRU,RMPRL)
 | 
|---|
| 50 |  Q
 | 
|---|
| 51 | DCNT(AMT,PCT) ; CALCULATE A DISCOUNT WITH ROUNDING
 | 
|---|
| 52 |  S DCNT=AMT*PCT S DCNT=$S(DCNT#.01=.005:DCNT+.005,DCNT#.01>.005:DCNT+(.01-(DCNT#.01)),1:DCNT-(DCNT#.01))
 | 
|---|
| 53 |  Q DCNT
 | 
|---|
| 54 | DISP ;Display help for DIR screens/reads.
 | 
|---|
| 55 |  N RMPR90DP,RMPR90I W ! S RMPR90DP=$P(DIR(0),U,2,999) F RMPR90I=1:1:5 I $P($P(RMPR90DP,";",RMPR90I),":",1)'=""  W " ("_$P($P(RMPR90DP,";",RMPR90I),":",1)_")"_$P($P(RMPR90DP,";",RMPR90I),":",2)_" "
 | 
|---|
| 56 |  Q
 | 
|---|
| 57 | EXIT ;GENERIC EXIT TAG
 | 
|---|
| 58 |  ; VARIABLES REQUIRED: NONE
 | 
|---|
| 59 |  N RMPR,RMPRSITE D KILL^%ZISS,KVAR^VADPT,KILL^XUSCLEAN Q
 | 
|---|
| 60 |  ;
 | 
|---|
| 61 | DAT1(X) ; Convert FM date to displayable (mm/dd/yy) format. 
 | 
|---|
| 62 |  N DATE
 | 
|---|
| 63 |  S DATE=$S(X:$E(X,4,5)_"/"_$E(X,6,7)_"/"_$E(X,2,3),1:"")
 | 
|---|
| 64 |  Q DATE
 | 
|---|
| 65 |  ;
 | 
|---|
| 66 | DAT2(X) ;Convert FM date to display (mm/dd/yyyy) format.
 | 
|---|
| 67 |  N DATE
 | 
|---|
| 68 |  S DATE=$S(X:$E(X,4,5)_"/"_$E(X,6,7)_"/"_(1700+$E(X,1,3)),1:"")
 | 
|---|
| 69 |  Q DATE
 | 
|---|
| 70 |  ;
 | 
|---|