DINIT012 ;SFISC/TKW,VEN/SMH-DIALOG & LANGUAGE FILE INITS ;20JAN2016
 ;;22.2;VA FileMan;;Jan 05, 2016;Build 42
 ;;Per VA Directive 6402, this routine should not be modified.
 ;;Submitted to OSEHRA 5 January 2015 by the VISTA Expertise Network.
 ;;Based on Medsphere Systems Corporation's MSC FileMan 1051.
 ;;Licensed under the terms of the Apache License, Version 2.0.
 ;
 F I=1:2 S X=$T(Q+I) Q:X=""  S Y=$E($T(Q+I+1),4,999),X=$E(X,4,999) S:$A(Y)=126 I=I+1,Y=$E(Y,2,999)_$E($T(Q+I+1),5,99) S:$A(Y)=61 Y=$E(Y,2,999) S @X=Y
Q Q
 ;;^DD(.85,.05,0)
 ;;=ALTERNATE THREE LETTER CODE^FJ3^^0;5^K:$L(X)>3!($L(X)<3) X
 ;;^DD(.85,.05,3)
 ;;=Answer must be 3 characters in length.
 ;;^DD(.85,.05,21,0)
 ;;=^^4^4^3121101^
 ;;^DD(.85,.05,21,1,0)
 ;;=This is the alternate three letter code for a language. This will only be 
 ;;^DD(.85,.05,21,2,0)
 ;;=used in cases where the language abbreviation is different in English 
 ;;^DD(.85,.05,21,3,0)
 ;;=than in the native language. E.g. GER instead of DEU; for German instead 
 ;;^DD(.85,.05,21,4,0)
 ;;=of Deutsch. This alternate abbreviation can be found in ISO 639-2/B.
 ;;^DD(.85,.05,23,0)
 ;;=^^1^1^3121101^
 ;;^DD(.85,.05,23,1,0)
 ;;=In a future version of Fileman, this field will have an optional key.
 ;;^DD(.85,.05,"DT")
 ;;=3121101
 ;;^DD(.85,.06,0)
 ;;=SCOPE^S^I:Individual;M:Macrolanguage;C:Collective;S:Special;L:Local;^0;6^Q
 ;;^DD(.85,.06,3)
 ;;=Select a language's scope
 ;;^DD(.85,.06,21,0)
 ;;=^^12^12^3121031^
 ;;^DD(.85,.06,21,1,0)
 ;;=Enter the Scope of a Language.
 ;;^DD(.85,.06,21,2,0)
 ;;= 
 ;;^DD(.85,.06,21,3,0)
 ;;=Individual if the language is an individually identifiable language 
 ;;^DD(.85,.06,21,4,0)
 ;;=(e.g. 'Cantonese').
 ;;^DD(.85,.06,21,5,0)
 ;;= 
 ;;^DD(.85,.06,21,6,0)
 ;;=Macrolanguage if the language encopasses several other languages (e.g. 
 ;;^DD(.85,.06,21,7,0)
 ;;='Chinese')
 ;;^DD(.85,.06,21,8,0)
 ;;= 
 ;;^DD(.85,.06,21,9,0)
 ;;=Collective if the language is a language group (e.g. 'Languages, 
 ;;^DD(.85,.06,21,10,0)
 ;;=Sino-Tibetan')
 ;;^DD(.85,.06,21,11,0)
 ;;= 
 ;;^DD(.85,.06,21,12,0)
 ;;=Special and Local are reserved for specific entries.
 ;;^DD(.85,.06,"DT")
 ;;=3121101
 ;;^DD(.85,.07,0)
 ;;=TYPE^S^L:Living;C:Constructed;A:Ancient;H:Historical;E:Extinct;^0;7^Q
 ;;^DD(.85,.07,.1)
 ;;=Historical Status
 ;;^DD(.85,.07,3)
 ;;=Select a choice.
 ;;^DD(.85,.07,21,0)
 ;;=^^12^12^3121101^^
 ;;^DD(.85,.07,21,1,0)
 ;;=Living means that the language is spoken today (e.g. English).
 ;;^DD(.85,.07,21,2,0)
 ;;= 
 ;;^DD(.85,.07,21,3,0)
 ;;=Constructed means that the language is artificial (e.g. Esperanto).
 ;;^DD(.85,.07,21,4,0)
 ;;= 
 ;;^DD(.85,.07,21,5,0)
 ;;=Ancient means that the language is very old and not spoken any more (e.g.
 ;;^DD(.85,.07,21,6,0)
 ;;=Ancient Egyptian).
 ;;^DD(.85,.07,21,7,0)
 ;;= 
 ;;^DD(.85,.07,21,8,0)
 ;;=Historical means that the language was being used in the Medieval times 
 ;;^DD(.85,.07,21,9,0)
 ;;=and is not spoken any more (e.g. Old High German).
 ;;^DD(.85,.07,21,10,0)
 ;;= 
 ;;^DD(.85,.07,21,11,0)
 ;;=Extinct means that the language was being used recently but has died out 
 ;;^DD(.85,.07,21,12,0)
 ;;=(e.g. Cornish).
 ;;^DD(.85,.07,"DT")
 ;;=3121101
 ;;^DD(.85,.08,0)
 ;;=LINGUISTIC CATEGORY^*P.85'^DI(.85,^0;8^S DIC("S")="I $P(^(0),U,6)=""C""" D ^DIC K DIC S DIC=$G(DIE),X=+Y K:Y<0 X
 ;;^DD(.85,.08,3)
 ;;=Select a choice.
 ;;^DD(.85,.08,12)
 ;;=Only collective languages are selectable
 ;;^DD(.85,.08,12.1)
 ;;=S DIC("S")="I $P(^(0),U,6)=""C"""
 ;;^DD(.85,.08,21,0)
 ;;=^^1^1^3121101^^
 ;;^DD(.85,.08,21,1,0)
 ;;=Enter a language collection to which this language belongs.
 ;;^DD(.85,.08,23,0)
 ;;=^^1^1^3121101^
 ;;^DD(.85,.08,23,1,0)
 ;;=The current version of this file does not distribute data for this field.
 ;;^DD(.85,.08,"DT")
 ;;=3121101
 ;;^DD(.85,.09,0)
 ;;=MEMBER OF LANGUAGE SET^*P.85'^DI(.85,^0;9^S DIC("S")="I $P(^(0),U,6)=""M""" D ^DIC K DIC S DIC=$G(DIE),X=+Y K:Y<0 X
 ;;^DD(.85,.09,3)
 ;;=Enter a choice.
 ;;^DD(.85,.09,12)
 ;;=You may only select Macrolanguages
 ;;^DD(.85,.09,12.1)
 ;;=S DIC("S")="I $P(^(0),U,6)=""M"""
 ;;^DD(.85,.09,21,0)
 ;;=^^3^3^3121101^
 ;;^DD(.85,.09,21,1,0)
 ;;=If this language is a dialect of a macrolanguage, select the 
 ;;^DD(.85,.09,21,2,0)
 ;;=macrolanguage to which it belongs. (E.g. Cantonese is a dialect of 
 ;;^DD(.85,.09,21,3,0)
 ;;=Chinese; thus Chinese is Cantonese's macrolanguage.)
 ;;^DD(.85,.09,23,0)
 ;;=^^1^1^3121101^
 ;;^DD(.85,.09,23,1,0)
 ;;=The current version of this file does not distribute data for this field.
 ;;^DD(.85,.09,"DT")
 ;;=3121101
 ;;^DD(.85,1,0)
 ;;=ALTERNATE NAME^.8501^^1;0
 ;;^DD(.85,1,21,0)
 ;;=^^2^2^3160119^
 ;;^DD(.85,1,21,1,0)
 ;;=This multiple contains other names by which the language in this entry is known.  
 ;;^DD(.85,10,0)
 ;;=DESCRIPTION^.8502^^10;0
 ;;^DD(.85,10,"DT")
 ;;=3121031
 ;;^DD(.85,10.1,0)
 ;;=ORDINAL NUMBER FORMAT^K^^ORD;E1,245^K:$L(X)>245 X D:$D(X) ^DIM
 ;;^DD(.85,10.1,3)
 ;;=This is Standard MUMPS code.
 ;;^DD(.85,10.1,9)
 ;;=@
 ;;^DD(.85,10.1,21,0)
 ;;=^^6^6^2941121^^^^
 ;;^DD(.85,10.1,21,1,0)
 ;;=MUMPS code used to transfer a number in Y to its ordinal equivalent in
 ;;^DD(.85,10.1,21,2,0)
 ;;=this language. The code should set Y to the ordinal equivalent without
 ;;^DD(.85,10.1,21,3,0)
 ;;=altering any other variables in the environment.  Ex. in English:
 ;;^DD(.85,10.1,21,4,0)
 ;;=       Y=1     becomes         Y=1ST
 ;;^DD(.85,10.1,21,5,0)
 ;;=       Y=2     becomes         Y=2ND
 ;;^DD(.85,10.1,21,6,0)
 ;;=       Y=3     becomes         Y=3RD  etc.
 ;;^DD(.85,10.1,"DT")
 ;;=2940307
 ;;^DD(.85,10.2,0)
 ;;=DATE/TIME FORMAT^K^^DD;E1,245^K:$L(X)>245 X D:$D(X) ^DIM
 ;;^DD(.85,10.2,3)
 ;;=This is Standard MUMPS code.
 ;;^DD(.85,10.2,9)
 ;;=@
 ;;^DD(.85,10.2,21,0)
 ;;=^^6^6^2941121^^^
 ;;^DD(.85,10.2,21,1,0)
 ;;=MUMPS code used to transfer a date or date/time in Y from FileMan internal
 ;;^DD(.85,10.2,21,2,0)
 ;;=format, to printable format equivalent to English MMM DD,YYYY@HH.MM.SS.
 ;;^DD(.85,10.2,21,3,0)
 ;;=The code should set Y to the output, without altering any other variables
 ;;^DD(.85,10.2,21,4,0)
 ;;=in the environment.  Ex. in English:
 ;;^DD(.85,10.2,21,5,0)
 ;;= 
 ;;^DD(.85,10.2,21,6,0)
 ;;=       Y=2940612.031245        becomes         Y=JUN 12,1994@03:12:45
 ;;^DD(.85,10.2,"DT")
 ;;=2940307
 ;;^DD(.85,10.21,0)
 ;;=DATE/TIME FORMAT (FMTE)^K^^FMTE;E1,245^K:$L(X)>245 X D:$D(X) ^DIM
 ;;^DD(.85,10.21,3)
 ;;=This is Standard MUMPS code.
 ;;^DD(.85,10.21,9)
 ;;=@
 ;;^DD(.85,10.21,21,0)
 ;;=^^22^22^2941122^
 ;;^DD(.85,10.21,21,1,0)
 ;;=MUMPS code used to transfer a date or date/time in Y from FileMan internal
 ;;^DD(.85,10.21,21,2,0)
 ;;=format, to printable format based on the various outputs from routine
 ;;^DD(.85,10.21,21,3,0)
 ;;=FMTE^DILIBF.  This is an extrinsic function.  Coming in to this MUMPS
 ;;^DD(.85,10.21,21,4,0)
 ;;=code, in addition to the internal date in Y, a third parameter will be
 ;;^DD(.85,10.21,21,5,0)
 ;;=defined to contain flags equivalent to the flag passed as the second input
 ;;^DD(.85,10.21,21,6,0)
 ;;=parameter to FMTE^DILIBF. The code should set Y to the output, without
 ;;^DD(.85,10.21,21,7,0)
 ;;=altering any other variables in the environment.  The output should be
 ;;^DD(.85,10.21,21,8,0)
 ;;=formatted based on these flags:
 ;;^DD(.85,10.21,21,9,0)
 ;;= 
 ;;^DD(.85,10.21,21,10,0)
 ;;= 1    MMM DD, YYYY@HH:MM:SS
 ;;^DD(.85,10.21,21,11,0)
 ;;= 2    MM/DD/YY@HH:MM:SS     no leading zeroes on month,day
 ;;^DD(.85,10.21,21,12,0)
 ;;= 3    DD/MM/YY@HH:MM:SS     no leading zeroes on month,day
 ;;^DD(.85,10.21,21,13,0)
 ;;= 4    YY/MM/DD@HH:MM:SS
 ;;^DD(.85,10.21,21,14,0)
 ;;= 5    MMM DD,YYYY@HH:MM:SS  no space before year,no leading zero on day
 ;;^DD(.85,10.21,21,15,0)
 ;;= 6    MM-DD-YYYY @ HH:MM:SS spaces separate time 
 ;;^DD(.85,10.21,21,16,0)
 ;;= 7    MM-DD-YYYY@HH:MM:SS   no leading zeroes on month,day
 ;;^DD(.85,10.21,21,17,0)
 ;;= 
 ;;^DD(.85,10.21,21,18,0)
 ;;=letters in the flag
 ;;^DD(.85,10.21,21,19,0)
 ;;= S    return always seconds
 ;;^DD(.85,10.21,21,20,0)
 ;;= U    return uppercase month names
 ;;^DD(.85,10.21,21,21,0)
 ;;= P    return time as am,pm
 ;;^DD(.85,10.21,21,22,0)
 ;;= D    return only date part
 ;;^DD(.85,10.21,"DT")
 ;;=2940624
 ;;^DD(.85,10.22,0)
 ;;=TIME^K^^TIME;E1,245^K:$L(X)>245 X D:$D(X) ^DIM
 ;;^DD(.85,10.22,3)
 ;;=This is Standard MUMPS code for the output of time only.
 ;;^DD(.85,10.22,9)
 ;;=@
 ;;^DD(.85,10.22,21,0)
 ;;=^^2^2^2960318^
 ;;^DD(.85,10.22,21,1,0)
 ;;=The code stored here will be used to get formatted output of the time
 ;;^DD(.85,10.22,21,2,0)
 ;;=part belonging to a FileMan Date/Time value.
 ;;^DD(.85,10.22,"DT")
 ;;=2960318
 ;;^DD(.85,10.3,0)
 ;;=CARDINAL NUMBER FORMAT^K^^CRD;E1,245^K:$L(X)>245 X D:$D(X) ^DIM
 ;;^DD(.85,10.3,3)
 ;;=This is Standard MUMPS code.
 ;;^DD(.85,10.3,9)
 ;;=@
 ;;^DD(.85,10.3,21,0)
 ;;=^^5^5^2941121^^
 ;;^DD(.85,10.3,21,1,0)
 ;;=MUMPS code used to transfer a number in Y to its cardinal equivalent in
 ;;^DD(.85,10.3,21,2,0)
 ;;=this language. The code should set Y to the cardinal equivalent without
 ;;^DD(.85,10.3,21,3,0)
 ;;=altering any other variables in the environment.  Ex. in English:
 ;;^DD(.85,10.3,21,4,0)
 ;;=       Y=2000     becomes         Y=2,000
 ;;^DD(.85,10.3,21,5,0)
 ;;=       Y=1234567  becomes         Y=1,234,567
 ;;^DD(.85,10.3,"DT")
 ;;=2940308
 ;;^DD(.85,10.4,0)
 ;;=UPPERCASE CONVERSION^K^^UC;E1,245^K:$L(X)>245 X D:$D(X) ^DIM
 ;;^DD(.85,10.4,3)
 ;;=This is Standard MUMPS code.
 ;;^DD(.85,10.4,9)
 ;;=@
 ;;^DD(.85,10.4,21,0)
 ;;=^^4^4^2941121^
 ;;^DD(.85,10.4,21,1,0)
 ;;=MUMPS code used to convert text in Y to its upper-case equivalent in
 ;;^DD(.85,10.4,21,2,0)
 ;;=this language. The code should set Y to the external format without
 ;;^DD(.85,10.4,21,3,0)
 ;;=altering any other variables in the environment.  In English, changes
 ;;^DD(.85,10.4,21,4,0)
 ;;=   abCdeF      to: ABCDEF
 ;;^DD(.85,10.4,"DT")
 ;;=2940308
 ;;^DD(.85,10.5,0)
 ;;=LOWERCASE CONVERSION^K^^LC;E1,245^K:$L(X)>245 X D:$D(X) ^DIM
 ;;^DD(.85,10.5,3)
 ;;=This is Standard MUMPS code.
 ;;^DD(.85,10.5,9)
 ;;=@
 ;;^DD(.85,10.5,21,0)
 ;;=^^4^4^2941121^
 ;;^DD(.85,10.5,21,1,0)
 ;;=MUMPS code used to convert text in Y to its lower-case equivalent in  
 ;;^DD(.85,10.5,21,2,0)
 ;;=this language. The code should set Y to the external format without
 ;;^DD(.85,10.5,21,3,0)
 ;;=altering any other variables in the environment.  In English, changes:
 ;;^DD(.85,10.5,21,4,0)
 ;;=    ABcdEFgHij         to:  abcdefghij
 ;;^DD(.85,10.5,"DT")
 ;;=2940308
 ;;^DD(.85,20.2,0)
 ;;=DATE INPUT^K^^20.2;E1,245^K:$L(X)>245 X D:$D(X) ^DIM
 ;;^DD(.85,20.2,3)
 ;;=This is Standard MUMPS code.
 ;;^DD(.85,20.2,9)
 ;;=@
 ;;^DD(.85,20.2,"DT")
 ;;=2940714
 ;;^DD(.8501,0)
 ;;=ALTERNATE NAME SUB-FIELD^^.01^1
 ;;^DD(.8501,0,"DT")
 ;;=3121101
 ;;^DD(.8501,0,"IX","B",.8501,.01)
 ;;=
 ;;^DD(.8501,0,"NM","ALTERNATE NAME")
 ;;=
 ;;^DD(.8501,0,"UP")
 ;;=.85
 ;;^DD(.8501,.01,0)
 ;;=ALTERNATE NAME^MFJ60^^0;1^K:$L(X)>60!($L(X)<1) X
 ;;^DD(.8501,.01,1,0)
 ;;=^.1
 ;;^DD(.8501,.01,1,1,0)
 ;;=.8501^B
 ;;^DD(.8501,.01,1,1,1)
 ;;=S ^DI(.85,DA(1),1,"B",$E(X,1,30),DA)=""
 ;;^DD(.8501,.01,1,1,2)
 ;;=K ^DI(.85,DA(1),1,"B",$E(X,1,30),DA)
 ;;^DD(.8501,.01,1,2,0)
 ;;=.85^F
 ;;^DD(.8501,.01,1,2,1)
 ;;=S ^DI(.85,"F",$E(X,1,30),DA(1),DA)=""
 ;;^DD(.8501,.01,1,2,2)
 ;;=K ^DI(.85,"F",$E(X,1,30),DA(1),DA)
 ;;^DD(.8501,.01,1,2,3)
 ;;=WHOLE FILE CROSS REFERENCE FOR ALTERNATE NAME
 ;;^DD(.8501,.01,1,2,"%D",0)
 ;;=^^1^1^3121101^
 ;;^DD(.8501,.01,1,2,"%D",1,0)
 ;;=Whole file cross-reference for ALTERNATE NAME multiple.
 ;;^DD(.8501,.01,1,2,"DT")
 ;;=3121101
 ;;^DD(.8501,.01,3)
 ;;=Answer must be 1-60 characters in length.
 ;;^DD(.8501,.01,21,0)
 ;;=^^2^2^3121101^^
 ;;^DD(.8501,.01,21,1,0)
 ;;=This field contains other synonyms for a language.
 ;;^DD(.8501,.01,21,2,0)
 ;;=E.g. for Greek, synonyms include Ellinika and Romaic.
 ;;^DD(.8501,.01,"DT")
 ;;=3121101
 ;;^DD(.8502,0)
 ;;=DESCRIPTION SUB-FIELD^^.01^1
 ;;^DD(.8502,0,"DT")
 ;;=3121031
 ;;^DD(.8502,0,"NM","DESCRIPTION")
 ;;=
 ;;^DD(.8502,0,"UP")
 ;;=.85
 ;;^DD(.8502,.01,0)
 ;;=DESCRIPTION^Wx^^0;1
 ;;^DD(.8502,.01,3)
 ;;=Enter free text data.  Items within '|' will NOT be evaluated.
 ;;^DD(.8502,.01,"DT")
 ;;=3121031
 ;;^DD(.8502,.01,21,0)
 ;;=^^1^1^3160102
 ;;^DD(.8502,.01,21,1,0)
 ;;=An optional description of the language can be entered.
 ;;^UTILITY("KX",$J,"IX",.85,.85,"B",0)
 ;;=.85^B^Regular new-style B Index^R^^F^IR^I^.85^^^^^LS
 ;;^UTILITY("KX",$J,"IX",.85,.85,"B",1)
 ;;=S ^DI(.85,"B",X,DA)=""
 ;;^UTILITY("KX",$J,"IX",.85,.85,"B",2)
 ;;=K ^DI(.85,"B",X,DA)
 ;;^UTILITY("KX",$J,"IX",.85,.85,"B",2.5)
 ;;=K ^DI(.85,"B")
 ;;^UTILITY("KX",$J,"IX",.85,.85,"B",11.1,0)
 ;;=^.114IA^1^1
 ;;^UTILITY("KX",$J,"IX",.85,.85,"B",11.1,1,0)
 ;;=1^F^.85^.01^^1^F
 ;;^UTILITY("KX",$J,"IX",.85,.85,"B",11.1,1,3)
 ;;=
 ;;^UTILITY("KX",$J,"IX",.85,.85,"C",0)
 ;;=.85^C^Regular new style index on two letter language codes^R^^F^IR^I^.85^^^^^LS
 ;;^UTILITY("KX",$J,"IX",.85,.85,"C",1)
 ;;=S ^DI(.85,"C",X,DA)=""
 ;;^UTILITY("KX",$J,"IX",.85,.85,"C",2)
 ;;=K ^DI(.85,"C",X,DA)
 ;;^UTILITY("KX",$J,"IX",.85,.85,"C",2.5)
 ;;=K ^DI(.85,"C")
 ;;^UTILITY("KX",$J,"IX",.85,.85,"C",11.1,0)
 ;;=^.114IA^1^1
 ;;^UTILITY("KX",$J,"IX",.85,.85,"C",11.1,1,0)
 ;;=1^F^.85^.02^^1^F
 ;;^UTILITY("KX",$J,"IX",.85,.85,"D",0)
 ;;=.85^D^Regular new-style index for three letter abbreviations for languages^R^^F^IR^I^.85^^^^^LS
 ;;^UTILITY("KX",$J,"IX",.85,.85,"D",1)
 ;;=S ^DI(.85,"D",$E(X,1,30),DA)=""
 ;;^UTILITY("KX",$J,"IX",.85,.85,"D",2)
 ;;=K ^DI(.85,"D",$E(X,1,30),DA)
 ;;^UTILITY("KX",$J,"IX",.85,.85,"D",2.5)
 ;;=K ^DI(.85,"D")
 ;;^UTILITY("KX",$J,"IX",.85,.85,"D",11.1,0)
 ;;=^.114IA^1^1
 ;;^UTILITY("KX",$J,"IX",.85,.85,"D",11.1,1,0)
 ;;=1^F^.85^.03^30^1^F
 ;;^UTILITY("KX",$J,"IX",.85,.85,"E",0)
 ;;=.85^E^(Pseudo-)Mnemonic index for the Alternate three letter code^MU^^F^IR^I^.85^^^^^LS
 ;;^UTILITY("KX",$J,"IX",.85,.85,"E",.1,0)
 ;;=^^6^6^3121031^
 ;;^UTILITY("KX",$J,"IX",.85,.85,"E",.1,1,0)
 ;;=This will add entries to the D index for the three letter code a la the 
 ;;^UTILITY("KX",$J,"IX",.85,.85,"E",.1,2,0)
 ;;=mnemonic style.
 ;;^UTILITY("KX",$J,"IX",.85,.85,"E",.1,3,0)
 ;;= 
 ;;^UTILITY("KX",$J,"IX",.85,.85,"E",.1,4,0)
 ;;=If you need re-cross-reference this field, you need to kill of the 
 ;;^UTILITY("KX",$J,"IX",.85,.85,"E",.1,5,0)
 ;;=entries in the regular D index, set the D index, and then set this index 
 ;;^UTILITY("KX",$J,"IX",.85,.85,"E",.1,6,0)
 ;;=to update the D with the mnemonic xrefs.
 ;;^UTILITY("KX",$J,"IX",.85,.85,"E",1)
 ;;=S ^DI(.85,"D",X,DA)=1
 ;;^UTILITY("KX",$J,"IX",.85,.85,"E",2)
 ;;=K ^DI(.85,"D",X,DA)
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HDINIT012   15054     printed  Sep 23, 2025@20:26:11                                                                                                                                                                                                   Page 2
DINIT012  ;SFISC/TKW,VEN/SMH-DIALOG & LANGUAGE FILE INITS ;20JAN2016
 +1       ;;22.2;VA FileMan;;Jan 05, 2016;Build 42
 +2       ;;Per VA Directive 6402, this routine should not be modified.
 +3       ;;Submitted to OSEHRA 5 January 2015 by the VISTA Expertise Network.
 +4       ;;Based on Medsphere Systems Corporation's MSC FileMan 1051.
 +5       ;;Licensed under the terms of the Apache License, Version 2.0.
 +6       ;
 +7        FOR I=1:2
               SET X=$TEXT(Q+I)
               if X=""
                   QUIT 
               SET Y=$EXTRACT($TEXT(Q+I+1),4,999)
               SET X=$EXTRACT(X,4,999)
               if $ASCII(Y)=126
                   SET I=I+1
                   SET Y=$EXTRACT(Y,2,999)_$EXTRACT($TEXT(Q+I+1),5,99)
               if $ASCII(Y)=61
                   SET Y=$EXTRACT(Y,2,999)
               SET @X=Y
Q          QUIT 
 +1       ;;^DD(.85,.05,0)
 +2       ;;=ALTERNATE THREE LETTER CODE^FJ3^^0;5^K:$L(X)>3!($L(X)<3) X
 +3       ;;^DD(.85,.05,3)
 +4       ;;=Answer must be 3 characters in length.
 +5       ;;^DD(.85,.05,21,0)
 +6       ;;=^^4^4^3121101^
 +7       ;;^DD(.85,.05,21,1,0)
 +8       ;;=This is the alternate three letter code for a language. This will only be 
 +9       ;;^DD(.85,.05,21,2,0)
 +10      ;;=used in cases where the language abbreviation is different in English 
 +11      ;;^DD(.85,.05,21,3,0)
 +12      ;;=than in the native language. E.g. GER instead of DEU; for German instead 
 +13      ;;^DD(.85,.05,21,4,0)
 +14      ;;=of Deutsch. This alternate abbreviation can be found in ISO 639-2/B.
 +15      ;;^DD(.85,.05,23,0)
 +16      ;;=^^1^1^3121101^
 +17      ;;^DD(.85,.05,23,1,0)
 +18      ;;=In a future version of Fileman, this field will have an optional key.
 +19      ;;^DD(.85,.05,"DT")
 +20      ;;=3121101
 +21      ;;^DD(.85,.06,0)
 +22      ;;=SCOPE^S^I:Individual;M:Macrolanguage;C:Collective;S:Special;L:Local;^0;6^Q
 +23      ;;^DD(.85,.06,3)
 +24      ;;=Select a language's scope
 +25      ;;^DD(.85,.06,21,0)
 +26      ;;=^^12^12^3121031^
 +27      ;;^DD(.85,.06,21,1,0)
 +28      ;;=Enter the Scope of a Language.
 +29      ;;^DD(.85,.06,21,2,0)
 +30      ;;= 
 +31      ;;^DD(.85,.06,21,3,0)
 +32      ;;=Individual if the language is an individually identifiable language 
 +33      ;;^DD(.85,.06,21,4,0)
 +34      ;;=(e.g. 'Cantonese').
 +35      ;;^DD(.85,.06,21,5,0)
 +36      ;;= 
 +37      ;;^DD(.85,.06,21,6,0)
 +38      ;;=Macrolanguage if the language encopasses several other languages (e.g. 
 +39      ;;^DD(.85,.06,21,7,0)
 +40      ;;='Chinese')
 +41      ;;^DD(.85,.06,21,8,0)
 +42      ;;= 
 +43      ;;^DD(.85,.06,21,9,0)
 +44      ;;=Collective if the language is a language group (e.g. 'Languages, 
 +45      ;;^DD(.85,.06,21,10,0)
 +46      ;;=Sino-Tibetan')
 +47      ;;^DD(.85,.06,21,11,0)
 +48      ;;= 
 +49      ;;^DD(.85,.06,21,12,0)
 +50      ;;=Special and Local are reserved for specific entries.
 +51      ;;^DD(.85,.06,"DT")
 +52      ;;=3121101
 +53      ;;^DD(.85,.07,0)
 +54      ;;=TYPE^S^L:Living;C:Constructed;A:Ancient;H:Historical;E:Extinct;^0;7^Q
 +55      ;;^DD(.85,.07,.1)
 +56      ;;=Historical Status
 +57      ;;^DD(.85,.07,3)
 +58      ;;=Select a choice.
 +59      ;;^DD(.85,.07,21,0)
 +60      ;;=^^12^12^3121101^^
 +61      ;;^DD(.85,.07,21,1,0)
 +62      ;;=Living means that the language is spoken today (e.g. English).
 +63      ;;^DD(.85,.07,21,2,0)
 +64      ;;= 
 +65      ;;^DD(.85,.07,21,3,0)
 +66      ;;=Constructed means that the language is artificial (e.g. Esperanto).
 +67      ;;^DD(.85,.07,21,4,0)
 +68      ;;= 
 +69      ;;^DD(.85,.07,21,5,0)
 +70      ;;=Ancient means that the language is very old and not spoken any more (e.g.
 +71      ;;^DD(.85,.07,21,6,0)
 +72      ;;=Ancient Egyptian).
 +73      ;;^DD(.85,.07,21,7,0)
 +74      ;;= 
 +75      ;;^DD(.85,.07,21,8,0)
 +76      ;;=Historical means that the language was being used in the Medieval times 
 +77      ;;^DD(.85,.07,21,9,0)
 +78      ;;=and is not spoken any more (e.g. Old High German).
 +79      ;;^DD(.85,.07,21,10,0)
 +80      ;;= 
 +81      ;;^DD(.85,.07,21,11,0)
 +82      ;;=Extinct means that the language was being used recently but has died out 
 +83      ;;^DD(.85,.07,21,12,0)
 +84      ;;=(e.g. Cornish).
 +85      ;;^DD(.85,.07,"DT")
 +86      ;;=3121101
 +87      ;;^DD(.85,.08,0)
 +88      ;;=LINGUISTIC CATEGORY^*P.85'^DI(.85,^0;8^S DIC("S")="I $P(^(0),U,6)=""C""" D ^DIC K DIC S DIC=$G(DIE),X=+Y K:Y<0 X
 +89      ;;^DD(.85,.08,3)
 +90      ;;=Select a choice.
 +91      ;;^DD(.85,.08,12)
 +92      ;;=Only collective languages are selectable
 +93      ;;^DD(.85,.08,12.1)
 +94      ;;=S DIC("S")="I $P(^(0),U,6)=""C"""
 +95      ;;^DD(.85,.08,21,0)
 +96      ;;=^^1^1^3121101^^
 +97      ;;^DD(.85,.08,21,1,0)
 +98      ;;=Enter a language collection to which this language belongs.
 +99      ;;^DD(.85,.08,23,0)
 +100     ;;=^^1^1^3121101^
 +101     ;;^DD(.85,.08,23,1,0)
 +102     ;;=The current version of this file does not distribute data for this field.
 +103     ;;^DD(.85,.08,"DT")
 +104     ;;=3121101
 +105     ;;^DD(.85,.09,0)
 +106     ;;=MEMBER OF LANGUAGE SET^*P.85'^DI(.85,^0;9^S DIC("S")="I $P(^(0),U,6)=""M""" D ^DIC K DIC S DIC=$G(DIE),X=+Y K:Y<0 X
 +107     ;;^DD(.85,.09,3)
 +108     ;;=Enter a choice.
 +109     ;;^DD(.85,.09,12)
 +110     ;;=You may only select Macrolanguages
 +111     ;;^DD(.85,.09,12.1)
 +112     ;;=S DIC("S")="I $P(^(0),U,6)=""M"""
 +113     ;;^DD(.85,.09,21,0)
 +114     ;;=^^3^3^3121101^
 +115     ;;^DD(.85,.09,21,1,0)
 +116     ;;=If this language is a dialect of a macrolanguage, select the 
 +117     ;;^DD(.85,.09,21,2,0)
 +118     ;;=macrolanguage to which it belongs. (E.g. Cantonese is a dialect of 
 +119     ;;^DD(.85,.09,21,3,0)
 +120     ;;=Chinese; thus Chinese is Cantonese's macrolanguage.)
 +121     ;;^DD(.85,.09,23,0)
 +122     ;;=^^1^1^3121101^
 +123     ;;^DD(.85,.09,23,1,0)
 +124     ;;=The current version of this file does not distribute data for this field.
 +125     ;;^DD(.85,.09,"DT")
 +126     ;;=3121101
 +127     ;;^DD(.85,1,0)
 +128     ;;=ALTERNATE NAME^.8501^^1;0
 +129     ;;^DD(.85,1,21,0)
 +130     ;;=^^2^2^3160119^
 +131     ;;^DD(.85,1,21,1,0)
 +132     ;;=This multiple contains other names by which the language in this entry is known.  
 +133     ;;^DD(.85,10,0)
 +134     ;;=DESCRIPTION^.8502^^10;0
 +135     ;;^DD(.85,10,"DT")
 +136     ;;=3121031
 +137     ;;^DD(.85,10.1,0)
 +138     ;;=ORDINAL NUMBER FORMAT^K^^ORD;E1,245^K:$L(X)>245 X D:$D(X) ^DIM
 +139     ;;^DD(.85,10.1,3)
 +140     ;;=This is Standard MUMPS code.
 +141     ;;^DD(.85,10.1,9)
 +142     ;;=@
 +143     ;;^DD(.85,10.1,21,0)
 +144     ;;=^^6^6^2941121^^^^
 +145     ;;^DD(.85,10.1,21,1,0)
 +146     ;;=MUMPS code used to transfer a number in Y to its ordinal equivalent in
 +147     ;;^DD(.85,10.1,21,2,0)
 +148     ;;=this language. The code should set Y to the ordinal equivalent without
 +149     ;;^DD(.85,10.1,21,3,0)
 +150     ;;=altering any other variables in the environment.  Ex. in English:
 +151     ;;^DD(.85,10.1,21,4,0)
 +152     ;;=       Y=1     becomes         Y=1ST
 +153     ;;^DD(.85,10.1,21,5,0)
 +154     ;;=       Y=2     becomes         Y=2ND
 +155     ;;^DD(.85,10.1,21,6,0)
 +156     ;;=       Y=3     becomes         Y=3RD  etc.
 +157     ;;^DD(.85,10.1,"DT")
 +158     ;;=2940307
 +159     ;;^DD(.85,10.2,0)
 +160     ;;=DATE/TIME FORMAT^K^^DD;E1,245^K:$L(X)>245 X D:$D(X) ^DIM
 +161     ;;^DD(.85,10.2,3)
 +162     ;;=This is Standard MUMPS code.
 +163     ;;^DD(.85,10.2,9)
 +164     ;;=@
 +165     ;;^DD(.85,10.2,21,0)
 +166     ;;=^^6^6^2941121^^^
 +167     ;;^DD(.85,10.2,21,1,0)
 +168     ;;=MUMPS code used to transfer a date or date/time in Y from FileMan internal
 +169     ;;^DD(.85,10.2,21,2,0)
 +170     ;;=format, to printable format equivalent to English MMM DD,YYYY@HH.MM.SS.
 +171     ;;^DD(.85,10.2,21,3,0)
 +172     ;;=The code should set Y to the output, without altering any other variables
 +173     ;;^DD(.85,10.2,21,4,0)
 +174     ;;=in the environment.  Ex. in English:
 +175     ;;^DD(.85,10.2,21,5,0)
 +176     ;;= 
 +177     ;;^DD(.85,10.2,21,6,0)
 +178     ;;=       Y=2940612.031245        becomes         Y=JUN 12,1994@03:12:45
 +179     ;;^DD(.85,10.2,"DT")
 +180     ;;=2940307
 +181     ;;^DD(.85,10.21,0)
 +182     ;;=DATE/TIME FORMAT (FMTE)^K^^FMTE;E1,245^K:$L(X)>245 X D:$D(X) ^DIM
 +183     ;;^DD(.85,10.21,3)
 +184     ;;=This is Standard MUMPS code.
 +185     ;;^DD(.85,10.21,9)
 +186     ;;=@
 +187     ;;^DD(.85,10.21,21,0)
 +188     ;;=^^22^22^2941122^
 +189     ;;^DD(.85,10.21,21,1,0)
 +190     ;;=MUMPS code used to transfer a date or date/time in Y from FileMan internal
 +191     ;;^DD(.85,10.21,21,2,0)
 +192     ;;=format, to printable format based on the various outputs from routine
 +193     ;;^DD(.85,10.21,21,3,0)
 +194     ;;=FMTE^DILIBF.  This is an extrinsic function.  Coming in to this MUMPS
 +195     ;;^DD(.85,10.21,21,4,0)
 +196     ;;=code, in addition to the internal date in Y, a third parameter will be
 +197     ;;^DD(.85,10.21,21,5,0)
 +198     ;;=defined to contain flags equivalent to the flag passed as the second input
 +199     ;;^DD(.85,10.21,21,6,0)
 +200     ;;=parameter to FMTE^DILIBF. The code should set Y to the output, without
 +201     ;;^DD(.85,10.21,21,7,0)
 +202     ;;=altering any other variables in the environment.  The output should be
 +203     ;;^DD(.85,10.21,21,8,0)
 +204     ;;=formatted based on these flags:
 +205     ;;^DD(.85,10.21,21,9,0)
 +206     ;;= 
 +207     ;;^DD(.85,10.21,21,10,0)
 +208     ;;= 1    MMM DD, YYYY@HH:MM:SS
 +209     ;;^DD(.85,10.21,21,11,0)
 +210     ;;= 2    MM/DD/YY@HH:MM:SS     no leading zeroes on month,day
 +211     ;;^DD(.85,10.21,21,12,0)
 +212     ;;= 3    DD/MM/YY@HH:MM:SS     no leading zeroes on month,day
 +213     ;;^DD(.85,10.21,21,13,0)
 +214     ;;= 4    YY/MM/DD@HH:MM:SS
 +215     ;;^DD(.85,10.21,21,14,0)
 +216     ;;= 5    MMM DD,YYYY@HH:MM:SS  no space before year,no leading zero on day
 +217     ;;^DD(.85,10.21,21,15,0)
 +218     ;;= 6    MM-DD-YYYY @ HH:MM:SS spaces separate time 
 +219     ;;^DD(.85,10.21,21,16,0)
 +220     ;;= 7    MM-DD-YYYY@HH:MM:SS   no leading zeroes on month,day
 +221     ;;^DD(.85,10.21,21,17,0)
 +222     ;;= 
 +223     ;;^DD(.85,10.21,21,18,0)
 +224     ;;=letters in the flag
 +225     ;;^DD(.85,10.21,21,19,0)
 +226     ;;= S    return always seconds
 +227     ;;^DD(.85,10.21,21,20,0)
 +228     ;;= U    return uppercase month names
 +229     ;;^DD(.85,10.21,21,21,0)
 +230     ;;= P    return time as am,pm
 +231     ;;^DD(.85,10.21,21,22,0)
 +232     ;;= D    return only date part
 +233     ;;^DD(.85,10.21,"DT")
 +234     ;;=2940624
 +235     ;;^DD(.85,10.22,0)
 +236     ;;=TIME^K^^TIME;E1,245^K:$L(X)>245 X D:$D(X) ^DIM
 +237     ;;^DD(.85,10.22,3)
 +238     ;;=This is Standard MUMPS code for the output of time only.
 +239     ;;^DD(.85,10.22,9)
 +240     ;;=@
 +241     ;;^DD(.85,10.22,21,0)
 +242     ;;=^^2^2^2960318^
 +243     ;;^DD(.85,10.22,21,1,0)
 +244     ;;=The code stored here will be used to get formatted output of the time
 +245     ;;^DD(.85,10.22,21,2,0)
 +246     ;;=part belonging to a FileMan Date/Time value.
 +247     ;;^DD(.85,10.22,"DT")
 +248     ;;=2960318
 +249     ;;^DD(.85,10.3,0)
 +250     ;;=CARDINAL NUMBER FORMAT^K^^CRD;E1,245^K:$L(X)>245 X D:$D(X) ^DIM
 +251     ;;^DD(.85,10.3,3)
 +252     ;;=This is Standard MUMPS code.
 +253     ;;^DD(.85,10.3,9)
 +254     ;;=@
 +255     ;;^DD(.85,10.3,21,0)
 +256     ;;=^^5^5^2941121^^
 +257     ;;^DD(.85,10.3,21,1,0)
 +258     ;;=MUMPS code used to transfer a number in Y to its cardinal equivalent in
 +259     ;;^DD(.85,10.3,21,2,0)
 +260     ;;=this language. The code should set Y to the cardinal equivalent without
 +261     ;;^DD(.85,10.3,21,3,0)
 +262     ;;=altering any other variables in the environment.  Ex. in English:
 +263     ;;^DD(.85,10.3,21,4,0)
 +264     ;;=       Y=2000     becomes         Y=2,000
 +265     ;;^DD(.85,10.3,21,5,0)
 +266     ;;=       Y=1234567  becomes         Y=1,234,567
 +267     ;;^DD(.85,10.3,"DT")
 +268     ;;=2940308
 +269     ;;^DD(.85,10.4,0)
 +270     ;;=UPPERCASE CONVERSION^K^^UC;E1,245^K:$L(X)>245 X D:$D(X) ^DIM
 +271     ;;^DD(.85,10.4,3)
 +272     ;;=This is Standard MUMPS code.
 +273     ;;^DD(.85,10.4,9)
 +274     ;;=@
 +275     ;;^DD(.85,10.4,21,0)
 +276     ;;=^^4^4^2941121^
 +277     ;;^DD(.85,10.4,21,1,0)
 +278     ;;=MUMPS code used to convert text in Y to its upper-case equivalent in
 +279     ;;^DD(.85,10.4,21,2,0)
 +280     ;;=this language. The code should set Y to the external format without
 +281     ;;^DD(.85,10.4,21,3,0)
 +282     ;;=altering any other variables in the environment.  In English, changes
 +283     ;;^DD(.85,10.4,21,4,0)
 +284     ;;=   abCdeF      to: ABCDEF
 +285     ;;^DD(.85,10.4,"DT")
 +286     ;;=2940308
 +287     ;;^DD(.85,10.5,0)
 +288     ;;=LOWERCASE CONVERSION^K^^LC;E1,245^K:$L(X)>245 X D:$D(X) ^DIM
 +289     ;;^DD(.85,10.5,3)
 +290     ;;=This is Standard MUMPS code.
 +291     ;;^DD(.85,10.5,9)
 +292     ;;=@
 +293     ;;^DD(.85,10.5,21,0)
 +294     ;;=^^4^4^2941121^
 +295     ;;^DD(.85,10.5,21,1,0)
 +296     ;;=MUMPS code used to convert text in Y to its lower-case equivalent in  
 +297     ;;^DD(.85,10.5,21,2,0)
 +298     ;;=this language. The code should set Y to the external format without
 +299     ;;^DD(.85,10.5,21,3,0)
 +300     ;;=altering any other variables in the environment.  In English, changes:
 +301     ;;^DD(.85,10.5,21,4,0)
 +302     ;;=    ABcdEFgHij         to:  abcdefghij
 +303     ;;^DD(.85,10.5,"DT")
 +304     ;;=2940308
 +305     ;;^DD(.85,20.2,0)
 +306     ;;=DATE INPUT^K^^20.2;E1,245^K:$L(X)>245 X D:$D(X) ^DIM
 +307     ;;^DD(.85,20.2,3)
 +308     ;;=This is Standard MUMPS code.
 +309     ;;^DD(.85,20.2,9)
 +310     ;;=@
 +311     ;;^DD(.85,20.2,"DT")
 +312     ;;=2940714
 +313     ;;^DD(.8501,0)
 +314     ;;=ALTERNATE NAME SUB-FIELD^^.01^1
 +315     ;;^DD(.8501,0,"DT")
 +316     ;;=3121101
 +317     ;;^DD(.8501,0,"IX","B",.8501,.01)
 +318     ;;=
 +319     ;;^DD(.8501,0,"NM","ALTERNATE NAME")
 +320     ;;=
 +321     ;;^DD(.8501,0,"UP")
 +322     ;;=.85
 +323     ;;^DD(.8501,.01,0)
 +324     ;;=ALTERNATE NAME^MFJ60^^0;1^K:$L(X)>60!($L(X)<1) X
 +325     ;;^DD(.8501,.01,1,0)
 +326     ;;=^.1
 +327     ;;^DD(.8501,.01,1,1,0)
 +328     ;;=.8501^B
 +329     ;;^DD(.8501,.01,1,1,1)
 +330     ;;=S ^DI(.85,DA(1),1,"B",$E(X,1,30),DA)=""
 +331     ;;^DD(.8501,.01,1,1,2)
 +332     ;;=K ^DI(.85,DA(1),1,"B",$E(X,1,30),DA)
 +333     ;;^DD(.8501,.01,1,2,0)
 +334     ;;=.85^F
 +335     ;;^DD(.8501,.01,1,2,1)
 +336     ;;=S ^DI(.85,"F",$E(X,1,30),DA(1),DA)=""
 +337     ;;^DD(.8501,.01,1,2,2)
 +338     ;;=K ^DI(.85,"F",$E(X,1,30),DA(1),DA)
 +339     ;;^DD(.8501,.01,1,2,3)
 +340     ;;=WHOLE FILE CROSS REFERENCE FOR ALTERNATE NAME
 +341     ;;^DD(.8501,.01,1,2,"%D",0)
 +342     ;;=^^1^1^3121101^
 +343     ;;^DD(.8501,.01,1,2,"%D",1,0)
 +344     ;;=Whole file cross-reference for ALTERNATE NAME multiple.
 +345     ;;^DD(.8501,.01,1,2,"DT")
 +346     ;;=3121101
 +347     ;;^DD(.8501,.01,3)
 +348     ;;=Answer must be 1-60 characters in length.
 +349     ;;^DD(.8501,.01,21,0)
 +350     ;;=^^2^2^3121101^^
 +351     ;;^DD(.8501,.01,21,1,0)
 +352     ;;=This field contains other synonyms for a language.
 +353     ;;^DD(.8501,.01,21,2,0)
 +354     ;;=E.g. for Greek, synonyms include Ellinika and Romaic.
 +355     ;;^DD(.8501,.01,"DT")
 +356     ;;=3121101
 +357     ;;^DD(.8502,0)
 +358     ;;=DESCRIPTION SUB-FIELD^^.01^1
 +359     ;;^DD(.8502,0,"DT")
 +360     ;;=3121031
 +361     ;;^DD(.8502,0,"NM","DESCRIPTION")
 +362     ;;=
 +363     ;;^DD(.8502,0,"UP")
 +364     ;;=.85
 +365     ;;^DD(.8502,.01,0)
 +366     ;;=DESCRIPTION^Wx^^0;1
 +367     ;;^DD(.8502,.01,3)
 +368     ;;=Enter free text data.  Items within '|' will NOT be evaluated.
 +369     ;;^DD(.8502,.01,"DT")
 +370     ;;=3121031
 +371     ;;^DD(.8502,.01,21,0)
 +372     ;;=^^1^1^3160102
 +373     ;;^DD(.8502,.01,21,1,0)
 +374     ;;=An optional description of the language can be entered.
 +375     ;;^UTILITY("KX",$J,"IX",.85,.85,"B",0)
 +376     ;;=.85^B^Regular new-style B Index^R^^F^IR^I^.85^^^^^LS
 +377     ;;^UTILITY("KX",$J,"IX",.85,.85,"B",1)
 +378     ;;=S ^DI(.85,"B",X,DA)=""
 +379     ;;^UTILITY("KX",$J,"IX",.85,.85,"B",2)
 +380     ;;=K ^DI(.85,"B",X,DA)
 +381     ;;^UTILITY("KX",$J,"IX",.85,.85,"B",2.5)
 +382     ;;=K ^DI(.85,"B")
 +383     ;;^UTILITY("KX",$J,"IX",.85,.85,"B",11.1,0)
 +384     ;;=^.114IA^1^1
 +385     ;;^UTILITY("KX",$J,"IX",.85,.85,"B",11.1,1,0)
 +386     ;;=1^F^.85^.01^^1^F
 +387     ;;^UTILITY("KX",$J,"IX",.85,.85,"B",11.1,1,3)
 +388     ;;=
 +389     ;;^UTILITY("KX",$J,"IX",.85,.85,"C",0)
 +390     ;;=.85^C^Regular new style index on two letter language codes^R^^F^IR^I^.85^^^^^LS
 +391     ;;^UTILITY("KX",$J,"IX",.85,.85,"C",1)
 +392     ;;=S ^DI(.85,"C",X,DA)=""
 +393     ;;^UTILITY("KX",$J,"IX",.85,.85,"C",2)
 +394     ;;=K ^DI(.85,"C",X,DA)
 +395     ;;^UTILITY("KX",$J,"IX",.85,.85,"C",2.5)
 +396     ;;=K ^DI(.85,"C")
 +397     ;;^UTILITY("KX",$J,"IX",.85,.85,"C",11.1,0)
 +398     ;;=^.114IA^1^1
 +399     ;;^UTILITY("KX",$J,"IX",.85,.85,"C",11.1,1,0)
 +400     ;;=1^F^.85^.02^^1^F
 +401     ;;^UTILITY("KX",$J,"IX",.85,.85,"D",0)
 +402     ;;=.85^D^Regular new-style index for three letter abbreviations for languages^R^^F^IR^I^.85^^^^^LS
 +403     ;;^UTILITY("KX",$J,"IX",.85,.85,"D",1)
 +404     ;;=S ^DI(.85,"D",$E(X,1,30),DA)=""
 +405     ;;^UTILITY("KX",$J,"IX",.85,.85,"D",2)
 +406     ;;=K ^DI(.85,"D",$E(X,1,30),DA)
 +407     ;;^UTILITY("KX",$J,"IX",.85,.85,"D",2.5)
 +408     ;;=K ^DI(.85,"D")
 +409     ;;^UTILITY("KX",$J,"IX",.85,.85,"D",11.1,0)
 +410     ;;=^.114IA^1^1
 +411     ;;^UTILITY("KX",$J,"IX",.85,.85,"D",11.1,1,0)
 +412     ;;=1^F^.85^.03^30^1^F
 +413     ;;^UTILITY("KX",$J,"IX",.85,.85,"E",0)
 +414     ;;=.85^E^(Pseudo-)Mnemonic index for the Alternate three letter code^MU^^F^IR^I^.85^^^^^LS
 +415     ;;^UTILITY("KX",$J,"IX",.85,.85,"E",.1,0)
 +416     ;;=^^6^6^3121031^
 +417     ;;^UTILITY("KX",$J,"IX",.85,.85,"E",.1,1,0)
 +418     ;;=This will add entries to the D index for the three letter code a la the 
 +419     ;;^UTILITY("KX",$J,"IX",.85,.85,"E",.1,2,0)
 +420     ;;=mnemonic style.
 +421     ;;^UTILITY("KX",$J,"IX",.85,.85,"E",.1,3,0)
 +422     ;;= 
 +423     ;;^UTILITY("KX",$J,"IX",.85,.85,"E",.1,4,0)
 +424     ;;=If you need re-cross-reference this field, you need to kill of the 
 +425     ;;^UTILITY("KX",$J,"IX",.85,.85,"E",.1,5,0)
 +426     ;;=entries in the regular D index, set the D index, and then set this index 
 +427     ;;^UTILITY("KX",$J,"IX",.85,.85,"E",.1,6,0)
 +428     ;;=to update the D with the mnemonic xrefs.
 +429     ;;^UTILITY("KX",$J,"IX",.85,.85,"E",1)
 +430     ;;=S ^DI(.85,"D",X,DA)=1
 +431     ;;^UTILITY("KX",$J,"IX",.85,.85,"E",2)
 +432     ;;=K ^DI(.85,"D",X,DA)