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

BEHORMCV.m

Go to the documentation of this file.
  1. BEHORMCV ;MSC/IND/DKM - Cover Sheet: PCC Reminders ;20-Mar-2007 13:48;DKM
  1. ;;1.1;BEH COMPONENTS;*041001;Mar 20, 2007
  1. ;=================================================================
  1. ; Return pt's currently due PCC clinical reminders
  1. ; Format: ien (811.9)^reminder print name^date due^last occur
  1. LIST(DATA,DFN,LOC,SRV) ;
  1. N CNT,LP,LST,MIEN,NAM,DUE,LAST,X
  1. S DATA=$$TMPGBL^CIAVMRPC,(CNT,LP)=0
  1. Q:'DFN
  1. S:'$G(LOC) LOC=+$G(^DIC(42,+$G(^DPT(DFN,.1)),44))
  1. S:'$G(SRV) SRV=+$G(^VA(200,DUZ,5))
  1. D REMLIST(.LST,LOC,SRV)
  1. F S LP=$O(LST(LP)) Q:'LP D
  1. .S MIEN=$P(LST(LP),U,2),NAM=""
  1. .K ^TMP("PXRHM",$J)
  1. .D MAIN^PXRM(DFN,MIEN,0)
  1. .F S NAM=$O(^TMP("PXRHM",$J,MIEN,NAM)) Q:NAM="" D
  1. ..S X=^TMP("PXRHM",$J,MIEN,NAM),DUE=$P(X,U,2),LAST=$P(X,U,3),LAST=$S(LAST>0:LAST,1:"")
  1. ..D ADD(MIEN_U_NAM_U_DUE_U_LAST)
  1. K ^TMP("PXRHM",$J)
  1. Q
  1. ; Return detail for a pt's clinical reminder
  1. DETAIL(DATA,DFN,IEN) ;
  1. N CNT,LP,NAM
  1. S DATA=$$TMPGBL^CIAVMRPC,CNT=0,NAM=""
  1. K ^TMP("PXRHM",$J)
  1. D MAIN^PXRM(DFN,IEN,5) ; 5 returns all reminder info
  1. F S NAM=$O(^TMP("PXRHM",$J,IEN,NAM)),LP=0 Q:NAM="" D
  1. .F S LP=$O(^TMP("PXRHM",$J,IEN,NAM,"TXT",LP)) Q:LP="" D ADD(^(LP))
  1. K ^TMP("PXRHM",$J)
  1. Q
  1. ; Add data to output global
  1. ADD(X) S CNT=CNT+1,@DATA@(CNT)=$G(X)
  1. Q
  1. ; Returns true if new cover sheet parameters are in effect
  1. NEWCVOK() ;
  1. N SRV,TMP
  1. S SRV=$P($G(^VA(200,DUZ,5)),U)
  1. D GETLST^XPAR(.TMP,"USR^SRV.`"_SRV_"^DIV^SYS^PKG","ORQQPX NEW REMINDER PARAMS","Q")
  1. Q $S(TMP:$P($G(TMP(1)),U,2),1:0)
  1. ; Returns a list of all cover sheet reminders
  1. REMLIST(DATA,LOC,SRV) ;
  1. N LP,LST,CODE,IDX,IEN
  1. I '$$NEWCVOK D Q
  1. .D GETLST^XPAR(.DATA,"USR^LOC.`"_LOC_"^SRV.`"_SRV_"^DIV^SYS^PKG","ORQQPX SEARCH ITEMS","Q")
  1. D REMACCUM(.LST,"PKG",1000)
  1. D REMACCUM(.LST,"SYS",2000)
  1. D REMACCUM(.LST,"DIV",3000)
  1. D:SRV REMACCUM(.LST,"SRV.`"_SRV,4000)
  1. D:LOC REMACCUM(.LST,"LOC.`"_LOC,5000)
  1. D REMACCUM(.LST,"CLASS",6000)
  1. D REMACCUM(.LST,"USR",7000)
  1. S LP=0
  1. F S LP=$O(LST(LP)) Q:'LP D
  1. .S IDX=$P(LST(LP),U)
  1. .F Q:'$D(DATA(IDX)) S IDX=IDX+1
  1. .S CODE=$E($P(LST(LP),U,2),2)
  1. .S IEN=$E($P(LST(LP),U,2),3,999)
  1. .D:CODE="R" ADDREM(.DATA,IDX,IEN)
  1. .D:CODE="C" ADDCAT(.DATA,IDX,IEN)
  1. K DATA("B")
  1. Q
  1. ; Accumulates TMP into DATA
  1. ; Format of entries in ORQQPX COVER SHEET REMINDERS:
  1. ; L:Lock;R:Remove;N:Normal / C:Category;R:Reminder / Cat or Rem IEN
  1. REMACCUM(DATA,LVL,SORT,CLASS) ;
  1. N IDX,LP,J,K,M,FOUND,ERR,TMP,FLAG,IEN
  1. N FFLAG,FIEN,OUT,P2,ADD,DOADD,CODE
  1. I LVL="CLASS" D
  1. .N LST,CLS,CLSPRM,WP
  1. .S CLSPRM="ORQQPX COVER SHEET REM CLASSES"
  1. .D GETLST^XPAR(.LST,"SYS",CLSPRM,"Q",.ERR)
  1. .S LP=0,M=0,CLASS=$G(CLASS)
  1. .F S LP=$O(LST(LP)) Q:'LP D
  1. ..S CLS=$P(LST(LP),U)
  1. ..I +CLASS S ADD=CLS=+CLASS
  1. ..E S ADD=$$ISA^USRLM(DUZ,CLS,.ERR)
  1. ..I +ADD D
  1. ...D GETWP^XPAR(.WP,"SYS",CLSPRM,CLS,.ERR)
  1. ...S K=0
  1. ...F S K=$O(WP(K)) Q:'K D
  1. ....S M=M+1
  1. ....S J=$P(WP(K,0),";")
  1. ....S TMP(M)=J_U_$P(WP(K,0),";",2)
  1. E D GETLST^XPAR(.TMP,LVL,"ORQQPX COVER SHEET REMINDERS","Q",.ERR)
  1. S LP=0,IDX=$O(DATA(999999),-1)+1,ADD=SORT=""
  1. F S LP=$O(TMP(LP)) Q:'LP D
  1. .S (FOUND,J)=0,P2=$P(TMP(LP),U,2)
  1. .S FLAG=$E(P2),IEN=$E(P2,2,999)
  1. .I ADD S DOADD=1
  1. .E D
  1. ..S DOADD=0
  1. ..F S J=$O(DATA(J)) Q:'J D Q:FOUND
  1. ...S P2=$P(DATA(J),U,2)
  1. ...S FIEN=$E(P2,2,999)
  1. ...I FIEN=IEN S FOUND=J,FFLAG=$E(P2)
  1. ..I FOUND D
  1. ...I FLAG="R",FFLAG'="L" K DATA(FOUND)
  1. ...I FLAG'=FFLAG,(FLAG_FFLAG)["L" S $E(P2)="L",$P(DATA(FOUND),U,2)=P2
  1. ..E S:FLAG'="R" DOADD=1
  1. .I DOADD D
  1. ..S OUT(IDX)=TMP(LP)
  1. ..S $P(OUT(IDX),U)=$P(OUT(IDX),U)_SORT
  1. ..S:SORT="" OUT(IDX)=$$ADDNAME(OUT(IDX))
  1. ..S IDX=IDX+1
  1. M DATA=OUT
  1. Q
  1. ; Add Reminder or Category Name as 3rd piece
  1. ADDNAME(NAM) ;
  1. N CAT,IEN
  1. S CAT=$E($P(NAM,U,2),2)
  1. S IEN=$E($P(NAM,U,2),3,99)
  1. I +IEN D
  1. .S:CAT="R" $P(NAM,U,3)=$P($G(^PXD(811.9,IEN,0)),U,3)
  1. .S:CAT="C" $P(NAM,U,3)=$P($G(^PXRMD(811.7,IEN,0)),U)
  1. Q NAM
  1. ; Add Reminder to DATA list
  1. ADDREM(DATA,IDX,IEN) ;
  1. I $D(DATA("B",IEN)) Q ; See if it's in the list
  1. I '$D(^PXD(811.9,IEN)) Q ; Check if Exists
  1. I $P(^PXD(811.9,IEN,0),U,6)'="" Q ; Check if Active
  1. S DATA(IDX)=IDX_U_IEN
  1. S DATA("B",IEN)=""
  1. Q
  1. ; Add Category Reminders to DATA list
  1. ADDCAT(DATA,IDX,IEN) ;
  1. N REM,I,IDX2,NREM
  1. D CATREM^PXRMAPI0(IEN,.REM)
  1. S I=0
  1. F S I=$O(REM(I)) Q:'I D
  1. .S IDX2="00000"_I
  1. .S IDX2=$E(IDX2,$L(IDX2)-5,99)
  1. .D ADDREM(.DATA,+(IDX_"."_IDX2),$P(REM(I),U))
  1. Q
  1. ; XPAR value screen for ORQQPX SEARCH ITEMS
  1. ACT(REM) Q:'REM 0
  1. Q:$G(^PXD(811.9,REM,0))="" 0
  1. I $L($T(INACTIVE^PXRM)),$$INACTIVE^PXRM(REM) Q 0
  1. Q 1