- PXRMEXLI ; SLC/PKR - List Manager routines for repository entry install. ;06/30/2020
- ;;2.0;CLINICAL REMINDERS;**6,12,45,42**;Feb 04, 2005;Build 245
- ;
- ;====================
- EXIT ;Finish the install.
- D HFCAT
- ;Clean-up ^TMP.
- K ^TMP($J,"HFCAT"),^TMP("PXRMEXLC",$J),^TMP("PXRMEXTMP",$J),^TMP("PXRMEXFND",$J)
- Q
- ;
- ;====================
- HFCAT ;Check for category health factors that need to be renamed or repointed.
- ;Category names must end with "[C]".
- N CEXISTS,CNAME,EXISTS,HFNAME,L3C,LEN,PXNAT,TEXT
- ;National health factor categories need to have the '[C]' appended.
- S PXNAT=1
- S HFNAME=""
- F S HFNAME=$O(^TMP($J,"HFCAT",HFNAME)) Q:HFNAME="" D
- . S LEN=$L(NAME),L3C=$E(NAME,(LEN-2),LEN)
- . I L3C="[C]" Q
- . S CNAME=HFNAME_" [C]"
- . S CEXISTS=+$$EXISTS^PXRMEXIU(9999999.64,CNAME)
- . I CEXISTS D Q
- .. D HFCLASS(CEXISTS,PXRMNAT)
- .. K TEXT
- .. S TEXT(1)=""
- .. S TEXT(2)="Changing pointers to category health factor "_HFNAME
- .. S TEXT(3)="to point to "_CNAME
- .. S TEXT(4)="and deleting "_HFNAME
- .. D MSG(.TEXT)
- .. D HFCRPT(HFNAME,CNAME)
- . K TEXT
- . S TEXT(1)=""
- . S TEXT(2)="Renaming category health factor "_HFNAME
- . S TEXT(3)="to "_CNAME
- . D MSG(.TEXT)
- . D RENAME^PXRMUTIL(9999999.64,HFNAME,CNAME)
- Q
- ;
- ;====================
- HFCLASS(CIEN,PXRMNAT) ;Check the class of the category health factor and
- ;if PXNAT=1 make sure it is national.
- N CLASS
- S CLASS=$P(^AUTTHF(CIEN,100),U,1)
- I (PXRMNAT=1)&(CLASS="N") Q
- I PXRMNAT=1 S $P(^AUTTHF(CIEN,100),U,1)="N"
- Q
- ;
- ;====================
- HFCRPT(HFNAME,CNAME) ;Repoint a category health factor.
- ;All health factors in a category.
- N FDA,HFIEN,IEN,IENS,MSG,TEXT
- S HFIEN=+$$EXISTS^PXRMEXIU(9999999.64,HFNAME)
- I HFIEN=0 Q
- S IEN=""
- F S IEN=+$O(^AUTTHF("AC",HFIEN,IEN)) Q:IEN=0 D
- . K TEXT
- . S TEXT(1)=""
- . S TEXT(2)="Changing the category of health factor "_$P(^AUTTHF(IEN,0),U,1)
- . S TEXT(3)=" from "_HFNAME
- . S TEXT(4)=" to "_CNAME
- . D MSG(.TEXT)
- . S FDA(9999999.64,IEN_",",.03)=CNAME
- . D FILE^DIE("ET","FDA","MSG")
- . I $D(MSG) D
- .. K TEXT
- .. S TEXT(1)=""
- .. S TEXT(2)="There was an error changing the category"
- .. S TEXT(3)="the FileMan error message is:"
- .. D EN^DDIOL(.TEXT)
- .. D AWRITE^PXRMUTIL("MSG") H 3
- ;
- ;Health Summaries using the component PCE Health Factors Selected.
- D HSHFCAT(HFIEN,CNAME)
- ;
- ;Delete the original health factor.
- S FDA(9999999.64,HFIEN_",",.01)="@"
- D FILE^DIE("ET","FDA","MSG")
- I $D(MSG) D
- . K TEXT
- . S TEXT(1)=""
- . S TEXT(2)="There was an error deleting the category health factor:"
- . S TEXT(3)=HFNAME
- . S TEXT(4)="the FileMan error message is:"
- . D EN^DDIOL(.TEXT)
- . D AWRITE^PXRMUTIL("MSG") H 3
- Q
- ;
- ;====================
- HSHFCAT(HFIEN,CNAME) ;Search the Health Summary Type file for Selection Items
- ;that match HFIEN and replace it with CNAME.
- ;are health factor categories.
- N D0,D1,D2,FDA,IENS,MSG,SELITEM,TEXT,VP
- S VP=HFIEN_";AUTTHF("
- S D0=0
- F S D0=+$O(^GMT(142,D0)) Q:D0=0 D
- . S D1=0
- . F S D1=+$O(^GMT(142,D0,1,D1)) Q:D1=0 D
- .. S D2=0
- .. F S D2=+$O(^GMT(142,D0,1,D1,1,D2)) Q:D2=0 D
- ... I $P(^GMT(142,D0,1,D1,1,D2,0),U,1)'=VP Q
- ... S TEXT(1)=""
- ... S TEXT(2)="Changing Health Summary Type "_$P(^GMT(142,D0,0),U,1)_" Selection Item"
- ... S TEXT(3)=" from "_$P(^AUTTHF(HFIEN,0),U,1)
- ... S TEXT(4)=" to "_CNAME
- ... D MSG(.TEXT)
- ... S IENS=D2_","_D1_","_D0_","
- ... S FDA(142.14,IENS,.01)=CNAME
- ... D FILE^DIE("ET","FDA","MSG")
- ... I '$D(MSG) Q
- ... K TEXT
- ... S TEXT(1)=""
- ... S TEXT(2)="There was an error changing the Selection Item"
- ... S TEXT(3)="the FileMan error message is:"
- ... D EN^DDIOL(.TEXT)
- ... D AWRITE^PXRMUTIL("MSG") H 3
- Q
- ;
- ;====================
- INSALL ;Install all components in a repository entry.
- N IND,INSTALL
- ;Initialize the name change storage.
- K PXRMNMCH
- S (IND,INSTALL,PXRMDONE)=0
- F S IND=$O(^TMP("PXRMEXLC",$J,"SEL",IND)) Q:(+IND=0)!(PXRMDONE) D
- . D INSCOM(IND,.INSTALL)
- ;
- ;If anything was installed rebuild the display.
- I INSTALL D CDISP^PXRMEXLC(PXRMRIEN)
- ;
- ;Save the install history in the repository.
- D SAVHIST^PXRMEXU1
- Q
- ;
- ;====================
- INSCOM(IND,INSTALL) ;Install component IND.
- ;PXRMRIEN is not passed because this is invoked by the ListManger
- ;action to install a repository entry.
- N ACTION,ATTR,END,EXISTS,FIELDNUM,FILENUM,IND120,JND120
- N NEWNAME,NEWPT01,PT01,RTN,START,TEMP,TEMP0
- S TEMP=^TMP("PXRMEXLC",$J,"SEL",IND)
- S FILENUM=$P(TEMP,U,1)
- S IND120=$P(TEMP,U,2)
- S JND120=$P(TEMP,U,3)
- S EXISTS=$P(TEMP,U,4)
- ;Dialogs use their own installation screen.
- I FILENUM=801.41 D Q
- . D DBUILD^PXRMEXLB(PXRMRIEN,IND120,JND120)
- . D START^PXRMEXLD
- . S VALMBCK="R"
- S TEMP=^PXD(811.8,PXRMRIEN,120,IND120,1,JND120,0)
- S START=$P(TEMP,U,2)
- S END=$P(TEMP,U,3)
- S TEMP=^PXD(811.8,PXRMRIEN,100,START,0)
- ;Go to full screen mode.
- D FULL^VALM1
- I ((FILENUM=0)!(FILENUM=811.4)),DUZ(0)'="@" D Q
- . I FILENUM=0 W !,"Only programmers can install routines."
- . I FILENUM=811.4 W !,"Only programmers can install Reminder Computed Findings."
- . H 2
- . S VALMBCK="R"
- I FILENUM=0 D
- . D RTNLD^PXRMEXIC(PXRMRIEN,START,END,.ATTR,.RTN)
- . D CHECKSUM^PXRMEXCS(.ATTR,START,END)
- . S ACTION=$$GETRACT^PXRMEXCF(.ATTR,.NEWNAME,.PXRMNMCH,.RTN,EXISTS)
- .;Save what was done for the installation summary.
- . S ^TMP("PXRMEXIA",$J,IND,"ROUTINE",ATTR("NAME"),ACTION)=NEWNAME
- E D
- .;Make sure we have the .01, some files have .001.
- . S TEMP0=$P(TEMP,";",3)
- . S FIELDNUM=$P(TEMP0,"~",1)
- . I FIELDNUM=.001 S TEMP=^PXD(811.8,PXRMRIEN,100,(START+1),0)
- . S PT01=$P(TEMP,"~",2)
- . D SETATTR^PXRMEXFI(.ATTR,FILENUM,PT01)
- . D CHECKSUM^PXRMEXCS(.ATTR,START,END)
- . S ACTION=$$GETFACT^PXRMEXFI(PT01,.ATTR,.NEWPT01,.PXRMNMCH,EXISTS)
- .;Save what was done for the installation summary.
- . S ^TMP("PXRMEXIA",$J,IND,ATTR("FILE NAME"),ATTR("PT01"),ACTION)=NEWPT01
- ;If the ACTION is Quit then quit the entire install.
- I ACTION="Q" S PXRMDONE=1 Q
- ;If the ACTION is Skip then skip this component.
- I ACTION="S" S VALMBCK="R" Q
- ;If the ACTION is rePlace then skip this component.
- I ACTION="P" S VALMBCK="R" Q
- ;Install this component.
- I FILENUM=0 D
- . S NEWPT01=$G(PXRMNMCH(ATTR("FILE NUMBER"),ATTR("NAME")))
- . I NEWPT01="" S NEWPT01=ATTR("NAME")
- . D RTNSAVE^PXRMEXIC(.RTN,NEWPT01)
- . S INSTALL=1
- E D
- . D FILE^PXRMEXIC(PXRMRIEN,EXISTS,IND120,JND120,ACTION,.ATTR,.PXRMNMCH)
- . S INSTALL=1
- S VALMBCK="R"
- Q
- ;
- ;====================
- INSSEL ;Get a list of components to install.
- N IND,INSTALL,VALMBG,VALMLST,VALMY
- ;
- S VALMBG=1,VALMLST=+$O(^TMP("PXRMEXLC",$J,"IDX",""),-1)
- ;
- ;Get the list to install.
- D EN^VALM2(XQORNOD(0))
- ;If there is no list quit.
- I '$D(VALMY) Q
- ;
- K ^TMP("PXRMEXIA",$J),^TMP("PXRMEXIAD",$J)
- ;
- ;Initialize the name change storage.
- K PXRMNMCH
- S (IND,INSTALL)=0
- F S IND=$O(VALMY(IND)) Q:(+IND=0)!(PXRMDONE) D INSCOM(IND,.INSTALL)
- ;
- ;If anything was installed rebuild the display.
- I INSTALL D CDISP^PXRMEXLC(PXRMRIEN)
- ;
- ;Save the install history in the repository.
- D SAVHIST^PXRMEXU1
- Q
- ;
- ;====================
- INSTALL ;Install the repository entry PXRMRIEN.
- N CLOK,IEN,IND,VALMY
- ;Make sure the component list exists for this entry. PXRMRIEN is
- ;set in INSTALL^PXRMEXLR.
- S CLOK=1
- I '$D(^PXD(811.8,PXRMRIEN,120)) D CLIST^PXRMEXCO(PXRMRIEN,.CLOK)
- I 'CLOK Q
- ;Look for packing attributes and build the list if it does not exist.
- I '$D(^PXD(811.8,PXRMRIEN,140)) D PATTR^PXRMEXU1(PXRMRIEN)
- K ^TMP($J,"HFCAT")
- ;Format the component list for display.
- D CDISP^PXRMEXLC(PXRMRIEN)
- S VALMCNT=$O(^TMP("PXRMEXLC",$J,"IDX"),-1)
- S VALMBCK="R"
- D XQORM
- Q
- ;
- ;====================
- MSG(TEXT) ;Display messages.
- D FULL^VALM1
- D EN^DDIOL(.TEXT)
- H 3
- S VALMBCK="R"
- Q
- ;
- ;====================
- ;Exit action added to PXRM EXCH INSTALL MENU
- PEXIT ;PXRM EXCH INSTALL MENU protocol exit code
- S VALMSG="+ Next Screen - Prev Screen ?? More Actions"
- ;Reset after page up/down etc
- D XQORM
- Q
- ;
- ;====================
- XQORM S XQORM("#")=$O(^ORD(101,"B","PXRM EXCH SELECT COMPONENT",0))_U_"1:"_VALMCNT
- S XQORM("A")="Select Action: "
- Q
- ;
- ;====================
- XSEL ;PXRM EXCH SELECT COMPONENT validation
- N CNT,SELECT,SEL,PXRMDONE
- S SELECT=$P(XQORNOD(0),"=",2)
- I '$$VALID^PXRMEXLD(SELECT) S VALMBCK="R" Q
- ;
- ;Sort selections into ascending sequence order
- D ORDER^PXRMEXLC(.SELECT,1)
- ;
- K ^TMP("PXRMEXIA",$J),^TMP("PXRMEXIAD",$J)
- ;
- ;Install selected component
- N INSTALL
- S INSTALL=0,CNT=0,PXRMDONE=0
- F CNT=1:1 S SEL=$P(SELECT,",",CNT) Q:'SEL D Q:PXRMDONE
- . D INSCOM(SEL,.INSTALL)
- ;
- ;If anything was installed rebuild the display.
- I INSTALL D CDISP^PXRMEXLC(PXRMRIEN)
- ;
- ;Save the install history in the repository.
- D SAVHIST^PXRMEXU1
- ;
- ;Clear any renames made in the last session
- K PXRMNMCH
- Q
- ;
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPXRMEXLI 8937 printed Mar 13, 2025@20:49:44 Page 2
- PXRMEXLI ; SLC/PKR - List Manager routines for repository entry install. ;06/30/2020
- +1 ;;2.0;CLINICAL REMINDERS;**6,12,45,42**;Feb 04, 2005;Build 245
- +2 ;
- +3 ;====================
- EXIT ;Finish the install.
- +1 DO HFCAT
- +2 ;Clean-up ^TMP.
- +3 KILL ^TMP($JOB,"HFCAT"),^TMP("PXRMEXLC",$JOB),^TMP("PXRMEXTMP",$JOB),^TMP("PXRMEXFND",$JOB)
- +4 QUIT
- +5 ;
- +6 ;====================
- HFCAT ;Check for category health factors that need to be renamed or repointed.
- +1 ;Category names must end with "[C]".
- +2 NEW CEXISTS,CNAME,EXISTS,HFNAME,L3C,LEN,PXNAT,TEXT
- +3 ;National health factor categories need to have the '[C]' appended.
- +4 SET PXNAT=1
- +5 SET HFNAME=""
- +6 FOR
- SET HFNAME=$ORDER(^TMP($JOB,"HFCAT",HFNAME))
- if HFNAME=""
- QUIT
- Begin DoDot:1
- +7 SET LEN=$LENGTH(NAME)
- SET L3C=$EXTRACT(NAME,(LEN-2),LEN)
- +8 IF L3C="[C]"
- QUIT
- +9 SET CNAME=HFNAME_" [C]"
- +10 SET CEXISTS=+$$EXISTS^PXRMEXIU(9999999.64,CNAME)
- +11 IF CEXISTS
- Begin DoDot:2
- +12 DO HFCLASS(CEXISTS,PXRMNAT)
- +13 KILL TEXT
- +14 SET TEXT(1)=""
- +15 SET TEXT(2)="Changing pointers to category health factor "_HFNAME
- +16 SET TEXT(3)="to point to "_CNAME
- +17 SET TEXT(4)="and deleting "_HFNAME
- +18 DO MSG(.TEXT)
- +19 DO HFCRPT(HFNAME,CNAME)
- End DoDot:2
- QUIT
- +20 KILL TEXT
- +21 SET TEXT(1)=""
- +22 SET TEXT(2)="Renaming category health factor "_HFNAME
- +23 SET TEXT(3)="to "_CNAME
- +24 DO MSG(.TEXT)
- +25 DO RENAME^PXRMUTIL(9999999.64,HFNAME,CNAME)
- End DoDot:1
- +26 QUIT
- +27 ;
- +28 ;====================
- HFCLASS(CIEN,PXRMNAT) ;Check the class of the category health factor and
- +1 ;if PXNAT=1 make sure it is national.
- +2 NEW CLASS
- +3 SET CLASS=$PIECE(^AUTTHF(CIEN,100),U,1)
- +4 IF (PXRMNAT=1)&(CLASS="N")
- QUIT
- +5 IF PXRMNAT=1
- SET $PIECE(^AUTTHF(CIEN,100),U,1)="N"
- +6 QUIT
- +7 ;
- +8 ;====================
- HFCRPT(HFNAME,CNAME) ;Repoint a category health factor.
- +1 ;All health factors in a category.
- +2 NEW FDA,HFIEN,IEN,IENS,MSG,TEXT
- +3 SET HFIEN=+$$EXISTS^PXRMEXIU(9999999.64,HFNAME)
- +4 IF HFIEN=0
- QUIT
- +5 SET IEN=""
- +6 FOR
- SET IEN=+$ORDER(^AUTTHF("AC",HFIEN,IEN))
- if IEN=0
- QUIT
- Begin DoDot:1
- +7 KILL TEXT
- +8 SET TEXT(1)=""
- +9 SET TEXT(2)="Changing the category of health factor "_$PIECE(^AUTTHF(IEN,0),U,1)
- +10 SET TEXT(3)=" from "_HFNAME
- +11 SET TEXT(4)=" to "_CNAME
- +12 DO MSG(.TEXT)
- +13 SET FDA(9999999.64,IEN_",",.03)=CNAME
- +14 DO FILE^DIE("ET","FDA","MSG")
- +15 IF $DATA(MSG)
- Begin DoDot:2
- +16 KILL TEXT
- +17 SET TEXT(1)=""
- +18 SET TEXT(2)="There was an error changing the category"
- +19 SET TEXT(3)="the FileMan error message is:"
- +20 DO EN^DDIOL(.TEXT)
- +21 DO AWRITE^PXRMUTIL("MSG")
- HANG 3
- End DoDot:2
- End DoDot:1
- +22 ;
- +23 ;Health Summaries using the component PCE Health Factors Selected.
- +24 DO HSHFCAT(HFIEN,CNAME)
- +25 ;
- +26 ;Delete the original health factor.
- +27 SET FDA(9999999.64,HFIEN_",",.01)="@"
- +28 DO FILE^DIE("ET","FDA","MSG")
- +29 IF $DATA(MSG)
- Begin DoDot:1
- +30 KILL TEXT
- +31 SET TEXT(1)=""
- +32 SET TEXT(2)="There was an error deleting the category health factor:"
- +33 SET TEXT(3)=HFNAME
- +34 SET TEXT(4)="the FileMan error message is:"
- +35 DO EN^DDIOL(.TEXT)
- +36 DO AWRITE^PXRMUTIL("MSG")
- HANG 3
- End DoDot:1
- +37 QUIT
- +38 ;
- +39 ;====================
- HSHFCAT(HFIEN,CNAME) ;Search the Health Summary Type file for Selection Items
- +1 ;that match HFIEN and replace it with CNAME.
- +2 ;are health factor categories.
- +3 NEW D0,D1,D2,FDA,IENS,MSG,SELITEM,TEXT,VP
- +4 SET VP=HFIEN_";AUTTHF("
- +5 SET D0=0
- +6 FOR
- SET D0=+$ORDER(^GMT(142,D0))
- if D0=0
- QUIT
- Begin DoDot:1
- +7 SET D1=0
- +8 FOR
- SET D1=+$ORDER(^GMT(142,D0,1,D1))
- if D1=0
- QUIT
- Begin DoDot:2
- +9 SET D2=0
- +10 FOR
- SET D2=+$ORDER(^GMT(142,D0,1,D1,1,D2))
- if D2=0
- QUIT
- Begin DoDot:3
- +11 IF $PIECE(^GMT(142,D0,1,D1,1,D2,0),U,1)'=VP
- QUIT
- +12 SET TEXT(1)=""
- +13 SET TEXT(2)="Changing Health Summary Type "_$PIECE(^GMT(142,D0,0),U,1)_" Selection Item"
- +14 SET TEXT(3)=" from "_$PIECE(^AUTTHF(HFIEN,0),U,1)
- +15 SET TEXT(4)=" to "_CNAME
- +16 DO MSG(.TEXT)
- +17 SET IENS=D2_","_D1_","_D0_","
- +18 SET FDA(142.14,IENS,.01)=CNAME
- +19 DO FILE^DIE("ET","FDA","MSG")
- +20 IF '$DATA(MSG)
- QUIT
- +21 KILL TEXT
- +22 SET TEXT(1)=""
- +23 SET TEXT(2)="There was an error changing the Selection Item"
- +24 SET TEXT(3)="the FileMan error message is:"
- +25 DO EN^DDIOL(.TEXT)
- +26 DO AWRITE^PXRMUTIL("MSG")
- HANG 3
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +27 QUIT
- +28 ;
- +29 ;====================
- INSALL ;Install all components in a repository entry.
- +1 NEW IND,INSTALL
- +2 ;Initialize the name change storage.
- +3 KILL PXRMNMCH
- +4 SET (IND,INSTALL,PXRMDONE)=0
- +5 FOR
- SET IND=$ORDER(^TMP("PXRMEXLC",$JOB,"SEL",IND))
- if (+IND=0)!(PXRMDONE)
- QUIT
- Begin DoDot:1
- +6 DO INSCOM(IND,.INSTALL)
- End DoDot:1
- +7 ;
- +8 ;If anything was installed rebuild the display.
- +9 IF INSTALL
- DO CDISP^PXRMEXLC(PXRMRIEN)
- +10 ;
- +11 ;Save the install history in the repository.
- +12 DO SAVHIST^PXRMEXU1
- +13 QUIT
- +14 ;
- +15 ;====================
- INSCOM(IND,INSTALL) ;Install component IND.
- +1 ;PXRMRIEN is not passed because this is invoked by the ListManger
- +2 ;action to install a repository entry.
- +3 NEW ACTION,ATTR,END,EXISTS,FIELDNUM,FILENUM,IND120,JND120
- +4 NEW NEWNAME,NEWPT01,PT01,RTN,START,TEMP,TEMP0
- +5 SET TEMP=^TMP("PXRMEXLC",$JOB,"SEL",IND)
- +6 SET FILENUM=$PIECE(TEMP,U,1)
- +7 SET IND120=$PIECE(TEMP,U,2)
- +8 SET JND120=$PIECE(TEMP,U,3)
- +9 SET EXISTS=$PIECE(TEMP,U,4)
- +10 ;Dialogs use their own installation screen.
- +11 IF FILENUM=801.41
- Begin DoDot:1
- +12 DO DBUILD^PXRMEXLB(PXRMRIEN,IND120,JND120)
- +13 DO START^PXRMEXLD
- +14 SET VALMBCK="R"
- End DoDot:1
- QUIT
- +15 SET TEMP=^PXD(811.8,PXRMRIEN,120,IND120,1,JND120,0)
- +16 SET START=$PIECE(TEMP,U,2)
- +17 SET END=$PIECE(TEMP,U,3)
- +18 SET TEMP=^PXD(811.8,PXRMRIEN,100,START,0)
- +19 ;Go to full screen mode.
- +20 DO FULL^VALM1
- +21 IF ((FILENUM=0)!(FILENUM=811.4))
- IF DUZ(0)'="@"
- Begin DoDot:1
- +22 IF FILENUM=0
- WRITE !,"Only programmers can install routines."
- +23 IF FILENUM=811.4
- WRITE !,"Only programmers can install Reminder Computed Findings."
- +24 HANG 2
- +25 SET VALMBCK="R"
- End DoDot:1
- QUIT
- +26 IF FILENUM=0
- Begin DoDot:1
- +27 DO RTNLD^PXRMEXIC(PXRMRIEN,START,END,.ATTR,.RTN)
- +28 DO CHECKSUM^PXRMEXCS(.ATTR,START,END)
- +29 SET ACTION=$$GETRACT^PXRMEXCF(.ATTR,.NEWNAME,.PXRMNMCH,.RTN,EXISTS)
- +30 ;Save what was done for the installation summary.
- +31 SET ^TMP("PXRMEXIA",$JOB,IND,"ROUTINE",ATTR("NAME"),ACTION)=NEWNAME
- End DoDot:1
- +32 IF '$TEST
- Begin DoDot:1
- +33 ;Make sure we have the .01, some files have .001.
- +34 SET TEMP0=$PIECE(TEMP,";",3)
- +35 SET FIELDNUM=$PIECE(TEMP0,"~",1)
- +36 IF FIELDNUM=.001
- SET TEMP=^PXD(811.8,PXRMRIEN,100,(START+1),0)
- +37 SET PT01=$PIECE(TEMP,"~",2)
- +38 DO SETATTR^PXRMEXFI(.ATTR,FILENUM,PT01)
- +39 DO CHECKSUM^PXRMEXCS(.ATTR,START,END)
- +40 SET ACTION=$$GETFACT^PXRMEXFI(PT01,.ATTR,.NEWPT01,.PXRMNMCH,EXISTS)
- +41 ;Save what was done for the installation summary.
- +42 SET ^TMP("PXRMEXIA",$JOB,IND,ATTR("FILE NAME"),ATTR("PT01"),ACTION)=NEWPT01
- End DoDot:1
- +43 ;If the ACTION is Quit then quit the entire install.
- +44 IF ACTION="Q"
- SET PXRMDONE=1
- QUIT
- +45 ;If the ACTION is Skip then skip this component.
- +46 IF ACTION="S"
- SET VALMBCK="R"
- QUIT
- +47 ;If the ACTION is rePlace then skip this component.
- +48 IF ACTION="P"
- SET VALMBCK="R"
- QUIT
- +49 ;Install this component.
- +50 IF FILENUM=0
- Begin DoDot:1
- +51 SET NEWPT01=$GET(PXRMNMCH(ATTR("FILE NUMBER"),ATTR("NAME")))
- +52 IF NEWPT01=""
- SET NEWPT01=ATTR("NAME")
- +53 DO RTNSAVE^PXRMEXIC(.RTN,NEWPT01)
- +54 SET INSTALL=1
- End DoDot:1
- +55 IF '$TEST
- Begin DoDot:1
- +56 DO FILE^PXRMEXIC(PXRMRIEN,EXISTS,IND120,JND120,ACTION,.ATTR,.PXRMNMCH)
- +57 SET INSTALL=1
- End DoDot:1
- +58 SET VALMBCK="R"
- +59 QUIT
- +60 ;
- +61 ;====================
- INSSEL ;Get a list of components to install.
- +1 NEW IND,INSTALL,VALMBG,VALMLST,VALMY
- +2 ;
- +3 SET VALMBG=1
- SET VALMLST=+$ORDER(^TMP("PXRMEXLC",$JOB,"IDX",""),-1)
- +4 ;
- +5 ;Get the list to install.
- +6 DO EN^VALM2(XQORNOD(0))
- +7 ;If there is no list quit.
- +8 IF '$DATA(VALMY)
- QUIT
- +9 ;
- +10 KILL ^TMP("PXRMEXIA",$JOB),^TMP("PXRMEXIAD",$JOB)
- +11 ;
- +12 ;Initialize the name change storage.
- +13 KILL PXRMNMCH
- +14 SET (IND,INSTALL)=0
- +15 FOR
- SET IND=$ORDER(VALMY(IND))
- if (+IND=0)!(PXRMDONE)
- QUIT
- DO INSCOM(IND,.INSTALL)
- +16 ;
- +17 ;If anything was installed rebuild the display.
- +18 IF INSTALL
- DO CDISP^PXRMEXLC(PXRMRIEN)
- +19 ;
- +20 ;Save the install history in the repository.
- +21 DO SAVHIST^PXRMEXU1
- +22 QUIT
- +23 ;
- +24 ;====================
- INSTALL ;Install the repository entry PXRMRIEN.
- +1 NEW CLOK,IEN,IND,VALMY
- +2 ;Make sure the component list exists for this entry. PXRMRIEN is
- +3 ;set in INSTALL^PXRMEXLR.
- +4 SET CLOK=1
- +5 IF '$DATA(^PXD(811.8,PXRMRIEN,120))
- DO CLIST^PXRMEXCO(PXRMRIEN,.CLOK)
- +6 IF 'CLOK
- QUIT
- +7 ;Look for packing attributes and build the list if it does not exist.
- +8 IF '$DATA(^PXD(811.8,PXRMRIEN,140))
- DO PATTR^PXRMEXU1(PXRMRIEN)
- +9 KILL ^TMP($JOB,"HFCAT")
- +10 ;Format the component list for display.
- +11 DO CDISP^PXRMEXLC(PXRMRIEN)
- +12 SET VALMCNT=$ORDER(^TMP("PXRMEXLC",$JOB,"IDX"),-1)
- +13 SET VALMBCK="R"
- +14 DO XQORM
- +15 QUIT
- +16 ;
- +17 ;====================
- MSG(TEXT) ;Display messages.
- +1 DO FULL^VALM1
- +2 DO EN^DDIOL(.TEXT)
- +3 HANG 3
- +4 SET VALMBCK="R"
- +5 QUIT
- +6 ;
- +7 ;====================
- +8 ;Exit action added to PXRM EXCH INSTALL MENU
- PEXIT ;PXRM EXCH INSTALL MENU protocol exit code
- +1 SET VALMSG="+ Next Screen - Prev Screen ?? More Actions"
- +2 ;Reset after page up/down etc
- +3 DO XQORM
- +4 QUIT
- +5 ;
- +6 ;====================
- XQORM SET XQORM("#")=$ORDER(^ORD(101,"B","PXRM EXCH SELECT COMPONENT",0))_U_"1:"_VALMCNT
- +1 SET XQORM("A")="Select Action: "
- +2 QUIT
- +3 ;
- +4 ;====================
- XSEL ;PXRM EXCH SELECT COMPONENT validation
- +1 NEW CNT,SELECT,SEL,PXRMDONE
- +2 SET SELECT=$PIECE(XQORNOD(0),"=",2)
- +3 IF '$$VALID^PXRMEXLD(SELECT)
- SET VALMBCK="R"
- QUIT
- +4 ;
- +5 ;Sort selections into ascending sequence order
- +6 DO ORDER^PXRMEXLC(.SELECT,1)
- +7 ;
- +8 KILL ^TMP("PXRMEXIA",$JOB),^TMP("PXRMEXIAD",$JOB)
- +9 ;
- +10 ;Install selected component
- +11 NEW INSTALL
- +12 SET INSTALL=0
- SET CNT=0
- SET PXRMDONE=0
- +13 FOR CNT=1:1
- SET SEL=$PIECE(SELECT,",",CNT)
- if 'SEL
- QUIT
- Begin DoDot:1
- +14 DO INSCOM(SEL,.INSTALL)
- End DoDot:1
- if PXRMDONE
- QUIT
- +15 ;
- +16 ;If anything was installed rebuild the display.
- +17 IF INSTALL
- DO CDISP^PXRMEXLC(PXRMRIEN)
- +18 ;
- +19 ;Save the install history in the repository.
- +20 DO SAVHIST^PXRMEXU1
- +21 ;
- +22 ;Clear any renames made in the last session
- +23 KILL PXRMNMCH
- +24 QUIT
- +25 ;