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

APCLSIL4.m

Go to the documentation of this file.
  1. APCLSIL4 ; IHS/CMI/LAB - ILI surveillance export ;
  1. ;;3.0;IHS PCC REPORTS;**28,29,30,31**;FEB 05, 1997;Build 32
  1. ;
  1. HASPVAC(V) ;EP - get flu iz
  1. NEW C,X,Y,Z,T
  1. S T=$O(^ATXAX("B","SURVEILLANCE PCV 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. .;get lot and manufacturer added in patch 27
  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. Q C
  1. ;
  1. PCVFEB(APCLV,D) ;EP
  1. NEW X,P,Y,Z,T,G,C,APCL,E,S,V
  1. S G=""
  1. S P=$P(^AUPNVSIT(APCLV,0),U,5)
  1. ;S D=$$VD^APCLV(APCLV)
  1. S E=$$FMADD^XLFDT(D,7)
  1. ;get all visits from D to D+7
  1. D ALLV^APCLAPIU(P,D,E,"APCL")
  1. I '$D(APCL) Q ""
  1. ;now get rid of non 30/80, non-H visits, and those whose primary dx is not FEBRILE SEIZURE
  1. S X=0 F S X=$O(APCL(X)) Q:X'=+X!(G]"") D
  1. .S V=$P(APCL(X),U,5)
  1. .Q:'$D(^AUPNVSIT(V,0))
  1. .S Z=0
  1. .I "AORSHI"'[$P(^AUPNVSIT(V,0),U,7) Q ;no chart reviews or Telephone calls
  1. .I $P(^AUPNVSIT(V,0),U,7)="H" S Z=1 ;h
  1. .I $P(^AUPNVSIT(V,0),U,7)="I" S Z=1
  1. .I $$CLINIC^APCLV(V,"C")=30 S Z=1
  1. .I $$CLINIC^APCLV(V,"C")=80 S Z=1
  1. .Q:'Z ;not an H or 30/80
  1. .;does it have a febrile seizure dx?
  1. .S T=$O(^ATXAX("B","SURVEILLANCE FEBRILE SEIZURE",0))
  1. .Q:'T
  1. .S Z="",Y=0 F S Y=$O(^AUPNVPOV("AD",V,Y)) Q:Y'=+Y!(Z]"") D
  1. ..S Q=$P($G(^AUPNVPOV(Y,0)),U)
  1. ..Q:Q=""
  1. ..Q:'$$ICD^APCLSILU(Q,T,9) ;not in taxonomy
  1. ..S Z=$$VAL^XBDIQ1(9000010.07,Y,.01) ;code
  1. ..Q
  1. .I Z="" Q ;NO SEIZURE
  1. .;IF HAD SEIZURE IS THERE A EPILEPSY ON THE SAME DAY, IF SO QUIT
  1. .S S=$$LASTDXT^APCLAPIU(P,$$VD^APCLV(V),$$VD^APCLV(V),"SURVEILLANCE EPILEPSY","A")
  1. .I S Q ;had epilepsy on this day also
  1. .S G=Z_","_$$VD^APCLV(V) ;code and date of febrile seizure
  1. Q G
  1. PCVECPEH(APCLV,D) ;EP
  1. NEW X,P,Y,Z,T,G,C,APCL,E,S,V,CLNTAX,APCLCLIN,APCLX
  1. S G=""
  1. S P=$P(^AUPNVSIT(APCLV,0),U,5)
  1. ;S D=$$VD^APCLV(APCLV),D=$$FMADD^XLFDT(D,1)
  1. S E=$$FMADD^XLFDT(D,28)
  1. ;get all visits from D to D+28
  1. D ALLV^APCLAPIU(P,D,E,"APCL")
  1. I '$D(APCL) Q ""
  1. ;S CLNTAX=$O(^ATXAX("B","SURVEILLANCE ILI CLINICS",0))
  1. ;now get rid of non ILI CLINIC VISITS OR PHN
  1. S APCLX=0 F S APCLX=$O(APCL(APCLX)) Q:APCLX'=+APCLX!(G]"") D
  1. .S V=$P(APCL(APCLX),U,5)
  1. .Q:'$D(^AUPNVSIT(V,0))
  1. .I "AORSHI"'[$P(^AUPNVSIT(V,0),U,7) Q
  1. .;S APCLCLIN=$$CLINIC^APCLV(V,"I") ;get clinic code
  1. .;is there a PHN
  1. .;S X=0,S=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 S=1
  1. .;I S G PCVE
  1. .;I $P(^AUPNVSIT(V,0),U,7)'="H" I APCLCLIN="" Q ""
  1. .;I $P(^AUPNVSIT(V,0),U,7)'="H" I '$D(^ATXAX(CLNTAX,21,"B",APCLCLIN)) Q "" ;not in clinic taxonomy
  1. PCVE .;
  1. .;does it have a ENCEPHALOPATHY dx?
  1. .S T=$O(^ATXAX("B","SURVEILLANCE ENCEPHALOPATHY",0))
  1. .Q:'T
  1. .S Z="",Y=0 F S Y=$O(^AUPNVPOV("AD",V,Y)) Q:Y'=+Y!(Z]"") D
  1. ..S Q=$P($G(^AUPNVPOV(Y,0)),U)
  1. ..Q:Q=""
  1. ..Q:'$$ICD^APCLSILU(Q,T,9) ;not in taxonomy
  1. ..S Z=$$VAL^XBDIQ1(9000010.07,Y,.01) ;code
  1. ..Q
  1. .I Z="" Q ;NO enceph
  1. .S G=Z_","_$$VD^APCLV(V) ;code and date of febrile seizure
  1. Q G
  1. PCVANGIO(APCLV,D) ;EP
  1. NEW X,P,Y,Z,T,G,C,APCL,E,S,V,CLNTAX,APCLCLIN,APCLX
  1. S G=""
  1. S P=$P(^AUPNVSIT(APCLV,0),U,5)
  1. ;S D=$$VD^APCLV(APCLV)
  1. S E=$$FMADD^XLFDT(D,7)
  1. ;get all visits from D to D+7
  1. D ALLV^APCLAPIU(P,D,E,"APCL")
  1. I '$D(APCL) Q ""
  1. ;S CLNTAX=$O(^ATXAX("B","SURVEILLANCE ILI CLINICS",0))
  1. ;now get rid of non ILI CLINIC VISITS OR PHN
  1. S APCLX=0 F S APCLX=$O(APCL(APCLX)) Q:APCLX'=+APCLX!(G]"") D
  1. .S V=$P(APCL(APCLX),U,5)
  1. .Q:'$D(^AUPNVSIT(V,0))
  1. .I "AORSH"'[$P(^AUPNVSIT(V,0),U,7) Q
  1. .;S APCLCLIN=$$CLINIC^APCLV(V,"I") ;get clinic code
  1. .;is there a PHN
  1. .;S X=0,S=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 S=1
  1. .;I S G PCVE
  1. .;I $P(^AUPNVSIT(V,0),U,7)'="H" I APCLCLIN="" Q ""
  1. .;I $P(^AUPNVSIT(V,0),U,7)'="H" I '$D(^ATXAX(CLNTAX,21,"B",APCLCLIN)) Q "" ;not in clinic taxonomy
  1. ANGIO1 .;
  1. .;does it have a ANGIO dx?
  1. .S T=$O(^ATXAX("B","SURVEILLANCE ANGIOEDEMA",0))
  1. .Q:'T
  1. .S Z="",Y=0 F S Y=$O(^AUPNVPOV("AD",V,Y)) Q:Y'=+Y!(Z]"") D
  1. ..S Q=$P($G(^AUPNVPOV(Y,0)),U)
  1. ..Q:Q=""
  1. ..Q:'$$ICD^APCLSILU(Q,T,9) ;not in taxonomy
  1. ..S Z=$$VAL^XBDIQ1(9000010.07,Y,.01) ;code
  1. ..Q
  1. .I Z="" Q ;NO ANGIO
  1. .S G=Z_","_$$VD^APCLV(V) ;code and date of ANGIOEDEMA
  1. Q G
  1. PCVASTH(APCLV,D) ;EP
  1. NEW X,P,Y,Z,T,G,C,APCL,E,S,V
  1. S G=""
  1. S P=$P(^AUPNVSIT(APCLV,0),U,5)
  1. ;S D=$$VD^APCLV(APCLV)
  1. S E=$$FMADD^XLFDT(D,7)
  1. ;get all visits from D to D+7
  1. D ALLV^APCLAPIU(P,D,E,"APCL")
  1. I '$D(APCL) Q ""
  1. ;now get rid of non 30/80, non-H visits, and those whose primary dx is not ASTHMA
  1. S X=0 F S X=$O(APCL(X)) Q:X'=+X!(G]"") D
  1. .S V=$P(APCL(X),U,5)
  1. .Q:'$D(^AUPNVSIT(V,0))
  1. .S Z=0
  1. .I "AORSHI"'[$P(^AUPNVSIT(V,0),U,7) Q ;no chart reviews or Telephone calls or events
  1. .I $P(^AUPNVSIT(V,0),U,7)="H" S Z=1 ;h
  1. .I $$CLINIC^APCLV(V,"C")=30 S Z=1
  1. .I $$CLINIC^APCLV(V,"C")=80 S Z=1
  1. .Q:'Z ;not an H or 30/80
  1. .;does it have an asthma dx?
  1. .S T=$O(^ATXAX("B","SURVEILLANCE ADV EVENTS ASTHMA",0))
  1. .Q:'T
  1. .S Z="",Y=0 F S Y=$O(^AUPNVPOV("AD",V,Y)) Q:Y'=+Y!(Z]"") D
  1. ..S Q=$P($G(^AUPNVPOV(Y,0)),U)
  1. ..Q:Q=""
  1. ..Q:'$$ICD^APCLSILU(Q,T,9) ;not in taxonomy
  1. ..S Z=$$VAL^XBDIQ1(9000010.07,Y,.01) ;code
  1. ..Q
  1. .I Z="" Q ;NO ASTHMA
  1. .S G=Z_","_$$VD^APCLV(V) ;code and date of ASTHMA
  1. Q G
  1. PCVIMMUN(APCLV,D) ;EP
  1. NEW X,P,Y,Z,T,G,C,APCL,E,S,V
  1. S G=""
  1. S P=$P(^AUPNVSIT(APCLV,0),U,5)
  1. ;S D=$$VD^APCLV(APCLV)
  1. S E=$$FMADD^XLFDT(D,7)
  1. ;get all visits from D to D+7
  1. D ALLV^APCLAPIU(P,D,E,"APCL")
  1. I '$D(APCL) Q ""
  1. S X=0 F S X=$O(APCL(X)) Q:X'=+X!(G]"") D
  1. .S V=$P(APCL(X),U,5)
  1. .Q:'$D(^AUPNVSIT(V,0))
  1. .I "AORSH"'[$P(^AUPNVSIT(V,0),U,7) Q ;no chart reviews or Telephone calls
  1. .;does it have a IMMUNIOLOGICAL dx?
  1. .S T=$O(^ATXAX("B","SURVEILLANCE IMMUNOLOGICAL",0))
  1. .Q:'T
  1. .S Z="",Y=0 F S Y=$O(^AUPNVPOV("AD",V,Y)) Q:Y'=+Y!(Z]"") D
  1. ..S Q=$P($G(^AUPNVPOV(Y,0)),U)
  1. ..Q:Q=""
  1. ..Q:'$$ICD^APCLSILU(Q,T,9) ;not in taxonomy
  1. ..S Z=$$VAL^XBDIQ1(9000010.07,Y,.01) ;code
  1. ..Q
  1. .I Z="" Q ;NO IMMUNO
  1. .S G=Z_","_$$VD^APCLV(V) ;code and date of IMMUNIOLOGICAL
  1. Q G
  1. SET ;EP
  1. ;create entry with start date of DT
  1. S APCLET=$H
  1. N APCLFDA,APCLIENS,APCLERR
  1. S APCLIENS="+2,"_1_","
  1. S APCLFDA(9001003.312,APCLIENS,.01)=DT
  1. ;is this a test system?
  1. NEW TST,F
  1. S TST=0
  1. ;I '$$PROD^XUPROD() S TST=1
  1. I $P($G(^APCLILIC(1,0)),U,5)="T" S TST=1
  1. S F=$S(TST:"FLZ",$G(APCLFLF):"FLF",$G(APCLFLFN):"FLF",1:"FLU")_"_"_APCLASU_"_"_$$DATE^APCLSIHL(DT)_"_P31.txt" ;IHS/CMI/LAB - PATCH 31 FILENAME AND PATCH #
  1. ;S F=$S(TST:"FLZ",$G(APCLFLF):"FLF",1:"FLU")_"_"_APCLASU_"_"_$$DATE^APCLSILI(DT)_".txt"
  1. S APCLFDA(9001003.312,APCLIENS,.02)=F
  1. S APCLFDA(9001003.312,APCLIENS,.05)=$S(XBFLG:0,1:1)
  1. S APCLFDA(9001003.312,APCLIENS,.04)=APCLVTOT
  1. S APCLFDA(9001003.312,APCLIENS,.06)=$$HTFM^XLFDT(APCLBT)
  1. S APCLFDA(9001003.312,APCLIENS,.07)=$$HTFM^XLFDT(APCLET)
  1. S APCLFDA(9001003.312,APCLIENS,.08)=$$RUNTIME(APCLBT,APCLET)
  1. D UPDATE^DIE("","APCLFDA","APCLIENS","APCLERR(1)")
  1. Q
  1. RUNTIME(B,E) ;
  1. NEW S,H,M,SEC,RT
  1. S RT=""
  1. S S=(86400*($P(E,",")-$P(B,",")))+($P(E,",",2)-$P(B,",",2)),H=$P(S/3600,".") S:H="" H=0 D
  1. .S S=S-(H*3600),M=$P(S/60,".") S:M="" M=0 S S=S-(M*60),SEC=S S RT="RUN TIME (H.M.S): "_H_"."_M_"."_SEC
  1. Q RT
  1. HASADVN6(APCLV,D1,D2) ;EP - PATCH 27 - if return 1 then count visit and put pieces 2 through n in columns 66 through 75
  1. NEW X,P,Y,Z,T,G,C,APCL,E,S,V,PAT,P1,P2,APCLVDAT,APCLHAS
  1. S G=""
  1. ;S D=$$VD^APCLV(APCLV) ;VISIT DATE
  1. ;S E=$$FMADD^XLFDT(D,60) ;END DATE TO LOOK
  1. S PAT=$P(^AUPNVSIT(APCLV,0),U,5)
  1. S (C,P1,P2)=0
  1. S (D,E)=""
  1. K APCLHAS
  1. I D1="" G D2
  1. D ALLV^APCLAPIU(PAT,D1,$$FMADD^XLFDT(D1,60),"APCL")
  1. S APCLVDAT=D1
  1. D D
  1. I D1=D2 Q 1_U_D_U_E
  1. D2 ;
  1. K APCL
  1. D ALLV^APCLAPIU(PAT,D2,$$FMADD^XLFDT(D2,60),"APCL")
  1. S APCLVDAT=D2
  1. D D
  1. I 'C Q ""
  1. Q 1_U_D_U_E
  1. D ;
  1. I '$D(APCL) Q
  1. ;NOW GET RID OF ALL NON PHN/ILI CLINIC VISITS
  1. S APCLX=0 F S APCLX=$O(APCL(APCLX)) Q:APCLX'=+APCLX!(C>4) D
  1. .S V=$P(APCL(APCLX),U,5)
  1. .Q:'$D(^AUPNVSIT(V,0))
  1. .S Z=0
  1. .;
  1. .I "AORSH"'[$P(^AUPNVSIT(V,0),U,7) Q ;no chart reviews or Telephone calls
  1. .S CLNTAX=$O(^ATXAX("B","SURVEILLANCE ILI CLINICS",0))
  1. .S APCLCLIN=$$CLINIC^APCLV(V,"I") ;get clinic code
  1. .;is there a PHN
  1. .S X=0,P=0 F S X=$O(^AUPNVPRV("AD",V,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 HASADN61
  1. .I $P(^AUPNVSIT(V,0),U,7)'="H" I APCLCLIN="" Q
  1. .I $P(^AUPNVSIT(V,0),U,7)'="H" I '$D(^ATXAX(CLNTAX,21,"B",APCLCLIN)) Q ;not in clinic taxonomy
  1. .S P=1
  1. .;does it have aN ADVERSE EVENT
  1. HASADN61 .;
  1. .S X=0 F S X=$O(^AUPNVPOV("AD",V,X)) Q:X'=+X!(C>4) D
  1. ..S T=$P(^AUPNVPOV(X,0),U)
  1. ..I $$ICD^APCLSILU(T,$O(^ATXAX("B","SURVEILLANCE ADV EVENTS DXS",0)),9) D
  1. ...Q:$$VD^APCLV(V)=APCLVDAT ;$$VD^APCLV(APCLV) ;NOT SAME DATE AS VACCINE
  1. ...;Q:$$VD^APCLV(V)>$$FMADD^XLFDT($$VD^APCLV(APCLV),14)
  1. ...D SET6 Q
  1. ..I $$ICD^APCLSILU(T,$O(^ATXAX("B","SURVEILLANCE ADV EVENTS LIVE",0)),9) D Q
  1. ...S A=$$AGE^APCLSILU(PAT,2,$$VD^APCLV(V))
  1. ...Q:A<24
  1. ...Q:A>59
  1. ...Q:$$VD^APCLV(V)=APCLVDAT ;$$VD^APCLV(APCLV) ;NOT SAME DATE AS VACCINE
  1. ...Q:$$VD^APCLV(V)>$$FMADD^XLFDT(APCLVDAT,14)
  1. ...D SET6
  1. ...Q
  1. ..I $$ICD^APCLSILU(T,$O(^ATXAX("B","SURVEILLANCE ADV EVENT FEBRILE",0)),9) D Q
  1. ...S A=$$AGE^APCLSILU(PAT,2,$$VD^APCLV(V))
  1. ...Q:A>59
  1. ...Q:$$VD^APCLV(V)>$$FMADD^XLFDT(APCLVDAT,15)
  1. ...D SET6
  1. I 'C Q ;"" ;no diagnosis
  1. Q ;
  1. SET6 ;
  1. Q:$D(APCLHAS(X)) ;ALREADY HAVE THIS ONE
  1. S APCLHAS(X)=""
  1. S C=C+1,P1=P1+1,P2=P2+1
  1. S $P(D,",",P1)=$$VAL^XBDIQ1(9000010.07,X,.01)
  1. S $P(E,",",P1)=$$VD^APCLV(V)
  1. Q
  1. HASAVM(V) ;EP
  1. NEW C,X,Y,Z,T,L,M,N
  1. S T=$O(^ATXAX("B","FLU ANTIVIRAL MEDS",0))
  1. S C="",X=0 F S X=$O(^AUPNVMED("AD",V,X)) Q:X'=+X!(C) S Y=$P($G(^AUPNVMED(X,0)),U) D
  1. .Q:'Y
  1. .Q:'$D(^PSDRUG(Y,0))
  1. .S Z=0
  1. .S N=$P(^PSDRUG(Y,0),U)
  1. .I $D(^ATXAX(T,21,"B",Y)) S Z=1
  1. .I N["OSELTAMIVIR" S Z=1
  1. .I N["ZANAMIVIR" S Z=1
  1. .I N["RIMANTADINE" S Z=1
  1. .I N["AMANTADINE" S Z=1
  1. .I Z=1 S C=1_U_N_U_$P(^AUPNVMED(X,0),U,7)
  1. .Q
  1. Q C
  1. HASNVAC(V) ;EP - get h1n1 vaccine
  1. NEW C,X,Y,Z,T,L,M
  1. S T=$O(^ATXAX("B","SURVEILLANCE PANDEMIC CVX",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 PANDEMIC CPT",0))
  1. I 'T Q C
  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