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

APCHSTP.m

Go to the documentation of this file.
  1. APCHSTP ; IHS/CMI/LAB -- CONTINUATION OF ROUTINES ;
  1. ;;2.0;IHS PCC SUITE;**2,7,15,16,20**;MAY 14, 2009;Build 25
  1. ;IHS/CMI/LAB - uncommented age limit on pap smear
  1. ;
  1. ;
  1. GETTPT(APCHI,C,R,EVENT,EVENT1) ;EP
  1. I 'APCHI K R Q
  1. S EVENT=$G(EVENT)
  1. S EVENT1=$G(EVENT1)
  1. K R
  1. S R(0)=$S($P(^APCHSURV(APCHI,0),U,4)]"":$P(^APCHSURV(APCHI,0),U,4),1:$P(^APCHSURV(APCHI,0),U,1))
  1. K ^UTILITY($J,"W")
  1. NEW X,APCHY
  1. S APCHY=0
  1. S DIWL=0,DIWR=C,DIWF="" F S APCHY=$O(^APCHSURV(APCHI,12,APCHY)) Q:APCHY'=+APCHY D
  1. .S X=^APCHSURV(APCHI,12,APCHY,0)
  1. .I X["|" S X=$$INTP(X)
  1. .D ^DIWP
  1. S X=0 F S X=$O(^UTILITY($J,"W",DIWL,X)) Q:X'=+X S R(X)=^UTILITY($J,"W",DIWL,X,0)
  1. Q
  1. ;
  1. INTP(V) ;
  1. N A,Z,X,K,Y
  1. ;S X=V
  1. ;X ^%ZOSF("UPPERCASE")
  1. S (Y,A)=V
  1. S Z=$P(A,"|")
  1. F I=2:2 S J=$P(Y,"|",I) Q:J="" D
  1. .S K=$P(J," ")
  1. .I $T(@K)="" S A="" Q
  1. .S Z="" D @K
  1. .S A=$P(A,("|"_J_"|"))_Z_$P(A,("|"_J_"|"),2)
  1. Q A
  1. ;
  1. WRITETP ;EP - write out TP
  1. I $G(APCHSGHR) D Q
  1. .NEW A,B
  1. .S (A,B)=0
  1. .S APCHRVAL(0)="1^"_$P(^APCHSURV(APCHSITI,0),U)
  1. .F S B=$O(APCHSTEX(B)) Q:B'=+B S A=A+1,APCHRVAL(A)=APCHSTEX(B)
  1. I 'APCHSANY D FIRST Q:$D(APCHSQIT) S APCHSANY=1,APCHSNPG=0
  1. X APCHSCKP Q:$D(APCHSQIT)
  1. I APCHSNPG S APCHSCT=0,APCHSNPG=0
  1. S APCHX=$S($P(^APCHSURV(APCHSITI,0),U,4)]"":$P(^APCHSURV(APCHSITI,0),U,4),1:$P(^APCHSURV(APCHSITI,0),U))
  1. W APCHX
  1. I $L(APCHX)>28 W !
  1. ;W ?30,APCHSTEX(1)
  1. F APCHSL=1:1 Q:'$D(APCHSTEX(APCHSL))!($D(APCHSQIT)) D
  1. .X APCHSCKP Q:$D(APCHSQIT)
  1. .W ?30,APCHSTEX(APCHSL),!
  1. ;W !
  1. ;S APCHSCT=APCHSCT+1
  1. ;I '(APCHSCT#2) X APCHSCKP Q:$D(APCHSQIT) W:'APCHSNPG !
  1. K APCHSTEX
  1. Q
  1. ;
  1. FIRST ;EP
  1. X APCHSCKP Q:$D(APCHSQIT) X:'APCHSNPG APCHSBRK
  1. ;W !
  1. ;S APCHSCT=0
  1. Q
  1. ;
  1. CVD ;EP
  1. NEW APCHSTAT
  1. Q:'$$INAC^APCHSMU(APCHSITI)
  1. I $T(EN^BQITRPHS)="" Q
  1. S APCHLAST="",APCHNEXT="" K APCHSTEX,APCHSBQI
  1. D EN^BQITRPHS(APCHSPAT,$P(^APCHSURV(APCHSITI,0),U,1),.APCHSBQI)
  1. K ^UTILITY($J,"W")
  1. NEW X,APCHY
  1. S APCHY=0
  1. S DIWL=0,DIWR=C,DIWF="" F S APCHY=$O(APCHSBQI(APCHY)) Q:APCHY'=+APCHY D
  1. .S X=APCHSBQI(APCHY)
  1. .D ^DIWP
  1. S X=0 F S X=$O(^UTILITY($J,"W",DIWL,X)) Q:X'=+X S APCHSTEX(X)=^UTILITY($J,"W",DIWL,X,0)
  1. D WRITETP
  1. X APCHSURX
  1. Q
  1. ;
  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)
  1. I 'APCHSCRI D
  1. .Q:APCHSAGE<65
  1. .S APCHSINT=(2*365)
  1. I APCHSINT="" X APCHSURX Q ;no frequency so skip it
  1. K APCHSTEX
  1. I $G(APCHCOLW)="" S APCHCOLW=48
  1. D GETTPT(APCHSITI,APCHCOLW,.APCHSTEX)
  1. D WRITETP
  1. X APCHSURX
  1. Q
  1. ;
  1. STRAB ;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)
  1. I 'APCHSCRI D
  1. .Q:APCHSAGE<3
  1. .Q:APCHSAGE>4
  1. .S APCHSINT=(2*365)
  1. I APCHSINT="" X APCHSURX Q ;no frequency so skip it
  1. K APCHSTEX
  1. I $G(APCHCOLW)="" S APCHCOLW=48
  1. D GETTPT(APCHSITI,APCHCOLW,.APCHSTEX)
  1. D WRITETP
  1. Q
  1. ;
  1. ASHMR1 ;EP called from hmr
  1. ;increase steriods
  1. Q:'$$INAC^APCHSMU(APCHSITI) ;is item turned on or off
  1. Q:'$$HMR1ST^APCHSMAS(APCHSPAT) ;not a candidate for this reminder
  1. S APCHLAST="",APCHNEXT="" K APCHSTEX
  1. I $G(APCHCOLW)="" S APCHCOLW=48
  1. D GETTPT(APCHSITI,APCHCOLW,.APCHSTEX)
  1. D WRITETP
  1. Q
  1. ;
  1. ASHMR2 ;EP called from health maintenance reminders
  1. ;asthma management plan
  1. Q:'$$INAC^APCHSMU(APCHSITI)
  1. S APCHICAR=""
  1. NEW APCHX,APCHY,Y
  1. S APCHX=0 F S APCHX=$O(^AUTTEDT("C","ASM-SMP",APCHX)) Q:APCHX'=+APCHX D
  1. .S Y=$$LASTITEM^APCLAPIU(APCHSPAT,"`"_APCHX,"EDUCATION",,,"A")
  1. .I Y="" Q
  1. .S APCHY($P(Y,U,1))=Y
  1. S APCHICAR=$O(APCHY(0)) I APCHICAR S APCHICAR=APCHY(APCHICAR)
  1. I APCHICAR="" S APCHICAR=$$LASTAM^APCHSAST(DFN,3)
  1. S (APCHLAST,Y)=$P(APCHICAR,U,1)
  1. Q:Y>$$FMADD^XLFDT(DT,-365) ;asthma plan in place in last year
  1. Q:'$$HMR2ST^APCHSMAS(APCHSPAT) ;not a candidate
  1. S APCHLAST="",APCHNEXT="" K APCHSTEX
  1. I $G(APCHCOLW)="" S APCHCOLW=48
  1. D GETTPT(APCHSITI,APCHCOLW,.APCHSTEX)
  1. D WRITETP
  1. Q
  1. ;
  1. ASHMR5 ;EP - called from hmr item
  1. Q:'$$INAC^APCHSMU(APCHSITI) ;is item turned on or off
  1. Q:$P(^AUPNPAT(APCHSPAT,0),U,14)]""
  1. NEW APCHPRV
  1. D WHPCP^BDPAPI(APCHSPAT,.APCHPRV)
  1. I $G(APCHPRV("DESIGNATED PRIMARY PROVIDER"))]"" Q
  1. Q:'$$HMR5ST^APCHSMAS(APCHSPAT)
  1. S APCHLAST="",APCHNEXT="" K APCHSTEX
  1. I $G(APCHCOLW)="" S APCHCOLW=48
  1. D GETTPT(APCHSITI,APCHCOLW,.APCHSTEX)
  1. D WRITETP
  1. Q
  1. ;
  1. ASHMR3 ;EP - called from maintenance reminder
  1. Q:'$$INAC^APCHSMU(APCHSITI) ;is item turned on or off
  1. I $E(DT,4,5)="04"!($E(DT,4,5)="05")!($E(DT,4,5)="06")!($E(DT,4,5)="07")!($E(DT,4,5)="08") Q ;don't display in summer
  1. X APCHSURX
  1. Q:'$$HMR3ST^APCHSMAS(APCHSPAT) ;not a candidate for this reminder
  1. S APCHLAST="",APCHNEXT="" K APCHSTEX
  1. S APCHICAR=$$LASTFLU^APCLAPI4(APCHSPAT)
  1. S APCHLAST=$P(APCHICAR,U,1)
  1. I APCHLAST="" D W3 Q
  1. S D=$$FMDIFF^XLFDT(DT,APCHLAST)
  1. I +$E(DT,4,5)>8,D>210 D W3 Q
  1. I +$E(DT,4,5)<4,D>210 D W3 Q
  1. Q
  1. W3 ;
  1. I $G(APCHCOLW)="" S APCHCOLW=48
  1. D GETTPT(APCHSITI,APCHCOLW,.APCHSTEX)
  1. D WRITETP
  1. Q
  1. ASHMR4 ;EP - called from hmr item
  1. NEW APCHSTAT
  1. Q:'$$INAC^APCHSMU(APCHSITI)
  1. Q:$$IPLSNO^APCHSMAS(DFN,"PXRM ASTHMA CLASSIFIED") ;has IPL of classified
  1. Q:$$PLTAXAC^APCHSMAS(DFN,"BJPC ASTHMA CLASSIFIED") ;has ipl of classified
  1. Q:$$LASTASCL^APCHSMAS(APCHSPAT,1)]"" ;asthma severity documented
  1. Q:'$$HMR4ST^APCHSMAS(APCHSPAT) ;not a candidate
  1. S APCHLAST="",APCHNEXT="" K APCHSTEX
  1. I $G(APCHCOLW)="" S APCHCOLW=48
  1. D GETTPT(APCHSITI,APCHCOLW,.APCHSTEX)
  1. D WRITETP
  1. Q
  1. ASTCLASS(P) ;EP
  1. NEW APCH,G,BD,X,D,V,E
  1. S G=""
  1. S BD=$$DOB^AUPNPAT(P)
  1. S %=P_"^ALL DX [BJPC ASTHMA CLASSIFIED;DURING "_BD_"-"_DT,E=$$START1^APCLDF(%,"APCH(")
  1. I '$D(APCH) Q ""
  1. ;SKIP any not A or H
  1. S (G,X)=0 F S X=$O(APCH(X)) Q:X'=+X!(G) D
  1. .S V=$P(APCH(X),U,5) Q:'V
  1. .Q:"AH"'[$P($G(^AUPNVSIT(V,0)),U,7)
  1. .S G=1
  1. Q G
  1. ;
  1. ASHMR8 ;EP - called from hmr item
  1. NEW APCHSTAT
  1. Q:'$$INAC^APCHSMU(APCHSITI)
  1. Q:$$IPLSNO^APCHSMAS(APCHSPAT,"PXRM ASTHMA CLASSIFIED") ;has IPL of classified
  1. ;Q:$$PLTAXAC^APCHSMAS(P,"BJPC ASTHMA CLASSIFIED")
  1. Q:$$LASTASCL^APCHSMAS(APCHSPAT,1)]"" ;asthma severity documented
  1. Q:'$$ASTCLASS(APCHSPAT) ;not a candidate as no pov for asthma classified
  1. S APCHLAST="",APCHNEXT="" K APCHSTEX
  1. I $G(APCHCOLW)="" S APCHCOLW=48
  1. D GETTPT(APCHSITI,APCHCOLW,.APCHSTEX)
  1. D WRITETP
  1. Q
  1. ASHMR6 ;EP - called from hmr item
  1. NEW APCHSTAT
  1. Q:'$$INAC^APCHSMU(APCHSITI)
  1. Q:'$$HMR6ST^APCHSMAS(APCHSPAT) ;not a candidate
  1. S APCHLAST=$$LASTACON^APCHSMAS(APCHSPAT,2)
  1. I $$FMDIFF^XLFDT(DT,APCHLAST)<365 Q ;documented in past year
  1. S APCHLAST="",APCHNEXT="" K APCHSTEX
  1. I $G(APCHCOLW)="" S APCHCOLW=48
  1. D GETTPT(APCHSITI,APCHCOLW,.APCHSTEX)
  1. D WRITETP
  1. Q
  1. ASHMR7 ;EP - called from hmr item
  1. NEW APCHSTAT,APCHSEV
  1. Q:'$$INAC^APCHSMU(APCHSITI)
  1. S APCHSEV=$$HMR7ST^APCHSMAS(APCHSPAT) ;not a candidate
  1. Q:'APCHSEV
  1. S APCHLAST="",APCHNEXT="" K APCHSTEX
  1. I $G(APCHCOLW)="" S APCHCOLW=48
  1. D GETTPT(APCHSITI,APCHCOLW,.APCHSTEX,APCHSEV)
  1. D WRITETP
  1. Q
  1. ASFS1 ;
  1. NEW A,X,K,Y
  1. S Z=$$FMTE^XLFDT($$LASTDXT^APCLAPIU(APCHSPAT,,,"BGP ASTHMA DXS","D"))
  1. I Z="" S Z=$$PLTAXAC^APCHSMAS(APCHSPAT,"BGP ASTHMA DXS") S Z=$P(Z,U,2)
  1. Q
  1. ASAP1 ;
  1. NEW A,X,K,Y
  1. S Z=$P($$HMR2ST^APCHSMAS(APCHSPAT),U,2)
  1. Q
  1. ;
  1. ASEV2 ;
  1. S Z="-- "_$P(EVENT,U,2)
  1. Q
  1. ASEV3 ;
  1. S Z="-- "_$P(EVENT,U,3)
  1. Q
  1. ASEV1 ;
  1. S Z=$P($$LASTACLG^APCHSMAS(APCHSPAT,2),U,2)
  1. I Z="" S Z="None Documented"
  1. Q
  1. RUBELLA ;
  1. I EVENT1="NON-IMMUNE" D Q
  1. .I EVENT]"" S Z="Rubella Immunization Status health factor is recorded "_""""_"Non-Immune"_""""_" but there is a record of rubella vaccination on "_$$DATE^APCHSMU(EVENT)_"." D RUBWT Q
  1. .S Z=Z_" Patient may be due for Rubella Vaccination"_"." D RUBWT Q
  1. I EVENT1="INDETERMINATE" D Q
  1. .I EVENT]"" S Z="Rubella Immunization Status health factor is recorded "_""""_"Indeterminate"_""""_" but there is a record of rubella vaccination on "_$$DATE^APCHSMU(EVENT)_"." D RUBWT Q
  1. .S Z="Rubella Immunization Status health factor is recorded "_""""_"Indeterminate,"_""""_" needs further clinical review." D RUBWT Q
  1. I EVENT]"" Q
  1. S Z="No Rubella Immunization Status health factor recorded, may be due for rubella vaccination." D RUBWT
  1. Q
  1. RUBWT ;
  1. NEW APCHLR,V
  1. S APCHLR=""
  1. S V=$$REF^APCHSMU(APCHSPAT,9999999.14,$O(^AUTTIMM("C",3,0)),EVENT) I V]"" S APCHLR=V
  1. S V=$$REF^APCHSMU(APCHSPAT,9999999.14,$O(^AUTTIMM("C",4,0)),EVENT) I V]"",$P(V,U,3)]$P(APCHLR,U,3) S APCHLR=V
  1. S V=$$REF^APCHSMU(APCHSPAT,9999999.14,$O(^AUTTIMM("C",6,0)),EVENT) I V]"",$P(V,U,3)]$P(APCHLR,U,3) S APCHLR=V
  1. S V=$$REF^APCHSMU(APCHSPAT,9999999.14,$O(^AUTTIMM("C",38,0)),EVENT) I V]"",$P(V,U,3)]$P(APCHLR,U,3) S APCHLR=V
  1. S V=$$REF^APCHSMU(APCHSPAT,9999999.14,$O(^AUTTIMM("C",94,0)),EVENT) I V]"",$P(V,U,3)]$P(APCHLR,U,3) S APCHLR=V
  1. I APCHLR]"" S X=$P(APCHLR,U) S Z=Z_" "_X S X=$P(APCHLR,U,2) I X]"" S Z=Z_" "_X
  1. I APCHLR]"" S Z=Z_"."
  1. Q
  1. ACENDDT ;
  1. S Z=$P($$MREND^APCHSACG(APCHSPAT),U,2)
  1. Q
  1. ACURINDT ;
  1. NEW J
  1. S Z=$$LASTACUR^APCHSACG(APCHSPAT)
  1. I Z S Z=$$FMTE^XLFDT($P(Z,U,1)) Q
  1. S Z="<never reported>"
  1. Q
  1. ACCBCDT ;
  1. NEW J
  1. S Z=$$LASTACCB^APCHSACG(APCHSPAT)
  1. I Z S Z=$$FMTE^XLFDT($P(Z,U,1)) Q
  1. S Z="<never reported>"
  1. Q
  1. ACFOBTDT ;
  1. NEW J
  1. S Z=$$LASTACFO^APCHSACG(APCHSPAT)
  1. I Z S Z=$$FMTE^XLFDT($P(Z,U,1)) Q
  1. S Z="<never reported>"
  1. Q
  1. HEPC ;EP
  1. NEW APCHSTAT
  1. Q:'$$INAC^APCHSMU(APCHSITI)
  1. Q:$$DOB^AUPNPAT(APCHSPAT)<2450101
  1. Q:$$DOB^AUPNPAT(APCHSPAT)>2651231
  1. Q:$$HASHEPC(APCHSPAT) ;PL/DX/LAB TEST/CPT
  1. S APCHLAST="",APCHNEXT="" K APCHSTEX
  1. I $G(APCHCOLW)="" S APCHCOLW=48
  1. D GETTPT(APCHSITI,APCHCOLW,.APCHSTEX)
  1. D WRITETP
  1. Q
  1. HASHEPC(P) ;DOES PATIENT HAVE A HEP C DX?
  1. ;problem list subset PXRM HEPATITIS C
  1. I $$IPLSNO^APCHSMU1(P,"PXRM HEPATITIS C",1) Q 1 ;HAS SNOMED PL
  1. I $$PLTAX^APCHSMU(P,"BGP HEPATITIS C DXS",,1) Q 1 ;HAS DX PL
  1. I $P($$LASTDX^APCHSMU2(P,"BGP HEPATITIS C DXS"),U) Q 1 ;HAS DX EVER
  1. ;SNOMED V POV
  1. I $$SNOMEDPV^APCLAPIU(P,$$DOB^AUPNPAT(P),DT,"PXRM HEPATITIS C","D") Q 1 ;HAS SNOMED V POV
  1. I $$HEPCTEST(P,$$DOB^AUPNPAT(P),DT) Q 1 ;has cpt or lab test
  1. S D=$$LASTHF^APCHSMU(P,"HCV STATUS") I D Q 1 ;HF
  1. S D=$$LASTHF^APCHSMU(APCHSPAT,"HCV Status") I D Q 1 ;HF
  1. Q ""
  1. HEPCTEST(P,BDATE,EDATE) ;
  1. I '$G(P) Q ""
  1. I '$G(BDATE) S BDATE=$$DOB^AUPNPAT(P)
  1. I '$G(EDATE) S EDATE=DT
  1. NEW I,D
  1. ;LAST LAB TEST BGP HEP C TEST TAX
  1. S I=$$LASTLAB^APCLAPIU(P,BDATE,EDATE,,$O(^ATXLAB("B","BGP HEP C TESTS TAX",0)),,$O(^ATXAX("B","BGP HEP C TEST LOINC CODES",0)),"A") I I Q 1 ;HAS LAB TEST
  1. S D=$$LASTCPTI^APCHSMU2(P,86803) I D Q 1 ;CPT
  1. S D=$$LASTCPTI^APCHSMU2(P,87902) I D Q 1 ;CPT
  1. Q ""