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

BGP2DCI.m

Go to the documentation of this file.
  1. BGP2DCI ; IHS/CMI/LAB - IHS area GPRA 10 Dec 2006 9:12 AM ;
  1. ;;12.1;IHS CLINICAL REPORTING;;MAY 17, 2012;Build 66
  1. ;
  1. CALCIND ;EP - CALCULATE ALL MEASURES
  1. S BGPIC=0 F S BGPIC=$O(BGPIND(BGPIC)) Q:BGPIC'=+BGPIC D
  1. .I BGPRTYPE=1,$P(^BGPINDW(BGPIC,0),U,7)'=1 Q ;national gpra report
  1. .I BGPRTYPE=7,$P($G(^BGPINDW(BGPIC,12)),U,1)'=1 Q ;OTHER NATIONAL
  1. .K BGPSTOP,BGPVAL,BGPVALUE,BGPVALUD,BGPG,BGPC,BGPALLED,BGPV,A,B,C,D,E,F,G,H,I,J,K,M,N,O,P,Q,R,S,T,V,W,X,Y,Z,BGPVALUD
  1. .K BGPN1,BGPN2,BGPN3,BGPN4,BGPN5,BGPN6,BGPN7,BGPN8,BGPN9,BGPN10,BGPN11,BGPN12,BGPN13,BGPN14,BGPN15,BGPN16,BGPN17,BGPN18,BGPN19,BGPN20,BGPN21,BGPN22,BGPN23,BGPN24,BGPN25,BGPN26,BGPN27,BGPN28,BGPN29,BGPN30
  1. .K BGPN31,BGPN32,BGPN33,BGPN34,BGPN35,BGPN36,BGPN37,BGPN38,BGPN39,BGPN40,BGPN41,BGPN42,BGPN43,BGPN44,BGPN45,BGPN46,BGPN50,BGPN51,BGPN52,BGPN60,BGPN61,BGPN62,BGPN70,BGPN71,BGPN72,BGPN80,BGPN81,BGPN82
  1. .K BGPD1,BGPD2,BGPD3,BGPD4,BGPD5,BGPD6,BGPD7,BGPD8,BGPD9,BGPD10,BGPD11,BGPD12,BGPD13
  1. .K BGPNUMV
  1. .K ^TMP($J)
  1. .I $D(^BGPINDW(BGPIC,1)) X ^BGPINDW(BGPIC,1)
  1. .K BGPVAL,BGPG,BGPC,BGPALLED,BGPV,A,B,C,D,E,F,G,H,I,J,K,M,N,O,P,Q,R,S,T,V,W,X,Y,Z
  1. .K ^TMP($J)
  1. .;Set up global for iCare
  1. .I $G(BQIGREF)'="",$D(BGPSTOP) S @BQIGREF@(DFN,BGPIC)=$P(^BGPINDW(BGPIC,0),U,3)_"^N/A" Q
  1. .I $D(BGPSTOP) Q ;no need to set since no num/denom
  1. .;loop each individual to set numerator and denominator
  1. .S BGPI=0 F S BGPI=$O(^BGPINDWC("B",BGPIC,BGPI)) Q:BGPI'=+BGPI D
  1. ..S (BGPNUM,BGPDEN)=0
  1. ..X ^BGPINDWC(BGPI,1)
  1. ..X ^BGPINDWC(BGPI,2) ;denominator 1 or 0
  1. ..;set field counter
  1. ..S BGPNF=$P(^BGPINDWC(BGPI,0),U,9)
  1. ..S BGPN=$P(^DD(90548.03,BGPNF,0),U,4)
  1. ..S N=$P(BGPN,";"),P=$P(BGPN,";",2)
  1. ..D S(BGPRPT,BGPGBL,N,P,BGPNUM),S1("N",BGPNUM)
  1. ..S BGPDF=$P(^BGPINDWC(BGPI,0),U,8)
  1. ..S BGPN=$P(^DD(90548.03,BGPDF,0),U,4),N=$P(BGPN,";"),P=$P(BGPN,";",2)
  1. ..I BGPDEN'="NO" D S(BGPRPT,BGPGBL,N,P,BGPDEN),S1("D",BGPDEN)
  1. ..I $G(BGPCPPL) D CPL
  1. .I $D(BGPLIST(BGPIC)) D STMP^BGP2UTL
  1. .I $G(BGPNPL) D NPL
  1. K BGPN1,BGPN2,BGPN3,BGPN4,BGPN5,BGPN6,BGPN7,BGPN8,BGPN9,BGPN10,BGPN11,BGPN12,BGPN13,BGPN14,BGPN15,BGPN16,BGPN17,BGPN18,BGPN19,BGPN20,BGPN21,BGPN22,BGPN23,BGPN24,BGPN25,BGPN26
  1. Q
  1. ;
  1. CPL ;comprehensive pat list check and set xtmp
  1. I BGPLIST="P",$P(^AUPNPAT(DFN,0),U,14)'=BGPLPRV Q ;not this provider
  1. Q:BGPTIME'=1
  1. Q:$P($G(^BGPINDWC(BGPI,12)),U,1)=""
  1. X ^BGPINDWC(BGPI,3) Q:'$T
  1. S C=$S($P($G(^AUPNPAT(DFN,11)),U,18)]"":$P(^AUPNPAT(DFN,11),U,18),1:"UNKNOWN")
  1. S S=$P(^DPT(DFN,0),U,2)
  1. S D=$P(BGPVALUE,"|||")
  1. S F=$P($G(^XTMP("BGP28CPL",BGPJ,BGPH,"LIST",C,S,BGPAGEB,DFN)),"|||")
  1. I D["UP" S $P(F,"$$",1)="UP"
  1. I D["AC" S $P(F,"$$",2)="AC"
  1. I D["AD" S $P(F,"$$",3)="AD"
  1. I D["AAD" S $P(F,"$$",4)="AAD"
  1. I D["PREG" S $P(F,"$$",5)="PREG"
  1. I D["IMM" S $P(F,"$$",6)="IMM"
  1. I D["IHD" S $P(F,"$$",7)="IHD"
  1. I '$D(^XTMP("BGP28CPL",BGPJ,BGPH,"LIST",C,S,BGPAGEB,DFN)) D Q
  1. .S ^XTMP("BGP28CPL",BGPJ,BGPH,"LIST",C,S,BGPAGEB,DFN)=F_"|||"_$P(^BGPINDWC(BGPI,12),U),BGPCPLC=BGPCPLC+1
  1. S $P(^XTMP("BGP28CPL",BGPJ,BGPH,"LIST",C,S,BGPAGEB,DFN),"|||")=F
  1. S $P(^XTMP("BGP28CPL",BGPJ,BGPH,"LIST",C,S,BGPAGEB,DFN),"|||",2)=$P(^XTMP("BGP28CPL",BGPJ,BGPH,"LIST",C,S,BGPAGEB,DFN),"|||",2)_"#"_$P(^BGPINDWC(BGPI,12),U)
  1. Q
  1. NPL ;
  1. Q:BGPTIME'=1
  1. Q:'$D(BGPINDL(BGPIC)) ;not a selected topic
  1. S BGPX=0 F S BGPX=$O(BGPINDL(BGPIC,BGPX)) Q:BGPX'=+BGPX D
  1. .I BGPLIST="P",$P(^AUPNPAT(DFN,0),U,14)'=BGPLPRV Q
  1. .S BGPORD=$P($G(^BGPINDW(BGPIC,12)),U,6)
  1. .X ^BGPNPLW(BGPX,12) K ^TMP($J) Q:'$T
  1. .S BGPINDL(BGPIC,BGPX)=$G(BGPINDL(BGPIC,BGPX))+1
  1. .I $G(BGPYNPLT) S ^XTMP("BGP2DNP",BGPJ,BGPH,"LIST",BGPORD,BGPIC,BGPX,DFN)="" Q
  1. .S BGPO=$S(BGPRTYPE=7:$P(^BGPNPLW(BGPX,0),U,6),1:$P(^BGPNPLW(BGPX,0),U,5))
  1. .I $P(^BGPNPLW(BGPX,0),U,7)=9,$G(BGPVALUD)]"" S BGPVALUE=BGPVALUD
  1. .S ^XTMP("BGP2DNP",BGPJ,BGPH,"LIST",BGPORD,BGPIC,BGPO,BGPX,$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. K BGPN1,BGPN2,BGPN3,BGPN4,BGPN5,BGPN6,BGPN7,BGPN8,BGPN9,BGPN10,BGPN11,BGPN12,BGPN13,BGPN14,BGPN15,BGPN16,BGPN17,BGPN18,BGPN19,BGPN20,BGPN21,BGPN22,BGPN23,BGPN24,BGPN25,BGPN26,BGPX
  1. Q
  1. S(R,G,N,P,V) ;
  1. I 'V Q ;no value to add
  1. S $P(@(G_R_","_N_")"),U,P)=$P($G(@(G_R_","_N_")")),U,P)+V
  1. Q
  1. D(D) ;
  1. I D="" Q ""
  1. Q $E(D,4,5)_"/"_$E(D,6,7)_"/"_(1700+$E(D,1,3))
  1. ;
  1. S1(BQITYP,BQIVAL) ; Return data by patient for iCare into global reference BQIGREF
  1. ;Input Variables
  1. ; BQITYP - Type of value
  1. ; D = Denominator
  1. ; N = Numerator
  1. ; BQIVAL - Value of the type; 0 or 1
  1. ;Assumed variables
  1. ; BGPVALUE - the measure value
  1. ; BQIGREF - global reference where data will be stored temporarily
  1. ; BGPIC - Indicator IEN
  1. ; BGPI - Individual Indicator IEN
  1. ; DFN - Patient IEN
  1. ;
  1. ; If no value of BQIGREF, then it's the regular GPRA report calling the code
  1. ; and nothing needs to be set for iCare.
  1. Q:$G(BQIGREF)=""
  1. ;
  1. ; If no denominator or numerator value, then it doesn't need to be set for iCare
  1. I '$G(BQIVAL) Q
  1. ;
  1. NEW BQITIT,BQILTIT,BQILTIT1,BQILTIT2,BQILTIT3,BQILDTI1,BQILDTI2
  1. NEW BQIDTIT,BQIFTIT,BQITWEN,BQICURR,BQIIDTA,BQIDTA,BQILDTI3
  1. S BQIIDTA=$G(^BGPINDWC(BGPI,0))
  1. S BQIDTA=$G(^BGPINDWC(BGPI,14))
  1. ;
  1. ; Get the Individual Indicator TITLE (1404)
  1. S BQITIT=$P(BQIDTA,U,4)
  1. ;
  1. ; Get the Individual Indicator LINE TITLE 1 (.15)
  1. S BQILTIT1=$P(BQIIDTA,U,15)
  1. I BQILTIT1="" Q
  1. ; Get the Individual Indicator LINE TITLE 2 and 3 (.16,.19)
  1. S BQILTIT2=$P(BQIIDTA,U,16)
  1. S BQILTIT3=$P(BQIIDTA,U,19)
  1. S BQILTIT=BQILTIT1_" "_BQILTIT2_" "_BQILTIT3
  1. ;
  1. ; Get the Individual Indicator LOCAL DENOM TITLE 1, 2, and 3 (.17,.18,.21)
  1. S BQILDTI1=$P(BQIIDTA,U,17)
  1. S BQILDTI2=$P(BQIIDTA,U,18)
  1. S BQILDTI3=$P(BQIIDTA,U,21)
  1. S BQIDTIT=BQILDTI1_" "_BQILDTI2_" "_BQILDTI3
  1. ;
  1. ; Full title is all title fields
  1. S BQIFTIT=BQITIT_" "_BQILTIT_" "_BQIDTIT
  1. S $P(@BQIGREF@(DFN,BGPIC,BGPI),"^",1)=BQIFTIT
  1. ;
  1. ; Get the GOAL 2012 value and the GOAL 06 value
  1. S BQITWEN=$P(BQIDTA,U,3)
  1. S BQICURR=$P(BQIDTA,U,8)
  1. ;
  1. I BQITYP="N" S $P(@BQIGREF@(DFN,BGPIC,BGPI),"^",2)=$G(BQIVAL)
  1. ;
  1. I BQITYP="D" S $P(@BQIGREF@(DFN,BGPIC,BGPI),"^",3)=$G(BQIVAL)
  1. ;
  1. ; Set the Indicator TITLE (.03)
  1. S $P(@BQIGREF@(DFN,BGPIC),U,1)=$P(^BGPINDW(BGPIC,0),U,3)
  1. S $P(@BQIGREF@(DFN,BGPIC),U,2)=$G(BGPVALUE)
  1. I BQITWEN'="" S $P(@BQIGREF@(DFN,BGPIC),U,3)=BQITWEN
  1. I BQICURR'="" S $P(@BQIGREF@(DFN,BGPIC),U,4)=BQICURR
  1. Q