XLFNAME1 ;CIOFO-SF/TKW,MKO-Utilities for person name fields ;05/05/2010
Source file <XLFNAME1.m>
action | A | extended action | Ea | event driver | Ed | subscriber | Su | protocol | O | limited protocol | LP | run routine | RR | broker | B | edit | E | server | Se | P | screenman | SM | inquire | I |
Name | Comments | DBIA/ICR reference |
---|---|---|
REMDBL(X,S) | ;For each char in S, remove double chars
|
|
REMBE(X,S) | ;Remove each char in S from the beg and end of X
|
|
ROMAN(X) | ; Replace numeric suffixes to Roman Numeral equivalents
|
|
CHKSUF(X) | ;Return X if it looks like a suffix; otherwise, return null
|
|
CHKSUF1(X) | ; Return X if it looks like a suffix, but not I, V, X
|
|
PERIOD(X) | ; Change X so that there is a space after every period
|
|
PARENS(X) | ;Strip parenthetical part(s) from X
|
|
SUFEND(XUN,XUNO,XUNM,XUOUT,XUAUD) | ;Look for suffixes at end of XUN
|
|
CLEANC(XUPART,XUFLAG,XUAUD) | ; Component standardization
|
|
CLEANCX | ; Entry point from CLEANC^XLFNAME
|
|
NAMEFMT(XUNAME,XUFMT,XUFLAG,XUDLM) | ; Name formatting routine (extrinsic)
|
|
NAMEFMTX | ;
; XUNAME: Input name components array or Name Components Key fields ; XUFMT: F=Family name first,G=Given name first,H=HL7 (default G) ; XUFLAG: P=Include prefix,D=Include degree,S=Standardize components,M=Mixed case ; XUDLM: Delimiter if HL7 message (def = ^) |
|
MIX(X) | ; Return name part with only first letter upper-case
|
|
MIX2(XUN) | ; Properly capitalize suffixes, degrees
|
|
O(N) | ;O format
|
|
F(N,F) | ;F format
|
|
G(N,F) | ;G format
|
|
H(N,D) | ;H format
|
|
SPD(NAM,N,F) | ;Add Suffix, Prefix, and Degree
|
|
JOIN(S1,S2,D) | ;Return S1 joined with S2 (separate by D)
|
|
TRUNC(NC,OVR) | ;Truncate component
|
Name | Line Occurrences (* Changed, ! Killed) |
---|---|
^VA(20 - [#20] | NAMEFMTX+23, NAMEFMTX+27 |
Name | Line Occurrences |
---|---|
$$CHKSUF | SUFEND+8 |
$$CLEANC | NAMEFMTX+39 |
$$F | NAMEFMTX+57 |
$$G | NAMEFMTX+56 |
$$H | NAMEFMTX+54 |
$$JOIN | SUFEND+9, G+2, SPD+1, SPD+2, SPD+3 |
$$MIX | NAMEFMTX+45, MIX2+6 |
$$MIX2 | NAMEFMTX+46, NAMEFMTX+47 |
$$O | NAMEFMTX+55 |
$$PERIOD | CLEANCX+11 |
$$REMBE | CLEANCX+11, CLEANCX+23, CLEANCX+27 |
$$REMDBL | CLEANCX+11, CLEANCX+23, CLEANCX+27 |
$$ROMAN | SUFEND+9, CLEANCX+16 |
$$SPD | F+3, G+3 |
$$TRUNC | NAMEFMTX+63, NAMEFMTX+65, NAMEFMTX+66 |
>> | Not killed explicitly |
* | Changed |
! | Killed |
~ | Newed |
Name | Field # of Occurrence |
---|---|
% | MIX+1~, MIX+2* |
C | REMDBL+2*, REMDBL+3, PARENS+1~, PARENS+5*, PARENS+6, PARENS+7 |
D | H~, H+2, H+3, JOIN~, JOIN+1*, JOIN+2 |
DIERR | NAMEFMTX+29~ |
DIOUT | MIX2+1~, MIX2+8*, MIX2+12* |
DONE | PARENS+1~, PARENS+3*, PARENS+4, PARENS+7* |
F | F~, F+2, F+3, G~, G+3, SPD~, SPD+1, SPD+2, SPD+3 |
I | REMDBL+1~, REMDBL+2*, REMBE+1~, REMBE+2*, REMBE+3, REMBE+4*, REMBE+5, PERIOD+2~, PERIOD+3*, PERIOD+4 , CLEANCX+2~, CLEANCX+8*, CLEANCX+9, CLEANCX+16*, CLEANCX+19*, CLEANCX+20, NAMEFMTX+25~, NAMEFMTX+26*, NAMEFMTX+27*, MIX2+1~ , MIX2+2*, MIX2+3, MIX2+4, MIX2+5, MIX2+6, MIX2+8*, MIX2+10, MIX2+11, G+1~, G+2* |
IEN | NAMEFMTX+21~, NAMEFMTX+23*, NAMEFMTX+24, NAMEFMTX+27 |
IENS | NAMEFMTX+21~, NAMEFMTX+22*, NAMEFMTX+23, NAMEFMTX+30 |
IN | ROMAN+2~, ROMAN+4*, ROMAN+6 |
J | REMDBL+1~, REMDBL+3* |
L | MIX+1~, MIX+2*, MIX2+1~, MIX2+5*, MIX2+6, MIX2+9*, MIX2+10 |
LEV | PARENS+1~, PARENS+3*, PARENS+6*, PARENS+7* |
MSG | NAMEFMTX+29~ |
N | O~, F~, F+3, G~, G+3, H~, SPD~ |
N( | G+2 |
N("DEGREE" | H+2, SPD+3 |
N("FAMILY" | O+1, F+2, H+2 |
N("GIVEN" | F+2, H+2 |
N("MIDDLE" | F+2, H+2 |
N("PREFIX" | H+2, SPD+2 |
N("SUFFIX" | H+2, SPD+1 |
NAM | NAMEFMTX+29~, NAMEFMTX+30*, NAMEFMTX+31, F+1~, F+2*, F+3*, F+4*, F+5, G+1~, G+2* , G+3, H+1~, H+2*, H+3*, H+4, SPD~, SPD+1*, SPD+2*, SPD+3*, SPD+4 |
NC | TRUNC~, TRUNC+1*, TRUNC+2*, TRUNC+3 |
OUT | ROMAN+2~, ROMAN+5*, ROMAN+6 |
OVR | TRUNC~, TRUNC+1 |
P | PARENS+1~, PARENS+4*, PARENS+5, PARENS+6, PARENS+7, MIX2+1~, MIX2+2*, MIX2+4, MIX2+5, MIX2+8* , MIX2+9, MIX2+11 |
P1 | PARENS+1~, PARENS+3*, PARENS+6*, PARENS+7, PARENS+8 |
P2 | PARENS+1~, PARENS+2, PARENS+3*, PARENS+7*, PARENS+8 |
S | REMDBL~, REMDBL+2, REMBE~, REMBE+2, REMBE+4 |
S1 | JOIN~, JOIN+2 |
S2 | JOIN~, JOIN+2 |
U | ROMAN+6, CHKSUF+3, CHKSUF+4, CHKSUF1+3, CHKSUF1+4, NAMEFMTX+10, NAMEFMTX+27 |
V | CHKSUF+2~, CHKSUF+5, CHKSUF+6*, CHKSUF1+2~ |
X | REMDBL~, REMDBL+3*, REMDBL+4, REMBE~, REMBE+2, REMBE+3*, REMBE+4, REMBE+5*, REMBE+6, ROMAN~ , ROMAN+1, ROMAN+6*, ROMAN+7, CHKSUF~, CHKSUF+3, CHKSUF+4, CHKSUF+5, CHKSUF+6, CHKSUF1~, CHKSUF1+3 , CHKSUF1+4, PERIOD~, PERIOD+1, PERIOD+3, PERIOD+4*, PERIOD+5, PARENS~, PARENS+2, PARENS+4, PARENS+5 , PARENS+8*, PARENS+9, NAMEFMTX+44~, MIX~, MIX+2*, MIX+3, MIX2+6* |
XUAUD | SUFEND~, CLEANC~ |
XUAUD("NUMBER" | CLEANCX+17* |
XUAUD("PERIOD" | CLEANCX+13* |
XUAUD("PUNC" | CLEANCX+9*, CLEANCX+20* |
XUAUD("SPACE" | CLEANCX+24* |
XUAUD("SUFFIX" | CHKSUF+5* |
XUBLD | NAMEFMTX+5~, NAMEFMTX+51*, NAMEFMTX+53*, NAMEFMTX+61*, NAMEFMTX+62*, NAMEFMTX+63*, NAMEFMTX+64*, NAMEFMTX+65*, NAMEFMTX+66* |
XUCMP | NAMEFMTX+44~, NAMEFMTX+45* |
XUDLM | NAMEFMT~, NAMEFMTX+10*, NAMEFMTX+54 |
XUFLAG | CLEANC~, CLEANCX+3*, CLEANCX+7, CLEANCX+11, CLEANCX+15, CLEANCX+23, NAMEFMT~, NAMEFMTX+9*, NAMEFMTX+11, NAMEFMTX+39 , NAMEFMTX+43, NAMEFMTX+56, NAMEFMTX+57 |
XUFMT | NAMEFMT~, NAMEFMTX+8*, NAMEFMTX+54, NAMEFMTX+55, NAMEFMTX+56 |
XUI | SUFEND+3~, SUFEND+6*, SUFEND+7, SUFEND+10, SUFEND+12, SUFEND+13, NAMEFMTX+5~, NAMEFMTX+26*, NAMEFMTX+27, NAMEFMTX+37* , NAMEFMTX+38, NAMEFMTX+39 |
XULEN | NAMEFMTX+5~, NAMEFMTX+11*, NAMEFMTX+51, NAMEFMTX+53, NAMEFMTX+63, NAMEFMTX+65, NAMEFMTX+66, NAMEFMTX+67 |
XUN | SUFEND~, SUFEND+6, SUFEND+7, SUFEND+10*, NAMEFMTX+5~, NAMEFMTX+16*, NAMEFMTX+17, NAMEFMTX+31*, NAMEFMTX+34*, NAMEFMTX+51 , NAMEFMTX+53, NAMEFMTX+54*, NAMEFMTX+55*, NAMEFMTX+56*, NAMEFMTX+57*, NAMEFMTX+63, NAMEFMTX+65, NAMEFMTX+66, NAMEFMTX+67*, NAMEFMTX+68 , MIX2~, MIX2+2, MIX2+3, MIX2+4*, MIX2+5, MIX2+6*, MIX2+8, MIX2+10, MIX2+11*, MIX2+13 |
XUN( | NAMEFMTX+27*, NAMEFMTX+38*, NAMEFMTX+39*, NAMEFMTX+45* |
XUN("DEGREE" | NAMEFMTX+46*, NAMEFMTX+61* |
XUN("FAMILY" | NAMEFMTX+40, NAMEFMTX+66* |
XUN("GIVEN" | NAMEFMTX+65* |
XUN("MIDDLE" | NAMEFMTX+63* |
XUN("PREFIX" | NAMEFMTX+62* |
XUN("SUFFIX" | NAMEFMTX+47*, NAMEFMTX+64* |
XUNAME | NAMEFMT~, NAMEFMTX+15, NAMEFMTX+16, NAMEFMTX+34 |
XUNAME("FIELD" | NAMEFMTX+20, NAMEFMTX+23, NAMEFMTX+30 |
XUNAME("FILE" | NAMEFMTX+20, NAMEFMTX+23, NAMEFMTX+30 |
XUNAME("IENS" | NAMEFMTX+20, NAMEFMTX+22 |
XUNM | SUFEND~ |
XUNM("SUFFIX" | SUFEND+15* |
XUNO | SUFEND~, SUFEND+12, SUFEND+13* |
XUOUT | SUFEND~, SUFEND+4, SUFEND+11, SUFEND+15 |
XUOUT("SUFFIX" | SUFEND+15* |
XUPART | CLEANC~, CLEANCX+1, CLEANCX+5*, CLEANCX+8*, CLEANCX+9, CLEANCX+11, CLEANCX+13*, CLEANCX+16*, CLEANCX+17, CLEANCX+19* , CLEANCX+20, CLEANCX+23, CLEANCX+24, CLEANCX+25*, CLEANCX+27 |
XUSTEP | NAMEFMTX+5~, NAMEFMTX+51*, NAMEFMTX+60, NAMEFMTX+61, NAMEFMTX+62, NAMEFMTX+63, NAMEFMTX+64, NAMEFMTX+65, NAMEFMTX+66, NAMEFMTX+67 |
XUSUF | SUFEND+3~, SUFEND+4*, SUFEND+9*, SUFEND+15 |
XUSUFFIX | SUFEND+3~, SUFEND+6, SUFEND+8*, SUFEND+9 |
XUSUFO | SUFEND+3~, SUFEND+4*, SUFEND+12*, SUFEND+15 |
XUX | SUFEND+3~, SUFEND+7*, SUFEND+8, CLEANCX+2~, CLEANCX+7*, CLEANCX+8 |