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

PXRMDLGH.m

Go to the documentation of this file.
  1. PXRMDLGH ; SLC/PJH - Reminder Dialog History ;08/16/2001
  1. ;;2.0;CLINICAL REMINDERS;;Feb 04, 2005
  1. ;
  1. ;Called from PXRMDLGZ
  1. ;
  1. START(PXRMITEM,PXRMDIEN,PXRMNAM) ;
  1. N PXRMBG,PXRMLINK,PXRMREAD,PXRMSRC,PXRMVARM
  1. N VALM,VALMAR,VALMBCK,VALMBG,VALMCNT,VALMHDR,VALMSG,X,XMZ
  1. S X="IORESET",PXRMLINK=$P($G(^PXD(811.9,PXRMITEM,51)),U),PXRMDIEN=""
  1. D ENDR^%ZISS,EN^VALM("PXRM DIALOG HISTORY")
  1. W IORESET
  1. D KILL^%ZISS
  1. Q
  1. ;
  1. ;Labels called from list 'PXRM DIALOG HISTORY'
  1. ;
  1. EXIT ;Exit code
  1. D CLEAN^VALM10,FULL^VALM1
  1. S VALMBCK="Q"
  1. K ^TMP("PXRMDLGH",$J)
  1. Q
  1. ;
  1. HDR ; Header code
  1. S VALMHDR(1)=PXRMHD
  1. S VALMSG="+ Next Screen - Prev Screen ?? More Actions"
  1. Q
  1. ;
  1. HELP ;Help code
  1. N ORU,ORUPRMT,XQORM,PXRMTAG
  1. S PXRMTAG="GDLGH"
  1. D EN^VALM("PXRM DIALOG MAIN HELP")
  1. Q
  1. ;
  1. INIT ;Init
  1. S VALMCNT=0
  1. ;Get linked dialog
  1. S PXRMLINK=$P($G(^PXD(811.9,PXRMITEM,51)),U)
  1. ;Load details of reminder dialog
  1. D BUILD(PXRMITEM,PXRMLINK)
  1. ;Reset Menu
  1. D XQORM
  1. Q
  1. ;
  1. PEXIT ;PXRM DIALOG HISTORY MENU protocol exit code
  1. S VALMSG="+ Next Screen - Prev Screen ?? More Actions"
  1. D XQORM
  1. Q
  1. ;
  1. ;Other Subroutines
  1. ;
  1. ;Build workfile (Entry action for protocol PXRM DIALOG HISTORY)
  1. BUILD(PXRMITEM,PXRMLINK) ;
  1. ;
  1. N ARRAY,DARRAY,DDAT,DIEN,DNAM,DSEQ,FIRST,HDR,RIEN,RNAM,TXT
  1. ;Clear existing file
  1. S VALMCNT=0,VALMBCK="R",FIRST=1,DSEQ=0 K ^TMP("PXRMDLG",$J)
  1. ;Get the linked dialog first
  1. I PXRMLINK D
  1. .S VALMCNT=VALMCNT+1
  1. .S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",79)
  1. .S VALMCNT=VALMCNT+1
  1. .S ^TMP("PXRMDLG",$J,VALMCNT,0)="This reminder is linked to dialog:"
  1. .S VALMCNT=VALMCNT+1
  1. .S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",79)
  1. .D SET(PXRMITEM,PXRMLINK)
  1. .;Get list of other reminders and display
  1. .D OTHER(PXRMLINK),OLST("")
  1. ;
  1. ;Then other dialogs generated from this reminder (ALPHA order)
  1. S DIEN=""
  1. F S DIEN=$O(^PXRMD(801.41,"AG",PXRMITEM,DIEN)) Q:'DIEN D
  1. .Q:DIEN=PXRMLINK
  1. .S DNAM=$P($G(^PXRMD(801.41,DIEN,0)),U) Q:DNAM=""
  1. .S DARRAY(DNAM)=DIEN
  1. ;
  1. S DNAM="",HDR=1
  1. F S DNAM=$O(DARRAY(DNAM)) Q:DNAM="" D
  1. .S DIEN=DARRAY(DNAM) Q:'DIEN
  1. .S RIEN=$P($G(^PXD(811.9,DIEN,51)),U),FIRST=1
  1. .;Get list of other reminders
  1. .D OTHER(DIEN)
  1. .;Other dialogs header
  1. .I HDR D
  1. ..S VALMCNT=VALMCNT+1
  1. ..S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",79)
  1. ..S VALMCNT=VALMCNT+1
  1. ..S ^TMP("PXRMDLG",$J,VALMCNT,0)="Other dialogs generated from this reminder:"
  1. ..S VALMCNT=VALMCNT+1,HDR=0
  1. ..S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",79)
  1. .;If this reminder isn't linked display the one that is
  1. .I 'RIEN D
  1. ..N RNAM
  1. ..S RNAM=$O(ARRAY("")) Q:RNAM=""
  1. ..S RIEN=$G(ARRAY(RNAM)) S:RIEN FIRST=0
  1. .;Dialog detail
  1. .D SET(RIEN,DIEN)
  1. .;Additional reminder detail
  1. .S:FIRST RIEN="" D OLST(RIEN)
  1. ;
  1. I VALMCNT=0 D
  1. .S VALMCNT=VALMCNT+1
  1. .S ^TMP("PXRMDLG",$J,VALMCNT,0)=" * NO DIALOGS DEFINED *"
  1. ;
  1. S VALMCNT=VALMCNT+1
  1. S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",79)
  1. S ^TMP("PXRMDLG",$J,"VALMCNT")=VALMCNT
  1. ;
  1. Q
  1. ;
  1. OTHER(DIEN) ;Other reminders linked to this dialog
  1. N DLG,DNAM,RNAM,RSUB
  1. ;Linked reminders
  1. S RNAM="" K ARRAY
  1. F S RNAM=$O(^PXD(811.9,"B",RNAM)) Q:RNAM="" D
  1. .S RSUB=$O(^PXD(811.9,"B",RNAM,"")) Q:'RSUB D
  1. ..S DLG=$P($G(^PXD(811.9,RSUB,51)),U) Q:DLG'=DIEN
  1. ..S RNAM=$P($G(^PXD(811.9,RSUB,0)),U) Q:RNAM=""
  1. ..S ARRAY(RNAM)=RSUB
  1. Q
  1. ;
  1. OLST(REM) ;List Other Reminders
  1. N RNAM
  1. S RNAM=""
  1. F S RNAM=$O(ARRAY(RNAM)) Q:RNAM="" D
  1. .Q:ARRAY(RNAM)=REM Q:ARRAY(RNAM)=PXRMITEM
  1. .S VALMCNT=VALMCNT+1
  1. .S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",59)_RNAM
  1. Q
  1. ;
  1. SET(RIEN,DIEN) ;
  1. N RNAM,DNAM,DDAT
  1. S RNAM="*NONE*",DSEQ=DSEQ+1
  1. ;Dialog details
  1. S DNAM=$P($G(^PXRMD(801.41,DIEN,0)),U)
  1. S DDAT=$P($G(^PXRMD(801.41,DIEN,99)),U,1)
  1. S:DDAT="" DDAT=$P($G(^PXRMD(801.41,DIEN,99)),U,2)
  1. S DDAT=$$FMTE^XLFDT(DDAT,"1D")
  1. ;Reminder details
  1. I RIEN D
  1. .S RNAM=$P($G(^PXD(811.9,RIEN,0)),U)
  1. .I RIEN=PXRMITEM S RNAM=""
  1. ;Update display
  1. S TXT=$J(DSEQ,4)_" "_$E(DNAM,1,32)_$J("",32-$L(DNAM))
  1. S TXT=TXT_" "_DDAT_$J("",20-$L(DDAT))_RNAM
  1. S VALMCNT=VALMCNT+1
  1. S ^TMP("PXRMDLG",$J,VALMCNT,0)=TXT
  1. S ^TMP("PXRMDLG",$J,"IDX",DSEQ,DIEN)=""
  1. Q
  1. ;
  1. XQORM S XQORM("#")=$O(^ORD(101,"B","PXRM SELECTION ITEM",0))_U_"1:"_VALMCNT
  1. S XQORM("A")="Select Item: "
  1. Q