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

APCHSM03.m

Go to the documentation of this file.
  1. APCHSM03 ; IHS/CMI/LAB -- CONTINUATION OF ROUTINES ;
  1. ;;2.0;IHS PCC SUITE;**2,7,16**;MAY 14, 2009;Build 9
  1. ;IHS/CMI/LAB - uncommented age limit on pap smear
  1. ;
  1. ; ******************** SURVEILLANCE - HARD CODE ********************
  1. S(X) ;
  1. NEW %,C S (C,%)=0 F S %=$O(APCHSTEX(%)) Q:%'=+% S C=C+1
  1. S APCHSTEX(C+1)=X
  1. Q
  1. TD ;EP - influenza
  1. X APCHSURX
  1. Q:'$$INAC^APCHSMU(APCHSITI) ;is item turned on or off
  1. S APCHSINT="",APCHSCRI=$$SITECRIT^APCHSMU(APCHSITI)
  1. I APCHSCRI S APCHSINT=$$AGESEX^APCHSMU(APCHSITI,APCHSPAT),APCHMIN=$$MINAGE^APCHSMU(APCHSITI,APCHSPAT)
  1. I 'APCHSCRI D
  1. .Q:$$AGE^AUPNPAT(APCHSPAT)<12
  1. .S APCHSINT=10*365
  1. .S APCHMIN=12
  1. I APCHSINT="" X APCHSURX Q
  1. S APCHLAST="",APCHNEXT="" K APCHSTEX
  1. S APCHICAR=$$LASTTD^APCLAPI4(APCHSPAT,,,"A")
  1. S APCHLAST=$P(APCHICAR,U,1)
  1. S APCHOVR=$$OVR^APCHSMU(APCHSPAT,APCHSITI)
  1. S V=""
  1. I $P(APCHOVR,U)>APCHLAST D Q
  1. .S X=$$DATE^APCHSMU($P(APCHOVR,U))_" (per "_$P(APCHOVR,U,2)_")" D S(X) S X=$P(APCHOVR,U,3) D S(X)
  1. .S V="" F APCHSC=1,9,20,22,28,35,50,106,107,110 Q:V]"" S APCHSFLX=$O(^AUTTIMM("C",APCHSC,0)) D
  1. ..S V=$$REF^APCHSMU(APCHSPAT,9999999.14,APCHSFLX,APCHLAST) I V]"" S X=$P(V,U) D S(X) S X=$P(V,U,2) I X]"" D S(X)
  1. .D WRITE^APCHSMU
  1. .X APCHSURX
  1. .Q
  1. TDREG ;
  1. I APCHSINT="" X APCHSURX Q ;no frequency so skip it
  1. I APCHLAST="" S APCHSTEX(1)=$$DATE^APCHSMU($$DATEAGE^APCHSMU(APCHSPAT,APCHMIN)) D Q
  1. .S V="" F APCHSC=1,9,20,22,28,35,50,106,107,110,112,113,115 Q:V]"" S APCHSFLX=$O(^AUTTIMM("C",APCHSC,0)) D
  1. ..S V=$$REF^APCHSMU(APCHSPAT,9999999.14,APCHSFLX,APCHLAST) I V]"" S X=$P(V,U) D S(X) S X=$P(V,U,2) I X]"" D S(X)
  1. .D WRITE^APCHSMU
  1. .X APCHSURX
  1. .Q
  1. S APCHNEXT=$$FMADD^XLFDT(APCHLAST,APCHSINT)
  1. I APCHNEXT>DT S APCHSTEX(1)=$$DATE^APCHSMU(APCHNEXT)
  1. I APCHNEXT'>DT S APCHSTEX(1)=$$DATE^APCHSMU(APCHNEXT)
  1. S V="" F APCHSC=1,9,20,22,28,35,50,106,107,110,112,113,115 Q:V]"" S APCHSFLX=$O(^AUTTIMM("C",APCHSC,0)) D
  1. .S V=$$REF^APCHSMU(APCHSPAT,9999999.14,APCHSFLX,APCHLAST) I V]"" S X=$P(V,U) D S(X) S X=$P(V,U,2) I X]"" D S(X)
  1. D WRITE^APCHSMU
  1. X APCHSURX
  1. Q
  1. ;
  1. TON ;
  1. X APCHSURX
  1. Q:'$$INAC^APCHSMU(APCHSITI) ;is item turned on or off
  1. S APCHLAST="",APCHNEXT="" K APCHSTEX
  1. S APCHICAR=$$LASTTON^APCLAPI1(APCHSPAT,,,"A")
  1. S APCHLAST=$P(APCHICAR,U,1)
  1. S APCHOVR=$$OVR^APCHSMU(APCHSPAT,APCHSITI)
  1. I $P(APCHOVR,U)>APCHLAST D Q
  1. .S X=$$DATE^APCHSMU($P(APCHOVR,U))_" (per "_$P(APCHOVR,U,2)_")" D S(X) S X=$P(APCHOVR,U,3) D S(X)
  1. .S V=$$REF^APCHSMU(APCHSPAT,9999999.07,$O(^AUTTMSR("B","TON",0)),APCHLAST) I V]"" S X=$P(V,U) D S(X) S X=$P(V,U,2) I X]"" D S(X)
  1. .D WRITE^APCHSMU
  1. .X APCHSURX
  1. .Q
  1. TONREG ;regular stuff
  1. S APCHSINT="",APCHSCRI=$$SITECRIT^APCHSMU(APCHSITI)
  1. I APCHSCRI S APCHSINT=$$AGESEX^APCHSMU(APCHSITI,APCHSPAT),APCHMIN=$$MINAGE^APCHSMU(APCHSITI,APCHSPAT)
  1. I 'APCHSCRI D
  1. .Q:APCHSAGE<40
  1. .I APCHSAGE<60 S APCHSINT=(3*365),APCHMIN=40 Q
  1. .S APCHSINT=365
  1. .S APCHMIN=40
  1. I APCHSINT="" X APCHSURX Q ;no frequency so skip it
  1. I APCHLAST="" S APCHSTEX(1)=$$DATE^APCHSMU($$DATEAGE^APCHSMU(APCHSPAT,APCHMIN)) D Q
  1. .S V=$$REF^APCHSMU(APCHSPAT,9999999.07,$O(^AUTTMSR("B","TON",0)),APCHLAST) I V]"" S X=$P(V,U) D S(X) S X=$P(V,U,2) I X]"" D S(X)
  1. .D WRITE^APCHSMU
  1. .X APCHSURX
  1. .Q
  1. S APCHNEXT=$$FMADD^XLFDT(APCHLAST,APCHSINT)
  1. I APCHNEXT>DT S APCHSTEX(1)=$$DATE^APCHSMU(APCHNEXT)
  1. I APCHNEXT'>DT S APCHSTEX(1)=$$DATE^APCHSMU(APCHNEXT)
  1. S V=$$REF^APCHSMU(APCHSPAT,9999999.07,$O(^AUTTMSR("B","TON",0)),APCHLAST) I V]"" S X=$P(V,U) D S(X) S X=$P(V,U,2) I X]"" D S(X)
  1. D WRITE^APCHSMU
  1. X APCHSURX
  1. Q
  1. ;
  1. BP ;
  1. X APCHSURX
  1. Q:'$$INAC^APCHSMU(APCHSITI) ;is item turned on or off
  1. S APCHLAST="",APCHNEXT="" K APCHSTEX
  1. S APCHICAR=$$LASTITEM^APCLAPIU(APCHSPAT,"BP","MEASUREMENT",$$DOB^AUPNPAT(APCHSPAT),DT,"A")
  1. S APCHLAST=$P(APCHICAR,U,1)
  1. S APCHOVR=$$OVR^APCHSMU(APCHSPAT,APCHSITI)
  1. I $P(APCHOVR,U)>APCHLAST D Q
  1. .S X=$$DATE^APCHSMU($P(APCHOVR,U))_" (per "_$P(APCHOVR,U,2)_")" D S(X) S X=$P(APCHOVR,U,3) D S(X)
  1. .S V=$$REF^APCHSMU(APCHSPAT,9999999.07,$O(^AUTTMSR("B","BP",0)),APCHLAST) I V]"" S X=$P(V,U) D S(X) S X=$P(V,U,2) I X]"" D S(X)
  1. .D WRITE^APCHSMU
  1. .X APCHSURX
  1. .Q
  1. BPREG ;regular stuff
  1. I $$PLTAX^APCHSMU(APCHSPAT,"SURVEILLANCE HYPERTENSION") X APCHSURX Q ;cancel if pt has hypertension on problem list
  1. I $$IPLSNO^APCHSMU1(APCHSPAT,"PXRM HYPERTENSION") X APCHSURX Q ;cancel if pt has snomed htn on pl
  1. S APCHSINT="",APCHSCRI=$$SITECRIT^APCHSMU(APCHSITI)
  1. I APCHSCRI S APCHSINT=$$AGESEX^APCHSMU(APCHSITI,APCHSPAT),APCHMIN=$$MINAGE^APCHSMU(APCHSITI,APCHSPAT)
  1. I 'APCHSCRI D
  1. .Q:APCHSAGE<2
  1. .S APCHSINT=(2*365)
  1. .S APCHMIN=2
  1. I APCHSINT="" X APCHSURX Q ;no frequency so skip it
  1. ;reset APCHSINT if needed depending on last BP diastolic and age
  1. I 'APCHSCRI D RESET
  1. I APCHLAST="" S APCHSTEX(1)=$$DATE^APCHSMU($$DATEAGE^APCHSMU(APCHSPAT,APCHMIN)) D Q
  1. .S V=$$REF^APCHSMU(APCHSPAT,9999999.07,$O(^AUTTMSR("B","BP",0)),APCHLAST) I V]"" S X=$P(V,U) D S(X) S X=$P(V,U,2) I X]"" D S(X)
  1. .D WRITE^APCHSMU
  1. .X APCHSURX
  1. .Q
  1. S APCHNEXT=$$FMADD^XLFDT(APCHLAST,APCHSINT)
  1. I APCHNEXT>DT S APCHSTEX(1)=$$DATE^APCHSMU(APCHNEXT)
  1. I APCHNEXT'>DT S APCHSTEX(1)=$$DATE^APCHSMU(APCHNEXT)
  1. S V=$$REF^APCHSMU(APCHSPAT,9999999.07,$O(^AUTTMSR("B","BP",0)),APCHLAST) I V]"" S X=$P(V,U) D S(X) S X=$P(V,U,2) I X]"" D S(X)
  1. D WRITE^APCHSMU
  1. X APCHSURX
  1. Q
  1. ;
  1. X APCHSURX
  1. Q:'$$INAC^APCHSMU(APCHSITI) ;is item turned on or off
  1. S APCHLAST="",APCHNEXT="" K APCHSTEX
  1. S APCHICAR=$$LASTHC^APCLAPI2(APCHSPAT,,,"A")
  1. S APCHLAST=$P(APCHICAR,U,1)
  1. S APCHOVR=$$OVR^APCHSMU(APCHSPAT,APCHSITI)
  1. I $P(APCHOVR,U)>APCHLAST D Q
  1. .S X=$$DATE^APCHSMU($P(APCHOVR,U))_" (per "_$P(APCHOVR,U,2)_")" D S(X) S X=$P(APCHOVR,U,3) D S(X)
  1. .D PRHH
  1. .Q
  1. HEADREG ;
  1. S APCHSINT="",APCHSCRI=$$SITECRIT^APCHSMU(APCHSITI)
  1. I APCHSCRI S APCHSINT=$$AGESEX^APCHSMU(APCHSITI,APCHSPAT),APCHMIN=$$MINAGE^APCHSMU(APCHSITI,APCHSPAT)
  1. I 'APCHSCRI D
  1. .Q:APCHSAGE>3
  1. .S APCHSINT=(2*30.5)
  1. .S APCHMIN=0
  1. I APCHSINT="" X APCHSURX Q ;no frequency so skip it
  1. ;reset APCHSINT if needed depending on last HC diastolic and age
  1. I 'APCHSCRI D IHSHEAD Q
  1. I APCHLAST="" S APCHSTEX(1)=$$DATE^APCHSMU($$DATEAGE^APCHSMU(APCHSPAT,APCHMIN)) D PRHH Q
  1. S APCHNEXT=$$FMADD^XLFDT(APCHLAST,APCHSINT)
  1. I APCHNEXT>DT S APCHSTEX(1)=$$DATE^APCHSMU(APCHNEXT)
  1. I APCHNEXT'>DT S APCHSTEX(1)=$$DATE^APCHSMU(APCHNEXT)
  1. D PRHH
  1. Q
  1. ;
  1. IHSHEAD ;use IHS default criteria
  1. I APCHLAST="" S APCHSTEX(1)=$$DATE^APCHSMU(APCHSDOB) D PRHH Q ;never had one recorded so due on DOB
  1. ;calculate next date due
  1. S APCHDAYS=$$FMDIFF^XLFDT(DT,APCHSDOB)
  1. S APCHSOLD=$$FMDIFF^XLFDT(APCHLAST,APCHSDOB)
  1. I APCHDAYS>0,APCHDAYS<(2*30.5) S APCHSTEX(1)=$$DATE^APCHSMU($$FMADD^XLFDT(APCHSDOB,(2*30.5))) D PRHH Q
  1. I APCHDAYS'<(2*30.5),APCHDAYS<(4*30.5) S APCHNEXT=$$FMADD^XLFDT(APCHSDOB,(4*30.5)),APCHLDUE=$$FMADD^XLFDT(APCHSDOB,(2*30.5)) D HEADT Q
  1. I APCHDAYS'<(4*30.5),APCHDAYS<(6*30.5) S APCHNEXT=$$FMADD^XLFDT(APCHSDOB,(6*30.5)),APCHLDUE=$$FMADD^XLFDT(APCHSDOB,(4*30.5)) D HEADT Q
  1. I APCHDAYS'<(6*30.5),APCHDAYS<365 S APCHNEXT=$$FMADD^XLFDT(APCHSDOB,365),APCHLDUE=$$FMADD^XLFDT(APCHSDOB,(6*30.5)) D HEADT Q
  1. I APCHDAYS'<365,APCHDAYS<(18*30.5) S APCHNEXT=$$FMADD^XLFDT(APCHSDOB,(18*30.5)),APCHLDUE=$$FMADD^XLFDT(APCHSDOB,365) D HEADT Q
  1. I APCHDAYS'<(365.25*2),APCHDAYS<(3*365.25) S APCHNEXT=$$FMADD^XLFDT(APCHSDOB,(2*365.25)),APCHLDUE=$$FMADD^XLFDT(APCHSDOB,(18*30.5)) D HEADT Q
  1. Q
  1. HEADT ;
  1. I APCHLDUE>APCHLAST S APCHSTEX(1)=$$DATE^APCHSMU(APCHLDUE) D PRHH Q
  1. I APCHNEXT<DT S APCHSTEX(1)=$$DATE^APCHSMU(APCHNEXT) D PRHH Q
  1. I APCHNEXT'<DT S APCHSTEX(1)=$$DATE^APCHSMU(APCHNEXT) D PRHH Q
  1. Q
  1. PRHH ;
  1. S V=$$REF^APCHSMU(APCHSPAT,9999999.07,$O(^AUTTMSR("B","HC",0)),APCHLAST) I V]"" S X=$P(V,U) D S(X) S X=$P(V,U,2) I X]"" D S(X)
  1. D WRITE^APCHSMU X APCHSURX
  1. Q
  1. RESET ;
  1. Q:APCHSAGE<22
  1. NEW D S D=$$LASTITEM^APCHSMU(APCHSPAT,"BP","MEASUREMENT","V")
  1. I $P(D,"/")>139 S APCHSINT=1 Q
  1. I $P(D,"/",2)>89 S APCHSINT=1 Q
  1. I $P(D,"/",2)>84.9&($P(D,"/",2)<90) S APCHSINT=365 Q
  1. Q
  1. HEARINQ ;EP
  1. X APCHSURX
  1. Q:'$$INAC^APCHSMU(APCHSITI) ;is item turned on or off
  1. S APCHLAST="",APCHNEXT="" K APCHSTEX
  1. S APCHSINT="",APCHSCRI=$$SITECRIT^APCHSMU(APCHSITI)
  1. I APCHSCRI S APCHSINT=$$AGESEX^APCHSMU(APCHSITI,APCHSPAT),APCHMIN=$$MINAGE^APCHSMU(APCHSITI,APCHSPAT)
  1. I 'APCHSCRI D
  1. .Q:APCHSAGE<65
  1. .S APCHSINT=(2*365)
  1. .S APCHMIN=65
  1. I APCHSINT="" X APCHSURX Q ;no frequency so skip it
  1. S APCHSTEX(1)="Consider inquiring about hearing",APCHSTEX(2)="difficulties at least every 2 years." D Q
  1. .D WRITE^APCHSMU
  1. .X APCHSURX
  1. .Q
  1. Q
  1. ;
  1. ALCOWT ;
  1. K APCHV
  1. S V=$$REF^APCHSMU(APCHSPAT,9999999.15,$O(^AUTTEXAM("C","35",0)),APCHLAST)
  1. I V]"" S X=$P(V,U,3) S APCHV((9999999-X))=$P(V,U,1,2)
  1. ;now look at AMHREC field
  1. S APCHC=0,V=""
  1. S E=9999999-APCHLAST,D=9999999-DT-1_".99" F S D=$O(^AMHREC("AE",APCHSPAT,D)) Q:D'=+D!($P(D,".")>E) S V=0 F S V=$O(^AMHREC("AE",APCHSPAT,D,V)) Q:V'=+V D
  1. .S X=$P($G(^AMHREC(V,14)),U,3)
  1. .I X="" Q ;no test
  1. .I $E(X)="U" S APCHV(D)="Unable to Screen ALCOHOL SCREENING ",$P(APCHV(D),U,2)="on "_$$FMTE^XLFDT((9999999-$P(D,".")))
  1. .I X="REF" S APCHV(D)="Patient Declined ALCOHOL SCREENING ",$P(APCHV(D),U,2)="on "_$$FMTE^XLFDT((9999999-$P(D,".")))
  1. .Q
  1. I $O(APCHV(0)) S Y=$O(APCHV(0)) S Z=9999999-Y I Z>APCHLAST S X=$P(APCHV(Y),U) D S(X) S X=$P(APCHV(Y),U,2) I X]"" D S(X)
  1. D WRITE^APCHSMU
  1. X APCHSURX
  1. Q
  1. ALCOHOL ;EP - alcohol screening
  1. Q:'$$INAC^APCHSMU(APCHSITI) ;is item turned on or off
  1. ;ADD V79.1 PER DENISE, 8-3-05
  1. S APCHLAST="",APCHNEXT="" K APCHSTEX
  1. S APCHICAR=$$LASTALC^APCLAPI(APCHSPAT,,,"A")
  1. S APCHLAST=$P(APCHICAR,U,1)
  1. ;add check for alcohol screening 35 and do in crs also
  1. S APCHOVR=$$OVR^APCHSMU(APCHSPAT,APCHSITI)
  1. I $P(APCHOVR,U)>APCHLAST D Q
  1. .S X=$$DATE^APCHSMU($P(APCHOVR,U))_" (per "_$P(APCHOVR,U,2)_")" D S(X) S X=$P(APCHOVR,U,3) D S(X)
  1. .D WRITE^APCHSMU
  1. .X APCHSURX
  1. .Q
  1. ALCOREG ;regular stuff
  1. S APCHSINT="",APCHSCRI=$$SITECRIT^APCHSMU(APCHSITI)
  1. I 'APCHSCRI,APCHSAGE>12 S APCHSINT=365,APCHMIN=13
  1. I APCHSCRI S APCHSINT=$$AGESEX^APCHSMU(APCHSITI,APCHSPAT),APCHMIN=$$MINAGE^APCHSMU(APCHSITI,APCHSPAT) ;return in APCHSINT the frequency in days for this age/sex
  1. I APCHSINT="" X APCHSURX Q ;no frequency so skip it
  1. I APCHLAST="" S APCHSTEX(1)=$$DATE^APCHSMU($$DATEAGE^APCHSMU(APCHSPAT,APCHMIN)) D ALCOWT Q
  1. S APCHNEXT=$$FMADD^XLFDT(APCHLAST,APCHSINT)
  1. I APCHNEXT>DT S APCHSTEX(1)=$$DATE^APCHSMU(APCHNEXT)
  1. I APCHNEXT'>DT S APCHSTEX(1)=$$DATE^APCHSMU(APCHNEXT)
  1. D ALCOWT
  1. Q
  1. TOBWT ;
  1. D WRITE^APCHSMU
  1. X APCHSURX
  1. Q
  1. TOBACCO ;EP - tobacco screening
  1. Q:'$$INAC^APCHSMU(APCHSITI) ;is item turned on or off
  1. S APCHLAST="",APCHNEXT="" K APCHSTEX
  1. S APCHICAR=$$LASTTOBS^APCLAPI1(APCHSPAT,,,"A")
  1. S APCHLAST=$P(APCHICAR,U,1)
  1. S APCHOVR=$$OVR^APCHSMU(APCHSPAT,APCHSITI)
  1. I $P(APCHOVR,U)>APCHLAST D Q
  1. .S X=$$DATE^APCHSMU($P(APCHOVR,U))_" (per "_$P(APCHOVR,U,2)_")" D S(X) S X=$P(APCHOVR,U,3) D S(X)
  1. .D WRITE^APCHSMU
  1. .X APCHSURX
  1. .Q
  1. TOBREG ;regular stuff
  1. S APCHSINT="",APCHSCRI=$$SITECRIT^APCHSMU(APCHSITI)
  1. I 'APCHSCRI,APCHSAGE>12 S APCHSINT=365,APCHMIN=13
  1. I APCHSCRI S APCHSINT=$$AGESEX^APCHSMU(APCHSITI,APCHSPAT),APCHMIN=$$MINAGE^APCHSMU(APCHSITI,APCHSPAT) ;return in APCHSINT the frequency in days for this age/sex
  1. I APCHSINT="" X APCHSURX Q ;no frequency so skip it
  1. I APCHLAST="" S APCHSTEX(1)=$$DATE^APCHSMU($$DATEAGE^APCHSMU(APCHSPAT,APCHMIN)) D TOBWT Q
  1. S APCHNEXT=$$FMADD^XLFDT(APCHLAST,APCHSINT)
  1. I APCHNEXT>DT S APCHSTEX(1)=$$DATE^APCHSMU(APCHNEXT)
  1. I APCHNEXT'>DT S APCHSTEX(1)=$$DATE^APCHSMU(APCHNEXT)
  1. D TOBWT
  1. Q
  1. LASTBHDX(P,BDATE,EDATE,C) ;find date of last BH dx of C, return date in fileman format
  1. NEW APCHX,APCHP,V,D,E S APCHX=""
  1. S E=9999999-BDATE,D=9999999-EDATE-1_".99" F S D=$O(^AMHREC("AE",P,D)) Q:D'=+D!($P(D,".")>E)!(APCHX]"") S V=0 F S V=$O(^AMHREC("AE",P,D,V)) Q:V'=+V!(APCHX]"") D
  1. .Q:'$D(^AMHREC(V,0))
  1. .S X=0 F S X=$O(^AMHRPRO("AD",V,X)) Q:X'=+X!(APCHX]"") S APCHP=$P($G(^AMHRPRO(X,0)),U) D
  1. ..Q:'APCHP
  1. ..S APCHP=$P($G(^AMHPROB(APCHP,0)),U)
  1. ..I APCHP=C S APCHX=$P($P(^AMHREC(V,0),U),".")
  1. Q APCHX
  1. LASTBHED(P,BDATE,EDATE,C) ;find date of last BH EDUC of C, return date in fileman format
  1. NEW APCHX,APCHP,V,D,E S APCHX=""
  1. S E=9999999-BDATE,D=9999999-EDATE-1_".99" F S D=$O(^AMHREC("AE",P,D)) Q:D'=+D!($P(D,".")>E)!(APCHX]"") S V=0 F S V=$O(^AMHREC("AE",P,D,V)) Q:V'=+V!(APCHX]"") D
  1. .Q:'$D(^AMHREC(V,0))
  1. .S X=0 F S X=$O(^AMHREDU("AD",V,X)) Q:X'=+X!(APCHX]"") S APCHP=$P($G(^AMHREDU(X,0)),U) D
  1. ..Q:'APCHP
  1. ..S APCHP=$P($G(^AUTTEDT(APCHP,0)),U,2)
  1. ..I APCHP=C S APCHX=$P($P(^AMHREC(V,0),U),".")
  1. Q APCHX
  1. LASTALCS(P) ;
  1. ;look for exams and bh
  1. NEW APCHG,%,APCHX,APCHC,APCHV
  1. K APCHG,APCHX S %=P_"^LAST EXAM 35",E=$$START1^APCLDF(%,"APCHG(")
  1. I $D(APCHG(1)) S APCHX(9999999-$P(APCHG(1),U))=""
  1. ;now look at AMHREC field
  1. S APCHC=0,APCHV=""
  1. S E=0,D=9999999-DT-1_".99" F S D=$O(^AMHREC("AE",P,D)) Q:D'=+D!(APCHC) S V=0 F S V=$O(^AMHREC("AE",P,D,V)) Q:V'=+V!(APCHC) D
  1. .S X=$P($G(^AMHREC(V,14)),U,3)
  1. .I X="" Q ;no test
  1. .I $E(X)="U" Q ;don't count refusal here
  1. .I X="REF" Q
  1. .S APCHC=APCHC+1,APCHX($P(D,"."))=""
  1. I $O(APCHX(0)) Q (9999999-$O(APCHX(0)))
  1. Q ""