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

BHSAST.m

Go to the documentation of this file.
  1. BHSAST ;IHS/MSC/MGH - Asthma supplement data ;21-Apr-2014 17:43;DU
  1. ;;1.0;HEALTH SUMMARY COMPONENTS;**3,6,9**;March 17,2006;Build 16
  1. ;============================================================
  1. ; IHS/CMI/LAB - ;16-Jul-2009 09:38;MGH
  1. ;;2.0;IHS PCC SUITE;;MAY 14, 2009
  1. ;Copy of APCHAST routine in IHS health summary
  1. ;BJPC v1.0 patch 1
  1. ;Patch 6 upgraded for tobacco
  1. ;-----------------------------------------------------
  1. S(Y,F,C,T) ;EP - set up array
  1. I '$G(F) S F=0
  1. I '$G(T) S T=0
  1. NEW %,X
  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("BHSAST",$J,"DCS",0),U)+1,$P(^TMP("BHSAST",$J,"DCS",0),U)=%
  1. S ^TMP("BHSAST",$J,"DCS",%)=X
  1. Q
  1. EP(DFN) ;PEP - Asthma supplement for health summary
  1. NEW BHX,APCHQUIT,BHSX
  1. NEW X,Y,Z,A,I,B,E,T
  1. D EP2(DFN)
  1. W ;write out array
  1. D CKP^GMTSUP Q:$D(GMTSQIT)
  1. S BHX=0 F S BHX=$O(^TMP("BHSAST",$J,"DCS",BHX)) Q:BHX'=+BHX!($D(GMTSQIT)) D
  1. .D CKP^GMTSUP Q:$D(GMTSQIT)
  1. .W !,^TMP("BHSAST",$J,"DCS",BHX)
  1. .Q
  1. D CKP^GMTSUP Q:$D(GMTSQIT)
  1. D EOJ
  1. Q
  1. ;
  1. EOJ ;
  1. ;D EN^XBVK("BAT")
  1. K N,%,T,F,X,Y,B,C,E,F,H,L,N,P,T,W,M,T,T1,T2,T3
  1. K BHF,BHG,BHC,BHSICL,BHSNRP,BHY,BHSNRQ
  1. K BHDG,BHDTM,BHDYS,BHEXP,BHMFX,BHORTS,BHMED,BHPWHT,BHTDAT,BHQTY,BHREF,BHRFL,BHRX,BHSO,BHSTAT,BHDG,BHCRN
  1. Q
  1. ;I $E(IOST)="C",IO=IO(0) W ! S DIR(0)="EO" D ^DIR K DIR I Y=0!(Y="^")!($D(DTOUT)) S APCHQUIT="" Q
  1. HEAD1 ;
  1. ;W:$D(IOF) @IOF
  1. ;W !,APCHSHDR
  1. ;W !,"ASTHMA PATIENT CARE SUMMARY Report Date: ",$$FMTE^XLFDT(DT),!
  1. Q
  1. EP2(DFN) ;EP - PASS DFN get back array of patient care summary
  1. ;at this point you are stuck with ^TMP("BHSAST",$J,"DCS"
  1. K ^TMP("BHSAST",$J,"DCS")
  1. S ^TMP("BHSAST",$J,"DCS",0)=0
  1. D SETARRAY
  1. Q
  1. SETARRAY ;set up array containing dm care summary
  1. ;S X=APCHSHDR D S(X)
  1. S X="ASTHMA PATIENT CARE SUMMARY Report Date: "_$$FMTE^XLFDT(DT) D S(X,1)
  1. S X=$P(^DPT(DFN,0),U),$E(X,35)="HRN: "_$$HRN^AUPNPAT(DFN,DUZ(2)) D S(X,1)
  1. S X="DOB: "_$$DOB^AUPNPAT(DFN,"E")_" Age: "_$$AGE^AUPNPAT(DFN)_" "_$$SEX^AUPNPAT(DFN) ;S Y=$$VAL^XBDIQ1(90181.01,DFN,.02)
  1. S Y="" I $T(ATAG^BQITDUTL)="" S Y="Asthma Diagnostic Tag: Data Not Available" S $E(X,35)=Y
  1. I $T(ATAG^BQITDUTL)]"" S T=$$ATAG^BQITDUTL(DFN,"Asthma") S Y="Asthma Diagnostic Tag: "_$S($P(T,U,2)="P":"Proposed",$P(T,U,2)="A":"Accepted",1:"None") S $E(X,35)=Y
  1. ;put icare tag here at in place of asthma register status
  1. ; S $E(X,35)="Asthma Register Status: "_$S(Y]"":Y,1:"NOT ON REGISTER") D S(X)
  1. D S(X)
  1. I $O(^BDPRECN("C",DFN,0)) D I 1
  1. .D S(" ")
  1. .S BHSX=0 F S BHSX=$O(^BDPRECN("C",DFN,BHSX)) Q:BHSX'=+BHSX D
  1. ..S A=$P($G(^BDPRECN(BHSX,0)),U)
  1. ..Q:A=""
  1. ..Q:'$D(^BDPTCAT(A,0))
  1. ..Q:$P(^BDPTCAT(A,0),U,8)="N"
  1. ..S A=$$VAL^XBDIQ1(90360.1,BHSX,.01)
  1. ..;S X="",$E(X,(38-$L(A)))=A,X=X_": "_$$VAL^XBDIQ1(90360.1,BHSX,.03) D S(X)
  1. ..S X="",X=A,X=X_": "_$$VAL^XBDIQ1(90360.1,BHSX,.03) D S(X)
  1. .Q
  1. E S X="DESIGNATED PRIMARY PROVIDER: "_$$VAL^XBDIQ1(9000001,DFN,.14) D S(X)
  1. D S(" ")
  1. K BHPL,BHASEV D PLASTA(DFN,.BHPL) ;get problem list # and narrative
  1. I '$D(BHPL) S Y="ASTHMA IS NOT ON THIS PATIENT'S PROBLEM LIST; CONSIDER ADDING" D S(Y,1)
  1. I $D(BHPL) D
  1. .S X=0,C=0 F S X=$O(BHPL(X)) Q:X'=+X D
  1. ..S C=C+1
  1. ..I C=1 S Y="Asthma-Related Problem List: " D S(Y)
  1. ..I C'=1 D S("")
  1. ..;I C'=1 S Y=" "
  1. ..K Z
  1. ..S BHSNRQ=BHPL(X),BHSICL=5 D ICD^BHSAST1
  1. ..S D=0 F S D=$O(Z(D)) Q:D="" D
  1. ...;I D=1 S Y=Y_Z(D) D S(Y)
  1. ...D S(Z(D))
  1. ..S Y=" Asthma Severity: "_$S($P(^AUPNPROB(X,0),U,15)]"":$$VAL^XBDIQ1(9000011,X,.15),1:"None Documented") D S(Y)
  1. ..S Y=" Date of Onset: "_$S($P(^AUPNPROB(X,0),U,13)]"":$$VAL^XBDIQ1(9000011,X,.13),1:"None Documented") D S(Y)
  1. ..S Y=" Date Last Updated: "_$$VAL^XBDIQ1(9000011,X,.03) D S(Y)
  1. ..;notes
  1. ..S BHX=0 F S BHX=$O(^AUPNPROB(X,11,BHX)) Q:BHX'=+BHX D
  1. ...S S=$P(^AUPNPROB(X,11,BHX,0),U,1),S=$S($P(^AUTTLOC(S,0),U,7)]"":$P(^AUTTLOC(S,0),U,7),1:"??")
  1. ...S S=$P(BHPL(X)," ")_S
  1. ...S BHY=0 F S BHY=$O(^AUPNPROB(X,11,BHX,11,BHY)) Q:BHY'=+BHY D
  1. ....S BHSICL=6,BHSNRQ=S_$P(^AUPNPROB(X,11,BHX,11,BHY,0),U)_" "_$$FMTE^XLFDT($P(^AUPNPROB(X,11,BHX,11,BHY,0),U,5))_" "_$P(^AUPNPROB(X,11,BHX,11,BHY,0),U,3) D ICD^BHSAST1
  1. ....S E=0 F S E=$O(Z(E)) Q:E="" D S(Z(E))
  1. S X="Most Recent Control: "_$$LASTACON^APCHSMAS(DFN,7) D S(X,1)
  1. ;get and display FH
  1. K BHTFH
  1. D FMH^BHSAST1(DFN,.BHTFH)
  1. S Y="Asthma-Related FAMILY HEALTH HISTORY: "
  1. I '$D(BHTFH) S Y=Y_"None Documented" D S(Y,1)
  1. I $D(BHTFH) D S(Y,1) D S("Date Last Mod Relation/Status/Diagnosis") D
  1. .S X=0 F S X=$O(BHTFH(X)) Q:X="" D
  1. ..I X=1,BHTFH(1)="" Q
  1. ..D S(BHTFH(X))
  1. ;S B=$$LASTITEM^APCHSMU(DFN,"BPF","MEASUREMENT","B")
  1. S B=$$PBPF(DFN,"B")
  1. I $P(B,U)]"" S X="Personal Best Peak Flow "_$P(B,U,2)_" liters/minute on "_$$FMTE^XLFDT($P(B,U)) D S(X,1)
  1. I $P(B,U)="" S X="Personal Best Peak Flow: None Documented." D S(X,1)
  1. S X="Peak Flow Zones",$E(X,21)="Green (80-100%)",$E(X,39)=$$GREEN($P(B,U,2)) D S(X,1)
  1. S X="",$E(X,21)="Yellow (50-79%)",$E(X,39)=$$YELLOW($P(B,U,2)) D S(X)
  1. S X="",$E(X,21)="Red (< 50%)",$E(X,39)=$$RED($P(B,U,2)) D S(X)
  1. S Y=$$LASTITEM^APCHSMU(DFN,"ASM-SMP","EDUCATION") I Y]"" S X="Date of Last Asthma Action Plan: "_$$FMTE^XLFDT(Y)_$S($$FMDIFF^XLFDT(DT,Y)>365:" Needs to be reviewed.",1:"") D S(X,1)
  1. I Y="" S Y=$$LASTAM(DFN,1) I Y]"" S X="Date of Last Asthma Management Plan: "_$$FMTE^XLFDT(Y)_$S($$FMDIFF^XLFDT(DT,Y)>365:" Needs to be reviewed.",1:"") D S(X,1)
  1. I Y="" S X="Date of Last Asthma Action Plan: NEEDS TO BE REVIEWED" D S(X,1)
  1. TRIGHF ;trigger health factors
  1. S BHG=0 K BHSX
  1. S BHC=$O(^AUTTHF("B","ASTHMA TRIGGERS",0))
  1. G:'BHC TOB
  1. S BHF=0 F S BHF=$O(^AUTTHF("AC",BHC,BHF)) Q:BHF'=+BHF D
  1. .Q:'$D(^AUPNVHF("AA",DFN,BHF))
  1. .S D=$O(^AUPNVHF("AA",DFN,BHF,""))
  1. .S BHG=BHG+1
  1. .S X=" "_$P(^AUTTHF(BHF,0),U),$E(X,35)="Yes, documented on "_$$FMTE^XLFDT((9999999-D)) S BHSX(BHG)=X
  1. S X="Triggers: "_$S('BHG:"No Triggers identified.",1:"") D S(X,1)
  1. S BHG=0 F S BHG=$O(BHSX(BHG)) Q:BHG'=+BHG D S(BHSX(BHG))
  1. TOB ;
  1. ;S Y=$$LASTTOBS^APCLAPI1(DFN,,,"A"),X="Last Recorded TOBACCO Screening: "_$P(Y,U,2)_" "_$$FMTE^XLFDT($P(Y,U,1)) D S(X,1)
  1. S Y=$$LASTSMOK^APCLAPI7(DFN,,,"A"),X="Last TOBACCO (SMOKING) Screening: "_$P(Y,U,2)_" "_$$DATE^APCHSMU($P(Y,U,1)) D S(X,1)
  1. S Y=$$LASTSMLE^APCLAPI7(DFN,,,"A"),X="Last TOBACCO (SMOKELESS) Screening: "_$P(Y,U,2)_" "_$$DATE^APCHSMU($P(Y,U,1)) D S(X,1)
  1. S Y=$$LASTSMEX^APCLAPI7(DFN,,,"A"),X="Last TOBACCO (EXPOSURE) Screening: "_$P(Y,U,2)_" "_$$DATE^APCHSMU($P(Y,U,1)) D S(X,1)
  1. V D LAST5
  1. S X="Last 5 Visits w/LUNG FUNCTION Measurements" D S(X,1)
  1. S X="",$E(X,3)="DATE",$E(X,20)="FEV1/FVC",$E(X,38)="Highest Visit Peak Flow",$E(X,65)="FEF 25-75" D S(X)
  1. S X="",$P(X,"-",75)="" D S(X)
  1. I '$D(BHL) S X="NO MEASUREMENTS DOCUMENTED" D S(X) G ASFD
  1. S D=0,C=0 F S D=$O(BHL(D)) Q:D'=+D!(C>5) D
  1. .S C=C+1,V=0 F S V=$O(BHL(D,V)) Q:V'=+V D
  1. ..S X="",$E(X,3)=$$FMTE^XLFDT((9999999-D),"1D")
  1. ..I $P(BHL(D,V),U,3)]"" S $E(X,20)=$P(BHL(D,V),U,3)
  1. ..I $P(BHL(D,V),U,4)]"" S $E(X,38)=$P(BHL(D,V),U,4)
  1. ..I $P(BHL(D,V),U,5)]"" S $E(X,65)=$P(BHL(D,V),U,5)
  1. ..D S(X)
  1. ASFD ;asthma symptom free days
  1. K BHASFD
  1. K BHL
  1. S X=DFN_"^ALL MEAS ASFD"_";DURING "_$$FMADD^XLFDT(DT,-365)_"-"_DT S E=$$START1^APCLDF(X,"BHL(")
  1. I '$D(BHL(1)) S Y="Asthma Symptom-Free Days:" D S(Y,1) D S("Asthma Symptom Free Days should be reviewed at every Asthma visit")
  1. I $D(BHL) D
  1. .S Y="Asthma Symptom-Free Days:" D S(Y,1)
  1. .S Y=" Visit Date",$E(Y,20)="Symptom-Free Days" D S(Y)
  1. .S X="",$P(X,"-",50)="" D S(X)
  1. .S X=0 F S X=$O(BHL(X)) Q:X'=+X S BHL("D",(9999999-$P(BHL(X),U)),+$P(BHL(X),U,4))=BHL(X)
  1. .S D=0,C=0 F S D=$O(BHL("D",D)) Q:D'=+D!(C>3) D
  1. ..S I=0,C=C+1 F S I=$O(BHL("D",D,I)) Q:I'=+I D
  1. ...S Y=" "_$$FMTE^XLFDT((9999999-D)),$E(Y,20)=$P(BHL("D",D,I),U,2) D S(Y)
  1. ;
  1. ADM ;
  1. K BHASFD
  1. K BHL
  1. S X=DFN_"^ALL MEAS ADM"_";DURING "_$$FMADD^XLFDT(DT,-365)_"-"_DT S E=$$START1^APCLDF(X,"BHL(")
  1. I '$D(BHL(1)) S Y="Asthma Work/School Days Missed:" D S(Y,1) D S("Asthma Work/School days missed should be reviewed at every Asthma visit")
  1. I $D(BHL) D
  1. .S Y="Asthma Work/School Days Missed:" D S(Y,1)
  1. .S Y=" Visit Date",$E(Y,20)="Work/School Days Missed" D S(Y)
  1. .S X="",$P(X,"-",50)="" D S(X)
  1. .S X=0 F S X=$O(BHL(X)) Q:X'=+X S BHL("D",(9999999-$P(BHL(X),U)),+$P(BHL(X),U,4))=BHL(X)
  1. .S D=0,C=0 F S D=$O(BHL("D",D)) Q:D'=+D!(C>3) D
  1. ..S I=0,C=C+1 F S I=$O(BHL("D",D,I)) Q:I'=+I D
  1. ...S Y=" "_$$FMTE^XLFDT((9999999-D)),$E(Y,20)=$P(BHL("D",D,I),U,2) D S(Y)
  1. ;
  1. N ;more stuff
  1. D N^BHSAST1
  1. Q
  1. ;
  1. PBPF(P,F) ;EP - BEST PEAK FLOW
  1. I $G(F)="" S F="D"
  1. NEW APCHY,%,E,Y K APCHY S %=P_"^ALL MEAS BPF",E=$$START1^APCLDF(%,"APCHY(")
  1. S %="",Y=0 F S Y=$O(APCHY(Y)) Q:Y'=+Y I $P(APCHY(Y),U,1)>$P(%,U,1) S %=APCHY(Y)
  1. Q $S(F="D":$P(%,"^"),F="B":$P(%,"^")_"^"_$P(%,"^",2),1:$P(%,"^",2))
  1. ;
  1. GREEN(V) ;EP - GREEN VALUE
  1. NEW P,P1
  1. I $G(V)="" Q ""
  1. S P=$J((V*.80),3,0),P1=V
  1. Q P_"-"_V_" liters/minute"
  1. YELLOW(V) ;EP - YELLOW VALUE
  1. NEW P,P1
  1. I $G(V)="" Q ""
  1. S P=(V*.50)
  1. S P=$J(P,3,0)
  1. S P1=(V*.80),P1=P1-1,P1=$J(P1,3,0)
  1. Q P_"-"_P1_" liters/minute"
  1. RED(V,D) ;EP - RED VALUE
  1. NEW P,P1
  1. I $G(V)="" Q ""
  1. S P=((.50*V))
  1. S P=$J(P,3,0)
  1. Q "<"_P_" liters/minute"
  1. ;
  1. ;
  1. PLAST(P,F) ;EP
  1. ;1 return 1 if yes, null if no
  1. ;2 return problem number _ provdier narrative
  1. I '$G(P) Q ""
  1. I '$G(F) S F=1
  1. NEW I,A,B,G,S
  1. S G="",A=0 F S A=$O(^AUPNPROB("AC",P,A)) Q:A'=+A!(G]"") D
  1. .S I=$P(^AUPNPROB(A,0),U)
  1. .;Patch 9 use new APIs for ICD codes
  1. .I $$AICD^BHSUTL S S=$P($$ICDDX^ICDEX(I,"","","I"),U,2)
  1. .E S S=$P($$ICDDX^ICDCODE(I,""),U,2)
  1. .Q:P=""
  1. .I '$O(^ATXAX("B","BGP ASTHMA DXS",0)),$E(S,1,3)'="493" Q
  1. .I $O(^ATXAX("B","BGP ASTHMA DXS",0)),'$$ICD^ATXCHK(I,$O(^ATXAX("B","BGP ASTHMA DXS",0)),9) Q
  1. .S G=A
  1. .Q
  1. I G="" Q ""
  1. I F=1 Q 1
  1. I F=2 S G=$$PLN(G) Q G
  1. Q ""
  1. PLASTA(P,R) ;EP
  1. ;1 return 1 if yes, null if no
  1. ;2 return problem number _ provdier narrative
  1. I '$G(P) Q ""
  1. I '$G(F) S F=1
  1. NEW I,A,B,G,S
  1. K R
  1. S G="",A=0 F S A=$O(^AUPNPROB("AC",P,A)) Q:A'=+A!(G]"") D
  1. .S I=$P(^AUPNPROB(A,0),U)
  1. .;P8 changes for ICD-10
  1. .I $$AICD^BHSUTL S S=$P($$ICDDX^ICDEX(I,"","","I"),U,2)
  1. .E S S=$P($$ICDDX^ICDCODE(I,""),U,2)
  1. .Q:P=""
  1. .I '$O(^ATXAX("B","BGP ASTHMA DXS",0)),$E(S,1,3)'="493" Q
  1. .I $O(^ATXAX("B","BGP ASTHMA DXS",0)),'$$ICD^ATXCHK(I,$O(^ATXAX("B","BGP ASTHMA DXS",0)),9) Q
  1. .S BHPL(A)=$$PLN(A)
  1. .Q
  1. Q
  1. DXAST(P) ;EP
  1. I '$G(P) Q ""
  1. NEW D,I,A,G,S
  1. S (D,G)=0 F S D=$O(^AUPNVPOV("AA",P,D)) Q:D'=+D!(G) D
  1. .S I=0 F S I=$O(^AUPNVPOV("AA",P,D,I)) Q:I'=+I!(G) D
  1. ..S A=$P(^AUPNVPOV(I,0),U)
  1. ..;Patch 8 Use new APIS for codes
  1. ..I $$AICD^BHSUTL S S=$P($$ICDDX^ICDEX(A,"","","I"),U,2)
  1. ..E S S=$P($$ICDDX^ICDCODE(A,""),U,2)
  1. ..I '$O(^ATXAX("B","BGP ASTHMA DXS",0)),$E(S,1,3)'="493" Q
  1. ..I $O(^ATXAX("B","BGP ASTHMA DXS",0)),'$$ICD^ATXCHK(A,$O(^ATXAX("B","BGP ASTHMA DXS",0)),9) Q
  1. ..S G=1
  1. ..Q
  1. .Q
  1. Q G
  1. ;
  1. ;
  1. ;
  1. LAST5 ;
  1. K BHD,BHV,BHL
  1. S M="FVFC",P=3 D GETM
  1. S M="PF",P=4 D GETM
  1. S M="FEF",P=5 D GETM
  1. K BHD,BHV
  1. Q
  1. GETM ;
  1. S X=DFN_"^ALL MEASUREMENT "_M S E=$$START1^APCLDF(X,"BHD(")
  1. S X=0 F S X=$O(BHD(X)) Q:X'=+X D
  1. .S I=+$P(BHD(X),U,4),V=$P(BHD(X),U,5),R=$P(BHD(X),U,2)
  1. .I M'="FVFC" D Q
  1. ..Q:$P($G(BHL((9999999-$P($P(^AUPNVSIT(V,0),U),".")),V)),U,P)>$P(^AUPNVMSR(I,0),U,4)
  1. ..S $P(BHL((9999999-$P($P(^AUPNVSIT(V,0),U),".")),V),U,P)=$P(^AUPNVMSR(I,0),U,4)
  1. .S Y=$$FVFC($P(^AUPNVMSR(I,0),U,4))
  1. .Q:$P($G(BHL((999999-$P($P(^AUPNVSIT(V,0),U),".")),V)),U,3)>Y
  1. .S $P(BHL((9999999-$P($P(^AUPNVSIT(V,0),U),".")),V),U,3)=$P(^AUPNVMSR(I,0),U,4)_" ("_Y_")"
  1. K BHD,BHV
  1. Q
  1. ;
  1. FVFC(R) ;
  1. NEW F,S,V
  1. S F=$P(R,"/")
  1. S S=$P(R,"/",2)
  1. I S="" Q ""
  1. I F="" Q ""
  1. I S=0 Q 0
  1. S P=F/S
  1. I $L($P(P,"."))>3 S P=P+.005
  1. Q $$STRIP^XLFSTR($J(P,5,2)," ")
  1. S P=$P(P,".")_"."_$E($P(P,".",2),1,2)
  1. Q P
  1. ;
  1. PLN(E) ;
  1. NEW S
  1. S S=$P(^AUPNPROB(E,0),U,6),S=$S('S:"??",$P(^AUTTLOC(S,0),U,7)]"":$P(^AUTTLOC(S,0),U,7),1:"??")
  1. Q S_$P(^AUPNPROB(E,0),U,7)_" "_$$VAL^XBDIQ1(9000011,E,.05)_$S($P(^AUPNPROB(E,0),U,12)="I":" (INACTIVE)",1:"")_" ("_$$VAL^XBDIQ1(9000011,E,.01)_") "
  1. ;
  1. LASTAM(P,F) ;EP - return date of last asthma management plan = yes
  1. I '$G(P) Q ""
  1. I '$G(F) S F=1
  1. NEW D,I,V,% S D=$O(^AUPNVAST("AM",P,0))
  1. I 'D Q ""
  1. I F=1 Q 9999999-D
  1. I F=2 Q $$FMTE^XLFDT(9999999-D)
  1. I F=3 D Q %
  1. .S I=$O(^AUPNVAST("AM",P,D,1,0))
  1. .I I S V=$P($G(^AUPNVAST(I,0)),U,3)
  1. .S %=(9999999-D)_"^ASTHMA MANAGEMENT PLAN^^"_V_"^9000010.41^"_I
  1. Q ""
  1. ;
  1. LASTSEV(P,F) ;EP - return highest CLASSIFICATION recorded
  1. NEW D,LAST,E,S,X,T
  1. I '$G(P) Q ""
  1. I '$G(F) S F=1
  1. S T=$O(^ATXAX("B","BGP ASTHMA DXS",0))
  1. I 'T Q ""
  1. S S=""
  1. S X=0 F S X=$O(^AUPNPROB("AC",P,X)) Q:X'=+X D
  1. .S C=$P($G(^AUPNPROB(X,0)),U)
  1. .Q:C=""
  1. .Q:'$$ICD^ATXCHK(C,T,9) ;not asthma dx
  1. .Q:$P(^AUPNPROB(X,0),U,15)="" ;no classification
  1. .S E=$P(^AUPNPROB(X,0),U,15)
  1. .I E'>$P(S,U,1) Q
  1. .S S=E_U_$$VAL^XBDIQ1(9000011,X,.15)_U_$P(^AUPNPROB(X,0),U,3)
  1. I F=1 Q $P(S,U)
  1. I F=2 Q $P(S,U,3)
  1. I F=3 Q $$FMTE^XLFDT($P(S,U,3))
  1. I F=4 Q $P($P(S,U,2),"-",2)
  1. I F=5 Q $P(S,U,2)
  1. Q ""