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

BQIDCAH2.m

Go to the documentation of this file.
  1. BQIDCAH2 ;VNGT/HS/ALA-Ad Hoc Search continued ; 03 Apr 2009 3:56 PM
  1. ;;2.3;ICARE MANAGEMENT SYSTEM;**3,4**;Apr 18, 2012;Build 66
  1. ;
  1. PROV(FGLOB,TGLOB,PROV) ;EP - Provider search
  1. I $G(TGLOB)="" Q
  1. I $G(PROV)="" Q
  1. ;
  1. NEW DFN,IEN,RIEN,VIS
  1. S IEN=0
  1. ;
  1. I $G(FGLOB)'="",$G(FROM)'="" D Q
  1. . S DFN=""
  1. . F S DFN=$O(@FGLOB@(DFN)) Q:DFN="" D
  1. .. I '$D(@VODATA@(DFN,"PRV",PROV)) K @FGLOB@(DFN) Q
  1. .. ; Check for NUMVIS
  1. .. I $G(NUMVIS)'="" D Q
  1. ... I @(@VODATA@(DFN,"PRV",PROV)_NUMVIS) S @TGLOB@(DFN)="" Q
  1. ... Q
  1. .. I $D(MPARMS("NUMVIS")) D Q
  1. ... S VCRIT1=$O(MPARMS("NUMVIS","")),VCRIT2=$O(MPARMS("NUMVIS",VCRIT1))
  1. ... ; If criteria includes a "not" it is inclusive and both must be true
  1. ... I $E(VCRIT1)="'",@(@VODATA@(DFN,"PRV",PROV)_VCRIT1),@(@VODATA@(DFN,"PRV",PROV)_VCRIT2) S @TGLOB@(DFN)="" Q
  1. ... ; If criteria does not includes a "not" it is exclusive and one must be true
  1. ... I $E(VCRIT1)'="'",@(@VODATA@(DFN,"PRV",PROV)_VCRIT1_"!("_(@VODATA@(DFN,"PRV",PROV)_VCRIT2)_")") S @TGLOB@(DFN)="" Q
  1. ... Q
  1. .. S @TGLOB@(DFN)=""
  1. . K @FGLOB
  1. ;
  1. I $G(FGLOB)'="" D
  1. . S RIEN=""
  1. . F S RIEN=$O(^AUPNVPRV("B",PROV,RIEN)) Q:'RIEN D
  1. .. S DFN=$$GET1^DIQ(9000010.06,RIEN_",",.02,"I") I DFN="" Q
  1. .. I '$D(@FGLOB@(DFN)) Q
  1. .. S @TGLOB@(DFN)=""
  1. ;
  1. I $G(FGLOB)="" D
  1. . S RIEN=""
  1. . F S RIEN=$O(^AUPNVPRV("B",PROV,RIEN)) Q:'RIEN D
  1. .. S DFN=$$GET1^DIQ(9000010.06,RIEN_",",.02,"I") I DFN="" Q
  1. .. S @TGLOB@(DFN)=""
  1. Q
  1. ;
  1. PRVS(TGLOB,PROV,FROM,THRU) ;EP
  1. ; this cross-reference does not really exist yet, it is a test to determine
  1. ; a more efficient cross-reference
  1. S FDT=FROM
  1. F S FDT=$O(^AUPNVPRV("AF",PROV,FDT)) Q:FDT=""!(FDT\1>THRU) D
  1. . S DFN=""
  1. . F S DFN=$O(^AUPNVPRV("AF",PROV,FDT,DFN)) Q:DFN="" S @TGLOB@(DFN)=""
  1. ;
  1. Q
  1. ;
  1. VIS(FGLOB,TGLOB,FDT,TDT,MAPARMS) ;EP - Visit search
  1. I $G(TGLOB)="" Q
  1. ;
  1. NEW DFN,IEN,RIEN,CLNFLG,PRVFLG,VCLIN,PRIEN,VPRV,OK,NOVST,VDCLIN
  1. NEW VNDATA,VDDATA,VDCLPR,VDPROV,VDAND
  1. ;
  1. ; Clinic only data
  1. S VDCLIN=$NA(^TMP("BQIVISCLN",UID))
  1. S VNDATA=$NA(^TMP("BQINOVIS",UID))
  1. ; Patient only data
  1. S VDDATA=$NA(^TMP("BQIVISONLY",UID))
  1. ; Clinic and provider data
  1. S VDCLPR=$NA(^TMP("BQIVISCLPR",UID))
  1. ; Provider only data
  1. S VDPROV=$NA(^TMP("BQIVISPRV",UID))
  1. ; 'AND' data
  1. S VDAND=$NA(^TMP("BQIVISAND",UID))
  1. K @VDCLIN,@VNDATA,@VDCLPR,@VDDATA,@VDAND,@VDPROV
  1. ;
  1. S FDT=$S(FDT'="":FDT-.001,1:FDT),TDT=$S(TDT'="":TDT,1:DT)
  1. F S FDT=$O(^AUPNVSIT("B",FDT)) Q:FDT=""!(FDT\1>TDT) D
  1. . S RIEN=""
  1. . F S RIEN=$O(^AUPNVSIT("B",FDT,RIEN)) Q:'RIEN D
  1. .. ; If the visit is deleted, quit
  1. .. I $$GET1^DIQ(9000010,RIEN_",",.11,"I")=1 Q
  1. .. S DFN=$$GET1^DIQ(9000010,RIEN_",",.05,"I") I DFN="" Q
  1. .. Q:"DXCTI"[$P(^AUPNVSIT(RIEN,0),U,7)
  1. .. S @VDDATA@(DFN)=$G(@VDDATA@(DFN))+1
  1. .. S VCLIN=$$GET1^DIQ(9000010,RIEN_",",.08,"I")
  1. .. I VCLIN'="" D
  1. ... S @VDCLIN@(VCLIN,DFN)=$G(@VDCLIN@(VCLIN,DFN))+1
  1. ... S @VDCLIN@(VCLIN)=$G(@VDCLIN@(VCLIN))+1
  1. .. ;Find associated providers
  1. .. S PRIEN="" F S PRIEN=$O(^AUPNVPRV("AD",RIEN,PRIEN)) Q:PRIEN="" D
  1. ... S VPRV=$$GET1^DIQ(9000010.06,PRIEN_",",.01,"I") Q:VPRV=""
  1. ... I VCLIN'="" D
  1. .... S @VDCLPR@(VCLIN,VPRV,DFN)=$G(@VDCLPR@(VCLIN,VPRV,DFN))+1
  1. .... S @VDCLPR@(VCLIN,VPRV)=$G(@VDCLPR@(VCLIN,VPRV))+1
  1. ... S @VDPROV@(VPRV,DFN)=$G(@VDPROV@(VPRV,DFN))+1
  1. ;
  1. I $D(MAPARMS) D
  1. . S MN="",TOT=0
  1. . F S MN=$O(MAPARMS(MN)) Q:MN="" D
  1. .. S NUMVIS=$G(MAPARMS(MN,"NUMVIS")),CLIN=$G(MAPARMS(MN,"CLIN")),PROV=$G(MAPARMS(MN,"PROV"))
  1. .. D CALB(NUMVIS,CLIN,PROV,VISOP)
  1. ;
  1. I '$D(MAPARMS) D
  1. . S TOT=0
  1. . I $D(APARMS) D Q
  1. .. S NUMVIS=""
  1. .. F S NUMVIS=$O(APARMS("NUMVIS",NUMVIS)) Q:NUMVIS="" D
  1. ... S PROV=$G(APARMS("NUMVIS",NUMVIS,"PROV"))
  1. ... S CLIN=$G(APARMS("NUMVIS",NUMVIS,"CLIN"))
  1. ... D CALB($G(NUMVIS),$G(CLIN),$G(PROV),$G(VISOP))
  1. . D CALB($G(NUMVIS),$G(CLIN),$G(PROV),$G(VISOP))
  1. ;
  1. ;no visits, so if have visits, exclude
  1. I $G(FGLOB)="" D
  1. . I $D(@VNDATA) S IEN=0 F S IEN=$O(^AUPNPAT(IEN)) Q:'IEN I '$D(@VNDATA@(IEN)),$G(^AUPNPAT(IEN,0))'="" S @TGLOB@(IEN)=""
  1. I $G(FGLOB)'="" D
  1. . I $D(@VNDATA) S IEN="" F S IEN=$O(@FGLOB@(IEN)) Q:IEN="" I '$D(@VNDATA@(IEN)) S @TGLOB@(IEN)=""
  1. ;
  1. I VISOP="&" D
  1. . S IEN="" F S IEN=$O(@VDAND@(IEN)) Q:IEN="" I @VDAND@(IEN)'=TOT K @VDAND@(IEN)
  1. . S IEN="" F S IEN=$O(@VDAND@(IEN)) Q:IEN="" S @TGLOB@(IEN)=""
  1. ;
  1. K @VDCLIN,@VNDATA,@VDCLPR,@VDDATA,@VDAND,@VDPROV
  1. Q
  1. ;
  1. CALC(NUMVIS,CLIN,PROV) ; EP
  1. ; Single numvis value, not inclusive or exclusive
  1. I NUMVIS'["~" D
  1. . I $G(FGLOB)'="" D
  1. .. I CLIN="",PROV="" D
  1. ... S IEN=""
  1. ... F S IEN=$O(@FGLOB@(IEN)) Q:IEN="" I @(@VDDATA@(IEN)_NUMVIS) S @TGLOB@(IEN)=""
  1. .. I CLIN="",PROV'="" D
  1. ... S IEN=""
  1. ... F S IEN=$O(@FGLOB@(IEN)) Q:IEN="" I @(@VDPROV@(PROV,IEN)_NUMVIS) S @TGLOB@(IEN)=""
  1. ... S IEN=""
  1. .. I CLIN'="",PROV="" D
  1. ... S IEN=""
  1. ... F S IEN=$O(@FGLOB@(IEN)) Q:IEN="" I @(@VDCLIN@(CLIN,IEN)_NUMVIS) S @TGLOB@(IEN)=""
  1. .. I CLIN'="",PROV'="" D
  1. ... S IEN=""
  1. ... F S IEN=$O(@FGLOB@(IEN)) Q:IEN="" I @(@VDCLPR@(CLIN,PROV,IEN)_NUMVIS) S @TGLOB@(IEN)=""
  1. . I $G(FGLOB)="" D
  1. .. I CLIN="",PROV="" D
  1. ... S IEN=""
  1. ... F S IEN=$O(@VDDATA@(IEN)) Q:IEN="" I @(@VDDATA@(IEN)_NUMVIS) S @TGLOB@(IEN)=""
  1. .. I CLIN="",PROV'="" D
  1. ... S IEN=""
  1. ... F S IEN=$O(@VDPROV@(PROV,IEN)) Q:IEN="" I @(@VDPROV@(PROV,IEN)_NUMVIS) S @TGLOB@(IEN)=""
  1. .. I CLIN'="",PROV="" D
  1. ... S IEN=""
  1. ... F S IEN=$O(@VDCLIN@(CLIN,IEN)) Q:IEN="" I @(@VDCLIN@(CLIN,IEN)_NUMVIS) S @TGLOB@(IEN)=""
  1. .. I CLIN'="",PROV'="" D
  1. ... S IEN=""
  1. ... F S IEN=$O(@VDCLPR@(CLIN,PROV,IEN)) Q:IEN="" I @(@VDCLPR@(CLIN,PROV,IEN)_NUMVIS) S @TGLOB@(IEN)=""
  1. ;
  1. I NUMVIS["~" D
  1. . S VCRIT1=$P(NUMVIS,"~",1),VCRIT2=$P(NUMVIS,"~",2)
  1. . I $G(FGLOB)'="" D
  1. .. I CLIN="",PROV="" D
  1. ... S IEN=""
  1. ... F S IEN=$O(@FGLOB@(IEN)) Q:IEN="" D
  1. .... ; If criteria includes a "not" it is inclusive and both must be true
  1. .... I $E(VCRIT1)="'",@(@VDDATA@(IEN)_VCRIT1),@(@VDDATA@(IEN)_VCRIT2) S @TGLOB@(IEN)="" Q
  1. .... ; If criteria does not includes a "not" it is exclusive and one must be true
  1. .... I $E(VCRIT1)'="'",@(@VDDATA@(IEN)_VCRIT1_"!("_(@VDDATA@(IEN)_VCRIT2)_")") S @TGLOB@(IEN)="" Q
  1. .. I CLIN="",PROV'="" D
  1. ... S IEN=""
  1. ... F S IEN=$O(@FGLOB@(IEN)) Q:IEN="" D
  1. .... ; If criteria includes a "not" it is inclusive and both must be true
  1. .... I $E(VCRIT1)="'",@(@VDPROV@(PROV,IEN)_VCRIT1),@(@VDPROV@(PROV,IEN)_VCRIT2) S @TGLOB@(IEN)="" Q
  1. .... ; If criteria does not includes a "not" it is exclusive and one must be true
  1. .... I $E(VCRIT1)'="'",@(@VDPROV@(PROV,IEN)_VCRIT1_"!("_(@VDPROV@(PROV,IEN)_VCRIT2)_")") S @TGLOB@(IEN)="" Q
  1. .. I CLIN'="",PROV="" D
  1. ... S IEN=""
  1. ... F S IEN=$O(@FGLOB@(IEN)) Q:IEN="" D
  1. .... ; If criteria includes a "not" it is inclusive and both must be true
  1. .... I $E(VCRIT1)="'",@(@VDCLIN@(CLIN,IEN)_VCRIT1),@(@VDCLIN@(CLIN,IEN)_VCRIT2) S @TGLOB@(IEN)="" Q
  1. .... ; If criteria does not includes a "not" it is exclusive and one must be true
  1. .... I $E(VCRIT1)'="'",@(@VDCLIN@(CLIN,IEN)_VCRIT1_"!("_(@VDCLIN@(CLIN,IEN)_VCRIT2)_")") S @TGLOB@(IEN)="" Q
  1. .. I CLIN'="",PROV'="" D
  1. ... S IEN=""
  1. ... F S IEN=$O(@FGLOB@(IEN)) Q:IEN="" D
  1. .... ; If criteria includes a "not" it is inclusive and both must be true
  1. .... I $E(VCRIT1)="'",@(@VDCLPR@(CLIN,PROV,IEN)_VCRIT1),@(@VDCLPR@(CLIN,PROV,IEN)_VCRIT2) S @TGLOB@(IEN)="" Q
  1. .... ; If criteria does not includes a "not" it is exclusive and one must be true
  1. .... I $E(VCRIT1)'="'",@(@VDCLPR@(CLIN,PROV,IEN)_VCRIT1_"!("_(@VDCLPR@(CLIN,PROV,IEN)_VCRIT2)_")") S @TGLOB@(IEN)="" Q
  1. . ;
  1. . I $G(FGLOB)="" D
  1. .. I CLIN="",PROV="" D
  1. ... S IEN=""
  1. ... F S IEN=$O(@VDDATA@(IEN)) Q:IEN="" D
  1. .... ; If criteria includes a "not" it is inclusive and both must be true
  1. .... I $E(VCRIT1)="'",@(@VDDATA@(IEN)_VCRIT1),@(@VDDATA@(IEN)_VCRIT2) S @TGLOB@(IEN)="" Q
  1. .... ; If criteria does not includes a "not" it is exclusive and one must be true
  1. .... I $E(VCRIT1)'="'",@(@VDDATA@(IEN)_VCRIT1_"!("_(@VDDATA@(IEN)_VCRIT2)_")") S @TGLOB@(IEN)="" Q
  1. .. I CLIN="",PROV'="" D
  1. ... S IEN=""
  1. ... F S IEN=$O(@VDPROV@(PROV,IEN)) Q:IEN="" D
  1. .... ; If criteria includes a "not" it is inclusive and both must be true
  1. .... I $E(VCRIT1)="'",@(@VDPROV@(PROV,IEN)_VCRIT1),@(@VDPROV@(PROV,IEN)_VCRIT2) S @TGLOB@(IEN)="" Q
  1. .... ; If criteria does not includes a "not" it is exclusive and one must be true
  1. .... I $E(VCRIT1)'="'",@(@VDPROV@(PROV,IEN)_VCRIT1_"!("_(@VDPROV@(PROV,IEN)_VCRIT2)_")") S @TGLOB@(IEN)="" Q
  1. .. I CLIN'="",PROV="" D
  1. ... S IEN=""
  1. ... F S IEN=$O(@VDCLIN@(CLIN,IEN)) Q:IEN="" D
  1. .... ; If criteria includes a "not" it is inclusive and both must be true
  1. .... I $E(VCRIT1)="'",@(@VDCLIN@(CLIN,IEN)_VCRIT1),@(@VDCLIN@(CLIN,IEN)_VCRIT2) S @TGLOB@(IEN)="" Q
  1. .... ; If criteria does not includes a "not" it is exclusive and one must be true
  1. .... I $E(VCRIT1)'="'",@(@VDCLIN@(CLIN,IEN)_VCRIT1_"!("_(@VDCLIN@(CLIN,IEN)_VCRIT2)_")") S @TGLOB@(IEN)="" Q
  1. .. I CLIN'="",PROV'="" D
  1. ... S IEN=""
  1. ... F S IEN=$O(@VDCLPR@(CLIN,PROV,IEN)) Q:IEN="" D
  1. .... ; If criteria includes a "not" it is inclusive and both must be true
  1. .... I $E(VCRIT1)="'",@(@VDCLPR@(CLIN,PROV,IEN)_VCRIT1),@(@VDCLPR@(CLIN,PROV,IEN)_VCRIT2) S @TGLOB@(IEN)="" Q
  1. .... ; If criteria does not includes a "not" it is exclusive and one must be true
  1. .... I $E(VCRIT1)'="'",@(@VDCLPR@(CLIN,PROV,IEN)_VCRIT1_"!("_(@VDCLPR@(CLIN,PROV,IEN)_VCRIT2)_")") S @TGLOB@(IEN)="" Q
  1. Q
  1. ;
  1. CALB(NUMVIS,CLIN,PROV,VISOP) ;EP
  1. S TOT=TOT+1,NOVST=0
  1. I NUMVIS="=0"!(NUMVIS="<0")!(NUMVIS="<1")!(NUMVIS="'>0") S NOVST=1
  1. I NUMVIS["~" S VCRIT1=$P(NUMVIS,"~",1),VCRIT2=$P(NUMVIS,"~",2)
  1. I NUMVIS'["~" S VCRIT1="",VCRIT2=""
  1. I $G(FGLOB)'="" D
  1. . S IEN=""
  1. . F S IEN=$O(@FGLOB@(IEN)) Q:IEN="" D
  1. .. I CLIN="",PROV="" D VDD
  1. .. I CLIN'="",PROV="" D VDC
  1. .. I CLIN="",PROV'="" D VDP
  1. .. I CLIN'="",PROV'="" D VDBT
  1. ;
  1. I $G(FGLOB)="" D
  1. . I CLIN="",PROV="" S IEN="" F S IEN=$O(@VDDATA@(IEN)) Q:IEN="" D VDD
  1. . I CLIN'="",PROV="" S IEN="" F S IEN=$O(@VDCLIN@(CLIN,IEN)) Q:IEN="" D VDC
  1. . I CLIN="",PROV'="" S IEN="" F S IEN=$O(@VDPROV@(PROV,IEN)) Q:IEN="" D VDP
  1. . I CLIN'="",PROV'="" S IEN="" F S IEN=$O(@VDCLPR@(CLIN,PROV,IEN)) Q:IEN="" D VDBT
  1. Q
  1. ;
  1. VDD ; Visit Only
  1. I NOVST,$D(@VDDATA@(IEN)) S @VNDATA@(IEN)="" Q
  1. I '$D(@VDDATA@(IEN)) Q
  1. I VCRIT1="" D Q
  1. . I @(@VDDATA@(IEN)_NUMVIS) D
  1. .. I VISOP="!" S @TGLOB@(IEN)="" Q
  1. .. I VISOP="&" S @VDAND@(IEN)=$G(@VDAND@(IEN))+1
  1. ; If criteria includes a "not" it is inclusive and both must be true
  1. I $E(VCRIT1)="'",@(@VDDATA@(IEN)_VCRIT1),@(@VDDATA@(IEN)_VCRIT2) D
  1. . I VISOP="!" S @TGLOB@(IEN)="" Q
  1. . I VISOP="&" S @VDAND@(IEN)=$G(@VDAND@(IEN))+1
  1. ; If criteria does not includes a "not" it is exclusive and one must be true
  1. I $E(VCRIT1)'="'",@(@VDDATA@(IEN)_VCRIT1_"!("_(@VDDATA@(IEN)_VCRIT2)_")") D
  1. . I VISOP="!" S @TGLOB@(IEN)="" Q
  1. . I VISOP="&" S @VDAND@(IEN)=$G(@VDAND@(IEN))+1
  1. Q
  1. ;
  1. VDC ; Clinic Only
  1. I NOVST,$D(@VDCLIN@(CLIN,IEN)) S @VNDATA@(IEN)="" Q
  1. I '$D(@VDCLIN@(CLIN,IEN)) Q
  1. I VCRIT1="" D Q
  1. . I @(@VDCLIN@(CLIN,IEN)_NUMVIS) D
  1. .. I VISOP="!" S @TGLOB@(IEN)="" Q
  1. .. I VISOP="&" S @VDAND@(IEN)=$G(@VDAND@(IEN))+1
  1. ; If criteria includes a "not" it is inclusive and both must be true
  1. I $E(VCRIT1)="'",@(@VDCLIN@(CLIN,IEN)_VCRIT1),@(@VDCLIN@(CLIN,IEN)_VCRIT2) D
  1. . I VISOP="!" S @TGLOB@(IEN)="" Q
  1. . I VISOP="&" S @VDAND@(IEN)=$G(@VDAND@(IEN))+1
  1. ; If criteria does not includes a "not" it is exclusive and one must be true
  1. I $E(VCRIT1)'="'",@(@VDCLIN@(CLIN,IEN)_VCRIT1_"!("_(@VDCLIN@(CLIN,IEN)_VCRIT2)_")") D
  1. . I VISOP="!" S @TGLOB@(IEN)="" Q
  1. . I VISOP="&" S @VDAND@(IEN)=$G(@VDAND@(IEN))+1
  1. Q
  1. ;
  1. VDP ; Provider Only
  1. I NOVST,$D(@VDPROV@(PROV,IEN)) S @VNDATA@(IEN)="" Q
  1. I '$D(@VDPROV@(PROV,IEN)) Q
  1. I VCRIT1="" D Q
  1. . I @(@VDPROV@(PROV,IEN)_NUMVIS) D
  1. .. I VISOP="!" S @TGLOB@(IEN)="" Q
  1. .. I VISOP="&" S @VDAND@(IEN)=$G(@VDAND@(IEN))+1
  1. ; If criteria includes a "not" it is inclusive and both must be true
  1. I $E(VCRIT1)="'",@(@VDPROV@(PROV,IEN)_VCRIT1),@(@VDPROV@(PROV,IEN)_VCRIT2) D
  1. . I VISOP="!" S @TGLOB@(IEN)="" Q
  1. . I VISOP="&" S @VDAND@(IEN)=$G(@VDAND@(IEN))+1
  1. ; If criteria does not includes a "not" it is exclusive and one must be true
  1. I $E(VCRIT1)'="'",@(@VDPROV@(PROV,IEN)_VCRIT1_"!("_(@VDPROV@(PROV,IEN)_VCRIT2)_")") D
  1. . I VISOP="!" S @TGLOB@(IEN)="" Q
  1. . I VISOP="&" S @VDAND@(IEN)=$G(@VDAND@(IEN))+1
  1. Q
  1. ;
  1. VDBT ; Clinic and Provider
  1. I NOVST,$D(@VDCLPR@(CLIN,PROV,IEN)) S @VNDATA@(IEN)="" Q
  1. I '$D(@VDCLPR@(CLIN,PROV,IEN)) Q
  1. I VCRIT1="" D Q
  1. . I @(@VDCLPR@(CLIN,PROV,IEN)_NUMVIS) D
  1. .. I VISOP="!" S @TGLOB@(IEN)=""
  1. .. I VISOP="&" S @VDAND@(IEN)=$G(@VDAND@(IEN))+1
  1. ; If criteria includes a "not" it is inclusive and both must be true
  1. I $E(VCRIT1)="'",@(@VDCLPR@(CLIN,PROV,IEN)_VCRIT1),@(@VDCLPR@(CLIN,PROV,IEN)_VCRIT2) D
  1. . I VISOP="!" S @TGLOB@(IEN)="" Q
  1. . I VISOP="&" S @VDAND@(IEN)=$G(@VDAND@(IEN))+1
  1. ; If criteria does not includes a "not" it is exclusive and one must be true
  1. I $E(VCRIT1)'="'",@(@VDCLPR@(CLIN,PROV,IEN)_VCRIT1_"!("_(@VDCLPR@(CLIN,PROV,IEN)_VCRIT2)_")") D
  1. . I VISOP="!" S @TGLOB@(IEN)="" Q
  1. . I VISOP="&" S @VDAND@(IEN)=$G(@VDAND@(IEN))+1
  1. Q