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

PXRMDLNK.m

Go to the documentation of this file.
  1. PXRMDLNK ;SLC/AGP - Dialog Link Functions ;Jan 12, 2023@19:16
  1. ;;2.0;CLINICAL REMINDERS;**45,84**;Feb 04, 2005;Build 2
  1. ;
  1. SUBCHK(IEN,VALUE) ;INPUT TRANSFORMS For file 801.48
  1. N FUNC
  1. S FUNC=$P($G(^PXRMD(801.48,IEN,0)),U,4) I FUNC'>0 Q 0
  1. I '$D(^PXRMD(801.48,IEN,"B",VALUE)) Q 0
  1. Q 1
  1. ;
  1. FINDCHK(DA,VALUE) ;
  1. N CNT,FAIL,FUNC,NODE,NUM,PAT,PATTENS,PATTEN,SUB
  1. S FUNC=$P($G(^PXRMD(801.48,DA(1),0)),U,4) I FUNC'>0 Q 0
  1. S CNT=0 F S CNT=$O(^PXRMD(801.47,FUNC,2,CNT)) Q:CNT'>0 D
  1. .S NODE=$G(^PXRMD(801.47,FUNC,2,CNT,0))
  1. .S SUB=$P(NODE,U),PATTEN=$P(NODE,U,2)
  1. .Q:SUB="" Q:PATTEN=""
  1. .S PATTENS(SUB)=PATTEN
  1. I '$D(PATTENS) Q 0
  1. ;
  1. S SUB=$P($G(^PXRMD(801.48,DA(1),2,DA,0)),U)
  1. I SUB="" Q 0
  1. S FAIL=1,PATTEN=$G(PATTENS(SUB))
  1. I PATTEN="" Q 1
  1. S NUM=$L(PATTEN,"~")
  1. F CNT=1:1:NUM D I FAIL=0 Q
  1. .S PAT=$P(PATTEN,"~",CNT)
  1. .I VALUE?@PAT S FAIL=0
  1. I FAIL=1 Q 0
  1. Q 1
  1. ;
  1. DATEDIFF(RESULT,PAT,NVALUE,OVALUE,INPUTS) ;FUNCTIONS FROM FILE 801.47
  1. I $G(INPUTS("OLD DATE IS SPECIFC"))=1,OVALUE=-1 S RESULT=1 Q 1
  1. I $G(INPUTS("OLD DATE IS SPECIFC"))=1,$$ISFULDTE^PXRMDATE(OVALUE)=0 Q 0
  1. I $G(INPUTS("NEW DATE IS SPECIFC"))=1,$$ISFULDTE^PXRMDATE(NVALUE)=0 Q 0
  1. S RESULT=$$FMDIFF^XLFDT(NVALUE,OVALUE,1)
  1. I RESULT=0 Q 0
  1. Q 1
  1. ;
  1. DATEOFF(RESULT,PAT,NVALUE,OVALUE,INPUTS) ;
  1. I $G(INPUTS("STARTING DATE"))=1,$$ISFULDTE^PXRMDATE(NVALUE)=0 Q 0
  1. S RESULT=$$FMADD^XLFDT(NVALUE,$G(INPUTS("OFFSET")))
  1. Q 1
  1. ;
  1. DATEHIST(RESULT,PAT,NVALUE,OVALUE,INPUTS) ;
  1. I $G(INPUTS("NEW DATE IS SPECIFC"))=2,$$ISFULDTE^PXRMDATE(NVALUE)=0 Q 0
  1. I $G(INPUTS("USE TODAY DATE"))=1 D Q 1
  1. .;S OVALUE=DT
  1. .S RESULT=$$FMDIFF^XLFDT(NVALUE,DT,1) I RESULT<0 S RESULT=NVALUE Q
  1. .S RESULT=""
  1. S RESULT=NVALUE
  1. Q 1
  1. ;
  1. REMEVAL(RESULT,PAT,NVALUE,OVALUE,INPUTS) ;
  1. I '$D(INPUTS("DEFINITION")) Q 0
  1. I '$D(INPUTS("STATUS")) Q 0
  1. N NAME,NODE,RIEN,RNAME,RSTAT,STATUS
  1. S RESULT=0
  1. S NAME=INPUTS("DEFINITION")
  1. S RSTAT=INPUTS("STATUS")
  1. S RIEN=$O(^PXD(811.9,"B",NAME,"")) I RIEN'>0 Q 0
  1. S NODE=$G(^PXD(811.9,RIEN,0))
  1. S RNAME=$S($P(NODE,U,3)'="":$P(NODE,U,3),1:$P(NODE,U))
  1. K ^TMP("PXRHM",$J)
  1. D MAIN^PXRM(PAT,RIEN,55,1)
  1. S STATUS=$P($G(^TMP("PXRHM",$J,RIEN,RNAME)),U)
  1. K ^TMP("PXRHM",$J)
  1. S RESULT=$$STATMTCH^PXRMORCH(STATUS,RSTAT)
  1. Q 1
  1. ;
  1. TERMEVAL(RESULT,PAT,NVALUE,OVALUE,INPUTS) ;
  1. I '$D(INPUTS("TERM")) Q 0
  1. I '$D(INPUTS("STATUS")) Q 0
  1. N FIEVAL,NAME,NODE,TIEN,TSTAT,STATUS
  1. S RESULT=0
  1. S NAME=INPUTS("TERM")
  1. S TSTAT=INPUTS("STATUS")
  1. S TIEN=$O(^PXRMD(811.5,"B",NAME,"")) I TIEN'>0 Q 0
  1. S STATUS=$$TERM^PXRMDLLB(TIEN,PAT,TIEN,"O",.FIEVAL)
  1. S RESULT=$S(TSTAT=STATUS:1,1:0)
  1. Q 1
  1. ;