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

AMHSC2.m

Go to the documentation of this file.
  1. AMHSC2 ; IHS/CMI/LAB - SPECIAL X-REF ROUTINES - ;
  1. ;;4.0;IHS BEHAVIORAL HEALTH;;MAY 14, 2010
  1. ;
  1. ; AMHGREF - Primary Global Reference
  1. ; AMHSBJGR - Subject Global Reference - Used if all of the entries are to be used under this node -- don't need to check a date
  1. ; AMHRVCRO - Reverse chronological date subscripted
  1. ;
  1. SETUP ;
  1. S BGUCRFS=""
  1. S AMHVWNO=$P(BGUEND,"`",2),AMHLBONL=$P(BGUEND,"`",3),AMHRVCRO=1
  1. S AMHVWOPT=$P(BGUEND,"`",4),BGUMAX=$S('AMHVWOPT:AMHVWNO,1:999999999)
  1. S (BGUBEGIN,BGUEND,AMHXLEVL)="",AMHC=0
  1. Q
  1. ;
  1. VISIT ;
  1. I AMHSBJGR="" S AMHC=AMHC+1,BGUSUB(1)=AMHVIEN,BGUV(BGUFILE,88888)=$$PRIMPROV^APCLV(AMHVIEN,"N") D FIELDS^BGULIST Q
  1. S AMHSIEN=0 F S AMHSIEN=$O(@AMHSBJGR@(AMHSIEN)) Q:'AMHSIEN S AMHC=AMHC+1,BGUSUB(1)=AMHSIEN,BGUV(BGUFILE,88888)=$$PRIMPROV^APCLV(AMHSIEN,"N") D FIELDS^BGULIST
  1. Q
  1. ;
  1. VSDTRNG ; Get visits for a patient for a date range
  1. S AMHGREF=$G(AMHGREF,"^AUPNVSIT(""AA"",AMHPIEN)")
  1. S AMHPIEN=$P(BGUBEGIN,"`"),BGUBEGIN=$P(BGUBEGIN,"`",2)
  1. D VSDTDR
  1. Q
  1. VSDTDR ;
  1. I '$D(BGUDRIVR) D Q
  1. .S BGUDRIVR="VSDTDR^AMHSC2",AMHSDATE=BGUBEGIN,AMHEDATE=$P(BGUEND,"`",1)
  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:999999)
  1. .D SETUP
  1. S AMHVWOPT="2",AMHSBJGR=$G(AMHSBJGR)
  1. D VSDTDR1,KILL
  1. Q
  1. VSDTDR1 ;
  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 S AMHSDATE="1/1/1980" D DT^DILF("",AMHSDATE,.AMHSDAT)
  1. D DT^DILF("",AMHEDATE,.AMHEDAT)
  1. I AMHEDAT=-1 S AMHEDATE="T" D DT^DILF("",AMHEDATE,.AMHEDAT)
  1. S AMHC=0,AMHX=0,AMHLIM=$S(AMHVWOPT="0":AMHVWNO,1:999999)
  1. I AMHRVCRO S AMHSDAT=9999999-AMHSDAT,AMHEDAT=9999999-AMHEDAT
  1. I AMHXLEVL'="" D @AMHXLEVL Q
  1. VSDTDR2 ;
  1. I AMHRVCRO D Q
  1. .S AMHX=$O(@AMHGREF@(AMHEDAT),-1) F S AMHX=$O(@AMHGREF@(AMHX)) Q:'AMHX Q:AMHX\1>AMHSDAT D Q:AMHC=AMHLIM
  1. ..S AMHVIEN=0 F S AMHVIEN=$O(@AMHGREF@(AMHX,AMHVIEN)) Q:'AMHVIEN Q:AMHC=AMHLIM D VISIT
  1. S AMHX=$O(@AMHGREF@(AMHSDAT),-1) F S AMHX=$O(@AMHGREF@(AMHX)) Q:'AMHX Q:AMHX\1>AMHEDAT D Q:AMHC=AMHLIM
  1. .S AMHVIEN=0 F S AMHVIEN=$O(@AMHGREF@(AMHX,AMHVIEN)) Q:'AMHVIEN Q:AMHC=AMHLIM D VISIT
  1. Q
  1. ;
  1. VED ; Get V PATIENT ED
  1. ;
  1. S AMHGREF="^AUPNVPED(""AA"",AMHPIEN)"
  1. D VSDTRNG
  1. Q
  1. ;
  1. VHF ; Get V HEALTH FACTORS
  1. S AMHGREF="^AUPNVHF(""AA"",AMHPIEN)",AMHXLEVL="VHF1"
  1. D VSDTRNG
  1. Q
  1. ;
  1. VHF1 ; V HEALTH FACTORS XTRA level
  1. S AMHGREF="^AUPNVHF(""AA"",AMHPIEN,AMHXL)"
  1. S AMHXL=0 F S AMHXL=$O(@AMHGREF) Q:'AMHXL D VSDTDR2
  1. Q
  1. ;
  1. VEXAM ; Get V EXAMS
  1. S AMHGREF="^AUPNVXAM(""AA"",AMHPIEN)",AMHXLEVL="VEXAM1"
  1. D VSDTRNG
  1. Q
  1. ;
  1. VEXAM1 ; V EXAMS XTRA level
  1. S AMHGREF="^AUPNVXAM(""AA"",AMHPIEN,AMHXL)"
  1. S AMHXL=0 F S AMHXL=$O(@AMHGREF) Q:'AMHXL D VSDTDR2
  1. Q
  1. ;
  1. KILL ;
  1. K BGUDRIVR,AMHC,AMHEDATE,AMHGREF,AMHGROUP,AMHLBONL,AMHLIM,AMHPIEN,AMHSBJGR,AMHSDATE,AMHSIEN,AMHRVCRO,AMHVIEN,AMHVWNO,AMHVWOPT,AMHX,AMHXL,AMHXLEVL
  1. Q