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

AMHBHSC.m

Go to the documentation of this file.
  1. AMHBHSC ; IHS/CMI/LAB - BEHAVIORAL HEALTH SPECIAL CROSSREFERENCE FOR GUI ;
  1. ;;4.0;IHS BEHAVIORAL HEALTH;;MAY 14, 2010
  1. ;
  1. ; AMHSETLV - Setting Primary List view - Assumes MH Encounter is central
  1. ; AMHCTYPE - Screen to Admin Type
  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. ; AMHDIVAL - Look at all divisions - Not used here, used to screen patients selected prior to calling this routine
  1. ; AMHBHALL - Look at all users' entries - Only relates to MH REC
  1. ;
  1. SETUP ;
  1. S BGUCRFS="",AMHVTYPE=$G(AMHVTYPE)
  1. S:'$D(AMHGREF) AMHVTYPE=1,AMHGREF="^AMHREC(""AF"",AMHPIEN)"
  1. S:BGUMAX=25 BGUMAX=0 S AMHLIM=BGUMAX,BGUMAX=999999999 S:'AMHLIM AMHLIM=BGUMAX
  1. S AMHDIR=1 S:BGUDIR="B" AMHDIR=-1 S BGUDIR=""
  1. S (BGUBEGIN,BGUEND)="",AMHC=0,AMHGROUP=$G(AMHGROUP),AMHSETLV=$G(AMHSETLV,1),AMHDIVAL=1
  1. Q
  1. ;
  1. MHRC ; Get records for a patient by date range
  1. ;S AMHGREF=$G(AMHGREF,"^AMHREC(""AF"",AMHPIEN)")
  1. S AMHPIEN=$P(BGUBEGIN,"`"),BGUBEGIN=$P(BGUBEGIN,"`",2)
  1. D MHREC
  1. Q
  1. ;
  1. MHENC ; Get records for an encounter
  1. I '$D(BGUDRIVR) S BGUDRIVR="MHENC^AMHBHSC",AMHVIEN=BGUBEGIN D SETUP Q
  1. D:AMHVIEN'="" MHENCTR
  1. D KILL
  1. Q
  1. ;
  1. MHREC ;
  1. I '$D(BGUDRIVR) S BGUDRIVR="MHREC^AMHBHSC",AMHSDATE=$P(BGUBEGIN,"`"),AMHVIEN=$P(BGUBEGIN,"`",2),AMHEDATE=$P(BGUEND,"`",1) D SETUP Q
  1. S AMHVWOPT="2",AMHSBJGR=$G(AMHSBJGR),AMHCTYPE=$G(AMHCTYPE),AMHDTCK=$G(AMHDTCK)
  1. D MHREC1,KILL
  1. Q
  1. MHREC1 ;
  1. D
  1. .I AMHSDATE'=+AMHSDATE D Q
  1. ..S:AMHSDATE="" AMHSDATE="1/1/1980"
  1. ..S:AMHEDATE="" AMHEDATE="T"
  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:AMHDIR<0 AMHEDAT=AMHEDAT+.9999
  1. .S AMHSDAT=AMHSDATE,AMHEDAT=AMHEDATE
  1. S AMHCTYPE=$G(AMHCTYPE)
  1. S AMHC=0,AMHX=0 ;,AMHLIM=$S(AMHVWOPT="0":AMHVWNO,1:999999)
  1. I AMHDTCK'="" D @AMHDTCK Q
  1. S AMHX=$S(AMHDIR>0:$O(@AMHGREF@(AMHSDAT),-1),1:$O(@AMHGREF@(AMHEDAT))) F S AMHX=$O(@AMHGREF@(AMHX),AMHDIR) Q:'AMHX Q:$S(AMHDIR>0:AMHX\1>AMHEDAT,1:AMHX\1<AMHSDAT) D Q:AMHC=AMHLIM
  1. .F S AMHVIEN=$O(@AMHGREF@(AMHX,AMHVIEN)) Q:'AMHVIEN Q:AMHC=AMHLIM D MHENCTR
  1. Q
  1. ;
  1. MHENCTR ;
  1. I AMHCTYPE'="",$P(^AMHREC(AMHVIEN,0),U,7)'=AMHCTYPE Q
  1. S AMHBHALL=1 I AMHVTYPE S AMHBHALL=0,AMHXX=$S(AMHGROUP:$P(^AMHGROUP(AMHVIEN,0),U,5),1:$P(^AMHREC(AMHVIEN,0),U,4)) I AMHXX,$D(^AMHSITE(AMHXX,16,DUZ)) S AMHBHALL=1
  1. I 'AMHBHALL,$S(AMHGROUP:$P(^AMHGROUP(AMHVIEN,0),U,15)'=DUZ,1:$P(^AMHREC(AMHVIEN,0),U,19)'=DUZ) S BGUV(BGUFILE,88888)=0 D Q:'BGUV(BGUFILE,88888)
  1. .I AMHGROUP D Q
  1. ..F S BGUV(BGUFILE,88888)=$O(^AMHGROUP(AMHVIEN,11,BGUV(BGUFILE,88888))) Q:'BGUV(BGUFILE,88888) Q:$P(^AMHGROUP(AMHVIEN,11,BGUV(BGUFILE,88888),0),U)=DUZ
  1. .F S BGUV(BGUFILE,88888)=$O(^AMHRPROV("AD",AMHVIEN,BGUV(BGUFILE,88888))) Q:'BGUV(BGUFILE,88888) Q:$P(^AMHRPROV(BGUV(BGUFILE,88888),0),U)=DUZ
  1. D
  1. .I 'AMHGROUP D:AMHSETLV Q ;PICKUP ALL THESE FIELDS IF AMHSETLV IS SET, INSTEAD OF REQUIRING THEIR OWN FLAGS
  1. ..S BGUV(BGUFILE,666666)=$O(^AMHREDU("AD",AMHVIEN,0))
  1. ..S BGUV(BGUFILE,777777)=$O(^AMHRHF("AD",AMHVIEN,0))
  1. ..S BGUV(BGUFILE,99999)=$O(^AMHRPRO("AD",AMHVIEN,0))
  1. ..S BGUV(BGUFILE,88888)=0 D
  1. ...F S BGUV(BGUFILE,88888)=$O(^AMHRPROV("AD",AMHVIEN,BGUV(BGUFILE,88888))) Q:BGUV(BGUFILE,88888)="" Q:$P(^AMHRPROV(BGUV(BGUFILE,88888),0),U,4)="P"
  1. .I AMHSETLV D
  1. ..S BGUV(BGUFILE,99999)=$O(^AMHGROUP(AMHVIEN,21,0)) S:BGUV(BGUFILE,99999) BGUV(BGUFILE,99999)=$P(^(BGUV(BGUFILE,99999),0),U)
  1. ..S BGUV(BGUFILE,88888)=0 D
  1. ..F S BGUV(BGUFILE,88888)=$O(^AMHGROUP(AMHVIEN,11,BGUV(BGUFILE,88888))) Q:'BGUV(BGUFILE,88888) I $P(^AMHGROUP(AMHVIEN,11,BGUV(BGUFILE,88888),0),U,2)="P" S BGUV(BGUFILE,88888)=$P(^(0),U) Q
  1. I AMHSBJGR="" S BGUSUB(1)=AMHVIEN,BGUV(BGUFILE,.0001)=AMHX D FIELDS^BGULIST S AMHC=BGUICNT Q
  1. S AMHSIEN=0 F S AMHSIEN=$O(@AMHSBJGR@(AMHSIEN)) Q:'AMHSIEN S AMHC=AMHC+1,BGUSUB(1)=AMHSIEN,BGUV(BGUFILE,.0001)=AMHX D FIELDS^BGULIST S AMHC=BGUICNT
  1. Q
  1. ;
  1. ADM ; Get Administration Entries
  1. S AMHCTYPE=$O(^AMHTSET("B","ADMINISTRATIVE",""))
  1. S AMHBHALL=1,AMHGREF="^AMHREC(""B"")",AMHVTYPE=1
  1. D MHREC
  1. Q
  1. ;
  1. MHCASE ;
  1. S AMHGREF="^AMHPCASE(""C"",AMHPIEN)",AMHDTCK="MHCASE1"
  1. D MHRC
  1. Q
  1. ;
  1. MHCASE1 ;
  1. S AMHVIEN=0 F S AMHVIEN=$O(@AMHGREF@(AMHVIEN)) Q:'AMHVIEN Q:AMHC=AMHLIM S AMHX=$P(^AMHPCASE(AMHVIEN,0),U,1) I AMHX'<AMHSDAT,AMHX'>AMHEDAT D MHENCTR
  1. Q
  1. ;
  1. MHTREAT ;
  1. S AMHGREF="^AMHPTXP(""AC"",AMHPIEN)",AMHDTCK="MHTREAT1",AMHSETLV=""
  1. D MHRC
  1. Q
  1. ;
  1. MHTREAT1 ;
  1. S AMHVIEN=0 F S AMHVIEN=$O(@AMHGREF@(AMHVIEN)) Q:'AMHVIEN Q:AMHC=AMHLIM S AMHX=$P(^AMHPTXP(AMHVIEN,0),U,1) I AMHX'<AMHSDAT,AMHX'>AMHEDAT D MHENCTR
  1. Q
  1. ;
  1. MHSUIV ;
  1. S AMHGREF="^AMHPSUIC(""AD"")",AMHSETLV=""
  1. D MHREC
  1. Q
  1. ;
  1. MHSUI ;
  1. S AMHGREF="^AMHPSUIC(""AC"",AMHPIEN)",AMHDTCK="MHSUI1",AMHSETLV=""
  1. D MHRC
  1. Q
  1. ;
  1. MHSUI1 ;
  1. S AMHVIEN=0 F S AMHVIEN=$O(@AMHGREF@(AMHVIEN)) Q:'AMHVIEN Q:AMHC=AMHLIM S AMHX=$P(^AMHPSUIC(AMHVIEN,0),U,6) I AMHX'<AMHSDAT,AMHX'>AMHEDAT D MHENCTR
  1. Q
  1. ;
  1. HF ; Health Factors
  1. S AMHSBJGR="^AMHRHF(""AD"",AMHVIEN)",AMHSETLV=0,AMHCTYPE=""
  1. D MHENC
  1. Q
  1. ;
  1. EDU ; Patient Education
  1. S AMHSBJGR="^AMHREDU(""AD"",AMHVIEN)",AMHSETLV=0,AMHCTYPE=""
  1. D MHENC
  1. Q
  1. ;
  1. MHGRP ;
  1. S AMHGREF="^AMHGROUP(""B"")",AMHGROUP=1,AMHVTYPE=1
  1. D MHREC
  1. Q
  1. ;
  1. KILL ;
  1. K BGUDRIVR,AMHC,AMHCTYPE,AMHDIVAL,AMHDTCK,AMHEDATE,AMHGREF,AMHGROUP,AMHBHALL,AMHLBONL,AMHLIM,AMHPIEN,AMHSBJGR,AMHSDATE,AMHSETLV,AMHSIEN,AMHVIEN,AMHVTYPE,AMHVWNO,AMHVWOPT,AMHX,AMHXX
  1. Q