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

BTPWPEVF.m

Go to the documentation of this file.
  1. BTPWPEVF ;GDIT/HC/BEE - CMET Panel Event Filters ; 23 Oct 2012 1:24 PM
  1. ;;1.0;CARE MANAGEMENT EVENT TRACKING;**3**;Feb 07, 2011;Build 63
  1. ;
  1. Q
  1. ;
  1. FINIT(STATUS,BDT,EDT,CATLST,COMM,PARMS) ;EP - Set up filters based on input parameters
  1. ;
  1. ; Input parameters
  1. ; PARMS - Delimited list of input variables
  1. ; -> STATUS - Status
  1. ; -> TMFRAME - Time frame
  1. ; -> CAT - Category
  1. ; -> COMM - Community
  1. ; -> COMMTX - Community Taxonomy
  1. ; Output parameters
  1. ; -> STATUS - Status
  1. ; -> BDT - Beginning Date
  1. ; -> EDT - End Date
  1. ; -> CATLST - Category List (Array)
  1. ; -> COMM - Community List (Array)
  1. ;
  1. NEW BQ,TMFRAME,CAT,COMMTX
  1. ;
  1. ;Initialize output variables
  1. S CAT=$G(CAT,""),STATUS=$G(STATUS,""),TMFRAME=$G(TMFRAME,"")
  1. S COMM=$G(COMM,""),COMMTX=$G(COMMTX,""),BDT=$G(BDT,""),EDT=$G(EDT,"")
  1. ;
  1. ;Re-Assemble parameter list if in an array
  1. S PARMS=$G(PARMS,"")
  1. I PARMS="" D
  1. . N LIST,BN
  1. . S LIST="",BN=""
  1. . F S BN=$O(PARMS(BN)) Q:BN="" S LIST=LIST_PARMS(BN)
  1. . K PARMS
  1. . S PARMS=LIST
  1. . K LIST
  1. ;
  1. ;Set up incoming variables
  1. F BQ=1:1:$L(PARMS,$C(28)) D Q:$G(BMXSEC)'=""
  1. .N PDATA,NAME,VALUE,BP,BV
  1. .S PDATA=$P(PARMS,$C(28),BQ) Q:PDATA=""
  1. .S NAME=$P(PDATA,"=",1) Q:NAME=""
  1. .S VALUE=$P(PDATA,"=",2,99) Q:VALUE=""
  1. .F BP=1:1:$L(VALUE,$C(29)) S BV=$P(VALUE,$C(29),BP),@NAME=@NAME_$S(BP=1:"",1:$C(29))_BV
  1. ;
  1. ;Handle blank status
  1. S:STATUS="" STATUS="P"_$C(29)_"N"_$C(29)_"S"_$C(29)_"T"
  1. ;
  1. ;Set up search beginning/end dates
  1. S (BDT,EDT)=""
  1. I TMFRAME'="" D
  1. . I $E(TMFRAME,1)=">" S TMFRAME=$E(TMFRAME,2,99),EDT=$$DATE^BQIUL1(TMFRAME) Q
  1. . S BDT=$$DATE^BQIUL1(TMFRAME)
  1. ;
  1. ;Set up Community Taxonomy
  1. I COMMTX'="" D
  1. . N CM,TREF
  1. . S TREF="COMM" K @TREF
  1. . D BLD^BQITUTL(COMMTX,TREF)
  1. . S CM="" F S CM=$O(COMM(CM)) Q:CM="" S COMM=$G(COMM)_$S($G(COMM)]"":$C(29),1:"")_CM K COMM(CM)
  1. ;
  1. ;Set up Category List Array
  1. I CAT'="",CAT'=0 D
  1. . NEW CIN
  1. . F BQ=1:1:$L(CAT,$C(29)) S CIN=$P(CAT,$C(29),BQ),CATLST(CIN)=""
  1. ;
  1. ;Set up Community List Array
  1. S:'$D(COMM) COMM=""
  1. I COMM'="",COMM'=0 D
  1. . NEW CIN
  1. . F BQ=1:1:$L(COMM,$C(29)) S CIN=+$P(COMM,$C(29),BQ),COMM(CIN)=$P(^AUTTCOM(CIN,0),U,1)
  1. ;
  1. Q
  1. ;
  1. PEFIL(STATUS,BDT,EDT,CATLST,COMM,QIEN) ;EP - Check entry on filters
  1. ;
  1. ; Input Parameters
  1. ; -> STATUS - Status
  1. ; -> BDT - Beginning Date
  1. ; -> EDT - End Date
  1. ; -> CATLST - Category List (Array)
  1. ; -> COMM - Community List (Array)
  1. ; -> QIEN - Pointer to CMET EVENT QUEUE (#90629) entry
  1. ;
  1. NEW PASS,VDT
  1. ;
  1. S STATUS=$G(STATUS,""),BDT=$G(BDT,""),EDT=$G(EDT,"")
  1. S PASS=1
  1. ;
  1. ;Beginning Date Check
  1. S VDT=$$GET1^DIQ(90629,QIEN_",",.03,"I")
  1. I BDT]"" D I 'PASS G XPEFIL
  1. . I BDT>VDT S PASS=""
  1. ;
  1. ;End Date Check
  1. I EDT]"" D I 'PASS G XPEFIL
  1. . I VDT>EDT S PASS=""
  1. ;
  1. ;Status Check
  1. I $TR(STATUS,$C(29))]"" D I 'PASS G XPEFIL
  1. . NEW STS
  1. . S STS=$$GET1^DIQ(90629,QIEN_",",.08,"I")
  1. . I ($C(29)_STATUS_$C(29))'[($C(29)_STS_$C(29)) S PASS=""
  1. ;
  1. ;Category Check
  1. I $D(CATLST)>9 D I 'PASS G XPEFIL
  1. . NEW CAT
  1. . S CAT=$$GET1^DIQ(90629,QIEN_",",.13,"I") Q:CAT=""
  1. . I '$D(CATLST(CAT)) S PASS=""
  1. ;
  1. ;Community Check
  1. I $D(COMM)>9 D I 'PASS G XPEFIL
  1. . NEW DFN,PCOM
  1. . S DFN=$$GET1^DIQ(90629,QIEN_",",.02,"I") Q:DFN=""
  1. . S PCOM=$$GET1^DIQ(9000001,DFN_",",1117,"I") Q:PCOM=""
  1. . I '$D(COMM(PCOM)) S PASS=""
  1. ;
  1. XPEFIL Q PASS