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

IB20P279.m

Go to the documentation of this file.
  1. IB20P279 ;ISP/TDP - IB*2*279 PRE-INIT ROUTINE ;07/21/2004
  1. ;;2.0;INTEGRATED BILLING;**279**;21-MAR-94
  1. ;
  1. ENV ; environment check
  1. PRE ; set up check points for pre-init
  1. N %
  1. S %=$$NEWCP^XPDUTL("PROVID","PROVID^IB20P279")
  1. Q
  1. PROVID ;Search files 355.9 and 355.91 for invalid Care Unit pointers to file
  1. ;355.96.
  1. D BMES^XPDUTL("Beginning invalid Care Unit pointer search.")
  1. D 3559,35591 I $D(^TMP($J,"IB20P279")) D MESSAGE
  1. D COMPLETE
  1. D END
  1. Q
  1. 35591 ;Search file 355.91 for invalid Care Unit pointers to file 355.96.
  1. D BMES^XPDUTL("Searching for invalid Care Unit pointers in file 355.91.")
  1. N DA,DIE,DR,IB35591,IBCARE,IBCIVAL,IBCNT,IBCU,IBCUCHK,IBECNT,IBFORM
  1. N IBINS,IBINSNM,IBNUM,IBPRVID,IBPRVTYP
  1. S (IBCNT,IBECNT,IBNUM)=0
  1. S DIE="^IBA(355.91,"
  1. F S IBNUM=$O(^IBA(355.91,IBNUM)) Q:IBNUM="" D
  1. . I 'IBNUM Q
  1. . S IB35591=$G(^IBA(355.91,IBNUM,0)) I IB35591="" Q
  1. . S IBINS=$P(IB35591,U,1)
  1. . S IBCU=$P(IB35591,U,3) I IBCU="" Q
  1. . S IBFORM=$P(IB35591,U,4)
  1. . S IBCARE=$P(IB35591,U,5)
  1. . S IBPRVID=$P(IB35591,U,6)
  1. . D VALIDCU I IBCIVAL=IBCU Q
  1. . S IBCUCHK=0 D CUCHK I IBCUCHK D Q
  1. .. S IBINSNM=$P($G(^DIC(36,IBINS,0)),U,1) I IBINSNM="" S IBINSNM="UNKNOWN (IEN "_IBINS_")"
  1. .. S IBPRVTYP=$P($G(^IBE(355.97,IBPRVID,0)),U,1)
  1. .. S ^TMP($J,"IB20P279",IBINSNM,IBPRVTYP,"<<INS CO DEFAULT>>",IBNUM)=IB35591
  1. .. S IBECNT=IBECNT+1
  1. .. D OUTPUT
  1. . D FILE
  1. D TOTALS
  1. Q
  1. 3559 ;Search file 355.9 for invalid Care Unit pointers to file 355.96.
  1. D BMES^XPDUTL("Searching for invalid Care Unit pointers in file 355.9.")
  1. N DA,DIE,DR,IB3559,IBCARE,IBCIVAL,IBCNT,IBCU,IBCUCHK,IBECNT,IBFORM,IBGBL
  1. N IBINS,IBINSNM,IBNAME,IBNUM,IBPROV,IBPRVID,IBPRVTYP
  1. K ^TMP($J,"IB20P279")
  1. S (IBCNT,IBECNT,IBNUM)=0
  1. S DIE="^IBA(355.9,"
  1. F S IBNUM=$O(^IBA(355.9,IBNUM)) Q:IBNUM="" D
  1. . I 'IBNUM Q
  1. . S IB3559=$G(^IBA(355.9,IBNUM,0)) I IB3559="" Q
  1. . S IBPROV=$P(IB3559,U,1)
  1. . S IBINS=$P(IB3559,U,2)
  1. . S IBCU=$P(IB3559,U,3) I IBCU="" Q
  1. . S IBFORM=$P(IB3559,U,4)
  1. . S IBCARE=$P(IB3559,U,5)
  1. . S IBPRVID=$P(IB3559,U,6)
  1. . D VALIDCU I IBCIVAL=IBCU Q
  1. . S IBCUCHK=0 D CUCHK I IBCUCHK D Q
  1. .. S IBINSNM=$P($G(^DIC(36,IBINS,0)),U,1) I IBINSNM="" S IBINSNM="UNKNOWN (IEN "_IBINS_")"
  1. .. S IBPRVTYP=$P($G(^IBE(355.97,IBPRVID,0)),U,1)
  1. .. S IBGBL="^"_$P($G(IBPROV),";",2)_$P($G(IBPROV),";",1)_",0)"
  1. .. S IBNAME=$P($G(@IBGBL),"^",1)
  1. .. S ^TMP($J,"IB20P279",IBINSNM,IBPRVTYP,IBNAME,IBNUM)=IB3559
  1. .. S IBECNT=IBECNT+1
  1. .. D OUTPUT
  1. . D FILE
  1. D TOTALS
  1. Q
  1. TOTALS ; Print cleanup totals.
  1. N IBFILE
  1. S IBFILE=$S(DIE["355.91":"355.91.",1:"355.9.")
  1. I 'IBCNT,'IBECNT D BMES^XPDUTL("There were no invalid Care Unit pointers in file "_IBFILE) Q
  1. I IBCNT D BMES^XPDUTL(IBCNT_" total invalid Care Unit pointer(s) were corrected in file "_IBFILE)
  1. I IBECNT D BMES^XPDUTL(IBECNT_" total invalid Care Unit pointer(s) were NOT corrected in file "_IBFILE)
  1. Q
  1. OUTPUT ; Failed conversion message.
  1. D MES^XPDUTL("> Cannot change Care Unit Pointer for "_DIE_IBNUM_"). A Mailman")
  1. D MES^XPDUTL(" message will be generated with more information.")
  1. Q
  1. FILE ; Save change and display success message.
  1. N IBL,IBLOCK,X
  1. S IBL=0
  1. S IBLOCK=DIE_IBNUM_")"
  1. F X=1:1:10 L +@IBLOCK:2 H:'$T 5 I $T S IBL=1 Q
  1. I 'IBL D Q
  1. . S IBINSNM=$P($G(^DIC(36,IBINS,0)),U,1) I IBINSNM="" S IBINSNM="UNKNOWN (IEN "_IBINS_")"
  1. . S IBPRVTYP=$P($G(^IBE(355.97,IBPRVID,0)),U,1)
  1. . S IBGBL="^"_$P($G(IBPROV),";",2)_$P($G(IBPROV),";",1)_",0)"
  1. . S IBNAME=$P($G(@IBGBL),"^",1)
  1. . S ^TMP($J,"IB20P279",IBINSNM,IBPRVTYP,IBNAME,IBNUM)=$S($D(IB3559):IB3559,1:IB35591)
  1. . S IBECNT=IBECNT+1
  1. . D OUTPUT
  1. S DA=IBNUM
  1. S DR=".03////"_IBCIVAL
  1. D ^DIE K DA,DR
  1. L -@IBLOCK
  1. D MES^XPDUTL("> Care Unit Pointer for "_DIE_IBNUM_") has been updated.")
  1. S IBCNT=IBCNT+1
  1. Q
  1. VALIDCU ;Checks for valid Care Unit combination.
  1. ;Set IBCIVAL to insure Care Unit Pointer (355.9 and 355.91) is correct.
  1. N IBCUVAL
  1. S IBCUVAL=$P($G(^IBA(355.96,+IBCU,0)),U,1) I IBCUVAL="" S IBCIVAL="@" Q
  1. S IBCIVAL=$O(^IBA(355.96,"AUNIQ",IBINS,IBCUVAL,IBFORM,IBCARE,IBPRVID,"")) I IBCIVAL'="" Q
  1. S IBCIVAL=$O(^IBA(355.96,"AUNIQ",IBINS,IBCUVAL,IBFORM,0,IBPRVID,"")) I IBCIVAL'="" Q
  1. S IBCIVAL=$O(^IBA(355.96,"AUNIQ",IBINS,IBCUVAL,0,IBCARE,IBPRVID,"")) I IBCIVAL'="" Q
  1. S IBCIVAL=$O(^IBA(355.96,"AUNIQ",IBINS,IBCUVAL,0,0,IBPRVID,"")) I IBCIVAL'="" Q
  1. S IBCIVAL="@"
  1. Q
  1. CUCHK ;Checks for existing Care Unit combination.
  1. I DIE="^IBA(355.91,",$D(^IBA(355.91,"AUNIQ",IBINS,$S(IBCIVAL="@":"*N/A*",IBCIVAL:IBCIVAL,1:$P(IB35591,U,10)),IBFORM,IBCARE,IBPRVID)) S IBCUCHK=1
  1. I DIE="^IBA(355.9,",$D(^IBA(355.9,"AUNIQ",IBPROV,IBINS,$S(IBCIVAL="@":"*N/A*",IBCIVAL:IBCIVAL,1:$P(IB3559,U,16)),IBFORM,IBCARE,IBPRVID)) S IBCUCHK=1
  1. Q
  1. MESSAGE ;Send message to user if unable to change Care Unit pointer(s).
  1. N IBC,IBCARE,IBCNT,IBCU,IBDATA,IBFORM,IBGROUP,IBGRP,IBINS,IBMSG,IBNAME
  1. N IBNCNT,IBNETNM,IBNME,IBNMSPC,IBNUM,IBPARAM,IBPRV,IBPRVID,IBTST,IBTXT
  1. N XMDUZ,XMERR,XMSUB,XMTEXT,XMY
  1. S XMSUB="PROVIDER ID CARE UNIT POINTERS INVALID"
  1. I DUZ="" N DUZ S DUZ=.5 ; if user not defined set to postmaster
  1. S XMDUZ=DUZ,XMTEXT="IBTXT"
  1. S IBPARAM("FROM")="PATCH IB*2.0*279 PRE-INIT"
  1. S IBGROUP="IB EDI SUPERVISOR"
  1. S IBGRP=$O(^XMB(3.8,"B",IBGROUP,"")) I IBGRP D ; billing group defined
  1. . I +$P($G(^XMB(3.8,IBGRP,1,0)),U,4)'>0 Q ; no members defined
  1. . S XMY("G."_IBGROUP)="" ; send message to the group.
  1. S XMY(DUZ)="" ; send message to user
  1. S IBTST=".TEST.MIR.TST.MIRROR.TRAIN." ; various test names
  1. S IBNETNM=$G(^XMB("NETNAME"))
  1. I IBNETNM'="",('$F(IBTST,"."_$P(IBNETNM,".",1)_".")) S XMY("PHELPS,TY@DOMAIN.EXT")=""
  1. S IBC=0
  1. S IBC=IBC+1,IBTXT(IBC)="This message has been sent by patch IB*2.0*279 at the completion of"
  1. S IBC=IBC+1,IBTXT(IBC)="the pre-init routine."
  1. S IBC=IBC+1,IBTXT(IBC)=" "
  1. S IBC=IBC+1,IBTXT(IBC)="The Care Unit pointer values could not be corrected automatically for the"
  1. S IBC=IBC+1,IBTXT(IBC)="following Provider ID entries. These entries need to be deleted or modified"
  1. S IBC=IBC+1,IBTXT(IBC)="by choosing INSURANCE CO IDS from the Provider ID Maintenance [IBCE PROVIDER"
  1. S IBC=IBC+1,IBTXT(IBC)="MAINT] menu option. If there is only one entry with the combination"
  1. S IBC=IBC+1,IBTXT(IBC)="selected, then choose Edit an ID Record and accept all the defaults. The"
  1. S IBC=IBC+1,IBTXT(IBC)="Care Unit combination pointer will be corrected. If there are two (2)"
  1. S IBC=IBC+1,IBTXT(IBC)="identical entries, and you are unable to determine which one needs to be"
  1. S IBC=IBC+1,IBTXT(IBC)="corrected, then delete both entries and then re-enter the data. If you are"
  1. S IBC=IBC+1,IBTXT(IBC)="able to distinguish which entry is the invalid one, then you can either edit"
  1. S IBC=IBC+1,IBTXT(IBC)="the Care Unit to a new one which does not create a duplicate combination or"
  1. S IBC=IBC+1,IBTXT(IBC)="you may delete it. It is important that the invalid entry NOT be left"
  1. S IBC=IBC+1,IBTXT(IBC)="unchanged on the system."
  1. S IBC=IBC+1,IBTXT(IBC)=" "
  1. S IBC=IBC+1,IBTXT(IBC)="INSURANCE CO."
  1. S IBC=IBC+1,IBTXT(IBC)=" PROVIDER ID TYPE CARE"
  1. S IBC=IBC+1,IBTXT(IBC)=" PROVIDER FORM TYPE CARE UNIT ID#"
  1. S IBC=IBC+1,IBTXT(IBC)="==============================================================================="
  1. S IBNMSPC=" "
  1. S IBCNT=0,IBINS=""
  1. F S IBINS=$O(^TMP($J,"IB20P279",IBINS)) Q:IBINS="" D
  1. . S IBC=IBC+1,IBTXT(IBC)=" "
  1. . S IBC=IBC+1,IBTXT(IBC)=IBINS
  1. . S IBPRV=""
  1. . F S IBPRV=$O(^TMP($J,"IB20P279",IBINS,IBPRV)) Q:IBPRV="" D
  1. .. S IBC=IBC+1,IBTXT(IBC)=" "_IBPRV
  1. .. S IBNAME=""
  1. .. F S IBNAME=$O(^TMP($J,"IB20P279",IBINS,IBPRV,IBNAME)) Q:IBNAME="" D
  1. ... S IBNME=$E(IBNAME_" ",1,24)_" "
  1. ... S IBNCNT=0
  1. ... S IBNUM=""
  1. ... F S IBNUM=$O(^TMP($J,"IB20P279",IBINS,IBPRV,IBNAME,IBNUM)) Q:IBNUM="" D
  1. .... S IBDATA=$G(^TMP($J,"IB20P279",IBINS,IBPRV,IBNAME,IBNUM)) I IBDATA="" Q
  1. .... S IBFORM=$P(IBDATA,U,4),IBFORM=$E($S(IBFORM=1:"UB-92",IBFORM=2:"HCFA",1:"BOTH")_" ",1,5)_" "
  1. .... S IBCARE=$P(IBDATA,U,5),IBCARE=$E($S(IBCARE=1:"INPT",IBCARE=2:"OUTPT",1:"INPT/OUTPT")_" ",1,10)_" "
  1. .... S IBCU=$P($G(^IBA(355.95,$P($G(^IBA(355.96,$P(IBDATA,U,3),0)),"^",1),0)),"^",1),IBCU=$E(IBCU_" ",1,16)_" "
  1. .... S IBPRVID=$E($P(IBDATA,U,7)_" ",1,14)
  1. .... S IBC=IBC+1,IBTXT(IBC)=" "_$S(IBNCNT:IBNMSPC,1:IBNME)_IBFORM_IBCARE_IBCU_IBPRVID
  1. .... S IBCNT=IBCNT+1
  1. .... I 'IBNCNT S IBNCNT=1
  1. S IBC=IBC+1,IBTXT(IBC)=" "
  1. S IBC=IBC+1,IBTXT(IBC)=" "
  1. S IBC=IBC+1,IBTXT(IBC)="Total records needing to be modified: "_IBCNT_"."
  1. D SENDMSG^XMXAPI(XMDUZ,XMSUB,XMTEXT,.XMY,.IBPARAM,"","")
  1. S IBMSG(1)=" "
  1. S IBMSG(2)="******************************************************************************"
  1. S IBMSG(3)="** Provider ID Care Unit clean up message "_$S($D(XMERR):"not sent due to error in",1:"sent to the ")
  1. I $D(XMERR) S IBMSG(4)="** message set up. Dumping message to screen."
  1. I '$D(XMERR) S IBMSG(3)=IBMSG(3)_$S(DUZ=.5:"postmaster",1:"user")_$S('$D(XMY("G.IB EDI SUPERVISOR")):".",1:"")
  1. I '$D(XMERR) S IBMSG(4)=$S($D(XMY("G.IB EDI SUPERVISOR")):"** and the IB EDI SUPERVISOR mail group.",1:"** Please forward message to your billing staff for action.")
  1. S IBMSG(5)="******************************************************************************"
  1. D BMES^XPDUTL(.IBMSG)
  1. I $D(XMERR) D BMES^XPDUTL(" "),BMES^XPDUTL(.IBTXT)
  1. K ^TMP($J,"IB20P279")
  1. Q
  1. COMPLETE ; display message that step has completed
  1. D BMES^XPDUTL("Step complete.")
  1. Q
  1. END ; display message that pre-init has completed successfully
  1. D BMES^XPDUTL("Pre-init complete")
  1. Q