1 | FBAAUTL5 ;ACAMPUS/DMK-UTILITY ROUTINE ;4/17/2000
|
---|
2 | ;;3.5;FEE BASIS;**3,4,21**;JAN 30, 1995
|
---|
3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | INPUT ;called from input transform of 163.99 to determine if CPT and
|
---|
5 | ;or modifier is a valid entry in appropriate file.
|
---|
6 | Q:'$D(X)
|
---|
7 | N A,B,FBI,FBMOD,FBMODA,FBMODX
|
---|
8 | ;
|
---|
9 | S A=$P(X,"-"),B=$P(X,"-",2)
|
---|
10 | ;
|
---|
11 | ;sort modifiers so lookups will work
|
---|
12 | I B]"" D S $P(X,"-",2)=B
|
---|
13 | . F FBI=1:1 S FBMOD=$P(B,",",FBI) Q:FBMOD="" S FBMODA(FBMOD)=""
|
---|
14 | . S (FBMOD,B)=""
|
---|
15 | . F S FBMOD=$O(FBMODA(FBMOD)) Q:FBMOD="" S B=B_","_FBMOD
|
---|
16 | . S:$E(B)="," B=$E(B,2,999)
|
---|
17 | ;
|
---|
18 | ; check for valid pattern
|
---|
19 | I ('(X?5AN)&'(X?5AN1"-"2AN.17(1","2AN,1""))) K X Q
|
---|
20 | ;
|
---|
21 | ;check for valid CPT code
|
---|
22 | I $P($$CPT^ICPTCOD(A,"",1),U)'>0 D EN^DDIOL("CPT code not valid!") K X Q
|
---|
23 | ;
|
---|
24 | ; check for valid modifiers
|
---|
25 | I B]"" F FBI=1:1 S FBMOD=$P(B,",",FBI) Q:FBMOD="" D
|
---|
26 | . S FBMODX=$$MOD^ICPTMOD(FBMOD,"E")
|
---|
27 | . ; if modifier data not obtained then try another API to resolve it
|
---|
28 | . ; since there can be duplicate modifiers with same external value
|
---|
29 | . I $P(FBMODX,U)'>0 D
|
---|
30 | . . N FBY
|
---|
31 | . . S FBY=$$MODP^ICPTMOD(A,FBMOD,"E")
|
---|
32 | . . I $P(FBY,U)>0 S FBMODX=$$MOD^ICPTMOD($P(FBY,U),"I")
|
---|
33 | . I $P(FBMODX,U)'>0 D EN^DDIOL("CPT Modifier "_FBMOD_" not valid!") K X
|
---|
34 | Q:'$D(X)
|
---|
35 | ;
|
---|
36 | ;display
|
---|
37 | S FBX="CPT: "_$P($$CPT^ICPTCOD(A,"",1),U,3)
|
---|
38 | D EN^DDIOL(FBX,"","!?20")
|
---|
39 | I B]"" F FBI=1:1 S FBMOD=$P(B,",",FBI) Q:FBMOD="" D
|
---|
40 | . S FBMODX=$$MOD^ICPTMOD(FBMOD,"E")
|
---|
41 | . ; if modifier data not obtained then try another API to resolve it
|
---|
42 | . ; since there can be duplicate modifiers with same external value
|
---|
43 | . I $P(FBMODX,U)'>0 D
|
---|
44 | . . N FBY
|
---|
45 | . . S FBY=$$MODP^ICPTMOD(A,FBMOD,"E")
|
---|
46 | . . I $P(FBY,U)>0 S FBMODX=$$MOD^ICPTMOD($P(FBY,U),"I")
|
---|
47 | . S FBX="MOD: "_FBMOD_" "_$P(FBMODX,U,3)
|
---|
48 | . D EN^DDIOL(FBX,"","!?20")
|
---|
49 | Q
|
---|
50 | ;
|
---|
51 | PSA(X) ;get psa from institution
|
---|
52 | ;input X = ien of psa
|
---|
53 | ;output station number from instutution file\
|
---|
54 | Q $S($D(^DIC(4,+$G(X),99)):$E(^(99),1,3),1:"")
|
---|
55 | ;
|
---|
56 | EXTPV(X) ;call used to determine Purpose of Visit Austin code
|
---|
57 | ; x = pointer to 161.82
|
---|
58 | ; Output = Austin code
|
---|
59 | Q $S('$G(X):"",1:$P($G(^FBAA(161.82,+X,0)),U,3))
|
---|
60 | SUB(X) ;used to get station number and substation if one exists
|
---|
61 | ;from the IFCAP software. This call is used during
|
---|
62 | ;transmission of payment batches to Austin.
|
---|
63 | ;
|
---|
64 | ; X = "STATION NUMBER-OBLIGATION NUMBER"
|
---|
65 | ; EXAMPLE: 699-C12345
|
---|
66 | I '+$G(X) Q ""
|
---|
67 | N PRCS,Y
|
---|
68 | S PRCS("X")=X,PRCS("TYPE")="FB"
|
---|
69 | D EN1^PRCS58 ;call to IFCAP to get obligation information
|
---|
70 | K PRCSCPAN
|
---|
71 | I Y=-1 Q ""
|
---|
72 | Q $S($P(Y,U,10)]"":$P(Y,U,10),1:$E($P(Y,U,2),1,3))
|
---|