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

BGP2DPE1.m

Go to the documentation of this file.
  1. BGP2DPE1 ; IHS/CMI/LAB - calc measures 29 Apr 2009 7:38 PM 14 Nov 2006 5:02 PM 17 Jun 2012 9:39 AM ;
  1. ;;12.1;IHS CLINICAL REPORTING;;MAY 17, 2012;Build 66
  1. ;
  1. PROC ;EP
  1. S BGPBT=$H
  1. D JRNL
  1. S BGPJ=$J,BGPH=$H
  1. D XTMP^BGP2UTL("BGP2PE","CRS PT ED Patient List")
  1. S BGPCHSO=$P($G(^BGPSITE(DUZ(2),0)),U,6)
  1. ;calculate 3 years before end of each time frame
  1. S BGP3YE=$$FMADD^XLFDT(BGPED,-1096)
  1. S BGPP3YE=$$FMADD^XLFDT(BGPPED,-1096)
  1. S BGPB3YE=$$FMADD^XLFDT(BGPBED,-1096)
  1. ;process each patient
  1. S DFN=0 F S DFN=$O(^AUPNPAT(DFN)) Q:DFN'=+DFN D
  1. .;I DUZ=5634 Q:DFN'=10
  1. .Q:'$D(^DPT(DFN,0))
  1. .I $G(BGPSEAT) G N
  1. .Q:$P($G(^DPT(DFN,0)),U)["DEMO,PATIENT"
  1. .;I $P($G(^BGPSITE(DUZ(2),0)),U,12) Q:$D(^DIBT($P(^BGPSITE(DUZ(2),0),U,12),1,DFN))
  1. .S X=$O(^DIBT("B","RPMS DEMO PATIENT NAMES",0)) I X Q:$D(^DIBT(X,1,DFN))
  1. N .;
  1. .I $G(BGPSEAT) Q:'$D(^DIBT(BGPSEAT,1,DFN))
  1. .D PROCCY,PROCPY,PROCBY
  1. S BGPET=$H
  1. Q
  1. EDUALLOW(Y,T) ;EP - is this a valid topic?
  1. I $G(T)="" Q ""
  1. I $G(Y)="" Q ""
  1. I $D(^BGPCTRL(Y,62,"B",T)) Q 1
  1. NEW D
  1. S D=$P(T,"-")
  1. I $P($$ICDDX^ICDCODE(D),U)'=-1 Q 1
  1. I $P($$CPT^ICPTCOD(D),U)'=-1 Q 1
  1. Q ""
  1. ;
  1. ICDMAP(Y,T) ;EP - CAN THIS ICD CODE BE MAPPED TO A CATEGORY, IF YES, RETURN CATEGORY
  1. I $G(T)="" Q ""
  1. I $G(Y)="" Q ""
  1. NEW C,X,G,Z,L,E,F,S
  1. S G="",X=0
  1. S C=$P($$ICDDX^ICDCODE(T),U,1) ;NOT A VALID ICD CODE
  1. I C=-1 Q ""
  1. F S X=$O(^BGPCTRL(Y,63,X)) Q:X'=+X!(G]"") D
  1. .S Z=$P(^BGPCTRL(Y,63,X,0),U,3)
  1. .I Z]"",$$ICD^ATXCHK(C,$O(^ATXAX("B",Z,0)),9) S G=$P(^BGPCTRL(Y,63,X,0),U,2)_U_$P(^BGPCTRL(Y,63,X,0),U,1)
  1. .Q
  1. Q G
  1. CAT(C) ;
  1. NEW X
  1. I $G(C)="" Q C
  1. S X=$O(^APCDEDCV("C",C,0))
  1. I X="" Q C
  1. Q $P(^APCDEDCV(X,0),U)
  1. ;
  1. JRNL ;
  1. N (DT,U,ZTQUEUED) S %=$$NOJOURN^ZIBGCHAR("BGPPEDCW"),%=$$NOJOURN^ZIBGCHAR("BGPPEDPW"),%=$$NOJOURN^ZIBGCHAR("BGPPEDBW")
  1. S %=$$NOJOURN^ZIBGCHAR("BGPDATA"),%=$$NOJOURN^ZIBGCHAR("BGPGUI")
  1. Q
  1. PROCCY ;current time period
  1. K ^TMP($J)
  1. S (BGPACTUP,BGPACTCL)=""
  1. Q:'$D(^DPT(DFN,0))
  1. Q:$P(^DPT(DFN,0),U,2)=""
  1. Q:"FM"'[$P(^DPT(DFN,0),U,2)
  1. S BGPEDATE=BGPED,BGPTIME=1,BGPBDATE=BGPBD,BGPGBL="^BGPPEDCW("
  1. S BGP365=BGPBDATE
  1. I '$G(BGPSEAT) S BGPACTUP=$$ACTUP(DFN,BGP3YE,BGPEDATE,BGPTAXI,BGPBEN) ;user pop
  1. I $G(BGPSEAT) S BGPACTUP=1
  1. I 'BGPACTUP Q
  1. S BGPAGEB=$$AGE^AUPNPAT(DFN,BGPBDATE)
  1. S BGPAGEE=$$AGE^AUPNPAT(DFN,BGPEDATE)
  1. S BGPSEX=$P(^DPT(DFN,0),U,2)
  1. D CALCIND
  1. K ^TMP($J,"A")
  1. Q
  1. PROCPY ;
  1. K ^TMP($J)
  1. S (BGPACTUP,BGPACTCL)=""
  1. Q:'$D(^DPT(DFN,0))
  1. Q:$P(^DPT(DFN,0),U,2)=""
  1. Q:"FM"'[$P(^DPT(DFN,0),U,2)
  1. S BGPEDATE=BGPPED,BGPTIME=2,BGPBDATE=BGPPBD,BGPGBL="^BGPPEDPW("
  1. S BGP365=BGPBDATE
  1. ;S BGPACTUP=$$ACTUP(DFN,BGPP3YE,BGPEDATE,BGPTAXI,BGPBEN) ;user pop
  1. I '$G(BGPSEAT) S BGPACTUP=$$ACTUP(DFN,BGPP3YE,BGPEDATE,BGPTAXI,BGPBEN) ;user pop
  1. I $G(BGPSEAT) S BGPACTUP=1
  1. I 'BGPACTUP Q ;if not in user pop, don't use patient
  1. S BGPAGEB=$$AGE^AUPNPAT(DFN,BGPBDATE)
  1. S BGPAGEE=$$AGE^AUPNPAT(DFN,BGPEDATE)
  1. S BGPSEX=$P(^DPT(DFN,0),U,2)
  1. D CALCIND
  1. K ^TMP($J)
  1. Q
  1. PROCBY ;
  1. K ^TMP($J)
  1. S (BGPACTUP,BGPACTCL)=""
  1. Q:'$D(^DPT(DFN,0))
  1. Q:$P(^DPT(DFN,0),U,2)=""
  1. Q:"FM"'[$P(^DPT(DFN,0),U,2)
  1. S BGPEDATE=BGPBED,BGPTIME=3,BGPBDATE=BGPBBD,BGPGBL="^BGPPEDBW("
  1. S BGP365=BGPBDATE
  1. I '$G(BGPSEAT) S BGPACTUP=$$ACTUP(DFN,BGPB3YE,BGPEDATE,BGPTAXI,BGPBEN) ;user pop
  1. I $G(BGPSEAT) S BGPACTUP=1
  1. I 'BGPACTUP Q ;if not in user pop, don't use patient
  1. S BGPAGEB=$$AGE^AUPNPAT(DFN,BGPBDATE)
  1. S BGPAGEE=$$AGE^AUPNPAT(DFN,BGPEDATE)
  1. S BGPSEX=$P(^DPT(DFN,0),U,2)
  1. D CALCIND
  1. K ^TMP($J)
  1. Q
  1. CALCIND ;
  1. S BGPIC=0 F S BGPIC=$O(BGPIND(BGPIC)) Q:BGPIC'=+BGPIC D @BGPIC
  1. Q
  1. 1 ;
  1. S N=11,P=1 D S(BGPRPT,BGPGBL,N,P,1) ;set user pop total
  1. S (BGPPEUP,BGPPEUPW)=""
  1. Q:'$D(^AUPNVPED("AC",DFN)) ;no education so don't bother
  1. K BGPALLED
  1. S BGPFYCT=$O(^BGPCTRL("B",2012,0))
  1. S Y="BGPALLED("
  1. S X=DFN_"^ALL EDUC;DURING "_$$FMTE^XLFDT(BGPBDATE)_"-"_$$FMTE^XLFDT(BGPEDATE) S E=$$START1^APCLDF(X,Y)
  1. I '$D(BGPALLED(1)) Q
  1. S (X,D,G)=0,%="",T="" F S X=$O(BGPALLED(X)) Q:X'=+X!(G) D
  1. .S T=$P(^AUPNVPED(+$P(BGPALLED(X),U,4),0),U)
  1. .Q:'T
  1. .Q:'$D(^AUTTEDT(T,0))
  1. .S T=$P(^AUTTEDT(T,0),U,2)
  1. .I T="" Q
  1. .Q:'$$EDUALLOW(BGPFYCT,T)
  1. .;Q:'$D(^BGPCTRL(BGPFYCT,62,"B",T)) ;not an official topic per Chris Lamer's spreadsheet
  1. .S G=1 ;patient had 1 topic
  1. I G S N=11,P=2 D S(BGPRPT,BGPGBL,N,P,1) S BGPVALUE="Received Education" D SETLIST ;set # w/education total
  1. Q
  1. 2 ;
  1. Q:'$D(^AUPNVPED("AC",DFN)) ;no education so don't bother
  1. K BGPALLED S BGPVALUE=""
  1. K BGPPROVS
  1. S BGPFYCT=$O(^BGPCTRL("B",2012,0))
  1. S Y="BGPALLED("
  1. S X=DFN_"^ALL EDUC;DURING "_$$FMTE^XLFDT(BGPBDATE)_"-"_$$FMTE^XLFDT(BGPEDATE) S E=$$START1^APCLDF(X,Y)
  1. I '$D(BGPALLED(1)) Q
  1. S (X,D,G)=0,%="",T="" F S X=$O(BGPALLED(X)) Q:X'=+X!(G) D
  1. .S Y=+$P(BGPALLED(X),U,4)
  1. .S T=$P(^AUPNVPED(+$P(BGPALLED(X),U,4),0),U)
  1. .Q:'T
  1. .Q:'$D(^AUTTEDT(T,0))
  1. .S T=$P(^AUTTEDT(T,0),U,2)
  1. .I T="" Q
  1. .Q:'$$EDUALLOW(BGPFYCT,T)
  1. .;Q:'$D(^BGPCTRL(BGPFYCT,62,"B",T)) ;not an official topic per Chris Lamer's spreadsheet
  1. .Q:'$P(^AUPNVPED(Y,0),U,8) ;SKIP IF NO MINUTES
  1. .Q:$P(^AUPNVPED(Y,0),U,5)="" ;SKIP IF NO PROVIDER DOCUMENTED
  1. .S P=$P(^AUPNVPED(Y,0),U,5)
  1. .S D=$P($G(^VA(200,P,"PS")),U,5)
  1. .I 'D Q ;no discipline to tally
  1. .S D=$P($G(^DIC(7,D,9999999)),U,1)
  1. .I D="" Q ;not standard
  1. .;add to total # of topics
  1. .D S(BGPRPT,BGPGBL,11,6,1) ;add to total # of topics
  1. .S M=$P(^AUPNVPED(Y,0),U,8) ;MINUTES
  1. .D SMIN(BGPRPT,BGPGBL,11,4,M)
  1. .D SMAX(BGPRPT,BGPGBL,11,5,M)
  1. .D S(BGPRPT,BGPGBL,11,7,M)
  1. .S E=$O(^DIC(7,"D",D,0)),N=$P(^DIC(7,E,0),U)
  1. .I BGPTIME=1 D SET21
  1. .I BGPTIME=2 D SET22
  1. .I BGPTIME=3 D SET23
  1. .;set PROVS For this patient
  1. .S BGPPROVS(N)=$G(BGPPROVS(N))+M
  1. Q:'$D(BGPPROVS)
  1. S BGPVALUE=""
  1. S X="" F S X=$O(BGPPROVS(X)) Q:X="" S BGPVALUE=BGPVALUE_$S(BGPVALUE]"":";",1:"")_X_"-"_BGPPROVS(X)
  1. D SETLIST
  1. Q
  1. SET21 ;
  1. I $P($G(^BGPPEDCW(BGPRPT,11)),U,6) S $P(^BGPPEDCW(BGPRPT,11),U,3)=$P(^BGPPEDCW(BGPRPT,11),U,7)/$P(^BGPPEDCW(BGPRPT,11),U,6)
  1. I '$D(^BGPPEDCW(BGPRPT,12,0)) S ^BGPPEDCW(BGPRPT,12,0)="^90548.1212A^0^0"
  1. S Z=$O(^BGPPEDCW(BGPRPT,12,"B",D,0)) I Z D Q
  1. .S $P(^BGPPEDCW(BGPRPT,12,Z,0),U,3)=$P(^BGPPEDCW(BGPRPT,12,Z,0),U,3)+M
  1. S Z=$P(^BGPPEDCW(BGPRPT,12,0),U,3)+1,$P(^BGPPEDCW(BGPRPT,12,0),U,3)=Z,$P(^BGPPEDCW(BGPRPT,12,0),U,4)=Z
  1. S ^BGPPEDCW(BGPRPT,12,Z,0)=D_U_N_U_M
  1. S ^BGPPEDCW(BGPRPT,12,"B",D,Z)=""
  1. Q
  1. SET22 ;
  1. I $P($G(^BGPPEDPW(BGPRPT,11)),U,6) S $P(^BGPPEDPW(BGPRPT,11),U,3)=$P(^BGPPEDPW(BGPRPT,11),U,7)/$P(^BGPPEDPW(BGPRPT,11),U,6)
  1. I '$D(^BGPPEDPW(BGPRPT,12,0)) S ^BGPPEDPW(BGPRPT,12,0)="^90548.1312A^0^0"
  1. S Z=$O(^BGPPEDPW(BGPRPT,12,"B",D,0)) I Z D Q
  1. .S $P(^BGPPEDPW(BGPRPT,12,Z,0),U,3)=$P(^BGPPEDPW(BGPRPT,12,Z,0),U,3)+M
  1. S Z=$P(^BGPPEDPW(BGPRPT,12,0),U,3)+1,$P(^BGPPEDPW(BGPRPT,12,0),U,3)=Z,$P(^BGPPEDPW(BGPRPT,12,0),U,4)=Z
  1. S ^BGPPEDPW(BGPRPT,12,Z,0)=D_U_N_U_M
  1. S ^BGPPEDPW(BGPRPT,12,"B",D,Z)=""
  1. Q
  1. SET23 ;
  1. I $P($G(^BGPPEDBW(BGPRPT,11)),U,6) S $P(^BGPPEDBW(BGPRPT,11),U,3)=$P(^BGPPEDBW(BGPRPT,11),U,7)/$P(^BGPPEDBW(BGPRPT,11),U,6)
  1. I '$D(^BGPPEDBW(BGPRPT,12,0)) S ^BGPPEDBW(BGPRPT,12,0)="^90548.1412A^0^0"
  1. S Z=$O(^BGPPEDBW(BGPRPT,12,"B",D,0)) I Z D Q
  1. .S $P(^BGPPEDBW(BGPRPT,12,Z,0),U,3)=$P(^BGPPEDBW(BGPRPT,12,Z,0),U,3)+M
  1. S Z=$P(^BGPPEDBW(BGPRPT,12,0),U,3)+1,$P(^BGPPEDBW(BGPRPT,12,0),U,3)=Z,$P(^BGPPEDBW(BGPRPT,12,0),U,4)=Z
  1. S ^BGPPEDBW(BGPRPT,12,Z,0)=D_U_N_U_M
  1. S ^BGPPEDBW(BGPRPT,12,"B",D,Z)=""
  1. Q
  1. 3 ;
  1. Q:'$D(^AUPNVPED("AC",DFN)) ;no education so don't bother
  1. K BGPALLED S BGPVALUE=""
  1. K BGPPROVS
  1. S BGPFYCT=$O(^BGPCTRL("B",2012,0))
  1. S Y="BGPALLED("
  1. S X=DFN_"^ALL EDUC;DURING "_$$FMTE^XLFDT(BGPBDATE)_"-"_$$FMTE^XLFDT(BGPEDATE) S E=$$START1^APCLDF(X,Y)
  1. I '$D(BGPALLED(1)) Q
  1. S (X,D,G)=0,%="",T="" F S X=$O(BGPALLED(X)) Q:X'=+X!(G) D
  1. .S Y=+$P(BGPALLED(X),U,4)
  1. .S T=$P(^AUPNVPED(+$P(BGPALLED(X),U,4),0),U)
  1. .Q:'T
  1. .Q:'$D(^AUTTEDT(T,0))
  1. .S T=$P(^AUTTEDT(T,0),U,2)
  1. .I T="" Q
  1. .Q:'$$EDUALLOW(BGPFYCT,T)
  1. .;Q:'$D(^BGPCTRL(BGPFYCT,62,"B",T)) ;not an official topic per Chris Lamer's spreadsheet
  1. .S BGPS=$O(^BGPCTRL(BGPFYCT,62,"B",T,0))
  1. .;add to total # of topics
  1. .S BGPT=$P(T,"-") ;dx is first piece
  1. .I BGPS S BGPT1=$P(^BGPCTRL(BGPFYCT,62,BGPS,0),U,2) G S3
  1. .S J="" S J=$$ICDMAP(BGPFYCT,BGPT),BGPT=$P(J,U,2),BGPT1=$P(J,U,1)
  1. .I BGPT1="" S BGPT1=$P(T,"-")
  1. .I BGPT="" S BGPT=$P(T,"-")
  1. S3 .D S(BGPRPT,BGPGBL,11,8,1) ;add to total # of topics
  1. .I BGPTIME=1 D SET31
  1. .I BGPTIME=2 D SET32
  1. .I BGPTIME=3 D SET33
  1. .;set PROVS For this patient
  1. .S BGPPROVS(BGPT1)=$G(BGPPROVS(BGPT1))+1
  1. Q:'$D(BGPPROVS)
  1. S BGPVALUE=""
  1. S X="" F S X=$O(BGPPROVS(X)) Q:X="" S BGPVALUE=BGPVALUE_$S(BGPVALUE]"":";",1:"")_X_"-"_BGPPROVS(X)
  1. D SETLIST
  1. Q
  1. SET31 ;
  1. I '$D(^BGPPEDCW(BGPRPT,13,0)) S ^BGPPEDCW(BGPRPT,13,0)="^90548.1213A^0^0"
  1. S Z=$O(^BGPPEDCW(BGPRPT,13,"B",BGPT,0)) I Z D Q
  1. .S $P(^BGPPEDCW(BGPRPT,13,Z,0),U,3)=$P(^BGPPEDCW(BGPRPT,13,Z,0),U,3)+1
  1. S Z=$P(^BGPPEDCW(BGPRPT,13,0),U,3)+1,$P(^BGPPEDCW(BGPRPT,13,0),U,3)=Z,$P(^BGPPEDCW(BGPRPT,13,0),U,4)=Z
  1. S ^BGPPEDCW(BGPRPT,13,Z,0)=BGPT_U_BGPT1_U_1
  1. S ^BGPPEDCW(BGPRPT,13,"B",BGPT,Z)=""
  1. Q
  1. SET32 ;
  1. I '$D(^BGPPEDPW(BGPRPT,13,0)) S ^BGPPEDPW(BGPRPT,13,0)="^90548.1313A^0^0"
  1. S Z=$O(^BGPPEDPW(BGPRPT,13,"B",BGPT,0)) I Z D Q
  1. .S $P(^BGPPEDPW(BGPRPT,13,Z,0),U,3)=$P(^BGPPEDPW(BGPRPT,13,Z,0),U,3)+1
  1. S Z=$P(^BGPPEDPW(BGPRPT,13,0),U,3)+1,$P(^BGPPEDPW(BGPRPT,13,0),U,3)=Z,$P(^BGPPEDPW(BGPRPT,13,0),U,4)=Z
  1. S ^BGPPEDPW(BGPRPT,13,Z,0)=BGPT_U_BGPT1_U_1
  1. S ^BGPPEDPW(BGPRPT,13,"B",BGPT,Z)=""
  1. Q
  1. SET33 ;
  1. I '$D(^BGPPEDBW(BGPRPT,13,0)) S ^BGPPEDBW(BGPRPT,13,0)="^90548.1413A^0^0"
  1. S Z=$O(^BGPPEDBW(BGPRPT,13,"B",BGPT,0)) I Z D Q
  1. .S $P(^BGPPEDBW(BGPRPT,13,Z,0),U,3)=$P(^BGPPEDBW(BGPRPT,13,Z,0),U,3)+1
  1. S Z=$P(^BGPPEDBW(BGPRPT,13,0),U,3)+1,$P(^BGPPEDBW(BGPRPT,13,0),U,3)=Z,$P(^BGPPEDBW(BGPRPT,13,0),U,4)=Z
  1. S ^BGPPEDBW(BGPRPT,13,Z,0)=BGPT_U_BGPT1_U_1
  1. S ^BGPPEDBW(BGPRPT,13,"B",BGPT,Z)=""
  1. Q
  1. 4 ;
  1. Q:'$D(^AUPNVPED("AC",DFN)) ;no education so don't bother
  1. K BGPALLED S BGPVALUE=""
  1. K BGPPROVS
  1. S BGPFYCT=$O(^BGPCTRL("B",2012,0))
  1. S Y="BGPALLED("
  1. S X=DFN_"^ALL EDUC;DURING "_$$FMTE^XLFDT(BGPBDATE)_"-"_$$FMTE^XLFDT(BGPEDATE) S E=$$START1^APCLDF(X,Y)
  1. I '$D(BGPALLED(1)) Q
  1. S (X,D,G)=0,%="",T="" F S X=$O(BGPALLED(X)) Q:X'=+X!(G) D
  1. .S Y=+$P(BGPALLED(X),U,4)
  1. .S T=$P(^AUPNVPED(+$P(BGPALLED(X),U,4),0),U)
  1. .Q:'T
  1. .Q:'$D(^AUTTEDT(T,0))
  1. .S T=$P(^AUTTEDT(T,0),U,2)
  1. .I T="" Q
  1. .Q:'$$EDUALLOW(BGPFYCT,T)
  1. .;Q:'$D(^BGPCTRL(BGPFYCT,62,"B",T)) ;not an official topic per Chris Lamer's spreadsheet
  1. .S BGPS=$O(^BGPCTRL(BGPFYCT,62,"B",T,0))
  1. .;add to total # of topics
  1. .S BGPT=$P(T,"-",2) ;dx is first piece
  1. .I BGPS S BGPT1=$P(^BGPCTRL(BGPFYCT,62,BGPS,0),U,3)
  1. .I 'BGPS S BGPT1=$$CAT(BGPT)
  1. .D S(BGPRPT,BGPGBL,11,9,1) ;add to total # of topics
  1. .I BGPTIME=1 D SET41
  1. .I BGPTIME=2 D SET42
  1. .I BGPTIME=3 D SET43
  1. .;set PROVS For this patient
  1. .S BGPPROVS(BGPT1)=$G(BGPPROVS(BGPT1))+1
  1. Q:'$D(BGPPROVS)
  1. S BGPVALUE=""
  1. S X="" F S X=$O(BGPPROVS(X)) Q:X="" S BGPVALUE=BGPVALUE_$S(BGPVALUE]"":";",1:"")_X_"-"_BGPPROVS(X)
  1. D SETLIST
  1. Q
  1. SET41 ;
  1. I '$D(^BGPPEDCW(BGPRPT,14,0)) S ^BGPPEDCW(BGPRPT,14,0)="^90548.1214A^0^0"
  1. S Z=$O(^BGPPEDCW(BGPRPT,14,"B",BGPT,0)) I Z D Q
  1. .S $P(^BGPPEDCW(BGPRPT,14,Z,0),U,3)=$P(^BGPPEDCW(BGPRPT,14,Z,0),U,3)+1
  1. S Z=$P(^BGPPEDCW(BGPRPT,14,0),U,3)+1,$P(^BGPPEDCW(BGPRPT,14,0),U,3)=Z,$P(^BGPPEDCW(BGPRPT,14,0),U,4)=Z
  1. S ^BGPPEDCW(BGPRPT,14,Z,0)=BGPT_U_BGPT1_U_1
  1. S ^BGPPEDCW(BGPRPT,14,"B",BGPT,Z)=""
  1. Q
  1. SET42 ;
  1. I '$D(^BGPPEDPW(BGPRPT,14,0)) S ^BGPPEDPW(BGPRPT,14,0)="^90548.1314A^0^0"
  1. S Z=$O(^BGPPEDPW(BGPRPT,14,"B",BGPT,0)) I Z D Q
  1. .S $P(^BGPPEDPW(BGPRPT,14,Z,0),U,3)=$P(^BGPPEDPW(BGPRPT,14,Z,0),U,3)+1
  1. S Z=$P(^BGPPEDPW(BGPRPT,14,0),U,3)+1,$P(^BGPPEDPW(BGPRPT,14,0),U,3)=Z,$P(^BGPPEDPW(BGPRPT,14,0),U,4)=Z
  1. S ^BGPPEDPW(BGPRPT,14,Z,0)=BGPT_U_BGPT1_U_1
  1. S ^BGPPEDPW(BGPRPT,14,"B",BGPT,Z)=""
  1. Q
  1. SET43 ;
  1. I '$D(^BGPPEDBW(BGPRPT,14,0)) S ^BGPPEDBW(BGPRPT,14,0)="^90548.1414A^0^0"
  1. S Z=$O(^BGPPEDBW(BGPRPT,14,"B",BGPT,0)) I Z D Q
  1. .S $P(^BGPPEDBW(BGPRPT,14,Z,0),U,3)=$P(^BGPPEDBW(BGPRPT,14,Z,0),U,3)+1
  1. S Z=$P(^BGPPEDBW(BGPRPT,14,0),U,3)+1,$P(^BGPPEDBW(BGPRPT,14,0),U,3)=Z,$P(^BGPPEDBW(BGPRPT,14,0),U,4)=Z
  1. S ^BGPPEDBW(BGPRPT,14,Z,0)=BGPT_U_BGPT1_U_1
  1. S ^BGPPEDBW(BGPRPT,14,"B",BGPT,Z)=""
  1. Q
  1. 5 ;
  1. D 5^BGP2DPE2
  1. Q
  1. 6 ;
  1. D 6^BGP2DPE2
  1. Q
  1. 7 ;
  1. D 7^BGP2DPE2
  1. Q
  1. ACTUP(P,BDATE,EDATE,T,B) ;EP - is this patient in user pop?
  1. I B=1,$$BEN^AUPNPAT(P,"C")'="01" Q 0 ;must be Indian/Alaskan Native
  1. I B=2,$$BEN^AUPNPAT(P,"C")="01" Q 0 ;must not be I/A
  1. S DOD=$$DOD^AUPNPAT(P) I DOD]"",DOD<EDATE Q 0
  1. S X=$P($G(^AUPNPAT(P,11)),U,18) I X="" Q 0
  1. I '$D(^ATXAX(T,21,"B",($P(^AUPNPAT(P,11),U,18)))),'$D(^ATXAX(T,21,"AA",$P(^AUPNPAT(P,11),U,18),$P(^AUPNPAT(P,11),U,18))) Q 0
  1. S X=$$LASTVD(P,BDATE,EDATE)
  1. Q $S(X:1,1:0)
  1. ;
  1. S(R,G,N,P,V,J) ;
  1. I 'V Q ;no value to add
  1. I $G(J) S $P(@(G_R_","_N_")"),U,P)=$P($G(@(G_R_","_N_")")),U,P)=V Q
  1. S $P(@(G_R_","_N_")"),U,P)=$P($G(@(G_R_","_N_")")),U,P)+V
  1. Q
  1. ;
  1. SMIN(R,G,N,P,V,J) ;
  1. I 'V Q ;no value to add
  1. I $P(@(G_R_","_N_")"),U,P)="" S $P(@(G_R_","_N_")"),U,P)=V
  1. I V<$P(@(G_R_","_N_")"),U,P) S $P(@(G_R_","_N_")"),U,P)=V Q
  1. Q
  1. SMAX(R,G,N,P,V,J) ;
  1. I 'V Q ;no value to add
  1. I V>$P(@(G_R_","_N_")"),U,P) S $P(@(G_R_","_N_")"),U,P)=V Q
  1. Q
  1. SETLIST ;
  1. Q:'$D(BGPLIST(BGPIC))
  1. Q:BGPTIME'=1
  1. I BGPLIST="P",$P(^AUPNPAT(DFN,0),U,14)'=BGPLPRV Q
  1. S BGPLIST(BGPIC)=$G(BGPLIST(BGPIC))+1
  1. S ^XTMP("BGP2PE",BGPJ,BGPH,"LIST",BGPIC,$S($P($G(^AUPNPAT(DFN,11)),U,18)]"":$P(^AUPNPAT(DFN,11),U,18),1:"UNKNOWN"),$P(^DPT(DFN,0),U,2),BGPAGEB,DFN)=$G(BGPVALUE)
  1. Q
  1. LASTVD(P,BDATE,EDATE) ;
  1. I '$D(^AUPNVSIT("AC",P)) Q ""
  1. K ^TMP($J,"A")
  1. S A="^TMP($J,""A"",",B=P_"^ALL VISITS;DURING "_$$FMTE^XLFDT(BDATE)_"-"_$$FMTE^XLFDT(EDATE),E=$$START1^APCLDF(B,A)
  1. I '$D(^TMP($J,"A",1)) Q ""
  1. 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
  1. .Q:'$D(^AUPNVSIT(V,0))
  1. .Q:'$P(^AUPNVSIT(V,0),U,9)
  1. .Q:$P(^AUPNVSIT(V,0),U,11)
  1. .Q:'$D(^AUPNVPRV("AD",V))
  1. .Q:"SAHO"'[$P(^AUPNVSIT(V,0),U,7)
  1. .Q:"V"[$P(^AUPNVSIT(V,0),U,3)
  1. .Q:$P(^AUPNVSIT(V,0),U,6)=""
  1. .I $G(BGPMFITI),'$D(^ATXAX(BGPMFITI,21,"B",$P(^AUPNVSIT(V,0),U,6))) Q
  1. .S G=1
  1. .Q
  1. Q G