Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: PXRMEXIH

PXRMEXIH.m

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