LEX2028P        ; ISL/KER - Pre/Post Install; 01/01/2004
 ;;2.0;LEXICON UTILITY;**28**;Sep 23, 1996
 ;
 ; External References
 ;   DBIA 10086  HOME^%ZIS
 ;   DBIA  2052  $$GET1^DID
 ;   DBIA  2055  PRD^DILFD
 ;   DBIA 10014  EN^DIU2
 ;   DBIA 10141  BMES^XPDUTL
 ;   DBIA 10141  MES^XPDUTL
 ;                      
 Q
 ;                      
POST ; LEX*2.0*28 Post-Install
 N LEXEDT S LEXEDT=$G(^LEXM(0,"CREATED")) D LOAD,MSG,KLEXM
 Q
LOAD ;   Load data
 N LEXB,LEXBUILD,LEXCD,LEXIGHF,LEXLAST,LEXLREV D IMP^LEX2028
 S U="^",LEXB=$G(^LEXM(0,"BUILD")) Q:LEXB=""  Q:$G(LEXBUILD)=""
 S LEXCD=0 S LEXCD=+($$CPD^LEX2028)
 I LEXCD,LEXB=LEXBUILD D  G RV
 . S X="Data for patch "_LEXBUILD_" has already been installed"
 . W:'$D(XPDNM) !!,X D:$D(XPDNM) BMES^XPDUTL(X)
 . S X="" W:'$D(XPDNM) ! D:$D(XPDNM) MES^XPDUTL(X)
 I 'LEXCD,LEXB=LEXBUILD D EN^LEXXGI
RV ;   Revision Numbers
 N LEXRV F LEXRV=757,757.001,757.01,757.02,757.1,757.9,757.901,757.902,757.903,757.91 D
 . Q:'$D(^LEXM(LEXRV,0))
 . Q:'$D(^LEX(LEXRV,0))&('$D(^LEXT(LEXRV,0)))&('$D(^LEXC(LEXRV,0)))
 . Q:'$L($$GET1^DID(+LEXRV,.01,,"LABEL"))
 . D PRD^DILFD(LEXRV,"28^3040101")
 F LEXRV=81,81.3 D
 . Q:'$D(^LEXM(LEXRV,0))  Q:'$D(^DD(LEXRV,0))  Q:'$L($$GET1^DID(+LEXRV,.01,,"LABEL"))
 . D PRD^DILFD(LEXRV,"17^3040101")
LOADQ ;   Quit Load
 D KLEXM
 Q
MSG ;   Send Installation Message
 Q:+($G(DUZ))=0!($$NOTDEF^LEX2028($G(DUZ)))
 D HOME^%ZIS N DIFROM,LEXLREV,LEXLAST,LEXBUILD,LEXIGHF,LEXSHORT
 S LEXSHORT="" D IMP^LEX2028,SEND^LEXXST Q
 ;                       
PRE ; LEX*2.0*28 Pre-Install
 D KDD,KCH Q
KDD ;   Kill previous copies of DDs - (N/A for patch 28)
 Q
KCH ;   Kill previous changes - (N/A for patch 28)
 Q
 ;                   
KLEXM ; Subscripted Kill of ^LEXM
 N DA S DA=0 F  S DA=$O(^LEXM(DA)) Q:+DA=0  K ^LEXM(DA)
 K ^LEXM(0)
 Q
CON ; Conversion of data (N/A for patch 28)
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HLEX2028P   1896     printed  Sep 23, 2025@19:39:38                                                                                                                                                                                                    Page 2
LEX2028P  ; ISL/KER - Pre/Post Install; 01/01/2004
 +1       ;;2.0;LEXICON UTILITY;**28**;Sep 23, 1996
 +2       ;
 +3       ; External References
 +4       ;   DBIA 10086  HOME^%ZIS
 +5       ;   DBIA  2052  $$GET1^DID
 +6       ;   DBIA  2055  PRD^DILFD
 +7       ;   DBIA 10014  EN^DIU2
 +8       ;   DBIA 10141  BMES^XPDUTL
 +9       ;   DBIA 10141  MES^XPDUTL
 +10      ;                      
 +11       QUIT 
 +12      ;                      
POST      ; LEX*2.0*28 Post-Install
 +1        NEW LEXEDT
           SET LEXEDT=$GET(^LEXM(0,"CREATED"))
           DO LOAD
           DO MSG
           DO KLEXM
 +2        QUIT 
LOAD      ;   Load data
 +1        NEW LEXB,LEXBUILD,LEXCD,LEXIGHF,LEXLAST,LEXLREV
           DO IMP^LEX2028
 +2        SET U="^"
           SET LEXB=$GET(^LEXM(0,"BUILD"))
           if LEXB=""
               QUIT 
           if $GET(LEXBUILD)=""
               QUIT 
 +3        SET LEXCD=0
           SET LEXCD=+($$CPD^LEX2028)
 +4        IF LEXCD
               IF LEXB=LEXBUILD
                   Begin DoDot:1
 +5                    SET X="Data for patch "_LEXBUILD_" has already been installed"
 +6                    if '$DATA(XPDNM)
                           WRITE !!,X
                       if $DATA(XPDNM)
                           DO BMES^XPDUTL(X)
 +7                    SET X=""
                       if '$DATA(XPDNM)
                           WRITE !
                       if $DATA(XPDNM)
                           DO MES^XPDUTL(X)
                   End DoDot:1
                   GOTO RV
 +8        IF 'LEXCD
               IF LEXB=LEXBUILD
                   DO EN^LEXXGI
RV        ;   Revision Numbers
 +1        NEW LEXRV
           FOR LEXRV=757,757.001,757.01,757.02,757.1,757.9,757.901,757.902,757.903,757.91
               Begin DoDot:1
 +2                if '$DATA(^LEXM(LEXRV,0))
                       QUIT 
 +3                if '$DATA(^LEX(LEXRV,0))&('$DATA(^LEXT(LEXRV,0)))&('$DATA(^LEXC(LEXRV,0)))
                       QUIT 
 +4                if '$LENGTH($$GET1^DID(+LEXRV,.01,,"LABEL"))
                       QUIT 
 +5                DO PRD^DILFD(LEXRV,"28^3040101")
               End DoDot:1
 +6        FOR LEXRV=81,81.3
               Begin DoDot:1
 +7                if '$DATA(^LEXM(LEXRV,0))
                       QUIT 
                   if '$DATA(^DD(LEXRV,0))
                       QUIT 
                   if '$LENGTH($$GET1^DID(+LEXRV,.01,,"LABEL"))
                       QUIT 
 +8                DO PRD^DILFD(LEXRV,"17^3040101")
               End DoDot:1
LOADQ     ;   Quit Load
 +1        DO KLEXM
 +2        QUIT 
MSG       ;   Send Installation Message
 +1        if +($GET(DUZ))=0!($$NOTDEF^LEX2028($GET(DUZ)))
               QUIT 
 +2        DO HOME^%ZIS
           NEW DIFROM,LEXLREV,LEXLAST,LEXBUILD,LEXIGHF,LEXSHORT
 +3        SET LEXSHORT=""
           DO IMP^LEX2028
           DO SEND^LEXXST
           QUIT 
 +4       ;                       
PRE       ; LEX*2.0*28 Pre-Install
 +1        DO KDD
           DO KCH
           QUIT 
KDD       ;   Kill previous copies of DDs - (N/A for patch 28)
 +1        QUIT 
KCH       ;   Kill previous changes - (N/A for patch 28)
 +1        QUIT 
 +2       ;                   
KLEXM     ; Subscripted Kill of ^LEXM
 +1        NEW DA
           SET DA=0
           FOR 
               SET DA=$ORDER(^LEXM(DA))
               if +DA=0
                   QUIT 
               KILL ^LEXM(DA)
 +2        KILL ^LEXM(0)
 +3        QUIT 
CON       ; Conversion of data (N/A for patch 28)
 +1        QUIT