[613] | 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
|
---|