BGP1D89 ; IHS/CMI/LAB - measure C 03 Jul 2010 7:05 AM ;
;;11.1;IHS CLINICAL REPORTING SYSTEM;;JUN 27, 2011;Build 33
;
VS ;EP
S (BGPN1,BGPN2,BGPD1,BGPD2,BGPD3,BGPD4,BGPD5,BGPD6,BGPD7,BGPD8,BGPD9,BGPD10,BGPD11)=0
I 'BGPACTCL S BGPSTOP=1 Q ;not active clinical pt
;SET UP DENOMINATORS
S BGPD1=1 ;all A/C
I BGPAGEB>1,BGPAGEB<19 S BGPD2=1
I BGPAGEB>4 S BGPD3=1
I BGPAGEB>11,BGPAGEB<19 S BGPD4=1
I BGPAGEB>11,BGPAGEB<76 S BGPD5=1
I BGPSEX="F",BGPAGEB>14,BGPAGEB<41 S BGPD6=1
I BGPSEX="F",BGPAGEB>14,BGPAGEB<45 S BGPD7=1
I BGPAGEB>17 S BGPD8=1
I BGPAGEB>64 S BGPD9=1
I $$TOBUSER(DFN,BGPBDATE) S BGPD10=1
S BGPQV=$$VISIT(DFN,BGPBDATE,BGPEDATE)
I 'BGPQV S BGPN1=1
S BGPURO=$$UCONLY(DFN,BGP3YE,BGPEDATE)
I 'BGPURO S BGPN2=1 ;urgent care only visit
S D="AC"
I BGPD2 S D=D_",AC 2-18"
I BGPD3 S D=D_",AC =>5"
I BGPD4 S D=D_",AC 12-18"
I BGPD5 S D=D_",AC 12-75"
I BGPD6 S D=D_",FEM AC 15-40"
I BGPD7 S D=D_",FEM AC 15-44"
I BGPD8 S D=D_",AC =>18"
I BGPD9 S D=D_",AC =>65"
I BGPD10 S D=D_",AC TOB USER"
S BGPVALUE="AC|||"_$S('BGPN1:"No visit in time period",1:"Visit in time period "_$$DATE^BGP1UTL(BGPQV))_" Urgent Care Only: "_$$DATE^BGP1UTL(BGPURO)
S BGPVALUD="AC|||"
K X,Y,Z,%,A,B,C,D,E,H,BDATE,EDATE,P,V,S,F,T
K BGPEDUC,BGPHIV
Q
VISIT(P,BDATE,EDATE) ;
K ^TMP($J,"A")
NEW A,C,B,E,X,G,V
S A="^TMP($J,""A"",",B=P_"^ALL VISITS;DURING "_$$FMTE^XLFDT(BDATE)_"-"_$$FMTE^XLFDT(EDATE),E=$$START1^APCLDF(B,A)
I '$D(^TMP($J,"A",1)) Q ""
S (X,G)=0 F S X=$O(^TMP($J,"A",X)) Q:X'=+X!(G) S V=$P(^TMP($J,"A",X),U,5) D
.Q:'$D(^AUPNVSIT(V,0))
.Q:'$P(^AUPNVSIT(V,0),U,9)
.Q:$P(^AUPNVSIT(V,0),U,11)
.Q:"SAHOR"'[$P(^AUPNVSIT(V,0),U,7)
.Q:$P(^AUPNVSIT(V,0),U,6)=""
.S C=$$CLINIC^APCLV(V,"C")
.Q:C=42
.Q:C=51
.Q:C=52
.Q:C=53
.S G=$$VD^APCLV(V)
.Q
Q G
TOBUSER(P,BDATE) ;EP
NEW BGPTUSER,%,BGPTOBP,BGPSDX,BGPSCPT,F
S BGPTUSER=""
S BGPTOBP=$$TOBHF^BGP1D712(P,$$DOB^AUPNPAT(P),$$FMADD^XLFDT(BDATE,-1))
S BGPSDX=$$DX^BGP1D7(P,$$DOB^AUPNPAT(P),$$FMADD^XLFDT(BDATE,-1))
S BGPSCPT=$$CPTSM^BGP1D7(P,$$DOB^AUPNPAT(P),$$FMADD^XLFDT(BDATE,-1))
S %=""
I BGPSDX]"",$P(BGPSDX,U)="V15.82" S %=1
I BGPSDX]"",$P(BGPSDX,U)="305.13" S %=1
S F=BGPTOBP
D
.I $P(F,U,1)["CURRENT"!($P(F,U,1)["CESSATION") S BGPTUSER=1 Q
.I $P(F,U,4)["CURRENT"!($P(F,U,4)["CESSATION") S BGPTUSER=1 Q
.I (BGPSDX]""&(%="")) S BGPTUSER=1 Q
.I ($P(BGPSCPT,U)="1034F")!($P(BGPSCPT,U)="1035F")!($P(BGPSCPT,U)="G0376")!($P(BGPSCPT,U)="G0375")!($P(BGPSCPT,U)=99407) S BGPTUSER=1 Q
.I $P(BGPSCPT,U)=99406!($P(BGPSCPT,U)="G8455")!($P(BGPSCPT,U)="G8456")!($P(BGPSCPT,U)="G8402")!($P(BGPSCPT,U)="G8453") S BGPTUSER=1 Q
;S F=$P(BGPTOBP,U,1)
;I $P(BGPTOBP,U,1)["CURRENT"!(BGPSDX]""&(%=""))!(F["CESSATION")!($P(BGPSCPT,U)="1034F")!($P(BGPSCPT,U)="1035F")!($P(BGPSCPT,U)="G0376")!($P(BGPSCPT,U)="G0375")!($P(BGPSCPT,U)=99407) S BGPTUSER=1
;I $P(BGPSCPT,U)=99406!($P(BGPSCPT,U)="G8455")!($P(BGPSCPT,U)="G8456")!($P(BGPSCPT,U)="G8402")!($P(BGPSCPT,U)="G8453") S BGPTUSER=1
Q BGPTUSER
UCONLY(P,BDATE,EDATE) ;EP - clinical user
K ^TMP($J,"A")
NEW A,C,B,E,X,G,V,UCC,ALV
S (UCC,ALV)=0
;UCC - urgent care clinic count
;ALV - all visit count
S A="^TMP($J,""A"",",B=P_"^ALL VISITS;DURING "_$$FMTE^XLFDT(BDATE)_"-"_$$FMTE^XLFDT(EDATE),E=$$START1^APCLDF(B,A)
I '$D(^TMP($J,"A",1)) Q ""
S (X,G,F,S)=0 F S X=$O(^TMP($J,"A",X)) Q:X'=+X!(F) S V=$P(^TMP($J,"A",X),U,5) D
.Q:'$D(^AUPNVSIT(V,0))
.Q:'$P(^AUPNVSIT(V,0),U,9)
.Q:$P(^AUPNVSIT(V,0),U,11)
.Q:'$D(^AUPNVPRV("AD",V))
.Q:"SAHO"'[$P(^AUPNVSIT(V,0),U,7)
.Q:"V"[$P(^AUPNVSIT(V,0),U,3)
.Q:$P(^AUPNVSIT(V,0),U,6)=""
.S B=$$CLINIC^APCLV(V,"C")
.Q:B=""
.I B=80 S UCC=UCC+1 Q
.I 'G,$D(^BGPCTRL($O(^BGPCTRL("B",2011,0)),11,"B",B)) S G=V ;must be a primary clinic S G=V
.I V'=G,$D(^BGPCTRL($O(^BGPCTRL("B",2011,0)),12,"B",B)) S S=1
.I G,S S F=1
.Q
Q $S(F:1,1:0)
BGP1D89 ; IHS/CMI/LAB - measure C 03 Jul 2010 7:05 AM ;
+1 ;;11.1;IHS CLINICAL REPORTING SYSTEM;;JUN 27, 2011;Build 33
+2 ;
VS ;EP
+1 SET (BGPN1,BGPN2,BGPD1,BGPD2,BGPD3,BGPD4,BGPD5,BGPD6,BGPD7,BGPD8,BGPD9,BGPD10,BGPD11)=0
+2 ;not active clinical pt
IF 'BGPACTCL
SET BGPSTOP=1
QUIT
+3 ;SET UP DENOMINATORS
+4 ;all A/C
SET BGPD1=1
+5 IF BGPAGEB>1
IF BGPAGEB<19
SET BGPD2=1
+6 IF BGPAGEB>4
SET BGPD3=1
+7 IF BGPAGEB>11
IF BGPAGEB<19
SET BGPD4=1
+8 IF BGPAGEB>11
IF BGPAGEB<76
SET BGPD5=1
+9 IF BGPSEX="F"
IF BGPAGEB>14
IF BGPAGEB<41
SET BGPD6=1
+10 IF BGPSEX="F"
IF BGPAGEB>14
IF BGPAGEB<45
SET BGPD7=1
+11 IF BGPAGEB>17
SET BGPD8=1
+12 IF BGPAGEB>64
SET BGPD9=1
+13 IF $$TOBUSER(DFN,BGPBDATE)
SET BGPD10=1
+14 SET BGPQV=$$VISIT(DFN,BGPBDATE,BGPEDATE)
+15 IF 'BGPQV
SET BGPN1=1
+16 SET BGPURO=$$UCONLY(DFN,BGP3YE,BGPEDATE)
+17 ;urgent care only visit
IF 'BGPURO
SET BGPN2=1
+18 SET D="AC"
+19 IF BGPD2
SET D=D_",AC 2-18"
+20 IF BGPD3
SET D=D_",AC =>5"
+21 IF BGPD4
SET D=D_",AC 12-18"
+22 IF BGPD5
SET D=D_",AC 12-75"
+23 IF BGPD6
SET D=D_",FEM AC 15-40"
+24 IF BGPD7
SET D=D_",FEM AC 15-44"
+25 IF BGPD8
SET D=D_",AC =>18"
+26 IF BGPD9
SET D=D_",AC =>65"
+27 IF BGPD10
SET D=D_",AC TOB USER"
+28 SET BGPVALUE="AC|||"_$SELECT('BGPN1:"No visit in time period",1:"Visit in time period "_$$DATE^BGP1UTL(BGPQV))_" Urgent Care Only: "_$$DATE^BGP1UTL(BGPURO)
+29 SET BGPVALUD="AC|||"
+30 KILL X,Y,Z,%,A,B,C,D,E,H,BDATE,EDATE,P,V,S,F,T
+31 KILL BGPEDUC,BGPHIV
+32 QUIT
VISIT(P,BDATE,EDATE) ;
+1 KILL ^TMP($JOB,"A")
+2 NEW A,C,B,E,X,G,V
+3 SET A="^TMP($J,""A"","
SET B=P_"^ALL VISITS;DURING "_$$FMTE^XLFDT(BDATE)_"-"_$$FMTE^XLFDT(EDATE)
SET E=$$START1^APCLDF(B,A)
+4 IF '$DATA(^TMP($JOB,"A",1))
QUIT ""
+5 SET (X,G)=0
FOR
SET X=$ORDER(^TMP($JOB,"A",X))
IF X'=+X!(G)
QUIT
SET V=$PIECE(^TMP($JOB,"A",X),U,5)
Begin DoDot:1
+6 IF '$DATA(^AUPNVSIT(V,0))
QUIT
+7 IF '$PIECE(^AUPNVSIT(V,0),U,9)
QUIT
+8 IF $PIECE(^AUPNVSIT(V,0),U,11)
QUIT
+9 IF "SAHOR"'[$PIECE(^AUPNVSIT(V,0),U,7)
QUIT
+10 IF $PIECE(^AUPNVSIT(V,0),U,6)=""
QUIT
+11 SET C=$$CLINIC^APCLV(V,"C")
+12 IF C=42
QUIT
+13 IF C=51
QUIT
+14 IF C=52
QUIT
+15 IF C=53
QUIT
+16 SET G=$$VD^APCLV(V)
+17 QUIT
End DoDot:1
+18 QUIT G
TOBUSER(P,BDATE) ;EP
+1 NEW BGPTUSER,%,BGPTOBP,BGPSDX,BGPSCPT,F
+2 SET BGPTUSER=""
+3 SET BGPTOBP=$$TOBHF^BGP1D712(P,$$DOB^AUPNPAT(P),$$FMADD^XLFDT(BDATE,-1))
+4 SET BGPSDX=$$DX^BGP1D7(P,$$DOB^AUPNPAT(P),$$FMADD^XLFDT(BDATE,-1))
+5 SET BGPSCPT=$$CPTSM^BGP1D7(P,$$DOB^AUPNPAT(P),$$FMADD^XLFDT(BDATE,-1))
+6 SET %=""
+7 IF BGPSDX]""
IF $PIECE(BGPSDX,U)="V15.82"
SET %=1
+8 IF BGPSDX]""
IF $PIECE(BGPSDX,U)="305.13"
SET %=1
+9 SET F=BGPTOBP
+10 Begin DoDot:1
+11 IF $PIECE(F,U,1)["CURRENT"!($PIECE(F,U,1)["CESSATION")
SET BGPTUSER=1
QUIT
+12 IF $PIECE(F,U,4)["CURRENT"!($PIECE(F,U,4)["CESSATION")
SET BGPTUSER=1
QUIT
+13 IF (BGPSDX]""&(%=""))
SET BGPTUSER=1
QUIT
+14 IF ($PIECE(BGPSCPT,U)="1034F")!($PIECE(BGPSCPT,U)="1035F")!($PIECE(BGPSCPT,U)="G0376")!($PIECE(BGPSCPT,U)="G0375")!($PIECE(BGPSCPT,U)=99407)
SET BGPTUSER=1
QUIT
+15 IF $PIECE(BGPSCPT,U)=99406!($PIECE(BGPSCPT,U)="G8455")!($PIECE(BGPSCPT,U)="G8456")!($PIECE(BGPSCPT,U)="G8402")!($PIECE(BGPSCPT,U)="G8453")
SET BGPTUSER=1
QUIT
End DoDot:1
+16 ;S F=$P(BGPTOBP,U,1)
+17 ;I $P(BGPTOBP,U,1)["CURRENT"!(BGPSDX]""&(%=""))!(F["CESSATION")!($P(BGPSCPT,U)="1034F")!($P(BGPSCPT,U)="1035F")!($P(BGPSCPT,U)="G0376")!($P(BGPSCPT,U)="G0375")!($P(BGPSCPT,U)=99407) S BGPTUSER=1
+18 ;I $P(BGPSCPT,U)=99406!($P(BGPSCPT,U)="G8455")!($P(BGPSCPT,U)="G8456")!($P(BGPSCPT,U)="G8402")!($P(BGPSCPT,U)="G8453") S BGPTUSER=1
+19 QUIT BGPTUSER
UCONLY(P,BDATE,EDATE) ;EP - clinical user
+1 KILL ^TMP($JOB,"A")
+2 NEW A,C,B,E,X,G,V,UCC,ALV
+3 SET (UCC,ALV)=0
+4 ;UCC - urgent care clinic count
+5 ;ALV - all visit count
+6 SET A="^TMP($J,""A"","
SET B=P_"^ALL VISITS;DURING "_$$FMTE^XLFDT(BDATE)_"-"_$$FMTE^XLFDT(EDATE)
SET E=$$START1^APCLDF(B,A)
+7 IF '$DATA(^TMP($JOB,"A",1))
QUIT ""
+8 SET (X,G,F,S)=0
FOR
SET X=$ORDER(^TMP($JOB,"A",X))
IF X'=+X!(F)
QUIT
SET V=$PIECE(^TMP($JOB,"A",X),U,5)
Begin DoDot:1
+9 IF '$DATA(^AUPNVSIT(V,0))
QUIT
+10 IF '$PIECE(^AUPNVSIT(V,0),U,9)
QUIT
+11 IF $PIECE(^AUPNVSIT(V,0),U,11)
QUIT
+12 IF '$DATA(^AUPNVPRV("AD",V))
QUIT
+13 IF "SAHO"'[$PIECE(^AUPNVSIT(V,0),U,7)
QUIT
+14 IF "V"[$PIECE(^AUPNVSIT(V,0),U,3)
QUIT
+15 IF $PIECE(^AUPNVSIT(V,0),U,6)=""
QUIT
+16 SET B=$$CLINIC^APCLV(V,"C")
+17 IF B=""
QUIT
+18 IF B=80
SET UCC=UCC+1
QUIT
+19 ;must be a primary clinic S G=V
IF 'G
IF $DATA(^BGPCTRL($ORDER(^BGPCTRL("B",2011,0)),11,"B",B))
SET G=V
+20 IF V'=G
IF $DATA(^BGPCTRL($ORDER(^BGPCTRL("B",2011,0)),12,"B",B))
SET S=1
+21 IF G
IF S
SET F=1
+22 QUIT
End DoDot:1
+23 QUIT $SELECT(F:1,1:0)