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

APCLM1.m

Go to the documentation of this file.
  1. APCLM1 ; IHS/CMI/LAB - ADULT IMMUNIZATION NEEDS ;
  1. ;;2.0;IHS PCC SUITE;;MAY 14, 2009
  1. ;IHS/CMI/LAB - patch 4 for new imm package and 4 digit year display/Y2K
  1. ;
  1. ;
  1. START ;
  1. W:$D(IOF) @IOF
  1. W !!?12,"********** ADULT IMMUNIZATION NEEDS **********"
  1. ST ;
  1. W !!,"This report displays the most recent Td, Pneumococcal, & Influenza Vaccinations",!,"for Adults considered as 'High Risk.' Utilizing QMan, development of a",!
  1. W "Cohort (Template) of Patients is required prior to running this report.",!!
  1. W "Development of the Cohort of High Risk Adults usually consists of finding",!,"Living Patients who are over Age 65 OR who have one or more specific",!,"chronic diseases.",!!
  1. W "Feel free to contact the Help Desk for",!,"assistance in creating your Cohort.",!!
  1. W "Note: Patients with Inactive charts will not appear on this report even",!,"if there were a member of the cohort (template).",!! ;IHS/CMI/LAB
  1. ;
  1. S DIC("S")="I $P(^(0),U,4)=2!($P(^(0),U,4)=9000001)" S DIC="^DIBT(",DIC("A")="Enter Patient SEARCH TEMPLATE name: ",DIC(0)="AEMQ" D ^DIC K DIC,DA,DR,DICR
  1. Q:Y=-1
  1. S APCLSEAT=+Y
  1. ZIS ;call to XBDBQUE
  1. S XBRP="PRN^APCLM1",XBRC="PROC^APCLM1",XBRX="XIT^APCLM1",XBNS="APCL"
  1. D ^XBDBQUE
  1. D XIT
  1. Q
  1. XIT ;
  1. K APCLQUIT,APCLPG,DFN,APCLSEAT,APCL,APCLER,APCLX,APCLCOM,APCLNAME
  1. D KILL^AUPNPAT
  1. K X,X1,X2,IO("Q"),%,Y,POP,DIRUT,ZTSK,ZTQUEUED,H,S,TS,M
  1. Q
  1. PROC ;
  1. S APCLJOB=$J,APCLBTH=$H
  1. D XTMP^APCLOSUT("APCLM1","PCC IMMUNIZATION REPORT 1")
  1. S X=0 F S X=$O(^DIBT(APCLSEAT,1,X)) Q:X'=+X D
  1. .Q:$P($G(^AUPNPAT(X,41,DUZ(2),0)),U,5)]"" ;IHS/CMI/LAB - exlude inactive patients
  1. .S Y=$$COMMRES^AUPNPAT(X,"E") S:Y=""!(Y=-1) Y="?? - UNKNOWN" S ^XTMP("APCLM1",APCLJOB,APCLBTH,"PATS",Y,$P(^DPT(X,0),U),X)=""
  1. Q
  1. PRN ;EP
  1. S APCLPG=0 D HEAD
  1. K APCLQUIT
  1. D PRINT
  1. ;
  1. DONE ;
  1. K ^XTMP("APCLM1",APCLJOB,APCLBTH),APCLJOB,APCLBTH
  1. D DONE^APCLOSUT
  1. Q
  1. PRINT ;
  1. S APCLCOM="" F S APCLCOM=$O(^XTMP("APCLM1",APCLJOB,APCLBTH,"PATS",APCLCOM)) Q:APCLCOM=""!($D(APCLQUIT)) D
  1. .S APCLNAME="" F S APCLNAME=$O(^XTMP("APCLM1",APCLJOB,APCLBTH,"PATS",APCLCOM,APCLNAME)) Q:APCLNAME=""!($D(APCLQUIT)) D
  1. ..S DFN=0 F S DFN=$O(^XTMP("APCLM1",APCLJOB,APCLBTH,"PATS",APCLCOM,APCLNAME,DFN)) Q:DFN'=+DFN!($D(APCLQUIT)) D PRINT1
  1. Q
  1. BI() ;IHS/CMI/LAB - new subroutine patch 4
  1. Q $S($O(^AUTTIMM(0))>100:1,1:0)
  1. ;IHS/CMI/LAB - end new subroutine patch 4
  1. PRINT1 ;
  1. I $Y>(IOSL-4) D HEAD Q:$D(APCLQUIT)
  1. W !,$E($P(^DPT(DFN,0),U),1,20),?22,$$HRN^AUPNPAT(DFN,DUZ(2)),?30,$E($$COMMRES^AUPNPAT(DFN,"E"),1,12),?44,$$AGE^AUPNPAT(DFN,DT)
  1. TD ;
  1. S X=$$LASTTD(DFN)
  1. ;K APCL
  1. ;S APCLER=$$START1^APCLDF(DFN_"^LAST IMM "_$S($$BI:9,1:"02"),"APCL(") ;IHS/CMI/LAB - patch 4 new imm 1/5/99
  1. ;begin Y2K
  1. ;S X=$P($G(APCL(1)),U) S:X]"" X=$E(X,4,5)_"/"_$E(X,6,7)_"/"_$E(X,2,3) W ?50,X ;Y2000
  1. S:X]"" X=$E(X,4,5)_"/"_$E(X,6,7)_"/"_(1700+$E(X,1,3)) W ?48,X ;Y2000
  1. ;end Y2K
  1. FLU ;
  1. S X=$$LASTFLU(DFN)
  1. ;K APCL
  1. ;S APCLX=DFN_"^LAST IMM "_$S($$BI:88,1:12),APCLER=$$START1^APCLDF(APCLX,"APCL(") ;IHS/CMI/LAB - patch 4 new imm 1/5/1999
  1. ;begin Y2K
  1. ;S X=$P($G(APCL(1)),U) S:X]"" X=$E(X,4,5)_"/"_$E(X,6,7)_"/"_(1700+$E(X,1,3)) W ?60,X ;Y2000
  1. S:X]"" X=$E(X,4,5)_"/"_$E(X,6,7)_"/"_(1700+$E(X,1,3)) W ?59,X ;Y2000
  1. ;end Y2K
  1. PNEUMOVX ;
  1. S X=$$LASTPN(DFN)
  1. ;K APCL
  1. ;S APCLER=$$START1^APCLDF(DFN_"^LAST IMM "_$S($$BI:33,1:19),"APCL(") ;IHS/CMI/LAB - patch 4 - new imm display
  1. ;begin Y2K
  1. ;S X=$P($G(APCL(1)),U) S:X]"" X=$E(X,4,5)_"/"_$E(X,6,7)_"/"_$E(X,2,3) W ?70,X ;Y2000
  1. S:X]"" X=$E(X,4,5)_"/"_$E(X,6,7)_"/"_(1700+$E(X,1,3)) W ?70,X ;Y2000
  1. ;end Y2K
  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 APCLQUIT="" Q
  1. HEAD1 ;
  1. W:$D(IOF) @IOF S APCLPG=APCLPG+1
  1. W !?3,$P(^DIC(4,DUZ(2),0),U),?58,$$FMTE^XLFDT(DT),?72,"Page ",APCLPG,!
  1. W ?18,"******** ADULT IMMUNIZATION NEEDS ********",!
  1. W !?22,$E($P(^DIC(4,DUZ(2),0),U),1,6),?70,"LAST"
  1. W !,"PATIENT NAME",?22,"NUMBER",?30,"COMMUNITY",?44,"AGE",?50,"LAST Td",?60,"LAST FLU",?70,"PNEUMOVAX"
  1. W !,$TR($J("",80)," ","-"),!
  1. Q
  1. LASTFLU(P) ;EP
  1. NEW X,E,B,%DT,Y,TDD,D,APCLY
  1. K TDD
  1. I '$$BI D LASTFLO
  1. I $$BI D LASTFLN
  1. ;now check cpt codes
  1. F %=1:1 S T=$T(FLUCPTS+%) Q:$P(T,";;",2)="" S T=$P(T,";;",2),T=$O(^ICPT("B",T,0)) I T S X=$O(^AUPNVCPT("AA",P,T,0)) I X]"" S TDD(X)=""
  1. K APCLY S %=P_"^LAST DX V04.8",E=$$START1^APCLDF(%,"APCLY(")
  1. I $D(APCLY(1)) S TDD(9999999-$P(APCLY(1),U))=""
  1. K APCLY S %=P_"^LAST DX V04.81",E=$$START1^APCLDF(%,"APCLY(")
  1. I $D(APCLY(1)) S TDD(9999999-$P(APCLY(1),U))=""
  1. K APCLY S %=P_"^LAST DX V06.6",E=$$START1^APCLDF(%,"APCLY(")
  1. I $D(APCLY(1)) S TDD(9999999-$P(APCLY(1),U))=""
  1. K APCLY S %=P_"^LAST PROCEDURE 99.52",E=$$START1^APCLDF(%,"APCLY(")
  1. I $D(APCLY(1)) S TDD(9999999-$P(APCLY(1),U))=""
  1. I '$D(TDD) Q ""
  1. Q 9999999-($O(TDD(0)))
  1. ;
  1. LASTFLN ;
  1. S X=0 F S X=$O(^AUPNVIMM("AC",P,X)) Q:X'=+X D
  1. .S B=$P(^AUPNVIMM(X,0),U) Q:'B
  1. .Q:'$D(^AUTTIMM(B,0))
  1. .S B=$P(^AUTTIMM(B,0),U,3)
  1. .S D=$P(^AUPNVIMM(X,0),U,3) Q:'D
  1. .S D=$P($P($G(^AUPNVSIT(D,0)),U),".")
  1. .I B=15 S TDD(9999999-D)="" Q
  1. .I B=16 S TDD(9999999-D)="" Q
  1. .I B=88 S TDD(9999999-D)="" Q
  1. .I B=111 S TDD(9999999-D)="" Q
  1. Q
  1. ;;
  1. LASTFLO ;
  1. S X=0 F S X=$O(^AUPNVIMM("AC",P,X)) Q:X'=+X D
  1. .S B=$P(^AUPNVIMM(X,0),U) Q:'B
  1. .Q:'$D(^AUTTIMM(B,0))
  1. .S B=$P(^AUTTIMM(B,0),U,3)
  1. .S D=$P(^AUPNVIMM(X,0),U,3) Q:'D
  1. .S D=$P($P($G(^AUPNVSIT(D,0)),U),".")
  1. .I B=12 S TDD(9999999-D)="" Q
  1. Q
  1. LASTTD(P) ;EP
  1. NEW X,E,B,%DT,Y,TDD,D,APCLY
  1. K TDD
  1. I '$$BI D LASTTDO
  1. I $$BI D LASTTDN
  1. ;now check cpt codes
  1. F %=1:1 S T=$T(TDCPTS+%) Q:$P(T,";;",2)="" S T=$P(T,";;",2),T=$O(^ICPT("B",T,0)) I T S X=$O(^AUPNVCPT("AA",P,T,0)) I X]"" S TDD(X)=""
  1. I '$D(TDD) Q ""
  1. Q 9999999-$O(TDD(0))
  1. LASTTDN ;
  1. S X=0 F S X=$O(^AUPNVIMM("AC",P,X)) Q:X'=+X D
  1. .S B=$P(^AUPNVIMM(X,0),U) Q:'B
  1. .Q:'$D(^AUTTIMM(B,0))
  1. .S B=$P(^AUTTIMM(B,0),U,3)
  1. .S D=$P(^AUPNVIMM(X,0),U,3) Q:'D
  1. .S D=$P($P($G(^AUPNVSIT(D,0)),U),".")
  1. .I B=1 S TDD(9999999-D)="" Q
  1. .I B=9 S TDD(9999999-D)="" Q
  1. .I B=20 S TDD(9999999-D)="" Q
  1. .I B=22 S TDD(9999999-D)="" Q
  1. .I B=28 S TDD(9999999-D)="" Q
  1. .I B=35 S TDD(9999999-D)="" Q
  1. .I B=50 S TDD(9999999-D)="" Q
  1. .I B=106 S TDD(9999999-D)="" Q
  1. .I B=107 S TDD(9999999-D)="" Q
  1. .I B=110 S TDD(9999999-D)="" Q
  1. Q
  1. ;;
  1. LASTTDO ;
  1. S X=0 F S X=$O(^AUPNVIMM("AC",P,X)) Q:X'=+X D
  1. .S B=$P(^AUPNVIMM(X,0),U) Q:'B
  1. .Q:'$D(^AUTTIMM(B,0))
  1. .S B=$P(^AUTTIMM(B,0),U,3)
  1. .S D=$P(^AUPNVIMM(X,0),U,3) Q:'D
  1. .S D=$P($P($G(^AUPNVSIT(D,0)),U),".")
  1. .I B="04" S TDD(9999999-D)="" Q
  1. .I B=42 S TDD(9999999-D)="" Q
  1. .I B=34 S TDD(9999999-D)="" Q
  1. .I B="03" S TDD(9999999-D)="" Q
  1. .I B="02" S TDD(9999999-D)="" Q
  1. Q
  1. LASTPN(P) ;EP
  1. NEW X,E,B,%DT,Y,TDD,D,APCLY
  1. K TDD
  1. I '$$BI D LASTPNO
  1. I $$BI D LASTPNN
  1. ;now check cpt codes
  1. F %=1:1 S T=$T(PNCPTS+%) Q:$P(T,";;",2)="" S T=$P(T,";;",2),T=$O(^ICPT("B",T,0)) I T S X=$O(^AUPNVCPT("AA",P,T,0)) I X]"" S TDD(X)=""
  1. I '$D(TDD) Q ""
  1. Q 9999999-($O(TDD(0)))
  1. ;
  1. LASTPNN ;
  1. S X=0 F S X=$O(^AUPNVIMM("AC",P,X)) Q:X'=+X D
  1. .S B=$P(^AUPNVIMM(X,0),U) Q:'B
  1. .Q:'$D(^AUTTIMM(B,0))
  1. .S B=$P(^AUTTIMM(B,0),U,3)
  1. .S D=$P(^AUPNVIMM(X,0),U,3) Q:'D
  1. .S D=$P($P($G(^AUPNVSIT(D,0)),U),".")
  1. .I B=33 S TDD(9999999-D)="" Q
  1. .I B=100 S TDD(9999999-D)="" Q
  1. .I B=109 S TDD(9999999-D)="" Q
  1. Q
  1. ;;
  1. LASTPNO ;
  1. S X=0 F S X=$O(^AUPNVIMM("AC",P,X)) Q:X'=+X D
  1. .S B=$P(^AUPNVIMM(X,0),U) Q:'B
  1. .Q:'$D(^AUTTIMM(B,0))
  1. .S B=$P(^AUTTIMM(B,0),U,3)
  1. .S D=$P(^AUPNVIMM(X,0),U,3) Q:'D
  1. .S D=$P($P($G(^AUPNVSIT(D,0)),U),".")
  1. .I B=19 S TDD(9999999-D)="" Q
  1. Q
  1. TDCPTS ;;
  1. ;;90701
  1. ;;90718
  1. ;;90700
  1. ;;90720
  1. ;;90702
  1. ;;90703
  1. ;;90721
  1. ;;90723
  1. ;;
  1. PAPCPTS ;;
  1. ;;88141
  1. ;;88142
  1. ;;88143
  1. ;;88144
  1. ;;88145
  1. ;;88146
  1. ;;88147
  1. ;;88148
  1. ;;88150
  1. ;;88152
  1. ;;88153
  1. ;;88154
  1. ;;88155
  1. ;;88156
  1. ;;88157
  1. ;;88158
  1. ;;88164
  1. ;;88165
  1. ;;88166
  1. ;;88167
  1. ;;
  1. FLUCPTS ;;
  1. ;;90657
  1. ;;90658
  1. ;;90655
  1. ;;90724
  1. ;;90711
  1. ;;90659
  1. ;;90660
  1. ;;
  1. SIGCPTS ;;
  1. ;;45330
  1. ;;45331
  1. ;;45332
  1. ;;45333
  1. ;;45334
  1. ;;45336
  1. ;;45337
  1. ;;45338
  1. ;;45339
  1. ;;45341
  1. ;;45342
  1. ;;45345
  1. ;;
  1. BECPTS ;;
  1. ;;74270
  1. ;;74275
  1. ;;74280
  1. ;;
  1. COLOCPTS ;;
  1. ;;45355
  1. ;;45360
  1. ;;45361
  1. ;;45362
  1. ;;45363
  1. ;;45364
  1. ;;45365
  1. ;;45366
  1. ;;45367
  1. ;;45368
  1. ;;45369
  1. ;;45370
  1. ;;45371
  1. ;;45372
  1. ;;45378
  1. ;;45379
  1. ;;45380
  1. ;;45382
  1. ;;45383
  1. ;;45384
  1. ;;45385
  1. ;;45387
  1. ;;
  1. PNCPTS ;;
  1. ;;90732
  1. ;;90669
  1. ;;