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

BGPGTXUA.m

Go to the documentation of this file.
BGPGTXUA ;cmi/anch/maw - ATX Gui Taxonomy Utilities (con't)
 ;;9.0;IHS CLINICAL REPORTING;**1**;JUL 01, 2009
 ;
 ;generic Taxonomy GUI calls
 ;
 Q
DEBUG(RETVAL,BGPSTR) ;run the debugger
 D DEBUG^%Serenji("TAX^BGPGTXU(.RETVAL,.BGPSTR)")
 Q
 ;
TAX(ATXRET,ATXSTR) ;
 S X="MERR^BGPGTXU",@^%ZOSF("TRAP")
 N P,ATXRFL,ATXI,ATXERR,ATXIEN,ATXTAXE,ATXTAX,ATXDA,ATXNONC,ATXXRF
 N ATXGL,ATXGRF,ATXP
 S P="|"
 I $P(ATXSTR,P)="Lab" D LABTAX^BGPGTXE(.ATXRET,.ATXSTR) Q
 I $P(ATXSTR,P)="LAB" D LTAX^BGPGTXE(.ATXRET) Q
 K ^ATXTMP($J)
 S ATXRET="^ATXTMP("_$J_")"
 S ATXI=0
 S ATXERR=""
 S ^ATXTMP($J,ATXI)="T00080TAXONOMY"_$C(30)
 I $P(ATXSTR,P)="MED" D MEDBLD^BGPGTXE
 F ATXP=3:1 S ATXTAXE=$P(ATXSTR,P,ATXP) Q:$G(ATXTAXE)=""  D
 . Q:$G(ATXTAXE)=""
 . S ATXTAX=$O(^ATXAX("B",ATXTAXE,0))
 . Q:'$G(ATXTAX)
 . S ATXNONC=$P($G(^ATXAX(ATXTAX,0)),U,13)
 . S ATXXRF=$P($G(^ATXAX(ATXTAX,0)),U,14)
 . S ATXFL=$P($G(^ATXAX(ATXTAX,0)),U,15)
 . I ATXFL=80 S ATXXRF="BA"  ;icd dX x ref
 . I ATXFL=80.1 S ATXXRF="BA"  ;icd op and proc xref
 . I ATXFL=81 S ATXXRF="BA"
 . I ATXFL]"" S ATXGL=$G(^DIC(ATXFL,0,"GL"))
 . S ATXDA=0 F  S ATXDA=$O(^ATXAX(ATXTAX,21,ATXDA)) Q:'ATXDA  D
 .. N ATXL,ATXH
 .. S ATXI=ATXI+1
 .. S ATXL=$P($G(^ATXAX(ATXTAX,21,ATXDA,0)),U)
 .. S ATXH=$P($G(^ATXAX(ATXTAX,21,ATXDA,0)),U,2)
 .. I (ATXL=ATXH)!($G(ATXH)="") D  Q
 ... I $G(ATXXRF)="",$G(ATXGL)]"" D  Q
 .... S ATXGRF=ATXGL_""""_ATXL_""""_")"
 .... S ^ATXTMP($J,ATXI)=$P($G(@ATXGRF@(0)),U)_$C(30)
 .... I $G(ATXFL)=95.3 S ^ATXTMP($J,ATXI)=$P($G(@ATXGRF@(0)),U)_"/"_$G(^LAB(95.3,$P(ATXL,"-"),80))_$C(30) Q
 .... ;I $G(ATXFL)=81 S ^ATXTMP($J,ATXI)=$P($G(@ATXGRF@(0)),U)_"-"_$P($G(^ICPT($TR(ATXL," "),0)),U,2)_$C(30) Q
 .... ;I $G(ATXFL)=80 S ^ATXTMP($J,ATXI)=$P($G(@ATXGRF@(0)),U)_"-"_$P($G(^ICD9($O(^ICD9(ATXXRF,ATXL,0)),0)),U,3)_$C(30) Q
 .... ;I $G(ATXFL)=80.1 S ^ATXTMP($J,ATXI)=$P($G(@ATXGRF@(0)),U)_"-"_$P($G(^ICD0($O(^ICD0(ATXXRF,ATXL,0)),0)),U,4)_$C(30) Q
 .... I $G(ATXFL)=81 S ^ATXTMP($J,ATXI)=$P($G(@ATXGRF@(0)),U)_"-"_$P($$CPT^ICPTCOD($TR(ATXL," ")),U,3)_$C(30) Q
 .... I $G(ATXFL)=80 S ^ATXTMP($J,ATXI)=$P($G(@ATXGRF@(0)),U)_"-"_$P($$ICDDX^ICDCODE(ATXL),U,4)_$C(30) Q
 .... I $G(ATXFL)=80.1 S ^ATXTMP($J,ATXI)=$P($G(@ATXGRF@(0)),U)_"-"_$P($$ICDOP^ICDCODE(ATXL),U,5)_$C(30) Q
 ... S ^ATXTMP($J,ATXI)=ATXL_$C(30)
 ... I $G(ATXFL)=95.3 S ^ATXTMP($J,ATXI)=ATXL_"/"_$G(^LAB(95.3,$P(ATXL,"-"),80))_$C(30) Q
 ... ;I $G(ATXFL)=81 S ^ATXTMP($J,ATXI)=ATXL_"-"_$P($G(^ICPT($TR(ATXL," "),0)),U,2)_$C(30) Q
 ... ;I $G(ATXFL)=80 S ^ATXTMP($J,ATXI)=ATXL_"-"_$P($G(^ICD9($O(^ICD9(ATXXRF,ATXL,0)),0)),U,3)_$C(30) Q
 ... ;I $G(ATXFL)=80.1 S ^ATXTMP($J,ATXI)=ATXL_"-"_$P($G(^ICD0($O(^ICD0(ATXXRF,ATXL,0)),0)),U,4)_$C(30) Q
 ... I $G(ATXFL)=81 S ^ATXTMP($J,ATXI)=ATXL_"-"_$P($$CPT^ICPTCOD($TR(ATXL," ")),U,3)_$C(30) Q
 ... I $G(ATXFL)=80 S ^ATXTMP($J,ATXI)=ATXL_"-"_$P($$ICDDX^ICDCODE(ATXL),U,4)_$C(30) Q
 ... I $G(ATXFL)=80.1 S ^ATXTMP($J,ATXI)=ATXL_"-"_$P($$ICDOP^ICDCODE(ATXL),U,5)_$C(30) Q
 .. S ATXGRF=ATXGL_""""_ATXXRF_""")"
 .. N ATXIEN
 .. S ATXIEN=$O(@ATXGRF@(ATXL),-1)
 .. F  S ATXIEN=$O(@ATXGRF@(ATXIEN)) Q:$S(ATXIEN[" ":ATXIEN]ATXH,1:ATXIEN>ATXH)  D
 ... S ATXI=ATXI+1
 ... S ^ATXTMP($J,ATXI)=ATXIEN_$C(30)
 ... I $G(ATXFL)=95.3 S ^ATXTMP($J,ATXI)=ATXIEN_"/"_$G(^LAB(95.3,$P(ATXIEN,"-"),80))_$C(30) Q
 ... ;I $G(ATXFL)=81 S ^ATXTMP($J,ATXI)=ATXIEN_"-"_$P($G(^ICPT($TR(ATXIEN," "),0)),U,2)_$C(30) Q
 ... ;I $G(ATXFL)=80 S ^ATXTMP($J,ATXI)=ATXIEN_"-"_$P($G(^ICD9($O(^ICD9(ATXXRF,ATXIEN,0)),0)),U,3)_$C(30) Q
 ... ;I $G(ATXFL)=80.1 S ^ATXTMP($J,ATXI)=ATXIEN_"-"_$P($G(^ICD0($O(^ICD0(ATXXRF,ATXIEN,0)),0)),U,4)_$C(30) Q
 ... I $G(ATXFL)=81 S ^ATXTMP($J,ATXI)=ATXIEN_"-"_$P($$CPT^ICPTCOD($TR(ATXIEN," ")),U,3)_$C(30) Q
 ... I $G(ATXFL)=80 S ^ATXTMP($J,ATXI)=ATXIEN_"-"_$P($$ICDDX^ICDCODE(ATXIEN),U,4)_$C(30) Q
 ... I $G(ATXFL)=80.1 S ^ATXTMP($J,ATXI)=ATXIEN_"-"_$P($$ICDOP^ICDCODE(ATXIEN),U,5)_$C(30) Q
 S ^ATXTMP($J,ATXI+1)=$C(31)_$G(ATXERR)
 Q
 ;
GETTAX(ATXRET,ATXSTR) ;-- get tax
 S X="MERR^BGPGTXU",@^%ZOSF("TRAP")
 N ATXDA,ATXI,P,ATXPKG,ATXPKGI,ATXI
 S P="|"
 K ^ATXTMP($J)
 S ATXRET="^ATXTMP("_$J_")"
 S ATXI=0
 S ATXERR=""
 S ATXPKG=$P(ATXSTR,P)
 S ATXPKGI=$O(^DIC(9.4,"C",ATXPKG,0))
 S ^ATXTMP($J,ATXI)="T00080TAXONOMIES"_$C(30)
 S ATXDA=0 F  S ATXDA=$O(^ATXAX("APKG",ATXPKGI,ATXDA)) Q:'ATXDA  D
 . N ATXTAX,ATXRO,ATXFL
 . S ATXTAX=$P($G(^ATXAX(ATXDA,0)),U)
 . S ATXRO=$S($P($G(^ATXAX(ATXDA,0)),U,22):"Read Only",1:"Editable")
 . S ATXFL=$P($G(^ATXAX(ATXDA,0)),U,15)
 . Q:'$G(ATXFL)
 . S ^ATXTMP("TAX",$J,ATXTAX,ATXFL)=ATXRO_U_$S(ATXFL=50:"Med",1:"Tax")
 S ATXDA=0 F  S ATXDA=$O(^ATXLAB("APKG",ATXPKGI,ATXDA)) Q:'ATXDA  D
 . N ATXTAX,ATXRO,ATXFL
 . S ATXTAX=$P($G(^ATXLAB(ATXDA,0)),U)
 . S ATXRO=$S($P($G(^ATXLAB(ATXDA,0)),U,22):"Read Only",1:"Editable")
 . S ATXFL=$P($G(^ATXLAB(ATXDA,0)),U,9)
 . I '$G(ATXFL) S ATXFL=60
 . Q:'$G(ATXFL)
 . S ^ATXTMP("TAX",$J,ATXTAX,ATXFL)=ATXRO_U_"Lab"
 S ATXDA=0 F  S ATXDA=$O(^ATXTMP("TAX",$J,ATXDA)) Q:ATXDA=""  D
 . N ATXIEN
 . S ATXIEN=0 F  S ATXIEN=$O(^ATXTMP("TAX",$J,ATXDA,ATXIEN)) Q:ATXIEN=""  D
 .. S ATXI=ATXI+1
 .. S ATXRO=$G(^ATXTMP("TAX",$J,ATXDA,ATXIEN))
 .. S ^ATXTMP($J,ATXI)=ATXDA_"("_$P(ATXRO,U)_"/"_$P(ATXRO,U,2)_"/"_ATXIEN_")"_$C(30)
 S ^ATXTMP($J,ATXI+1)=$C(31)_$G(ATXERR)
 K ^ATXTMP("TAX",$J)
 Q
 ;