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

PXRMDD41.m

Go to the documentation of this file.
  1. PXRMDD41 ;SLC/PJH - Reminder Dialog file calls ;10/19/2015 09:13
  1. ;;2.0;CLINICAL REMINDERS;**45**;Feb 04, 2005;Build 566
  1. ;
  1. ;copied from ORDD41 for dialog reminders
  1. KILL(DLG) ;
  1. Q
  1. ;
  1. ; Update audit trail when ITEMS changed
  1. REDOX I $D(^PXRMD(801.41,+$G(DA(1)),0)) S $P(^(99),U)=$$NOW^XLFDT
  1. Q
  1. ;
  1. SCREEN ;validate dialog type
  1. Q:'$G(DA(1))
  1. N PXRMMTYP
  1. S PXRMMTYP=$P($G(^PXRMD(801.41,DA(1),0)),U,4)
  1. ;MH results and Reminder dialogs dissallowed
  1. S DIC("S")="I ""RST""'[$P(^(0),U,4)"
  1. ;Dialog elements can only contain prompts/forced values
  1. I PXRMMTYP="E" S DIC("S")="I ""FP""[$P(^(0),U,4)"
  1. ;Reminder dialogs can contain only Elements and Groups
  1. I PXRMMTYP="R" S DIC("S")="I ""EG""[$P(^(0),U,4)"
  1. ;MH Result Groups can only contain MH Result Elementss
  1. I PXRMMTYP="S" S DIC("S")="I ""T""=$P(^(0),U,4)"
  1. ;Dialog groups cannot point to themselves
  1. I PXRMMTYP="G" D
  1. .;S DIC("S")=DIC("S")_",$G(Y)'=DA(1)"
  1. .S DIC("S")=DIC("S")_",$G(Y)'=DA(1),$$VGROUP^PXRMDD41($G(Y),DA(1))=0"
  1. Q
  1. ;
  1. ; UPDATE last amend date
  1. SET(DLG) ;
  1. S $P(^PXRMD(801.41,DLG,99),U)=$$NOW^XLFDT
  1. Q
  1. ;
  1. ; -- Ck menu tree to ensure new item is not an ancestor
  1. ; Input Xform for Item field #2 of Items subfile #801.412
  1. ; expecting DA, DA(1), X from FileMan
  1. TREE ;
  1. D SCREEN
  1. N PXRMDDA,PXRMDD S PXRMDDA=DA(1)
  1. K:X=PXRMDDA X D TREE1
  1. Q
  1. ; -- Look for X in ancestors
  1. TREE1 F PXRMDD=0:0 Q:'$D(X) S PXRMDD=$O(^PXRMD(801.41,"AD",PXRMDDA,PXRMDD)) Q:PXRMDD'>0 K:X=PXRMDD X Q:'$D(X) D TREE2
  1. Q
  1. ; Back up another level
  1. TREE2 N PXRMDDA S PXRMDDA=PXRMDD N PXRMDD D TREE1
  1. Q
  1. ;
  1. VGROUP(DIEN,IEN) ;Check dialog index to see if group will point to itself
  1. N FOUND
  1. S FOUND=0
  1. ;
  1. ;Only do check if dialog is a group
  1. I $P($G(^PXRMD(801.41,DIEN,0)),U,4)'="G" Q FOUND
  1. ;
  1. ;Group cannot be added to itself
  1. I DIEN=IEN S FOUND=1 Q FOUND
  1. ;
  1. ;IEN is the dialog group being added to
  1. D VGROUP1(DIEN,IEN)
  1. Q FOUND
  1. ;
  1. VGROUP1(DIEN,IEN) ;Examine all parent dialogs
  1. ;
  1. ;End search if already found
  1. Q:FOUND
  1. ;
  1. ;Check if dialog being added is a parent at this level
  1. I $D(^PXRMD(801.41,"AD",IEN,DIEN)) S FOUND=1 Q
  1. ;
  1. ;If not look at other parents
  1. N SUB,TIEN
  1. S SUB=0
  1. F S SUB=$O(^PXRMD(801.41,"AD",IEN,SUB)) Q:'SUB D Q:FOUND
  1. .;Ignore reminder dialogs
  1. .I $P($G(^PXRMD(801.41,SUB,0)),U,4)'="G" Q
  1. .;Repeat check on other parents
  1. .D VGROUP1(DIEN,SUB)
  1. Q