LEXXFI8 ;ISL/KER - File Info - Miscellaneous ;04/21/2014
 ;;2.0;LEXICON UTILITY;**32,80**;Sep 23, 1996;Build 1
 ;               
 ; Global Variables
 ;    ^TMP("LEXCS")       SACC 2.3.2.5.1
 ;    ^TMP("LEXCS",$J)    SACC 2.3.2.5.1
 ;    ^TMP("LEXINS")      SACC 2.3.2.5.1
 ;    ^TMP("LEXINS",$J)   SACC 2.3.2.5.1
 ;               
 ; External References
 ;    $$FMDIFF^XLFDT      ICR  10103
 ;    $$FMTE^XLFDT        ICR  10103
 ;    $$GET1^DIQ          ICR   2056
 ;    $$NOW^XLFDT         ICR  10103
 ;    %XY^%RCR            ICR  10022
 ;    FILE^DID            ICR   2052
 ;    IX^DIC              ICR  10006
 ;    ^%DT                ICR  10003
 ;    ^DIC                ICR  10006
 ;               
 Q
LEX(X) ; LEX* File
 N LEXN S X=$G(X) Q:+X=0 0  S LEXN=$$GL(X) Q:$E(LEXN,1,4)="^LEX" 1
 Q 0
IC(X) ; IC* File
 S X=$G(X) I "^80^80.1^80.2^80.3^81^81.1^81.3^"[("^"_+X_"^") Q 1
 Q 0
GL(X) ; Global Location
 N DIERR,LEXE,LEXN S X=$G(X) Q:+X=0 ""  D FILE^DID(+X,"N","GLOBAL NAME","LEXN","LEXE")
 S X="" S:'$D(DIERR) X=$G(LEXN("GLOBAL NAME"))
 Q X
FN(X) ; File Name
 N DIERR,LEXE,LEXN S X=$G(X) D FILE^DID(+X,"N","NAME","LEXN","LEXE")
 S X="" S:'$D(DIERR) X=$G(LEXN("NAME"))
 Q X
INS(X) ; Installed
 N %X,%Y,LEXFI,LEXIN,LEXPH,LEXPK,LEXPV,LEXRV,LEXSQ,LEXVR K ^TMP("LEXINS",$J)
 S LEXFI=+($G(X)) Q:+LEXFI'>0 ""
 S LEXVR=$P($$VR(LEXFI),"^",1) Q:'$L(LEXVR) ""  Q:+LEXVR'>0 ""
 S LEXRV=$P($$RV(LEXFI),"^",1) Q:'$L(LEXRV) ""  Q:+LEXRV'>0 ""
 S LEXPK=$$PKG(LEXFI) Q:'$L(LEXPK) ""  Q:+LEXPK'>0 ""
 S LEXPV=$$PH(LEXPK,LEXVR) Q:+LEXPV'>0 ""
 S %X="^DIC(9.4,"_LEXPK_",22,"_LEXPV_",""PAH"",",%Y="^TMP(""LEXINS"","_$J_",""PAH""," D %XY^%RCR
 S LEXPH=$O(^TMP("LEXINS",$J,"PAH","B",LEXRV,0)) I LEXPH'>0 D
 . S LEXPH="",LEXSQ=$O(^TMP("LEXINS",$J,"PAH","B",(LEXRV_" ")))
 . Q:'$L(LEXSQ)  Q:$E(LEXSQ,1,$L(LEXRV))'=LEXRV
 . S LEXPH=$O(^TMP("LEXINS",$J,"PAH","B",LEXSQ,0))
 S LEXIN=$P($P($G(^TMP("LEXINS",$J,"PAH",+LEXPH,0)),"^",2),".",1)
 S X=$S(+LEXIN>0:$$SD(+LEXIN),1:"") S:$L(X)'=10 X=""
 K ^TMP("LEXINS",$J)
 Q X
VR(X) ; File Version
 N DIERR,LEXCDT,LEXE,LEXEX,LEXFI,LEXL,LEXN,LEXRTN,LEXVR,LEXVRD
 S LEXFI=$G(X) N DIERR,LEXN,LEXNM,LEXE,LEXEX,LEXL,LEXRTN
 D FILE^DID(+LEXFI,"N","VERSION","LEXN","LEXE") S LEXVR="" I '$D(DIERR) D
 . S LEXVR=$G(LEXN("VERSION")) S LEXRTN=$S($P(+LEXFI,".",1)=757:"LEXA",$P(+LEXFI,".",1)=80:"ICDCODE",$P(+LEXFI,".",1)=81:"ICPTCOD",1:"")
 . Q:'$L(LEXRTN)  S LEXEX="S LEXL=$T(+2^"_LEXRTN_")" X LEXEX
 . Q:'$L(LEXL)  I $P(LEXL,";",3)=LEXVR,$L($P(LEXL,";",6)) S LEXVRD=$$LTS($P(LEXL,";",6))
 S LEXCDT="" S:LEXFI=81.2 LEXCDT=$$DDT
 S X=$G(LEXVR) S:$L($G(LEXVR))&($L($G(LEXVRD))) X=X_"^"_$G(LEXVRD)
 S:$L($G(LEXVR))&($L($G(LEXVRD)))&($L(LEXCDT)) X=X_"^"_$G(LEXCDT)
 Q X
RV(X) ; File Revision
 N DIERR,LEXE,LEXN S X=$G(X)
 D FILE^DID(+X,"N","PACKAGE REVISION DATA","LEXN","LEXE")
 S X="" S:'$D(DIERR) X=$G(LEXN("PACKAGE REVISION DATA"))
 S:+$P(X,"^",2) $P(X,"^",2)=$$SD($P(X,"^",2))
 Q X
DDT(X) ; CPT Distribution Date
 N LEXDDT S LEXDDT=$$GET1^DIQ(81.2,"1,",.02,"I") Q:'$L(LEXDDT) ""  Q:+LEXDDT'>0 ""  S X=$$SD(LEXDDT)
 Q X
ADR(LEX) ; Mailing Address
 N DIC,DTOUT,DUOUT,X,Y S DIC="^DIC(4.2,",DIC(0)="M",(LEX,X)="FO-SLC.DOMAIN.EXT" D ^DIC Q:+Y>0 LEX
 S DIC="^DIC(4.2,",DIC(0)="M",(LEX,X)="ISC-SLC.DOMAIN.EXT" D ^DIC Q:+Y>0 LEX
 Q "ISC-SLC.DOMAIN.EXT"
MX(X) ; Mix Case
 Q $TR($E(X,1),"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")_$TR($E(X,2,$L(X)),"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")
LTS(X) ; Long to Short Date
 N %DT,Y S X=$G(X) Q:'$L(X) ""  S %DT="T" D ^%DT S X=$$SD(Y)
 Q X
SD(X) ; Short Date
 S X=$G(X),X=$TR($$FMTE^XLFDT($P(X,".",1),"5DZ"),"@"," ")
 Q X
PKG(X) ; Package
 N D,DIC,DTOUT,DUOUT,LEXFI,LEXN S LEXFI=+($G(X)) Q:+LEXFI'>0 ""
 S LEXN=$S($P(LEXFI,".",1)=757:"LEXICON UTILITY",$P(LEXFI,".",1)=80:"DRG GROUPER",$P(LEXFI,".",1)=81:"CPT/HCPCS CODES",1:"")
 Q:'$L(LEXN)  N X,Y S DIC="^DIC(9.4,",D="B",DIC(0)="X",X=LEXN D IX^DIC
 S X=+($G(Y))
 Q X
PH(X,Y) ; Patch History
 N DA,DIC,DTOUT,DUOUT,LEXPK,LEXVR
 S (DA(1),LEXPK)=+($G(X)) Q:+LEXPK'>0 ""  S LEXVR=$G(Y) Q:'$L(LEXVR) ""  Q:+LEXVR'>0 ""
 S DIC="^DIC(9.4,"_DA(1)_",22,",X=LEXVR,DIC(0)="X"
 D ^DIC S X=+($G(Y)) S:+Y'>0 X=""
 Q X
TIC(X) ; Time
 Q $$NOW^XLFDT
ELAP(X,Y) ; Elapsed Time (start,end)
 Q $TR($$FMDIFF^XLFDT(+($G(Y)),+($G(X)),3)," ","0")
LDR(X) ; Leader
 N LEXFI,LEXMOD S LEXFI=+($G(X)) Q:LEXFI'>0 0  S LEXMOD=$$MOD(LEXFI),X=$S(+LEXMOD>0:" * ",1:"   ")
 Q X
MOD(X) ; Modifier File
 N LEXFI,LEXSRC,LEXE,LEXTAG,LEXRTN,LEXCTR,LEXLDR,LEXMOD
 S LEXSRC=+($G(X)) Q:LEXSRC'>0 0
 S LEXFI="",LEXE=0,LEXTAG="FILES",LEXRTN="LEXXFI",LEXCTR=0,LEXMOD=0
 F  D  Q:LEXFI=""  Q:+LEXE>0
 . S LEXCTR=LEXCTR+1
 . S LEXEX="S LEXLINE=$T("_LEXTAG_"+"_LEXCTR_"^"_LEXRTN_")" X LEXEX
 . S LEXFI=$P(LEXLINE,";;",2,3)
 . S LEXLDR=$P(LEXFI,";;",1),LEXFI=$P(LEXFI,";;",2)
 . Q:'$L(LEXFI)  Q:+LEXFI'=LEXSRC
 . S LEXMOD=$S(+LEXLDR>0:1,1:0) S:LEXMOD>0 LEXE=1
 S X=LEXMOD
 Q X
MF(X) ; Modified Files
 N LEXMOD,LEXT S LEXMOD=+($G(X)) Q:LEXMOD'>0
 S LEXT=" * "_$S(LEXMOD>1:"These ",1:"This ")_"file"
 S LEXT=LEXT_$S(LEXMOD>1:"s ",1:" ")
 S LEXT=LEXT_"contain"_$S(LEXMOD>1:" ",1:"s ")
 S LEXT=LEXT_"fields that may be modified at the site."
 D BL^LEXXFI8,TL^LEXXFI8(LEXT)
 S LEXT="   The Checksum"_$S(LEXMOD>1:"s ",1:" ")
 S LEXT=LEXT_"for "_$S(LEXMOD>1:"these ",1:"this ")
 S LEXT=LEXT_"file"_$S(LEXMOD>1:"s ",1:" ")
 S LEXT=LEXT_"may vary from site to site."
 D TL^LEXXFI8(LEXT)
 Q
BL ; Blank Line
 N LEXI,LEXT S LEXI=+($O(^TMP("LEXCS",$J," "),-1)),LEXT=$G(^TMP("LEXCS",$J,+LEXI))
 Q:(LEXI+1)'>1  D:LEXT'="   " TL("   ")
 Q
TL(X) ; Text Line
 S X=$G(X) W:'$D(ZTQUEUED) !,X
 N LEXI S LEXI=+($O(^TMP("LEXCS",$J," "),-1))+1,^TMP("LEXCS",$J,LEXI)=X,^TMP("LEXCS",$J,0)=LEXI
 Q
TT(X,Y) ; Title Line
 N LEXFI,LEXTT,LEXT,LEXN,LEXNM S LEXFI=$G(X),LEXTT=$G(Y) S:+($$IF(LEXFI))'>0 LEXFI=""
 S:+LEXFI>0 LEXNM=$$FN(LEXFI)_" File (#"_+LEXFI_")" S:+LEXFI'>0 LEXNM="Lexicon/ICD/CPT File"
 S LEXT=" "_LEXNM_" "_$G(LEXTT) S:+($G(LEXMUL))>0&($E(LEXT,$L(LEXT))'="s") LEXT=LEXT_"s"
 D BL,TL(LEXT) S $P(LEXN,"=",$L(LEXT))="",LEXN=" "_LEXN D TL(LEXN)
 Q
IF(X) ; Is File on the List of Files
 N LEXTAG,LEXRTN,LEXCTR,LEXCTL,LEXFI,LEXLINE,LEXOK S LEXCTL=$G(X) Q:'$L(LEXCTL) 0  Q:+LEXCTL'>0 0
 S LEXFI="",LEXTAG="FILES",LEXRTN="LEXXFI",(LEXCTR,LEXOK)=0
 F  D  Q:LEXFI=""  Q:+LEXOK>0
 . S LEXCTR=LEXCTR+1
 . S LEXEX="S LEXLINE=$T("_LEXTAG_"+"_LEXCTR_"^"_LEXRTN_")" X LEXEX
 . S LEXFI=$P(LEXLINE,";;",2,3),LEXFI=$P(LEXFI,";;",2)
 . Q:'$L(LEXFI)  S:+LEXFI=+LEXCTL LEXOK=1
 S X=LEXOK
 Q X
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HLEXXFI8   6587     printed  Sep 23, 2025@19:46:02                                                                                                                                                                                                     Page 2
LEXXFI8   ;ISL/KER - File Info - Miscellaneous ;04/21/2014
 +1       ;;2.0;LEXICON UTILITY;**32,80**;Sep 23, 1996;Build 1
 +2       ;               
 +3       ; Global Variables
 +4       ;    ^TMP("LEXCS")       SACC 2.3.2.5.1
 +5       ;    ^TMP("LEXCS",$J)    SACC 2.3.2.5.1
 +6       ;    ^TMP("LEXINS")      SACC 2.3.2.5.1
 +7       ;    ^TMP("LEXINS",$J)   SACC 2.3.2.5.1
 +8       ;               
 +9       ; External References
 +10      ;    $$FMDIFF^XLFDT      ICR  10103
 +11      ;    $$FMTE^XLFDT        ICR  10103
 +12      ;    $$GET1^DIQ          ICR   2056
 +13      ;    $$NOW^XLFDT         ICR  10103
 +14      ;    %XY^%RCR            ICR  10022
 +15      ;    FILE^DID            ICR   2052
 +16      ;    IX^DIC              ICR  10006
 +17      ;    ^%DT                ICR  10003
 +18      ;    ^DIC                ICR  10006
 +19      ;               
 +20       QUIT 
LEX(X)    ; LEX* File
 +1        NEW LEXN
           SET X=$GET(X)
           if +X=0
               QUIT 0
           SET LEXN=$$GL(X)
           if $EXTRACT(LEXN,1,4)="^LEX"
               QUIT 1
 +2        QUIT 0
IC(X)     ; IC* File
 +1        SET X=$GET(X)
           IF "^80^80.1^80.2^80.3^81^81.1^81.3^"[("^"_+X_"^")
               QUIT 1
 +2        QUIT 0
GL(X)     ; Global Location
 +1        NEW DIERR,LEXE,LEXN
           SET X=$GET(X)
           if +X=0
               QUIT ""
           DO FILE^DID(+X,"N","GLOBAL NAME","LEXN","LEXE")
 +2        SET X=""
           if '$DATA(DIERR)
               SET X=$GET(LEXN("GLOBAL NAME"))
 +3        QUIT X
FN(X)     ; File Name
 +1        NEW DIERR,LEXE,LEXN
           SET X=$GET(X)
           DO FILE^DID(+X,"N","NAME","LEXN","LEXE")
 +2        SET X=""
           if '$DATA(DIERR)
               SET X=$GET(LEXN("NAME"))
 +3        QUIT X
INS(X)    ; Installed
 +1        NEW %X,%Y,LEXFI,LEXIN,LEXPH,LEXPK,LEXPV,LEXRV,LEXSQ,LEXVR
           KILL ^TMP("LEXINS",$JOB)
 +2        SET LEXFI=+($GET(X))
           if +LEXFI'>0
               QUIT ""
 +3        SET LEXVR=$PIECE($$VR(LEXFI),"^",1)
           if '$LENGTH(LEXVR)
               QUIT ""
           if +LEXVR'>0
               QUIT ""
 +4        SET LEXRV=$PIECE($$RV(LEXFI),"^",1)
           if '$LENGTH(LEXRV)
               QUIT ""
           if +LEXRV'>0
               QUIT ""
 +5        SET LEXPK=$$PKG(LEXFI)
           if '$LENGTH(LEXPK)
               QUIT ""
           if +LEXPK'>0
               QUIT ""
 +6        SET LEXPV=$$PH(LEXPK,LEXVR)
           if +LEXPV'>0
               QUIT ""
 +7        SET %X="^DIC(9.4,"_LEXPK_",22,"_LEXPV_",""PAH"","
           SET %Y="^TMP(""LEXINS"","_$JOB_",""PAH"","
           DO %XY^%RCR
 +8        SET LEXPH=$ORDER(^TMP("LEXINS",$JOB,"PAH","B",LEXRV,0))
           IF LEXPH'>0
               Begin DoDot:1
 +9                SET LEXPH=""
                   SET LEXSQ=$ORDER(^TMP("LEXINS",$JOB,"PAH","B",(LEXRV_" ")))
 +10               if '$LENGTH(LEXSQ)
                       QUIT 
                   if $EXTRACT(LEXSQ,1,$LENGTH(LEXRV))'=LEXRV
                       QUIT 
 +11               SET LEXPH=$ORDER(^TMP("LEXINS",$JOB,"PAH","B",LEXSQ,0))
               End DoDot:1
 +12       SET LEXIN=$PIECE($PIECE($GET(^TMP("LEXINS",$JOB,"PAH",+LEXPH,0)),"^",2),".",1)
 +13       SET X=$SELECT(+LEXIN>0:$$SD(+LEXIN),1:"")
           if $LENGTH(X)'=10
               SET X=""
 +14       KILL ^TMP("LEXINS",$JOB)
 +15       QUIT X
VR(X)     ; File Version
 +1        NEW DIERR,LEXCDT,LEXE,LEXEX,LEXFI,LEXL,LEXN,LEXRTN,LEXVR,LEXVRD
 +2        SET LEXFI=$GET(X)
           NEW DIERR,LEXN,LEXNM,LEXE,LEXEX,LEXL,LEXRTN
 +3        DO FILE^DID(+LEXFI,"N","VERSION","LEXN","LEXE")
           SET LEXVR=""
           IF '$DATA(DIERR)
               Begin DoDot:1
 +4                SET LEXVR=$GET(LEXN("VERSION"))
                   SET LEXRTN=$SELECT($PIECE(+LEXFI,".",1)=757:"LEXA",$PIECE(+LEXFI,".",1)=80:"ICDCODE",$PIECE(+LEXFI,".",1)=81:"ICPTCOD",1:"")
 +5                if '$LENGTH(LEXRTN)
                       QUIT 
                   SET LEXEX="S LEXL=$T(+2^"_LEXRTN_")"
                   XECUTE LEXEX
 +6                if '$LENGTH(LEXL)
                       QUIT 
                   IF $PIECE(LEXL,";",3)=LEXVR
                       IF $LENGTH($PIECE(LEXL,";",6))
                           SET LEXVRD=$$LTS($PIECE(LEXL,";",6))
               End DoDot:1
 +7        SET LEXCDT=""
           if LEXFI=81.2
               SET LEXCDT=$$DDT
 +8        SET X=$GET(LEXVR)
           if $LENGTH($GET(LEXVR))&($LENGTH($GET(LEXVRD)))
               SET X=X_"^"_$GET(LEXVRD)
 +9        if $LENGTH($GET(LEXVR))&($LENGTH($GET(LEXVRD)))&($LENGTH(LEXCDT))
               SET X=X_"^"_$GET(LEXCDT)
 +10       QUIT X
RV(X)     ; File Revision
 +1        NEW DIERR,LEXE,LEXN
           SET X=$GET(X)
 +2        DO FILE^DID(+X,"N","PACKAGE REVISION DATA","LEXN","LEXE")
 +3        SET X=""
           if '$DATA(DIERR)
               SET X=$GET(LEXN("PACKAGE REVISION DATA"))
 +4        if +$PIECE(X,"^",2)
               SET $PIECE(X,"^",2)=$$SD($PIECE(X,"^",2))
 +5        QUIT X
DDT(X)    ; CPT Distribution Date
 +1        NEW LEXDDT
           SET LEXDDT=$$GET1^DIQ(81.2,"1,",.02,"I")
           if '$LENGTH(LEXDDT)
               QUIT ""
           if +LEXDDT'>0
               QUIT ""
           SET X=$$SD(LEXDDT)
 +2        QUIT X
ADR(LEX)  ; Mailing Address
 +1        NEW DIC,DTOUT,DUOUT,X,Y
           SET DIC="^DIC(4.2,"
           SET DIC(0)="M"
           SET (LEX,X)="FO-SLC.DOMAIN.EXT"
           DO ^DIC
           if +Y>0
               QUIT LEX
 +2        SET DIC="^DIC(4.2,"
           SET DIC(0)="M"
           SET (LEX,X)="ISC-SLC.DOMAIN.EXT"
           DO ^DIC
           if +Y>0
               QUIT LEX
 +3        QUIT "ISC-SLC.DOMAIN.EXT"
MX(X)     ; Mix Case
 +1        QUIT $TRANSLATE($EXTRACT(X,1),"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")_$TRANSLATE($EXTRACT(X,2,$LENGTH(X)),"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")
LTS(X)    ; Long to Short Date
 +1        NEW %DT,Y
           SET X=$GET(X)
           if '$LENGTH(X)
               QUIT ""
           SET %DT="T"
           DO ^%DT
           SET X=$$SD(Y)
 +2        QUIT X
SD(X)     ; Short Date
 +1        SET X=$GET(X)
           SET X=$TRANSLATE($$FMTE^XLFDT($PIECE(X,".",1),"5DZ"),"@"," ")
 +2        QUIT X
PKG(X)    ; Package
 +1        NEW D,DIC,DTOUT,DUOUT,LEXFI,LEXN
           SET LEXFI=+($GET(X))
           if +LEXFI'>0
               QUIT ""
 +2        SET LEXN=$SELECT($PIECE(LEXFI,".",1)=757:"LEXICON UTILITY",$PIECE(LEXFI,".",1)=80:"DRG GROUPER",$PIECE(LEXFI,".",1)=81:"CPT/HCPCS CODES",1:"")
 +3        if '$LENGTH(LEXN)
               QUIT 
           NEW X,Y
           SET DIC="^DIC(9.4,"
           SET D="B"
           SET DIC(0)="X"
           SET X=LEXN
           DO IX^DIC
 +4        SET X=+($GET(Y))
 +5        QUIT X
PH(X,Y)   ; Patch History
 +1        NEW DA,DIC,DTOUT,DUOUT,LEXPK,LEXVR
 +2        SET (DA(1),LEXPK)=+($GET(X))
           if +LEXPK'>0
               QUIT ""
           SET LEXVR=$GET(Y)
           if '$LENGTH(LEXVR)
               QUIT ""
           if +LEXVR'>0
               QUIT ""
 +3        SET DIC="^DIC(9.4,"_DA(1)_",22,"
           SET X=LEXVR
           SET DIC(0)="X"
 +4        DO ^DIC
           SET X=+($GET(Y))
           if +Y'>0
               SET X=""
 +5        QUIT X
TIC(X)    ; Time
 +1        QUIT $$NOW^XLFDT
ELAP(X,Y) ; Elapsed Time (start,end)
 +1        QUIT $TRANSLATE($$FMDIFF^XLFDT(+($GET(Y)),+($GET(X)),3)," ","0")
LDR(X)    ; Leader
 +1        NEW LEXFI,LEXMOD
           SET LEXFI=+($GET(X))
           if LEXFI'>0
               QUIT 0
           SET LEXMOD=$$MOD(LEXFI)
           SET X=$SELECT(+LEXMOD>0:" * ",1:"   ")
 +2        QUIT X
MOD(X)    ; Modifier File
 +1        NEW LEXFI,LEXSRC,LEXE,LEXTAG,LEXRTN,LEXCTR,LEXLDR,LEXMOD
 +2        SET LEXSRC=+($GET(X))
           if LEXSRC'>0
               QUIT 0
 +3        SET LEXFI=""
           SET LEXE=0
           SET LEXTAG="FILES"
           SET LEXRTN="LEXXFI"
           SET LEXCTR=0
           SET LEXMOD=0
 +4        FOR 
               Begin DoDot:1
 +5                SET LEXCTR=LEXCTR+1
 +6                SET LEXEX="S LEXLINE=$T("_LEXTAG_"+"_LEXCTR_"^"_LEXRTN_")"
                   XECUTE LEXEX
 +7                SET LEXFI=$PIECE(LEXLINE,";;",2,3)
 +8                SET LEXLDR=$PIECE(LEXFI,";;",1)
                   SET LEXFI=$PIECE(LEXFI,";;",2)
 +9                if '$LENGTH(LEXFI)
                       QUIT 
                   if +LEXFI'=LEXSRC
                       QUIT 
 +10               SET LEXMOD=$SELECT(+LEXLDR>0:1,1:0)
                   if LEXMOD>0
                       SET LEXE=1
               End DoDot:1
               if LEXFI=""
                   QUIT 
               if +LEXE>0
                   QUIT 
 +11       SET X=LEXMOD
 +12       QUIT X
MF(X)     ; Modified Files
 +1        NEW LEXMOD,LEXT
           SET LEXMOD=+($GET(X))
           if LEXMOD'>0
               QUIT 
 +2        SET LEXT=" * "_$SELECT(LEXMOD>1:"These ",1:"This ")_"file"
 +3        SET LEXT=LEXT_$SELECT(LEXMOD>1:"s ",1:" ")
 +4        SET LEXT=LEXT_"contain"_$SELECT(LEXMOD>1:" ",1:"s ")
 +5        SET LEXT=LEXT_"fields that may be modified at the site."
 +6        DO BL^LEXXFI8
           DO TL^LEXXFI8(LEXT)
 +7        SET LEXT="   The Checksum"_$SELECT(LEXMOD>1:"s ",1:" ")
 +8        SET LEXT=LEXT_"for "_$SELECT(LEXMOD>1:"these ",1:"this ")
 +9        SET LEXT=LEXT_"file"_$SELECT(LEXMOD>1:"s ",1:" ")
 +10       SET LEXT=LEXT_"may vary from site to site."
 +11       DO TL^LEXXFI8(LEXT)
 +12       QUIT 
BL        ; Blank Line
 +1        NEW LEXI,LEXT
           SET LEXI=+($ORDER(^TMP("LEXCS",$JOB," "),-1))
           SET LEXT=$GET(^TMP("LEXCS",$JOB,+LEXI))
 +2        if (LEXI+1)'>1
               QUIT 
           if LEXT'="   "
               DO TL("   ")
 +3        QUIT 
TL(X)     ; Text Line
 +1        SET X=$GET(X)
           if '$DATA(ZTQUEUED)
               WRITE !,X
 +2        NEW LEXI
           SET LEXI=+($ORDER(^TMP("LEXCS",$JOB," "),-1))+1
           SET ^TMP("LEXCS",$JOB,LEXI)=X
           SET ^TMP("LEXCS",$JOB,0)=LEXI
 +3        QUIT 
TT(X,Y)   ; Title Line
 +1        NEW LEXFI,LEXTT,LEXT,LEXN,LEXNM
           SET LEXFI=$GET(X)
           SET LEXTT=$GET(Y)
           if +($$IF(LEXFI))'>0
               SET LEXFI=""
 +2        if +LEXFI>0
               SET LEXNM=$$FN(LEXFI)_" File (#"_+LEXFI_")"
           if +LEXFI'>0
               SET LEXNM="Lexicon/ICD/CPT File"
 +3        SET LEXT=" "_LEXNM_" "_$GET(LEXTT)
           if +($GET(LEXMUL))>0&($EXTRACT(LEXT,$LENGTH(LEXT))'="s")
               SET LEXT=LEXT_"s"
 +4        DO BL
           DO TL(LEXT)
           SET $PIECE(LEXN,"=",$LENGTH(LEXT))=""
           SET LEXN=" "_LEXN
           DO TL(LEXN)
 +5        QUIT 
IF(X)     ; Is File on the List of Files
 +1        NEW LEXTAG,LEXRTN,LEXCTR,LEXCTL,LEXFI,LEXLINE,LEXOK
           SET LEXCTL=$GET(X)
           if '$LENGTH(LEXCTL)
               QUIT 0
           if +LEXCTL'>0
               QUIT 0
 +2        SET LEXFI=""
           SET LEXTAG="FILES"
           SET LEXRTN="LEXXFI"
           SET (LEXCTR,LEXOK)=0
 +3        FOR 
               Begin DoDot:1
 +4                SET LEXCTR=LEXCTR+1
 +5                SET LEXEX="S LEXLINE=$T("_LEXTAG_"+"_LEXCTR_"^"_LEXRTN_")"
                   XECUTE LEXEX
 +6                SET LEXFI=$PIECE(LEXLINE,";;",2,3)
                   SET LEXFI=$PIECE(LEXFI,";;",2)
 +7                if '$LENGTH(LEXFI)
                       QUIT 
                   if +LEXFI=+LEXCTL
                       SET LEXOK=1
               End DoDot:1
               if LEXFI=""
                   QUIT 
               if +LEXOK>0
                   QUIT 
 +8        SET X=LEXOK
 +9        QUIT X