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

AMHLESM.m

Go to the documentation of this file.
  1. AMHLESM ; IHS/CMI/LAB - calls from within screenman ;
  1. ;;4.0;IHS BEHAVIORAL HEALTH;**1**;JUN 18, 2010;Build 8
  1. ;PATCH 2 - limit meds to 2 years
  1. ;
  1. ;CMI/TUCSON/LAB - 10/06/97 - PATCH 1 ADDED CODE TO PROPERLY DISPLAY AXIS IV&V ON PREVIOUS POV DISPLAYS (SUB ROUTINES HPOV AND HPOV1)
  1. ;*** Lori Butcher - IHS Information Systems Division Tucson, AZ ***
  1. EN1(AMHPAT) ;EP - called from protocol
  1. Q:'$G(AMHPAT)
  1. D HMED1
  1. NEW C S C="Medication List for "_$P(^DPT(AMHPAT,0),U)
  1. D ARRAY^XBLM("^TMP(""AMHDSPMEDS"",$J,",C)
  1. K ^TMP("AMHSMEDS",$J),^TMP("AMHDSPMEDS",$J)
  1. Q
  1. HMED ;EP - display last
  1. ;display last 2 years worth of meds from V Med
  1. ;display last 2 years worth of meds from mhss record
  1. I '$G(AMHPAT) S AMHMSG(1)="Unknown Patient" D HLP^DDSUTL(.AMHMSG) K AMHMSG Q
  1. D HMED1
  1. NEW C S C="Medication List for "_$P(^DPT(AMHPAT,0),U)
  1. D ARRAY^XBLM("^TMP(""AMHDSPMEDS"",$J,",C)
  1. K ^TMP("AMHDSPMEDS",$J)
  1. REFRESH ;
  1. S X=0 X ^%ZOSF("RM")
  1. W $P(DDGLVID,DDGLDEL,8)
  1. D REFRESH^DDSUTL
  1. Q
  1. HMED1 ;EP
  1. ;S (%,%1)=""
  1. S %=$$FMADD^XLFDT(DT,-731),%1=""
  1. D GETMEDS^AMHLEMD(AMHPAT,%,%1,"L")
  1. D GETMHMD
  1. D SETARRAY
  1. Q
  1. SETARRAY ;
  1. K ^TMP("AMHDSPMEDS",$J) S ^TMP("AMHDSPMEDS",$J,0)=0
  1. ;S X="Displayed is the MEDICATIONS PRESCRIBED data field from the BH data file" D S(X)
  1. ;S X="for the past 2 years of visits." D S(X)
  1. ;S X="Also, the last of each type of medication from the PCC Database is displayed." D S(X)
  1. S X=" " D S(X)
  1. S X=" " D S(X) S X="*** Medications Prescribed entries in BH Database for last 2 years ***" D S(X)
  1. S I=0 F S I=$O(^TMP("AMHSMEDS",$J,"M",I)) Q:I'=+I S X=^TMP("AMHSMEDS",$J,"M",I) D S(X)
  1. S X=" " D S(X) S X="The last of each type of medication from the PCC Database is displayed below." D S(X)
  1. S I=0 F S I=$O(^TMP("AMHSMEDS",$J,"A",I)) Q:I'=+I S X=^TMP("AMHSMEDS",$J,"A",I) D S(X)
  1. Q
  1. GETMHMD ;set array ^TMP("AMHSMEDS",$J,"M" OF MEDS IN MH FILE
  1. K ^TMP("AMHSMEDS",$J,"M")
  1. NEW AMHLAST,AMHC S AMHLAST=9999999-(DT-20000),AMHC=0
  1. NEW I S I=0 F S I=$O(^AMHREC("AE",AMHPAT,I)) Q:I=""!(I>AMHLAST) D
  1. .S X=0 F S X=$O(^AMHREC("AE",AMHPAT,I,X)) Q:X="" D
  1. ..Q:'$D(^AMHREC(X,41,0))
  1. ..Q:'$$ALLOWVI^AMHUTIL(DUZ,X)
  1. ..S AMHC=AMHC+1,^TMP("AMHSMEDS",$J,"M",AMHC)=$$FMTE^XLFDT((9999999-$P(I,".")),"2E")
  1. ..S C=0 F S C=$O(^AMHREC(X,41,C)) Q:C'=+C S AMHC=AMHC+1,^TMP("AMHSMEDS",$J,"M",AMHC)=^AMHREC(X,41,C,0)
  1. ..Q
  1. Q
  1. S(Y,F,C,T) ;
  1. I '$G(F) S F=0
  1. I '$G(T) S T=0
  1. ;blank lines
  1. F F=1:1:(T-1) S X=" "_X
  1. F %=1:1:T S X=" "_Y
  1. D S1
  1. Q
  1. S1 ;
  1. S %=$P(^TMP("AMHDSPMEDS",$J,0),U)+1,$P(^TMP("AMHDSPMEDS",$J,0),U)=%
  1. S ^TMP("AMHDSPMEDS",$J,%,0)=X
  1. Q
  1. HPOV ;EP display last visit's povs
  1. NEW AMHC1,AMHA,AMHMSG,%,AMHA,AMHB,AMHT,AMHV,AMHC,AMHCC,X,S,Y,Z ;CMI/TUCSON/LAB - added X,S,Y,Z patch 1 10/06/97
  1. Q:'$G(AMHR)
  1. Q:'$G(AMHPAT)
  1. S AMHC=$$VAL^XBDIQ1(9002013,DUZ(2),.25) S:'AMHC AMHC=1
  1. S AMHC1=1,AMHMSG(AMHC1)="Patient's Diagnoses from last "_AMHC_" visit"_$S(AMHC=1:"",1:"s")_":"
  1. S (AMHA,AMHV,AMHCC)=0 F S AMHA=$O(^AMHREC("AE",AMHPAT,AMHA)) Q:AMHA'=+AMHA!(AMHV) D
  1. .S AMHT=0 F S AMHT=$O(^AMHREC("AE",AMHPAT,AMHA,AMHT)) Q:AMHT'=+AMHT!(AMHV) I AMHT'=AMHR,$D(^AMHRPRO("AD",AMHT)) D
  1. ..I $P($G(^AMHSITE(DUZ(2),0)),U,26) Q:$$NOSHOW(AMHT)
  1. ..Q:'$$ALLOWVI^AMHUTIL(DUZ,AMHT)
  1. ..S AMHB=0 F S AMHB=$O(^AMHRPRO("AD",AMHT,AMHB)) Q:AMHB'=+AMHB D
  1. ...Q:'$P(^AMHRPRO(AMHB,0),U,3)
  1. ...S AMHC1=AMHC1+1,AMHMSG(AMHC1)=$$FMTE^XLFDT($P($P(^AMHREC($P(^AMHRPRO(AMHB,0),U,3),0),U),"."),"2E")_" "_$$VAL^XBDIQ1(9002011.01,AMHB,.01)_" "_$E($$VAL^XBDIQ1(9002011.01,AMHB,.04),1,52)
  1. ...;S AMHC1=AMHC1+1,AMHMSG(AMHC1)="Provider: "_$$PPINI^AMHUTIL(AMHT)_" " ;CMI/TUCSON/LAB - removed 1 space patch 1 10/06/97
  1. ...;I $P(^AMHREC(AMHT,0),U,14)]""!($P(^AMHREC(AMHT,0),U,13)]"") D
  1. ...;S AMHMSG(AMHC1)=AMHMSG(AMHC1)_"AXIS IV: "_$$VAL^XBDIQ1(9002011,AMHT,.13)_" "_$S($P(^AMHREC(AMHT,0),U,13)]"":$P(^AMHTAXIV($P(^AMHREC(AMHT,0),U,13),0),U,2),1:"")_" AXIS V: "_$$VAL^XBDIQ1(9002011,AMHT,.14)
  1. ...;CMI/TUCSON/LAB - 10/06/97 - replaced the 2 lines above with 4 lines below to properly display AXIS IV data patch 1
  1. ...;S X=0,S="" F S X=$O(^AMHREC(AMHT,61,X)) Q:X'=+X S Y=$P(^AMHREC(AMHT,61,X,0),U),S=S_" "_$P(^AMHTAXIV(Y,0),U)_"-"_$E($P(^AMHTAXIV(Y,0),U,2),1,8)
  1. ...;S Z="AXIS IV:"_S
  1. ...;I $P(^AMHREC(AMHT,0),U,14)]"" S Z=Z_" AXIS V: "_$P(^AMHREC(AMHT,0),U,14)
  1. ...;S AMHMSG(AMHC1)=AMHMSG(AMHC1)_" "_Z
  1. ...S AMHCC=AMHCC+1 I AMHCC=AMHC S AMHV=AMHT Q
  1. I 'AMHCC S AMHMSG(1)="No prior diagnoses on file for this patient." G HLP
  1. HLP D HLP^DDSUTL(.AMHMSG)
  1. K AMHCC
  1. Q
  1. HPOV1 ;EP called from input template
  1. NEW C,AMHMSG,%,A,B,R
  1. Q:'$G(AMHR)
  1. Q:'$G(AMHPAT)
  1. S (A,%)=0 F S A=$O(^AMHREC("AE",AMHPAT,A)) Q:A'=+A!(%) D
  1. .S R=0 F S R=$O(^AMHREC("AE",AMHPAT,A,R)) Q:R'=+R!(%) I R'=AMHR,$D(^AMHRPRO("AD",R)) S %=R
  1. I '% W !!,"No prior diagnoses on file for this patient."
  1. S C=1 W !!,"Patient's Diagnoses from last visit:"
  1. S B=0 F S B=$O(^AMHRPRO("AD",%,B)) Q:B'=+B D
  1. .;CMI/TUCSON/LAB - 10/06/97 - patch 1 added display of axis iv&v by adding next 4 lines
  1. .I '$P(^AMHRPRO(B,0),U,3) Q
  1. .S C=C+1 W !,$$FMTE^XLFDT($P($P(^AMHREC($P(^AMHRPRO(B,0),U,3),0),U),"."),"2E")_" "_$$VAL^XBDIQ1(9002011.01,B,.01)_" "_$E($$VAL^XBDIQ1(9002011.01,B,.04),1,52)
  1. .S X=0,S="" F S X=$O(^AMHREC(%,61,X)) Q:X'=+X S Y=$P(^AMHREC(%,61,X,0),U),S=S_" "_$P(^AMHTAXIV(Y,0),U)_"-"_$E($P(^AMHTAXIV(Y,0),U,2),1,8)
  1. .S Z=" AXIS IV:"_S
  1. .I $P(^AMHREC(%,0),U,14)]"" S Z=Z_" AXIS V: "_$P(^AMHREC(%,0),U,14) I $P($G(^AMHREC(%,11)),U,15)]"" S Z=Z_" GAF Scale Type: "_$P($G(^AMHREC(%,11)),U,15)
  1. .W !,"Provider: ",$$PPINI^AMHUTIL(%),$G(Z)
  1. .Q
  1. W !
  1. Q
  1. NOSHOW(V) ;EP - return 0 if no noshows, 1 if noshow
  1. Q:'$G(V)
  1. NEW %,X,P
  1. S (%,X)=0 F S X=$O(^AMHRPRO("AD",V,X)) Q:X'=+X S P=$$VAL^XBDIQ1(9002011.01,X,.01) I P>7.9999&(P<9) S %=1
  1. Q %