1 | SCRPW241 ;BPCIOFO/ACS - ACRP Ad Hoc Report (cont.) ;06/30/99
|
---|
2 | ;;5.3;Scheduling;**180,254,351**;AUG 13, 1993
|
---|
3 | ;
|
---|
4 | ;----------------------------------------------------------------
|
---|
5 | ; This routine was created due to the max number of bytes
|
---|
6 | ; being reached in SCRPW24
|
---|
7 | ;
|
---|
8 | ; This routine is called by SCRPW24, and it contains CPT API calls
|
---|
9 | ;
|
---|
10 | ;----------------------------------------------------------------
|
---|
11 | ;
|
---|
12 | APAC(SDX) ;Get all procedure codes
|
---|
13 | ; INPUT - .SDX array reference
|
---|
14 | ; OUTPUT- SDX array with CPT pointer, CPT code, quantity
|
---|
15 | ;
|
---|
16 | K SDX
|
---|
17 | N SDY,SDI,CPTINFO,CPTCODE
|
---|
18 | ; array SDY will contain the CPT information
|
---|
19 | D GETCPT^SDOE(SDOE,"SDY")
|
---|
20 | ; Spin through CPT array and get CPT code and quantity
|
---|
21 | S SDI=0 F S SDI=$O(SDY(SDI)) Q:'SDI D
|
---|
22 | . I $D(SDY(SDI,0)) S SDX=$P(SDY(SDI,0),U)
|
---|
23 | . E Q
|
---|
24 | . S CPTINFO=$$CPT^ICPTCOD(+SDX,+SDOE0,1)
|
---|
25 | . Q:CPTINFO'>0
|
---|
26 | . S CPTCODE=$P(CPTINFO,U,2)
|
---|
27 | . S SDX=SDX_U_CPTCODE_U_$P(SDY(SDI,0),U,16)
|
---|
28 | . I $L($P(SDX,U,2)) D APOTR(.SDX) S SDX(SDI)=SDX
|
---|
29 | . Q
|
---|
30 | Q
|
---|
31 | ;
|
---|
32 | APOTR(SDX) ;Transform procedure external value
|
---|
33 | ; INPUT - .SDX CPT pointer
|
---|
34 | ; OUTPUT- SDX text string containing CPT code, CPT text
|
---|
35 | ;
|
---|
36 | N CPTINFO,CPTTEXT,ENCDT
|
---|
37 | S ENCDT=+$G(SDOE0)
|
---|
38 | I 'ENCDT D
|
---|
39 | .I '$G(SDOE) S ENCDT=$$NOW^XLFDT() Q
|
---|
40 | .D GETGEN^SDOE(SDOE,"SDY")
|
---|
41 | .S ENCDT=+$G(SDY(0))
|
---|
42 | .K SDY
|
---|
43 | S CPTINFO=$$CPT^ICPTCOD(+SDX,ENCDT,1)
|
---|
44 | Q:CPTINFO'>0
|
---|
45 | S CPTTEXT=$P(CPTINFO,U,3)
|
---|
46 | S $P(SDX,U,2)=$P(SDX,U,2)_" "_CPTTEXT
|
---|
47 | Q
|
---|
48 | ;
|
---|
49 | APAP(SDX) ;Get ambulatory procedures (no E&M codes)
|
---|
50 | ; INPUT - .SDX array reference
|
---|
51 | ; OUTPUT- SDX array containing CPT pointer, CPT code, CPT text
|
---|
52 | ;
|
---|
53 | K SDX
|
---|
54 | N SDY,SDI,CPTINFO,CPTCODE
|
---|
55 | D GETCPT^SDOE(SDOE,"SDY")
|
---|
56 | ; Spin through CPT array and get CPT code
|
---|
57 | S SDI=0 F S SDI=$O(SDY(SDI)) Q:'SDI D
|
---|
58 | . I $D(SDY(SDI,0)) S SDX=$P(SDY(SDI,0),U)
|
---|
59 | . E Q
|
---|
60 | . I '$D(^IBE(357.69,"B",SDX)) D
|
---|
61 | .. S CPTINFO=$$CPT^ICPTCOD(+SDX,+SDOE0,1)
|
---|
62 | .. Q:CPTINFO'>0
|
---|
63 | .. S CPTCODE=$P(CPTINFO,U,2)
|
---|
64 | .. S SDX=SDX_U_CPTCODE
|
---|
65 | .. I $L($P(SDX,U,2)) D APOTR(.SDX) S SDX(SDI)=SDX
|
---|
66 | .. Q
|
---|
67 | . Q
|
---|
68 | Q
|
---|
69 | ;
|
---|
70 | APEM(SDX) ;Get evaluation and management codes
|
---|
71 | ; INPUT - .SDX array reference
|
---|
72 | ; OUTPUT- SDX array containing CPT pointer, CPT code, CPT text
|
---|
73 | ;
|
---|
74 | K SDX
|
---|
75 | N SDY,SDI,CPTINFO,CPTCODE
|
---|
76 | D GETCPT^SDOE(SDOE,"SDY")
|
---|
77 | ; Spin through CPT array and get CPT code
|
---|
78 | S SDI=0 F S SDI=$O(SDY(SDI)) Q:'SDI D
|
---|
79 | . I $D(SDY(SDI,0)) S SDX=$P(SDY(SDI,0),U)
|
---|
80 | . E Q
|
---|
81 | . I $D(^IBE(357.69,"B",SDX)) D
|
---|
82 | .. S CPTINFO=$$CPT^ICPTCOD(+SDX,+SDOE0,1)
|
---|
83 | .. Q:CPTINFO'>0
|
---|
84 | .. S CPTCODE=$P(CPTINFO,U,2)
|
---|
85 | .. S SDX=SDX_U_CPTCODE
|
---|
86 | .. I $L($P(SDX,U,2)) D APOTR(.SDX) S SDX(SDI)=SDX
|
---|
87 | .. Q
|
---|
88 | . Q
|
---|
89 | Q
|
---|
90 | ;
|
---|
91 | PDPE(SDX) ;Get patient's ethnicities
|
---|
92 | K SDX
|
---|
93 | N DFN,VADM,NUM,CNT,ABB,TXT
|
---|
94 | S DFN=$P(SDOE0,U,2)
|
---|
95 | I DFN D DEM^VADPT I VADM(11) S CNT=1,NUM=0 F S NUM=+$O(VADM(11,NUM)) Q:'NUM D
|
---|
96 | .I VADM(11,NUM) D
|
---|
97 | ..S TXT=$$PTR2TEXT^DGUTL4(+VADM(11,NUM),2) S:TXT="" TXT="?"
|
---|
98 | ..S ABB=$$PTR2CODE^DGUTL4(+$G(VADM(11,NUM,1)),3,1) S:ABB="" ABB="?"
|
---|
99 | ..S SDX(CNT)=+VADM(11,NUM)_"^"_TXT_" ("_ABB_")",CNT=CNT+1
|
---|
100 | S:$D(SDX)<10 SDX(1)="~~~NONE~~~^~~~UNANSWERED~~~"
|
---|
101 | Q
|
---|
102 | ;
|
---|
103 | PDPR(SDX) ;Get patient's race
|
---|
104 | K SDX
|
---|
105 | N DFN,VADM,NUM,CNT,ABB,TXT
|
---|
106 | S DFN=$P(SDOE0,U,2)
|
---|
107 | I DFN D DEM^VADPT I VADM(12) S CNT=1,NUM=0 F S NUM=+$O(VADM(12,NUM)) Q:'NUM D
|
---|
108 | .I VADM(12,NUM) D
|
---|
109 | ..S TXT=$$PTR2TEXT^DGUTL4(+VADM(12,NUM),1) S:TXT="" TXT="?"
|
---|
110 | ..S ABB=$$PTR2CODE^DGUTL4(+$G(VADM(12,NUM,1)),3,1) S:ABB="" ABB="?"
|
---|
111 | ..S SDX(CNT)=+VADM(12,NUM)_"^"_TXT_" ("_ABB_")",CNT=CNT+1
|
---|
112 | S:$D(SDX)<10 SDX(1)="~~~NONE~~~^~~~UNANSWERED~~~"
|
---|
113 | Q
|
---|