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

ACHSTX7A.m

Go to the documentation of this file.
  1. ACHSTX7A ; IHS/ITSC/JVK - EXPORT DATA (8A/9) - RECORD 7(638 STATISTICAL DATA FOR DDPS) ; JUL 10, 2008
  1. ;;3.1;CONTRACT HEALTH MGMT SYSTEM;**11,14,15,23**;JUN 11,2001;Build 43
  1. ;ITSC/SET/JVK ACHS*3.1*11 ADD ADDITIONAL FIELDS FOR EXPORT
  1. ;3.1*14 12.4.2007 IHS/OIT/FCJ ADDED CSV CHANGES
  1. ;3.1*15 3.4.2009 IHS/OIT/FCJ ADDED CSV CHANGES FOR CPT CODE
  1. ;
  1. DXPX ;EP - ITSC/SET/JVK ACHS*3.1*11 INCREASED FOR LOOP FROM 5 TO 9 ENTRIES
  1. S (ACHSAPC(1),ACHSAPC(2))=" ",ACHS=0
  1. I DT<$$PARM^ACHS(0,18) F ACHSX=1:1:9 S ACHSDX(ACHSX)=" ",ACHSPX(ACHSX)=" "
  1. E F ACHSX=1:1:9 S ACHSDX(ACHSX)=" ",ACHSPX(ACHSX)=" "
  1. ;3.1*14 12.4.2007 IHS/OIT/FCJ ADDED CSV CHANGES NXT 2 LINES
  1. ;F ACHSX=1:1:9 S ACHS=$O(^ACHSF(DUZ(2),"D",ACHSDIEN,9,ACHS)) Q:'ACHS S ACHSDX(ACHSX)=$P(^ICD9(+^(ACHS,0),0),U) S:ACHSDX(ACHSX)["." ACHSDX(ACHSX)=$P(ACHSDX(ACHSX),".")_$P(ACHSDX(ACHSX),".",2) S ACHSDX(ACHSX)=$E(ACHSDX(ACHSX)_" ",1,5)
  1. ;ACHS*3.1*23 SPLIT NEXT LINE TO TEST FOR ICD-10 DATE
  1. F ACHSX=1:1:9 S ACHS=$O(^ACHSF(DUZ(2),"D",ACHSDIEN,9,ACHS)) Q:'ACHS D
  1. .;S ACHSDX(ACHSX)=$P($$ICDDX^ICDCODE($P(^ACHSF(DUZ(2),"D",ACHSDIEN,9,ACHS,0),U)),U,2) ;ACHS*3.1*23
  1. .S ACHSDX(ACHSX)=$P($$ICDDX^ICDEX($P(^ACHSF(DUZ(2),"D",ACHSDIEN,9,ACHS,0),U)),U,2) ;ACHS*3.1*23
  1. .I DT<$$PARM^ACHS(0,18) S:ACHSDX(ACHSX)["." ACHSDX(ACHSX)=$P(ACHSDX(ACHSX),".")_$P(ACHSDX(ACHSX),".",2) S ACHSDX(ACHSX)=$E(ACHSDX(ACHSX)_" ",1,5)
  1. .E S ACHSDX(ACHSX)=$E(ACHSDX(ACHSX)_" ",1,8)
  1. S ACHS=0
  1. ;3.1*15 3.4.2009 IHS/OIT/FCJ ADDED CSV CHANGES NXT 2 LINES, LINE WAS TOO LONG, ALSO CHGD LOOP VAR
  1. ;F ACHSX=1:1:3 S ACHS=$O(^ACHSF(DUZ(2),"D",ACHSDIEN,10,ACHS)) Q:'ACHS S ACHSPX(ACHSX)=$P(^ICD0(+^(ACHS,0),0),U) S:ACHSPX(ACHSX)["." ACHSPX(ACHSX)=$P(ACHSPX(ACHSX),".")_$P(ACHSPX(ACHSX),".",2) S ACHSPX(ACHSX)=$E(ACHSPX(ACHSX)_" ",1,4)
  1. ;ACHS*3.1*23 MODS FOR ICD10
  1. ;F X=1:1:3 S ACHS=$O(^ACHSF(DUZ(2),"D",ACHSDIEN,10,ACHS)) Q:'ACHS S ACHSPX(X)=$P($$ICDOP^ICDCODE(+^(ACHS,0)),U,2) S:ACHSPX(X)["." ACHSPX(X)=$P(ACHSPX(X),".")_$P(ACHSPX(X),".",2) S ACHSPX(X)=$E(ACHSPX(X)_" ",1,4)
  1. F X=1:1:3 S ACHS=$O(^ACHSF(DUZ(2),"D",ACHSDIEN,10,ACHS)) Q:'ACHS D
  1. .;S ACHSPX(X)=$P($$ICDOP^ICDCODE(+^(ACHS,0)),U,2) ;ACHS*3.1*23
  1. .S ACHSPX(X)=$P($$ICDOP^ICDEX($P(^ACHSF(DUZ(2),"D",ACHSDIEN,10,ACHS,0),U),,,"I"),U,2) ;ACHS*3.1*23
  1. .I DT<$$PARM^ACHS(0,18) S:ACHSPX(X)["." ACHSPX(X)=$P(ACHSPX(X),".")_$P(ACHSPX(X),".",2) S ACHSPX(X)=$E(ACHSPX(X)_" ",1,4)
  1. .E S ACHSPX(X)=$E(ACHSPX(X)_" ",1,7)
  1. F ACHS=1,2 S ACHSY=ACHSDX(ACHS) I ACHSY]" " D RECODE S ACHSAPC(ACHS)=ACHS("AC")
  1. Q
  1. ;
  1. RECODE ; Code copied from APCPAPOV. Look up the RECODE APC/ICD value.
  1. S ACHS("AC")=" ",ACHS("ICD")=ACHSDX(ACHS)
  1. ; Weed out etiology codes
  1. I $E(ACHSY)="E" Q
  1. I $E(ACHSY)="." S ACHS("ICD")="10"_$P(ACHS("ICD"),".",2)_" ",ACHSY="10"_ACHSY,ACHSY=ACHSY-.000001,ACHSY=$P(ACHSY,".")_$P(ACHSY,".",2)_" " G HIGH
  1. S ACHS("ICD")="09"_($P(ACHS("ICD"),".")_$P(ACHS("ICD"),".",2))_" "
  1. I $E(ACHSY)="V" S ACHSY=(9_$E(ACHSY,2,9999)-.000001),ACHSY="09V"_$E(ACHSY,2,9999),ACHSY=$P(ACHSY,".")_$P(ACHSY,".",2)_" " G HIGH
  1. S ACHSY="09"_ACHSY-.000001,ACHSY="0"_($P(ACHSY,".")_$P(ACHSY,".",2))_" "
  1. HIGH ;
  1. S ACHS("HIGH")=$O(^AUTTRCD("AH",ACHSY))
  1. I ACHS("HIGH")="" S ACHS("AC")=999 Q
  1. S ACHS("DA1")=$O(^AUTTRCD("AH",ACHS("HIGH"),""))
  1. I ACHS("DA1")="" Q ; Error in Recode x-ref
  1. S ACHS("DA2")=$O(^AUTTRCD("AH",ACHS("HIGH"),ACHS("DA1"),"")),ACHS("LOW")=$P(^AUTTRCD(ACHS("DA1"),11,ACHS("DA2"),0),U)_" "
  1. I ACHS("LOW")]ACHS("ICD") S ACHS("AC")=999 Q
  1. S ACHS("AC")=$P(^AUTTRCD(ACHS("DA1"),0),U)
  1. Q
  1. ;
  1. TYPE(D) ;EP - D=DFN in ^AUPNPAT. Return "I" if Indian, else "O"
  1. I $L($P($G(^AUPNPAT(D,0)),U,7)) Q "I" ; Tribal Enrollment Number
  1. I $P($G(^AUPNPAT(D,11)),U,8) Q "I" ; Tribe of Membership
  1. I $L($P($G(^AUPNPAT(D,11)),U,9)) Q "I" ; Tribe Quantum
  1. I $L($P($G(^AUPNPAT(D,11)),U,10)) Q "I" ; Indian Quantum
  1. S %=$P($G(^AUPNPAT(D,11)),U,11)
  1. I %,$P($G(^AUTTBEN(%,0)),U,2)="01" Q "I" ; Beneficiary is "01"
  1. Q "O"
  1. ;
  1. AGE(Y) ;EP - Y=DFN in ^AUPNPAT. Return age of pt in 2 digit numeric string.
  1. N ACHSAGE
  1. S ACHSAGE=$$AGE^AUPNPAT(Y)
  1. Q $E(ACHSAGE,$L(ACHSAGE)-1,$L(ACHSAGE))
  1. ;
  1. INS(ACHSR) ;EP ACHSR=DFN in ^AUPNPAT. Return if pt has MCaid, MCare, Pvt ins.
  1. N ACHS3C,ACHS3CFL,ACHSDEST,ACHSDOCR,ACHSINSR,ACHSMCD,ACHSTRAN,DA
  1. S ACHS3CFL=0,ACHSDEST=""
  1. D ^ACHSTX3C
  1. N A,B,C
  1. S (A,B,C)=" "
  1. F %=1:1 Q:'$D(ACHS3C(%)) D
  1. .I $E(ACHS3C(%),3,10)="MEDICAID" S A="Y" Q
  1. .I $E(ACHS3C(%),3,10)="MEDICARE" S B="Y" Q
  1. .S C="Y"
  1. .Q
  1. Q A_B_C
  1. ;
  1. ZIP(D) ;EP - D=DFN in ^DPT. Return Zip code of pt.
  1. S %=$P($G(^DPT(D,.11)),U,6),%=$P(%,"-")_$P(%,"-",2),%="000000000"_%
  1. Q $E(%,$L(%)-8,$L(%))
  1. ;
  1. ADA(F,D) ;EP - F=DUZ(2), D=Document EIN. Return ADA codes, fee, and units.
  1. ;
  1. ; B = ADA Codes (15)
  1. ; E = Total Fee Charged ($$$$$cc)
  1. ; C = ADA Units (15)
  1. ;
  1. N A,B,C,E
  1. S (B,C)="",E=0
  1. F %=0:0 S %=$O(^ACHSF(F,"D",D,11,%)) Q:'% S A=^(%,0) I $P($P(A,U),";",2)="AUTTADA(" S X=$P($G(^AUTTADA(+A,0)),U),B=B_$S($L(X)=4:X,1:" "),X="0000"_$P(A,U,4),X=$E(X,$L(X)-3,$L(X)),C=C_$S(+X:X,1:" "),E=E+$P(A,U,6)
  1. S B=$E(B_$J("",60),1,60),C=$E(C_$J("",60),1,60)
  1. S X="00000"_$P(E,"."),X=$E(X,$L(X)-4,$L(X))
  1. S Y="00"_$P(E,".",2),Y=$E(Y,$L(Y)-1,$L(Y))
  1. S E=X_Y
  1. Q B_U_E_U_C
  1. ;
  1. CPT(F,D) ;EP- ITSC/SET/JVK ACHS*3.1*11 ADDED FOR EXPORT OF CPT
  1. ; F=DUZ(2), D=Document EIN. Return CPT codes, fee, and units.
  1. ;
  1. ; B = CPT Codes (25)
  1. ; E = Total Unit Fee Charged (25) ($$$$$cc)
  1. ; C = CPT Units (25)
  1. ;
  1. N A,B,C,E
  1. S (B,C,E)=""
  1. F %=0:0 S %=$O(^ACHSF(F,"D",D,11,%)) Q:'% S A=^(%,0) I $P($P(A,U),";",2)="ICPT(" S X=$P($G(^ICPT(+A,0)),U),B=B_$S($L(X)=5:X,1:" "),X="00000"_$P(A,U,4),X=$E(X,$L(X)-3,$L(X)),C=C_$S(+X:X,1:" "),J=$P(A,U,6)
  1. S X="00000"_$P(J,"."),X=$E(X,$L(X)-4,$L(X)),Y="00"_$P(J,".",2),Y=$E(Y,$L(Y)-1,$L(Y)),J=X_Y,E=E_J
  1. S B=$E(B_$J("",125),1,125),C=$E(C_$J("",100),1,100),E=$E(E_$J("",175),1,175)
  1. Q B_U_E_U_C
  1. ;
  1. REV(F,D) ;EP - ITSC/SET/JVK ACHS*3.1*11 ADDED FOR EXPORT OF REV
  1. ; F=DUZ(2), D=Document EIN. Return REV codes, fee, and units.
  1. ;
  1. ; B = REV Codes (25)
  1. ; E = Total Unit Fee Charged (25)($$$$$cc)
  1. ; C = REV Units (25)
  1. ;
  1. N A,B,C,E
  1. S (B,C,E)=""
  1. F %=0:0 S %=$O(^ACHSF(F,"D",D,11,%)) Q:'% S A=^(%,0) I $P($P(A,U),";",2)="AUTTREVN(" S X=$P($G(^AUTTREVN(+A,0)),U),B=B_$S($L(X)=3:X,1:" "),X="000"_$P(A,U,4),X=$E(X,$L(X)-3,$L(X)),C=C_$S(+X:X,1:" "),J=$P(A,U,6)
  1. S X="00000"_$P(J,"."),X=$E(X,$L(X)-4,$L(X)),Y="00"_$P(J,".",2),Y=$E(Y,$L(Y)-1,$L(Y)),J=X_Y,E=E_J
  1. S B=$E(B_$J("",75),1,75),C=$E(C_$J("",100),1,100),E=$E(E_$J("",175),1,175)
  1. Q B_U_E_U_C
  1. ;