Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: LEXDDT2

LEXDDT2.m

Go to the documentation of this file.
  1. LEXDDT2 ;ISL/KER - Display Defaults - Concatenate Text ;04/21/2014
  1. ;;2.0;LEXICON UTILITY;**80**;Sep 23, 1996;Build 1
  1. ;
  1. ; Global Variables
  1. ; None
  1. ;
  1. ; External References
  1. ; None
  1. ;
  1. CONCAT ; Concatenation of Data Elements
  1. N LEXTI,LEXTL,LEXTP
  1. PHRASE ; Get Phrase and Parse into Words
  1. I $D(LEX(LEXT,"H")) S LEXTP=LEX(LEXT,"H"),LEXTI=0 D WORD
  1. F LEXTI=1:1:LEX(LEXT,0) D
  1. . S LEXTP=LEX(LEXT,LEXTI)
  1. . S:LEXTP["/" LEXTP=$P(LEXTP,"/",1)_" or "_$P(LEXTP,"/",2),LEXTP=$$TRIM(LEXTP)
  1. . I LEXTI=LEX(LEXT,0),LEX(LEXT,0)>1 D
  1. . . S LEXTP="and "_LEXTP_"."
  1. . . S:$E(LEXTSTR,$L(LEXTSTR))["," LEXTSTR=$E(LEXTSTR,1,($L(LEXTSTR)-1))
  1. . I LEXTI=LEX(LEXT,0),LEX(LEXT,0)'>1 D
  1. . . S LEXTP=LEXTP_"."
  1. . . S:$E(LEXTSTR,$L(LEXTSTR))["," LEXTSTR=$E(LEXTSTR,1,($L(LEXTSTR)-1))
  1. . D WORD I $L(LEXTSTR)>LEXSTLN D SET S LEXTSTR=""
  1. I $D(LEX(LEXT,"T")) D
  1. . F Q:$E(LEXTSTR,$L(LEXTSTR))'?1P S LEXTSTR=$E(LEXTSTR,1,($L(LEXTSTR)-1)) Q:$E(LEXTSTR,$L(LEXTSTR))'?1P
  1. . S LEXTP=LEX(LEXT,"T"),LEXTI=0 D WORD
  1. S LEXTSTR=$$TRIM(LEXTSTR)
  1. Q
  1. WORD ; Concatenate Word
  1. N LEXTW,LEXTD F LEXTD=1:1:$L(LEXTP," ") D
  1. . S LEXTW=$P(LEXTP," ",LEXTD),LEXTW=$$TRIM(LEXTW)
  1. . I LEXTD=$L(LEXTP," "),LEXTI>0 S LEXTW=LEXTW_","
  1. . I ($L(LEXTSTR)+$L(LEXTW)+1)'>LEXSTLN D Q
  1. . . S LEXTSTR=LEXTSTR_" "_LEXTW
  1. . I ($L(LEXTSTR)+$L(LEXTW)+1)>LEXSTLN D
  1. . . D SET S LEXTSTR=LEXTW
  1. Q
  1. EOC ; End of Concatenation
  1. F Q:$E(LEXTSTR,$L(LEXTSTR))'="," S LEXTSTR=$E(LEXTSTR,1,($L(LEXTSTR)-1)) Q:$E(LEXTSTR,$L(LEXTSTR))'=","
  1. D SET
  1. Q
  1. SET ; Set Array Node
  1. S LEXTCTR=LEXTCTR+1 S LEX(LEXTCTR)=$$TRIM(LEXTSTR),LEX(0)=LEXTCTR
  1. Q
  1. TRIM(X) ; Remove Spaces
  1. F Q:$E(X,$L(X))'=" " S X=$E(X,1,($L(X)-1)) Q:$E(X,$L(X))'=" "
  1. F Q:$E(X,1)'=" " S X=$E(X,2,$L(X)) Q:$E(X,1)'=" "
  1. Q X