| 1 | IB20PT1 ;ALB/AAS/NLR - Insurance post init stuff ; 2/22/93
 | 
|---|
| 2 |  ;;Version 2.0 ; INTEGRATED BILLING ;; 21-MAR-94
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | % I '$O(^IBA(355.3,0)) D  ; -- one time updates (ins policy alerady exists
 | 
|---|
| 5 |  .D MAIL ;      add new mail group
 | 
|---|
| 6 |  .D SITE ;      update site paramters
 | 
|---|
| 7 |  .D DEL ;       delete obsolete field in patient file ins. multiple
 | 
|---|
| 8 |  .;D PAT ;      x-ref patient file by ins. co., add hip pointer
 | 
|---|
| 9 |  .D INS ;       delete data, them dd for ins. address multiple in 36
 | 
|---|
| 10 |  .;D 399 ;      add ae x-ref to file 399
 | 
|---|
| 11 |  .;D INPT ;     load current inpatients into claims tracking
 | 
|---|
| 12 |  .D ^IB20PT6 ;  que off patient file, bill/claims file, CT updates
 | 
|---|
| 13 |  ;
 | 
|---|
| 14 |  Q
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 | DEL ; -- delete insurance address field from insurance type multiple
 | 
|---|
| 17 |  N DA,DIK,DIU,DIC
 | 
|---|
| 18 |  Q:'$D(^DD(2.312,5,0))
 | 
|---|
| 19 |  S DA=5,DA(1)=2.312,DIK="^DD("_DA(1)_"," D ^DIK
 | 
|---|
| 20 |  W !!,"<<< Deleting Obsolete field *INSURANCE ADDRESS from Patient File Data Dictionary"
 | 
|---|
| 21 | DELQ K DA,DIK,DIU
 | 
|---|
| 22 |  Q
 | 
|---|
| 23 |  ;
 | 
|---|
| 24 | INS ; -- delete address subfile
 | 
|---|
| 25 |  ;    first delete the data
 | 
|---|
| 26 |  N DIC,DIE,DA,DR,DIK,DIU
 | 
|---|
| 27 |  Q:'$D(^DD(36.02,0))
 | 
|---|
| 28 |  W !!,"<<< Deleting Obsolete *ADDRESS data from Insurance Company Entries"
 | 
|---|
| 29 |  W !!,"    I'll write a dot for each 100 entries"
 | 
|---|
| 30 |  S IBD0=0
 | 
|---|
| 31 |  F  S IBD0=$O(^DIC(36,IBD0)) Q:'IBD0  S IBD1=0 F  S IBD1=$O(^DIC(36,IBD0,2,IBD1)) Q:'IBD1  D  K ^DIC(36,IBD0,2)
 | 
|---|
| 32 |  .S DIK="^DIC(36,"_IBD0_",2,",DA=IBD1,DA(1)=IBD0
 | 
|---|
| 33 |  .D ^DIK
 | 
|---|
| 34 |  .K DA,DIC,DIK
 | 
|---|
| 35 |  .S IBCNT=$G(IBCNT)+1
 | 
|---|
| 36 |  .W:'(IBCNT#100) "."
 | 
|---|
| 37 |  .Q
 | 
|---|
| 38 |  ;
 | 
|---|
| 39 |  ; -- Now delete the dd
 | 
|---|
| 40 |  S DIU=36.02,DIU(0)="S" D EN^DIU2
 | 
|---|
| 41 |  W !!,"<<< Deleting Obsolete subfile *ADDRESS from Insurance Company File Data Dictionary"
 | 
|---|
| 42 | INSQ K DIU
 | 
|---|
| 43 |  Q
 | 
|---|
| 44 |  ;
 | 
|---|
| 45 | PAT ; -- create AB x-ref on patient file for all insurance co. pointers
 | 
|---|
| 46 |  W !!,"<<< Cross-referencing patient file by Insurance company and",!,"    Updating Health Insurance Policy Pointers"
 | 
|---|
| 47 |  W !!,"    I'll write a dot for each 100 entries"
 | 
|---|
| 48 |  D NOW^%DTC W !,"    Start time: " S Y=% D DT^DIQ
 | 
|---|
| 49 |  N DFN,IBI,IBCPOL,IBCDFND,DA,DR,DIE,DIC,IBCNT,IBCNTP,IBCNTPP
 | 
|---|
| 50 |  S (IBCNT,IBCNTP,IBCNTPP,DFN)=0
 | 
|---|
| 51 |  F  S DFN=$O(^DPT(DFN)) Q:'DFN  S IBCNT=IBCNT+1,IBI=0 F  S IBI=$O(^DPT(DFN,.312,IBI)) Q:'IBI  D
 | 
|---|
| 52 |  .W:'(IBCNTPP#100) "."
 | 
|---|
| 53 |  .S IBCDFND=$G(^DPT(DFN,.312,IBI,0))
 | 
|---|
| 54 |  .S ^DPT("AB",+IBCDFND,DFN,IBI)=""
 | 
|---|
| 55 |  .S ^DPT(DFN,.312,"B",+IBCDFND,IBI)=""
 | 
|---|
| 56 |  .Q:$P(IBCDFND,U,18)
 | 
|---|
| 57 |  .S IBCPOL=$$CHIP^IBCNSU(IBCDFND)
 | 
|---|
| 58 |  .Q:'IBCPOL
 | 
|---|
| 59 |  .S IBCNTPP=IBCNTPP+1
 | 
|---|
| 60 |  .S DA=IBI,DA(1)=DFN,DIE="^DPT("_DFN_",.312,"
 | 
|---|
| 61 |  .S DR="1.09////1;.18////"_IBCPOL
 | 
|---|
| 62 |  .D ^DIE K DA,DR,DIE,DIC
 | 
|---|
| 63 |  .Q
 | 
|---|
| 64 |  W !!,"<<< Health Insurance Policy information updated"
 | 
|---|
| 65 |  W !,"    there were ",IBCNTPP," Policies for ",IBCNT," Patients were updated"
 | 
|---|
| 66 |  W !,"    causing ",IBCNTP," Health Insurance Policies to be added"
 | 
|---|
| 67 |  D NOW^%DTC W !,"    Finish Time: " S Y=% D DT^DIQ
 | 
|---|
| 68 |  Q
 | 
|---|
| 69 |  ;
 | 
|---|
| 70 | 399 ; -- create new AE x-ref of file 399
 | 
|---|
| 71 |  N IBCIFN,IBCNT
 | 
|---|
| 72 |  W !!,"<<< Cross-referencing Bill/Claims file by Primary Insurer"
 | 
|---|
| 73 |  W !!,"    I'll write a dot for each 100 entries"
 | 
|---|
| 74 |  S IBCIFN=0,IBCNT=0
 | 
|---|
| 75 |  F  S IBCIFN=$O(^DGCR(399,IBCIFN)) Q:'IBCIFN  D
 | 
|---|
| 76 |  .I +$G(^DGCR(399,IBCIFN,"M")),$P($G(^(0)),"^",2) S ^DGCR(399,"AE",$P(^(0),"^",2),+^("M"),IBCIFN)=""
 | 
|---|
| 77 |  .S IBCNT=$G(IBCNT)+1 W:'(IBCNT#100) "."
 | 
|---|
| 78 |  Q
 | 
|---|
| 79 |  ;
 | 
|---|
| 80 | INPT ; -- load current inpatients into claims tracking
 | 
|---|
| 81 |  W !!,"<<< Loading current inpatients into Claims Tracking"
 | 
|---|
| 82 |  N WARD,DGPMDA,IBCNT,IB20
 | 
|---|
| 83 |  S WARD="",DGPDMA=0,IBCNT=0,IB20=1
 | 
|---|
| 84 |  F  S WARD=$O(^DGPM("CN",WARD)) Q:WARD=""  S DGPMDA=0 F  S DGPMDA=$O(^DGPM("CN",WARD,DGPMDA)) Q:'DGPMDA  D
 | 
|---|
| 85 |  .S DGPMP=""
 | 
|---|
| 86 |  .S DGPMA=$G(^DGPM(DGPMDA,0))
 | 
|---|
| 87 |  .S DFN=$P(DGPMA,"^",3)
 | 
|---|
| 88 |  .D INP^VADPT
 | 
|---|
| 89 |  .K IBNEW D INP^IBTRKR
 | 
|---|
| 90 |  .I $G(IBNEW) S IBCNT=IBCNT+1 W !,"    Patient ",$P(^DPT(DFN,0),U)," added to the Claims tracking module"
 | 
|---|
| 91 |  ;
 | 
|---|
| 92 |  W !!,"<<< ",IBCNT," Patients added to the Claims Tracking Module"
 | 
|---|
| 93 |  Q
 | 
|---|
| 94 |  ;
 | 
|---|
| 95 | MAIL ; -- add new mail group
 | 
|---|
| 96 |  ;Q:$D(^XMB(3.8,"B","IB NEW INSURANCE"))
 | 
|---|
| 97 |  S DLAYGO=3.8,DIC="^XMB(3.8,",DIC(0)="LX",DIC("DR")="4////PU;5////"_DUZ,X="IB NEW INSURANCE" D ^DIC K DIC I +Y>0 S IBCNMAIL=+Y
 | 
|---|
| 98 |  S ^XMB(3.8,+Y,2,0)="^^1^1^2900625^"
 | 
|---|
| 99 |  S ^XMB(3.8,+Y,2,1,0)="This mail group will receive notification whenever a new insurance policy is added."
 | 
|---|
| 100 |  W !!,"<<< Mail Group 'IB NEW INSURANCE' ",$S($P(Y,"^",3):"added...",1:"updated...")
 | 
|---|
| 101 |  W !!,"    Remember to add Members to this group"
 | 
|---|
| 102 |  Q
 | 
|---|
| 103 |  ;
 | 
|---|
| 104 | SITE ; -- setup ib site parameters
 | 
|---|
| 105 |  N DIE,DA,DR,DIC,DD,DO S DR=""
 | 
|---|
| 106 |  W !!,"<<< Updating new site parameters automatically!"
 | 
|---|
| 107 |  ;
 | 
|---|
| 108 |  ; -- if no entry add one
 | 
|---|
| 109 |  I '$D(^IBE(350.9,1,0)) S (X,DINUM)=1,DIC="^IBE(350.9,",DIC(0)="L" K DD,DO D FILE^DICN K DIC S DR=".03///1;.02////^S X=+$$SITE^VASITE;.08///2;.09///IB ERROR;",DA=1,DIE="^IBE(350.9," D ^DIE K DR,DA,DIE,DIC
 | 
|---|
| 110 |  ;
 | 
|---|
| 111 |  S DA=1,DIE="^IBE(350.9,"
 | 
|---|
| 112 |  S DR="4.01////1;4.04////"_$G(IBCNMAIL)_";6.01///^S X=DT;6.02////1;6.02////1;6.03////1;6.04////1;6.05////1;6.06////1;6.07///^S X=DT;6.08////1;6.09////5;6.13////1;6.14////5;6.18////1;6.19////1"
 | 
|---|
| 113 |  D ^DIE K DIE,DA,DR,DIC,DD,DO W !
 | 
|---|
| 114 |  Q
 | 
|---|