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

BHSDM4.m

Go to the documentation of this file.
  1. BHSDM4 ;IHS/CIA/MGH - Health Summary for Diabetic Supplement ;30-Nov-2015 10:24;DU
  1. ;;1.0;HEALTH SUMMARY COMPONENTS;**1,2,9,12**;March 17, 2006;Build 3
  1. ;===================================================================
  1. ;VA version of IHS components for supplemental summaries
  1. ;Taken from APCHS9B4
  1. ; IHS/TUCSON/LAB - DIABETIC CARE SUMMARY SUPPLEMENT ; [ 05/10/04 6:07 AM ]
  1. ;;2.0;IHS RPMS/PCC Health Summary;**3,5,6,7,8,10,11,12**;JUN 24, 1997
  1. ;Patch 1001 to bring up to patch 15
  1. ;Patch 2, code set versioning
  1. ;Patch 12, use new API for taxonomies
  1. ;===================================================================
  1. FRSTDMDX(P,F) ;EP return date of first dm dx
  1. I $G(F)="" S F="E"
  1. I '$G(P) Q ""
  1. NEW X,E,BHSS,Y
  1. S Y="BHSS("
  1. S X=P_"^FIRST DX [SURVEILLANCE DIABETES" S E=$$START1^APCLDF(X,Y) S Y=$P($G(BHSS(1)),U)
  1. Q $S(F="E":$$FMTE^XLFDT(Y),1:Y)
  1. CMSFDX(P,F) ;EP - return date/dx of dm in register
  1. I $G(F)="" S F="E"
  1. I '$G(P) Q ""
  1. ;NEW R S R=$O(^ACM(41.1,"B","IHS DIABETES",0)) I 'R Q ""
  1. NEW R,N,D,D1,Y,X,G S R=0,N="",D="" F S N=$O(^ACM(41.1,"B",N)) Q:N=""!(D]"") S R=0 F S R=$O(^ACM(41.1,"B",N,R)) Q:R'=+R!(D]"") I N["DIAB" D
  1. .S (G,X)=0,(D,Y)="" F S X=$O(^ACM(44,"C",P,X)) Q:X'=+X!(D]"") I $P(^ACM(44,X,0),U,4)=R D
  1. ..S D=$P($G(^ACM(44,X,"SV")),U,2) I D]"" S D1=D,D=$S(F="E":$$FMTE^XLFDT(D),1:D)
  1. Q $G(D)
  1. ;
  1. PLDMDOO(P,F) ;EP get first dm dx from case management
  1. I '$G(P) Q ""
  1. I $G(F)="" S F="E"
  1. NEW T,TAXARR
  1. ;IHS/MSC/MGH Moved taxonomy lookup out of loop
  1. S TAXARR=""
  1. 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
  1. .S I=$P(^AUPNPROB(X,0),U)
  1. .I $$ICD^ATXAPI(I,T,9) D
  1. ..I $P(^AUPNPROB(X,0),U,13)]"" S D($P(^AUPNPROB(X,0),U,13))=""
  1. ..Q
  1. .Q
  1. S D=$O(D(0))
  1. I D="" Q D
  1. Q $S(F="E":$$FMTE^XLFDT(D),1:D)
  1. DNKA(V) ;EP is this a DNKA visit?
  1. I '$G(V) Q ""
  1. NEW D,N S D=$$PRIMPOV^APCLV(V,"C")
  1. I D=".0860" Q 1
  1. S N=$$PRIMPOV^APCLV(V,"N")
  1. I $E(D)="V",N["DNKA" Q 1
  1. I $E(D)="V",N["DID NOT KEEP APPOINTMENT" Q 1
  1. I $E(D)="V",N["DID NOT KEEP APPT" Q 1
  1. Q 0
  1. REFR(V) ;
  1. I '$G(V) Q ""
  1. NEW D,N S D=$$PRIMPOV^APCLV(V,"C")
  1. I D="367.89"!(D="367.9") Q 1
  1. Q 0
  1. DFE(P,BHSSED) ;EP
  1. NEW BHSY,BHSV,%,LDFE S LDFE="",%=P_"^LAST EXAM DIABETIC FOOT EXAM",E=$$START1^APCLDF(%,"BHSY(")
  1. I $D(BHSY(1)) S LDFE=$P(BHSY(1),U)
  1. I $D(BHSY(1)),$P(BHSY(1),U)'<BHSSED S BHSX="Yes "_$$FMTE^XLFDT($P(BHSY(1),U))_" (Diabetic Foot Exam, Complete)" Q BHSX
  1. ;now check any clinic 65 or prov 33/25
  1. K BHSY,BHSV
  1. S %=P_"^ALL VISITS;DURING "_$$FMTE^XLFDT(BHSSED)_"-"_$$FMTE^XLFDT(DT),E=$$START1^APCLDF(%,"BHSY(")
  1. ;reorder by date of visit/reverse order
  1. S %=0 F S %=$O(BHSY(%)) Q:%'=+% S BHSV(9999999-$P(BHSY(%),U),$P(BHSY(%),U,5))=""
  1. N PROV,D,V,G S (D,V)=0,G="" F S D=$O(BHSV(D)) Q:D'=+D!(G) S V=0 F S V=$O(BHSV(D,V)) Q:V'=+V!(G) S PROV=$$PRIMPROV^APCLV(V,"D") I (PROV=33!(PROV=25)),'$$DNKA(V) S G=9999999-D
  1. I G]"" Q "Maybe "_$$FMTE^XLFDT(G)_" (Visit to Podiatrist)"
  1. S (D,V)=0,G="" F S D=$O(BHSV(D)) Q:D'=+D!(G) S V=0 F S V=$O(BHSV(D,V)) Q:V'=+V!(G) S PROV=$$CLINIC^APCLV(V,"C") I PROV=65!(PROV="B7"),'$$DNKA(V) S G=9999999-D
  1. I G]"" Q "Maybe "_$$FMTE^XLFDT(G)_" (Visit to Podiatry Clinic)"
  1. S G=$$REFDF^BHSDM3(P,9999999.15,$O(^AUTTEXAM("B","DIABETIC FOOT EXAM, COMPLETE",0)),$G(LDFE))
  1. I G]"" Q G
  1. Q "No "_$S($D(LDFE):$$FMTE^XLFDT(LDFE),1:"")
  1. ;
  1. EYE(P,BHSSED) ;EP
  1. NEW BHSY,LDEE,%,BHSEX S BHSEX=0 S LDEE="",%=P_"^LAST EXAM DIABETIC EYE EXAM",E=$$START1^APCLDF(%,"BHSY(")
  1. I $D(BHSY(1)) S LDEE=$P(BHSY(1),U),BHSEX=+$P(BHSY(1),U,4)
  1. I $P($G(BHSY(1)),U)'<BHSSED S BHSX="Yes "_$$FMTE^XLFDT($P(BHSY(1),U))_" (Diabetic Eye Exam)" Q BHSX
  1. K BHSY S BHSCPT=""
  1. NEW T,C,BHSCPT,BHSCPT1
  1. ;PATCH UPDATES
  1. F C=992250,92012,92014,92004,92002 S T=$O(^ICPT("B",C,0)) D
  1. .I T S BHSY=$O(^AUPNVCPT("AA",P,T,0)) I BHSY D
  1. ..S BHSY=9999999-BHSY
  1. ..I LDEE<BHSY S LDEE=BHSY,BHSEX=0,BHSCPT=T,BHSCPT1=C
  1. ;I LDEE,LDEE'<BHSSED Q "Yes "_$$FMTE^XLFDT(LDEE)_" (CPT "_BHSCPT1_"-"_$E($P(^ICPT(BHSCPT,0),U,2),1,28)_")"
  1. I LDEE,LDEE'<BHSSED Q "Yes "_$$FMTE^XLFDT(LDEE)_" (CPT "_BHSCPT1_"-"_$E($P($$CPT^ICPTCOD(BHSCPT,LDEE),U,3),1,28)_")" ;code set versioning cmi/anch/maw 8/2
  1. ;END PATCH UPDATES
  1. ;now check any clinic 17 or 18
  1. K BHSY,BHSV
  1. S %=P_"^ALL VISITS;DURING "_$$FMTE^XLFDT(BHSSED)_"-"_$$FMTE^XLFDT(DT),E=$$START1^APCLDF(%,"BHSY(")
  1. ;reorder by date of visit/reverse order
  1. S %=0 F S %=$O(BHSY(%)) Q:%'=+% S BHSV(9999999-$P(BHSY(%),U),$P(BHSY(%),U,5))=""
  1. N PROV,D,V,G
  1. S (D,V)=0,G="" F S D=$O(BHSV(D)) Q:D'=+D!(G) S V=0 F S V=$O(BHSV(D,V)) Q:V'=+V!(G) S PROV=$$PRIMPROV^APCLV(V,"D") I (PROV=24!(PROV=79)!(PROV="08")),'$$DNKA(V),'$$REFR(V) S G=9999999-D
  1. I G]"" Q "Maybe "_$$FMTE^XLFDT(G)_" (Ophthalmologist or Optometrist Visit)"
  1. S (D,V)=0,G="" F S D=$O(BHSV(D)) Q:D'=+D!(G) S V=0 F S V=$O(BHSV(D,V)) Q:V'=+V!(G) S PROV=$$CLINIC^APCLV(V,"C") I (PROV=17!(PROV=18)!(PROV=64)),'$$DNKA(V),'$$REFR(V) S G=9999999-D
  1. I G]"" Q "Maybe "_$$FMTE^XLFDT(G)_" (Optometry or Ophthalmology Clinic)"
  1. S G=$$REFDF^BHSDM3(P,9999999.15,$O(^AUTTEXAM("B","DIABETIC EYE EXAM",0)),$G(LDFE))
  1. I G]"" Q G
  1. S %="No "_$S($D(LDEE):$$FMTE^XLFDT(LDEE),1:"")
  1. I BHSEX S %=%_" (Diabetic Eye Exam) result: "_$P($$VAL^XBDIQ1(9000010.13,BHSEX,.04),"/",1)
  1. Q %
  1. RECTAL(P,BHSSED) ;EP
  1. I $$AGE^AUPNPAT(P)<41 Q "N/A"
  1. NEW BHSY S %=P_"^LAST EXAM RECTAL",E=$$START1^APCLDF(%,"BHSY(")
  1. I '$D(BHSY) Q "No <never recorded>"
  1. I $P(BHSY(1),U)'<BHSSED S BHSX="Yes "_$$FMTE^XLFDT($P(BHSY(1),U)) Q BHSX
  1. Q "No "_$$FMTE^XLFDT($P(BHSY(1),U))
  1. PAP(P,BHSSED) ;EP
  1. I $$SEX^AUPNPAT(P)'="F" Q "N/A"
  1. ;NEW BHSY S BHSY=$$HYSTER(BHSSDFN,DT) I BHSY]"" Q BHSY
  1. S LPAP=$$LASTPAP^APCHSMU(P)
  1. S G=$$REFDF^APCHS9B3(P,60,$O(^LAB(60,"B","PAP SMEAR",0)),$G(LPAP))
  1. I G]"" Q $G(LPAP)_"^"_G
  1. Q $G(LPAP)
  1. OLDPAP ;
  1. NEW BHSY,%,LPAP,D,J,I,T,V
  1. S LPAP="",%=P_"^LAST LAB PAP SMEAR",E=$$START1^APCLDF(%,"BHSY(")
  1. I $D(BHSY(1)) S LPAP=$P(BHSY(1),U)
  1. NEW BHSY,BHSLT,%,LPAP S LPAP="",%=P_"^LAST LAB [BGP PAP SMEAR TAX",E=$$START1^APCLDF(%,"BHSY(")
  1. I $D(BHSY(1)) S LPAP=$P(BHSY(1),U)
  1. ;Patch 1001 get last pap smear via loinc code
  1. S BHSLT=$O(^ATXAX("B","BGP PAP LOINC CODES",0))
  1. I BHSLT D
  1. .S D=0,G="" F S D=$O(^AUPNVLAB("AE",P,D)) Q:D=""!(G]"") D
  1. ..S T=0 F S T=$O(^AUPNVLAB("AE",P,D,T)) Q:T=""!(G]"") D
  1. ...S I=0 F S I=$O(^AUPNVLAB("AE",P,D,T,I)) Q:I=""!(G]"") D
  1. ....Q:'$D(^AUPNVLAB(I,0))
  1. ....S J=$P($G(^AUPNVLAB(I,11)),U,13)
  1. ....Q:J=""
  1. ....Q:'$$LOINC^APCHS9B2(J,BHSLT)
  1. ....S V=$P(^AUPNVLAB(I,0),U,3)
  1. ....S G=$P($P($G(^AUPNVSIT(V,0)),U),".")
  1. ....Q
  1. I G]"" D
  1. .Q:LPAP>G
  1. .S LPAP=G
  1. K BHSY S %=P_"^LAST DX V76.2",E=$$START1^APCLDF(%,"BHSY(")
  1. I $D(BHSY(1)) D
  1. .Q:LPAP>$P(BHSY(1),U)
  1. .S LPAP=$P(BHSY(1),U)
  1. K BHSY S %=P_"^LAST PROCEDURE 91.46",E=$$START1^APCLDF(%,"BHSY(")
  1. I $D(BHSY(1)) D
  1. .Q:LPAP>$P(BHSY(1),U)
  1. .S LPAP=$P(BHSY(1),U)
  1. K BHSY NEW % F %=1:1 S T=$T(PAPCPTS+%^BHSMU) Q:$P(T,";;",2)="" S T=$P(T,";;",2),T=$O(^ICPT("B",T,0)) I T S BHSY(1)=$O(^AUPNVCPT("AA",P,T,0)) I BHSY(1) S BHSY(1)=9999999-BHSY(1) D
  1. .Q:LPAP>$P(BHSY(1),U)
  1. .S LPAP=$P(BHSY(1),U)
  1. S T="PAP SMEAR",T=$O(^BWPN("B",T,0))
  1. I T S X=$$WH^BHSMU2(P,$$DOB^AUPNPAT(P),DT,T,3)
  1. I X]"" D
  1. .Q:LPAP>X
  1. .S LPAP=X
  1. S G=$$REFDF^BHSDM3(P,60,$O(^LAB(60,"B","PAP SMEAR",0)),$G(LPAP))
  1. I G]"" Q $G(LPAP)_"^"_G
  1. Q $G(LPAP)
  1. BREAST(P,BHSSED) ;EP
  1. I $$SEX^AUPNPAT(P)'="F" Q "N/A"
  1. NEW BHSY,% S %=P_"^LAST EXAM BREAST",E=$$START1^APCLDF(%,"BHSY(")
  1. I '$D(BHSY) Q "No <never recorded>"
  1. I $P(BHSY(1),U)'<BHSSED S BHSX="Yes "_$$FMTE^XLFDT($P(BHSY(1),U)) Q BHSX
  1. Q "No "_$$FMTE^XLFDT($P(BHSY(1),U))
  1. MAMMOG(P) ;EP
  1. I $$SEX^AUPNPAT(P)'="F" Q "N/A"
  1. NEW LMAM,T S LMAM=""
  1. I $G(^AUTTSITE(1,0)),$P(^AUTTLOC($P(^AUTTSITE(1,0),U),0),U,10)="353101" S LMAM=$$MAMMOG1(P)
  1. NEW BHSY,%,X,Y,V,G K BHSY
  1. S (X,Y,V)=0 F S X=$O(^AUPNVRAD("AC",P,X)) Q:X'=+X D
  1. .S V=$P(^AUPNVRAD(X,0),U,3),V=$P($P($G(^AUPNVSIT(V,0)),U),".")
  1. .S Y=$P(^AUPNVRAD(X,0),U),Y=$P($G(^RAMIS(71,Y,0)),U,9)
  1. .I Y=76092,V>LMAM S LMAM=V Q
  1. .I Y=76090,V>LMAM S LMAM=V Q
  1. .I Y=76091,V>LMAM S LMAM=V Q
  1. .I Y=77055,V>LMAM S LMAM=V Q
  1. .I Y=77056,V>LMAM S LMAM=V Q
  1. .I Y=77057,V>LMAM S LMAM=V Q
  1. .I Y=77058,V>LMAM S LMAM=V Q
  1. .I Y=77059,V>LMAM S LMAM=V Q
  1. .I Y="G0202",V>LMAM S LMAM=V Q
  1. .I Y="G0204",V>LMAM S LMAM=V Q
  1. .I Y="G0206",V>LMAM S LMAM=V Q
  1. K BHSY S %=P_"^LAST DX V76.11",E=$$START1^APCLDF(%,"BHSY(")
  1. I $D(BHSY(1)) D
  1. .Q:LMAM>$P(BHSY(1),U)
  1. .S LMAM=$P(BHSY(1),U)
  1. K BHSY S %=P_"^LAST DX V76.12",E=$$START1^APCLDF(%,"BHSY(")
  1. I $D(BHSY(1)) D
  1. .Q:LMAM>$P(BHSY(1),U)
  1. .S LMAM=$P(BHSY(1),U)
  1. K BHSY S %=P_"^LAST PROCEDURE 87.37",E=$$START1^APCLDF(%,"BHSY(")
  1. I $D(BHSY(1)) D
  1. .Q:LMAM>$P(BHSY(1),U)
  1. .S LMAM=$P(BHSY(1),U)
  1. K BHSY S %=P_"^LAST PROCEDURE 87.36",E=$$START1^APCLDF(%,"BHSY(")
  1. I $D(BHSY(1)) D
  1. .Q:LMAM>$P(BHSY(1),U)
  1. .S LMAM=$P(BHSY(1),U)
  1. S T=$O(^ATXAX("B","BGP CPT MAMMOGRAM",0))
  1. S X=$$CPT^APCHSMU2(P,$P(^DPT(P,0),U,3),DT,T,3)
  1. I X D
  1. .Q:LMAM>X
  1. .S LMAM=X
  1. ;if wh v3.0 get date for last mammogram
  1. I $$VERSION^XPDUTL("BW")>2 F X="MAMMOGRAM SCREENING","MAMMOGRAM DX UNILATERAL","MAMMOGRAM DX BILATERAL","MAMMOGRAM, UNSPECIFIED" D
  1. .S T=$O(^BWVPDT("B",X,0))
  1. .S V=$$WHAPI^BWVPAT1(P,T)
  1. .I $P(V,U)=0 S $P(V,U)=""
  1. .Q:LMAM>$P(V,U)
  1. .S LMAM=$P(V,U)
  1. ;now check wh package directly
  1. F X="MAMMOGRAM SCREENING","MAMMOGRAM DX UNILAT","MAMMOGRAM DX BILAT" D
  1. .S T=$O(^BWPN("B",X,0))
  1. .I T D
  1. ..S (G,V)=0 F S V=$O(^BWPCD("C",P,V)) Q:V=""!(G) D
  1. ...Q:'$D(^BWPCD(V,0))
  1. ...I $P(^BWPCD(V,0),U,4)'=T Q
  1. ...S D=$P(^BWPCD(V,0),U,12)
  1. ...Q:LMAM>D
  1. ...S LMAM=D
  1. .Q
  1. S G=""
  1. K APCHY S APCHY=0 F S APCHY=$O(^RAMIS(71,"D",76090,APCHY)) Q:APCHY'=+APCHY!(G]"") D
  1. .S G=$$REFDF^APCHS9B3(P,71,APCHY,$G(LMAM))
  1. I G]"" Q $G(LMAM)_"^"_G
  1. S G="" S APCHY=0 F S APCHY=$O(^RAMIS(71,"D",76091,APCHY)) Q:APCHY'=+APCHY!(G]"") D
  1. .S G=$$REFDF^APCHS9B3(P,71,APCHY,$G(LMAM))
  1. I G]"" Q $G(LMAM)_"^"_G
  1. S G="" S APCHY=0 F S APCHY=$O(^RAMIS(71,"D",76092,APCHY)) Q:APCHY'=+APCHY!(G]"") D
  1. .S G=$$REFDF^APCHS9B3(P,71,APCHY,$G(LMAM))
  1. I G]"" Q $G(LMAM)_"^"_G
  1. K APCHY S APCHY=0 F S APCHY=$O(^RAMIS(71,"D",77055,APCHY)) Q:APCHY'=+APCHY!(G]"") D
  1. .S G=$$REFDF^APCHS9B3(P,71,APCHY,$G(LMAM))
  1. I G]"" Q $G(LMAM)_"^"_G
  1. S G="" S APCHY=0 F S APCHY=$O(^RAMIS(71,"D",77056,APCHY)) Q:APCHY'=+APCHY!(G]"") D
  1. .S G=$$REFDF^APCHS9B3(P,71,APCHY,$G(LMAM))
  1. I G]"" Q $G(LMAM)_"^"_G
  1. S G="" S APCHY=0 F S APCHY=$O(^RAMIS(71,"D",77057,APCHY)) Q:APCHY'=+APCHY!(G]"") D
  1. .S G=$$REFDF^APCHS9B3(P,71,APCHY,$G(LMAM))
  1. I G]"" Q $G(LMAM)_"^"_G
  1. K APCHY S APCHY=0 F S APCHY=$O(^RAMIS(71,"D",77058,APCHY)) Q:APCHY'=+APCHY!(G]"") D
  1. .S G=$$REFDF^APCHS9B3(P,71,APCHY,$G(LMAM))
  1. I G]"" Q $G(LMAM)_"^"_G
  1. S G="" S APCHY=0 F S APCHY=$O(^RAMIS(71,"D",770591,APCHY)) Q:APCHY'=+APCHY!(G]"") D
  1. .S G=$$REFDF^APCHS9B3(P,71,APCHY,$G(LMAM))
  1. I G]"" Q $G(LMAM)_"^"_G
  1. S G="" S APCHY=0 F S APCHY=$O(^RAMIS(71,"D","G0202",APCHY)) Q:APCHY'=+APCHY!(G]"") D
  1. .S G=$$REFDF^APCHS9B3(P,71,APCHY,$G(LMAM))
  1. I G]"" Q $G(LMAM)_"^"_G
  1. K APCHY S APCHY=0 F S APCHY=$O(^RAMIS(71,"D","G0204",APCHY)) Q:APCHY'=+APCHY!(G]"") D
  1. .S G=$$REFDF^APCHS9B3(P,71,APCHY,$G(LMAM))
  1. I G]"" Q $G(LMAM)_"^"_G
  1. S G="" S APCHY=0 F S APCHY=$O(^RAMIS(71,"D","G0206",APCHY)) Q:APCHY'=+APCHY!(G]"") D
  1. .S G=$$REFDF^APCHS9B3(P,71,APCHY,$G(LMAM))
  1. I G]"" Q $G(LMAM)_"^"_G
  1. Q $G(LMAM)
  1. ;
  1. MAMMOG1(P) ;for radiology 4.5+ or until qman can handle taxonomies for radiology procedures
  1. I $$SEX^AUPNPAT(P)'="F" Q "N/A"
  1. ;
  1. ;IHS/ANMC/LJF 8/26/99 new code to look for all mammograms no matter
  1. ; how they are spelled in file 71 - for Rad version 4.5+
  1. NEW BHSMAM,CODE,COUNT,IEN,X
  1. S CODE=$O(^DIC(40.7,"C",72,0)) I 'CODE Q "No <never recorded>"
  1. S IEN=0 F S IEN=$O(^RAMIS(71,IEN)) Q:'IEN D
  1. . Q:$G(^RAMIS(71,IEN,"I")) ;inactive
  1. . Q:'$D(^RAMIS(71,IEN,"STOP","B",CODE)) ;no mamm stop code
  1. . S COUNT=$G(COUNT)+1,BHSMAM(COUNT)=$P(^RAMIS(71,IEN,0),U)
  1. ;
  1. ; -- use data fetcher to find mammogram dates
  1. NEW BHSY,BHSSAV,BHSX,BHSNAM
  1. S (BHSSAV,BHSX)=0 F S BHSX=$O(BHSMAM(BHSX)) Q:'BHSX D
  1. . S %=P_"^LAST RAD "_BHSMAM(BHSX),E=$$START1^APCLDF(%,"BHSY(")
  1. . ; save latest date and procedure name
  1. . I $G(BHSY(1)),$P(BHSY(1),U)>BHSSAV S BHSSAV=$P(BHSY(1),U),BHSNAM=BHSMAM(BHSX)
  1. ;
  1. ; -- return results
  1. I BHSSAV'=0 Q BHSSAV
  1. ;IHS/ANMC/LJF 8/26/99 end of new code
  1. ;
  1. Q ""
  1. ;
  1. HYSTER(P,EDATE) ;EP
  1. ;code set versioning
  1. I '$G(P) Q ""
  1. N C,F,G,S,T
  1. N BHSVDT
  1. ;S F=0,S="" F S F=$O(^AUPNVPRC("AC",P,F)) Q:F'=+F!(S) S C=$P(^ICD0(+^AUPNVPRC(F,0),0),U) D
  1. ;changed call to ICDEX for ICD-10s
  1. S F=0,S="" F S F=$O(^AUPNVPRC("AC",P,F)) Q:F'=+F!(S) S BHSVDT=$P(+^AUPNVSIT($P(^AUPNVPRC(F,0),U,3),0),"."),C=$P($$ICDOP^ICDEX(+^AUPNVPRC(F,0),BHSVDT,"","I"),U,2) D
  1. .;cmi/anch/maw 8/27/2007 end of mods
  1. .S G=0 S:(C=68.4)!(C=68.5)!(C=68.6)!(C=68.7)!(C=68.9) G=C
  1. .Q:G=0
  1. .S D=$P(^AUPNVPRC(F,0),U,6) I D="" S D=$P($P(^AUPNVSIT($P(^AUPNVPRC(F,0),U,3),0),U),".")
  1. .;I D>EDATE Q
  1. .S S=1
  1. I S]"" Q "Pt had Hysterectomy on "_$$FMTE^XLFDT(D,2)_" procedure: "_G
  1. S T="HYSTERECTOMY",T=$O(^BWPN("B",T,0))
  1. I T D I X]"" Q "Hysterectomy documented in Women's Health: "_$$FMTE^XLFDT(X,2)
  1. .S X=$$WH^BHSMU2(P,$$DOB^AUPNPAT(P),EDATE,T,3)
  1. S T=$O(^ATXAX("B","BGP HYSTERECTOMY CPTS",0))
  1. I T D I X]"" Q "Pt had Hysterectomy on "_$$FMTE^XLFDT($P(X,U),2)_" CPT: "_$P(X,U,2)
  1. .S X=$$CPT^BHSMU2(P,$P(^DPT(P,0),U,3),EDATE,T,5)
  1. Q ""