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

ABMEXLIP.m

Go to the documentation of this file.
  1. ABMEXLIP ;IHS/PIMC/JLG - Create export of inpatients for a month
  1. ;;2.6;IHS 3P BILLING SYSTEM;;NOV 12, 2009
  1. ;Pat name in ABMQ(9002274.3,IENS,.01,"E")
  1. ;HRN in ABMHRN
  1. ;get ADM SVC from ADT in ABMADMSV
  1. ;ADM date in ABMQ(....61 DISC date in ABMQ(.....63
  1. ;Calculate LOS in ABMLOS
  1. ;NAR, CARE, Caid in ABMQ(.....08, and ABMINTYP
  1. ;MCAID Plan in ABMPLAN
  1. ;PPO, HMO, TRI not available
  1. ;PI insurer in ABMQ(....08
  1. ;Claim number ABMD0
  1. ;AMT BILL A from 3p bill file
  1. ;Fields 13 and 15 in AR bill file may be useful. It will take some
  1. ;creativeness to get the AMT REC A
  1. W !
  1. K DIRUT
  1. S %DT="AEPX"
  1. S %DT("A")="Enter Start Date: "
  1. D ^%DT
  1. Q:Y=-1
  1. S ABMSTDT=Y
  1. S X1=Y
  1. S X2=-4
  1. D C^%DTC
  1. S ABMDT=X
  1. S %DT="AEPX"
  1. S %DT("A")="Enter End Date: "
  1. D ^%DT
  1. Q:Y=-1
  1. S ABMENDDT=Y
  1. FILEN ;open & write file
  1. S DIR(0)="9002274.5,.47"
  1. S DIR("A")="Enter File Directory"
  1. S DIR("B")=$P($G(^ABMDPARM(DUZ(2),1,4)),"^",7)
  1. D ^DIR K DIR
  1. I Y["^" S POP=1 Q
  1. S ABMXPATH=Y
  1. S DIR(0)="FAO^3:40^K:X'?1A.(1AN,1"" "",1""-"",1""_"") X"
  1. S DIR("A")="Enter Filename for output: "
  1. S DIR("B")="abmxls"_$E(DT,2,7)
  1. S DIR("?")="Please enter name of file."
  1. D ^DIR
  1. Q:$D(DIRUT)
  1. S ABMXFILE=Y
  1. D OPEN^%ZISH("ABMXFILE",ABMXPATH,ABMXFILE,"W")
  1. I POP D G FILEN
  1. .W !,"Output file not opened. Try again."
  1. U IO(0)
  1. W !,"File opened beginning to write export data.",!
  1. U IO
  1. F S ABMDT=$O(^ABMDCLM(DUZ(2),"AD",ABMDT)) Q:'ABMDT!(ABMDT>ABMENDDT) D
  1. .S ABMD0=0
  1. .F S ABMD0=$O(^ABMDCLM(DUZ(2),"AD",ABMDT,ABMD0)) Q:'ABMD0 D
  1. ..K ABMQ,ABMB
  1. ..S IENS=ABMD0_","
  1. ..S DR=".01;.07;.08;.61;.63;65*"
  1. ..D GETS^DIQ(9002274.3,IENS,DR,"EI","ABMQ")
  1. ..S AD=ABMQ(9002274.3,IENS,.61,"I")
  1. ..Q:AD<ABMSTDT!(AD>ABMENDDT)
  1. ..S VT=ABMQ(9002274.3,IENS,.07,"I")
  1. ..Q:(VT'=111)&(VT'=999)
  1. ..K ABMADMSV
  1. ..I $D(^ABMDCLM(DUZ(2),ABMD0,11,"AC","P")) D
  1. ...S VAIP("D")=+^AUPNVSIT(+$O(^ABMDCLM(DUZ(2),ABMD0,11,"AC","P",0)),0)
  1. ...S DFN=ABMQ(9002274.3,IENS,.01,"I")
  1. ...D IN5^VADPT
  1. ...S ABMADMSV=$P(VAIP(8),U,2)
  1. ..I ABMQ(9002274.3,IENS,.08,"I")="" D
  1. ...S ABMDONE=0
  1. ...K IENS2,IENS4,IENS4SAV,ABMQC
  1. ...S ABMD1=0
  1. ...F S ABMD1=$O(^ABMDCLM(DUZ(2),ABMD0,13,ABMD1)) Q:'ABMD1 D Q:ABMDONE
  1. ....S IENS4=ABMD1_","_IENS
  1. ....D GETS^DIQ(9002274.3013,IENS4,".01;.03","EI","ABMQ")
  1. ....I "IB"[ABMQ(9002274.3013,IENS4,.03,"I") D
  1. .....S IENS2=ABMQ(9002274.3013,IENS4,.01,"I")_","
  1. .....S ABMDONE=1
  1. .....S ABMINSN=ABMQ(9002274.3013,IENS4,.01,"E")
  1. ....E I "C"=ABMQ(9002274.3013,IENS4,.03,"I") D
  1. .....S ABMQC=1
  1. .....S IENS4SAV=IENS4
  1. ...I $G(IENS4),'ABMDONE,$G(ABMQC) D
  1. ....S IENS2=ABMQ(9002274.3013,IENS4SAV,.01,"I")_","
  1. ....S ABMINSN=ABMQ(9002274.3013,IENS4SAV,.01,"E")
  1. ..E D
  1. ...S IENS2=ABMQ(9002274.3,IENS,.08,"I")_","
  1. ...S ABMINSN=ABMQ(9002274.3,IENS,.08,"E")
  1. ..Q:IENS2=","
  1. ..S ABMINS=+IENS2
  1. ..S ABMINTYP=$$GET1^DIQ(9999999.18,IENS2,.21,"I")
  1. ..K ABMPLAN
  1. ..S ABMCAID=""
  1. ..S ABMCARE=""
  1. ..S ABMMFD0=$O(^AUPNMCD("B",ABMQ(9002274.3,IENS,.01,"I"),""))
  1. ..I ABMMFD0]"" D
  1. ...S IENS3=ABMMFD0_","
  1. ...S ABMPLAN=$$GET1^DIQ(9000004,IENS3,.11)
  1. ..I ABMINTYP="D" S ABMCAID=1
  1. ..E I ABMINTYP="R" D
  1. ...S ABMCARE=1
  1. ..K ABMBILAM,ABMBILRE
  1. ..S IENSX=""
  1. ..F S IENSX=$O(ABMQ(9002274.3065,IENSX)) Q:'IENSX D
  1. ...S ABMBIL=ABMQ(9002274.3065,IENSX,.01,"E")
  1. ...S ABMLET=$E(ABMBIL,$L(ABMBIL))
  1. ...S IENS2=ABMQ(9002274.3065,IENSX,.01,"I")_","
  1. ...S ABMBILAM(ABMLET)=$$GET1^DIQ(9002274.4,IENS2,.21)
  1. ...S X=ABMBIL
  1. ...S DIC=90050.01
  1. ...D ^DIC
  1. ...Q:Y=-1
  1. ...S IENS2=+Y_","
  1. ...D GETS^DIQ(90050.01,IENS2,"13;15",,"ABMB")
  1. ...S ABMBILRE(ABMLET)=ABMB(90050.01,IENS2,13)-ABMB(90050.01,IENS2,15)
  1. ..S ABMHRN=$$HRN^AUPNPAT(ABMQ(9002274.3,IENS,.01,"I"),DUZ(2))
  1. ..S X1=ABMQ(9002274.3,IENS,.63,"I")
  1. ..S X2=ABMQ(9002274.3,IENS,.61,"I")
  1. ..D ^%DTC
  1. ..S ABMLOS=X+1
  1. ..S ABMNAR=$S(ABMINS=1184:1,1:"") ;1184 = Beneficiary Indian
  1. ..S P="|"
  1. ..S ABMEXPS=ABMQ(9002274.3,IENS,.01,"E")_P_ABMHRN_P
  1. ..S ABMEXPS=ABMEXPS_$G(ABMADMSV)_P
  1. ..S ABMEXPS=ABMEXPS_ABMQ(9002274.3,IENS,.61,"E")_P
  1. ..S ABMEXPS=ABMEXPS_ABMQ(9002274.3,IENS,.63,"E")_P_ABMLOS_P
  1. ..S ABMEXPS=ABMEXPS_ABMNAR_P_ABMCARE_P_ABMCAID_P
  1. ..I $D(ABMPLAN) S ABMEXPS=ABMEXPS_ABMPLAN_P
  1. ..E S ABMEXPS=ABMEXPS_P
  1. ..S ABMEXPS=ABMEXPS_P_P_P
  1. ..I ABMINTYP="P" S ABMEXPS=ABMEXPS_ABMINSN_P
  1. ..E S ABMEXPS=ABMEXPS_P
  1. ..S ABMEXPS=ABMEXPS_ABMD0_P
  1. ..S ABMLET=""
  1. ..F S ABMLET=$O(ABMBILAM(ABMLET)) Q:ABMLET="" D
  1. ...S ABMEXPS=ABMEXPS_ABMBILAM(ABMLET)_P_ABMBILRE(ABMLET)_P
  1. ..W ABMEXPS,!
  1. D CLOSE^%ZISH("ABMXFILE")
  1. W !,"Export file complete."
  1. Q