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

BDMS9B1.m

Go to the documentation of this file.
  1. BDMS9B1 ; IHS/CMI/LAB - DIABETIC CARE SUMMARY SUPPLEMENT 12 Jan 2011 12:27 PM ; [ 12 Jan 2011 12:27 PM ]
  1. ;;2.0;DIABETES MANAGEMENT SYSTEM;**3,4,5,6,7,8,9,10,11,12**;JUN 14, 2007;Build 51
  1. ;
  1. Q:'$G(APCHSPAT)
  1. S BDMSPAT=APCHSPAT
  1. S BDMSHDR=APCHSHDR
  1. D EN^XBNEW("EP^BDMS9B1","BDMSPAT;BDMSHDR;APCHSQIT")
  1. K ^TMP("APCHS",$J)
  1. K BDMSPAT
  1. Q
  1. EP ;EP - called from xbnew
  1. D EP2(BDMSPAT)
  1. W ;write out array
  1. W:$D(IOF) @IOF
  1. K BDMQUIT
  1. W !
  1. S BDMX=0 F S BDMX=$O(^TMP("APCHS",$J,"DCS",BDMX)) Q:BDMX'=+BDMX!($D(BDMQUIT)) D
  1. .I $Y>(IOSL-3) D HEADER Q:$D(BDMQUIT)
  1. .W ^TMP("APCHS",$J,"DCS",BDMX),!
  1. .Q
  1. I $D(BDMQUIT) S APCHSQIT=1
  1. K ^TMP("APCHS",$J,"DCS")
  1. D EOJ
  1. Q
  1. ;
  1. EOJ ;
  1. K BDMX,BDMQUIT,BDMY,BDMSDFN,BDMSBEG,BDMSTOB,BDMSUPI,BDMSED,BDMTOBN,BDMTOB,BDMSTEX
  1. K N,%,T,F,X,Y,B,C,E,F,H,L,N,P,T,W
  1. Q
  1. K DIR I $E(IOST)="C",IO=IO(0) W ! S DIR(0)="EO" D ^DIR K DIR I Y=0!(Y="^")!($D(DTOUT)) S BDMQUIT="" Q
  1. HEAD1 ;
  1. W:$D(IOF) @IOF
  1. W !,BDMSHDR,!
  1. W !,"Diabetes Patient Care Summary - continued"
  1. W !,"Patient: ",$P(^DPT(BDMSPAT,0),U)," HRN: ",$$HRN^AUPNPAT(BDMSPAT,DUZ(2)),!
  1. Q
  1. EP2(BDMSDFN) ;PEP - PASS DFN get back array of patient care summary
  1. ;at this point you are stuck with ^TMP("APCHS",$J,"DCS"
  1. K ^TMP("APCHS",$J,"DCS")
  1. S ^TMP("APCHS",$J,"DCS",0)=0
  1. D EN^XBNEW("EP21^BDMS9B1","BDMSDFN")
  1. Q
  1. EP21 ;
  1. S BDMSPAT=BDMSDFN
  1. D SETARRAY
  1. ;K ^XTMP("BDMTAX",BDMJOB,BDMBTH)
  1. Q
  1. DATE(D) ;EP
  1. I D="" Q ""
  1. I 'D Q $$DATE1(D)
  1. Q $E(D,4,5)_"/"_$E(D,6,7)_"/"_(1700+$E(D,1,3))
  1. DATE1(D) ;
  1. NEW %,%DT,X,Y
  1. S %="",%DT="P",X=D D ^%DT
  1. I Y=-1 Q ""
  1. Q $$DATE(Y)
  1. SETARRAY ;set up array containing dm care summary
  1. ;CHECK TO SEE IF START1^APCLDF EXISTS
  1. S BDMJOB=$J,BDMBTH=$H
  1. ;D UNFOLDTX^BDMUTL(2016)
  1. I '$D(BDMSCVD) S BDMSCVD="S:Y]"""" Y=+Y,Y=$E(Y,4,5)_""/""_$S($E(Y,6,7):$E(Y,6,7)_""/"",1:"""")_$E(Y,2,3)"
  1. S X="APCLDF" X ^%ZOSF("TEST") I '$T Q
  1. S X="DIABETES PATIENT CARE SUMMARY",$E(X,40)="Report Date: "_$$DATE(DT) D S(X)
  1. S X="Patient: "_$E($P(^DPT(BDMSDFN,0),U),1,28),$E(X,40)="HRN: "_$$HRN^AUPNPAT(BDMSDFN,DUZ(2)) D S(X,1)
  1. I $$DOD^AUPNPAT(BDMSDFN)]"" S X="DATE OF DEATH: "_$$DATE($$DOD^AUPNPAT(BDMSDFN)) D S(X,1),S(" ")
  1. S X="Age: "_$$AGE^BDMAPIU(BDMSDFN,1,DT)_" (DOB "_$$DATE($$DOB^AUPNPAT(BDMSDFN))_")",$E(X,40)="Sex: "_$$VAL^XBDIQ1(2,BDMSDFN,.02) D S(X)
  1. S X="CLASS/BEN: "_$$VAL^XBDIQ1(9000001,BDMSDFN,1111),$E(X,40)="Designated PCP: "_$E($$DPCP(BDMSDFN),1,25) D S(X)
  1. S X="Date of DM Diagnosis: "_$$DOO(BDMSDFN) D S(X,1) ;S Y=$$DMPN(BDMSDFN),$E(X,58)="DM Problem #: "_$S(Y]"":Y,1:"*NONE RECORDED*") D S(X,1)
  1. S X=$$TYPE^BDMDG16(BDMSDFN,,DT) D S("Diabetes type: (1 or 2): "_X)
  1. S X="" I '$$NOTREG(BDMSDFN) S X="**NOT ON DIABETES REGISTER**"
  1. D GETHWB(BDMSDFN)
  1. S X="BMI: "_BDMX("BMI"),$E(X,12)="Last Height: "_$$STRIP^XLFSTR($J(BDMX("HT"),5,2)," ")_$S(BDMX("HT")]"":" inches",1:""),$E(X,40)=BDMX("HTD") D S(X,1)
  1. S X="",$E(X,12)="Last Weight: "_$S(BDMX("WT")]"":BDMX("WT")\1,1:"")_$S(BDMX("WT")]"":" lbs",1:""),$E(X,40)=BDMX("WTD") D S(X)
  1. S BDMTOBC="",BDMTOBS=$$TOBACCO^BDMDG1T(BDMSDFN,$$DOB^AUPNPAT(BDMSDFN),DT)
  1. D S("Tobacco Use:",1)
  1. S X=" Last Screened: "_$$DATE($P(BDMTOBS,U,3)) D S(X)
  1. S X=" Current Status: "_$P($P($G(BDMTOBS),U,2)," ",2,99) D S(X)
  1. ;I BDMTOBS="" S X=" Last Scree: NOT DOCUMENTED" D S(X,1)
  1. ;I $G(BDMTOBC)]"" S X=" "_$P(BDMTOBC,U,1) D S(X)
  1. ;COUNSELED?
  1. S X="",$E(X,15)="Counseled in the past year? " D
  1. .I $E(BDMTOBS),$E(BDMTOBS)'=1 S X=X_"N/A" Q
  1. .S Y=$$CESS^BDMDG11(BDMSDFN,$$FMADD^XLFDT(DT,-365),DT)
  1. .I $E(Y)=1 S X=X_$P(Y," ",2,999) Q
  1. .I $E(Y)=2 S X=X_"No" Q
  1. D S(X)
  1. S X=$$LASTHF^BDMSMU(BDMSDFN,"ELECTRONIC NICOTINE DELIV SYSTEM (ENDS)","X",$$DOB^AUPNPAT(BDMSDFN),DT) ; (BDMSDFN,$$DOB^AUPNPAT(BDMSDFN),DT)
  1. D S("Electronic Nicotine Delivery System (ENDS) use:",1)
  1. S Y=" Last Screened: "_$S($P(X,U,2)="":" Never",1:$$DATE($P(X,U,2))) D S(Y)
  1. S Y=" Current Status: "_$P(X,U,1) D S(Y) ;I $P(X,U,1)=1 D S(" "_$P(X,U,3))
  1. S X="HTN Diagnosed: "_$$HTN(BDMSDFN) D S(X,1)
  1. S X="CVD Diagnosed: "_$P($$CVD^BDMDG12(BDMSDFN,DT)," ",2,999) D S(X)
  1. S B=$$BP(BDMSDFN)
  1. S X="Last 3 BP: "_$P($G(BDMX(1)),U,2),$E(X,26)=$$DATE($P($G(BDMX(1)),U)) D S(X)
  1. S X="(non ER)" I $D(BDMX(2)) S $E(X,17)=$P(BDMX(2),U,2),$E(X,26)=$$DATE($P(BDMX(2),U)) D S(X)
  1. S X="" I $D(BDMX(3)) S X="",$E(X,17)=$P(BDMX(3),U,2),$E(X,26)=$$DATE($P(BDMX(3),U)) D S(X)
  1. S BDMSBEG=$$FMADD^XLFDT(DT,-(6*30.5))
  1. S %=$$ACE^BDMS9B4(BDMSDFN,BDMSBEG)
  1. S X="",X="ACE Inhibitor or ARB prescribed (in past 6 months): "
  1. I $E(%)="N" S $E(X,50)=% D S(X,1) I 1
  1. E D S(X) S X=" "_% D S(X)
  1. K BDMSX
  1. S BDMSBEG=$$FMADD^XLFDT(DT,-180)
  1. S BDMSX=$E($$ASPIRIN(BDMSDFN,BDMSBEG),1,32)
  1. S X="Aspirin or Other Anti-platelet/Anticoagulant prescribed (past 6 months): "
  1. I $E(BDMSX)="N" S X=X_BDMSX D S(X) I 1
  1. E D S(X) S X=" "_BDMSX D S(X)
  1. I BDMSX="No" S X="",X=$$ASPREF^BDMS9B4(BDMSDFN) I X]"" S X=" "_X D S(X)
  1. ;statin
  1. S X=""
  1. S BDMSBEG=$$FMADD^XLFDT(DT,-180)
  1. S Y=$$STATIN^BDMDG16(BDMSDFN,BDMSBEG,DT)
  1. S X="Statin prescribed (in past 6 months):"
  1. I $E(Y)=2 S $E(X,50)=$P(Y," ",2,99) D S(X)
  1. I $E(Y)=1 D S(X) S X=" "_$P(Y," ",2,99) D S(X)
  1. I $E(Y)=3 D S(X) S X=" Statin Note: "_$P(Y," ",2,99) D S(X)
  1. ;
  1. M12 ;
  1. ;determine date range
  1. S BDMSBEG=$$FMADD^XLFDT(DT,-365)
  1. S X="Exams (in past 12 months):" D S(X,1)
  1. S X=" Foot:",$E(X,13)=$P($$DFE^BDMDG17(BDMSDFN,BDMSBEG,DT,"H")," ",2,99) D S(X)
  1. S X=" Eye:",$E(X,13)=$P($$EYE^BDMDG17(BDMSDFN,BDMSBEG,DT,"H")," ",2,99) D S(X)
  1. S X=" Dental:",$E(X,13)=$P($$DENTAL^BDMDG17(BDMSDFN,BDMSBEG,DT,"H")," ",2,99) D S(X)
  1. K BDMSTEX,BDMSDAT,BDMX
  1. S BDMDEPP=$$DEPDX^BDMDG12(BDMSDFN,$$FMADD^XLFDT(DT,-365),DT)
  1. S BDMDEPP=$P(BDMDEPP," ",2,99)
  1. S BDMDEPS=$$DEPSCR^BDMDG12(BDMSDFN,$$FMADD^XLFDT(DT,-365),DT)
  1. S BDMDEPS=$P(BDMDEPS," ",2,99)
  1. S X="Depression - Active problem: "_BDMDEPP D S(X,1)
  1. S X="",$E(X,14)="If no, screened in past year: "_$S($E(BDMDEPP,1)="N":BDMDEPS,1:"") D S(X)
  1. D MORE^BDMS9B2
  1. S X=$P(^DPT(BDMSDFN,0),U),$E(X,35)="DOB: "_$$DOB^AUPNPAT(BDMSDFN,"S"),$E(X,55)="Chart #"_$$HRN^AUPNPAT(BDMSDFN,DUZ(2),2) D S(X,1) ;IHS/CMI/LAB - X,3 to X,2
  1. Q
  1. DPCP(P) ;EP
  1. NEW R
  1. D ALLDP^BDPAPI(P,"DESIGNATED PRIMARY PROVIDER",.R)
  1. I $D(R("DESIGNATED PRIMARY PROVIDER")) Q $P(^VA(200,$P(R("DESIGNATED PRIMARY PROVIDER"),U,2),0),U,1)
  1. S R=$P(^AUPNPAT(P,0),U,14) I R Q $P(^VA(200,R,0),U,1)
  1. S R=""
  1. Q R
  1. ;
  1. S(Y,F,C,T) ;set up array
  1. I '$G(F) S F=0
  1. I '$G(T) S T=0
  1. NEW %,X,L
  1. ;blank lines
  1. F F=1:1:F S X="" D S1
  1. S X=Y
  1. I $G(C) S L=$L(Y),T=(80-L)/2 D D S1 Q
  1. .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("APCHS",$J,"DCS",0),U)+1,$P(^TMP("APCHS",$J,"DCS",0),U)=%
  1. S ^TMP("APCHS",$J,"DCS",%)=X
  1. Q
  1. HTN(P) ;
  1. ;check problem list OR must have 3 diagnoses
  1. N T S T=$O(^ATXAX("B","SURVEILLANCE HYPERTENSION",0))
  1. I 'T Q ""
  1. N X,Y,I S (X,Y,I)=0 F S X=$O(^AUPNPROB("AC",P,X)) Q:X'=+X!(I) D
  1. .Q:'$D(^AUPNPROB(X,0))
  1. .Q:$P(^AUPNPROB(X,0),U,12)="D"
  1. .Q:$P(^AUPNPROB(X,0),U,12)="I"
  1. .S Y=$P(^AUPNPROB(X,0),U) I $$ICD^BDMUTL(Y,"SURVEILLANCE HYPERTENSION",9) S I=1 Q
  1. .I $P($G(^AUPNPROB(X,800)),U,1)]"",$$SNOMED^BDMUTL($$LE^BDMS9B2(),"PXRM ESSENTIAL HYPERTENSION",$P(^AUPNPROB(X,800),U,1)) S I=1
  1. I I Q "Yes"
  1. NEW BDMX
  1. S BDMX=""
  1. S X=P_"^LAST 3 DX [SURVEILLANCE HYPERTENSION" S E=$$START1^APCLDF(X,"BDMX(") G:E HTNX I $D(BDMX(3)) S BDMX="Yes"
  1. I $G(BDMX)="" S BDMX="No"
  1. HTNX ;
  1. Q BDMX
  1. DMPN(P) ;return problem number of firt encountered DM problem
  1. I '$G(P) Q ""
  1. NEW T S T=$O(^ATXAX("B","SURVEILLANCE DIABETES",0))
  1. I 'T Q ""
  1. NEW D,X,I S D="",X=0 F S X=$O(^AUPNPROB("AC",P,X)) Q:X'=+X!(D]"") D
  1. .S I=$P(^AUPNPROB(X,0),U)
  1. .Q:$P(^AUPNPROB(X,0),U,12)="D"
  1. .I $$ICD^BDMUTL(I,"SURVEILLANCE DIABETES",9) S D=X Q
  1. .I $P($G(^AUPNPROB(X,800)),U,1)]"",$$SNOMED^BDMUTL($$LE^BDMS9B2(),"PXRM DIABETES",$P(^AUPNPROB(X,800),U,1)) S D=X
  1. I D="" Q D
  1. S X=D ;Ien of problem now return problem #
  1. NEW L S L=$P(^AUPNPROB(X,0),U,6)
  1. NEW Y S Y=$S(L:$P(^AUTTLOC(L,0),U,7),1:"???")_$P(^AUPNPROB(X,0),U,7)
  1. Q Y
  1. BP(P) ;last 3 BPs
  1. ;exclude ER visits for BP's
  1. NEW BDMD,BDMC
  1. K BDMX
  1. S BDMX="",BDMD="",BDMC=0
  1. S T=$O(^AUTTMSR("B","BP",""))
  1. F S BDMD=$O(^AUPNVMSR("AA",P,T,BDMD)) Q:BDMD=""!(BDMC=3) D
  1. .S M=0 F S M=$O(^AUPNVMSR("AA",P,T,BDMD,M)) Q:M'=+M!(BDMC=3) D
  1. ..S V=$P($G(^AUPNVMSR(M,0)),U,3) Q:'V
  1. ..Q:'$D(^AUPNVSIT(V,0))
  1. ..Q:$$CLINIC^APCLV(V,"C")=30
  1. ..Q:$P($G(^AUPNVMSR(M,2)),U,1) ;deleted
  1. ..S BDMC=BDMC+1,BDMX(BDMC)=(9999999-BDMD)_U_$P(^AUPNVMSR(M,0),U,4)
  1. ..Q
  1. .Q
  1. I '$D(BDMX(1)) S BDMX(1)="^None recorded"
  1. BPX ;
  1. K BDMD,BDMC
  1. Q BDMX
  1. GETHWB(P) ;get last height, height date, weight, weight date and BMI for patient P, return in BDMX("HT"),BDMX("HTD"),BDMX("WT"),BDMX("WTD"),BDMX("BMI")
  1. K BDMX
  1. NEW BDMWV
  1. S BDMX("HT")="",BDMX("HTD")="",BDMX("WT")="",BDMX("WTD")="",BDMX("BMI")="",BDMX("WC")="",BDMX("WCD")=""
  1. LASTHT ;
  1. Q:'$D(^AUPNVSIT("AC",P))
  1. Q:'$D(^AUPNVMSR("AC",P))
  1. NEW BDMY
  1. S %=P_"^LAST MEAS HT" NEW X S E=$$START1^APCLDF(%,"BDMY(") S BDMX("HT")=$$STRIP^XLFSTR($J($P($G(BDMY(1)),U,2),5,2)," "),BDMX("HTD")=$$DATE($P($G(BDMY(1)),U))
  1. ;S BDMX("HT")=$S(BDMX("HT")]"":$J(BDMX("HT"),2,0),1:"")
  1. LASTWT ;
  1. K BDMY S %=P_"^LAST MEAS WT" NEW X S E=$$START1^APCLDF(%,"BDMY(") S BDMX("WT")=$P($G(BDMY(1)),U,2)\1,BDMX("WTD")=$$DATE($P($G(BDMY(1)),U)),BDMWV=$P($G(BDMY(1)),U,5)
  1. LASTWC ;
  1. ;K BDMY S %=P_"^LAST MEAS WC" NEW X S E=$$START1^APCLDF(%,"BDMY(") S BDMX("WC")=$P($G(BDMY(1)),U,2),BDMX("WCD")=$$DATE($P($G(BDMY(1)),U))
  1. BMI ;
  1. I $$AGE^AUPNPAT(P)<19,(BDMX("WTD")'=BDMX("HTD")) Q
  1. I BDMX("WT")=""!('BDMX("HT")) Q
  1. ;is there a pregnancy dx on date of weight?
  1. ;
  1. NEW X K BDMY S %=P_"^LAST DX [BGP PREGNANCY DIAGNOSES 2;DURING "_BDMX("WTD")_"-"_BDMX("WTD") S E=$$START1^APCLDF(%,"BDMY(")
  1. I $D(BDMY(1)) Q
  1. S %=""
  1. ;S W=BDMX("WT")*.45359,H=(BDMX("HT")*0.0254),H=(H*H),%=(W/H),%=$J(%,4,1)
  1. S H=(BDMX("HT")*BDMX("HT")),W=BDMX("WT"),%=(W/H)*703,%=$J(%,4,1)
  1. S BDMX("BMI")=%
  1. Q
  1. ASPIRIN(P,D) ;
  1. I '$G(P) Q ""
  1. I '$G(D) S D=0 ;if don't pass date look at all time
  1. NEW V,I,%
  1. S %=""
  1. NEW T,T1,T2 S T=$O(^ATXAX("B","DM AUDIT ASPIRIN DRUGS",0))
  1. S T1=$O(^ATXAX("B","DM AUDIT ANTI-PLATELET DRUGS",0))
  1. S T2=$O(^ATXAX("B","DM AUDIT ANTIPLT/ANTICOAG RX",0))
  1. I 'T Q ""
  1. S I=0 F S I=$O(^AUPNVMED("AA",P,I)) Q:I'=+I!(%)!(I>(9999999-D)) D
  1. .S V=0 F S V=$O(^AUPNVMED("AA",P,I,V)) Q:V'=+V!(%) S G=$P(^AUPNVMED(V,0),U) D
  1. ..I $D(^ATXAX(T,21,"B",G)) S %=V Q
  1. ..I T2,$D(^ATXAX(T2,21,"B",G)) S %=V Q
  1. ..I T1,$D(^ATXAX(T1,21,"B",G)) S %=V Q
  1. I %]"" D Q %
  1. .I $P(^AUPNVMED(%,0),U,8)="" S %="Yes "_$$DATE($P($P(^AUPNVSIT($P(^AUPNVMED(%,0),U,3),0),U),"."))_" "_$$VAL^XBDIQ1(9000010.14,%,.01) Q
  1. .I $P(^AUPNVMED(%,0),U,8)]"" S %="Discontinued "_$$DATE($P($P(^AUPNVSIT($P(^AUPNVMED(%,0),U,3),0),U),"."))_" "_$$VAL^XBDIQ1(9000010.14,%,.01) Q
  1. Q "No"
  1. DOO(P) ;get earliest date of onset
  1. NEW X,DOO
  1. S X=$$CMSFDX^BDMS9B4(P,"I")
  1. I X]"",'$D(DOO(X)) S DOO(X)=$E($$CMSFDXR^BDMS9B4(P),1,22)
  1. S DOO="" S X=$$PLDMDOO^BDMS9B4(P,"I")
  1. I X]"" S DOO(X)="Problem List"
  1. I $O(DOO(0))="" Q ""
  1. S X=$O(DOO(0)) Q $$DATE(X)_" ("_DOO(X)_")"
  1. NOTREG(P) ;is patient on any Diabetes register 1 if on reg, "" if not
  1. I $G(P)="" Q ""
  1. NEW X,Y
  1. S X=0,Y="" F S X=$O(^ACM(41,"AC",P,X)) Q:X'=+X!(Y) D
  1. .S N=$$UP^XLFSTR($P($G(^ACM(41.1,X,0)),U))
  1. .I N["DIABETES" S Y=1
  1. .I N["DIAB" S Y=1
  1. .I N["DM " S Y=1
  1. .I N[" DM" S Y=1
  1. .Q
  1. Q Y
  1. DEPPL(P,BDATE,EDATE) ;EP
  1. NEW BDM,X
  1. K BDM
  1. S (G,X,I)=""
  1. ;is depression on the problem list?
  1. S T=$O(^ATXAX("B","BGP MOOD DISORDERS",0))
  1. S X=0 F S X=$O(^AUPNPROB("AC",P,X)) Q:X'=+X!(G]"") D
  1. .S I=$P($G(^AUPNPROB(X,0)),U)
  1. .Q:'$$ICD^BDMUTL(I,"BGP MOOD DISORDERS",9)
  1. .Q:$P(^AUPNPROB(X,0),U,12)="D"
  1. .Q:$P(^AUPNPROB(X,0),U,12)="I"
  1. .S G="Yes Problem List ("_$P($$ICDDX^BDMUTL(I,,,"I"),U,2)_") " ;_$E($P($$ICDDX^BDMUTL(I,,,"I"),U,4),1,20)
  1. .I $P($G(^AUPNPROB(X,800)),U,1)]"",$$SNOMED^BDMUTL($$LE^BDMS9B2(),"DEPRESSION DIAGNOSES",$P(^AUPNPROB(X,800),U,1)) S G="Yes Problem List (SNOMED: "_$P(^AUPNPROB(X,800),U,1)_") "
  1. .Q
  1. I G]"" Q G
  1. S (G,X,I)=""
  1. ;is depression on the BH problem list?
  1. S T=$O(^ATXAX("B","BGP MOOD DISORDERS",0))
  1. S X=0 F S X=$O(^AMHPPROB("AC",P,X)) Q:X'=+X!(G]"") D
  1. .S I=$P($G(^AMHPPROB(X,0)),U)
  1. .Q:I=""
  1. .S I=$P($G(^AMHPROB(I,0)),U,5)
  1. .Q:I=""
  1. .;S I=+$$CODEN^ICDCODE(I,80)
  1. .S I=+$$CODEN^BDMUTL(I,80) ;cmi/maw 05/14/2014 patch 8 ICD-10
  1. .Q:I=""
  1. .Q:'$$ICD^BDMUTL(I,T,9)
  1. .Q:$P(^AMHPPROB(X,0),U,12)'="A"
  1. .;S G="Yes - BH Problem List "_$P(^ICD9(I,0),U) cmi/anch/maw 8/27/2007 orig line
  1. .S G="Yes - BH Problem List "_$P($$ICDDX^BDMUTL(I,,,"I"),U,2) ;cmi/anch/maw 8/27/2007 code set versioning
  1. .Q
  1. I G]"" Q G
  1. ;now check for 2 dxs in past year
  1. S Y="BDM("
  1. S X=P_"^LAST 2 DX [BGP MOOD DISORDERS;DURING "_BDATE_"-"_EDATE S E=$$START1^APCLDF(X,Y)
  1. I $D(BDM(2)) Q "Yes, 2 or more dxs in past year"
  1. S BDM=0,BDMV="" I $D(BDM(1)) S BDM=1,BDMV=$P(BDM(1),U,5)
  1. S X=BDATE,%DT="P" D ^%DT S BD=Y
  1. S X=EDATE,%DT="P" D ^%DT S ED=Y
  1. ;go through BH record file and find up to 2 visits in date range
  1. S E=9999999-BDATE,D=9999999-EDATE-1_".99" F S D=$O(^AMHREC("AE",P,D)) Q:D'=+D!($P(D,".")>E)!(BDM>1) S V=0 F S V=$O(^AMHREC("AE",P,D,V)) Q:V'=+V!(BDM>1) D
  1. .Q:'$D(^AMHREC(V,0))
  1. .I $P(^AMHREC(V,0),U,16)]"",BDMV]"",$P(^AMHREC(V,0),U,16)=BDMV Q ;don't use same visit
  1. .S X=0 F S X=$O(^AMHRPRO("AD",V,X)) Q:X'=+X!(BDM>1) S BDMP=$P($G(^AMHRPRO(X,0)),U) D
  1. ..Q:'BDMP
  1. ..S BDMP=$P($G(^AMHPROB(BDMP,0)),U)
  1. ..I BDMP=14 S BDM=BDM+1 Q
  1. ..I BDMP=15 S BDM=BDM+1 Q
  1. ..I BDMP=18 S BDM=BDM+1 Q
  1. ..I BDMP=24 S BDM=BDM+1 Q
  1. ..I $E(BDMP,1,3)=296 S BDM=BDM+1 Q
  1. ..I $E(BDMP,1,3)=300 S BDM=BDM+1 Q
  1. ..I $E(BDMP,1,3)=309 S BDM=BDM+1 Q
  1. ..I BDMP="301.13" S BDM=BDM+1 Q
  1. ..I BDMP=308.3 S BDM=BDM+1 Q
  1. ..I BDMP="311." S BDM=BDM+1 Q
  1. ..Q
  1. I BDM>1 Q "Yes, 2 or more dxs in past year"
  1. Q "No"