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

IBY358PO.m

Go to the documentation of this file.
  1. IBY358PO ;ALB/WCJ - Post Install for IB patch 358 ;28-JUL-2005
  1. ;;2.0;INTEGRATED BILLING;**358**;21-MAR-94
  1. ;
  1. EN ;
  1. N XPDIDTOT S XPDIDTOT=1
  1. D CLEAN ; 1. Clean up IDs with qualifiers TJ & 24
  1. ;
  1. EX ;
  1. Q
  1. CLEAN ; Clean up IDs with qualifiers TJ & 24
  1. D BMES^XPDUTL(" STEP 1 of "_XPDIDTOT)
  1. D MES^XPDUTL("-------------")
  1. D MES^XPDUTL("Cleaning up IDs with Qualifiers 24, EI, TJ ....")
  1. ;
  1. ; this will loop through all qualifiers with internal values of
  1. ; 16 (X12 CODE 24) and 21 (X12 CODE TJ). The X12 codes should be
  1. ; internal 32 (X12 CODE EI) for individuals and internal 21 (X12 CODE
  1. ; TJ) for labs/facilities. IDs will be modified or deleted as
  1. ; necessary.
  1. ;
  1. N QUAL,PROV,IORF,PROVIEN,IDS,I,J,K,FLAG
  1. ;
  1. F QUAL=21,16 D
  1. . S PROV=""
  1. . F S PROV=$O(^IBA(355.9,"AC",QUAL,"*ALL*",PROV)) Q:PROV="" D
  1. .. Q:PROV'["IBA(355.93" ; Only NonVA providers
  1. .. S PROVIEN=+PROV
  1. .. S IORF=$P($G(^IBA(355.93,PROVIEN,0)),U,2) ; (2)Individual OR (1)Facility
  1. .. ;
  1. .. K IDS
  1. .. D GETALL(PROV,.IDS)
  1. .. Q:'$D(IDS) ; Nothing to convert (should not stop here)
  1. .. ;
  1. .. ; Individual already having EI, Delete 24s & TJs
  1. .. I IORF=2,$G(IDS(32)) D Q
  1. ... F K=16,21 F I=0,1,2 F J=0:1:3 I $D(IDS(K,I,J)) D DELETE(IDS(K,I,J))
  1. .. ;
  1. .. ; Lab/Fac with TJs already, delete 24s
  1. .. I IORF=1,$G(IDS(21)) D Q
  1. ... F I=0,1,2 F J=0:1:3 I $D(IDS(16,I,J)) D DELETE(IDS(16,I,J))
  1. .. ;
  1. .. ; Lab/Fac with 24s but no TJs, edit or delete 24s as appropriate
  1. .. I IORF=1,'$G(IDS(21)),$G(IDS(16)) D Q
  1. ... S FLAG=0
  1. ... F I=0,1,2 F J=0:1:3 I $D(IDS(16,I,J)) D MODIFY(IDS(16,I,J),21):'FLAG,DELETE(IDS(16,I,J)):FLAG S FLAG=1
  1. .. ;
  1. .. ; Individual with TJs or 24s but no EIs, edit or delete as appropriate
  1. .. I IORF=2,'$G(IDS(32)) D Q
  1. ... ;
  1. ... S FLAG=0
  1. ... F I=0,1,2 F J=0:1:3 F K=21,16 I $D(IDS(K,I,J)) D MODIFY(IDS(K,I,J),32):'FLAG,DELETE(IDS(K,I,J)):FLAG S FLAG=1
  1. CLEANX ;
  1. D MES^XPDUTL(" Done.")
  1. D UPDATE^XPDID(1)
  1. Q
  1. ;
  1. ; pass in PROV IEN;IBA(355.93,
  1. ; return IDS array IDS(IEN35597,FORMTYPE,CARETYPE)=IEN3559
  1. ; IDS(IEN35597)=COUNTER
  1. GETALL(PROV,IDS) ;
  1. N I,J,K
  1. F I=0,1,2 D
  1. . F J=0:1:3 D
  1. .. F K=16,21,32 D
  1. ... I $D(^IBA(355.9,"AUNIQ",PROV,"*ALL*","*N/A*",I,J,K)) D
  1. .... S IDS(K,I,J)=$O(^IBA(355.9,"AUNIQ",PROV,"*ALL*","*N/A*",I,J,K,0))
  1. .... S IDS(K)=$G(IDS(K))+1
  1. Q
  1. ;
  1. DELETE(IEN) ;
  1. N DIK,DA
  1. S DIK="^IBA(355.9,",DA=+IEN D ^DIK
  1. Q
  1. ;
  1. MODIFY(IEN,QUAL) ;
  1. N DIE,DA,DR
  1. S DIE="^IBA(355.9,",DA=+IEN,DR=".04////0;.05////0;.06////"_QUAL D ^DIE
  1. Q
  1. ;