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

AMHSC1.m

Go to the documentation of this file.
  1. AMHSC1 ; IHS/CMI/LAB - SPECIAL X-REF ROUTINES - ;
  1. ;;4.0;IHS BEHAVIORAL HEALTH;;MAY 14, 2010
  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^AMHSC1",BGUCRFS="",AMHPIEN=BGUBEGIN
  1. .S AMHSDATE=$P(BGUEND,"`",1),AMHEDATE=$P(BGUEND,"`",2)
  1. .S AMHVWNO=$P(BGUEND,"`",3),AMHLBONL=$P(BGUEND,"`",4)
  1. .S AMHVWOPT=$P(BGUEND,"`",5),BGUMAX=$S('AMHVWOPT:AMHVWNO,1:32000)
  1. .S (BGUBEGIN,BGUEND)=""
  1. Q:AMHPIEN=""
  1. S AMHVWOPT="2"
  1. D MED1
  1. Q
  1. ;
  1. MED1 ;
  1. S:'(+AMHVWNO) AMHVWNO=10 S:AMHSDATE="" AMHSDATE="1/1/1980"
  1. S:AMHEDATE="" AMHEDATE="T" S:AMHVWOPT="" AMHVWOPT="0"
  1. S:AMHLBONL="" AMHLBONL="1"
  1. D DT^DILF("",AMHSDATE,.AMHSDAT)
  1. I AMHSDAT=-1 D
  1. .S AMHSDATE="1/1/1980"
  1. .D DT^DILF("",AMHSDATE,.AMHSDAT)
  1. D DT^DILF("",AMHEDATE,.AMHEDAT)
  1. I AMHEDAT=-1 D
  1. .S AMHEDATE="T"
  1. .D DT^DILF("",AMHEDATE,.AMHEDAT)
  1. S AMHC=0,AMHX=0,AMHLIM=$S(AMHVWOPT="0":AMHVWNO,1:99999)
  1. F S AMHX=$O(^AUPNVSIT("AA",AMHPIEN,AMHX)) Q:AMHX="" D Q:AMHC=AMHLIM
  1. .S AMHVIEN=""
  1. .F S AMHVIEN=$O(^AUPNVSIT("AA",AMHPIEN,AMHX,AMHVIEN)) Q:AMHVIEN="" D Q:AMHC=AMHLIM
  1. ..S AMHDTA=^AUPNVSIT(AMHVIEN,0),AMHCKD=$P($P(AMHDTA,U,1),".",1)
  1. ..Q:AMHCKD=""!(AMHCKD<AMHSDAT)!(AMHCKD>AMHEDAT)
  1. ..S AMHC=AMHC+1,AMHPMIEN=0
  1. ..F S AMHPMIEN=$O(^AUPNVMED("AD",AMHVIEN,AMHPMIEN)) Q:AMHPMIEN="" D
  1. ...S AMHSTAT=-1
  1. ...I $D(^PSRX("APCC",AMHPMIEN)) D
  1. ....S AMHRXIEN=$O(^PSRX("APCC",AMHPMIEN,"")) Q:AMHRXIEN=""
  1. ....S AMHCK=$O(^PSRX("APCC",AMHPMIEN,AMHRXIEN,""))
  1. ....I AMHCK'="" S AMHSTAT=-1 Q
  1. ....S AMHSTAT=$P(^PSRX(AMHRXIEN,0),"^",15) S:AMHSTAT="" AMHSTAT=-1
  1. ....;I AMHSTAT=0 D MED2
  1. ...I AMHSTAT=0 S BGUSUB(1)=AMHPMIEN D FIELDS^BGULIST
  1. Q
  1. MED2 ;
  1. N DYS,RFLS,ISUDAT,CKDT
  1. S AMHSTAT=-1,AMHRX0=$G(^PSRX(AMHRXIEN,0)) Q:AMHRX0=""
  1. S AMHRX2=$G(^PSRX(AMHRXIEN,2))
  1. S DYS=$P(AMHRX0,U,8),RFLS=$P(AMHRX0,U,9),ISUDAT=$P(AMHRX0,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 AMHSTAT=0
  1. Q
  1. POV ; Get purpose of visits
  1. ;
  1. I '$D(BGUDRIVR) D Q
  1. .S BGUDRIVR="POV^AMHSC1",BGUCRFS="",AMHPIEN=BGUBEGIN
  1. .S AMHSDATE=$P(BGUEND,"`",1),AMHEDATE=$P(BGUEND,"`",2)
  1. .S AMHVWNO=$P(BGUEND,"`",3),AMHLBONL=$P(BGUEND,"`",4)
  1. .S AMHVWOPT=$P(BGUEND,"`",5),BGUMAX=$S('AMHVWOPT:AMHVWNO,1:32000)
  1. .S (BGUBEGIN,BGUEND)=""
  1. Q:AMHPIEN=""
  1. S AMHVWOPT="2"
  1. D POV1
  1. Q
  1. POV1 ;
  1. S:'(+AMHVWNO) AMHVWNO=10 S:AMHSDATE="" AMHSDATE="1/1/1980"
  1. S:AMHEDATE="" AMHEDATE="T" S:AMHVWOPT="" AMHVWOPT="0"
  1. S:AMHLBONL="" AMHLBONL="1"
  1. D DT^DILF("",AMHSDATE,.AMHSDAT)
  1. I AMHSDAT=-1 D
  1. .S AMHSDATE="1/1/1980"
  1. .D DT^DILF("",AMHSDATE,.AMHSDAT)
  1. D DT^DILF("",AMHEDATE,.AMHEDAT)
  1. I AMHEDAT=-1 D
  1. .S AMHEDATE="T"
  1. .D DT^DILF("",AMHEDATE,.AMHEDAT)
  1. S AMHC=0,AMHX=0,AMHLIM=$S(AMHVWOPT="0":AMHVWNO,1:99999)
  1. F S AMHX=$O(^AUPNVSIT("AA",AMHPIEN,AMHX)) Q:AMHX="" D Q:AMHC=AMHLIM
  1. .S AMHVIEN=""
  1. .F S AMHVIEN=$O(^AUPNVSIT("AA",AMHPIEN,AMHX,AMHVIEN)) Q:AMHVIEN="" D Q:AMHC=AMHLIM
  1. ..S AMHDTA=^AUPNVSIT(AMHVIEN,0),AMHCKD=$P($P(AMHDTA,U,1),".",1)
  1. ..Q:AMHCKD=""!(AMHCKD<AMHSDAT)!(AMHCKD>AMHEDAT)
  1. ..S AMHC=AMHC+1,AMHPVIEN=0
  1. ..F S AMHPVIEN=$O(^AUPNVPOV("AD",AMHVIEN,AMHPVIEN)) Q:AMHPVIEN="" D
  1. ...S BGUSUB(1)=AMHPVIEN D FIELDS^BGULIST
  1. Q
  1. MEAS ;
  1. I '$D(BGUDRIVR) D Q
  1. .S BGUDRIVR="MEAS^AMHSC1",BGUCRFS="",AMHPIEN=BGUBEGIN
  1. .S AMHSDATE=$P(BGUEND,"`",1),AMHEDATE=$P(BGUEND,"`",2)
  1. .S AMHVWNO=$P(BGUEND,"`",3),AMHLBONL=$P(BGUEND,"`",4)
  1. .S AMHVWOPT=$P(BGUEND,"`",5),BGUMAX=$S('AMHVWOPT:AMHVWNO,1:32000)
  1. .S (BGUBEGIN,BGUEND)=""
  1. Q:AMHPIEN=""
  1. S AMHVWOPT="2"
  1. D MEAS1
  1. Q
  1. MEAS1 ;
  1. S:'(+AMHVWNO) AMHVWNO=10 S:AMHSDATE="" AMHSDATE="1/1/1980"
  1. S:AMHEDATE="" AMHEDATE="T" S:AMHVWOPT="" AMHVWOPT="0"
  1. S:AMHLBONL="" AMHLBONL="1"
  1. D DT^DILF("",AMHSDATE,.AMHSDAT)
  1. I AMHSDAT=-1 D
  1. .S AMHSDATE="1/1/1980"
  1. .D DT^DILF("",AMHSDATE,.AMHSDAT)
  1. D DT^DILF("",AMHEDATE,.AMHEDAT)
  1. I AMHEDAT=-1 D
  1. .S AMHEDATE="T"
  1. .D DT^DILF("",AMHEDATE,.AMHEDAT)
  1. S AMHC=0,AMHX=0,AMHLIM=$S(AMHVWOPT="0":AMHVWNO,1:99999)
  1. F S AMHX=$O(^AUPNVSIT("AA",AMHPIEN,AMHX)) Q:AMHX="" D Q:AMHC=AMHLIM
  1. .S AMHVIEN=""
  1. .F S AMHVIEN=$O(^AUPNVSIT("AA",AMHPIEN,AMHX,AMHVIEN)) Q:AMHVIEN="" D Q:AMHC=AMHLIM
  1. ..S AMHDTA=^AUPNVSIT(AMHVIEN,0),AMHCKD=$P($P(AMHDTA,U,1),".",1)
  1. ..Q:AMHCKD=""!(AMHCKD<AMHSDAT)!(AMHCKD>AMHEDAT)
  1. ..;Q:'$D(^AUPNVMSR("AD",AMHVIEN))
  1. ..S AMHC=AMHC+1,AMHMVIEN=0
  1. ..F S AMHMVIEN=$O(^AUPNVMSR("AD",AMHVIEN,AMHMVIEN)) Q:AMHMVIEN="" D
  1. ...S BGUSUB(1)=AMHMVIEN D FIELDS^BGULIST
  1. Q
  1. EDP ; Get EDUCATION PROTOCOLS
  1. ;
  1. I '$D(BGUDRIVR) D Q
  1. .S BGUDRIVR="EDP^AMHSC1",BGUCRFS="",AMHPIEN=BGUBEGIN
  1. .S AMHSDATE=$P(BGUEND,"`",1),AMHEDATE=$P(BGUEND,"`",2)
  1. .S AMHVWNO=$P(BGUEND,"`",3),AMHLBONL=$P(BGUEND,"`",4)
  1. .S AMHVWOPT=$P(BGUEND,"`",5),BGUMAX=$S('AMHVWOPT:AMHVWNO,1:32000)
  1. .S (BGUBEGIN,BGUEND)=""
  1. Q:AMHPIEN=""
  1. S AMHVWOPT="2"
  1. D EDP1
  1. Q
  1. EDP1 ;
  1. S:'(+AMHVWNO) AMHVWNO=10 S:AMHSDATE="" AMHSDATE="1/1/1980"
  1. S:AMHEDATE="" AMHEDATE="T" S:AMHVWOPT="" AMHVWOPT="0"
  1. S:AMHLBONL="" AMHLBONL="1"
  1. D DT^DILF("",AMHSDATE,.AMHSDAT)
  1. I AMHSDAT=-1 D
  1. .S AMHSDATE="1/1/1980"
  1. .D DT^DILF("",AMHSDATE,.AMHSDAT)
  1. D DT^DILF("",AMHEDATE,.AMHEDAT)
  1. I AMHEDAT=-1 D
  1. .S AMHEDATE="T"
  1. .D DT^DILF("",AMHEDATE,.AMHEDAT)
  1. S AMHC=0,AMHX=0,AMHLIM=$S(AMHVWOPT="0":AMHVWNO,1:99999)
  1. F S AMHX=$O(^AUPNVSIT("AA",AMHPIEN,AMHX)) Q:'AMHX D Q:AMHC=AMHLIM
  1. .S AMHVIEN=""
  1. .F S AMHVIEN=$O(^AUPNVSIT("AA",AMHPIEN,AMHX,AMHVIEN)) Q:'AMHVIEN D Q:AMHC=AMHLIM
  1. ..S AMHDTA=^AUPNVSIT(AMHVIEN,0),AMHCKD=$P($P(AMHDTA,U,1),".",1)
  1. ..Q:AMHCKD=""!(AMHCKD<AMHSDAT)!(AMHCKD>AMHEDAT)
  1. ..S AMHC=AMHC+1,AMHPVIEN=0
  1. ..F S AMHPVIEN=$O(^AUPNVPED("AD",AMHVIEN,AMHPVIEN)) Q:'AMHPVIEN D
  1. ...S BGUSUB(1)=AMHPVIEN D FIELDS^BGULIST
  1. Q
  1. RAD ; Get RADIOLOGY PCC data
  1. ;
  1. I '$D(BGUDRIVR) D Q
  1. .S BGUDRIVR="RAD^AMHSC1",BGUCRFS="",AMHPIEN=BGUBEGIN
  1. .S AMHSDATE=$P(BGUEND,"`",1),AMHEDATE=$P(BGUEND,"`",2)
  1. .S AMHVWNO=$P(BGUEND,"`",3),AMHLBONL=$P(BGUEND,"`",4)
  1. .S AMHVWOPT=$P(BGUEND,"`",5),BGUMAX=$S('AMHVWOPT:AMHVWNO,1:32000)
  1. .S (BGUBEGIN,BGUEND)=""
  1. Q:AMHPIEN=""
  1. S AMHVWOPT="2"
  1. D RAD1
  1. Q
  1. RAD1 ;
  1. S:'(+AMHVWNO) AMHVWNO=10 S:AMHSDATE="" AMHSDATE="1/1/1980"
  1. S:AMHEDATE="" AMHEDATE="T" S:AMHVWOPT="" AMHVWOPT="0"
  1. S:AMHLBONL="" AMHLBONL="1"
  1. D DT^DILF("",AMHSDATE,.AMHSDAT)
  1. I AMHSDAT=-1 D
  1. .S AMHSDATE="1/1/1980"
  1. .D DT^DILF("",AMHSDATE,.AMHSDAT)
  1. D DT^DILF("",AMHEDATE,.AMHEDAT)
  1. I AMHEDAT=-1 D
  1. .S AMHEDATE="T"
  1. .D DT^DILF("",AMHEDATE,.AMHEDAT)
  1. S AMHC=0,AMHX=0,AMHLIM=$S(AMHVWOPT="0":AMHVWNO,1:99999)
  1. F S AMHX=$O(^AUPNVSIT("AA",AMHPIEN,AMHX)) Q:'AMHX D Q:AMHC=AMHLIM
  1. .S AMHVIEN=""
  1. .F S AMHVIEN=$O(^AUPNVSIT("AA",AMHPIEN,AMHX,AMHVIEN)) Q:'AMHVIEN D Q:AMHC=AMHLIM
  1. ..S AMHDTA=^AUPNVSIT(AMHVIEN,0),AMHCKD=$P($P(AMHDTA,U,1),".",1)
  1. ..Q:AMHCKD=""!(AMHCKD<AMHSDAT)!(AMHCKD>AMHEDAT)
  1. ..S AMHC=AMHC+1,AMHPVIEN=0
  1. ..F S AMHPVIEN=$O(^AUPNVRAD("AD",AMHVIEN,AMHPVIEN)) Q:'AMHPVIEN D
  1. ...S BGUSUB(1)=AMHPVIEN 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^AMHSC1",BGUCRFS="",AMHPIEN=BGUBEGIN
  1. .S AMHSDATE=$P(BGUEND,"`",1),AMHEDATE=$P(BGUEND,"`",2)
  1. .S AMHVWNO=$P(BGUEND,"`",3),AMHLBONL=$P(BGUEND,"`",4)
  1. .S AMHVWOPT=$P(BGUEND,"`",5),BGUMAX=$S('AMHVWOPT:AMHVWNO,1:32000)
  1. .S (BGUBEGIN,BGUEND)=""
  1. Q:AMHPIEN=""
  1. S AMHVWOPT="2"
  1. D MIC1
  1. Q
  1. MIC1 ;
  1. S:'(+AMHVWNO) AMHVWNO=10 S:AMHSDATE="" AMHSDATE="1/1/1980"
  1. S:AMHEDATE="" AMHEDATE="T" S:AMHVWOPT="" AMHVWOPT="0"
  1. S:AMHLBONL="" AMHLBONL="1"
  1. D DT^DILF("",AMHSDATE,.AMHSDAT)
  1. I AMHSDAT=-1 D
  1. .S AMHSDATE="1/1/1980"
  1. .D DT^DILF("",AMHSDATE,.AMHSDAT)
  1. D DT^DILF("",AMHEDATE,.AMHEDAT)
  1. I AMHEDAT=-1 D
  1. .S AMHEDATE="T"
  1. .D DT^DILF("",AMHEDATE,.AMHEDAT)
  1. S AMHC=0,AMHX=0,AMHLIM=$S(AMHVWOPT="0":AMHVWNO,1:99999)
  1. F S AMHX=$O(^AUPNVSIT("AA",AMHPIEN,AMHX)) Q:'AMHX D Q:AMHC=AMHLIM
  1. .S AMHVIEN=""
  1. .F S AMHVIEN=$O(^AUPNVSIT("AA",AMHPIEN,AMHX,AMHVIEN)) Q:'AMHVIEN D Q:AMHC=AMHLIM
  1. ..S AMHDTA=^AUPNVSIT(AMHVIEN,0),AMHCKD=$P($P(AMHDTA,U,1),".",1)
  1. ..Q:AMHCKD=""!(AMHCKD<AMHSDAT)!(AMHCKD>AMHEDAT)
  1. ..S AMHC=AMHC+1,AMHPVIEN=0
  1. ..F S AMHPVIEN=$O(^AUPNVMIC("AD",AMHVIEN,AMHPVIEN)) Q:'AMHPVIEN D
  1. ...D MIC2
  1. S AMHJ=$J,AMHMI="MICRO",AMHU=",",AMHZ=")",AMHQ=$C(34) S AMHX="^TMP("_AMHJ_AMHU_AMHQ_AMHMI_AMHQ_AMHZ
  1. F S AMHX=$Q(@AMHX) Q:AMHX'[("^TMP("_AMHJ_AMHU_AMHQ_AMHMI_AMHQ_AMHU) S AMHPVIEN=@AMHX S BGUSUB(1)=AMHPVIEN D FIELDS^BGULIST
  1. Q
  1. MIC2 ;SORT BY PARENT
  1. S AMHPARNT=$S($P($G(^AUPNVMIC(AMHPVIEN,12)),U,8)>0:$P($G(^AUPNVMIC(AMHPVIEN,12)),U,8),1:0)
  1. S AMHACCN=$S($L($P($G(^AUPNVMIC(AMHPVIEN,0)),U,6))>0:$P($G(^AUPNVMIC(AMHPVIEN,0)),U,6),1:0)
  1. S AMHORGSM=$S($P($G(^AUPNVMIC(AMHPVIEN,0)),U,4)>0:$P($G(^AUPNVMIC(AMHPVIEN,0)),U,4),1:0) S:AMHORGSM AMHORGSM=$P($G(^LAB(61.2,AMHORGSM,0)),U,1)
  1. S AMHANTIB=$S($P($G(^AUPNVMIC(AMHPVIEN,0)),U,5)>0:$P($G(^AUPNVMIC(AMHPVIEN,0)),U,5),1:0) S:AMHANTIB AMHANTIB=$P($G(^LAB(62.06,AMHANTIB,0)),U,1)
  1. S ^TMP($J,"MICRO",AMHVIEN,AMHACCN,AMHPARNT,AMHORGSM,AMHANTIB,AMHPVIEN)=AMHPVIEN
  1. Q
  1. PCCMED ; Get PRESCRIPTION PCC DATA
  1. ;
  1. K ^TMP($J)
  1. I '$D(BGUDRIVR) D Q
  1. .S BGUDRIVR="PCCMED^AMHSC1",BGUCRFS="",AMHPIEN=BGUBEGIN
  1. .S AMHSDATE=$P(BGUEND,"`",1),AMHEDATE=$P(BGUEND,"`",2)
  1. .S AMHVWNO=$P(BGUEND,"`",3),AMHLBONL=$P(BGUEND,"`",4)
  1. .S AMHVWOPT=$P(BGUEND,"`",5),BGUMAX=$S('AMHVWOPT:AMHVWNO,1:32000)
  1. .S (BGUBEGIN,BGUEND)=""
  1. Q:AMHPIEN=""
  1. S AMHVWOPT="2"
  1. D PCCMED1
  1. Q
  1. PCCMED1 ;
  1. S:'(+AMHVWNO) AMHVWNO=10 S:AMHSDATE="" AMHSDATE="1/1/1980"
  1. S:AMHEDATE="" AMHEDATE="T" S:AMHVWOPT="" AMHVWOPT="0"
  1. S:AMHLBONL="" AMHLBONL="1"
  1. D DT^DILF("",AMHSDATE,.AMHSDAT)
  1. I AMHSDAT=-1 D
  1. .S AMHSDATE="1/1/1980"
  1. .D DT^DILF("",AMHSDATE,.AMHSDAT)
  1. D DT^DILF("",AMHEDATE,.AMHEDAT)
  1. I AMHEDAT=-1 D
  1. .S AMHEDATE="T"
  1. .D DT^DILF("",AMHEDATE,.AMHEDAT)
  1. S AMHC=0,AMHX=0,AMHLIM=$S(AMHVWOPT="0":AMHVWNO,1:99999)
  1. F S AMHX=$O(^AUPNVSIT("AA",AMHPIEN,AMHX)) Q:'AMHX D Q:AMHC=AMHLIM
  1. .S AMHVIEN=""
  1. .F S AMHVIEN=$O(^AUPNVSIT("AA",AMHPIEN,AMHX,AMHVIEN)) Q:'AMHVIEN D Q:AMHC=AMHLIM
  1. ..S AMHDTA=^AUPNVSIT(AMHVIEN,0),AMHCKD=$P($P(AMHDTA,U,1),".",1)
  1. ..Q:AMHCKD=""!(AMHCKD<AMHSDAT)!(AMHCKD>AMHEDAT)
  1. ..S AMHC=AMHC+1,AMHPVIEN=0
  1. ..F S AMHPVIEN=$O(^AUPNVMED("AD",AMHVIEN,AMHPVIEN)) Q:'AMHPVIEN D
  1. ...D PCCMED2
  1. S AMHJ=$J,AMHPMED="PCCMED",AMHU=",",AMHZ=")",AMHQ=$C(34) S AMHX="^TMP("_AMHJ_AMHU_AMHQ_AMHPMED_AMHQ_AMHZ
  1. F S AMHX=$Q(@AMHX) Q:AMHX'[("^TMP("_AMHJ_AMHU_AMHQ_AMHPMED_AMHQ_AMHU) S AMHPVIEN=@AMHX S BGUSUB(1)=AMHPVIEN D FIELDS^BGULIST
  1. Q
  1. PCCMED2 ;SORT BY INVERSE VISIT DATE
  1. S AMHIDT=$S(AMHCKD>2700000:9999999-AMHCKD,1:9999999)
  1. S AMHMED=$S($P($G(^AUPNVMED(AMHPVIEN,0)),U,1)>0:$P($G(^AUPNVMED(AMHPVIEN,0)),U,1),1:0) S:+AMHMED AMHMED=$P($G(^PSDRUG(AMHMED,0)),U,1) S:'AMHMED AMHMED=0
  1. S ^TMP($J,"PCCMED",AMHIDT,AMHVIEN,AMHMED,AMHPVIEN)=AMHPVIEN
  1. Q
  1. MEDP I '$D(BGUDRIVR) D Q
  1. .S BGUDRIVR="MEDP^AMHSC1",BGUCRFS="",AMHPIEN=BGUBEGIN
  1. .S AMHSDATE=$P(BGUEND,"`",1),AMHEDATE=$P(BGUEND,"`",2)
  1. .S AMHVWNO=$P(BGUEND,"`",3),AMHLBONL=$P(BGUEND,"`",4)
  1. .S AMHVWOPT=$P(BGUEND,"`",5),BGUMAX=$S('AMHVWOPT:AMHVWNO,1:32000)
  1. .S (BGUBEGIN,BGUEND)=""
  1. Q:AMHPIEN=""
  1. S AMHVWOPT="2"
  1. D MEDP1
  1. Q
  1. ;
  1. MEDP1 ;
  1. S:'(+AMHVWNO) AMHVWNO=10 S:AMHSDATE="" AMHSDATE="1/1/1980"
  1. S:AMHEDATE="" AMHEDATE="T" S:AMHVWOPT="" AMHVWOPT="0"
  1. S:AMHLBONL="" AMHLBONL="1"
  1. D DT^DILF("",AMHSDATE,.AMHSDAT)
  1. I AMHSDAT=-1 D
  1. .S AMHSDATE="1/1/1980"
  1. .D DT^DILF("",AMHSDATE,.AMHSDAT)
  1. D DT^DILF("",AMHEDATE,.AMHEDAT)
  1. I AMHEDAT=-1 D
  1. .S AMHEDATE="T"
  1. .D DT^DILF("",AMHEDATE,.AMHEDAT)
  1. S AMHC=0,AMHX=0,AMHLIM=$S(AMHVWOPT="0":AMHVWNO,1:99999)
  1. F S AMHX=$O(^AUPNVSIT("AA",AMHPIEN,AMHX)) Q:AMHX="" D Q:AMHC=AMHLIM
  1. .S AMHVIEN=""
  1. .F S AMHVIEN=$O(^AUPNVSIT("AA",AMHPIEN,AMHX,AMHVIEN)) Q:AMHVIEN="" D Q:AMHC=AMHLIM
  1. ..S AMHDTA=^AUPNVSIT(AMHVIEN,0),AMHCKD=$P($P(AMHDTA,U,1),".",1)
  1. ..Q:AMHCKD=""!(AMHCKD<AMHSDAT)!(AMHCKD>AMHEDAT)
  1. ..S AMHC=AMHC+1,AMHPMIEN=0
  1. ..F S AMHPMIEN=$O(^AUPNVMED("AD",AMHVIEN,AMHPMIEN)) Q:AMHPMIEN="" D
  1. ...S AMHSTAT=-1
  1. ...I $D(^PSRX("APCC",AMHPMIEN)) D
  1. ....S AMHRXIEN=$O(^PSRX("APCC",AMHPMIEN,"")) Q:AMHRXIEN=""
  1. ....S AMHCK=$O(^PSRX("APCC",AMHPMIEN,AMHRXIEN,""))
  1. ....I AMHCK'="" S AMHSTAT=-1 Q
  1. ....S AMHSTAT=$P(^PSRX(AMHRXIEN,0),"^",15) S:AMHSTAT="" AMHSTAT=-1
  1. ....;I AMHSTAT=0 D MEDP2
  1. ...I AMHSTAT=0 S BGUSUB(1)=AMHPMIEN D FIELDS^BGULIST
  1. Q
  1. MEDP2 ;
  1. N DYS,RFLS,ISUDAT,CKDT
  1. S AMHSTAT=-1,AMHRX0=$G(^PSRX(AMHRXIEN,0)) Q:AMHRX0=""
  1. S AMHRX2=$G(^PSRX(AMHRXIEN,2))
  1. S DYS=$P(AMHRX0,U,8),RFLS=$P(AMHRX0,U,9),ISUDAT=$P(AMHRX0,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 AMHSTAT=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 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^AMHSC1",BGUCRFS="",AMHPIEN=BGUBEGIN
  1. .S AMHSDATE=$P(BGUEND,"`",1),AMHEDATE=$P(BGUEND,"`",2)
  1. .S AMHVWNO=$P(BGUEND,"`",3),AMHLBONL=$P(BGUEND,"`",4)
  1. .S AMHVWOPT=$P(BGUEND,"`",5),BGUMAX=$S('AMHVWOPT:AMHVWNO,1:32000)
  1. .S (BGUBEGIN,BGUEND)=""
  1. Q:AMHPIEN=""
  1. S AMHVWOPT="2"
  1. D RXMED1
  1. Q
  1. RXMED1 ;
  1. S:'(+AMHVWNO) AMHVWNO=10 S:AMHSDATE="" AMHSDATE="1/1/1980"
  1. S:AMHEDATE="" AMHEDATE="T" S:AMHVWOPT="" AMHVWOPT="0"
  1. S:AMHLBONL="" AMHLBONL="1"
  1. D DT^DILF("",AMHSDATE,.AMHSDAT)
  1. I AMHSDAT=-1 D
  1. .S AMHSDATE="1/1/1980"
  1. .D DT^DILF("",AMHSDATE,.AMHSDAT)
  1. D DT^DILF("",AMHEDATE,.AMHEDAT)
  1. I AMHEDAT=-1 D
  1. .S AMHEDATE="T"
  1. .D DT^DILF("",AMHEDATE,.AMHEDAT)
  1. S AMHC=0,AMHX=0,AMHLIM=$S(AMHVWOPT="0":AMHVWNO,1:99999)
  1. S ^FJBGU(1)=AMHPIEN
  1. F S AMHX=$O(^PS(55,AMHPIEN,"P",AMHX)) Q:'AMHX D Q:AMHC=AMHLIM
  1. .S AMHVIEN=$P($G(^PS(55,AMHPIEN,"P",AMHX,0)),U,1) Q:+AMHVIEN=0
  1. .S ^FJBGU(1,AMHX)=AMHVIEN
  1. .S AMHRX0=$G(^PSRX(AMHVIEN,0))
  1. .S AMHRX2=$G(^PSRX(AMHVIEN,2))
  1. .S ^FJBGU(AMHVIEN)=AMHRX2
  1. .S AMHCKD=$P($P(AMHRX2,U,1),".",1)
  1. .Q:AMHCKD=""!(AMHCKD<AMHSDAT)!(AMHCKD>AMHEDAT)
  1. .S BGUSUB(1)=AMHVIEN D FIELDS^BGULIST
  1. Q