1 | PRCPRPCR ;WISC/RFJ-patient distribution costs ;11 Mar 94
|
---|
2 | ;;5.1;IFCAP;;Oct 20, 2000
|
---|
3 | ;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | D ^PRCPUSEL Q:'$G(PRCP("I"))
|
---|
5 | I "PS"'[PRCP("DPTYPE") W !,"THIS REPORT SHOULD ONLY BE PRINTED BY THE PRIMARY AND SECONDARY INVENTORY POINTS." Q
|
---|
6 | N DATEEND,DATESTRT,DISTRALL,END,PRCPFITM,PRCPOPCE,PRCPOPCS,PRCPPATE,PRCPPATS,PRCPSUMM,PRCPSURE,PRCPSURS,START,X,Y
|
---|
7 | K X S X(1)="The Patient Distribution Cost Report will print all items distributed to patients for a selected time frame."
|
---|
8 | D DISPLAY^PRCPUX2(40,79,.X)
|
---|
9 | ;
|
---|
10 | ; select the invpts distributing to the patient
|
---|
11 | K ^TMP($J,"PRCPURS3")
|
---|
12 | I PRCP("DPTYPE")="P" D
|
---|
13 | . K X S X(1)="Besides displaying distributions from the "_PRCP("IN")_" inventory point, select other DISTRIBUTION POINTS to display or ALL" W ! D DISPLAY^PRCPUX2(2,40,.X)
|
---|
14 | . D DISTRSEL^PRCPURS3(PRCP("I"))
|
---|
15 | S ^TMP($J,"PRCPURS3","YES",PRCP("I"))=""
|
---|
16 | ;
|
---|
17 | ; summary only ?
|
---|
18 | S PRCPSUMM=$$SUMMARY^PRCPURS0 I PRCPSUMM<0 D Q Q
|
---|
19 | I PRCPSUMM S (PRCPOPCS,PRCPPATS,PRCPSURS)="",(PRCPOPCE,PRCPPATE,PRCPSURE)="z" G GETDATE
|
---|
20 | ;
|
---|
21 | ; select surgical specialty start, end with
|
---|
22 | K X S X(1)="Select the range of surgery specialties to display. For example, start with NEUROSUR, end with NEUROSUR to print the surgery specialty NEUROSURGERY." W ! D DISPLAY^PRCPUX2(5,75,.X)
|
---|
23 | D RANGE("SURGICAL SPECIALTY") I START="^" D Q Q
|
---|
24 | S PRCPSURS=START,PRCPSURE=END
|
---|
25 | ;
|
---|
26 | ; select patient start, end with
|
---|
27 | K X S X(1)="Select the range of patients to display. For example, start with SMITH, end with SMITH to print patients with last names of SMITH." W ! D DISPLAY^PRCPUX2(5,75,.X)
|
---|
28 | D RANGE("PATIENT NAME") I START="^" D Q Q
|
---|
29 | S PRCPPATS=START,PRCPPATE=END
|
---|
30 | ;
|
---|
31 | ; select opcode start, end with
|
---|
32 | K X S X(1)="Select the range of principal procedure codes to display. For example, start with 00124, end with 00126 to print procedure codes including and between 00124 and 00126." W ! D DISPLAY^PRCPUX2(5,75,.X)
|
---|
33 | D RANGE("PRINCIPAL PROCEDURE CODES") I START="^" D Q Q
|
---|
34 | S PRCPOPCS=START,PRCPOPCE=END
|
---|
35 | ;
|
---|
36 | ; print items ?
|
---|
37 | K X S X(1)="You have the option to break out the report by distributed items. If you select this option, the report will probably use a lot of paper to print." W ! D DISPLAY^PRCPUX2(5,75,.X)
|
---|
38 | S XP="Do you want to list out the items distributed",XH="Enter YES to list out the items distributed to the patient."
|
---|
39 | S PRCPFITM=$$YN^PRCPUYN(2) I 'PRCPFITM D Q Q
|
---|
40 | ;
|
---|
41 | GETDATE ; select date range
|
---|
42 | K X S X(1)="Select the date range for displaying patient distribution costs" W ! D DISPLAY^PRCPUX2(2,40,.X)
|
---|
43 | D DATESEL^PRCPURS2("") I '$G(DATESTRT) D Q Q
|
---|
44 | W ! S %ZIS="Q" D ^%ZIS G:POP Q I $D(IO("Q")) D D ^%ZTLOAD K IO("Q"),ZTSK D Q Q
|
---|
45 | . S ZTDESC="Patient Distribution Cost Report",ZTRTN="DQ^PRCPRPCR"
|
---|
46 | . S ZTSAVE("PRCP*")="",ZTSAVE("D*")="",ZTSAVE("^TMP($J,""PRCPURS3"",")="",ZTSAVE("ZTREQ")="@"
|
---|
47 | W !!,"<*> please wait <*>"
|
---|
48 | DQ ; queue starts here
|
---|
49 | N %,%I,AVERAGE,DA,DATA,DATE,DFN,DISTRNM,DISTRPT,INOUTPAT,ITEMDA,NOW,OPCODE,PAGE,PATNAME,PRCPFLAG,PRCPFTOT,SCREEN,SSN,SURGDATA,SURGEON,SURGSPEC,TOTCOST,VA,VADM,VAERR,X,Y
|
---|
50 | D SORT^PRCPRPC1
|
---|
51 | D PRINT^PRCPRPC2
|
---|
52 | Q D ^%ZISC K ^TMP($J,"PRCPURS3"),^TMP($J,"PRCPRPCR"),^TMP($J,"PRCPRPCRT")
|
---|
53 | Q
|
---|
54 | ;
|
---|
55 | ;
|
---|
56 | RANGE(TYPE) ; start with end with for type
|
---|
57 | ; return variables start and end
|
---|
58 | N X
|
---|
59 | K START,END
|
---|
60 | F D Q:$D(START)
|
---|
61 | . W !,"START with ",TYPE,": FIRST// " R X:DTIME I '$T!(X["^") S START="^" Q
|
---|
62 | . I X["?" K X S X(1)="Select the starting "_TYPE_". If you select the default FIRST entry, NULL entries will be selected." D DISPLAY^PRCPUX2(5,75,.X) Q
|
---|
63 | . S START=X
|
---|
64 | I START="^" Q
|
---|
65 | F D Q:$D(END)
|
---|
66 | . W !," END with ",TYPE,": LAST// " R X:DTIME I '$T!(X["^") S END="^" Q
|
---|
67 | . I X["?" K X S X(1)="Select the ending "_TYPE_". The ending "_TYPE_" should be the same or follow after the starting "_TYPE_"." D DISPLAY^PRCPUX2(5,75,.X) Q
|
---|
68 | . I X="" S X="z"
|
---|
69 | . I START]X K X S X(1)="Ending "_TYPE_" must follow starting "_TYPE_"." D DISPLAY^PRCPUX2(5,75,.X) Q
|
---|
70 | . S END=X
|
---|
71 | I END="^" S START="^"
|
---|
72 | Q
|
---|