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

IBCEOB4.m

Go to the documentation of this file.
  1. IBCEOB4 ;ALB/PJH - EPAYMENTS MOVE/COPY EEOB TO NEW CLAIM ;Jun 11, 2014@17:45:06
  1. ;;2.0;INTEGRATED BILLING;**451,511,596**;21-MAR-1994;Build 31
  1. ;Per VA Directive 6402, this routine should not be modified.
  1. ;
  1. ;Entry point for EEOB Move
  1. MOVE(EOBIEN,IBIFN,DUZ,MDATE,JCOM,EVENT) ;
  1. ;
  1. N DA,DIC,DIE,DIK,DR,IEN101,OBILL,X,Y
  1. S OBILL=$$EXTERNAL^DILFD(361.1,.01,,$P($G(^IBM(361.1,EOBIEN,0)),U))
  1. ;
  1. ;Create new MOVE/COPY HISTORY stub
  1. S DA(1)=EOBIEN
  1. S DIC="^IBM(361.1,"_DA(1)_",101,",DIC(0)="L",X=MDATE
  1. D FILE^DICN
  1. S IEN101=+Y Q:'IEN101
  1. ;
  1. ;Update detail on MOVE/COPY HISTORY
  1. K DA,DIE,DR,X,Y
  1. S DIE="^IBM(361.1,"_EOBIEN_",101,",DA=IEN101
  1. ;Update User, Date/Time, Comments,Move/Copy event
  1. S DR=".02///"_DUZ_";.03///"_JCOM_";.05///"_EVENT
  1. ;Update original bill number
  1. S DR=DR_";.04///"_OBILL
  1. D ^DIE
  1. ;
  1. ;Update bill number on EOB
  1. K DA,DIE,DR,X,Y
  1. S DIE="^IBM(361.1,",DA=EOBIEN,DR=".01///"_IBIFN
  1. D ^DIE
  1. ;
  1. ;Re-index updated EOB to correct PAYER NAME - IB*2*511
  1. K DA S DIK="^IBM(361.1,",DA=EOBIEN D IX^DIK
  1. ;
  1. ;Update any AR AMOUNTS DISTRIBUTION (split/edit detail)
  1. D FUNCTION(EOBIEN,OBILL,IBIFN)
  1. ;
  1. Q
  1. ;
  1. ;Entry point for EEOB Copy
  1. COPY(EOBIEN,IBIFN,DUZ,MDATE,JCOM,EVENT) ;'
  1. ;
  1. N IEN,IEN1,OBILL,NEWEOB
  1. ;
  1. ;Original Claim number
  1. S OBILL=$$EXTERNAL^DILFD(361.1,.01,,$P($G(^IBM(361.1,EOBIEN,0)),U))
  1. ;
  1. ;Lock zero node before making inserts
  1. Q:'$$LOCK(0)
  1. ;
  1. ;Scan through list of new claims
  1. S IEN=0
  1. F S IEN=$O(IBIFN(IEN)) Q:'IEN D
  1. .;Create stub
  1. .N DA,DIC,DIE,DIK,DLAYGO,DR,IEN1,IEN101,X,Y
  1. .S DIC(0)="L",DIC="^IBM(361.1,",DLAYGO=361.1
  1. .;Use 399 ien as .01 field
  1. .S X=IEN
  1. .D FILE^DICN
  1. .S NEWEOB=+Y Q:'NEWEOB
  1. .;Lock the new entry
  1. .Q:'$$LOCK(NEWEOB)
  1. .;Copy details to new EOB (except for audit information)
  1. .N ARRAY
  1. .M ARRAY=^IBM(361.1,EOBIEN) K ARRAY(101)
  1. .M ^IBM(361.1,NEWEOB)=ARRAY
  1. .;Re-index new EOB
  1. .K DA,DIE,DIK,DR,IEN1,IEN101,X,Y
  1. .S DIK="^IBM(361.1,",DA=NEWEOB D IX^DIK
  1. .;Update .01 field in new EOB
  1. .K DA,X,Y
  1. .S DIE="^IBM(361.1,",DA=NEWEOB
  1. .S DR=".01////"_IBIFN(IEN)
  1. .D ^DIE
  1. .;Re-index updated EOB to correct PAYER NAME - IB*2*511
  1. .K DA,DIK,X,Y S DIK="^IBM(361.1,",DA=NEWEOB D IX^DIK
  1. .;
  1. .;Update any AR AMOUNTS DISTRIBUTION (split/edit detail)
  1. .D FUNCTION(NEWEOB,OBILL,IBIFN(IEN))
  1. .;
  1. .;Create stub for audit information
  1. .K DA,DIC,X,Y
  1. .S DA(1)=NEWEOB
  1. .S DIC="^IBM(361.1,"_DA(1)_",101,",DIC(0)="L",X=MDATE
  1. .D FILE^DICN
  1. .S IEN101=+Y Q:'IEN101
  1. .;
  1. .;Update detail on MOVE/COPY HISTORY
  1. .K DA,DIE,DR,X,Y
  1. .S DIE="^IBM(361.1,"_NEWEOB_",101,",DA=IEN101
  1. .;Update User, Date/Time, Comments,Event
  1. .S DR=".02///"_DUZ_";.03///"_JCOM_";.05///"_EVENT
  1. .S DR=DR_";.04///"_OBILL
  1. .D ^DIE
  1. .;
  1. .;Insert Other claim numbers
  1. .K DIC,DLAYGO,IEN1,X,Y
  1. .S IEN1=""
  1. .F S IEN1=$O(IBIFN(IEN1)) Q:'IEN1 D
  1. ..;current claim excluded
  1. ..Q:IEN1=IEN
  1. ..N DA,DIC,DLAYGO,DR,X
  1. ..S DA(1)=IEN101,DA(2)=NEWEOB
  1. ..S DIC="^IBM(361.1,"_DA(2)_",101,"_DA(1)_",1,"
  1. ..S DIC(0)="L",X=IBIFN(IEN1)
  1. ..D FILE^DICN
  1. .;Unlock new entry
  1. .D UNLOCK(NEWEOB)
  1. ;
  1. ;Update original EOB audit information
  1. N DA,DIC,DIE,DLAYGO,DR,IEN1,IEN101,X,Y
  1. S DA(1)=EOBIEN
  1. S DIC="^IBM(361.1,"_DA(1)_",101,",DIC(0)="L",X=MDATE
  1. D FILE^DICN
  1. S IEN101=+Y Q:'IEN101
  1. ;
  1. ;Update User, Date/Time, Comments,Event
  1. K DA,DIC,X,Y
  1. S DIE="^IBM(361.1,"_EOBIEN_",101,",DA=IEN101
  1. S DR=".02///"_DUZ_";.03///"_JCOM_";.05///"_EVENT
  1. D ^DIE
  1. ;
  1. ;Insert Other claim numbers
  1. K DA,DIC,X,Y
  1. S IEN1=""
  1. F S IEN1=$O(IBIFN(IEN1)) Q:'IEN1 D
  1. .K DA,DIC,DR,X
  1. .S DA(1)=IEN101,DA(2)=EOBIEN
  1. .S DIC="^IBM(361.1,"_DA(2)_",101,"_DA(1)_",1,"
  1. .S DIC(0)="L",X=IBIFN(IEN1)
  1. .D FILE^DICN
  1. ;
  1. ;Release zero node after inserts
  1. D UNLOCK(0)
  1. Q
  1. ;
  1. REMOVE(EOBIEN,DUZ,JCOM) ;Mark EEOB as Removed - IB*2*511
  1. ; Timestamp
  1. N DA,DIC,DIE,DR,IEN101,OBILL,X,Y
  1. S OBILL=$$EXTERNAL^DILFD(361.1,.01,,$P($G(^IBM(361.1,EOBIEN,0)),U))
  1. ;
  1. ;Create new MOVE/COPY HISTORY stub for remove action
  1. S DA(1)=EOBIEN
  1. S DIC="^IBM(361.1,"_DA(1)_",101,",DIC(0)="L",X=$$NOW^XLFDT
  1. D FILE^DICN
  1. S IEN101=+Y Q:'IEN101
  1. ;
  1. ;Update detail on MOVE/COPY HISTORY
  1. N DIE,DA,DR,X,Y
  1. S DIE="^IBM(361.1,"_EOBIEN_",101,",DA=IEN101
  1. ;Update User, Date/Time, Comments, Original Bill and Remove event
  1. S DR=".02///"_DUZ_";.03///"_JCOM_";.04///"_OBILL_";.05///R"
  1. D ^DIE
  1. ;
  1. ;Mark EEOB as removed to prevent further use
  1. N DIE,DA,DR,X,Y
  1. S DIE="^IBM(361.1,",DA=EOBIEN
  1. ;Update EEOB REMOVED
  1. S DR="102///1"
  1. D ^DIE
  1. Q
  1. ;
  1. ;Update Split/Edit history for EOB
  1. FUNCTION(EOBIEN,ONAME,NEWIEN) ;
  1. N DA,DIE,DR,NEWNAME,SUB,X,Y
  1. ;Check for split/edit history for original claim
  1. S SUB=$O(^IBM(361.1,EOBIEN,8,"B",ONAME,"")) Q:'SUB
  1. ;New bill name
  1. S NEWNAME=$P($G(^DGCR(399,NEWIEN,0)),U)
  1. ;Update bill number in Split/Edit history
  1. S DA(1)=EOBIEN,DIE="^IBM(361.1,"_DA(1)_",8,",DA=SUB
  1. S DR=".01///"_NEWNAME_";.03///"_NEWNAME
  1. D ^DIE
  1. Q
  1. ;
  1. ;
  1. LOCK(EOBIEN) ;Lock Original EOB
  1. L +^IBM(361.1,EOBIEN):5 I Q 1
  1. W !,"EOB in use by another user, try later"
  1. Q 0
  1. ;
  1. UNLOCK(EOBIEN) ;Release EOB
  1. L -^IBM(361.1,EOBIEN)
  1. Q
  1. ;
  1. ; BEGIN IB*2.0*596
  1. RESTORE(EOBIEN) ;EP - RCDPEM5
  1. ; Clear EEOB REMOVED flag from previously suspensed EEOB
  1. ; INPUT - EEOBIEN - #361.1 IEN
  1. ;
  1. Q:'EOBIEN
  1. ;
  1. N DIE,DA,DR,X,Y
  1. S DIE="^IBM(361.1,",DA=EOBIEN
  1. ;Update EEOB REMOVED
  1. S DR="102///@"
  1. D ^DIE
  1. Q
  1. ; END IB*2.0*596