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

BPCSC1.m

Go to the documentation of this file.
  1. BPCSC1 ; IHS/OIT/MJL - SPECIAL X-REF ROUTINES - ; [ 04/14/2008 4:14 PM ]
  1. ;;1.5;BPC;**5**;FEB 16, 2005
  1. ;
  1. ; BGUBEGIN contains the Patient IEN
  1. ; BGUEND contains the following separated by "`"
  1. ; 1. Start Date (External format)
  1. ; 2. End Date (External format)
  1. ; 3. No of visits to view (ignored if View Option = 1)
  1. ; 4. Visits with labs only flag (0=No,1=Yes)
  1. ; 5. View Option (0=Last # of visits in dt rng,1=all visits in dt rng)
  1. ;
  1. MED I '$D(BGUDRIVR) D Q
  1. .S BGUDRIVR="MED^BPCSC1",BGUCRFS="",BPCPIEN=BGUBEGIN
  1. .S BPCSDATE=$P(BGUEND,"`",1),BPCEDATE=$P(BGUEND,"`",2)
  1. .S BPCVWNO=$P(BGUEND,"`",3),BPCLBONL=$P(BGUEND,"`",4)
  1. .S BPCVWOPT=$P(BGUEND,"`",5),BGUMAX=$S('BPCVWOPT:BPCVWNO,1:32000)
  1. .S (BGUBEGIN,BGUEND)=""
  1. Q:BPCPIEN=""
  1. S BPCVWOPT="2"
  1. D MED1
  1. Q
  1. ;
  1. MED1 ;
  1. S:'(+BPCVWNO) BPCVWNO=10 S:BPCSDATE="" BPCSDATE="1/1/1980"
  1. S:BPCEDATE="" BPCEDATE="T" S:BPCVWOPT="" BPCVWOPT="0"
  1. S:BPCLBONL="" BPCLBONL="1"
  1. D DT^DILF("",BPCSDATE,.BPCSDAT)
  1. I BPCSDAT=-1 D
  1. .S BPCSDATE="1/1/1980"
  1. .D DT^DILF("",BPCSDATE,.BPCSDAT)
  1. D DT^DILF("",BPCEDATE,.BPCEDAT)
  1. I BPCEDAT=-1 D
  1. .S BPCEDATE="T"
  1. .D DT^DILF("",BPCEDATE,.BPCEDAT)
  1. S BPCC=0,BPCX=0,BPCLIM=$S(BPCVWOPT="0":BPCVWNO,1:99999)
  1. F S BPCX=$O(^AUPNVSIT("AA",BPCPIEN,BPCX)) Q:BPCX="" D Q:BPCC=BPCLIM
  1. .S BPCVIEN=""
  1. .F S BPCVIEN=$O(^AUPNVSIT("AA",BPCPIEN,BPCX,BPCVIEN)) Q:BPCVIEN="" D Q:BPCC=BPCLIM
  1. ..S BPCDTA=^AUPNVSIT(BPCVIEN,0),BPCCKD=$P($P(BPCDTA,U,1),".",1)
  1. ..Q:BPCCKD=""!(BPCCKD<BPCSDAT)!(BPCCKD>BPCEDAT)
  1. ..S BPCC=BPCC+1,BPCPMIEN=0
  1. ..F S BPCPMIEN=$O(^AUPNVMED("AD",BPCVIEN,BPCPMIEN)) Q:BPCPMIEN="" D
  1. ...S BPCSTAT=-1
  1. ...I $D(^PSRX("APCC",BPCPMIEN)) D
  1. ....S BPCRXIEN=$O(^PSRX("APCC",BPCPMIEN,"")) Q:BPCRXIEN=""
  1. ....S BPCCK=$O(^PSRX("APCC",BPCPMIEN,BPCRXIEN,""))
  1. ....I BPCCK'="" S BPCSTAT=-1 Q
  1. ....S BPCSTAT=$P(^PSRX(BPCRXIEN,0),"^",15) S:BPCSTAT="" BPCSTAT=-1
  1. ....;I BPCSTAT=0 D MED2
  1. ...I BPCSTAT=0 S BGUSUB(1)=BPCPMIEN D FIELDS^BGULIST
  1. Q
  1. MED2 ;
  1. N DYS,RFLS,ISUDAT,CKDT
  1. S BPCSTAT=-1,BPCRX0=$G(^PSRX(BPCRXIEN,0)) Q:BPCRX0=""
  1. S BPCRX2=$G(^PSRX(BPCRXIEN,2))
  1. S DYS=$P(BPCRX0,U,8),RFLS=$P(BPCRX0,U,9),ISUDAT=$P(BPCRX0,U,13)
  1. S X2=DYS*RFLS,X2=$S(DYS=X2:X2,X2<181:184,X2=360:366,1:X2)
  1. D:ISUDAT'=""
  1. .S X1=ISUDAT D C^%DTC S CKDT=$P(X,".",1)
  1. .S X="T" D ^%DT I CKDT'<Y S BPCSTAT=0
  1. Q
  1. POV ; Get purpose of visits
  1. ;
  1. I '$D(BGUDRIVR) D Q
  1. .S BGUDRIVR="POV^BPCSC1",BGUCRFS="",BPCPIEN=BGUBEGIN
  1. .S BPCSDATE=$P(BGUEND,"`",1),BPCEDATE=$P(BGUEND,"`",2)
  1. .S BPCVWNO=$P(BGUEND,"`",3),BPCLBONL=$P(BGUEND,"`",4)
  1. .S BPCVWOPT=$P(BGUEND,"`",5),BGUMAX=$S('BPCVWOPT:BPCVWNO,1:32000)
  1. .S (BGUBEGIN,BGUEND)=""
  1. Q:BPCPIEN=""
  1. S BPCVWOPT="2"
  1. D POV1
  1. Q
  1. POV1 ;
  1. S:'(+BPCVWNO) BPCVWNO=10 S:BPCSDATE="" BPCSDATE="1/1/1980"
  1. S:BPCEDATE="" BPCEDATE="T" S:BPCVWOPT="" BPCVWOPT="0"
  1. S:BPCLBONL="" BPCLBONL="1"
  1. D DT^DILF("",BPCSDATE,.BPCSDAT)
  1. I BPCSDAT=-1 D
  1. .S BPCSDATE="1/1/1980"
  1. .D DT^DILF("",BPCSDATE,.BPCSDAT)
  1. D DT^DILF("",BPCEDATE,.BPCEDAT)
  1. I BPCEDAT=-1 D
  1. .S BPCEDATE="T"
  1. .D DT^DILF("",BPCEDATE,.BPCEDAT)
  1. S BPCC=0,BPCX=0,BPCLIM=$S(BPCVWOPT="0":BPCVWNO,1:99999)
  1. F S BPCX=$O(^AUPNVSIT("AA",BPCPIEN,BPCX)) Q:BPCX="" D Q:BPCC=BPCLIM
  1. .S BPCVIEN=""
  1. .F S BPCVIEN=$O(^AUPNVSIT("AA",BPCPIEN,BPCX,BPCVIEN)) Q:BPCVIEN="" D Q:BPCC=BPCLIM
  1. ..S BPCDTA=^AUPNVSIT(BPCVIEN,0),BPCCKD=$P($P(BPCDTA,U,1),".",1)
  1. ..Q:BPCCKD=""!(BPCCKD<BPCSDAT)!(BPCCKD>BPCEDAT)
  1. ..S BPCC=BPCC+1,BPCPVIEN=0
  1. ..F S BPCPVIEN=$O(^AUPNVPOV("AD",BPCVIEN,BPCPVIEN)) Q:BPCPVIEN="" D
  1. ...S BGUSUB(1)=BPCPVIEN D FIELDS^BGULIST
  1. Q
  1. MEAS ;
  1. I '$D(BGUDRIVR) D Q
  1. .S BGUDRIVR="MEAS^BPCSC1",BGUCRFS="",BPCPIEN=BGUBEGIN
  1. .S BPCSDATE=$P(BGUEND,"`",1),BPCEDATE=$P(BGUEND,"`",2)
  1. .S BPCVWNO=$P(BGUEND,"`",3),BPCLBONL=$P(BGUEND,"`",4)
  1. .S BPCVWOPT=$P(BGUEND,"`",5),BGUMAX=$S('BPCVWOPT:BPCVWNO,1:32000)
  1. .S (BGUBEGIN,BGUEND)=""
  1. Q:BPCPIEN=""
  1. S BPCVWOPT="2"
  1. D MEAS1
  1. Q
  1. MEAS1 ;
  1. S:'(+BPCVWNO) BPCVWNO=10 S:BPCSDATE="" BPCSDATE="1/1/1980"
  1. S:BPCEDATE="" BPCEDATE="T" S:BPCVWOPT="" BPCVWOPT="0"
  1. S:BPCLBONL="" BPCLBONL="1"
  1. D DT^DILF("",BPCSDATE,.BPCSDAT)
  1. I BPCSDAT=-1 D
  1. .S BPCSDATE="1/1/1980"
  1. .D DT^DILF("",BPCSDATE,.BPCSDAT)
  1. D DT^DILF("",BPCEDATE,.BPCEDAT)
  1. I BPCEDAT=-1 D
  1. .S BPCEDATE="T"
  1. .D DT^DILF("",BPCEDATE,.BPCEDAT)
  1. S BPCC=0,BPCX=0,BPCLIM=$S(BPCVWOPT="0":BPCVWNO,1:99999)
  1. F S BPCX=$O(^AUPNVSIT("AA",BPCPIEN,BPCX)) Q:BPCX="" D Q:BPCC=BPCLIM
  1. .S BPCVIEN=""
  1. .F S BPCVIEN=$O(^AUPNVSIT("AA",BPCPIEN,BPCX,BPCVIEN)) Q:BPCVIEN="" D Q:BPCC=BPCLIM
  1. ..S BPCDTA=^AUPNVSIT(BPCVIEN,0),BPCCKD=$P($P(BPCDTA,U,1),".",1)
  1. ..Q:BPCCKD=""!(BPCCKD<BPCSDAT)!(BPCCKD>BPCEDAT)
  1. ..;Q:'$D(^AUPNVMSR("AD",BPCVIEN))
  1. ..S BPCC=BPCC+1,BPCMVIEN=0
  1. ..F S BPCMVIEN=$O(^AUPNVMSR("AD",BPCVIEN,BPCMVIEN)) Q:BPCMVIEN="" D
  1. ...S BGUSUB(1)=BPCMVIEN D FIELDS^BGULIST
  1. Q
  1. EDP ; Get EDUCATION PROTOCOLS
  1. ;
  1. I '$D(BGUDRIVR) D Q
  1. .S BGUDRIVR="EDP^BPCSC1",BGUCRFS="",BPCPIEN=BGUBEGIN
  1. .S BPCSDATE=$P(BGUEND,"`",1),BPCEDATE=$P(BGUEND,"`",2)
  1. .S BPCVWNO=$P(BGUEND,"`",3),BPCLBONL=$P(BGUEND,"`",4)
  1. .S BPCVWOPT=$P(BGUEND,"`",5),BGUMAX=$S('BPCVWOPT:BPCVWNO,1:32000)
  1. .S (BGUBEGIN,BGUEND)=""
  1. Q:BPCPIEN=""
  1. S BPCVWOPT="2"
  1. D EDP1
  1. Q
  1. EDP1 ;
  1. S:'(+BPCVWNO) BPCVWNO=10 S:BPCSDATE="" BPCSDATE="1/1/1980"
  1. S:BPCEDATE="" BPCEDATE="T" S:BPCVWOPT="" BPCVWOPT="0"
  1. S:BPCLBONL="" BPCLBONL="1"
  1. D DT^DILF("",BPCSDATE,.BPCSDAT)
  1. I BPCSDAT=-1 D
  1. .S BPCSDATE="1/1/1980"
  1. .D DT^DILF("",BPCSDATE,.BPCSDAT)
  1. D DT^DILF("",BPCEDATE,.BPCEDAT)
  1. I BPCEDAT=-1 D
  1. .S BPCEDATE="T"
  1. .D DT^DILF("",BPCEDATE,.BPCEDAT)
  1. S BPCC=0,BPCX=0,BPCLIM=$S(BPCVWOPT="0":BPCVWNO,1:99999)
  1. F S BPCX=$O(^AUPNVSIT("AA",BPCPIEN,BPCX)) Q:'BPCX D Q:BPCC=BPCLIM
  1. .S BPCVIEN=""
  1. .F S BPCVIEN=$O(^AUPNVSIT("AA",BPCPIEN,BPCX,BPCVIEN)) Q:'BPCVIEN D Q:BPCC=BPCLIM
  1. ..S BPCDTA=^AUPNVSIT(BPCVIEN,0),BPCCKD=$P($P(BPCDTA,U,1),".",1)
  1. ..Q:BPCCKD=""!(BPCCKD<BPCSDAT)!(BPCCKD>BPCEDAT)
  1. ..S BPCC=BPCC+1,BPCPVIEN=0
  1. ..F S BPCPVIEN=$O(^AUPNVPED("AD",BPCVIEN,BPCPVIEN)) Q:'BPCPVIEN D
  1. ...S BGUSUB(1)=BPCPVIEN D FIELDS^BGULIST
  1. Q
  1. RAD ; Get RADIOLOGY PCC data
  1. ;
  1. I '$D(BGUDRIVR) D Q
  1. .S BGUDRIVR="RAD^BPCSC1",BGUCRFS="",BPCPIEN=BGUBEGIN
  1. .S BPCSDATE=$P(BGUEND,"`",1),BPCEDATE=$P(BGUEND,"`",2)
  1. .S BPCVWNO=$P(BGUEND,"`",3),BPCLBONL=$P(BGUEND,"`",4)
  1. .S BPCVWOPT=$P(BGUEND,"`",5),BGUMAX=$S('BPCVWOPT:BPCVWNO,1:32000)
  1. .S (BGUBEGIN,BGUEND)=""
  1. Q:BPCPIEN=""
  1. S BPCVWOPT="2"
  1. D RAD1
  1. Q
  1. RAD1 ;
  1. S:'(+BPCVWNO) BPCVWNO=10 S:BPCSDATE="" BPCSDATE="1/1/1980"
  1. S:BPCEDATE="" BPCEDATE="T" S:BPCVWOPT="" BPCVWOPT="0"
  1. S:BPCLBONL="" BPCLBONL="1"
  1. D DT^DILF("",BPCSDATE,.BPCSDAT)
  1. I BPCSDAT=-1 D
  1. .S BPCSDATE="1/1/1980"
  1. .D DT^DILF("",BPCSDATE,.BPCSDAT)
  1. D DT^DILF("",BPCEDATE,.BPCEDAT)
  1. I BPCEDAT=-1 D
  1. .S BPCEDATE="T"
  1. .D DT^DILF("",BPCEDATE,.BPCEDAT)
  1. S BPCC=0,BPCX=0,BPCLIM=$S(BPCVWOPT="0":BPCVWNO,1:99999)
  1. F S BPCX=$O(^AUPNVSIT("AA",BPCPIEN,BPCX)) Q:'BPCX D Q:BPCC=BPCLIM
  1. .S BPCVIEN=""
  1. .F S BPCVIEN=$O(^AUPNVSIT("AA",BPCPIEN,BPCX,BPCVIEN)) Q:'BPCVIEN D Q:BPCC=BPCLIM
  1. ..S BPCDTA=^AUPNVSIT(BPCVIEN,0),BPCCKD=$P($P(BPCDTA,U,1),".",1)
  1. ..Q:BPCCKD=""!(BPCCKD<BPCSDAT)!(BPCCKD>BPCEDAT)
  1. ..S BPCC=BPCC+1,BPCPVIEN=0
  1. ..F S BPCPVIEN=$O(^AUPNVRAD("AD",BPCVIEN,BPCPVIEN)) Q:'BPCPVIEN D
  1. ...S BGUSUB(1)=BPCPVIEN D FIELDS^BGULIST
  1. Q
  1. MIC ; Get V MICROBIOLOGY data
  1. ;
  1. K ^TMP($J)
  1. I '$D(BGUDRIVR) D Q
  1. .S BGUDRIVR="MIC^BPCSC1",BGUCRFS="",BPCPIEN=BGUBEGIN
  1. .S BPCSDATE=$P(BGUEND,"`",1),BPCEDATE=$P(BGUEND,"`",2)
  1. .S BPCVWNO=$P(BGUEND,"`",3),BPCLBONL=$P(BGUEND,"`",4)
  1. .S BPCVWOPT=$P(BGUEND,"`",5),BGUMAX=$S('BPCVWOPT:BPCVWNO,1:32000)
  1. .S (BGUBEGIN,BGUEND)=""
  1. Q:BPCPIEN=""
  1. S BPCVWOPT="2"
  1. D MIC1
  1. Q
  1. MIC1 ;
  1. S:'(+BPCVWNO) BPCVWNO=10 S:BPCSDATE="" BPCSDATE="1/1/1980"
  1. S:BPCEDATE="" BPCEDATE="T" S:BPCVWOPT="" BPCVWOPT="0"
  1. S:BPCLBONL="" BPCLBONL="1"
  1. D DT^DILF("",BPCSDATE,.BPCSDAT)
  1. I BPCSDAT=-1 D
  1. .S BPCSDATE="1/1/1980"
  1. .D DT^DILF("",BPCSDATE,.BPCSDAT)
  1. D DT^DILF("",BPCEDATE,.BPCEDAT)
  1. I BPCEDAT=-1 D
  1. .S BPCEDATE="T"
  1. .D DT^DILF("",BPCEDATE,.BPCEDAT)
  1. S BPCC=0,BPCX=0,BPCLIM=$S(BPCVWOPT="0":BPCVWNO,1:99999)
  1. F S BPCX=$O(^AUPNVSIT("AA",BPCPIEN,BPCX)) Q:'BPCX D Q:BPCC=BPCLIM
  1. .S BPCVIEN=""
  1. .F S BPCVIEN=$O(^AUPNVSIT("AA",BPCPIEN,BPCX,BPCVIEN)) Q:'BPCVIEN D Q:BPCC=BPCLIM
  1. ..S BPCDTA=^AUPNVSIT(BPCVIEN,0),BPCCKD=$P($P(BPCDTA,U,1),".",1)
  1. ..Q:BPCCKD=""!(BPCCKD<BPCSDAT)!(BPCCKD>BPCEDAT)
  1. ..S BPCC=BPCC+1,BPCPVIEN=0
  1. ..F S BPCPVIEN=$O(^AUPNVMIC("AD",BPCVIEN,BPCPVIEN)) Q:'BPCPVIEN D
  1. ...D MIC2
  1. S BPCJ=$J,BPCMI="MICRO",BPCU=",",BPCZ=")",BPCQ=$C(34) S BPCX="^TMP("_BPCJ_BPCU_BPCQ_BPCMI_BPCQ_BPCZ
  1. F S BPCX=$Q(@BPCX) Q:BPCX'[("^TMP("_BPCJ_BPCU_BPCQ_BPCMI_BPCQ_BPCU) S BPCPVIEN=@BPCX S BGUSUB(1)=BPCPVIEN D FIELDS^BGULIST
  1. Q
  1. MIC2 ;SORT BY PARENT
  1. S BPCPARNT=$S($P($G(^AUPNVMIC(BPCPVIEN,12)),U,8)>0:$P($G(^AUPNVMIC(BPCPVIEN,12)),U,8),1:0)
  1. S BPCACCN=$S($L($P($G(^AUPNVMIC(BPCPVIEN,0)),U,6))>0:$P($G(^AUPNVMIC(BPCPVIEN,0)),U,6),1:0)
  1. S BPCORGSM=$S($P($G(^AUPNVMIC(BPCPVIEN,0)),U,4)>0:$P($G(^AUPNVMIC(BPCPVIEN,0)),U,4),1:0) S:BPCORGSM BPCORGSM=$P($G(^LAB(61.2,BPCORGSM,0)),U,1)
  1. S BPCANTIB=$S($P($G(^AUPNVMIC(BPCPVIEN,0)),U,5)>0:$P($G(^AUPNVMIC(BPCPVIEN,0)),U,5),1:0) S:BPCANTIB BPCANTIB=$P($G(^LAB(62.06,BPCANTIB,0)),U,1)
  1. S ^TMP($J,"MICRO",BPCVIEN,BPCACCN,BPCPARNT,BPCORGSM,BPCANTIB,BPCPVIEN)=BPCPVIEN
  1. Q
  1. PCCMED ; Get PRESCRIPTION PCC DATA
  1. ;
  1. K ^TMP($J)
  1. I '$D(BGUDRIVR) D Q
  1. .S BGUDRIVR="PCCMED^BPCSC1",BGUCRFS="",BPCPIEN=BGUBEGIN
  1. .S BPCSDATE=$P(BGUEND,"`",1),BPCEDATE=$P(BGUEND,"`",2)
  1. .S BPCVWNO=$P(BGUEND,"`",3),BPCLBONL=$P(BGUEND,"`",4)
  1. .S BPCVWOPT=$P(BGUEND,"`",5),BGUMAX=$S('BPCVWOPT:BPCVWNO,1:32000)
  1. .S (BGUBEGIN,BGUEND)=""
  1. Q:BPCPIEN=""
  1. S BPCVWOPT="2"
  1. D PCCMED1
  1. Q
  1. PCCMED1 ;
  1. S:'(+BPCVWNO) BPCVWNO=10 S:BPCSDATE="" BPCSDATE="1/1/1980"
  1. S:BPCEDATE="" BPCEDATE="T" S:BPCVWOPT="" BPCVWOPT="0"
  1. S:BPCLBONL="" BPCLBONL="1"
  1. D DT^DILF("",BPCSDATE,.BPCSDAT)
  1. I BPCSDAT=-1 D
  1. .S BPCSDATE="1/1/1980"
  1. .D DT^DILF("",BPCSDATE,.BPCSDAT)
  1. D DT^DILF("",BPCEDATE,.BPCEDAT)
  1. I BPCEDAT=-1 D
  1. .S BPCEDATE="T"
  1. .D DT^DILF("",BPCEDATE,.BPCEDAT)
  1. S BPCC=0,BPCX=0,BPCLIM=$S(BPCVWOPT="0":BPCVWNO,1:99999)
  1. F S BPCX=$O(^AUPNVSIT("AA",BPCPIEN,BPCX)) Q:'BPCX D Q:BPCC=BPCLIM
  1. .S BPCVIEN=""
  1. .F S BPCVIEN=$O(^AUPNVSIT("AA",BPCPIEN,BPCX,BPCVIEN)) Q:'BPCVIEN D Q:BPCC=BPCLIM
  1. ..S BPCDTA=^AUPNVSIT(BPCVIEN,0),BPCCKD=$P($P(BPCDTA,U,1),".",1)
  1. ..Q:BPCCKD=""!(BPCCKD<BPCSDAT)!(BPCCKD>BPCEDAT)
  1. ..S BPCC=BPCC+1,BPCPVIEN=0
  1. ..F S BPCPVIEN=$O(^AUPNVMED("AD",BPCVIEN,BPCPVIEN)) Q:'BPCPVIEN D
  1. ...D PCCMED2
  1. S BPCJ=$J,BPCPMED="PCCMED",BPCU=",",BPCZ=")",BPCQ=$C(34) S BPCX="^TMP("_BPCJ_BPCU_BPCQ_BPCPMED_BPCQ_BPCZ
  1. F S BPCX=$Q(@BPCX) Q:BPCX'[("^TMP("_BPCJ_BPCU_BPCQ_BPCPMED_BPCQ_BPCU) S BPCPVIEN=@BPCX S BGUSUB(1)=BPCPVIEN D FIELDS^BGULIST
  1. Q
  1. PCCMED2 ;SORT BY INVERSE VISIT DATE
  1. S BPCIDT=$S(BPCCKD>2700000:9999999-BPCCKD,1:9999999)
  1. S BPCMED=$S($P($G(^AUPNVMED(BPCPVIEN,0)),U,1)>0:$P($G(^AUPNVMED(BPCPVIEN,0)),U,1),1:0) S:+BPCMED BPCMED=$P($G(^PSDRUG(BPCMED,0)),U,1) S:'BPCMED BPCMED=0
  1. S ^TMP($J,"PCCMED",BPCIDT,BPCVIEN,BPCMED,BPCPVIEN)=BPCPVIEN
  1. Q
  1. MEDP I '$D(BGUDRIVR) D Q
  1. .S BGUDRIVR="MEDP^BPCSC1",BGUCRFS="",BPCPIEN=BGUBEGIN
  1. .S BPCSDATE=$P(BGUEND,"`",1),BPCEDATE=$P(BGUEND,"`",2)
  1. .S BPCVWNO=$P(BGUEND,"`",3),BPCLBONL=$P(BGUEND,"`",4)
  1. .S BPCVWOPT=$P(BGUEND,"`",5),BGUMAX=$S('BPCVWOPT:BPCVWNO,1:32000)
  1. .S (BGUBEGIN,BGUEND)=""
  1. Q:BPCPIEN=""
  1. S BPCVWOPT="2"
  1. D MEDP1
  1. Q
  1. ;
  1. MEDP1 ;
  1. S:'(+BPCVWNO) BPCVWNO=10 S:BPCSDATE="" BPCSDATE="1/1/1980"
  1. S:BPCEDATE="" BPCEDATE="T" S:BPCVWOPT="" BPCVWOPT="0"
  1. S:BPCLBONL="" BPCLBONL="1"
  1. D DT^DILF("",BPCSDATE,.BPCSDAT)
  1. I BPCSDAT=-1 D
  1. .S BPCSDATE="1/1/1980"
  1. .D DT^DILF("",BPCSDATE,.BPCSDAT)
  1. D DT^DILF("",BPCEDATE,.BPCEDAT)
  1. I BPCEDAT=-1 D
  1. .S BPCEDATE="T"
  1. .D DT^DILF("",BPCEDATE,.BPCEDAT)
  1. S BPCC=0,BPCX=0,BPCLIM=$S(BPCVWOPT="0":BPCVWNO,1:99999)
  1. F S BPCX=$O(^AUPNVSIT("AA",BPCPIEN,BPCX)) Q:BPCX="" D Q:BPCC=BPCLIM
  1. .S BPCVIEN=""
  1. .F S BPCVIEN=$O(^AUPNVSIT("AA",BPCPIEN,BPCX,BPCVIEN)) Q:BPCVIEN="" D Q:BPCC=BPCLIM
  1. ..S BPCDTA=^AUPNVSIT(BPCVIEN,0),BPCCKD=$P($P(BPCDTA,U,1),".",1)
  1. ..Q:BPCCKD=""!(BPCCKD<BPCSDAT)!(BPCCKD>BPCEDAT)
  1. ..S BPCC=BPCC+1,BPCPMIEN=0
  1. ..F S BPCPMIEN=$O(^AUPNVMED("AD",BPCVIEN,BPCPMIEN)) Q:BPCPMIEN="" D
  1. ...S BPCSTAT=-1
  1. ...I $D(^PSRX("APCC",BPCPMIEN)) D
  1. ....S BPCRXIEN=$O(^PSRX("APCC",BPCPMIEN,"")) Q:BPCRXIEN=""
  1. ....S BPCCK=$O(^PSRX("APCC",BPCPMIEN,BPCRXIEN,""))
  1. ....I BPCCK'="" S BPCSTAT=-1 Q
  1. ....S BPCSTAT=$P(^PSRX(BPCRXIEN,0),"^",15) S:BPCSTAT="" BPCSTAT=-1
  1. ....;I BPCSTAT=0 D MEDP2
  1. ...I BPCSTAT=0 S BGUSUB(1)=BPCPMIEN D FIELDS^BGULIST
  1. Q
  1. MEDP2 ;
  1. N DYS,RFLS,ISUDAT,CKDT
  1. S BPCSTAT=-1,BPCRX0=$G(^PSRX(BPCRXIEN,0)) Q:BPCRX0=""
  1. S BPCRX2=$G(^PSRX(BPCRXIEN,2))
  1. S DYS=$P(BPCRX0,U,8),RFLS=$P(BPCRX0,U,9),ISUDAT=$P(BPCRX0,U,13)
  1. S X2=DYS*RFLS,X2=$S(DYS=X2:X2,X2<181:184,X2=360:366,1:X2)
  1. D:ISUDAT'=""
  1. .S X1=ISUDAT D C^%DTC S CKDT=$P(X,".",1)
  1. .S X="T" D ^%DT I CKDT'<Y S BPCSTAT=0
  1. Q
  1. PAT ; Get PATIENT Data
  1. ; Set BGUCRFS1 to the cross-reference to be used for lookup.
  1. ; If the file is not the same as the primary file, prefix BGUCRFS1
  1. ; with the file number or name followed by a semicolan and then the
  1. ; cross-reference node.
  1. ;
  1. S BPCDUZ2=DUZ(2),BGUCRFS1="B"
  1. I BGUBEGIN?9N S BGUCRFS1="VA PATIENT;SSN" Q
  1. I BGUBEGIN?1.6N S BGUCRFS1="PATIENT;D" Q
  1. I BGUBEGIN?1A4N S BGUCRFS1="VA PATIENT;BS5" Q
  1. I BGUBEGIN?1.2N1"/"1.2N1"/"2.4N S X=BGUBEGIN D ^%DT S (BGUBEGIN,BGUEND)=Y,BGUCRFS1="VA PATIENT;ADOB" Q
  1. Q
  1. RXMED ; Get PRESCRIPTION RX DATA
  1. ;
  1. K ^TMP($J)
  1. I '$D(BGUDRIVR) D Q
  1. .S BGUDRIVR="RXMED^BPCSC1",BGUCRFS="",BPCPIEN=BGUBEGIN
  1. .S BPCSDATE=$P(BGUEND,"`",1),BPCEDATE=$P(BGUEND,"`",2)
  1. .S BPCVWNO=$P(BGUEND,"`",3),BPCLBONL=$P(BGUEND,"`",4)
  1. .S BPCVWOPT=$P(BGUEND,"`",5),BGUMAX=$S('BPCVWOPT:BPCVWNO,1:32000)
  1. .S (BGUBEGIN,BGUEND)=""
  1. Q:BPCPIEN=""
  1. S BPCVWOPT="2"
  1. D RXMED1
  1. Q
  1. RXMED1 ;
  1. S:'(+BPCVWNO) BPCVWNO=10 S:BPCSDATE="" BPCSDATE="1/1/1980"
  1. S:BPCEDATE="" BPCEDATE="T" S:BPCVWOPT="" BPCVWOPT="0"
  1. S:BPCLBONL="" BPCLBONL="1"
  1. D DT^DILF("",BPCSDATE,.BPCSDAT)
  1. I BPCSDAT=-1 D
  1. .S BPCSDATE="1/1/1980"
  1. .D DT^DILF("",BPCSDATE,.BPCSDAT)
  1. D DT^DILF("",BPCEDATE,.BPCEDAT)
  1. I BPCEDAT=-1 D
  1. .S BPCEDATE="T"
  1. .D DT^DILF("",BPCEDATE,.BPCEDAT)
  1. S BPCC=0,BPCX=0,BPCLIM=$S(BPCVWOPT="0":BPCVWNO,1:99999)
  1. S ^FJBGU(1)=BPCPIEN
  1. F S BPCX=$O(^PS(55,BPCPIEN,"P",BPCX)) Q:'BPCX D Q:BPCC=BPCLIM
  1. .S BPCVIEN=$P($G(^PS(55,BPCPIEN,"P",BPCX,0)),U,1) Q:+BPCVIEN=0
  1. .S ^FJBGU(1,BPCX)=BPCVIEN
  1. .S BPCRX0=$G(^PSRX(BPCVIEN,0))
  1. .S BPCRX2=$G(^PSRX(BPCVIEN,2))
  1. .S ^FJBGU(BPCVIEN)=BPCRX2
  1. .S BPCCKD=$P($P(BPCRX2,U,1),".",1)
  1. .Q:BPCCKD=""!(BPCCKD<BPCSDAT)!(BPCCKD>BPCEDAT)
  1. .S BGUSUB(1)=BPCVIEN D FIELDS^BGULIST
  1. Q