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

AMHEXD2.m

Go to the documentation of this file.
  1. AMHEXD2 ; IHS/CMI/LAB - PROCESS RECORD ;
  1. ;;4.0;IHS BEHAVIORAL HEALTH;;MAY 14, 2010
  1. ;
  1. ;encryted patient id info, fixed sec prov to check for unknown
  1. ;
  1. RECORD ;EP
  1. S (AMHE,AMHTX)="" K AMHRTYPE
  1. I '$D(^AMHREC(AMHR)) S AMHE="E026" Q
  1. RECTYPE I AMHO("RUN")="NEW" S X=$P(AMHREC,U,22) I X="" S X=$S($P(AMHREC,U,24)]"":"M",1:"A")
  1. I AMHO("RUN")="REDO" S X=$P(^AMHXLOG(AMH("RUN LOG"),21,AMHR,0),U,3) I X="" S X="A"
  1. D TX
  1. DATE S X=$P($P(AMHREC,U),".") I X="" S AMHE="E001" Q
  1. D TX
  1. DUZ2 S X=$P(^AUTTLOC(DUZ(2),0),U,10) I X=""!($L(X)'=6) S AMHE="E002" Q
  1. D TX S AMHDUZ2=X
  1. PROG S X=$P(AMHREC,U,2) I X="" S AMHE="E003" Q
  1. D TX
  1. LOENC S X=$P(AMHREC,U,4) I X="" S AMHE="E004" Q
  1. S X=$P(^AUTTLOC(X,0),U,10) I X=""!($L(X)'=6) S AMHE="E005" Q
  1. D TX S AMHLOC=X
  1. COMM S AMHCOM=$P(AMHREC,U,5) I AMHCOM="" S AMHE="E006" Q
  1. S X=$P(^AUTTCOM(AMHCOM,0),U,8) I X="" S AMHE="E007" Q
  1. I $L(X)'=7 S AMHE="E007" Q
  1. D TX
  1. K AMHTMP,^UTILITY("DIQ1",$J) S DIC="^AUTTCOM(",DR=".11991;.11992",DA=AMHCOM,DIQ="AMHTMP(",DIQ(0)="E" D EN^DIQ1 K DIC,DR,DIQ,^UTILITY("DIQ1",$J)
  1. S X=$G(AMHTMP(9999999.05,AMHCOM,.11992,"E"))_$G(AMHTMP(9999999.05,AMHCOM,.11991,"E"))_$P(^AUTTCOM(AMHCOM,0),U,7)
  1. I $L(X)'=7 S X=" "
  1. D TX
  1. ACT S X=$P(AMHREC,U,6) I X="" S AMHE="E009" Q
  1. I '$D(^AMHTACT(X)) S AMHE="E009" Q
  1. S X=$P(^AMHTACT(X,0),U) I X="" S AMHE="E009" Q
  1. D TX
  1. CONT S X=$P(AMHREC,U,7) I X="" S AMHE="E010" Q
  1. I '$D(^AMHTSET(X)) S AMHE="E010" Q
  1. S X=$P(^AMHTSET(X,0),U,2) I X="" S AMHE="E010" Q
  1. S:$L(X)=2 X=0
  1. D TX
  1. NS ;S X=$P(AMHREC,U,9) I 'X S AMHE="E011" Q
  1. S X=$P(AMHREC,U,9) I X="" S X=0
  1. S X=$$LZERO(X,3)
  1. D TX
  1. MIN S X=$P(AMHREC,U,12) I 'X S AMHE="E012" Q
  1. S X=$$LZERO(X,5)
  1. D TX
  1. DISP ;inpatient disposition
  1. S X=$P(AMHREC,U,17) S:X X=$P(^AMHTPLT(X,0),U,3) S:X=10 X=0 S:X>9 X="" S X=$$LBLK(X,1) ;GONE TO 2 DIGITS!! OLD VALUES SENT FOR NOW
  1. D TX
  1. APWI ;
  1. S X=$P(AMHREC,U,11) S X=$$LBLK(X,1)
  1. D TX
  1. INT ;
  1. S X=$P(AMHREC,U,15) S X=$$LBLK(X,1)
  1. D TX
  1. PROV ;get providers
  1. I '$D(^AMHRPROV("AD",AMHR)) S AMHE="E022" Q
  1. S AMHAFF=$$PPAFFL^AMHUTIL(AMHR,"I") I AMHAFF=""!(AMHAFF["?") S AMHE="E023" Q
  1. S AMHDISC=$$PPCLSC^AMHUTIL(AMHR) I AMHDISC=""!(AMHDISC["?") S AMHE="E024" Q
  1. S AMHINI=$$PPINI^AMHUTIL(AMHR) I AMHINI["?" S AMHE="E025" Q
  1. S AMHINI=$$LBLK(AMHINI,3)
  1. PROV1 S X=AMHAFF_AMHDISC_AMHINI D TX
  1. S AMHRIEN=0,AMHC=1 F S AMHRIEN=$O(^AMHRPROV("AD",AMHR,AMHRIEN)) Q:AMHRIEN'=+AMHRIEN!(AMHE]"") I $P(^AMHRPROV(AMHRIEN,0),U,4)'="P" S AMHX=$P(^AMHRPROV(AMHRIEN,0),U) D
  1. .S AMHAFF=$$PROVAFFL^XBFUNC1(AMHX,"I") I AMHAFF=""!(AMHAFF["?") S AMHE="E023" Q
  1. .S AMHDISC=$$PROVCLSC^XBFUNC1(AMHX) I AMHDISC=""!(AMHDISC["?")!(AMHDISC["UNKNOWN") S AMHE="E024" Q
  1. .S AMHINI=$$PROVINI^XBFUNC1(AMHX) I AMHINI=""!(AMHINI["?") S AMHE="E025" Q
  1. .S AMHINI=$$LBLK(AMHINI,3)
  1. .S X=AMHAFF_AMHDISC_AMHINI D TX
  1. .S AMHC=AMHC+1
  1. .Q
  1. F I=(AMHC+1):1:4 S X="",X=$$LBLK(X,6) D TX
  1. Q:AMHE]""
  1. POVS ;get problems first 4
  1. I '$D(^AMHRPRO("AD",AMHR)) S AMHE="E021" Q
  1. S (AMHRIEN,AMHC)=0 F S AMHRIEN=$O(^AMHRPRO("AD",AMHR,AMHRIEN)) Q:AMHRIEN'=+AMHRIEN!(AMHC=4) S P=$P(^AMHRPRO(AMHRIEN,0),U),X=$P(^AMHPROB(P,0),U),X=$$LBLK(X,6),AMHC=AMHC+1 D TX
  1. F I=(AMHC+1):1:4 S X="",X=$$LBLK(X,6) D TX
  1. K AMHRIEN,P,X
  1. PATIENT ;
  1. I $P(AMHREC,U,8)="" S X=$$LBLK($P(AMHREC,U,8),40) D TX Q
  1. S AMHPAT=$P(AMHREC,U,8)
  1. S Y=AMHPAT D ^AUPNPAT
  1. S AMHNAME=$P(^DPT(AMHPAT,0),U)
  1. I AMHNAME="DEMO,PATIENT" S X="",X=$$LBLK(X,40) D TX Q
  1. CHART ;
  1. S X=$$ENC^AMHRLU2(AMHPAT)
  1. D TX
  1. SEX ;
  1. I AUPNSEX="" S AMHE="E014" Q
  1. S X=AUPNSEX D TX
  1. DOB ;
  1. I AUPNDOB="" S AMHE="E015" Q
  1. S X=AUPNDOB D TX
  1. I '$D(^AUPNPAT(AMHPAT,11)) S AMHE="E016" Q
  1. COMRES ;
  1. S Y=0,AMHCOM="" F S Y=$O(^AUPNPAT(AMHPAT,51,Y)) Q:Y'=+Y S AMHCOM=Y
  1. I AMHCOM="" S AMHE="E016" Q
  1. S AMHCOM=$P(^AUPNPAT(AMHPAT,51,AMHCOM,0),U,3) I AMHCOM="" S AMHE="E017" Q
  1. I '$D(^AUTTCOM(AMHCOM,0)) S AMHE="E017" Q
  1. I AMHCOM]"" S X=$P(^AUTTCOM(AMHCOM,0),U,8) I X="" S AMHE="E017" Q
  1. D TX
  1. ;GET ASUCOMM CODE HERE AND D TX
  1. K AMHTMP,^UTILITY("DIQ1",$J) S DIC="^AUTTCOM(",DR=".11991;.11992",DA=AMHCOM,DIQ="AMHTMP(",DIQ(0)="E" D EN^DIQ1 K DIC,DR,DIQ,^UTILITY("DIQ1",$J)
  1. S X=$G(AMHTMP(9999999.05,AMHCOM,.11992,"E"))_$G(AMHTMP(9999999.05,AMHCOM,.11991,"E"))_$P(^AUTTCOM(AMHCOM,0),U,7)
  1. I $L(X)'=7 S X=" "
  1. D TX
  1. TRIBE ;
  1. S X=$P(^AUPNPAT(AMHPAT,11),U,8) I X="" S AMHE="E018" Q
  1. I $P(^AUTTTRI(X,0),U,4)="Y" S AMHE="E019" Q
  1. S X=$P(^AUTTTRI(X,0),U,2) I X="" S AMHE="E020" Q
  1. D TX
  1. MCARE ;
  1. S X=$$MCR^AMHRLU(AMHPAT,$P($P(AMHREC,U),"."))
  1. S X=$S(X:"Y",1:"N")
  1. D TX
  1. MCAID ;
  1. S X=$$MCD^AMHRLU(AMHPAT,$P($P(AMHREC,U),"."))
  1. S X=$S(X:"Y",1:"N")
  1. D TX
  1. PI ;EP
  1. S X=$$PI^AMHRLU(AMHPAT,$P($P(AMHREC,U),"."))
  1. S X=$S(X:"Y",1:"N")
  1. D TX
  1. EM ;evaluation&management
  1. S X=$P(AMHREC,U,29)
  1. S X=$S(X="":" ",1:$P($$CPT^ICPTCOD(X,$P($P(AMHREC,U),".")),U,2))
  1. D TX
  1. CPT1 ;
  1. S Y=$O(^AMHRPROC("AD",AMHR,0))
  1. S X=$S(Y="":" ",1:$P($$CPT^ICPTCOD($P(^AMHRPROC(Y,0),U),$P($P(^AMHREC(AMHR,0),U),".")),U,2))
  1. D TX
  1. CPT2 ;
  1. S C=0,Y=0 F S Y=$O(^AMHRPROC("AD",AMHR,Y)) Q:Y'=+Y!(C=2) S C=C+1 I C=2 S %=Y
  1. S X=$S($G(%)="":" ",1:$P($$CPT^ICPTCOD($P(^AMHRPROC(%,0),U),$P($P(^AMHREC(AMHR,0),U),".")),U,2))
  1. D TX
  1. Q
  1. ;
  1. TX ;
  1. S AMHTX=AMHTX_X
  1. Q
  1. ;
  1. LZERO(V,L) ;left zero fill
  1. NEW %,I
  1. S %=$L(V),Z=L-% F I=1:1:Z S V="0"_V
  1. Q V
  1. LBLK(V,L) ;left blank fill
  1. NEW %,I
  1. S %=$L(V),Z=L-% F I=1:1:Z S V=" "_V
  1. Q V