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

BWGRVLU2.m

Go to the documentation of this file.
  1. BWGRVLU2 ; IHS/CMI/LAB - GEN RETR UTILITIES - CON'T ;03-Sep-2003 20:09;PLS
  1. ;;2.0;WOMEN'S HEALTH;**9**;SEP 02, 2003
  1. ; Print Notifications Types that contain the TXT value in their name
  1. ; VIEN = Represents either Patient or Procedure IEN dependent upon report context
  1. ; TXT = Notification Type must contain this text if present
  1. ; PRM = 0= just time, 1=time and date, 2=time, date, and type
  1. NOTIFP(VIEN,TXT,PRM) ;
  1. N NIEN,XRF,LP
  1. S TXT=$G(TXT,""),PRM=$G(PRM,0)
  1. I BWGRPTVS="P" D
  1. .; Process patient
  1. .S XRF="B"
  1. .S LP=VIEN
  1. E D
  1. .; Process procedure
  1. .S XRF="C"
  1. .S LP=$$GET1^DIQ(9002086.1,VIEN,.01,"I")
  1. S NIEN=0 F S NIEN=$O(^BWNOT(XRF,LP,NIEN)) Q:NIEN="" D
  1. .D ADDNOTIF(NIEN,TXT,PRM)
  1. Q
  1. ADDNOTIF(NIEN,TXT,PRM) ; Add notification to array
  1. N NTYP,VAL
  1. S NTYP=$$GET1^DIQ(9002086.4,NIEN,.03,"E")
  1. ; Check to see if notification types have been restricted
  1. Q:($L(TXT)&(NTYP'[TXT))
  1. S VAL=$$GET1^DIQ(9002086.4,NIEN,.15,"I")
  1. S:PRM>0 VAL=VAL_" "_$$FMTE^XLFDT($$GET1^DIQ(9002086.4,NIEN,.02,"I"),"5ZD")
  1. S:PRM>1 VAL=VAL_" "_NTYP
  1. S BWGRPCNT=$G(BWGRPCNT)+1,BWGRPRNM(BWGRPCNT)=VAL
  1. Q
  1. ; Time Required Notification Screen
  1. ; VIEN = Represents either Patient or Procedure IEN dependent upon report context
  1. ; TXT = Notification Type must contain this text if present
  1. ;
  1. NOTIFS(VIEN,TXT) ;
  1. N NIEN,XRF,LP,TM,RVAL1,RVAL2
  1. S TXT=$G(TXT,"")
  1. I BWGRPTVS="P" D
  1. .; Process patient
  1. .S XRF="B"
  1. .S LP=VIEN
  1. E D
  1. .; Process procedure
  1. .S XRF="C"
  1. .S LP=$$GET1^DIQ(9002086.1,VIEN,.01,"I")
  1. S NIEN=0 F S NIEN=$O(^BWNOT(XRF,LP,NIEN)) Q:NIEN="" D
  1. .S RVAL1=$P(^BWGRTRPT(BWGRRPT,11,BWGRI,11,1,0),U),RVAL2=$P(^(0),U,2)
  1. .S TM=$$GET1^DIQ(9002086.4,NIEN,.15,"I")
  1. .Q:RVAL1>TM!(X>RVAL2)
  1. .S X(RVAL1)=""
  1. Q
  1. ; Notification Screen
  1. ; Populate X array with Notifications matching selected screen type
  1. ; Input: SCNTYP = Screen Type
  1. ; "P"= Purpose
  1. ; "T"= Type
  1. ; "S"= Status
  1. ; "N" = Notification IEN array
  1. NOTIFSCN(SCNTYP) ;
  1. N BWNIEN,BWNTYP,BWNDT,BWNPURP,BWNOUT,BWNBDT,BWNEDT,BWNSTAT,NODE0
  1. Q:$L($G(SCNTYP))<1
  1. S BWNBDT=$G(BWGRBD,0)
  1. S BWNEDT=$G(BWGRED,9999999)
  1. S BWNIEN=0
  1. F S BWNIEN=$O(^BWNOT("B",DFN,BWNIEN)) Q:'BWNIEN D
  1. .S NODE0=^BWNOT(BWNIEN,0)
  1. .S BWNTYP=$P(NODE0,U,3)
  1. .S BWNDT=$P(NODE0,U,2)
  1. .S BWNPURP=$P(NODE0,U,4)
  1. .S BWNOUT=$P(NODE0,U,5)
  1. .S BWNSTAT=$P(NODE0,U,14)
  1. .; Compare notification date with date range
  1. .Q:BWNDT<BWNBDT!(BWNDT>BWNEDT)
  1. .I SCNTYP="T" D
  1. ..S:BWNTYP X(BWNTYP)=""
  1. .E I SCNTYP="P" D
  1. ..S:BWNPURP X(BWNPURP)=""
  1. .E I SCNTYP="O" D
  1. ..S:BWNOUT X(BWNOUT)=""
  1. .E I SCNTYP="S" D
  1. ..S:$L(BWNSTAT) X(BWNSTAT)=""
  1. .E I SCNTYP="N" D
  1. ..S X(BWNIEN)=""
  1. Q
  1. ; Build Print array for Notification Types/Purposes
  1. NOTIFPTP(SCNTYP) ;
  1. N X,BWNIEN,VAL,BWNDTE,FLD
  1. S SCNTYP=$G(SCNTYP)
  1. S FLD=$S(SCNTYP="P":.04,SCNTYP="T":.03,SCNTYP="O":.05,SCNTYP="S":.14,1:"")
  1. Q:'FLD
  1. D NOTIFSCN("N")
  1. S BWNIEN=0 F S BWNIEN=$O(X(BWNIEN)) Q:'BWNIEN D
  1. .S BWNDTE=$$FMTE^XLFDT($$GET1^DIQ(9002086.4,BWNIEN,.02,"I"),"5Z")
  1. .S VAL=$E($$GET1^DIQ(9002086.4,BWNIEN,FLD),1,20)
  1. .S:SCNTYP'="S" VAL=$S('$L(VAL):"??",1:VAL)_" on "_BWNDTE
  1. .S BWGRPCNT=$G(BWGRPCNT)+1,BWGRPRNM(BWGRPCNT)=VAL
  1. Q