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

ABMEF19.m

Go to the documentation of this file.
  1. ABMEF19 ; IHS/ASDST/DMJ - Electronic HCFA-1500 V2.0 Envoy Version ;
  1. ;;2.6;IHS 3P BILLING SYSTEM;;NOV 12, 2009
  1. ;
  1. ; IHS/ASDS/DMJ - 03/01/01 - V2.4 P5 - NOIS HQW-0301-100010
  1. ; New routine to address new Envoy electronic format
  1. ;
  1. ; IHS/ASDS/DMJ - 04/04/01 - V2.4 P5 - NOIS-HQW-0401-100014
  1. ; Changed it so "!" is done as $C(13,10). There was a problem
  1. ; because "!" is interpreted different than $C(13,10).
  1. ;
  1. ; IHS/FCS/DRS - 09/17/2001 - ABM*2.4*9
  1. ; Part 2b $$ENVOY, $$ENVOY15 calls
  1. ;
  1. START ;
  1. ;START HERE
  1. I '$D(ABMP("INS")) D
  1. .S ABMP("INS")=$P(^ABMDTXST(DUZ(2),ABMP("XMIT"),0),"^",4)
  1. .I 'ABMP("INS") D
  1. ..S DIC="^AUTNINS("
  1. ..S DIC(0)="AEMQ"
  1. ..D ^DIC
  1. ..Q:Y<0
  1. ..S ABMP("INS")=+Y
  1. .S ABMP("ITYPE")=$P($G(^AUTNINS(ABMP("INS"),2)),U)
  1. I 'ABMP("INS") D Q
  1. .W !!,*7,"Insurer NOT identified.",!
  1. S ABMP("FTYPE")=$P($G(^ABMDPARM(DUZ(2),1,3)),"^",4)
  1. S:ABMP("FTYPE")="" ABMP("FTYPE")="H"
  1. D OPEN
  1. I $G(POP) W !,"File could not be created/opened.",! Q
  1. S DIE="^ABMDTXST(DUZ(2),"
  1. S DA=ABMP("XMIT")
  1. S DR=".14///"_ABMFN
  1. D ^DIE
  1. D LOOP
  1. D END
  1. Q
  1. ;
  1. LOOP ;loop through bills
  1. S ABMP("L#")=0
  1. S ABMEF("BATCH#")=0
  1. S ABMP("MP")=1
  1. S ABMP("WRITE")=1
  1. K ABMR,ABMRT
  1. S ABMOPRV=0
  1. S ABMAPRV=0
  1. F S ABMAPRV=$O(^ABMDTXST(DUZ(2),ABMP("XMIT"),2,"APROV",ABMAPRV)) Q:'ABMAPRV D
  1. .S ABMTXIEN=0 F S ABMTXIEN=$O(^ABMDTXST(DUZ(2),ABMP("XMIT"),2,"APROV",ABMAPRV,ABMTXIEN)) Q:'ABMTXIEN D CLAIM
  1. Q
  1. CLAIM ;one claim
  1. S ABMP("BDFN")=+^ABMDTXST(DUZ(2),ABMP("XMIT"),2,ABMTXIEN,0)
  1. Q:'$D(^ABMDBILL(DUZ(2),ABMP("BDFN"),0))
  1. Q:$P(^ABMDBILL(DUZ(2),ABMP("BDFN"),0),"^",4)="X"
  1. S ABMBIL0=$G(^ABMDBILL(DUZ(2),ABMP("BDFN"),0))
  1. S ABMP("LDFN")=$P(ABMBIL0,"^",3)
  1. S ABMP("VTYP")=$P(ABMBIL0,"^",7)
  1. I 'ABMOPRV D
  1. .D ^ABMEAA0
  1. .U 0 W !,"Submission # ",ABMR(1,50),!
  1. .U 0 W !,"Writing bills to file.",!
  1. .S ABMEF("LINE")=ABMREC(1)
  1. .D WRITE
  1. I ABMAPRV'=ABMOPRV D BATCH
  1. W "."
  1. K ABMR
  1. D ^ABMEH20
  1. S ABMEF("LINE")=ABMREC(20)
  1. D WRITE
  1. K ABMR
  1. D ^ABMEH30
  1. F I=1:1:3 D
  1. .I $D(ABMREC(30,I)) D
  1. ..S ABMEF("LINE")=ABMREC(30,I)
  1. ..D WRITE
  1. .I $D(ABMREC(31,I)) D
  1. ..S ABMEF("LINE")=ABMREC(31,I)
  1. ..D WRITE
  1. .I $D(ABMREC(32,I)) D
  1. ..S ABMEF("LINE")=ABMREC(32,I)
  1. ..D WRITE
  1. K ABMR
  1. D ^ABMEH40
  1. S ABMEF("LINE")=ABMREC(40)
  1. D WRITE
  1. K ABMR
  1. D ^ABMEH61
  1. K ABMR
  1. D ^ABMEH90
  1. S ABMEF("LINE")=ABMREC(90)
  1. D WRITE
  1. S DIE="^ABMDBILL(DUZ(2),"
  1. S DA=ABMP("BDFN")
  1. S DR=".04////B;.16////A;.17////"_ABMP("XMIT")
  1. D ^DIE
  1. Q
  1. BATCH ;new batch
  1. S ABMEF("BATCH#")=ABMEF("BATCH#")+1
  1. I ABMOPRV D
  1. .D ^ABMEH95
  1. .S ABMEF("LINE")=ABMREC(95)
  1. .D WRITE
  1. D ^ABMEBA0
  1. S ABMEF("LINE")=ABMREC(10)
  1. D WRITE
  1. D ^ABMEH15
  1. S ABMEF("LINE")=ABMREC(15)
  1. D WRITE
  1. S ABMOPRV=ABMAPRV
  1. Q
  1. END ;end of file
  1. K ABMR
  1. D ^ABMEH95
  1. S ABMEF("LINE")=ABMREC(95)
  1. D WRITE
  1. K ABMR
  1. D ^ABMEH99
  1. S ABMEF("LINE")=ABMREC(99)
  1. D WRITE
  1. D CLOSE
  1. W !!,"Finished.",!!
  1. K ABME,ABM,ABMEF,ABMREC,ABMR,ABMRV,ABMFN,ABMLF,ABMLNUM,ABMPATH
  1. Q
  1. ;
  1. OPEN ;
  1. ; OPEN FILE
  1. I ABMP("FTYPE")="K" D
  1. .S POP=0
  1. .S DIC="^DIZ(8980,"
  1. .S DIC(0)="AEMQL"
  1. .S DIC("S")="I $P(^(0),""^"",5)=DUZ"
  1. .D ^DIC
  1. .K DIC
  1. .I Y<0 S POP=1 Q
  1. .S ABMP("FILE#")=+Y
  1. .S ABMFN=$P(Y,"^",2)
  1. .I $O(^DIZ(8980,ABMP("FILE#"),2,0)) D
  1. ..W !,*7,"Data already exists in this file!",!
  1. ..S DIR("A")="Delete"
  1. ..S DIR(0)="Y"
  1. ..S DIR("B")="NO"
  1. ..D ^DIR
  1. ..K DIR
  1. ..I Y=1 K ^DIZ(8980,ABMP("FILE#"),2)
  1. ..I Y=0 S POP=1
  1. I ABMP("FTYPE")="H" D
  1. .S DIR(0)="9002274.5,.52"
  1. .S DIR("A")="Enter Path"
  1. .S DIR("B")=$P($G(^ABMDPARM(DUZ(2),1,5)),"^",2)
  1. .D ^DIR K DIR
  1. .I Y["^" S POP=1 Q
  1. .S ABMPATH=Y
  1. . S ABMRCID=$P(^AUTNINS(ABMP("INS"),0),"^",8)
  1. .I $L(ABMRCID)<5 D
  1. ..S ABMRCID=$E("00000",1,5-$L(ABMRCID))_ABMRCID
  1. .S ABMJDT=$$JDT^XBFUNC(DT)
  1. .S ABMLF=$G(^ABMNINS("ALF",ABMP("INS")))
  1. .S:$P(ABMLF,".",2)'=ABMJDT ABMLF=""
  1. .S ABMLNUM=+$E($P(ABMLF,".",1),7,8)
  1. .S ABMLNUM=ABMLNUM+1
  1. .I ABMLNUM<10 S ABMLNUM="0"_ABMLNUM
  1. .S ABMFN="H"_ABMRCID_ABMLNUM_"."_ABMJDT
  1. .S DIR(0)="F",DIR("A")="Enter File Name: ",DIR("B")=ABMFN
  1. .D ^DIR K DIR
  1. .I Y["^" S POP=1 Q
  1. .S ABMFN=Y
  1. .D OPEN^%ZISH("EMCFILE",ABMPATH,ABMFN,"W")
  1. .S:'POP ^ABMNINS("ALF",ABMP("INS"))=ABMFN
  1. I ABMP("FTYPE")="M" D
  1. .S ABMP("DOMAIN")=$P($G(^ABMDPARM(DUZ(2),1,3)),"^",9)
  1. .I 'ABMP("DOMAIN") W !,"MM SEND TO DOMAIN NOT DEFINED.",! S POP=1 Q
  1. .S ABMP("DOMAIN")=$P(^DIC(4.2,ABMP("DOMAIN"),0),U)
  1. .S XMSUB="EMC FILE FROM "_$P($G(^AUTTLOC(DUZ(2),0)),"^",2)
  1. .S XMDUZ=DUZ
  1. .D XMZ^XMA2
  1. .I XMZ<1 S POP=1 Q
  1. .S ABMFN="MAIL MSG# "_XMZ
  1. .W !!,"MAIL MSG# ",XMZ," CREATED.",!
  1. Q
  1. ;
  1. WRITE ;EP - write record to file
  1. Q:'$G(ABMP("WRITE"))
  1. I ABMP("FTYPE")="K" D
  1. .S ABMP("L#")=ABMP("L#")+1
  1. .S ^DIZ(8980,ABMP("FILE#"),2,ABMP("L#"),0)=ABMEF("LINE")
  1. I ABMP("FTYPE")="H" D
  1. .U IO
  1. .W ABMEF("LINE"),$C(13,10)
  1. .U IO(0)
  1. I ABMP("FTYPE")="M" D
  1. .S ABMP("L#")=ABMP("L#")+1
  1. .S ^XMB(3.9,XMZ,2,ABMP("L#"),0)=ABMEF("LINE")
  1. Q
  1. ;
  1. CLOSE ;
  1. ;CLOSE FILE
  1. I ABMP("FTYPE")="H" D ^%ZISC
  1. I ABMP("FTYPE")="K" S ^DIZ(8980,ABMP("FILE#"),2,0)="^^"_I_"^"_I_"^"_DT
  1. I ABMP("FTYPE")="M" D
  1. .S ^XMB(3.9,XMZ,2,0)="^3.92A^"_ABMP("L#")_"^"_ABMP("L#")_"^"_DT
  1. .S XMY(".5@"_ABMP("DOMAIN"))=""
  1. .D ENT1^XMD
  1. Q
  1. ; Patch 9 Part 2b new 08/xx/2001 IHS/FCS/DRS
  1. FMTNAME() Q $$GET1^DIQ(9002274.6,ABMP("XMIT")_",","EXPORT MODE")
  1. ; begin ABM*2.4*9 Part 2b
  1. ENVOY15() ; EP - Is this the Envoy 1500 format? ; ABM*2.4*9 IHS/FCS/DRS 09/21/01 ;
  1. ; A call to this is needed when making changes to code used by
  1. ; other formats, such as ABMEH20
  1. N X S X=$$FMTNAME
  1. Q X["15"&(X["ENVOY")
  1. ENVOY() ; EP - Is the an Envoy format? ; ABM*2.4*9 IHS/FCS/DRS 09/21/01 ;
  1. ; A call to this is needed when making changes to code used by
  1. ; other formats, such as ABMEH61
  1. Q $$FMTNAME["ENVOY"