1 | DGPFRPI1 ;ALB/RBS - PRF PRINCIPAL INVEST REPORT CONT. ; 6/8/04 5:07pm
|
---|
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 | ; Input: DGSORT() - Array containing user report parameters.
|
---|
8 | ;
|
---|
9 | ; Output: A formatted report of the Principal Investigator person's
|
---|
10 | ; associated patient record flag assignments.
|
---|
11 | ;
|
---|
12 | ;- no direct entry
|
---|
13 | QUIT
|
---|
14 | ;
|
---|
15 | START ; compile and print report
|
---|
16 | ;
|
---|
17 | I $E(IOST)="C" D WAIT^DICD
|
---|
18 | N DGLIST ;temp global name used for report list
|
---|
19 | S DGLIST=$NA(^TMP("DGPFRPI1",$J))
|
---|
20 | K @DGLIST
|
---|
21 | D LOOP(.DGSORT,DGLIST)
|
---|
22 | D PRINT^DGPFRPI2(.DGSORT,DGLIST)
|
---|
23 | K @DGLIST
|
---|
24 | D EXIT
|
---|
25 | Q
|
---|
26 | ;
|
---|
27 | LOOP(DGSORT,DGLIST) ;use sort var's for record searching to build list
|
---|
28 | ; Input:
|
---|
29 | ; DGSORT - array of user selected report parameters
|
---|
30 | ; DGLIST - temp global name
|
---|
31 | ;
|
---|
32 | ; Output:
|
---|
33 | ; ^TMP("DGPFRPI1",$J) - temp global containing report output
|
---|
34 | ;
|
---|
35 | N DGAIEN ;patient assignment ien
|
---|
36 | N DGBEG ;sort beginning date
|
---|
37 | N DGCNT ;flag counter
|
---|
38 | N DGDFNLST ;array of patient dfn's assigned to the flag
|
---|
39 | N DGEND ;sort ending date
|
---|
40 | N DGFIEN ;flag ien
|
---|
41 | N DGFLAG ;local array used to hold flag record
|
---|
42 | N DGPI ;principal investigator person ien
|
---|
43 | N DGPIIEN ;sort selection var
|
---|
44 | N DGPINAME ;name of principal investigator
|
---|
45 | N DGPINUM ;subscript number for principal investigator
|
---|
46 | N DGPRINC ;principal investigator sort
|
---|
47 | N DGSTAT ;status of assignment
|
---|
48 | N DGSTATUS ;sort status
|
---|
49 | N DGSUB ;loop flag name var
|
---|
50 | N DGVPTR ;variable pointer of flag record (i.e.) "25;DGPF(26.11,"
|
---|
51 | N DGX ;loop var
|
---|
52 | ;
|
---|
53 | ; setup variables equal to user input parameter subscripts
|
---|
54 | ; Only Category II (Local) ^DGPF(26.11) file for Research Flags
|
---|
55 | ; "DGPRINC", "DGSTATUS", "DGBEG", "DGEND"
|
---|
56 | S DGX="" F S DGX=$O(DGSORT(DGX)) Q:DGX="" S @DGX=DGSORT(DGX)
|
---|
57 | ;
|
---|
58 | S DGPIIEN=+DGPRINC ; if 0, then 'A'll PI sort was selected
|
---|
59 | S DGSTAT=+DGSTATUS
|
---|
60 | S:DGSTAT=2 DGSTAT=0 ; inactive assignment status value is '0'
|
---|
61 | ;
|
---|
62 | ; loop research type (2) record flag x-ref
|
---|
63 | S DGSUB="",DGCNT=0
|
---|
64 | F S DGSUB=$O(^DGPF(26.11,"ATYP",2,DGSUB)) Q:DGSUB="" D
|
---|
65 | . S DGFIEN=""
|
---|
66 | . F S DGFIEN=$O(^DGPF(26.11,"ATYP",2,DGSUB,DGFIEN)) Q:DGFIEN="" D
|
---|
67 | . . K DGFLAG
|
---|
68 | . . Q:'$$GETLF^DGPFALF(DGFIEN,.DGFLAG) ;local flag record data
|
---|
69 | . . Q:DGPIIEN&'$D(^DGPF(26.11,DGFIEN,2,"B",DGPIIEN))
|
---|
70 | . . S (DGPINUM,DGPI)=""
|
---|
71 | . . F S DGPINUM=$O(DGFLAG("PRININV",DGPINUM)) Q:DGPINUM="" D
|
---|
72 | . . . S DGPI=$P($G(DGFLAG("PRININV",DGPINUM,0)),U)
|
---|
73 | . . . S DGPINAME=$P($G(DGFLAG("PRININV",DGPINUM,0)),U,2)
|
---|
74 | . . . S:DGPINAME']"" DGPINAME="Missing Name"
|
---|
75 | . . . S DGVPTR=DGFIEN_";DGPF(26.11," ; flag variable pointer setup
|
---|
76 | . . . K DGDFNLST
|
---|
77 | . . . S DGCNT=$$ASGNCNT^DGPFLF6(DGVPTR,.DGDFNLST) ;patient dfn list
|
---|
78 | . . . Q:'DGCNT
|
---|
79 | . . . D BLDTMP(DGBEG,DGEND,DGSTAT,DGPI,DGPINAME,.DGDFNLST,DGLIST)
|
---|
80 | Q
|
---|
81 | ;
|
---|
82 | BLDTMP(DGBEG,DGEND,DGSTAT,DGPI,DGPINAME,DGDFNLST,DGLIST) ; list global builder
|
---|
83 | ; Input:
|
---|
84 | ; DGBEG - sort beginning date
|
---|
85 | ; DGEND - sort ending date
|
---|
86 | ; DGSTAT - status of assignment
|
---|
87 | ; DGPI - principal investigator person ien
|
---|
88 | ; DGPINAME - name of principal investigator
|
---|
89 | ; DGDFNLST - array of patient dfn's assigned to the flag
|
---|
90 | ; DGLIST - temp global name used for report list
|
---|
91 | ;
|
---|
92 | ; Output:
|
---|
93 | ; ^TMP("DGPFRPI1",$J) - temp global containing report output
|
---|
94 | ;
|
---|
95 | N DGACTDT ;initial entry date
|
---|
96 | N DGAIEN ;patient assignment ien
|
---|
97 | N DGDFN ;pointer to patient being reported on
|
---|
98 | N DGFGNM ;flag name
|
---|
99 | N DGHIEN ;history assignment ien
|
---|
100 | N DGINIT ;initial assignment date
|
---|
101 | N DGPFA ;assignment data array
|
---|
102 | N DGPFAH ;assignment history data array
|
---|
103 | N DGLINE ;report detail line
|
---|
104 | N DGPAT ;array of patient demographics
|
---|
105 | N DGPNM ;patient name
|
---|
106 | N DGREV ;review date
|
---|
107 | ;
|
---|
108 | S DGDFN=""
|
---|
109 | F S DGDFN=$O(DGDFNLST(DGDFN)) Q:DGDFN="" D
|
---|
110 | . S DGAIEN=$G(DGDFNLST(DGDFN))
|
---|
111 | . Q:DGAIEN=""
|
---|
112 | . K DGPFA
|
---|
113 | . Q:'$$GETASGN^DGPFAA(DGAIEN,.DGPFA) ;get assignment data
|
---|
114 | . Q:DGDFN'=$P(DGPFA("DFN"),U)
|
---|
115 | . I DGSTAT'=3,+DGPFA("STATUS")'=DGSTAT Q ;not correct status
|
---|
116 | . ; get last history record (most current)
|
---|
117 | . K DGPFAH
|
---|
118 | . S DGHIEN=$$GETLAST^DGPFAAH(DGAIEN)
|
---|
119 | . Q:'DGHIEN
|
---|
120 | . Q:'$$GETHIST^DGPFAAH(DGHIEN,.DGPFAH)
|
---|
121 | . S DGINIT=+$$GETADT^DGPFAAH(DGAIEN) ;initial assignment date
|
---|
122 | . Q:'DGINIT
|
---|
123 | . ; check if assignment falls within the Begin and End dates
|
---|
124 | . I DGINIT>DGBEG&($P(DGINIT,".")'>DGEND) D
|
---|
125 | . . ; get patient demographics
|
---|
126 | . . K DGPAT
|
---|
127 | . . Q:'$$GETPAT^DGPFUT2(DGDFN,.DGPAT)
|
---|
128 | . . S DGPNM=DGPAT("NAME")
|
---|
129 | . . S:DGPNM']"" DGPNM="Missing Patient Name"
|
---|
130 | . . S DGFGNM=$P(DGPFA("FLAG"),U,2)
|
---|
131 | . . S:DGFGNM']"" DGFGNM="Missing Flag Name"
|
---|
132 | . . S DGACTDT=$$FDATE^VALM1(+DGPFAH("ASSIGNDT"))
|
---|
133 | . . S DGAIEN=+DGPFAH("ASSIGN")
|
---|
134 | . . I +DGPFA("REVIEWDT") S DGREV=$$FDATE^VALM1(+DGPFA("REVIEWDT"))
|
---|
135 | . . E S DGREV="N/A"
|
---|
136 | . . S DGLINE=DGPAT("SSN")_U_$P(DGPFAH("ACTION"),U,2)_U_DGACTDT_U_DGREV_U_$P(DGPFA("STATUS"),U,2)
|
---|
137 | . . ; - Flag Name, 0 node, IEN of Principal Investigator = PI Name
|
---|
138 | . . S @DGLIST@(DGFGNM,0,DGPI)=DGPINAME
|
---|
139 | . . ; - Flag Name, Pat Name, DFN, Asignment IEN
|
---|
140 | . . S @DGLIST@(DGFGNM,DGPNM,DGDFN,DGAIEN)=DGLINE
|
---|
141 | Q
|
---|
142 | ;
|
---|
143 | EXIT ;
|
---|
144 | I $D(ZTQUEUED) S ZTREQ="@"
|
---|
145 | I '$D(ZTQUEUED) D
|
---|
146 | . K %ZIS,POP
|
---|
147 | . D ^%ZISC,HOME^%ZIS
|
---|
148 | Q
|
---|