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

ABMPPFLR.m

Go to the documentation of this file.
  1. ABMPPFLR ; IHS/SD/SDR - Prior Payments/Adjustments filer (CE) ;
  1. ;;2.6;IHS Third Party Billing;**1,19**;NOV 12, 2009;Build 300
  1. ;
  1. ; ABMPL(Insurer priority, Insurer IEN)=13 multiple IEN ^ Billing status
  1. ; ABMPP(Insurer IEN, "P" or "A", Counter)=Amount ^ Adj Category ^ Trans. Type ^ Std Adj. Reason
  1. ;
  1. ; IHS/SD/SDR - v2.5 p13 - IM25471 - Changes for CAS when SAR=A2
  1. ; IHS/SD/SDR - v2.6 p1 - HEAT414 - <UNDEF>EN+29^ABMPPFLR
  1. ;IHS/SD/SDR - 2.6*19 - HEAT168248 - Removes payment multiple completely so residual entries from previous run don't mess up current transactions
  1. ;
  1. EN ;EP
  1. S ABMSTAT=""
  1. ; bill status x-ref
  1. F S ABMSTAT=$O(^ABMDBILL(DUZ(2),"AS",ABMP("CDFN"),ABMSTAT)) Q:ABMSTAT="" D
  1. .Q:ABMSTAT="X"
  1. .S ABMBIEN=0
  1. .F S ABMBIEN=$O(^ABMDBILL(DUZ(2),"AS",ABMP("CDFN"),ABMSTAT,ABMBIEN)) Q:+ABMBIEN=0 D
  1. ..S ABMAINS=$P($G(^ABMDBILL(DUZ(2),ABMBIEN,0)),U,8) ;active insurer
  1. ..Q:'$D(ABMPP(ABMAINS)) ;quit if no data for insurer
  1. ..K ^ABMDBILL(DUZ(2),ABMBIEN,3) ;abm*2.6*19 HEAT168248
  1. ..K ABMBPIEN
  1. ..S ABMCAT=""
  1. ..F S ABMCAT=$O(ABMPP(ABMAINS,ABMCAT)) Q:ABMCAT="" D
  1. ...S ABMLN=0
  1. ...F S ABMLN=$O(ABMPP(ABMAINS,ABMCAT,ABMLN)) Q:+ABMLN=0 D
  1. ....S ABMLAMT=$P(ABMPP(ABMAINS,ABMCAT,ABMLN),U) ;amt
  1. ....I +ABMLAMT=0,$P($G(ABMPP(ABMAINS,ABMCAT,ABMLN)),U,6)'="" D Q
  1. .....S DA(1)=ABMBIEN
  1. .....S DIK="^ABMDBILL(DUZ(2),DA(1),3,"
  1. .....S DA=$P(ABMPP(ABMAINS,ABMCAT,ABMLN),U,6)
  1. .....D ^DIK
  1. ....Q:+ABMLAMT=0
  1. ....S ABMADJC=$P($G(ABMPP(ABMAINS,ABMCAT,ABMLN)),U,2) ;adj category
  1. ....S ABMADJT=$P($G(ABMPP(ABMAINS,ABMCAT,ABMLN)),U,3) ;trans type
  1. ....S ABMSAR=$S($P($G(ABMPP(ABMAINS,ABMCAT,ABMLN)),U,4)'="":$P(ABMPP(ABMAINS,ABMCAT,ABMLN),U,4),1:"@") ;std adj reason
  1. ....;S ABMBPIEN=$P($G(ABMPP(ABMAINS,ABMCAT,ABMLN)),U,6) ;IEN of entry ;abm*2.6*19 IHS/SD/SDR HEAT168248
  1. ....S ABMBPIEN=0 ;treat like a new entry every time - was killed above, as well as entries could have been edited, merged ;abm*2.6*19 IHS/SD/SDR HEAT168248
  1. ....I +ABMBPIEN=0 D ;file as new entry
  1. .....D ^XBFMK
  1. .....S DA(1)=ABMBIEN
  1. .....;S X=ABMOPDT ;abm*2.6*1 HEAT414
  1. .....S X=$S($G(ABMOPDT)'="":ABMOPDT,1:DT) ;abm*2.6*1 HEAT414
  1. .....S DIC="^ABMDBILL(DUZ(2),"_DA(1)_",3,"
  1. .....S DIC(0)="LI"
  1. .....S DIC("P")=$P(^DD(9002274.4,3,0),U,2)
  1. .....K DD,DO D FILE^DICN
  1. .....S ABMBPIEN=+Y
  1. .....S $P(ABMPP(ABMAINS,ABMCAT,ABMLN),U,6)=ABMBPIEN
  1. ....K X,Y,DIC,DIE,DR,DA
  1. ....S DA(1)=ABMBIEN
  1. ....S DIE="^ABMDBILL(DUZ(2),DA(1),3,"
  1. ....S DA=ABMBPIEN
  1. ....I ABMCAT="P" D
  1. .....S DR=".02///"_ABMLAMT_";.1///"_ABMLAMT
  1. ....I ABMCAT="A" D
  1. .....I ABMADJC=3 S DR=".06///"_ABMLAMT
  1. .....I ABMADJC=4 S DR=".07///"_ABMLAMT
  1. .....I ABMADJC=13 S DR=".03///"_ABMLAMT
  1. .....I ABMADJC=14 S DR=".04///"_ABMLAMT
  1. .....I ABMADJC=15 S DR=".09///"_ABMLAMT
  1. .....I ABMADJC=16 S DR=".12///"_ABMLAMT
  1. .....I ABMADJC=19 S DR=".13///"_ABMLAMT
  1. .....I ABMADJC=20 S DR=".14///"_ABMLAMT
  1. .....S DR=$G(DR)_";.15///"_ABMADJC_";.16///"_ABMADJT_";.17////"_ABMSAR
  1. ....D ^DIE
  1. S ABMSPLFG=1
  1. Q