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

BITRS.m

Go to the documentation of this file.
  1. BITRS ;IHS/CMI/MWR - TRANSFORM X INTO REQD CASE; MAY 10, 2010
  1. ;;8.5;IMMUNIZATION;;SEP 01,2011
  1. ;;* MICHAEL REMILLARD, DDS * CIMARRON MEDICAL INFORMATICS, FOR IHS *
  1. ;; UTILITY: TRANSFORMS X INTO MIXED CASE OR UPPERCASE.
  1. ;
  1. ;
  1. ;----------
  1. T(X) ;EP
  1. ;---> Translate word to mixed case.
  1. ;
  1. Q:"^ "[$G(X) X
  1. N BIWORD,I
  1. ;
  1. ;---> Remove leading inappropriate characters if present.
  1. F Q:$E(X)'?1P S X=$E(X,2,99)
  1. ;
  1. ;---> Change first letter to uppercase.
  1. S BIWORD=$E(X)
  1. I BIWORD?1L S BIWORD=$C($A($E(BIWORD))-32)
  1. ;
  1. ;---> Do following characters.
  1. F I=2:1:$L(X) D CHAR
  1. ;
  1. ;
  1. ;---> Remove trailing space or quote.
  1. ;F Q:""" "'[$E(BIWORD,$L(BIWORD)) S BIWORD=$E(BIWORD,1,($L(BIWORD)-1))
  1. ;---> CodeChange for v7.1 - IHS/CMI/MWR 12/01/2000:
  1. ;---> Next line, handle word with leading space.
  1. F Q:(""" "'[$E(BIWORD,$L(BIWORD)))!($L(BIWORD)=0) D
  1. .S BIWORD=$E(BIWORD,1,($L(BIWORD)-1))
  1. ;
  1. ;
  1. Q BIWORD
  1. ;
  1. ;
  1. ;----------
  1. CHAR ;EP
  1. ;---> If this character is uppercase and previous character is
  1. ;---> not punctuation (except for an apostrophy) or a space,
  1. ;---> then change character to lowercase.
  1. ;
  1. I ($E(X,I)?1U)&(($E(X,I-1)'?1P)!($E(X,I-1)="'")) D Q
  1. .S BIWORD=BIWORD_$C($A($E(X,I))+32)
  1. ;
  1. ;
  1. ;---> If this character is lowercase and previous character is
  1. ;---> punctuation (but not an apostrophy) or a space, then change
  1. ;---> character to uppercase.
  1. ;
  1. I $E(X,I)?1L,$E(X,I-1)?1P,$E(X,I-1)'="'" D Q
  1. .S BIWORD=BIWORD_$C($A($E(X,I))-32) Q
  1. ;
  1. ;
  1. ;---> Add character to BIWORD string without modification.
  1. ;---> "\" placed before a letter forces it to be uppercase;
  1. ;---> HERE REMOVE ANY "\"'s.
  1. I $E(X,I)'="\" S BIWORD=BIWORD_$E(X,I)
  1. Q
  1. ;
  1. ;
  1. ;----------
  1. UP(X) ;EP
  1. ;---> Translate any lowercase letters to uppercase.
  1. ;---> Leave all other characters untouched.
  1. ;
  1. Q:"^ "[$G(X) X
  1. N BICHAR,BIWORD,I S BIWORD=""
  1. ;
  1. F I=1:1:$L(X) D S BIWORD=BIWORD_BICHAR
  1. .S BICHAR=$E(X,I)
  1. .Q:(($A(BICHAR)<97)!($A(BICHAR)>122))
  1. .S BICHAR=$C($A(BICHAR)-32)
  1. ;
  1. Q BIWORD
  1. ;
  1. ;
  1. ;----------
  1. LOW(X) ;EP
  1. ;---> Translate any uppercase letters to lowercase.
  1. ;---> Leave all other characters untouched.
  1. ;
  1. Q:"^ "[$G(X) X
  1. N BICHAR,BIWORD,I S BIWORD=""
  1. ;
  1. F I=1:1:$L(X) D S BIWORD=BIWORD_BICHAR
  1. .S BICHAR=$E(X,I)
  1. .Q:(($A(BICHAR)<65)!($A(BICHAR)>90))
  1. .S BICHAR=$C($A(BICHAR)+32)
  1. ;
  1. Q BIWORD