PXRMEXIH ; SLC/PKR - Routines for installation history. ;08/08/2007 ;;2.0;CLINICAL REMINDERS;**6**;Feb 04, 2005;Build 123 ;====================================================== BLDLIST ;Build a list of install histories in ^TMP("PXRMEXIH",$J). N DATE,FMTSTR,IHIEN,IND,INDONE,JND,NAME,NL,NLINE,NSEL,OUTPUT N SOURCE,TDATE,TEMP,TEXT,TYPE K ^TMP("PXRMEXIH",$J) S FMTSTR=$$LMFMTSTR^PXRMTEXT(.VALMDDF,"LLL") S (NLINE,NSEL,VALMCNT)=0 S INDONE=+$P($G(^PXD(811.8,PXRMRIEN,130,0)),U,4) S TEMP=^PXD(811.8,PXRMRIEN,0) S NAME=" "_$P(TEMP,U,1) S SOURCE=$P(TEMP,U,2) S DATE=$P(TEMP,U,3) D FMT(NAME,SOURCE,DATE,FMTSTR,.NL,.OUTPUT) F JND=1:1:NL S NLINE=NLINE+1,^TMP("PXRMEXIH",$J,NLINE,0)=OUTPUT(JND) S FMTSTR="4R1^20L2^15L2^35L" S TEXT=" ^Installation Date^Type^Installed By" D COLFMT^PXRMTEXT(FMTSTR,TEXT," ",.NL,.OUTPUT) F JND=1:1:NL S NLINE=NLINE+1,^TMP("PXRMEXIH",$J,NLINE,0)=OUTPUT(JND) S TEXT=" ^-------------------^----^------------" D COLFMT^PXRMTEXT(FMTSTR,TEXT," ",.NL,.OUTPUT) F JND=1:1:NL S NLINE=NLINE+1,^TMP("PXRMEXIH",$J,NLINE,0)=OUTPUT(JND) I 'INDONE D Q . S NLINE=NLINE+1 . S ^TMP("PXRMEXIH",$J,NLINE,0)=" none" . S NLINE=NLINE+1 . S ^TMP("PXRMEXIH",$J,NLINE,0)=" " ;Build the "dummy" lines so EN^VALM2 will work. F IND=1:1:NLINE S ^TMP("PXRMEXIH",$J,"IDX",IND,1)="" S DATE="" F S DATE=$O(^PXD(811.8,PXRMRIEN,130,"B",DATE)) Q:DATE="" D . S NSEL=NSEL+1 . S IHIEN=$O(^PXD(811.8,PXRMRIEN,130,"B",DATE,"")) . S TEMP=^PXD(811.8,PXRMRIEN,130,IHIEN,0) . S TDATE=$$FMTE^XLFDT($P(TEMP,U,1),"5Z") . S SOURCE=$P(TEMP,U,2) . S TYPE=$P(TEMP,U,3) . S TEXT=NSEL_U_TDATE_U_TYPE_U_SOURCE . D COLFMT^PXRMTEXT(FMTSTR,TEXT," ",.NL,.OUTPUT) . F JND=1:1:NL D .. S NLINE=NLINE+1,^TMP("PXRMEXIH",$J,NLINE,0)=OUTPUT(JND) .. S ^TMP("PXRMEXIH",$J,"IDX",NLINE,NSEL)="" .. S ^TMP("PXRMEXIH",$J,"SEL",NSEL)=PXRMRIEN_U_IHIEN S NLINE=NLINE+1,^TMP("PXRMEXIH",$J,NLINE,0)=" " S VALMCNT=NLINE S ^TMP("PXRMEXIH",$J,"VALMCNT")=NLINE S ^TMP("PXRMEXIH",$J,"IDX",NLINE,NSEL)="" Q ; ;====================================================== DELETE(LIST) ;Delete the install histories on the list. N IHIEN,IND,RIEN,TEMP S IND="" F S IND=$O(LIST(IND)) Q:IND="" D . S TEMP=^TMP("PXRMEXIH",$J,"SEL",IND) . S RIEN=$P(TEMP,U,1) . S IHIEN=$P(TEMP,U,2) . D DELHIST^PXRMEXU1(RIEN,IHIEN) ;Rebuild the history list display. D BLDLIST S VALMBCK="R" Q ; ;====================================================== DELHIST ;Get a list of repository installation entries and delete them. ;Save the original list, it contains the selected repository entries. N VALMBG,VALMLST,VALMY S VALMBG=1,VALMLST=+$O(^TMP("PXRMEXIH",$J,"IDX",""),-1) ;Get the list to delete. D EN^VALM2(XQORNOD(0)) ;If there is no list quit. I '$D(VALMY) Q D DELETE(.VALMY) Q ; ;====================================================== DETAILS ;Output the details of an installation. N VALMBG,VALMCNT,VALMLST,VALMY S VALMBG=1,VALMLST=+$O(^TMP("PXRMEXIH",$J,"IDX",""),-1) S VALMCNT=^TMP("PXRMEXIH",$J,"VALMCNT") ;Get the list to display. D EN^VALM2(XQORNOD(0)) ;If there is no list quit. I '$D(VALMY) Q D DDISP(.VALMY) Q ; ;================================================== DDISP(ARRAY) ;Display details list N ACTION,CAPTION,CMPNT,DI,DP,ENTRY,FMTSTR,IHIEN,IND,JND,KND N NL,NLINE,OUTPUT,RIEN,TEMP,TEXT,VALMCNT,VALMHDR K ^TMP("PXRMEXID",$J) ;If there are no items then quit. I '$D(ARRAY) Q S FMTSTR="4R1^34L2^6C2^34L" S VALMCNT=0 S TEMP=^PXD(811.8,PXRMRIEN,0) S ENTRY=$E($P(TEMP,U,1),1,38) S DP=$$FMTE^XLFDT($P(TEMP,U,3),"5Z") ;CAPTION is used in ENTRY action of LM template S CAPTION="Entry: "_ENTRY_" Date Packed: "_DP S (IND,NLINE,NUM)=0 F S IND=$O(ARRAY(IND)) Q:IND="" D . S TEMP=^TMP("PXRMEXIH",$J,"SEL",IND) . S RIEN=$P(TEMP,U,1) . S IHIEN=$P(TEMP,U,2) . S DI=$$FMTE^XLFDT(^PXD(811.8,RIEN,130,IHIEN,0),"5Z") . I NLINE>1 D .. S NLINE=NLINE+1 .. S ^TMP("PXRMEXID",$J,NLINE,0)="------------------------------------------------------------------------------" . S NLINE=NLINE+1 . S ^TMP("PXRMEXID",$J,NLINE,0)="Installation date: "_DI .;Write the header line here. . S NLINE=NLINE+1 . S ^TMP("PXRMEXID",$J,NLINE,0)=" Component Action New Name" . S CMPNT="" . S JND=0 . F S JND=$O(^PXD(811.8,RIEN,130,IHIEN,1,JND)) Q:JND="" D .. S TEMP=^PXD(811.8,RIEN,130,IHIEN,1,JND,0) .. I $P(TEMP,U,2)'=CMPNT D ... S NLINE=NLINE+1 ... S ^TMP("PXRMEXID",$J,NLINE,0)=" " ... S CMPNT=$P(TEMP,U,2) ... S NLINE=NLINE+1 ... S ^TMP("PXRMEXID",$J,NLINE,0)=CMPNT ..;The first piece is the component number in the packed reminder. .. S TEXT=$P(TEMP,U,1)_U_$P(TEMP,U,3,5) .. D COLFMT^PXRMTEXT(FMTSTR,TEXT," ",.NL,.OUTPUT) .. F KND=1:1:NL S NLINE=NLINE+1,^TMP("PXRMEXID",$J,NLINE,0)=OUTPUT(KND) ..;If there are Additional Details add them to the display. .. S KND=0 .. F S KND=$O(^PXD(811.8,RIEN,130,IHIEN,1,JND,1,KND)) Q:KND="" D ... S NLINE=NLINE+1 ... S ^TMP("PXRMEXID",$J,NLINE,0)=^PXD(811.8,RIEN,130,IHIEN,1,JND,1,KND,0) . S NLINE=NLINE+1 . S ^TMP("PXRMEXID",$J,NLINE,0)=" " S VALMHDR(1)=^PXD(811.8,RIEN,0)_" "_^TMP("PXRMEXID",$J,1,0) S VALMCNT=NLINE D EN^VALM("PXRM EX INSTALLATION DETAIL") K ^TMP("PXRMEXID",$J) Q ; ;====================================================== ENTRY ;List Manager ENTRY entry point. D BLDLIST,XQORM Q ; ;====================================================== EXIT ;List Manager EXIT entry point. K ^TMP("PXRMEXIH",$J) Q ; ;====================================================== FMT(ENTRY,SOURCE,DATE,FMTSTR,NL,OUTPUT) ; N TEMP S TEMP=NAME_U_SOURCE S DATE=$$FMTE^XLFDT(DATE,"5Z") S TEMP=TEMP_U_DATE D COLFMT^PXRMTEXT(FMTSTR,TEMP," ",.NL,.OUTPUT) Q ; ;====================================================== HDR ;List Manager HEADER entry point. S VALMHDR(1)="Exchange File Entry History." S VALMSG="+ Next Screen - Prev Screen ?? More Actions" Q ; ;====================================================== HELP ;Help code W !,"Select DH to delete install histories." W !,"Select ID to see the details of an install." D PAUSE^VALM1 Q ; ;====================================================== IHIST ;Get a list of repository entries and show their installation history. N PXRMRIEN,VALMCNT,VALMY D EN^VALM2(XQORNOD(0)) ;If there is no list quit. I '$D(VALMY) Q S IND="" F S IND=$O(VALMY(IND)) Q:IND="" D . S PXRMRIEN=^TMP("PXRMEXLR",$J,"SEL",IND) . D EN^VALM("PXRM EX INSTALLATION HISTORY") S VALMBCK="R" Q ; ;===================================================== PEXIT ;PXRM EXCH SELECT HISTORY protocol exit code S VALMSG="+ Next Screen - Prev Screen ?? More Actions" ;Reset after page up/down etc D XQORM Q ; ;====================================================== START ;Main entry point for installation history. The Exchange File IEN is ;PXRMRIEN. N VALMBCK,VALMCNT,VALMSG,X,XMZ,XQORM,XQORNOD S X="IORESET" D ENDR^%ZISS S VALMCNT=0 D EN^VALM("PXRM EX INSTALLATION HISTORY") Q ; ;====================================================== XQORM S XQORM("#")=$O(^ORD(101,"B","PXRM EXCH SELECT HISTORY",0))_U_"1:"_VALMCNT S XQORM("A")="Select Action: " Q ; ;====================================================== XSEL ;PXRM EXCH SELECT HISTORY validation N ARRAY,CNT,SEL,SELECT S SELECT=$P(XQORNOD(0),"=",2) I '$$VALID^PXRMEXLD(SELECT) S VALMBCK="R" Q ;Build array of selected items F CNT=1:1 S SEL=$P(SELECT,",",CNT) Q:'SEL S ARRAY(SEL)="" ; D FULL^VALM1 ; ;Option to display installation details or delete install history. N DIR,DIROUT,DIRUT,DTOUT,DUOUT,OPTION,X,Y S DIR(0)="SBM"_U_"DH:Delete Install History;" S DIR(0)=DIR(0)_"ID:Installation Details;" S DIR("A")="Select Action: " S DIR("B")="ID" S DIR("?")="Select from the codes displayed." D ^DIR I $D(DIROUT)!$D(DIRUT) S VALMBCK="R" Q I $D(DTOUT)!$D(DUOUT) S VALMBCK="R" Q S OPTION=Y ; ;Display installation details. I OPTION="ID" D DDISP(.ARRAY) ; ;Delete installation history. I OPTION="DH" D DELETE(.ARRAY) S VALMBCK="R" Q ;