- LEXRXXA ;ISL/KER - Re-Index Ask ;08/17/2011
- ;;2.0;LEXICON UTILITY;**81**;Sep 23, 1996;Build 1
- ;
- ; Global Variables
- ; ^LEX( SACC 1.3
- ; ^LEXT( SACC 1.3
- ;
- ; External References
- ; ^DIC ICR 10006
- ; ^DIR ICR 10026
- ; $$UP^XLFSTR ICR 10104
- ;
- ; Local Variables NEWed or KILLed Elsewhere
- ; LEXFI File Number NEWed/KILLed by ONE^LEXRX
- ;
- Q
- AMSO(X) ; All, Major, Supporting or One File
- N LEX,DIR,DTOUT,DUOUT,DIRUT,DIROUT,LEXB,LEXN,Y K LEX
- D AMSOF S LEX="" S LEXB=$$BOLD^LEXRXXM,LEXN=$$NORM^LEXRXXM
- S DIR(0)="SAO^A:All Lexicon Files;M:Major Lexicon Files"
- S DIR(0)=DIR(0)_";S:Supporting Lexicon Files;O:One Lexicon File"
- S (DIR("?"),DIR("??"))="^D AMSOH^LEXRXXA"
- S DIR("PRE")="S X=$$AMSOP^LEXRXXA($G(X))"
- S DIR("A")=" Select "_LEXB_"A"_LEXN_"ll, "_LEXB_"M"_LEXN_"ajor, "
- S DIR("A")=DIR("A")_LEXB_"S"_LEXN_"upporting or "_LEXB_"O"_LEXN
- S DIR("A")=DIR("A")_"ne Lexicon file(s): (A/M/S/O) "
- W ! D ^DIR S X=Y
- Q X
- AMSOP(X) ; All, Major, Supporting or One File - Pre-process
- N Y Q:'$L($G(X)) "" Q:$G(X)["^" "^" S X=$G(X)
- S Y=$$UP^XLFSTR($E(X,1)) S:"^A^M^S^O^?^"'[("^"_Y_"^") X="??"
- Q X
- AMSOH ; All, Major, Supporting or One File - Help
- W:$L($G(IOF))&($D(LEX)) @IOF D:$D(LEX) AMSOH2
- AMSOF ; All, Major, Supporting or One File - List Files
- W:$L($G(IOF))&('$D(LEX)) @IOF
- N LEXB,LEXN,LEXC,LEXT,LEXF,LEX1,LEX2,LEX3
- S LEXB=$$BOLD^LEXRXXM,LEXN=$$NORM^LEXRXXM
- S:'$D(LEX) (LEXB,LEXN)=""
- S LEX1=3,LEX2=6,LEX3=24 S:$D(LEX) LEX2=LEX2-1,LEX3=LEX3-1
- W !," Repair/Re-Index Lexicon Cross-References",!
- S LEXC="",LEXT="",LEXF=""
- W !,?LEX1,LEXC,?LEX2,LEXT,?LEX3,LEXF
- S LEXC=LEXB_"A"_LEXN
- S LEXT="All files"
- S LEXF="757*"
- W !,?LEX1,LEXC,?LEX2,LEXT,?LEX3,LEXF
- S LEXC="",LEXT="",LEXF=""
- S LEXC=LEXB_"M"_LEXN
- S LEXT="Major files"
- S LEXF="757, 757.001, 757.01, 757.02, 757.1, 757.21 and 757.33"
- W !,?LEX1,LEXC,?LEX2,LEXT,?LEX3,LEXF
- S LEXC="",LEXT="",LEXF=""
- S LEXC=LEXB_"S"_LEXN
- S LEXT="Supporting files"
- S LEXF="757.011, 757.014, 757.03, 757.04, 757.05, 757.06,"
- W !,?LEX1,LEXC,?LEX2,LEXT,?LEX3,LEXF
- S LEXC=LEXB_" "_LEXN
- S LEXT=""
- S LEXF="757.11, 757.12, 757.13, 757.14, 757.2, 757.3,"
- W !,?LEX1,LEXC,?LEX2,LEXT,?LEX3,LEXF
- S LEXC=LEXB_" "_LEXN
- S LEXT=""
- S LEXF="757.31, 757.4 and 757.41"
- W !,?LEX1,LEXC,?LEX2,LEXT,?LEX3,LEXF
- S LEXC="",LEXT="",LEXF=""
- S LEXC=LEXB_"O"_LEXN
- S LEXT="One file"
- S LEXF="Select a single Lexicon file"
- W !,?LEX1,LEXC,?LEX2,LEXT,?LEX3,LEXF
- Q
- AMSOH2 ; All, Major, Supporting or One File - Help
- N LEXB,LEXN S LEXB=$$BOLD^LEXRXXM,LEXN=$$NORM^LEXRXXM
- W !," The cross-references of the Major (larger) files"
- W " involved with the"
- W !," Lexicon Lookup will be repaired. During the repair"
- W " process the "
- W !," cross-references are not deleted. Only those cross-"
- W "reference nodes "
- W !," that fail verification will be deleted. The Supporting"
- W " (smaller) files",!," will be re-indexed.",!,?1," "
- W !,?1,LEXB,"Users may remain on the system.",LEXN
- W !,?1," "
- Q
- ;
- CO(X) ; Ask to Continue
- S LEXTY=$G(LEXTY) N DIR,DTOUT,DUOUT,DIRUT,DIROUT,Y
- S DIR(0)="YAO",(DIR("?"),DIR("??"))="^D COH^LEXRXXA"
- S DIR("A")=" Do you wish to continue? (Y/N) "
- S DIR("PRE")="S:X[""?"" X=""??""" W ! D ^DIR
- S X=+Y S:$D(DTOUT)!($D(DUOUT))!($D(DIRUT))!($D(DIROUT)) X="^"
- N LEXTY
- Q X
- COH ; Continue Help
- N LEXFN,LEXAC S LEXAC="repair/re-index"
- S:+($G(LEXTY))=1 LEXAC="repair" S:+($G(LEXTY))=2 LEXAC="re-index"
- I +($G(LEXTY))'>0 D
- . W !," Answer 'Yes' to ",LEXAC," the Lexicon's cross-references"
- I +($G(LEXTY))=1&(+($G(LEXFI))'>0) D
- . W !," Answer 'Yes' to ",LEXAC," the Lexicon's cross-references"
- . W " of the",!," larger files"
- I +($G(LEXTY))=2&(+($G(LEXFI))'>0) D
- . W !," Answer 'Yes' to ",LEXAC," the Lexicon's cross-references"
- . W " of the",!," smaller files"
- I +($G(LEXTY))=3&(+($G(LEXFI))'>0) D
- . W !," Answer 'Yes' to ",LEXAC," the cross-references of all"
- . W !," of the Lexicon's files"
- I +($G(LEXTY))>0&(+($G(LEXFI))>0) D
- . I $D(^LEX(+($G(LEXFI))))!($D(^LEXT(+($G(LEXFI))))) D Q
- . . N LEXFN S LEXFN=$$FN^LEXRXXM(+($G(LEXFI)))
- . . I $L($G(LEXFN))&(+($G(LEXFI))>0) D
- . . . W !," Answer 'Yes' to ",LEXAC," the cross-references of "
- . . . W "the ",LEXFN,!," file #",$G(LEXFI)
- . . I '$L($G(LEXFN))&(+($G(LEXFI))>0) D
- . . . W !," Answer 'Yes' to ",LEXAC," the cross-references of "
- . . . W "file #",$G(LEXFI)
- . W !," Answer 'Yes' to ",LEXAC," the cross-references of "
- . W "the file(s)"
- Q
- ;
- FI(X) ; Select File
- N DIC,DTOUT,DUOUT,Y,LEX S DIC="^DIC(",DIC(0)="AEMQ"
- S DIC("A")=" Select Lexicon File: "
- S DIC("S")="I +($$FV^LEXRXXM(+Y))>0"
- W ! D ^DIC K DIC("S") S LEX=+($$FV^LEXRXXM(+Y))
- Q:$D(DTOUT)!($D(DUOUT)) "^" S X=+Y Q:LEX>0 X
- Q "^"
- ;
- ; Miscellaneous
- CLR ; Clear
- K LEXFI
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HLEXRXXA 5044 printed Mar 13, 2025@21:13:58 Page 2
- LEXRXXA ;ISL/KER - Re-Index Ask ;08/17/2011
- +1 ;;2.0;LEXICON UTILITY;**81**;Sep 23, 1996;Build 1
- +2 ;
- +3 ; Global Variables
- +4 ; ^LEX( SACC 1.3
- +5 ; ^LEXT( SACC 1.3
- +6 ;
- +7 ; External References
- +8 ; ^DIC ICR 10006
- +9 ; ^DIR ICR 10026
- +10 ; $$UP^XLFSTR ICR 10104
- +11 ;
- +12 ; Local Variables NEWed or KILLed Elsewhere
- +13 ; LEXFI File Number NEWed/KILLed by ONE^LEXRX
- +14 ;
- +15 QUIT
- AMSO(X) ; All, Major, Supporting or One File
- +1 NEW LEX,DIR,DTOUT,DUOUT,DIRUT,DIROUT,LEXB,LEXN,Y
- KILL LEX
- +2 DO AMSOF
- SET LEX=""
- SET LEXB=$$BOLD^LEXRXXM
- SET LEXN=$$NORM^LEXRXXM
- +3 SET DIR(0)="SAO^A:All Lexicon Files;M:Major Lexicon Files"
- +4 SET DIR(0)=DIR(0)_";S:Supporting Lexicon Files;O:One Lexicon File"
- +5 SET (DIR("?"),DIR("??"))="^D AMSOH^LEXRXXA"
- +6 SET DIR("PRE")="S X=$$AMSOP^LEXRXXA($G(X))"
- +7 SET DIR("A")=" Select "_LEXB_"A"_LEXN_"ll, "_LEXB_"M"_LEXN_"ajor, "
- +8 SET DIR("A")=DIR("A")_LEXB_"S"_LEXN_"upporting or "_LEXB_"O"_LEXN
- +9 SET DIR("A")=DIR("A")_"ne Lexicon file(s): (A/M/S/O) "
- +10 WRITE !
- DO ^DIR
- SET X=Y
- +11 QUIT X
- AMSOP(X) ; All, Major, Supporting or One File - Pre-process
- +1 NEW Y
- if '$LENGTH($GET(X))
- QUIT ""
- if $GET(X)["^"
- QUIT "^"
- SET X=$GET(X)
- +2 SET Y=$$UP^XLFSTR($EXTRACT(X,1))
- if "^A^M^S^O^?^"'[("^"_Y_"^")
- SET X="??"
- +3 QUIT X
- AMSOH ; All, Major, Supporting or One File - Help
- +1 if $LENGTH($GET(IOF))&($DATA(LEX))
- WRITE @IOF
- if $DATA(LEX)
- DO AMSOH2
- AMSOF ; All, Major, Supporting or One File - List Files
- +1 if $LENGTH($GET(IOF))&('$DATA(LEX))
- WRITE @IOF
- +2 NEW LEXB,LEXN,LEXC,LEXT,LEXF,LEX1,LEX2,LEX3
- +3 SET LEXB=$$BOLD^LEXRXXM
- SET LEXN=$$NORM^LEXRXXM
- +4 if '$DATA(LEX)
- SET (LEXB,LEXN)=""
- +5 SET LEX1=3
- SET LEX2=6
- SET LEX3=24
- if $DATA(LEX)
- SET LEX2=LEX2-1
- SET LEX3=LEX3-1
- +6 WRITE !," Repair/Re-Index Lexicon Cross-References",!
- +7 SET LEXC=""
- SET LEXT=""
- SET LEXF=""
- +8 WRITE !,?LEX1,LEXC,?LEX2,LEXT,?LEX3,LEXF
- +9 SET LEXC=LEXB_"A"_LEXN
- +10 SET LEXT="All files"
- +11 SET LEXF="757*"
- +12 WRITE !,?LEX1,LEXC,?LEX2,LEXT,?LEX3,LEXF
- +13 SET LEXC=""
- SET LEXT=""
- SET LEXF=""
- +14 SET LEXC=LEXB_"M"_LEXN
- +15 SET LEXT="Major files"
- +16 SET LEXF="757, 757.001, 757.01, 757.02, 757.1, 757.21 and 757.33"
- +17 WRITE !,?LEX1,LEXC,?LEX2,LEXT,?LEX3,LEXF
- +18 SET LEXC=""
- SET LEXT=""
- SET LEXF=""
- +19 SET LEXC=LEXB_"S"_LEXN
- +20 SET LEXT="Supporting files"
- +21 SET LEXF="757.011, 757.014, 757.03, 757.04, 757.05, 757.06,"
- +22 WRITE !,?LEX1,LEXC,?LEX2,LEXT,?LEX3,LEXF
- +23 SET LEXC=LEXB_" "_LEXN
- +24 SET LEXT=""
- +25 SET LEXF="757.11, 757.12, 757.13, 757.14, 757.2, 757.3,"
- +26 WRITE !,?LEX1,LEXC,?LEX2,LEXT,?LEX3,LEXF
- +27 SET LEXC=LEXB_" "_LEXN
- +28 SET LEXT=""
- +29 SET LEXF="757.31, 757.4 and 757.41"
- +30 WRITE !,?LEX1,LEXC,?LEX2,LEXT,?LEX3,LEXF
- +31 SET LEXC=""
- SET LEXT=""
- SET LEXF=""
- +32 SET LEXC=LEXB_"O"_LEXN
- +33 SET LEXT="One file"
- +34 SET LEXF="Select a single Lexicon file"
- +35 WRITE !,?LEX1,LEXC,?LEX2,LEXT,?LEX3,LEXF
- +36 QUIT
- AMSOH2 ; All, Major, Supporting or One File - Help
- +1 NEW LEXB,LEXN
- SET LEXB=$$BOLD^LEXRXXM
- SET LEXN=$$NORM^LEXRXXM
- +2 WRITE !," The cross-references of the Major (larger) files"
- +3 WRITE " involved with the"
- +4 WRITE !," Lexicon Lookup will be repaired. During the repair"
- +5 WRITE " process the "
- +6 WRITE !," cross-references are not deleted. Only those cross-"
- +7 WRITE "reference nodes "
- +8 WRITE !," that fail verification will be deleted. The Supporting"
- +9 WRITE " (smaller) files",!," will be re-indexed.",!,?1," "
- +10 WRITE !,?1,LEXB,"Users may remain on the system.",LEXN
- +11 WRITE !,?1," "
- +12 QUIT
- +13 ;
- CO(X) ; Ask to Continue
- +1 SET LEXTY=$GET(LEXTY)
- NEW DIR,DTOUT,DUOUT,DIRUT,DIROUT,Y
- +2 SET DIR(0)="YAO"
- SET (DIR("?"),DIR("??"))="^D COH^LEXRXXA"
- +3 SET DIR("A")=" Do you wish to continue? (Y/N) "
- +4 SET DIR("PRE")="S:X[""?"" X=""??"""
- WRITE !
- DO ^DIR
- +5 SET X=+Y
- if $DATA(DTOUT)!($DATA(DUOUT))!($DATA(DIRUT))!($DATA(DIROUT))
- SET X="^"
- +6 NEW LEXTY
- +7 QUIT X
- COH ; Continue Help
- +1 NEW LEXFN,LEXAC
- SET LEXAC="repair/re-index"
- +2 if +($GET(LEXTY))=1
- SET LEXAC="repair"
- if +($GET(LEXTY))=2
- SET LEXAC="re-index"
- +3 IF +($GET(LEXTY))'>0
- Begin DoDot:1
- +4 WRITE !," Answer 'Yes' to ",LEXAC," the Lexicon's cross-references"
- End DoDot:1
- +5 IF +($GET(LEXTY))=1&(+($GET(LEXFI))'>0)
- Begin DoDot:1
- +6 WRITE !," Answer 'Yes' to ",LEXAC," the Lexicon's cross-references"
- +7 WRITE " of the",!," larger files"
- End DoDot:1
- +8 IF +($GET(LEXTY))=2&(+($GET(LEXFI))'>0)
- Begin DoDot:1
- +9 WRITE !," Answer 'Yes' to ",LEXAC," the Lexicon's cross-references"
- +10 WRITE " of the",!," smaller files"
- End DoDot:1
- +11 IF +($GET(LEXTY))=3&(+($GET(LEXFI))'>0)
- Begin DoDot:1
- +12 WRITE !," Answer 'Yes' to ",LEXAC," the cross-references of all"
- +13 WRITE !," of the Lexicon's files"
- End DoDot:1
- +14 IF +($GET(LEXTY))>0&(+($GET(LEXFI))>0)
- Begin DoDot:1
- +15 IF $DATA(^LEX(+($GET(LEXFI))))!($DATA(^LEXT(+($GET(LEXFI)))))
- Begin DoDot:2
- +16 NEW LEXFN
- SET LEXFN=$$FN^LEXRXXM(+($GET(LEXFI)))
- +17 IF $LENGTH($GET(LEXFN))&(+($GET(LEXFI))>0)
- Begin DoDot:3
- +18 WRITE !," Answer 'Yes' to ",LEXAC," the cross-references of "
- +19 WRITE "the ",LEXFN,!," file #",$GET(LEXFI)
- End DoDot:3
- +20 IF '$LENGTH($GET(LEXFN))&(+($GET(LEXFI))>0)
- Begin DoDot:3
- +21 WRITE !," Answer 'Yes' to ",LEXAC," the cross-references of "
- +22 WRITE "file #",$GET(LEXFI)
- End DoDot:3
- End DoDot:2
- QUIT
- +23 WRITE !," Answer 'Yes' to ",LEXAC," the cross-references of "
- +24 WRITE "the file(s)"
- End DoDot:1
- +25 QUIT
- +26 ;
- FI(X) ; Select File
- +1 NEW DIC,DTOUT,DUOUT,Y,LEX
- SET DIC="^DIC("
- SET DIC(0)="AEMQ"
- +2 SET DIC("A")=" Select Lexicon File: "
- +3 SET DIC("S")="I +($$FV^LEXRXXM(+Y))>0"
- +4 WRITE !
- DO ^DIC
- KILL DIC("S")
- SET LEX=+($$FV^LEXRXXM(+Y))
- +5 if $DATA(DTOUT)!($DATA(DUOUT))
- QUIT "^"
- SET X=+Y
- if LEX>0
- QUIT X
- +6 QUIT "^"
- +7 ;
- +8 ; Miscellaneous
- CLR ; Clear
- +1 KILL LEXFI
- +2 QUIT