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

AMHRSB2.m

Go to the documentation of this file.
  1. AMHRSB2 ; IHS/CMI/LAB - list sbirt 24 Aug 2009 6:21 PM ;
  1. ;;4.0;IHS BEHAVIORAL HEALTH;**8**;JUN 02, 2010;Build 7
  1. ;
  1. ;
  1. BNI(P,BDATE,EDATE,AMHABNI) ;EP - GET FIRST BNI AVAILABLE ON A VISITS
  1. NEW AMHG,%,E,AMHSC,V,AMHC,T,F,D,R,AMHCT,AMHX,AMHV,AMHVD,AMHIVD,X
  1. K AMHABNI
  1. S AMHSC=0
  1. PCC ;check PCC first
  1. S AMHCT=$O(^ATXAX("B","BGP BNI CPTS",0))
  1. K AMHG
  1. D ALLV^APCLAPIU(P,BDATE,EDATE,"AMHG")
  1. S AMHX=0 F S AMHX=$O(AMHG(AMHX)) Q:AMHX'=+AMHX S AMHV=$P(AMHG(AMHX),U,5) D
  1. .Q:$P(^AUPNVSIT(AMHV,0),U,7)'="A" ;IF SBI ONLY AMBULATORY
  1. .S AMHVD=$$VD^APCLV(AMHV)
  1. PCCCPT .;
  1. .S E=0 F S E=$O(^AUPNVCPT("AD",AMHV,E)) Q:E'=+E D
  1. ..S I=$P($G(^AUPNVCPT(E,0)),U,1)
  1. ..Q:'I
  1. ..Q:'$$ICD^ATXAPI(I,AMHCT,1)
  1. ..S J=$P(^ICPT(I,0),U,1)
  1. ..S AMHSC=AMHSC+1
  1. ..S AMHABNI(AMHVD,AMHSC)=1_"^CPT "_J_"^"_$$FMTE^XLFDT(AMHVD)_U_AMHVD_U_$$FMDIFF^XLFDT(AMHVD,BDATE)
  1. PCCPTED .;
  1. .S E=0 F S E=$O(^AUPNVPED("AD",AMHV,E)) Q:E'=+E D
  1. ..S I=$P($G(^AUPNVPED(E,0)),U,1)
  1. ..Q:'I
  1. ..S T=$P($G(^AUTTEDT(I,0)),U,2)
  1. ..I T="AOD-BNI" G PCS
  1. ..Q:$L($P(T,"-",1))'=5
  1. ..S I=+$$CODEN^ICPTCOD($P(T,"-",1))
  1. ..Q:'$$ICD^ATXAPI(I,AMHCT,1)
  1. PCS ..S AMHSC=AMHSC+1
  1. ..S AMHABNI(AMHVD,AMHSC)=1_"^PT ED "_T_"^"_$$FMTE^XLFDT(AMHVD)_U_AMHVD_U_$$FMDIFF^XLFDT(AMHVD,BDATE)
  1. BH ;CHECK BH VISITS
  1. S AMHC="",T="",F=""
  1. S E=9999999-BDATE,D=9999999-EDATE-1_".99"
  1. F S D=$O(^AMHREC("AE",P,D)) Q:D'=+D!($P(D,".")>E) S V=0 F S V=$O(^AMHREC("AE",P,D,V)) Q:V'=+V D
  1. BHEX .;
  1. .S T=$$VAL^XBDIQ1(9002011,V,.07)
  1. .I T'="AFTERCARE",T'="OUTPATIENT",T'="INTENSIVE OUTPATIENT",T'="EMERGENCY ROOM",T'="TELE-BEHAVIORAL HEALTH" Q
  1. .S AMHVD=9999999-$P(D,".")
  1. BHCPT .;now add in CPT codes
  1. .S X=0 F S X=$O(^AMHRPROC("AD",V,X)) Q:X'=+X D
  1. ..S I=$P($G(^AMHRPROC(X,0)),U,1)
  1. ..Q:'I
  1. ..Q:'$$ICD^ATXAPI(I,AMHCT,1)
  1. ..S J=$P(^ICPT(I,0),U,1)
  1. ..S AMHSC=AMHSC+1
  1. ..S AMHABNI(AMHVD,AMHSC)=1_"^CPT "_J_"^"_$$FMTE^XLFDT(AMHVD)_U_AMHVD_U_$$FMDIFF^XLFDT(AMHVD,BDATE)
  1. ..Q
  1. BHPTED .;
  1. .S X=0 F S X=$O(^AMHREDU("AD",V,X)) Q:X'=+X D
  1. ..S I=$P($G(^AMHREDU(X,0)),U,1)
  1. ..Q:'I
  1. ..S T=$P($G(^AUTTEDT(I,0)),U,2)
  1. ..I T="AOD-BNI" G BHS
  1. ..Q:$L($P(T,U,1))'=5
  1. ..Q:'$$ICD^ATXAPI($P(T,U,1),AMHCT,1)
  1. BHS ..S AMHSC=AMHSC+1
  1. ..S AMHABNI(AMHVD,AMHSC)=1_"^PT ED "_T_"^"_$$FMTE^XLFDT(AMHVD)_U_AMHVD_U_$$FMDIFF^XLFDT(AMHVD,BDATE)
  1. .Q
  1. Q
  1. LISTS ;EP
  1. D @AMHRSORT
  1. I AMHRSORV="" S AMHRSORV="--"
  1. I $D(AMHRLIST(1)) D
  1. .;this list is for all with any positive screen
  1. .Q:'GPP ;patient had no positives
  1. .S X=0 F S X=$O(AMHASCR(X)) Q:X'=+X D
  1. ..S ^XTMP("AMHRSB1",AMHRJ,AMHRH,"LIST1",AMHRSORV,DFN,X)=$$FMTE^XLFDT(X)_U_$P(AMHASCR(X),U)_U_$P(AMHASCR(X),U,2)_U_"POSITIVE"_U_$P(AMHASCR(X),U,4)_U_$$FMTE^XLFDT($P(AMHASCR(X),U,7))_U_$P(AMHASCR(X),U,5)_U_$P(AMHASCR(X),U,8)
  1. I $D(AMHRLIST(2)) D
  1. .;this list is for all with any positive screen
  1. .Q:'GPP
  1. .I 'GP0,'GP1,'GP4,'GPT Q ;had none within appropriate time window ;patient had no positives
  1. .S X=0 F S X=$O(AMHASCR(X)) Q:X'=+X D
  1. ..S ^XTMP("AMHRSB1",AMHRJ,AMHRH,"LIST2",AMHRSORV,DFN,X)=$$FMTE^XLFDT(X)_U_$P(AMHASCR(X),U)_U_$P(AMHASCR(X),U,2)_U_"POSITIVE"_U_$P(AMHASCR(X),U,4)_U_$$FMTE^XLFDT($P(AMHASCR(X),U,7))_U_$P(AMHASCR(X),U,5)_U_$P(AMHASCR(X),U,8)
  1. ..Q
  1. I $D(AMHRLIST(3)) D
  1. .;this list is for all with any positive screen
  1. .Q:'GPP
  1. .I 'GP0,'GP1,'GP4,'GPT D ;had none within appropriate time window ;patient had no positives
  1. ..S X=0 F S X=$O(AMHASCR(X)) Q:X'=+X D
  1. ...S ^XTMP("AMHRSB1",AMHRJ,AMHRH,"LIST3",AMHRSORV,DFN,X)=$$FMTE^XLFDT(X)_U_$P(AMHASCR(X),U)_U_$P(AMHASCR(X),U,2)_U_"POSITIVE"_U_$P(AMHASCR(X),U,4)_U_$$FMTE^XLFDT($P(AMHASCR(X),U,7))_U_$P(AMHASCR(X),U,5)_U_$P(AMHASCR(X),U,8)
  1. ;
  1. Q
  1. H ;
  1. S AMHRSORV=$$HRN^AUPNPAT(DFN,DUZ(2))
  1. Q
  1. N ;
  1. S AMHRSORV=$P(^DPT(DFN,0),U)
  1. Q
  1. A S AMHRSORV=$$AGE^AUPNPAT(DFN,AMHRBD)
  1. Q
  1. G ;
  1. S AMHRSORV=$$VAL^XBDIQ1(2,DFN,.02)
  1. Q
  1. T ;
  1. S %=$$HRN^AUPNPAT(DFN,DUZ(2))
  1. S %=%+10000000,%=$E(%,7,8)_"-"_+$E(%,2,8)
  1. S AMHRSORV=%
  1. Q