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

BGP4GT.m

Go to the documentation of this file.
BGP4GT ; IHS/CMI/LAB - BGPG Gui CRS Tables 2/2/2005 10:24:22 AM ;
 ;;14.1;IHS CLINICAL REPORTING;;MAY 29, 2014;Build 114
 ;
 ;
 ;
GETTAX(RETVAL,BGPSTR) ;-- get taxonomies based on user selection
 S X="MERR^BGP4GU",@^%ZOSF("TRAP") ; m error trap
 N BGPDA,BGPI,P,BGPPKG,BGPPKGI,BGPI
 S P="|"
 K ^BGPTMP($J)
 S RETVAL="^BGPTMP("_$J_")"
 S BGPI=0
 S BGPERR=""
 S BGPPKG=$P(BGPSTR,P)
 S BGPPKGI=$O(^DIC(9.4,"C",BGPPKG,0))
 S ^BGPTMP($J,BGPI)="T00080TAXONOMIES"_$C(30)
 S BGPDA=0 F  S BGPDA=$O(^ATXAX("APKG",BGPPKGI,BGPDA)) Q:'BGPDA  D
 . N BGPTAX,BGPRO,BGPFL
 . S BGPTAX=$P($G(^ATXAX(BGPDA,0)),U)
 . S BGPRO=$S($P($G(^ATXAX(BGPDA,0)),U,22):"Read Only",1:"Editable")
 . S BGPFL=$P($G(^ATXAX(BGPDA,0)),U,15)
 . Q:'$G(BGPFL)
 . S ^BGPTMP("TAX",$J,BGPFL,BGPTAX)=BGPRO_U_$S(BGPFL=50:"Med",1:"Tax")
 S BGPDA=0 F  S BGPDA=$O(^ATXLAB("APKG",BGPPKGI,BGPDA)) Q:'BGPDA  D
 . N BGPTAX,BGPRO,BGPFL
 . S BGPTAX=$P($G(^ATXLAB(BGPDA,0)),U)
 . S BGPRO=$S($P($G(^ATXLAB(BGPDA,0)),U,22):"Read Only",1:"Editable")
 . S BGPFL=$P($G(^ATXLAB(BGPDA,0)),U,9)
 . S ^BGPTMP("TAX",$J,BGPFL,BGPTAX)=BGPRO_U_"Lab"
 S BGPDA=0 F  S BGPDA=$O(^BGPTMP("TAX",$J,BGPDA)) Q:BGPDA=""  D
 . N BGPIEN
 . S BGPIEN=0 F  S BGPIEN=$O(^BGPTMP("TAX",$J,BGPDA,BGPIEN)) Q:BGPIEN=""  D
 .. S BGPI=BGPI+1
 .. S BGPRO=$G(^BGPTMP("TAX",$J,BGPDA,BGPIEN))
 .. S ^BGPTMP($J,BGPI)=BGPIEN_"("_$P(BGPRO,U)_"/"_$P(BGPRO,U,2)_"/"_BGPDA_")"_$C(30)
 S ^BGPTMP($J,BGPI+1)=$C(31)_$G(BGPERR)
 K ^BGPTMP("TAX",$J)
 Q
 ;
TAX(RETVAL,BGPSTR) ;-- generic taxonomy table
 S X="MERR^BGP4GU",@^%ZOSF("TRAP") ; m error trap
 N P,BGPRFL,BGPI,BGPERR,BGPIEN,BGPTAXJ,BGPTAX,BGPDA,BGPNONC,BGPXRF
 N BGPGL,BGPGRF,BGPP
 S P="|"
 I $P(BGPSTR,P)="Lab" D LABTAX(.RETVAL,.BGPSTR) Q
 I $P(BGPSTR,P)="LAB" D LTAX(.RETVAL) Q
 K ^BGPTMP($J)
 S RETVAL="^BGPTMP("_$J_")"
 S BGPI=0
 S BGPERR=""
 S ^BGPTMP($J,BGPI)="T00080TAXONOMY"_$C(30)
 I $P(BGPSTR,P)="MED" D MEDBLD
 F BGPP=3:1 S BGPTAXJ=$P(BGPSTR,P,BGPP) Q:$G(BGPTAXJ)=""  D
 . Q:$G(BGPTAXJ)=""
 . ;S BGPTAXJ=$P(BGPSTR,P)
 . S BGPTAX=$O(^ATXAX("B",BGPTAXJ,0))
 . Q:'$G(BGPTAX)
 . S BGPNONC=$P($G(^ATXAX(BGPTAX,0)),U,13)
 . S BGPXRF=$P($G(^ATXAX(BGPTAX,0)),U,14)
 . S BGPFL=$P($G(^ATXAX(BGPTAX,0)),U,15)
 . ;I $G(BGPXRF)="" S BGPXRF="B"
 . I BGPFL=80 S BGPXRF="BA"  ;icd diagnosis x ref
 . S BGPGL=$G(^DIC(BGPFL,0,"GL"))
 . S BGPDA=0 F  S BGPDA=$O(^ATXAX(BGPTAX,21,BGPDA)) Q:'BGPDA  D
 .. N BGPL,BGPH
 .. S BGPI=BGPI+1
 .. S BGPL=$P($G(^ATXAX(BGPTAX,21,BGPDA,0)),U)
 .. S BGPH=$P($G(^ATXAX(BGPTAX,21,BGPDA,0)),U,2)
 .. I (BGPL=BGPH)!($G(BGPH)="") D  Q
 ... I $G(BGPXRF)="" D  Q
 .... S BGPGRF=BGPGL_""""_BGPL_""""_")"
 .... S ^BGPTMP($J,BGPI)=$P($G(@BGPGRF@(0)),U)_$C(30)
 ... S ^BGPTMP($J,BGPI)=BGPL_$C(30)
 .. S BGPGRF=BGPGL_""""_BGPXRF_""")"
 .. N BGPIEN
 .. S BGPIEN=$O(@BGPGRF@(BGPL),-1)
 .. F  S BGPIEN=$O(@BGPGRF@(BGPIEN)) Q:BGPIEN>BGPH  D
 ... S BGPI=BGPI+1
 ... S ^BGPTMP($J,BGPI)=BGPIEN_$C(30)
 S ^BGPTMP($J,BGPI+1)=$C(31)_$G(BGPERR)
 Q
 ;
LABTAX(RETVAL,BGPSTR) ;-- return the lab taxonomy
 S X="MERR^BGP4GU",@^%ZOSF("TRAP") ; m error trap
 N P,BGPRFL,BGPI,BGPERR,BGPIEN,BGPTAXJ,BGPTAX,BGPDA,BGPNONC,BGPXRF
 N BGPGL,BGPGRF,BGPP
 S P="|"
 K ^BGPTMP($J)
 S RETVAL="^BGPTMP("_$J_")"
 S BGPI=0
 S BGPERR=""
 S ^BGPTMP($J,BGPI)="T00080LABTAXONOMY"_$C(30)
 F BGPP=3:1 S BGPTAXJ=$P(BGPSTR,P,BGPP) Q:$G(BGPTAXJ)=""  D
 . Q:$G(BGPTAXJ)=""
 . ;S BGPTAXJ=$P(BGPSTR,P)
 . S BGPTAX=$O(^ATXLAB("B",BGPTAXJ,0))
 . Q:'$G(BGPTAX)
 . S BGPNONC=$P($G(^ATXLAB(BGPTAX,0)),U,13)
 . S BGPXRF=$P($G(^ATXLAB(BGPTAX,0)),U,14)
 . S BGPFL=60
 . S BGPGL=$G(^DIC(BGPFL,0,"GL"))
 . S BGPDA=0 F  S BGPDA=$O(^ATXLAB(BGPTAX,21,BGPDA)) Q:'BGPDA  D
 .. N BGPL,BGPH
 .. S BGPI=BGPI+1
 .. S BGPL=$P($G(^ATXLAB(BGPTAX,21,BGPDA,0)),U)
 .. S BGPH=$P($G(^ATXLAB(BGPTAX,21,BGPDA,0)),U,2)
 .. I (BGPL=BGPH)!($G(BGPH)="") D  Q
 ... I $G(BGPXRF)="" D  Q
 .... S BGPGRF=BGPGL_""""_BGPL_""""_")"
 .... S ^BGPTMP($J,BGPI)=$P($G(@BGPGRF@(0)),U)_$C(30)
 ... S ^BGPTMP($J,BGPI)=BGPL_$C(30)
 .. S BGPGRF=BGPGL_""""_BGPXRF_""")"
 .. N BGPIEN
 .. S BGPIEN=$O(@BGPGRF@(BGPL),-1)
 .. F  S BGPIEN=$O(@BGPGRF@(BGPIEN)) Q:BGPIEN>BGPH  D
 ... S BGPI=BGPI+1
 ... S ^BGPTMP($J,BGPI)=BGPIEN_$C(30)
 S ^BGPTMP($J,BGPI+1)=$C(31)_$G(BGPERR)
 Q
 ;
LTAX(RETVAL) ;-- generic lab taxonomy table
 S X="MERR^BGP4GU",@^%ZOSF("TRAP") ; m error trap
 N P,BGPRFL,BGPI,BGPERR,BGPIEN,BGPTAXJ,BGPTAX,BGPDA,BGPNONC,BGPXRF
 N BGPGL,BGPGRF,BGPP,BGPPKG,BGPTDA,BGPPKGI
 S P="|"
 K ^BGPTMP($J)
 S RETVAL="^BGPTMP("_$J_")"
 S BGPI=0
 S BGPERR=""
 S BGPPKG=$P(BGPSTR,P,2)
 S BGPPKGI=$O(^DIC(9.4,"C",BGPPKG,0))
 S ^BGPTMP($J,BGPI)="T00080LABTAXONOMY"_$C(30)
 S BGPTAX=0 F  S BGPTAX=$O(^ATXLAB("APKG",BGPPKGI,BGPTAX)) Q:'BGPTAX  D
 . ;S BGPTAX=0 F  S BGPTAX=$O(^ATXLAB(BGPTAX)) Q:'BGPTAX  D
 . ;S BGPTAX=$P($G(^ATXLAB(BGPP,0)),U)
 . ;Q:$E($P($G(^ATXLAB(BGPTAX,0)),U),1,2)'="DM"
 . ;S BGPTAXJ=$P(BGPSTR,P)
 . ;S BGPTAX=$O(^ATXLAB("B",BGPTAXJ,0))
 . ;Q:'$G(BGPTAX)
 . S BGPXRF=$P($G(^ATXLAB(BGPTAX,0)),U,8)
 . I $G(BGPXRF)="" S BGPXRF="B"
 . S BGPFL=$P($G(^ATXLAB(BGPTAX,0)),U,9)
 . S BGPGL=$G(^DIC(BGPFL,0,"GL"))
 . S BGPDA=0 F  S BGPDA=$O(^ATXLAB(BGPTAX,21,BGPDA)) Q:'BGPDA  D
 .. N BGPL,BGPH
 .. S BGPI=BGPI+1
 .. S BGPL=$P($G(^ATXLAB(BGPTAX,21,BGPDA,0)),U)
 .. S BGPGRF=BGPGL_""""_BGPL_""""_")"
 .. N BGPIEN
 .. S BGPI=BGPI+1
 .. S ^BGPTMP($J,BGPI)=$P($G(@BGPGRF@(0)),U)_$C(30)
 S ^BGPTMP($J,BGPI+1)=$C(31)_$G(BGPERR)
 Q
 ;
MEDBLD ;-- setup BGPSTR for medication taxonomy
 S X="MERR^BGP4GU",@^%ZOSF("TRAP") ; m error trap
 N BGPTDA,BGPI,BGPPKG,BGPPKGI
 S BGPI=1
 S BGPPKG=$P(BGPSTR,P,2)
 S BGPPKGI=$O(^DIC(9.4,"C",BGPPKG,0))
 S BGPTDA=0 F  S BGPTDA=$O(^ATXAX(BGPTDA)) Q:'BGPTDA  D
 . ;S BGPTDA=0 F  S BGPTDA=$O(^ATXAX(BGPTDA)) Q:'BGPTDA  D
 . ;Q:$E($P($G(^ATXAX(BGPTDA,0)),U),1,2)'="DM"
 . Q:$P($G(^ATXAX(BGPTDA,0)),U,15)'=50
 . S BGPI=BGPI+1
 . S $P(BGPSTR,P,BGPI)=$P($G(^ATXAX(BGPTDA,0)),U)
 Q
 ;
GETTAXN(RETVAL,BGPSTR) ;-- get taxonomies based on user selection
 S X="MERR^BGP4GU",@^%ZOSF("TRAP") ; m error trap
 N BGPDA,BGPI,P,BGPPKG,BGPPKGI,BGPI
 S P="|"
 K ^BGPTMP($J)
 S RETVAL="^BGPTMP("_$J_")"
 S BGPI=0
 S BGPERR=""
 S BGPPKG=$P(BGPSTR,P)
 S BGPPKGI=$O(^DIC(9.4,"C",BGPPKG,0))
 S ^BGPTMP($J,BGPI)="T00080TAXONOMIES"_$C(30)
 S BGPDA=0 F  S BGPDA=$O(^ATXAX("APKG",BGPPKGI,BGPDA)) Q:'BGPDA  D
 . N BGPTAX,BGPRO,BGPFL
 . S BGPTAX=$P($G(^ATXAX(BGPDA,0)),U)
 . S BGPRO=$S($P($G(^ATXAX(BGPDA,0)),U,22):"Read Only",1:"Editable")
 . S BGPFL=$P($G(^ATXAX(BGPDA,0)),U,15)
 . S ^BGPTMP("TAX",$J,BGPFL,BGPTAX)=BGPRO_U_$S(BGPFL=50:"Med",1:"Tax")
 S BGPDA=0 F  S BGPDA=$O(^ATXLAB("APKG",BGPPKGI,BGPDA)) Q:'BGPDA  D
 . N BGPTAX,BGPRO,BGPFL
 . S BGPTAX=$P($G(^ATXLAB(BGPDA,0)),U)
 . S BGPRO=$S($P($G(^ATXLAB(BGPDA,0)),U,22):"Read Only",1:"Editable")
 . S BGPFL=$P($G(^ATXLAB(BGPDA,0)),U,9)
 . S ^BGPTMP("TAX",$J,BGPFL,BGPTAX)=BGPRO_U_"Lab"
 S BGPDA=0 F  S BGPDA=$O(^BGPTMP("TAX",$J,BGPDA)) Q:BGPDA=""  D
 . N BGPIEN
 . S BGPIEN=0 F  S BGPIEN=$O(^BGPTMP("TAX",$J,BGPDA,BGPIEN)) Q:BGPIEN=""  D
 .. S BGPI=BGPI+1
 .. S BGPRO=$G(^BGPTMP("TAX",$J,BGPDA,BGPIEN))
 .. S ^BGPTMP($J,BGPI)=BGPIEN_"("_$P(BGPRO,U)_"/"_$P(BGPRO,U,2)_"/"_BGPDA_")"_$C(30)
 S ^BGPTMP($J,BGPI+1)=$C(31)_$G(BGPERR)
 K ^BGPTMP("TAX",$J)
 Q
 ;
GI(RETVAL,BGPSTR) ;-- get GPRA measures
 S X="MERR^BGP4GU",@^%ZOSF("TRAP") ; m error trap
 N BGPI,X,Y,Z,P,BGPNPL
 S P="|"
 S BGPRTYP=$P(BGPSTR,P)
 I BGPRTYP=1 S BGPNPL=1
 K ^BGPTMP($J)
 S RETVAL="^BGPTMP("_$J_")"
 S BGPI=0
 S ^BGPTMP($J,BGPI)="T00007BMXIEN^T00050Measure"_$C(30)
 S X=0 F  S X=$O(^BGPINDJ("AOI",X)) Q:X'=+X  D
 . S Y=0 F  S Y=$O(^BGPINDJ("AOI",X,Y)) Q:Y'=+Y  D
 .. I BGPRTYP=1 Q:$P(^BGPINDJ(Y,0),U,7)'=1
 .. I BGPRTYP=7 Q:$P($G(^BGPINDJ(Y,12)),U,1)'=1
 .. I $G(BGPRTYP)=4,$P($G(^BGPINDJ(Y,13)),U,1)=1 Q
 .. I $G(BGPNPL),'$D(^BGPNPLJ("AR",Y,$S(BGPRTYP=1:"N",1:"O"))) Q
 .. S BGPI=BGPI+1
 .. S ^BGPTMP($J,BGPI)=Y_U_$P($G(^BGPINDJ(Y,0)),U,3)_$C(30)
 S ^BGPTMP($J,BGPI+1)=$C(31)_$G(BGPERR)
 Q
 ;
GSI(RETVAL,BGPSTR) ;-- get sub measure based on passed in measure
 S X="MERR^BGP4GU",@^%ZOSF("TRAP") ; m error trap
 N P,BGPSIND,BGPIND,BGPI,X,Y
 S P="|"
 S BGPIND=$P(BGPSTR,P,2)
 S BGPTYP=$P(BGPSTR,P)
 N BGPXR,BGPXLF
 S BGPXLF="^BGPNPLJ("
 S BGPXR=BGPXLF_"""AN"")"
 I BGPTYP=7 S BGPXR=BGPXLF_"""AON"")"
 K ^BGPTMP($J)
 S RETVAL="^BGPTMP("_$J_")"
 N BGPGLB
 S BGPI=0
 S ^BGPTMP($J,BGPI)="T00007BMXIEN^T00050 "_$C(30)
 S X=0 F  S X=$O(@BGPXR@(BGPIND,X)) Q:'X  D
 . S Y=0 F  S Y=$O(@BGPXR@(BGPIND,X,Y)) Q:'Y  D
 .. S BGPI=BGPI+1
 .. S ^BGPTMP($J,BGPI)=Y_U_$P($G(^BGPNPLJ(Y,0)),U,3)_$C(30)
 S ^BGPTMP($J,BGPI+1)=$C(31)_$G(BGPERR)
 Q
 ;
GIALL(RETVAL) ;-- get all GPRA measures
 S X="MERR^BGP4GU",@^%ZOSF("TRAP") ; m error trap
 N BGPI,X,Y,Z
 K ^BGPTMP($J)
 S RETVAL="^BGPTMP("_$J_")"
 S BGPI=0
 S ^BGPTMP($J,BGPI)="T00007BMXIEN^T00050Measure"_$C(30)
 S X=0 F  S X=$O(^BGPINDJ("AO",X)) Q:X'=+X  D
 . S Y=0 F  S Y=$O(^BGPINDJ("AO",X,Y)) Q:Y'=+Y  D
 .. ;Q:$P(^BGPINDJ(Y,0),U,7)'=1
 .. Q:$P($G(^BGPINDJ(Y,13)),U,1)=1
 .. S BGPI=BGPI+1
 .. S ^BGPTMP($J,BGPI)=Y_U_$P($G(^BGPINDJ(Y,0)),U,3)_$C(30)
 S ^BGPTMP($J,BGPI+1)=$C(31)_$G(BGPERR)
 Q
 ;
ECALL(RETVAL) ;-- get all elder care measures
 S X="MERR^BGP4GU",@^%ZOSF("TRAP") ; m error trap
 N BGPI,X,Y,Z
 K ^BGPTMP($J)
 S RETVAL="^BGPTMP("_$J_")"
 S BGPI=0
 S ^BGPTMP($J,BGPI)="T00007BMXIEN^T00050Measure"_$C(30)
 S X=0 F  S X=$O(^BGPELIJ("AO",X)) Q:X'=+X  D
 . S Y=0 F  S Y=$O(^BGPELIJ("AO",X,Y)) Q:Y'=+Y  D
 .. ;Q:$P(^BGPINDJ(Y,0),U,7)'=1
 .. S BGPI=BGPI+1
 .. S ^BGPTMP($J,BGPI)=Y_U_$P($G(^BGPELIJ(Y,0)),U,4)_$C(30)
 S ^BGPTMP($J,BGPI+1)=$C(31)_$G(BGPERR)
 Q
 ;
EOALL(RETVAL) ;-- get all eo measures
 S X="MERR^BGP4GU",@^%ZOSF("TRAP") ; m error trap
 N BGPI,X,Y,Z
 K ^BGPTMP($J)
 S RETVAL="^BGPTMP("_$J_")"
 S BGPI=0
 S ^BGPTMP($J,BGPI)="T00007BMXIEN^T00050Measure"_$C(30)
 S X=0 F  S X=$O(^BGPEOMB("AO",X)) Q:X'=+X  D
 . S Y=0 F  S Y=$O(^BGPEOMB("AO",X,Y)) Q:Y'=+Y  D
 .. ;Q:$P(^BGPINDJ(Y,0),U,7)'=1
 .. S BGPI=BGPI+1
 .. S ^BGPTMP($J,BGPI)=Y_U_$P($G(^BGPEOMB(Y,0)),U,2)_$C(30)
 S ^BGPTMP($J,BGPI+1)=$C(31)_$G(BGPERR)
 Q
 ;
PCALL(RETVAL) ;-- get all patient education measures
 S X="MERR^BGP6GU",@^%ZOSF("TRAP") ; m error trap
 N BGPI,X,Y,Z
 K ^BGPTMP($J)
 S RETVAL="^BGPTMP("_$J_")"
 S BGPI=0
 S ^BGPTMP($J,BGPI)="T00007BMXIEN^T00050Measure"_$C(30)
 S X=0 F  S X=$O(^BGPPEIJ("AO",X)) Q:X'=+X  D
 . S Y=0 F  S Y=$O(^BGPPEIJ("AO",X,Y)) Q:Y'=+Y  D
 ..;Q:$P(^BGPINDS(Y,0),U,7)'=1
 .. S BGPI=BGPI+1
 .. S ^BGPTMP($J,BGPI)=Y_U_$P($G(^BGPPEIJ(Y,0)),U,2)_$C(30)
 S ^BGPTMP($J,BGPI+1)=$C(31)_$G(BGPERR)
 Q
PATLST(RETVAL,BGPSTR) ;-- get all GPRA measures
 S X="MERR^BGP4GU",@^%ZOSF("TRAP") ; m error trap
 N BGPI,X,Y,Z,P,BGPIND,O
 S P="|"
 K ^BGPTMP($J)
 S RETVAL="^BGPTMP("_$J_")"
 S BGPI=0
 S ^BGPTMP($J,BGPI)="T00007BMXIEN^T00050Measure"_$C(30)
 N I
 F I=2:1 D  Q:$P(BGPSTR,P,I)=""
 . Q:$P(BGPSTR,P,I)=""
 . S BGPINDI=$P(BGPSTR,P,I)
 . S BGPIND($P(^BGPINDJ(BGPINDI,0),U,2),BGPINDI)=""
 S O=0 F  S O=$O(BGPIND(O)) Q:O'=+O  S X=$O(BGPIND(O,0)) D
 . Q:$P(^BGPINDJ(X,0),U,5)=""
 . S BGPI=BGPI+1
 . S ^BGPTMP($J,BGPI)=X_U_$P($G(^BGPINDJ(X,0)),U,5)_$C(30)
 S ^BGPTMP($J,BGPI+1)=$C(31)_$G(BGPERR)
 Q
 ;
EPATLST(RETVAL,BGPSTR) ;-- get all GPRA measures
 S X="MERR^BGP4GU",@^%ZOSF("TRAP") ; m error trap
 N BGPI,X,Y,Z,P,BGPIND
 S P="|"
 K ^BGPTMP($J)
 S RETVAL="^BGPTMP("_$J_")"
 S BGPI=0
 S ^BGPTMP($J,BGPI)="T00007BMXIEN^T00050Measure"_$C(30)
 N I
 F I=2:1 D  Q:$P(BGPSTR,P,I)=""
 . Q:$P(BGPSTR,P,I)=""
 . S BGPINDI=$P(BGPSTR,P,I)
 . S BGPIND(BGPINDI)=""
 S X=0 F  S X=$O(BGPIND(X)) Q:X'=+X  D
 . Q:$P(^BGPELIJ(X,0),U,5)=""
 . S BGPI=BGPI+1
 . S ^BGPTMP($J,BGPI)=X_U_$P($G(^BGPELIJ(X,0)),U,5)_$C(30)
 S ^BGPTMP($J,BGPI+1)=$C(31)_$G(BGPERR)
 Q
 ;
EOPATLST(RETVAL,BGPSTR) ;-- get all GPRA measures
 S X="MERR^BGP4GU",@^%ZOSF("TRAP") ; m error trap
 N BGPI,X,Y,Z,P,BGPIND
 S P="|"
 K ^BGPTMP($J)
 S RETVAL="^BGPTMP("_$J_")"
 S BGPI=0
 S ^BGPTMP($J,BGPI)="T00007BMXIEN^T00050Measure"_$C(30)
 N I
 F I=2:1 D  Q:$P(BGPSTR,P,I)=""
 . Q:$P(BGPSTR,P,I)=""
 . S BGPINDI=$P(BGPSTR,P,I)
 . S BGPIND(BGPINDI)=""
 S X=0 F  S X=$O(BGPIND(X)) Q:X'=+X  D
 . Q:$P(^BGPEOMB(X,0),U,5)=""
 . S BGPI=BGPI+1
 . S ^BGPTMP($J,BGPI)=X_U_$P($G(^BGPEOMB(X,0)),U,5)_$C(30)
 S ^BGPTMP($J,BGPI+1)=$C(31)_$G(BGPERR)
 Q
 ;
PPATLST(RETVAL,BGPSTR) ;-- get all GPRA measures
 S X="MERR^BGP4GU",@^%ZOSF("TRAP") ; m error trap
 N BGPI,X,Y,Z,P,BGPIND
 S P="|"
 K ^BGPTMP($J)
 S RETVAL="^BGPTMP("_$J_")"
 S BGPI=0
 S ^BGPTMP($J,BGPI)="T00007BMXIEN^T00050Measure"_$C(30)
 N I
 F I=2:1 D  Q:$P(BGPSTR,P,I)=""
 . Q:$P(BGPSTR,P,I)=""
 . S BGPINDI=$P(BGPSTR,P,I)
 . S BGPIND(BGPINDI)=""
 S X=0 F  S X=$O(BGPIND(X)) Q:X'=+X  D
 . Q:$P(^BGPPEIJ(X,0),U,4)=""
 . S BGPI=BGPI+1
 . S ^BGPTMP($J,BGPI)=X_U_$P($G(^BGPPEIJ(X,0)),U,4)_$C(30)
 S ^BGPTMP($J,BGPI+1)=$C(31)_$G(BGPERR)
 Q
COM(RETVAL,BGPSTR) ;-- get measures based on user selection
 S X="MERR^BGP4GU",@^%ZOSF("TRAP") ; m error trap
 N BGPI,X,Y,Z,BGPLP,XREF
 K ^BGPTMP($J)
 S RETVAL="^BGPTMP("_$J_")"
 S BGPI=0
 I BGPSTR="D" D
 . S XREF="ADM"
 I BGPSTR="C" D
 . S XREF="ACARD"
 I BGPSTR="W" D
 . S XREF="AWH"
 I BGPSTR="E" D
 . S XREF="AEL"
 I BGPSTR="I" D
 . S XREF="AIPC"
 I BGPSTR="P" D
 . S XREF="APQA"
 I BGPSTR="A" D
 . S XREF="AAST"
 S BGPLP="^BGPINDJC("""_XREF_""",1)"
 S ^BGPTMP($J,BGPI)="T00007BMXIEN^T00100Measure"_$C(30)
 K ^TMP($J,"BGPG")
 S X=0 F  S X=$O(@BGPLP@(X)) Q:X'=+X  D
 . ;Q:$P(^BGPINDJ(Y,0),U,7)'=1
 . S ^TMP($J,"BGPG",$P($G(^BGPINDJC(X,0)),U))=""
 S Y=0  F  S Y=$O(^TMP($J,"BGPG",Y)) Q:'Y  D
 . S BGPI=BGPI+1
 . S ^BGPTMP($J,BGPI)=Y_U_$P($G(^BGPINDJ(Y,0)),U,5)_$C(30)
 S ^BGPTMP($J,BGPI+1)=$C(31)_$G(BGPERR)
 Q
 ;
CMSIND(RETVAL) ;-- get CMS measures
 S X="MERR^BGP4GU",@^%ZOSF("TRAP") ; m error trap
 N BGPI,X,Y,Z
 K ^BGPTMP($J)
 S RETVAL="^BGPTMP("_$J_")"
 S BGPI=0
 S ^BGPTMP($J,BGPI)="T00007BMXIEN^T00050Measure"_$C(30)
 S X=0 F  S X=$O(^BGPCMSIB("AO",X)) Q:X'=+X  D
 . S Y=0 F  S Y=$O(^BGPCMSIB("AO",X,Y)) Q:Y'=+Y  D
 .. ;Q:$P(^BGPINDJ(Y,0),U,7)'=1
 .. S BGPI=BGPI+1
 .. S ^BGPTMP($J,BGPI)=Y_U_$P($G(^BGPCMSIB(Y,0)),U,4)_$C(30)
 S ^BGPTMP($J,BGPI+1)=$C(31)_$G(BGPERR)
 Q
 ;
CMSSI(RETVAL,BGPSTR) ;-- get sub measure based on passed in measure
 S X="MERR^BGP4GU",@^%ZOSF("TRAP") ; m error trap
 N P,BGPSIND,BGPIND,BGPI,X
 S P="|"
 S BGPIND=$P(BGPSTR,P)
 K ^BGPTMP($J)
 S RETVAL="^BGPTMP("_$J_")"
 S BGPI=0
 S ^BGPTMP($J,BGPI)="T00007BMXIEN^T00050Sub Measure"_$C(30)
 N X,Y
 S X=0 F  S X=$O(^BGPCMSMB("AO",BGPIND,X)) Q:'X  D
 . S Y=0 F  S Y=$O(^BGPCMSMB("AO",BGPIND,X,Y)) Q:'Y  D
 .. S BGPI=BGPI+1
 .. S ^BGPTMP($J,BGPI)=Y_U_$P($G(^BGPCMSMB(Y,0)),U,3)_$C(30)
 S ^BGPTMP($J,BGPI+1)=$C(31)_$G(BGPERR)
 Q