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 | ;
|
---|