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

BGPGT.m

Go to the documentation of this file.
BGPGT ; IHS/CMI/LAB - BGPG Gui CRS Tables 2/2/2005 10:24:22 AM ;
 ;;7.0;IHS CLINICAL REPORTING;;JAN 24, 2007
 ;
 ;
 ;
GETTAX(RETVAL,BGPSTR) ;-- get taxonomies based on user selection
 S X="MERR^BGPGU",@^%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^BGPGU",@^%ZOSF("TRAP") ; m error trap
 N P,BGPRFL,BGPI,BGPERR,BGPIEN,BGPTAXE,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 BGPTAXE=$P(BGPSTR,P,BGPP) Q:$G(BGPTAXE)=""  D
 . Q:$G(BGPTAXE)=""
 . ;S BGPTAXE=$P(BGPSTR,P)
 . S BGPTAX=$O(^ATXAX("B",BGPTAXE,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^BGPGU",@^%ZOSF("TRAP") ; m error trap
 N P,BGPRFL,BGPI,BGPERR,BGPIEN,BGPTAXE,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 BGPTAXE=$P(BGPSTR,P,BGPP) Q:$G(BGPTAXE)=""  D
 . Q:$G(BGPTAXE)=""
 . ;S BGPTAXE=$P(BGPSTR,P)
 . S BGPTAX=$O(^ATXLAB("B",BGPTAXE,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^BGPGU",@^%ZOSF("TRAP") ; m error trap
 N P,BGPRFL,BGPI,BGPERR,BGPIEN,BGPTAXE,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 BGPTAXE=$P(BGPSTR,P)
 . ;S BGPTAX=$O(^ATXLAB("B",BGPTAXE,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^BGPGU",@^%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^BGPGU",@^%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) ;-- get GPRA indicators
 S X="MERR^BGPGU",@^%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^T00050Indicator"_$C(30)
 S X=0 F  S X=$O(^BGPINDV("AO",X)) Q:X'=+X  D
 . S Y=0 F  S Y=$O(^BGPINDV("AO",X,Y)) Q:Y'=+Y  D
 .. Q:$P(^BGPINDV(Y,0),U,7)'=1
 .. S BGPI=BGPI+1
 .. S ^BGPTMP($J,BGPI)=Y_U_$P($G(^BGPINDV(Y,0)),U,4)_$C(30)
 S ^BGPTMP($J,BGPI+1)=$C(31)_$G(BGPERR)
 Q
 ;
GSI(RETVAL,BGPSTR) ;-- get sub indicator based on passed in indicator
 S X="MERR^BGPGU",@^%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 Indicator"_$C(30)
 S X=0 F  S X=$O(^BGPVNPL("B",BGPIND,X)) Q:'X  D
 . S BGPI=BGPI+1
 . S ^BGPTMP($J,BGPI)=X_U_$P($G(^BGPVNPL(X,0)),U,3)_$C(30)
 S ^BGPTMP($J,BGPI+1)=$C(31)_$G(BGPERR)
 Q
 ;
GIALL(RETVAL) ;-- get all GPRA indicators
 S X="MERR^BGPGU",@^%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^T00050Indicator"_$C(30)
 S X=0 F  S X=$O(^BGPINDV("AO",X)) Q:X'=+X  D
 . S Y=0 F  S Y=$O(^BGPINDV("AO",X,Y)) Q:Y'=+Y  D
 .. ;Q:$P(^BGPINDV(Y,0),U,7)'=1
 .. S BGPI=BGPI+1
 .. S ^BGPTMP($J,BGPI)=Y_U_$P($G(^BGPINDV(Y,0)),U,4)_$C(30)
 S ^BGPTMP($J,BGPI+1)=$C(31)_$G(BGPERR)
 Q
 ;
ECALL(RETVAL) ;-- get all elder care indicators
 S X="MERR^BGPGU",@^%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^T00050Indicator"_$C(30)
 S X=0 F  S X=$O(^BGPELIV("AO",X)) Q:X'=+X  D
 . S Y=0 F  S Y=$O(^BGPELIV("AO",X,Y)) Q:Y'=+Y  D
 .. ;Q:$P(^BGPINDV(Y,0),U,7)'=1
 .. S BGPI=BGPI+1
 .. S ^BGPTMP($J,BGPI)=Y_U_$P($G(^BGPELIV(Y,0)),U,4)_$C(30)
 S ^BGPTMP($J,BGPI+1)=$C(31)_$G(BGPERR)
 Q
 ;
PATLST(RETVAL,BGPSTR) ;-- get all GPRA indicators
 S X="MERR^BGPGU",@^%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^T00050Indicator"_$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(^BGPINDV(X,0),U,5)=""
 . S BGPI=BGPI+1
 . S ^BGPTMP($J,BGPI)=X_U_$P($G(^BGPINDV(X,0)),U,4)_$C(30)
 S ^BGPTMP($J,BGPI+1)=$C(31)_$G(BGPERR)
 Q
 ;
EPATLST(RETVAL,BGPSTR) ;-- get all GPRA indicators
 S X="MERR^BGPGU",@^%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^T00050Indicator"_$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(^BGPELIV(X,0),U,5)=""
 . S BGPI=BGPI+1
 . S ^BGPTMP($J,BGPI)=X_U_$P($G(^BGPELIV(X,0)),U,5)_$C(30)
 S ^BGPTMP($J,BGPI+1)=$C(31)_$G(BGPERR)
 Q
 ;
COM(RETVAL,BGPSTR) ;-- get indicators based on user selection
 S X="MERR^BGPGU",@^%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"
 S BGPLP="^BGPINDVC("""_XREF_""",1)"
 S ^BGPTMP($J,BGPI)="T00007BMXIEN^T00050Indicator"_$C(30)
 K ^TMP($J,"BGPG")
 S X=0 F  S X=$O(@BGPLP@(X)) Q:X'=+X  D
 . ;Q:$P(^BGPINDV(Y,0),U,7)'=1
 . S ^TMP($J,"BGPG",$P($G(^BGPINDVC(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(^BGPINDV(Y,0)),U,5)_$C(30)
 S ^BGPTMP($J,BGPI+1)=$C(31)_$G(BGPERR)
 Q
 ;
CMSIND(RETVAL) ;-- get CMS indicators
 S X="MERR^BGPGU",@^%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^T00050Indicator"_$C(30)
 S X=0 F  S X=$O(^BGPCMSIF("AO",X)) Q:X'=+X  D
 . S Y=0 F  S Y=$O(^BGPCMSIF("AO",X,Y)) Q:Y'=+Y  D
 .. ;Q:$P(^BGPINDV(Y,0),U,7)'=1
 .. S BGPI=BGPI+1
 .. S ^BGPTMP($J,BGPI)=Y_U_$P($G(^BGPCMSIF(Y,0)),U,4)_$C(30)
 S ^BGPTMP($J,BGPI+1)=$C(31)_$G(BGPERR)
 Q
 ;