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

APCLSILI.m

Go to the documentation of this file.
  1. APCLSILI ; IHS/CMI/LAB - ILI surveillance export ; 27 Jun 2017 2:26 PM
  1. ;;3.0;IHS PCC REPORTS;**22,23,24,25,26,27,28,29,30,31**;FEB 05, 1997;Build 32
  1. ;
  1. ;
  1. START ;
  1. ;ili surveillance export, runs nightly, see design doc from ILI team for
  1. ;details
  1. ;
  1. ;
  1. D EN^XBVK("APCL")
  1. S D=""
  1. S X=$O(^APCLCNTL("B","ILI STOP DATE",0))
  1. I X,$P(^APCLCNTL(X,0),U,3) S D=$P(^APCLCNTL(X,0),U,3) ;if there is a stop date then use it
  1. I D,DT>D Q
  1. ;
  1. D EXIT
  1. ;
  1. ;
  1. PROC ;EP - called from xbdbque
  1. S APCL1ST="",APCLSCOM=""
  1. I $E(DT,6,7)="01" S APCL1ST=1
  1. ;I $P($G(^APCLILIC(1,0)),U,2) S APCL1ST=1 ;need to send data first time through after the patch is installed
  1. ;if this is between the 15th and 27th then check to see if the user pop export has been run
  1. ;if it has run since the 1st of the month then run it.
  1. ;get the 1st of this month
  1. S APCL1OM=$E(DT,1,5)_"01"
  1. ;get date last one finished.
  1. S (X,L)="" F S X=$O(^APCLILIC(1,11,"B",X)) Q:X'=+X S L=X
  1. I 'L S APCL1ST=1 ;hasn't run before after patch 27 so run it
  1. I 'APCL1ST,$E(DT,6,7)>14,$E(DT,6,7)<27,L<APCL1OM S APCL1ST=1 ;if last time run was before the 1st then run it
  1. I $E(DT,4,7)="0710"!($E(DT,4,7)="1210") S APCLSCOM=1
  1. K APCLLOCT,APCLALLT,APCLHTOT,APCLALL1
  1. K ^TMP($J)
  1. K ^APCLDATA($J)
  1. S APCLCTAX=$O(^ATXAX("B","SURVEILLANCE ILI CLINICS",0))
  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 'APCLCTAX D EXIT Q
  1. I 'APCLDTAX D EXIT Q
  1. ;
  1. I '$P($G(^APCLILIC(1,0)),U,4) D I 1
  1. .S (APCLSD,APCLDELD)=3081231.9999,$P(^APCLILIC(1,0),U,4)=1,APCLBDAT=3090101,APCLFLF=1,APCL1ST=1,APCLSCOM=1
  1. E S (APCLSD,APCLDELD)=$$FMADD^XLFDT(DT,-91)_".9999",APCLBDAT=$$FMADD^XLFDT(DT,-90)
  1. S APCLED=$$FMADD^XLFDT(DT,-1)
  1. S APCLZHSD=DT
  1. EP1 ;EP - called from on demand option
  1. ;wipe out log? - yes per Deborah
  1. I $G(APCLFLF) D
  1. .S APCLX=0 F S APCLX=$O(^APCLILIL(APCLX)) Q:APCLX'=+APCLX S DA=APCLX,DIK="^APCLILIL(" D ^DIK
  1. D UNFOLDTX^APCLSILU
  1. K ^XTMP("APCLILIV",$J)
  1. I $G(APCLWEXP)="P" G MONUP
  1. S APCLVTOT=0
  1. S APCLBT=$H
  1. S APCLDELD=APCLSD
  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 PROC1
  1. ;now go through ADLM and if exported before and not already dealt with d proc1 SKIP IF THIS IS A FULL BACKLOAD
  1. I $G(APCLFLF) G S
  1. S APCLSD=APCLDELD
  1. F S APCLSD=$O(^AUPNVSIT("ADLM",APCLSD)) Q:APCLSD'=+APCLSD!($P(APCLSD,".")>APCLED) D
  1. .S APCLV=0 F S APCLV=$O(^AUPNVSIT("ADLM",APCLSD,APCLV)) Q:APCLV'=+APCLV D
  1. ..Q:$D(^XTMP("APCLILIV",$J,APCLV)) ;already processed
  1. ..Q:$$VD^APCLV(APCLV)<3090101 ;only want visits after 1/1/09
  1. ..;I '$D(^APCLILIL(APCLV)) Q ;;never sent so no need to process
  1. ..D PROC1
  1. ;NOW GO THROUGH AVDEL XREF FOR DELETES SKIP IF THIS IS A FULL EXPORT
  1. S APCLSD=APCLDELD
  1. F S APCLSD=$O(^AUPNVSIT("AVDEL",APCLSD)) Q:APCLSD'=+APCLSD!($P(APCLSD,".")>APCLED) D
  1. .S APCLV=0 F S APCLV=$O(^AUPNVSIT("AVDEL",APCLSD,APCLV)) Q:APCLV'=+APCLV D
  1. ..I '$D(^APCLILIL(APCLV)) Q ;never exported so no need to send delete
  1. ..I $P(^AUPNVSIT(APCLV,0),U,11),$D(^APCLILIL("B",APCLV)) S APCLSTAT="D" D SR("VISIT HAS BEEN DELETED")
  1. ..S DFN=$P(^AUPNVSIT(APCLV,0),U,5)
  1. ..S APCLLOC=$P(^AUPNVSIT(APCLV,0),U,6)
  1. ..S APCLKV=0,APCLH1N1=0,(APCLILI,APCLHVAC,APCLIVAC,APCLADVE,APCLSRD,APCLAVM,APCLAV9)=""
  1. ..S APCLLOC=$P(^AUPNVSIT(APCLV,0),U,6) Q:APCLLOC=""
  1. ..S APCLDATE=$P($P(^AUPNVSIT(APCLV,0),U),".")
  1. ..S APCLASUF=$P($G(^AUTTLOC(APCLLOC,0)),U,10)
  1. ..D SETREC^APCLSIL2
  1. S ;NOW SET TOTAL IN PIECE 13
  1. S X=0 F S X=$O(^APCLDATA($J,X)) Q:X'=+X D
  1. .I $P(^APCLDATA($J,X),",",8)="" Q
  1. .Q:$P(^APCLDATA($J,X),",",15)="H"
  1. .S L=$P(^APCLDATA($J,X),",",6),D=$P(^APCLDATA($J,X),",",7)
  1. .S $P(^APCLDATA($J,X),",",13)=+$G(^TMP($J,"APCLLOCT",L,D))
  1. .Q
  1. ;NOW SET TOTAL IN PIECE 20
  1. S X=0 F S X=$O(^APCLDATA($J,X)) Q:X'=+X D
  1. .Q:$P(^APCLDATA($J,X),",",15)'="H"
  1. .I $P(^APCLDATA($J,X),",",8)="",$P(^APCLDATA($J,X),U,43)=""
  1. .S L=$P(^APCLDATA($J,X),",",6),D=$P(^APCLDATA($J,X),",",7)
  1. .S $P(^APCLDATA($J,X),",",20)=+$G(^TMP($J,"APCLHTOT",L,D))
  1. .Q
  1. ;NOW SET TOTAL IN PIECE 42
  1. S X=0 F S X=$O(^APCLDATA($J,X)) Q:X'=+X D
  1. .Q:$P(^APCLDATA($J,X),",",15)="H"
  1. .I $P(^APCLDATA($J,X),",",43)="" Q ;not an H1N1/ili visit
  1. .S L=$P(^APCLDATA($J,X),",",6),D=$P(^APCLDATA($J,X),",",7)
  1. .S $P(^APCLDATA($J,X),",",42)=+$G(^TMP($J,"APCLALLT",L,D))
  1. .Q
  1. ;NOW SET A RECORD FOR EACH DATE and populate 13, 20, 42
  1. ;NOW SEND A RECORD FOR EACH APCLALLT, SET PIECE 42,DATE AND LOCATION ONLY
  1. ;NOW SET A ZERO FOR EVERY DAY IN THE TIME PERIOD FOR EACH LOCATION IF IT DOESN'T EXIST
  1. S APCLSD=$$FMADD^XLFDT(APCLBDAT,-1)
  1. S L="" F S L=$O(^TMP($J,"APCLALL1",L)) Q:L="" D
  1. .S D=APCLSD
  1. .F S D=$$FMADD^XLFDT(D,1) Q:D>APCLED D
  1. ..I '$D(^TMP($J,"APCLALL1",L,D)) S ^TMP($J,"APCLALL1",L,D)=0
  1. ;now reorder by date
  1. S L="" F S L=$O(^TMP($J,"APCLALL1",L)) Q:L="" S D="" F S D=$O(^TMP($J,"APCLALL1",L,D)) Q:D="" S ^TMP($J,"APCLX",D,L)=^TMP($J,"APCLALL1",L,D)
  1. S X=0,C=0 F S X=$O(^APCLDATA($J,X)) Q:X'=+X S L=X
  1. S C=L
  1. S D=APCLSD F S D=$O(^TMP($J,"APCLX",D)) Q:D="" D ;IHS/CMI/LAB - "" to APCLSD PATCH 31 06/14/17
  1. .S L="" F S L=$O(^TMP($J,"APCLX",D,L)) Q:L="" D
  1. ..S C=C+1
  1. ..S ^APCLDATA($J,C)="" D
  1. ...S $P(^APCLDATA($J,C),",",6)=L,$P(^APCLDATA($J,C),",",7)=D
  1. ...S $P(^APCLDATA($J,C),",",42)=+$G(^TMP($J,"APCLALLT",L,D))
  1. ...S $P(^APCLDATA($J,C),",",13)=+$G(^TMP($J,"APCLLOCT",L,D))
  1. ...S $P(^APCLDATA($J,C),",",20)=+$G(^TMP($J,"APCLHTOT",L,D))
  1. D ILI^APCLSIHL("ILI") ;parse out the APCLDATA global and create a message
  1. K ^APCLDATA($J),^TMP($J)
  1. K ^XTMP("APCLILIV",$J)
  1. MONUP ;monthly user pop if today is the 1st
  1. I $G(APCLSCOM) D COMM^APCLSILU
  1. I $G(APCL1ST) D
  1. .;create entry with start date of DT
  1. . N APCLFDA,APCLIENS,APCLERR
  1. . S APCLIENS="+2,"_1_","
  1. . S APCLFDA(9001003.311,APCLIENS,.01)=DT
  1. . D UPDATE^DIE("","APCLFDA","APCLIENS","APCLERR(1)")
  1. . ;I $D(APCLERR) S APCLER="0~Add Education Topic" Q
  1. . S APCLEIEN=$G(APCLIENS(2))
  1. . D MONUP^APCLSIL1
  1. . ;ADD END DATE TO MULTIPLE
  1. . S $P(^APCLILIC(1,11,APCLEIEN,0),U,2)=DT
  1. D PURGE
  1. D EXIT
  1. Q
  1. PROC1 ;
  1. S ^XTMP("APCLILIV",$J,APCLV)=""
  1. S APCLSTAT="A",APCLREAS=""
  1. S APCLPRVE=0 I $D(^APCLILIL("B",APCLV)) S APCLPRVE=1,APCLSTAT="C" ;SET PREVIOUS EXPORT FIELD
  1. Q:'$D(^AUPNVSIT(APCLV,0))
  1. I $P(^AUPNVSIT(APCLV,0),U,11),'$D(^APCLILIL("B",APCLV)) Q ;DELETED AND NEVER SENT TO DON'T BOTHER
  1. I $P(^AUPNVSIT(APCLV,0),U,11),$D(^APCLILIL("B",APCLV)) S APCLSTAT="D" D SR("VISIT HAS BEEN DELETED")
  1. 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")
  1. S G=0,X=0 F S X=$O(^BGPSITE(X)) Q:X'=+X I $P($G(^BGPSITE(X,0)),U,12) I $D(^DIBT($P(^BGPSITE(X,0),U,12),1,DFN)) S G=1
  1. Q:G
  1. S APCLKV=0,APCLH1N1=0,(APCLILI,APCLHVAC,APCLIVAC,APCLADVE,APCLSRD,APCLAVM,APCLAV9)=""
  1. S APCLLOC=$P(^AUPNVSIT(APCLV,0),U,6) Q:APCLLOC=""
  1. S APCLDATE=$P($P(^AUPNVSIT(APCLV,0),U),".")
  1. S APCLASUF=$P($G(^AUTTLOC(APCLLOC,0)),U,10)
  1. Q:APCLASUF=""
  1. S ^TMP($J,"APCLALL1",APCLASUF,APCLDATE)=""
  1. I "AORS"[$P(^AUPNVSIT(APCLV,0),U,7) S ^TMP($J,"APCLALLT",APCLASUF,APCLDATE)=$G(^TMP($J,"APCLALLT",APCLASUF,APCLDATE))+1 ;total number of visits
  1. ;keep visit?
  1. S G=0 D ILIDX I G S APCLKV=1,APCLILI=G D SR("ILI DX")
  1. S G=0 D H1N1DX I G S APCLKV=1,APCLH1N1=G D SR("H1N1 DX")
  1. S APCLHVAC=$$HASVAC(APCLV) I APCLHVAC S APCLKV=1 D SR("H1N1 VACCINE")
  1. S APCLIVAC=$$HASIVAC(APCLV) I APCLIVAC S APCLKV=1 D SR("SEASONAL FLU VACCINE")
  1. S APCLPVAC=$$HASPVAC^APCLSIL4(APCLV) I APCLPVAC S APCLKV=1 D SR("PNEUMOCOCCAL VACCINE")
  1. S APCLNVAC=$$HASNVAC^APCLSIL4(APCLV) I APCLNVAC S APCLKV=1 D SR("PANDEMIC VACCINE")
  1. I APCLIVAC!(APCLHVAC)!(APCLNVAC) S APCLADVE=$$HASADVN6^APCLSIL4(APCLV,$P(APCLIVAC,U,5),$P(APCLHVAC,U,5)) ;this was changed in patch 29 to only put on flu/h1n1 vaccine records
  1. S APCLOVAC="" I APCLADVE!(APCLPVAC) S APCLOVAC=$$OTHVAC^APCLSIL1(DFN,APCLDATE)
  1. S APCLSRD=$$HASSRD7(APCLV) I APCLSRD S APCLKV=1 D SR("SEVERE RESP DISEASE")
  1. S APCLAVM=$$HASAVM^APCLSIL4(APCLV) I APCLAVM S APCLKV=1 D SR("ANTIVRIAL MEDICATION")
  1. ;S APCLAV9=$$HASAV9(APCLV) I APCLAV9 S APCLKV=1
  1. S APCLPCVF="" I APCLPVAC S APCLPCVF=$$PCVFEB^APCLSIL4(APCLV,$P(APCLPVAC,U,5))
  1. S APCLPCVE="" I APCLPVAC S APCLPCVE=$$PCVECPEH^APCLSIL4(APCLV,$P(APCLPVAC,U,5))
  1. S APCLPCVA="" I APCLPVAC S APCLPCVA=$$PCVANGIO^APCLSIL4(APCLV,$P(APCLPVAC,U,5))
  1. S APCLPCVS="" I APCLPVAC S APCLPCVS=$$PCVASTH^APCLSIL4(APCLV,$P(APCLPVAC,U,5))
  1. S APCLPCVI="" I APCLPVAC S APCLPCVI=$$PCVIMMUN^APCLSIL4(APCLV,$P(APCLPVAC,U,5))
  1. I 'APCLKV,'$D(^APCLILIL("B",APCLV)) Q ;not a visit to export and never sent
  1. I 'APCLKV,$D(^APCLILIL("B",APCLV)) S APCLSTAT="D" D SR("NO LONGER MEETS CRITERIA") ;DELETE AS PREVIOUSLY SENT AND NO LONGER TO BE SENT
  1. D SETREC^APCLSIL2 ;set record
  1. Q
  1. SR(R) ;
  1. Q:APCLREAS
  1. S APCLREAS=$O(^APCLILIR("B",R,0))
  1. Q
  1. HASVAC(V) ;EP - get h1n1 vaccine
  1. NEW C,X,Y,Z,T,L,M
  1. S T=$O(^ATXAX("B","SURVEILLANCE H1N1 CVX CODES",0))
  1. S C=0,X=0 F S X=$O(^AUPNVIMM("AD",V,X)) Q:X'=+X!(C) S Y=$P($G(^AUPNVIMM(X,0)),U) D
  1. .Q:'Y
  1. .Q:'$D(^AUTTIMM(Y,0))
  1. .S Z=$P(^AUTTIMM(Y,0),U,3)
  1. .Q:'$D(^ATXAX(T,21,"B",Z))
  1. .S C=1_U_Z_U_$$VAL^XBDIQ1(9000010.11,X,.05) I $P(^AUPNVIMM(X,0),U,5),$D(^AUTTIML($P(^AUPNVIMM(X,0),U,5),0)) S C=C_U_$$VAL^XBDIQ1(9999999.41,$P(^AUPNVIMM(X,0),U,5),.02)
  1. .S Z=$$VALI^XBDIQ1(9000010.11,X,1201)
  1. .S $P(C,U,5)=$S(Z:$P(Z,".",1),1:$$VD^APCLV(V))
  1. .Q
  1. I C Q C
  1. S T=$O(^ATXAX("B","SURVEILLANCE CPT H1N1",0))
  1. S C=0,X=0 F S X=$O(^AUPNVCPT("AD",V,X)) Q:X'=+X S Y=$P($G(^AUPNVCPT(X,0)),U) D
  1. .Q:'Y
  1. .Q:'$$ICD^APCLSILU(Y,T,1)
  1. .S C=1_U_$$VAL^XBDIQ1(9000010.18,X,.01)
  1. Q C
  1. HASIVAC(V) ;EP - get flu iz
  1. NEW C,X,Y,Z,T
  1. S T=$O(^ATXAX("B","SURVEILLANCE FLU CVX CODES",0))
  1. S C=0,X=0 F S X=$O(^AUPNVIMM("AD",V,X)) Q:X'=+X S Y=$P($G(^AUPNVIMM(X,0)),U) D
  1. .Q:'Y
  1. .Q:'$D(^AUTTIMM(Y,0))
  1. .S Z=$P(^AUTTIMM(Y,0),U,3)
  1. .Q:'$D(^ATXAX(T,21,"B",Z))
  1. .;
  1. .S C=1_U_Z_U_$$VAL^XBDIQ1(9000010.11,X,.05) I $P(^AUPNVIMM(X,0),U,5),$D(^AUTTIML($P(^AUPNVIMM(X,0),U,5),0)) S C=C_U_$$VAL^XBDIQ1(9999999.41,$P(^AUPNVIMM(X,0),U,5),.02)
  1. .S Z=$$VALI^XBDIQ1(9000010.11,X,1201)
  1. .S $P(C,U,5)=$S(Z:$P(Z,".",1),1:$$VD^APCLV(V))
  1. .Q
  1. I C Q C
  1. S T=$O(^ATXAX("B","BGP FLU IZ CVX CODES",0))
  1. S C=0,X=0 F S X=$O(^AUPNVIMM("AD",V,X)) Q:X'=+X S Y=$P($G(^AUPNVIMM(X,0)),U) D
  1. .Q:'Y
  1. .Q:'$D(^AUTTIMM(Y,0))
  1. .S Z=$P(^AUTTIMM(Y,0),U,3)
  1. .Q:'$D(^ATXAX(T,21,"B",Z))
  1. .;
  1. .S C=1_U_Z_U_$$VAL^XBDIQ1(9000010.11,X,.05) I $P(^AUPNVIMM(X,0),U,5),$D(^AUTTIML($P(^AUPNVIMM(X,0),U,5),0)) S C=C_U_$$VAL^XBDIQ1(9999999.41,$P(^AUPNVIMM(X,0),U,5),.02)
  1. .S Z=$$VALI^XBDIQ1(9000010.11,X,1201)
  1. .S $P(C,U,5)=$S(Z:$P(Z,".",1),1:$$VD^APCLV(V))
  1. .Q
  1. I C Q C
  1. S T=$O(^ATXAX("B","SURVEILLANCE CPT FLU",0))
  1. S T1=$O(^ATXAX("B","BGP CPT FLU",0))
  1. S C=0,X=0 F S X=$O(^AUPNVCPT("AD",V,X)) Q:X'=+X S Y=$P($G(^AUPNVCPT(X,0)),U) D
  1. .Q:'Y
  1. .I '$$ICD^APCLSILU(Y,T,1),'$$ICD^APCLSILU(Y,T1,1) Q
  1. .S C=1_U_$$VAL^XBDIQ1(9000010.18,X,.01)
  1. I C Q C
  1. S T=$O(^ATXAX("B","BGP FLU IZ PROCEDURES",0))
  1. S C=0,X=0 F S X=$O(^AUPNVPRC("AD",V,X)) Q:X'=+X S Y=$P($G(^AUPNVPRC(X,0)),U) D
  1. .Q:'Y
  1. .Q:'$$ICD^APCLSILU(Y,T,0)
  1. .S C=1_U_$$VAL^XBDIQ1(9000010.08,X,.01)
  1. I C Q C
  1. S T=$O(^ATXAX("B","BGP FLU IZ DXS",0))
  1. S C=0,X=0 F S X=$O(^AUPNVPOV("AD",V,X)) Q:X'=+X S Y=$P($G(^AUPNVPOV(X,0)),U) D
  1. .Q:'Y
  1. .Q:'$$ICD^APCLSILU(Y,T,9)
  1. .S C=1_U_$$VAL^XBDIQ1(9000010.07,X,.01)
  1. I C Q C
  1. Q C
  1. ILIDX ;
  1. Q:"AORSH"'[$P(^AUPNVSIT(APCLV,0),U,7)
  1. I $P(^AUPNVSIT(APCLV,0),U,7)="H" S ^TMP($J,"APCLHTOT",APCLASUF,APCLDATE)=$G(^TMP($J,"APCLHTOT",APCLASUF,APCLDATE))+1
  1. S APCLCLIN=$$CLINIC^APCLV(APCLV,"I") ;
  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 ILIDX1
  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. ILIDX1 ;
  1. I $P(^AUPNVSIT(APCLV,0),U,7)'="H" S ^TMP($J,"APCLLOCT",APCLASUF,APCLDATE)=$G(^TMP($J,"APCLLOCT",APCLASUF,APCLDATE))+1 ;total number of visits
  1. ;CHECK SURVEILLANCE ILI NO TMP NEEDED FIRST
  1. ;THEN CHECK SURVEILLANCE ILI AND SEE IF TMP >=100
  1. S C=0
  1. K G,Y,Z S G="",Z=""
  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 C=C+1,Y(C)=$$VAL^XBDIQ1(9000010.07,X,.01) Q
  1. .I $$ICD^APCLSILU(T,APCLDTAX,9),$$TMP100(APCLV) S C=C+1,Y(C)=$$VAL^XBDIQ1(9000010.07,X,.01)
  1. Q:'$D(Y)
  1. S X=0 F S X=$O(Y(X)) Q:X'=+X S G=G_U_Y(X)
  1. S $P(G,U,1)=1
  1. Q
  1. TMP100(V) ;EP
  1. NEW %,M,J
  1. S %=""
  1. S M=0 F S M=$O(^AUPNVMSR("AD",V,M)) Q:M'=+M D
  1. .Q:$P($G(^AUPNVMSR(M,2)),U,1)
  1. .Q:$$VAL^XBDIQ1(9000010.01,M,.01)'="TMP"
  1. .S J=$P(^AUPNVMSR(M,0),U,4)
  1. .Q:J<100
  1. .S %=1
  1. Q %
  1. ;
  1. H1N1DX ;
  1. Q:"AORSH"'[$P(^AUPNVSIT(APCLV,0),U,7) ;just want outpatient with dx
  1. S APCLCLIN=$$CLINIC^APCLV(APCLV,"I")
  1. S G=0
  1. S X=0 F S X=$O(^AUPNVPOV("AD",APCLV,X)) Q:X'=+X!(G) S T=$P(^AUPNVPOV(X,0),U) I $$ICD^APCLSILU(T,$O(^ATXAX("B","SURVEILLANCE H1N1 DX",0)),9) S G=1,D=$$VAL^XBDIQ1(9000010.07,X,.01)
  1. Q:'G
  1. S G=1_U_D
  1. Q
  1. HASSRD7(APCLV) ;EP
  1. NEW X,P,D,Y,Z,APCLCLIN,T,G,C
  1. I "AORSH"'[$P(^AUPNVSIT(APCLV,0),U,7) Q "" ;just want outpatient with dx
  1. S C=0
  1. K G,Y S G=""
  1. S X=0 F S X=$O(^AUPNVPOV("AD",APCLV,X)) Q:X'=+X S T=$P(^AUPNVPOV(X,0),U) I $$ICD^APCLSILU(T,$O(^ATXAX("B","SURVEILLANCE SEV RESP DIS DXS",0)),9) S C=C+1,Y(C)=$$VAL^XBDIQ1(9000010.07,X,.01)
  1. I '$D(Y) Q ""
  1. S X=0 F S X=$O(Y(X)) Q:X'=+X S G=G_U_Y(X)
  1. S $P(G,U,1)=1
  1. Q G
  1. ;
  1. DATE(D) ;EP
  1. Q (1700+$E(D,1,3))_$E(D,4,5)_$E(D,6,7)
  1. ;
  1. JDATE(D) ;EP - get date
  1. I $G(D)="" Q ""
  1. NEW A
  1. S A=$$FMTE^XLFDT(D)
  1. Q $E(D,6,7)_$$UP^XLFSTR($P(A," ",1))_(1700+$E(D,1,3))
  1. ;
  1. UID(APCLA) ;Given DFN return unique patient record id.
  1. I '$G(APCLA) Q ""
  1. I '$D(^AUPNPAT(APCLA)) Q ""
  1. ;
  1. Q $$GET1^DIQ(9999999.06,$P(^AUTTSITE(1,0),U),.32)_$E("0000000000",1,10-$L(APCLA))_APCLA
  1. ;
  1. EXIT ;clean up and exit
  1. D EN^XBVK("APCL")
  1. D ^XBFMK
  1. K ^XTMP("APCLILITAX",$J)
  1. K ^XTMP("APCLILIV",$J)
  1. Q
  1. ;
  1. EP ;EP - called from option to create search template using ILI logic
  1. G ^APCLSIL3
  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 -
  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. D STOPD^APCLSIL3
  1. Q
  1. PURGE ;
  1. D PURGE^APCLSIL3
  1. Q