1 | RACPT1 ;HISC/GJC,FPT-Procedure/CPT Stats Report ;12/29/00 11:28
|
---|
2 | ;;5.0;Radiology/Nuclear Medicine;**26,69**;Mar 16, 1998
|
---|
3 | ;01/19/2006 KAM/BAY Remedy Call 97373 CPT Code Display Problem
|
---|
4 | CHK ;
|
---|
5 | I $O(RACCESS(DUZ,""))="" D SETVARS^RAPSET1(0) S RAPSTX=""
|
---|
6 | I $O(RACCESS(DUZ,""))="" D ACCVIO^RAUTL19 S RAQUIT=1 Q
|
---|
7 | D ASK1^RAWKL ;ask if want separate CPT mods
|
---|
8 | I $$DIVLOC^RAUTL7() D S RAQUIT=1 Q
|
---|
9 | . I $O(^TMP($J,"RA D-TYPE",""))="" W !!?5,"No divisions selected." Q
|
---|
10 | . I $O(^TMP($J,"RA I-TYPE",""))="" W !!?5,"No imaging types selected."
|
---|
11 | . Q
|
---|
12 | W ! S RACAN=$$YESNO()
|
---|
13 | ; RACAN=0: cancelled exams excluded, RACAN=1: cancelled exams
|
---|
14 | ; are included, RACAN=-1: exit option
|
---|
15 | S:RACAN<0 RAQUIT=1 Q:$G(RAQUIT)
|
---|
16 | K DIR S DIR(0)="Y",DIR("B")="Yes"
|
---|
17 | S DIR("A")="Do you wish to include all Procedures"
|
---|
18 | S DIR("?",1)="Enter 'Yes' to select all entries in the file."
|
---|
19 | S DIR("?")="Enter 'No' to select a subset of entries in the file."
|
---|
20 | W ! D ^DIR K DIR I $D(DIRUT) S RAQUIT=1 Q
|
---|
21 | S RAINPUT=+Y
|
---|
22 | I RAINPUT=0 D Q:$G(RAQUIT)
|
---|
23 | . K RADIC
|
---|
24 | . S RADIC="^RAMIS(71,",RADIC(0)="EMQZ",RADIC("A")="Select PROCEDURE: "
|
---|
25 | . S RAUTIL="RA P-TYPE" D EN1^RASELCT(.RADIC,RAUTIL,"",RAINPUT)
|
---|
26 | . I $O(^TMP($J,"RA P-TYPE",""))=""!$G(RAQUIT) W !!?5,"No procedures selected." S RAQUIT=1
|
---|
27 | . Q
|
---|
28 | S RANUMPRC=$$PROCNUM()
|
---|
29 | DATE D DATE^RAUTL Q:RAPOP
|
---|
30 | ;S Z=9999999.9999, WHY IS THIS NEEDED?
|
---|
31 | S RABEG=BEGDATE,RAEND=ENDDATE+.9
|
---|
32 | S DIR(0)="S^I:INPATIENT;O:OUTPATIENT;B:BOTH;",DIR("B")="BOTH",DIR("?",1)="This CPT Workload Report can be broken",DIR("?")="out by Inpatient, Outpatient or Both.",DIR("A")="Report to include"
|
---|
33 | D ^DIR S RASORT=Y I $D(DIRUT) S RAQUIT=1 Q
|
---|
34 | K DIR,X,Y
|
---|
35 | S ZTRTN="START^RACPT"
|
---|
36 | F RASV="RACAN","RANUMPRC","BEGDATE","ENDDATE","RABEG","RAEND","RASORT","RAINPUT","RACMLIST" S ZTSAVE(RASV)=""
|
---|
37 | F RASV="D","I","P" S ZTSAVE("^TMP($J,""RA "_RASV_"-TYPE"",")=""
|
---|
38 | W ! D ZIS^RAUTL
|
---|
39 | Q
|
---|
40 | PRINT ; Output data
|
---|
41 | ; 01/19/2006 KAM/BAY Changed next line to utilize $$NAMCODE^RACPTMSC
|
---|
42 | I '$G(RACMLIST) W !,$P($$NAMCODE^RACPTMSC(CPT,""),U),?7,$S($D(^RAMIS(71,J,0)):$E($P(^(0),"^"),1,38),1:"UNKNOWN") S RATOT(1)=+$P(^(0),U,10) ;cost per unit
|
---|
43 | ; 01/19/2006 KAM/BAY Changed next line to utilize $$NAMCODE^RACPTMSC
|
---|
44 | I $G(RACMLIST) W !,$P($$NAMCODE^RACPTMSC(CPT,""),U),?15,$S($D(^RAMIS(71,J,0)):$E($P(^(0),"^"),1,30),1:"UNKNOWN") S RATOT(1)=+$P(^(0),U,10) ;cost per unit
|
---|
45 | S RATOT(2)=RATOT*RATOT(1) ;occurrence * cost per unit
|
---|
46 | S RATOT(4)=$G(^TMP($J,"RA",RAI,RADIV,RAIMAG(1),"DONE"))
|
---|
47 | S RATOT(5)=$G(^TMP($J,"RA",RAI,RADIV,RAIMAG(1),"COST"))
|
---|
48 | W ?45,$J(RATOT,5),?52,$S(RATOT(4)=0:$J(0,3,0),1:$J(RATOT/RATOT(4)*100,3,0))
|
---|
49 | W ?56,$J(RATOT(1),8,2)
|
---|
50 | W ?65,$J(RATOT(2),10,2),?77,$S(RATOT(5)=0:$J(0,3,0),1:$J(RATOT(2)/RATOT(5)*100,3,0))
|
---|
51 | I $E(IOST,1,2)="C-",$Y+4>IOSL D HANG1,HED:'RAEXIT
|
---|
52 | Q
|
---|
53 | HED ; Issue header
|
---|
54 | W:($E(IOST)="C")!(PAGE>1) @IOF
|
---|
55 | N RA S RA=">>>>> PROCEDURE/CPT STATISTICS REPORT "
|
---|
56 | S RA=RA_$S(RAI="I":"(INPATIENT)",RAI="O":"(OUTPATIENT)",1:"")_" <<<<<"
|
---|
57 | W !?78-$L(RA)\2,RA,?70,"Page: ",PAGE S PAGE=PAGE+1
|
---|
58 | W !!," Division: ",$S(RADIV="":"Unknown",$D(^DIC(4,RADIV,0)):$P(^(0),U),1:"Unknown")
|
---|
59 | W !,"Imaging Type: ",RAIMAG(0)
|
---|
60 | W ?52,"For period: ",BEGDATE(0)," to"
|
---|
61 | W !," Run Date: ",RARUNDTE,?64,ENDDATE(0)
|
---|
62 | W !," # of Procedures selected: ",$S(RAINPUT:"All",1:RANUMPRC)
|
---|
63 | W ?52,"Cancelled Exams: "_$S(RACAN:"in",1:"ex")_"cluded"
|
---|
64 | W:'$G(RACMLIST) !!,"CPT",?7,"PROCEDURE"
|
---|
65 | W:$G(RACMLIST) !!,"CPT (* : >3 CPT mods)",?25,"PROCEDURE"
|
---|
66 | W ?44,"# DONE",?52,"(%)",?59,"$UNIT",?69,"$TOTAL",?77,"(%)",!,QQ
|
---|
67 | Q
|
---|
68 | HANG ; get to the EOP
|
---|
69 | Q:$E(IOST,1,2)'="C-"
|
---|
70 | F Z=1:1:(IOSL-($Y+4)) W !
|
---|
71 | HANG1 ; Issue EOP prompt
|
---|
72 | R !!,"Press RETURN to continue or an '^' to stop ",X:DTIME
|
---|
73 | S RAEXIT=(X=U)
|
---|
74 | Q
|
---|
75 | SRTPA(RA) ; Check on the sort parameters. If inpatient and outpatient,
|
---|
76 | ; issue a EOP prompt when the sort parameter changes.
|
---|
77 | ; '1' implies that we are sorting by both inpatient/outpatient and
|
---|
78 | ; are on the second parameter, '0' implies that we fail the above
|
---|
79 | ; conditions.
|
---|
80 | I ($L(RASORT,",")#2)=0,(RA>1),('+$G(RAEOPFLG)) Q 1
|
---|
81 | Q 0
|
---|
82 | PROCNUM() ; Determine the number of procedures a user has chosen.
|
---|
83 | N X,Y S X="",Y=0
|
---|
84 | F S X=$O(^TMP($J,"RA P-TYPE",X)) Q:X']"" S Y=Y+1
|
---|
85 | Q Y
|
---|
86 | YESNO() ; Pass back the user's response to the 'Yes/No' question
|
---|
87 | ; returns: 0=user answers No, 1=user answers Yes, -1='^' or timeout
|
---|
88 | N DIR,DIROUT,DIRUT,DTOUT,DUOUT,X,Y S DIR(0)="Y",DIR("B")="Yes"
|
---|
89 | S DIR("A")="Do you wish to include cancelled cases"
|
---|
90 | S DIR("?",1)="Enter 'Yes' if exams with an examination status of Cancelled"
|
---|
91 | S DIR("?",2)="are to be included on the report. Enter 'No' if cancelled exams"
|
---|
92 | S DIR("?")="are to be excluded from the report." D ^DIR
|
---|
93 | S:$D(DIRUT) Y=-1
|
---|
94 | Q Y
|
---|