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

PXRMDLGZ.m

Go to the documentation of this file.
  1. PXRMDLGZ ;SLC/PJH - Link reminder to dialog. ;05/10/2016 08:53
  1. ;;2.0;CLINICAL REMINDERS;**4,6,12,45**;Feb 04, 2005;Build 566
  1. ;
  1. ;Called by option PXRM DIALOG/COMPONENT EDIT
  1. ;
  1. START N BY,DATA,DDES,DHD,DIC,DNAM,DTYP,FLDS,FR,L,LOGIC,NOW,PNAM,TO,Y
  1. N PXRMBG,PXRMHD,PXRMDIEN,PXRMGTYP,PXRMDTST,PXRMDTYP,PXRMITEM,PXRMMODE,PXRMNAME
  1. N PXRMTEMP,PXRMTITL,PXRMVIEW
  1. ;Refresh on return
  1. S VALMBCK="R"
  1. S VALMSG="+ Next Screen - Prev Screen ?? More Actions"
  1. ;Default is display dialog elements
  1. S PXRMDTYP="R",PXRMGTYP="DLGR",PXRMVIEW="AN"
  1. ;Select dialog for display
  1. F D Q:'PXRMTEMP
  1. .S PXRMTEMP=""
  1. .D START^PXRMSEL(.PXRMHD,.PXRMGTYP,"PXRMTEMP") Q:'PXRMTEMP
  1. .N X S X="IORESET"
  1. .D ENDR^%ZISS,@(PXRMGTYP_"("_PXRMTEMP_")")
  1. END Q
  1. ;
  1. ;Reminder View
  1. ;-------------
  1. DLGR(PXRMITEM) ;
  1. N PXRMDIEN,PXRMCS1,PXRMCS2
  1. ;Format headings to include reminder and name
  1. S DATA=$G(^PXD(811.9,PXRMITEM,0)),RNAM=$P(DATA,U),PNAM=$P(DATA,U,3)
  1. S PXRMHD="REMINDER NAME: "_RNAM
  1. ;
  1. ;Dialog History
  1. F D Q:'PXRMDIEN
  1. .D START^PXRMDLGH(PXRMITEM,.PXRMDIEN,"PXRMDIEN") Q:'PXRMDIEN
  1. .N PXRMHD,VALMBCK,VALMBG,VALMSG,VIEW,X,XMZ
  1. .S DNAM=$P($G(^PXRMD(801.41,PXRMDIEN,0)),U)
  1. .I +$P($G(^PXRMD(801.41,PXRMDIEN,0)),U,3)>0 S DNAM=DNAM_" (DISABLED)"
  1. .S PXRMHD="REMINDER DIALOG NAME: "_DNAM
  1. .S PXRMCS1=$$FILE^PXRMEXCS(801.41,PXRMDIEN)
  1. .S X="IORESET"
  1. .D ENDR^%ZISS,EN^VALM("PXRM DIALOG LIST")
  1. .I PXRMDIEN,$D(^PXRMD(801.41,PXRMDIEN,0)) D
  1. ..S PXRMCS2=$$FILE^PXRMEXCS(801.41,PXRMDIEN) Q:+PXRMCS2=0
  1. ..Q:PXRMCS1=PXRMCS2
  1. ..D SEHIST^PXRMUTIL(801.41,"^PXRMD(801,41,",PXRMDIEN)
  1. .W IORESET
  1. .D KILL^%ZISS
  1. Q
  1. ;
  1. ;Edit element/prompt/group
  1. ;-------------------------
  1. DLGE(PXRMDIEN) ;
  1. N LOCK,LFIND
  1. ;Check for Uneditable flag
  1. S LOCK=$P($G(^PXRMD(801.41,PXRMTEMP,100)),U,4)
  1. S LFIND=$P($G(^PXRMD(801.41,PXRMTEMP,1)),U,5)
  1. I LOCK=1,$G(LFIND)'="",$G(LFIND)'["ORD",'$G(PXRMINST) D Q
  1. .W !,"This item can not be edited" H 2
  1. ;
  1. S PXRMHD="Dialog Name: ",PXRMDIEN=PXRMTEMP
  1. ;Format headings to include dialog name
  1. S DATA=$G(^PXRMD(801.41,PXRMDIEN,0)),DDES=$P(DATA,U),DTYP=$P(DATA,U,4)
  1. ;Test
  1. I DTYP="G" D DLG(PXRMDIEN) Q
  1. ;
  1. S PXRMHD=PXRMHD_" "_DDES W PXRMHD,!
  1. ;Edit selected dialog
  1. D EDIT^PXRMDEDT(DTYP,PXRMDIEN,0)
  1. Q
  1. ;
  1. ;Reminder dialog view
  1. ;--------------------
  1. DLG(PXRMDIEN) ;
  1. S PXRMDIEN=PXRMTEMP
  1. S PXRMNAME=$P($G(^PXRMD(801.41,PXRMDIEN,0)),U)
  1. S PXRMITEM=$P($G(^PXRMD(801.41,PXRMDIEN,0)),U,2)
  1. ;Format headings to include dialog name
  1. S PXRMHD=PXRMHD_PXRMNAME
  1. ;Check if the set is disable and add to header if disabled
  1. I +$P(^PXRMD(801.41,PXRMDIEN,0),U,3)>0 S PXRMHD=PXRMHD_" (DISABLED)"
  1. ;Listman option
  1. D EN^VALM("PXRM DIALOG LIST")
  1. W IORESET
  1. D KILL^%ZISS
  1. Q
  1. ;
  1. ;Other subroutines
  1. ;
  1. ;Ask update or no
  1. ;----------------
  1. ASK(YESNO) ;
  1. N X,Y,TEXT,DIR
  1. K DIROUT,DIRUT,DTOUT,DUOUT
  1. S DIR(0)="YA0"
  1. S DIR("A")="LINK THIS REMINDER TO DIALOG - "_$P(PXRMHD,": ",2)_": "
  1. S DIR("B")="Y"
  1. S DIR("?")="Enter Y or N. For detailed help type ??"
  1. S DIR("??")=U_"D HLP^PXRMDLGY(1)"
  1. D ^DIR K DIR
  1. I $D(DIROUT) S DTOUT=1
  1. I $D(DTOUT)!($D(DUOUT)) Q
  1. S YESNO=$E(Y(0))
  1. Q
  1. ;
  1. ;Display dialogs autogenerated from this reminder
  1. ;------------------------------------------------
  1. DISP(RIEN) ;
  1. N ARRAY,DSUB,FIRST
  1. ;Get OTHER dialogs
  1. S FIRST=1,DSUB=""
  1. F S DSUB=$O(^PXRMD(801.41,"AG",RIEN,DSUB)) Q:'DSUB D
  1. .W !
  1. .D:FIRST
  1. ..W "DIALOGS ALREADY GENERATED FROM THIS REMINDER:",!! S FIRST=0
  1. .W ?20,$P($G(^PXRMD(801.41,DSUB,0)),U)
  1. ;
  1. I 'FIRST W !
  1. ;
  1. Q
  1. ;
  1. ;Display linked reminders
  1. ;------------------------
  1. DISPL(DIEN) ;
  1. N ARRAY,DLG,RSUB,FIRST,RNAM
  1. S RSUB=$P($G(^PXRMD(801.41,DIEN,0)),U,2)
  1. I RSUB W !!,"SOURCE REMINDER: "_$P($G(^PXD(811.9,RSUB,0)),U)
  1. ;Linked reminders
  1. S FIRST=1,RNAM=""
  1. F S RNAM=$O(^PXD(811.9,"B",RNAM)) Q:RNAM="" D
  1. .S RSUB=$O(^PXD(811.9,"B",RNAM,"")) Q:'RSUB
  1. .S DLG=$P($G(^PXD(811.9,RSUB,51)),U) Q:DLG'=DIEN
  1. .W ! I FIRST W !,"REMINDERS ALREADY LINKED TO THIS DIALOG:",!! S FIRST=0
  1. .W ?18,$P($G(^PXD(811.9,RSUB,0)),U)
  1. Q
  1. ;
  1. ;Link a dialog (called by protocol PXRM DIALOG/REMINDER LINK)
  1. ;-------------
  1. F D Q:$D(DTOUT)!$D(DUOUT)
  1. .W IORESET
  1. .S VALMBCK="R"
  1. .;Display linked reminders
  1. .D DISPL(DIEN)
  1. .;
  1. .N ANS,DIC,DIR,DLG,LIT1,PNAME,PXRMREM,REM
  1. .S DIC("A")="SELECT A REMINDER TO LINK OR CHANGE: "
  1. .S LIT1="You must select a reminder!"
  1. .D SEL(811.9,"AEQMZ",.PXRMREM)
  1. .Q:$D(DTOUT)!$D(DUOUT)
  1. .S REM=$P(PXRMREM(1),U),PNAME=$P(PXRMREM(1),U,3)
  1. .I PNAME]"" W !!,"REMINDER PRINT NAME: "_PNAME,!
  1. .;Display related dialogs
  1. .D DISP(REM)
  1. .;Check if already linked
  1. .S DLG=$P($G(^PXD(811.9,REM,51)),U)
  1. .;Reconfirm to link reminder
  1. .I 'DLG S ANS="" D ASK(.ANS) Q:ANS'="Y"
  1. .;
  1. .N DA,DR,DIE
  1. .;Edit selected reminder
  1. .S DA=REM
  1. .;Settup local variables
  1. .S DIE="^PXD(811.9,",DR=51
  1. .;If no link force entry
  1. .I 'DLG S DR=DR_"///"_PXRMNAME
  1. .D ^DIE
  1. Q
  1. ;
  1. ;Link a Reminder (called by protocol PXRM DIALOG LINK)
  1. ;---------------
  1. N DLG
  1. ;Re-display reminder name
  1. W IORESET
  1. W !,PXRMHD
  1. ;
  1. N DA,DR,DIE
  1. ;Edit selected reminder
  1. S DA=REM
  1. ;Settup local variables
  1. S DIE="^PXD(811.9,",DR=51
  1. ;If no link force entry
  1. D ^DIE
  1. Q
  1. ;
  1. ;General help text routine.
  1. ;--------------------------
  1. HLP(CALL) ;
  1. N HTEXT
  1. N DIWF,DIWL,DIWR,IC
  1. S DIWF="C75",DIWL=0,DIWR=75
  1. ;
  1. I CALL=1 D
  1. .S HTEXT(1)="Enter Yes to link reminder to this dialog."
  1. I CALL=2 D
  1. .S HTEXT(1)="Enter Yes to link reminder to this dialog."
  1. K ^UTILITY($J,"W")
  1. S IC=""
  1. F S IC=$O(HTEXT(IC)) Q:IC="" D
  1. . S X=HTEXT(IC)
  1. . D ^DIWP
  1. W !
  1. S IC=0
  1. F S IC=$O(^UTILITY($J,"W",0,IC)) Q:IC="" D
  1. . W !,^UTILITY($J,"W",0,IC,0)
  1. K ^UTILITY($J,"W")
  1. W !
  1. Q
  1. ;
  1. ;Reminder selection
  1. ;------------------
  1. SEL(FILE,MODE,ARRAY) ;
  1. N X,Y,CNT
  1. K DIROUT,DIRUT,DTOUT,DUOUT
  1. S CNT=0
  1. W !
  1. F D Q:$D(DTOUT) Q:$D(DUOUT) Q:CNT>0 Q:(Y=-1)&(CNT>0)
  1. .S DIC=FILE,DIC(0)=MODE
  1. .D ^DIC
  1. .I X=(U_U) S DTOUT=1
  1. .I '$D(DTOUT),('$D(DUOUT)) D
  1. ..I +Y'=-1 D Q
  1. ...S CNT=CNT+1,ARRAY(CNT)=Y_U_Y(0,0)_U_$P(Y(0),U,3)
  1. ..W:CNT=0 !,LIT1
  1. .K DIC
  1. Q
  1. ;
  1. ;Input transform for FINDING ITEM in 801.41
  1. XINP(X) ;Taxonomy findings are not allowed for dialog groups
  1. I $P(X,";",2)="PXD(811.2,",$P($G(^PXRMD(801.41,DA,0)),U,4)="G" D Q 0
  1. .W $C(7),!,"A taxonomy cannot be entered as the finding item for a group"
  1. ;Only applies to MH
  1. I $P(X,";",2)'="^YTT(601.71," Q 1
  1. I $$OK^PXRMDLL($P(X,";")) Q 1
  1. W *7,!,"This test is not appropriate for the GUI",!
  1. Q 0