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

IB20P656.m

Go to the documentation of this file.
  1. IB20P656 ;/Albany - IB*2.0*656 POST INSTALL;07/25/19 2:10pm
  1. ;;2.0;Integrated Billing;**656**;Mar 20, 1995;Build 17
  1. ;Per VA Directive 6402, this routine should not be modified.
  1. ; Reference to ^DIC(49 supported by IA# 10093
  1. ; Reference to ^PRCA(430.2 supported by IA# 594
  1. Q
  1. ;
  1. POSTINIT ;Post Install for IB*2.0*656
  1. D BMES^XPDUTL(" >> Starting the Post-Initialization routine for IB*2.0*656 ")
  1. ; Adding AR CATEGORIES and REVENUE SOURCE CODES
  1. D UPDIB ; Update ^IBE fields
  1. D IBUPD
  1. D UPDACT
  1. D UPDDGFEE
  1. D DGSET
  1. D NEWCREAS
  1. D SRVUPD
  1. D BMES^XPDUTL(" >> End of the Post-Initialization routine for IB*2.0*656")
  1. Q
  1. ;
  1. UPDIB ; Update IBE field(s)
  1. N IBSL2,IBSL2TXT
  1. N LOOP,LIEN,IBDATA
  1. N X,Y,DIE,DA,DR,DTOUT,DATA,IBDATAB
  1. F LOOP=1:1 S IBDATA=$T(IBSET+LOOP) Q:$P(IBDATA,";",3)="END" D
  1. . ;Extract the new ACTION TYPE
  1. . Q:IBDATA="" ;go to next entry if Category is not to be updated.
  1. . S LIEN=$O(^IBE(350.1,"B",$P(IBDATA,";",3),""))
  1. . S DR=""
  1. . S IBSL2TXT=$P(IBDATA,";",4)
  1. . S IBSL2="S IBDESC="_$C(34)_IBSL2TXT_$C(34)
  1. . S DR=DR_"20///"_IBSL2
  1. . S DIE="^IBE(350.1,",DA=LIEN
  1. . D ^DIE
  1. K DR ;Clear update array before next use
  1. Q
  1. ;
  1. UPDDGFEE ; Deactivate FEE Service Entry (inactivate flag to YES)
  1. ;DG FEE SERVICE (OPT) NEW
  1. ; LOOKUP - FEE SERVICE/OUTPATIENT
  1. ; LOGIC - S IBDESC="FEE OPT COPAYMENT"
  1. N DG,DGN,DGU,DGC,DR,LIEN
  1. S DGN="DG FEE SERVICE (OPT) NEW"
  1. S DGC="DG FEE SERVICE (OPT) CANCEL"
  1. S DGU="DG FEE SERVICE (OPT) UPDATE"
  1. F DG=DGC,DGU,DGN S LIEN=$O(^IBE(350.1,"B",DG,"")) D
  1. .S DR=".12////1;"
  1. .S:DG=DGN DR=DR_".08///FEE SERVICE/OUTPATIENT" ; USER LOOKUP NAME
  1. .S DIE="^IBE(350.1,",DA=LIEN
  1. .D ^DIE
  1. Q
  1. ;
  1. DGSET ; SET LOGIC
  1. N DR,LIEN
  1. N IBSL2,IBSL2TXT
  1. S IBSL2TXT="FEE OPT COPAYMENT"
  1. S IBSL2="S IBDESC="_$C(34)_IBSL2TXT_$C(34)
  1. S LIEN=$O(^IBE(350.1,"B","DG FEE SERVICE (OPT) NEW",""))
  1. S DR="20///"_IBSL2
  1. S DIE="^IBE(350.1,",DA=LIEN
  1. D ^DIE
  1. K DR ;Clear update array before next use
  1. S DR=""
  1. Q
  1. ;
  1. IBUPD ; CC URGENT CARE Category
  1. N LOOP,LIEN,IBDATA,IBSERVIC
  1. N X,Y,DIE,DA,DR,DTOUT,DATA,IBDATAB
  1. ;
  1. N IBSL2,IBSL2TXT
  1. N CANIEN,UPDIEN,SVCIEN,CHGIEN
  1. ;
  1. ;Get the MAS SERVICE IEN POINTER
  1. S IBSERVIC=$$GET1^DIQ(350.9,"1,",1.14,"I")
  1. ;
  1. S IBSL2TXT="CC URGENT OPT COPAY"
  1. S IBSL2="S IBDESC="_$C(34)_IBSL2TXT_$C(34)
  1. ;
  1. ; Grab all of the entries to update
  1. D MES^XPDUTL(" -> Adding new CC URGENT CARE Action Types (file 350.1).")
  1. S Y=-1
  1. F LOOP=1:1 S IBDATA=$T(IBDDAT+LOOP) Q:$P(IBDATA,";",3)="END" D
  1. . S CHGIEN=$O(^PRCA(430.2,"B",$P(IBDATA,";",5),"")) ; CHARGE CATEGORY -> IEN (used as pointer)
  1. . ;Extract the new ACTION TYPE to be added.
  1. . ;Store in array for adding to the file (#350.1).
  1. . Q:IBDATA="" ;go to next entry if Category is not to be updated.
  1. . ;
  1. . S LIEN=$O(^IBE(350.1,"B",$P(IBDATA,";",3),""))
  1. . ; File the update along with inactivate the ACTION TYPE
  1. . S DLAYGO=350.1,DIC="^IBE(350.1,",DIC(0)="L",X=$P(IBDATA,";",3)
  1. . I '+LIEN D FILE^DICN S LIEN=+Y K DIC,DINUM,DLAYGO
  1. . S DR=".02///"_$P(IBDATA,";",4) ; ABBREVIATION
  1. . S DR=DR_";.03///"_$G(CHGIEN) ; CHARGE CATEGORY
  1. . S DR=DR_";.04////"_IBSERVIC ; SERVICE
  1. . S DR=DR_";.05///"_$P(IBDATA,";",7) ; SEQ. #
  1. . S DR=DR_";.06///"_$P(IBDATA,";",8) ; CANCEL ACTION TYPE
  1. . S DR=DR_";.07///"_$P(IBDATA,";",9) ; UPDATE ACTION TYPE
  1. . S DR=DR_";.08///"_$P(IBDATA,";",10) ; USER LOOKUP NAME
  1. . S DR=DR_";.09////"_$P(IBDATA,";",11) ; NEW ACTION TYPE
  1. . S DR=DR_";.1///"_$P(IBDATA,";",12) ; PLACE ON HOLD
  1. . S DR=DR_";.11///"_$P(IBDATA,";",13) ; BILLING GROUP
  1. . S:$P(IBDATA,";",14)="IBSL2" DR=DR_";20////"_IBSL2 ;SET LOGIC
  1. . ;
  1. . S DIE="^IBE(350.1,",DA=LIEN
  1. . D ^DIE
  1. . ;<re-index new entry here>
  1. .S DA=LIEN,DIK="^IBE(350.1," D IX^DIK
  1. .S DR=""
  1. Q
  1. ;
  1. ;350.1,.01 3 NAME 0;1 FREE TEXT (Required)
  1. ;350.1,.02 4 ABBREVIATION 0;2 FREE TEXT
  1. ;350.1,.03 5 CHARGE CATEGORY 0;3 POINTER TO ACCOUNTS RECEIVABLE CATEGORY FILE (#430.2)
  1. ;350.1,.04 6 SERVICE 0;4 POINTER TO DIC FILE (#49)
  1. ;350.1,.05 7 SEQUENCE NUMBER 0;5 SET
  1. ;350.1,.06 8 CANCELLATION ACTION TYPE 0;6 POINTER TO IB ACTION TYPE FILE (#350.1)
  1. ;350.1,.07 9 UPDATE ACTION TYPE 0;7 POINTER TO IB ACTION TYPE FILE (#350.1)
  1. ;350.1,.08 10 USER LOOKUP NAME 0;8 FREE TEXT
  1. ;350.1,.09 11 NEW ACTION TYPE 0;9 POINTER TO IB ACTION TYPE FILE (#350.1
  1. ;350.1,.1 12 PLACE ON HOLD 0;10 SET
  1. ;350.1,.11 13 BILLING GROUP 0;11 SET
  1. ;350.1,10 14 PARENT TRACE LOGIC 10;E1,245 MUMPS
  1. ;350.1,20 15 SET LOGIC 20;E1,245 MUMPS
  1. ;350.1,30 16 FULL PROFILE LOGIC 30;E1,245 MUMPS
  1. ;350.1,40 17 ELIGIBILITY LOGIC 40;E1,245 MUMPS
  1. ;
  1. IBDDAT ; Fee Service to inactivate
  1. ;;CC URGENT CARE (OPT) CANCEL;CAN CCUC;CC URGENT CARE;BUSINESS OFFICE;CANCEL;CC URGENT CARE (OPT) CANCEL;CC URGENT CARE (OPT) UPDATE;;CC URGENT CARE (OPT) NEW;;OPT COPAY
  1. ;;CC URGENT CARE (OPT) UPDATE;UPD CCUC;CC URGENT CARE;BUSINESS OFFICE;UPDATE;CC URGENT CARE (OPT) CANCEL;CC URGENT CARE (OPT) UPDATE;;CC URGENT CARE (OPT) NEW;;OPT COPAY
  1. ;;CC URGENT CARE (OPT) NEW;CCUC CO;CC URGENT CARE;BUSINESS OFFICE;NEW;CC URGENT CARE (OPT) CANCEL;CC URGENT CARE (OPT) UPDATE;CC URGENT CARE;CC URGENT CARE (OPT) NEW;1;OPT COPAY;IBSL2
  1. ;;END
  1. IBSET ; SET LOGIC
  1. ;;CC (OPT) NEW;CC OPT COPAY
  1. ;;CHOICE (OPT) NEW;CHOICE OPT COPAY
  1. ;;CCN (OPT) NEW;CCN OPT COPAY
  1. ;;CC MTF (OPT) NEW;CC MTF OPT COPAY
  1. ;;END
  1. UPDACT ; Update the Action Type Fields for the new Action Types
  1. ;
  1. N IBDATA,IBLOOP,IBIEN,IBACTNM
  1. N X,Y,DIE,DA,DR,DTOUT,DATA ;^DIE variables
  1. D MES^XPDUTL(" -> Updating the Action Type Fields in file 350.1 ...")
  1. F IBLOOP=2:1 S IBDATA=$T(UPDDAT+IBLOOP) Q:IBDATA=" ;;END" D
  1. . S IBACTNM=$P(IBDATA,";",3) ;Name of the Action Type
  1. . ;Retrieve the IEN.
  1. . S IBIEN=$O(^IBE(350.1,"B",IBACTNM,""))
  1. . I IBIEN="" D MES^XPDUTL(" -> Action Type "_IBACTNM_" Is not in the Action Type file.") Q
  1. . ;File the update
  1. . S DR=".06///"_$P(IBDATA,";",4)_";"
  1. . S DR=DR_".07///"_$P(IBDATA,";",5)_";"
  1. . S DR=DR_".09///"_$P(IBDATA,";",6)
  1. . Q:DR=""
  1. . S DIE="^IBE(350.1,",DA=IBIEN
  1. . D ^DIE
  1. . K DR ;Clear update array before next use
  1. D MES^XPDUTL(" -> Update completed ...")
  1. ;Clear the array
  1. Q
  1. ;
  1. UPDDAT ;
  1. ;;Action Type;Cancellation Action;Update Action;New Action
  1. ;;CC URGENT CARE (OPT) CANCEL;CC URGENT CARE (OPT) CANCEL;CC URGENT CARE (OPT) UPDATE;CC URGENT CARE (OPT) NEW
  1. ;;CC URGENT CARE (OPT) UPDATE;CC URGENT CARE (OPT) CANCEL;CC URGENT CARE (OPT) UPDATE;CC URGENT CARE (OPT) NEW
  1. ;;CC URGENT CARE (OPT) NEW;CC URGENT CARE (OPT) CANCEL;CC URGENT CARE (OPT) UPDATE;CC URGENT CARE (OPT) NEW
  1. ;;END
  1. NEWCREAS ; New Cancellation Reasons
  1. N LOOP,LIEN,IBDATA,IBCNNM
  1. N X,Y,DIE,DA,DR,DTOUT,DATA,IBDATAB
  1. ;
  1. N CANIEN,UPDIEN,SVCIEN,CHGIEN
  1. ;
  1. ; Grab all of the entries to update
  1. D MES^XPDUTL(" -> Adding new Cancellation Reasons to the IB CHARGE REMOVE REASON file (350.3).")
  1. S Y=-1
  1. F LOOP=1:1 S IBDATA=$T(REASDAT+LOOP) Q:$P(IBDATA,";",3)="END" D
  1. . S DR=""
  1. . ;Extract the new ACTION TYPE to be added.
  1. . ;Store in array for adding to the file (#350.1).
  1. . Q:IBDATA="" ;go to next entry if Category is not to be updated.
  1. . ;
  1. . S IBCNNM=$P(IBDATA,";",3)
  1. . S LIEN=$O(^IBE(350.3,"B",IBCNNM,""))
  1. . ; File the update along with inactivate the ACTION TYPE
  1. . S DLAYGO=350.3,DIC="^IBE(350.3,",DIC(0)="L",X=IBCNNM
  1. . I '+LIEN D FILE^DICN S LIEN=+Y K DIC,DINUM,DLAYGO
  1. . S DR=".02////"_$P(IBDATA,";",4) ; ABBREVIATION
  1. . S DR=DR_";.03////"_$P(IBDATA,";",5) ; LIMIT
  1. . ;
  1. . S DIE="^IBE(350.3,",DA=LIEN
  1. . D ^DIE
  1. . ;<re-index new entry here>
  1. . S DA=LIEN,DIK="^IBE(350.3," D IX^DIK
  1. . K DR
  1. Q
  1. ;
  1. ;350.3,.01 3 NAME 0;1 FREE TEXT (Required)
  1. ;350.3,.02 4 ABBREVIATION 0;2 FREE TEXT
  1. ;350.3,.03 5 LIMIT 0;3 Code (3 - Generic)
  1. ;
  1. REASDAT ; Fee Service to inactivate
  1. ;;UC - ENTERED IN ERROR;UCERROR;3
  1. ;;UC - CHANGE IN ELIGIBILITY;UCEC;3
  1. ;;END
  1. Q
  1. ;
  1. SRVUPD ; Update the SERVICE/SECTION Pointer for any CC Action Type to either the MAS SERVICE POINTER IB Site Parameter
  1. ; or to the PHARMACY Service (for RXs).
  1. ;
  1. N IBI,IBSTART,IBEND,IBSERVIC,IBSRV,IBDATA,IBPHARM,IBSTORE,IBERROR
  1. N X,Y,DIE,DA,DR,DTOUT,DATA
  1. ;
  1. ;Retrieve the first CC Action type IEN
  1. S IBSTART=$O(^IBE(350.1,"B","CHOICE (INPT) CANCEL",""))
  1. ;
  1. ;Retrieve the last Non Urgent Care CC Action Type
  1. S IBEND=$O(^IBE(350.1,"B","LTC CHOICE OPT RESPITE UPDATE",""))
  1. ;
  1. ;Get the MAS SERVICE IEN POINTER
  1. S IBSERVIC=$$GET1^DIQ(350.9,"1,",1.14,"I")
  1. ;
  1. ;Get the PHARMACY service IEN
  1. S IBERROR=""
  1. S IBPHARM=$$FIND1^DIC(49,,"X","PHARMACY","B",,"IBERROR")
  1. ;
  1. ;Loop through and update any entry that has a NULL Service to be the MAS SERVICE POINTER (1.14) in the IB SITE PARAMETER File (350.9)
  1. F IBI=IBSTART:1:IBEND D
  1. . S IBDATA=$G(^IBE(350.1,IBI,0)),IBSRV=$P(IBDATA,U,4)
  1. . S IBSTORE=$S($P(IBDATA,U,11)=5:IBPHARM,1:IBSERVIC)
  1. . S DR=".04////"_IBSTORE ; Set the service
  1. . ;
  1. . S DIE="^IBE(350.1,",DA=IBI
  1. . D ^DIE
  1. . ;
  1. Q