| [613] | 1 | IBCEP5C ;ALB/TMP - EDI UTILITIES for provider ID ;02-NOV-00
 | 
|---|
 | 2 |  ;;2.0;INTEGRATED BILLING;**137,239,232,320,348,349**;21-MAR-94;Build 46
 | 
|---|
 | 3 |  ;;Per VHA Directive 2004-038, this routine should not be modified.
 | 
|---|
 | 4 |  ;
 | 
|---|
 | 5 | COMBOK(IBFILE,IBDAT,IBALL,IBF) ; Generic ask if conflict, should id rec still
 | 
|---|
 | 6 |  ;  be added?
 | 
|---|
 | 7 |  ; IBFILE = 355.9 or 355.91 for the file being edited
 | 
|---|
 | 8 |  ; IBDAT = var ptr prov ien (355.9) ^ pc to check ^
 | 
|---|
 | 9 |  ;           ins co ien or *ALL* ^ care unit or *N/A* ^
 | 
|---|
 | 10 |  ;           form type code ^ care type code ^ prov id type ptr
 | 
|---|
 | 11 |  ; IBALL = flag:
 | 
|---|
 | 12 |  ;   0 = Individual entry selected - check for existing ALL entry
 | 
|---|
 | 13 |  ;   1 = 'ALL' selected - check for existing individual ones
 | 
|---|
 | 14 |  ; IBF = 1 if deleting from ins co-related options, ""
 | 
|---|
 | 15 |  ;       from provider-related options
 | 
|---|
 | 16 |  ; Returns 1 if ok to continue, 0 if not
 | 
|---|
 | 17 |  ;
 | 
|---|
 | 18 |  N X,Y,Q,DIR,Z,IBD,IBDD,IBOK,IBSPEC
 | 
|---|
 | 19 |  S IBALL=$G(IBALL),IBOK=1
 | 
|---|
 | 20 |  S IBD=+$P(IBDAT,U,2),IBDD=$S(IBD=4:5,1:4)
 | 
|---|
 | 21 |  F Z=2:1:6 D
 | 
|---|
 | 22 |  . I IBD'=Z,$P(IBDAT,U,Z+1)'="" S Z(Z)=$P(IBDAT,U,Z+1) Q
 | 
|---|
 | 23 |  . I IBD=Z S IBD(Z)=$P(IBDAT,U,Z+1)
 | 
|---|
 | 24 |  K IBSPEC
 | 
|---|
 | 25 |  I IBALL D  ; Check for specific
 | 
|---|
 | 26 |  . N X0,X1
 | 
|---|
 | 27 |  . S X1=0
 | 
|---|
 | 28 |  . F  S X1=$O(^IBA(IBFILE,"AC",$S(IBFILE=355.9:Z(6),1:Z(2)),$S(IBFILE=355.9:Z(2),1:Z(6)),$S(IBFILE=355.9:$P(IBDAT,U),1:Z(3)),X1)) Q:'X1  S X0=$G(^IBA(IBFILE,X1,0)) I $S(IBFILE=355.9:$P(X0,U,3)=Z(3),1:1) D
 | 
|---|
 | 29 |  .. I $P(X0,U,IBD)'=IBD(IBD),"12"[$P(X0,U,IBD),($P(X0,U,IBDD)=Z(IBDD)!($P(X0,U,IBDD)=0)!(Z(IBDD)=0&(IBD(IBD)=0))) S X1($P(X0,U,IBD))=X1 Q
 | 
|---|
 | 30 |  .. I IBD(IBD)=0,Z(IBDD)=0 S X1(0)=X1
 | 
|---|
 | 31 |  . S X0=0 F  S X0=$O(X1(X0)) Q:X0=""  D
 | 
|---|
 | 32 |  .. S IBSPEC=$S($G(IBSPEC)'="":IBSPEC_"  ",1:"")_$P($S(IBD=4:"UB-04^CMS-1500",1:"INPT^OUTPT"),U,X0)_" ONLY"
 | 
|---|
 | 33 |  . I $D(X1(0)) S IBSPEC=$S($G(IBSPEC)'="":IBSPEC_"  ",1:"")_$S(IBD=4:"BOTH UB-04 and CMS-1500 form type  AND  BOTH INPT and OUTPT care type",1:"BOTH INPT and OUTPT care type  AND  BOTH UB-04 and CMS-1500 form type")
 | 
|---|
 | 34 |  . ;
 | 
|---|
 | 35 |  I 'IBALL D
 | 
|---|
 | 36 |  . N X0,X1
 | 
|---|
 | 37 |  . S X1=0
 | 
|---|
 | 38 |  . F  S X1=$O(^IBA(IBFILE,"AC",$S(IBFILE=355.9:Z(6),1:Z(2)),$S(IBFILE=355.9:Z(2),1:Z(6)),$S(IBFILE=355.9:$P(IBDAT,U),1:Z(3)),X1)) Q:'X1  D
 | 
|---|
 | 39 |  .. S X0=$G(^IBA(IBFILE,X1,0))
 | 
|---|
 | 40 |  .. I $S(IBFILE=355.9:$P(X0,U,16)=Z(3),1:1),$P(X0,U,IBD)=0,$S($P(X0,U,IBDD)=Z(IBDD):1,1:$P(X0,U,IBDD)=0) S IBSPEC=""
 | 
|---|
 | 41 |  ;
 | 
|---|
 | 42 |  I $D(IBSPEC) D
 | 
|---|
 | 43 |  . N X0,X1,TEXT,IBWHAT
 | 
|---|
 | 44 |  . S IBWHAT=$S(IBFILE=355.9:$S($G(IBF):"INS CO AND PROVIDER",1:"PROVIDER"),1:"INSURANCE CO")
 | 
|---|
 | 45 |  . S X0=$S($D(IBD(4)):"UB-04^CMS-1500",1:"INPT^OUTPT")
 | 
|---|
 | 46 |  . S X1=$S($D(IBD(4)):"FORM TYPE",1:"CARE TYPE")
 | 
|---|
 | 47 |  . S DIR(0)="YA"
 | 
|---|
 | 48 |  . S TEXT(1)="WARNING ... POTENTIAL CONFLICT DETECTED!!"
 | 
|---|
 | 49 |  . S TEXT(2)=" YOUR NEW COMBINATION APPLIES TO "_$S(IBALL:"BOTH "_$S(IBD=4:"FORM ",1:"INPT AND OUTPT CARE ")_"TYPES",1:"ONLY "_$P(X0,U,IBD(IBD))_" "_X1)
 | 
|---|
 | 50 |  . S TEXT(3)=" THIS SAME COMBINATION ALREADY EXISTS FOR THE "_IBWHAT_" & "_$S('IBALL:"ALL "_X1_"S",1:"SPECIFIC "_X1_"(S):")
 | 
|---|
 | 51 |  . S:IBSPEC'="" TEXT(4)=$J("",4)_IBSPEC
 | 
|---|
 | 52 |  . S TEXT($S($D(TEXT(4)):5,1:4))=" "
 | 
|---|
 | 53 |  . S DIR("A")="ARE YOU SURE YOU STILL WANT TO ADD THIS RECORD?: "
 | 
|---|
 | 54 |  . S DIR("?",1)=" "
 | 
|---|
 | 55 |  . S DIR("?",2)="This combination appears to be conflicting with one(s) already on file."
 | 
|---|
 | 56 |  . S DIR("?",3)="It has already been defined for the "_$$LOW^XLFSTR(IBWHAT)_" for "_$S(IBALL:"at least 1 specific ",1:"ALL ")_$S(IBD=4:"form",1:"care")_" type"_$S(IBALL:".",1:"s.")
 | 
|---|
 | 57 |  . S DIR("?")="Respond NO to reject this conflicting record or YES to continue on to add it in spite of the apparent conflict.",DIR("B")="NO"
 | 
|---|
 | 58 |  . W !! F Q=1:1 Q:'$D(TEXT(Q))  W TEXT(Q),!
 | 
|---|
 | 59 |  . D ^DIR K DIR W !
 | 
|---|
 | 60 |  . S IBOK=(Y=1)
 | 
|---|
 | 61 |  Q IBOK
 | 
|---|
 | 62 |  ;
 | 
|---|
 | 63 | CAREUN ;Called from NEWID^IBCEP5B to check for existing record combination
 | 
|---|
 | 64 |  N DIR
 | 
|---|
 | 65 |  I IBFILE'=355.9 D
 | 
|---|
 | 66 |  . S IB35591(.03)=IB3559(.03)
 | 
|---|
 | 67 |  . I "0"[IB35591(.03) S IB35591(.03)="*N/A*"
 | 
|---|
 | 68 |  . I IB35591(.03)'="*N/A*" S IB35591(.03)=$O(^IBA(355.96,"AUNIQ",IBINS,IB3559(.03),IB3559(.04),IB3559(.05),IBPTYP,"")) I 'IB35591(.03) D
 | 
|---|
 | 69 |  .. S IB35591(.03)=$O(^IBA(355.96,"AUNIQ",IBINS,IB3559(.03),IB3559(.04),0,IBPTYP,"")) I 'IB35591(.03) D
 | 
|---|
 | 70 |  ... S IB35591(.03)=$O(^IBA(355.96,"AUNIQ",IBINS,IB3559(.03),0,IB3559(.05),IBPTYP,"")) I 'IB35591(.03) D
 | 
|---|
 | 71 |  .... S IB35591(.03)=$O(^IBA(355.96,"AUNIQ",IBINS,IB3559(.03),0,0,IBPTYP,""))
 | 
|---|
 | 72 |  . I $D(^IBA(355.91,"AUNIQ",IBINS,IB35591(.03),IB3559(.04),IB3559(.05),IBPTYP)) D  Q
 | 
|---|
 | 73 |  .. S DIR(0)="EA",DIR("A",1)="This record already exists - NOT ADDED",DIR("A")="PRESS the ENTER key to continue" W ! D ^DIR K DIR,IB3559,IB35591 W !
 | 
|---|
 | 74 |  I IBFILE=355.9 D
 | 
|---|
 | 75 |  . S IB35591(.03)=IB3559(.03)
 | 
|---|
 | 76 |  . I "0"[IB35591(.03) S IB35591(.03)="*N/A*"
 | 
|---|
 | 77 |  . I IB35591(.03)'="*N/A*" S IB35591(.03)=$O(^IBA(355.96,"AUNIQ",IBINS,IB3559(.03),IB3559(.04),IB3559(.05),IBPTYP,"")) I 'IB35591(.03) D
 | 
|---|
 | 78 |  .. S IB35591(.03)=$O(^IBA(355.96,"AUNIQ",IBINS,IB3559(.03),IB3559(.04),0,IBPTYP,"")) I 'IB35591(.03) D
 | 
|---|
 | 79 |  ... S IB35591(.03)=$O(^IBA(355.96,"AUNIQ",IBINS,IB3559(.03),0,IB3559(.05),IBPTYP,"")) I 'IB35591(.03) D
 | 
|---|
 | 80 |  .... S IB35591(.03)=$O(^IBA(355.96,"AUNIQ",IBINS,IB3559(.03),0,0,IBPTYP,""))
 | 
|---|
 | 81 |  . I $D(^IBA(355.9,"AUNIQ",IBPRV,IBINS,IB35591(.03),IB3559(.04),IB3559(.05),IBPTYP)) D  Q
 | 
|---|
 | 82 |  .. S DIR(0)="EA",DIR("A",1)="This record already exists - NOT ADDED",DIR("A")="PRESS the ENTER key to continue" W ! D ^DIR K DIR,IB3559,IB35591 W !
 | 
|---|
 | 83 |  Q
 | 
|---|
 | 84 |  ;
 | 
|---|
 | 85 | DEL(IBFILE,IBDA,IBF) ; Delete prov specific ID's
 | 
|---|
 | 86 |  ; IBFILE = 355.9 or 355.91 for the file
 | 
|---|
 | 87 |  ; IBDA = ien of entry in file IBFILE
 | 
|---|
 | 88 |  ; IBF = 1 if deleting from ins co-related options, ""
 | 
|---|
 | 89 |  ;       from prov-related options
 | 
|---|
 | 90 |  N IB0,IBLAST,IBX,DIK,DA,DIR,X,Y,Z
 | 
|---|
 | 91 |  F Z=1:1:3 L +^IBA(IBFILE,IBDA):5 Q:$T
 | 
|---|
 | 92 |  I '$T D  G DELQ
 | 
|---|
 | 93 |  . W !,"RECORD IS LOCKED BY ANOTHER USER - TRY AGAIN LATER"
 | 
|---|
 | 94 |  . D ENTER^IBCEP5B(.DIR)
 | 
|---|
 | 95 |  . W ! D ^DIR K DIR W !
 | 
|---|
 | 96 |  S IB0=$G(^IBA(IBFILE,IBDA,0))
 | 
|---|
 | 97 |  S IBX=0
 | 
|---|
 | 98 |  S IBX=IBX+1,DIR("A",IBX)=" PROVIDER: "_$S(IBFILE=355.9:$$EXPAND^IBTRE(355.9,.01,$P(IB0,U)),1:"*ALL*")
 | 
|---|
 | 99 |  D DISP^IBCEP4("DIR(""A"")",$P(IB0,U,$S(IBFILE=355.9:2,1:1)),$P(IB0,U,6),$P(IB0,U,4),$P(IB0,U,5),IBX+1,.IBLAST)
 | 
|---|
 | 100 |  I $P(IB0,U,3)'="" S DIR("A",IBLAST+1)="CARE UNIT: "_$$EXPAND^IBTRE(355.91,.03,$P(IB0,U,3))
 | 
|---|
 | 101 |  S DIR("A",IBLAST+2)="  PROV ID: "_$P(IB0,U,7),DIR("A",IBLAST+3)=" "
 | 
|---|
 | 102 |  S DIR("A")="OK TO DELETE THIS "_$S($G(IBF):"INSURANCE COMPANY ",1:"")_"PROVIDER ID RECORD?: ",DIR("B")="NO"
 | 
|---|
 | 103 |  S DIR(0)="YA"
 | 
|---|
 | 104 |  W ! D ^DIR K DIR W !
 | 
|---|
 | 105 |  I Y'=1 G DELQ
 | 
|---|
 | 106 |  I IBDA>0 D
 | 
|---|
 | 107 |  . I IBFILE=355.91!(IBFILE=355.9&($P($G(^IBA(IBFILE,IBDA,0)),U)["VA(200,")) D
 | 
|---|
 | 108 |  .. N NEXTONE S NEXTONE=$$NEXTONE^IBCEP5A()
 | 
|---|
 | 109 |  .. S ^TMP("IB_EDITED_IDS",$J,NEXTONE)=IBDA_U_"DEL"_U_IBFILE_U_IBDA
 | 
|---|
 | 110 |  .. S ^TMP("IB_EDITED_IDS",$J,NEXTONE,0)=$G(^IBA(IBFILE,IBDA,0))
 | 
|---|
 | 111 |  . S DA=IBDA,DIK="^IBA("_IBFILE_"," D ^DIK
 | 
|---|
 | 112 | DELQ L -^IBA(IBFILE,IBDA)
 | 
|---|
 | 113 |  Q
 | 
|---|
 | 114 |  ;
 | 
|---|
 | 115 | CUCHK(IBDA,IB0) ;Called from CHG^IBCEP5B to check for existing combination
 | 
|---|
 | 116 |  ; during edit 
 | 
|---|
 | 117 |  ; IBDA = the ien of the record being edited
 | 
|---|
 | 118 |  ; IB0 = Proposed changed 0 node of the entry in the file
 | 
|---|
 | 119 |  ; FUNCTION RETURNS 0 if no duplicate found, 1 if record already exists
 | 
|---|
 | 120 |  N Z,IBCUCHK,DIR,X,Y
 | 
|---|
 | 121 |  S IBCUCHK=0
 | 
|---|
 | 122 |  I IBFILE=355.91 S Z=+$O(^IBA(355.91,"AUNIQ",$P(IB0,U,1),$S($P(IB0,U,3)="@":"*N/A*",$P(IB0,U,3):$P(IB0,U,3),1:$P(IB0,U,10)),$P(IB0,U,4),$P(IB0,U,5),$P(IB0,U,6),0)) I Z,Z'=IBDA S IBCUCHK=1
 | 
|---|
 | 123 |  I IBFILE=355.9 D
 | 
|---|
 | 124 |  . N X,X1
 | 
|---|
 | 125 |  . S X=$S($P(IB0,U,2):$P(IB0,U,2),1:$P(IB0,U,15)) S:X="" X="*ALL*"
 | 
|---|
 | 126 |  . S X1=$S($P(IB0,U,3):$P(IB0,U,3),$P(IB0,U,3)="@":"",1:$P(IB0,U,16)) S:X1="" X1="*N/A*"
 | 
|---|
 | 127 |  . S Z=+$O(^IBA(355.9,"AUNIQ",$P(IB0,U,1),X,X1,$P(IB0,U,4),$P(IB0,U,5),$P(IB0,U,6),0)) I Z,Z'=IBDA S IBCUCHK=1
 | 
|---|
 | 128 |  I IBCUCHK D
 | 
|---|
 | 129 |  . S DIR(0)="EA",DIR("A",1)="This combination already exists - RECORD NOT CHANGED",DIR("A")="PRESS the ENTER key to continue" W ! D ^DIR K DIR W !
 | 
|---|
 | 130 |  Q IBCUCHK
 | 
|---|
 | 131 |  ;
 | 
|---|