Reference Type: Supported, Category: Name Standardization, Integration Agreement: 3065
This API parses a name and converts it into the following standard format:
A name in standard format is entirely in uppercase, and contains no
Arabic numerals. The Family_name (last name) portion of a standard name appears
to the left of the comma and contains no spaces and no punctuation except
hyphens (-). The other parts of a standard name (the portion to the
right of the comma) contain no punctuation except for hyphens and spaces. NMI
and NMN are not used for the Middle_name.
STDNAME^XLFNAME optionally returns in an array the component parts of the name. It also optionally returns information in an array about possible problems encountered during the conversion of the name to standard form and the parsing of the name into its component parts.
(required) NAME is the name to be converted to standard format. It is assumed that the name is in the general format:
Family_name,Given_name(s) Middle_name Suffix(es)
If the "F" flag is not used, and the name contains no comma, it is assumed the name is in the general format:
Given_name(s) Middle_name Family_name Suffix(es)
The standard form of the name is returned in the NAME variable. If the "C" flag is passed in, the components of the name are returned in nodes descendent from NAME. (See " Output".)
(optional) Flags to control processing. Possible values are:
(optional) If provided, this is an array that STDNAME^XLFNAME returns if there are any ambiguities or possible problems in standardizing the name or parsing the name into component parts. (See " Output".)
This parameter is set to the name that was input converted to
NAME("FAMILY) = Family (Last) Name
If this parameter is set to the original name that was passed in the Name parameter. In addition, if there were any problems in the interpretation of the Name being standardized, descendents of Audit are set:
AUDIT("subscript") = ""
where "subscript" can be any one of the following:
In forming the standard name, the following changes are made:
In forming the component parts of the name, only the following changes are made:
In parsing the name into its component parts, if the name contains a
comma or the "F" flag is passed, STDNAME^XLFNAME looks for suffixes immediately
to the left of the first comma, and at the very end of the name. The suffixes
it recognizes are 1ST through 10TH, JR, SR, DR, MD, ESQ, DDS, RN, ARNP, DO,
PA, and Roman
numerals I through X.
(NOTE: The ARNP, DO, and PA suffixes were added with Kernel Patch XU*8.0*535.)
If a name part before any recognizable suffixes is more than one character in length, and contains no vowel or 'Y', it is also assumed to be a suffix. The Name Standardization looks for the DR suffix immediately after the first comma, and for any suffix between two commas immediately after the Family Name. The portion of the name to the left of the comma, less any suffixes, is assumed to be the Family Name.
After STDNAME^XLFNAME accounts for all Suffixes, it looks at the portion of the name after the comma. It assumes that the first space-delimited piece is the Given Name. If any other pieces are left, the last one (rightmost) is assumed to be the Middle Name, and anything else is appended to the end of the Given Name.
If the name contains no comma, and the "F" flag is not passed, STDNAME^XLFNAME looks for suffixes at the very end of the name. The last space-delimited piece before any suffixes is assumed to be the Family Name. The first space-delimited piece is assumed to be the Given Name. If any other pieces are left, the last one (rightmost) is assumed to be the Middle Name, and anything else is appended to the end of the Given Name.
In this example, the MYNAME variable is set to the name to be standardized. The "C" flag indicates that the name components should be returned in the MYNAME array, and the "P" flag indicates that parenthetical text should be removed from the name. STDNAME^XLFNAME sets MYAUD to original name passed in and sets nodes in the MYAUD array to flag changes and possible problems.
>S MYNAME="KRNUSER,FIFTY A. B. 2ND (TEST)" >D STDNAME^XLFNAME(.MYNAME,"CP",.MYAUD) >ZW MYNAME MYNAME=KRNUSER,FIFTY A B II MYNAME("FAMILY")=KRNUSER MYNAME("GIVEN")=FIFTY A. MYNAME("MIDDLE")=B. MYNAME("SUFFIX")=2ND >ZW MYAUD MYAUD=KRNUSER,FIFTY A. B. 2ND (TEST) MYAUD("MIDDLE")="" MYAUD("PERIOD")="" MYAUD("SPACE")="" MYAUD("STRIP")=""
STDNAME^XLFNAME returned the standard form of the name in MYNAME as KRNUSER,FIFTY A B II. It interpreted FIFTY A. as the given (first) name and B. as the middle name. Since this may not be correct, MYAUD("MIDDLE") is set. Periods were removed and spaces were removed to form the standard name, therefore MYAUD("PERIOD") and MYAUD("SPACE") were set. Finally, since the parenthetical text (TEST) was removed, MYAUD("STRIP") was set.
October 18, 2011