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

BQIDCTX.m

Go to the documentation of this file.
  1. BQIDCTX ;VNGT/HS/ALA-Taxonomy Search ; 01 Feb 2007 6:29 PM
  1. ;;2.1;ICARE MANAGEMENT SYSTEM;;Feb 07, 2011
  1. ;
  1. Q
  1. ;
  1. TAX(DATA,PARMS,MPARMS) ;EP
  1. ;
  1. ;Description
  1. ; Executable to retrieve those patients which have data in RPMS for
  1. ; specified taxonomies
  1. ;Input
  1. ; PARMS = Array of parameters and their values
  1. ; MPARMS = Multiple array of a parameter
  1. ;Expected to return DATA
  1. ;
  1. NEW UID,II,X,TGLOB,NM,FROM,THRU,VISITS,TAX,DFN
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J),II=0
  1. S DATA=$NA(^TMP("BQIDCTX",UID)),TGLOB=$NA(^TMP("BQIDCTG",UID))
  1. K @DATA,@TGLOB
  1. ;
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQIDCTX D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. I '$D(PARMS),'$D(MPARMS) Q
  1. ;
  1. S NM=""
  1. F S NM=$O(PARMS(NM)) Q:NM="" D
  1. . S @NM=$P(PARMS(NM),U,1)
  1. . F I=2:1:$L(PARMS(NM),U) Q:$P(PARMS(NM),U,I)="" S @($P(PARMS(NM),U,I))
  1. ;
  1. ; If a single taxonomy
  1. I $G(TAX)'="" D TAX1 M @DATA=@TGLOB G DONE
  1. ;
  1. ; If multiple taxonomies
  1. I $D(MPARMS("TAX")) S TAX="" F S TAX=$O(MPARMS("TAX",TAX)) Q:TAX="" D
  1. . F I=1:1:$L(MPARMS("TAX",TAX),U) Q:$P(MPARMS("TAX",TAX),U,I)="" S @($P(MPARMS("TAX",TAX),U,I))
  1. . D TAX1
  1. . S DFN=""
  1. . F S DFN=$O(@TGLOB@(DFN)) Q:DFN="" I @TGLOB@(DFN)<VISITS K @TGLOB@(DFN)
  1. . M @DATA=@TGLOB
  1. ;
  1. DONE ;
  1. K @TREF,@TGLOB,FROM,THRU,VISITS
  1. Q
  1. ;
  1. TAX1 ;
  1. ; Parameters
  1. ; QN = QMan link IEN
  1. ; FREF = Target FileMan File Reference
  1. ; FLD = Target Field Number
  1. ; GREF = Global reference
  1. ; TREF = Taxonomy reference
  1. NEW GREF,TREF,QN,TAXNM,FREF,FLD,TN,XRF,IEN,VISIT,VSDTM
  1. S TAXNM=$P($G(^ATXAX(TAX,0)),U,1)
  1. S QN=$P($G(^ATXAX(TAX,0)),U,12) I QN="" Q
  1. S FREF=$P($G(^AMQQ(1,QN,0)),U,3) I FREF="" Q
  1. S FLD=$P($G(^AMQQ(1,QN,0)),U,4)
  1. S GREF=$$ROOT^DILFD(FREF,"",1)
  1. S TREF=$NA(^TMP("BQITAX",UID))
  1. K @TREF
  1. ; Build the values to look for from the taxonomy in temporary global
  1. D BLD^BQITUTL(TAXNM,TREF)
  1. ;
  1. S TN="" F S TN=$O(@TREF@(TN)) Q:TN="" D FND
  1. Q
  1. ;
  1. ERR ;
  1. D ^%ZTER
  1. NEW Y,ERRDTM
  1. S Y=$$NOW^XLFDT() X ^DD("DD") S ERRDTM=Y
  1. S BMXSEC="Recording that an error occurred at "_ERRDTM
  1. I $D(II),$D(DATA) S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. FND ;
  1. I FLD=".01" S XRF="B" ; Could be "AF" in the future
  1. S IEN=""
  1. F S IEN=$O(@GREF@(XRF,TN,IEN),-1) Q:IEN="" D
  1. . S DFN=$P($G(@GREF@(IEN,0)),U,2) I DFN="" Q
  1. . ; User may now select Living, Deceased or both as a filter so
  1. . ; if no filters defined assume living patients otherwise let filter decide
  1. . ;I $O(^BQICARE(OWNR,1,PLIEN,15,0))="",$P($G(^DPT(DFN,.35)),U,1)'="" Q
  1. . ; If patient has no active HRNs, quit
  1. . I '$$HRN^BQIUL1(DFN) Q
  1. . ; If patient has no visit in last 3 years, quit
  1. . ;I '$$VTHR^BQIUL1(DFN) Q
  1. . ;
  1. . S VISIT=$P($G(@GREF@(IEN,0)),U,3) I VISIT="" Q
  1. . ; If visit has been deleted, quit
  1. . I $P(^AUPNVSIT(VISIT,0),U,11)=1 Q
  1. . S VSDTM=$P($G(^AUPNVSIT(VISIT,0)),U,1)\1 I VSDTM=0 Q
  1. . I $G(FROM)'="",$G(THRU)'="" S QFL=0 D Q:QFL
  1. .. I VSDTM<FROM!(VSDTM>THRU) S QFL=1
  1. . I $G(VISITS)="" S @TGLOB@(DFN)="" Q
  1. . I $G(VISITS)'="" Q:$G(@TGLOB@(DFN))'<VISITS S @TGLOB@(DFN)=$G(@TGLOB@(DFN))+1
  1. Q