1 | BPSECFM ;BHAM ISC/FCS/DRS/VA/DLF - NCPDP Field Format Functions ;05/17/2004
|
---|
2 | ;;1.0;E CLAIMS MGMT ENGINE;**1**;JUN 2004
|
---|
3 | ;----------------------------------------------------------------------
|
---|
4 | ;----------------------------------------------------------------------
|
---|
5 | ;NCPDP Field Format Functions
|
---|
6 | ; These are all $$ functions called from lots of places.
|
---|
7 | ;--------------------------------------------------------
|
---|
8 | ; IHS/SD/lwj 8/28/02 NCPDP 5.1 changes
|
---|
9 | ; Added a new subroutine to translate the rejection code
|
---|
10 | ; Added a new subroutine to translate the reason for service code
|
---|
11 | ; Used for AdvancePCS certification process
|
---|
12 | ;--------------------------------------------------------
|
---|
13 | ;Numeric Format Function
|
---|
14 | NFF(X,L) ;EP -
|
---|
15 | Q $E($TR($J("",L-$L(X))," ","0")_X,1,L)
|
---|
16 | ;----------------------------------------------------------------------
|
---|
17 | ;Signed Numeric Field Format
|
---|
18 | DFF(X,L) ;
|
---|
19 | N FNUMBER,DOLLAR,CENTS,SVALUE
|
---|
20 | Q:X="" $TR($J("",L)," ","0")
|
---|
21 | S DOLLAR=+$TR($P(X,".",1),"-","")
|
---|
22 | S CENTS=$E($P(X,".",2),1,2)
|
---|
23 | S:$L(CENTS)=0 CENTS="00"
|
---|
24 | S:$L(CENTS)=1 CENTS=CENTS_"0"
|
---|
25 | S SVALUE=$S(X<0:"}JKLMNOPQR",1:"{ABCDEFGHI")
|
---|
26 | S $E(CENTS,2)=$E(SVALUE,$E(CENTS,2)+1)
|
---|
27 | Q $E($TR($J("",L-$L(DOLLAR_CENTS))," ","0")_DOLLAR_CENTS,1,L)
|
---|
28 | ;----------------------------------------------------------------------
|
---|
29 | ;Converts Signed Numeric Field to Decimal Value
|
---|
30 | DFF2EXT(X) ;EP -
|
---|
31 | N LCHAR
|
---|
32 | S LCHAR=$E(X,$L(X))
|
---|
33 | S X=$TR(X,"{ABCDEFGHI","0123456789")
|
---|
34 | S X=$TR(X,"}JKLMNOPQR","0123456789")
|
---|
35 | S X=X*.01
|
---|
36 | I "}JKLMNOPQR"[LCHAR S X=X*-1
|
---|
37 | Q $J(+X,$L(+X),2)
|
---|
38 | ;----------------------------------------------------------------------
|
---|
39 | ;Alpha-Numeric Field Format
|
---|
40 | ANFF(X,L) ;EP
|
---|
41 | Q $E(X_$J("",L-$L(X)),1,L)
|
---|
42 | ;----------------------------------------------------------------------
|
---|
43 | ;Numerics Field Format
|
---|
44 | ; DUPLICATE TAGS! commented out this one
|
---|
45 | ; The other one appears to zero fill.
|
---|
46 | ; NFF(X,L)
|
---|
47 | ; Q $E(X_$J("",L-$L(X)),1,L)
|
---|
48 | ;----------------------------------------------------------------------
|
---|
49 | ;Convert FileManager date into CCYYMMDD format
|
---|
50 | DTF1(X) ;EP -
|
---|
51 | N Y,%DT
|
---|
52 | ;Q:X'["." X
|
---|
53 | S X=$P(X,".",1)
|
---|
54 | Q:X="" "00000000"
|
---|
55 | S Y=X D DD^%DT
|
---|
56 | S X=Y,%DT="X" D ^%DT
|
---|
57 | Q:Y=-1 "00000000"
|
---|
58 | S X=Y+17000000
|
---|
59 | Q X
|
---|
60 | ;----------------------------------------------------------------------
|
---|
61 | ;Reformats NDC number
|
---|
62 | NDCF(X) ;EP -
|
---|
63 | S X=$TR(X,"-","")
|
---|
64 | I X?11N Q X ; no reformatting needed
|
---|
65 | I $L(X)<11 F I=1:1:(11-$L(X)) S X="0"_X
|
---|
66 | I $L(X)>11 S X=$E(X,2,12)
|
---|
67 | S X=$E(X,1,5)_"-"_$E(X,6,9)_"-"_$E(X,10,11)
|
---|
68 | N Y,I
|
---|
69 | F I=1:1:3 S Y(I)=$P(X,"-",I)
|
---|
70 | S X=$$RJZF(Y(1),5)_$$RJZF(Y(2),4)_$$RJZF(Y(3),2)
|
---|
71 | Q X
|
---|
72 | ;----------------------------------------------------------------------
|
---|
73 | ;Right justify and zero fill X in a string of length L
|
---|
74 | RJZF(X,L) ;
|
---|
75 | I $L(X)<L Q $E($TR($J("",L-$L(X))," ","0")_X,1,L)
|
---|
76 | Q $E(X,$L(X)-L+1,$L(X))
|
---|
77 | ;----------------------------------------------------------------------
|
---|
78 | ;Right justify and blank fill X in a string of length L
|
---|
79 | RJBF(X,L) ;EP -
|
---|
80 | Q $E($J("",L-$L(X))_X,1,L)
|
---|
81 | ;----------------------------------------------------------------------
|
---|
82 | ;STRIP TEXT of all non-numerics
|
---|
83 | STRIPN(TEXT) ;
|
---|
84 | N NUM,I,CH
|
---|
85 | S NUM=""
|
---|
86 | F I=1:1:$L(TEXT) D
|
---|
87 | .S CH=$E(TEXT,I,I)
|
---|
88 | .S:CH?1N NUM=NUM_CH
|
---|
89 | Q NUM
|
---|
90 | ;----------------------------------------------------------------------
|
---|
91 | ;IHS/SD/lwj 8/28/02 NCPDP 5.1 changes
|
---|
92 | ; For the certification process with AdvancePCS, they require that the
|
---|
93 | ; reject explanation appear with the rejection code. The following
|
---|
94 | ; Additionally, they require that within the DUR segment, the
|
---|
95 | ; description for the reason for service code also appear (fld 439).
|
---|
96 | ; To accomodate this requirement, the following subroutines were
|
---|
97 | ; created to act as an output transform for the reject codes and the
|
---|
98 | ; reason for service code. These routine will not currently be used
|
---|
99 | ; any where else, but will be kept in the software in case they are
|
---|
100 | ; needed.
|
---|
101 | ;
|
---|
102 | TRANREJ(REJCD) ;EP - REJCD will be the incoming rejection code
|
---|
103 | ;
|
---|
104 | I $G(REJCD)="" Q ""
|
---|
105 | N REJECT,REJIEN
|
---|
106 | ;
|
---|
107 | S REJIEN=0
|
---|
108 | S REJIEN=$O(^BPSF(9002313.93,"B",REJCD,REJIEN)) ;find record
|
---|
109 | I REJIEN S REJECT=$P($G(^BPSF(9002313.93,REJIEN,0)),U,2)
|
---|
110 | E S REJECT="Description not found for rejection code"
|
---|
111 | S REJECT=REJCD_" ("_REJECT_")"
|
---|
112 | S REJECT=$$ANFF(REJECT,50)
|
---|
113 | ;
|
---|
114 | Q REJECT
|
---|
115 | ;----------------------------------------------------------------------
|
---|
116 | TRANSCD(SRVCD) ;EP - SRCCD will be the incoming reason for service code
|
---|
117 | ;
|
---|
118 | N SCDIEN,SCDESC
|
---|
119 | ;
|
---|
120 | S SCDIEN=0
|
---|
121 | S SRVCD=$E(SRVCD,1,2)
|
---|
122 | S:$G(SRVCD)'="" SCDIEN=$O(^BPSF(9002313.82439,"B",SRVCD,SCDIEN)) ;find record
|
---|
123 | S:$G(SCDIEN) SCDESC=$P($G(^BPSF(9002313.82439,SCDIEN,0)),U,2)
|
---|
124 | S:$G(SCDESC)="" SCDESC="Description not found for service code"
|
---|
125 | S SCDESC=SRVCD_" ("_SCDESC_" )"
|
---|
126 | S SCDESC=$$ANFF(SCDESC,50)
|
---|
127 | ;
|
---|
128 | Q SCDESC
|
---|
129 | ;----------------------------------------------------------------------
|
---|