| 1 | LEXDDT2 ; ISL Display Defaults - Concatenate Text  ; 09-23-96 | 
|---|
| 2 | ;;2.0;LEXICON UTILITY;;Sep 23, 1996 | 
|---|
| 3 | ; | 
|---|
| 4 | CONCAT ; Concatenation of Data Elements | 
|---|
| 5 | N LEXTI,LEXTL,LEXTP | 
|---|
| 6 | PHRASE ; Get Phrase and Parse into Words | 
|---|
| 7 | I $D(LEX(LEXT,"H")) S LEXTP=LEX(LEXT,"H"),LEXTI=0 D WORD | 
|---|
| 8 | F LEXTI=1:1:LEX(LEXT,0) D | 
|---|
| 9 | . S LEXTP=LEX(LEXT,LEXTI) | 
|---|
| 10 | . S:LEXTP["/" LEXTP=$P(LEXTP,"/",1)_" or "_$P(LEXTP,"/",2),LEXTP=$$TRIM(LEXTP) | 
|---|
| 11 | . I LEXTI=LEX(LEXT,0),LEX(LEXT,0)>1 D | 
|---|
| 12 | . . S LEXTP="and "_LEXTP_"." | 
|---|
| 13 | . . S:$E(LEXTSTR,$L(LEXTSTR))["," LEXTSTR=$E(LEXTSTR,1,($L(LEXTSTR)-1)) | 
|---|
| 14 | . I LEXTI=LEX(LEXT,0),LEX(LEXT,0)'>1 D | 
|---|
| 15 | . . S LEXTP=LEXTP_"." | 
|---|
| 16 | . . S:$E(LEXTSTR,$L(LEXTSTR))["," LEXTSTR=$E(LEXTSTR,1,($L(LEXTSTR)-1)) | 
|---|
| 17 | . D WORD I $L(LEXTSTR)>LEXSTLN D SET S LEXTSTR="" | 
|---|
| 18 | I $D(LEX(LEXT,"T")) D | 
|---|
| 19 | . F  Q:$E(LEXTSTR,$L(LEXTSTR))'?1P  S LEXTSTR=$E(LEXTSTR,1,($L(LEXTSTR)-1)) Q:$E(LEXTSTR,$L(LEXTSTR))'?1P | 
|---|
| 20 | . S LEXTP=LEX(LEXT,"T"),LEXTI=0 D WORD | 
|---|
| 21 | S LEXTSTR=$$TRIM(LEXTSTR) | 
|---|
| 22 | Q | 
|---|
| 23 | WORD ; Concatenate Word | 
|---|
| 24 | N LEXTW,LEXTD F LEXTD=1:1:$L(LEXTP," ") D | 
|---|
| 25 | . S LEXTW=$P(LEXTP," ",LEXTD),LEXTW=$$TRIM(LEXTW) | 
|---|
| 26 | . I LEXTD=$L(LEXTP," "),LEXTI>0 S LEXTW=LEXTW_"," | 
|---|
| 27 | . I ($L(LEXTSTR)+$L(LEXTW)+1)'>LEXSTLN D  Q | 
|---|
| 28 | . . S LEXTSTR=LEXTSTR_" "_LEXTW | 
|---|
| 29 | . I ($L(LEXTSTR)+$L(LEXTW)+1)>LEXSTLN D | 
|---|
| 30 | . . D SET S LEXTSTR=LEXTW | 
|---|
| 31 | Q | 
|---|
| 32 | EOC ; End of Concatenation | 
|---|
| 33 | F  Q:$E(LEXTSTR,$L(LEXTSTR))'=","  S LEXTSTR=$E(LEXTSTR,1,($L(LEXTSTR)-1)) Q:$E(LEXTSTR,$L(LEXTSTR))'="," | 
|---|
| 34 | D SET | 
|---|
| 35 | Q | 
|---|
| 36 | SET ; Set Array Node | 
|---|
| 37 | S LEXTCTR=LEXTCTR+1 S LEX(LEXTCTR)=$$TRIM(LEXTSTR),LEX(0)=LEXTCTR | 
|---|
| 38 | Q | 
|---|
| 39 | TRIM(X) ; Remove Spaces | 
|---|
| 40 | F  Q:$E(X,$L(X))'=" "  S X=$E(X,1,($L(X)-1)) Q:$E(X,$L(X))'=" " | 
|---|
| 41 | F  Q:$E(X,1)'=" "  S X=$E(X,2,$L(X)) Q:$E(X,1)'=" " | 
|---|
| 42 | Q X | 
|---|