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

APCLSIL3.m

Go to the documentation of this file.
  1. APCLSIL3 ; IHS/CMI/LAB - ili surveillance ;
  1. ;;3.0;IHS PCC REPORTS;**24,26,27,28,29,30**;FEB 05, 1997;Build 27
  1. ;
  1. ;
  1. INFORM ;
  1. W:$D(IOF) @IOF
  1. W !,$$CTR($$LOC)
  1. W !,$$CTR($$USR)
  1. W !!,"This report will create a search template of visits that meet the "
  1. W !,"Surveillance ILI criteria. You will be asked the provide the date"
  1. W !,"range of visits, a name for the visit search template to be created, and"
  1. W !,"the device to which the cover page/summary will be printed.",!
  1. W !,"The visits must meet the following criteria:"
  1. W !?5," - must be in the date range selected by the user"
  1. W !?5," - must have a service category of H OR A, O, R or S (outpatient)"
  1. W !?5," - must have at least one diagnosis that is contained in the "
  1. W !?8,"SURVEILLANCE ILI taxonomy with a temperature recorded on the visit"
  1. W !?8,"with a value >=100 OR there must be at least one diagnosis in the"
  1. W !?8,"SURVEILLANCE ILI NO TMP NEEDED taxonomy."
  1. W !?5," - if ambulatory, must be to a clinic in the SURVEILLANCE ILI CLINICS taxonomy"
  1. W !?8,"or the provider must be a PHN"
  1. W !?5," - the patient's name must not contain 'DEMO,PATIENT' (demo patients"
  1. W !?8,"skipped)"
  1. W !
  1. D EXIT
  1. S APCLCTAX=$O(^ATXAX("B","SURVEILLANCE ILI CLINICS",0)) ;clinic taxonomy
  1. S APCLDTAX=$O(^ATXAX("B","SURVEILLANCE ILI",0)) ;dx taxonomy
  1. S APCLTTAX=$O(^ATXAX("B","SURVEILLANCE ILI NO TMP NEEDED",0))
  1. I 'APCLDTAX W !!,"SURVEILLANCE ILI ICD taxonomy missing...cannot continue." D EXIT Q
  1. I 'APCLCTAX W !!,"SURVEILLANCE ILI CLINICS taxonomy missing...cannot continue." D EXIT Q
  1. I 'APCLTTAX W !!,"SURVEILLANCE ILI NO TMP NEEDED taxonomy missing...cannot continue." D EXIT Q
  1. ;
  1. DATES K APCLED,APCLBD
  1. K DIR W ! S DIR(0)="DO^::EXP",DIR("A")="Enter Beginning Visit Date"
  1. D ^DIR G:Y<1 EXIT S APCLBD=Y
  1. K DIR S DIR(0)="DO^:DT:EXP",DIR("A")="Enter Ending Visit Date"
  1. D ^DIR G:Y<1 EXIT S APCLED=Y
  1. ;
  1. I APCLED<APCLBD D G DATES
  1. . W !!,$C(7),"Sorry, Ending Date MUST not be earlier than Beginning Date."
  1. S APCLSD=$$FMADD^XLFDT(APCLBD,-1)_".9999"
  1. ;
  1. STMP ;
  1. S APCLSTMP=""
  1. D ^APCLSTMV
  1. I APCLSTMP="" G DATES
  1. ;
  1. ZIS ;call to XBDBQUE
  1. S XBRP="PRINT^APCLSIL3",XBRC="PROC1^APCLSIL3",XBRX="EXIT^APCLSIL3",XBNS="APCL"
  1. D ^XBDBQUE
  1. D EXIT
  1. Q
  1. ;
  1. EXIT ;clean up and exit
  1. D EN^XBVK("APCL")
  1. D ^XBFMK
  1. Q
  1. PROC1 ;
  1. S APCLJ=$J,APCLH=$H
  1. S APCLCTAX=$O(^ATXAX("B","SURVEILLANCE ILI CLINICS",0)) ;clinic taxonomy
  1. S APCLDTAX=$O(^ATXAX("B","SURVEILLANCE ILI",0)) ;dx taxonomy
  1. I 'APCLCTAX D EXIT Q
  1. I 'APCLDTAX D EXIT Q
  1. I 'APCLTTAX D EXIT Q
  1. ;
  1. S APCLVTOT=0,APCLPTOT=0 ;visit counter
  1. F S APCLSD=$O(^AUPNVSIT("B",APCLSD)) Q:APCLSD'=+APCLSD!($P(APCLSD,".")>APCLED) D
  1. .S APCLV=0 F S APCLV=$O(^AUPNVSIT("B",APCLSD,APCLV)) Q:APCLV'=+APCLV D
  1. ..Q:'$D(^AUPNVSIT(APCLV,0)) ;no zero node
  1. ..Q:$P(^AUPNVSIT(APCLV,0),U,11) ;deleted visit
  1. ..Q:"AORHS"'[$P(^AUPNVSIT(APCLV,0),U,7) ;just want outpatient
  1. ..S X=0,P=0 F S X=$O(^AUPNVPRV("AD",APCLV,X)) Q:X'=+X!(P) D
  1. ...Q:'$D(^AUPNVPRV(X,0))
  1. ...S Y=$P(^AUPNVPRV(X,0),U)
  1. ...S Z=$$VALI^XBDIQ1(200,Y,53.5)
  1. ...Q:'Z
  1. ...I $P($G(^DIC(7,Z,9999999)),U,1)=13 S P=1
  1. ..I P G P
  1. ..S APCLCLIN=$$CLINIC^APCLV(APCLV,"I") ;get clinic code
  1. ..I $P(^AUPNVSIT(APCLV,0),U,7)'="H" Q:APCLCLIN=""
  1. ..I $P(^AUPNVSIT(APCLV,0),U,7)'="H" Q:'$D(^ATXAX(APCLCTAX,21,"B",APCLCLIN)) ;not in clinic taxonomy
  1. ..S APCLLOC=$P(^AUPNVSIT(APCLV,0),U,6) Q:APCLLOC="" ;no location ???
  1. ..S APCLDATE=$P($P(^AUPNVSIT(APCLV,0),U),".")
  1. P ..S DFN=$P(^AUPNVSIT(APCLV,0),U,5)
  1. ..Q:DFN=""
  1. ..Q:'$D(^DPT(DFN,0))
  1. ..Q:$P(^DPT(DFN,0),U)["DEMO,PATIENT"
  1. ..Q:$$DEMO^APCLUTL(DFN,"E") ;exclude demo patients
  1. ..S APCLASUF=$P($G(^AUTTLOC(APCLLOC,0)),U,10)
  1. ..I APCLASUF="" Q ;no ASUFAC????
  1. ..S ^TMP($J,"APCLLOCT",APCLASUF,$$JDATE^APCLSILI(APCLDATE))=$G(^TMP($J,"APCLLOCT",APCLASUF,$$JDATE^APCLSILI(APCLDATE)))+1 ;total number of visits on this date/location
  1. ..S G=0
  1. ..S X=0 F S X=$O(^AUPNVPOV("AD",APCLV,X)) Q:X'=+X D
  1. ...S T=$P(^AUPNVPOV(X,0),U)
  1. ...I $$ICD^APCLSILU(T,APCLTTAX,9) S G=1
  1. ...I $$ICD^APCLSILU(T,APCLDTAX,9),$$TMP100^APCLSILI(APCLV) S G=1
  1. ..Q:'G ;no diagnosis
  1. ..;
  1. ..D SET
  1. ..Q
  1. .Q
  1. K ^XTMP("APCLSILI",APCLJ,APCLH)
  1. Q
  1. PRINT ;EP - called from xbdbque
  1. S APCLPG=0
  1. D HEADER
  1. W !!,"Search Template Created: ",$P(^DIBT(APCLSTMP,0),U)
  1. W !!,"Total # of visits meeting criteria and placed in the template: ",APCLVTOT
  1. W !!,"Total # of patients for these visits: ",APCLPTOT,!
  1. D EOP
  1. Q
  1. SET ;
  1. S APCLVTOT=APCLVTOT+1
  1. S ^DIBT(APCLSTMP,1,APCLV)=""
  1. Q:$D(^XTMP("APCLSILI",APCLJ,APCLH,"PATS",DFN))
  1. S APCLPTOT=APCLPTOT+1
  1. S ^XTMP("APCLSILI",APCLJ,APCLH,"PATS",DFN)=""
  1. Q
  1. I 'APCLPG G HEAD1
  1. I $E(IOST)="C",IO=IO(0) W ! S DIR(0)="EO" D ^DIR K DIR I Y=0!(Y="^")!($D(DTOUT)) S APCLQ="" Q
  1. HEAD1 ;
  1. W:$D(IOF) @IOF S APCLPG=APCLPG+1
  1. W $P(^VA(200,DUZ,0),U,2),?72,"Page ",APCLPG,!
  1. W ?(80-$L($P(^DIC(4,DUZ(2),0),U))/2),$P(^DIC(4,DUZ(2),0),U),!
  1. W !,$$CTR("SURVEILLANCE ILI VISIT SEARCH"),!
  1. W !,$$CTR("DATE RANGE: "_$$FMTE^XLFDT(APCLBD)_"-"_$$FMTE^XLFDT(APCLED),80),!
  1. W !,$$REPEAT^XLFSTR("-",79)
  1. Q
  1. CTR(X,Y) ;EP - Center X in a field Y wide.
  1. Q $J("",$S($D(Y):Y,1:IOM)-$L(X)\2)_X
  1. ;----------
  1. EOP ;EP - End of page.
  1. Q:$E(IOST)'="C"
  1. Q:$D(ZTQUEUED)!'(IOT["TRM")!$D(IO("S"))
  1. NEW DIR
  1. K DIRUT,DFOUT,DLOUT,DTOUT,DUOUT
  1. S DIR(0)="E" D ^DIR
  1. Q
  1. ;----------
  1. USR() ;EP - Return name of current user from ^VA(200.
  1. Q $S($G(DUZ):$S($D(^VA(200,DUZ,0)):$P(^(0),U),1:"UNKNOWN"),1:"DUZ UNDEFINED OR 0")
  1. ;----------
  1. LOC() ;EP - Return location name from file 4 based on DUZ(2).
  1. Q $S($G(DUZ(2)):$S($D(^DIC(4,DUZ(2),0)):$P(^(0),U),1:"UNKNOWN"),1:"DUZ(2) UNDEFINED OR 0")
  1. ;----------
  1. STOPD ;EP
  1. W !!,"This option is used to set a stop date for sending ILI surveillance"
  1. W !,"visit data to IHS/CDC. Currently the stop date is preset for "
  1. W !,"September 1, 2009."
  1. W !!,"When the nightly export runs, it will check this date. If the stop "
  1. W !,"date is less than the export date, no data will be exported."
  1. W !!,"For example, if you want to have the export of data stop on "
  1. W !,"August 1, 2009, then enter that date here. If you want to continue"
  1. W !,"the export indefinitely, select a date in the future.",!
  1. S DA=$O(^APCLCNTL("B","ILI STOP DATE",0))
  1. I 'DA W !!,"ILI CONTROL FILE ENTRY MISSING. NOTIFY PROGRAMMER." K DA Q
  1. S DIE="^APCLCNTL(",DR=".03"
  1. D ^DIE
  1. K DIE,DA
  1. W !!
  1. D PAUSE^APCLVL01
  1. Q
  1. PURGE ;EP - CALLED TO PURGE
  1. W:'$D(ZTQUEUED) !!,"Now cleaning up host files older than 7 DAYS"
  1. K APCLFILE,APCLDIR
  1. S APCLDIR=$P($G(^AUTTSITE(1,1)),"^",2)
  1. I APCLDIR="" S APCLDIR=$P($G(^XTV(8989.3,1,"DEV")),"^",1)
  1. I APCLDIR="" Q
  1. S APCLASU=$P($G(^AUTTLOC($P(^AUTTSITE(1,0),U),0)),U,10)
  1. S APCLDT=$$FMADD^XLFDT(DT,-7)
  1. S APCLDT=$$DATE^APCLSILI(APCLDT)
  1. S APCLFLST=$$LIST^%ZISH(APCLDIR,"FLU_"_APCLASU_"*",.APCLFILE)
  1. Q:'$O(APCLFILE(""))
  1. S APCLX=0 F S APCLX=$O(APCLFILE(APCLX)) Q:APCLX'=+APCLX D
  1. .S D=$P($P(APCLFILE(APCLX),"."),"_",3)
  1. .I D<APCLDT S N=APCLFILE(APCLX) S APCLM=$$DEL^%ZISH(APCLDIR,N)
  1. PURGEPOP ;
  1. K APCLFILE
  1. S APCLFLST=$$LIST^%ZISH(APCLDIR,"FLUPOP_"_APCLASU_"*",.APCLFILE)
  1. Q:'$O(APCLFILE(""))
  1. S APCLX=0 F S APCLX=$O(APCLFILE(APCLX)) Q:APCLX'=+APCLX D
  1. .S D=$P($P(APCLFILE(APCLX),"."),"_",3)
  1. .I D<APCLDT S N=APCLFILE(APCLX) S APCLM=$$DEL^%ZISH(APCLDIR,N)
  1. Q