1 | DGPFRPI2 ;ALB/RBS - PRF PRINCIPAL INVEST REPORT CONT. ; 6/14/04 10:39am
|
---|
2 | ;;5.3;Registration;**554**;Aug 13, 1993
|
---|
3 | ;
|
---|
4 | ;This routine will be used to display/print all patient assignments
|
---|
5 | ;for a Principal Investigator assigned to the Research record flag.
|
---|
6 | ;
|
---|
7 | ;- no direct entry
|
---|
8 | QUIT
|
---|
9 | ;
|
---|
10 | PRINT(DGSORT,DGLIST) ;output report
|
---|
11 | ; Input:
|
---|
12 | ; DGSORT - array of user selected report parameters
|
---|
13 | ; DGLIST - temp global name used for report list
|
---|
14 | ; ^TMP("DGPFRPI1",$J)
|
---|
15 | ;
|
---|
16 | ; Output: Formatted report to user selected device
|
---|
17 | ;
|
---|
18 | N DGBEG ;sort beginning date
|
---|
19 | N DGDFN ;ien of patient
|
---|
20 | N DGDT ;date time report printed
|
---|
21 | N DGFG ;flag name
|
---|
22 | N DGEND ;sort ending date
|
---|
23 | N DGHSTR ;header string var
|
---|
24 | N DGHSTR1 ;header string var
|
---|
25 | N DGHSTR2 ;header string var
|
---|
26 | N DGLINE ;string of hyphens (80) for report header format
|
---|
27 | N DGLN ;loop var
|
---|
28 | N DGPNAM ;patient name
|
---|
29 | N DGODFN ;loop var flag
|
---|
30 | N DGOFG ;name switch flag
|
---|
31 | N DGOPISTR ;pi name switch flag
|
---|
32 | N DGPAGE ;page counter
|
---|
33 | N DGPISTR ;pi name string for sub-header display
|
---|
34 | N DGQ ;quit flag
|
---|
35 | N DGSTR ;string of detail line to display
|
---|
36 | N X,Y
|
---|
37 | ;
|
---|
38 | S DGHSTR="PATIENT RECORD FLAGS"
|
---|
39 | S DGHSTR1="ASSIGNMENTS BY PRINCIPAL INVESTIGATOR REPORT"
|
---|
40 | I DGSORT("DGPRINC")="A" S DGHSTR2="(A)ll Principal Investigators"
|
---|
41 | E S DGHSTR2="(S)ingle Principal Investigator: "_$P(DGSORT("DGPRINC"),U,2)
|
---|
42 | S DGDT=$P($$FMTE^XLFDT($$NOW^XLFDT,"T"),":",1,2)
|
---|
43 | S DGBEG=$$FDATE^VALM1(DGSORT("DGBEG"))
|
---|
44 | S DGEND=$$FDATE^VALM1(DGSORT("DGEND"))
|
---|
45 | S (DGQ,DGPAGE)=0,$P(DGLINE,"-",81)=""
|
---|
46 | ;
|
---|
47 | I $O(@DGLIST@(""))="" D Q
|
---|
48 | . D HEAD
|
---|
49 | . W !!," >>> No Record Flag Assignments were found using the report criteria.",!
|
---|
50 | ;
|
---|
51 | ; loop and print report
|
---|
52 | S (DGDFN,DGFG,DGLN,DGPISTR,DGPNAM,DGODFN,DGOFG,DGOPISTR,DGSTR)=""
|
---|
53 | ;
|
---|
54 | D HEAD
|
---|
55 | F S DGFG=$O(@DGLIST@(DGFG)) Q:DGFG="" D Q:DGQ
|
---|
56 | . S DGPISTR=$$PISTR(DGFG)
|
---|
57 | . I $Y>(IOSL-10) D PAUSE(.DGQ) Q:DGQ D HEAD,HEAD1,HEAD2,HEAD3 S DGOFG=DGFG,DGOPISTR=DGPISTR
|
---|
58 | . I DGOFG'=DGFG D
|
---|
59 | . . W:DGOPISTR]"" !! D HEAD1,HEAD2,HEAD3 S DGOFG=DGFG,DGOPISTR=DGPISTR
|
---|
60 | . S DGPNAM=0 ;starts looping after "0" princ invest node
|
---|
61 | . F S DGPNAM=$O(@DGLIST@(DGFG,DGPNAM)) Q:DGPNAM="" D Q:DGQ
|
---|
62 | . . ; print patient detail line
|
---|
63 | . . S DGODFN=""
|
---|
64 | . . F S DGDFN=$O(@DGLIST@(DGFG,DGPNAM,DGDFN)) Q:DGDFN="" D Q:DGQ
|
---|
65 | . . . S DGLN=""
|
---|
66 | . . . F S DGLN=$O(@DGLIST@(DGFG,DGPNAM,DGDFN,DGLN)) Q:DGLN="" D Q:DGQ
|
---|
67 | . . . . I $Y>(IOSL-3) D PAUSE(.DGQ) Q:DGQ D HEAD,HEAD1,HEAD2,HEAD3 S DGODFN=""
|
---|
68 | . . . . S DGSTR=$G(@DGLIST@(DGFG,DGPNAM,DGDFN,DGLN))
|
---|
69 | . . . . W !
|
---|
70 | . . . . I DGODFN'=DGDFN S DGODFN=DGDFN D ;only print name once
|
---|
71 | . . . . . W $E(DGPNAM,1,16),?18,$P(DGSTR,U)
|
---|
72 | . . . . W ?30,$P(DGSTR,U,2),?48,$P(DGSTR,U,3),?60,$P(DGSTR,U,4),?71,$P(DGSTR,U,5)
|
---|
73 | ;
|
---|
74 | ;Shutdown if stop task requested
|
---|
75 | I DGQ W:$D(ZTQUEUED) !!,"REPORT STOPPED AT USER REQUEST" Q
|
---|
76 | ;
|
---|
77 | W !!,"<End of Report>"
|
---|
78 | Q
|
---|
79 | ;
|
---|
80 | PAUSE(DGQ) ; pause screen display
|
---|
81 | ; Input:
|
---|
82 | ; DGQ - var used to quit report processing to user CRT
|
---|
83 | ; Output:
|
---|
84 | ; DGQ - passed by reference - 0 = Continue, 1 = Quit
|
---|
85 | ;
|
---|
86 | I $G(DGPAGE)>0,$E(IOST,1,2)="C-" K DIR S DIR(0)="E" D ^DIR K DIR S:+Y=0 DGQ=1
|
---|
87 | Q
|
---|
88 | ;
|
---|
89 | HEAD ;Print/Display page header
|
---|
90 | ;
|
---|
91 | I $D(ZTQUEUED),$$S^%ZTLOAD S (ZTSTOP,DGQ)=1 Q
|
---|
92 | W:'($E(IOST,1,2)'="C-"&'DGPAGE) @IOF
|
---|
93 | ;
|
---|
94 | S DGPAGE=$G(DGPAGE)+1
|
---|
95 | W !?(IOM/2)-($L(DGHSTR)/2),DGHSTR
|
---|
96 | W !?(IOM/2)-($L(DGHSTR1)/2),DGHSTR1
|
---|
97 | W ?68,"Page: ",$G(DGPAGE)
|
---|
98 | W !,"Date Range: ",DGBEG_" to "_DGEND
|
---|
99 | W ?50,"Printed: ",DGDT
|
---|
100 | W !,"Sorted By: ",DGHSTR2
|
---|
101 | W !,DGLINE,!
|
---|
102 | Q
|
---|
103 | ;
|
---|
104 | HEAD1 W !,"Flag Name: ",$G(DGFG)," - Category II (Local)"
|
---|
105 | Q
|
---|
106 | ;
|
---|
107 | HEAD2 W !,"Principal Investigator: "
|
---|
108 | ; <---- length = 24 ----->
|
---|
109 | ; check string length so we don't wrap on screen/printer (80) max
|
---|
110 | I $L(DGPISTR)'>55 W ?24,DGPISTR
|
---|
111 | E D
|
---|
112 | . N X,Y
|
---|
113 | . S X=""
|
---|
114 | . F Y=1:1:$L(DGPISTR,"; ") D
|
---|
115 | . . I $L(X_$P(DGPISTR,"; ",Y))>53 W ?24,X,";" S X="" W !
|
---|
116 | . . S:X]"" X=X_"; "
|
---|
117 | . . S X=X_$P(DGPISTR,"; ",Y)
|
---|
118 | . W ?24,X
|
---|
119 | Q
|
---|
120 | ;
|
---|
121 | HEAD3 W !!,"PATIENT",?18,"SSN",?30,"ACTION",?48,"ACTION DT",?60,"REVIEW DT",?71,"STATUS"
|
---|
122 | W !,"================",?18,"==========",?30,"================",?48,"=========",?60,"=========",?71,"========="
|
---|
123 | Q
|
---|
124 | ;
|
---|
125 | PISTR(DGFG) ;string Principal Investigators together for sub-header display
|
---|
126 | ;
|
---|
127 | ; Input:
|
---|
128 | ; DGFG - flag name subscript
|
---|
129 | ;
|
---|
130 | ; Output:
|
---|
131 | ; Function Value - string of Principal Investigator names
|
---|
132 | ; i.e. - "Johnny Cash; Bob Smith; Pete Best; ect..."
|
---|
133 | ;
|
---|
134 | N DGRSLT ;returned function value
|
---|
135 | N DGPI ;principal investigator person ien
|
---|
136 | S DGRSLT=""
|
---|
137 | ;
|
---|
138 | I $O(@DGLIST@(DGFG,0,""))="" D
|
---|
139 | . S DGRSLT="No Principal Investigator names on file"
|
---|
140 | ;
|
---|
141 | I $O(@DGLIST@(DGFG,0,"")) D
|
---|
142 | . S DGPI=""
|
---|
143 | . F S DGPI=$O(@DGLIST@(DGFG,0,DGPI)) Q:DGPI="" D Q:$L(DGRSLT)>450
|
---|
144 | . . S:DGRSLT]"" DGRSLT=DGRSLT_"; "
|
---|
145 | . . S DGRSLT=DGRSLT_$G(@DGLIST@(DGFG,0,DGPI))
|
---|
146 | Q DGRSLT
|
---|