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

APCHPWH9.m

Go to the documentation of this file.
  1. APCHPWH9 ; IHS/CMI/LAB - PCC HEALTH SUMMARY - MAIN DRIVER PART 2 ;
  1. ;;2.0;IHS PCC SUITE;**6,7,10,11,17**;MAY 14, 2009;Build 18
  1. ;
  1. ADOLBP ;EP - BP component
  1. D SUBHEAD^APCHPWHU
  1. NEW APCHBP,APCHDM,APCHCKD,APCHST,APCHDT,APCHAGE
  1. S APCHAGE=$$AGE^AUPNPAT(APCHSDFN,DT)
  1. D S^APCHPWH1("BLOOD PRESSURE - Blood Pressure is a good measure of health.")
  1. D S^APCHPWH1(" ")
  1. S APCHBP=$$LASTBP^APCHPWH2(APCHSDFN)
  1. S APCHST=$P($P(APCHBP,U,3),"/",1)
  1. S APCHDT=$P($P(APCHBP,U,3),"/",2)
  1. I APCHBP="" D Q
  1. .I APCHAGE<13 D S^APCHPWH1("No recent blood pressure on file. We recommend that you have your child's"),S^APCHPWH1("blood pressure checked at your next visit.") D S^APCHPWH1(" ") Q
  1. .D S^APCHPWH1("No recent blood pressure on file. We recommend that you have your blood"),S^APCHPWH1("pressure checked at your next visit.") D S^APCHPWH1(" ") Q
  1. I APCHBP]"" D
  1. .I APCHAGE<13 D S^APCHPWH1("Your child's last blood pressure was "_$P(APCHBP,U,3)_" on "_$$FMTE^XLFDT($P(APCHBP,U,1))_".") Q
  1. .D S^APCHPWH1("Your last blood pressure was "_$P(APCHBP,U,3)_" on "_$$FMTE^XLFDT($P(APCHBP,U,1))_".") Q
  1. Q
  1. ;
  1. RECENTBP ;EP
  1. S APCHAGE=$$AGE^AUPNPAT(APCHSDFN,DT)
  1. D SUBHEAD^APCHPWHU
  1. NEW APCHHT,APCHWT,X,E
  1. D S^APCHPWH1("Here are "_$S(APCHAGE<13:"your child's",1:"your")_" most recent blood pressures.")
  1. D S^APCHPWH1(" ")
  1. K APCHWT
  1. S X=APCHSDFN_"^LAST 3 MEAS BP;DURING "_$$DOB^AUPNPAT(APCHSDFN)_"-"_DT S E=$$START1^APCLDF(X,"APCHWT(")
  1. I '$D(APCHWT) D S^APCHPWH1("No blood pressure values have been recorded. We recommend that you have"),S^APCHPWH1($S(APCHAGE<13:"your child's",1:"your")_" blood pressure rechecked at your next visit.") Q
  1. S E="",$E(E,5)="Date",$E(E,18)="Blood Pressure" D S^APCHPWH1(E)
  1. S X=0 F S X=$O(APCHWT(X)) Q:X'=+X D
  1. .S E=""
  1. .S $E(E,2)=$$FMTE^XLFDT($P(APCHWT(X),U,1))
  1. .S $E(E,20)=$P(APCHWT(X),U,2)
  1. .D S^APCHPWH1(E)
  1. Q
  1. ;
  1. DIABSCRN ;EP
  1. NEW APCHAGE,APCHBMI,APCHGLUC
  1. S APCHAGE=$$AGE^AUPNPAT(APCHSDFN,DT)
  1. Q:APCHAGE<10 ;no one under 10
  1. Q:$$DMDX^APCHPWH2(APCHSDFN) ;don't display this component if the patient has diabetes
  1. S APCHBMI=$P($$BMI^APCLSIL2(APCHSDFN,DT),U)
  1. Q:APCHBMI="" ;can't tell if they are overweight or obese so skip this component
  1. Q:'$$OW(APCHSDFN,APCHBMI,APCHAGE) ;not overweight or obese
  1. D SUBHEAD^APCHPWHU
  1. D S^APCHPWH1("DIABETES SCREENING")
  1. D S^APCHPWH1(" ")
  1. S APCHGLUC=$$LASTGLUC(APCHSDFN,$$FMADD^XLFDT(DT,-(2*365))) ;get last glucose value in past 2 years
  1. I APCHAGE<13 D Q
  1. .I APCHGLUC="" D Q
  1. ..D WRITET^APCHPWHU("DIAB SCRN - 10-13 NO GLUCOSE") Q
  1. .I APCHGLUC]"" D Q
  1. ..D WRITET^APCHPWHU("DIAB SCRN - 10-13 HAS GLUCOSE")
  1. ..D S^APCHPWH1("Your child's last blood sugar was "_$P(APCHGLUC,U,3)_" on "_$$FMTE^XLFDT($P(APCHGLUC,U,1))_".")
  1. I APCHGLUC="" D Q
  1. .D WRITET^APCHPWHU("DIAB SCRN - >13 NO GLUCOSE") Q
  1. I APCHGLUC]"" D Q
  1. .D WRITET^APCHPWHU("DIAB SCRN - >13 HAS GLUCOSE")
  1. .D S^APCHPWH1("Your last blood sugar was "_$P(APCHGLUC,U,3)_" on "_$$FMTE^XLFDT($P(APCHGLUC,U,1))_".")
  1. Q
  1. OW(P,BMI,A) ;EP obese or overweight, really just overweight
  1. NEW S,R
  1. I $G(BMI)="" Q ""
  1. S S=$P(^DPT(P,0),U,2)
  1. I S="" Q ""
  1. I S="U" Q ""
  1. S R=0,R=$O(^APCLBMI("H",S,A,R))
  1. I 'R S R=$O(^APCLBMI("H",S,A)) I R S R=$O(^APCLBMI("H",S,R,""))
  1. I 'R Q ""
  1. I BMI>$P(^APCLBMI(R,0),U,7)!(BMI<$P(^APCLBMI(R,0),U,6)) Q ""
  1. I BMI'<$P(^APCLBMI(R,0),U,4) Q 1
  1. Q ""
  1. LASTGLUC(P,BD,ED,FORM) ;PEP - date of last GLUCOSE SCREENING
  1. ; Return the last recorded GLUCOSE SCREENING:
  1. ; - V Lab: DM AUDIT GLUCOSE TESTS TAX, APCH SCREENING GLUCOSE LOINC
  1. I $G(P)="" Q ""
  1. I $G(BD)="" S BD=$$DOB^AUPNPAT(P)
  1. I $G(ED)="" S ED=DT
  1. I $G(FORM)="" S FORM="D"
  1. NEW APCHVAL,APCHX,R,X,Y,V,E,T,G,APCHY,APCHF
  1. S APCHVAL=$$LASTLAB^APCLAPIU(P,BD,ED,,$O(^ATXLAB("B","DM AUDIT GLUCOSE TESTS TAX",0)),,$O(^ATXAX("B","APCH SCREENING GLUCOSE LOINC",0)),"A")
  1. I FORM="D" Q $P(APCHVAL,U)
  1. Q APCHVAL
  1. ;
  1. PROBLIST ;EP
  1. NEW APCHPROB,APCHX,APCHN,APCHY,APCHT,APCHI,APCHZ,S,X,APCHC,APCHS,APCHD
  1. K APCHPROB
  1. D GETPROB
  1. I '$D(APCHPROB) Q ;no active problems
  1. D SUBHEAD^APCHPWHU
  1. ;D S^APCHPWH1("HEALTH PROBLEMS")
  1. D S^APCHPWH1("Your Health Problems (Problem List)")
  1. D S^APCHPWH1("A problem list is a listing of all of the medical conditions that you ")
  1. D S^APCHPWH1("have that don't go away quickly.")
  1. D S^APCHPWH1(" ")
  1. ;S X="Disease/Condition",$E(X,66)="Date of Onset"
  1. ;D S^APCHPWH1(X)
  1. S APCHN=0 F S APCHN=$O(APCHPROB(APCHN)) Q:APCHN'=+APCHN D
  1. .S APCHY=$$VALI^XBDIQ1(9000011,APCHN,.01)
  1. .S APCHY=$$ICDDX^ICDEX(APCHY)
  1. .S APCHT=$P(APCHY,U,4)
  1. .S APCHI=$P(APCHY,U,2)
  1. .S APCHD=$$VAL^XBDIQ1(9000011,APCHN,.13) I APCHD]"" S APCHD="Onset: "_APCHD
  1. .K ^UTILITY($J,"W") S X=$$VAL^XBDIQ1(9000011,APCHN,.05),DIWL=0,DIWR=48,DIWF="|" D ^DIWP
  1. .S X=" "_APCHI,$E(X,11)=$G(^UTILITY($J,"W",0,1,0)),$E(X,60)=APCHD D S^APCHPWH1(X)
  1. .F F=2:1:$G(^UTILITY($J,"W",0)) S X="",$E(X,11)=^UTILITY($J,"W",0,F,0) D S^APCHPWH1(X)
  1. .K DIWL,DIWR,DIWF,^UTILITY($J,"W")
  1. .S APCHZ=0,APCHC=0 F S APCHZ=$O(^AUPNPROB(APCHN,11,APCHZ)) Q:APCHZ'=+APCHZ D
  1. ..S APCHS=0 F S APCHS=$O(^AUPNPROB(APCHN,11,APCHZ,11,APCHS)) Q:APCHS'=+APCHS D
  1. ...S X=$P(^AUPNPROB(APCHN,11,APCHZ,11,APCHS,0),U,3)
  1. ...Q:X=""
  1. ...S APCHC=APCHC+1
  1. ...K ^UTILITY($J,"W") S DIWL=0,DIWR=65 D ^DIWP
  1. ...F F=1:1:$G(^UTILITY($J,"W",0)) S X=$S(APCHC=1:" Notes: ",1:""),$E(X,$S(F=1:10,1:13))=$S(F=1:" - ",1:"")_$G(^UTILITY($J,"W",0,F,0)) D S^APCHPWH1(X)
  1. ...K ^UTILITY($J,"W")
  1. Q
  1. GETPROB ;
  1. NEW X,Y
  1. S X=0 F S X=$O(^AUPNPROB("AC",APCHSDFN,X)) Q:X'=+X 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. .Q:$$VAL^XBDIQ1(9000011,X,.01)=".9999"
  1. .Q:$$VAL^XBDIQ1(9000011,X,.01)="ZZZ.999"
  1. .S APCHPROB(X)=""
  1. .Q
  1. Q
  1. FAMHX ;EP
  1. NEW APCHPROB,APCHX,APCHN,APCHY,APCHT,APCHI,APCHZ,S,X,APCHC,APCHS,APCHD,APCHR
  1. K APCHPROB
  1. D GETFHX
  1. ;I '$D(APCHPROB) Q ;no active problems
  1. D SUBHEAD^APCHPWHU
  1. ;D S^APCHPWH1("HEALTH PROBLEMS")
  1. D S^APCHPWH1("FAMILY HEALTH HISTORY")
  1. D S^APCHPWH1("Family health history is the gathering of information about you and ")
  1. D S^APCHPWH1("your family. Knowing about your family's health history is important")
  1. D S^APCHPWH1("to staying healthy.")
  1. D S^APCHPWH1(" ")
  1. ;S X="",$E(X,66)="Date of Onset"
  1. ;D S^APCHPWH1(X)
  1. S APCHN=0 F S APCHN=$O(APCHPROB(APCHN)) Q:APCHN'=+APCHN D
  1. .S APCHY=$$VALI^XBDIQ1(9000014,APCHN,.01)
  1. .S APCHY=$$ICDDX^ICDEX(APCHY)
  1. .S APCHT=$P(APCHY,U,4)
  1. .S APCHI=$P(APCHY,U,2)
  1. .Q:APCHI=".9999"
  1. .Q:APCHI="ZZZ.999"
  1. .S APCHD=$$VAL^XBDIQ1(9000014,APCHN,.05) S:APCHD]"" APCHD=APCHD_" yrs" I $P(^AUPNFH(APCHN,0),U,15) S APCHD=APCHD_" (APPROXIMATE)"
  1. .S APCHR=$$VALI^XBDIQ1(9000014,APCHN,.09)
  1. .I 'APCHR S APCHRD="RELATION UNKNOWN",APCHS="UNKNOWN" G FAMHX1
  1. .S APCHRD=$$VAL^XBDIQ1(9000014.1,APCHR,.01),APCHRD=$E(APCHRD,1,20)
  1. .S APCHS=$$VAL^XBDIQ1(9000014.1,APCHR,.04) I $E(APCHS)="P" S APCHS="UNKNOWN"
  1. FAMHX1 .K ^UTILITY($J,"W") S X=APCHT,DIWL=0,DIWR=25 D ^DIWP
  1. .S X=APCHRD,$E(X,23)=APCHS,$E(X,33)=$G(^UTILITY($J,"W",0,1,0)),$E(X,60)=APCHD D S^APCHPWH1(X)
  1. .F F=2:1:$G(^UTILITY($J,"W",0)) S X="",$E(X,33)=^UTILITY($J,"W",0,F,0) D S^APCHPWH1(X)
  1. D S^APCHPWH1(" ")
  1. D S^APCHPWH1("You can use the online Family Health History tool to make a family health")
  1. D S^APCHPWH1("history by going to: https://familyhistory.hhs.gov/.")
  1. Q
  1. GETFHX ;
  1. NEW X,Y
  1. S X=0 F S X=$O(^AUPNFH("AC",APCHSDFN,X)) Q:X'=+X D
  1. .Q:'$D(^AUPNFH(X,0))
  1. .S APCHPROB(X)=""
  1. .Q
  1. Q
  1. APPTS ;EP
  1. NEW APCHAPPT,X,Y,APCHCLN,APCHSDAT,APCHSVDT,APCHX,APCHSAM,APCHSVT,APCHSN,F,APCHAGE
  1. ;gather up all appts in APCHAPPT
  1. S APCHSDAT=0,APCHSVDT=DT-.01 F S APCHSVDT=$O(^DPT(APCHSDFN,"S",APCHSVDT)) Q:'APCHSVDT D
  1. .S APCHSN=^DPT(APCHSDFN,"S",APCHSVDT,0)
  1. .Q:"CP"[$E($P(APCHSN,U,2)_" ") ;SKIP CANCELLED
  1. .Q:$P(APCHSN,U,7)=4 ;skip unscheduled
  1. .S N=$P(APCHSN,U,1)
  1. .Q:$P($G(^BSDSC(N,0)),U,12)="C" ;CLINIC SERVICE CATEGORY IS CHART REVIEW SO NOT A PATIENT APPT
  1. .S APCHAPPT(APCHSVDT)=""
  1. I '$D(APCHAPPT) Q ;no appointments so skip component
  1. D SUBHEAD^APCHPWHU
  1. ;D S^APCHPWH1("YOUR APPOINTMENTS")
  1. ;D S^APCHPWH1(" ")
  1. S APCHAGE=$$AGE^AUPNPAT(APCHSDFN,DT)
  1. I APCHAGE<13 D
  1. .D S^APCHPWH1("APPOINTMENTS: Your child is scheduled to come back for another appointment.")
  1. .D S^APCHPWH1("Please call us at "_$$VAL^XBDIQ1(9999999.06,DUZ(2),.13)_" if you have any questions or need to "),S^APCHPWH1("reschedule an appointment.")
  1. I APCHAGE>12 D
  1. .D S^APCHPWH1("APPOINTMENTS: You are scheduled to come back for another appointment.")
  1. .D S^APCHPWH1("Please call us at "_$$VAL^XBDIQ1(9999999.06,DUZ(2),.13)_" if you have any questions or need to "),S^APCHPWH1("reschedule an appointment.")
  1. S APCHSVDT=0 F S APCHSVDT=$O(APCHAPPT(APCHSVDT)) Q:APCHSVDT="" D APPTS1
  1. Q
  1. APPTS1 ;
  1. S APCHSN=^DPT(APCHSDFN,"S",APCHSVDT,0)
  1. S APCHSAM="am"
  1. S APCHSVT=$E($P(APCHSVDT,".",2)_"000",1,4) S:APCHSVT>1159 APCHSAM="pm" S:APCHSVT>1300 APCHSVT=APCHSVT-1200 S:$L(APCHSVT)=3 APCHSVT=" "_APCHSVT S:$E(APCHSVT)="0" APCHSVT=" "_$E(APCHSVT,2,4) S APCHSVT=$E(APCHSVT,1,2)_":"_$E(APCHSVT,3,4)
  1. S APCHSVT=APCHSVT_APCHSAM
  1. S APCHSCP=+APCHSN,APCHSCN=$P($G(^SC(APCHSCP,0)),U,1) Q:APCHSCN=""
  1. ;get name of facility where clinic meets
  1. D S^APCHPWH1(" ")
  1. S F=$P(^SC(APCHSCP,0),U,4)
  1. I F S F=$S($P($G(^APCCCTRL(F,0)),U,13):$P(^APCCCTRL(F,0),U,13),1:$P(^DIC(4,F,0),U,1))
  1. S X=$$FMTE^XLFDT($P(APCHSVDT,".")),$E(X,14)=APCHSVT,$E(X,24)=APCHSCN I F]"" S X=X_" ("_F_")"
  1. D S^APCHPWH1(X)
  1. ;now display provider
  1. S P=$$PRV(APCHSCP)
  1. I P]"" D S^APCHPWH1("Provider: "_$P(P,U,2))
  1. Q
  1. PRV(CLINIC) ;EP; -- returns default provider for clinic
  1. ; Y returns as ien^provider name
  1. NEW X,Y
  1. S Y=""
  1. S X=0 F S X=$O(^SC(CLINIC,"PR",X)) Q:'X D
  1. . I $P($G(^SC(CLINIC,"PR",X,0)),U,2)=1 S Y=+^SC(CLINIC,"PR",X,0)
  1. I $G(Y) S Y=Y_U_$$GET1^DIQ(200,Y,.01)
  1. ;I '$G(Y) S Y="0^UNAFFILIATED CLINICS"
  1. Q $G(Y)
  1. PEDSCRN ;EP
  1. NEW APCHAGE,APCHAM,APCHLVAE,APCHDMPV,APCHLDE
  1. S APCHAGE=$$AGE^AUPNPAT(APCHSDFN,DT)
  1. Q:APCHAGE>18
  1. D SUBHEAD^APCHPWHU
  1. D S^APCHPWH1("PEDIATRIC SCREENING")
  1. D S^APCHPWH1(" ")
  1. ;EYE EXAM
  1. S APCHSAM=$$AGE^APCLSILU(APCHSDFN,2,DT) ;age in months
  1. I APCHSAM<15 G DENTAL
  1. ;
  1. S APCHLVAE=$$LASTVAE^APCLAPI1(APCHSDFN,$$FMADD^XLFDT(DT,-365),DT)
  1. I APCHLVAE="" D
  1. .D S^APCHPWH1("We recommend that your child have an eye exam. Be sure to discuss")
  1. .D S^APCHPWH1("this with your child's provider.")
  1. I APCHLVAE]"" D
  1. .D S^APCHPWH1("Your child's last vision test was performed on "_$$FMTE^XLFDT($P(APCHLVAE,U))_".")
  1. DENTAL ;
  1. ;how many dm pov's? if 2 or more go to age 18, if not then go to age 11
  1. S APCHDMPV=$$DMPV(APCHSDFN)
  1. I 'APCHDMPV Q:APCHAGE<12
  1. S APCHLDE=$$LASTDENT^APCLAPI2(APCHSDFN)
  1. I APCHLDE="" D
  1. .D S^APCHPWH1("We recommend that your child have a dental checkup. Be sure to discuss")
  1. .D S^APCHPWH1("this with your child's provider.")
  1. I APCHLDE]"" D
  1. .D S^APCHPWH1("Your child's last dental checkup was performed on "_$$FMTE^XLFDT($P(APCHLDE,U))_".")
  1. Q
  1. DMPV(P) ;EP - how many dm povs?
  1. NEW X,E,APCHX
  1. S X=P_"^LAST 2 DX [SURVEILLANCE DIABETES" S E=$$START1^APCLDF(X,"APCHX(")
  1. I '$D(APCHX(2)) Q 0
  1. Q 1
  1. ANTICOAG ;EP
  1. NEW APCHGOAL,APCHV,APCHD,G
  1. Q:'$$ACTWARF^APCHSTP1(APCHSDFN,$$FMADD^XLFDT(DT,-45),DT) ;not a candidate for this component, not active prescription for warfarin
  1. D SUBHEAD^APCHPWHU
  1. D S^APCHPWH1("ANTICOAGULATION THERAPY - You are taking Warfarin to prevent dangerous types")
  1. D S^APCHPWH1("of blood clots.")
  1. D S^APCHPWH1(" ")
  1. S APCHGOAL=$$MRGOAL^APCHSACG(APCHSDFN)
  1. I APCHGOAL="" D
  1. .D S^APCHPWH1("Your INR Target is not on file. We recommend that you ask your health")
  1. .D S^APCHPWH1("care provider about your INR Target at your next visit.")
  1. I APCHGOAL]"" D
  1. .S G=$P(APCHGOAL,U,2)
  1. .S G=$P(G,"-")_"and"_$P(G,"-",2)
  1. .D S^APCHPWH1("Your INR Target is between "_G_" documented on "_$$FMTE^XLFDT($P(APCHGOAL,U)))
  1. K APCHV
  1. S APCHV="APCHV"
  1. D ALLLAB^APCLAPIU(APCHSDFN,$$FMADD^XLFDT(DT,-(3*365)),DT,$O(^ATXLAB("B","BJPC INR LAB TESTS",0)),$O(^ATXAX("B","BJPC INR LAB LOINCS",0)),"INR",.APCHV)
  1. ;reorder by date
  1. K APCHD
  1. S G=0 F S G=$O(APCHV(G)) Q:G'=+G S APCHD(9999999-$P(APCHV(G),U,1),$P(APCHV(G),U,4))=APCHV(G)
  1. I '$D(APCHD) D I 1
  1. .D S^APCHPWH1("Your last 3 INR results were:",1)
  1. .D S^APCHPWH1(" None Documented. We recommend that you ask your health care"),S^APCHPWH1("provider about your INR results.")
  1. E D
  1. .S G=0,C=0 F S G=$O(APCHD(G)) Q:G'=+G!(C>2) D
  1. ..S X=0 F S X=$O(APCHD(G,X)) Q:X'=+X!(C>2) D
  1. ...S C=C+1 D S^APCHPWH1($S(C=1:"Your last 3 INR results were: ",1:"")_$P(APCHD(G,X),U,3)_" on "_$$FMTE^XLFDT($P(APCHD(G,X),U,1)),$S(C=1:1,1:0),0,$S(C=1:0,1:30))
  1. K APCHMEDS
  1. D GETMEDS^APCHSMU1(DFN,$$FMADD^XLFDT(DT,-160),DT,"BGP CMS WARFARIN MEDS",,,"WARFARIN",.APCHMEDS)
  1. ;REORDER BY DATE
  1. S X=0 F S X=$O(APCHMEDS(X)) Q:X'=+X S APCHMEDD(9999999-$P(APCHMEDS(X),U,1),X)=APCHMEDS(X)
  1. S G=$O(APCHMEDD(0)),H=$O(APCHMEDD(G,0))
  1. I G,H S G=APCHMEDD(G,H) D
  1. .D S^APCHPWH1("Your most recent medication to prevent blood clots is:")
  1. .D S^APCHPWH1(" "_$P(G,U,2)_" "_$$FMTE^XLFDT($P(G,U,1)))
  1. .;sig
  1. .K ^UTILITY($J,"W") S X=$$VAL^XBDIQ1(9000010.14,$P(G,U,4),.05),DIWL=0,DIWR=58 D ^DIWP
  1. .S X="",$E(X,7)="Directions: "_$S($L($G(^UTILITY($J,"W",0,1,0)))>1:$G(^UTILITY($J,"W",0,1,0)),$L($G(^UTILITY($J,"W",0,1,0)))=1:"No directions on file",1:" ") D S^APCHPWH1(X)
  1. .I $G(^UTILITY($J,"W",0))>1 F F=2:1:$G(^UTILITY($J,"W",0)) S X="",$E(X,19)=$G(^UTILITY($J,"W",0,F,0)) D S^APCHPWH1(X)
  1. .K ^UTILITY($J,"W")
  1. ;Any appt after $$NOW that has a clinic stop of D1? if so, display it, if not display nothing
  1. K APCHMEDS,APCHMEDD
  1. NEW APCHSDAT,APCHSVDT,APCHSN,APCHSD1
  1. S APCHSD1="" ;will contain appt if one found
  1. S APCHSDAT=0,APCHSVDT=$$NOW^XLFDT() F S APCHSVDT=$O(^DPT(APCHSDFN,"S",APCHSVDT)) Q:'APCHSVDT!(APCHSD1) D ONEVIS
  1. Q
  1. ;
  1. ONEVIS S APCHSN=^DPT(APCHSDFN,"S",APCHSVDT,0)
  1. Q:"CP"[$E($P(APCHSN,U,2)_" ")
  1. Q:$P(APCHSN,U,7)=4 ;skip unscheduled
  1. S C=$P(APCHSN,U,1)
  1. Q:C=""
  1. S C=$P($G(^SC(C,0)),U,7)
  1. Q:C=""
  1. S C=$P($G(^DIC(40.7,C,0)),U,2)
  1. I C'="D1" Q ;not anticoag clinic
  1. S APCHSD1=1
  1. S APCHSAM="am"
  1. S Y=APCHSVDT\1 S Y=$$FMTE^XLFDT(Y) S APCHSDAT=Y ;,APCHSNDM=APCHSNDM-1
  1. S APCHSVT=$E($P(APCHSVDT,".",2)_"000",1,4) S:APCHSVT>1159 APCHSAM="pm" S:APCHSVT>1300 APCHSVT=APCHSVT-1200 S:$L(APCHSVT)=3 APCHSVT=" "_APCHSVT S:$E(APCHSVT)="0" APCHSVT=" "_$E(APCHSVT,2,4) S APCHSVT=$E(APCHSVT,1,2)_":"_$E(APCHSVT,3,4)
  1. D S^APCHPWH1(" ")
  1. D S^APCHPWH1("Your next anticoagulation appointment is on "_APCHSDAT_" "_APCHSVT_APCHSAM)
  1. Q