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

BUDHRPTC.m

Go to the documentation of this file.
  1. BUDHRPTC ; IHS/CMI/LAB - UDS REPORT PROCESSOR ;
  1. ;;13.0;IHS/RPMS UNIFORM DATA SYSTEM;;OCT 12, 2018;Build 90
  1. ;
  1. ;
  1. PROC ;EP - called from xbdbque
  1. D PROC^BUDHRPTE ;set up vars
  1. S DFN=0 F S DFN=$O(^AUPNPAT(DFN)) Q:DFN'=+DFN D
  1. .K ^TMP($J)
  1. .Q:'$D(^AUPNPAT(DFN,0))
  1. .Q:'$D(^DPT(DFN,0))
  1. .Q:$P(^DPT(DFN,0),U,19)
  1. .I $P(^DPT(DFN,0),U,2)'="F",$P(^DPT(DFN,0),U,2)'="M" Q
  1. .Q:$$DEMO^BUDHDU(DFN,"E")
  1. .I BUDBEN=1,$$BEN^AUPNPAT(DFN,"C")'="01" Q
  1. .I BUDBEN=2,$$BEN^AUPNPAT(DFN,"C")="01" Q
  1. .I BUDBEN=4,'$$HL^BUDHUTL2(DFN,BUDBD,BUDED) Q
  1. .S BUDHOLBD=BUDBD,BUDHOLED=BUDED
  1. .S BUDAGE=$$AGE^AUPNPAT(DFN,BUDCCAD)
  1. .S BUDSEX=$P(^DPT(DFN,0),U,2)
  1. .S BUDCCOM=$$COMMRES^AUPNPAT(DFN,"E") I BUDCCOM="" S BUDCCOM="UNKNOWN"
  1. .D GETV^BUDHRPTD
  1. .I BUDUDSPT=0 Q ;NOT ON ANY TABLE
  1. .I $G(BUDTZ) D TZ
  1. .I $G(BUDT3A) D T3A
  1. .I $G(BUDT3B) D T3B
  1. .I $G(BUDT4) D T4^BUDHRPC2
  1. .I $G(BUDT5) D T5
  1. .I $G(BUDT6) D T6
  1. .I $G(BUDT9) D T9^BUDHRPC4
  1. .I $G(BUDT9D) D T9D^BUDHRPC3
  1. .S BUDHOLBD=BUDBD,BUDHOLED=BUDED
  1. .S BUDBD=BUDXXBD,BUDED=BUDXXED
  1. .I $G(BUDT6B) D T6B
  1. .I $G(BUDT7) D T7
  1. .S BUDBD=BUDHOLBD,BUDED=BUDHOLED
  1. .Q
  1. Q
  1. T3A ;
  1. S G=0,Y=0 F S Y=$O(^BUDHTTA("AC",Y)) Q:'Y!(G) S X=$O(^BUDHTTA("AC",Y,0)) D
  1. .S L=$P(^BUDHTTA(X,0),U,7),H=$P(^BUDHTTA(X,0),U,8),P=$P(^BUDHTTA(X,0),U,2)
  1. .I BUDAGE<0 S P=1 S $P(BUDTOT(BUDSEX),U,P)=$P(BUDTOT(BUDSEX),U,P)+1,$P(BUDTOT("ALL"),U,P)=$P(BUDTOT("ALL"),U,P)+1 D T S G=1 Q
  1. .I BUDAGE'<L,BUDAGE'>H S $P(BUDTOT(BUDSEX),U,P)=$P(BUDTOT(BUDSEX),U,P)+1,$P(BUDTOT("ALL"),U,P)=$P(BUDTOT("ALL"),U,P)+1 D T S G=1
  1. .Q
  1. I $G(BUDT3AL) S X=0 F S X=$O(^TMP($J,"VISITSUDSPT",X)) Q:X'=+X S ^XTMP("BUDHRPT1",BUDJ,BUDH,"3A",BUDAGE,BUDSEX,BUDCCOM,DFN,X)=""
  1. I $G(BUDSTMP) S ^XTMP("BUDHRPT1",BUDJ,BUDH,"3ATEMP",DFN)=""
  1. Q
  1. T ;
  1. S $P(BUDTOT(BUDSEX),U,39)=$P(BUDTOT(BUDSEX),U,39)+1,$P(BUDTOT("ALL"),U,39)=$P(BUDTOT("ALL"),U,39)+1
  1. I BUDAGE<18 S BUD019(BUDSEX)=BUD019(BUDSEX)+1,BUD019("ALL")=BUD019("ALL")+1
  1. Q
  1. TZ ;
  1. S BUDR=$$ZIP(DFN)
  1. I BUDR="" S BUDR="Unknown Residence"
  1. S BUDINS=$$ZIPINS^BUDHRPC3(DFN,BUDLASTV)
  1. I BUDINS="" S BUDINS="b"
  1. S ^XTMP("BUDHRPT1",BUDJ,BUDH,"ZIP",BUDR)=$G(^XTMP("BUDHRPT1",BUDJ,BUDH,"ZIP",BUDR))+1 ;column a
  1. S ^XTMP("BUDHRPT1",BUDJ,BUDH,"ZIP",BUDR,BUDINS)=$G(^XTMP("BUDHRPT1",BUDJ,BUDH,"ZIP",BUDR,BUDINS))+1
  1. S ^XTMP("BUDHRPT1",BUDJ,BUDH,"ZIP",BUDR,"f")=$G(^XTMP("BUDHRPT1",BUDJ,BUDH,"ZIP",BUDR,"f"))+1 ;column f
  1. I $G(BUDTZL) S X=0 F S X=$O(^TMP($J,"VISITSUDSPT",X)) Q:X'=+X S ^XTMP("BUDHRPT1",BUDJ,BUDH,"Z",BUDR,BUDINS,BUDCCOM,BUDSEX,$P(^DPT(DFN,0),U),DFN,X)=""
  1. Q
  1. T3B ;
  1. S BUDHISPN=$$HISP(DFN)
  1. S BUDHISP=$P($$HISP(DFN),U,1) ;column
  1. S BUDHISP1=BUDHISP+2 ;set piece
  1. ;
  1. S BUDR1=$$RACE(DFN)
  1. S BUDR=$P(BUDR1,U,1) ;LINE
  1. S $P(BUDRACET(BUDR),U,BUDHISP1)=$P(BUDRACET(BUDR),U,BUDHISP1)+1 ;HISPANIC COLUMN FOR RACE
  1. S $P(BUDRACET(BUDR),U,6)=$P(BUDRACET(BUDR),U,6)+1 ;TOTAL COLUMN FOR RACE
  1. I BUDR="2A"!(BUDR="2B") S $P(BUDRACET(2),U,BUDHISP1)=$P(BUDRACET(2),U,BUDHISP1)+1,$P(BUDRACET(2),U,6)=$P(BUDRACET(2),U,6)+1 ;total line 2
  1. S $P(BUDRACET(8),U,BUDHISP1)=$P(BUDRACET(8),U,BUDHISP1)+1,$P(BUDRACET(8),U,6)=$P(BUDRACET(8),U,6)+1
  1. I $P(BUDR1,U,5)=16 S $P(BUDR1,U,5)=8
  1. S BUDXX=$$LOTE^BUDHRPTD(DFN,BUDLASTV) I BUDXX S $P(BUDLANG(12),U,2)=$P(BUDLANG(12),U,2)+1
  1. I $G(BUDT3BRL) S X=0 F S X=$O(^TMP($J,"VISITSUDSPT",X)) Q:X'=+X S ^XTMP("BUDHRPT1",BUDJ,BUDH,"3BR",$P(BUDR1,U,5),$P(BUDHISPN,U,1),BUDAGE,BUDSEX,BUDCCOM,DFN,X)=BUDR1_"|||"_BUDHISPN_"|||"_BUDXX
  1. D SEXOR^BUDHRPTE
  1. D GENDIDEN^BUDHRPTE
  1. Q
  1. T5 ;tally prim provider
  1. S BUDV=0 F S BUDV=$O(^TMP($J,"VISITSTABLE5",BUDV)) Q:BUDV'=+BUDV D
  1. .S BUDP=$$PRIMPROV^APCLV(BUDV,"D")
  1. .I BUDP="" Q
  1. .;special case for DX of MH
  1. .;special case for provider code 15 and location CHS*
  1. .I $E($$VAL^XBDIQ1(9000010,BUDV,.06),1,3)="CHS",BUDP=15 S BUDT5LN=2 D T5SET Q
  1. .S BUDY=$O(^BUDHTFIV("C",BUDP,0)) I BUDY="" S BUDT5LN=35 D T5SET Q
  1. .;next lines for Bh stuff based on dx
  1. .S T=$O(^BUDHCNTL("B","BH DISCIPLINES FOR 20 AND 21",0))
  1. .I $D(^BUDHCNTL(T,11,"B",BUDP)) D D T5SET Q
  1. ..S P=$$PRIMPOV^APCLV(BUDV,"I")
  1. ..I P,$D(^BUDHTSSC("AD",P,$O(^BUDHTSSC("B","T5 BH CODES L20A",0)))) S BUDT5LN="21" Q
  1. ..S BUDT5LN=$P(^BUDHCNTL(T,11,$O(^BUDHCNTL(T,11,"B",BUDP,0)),0),U,2) Q
  1. .S BUDT5LN=$P(^BUDHTFIV(BUDY,0),U)
  1. .D T5SET
  1. .Q
  1. Q
  1. T5SET ;
  1. I BUDT5LN>0,BUDT5LN<8 D T5PHY
  1. I +BUDT5LN>8,+BUDT5LN<11 D T5MID
  1. I +BUDT5LN>10,BUDT5LN<15 D T5NUR
  1. I BUDT5LN>15,+BUDT5LN<19 D T5DENT
  1. I +BUDT5LN=20 D T520
  1. I BUDT5LN=21 D T521
  1. I $L(BUDT5LN)=3,$E(BUDT5LN,1,2)=22 D T5VISION
  1. I BUDT5LN=22 D T522
  1. I BUDT5LN=23 D T523
  1. I BUDT5LN>23,BUDT5LN<29 D T5ENA
  1. I BUDT5LN="29A" D T529A
  1. I BUDT5LN["30" D T530A
  1. I +BUDT5LN>29,BUDT5LN<33 D T5ADM
  1. I BUDT5LN=35 D T5OTH
  1. I $G(BUDT5L)!($G(BUDT5L2)) D
  1. .Q:BUDT5LN=12
  1. .Q:BUDT5LN=13
  1. .Q:BUDT5LN=14
  1. .Q:BUDT5LN=18
  1. .Q:BUDT5LN="22C"
  1. .Q:BUDT5LN=23
  1. .Q:BUDT5LN=26
  1. .Q:BUDT5LN="30A"
  1. .Q:BUDT5LN=32
  1. .Q:BUDT5LN=27
  1. .Q:BUDT5LN="27a"
  1. .Q:BUDT5LN="27b"
  1. .Q:BUDT5LN="27c"
  1. .Q:BUDT5LN=28
  1. .Q:BUDT5LN="29A"
  1. .Q:BUDT5LN="29b"
  1. .Q:BUDT5LN="30B"
  1. .Q:BUDT5LN="30C"
  1. .Q:BUDT5LN=31
  1. .S ^XTMP("BUDHRPT1",BUDJ,BUDH,"T5",+BUDT5LN,$S(BUDT5LN="20A1":"A1",BUDT5LN="20A2":"A2",+BUDT5LN=BUDT5LN:0,1:$E(BUDT5LN,$L(BUDT5LN))),BUDCCOM,BUDAGE,BUDSEX,DFN,BUDV)=$$PRIMPROV^APCLV(BUDV,"N")_"^"_$$PRIMPROV^APCLV(BUDV,"P")
  1. I $G(BUDT5L1) S ^XTMP("BUDHRPT1",BUDJ,BUDH,"T51",+BUDT5LN,$S(BUDT5LN="20A1":"A1",BUDT5LN="20A2":"A2",+BUDT5LN=BUDT5LN:0,1:$E(BUDT5LN,$L(BUDT5LN))),$$PRIMPROV^APCLV(BUDV,"N"))=$$PRIMPROV^APCLV(BUDV,"D")_" "_$$PRIMPROV^APCLV(BUDV,"E")
  1. Q
  1. T5PHY ;set
  1. S $P(BUDTAB5(BUDT5LN),U)=$P(BUDTAB5(BUDT5LN),U)+1
  1. S $P(BUDTAB5(8),U)=$P(BUDTAB5(8),U)+1
  1. S $P(BUDTAB5(15),U)=$P(BUDTAB5(15),U)+1
  1. I $G(BUDT5L3) D
  1. .I $D(^XTMP("BUDHRPT1",BUDJ,BUDH,"T53",BUDCCOM,BUDAGE,BUDSEX,DFN,"MED SERV",$$VD^APCLV(BUDV))) D I 1
  1. ..S ^XTMP("BUDHRPT1",BUDJ,BUDH,"T53",BUDCCOM,BUDAGE,BUDSEX,DFN,"MED SERV",$$VD^APCLV(BUDV))=^XTMP("BUDHRPT1",BUDJ,BUDH,"T53",BUDCCOM,BUDAGE,BUDSEX,DFN,"MED SERV",$$VD^APCLV(BUDV))_U_BUDV
  1. .E S ^XTMP("BUDHRPT1",BUDJ,BUDH,"T53",BUDCCOM,BUDAGE,BUDSEX,DFN,"MED SERV",$$VD^APCLV(BUDV))=BUDV
  1. I $D(^TMP($J,"PATIENTS","MED SERV",DFN)) Q
  1. S ^TMP($J,"PATIENTS","MED SERV",DFN)="",$P(BUDTAB5(15),U,2)=$P(BUDTAB5(15),U,2)+1
  1. Q
  1. T5MID ;
  1. S $P(BUDTAB5(BUDT5LN),U)=$P(BUDTAB5(BUDT5LN),U)+1 ;total visits for this line
  1. S $P(BUDTAB5("10A"),U)=$P(BUDTAB5("10A"),U)+1 ;total MID encs line
  1. S $P(BUDTAB5(15),U)=$P(BUDTAB5(15),U)+1 ;total med services line
  1. I $D(^TMP($J,"PATIENTS","MED SERV",DFN)) Q
  1. S ^TMP($J,"PATIENTS","MED SERV",DFN)="",$P(BUDTAB5(15),U,2)=$P(BUDTAB5(15),U,2)+1
  1. Q
  1. T5NUR ;
  1. S $P(BUDTAB5(BUDT5LN),U)=$P(BUDTAB5(BUDT5LN),U)+1
  1. I BUDT5LN=12 Q
  1. I BUDT5LN=13 Q
  1. I BUDT5LN=14 Q
  1. S $P(BUDTAB5(15),U)=$P(BUDTAB5(15),U)+1
  1. I $D(^TMP($J,"PATIENTS","MED SERV",DFN)) Q
  1. S ^TMP($J,"PATIENTS","MED SERV",DFN)="",$P(BUDTAB5(15),U,2)=$P(BUDTAB5(15),U,2)+1
  1. Q
  1. T5DENT ;
  1. S $P(BUDTAB5(BUDT5LN),U)=$P(BUDTAB5(BUDT5LN),U)+1
  1. I BUDT5LN=18 Q
  1. S $P(BUDTAB5(19),U)=$P(BUDTAB5(19),U)+1
  1. I $G(BUDT5L3) D I 1
  1. .I $D(^XTMP("BUDHRPT1",BUDJ,BUDH,"T53",BUDCCOM,BUDAGE,BUDSEX,DFN,"DENT SERV",$$VD^APCLV(BUDV))) D
  1. ..S ^XTMP("BUDHRPT1",BUDJ,BUDH,"T53",BUDCCOM,BUDAGE,BUDSEX,DFN,"DENT SERV",$$VD^APCLV(BUDV))=^XTMP("BUDHRPT1",BUDJ,BUDH,"T53",BUDCCOM,BUDAGE,BUDSEX,DFN,"DENT SERV",$$VD^APCLV(BUDV))_U_BUDV
  1. .E S ^XTMP("BUDHRPT1",BUDJ,BUDH,"T53",BUDCCOM,BUDAGE,BUDSEX,DFN,"DENT SERV",$$VD^APCLV(BUDV))=BUDV
  1. I $D(^TMP($J,"PATIENTS","DENT SERV",DFN)) Q
  1. S ^TMP($J,"PATIENTS","DENT SERV",DFN)="",$P(BUDTAB5(19),U,2)=$P(BUDTAB5(19),U,2)+1
  1. Q
  1. T520 ;
  1. S $P(BUDTAB5(BUDT5LN),U)=$P(BUDTAB5(BUDT5LN),U)+1
  1. S $P(BUDTAB5(20),U)=$P(BUDTAB5(20),U)+1
  1. I $G(BUDT5L3) D I 1
  1. .I $D(^XTMP("BUDHRPT1",BUDJ,BUDH,"T53",BUDCCOM,BUDAGE,BUDSEX,DFN,"MENT SERV",$$VD^APCLV(BUDV))) D
  1. ..S ^XTMP("BUDHRPT1",BUDJ,BUDH,"T53",BUDCCOM,BUDAGE,BUDSEX,DFN,"MENT SERV",$$VD^APCLV(BUDV))=^XTMP("BUDHRPT1",BUDJ,BUDH,"T53",BUDCCOM,BUDAGE,BUDSEX,DFN,"MENT SERV",$$VD^APCLV(BUDV))_U_BUDV
  1. .E S ^XTMP("BUDHRPT1",BUDJ,BUDH,"T53",BUDCCOM,BUDAGE,BUDSEX,DFN,"MENT SERV",$$VD^APCLV(BUDV))=BUDV
  1. I $D(^TMP($J,"PATIENTS","20 SERV",DFN)) Q
  1. S ^TMP($J,"PATIENTS","20 SERV",DFN)="",$P(BUDTAB5(20),U,2)=$P(BUDTAB5(20),U,2)+1
  1. Q
  1. T521 ;
  1. S $P(BUDTAB5(BUDT5LN),U)=$P(BUDTAB5(BUDT5LN),U)+1
  1. I $G(BUDT5L3) D I 1
  1. .I $D(^XTMP("BUDHRPT1",BUDJ,BUDH,"T53",BUDCCOM,BUDAGE,BUDSEX,DFN,"SUB SERV",$$VD^APCLV(BUDV))) D
  1. ..S ^XTMP("BUDHRPT1",BUDJ,BUDH,"T53",BUDCCOM,BUDAGE,BUDSEX,DFN,"SUB SERV",$$VD^APCLV(BUDV))=^XTMP("BUDHRPT1",BUDJ,BUDH,"T53",BUDCCOM,BUDAGE,BUDSEX,DFN,"SUB SERV",$$VD^APCLV(BUDV))_U_BUDV
  1. .E S ^XTMP("BUDHRPT1",BUDJ,BUDH,"T53",BUDCCOM,BUDAGE,BUDSEX,DFN,"SUB SERV",$$VD^APCLV(BUDV))=BUDV
  1. I $D(^TMP($J,"PATIENTS","21 SERV",DFN)) Q
  1. S ^TMP($J,"PATIENTS","21 SERV",DFN)="",$P(BUDTAB5(21),U,2)=$P(BUDTAB5(21),U,2)+1
  1. Q
  1. T522 ;
  1. S $P(BUDTAB5(BUDT5LN),U)=$P(BUDTAB5(BUDT5LN),U)+1
  1. I $G(BUDT5L3) D I 1
  1. .I $D(^XTMP("BUDHRPT1",BUDJ,BUDH,"T53",BUDCCOM,BUDAGE,BUDSEX,DFN,"OTH SERV",BUDP,$$VD^APCLV(BUDV))) D
  1. ..S ^XTMP("BUDHRPT1",BUDJ,BUDH,"T53",BUDCCOM,BUDAGE,BUDSEX,DFN,"OTH SERV",BUDP,$$VD^APCLV(BUDV))=^XTMP("BUDHRPT1",BUDJ,BUDH,"T53",BUDCCOM,BUDAGE,BUDSEX,DFN,"OTH SERV",BUDP,$$VD^APCLV(BUDV))_U_BUDV
  1. .E S ^XTMP("BUDHRPT1",BUDJ,BUDH,"T53",BUDCCOM,BUDAGE,BUDSEX,DFN,"OTH SERV",BUDP,$$VD^APCLV(BUDV))=BUDV
  1. I $D(^TMP($J,"PATIENTS","22 SERV",DFN)) Q
  1. S ^TMP($J,"PATIENTS","22 SERV",DFN)="",$P(BUDTAB5(22),U,2)=$P(BUDTAB5(22),U,2)+1
  1. Q
  1. T523 ;
  1. S $P(BUDTAB5(BUDT5LN),U)=$P(BUDTAB5(BUDT5LN),U)+1
  1. Q
  1. T5VISION ;
  1. S $P(BUDTAB5(BUDT5LN),U)=$P(BUDTAB5(BUDT5LN),U)+1
  1. I BUDT5LN="22C" Q
  1. S $P(BUDTAB5("22D"),U)=$P(BUDTAB5("22D"),U)+1 ;total vision line
  1. I $G(BUDT5L3) D I 1
  1. .I $D(^XTMP("BUDHRPT1",BUDJ,BUDH,"T53",BUDCCOM,BUDAGE,BUDSEX,DFN,"VISION SERV",BUDP,$$VD^APCLV(BUDV))) D
  1. ..S ^XTMP("BUDHRPT1",BUDJ,BUDH,"T53",BUDCCOM,BUDAGE,BUDSEX,DFN,"VISION SERV",BUDP,$$VD^APCLV(BUDV))=^XTMP("BUDHRPT1",BUDJ,BUDH,"T53",BUDCCOM,BUDAGE,BUDSEX,DFN,"VISION SERV",BUDP,$$VD^APCLV(BUDV))_U_BUDV
  1. .E S ^XTMP("BUDHRPT1",BUDJ,BUDH,"T53",BUDCCOM,BUDAGE,BUDSEX,DFN,"VISION SERV",BUDP,$$VD^APCLV(BUDV))=BUDV
  1. I $D(^TMP($J,"PATIENTS","22D SERV",DFN)) Q
  1. S ^TMP($J,"PATIENTS","22D SERV",DFN)="",$P(BUDTAB5("22D"),U,2)=$P(BUDTAB5("22D"),U,2)+1
  1. Q
  1. T5ENA ;
  1. S $P(BUDTAB5(BUDT5LN),U)=$P(BUDTAB5(BUDT5LN),U)+1
  1. I BUDT5LN=23 Q
  1. I BUDT5LN=26 Q
  1. I $E(BUDT5LN,1,2)=27 Q
  1. I BUDT5LN=28 Q
  1. I BUDT5LN=24!(BUDT5LN=25) S $P(BUDTAB5(29),U)=$P(BUDTAB5(29),U)+1 ;total enabling services line
  1. I $G(BUDT5L3) D I 1
  1. .I $D(^XTMP("BUDHRPT1",BUDJ,BUDH,"T53",BUDCCOM,BUDAGE,BUDSEX,DFN,"ENA SERV",BUDT5LN,$$VD^APCLV(BUDV))) D
  1. ..S ^XTMP("BUDHRPT1",BUDJ,BUDH,"T53",BUDCCOM,BUDAGE,BUDSEX,DFN,"ENA SERV",BUDT5LN,$$VD^APCLV(BUDV))=^XTMP("BUDHRPT1",BUDJ,BUDH,"T53",BUDCCOM,BUDAGE,BUDSEX,DFN,"ENA SERV",BUDT5LN,$$VD^APCLV(BUDV))_U_BUDV
  1. .E S ^XTMP("BUDHRPT1",BUDJ,BUDH,"T53",BUDCCOM,BUDAGE,BUDSEX,DFN,"ENA SERV",BUDT5LN,$$VD^APCLV(BUDV))=BUDV
  1. I $D(^TMP($J,"PATIENTS","ENA SERV",DFN)) Q
  1. S ^TMP($J,"PATIENTS","ENA SERV",DFN)="",$P(BUDTAB5(29),U,2)=$P(BUDTAB5(29),U,2)+1
  1. Q
  1. T529A ;
  1. S $P(BUDTAB5(BUDT5LN),U)=$P(BUDTAB5(BUDT5LN),U)+1 ;total visits for this line
  1. Q
  1. T530A ;
  1. Q ;all of line 3 grayed out
  1. S $P(BUDTAB5(30),U)=$P(BUDTAB5(30),U)+1 ;total line 30
  1. T5ADM ;
  1. Q ;all of 31, 32, 33 is grayed out
  1. S $P(BUDTAB5(BUDT5LN),U)=$P(BUDTAB5(BUDT5LN),U)+1
  1. S $P(BUDTAB5(33),U)=$P(BUDTAB5(33),U)+1
  1. I $D(^TMP($J,"PATIENTS","ADM SERV",DFN)) Q
  1. S ^TMP($J,"PATIENTS","ADM SERV",DFN)="",$P(BUDTAB5(33),U,2)=$P(BUDTAB5(33),U,2)+1
  1. Q
  1. T5OTH ;
  1. S $P(BUDTAB5(BUDT5LN),U)=$P(BUDTAB5(BUDT5LN),U)+1
  1. Q
  1. ;
  1. T6 ;
  1. D T6^BUDHRPC1
  1. Q
  1. ;
  1. HISP(DFN) ;EP
  1. NEW X,Y,Z,V,A,C,R
  1. S A="",X=""
  1. I $G(DFN)="" Q ""
  1. S Y=$$ETHN(DFN)
  1. I Y="HISPANIC OR LATINO" Q 1_U_"E"_U_Y
  1. I Y="NOT HISPANIC OR LATINO" Q 2_U_"E"_U_Y
  1. S C=0,R="",A="",Z=""
  1. S Y=0 F S Y=$O(^DPT(DFN,.02,Y)) Q:Y'=+Y D
  1. .S C=C+1
  1. .I X="" S X=$P(^DPT(DFN,.02,Y,0),U,1) ;
  1. I C>1 Q 2_U_"R"_U_"MULT RACE"
  1. I X S Z=$P(^DIC(10,X,0),U,2)
  1. I Z=1 Q 1_U_"R"_U_$$RABB(Z)
  1. I Z=2 Q 1_U_"R"_U_$$RABB(Z)
  1. I Z="D"!(Z="U")!(Z=7) D Q A
  1. .I Y]"" S A=3_U_"E"_U_Y Q
  1. .S A=3_U_"R"_U_$$RABB(Z)
  1. I Z]"" Q 2_"^R^"_$$RABB(Z)
  1. I Y]"" Q 3_U_"E"_U_Y
  1. HISPN ;
  1. S X=$P(^DPT(DFN,0),U,6)
  1. S Z=""
  1. I X S Z=$P(^DIC(10,X,0),U,2)
  1. I Z=1 Q 1_U_"R"_U_$$RABB(Z)
  1. I Z=2 Q 1_U_"R"_U_$$RABB(Z)
  1. I Z="D"!(Z="U")!(Z=7) D Q V
  1. .I Y]"" S V=3_U_"E"_U_Y Q
  1. .S V=3_U_"R"_U_$$RABB(Z)
  1. I Z]"" Q 2_"^R^"_$$RABB(Z)
  1. I Y]"" Q 3_U_"E"_U_Y
  1. I $$BEN^AUPNPAT(DFN,"C")="01",Y="" Q 2_U_"C"_U_"AI/AN"
  1. Q 3_"^E^BLANK RACE & ETHNICITY"
  1. ;
  1. ETHN(P) ;EP
  1. NEW Z,E
  1. S E=""
  1. S Z=0 F S Z=$O(^DPT(P,.06,Z)) Q:Z'=+Z!(E]"") D
  1. .S E=$P($G(^DPT(P,.06,Z,0)),U,1)
  1. .Q:E=""
  1. .S E=$P($G(^DIC(10.2,E,0)),U,1)
  1. .Q
  1. Q E
  1. RACE(DFN) ;EP
  1. NEW X,Y,Z,C,A
  1. I $G(DFN)="" Q ""
  1. S C=0,R="",X="",A=""
  1. S Y=0 F S Y=$O(^DPT(DFN,.02,Y)) Q:Y'=+Y D
  1. .S C=C+1
  1. .I X="" S X=$P(^DPT(DFN,.02,Y,0),U,1),Z=$P($G(^DIC(10,X,0)),U),X=$P($G(^DIC(10,X,0)),U,2)
  1. I C>1 Q "6^MORE THAN ONE RACE^R"_U_"MORE THAN ONE RACE"_U_7
  1. I X]"" S A=$$SETRC(X) Q A
  1. S X=$P(^DPT(DFN,0),U,6)
  1. I X="" G CL
  1. I X S Z=$P(^DIC(10,X,0),U),X=$P($G(^DIC(10,X,0)),U,2)
  1. I X="" G CL
  1. Q $$SETRC(X)
  1. CL I $$BEN^AUPNPAT(DFN,"C")="01" Q "4^AI/AN^C^AI/AN^5"
  1. Q "7^UNREP/REF^C^BLANK RACE^8"
  1. ;
  1. SETRC(X) ;
  1. I X="A" Q "1^ASIAN^R"_U_Z_U_1
  1. I X="H" Q "2A^NATIVE HAWAIIAN^R"_U_Z_U_2
  1. I X=5 Q "2B^OTH PAC ISLANDER^R"_U_Z_U_3
  1. I X=4!(X="B") Q "3^BLACK^R"_U_Z_U_4
  1. I X=3!(X="Z")!(X="AIAN") Q "4^AI/AN^R"_U_Z_U_5
  1. I X=6!(X="W") Q "5^WHITE^R"_U_Z_U_6
  1. I X=1 Q "5^WHITE^R"_U_Z_U_6
  1. I X="D" Q "7^UNREP/REF^R"_U_Z_U_8
  1. I X="7" Q "7^UNREP/REF^R"_U_Z_U_8
  1. I X="U" Q "7^UNREP/REF^R"_U_Z_U_8
  1. I X=2 Q "3^BLACK^R"_U_Z_U_4
  1. I X="O" Q "7^UNREP/REF^R"_U_Z_U_8
  1. I Z="OTHER" Q "7^UNREP/REF^R"_U_Z_U_8
  1. Q ""
  1. ZIP(DFN) ;
  1. I $G(DFN)="" Q ""
  1. Q $E($P($G(^DPT(DFN,.11)),U,6),1,5)
  1. ;
  1. RABB(X) ;
  1. I X="A" Q "ASIAN"
  1. I X="H" Q "NATIVE HAWAIIAN"
  1. I X=5 Q "OTH PAC ISLANDER"
  1. I X="B" Q "BLACK/AFRICAN"
  1. I X=4 Q "BLACK NOT HISP"
  1. I X=3!(X="Z")!(X="AIAN") Q "AI/AN"
  1. I X="W" Q "WHITE"
  1. I X=6 Q "WHITE NOT HISP"
  1. I X=1 Q "HISPANIC, WHITE"
  1. I X="D" Q "DECLINED"
  1. I X="7" Q "UNKNOWN"
  1. I X="U" Q "UNKNOWN BY PT"
  1. I X=2 Q "HISPANIC, BLACK"
  1. Q "??"
  1. T6B ;
  1. S BUDAGE=$$AGE^AUPNPAT(DFN,BUDED)
  1. S BUDAGEP=$$AGE^AUPNPAT(DFN,BUDCCAD)
  1. D IMM^BUDHRP6C
  1. D PAPD^BUDHRP6D
  1. D ADOLWT^BUDHRP6V
  1. D ADULT^BUDHRP6V
  1. D G^BUDHRP6V
  1. D H^BUDHRP6U
  1. D I^BUDHRP6O
  1. D J^BUDHRP6M
  1. D K^BUDHRP6N
  1. D L^BUDHRP6Q
  1. D M^BUDHRP6Q
  1. D N^BUDHRP6A
  1. S BUDAGE=$$AGE^AUPNPAT(DFN,BUDCCAD)
  1. Q
  1. T7 ;
  1. S BUDAGE=$$AGE^AUPNPAT(DFN,BUDED)
  1. S BUDAGEP=$$AGE^AUPNPAT(DFN,BUDCCAD)
  1. D PRGHLST^BUDHRP7A
  1. D PRGRLST^BUDHRP7A
  1. D HTN^BUDHRP7B
  1. D DM^BUDHRP7C
  1. S BUDAGE=$$AGE^AUPNPAT(DFN,BUDCCAD)
  1. Q