1 | SCRPW401 ;BPCIOFO/ACS - Diagnosis/Procedure Frequency Report ;06/23/99
|
---|
2 | ;;5.3;Scheduling;**180**;Aug 13, 1993
|
---|
3 | ;
|
---|
4 | ;------------------------------------------------------------
|
---|
5 | ;
|
---|
6 | ; Purpose : Rank and print the CPT modifiers
|
---|
7 | ; Called by: SCRPW40
|
---|
8 | ;
|
---|
9 | ;
|
---|
10 | ;INPUT : MODARRAY(MOD ptr,TYPE)=COUNT
|
---|
11 | ; the full array referenced from SCRPW40 is -
|
---|
12 | ; ^TMP("SCRPW",$J,SDIV,"PROC",1,SDPROC,SDMOD,TYPE))
|
---|
13 | ; SDIV : division
|
---|
14 | ; SDPROC: pointer to CPT code
|
---|
15 | ; SDMOD : pointer to CPT modifier code
|
---|
16 | ; TYPE : encounter "ENC" or quantity "QTY"
|
---|
17 | ;
|
---|
18 | ;OUTPUT : none
|
---|
19 | ;
|
---|
20 | ;OTHER : RANKMOD is the array to hold the ranked modifiers
|
---|
21 | ; for the current CPT code
|
---|
22 | ; LINEFLAG is used as a flag to indicate that a line
|
---|
23 | ; will be skipped before printing the next cpt code
|
---|
24 | ; (cpt codes are double spaced on the report, but not
|
---|
25 | ; immediately after printing the report headers, when
|
---|
26 | ; LINEFLAG=0)
|
---|
27 | ;------------------------------------------------------------
|
---|
28 | ;
|
---|
29 | START(MODARRAY) ;build array to hold ranked modifiers (by quantity)
|
---|
30 | ;
|
---|
31 | N SDMOD,RANKMOD,SDMODQTY
|
---|
32 | ;
|
---|
33 | ; spin through modifier array and get modifier quantity
|
---|
34 | S SDMOD=0
|
---|
35 | F S SDMOD=$O(@MODARRAY@(SDMOD)) Q:'SDMOD D
|
---|
36 | . S SDMODQTY=$G(@MODARRAY@(SDMOD,"QTY"))
|
---|
37 | . Q:'SDMODQTY
|
---|
38 | . ;
|
---|
39 | . ; put modifier quantity and code into new array
|
---|
40 | . S RANKMOD(SDMODQTY,SDMOD)=""
|
---|
41 | . Q
|
---|
42 | ;
|
---|
43 | ; loop through ranked modifiers in descending order
|
---|
44 | S SDMODQTY=""
|
---|
45 | F S SDMODQTY=$O(RANKMOD(SDMODQTY),-1) Q:SDMODQTY="" D
|
---|
46 | . S SDMOD=""
|
---|
47 | . F S SDMOD=$O(RANKMOD(SDMODQTY,SDMOD),-1) Q:SDMOD="" D
|
---|
48 | .. ; check page length. go to new page if necessary.
|
---|
49 | .. I $Y>(IOSL-4) D HDR^SCRPW40 D PRHD^SCRPW40 Q:SDOUT
|
---|
50 | .. ;
|
---|
51 | .. ; get modifier and desc
|
---|
52 | .. N MODINFO,MODCODE,MODTEXT,SDMENC,SDMQTY
|
---|
53 | .. S MODINFO=$$MOD^ICPTMOD(SDMOD,"I")
|
---|
54 | .. Q:+MODINFO<0
|
---|
55 | .. S MODCODE=$P(MODINFO,"^",2)
|
---|
56 | .. S MODTEXT=$E($P(MODINFO,"^",3),1,28)
|
---|
57 | .. S SDMENC="-"_$G(@MODARRAY@(SDMOD,"ENC"))
|
---|
58 | .. S SDMQTY="-"_$G(@MODARRAY@(SDMOD,"QTY"))
|
---|
59 | .. W !,?(C+2),"-",MODCODE,?(C+8),MODTEXT
|
---|
60 | .. W ?(C+38),$J(SDMENC,9,0),?(C+50),$J(SDMQTY,9,0)
|
---|
61 | .. Q
|
---|
62 | . S LINEFLAG=1
|
---|
63 | . Q
|
---|
64 | Q
|
---|