1 | DGPFAA ;ALB/RPM - PRF ASSIGNMENT API'S ; 3/27/03
|
---|
2 | ;;5.3;Registration;**425**;Aug 13, 1993
|
---|
3 | ;
|
---|
4 | Q ;no direct entry
|
---|
5 | ;
|
---|
6 | GETALL(DGDFN,DGIENS,DGSTAT,DGCAT) ;retrieve list of assignment IENs
|
---|
7 | ;This function returns an array of patient record flag assignment IENs
|
---|
8 | ;for a given patient. The returned IEN array may optionally be
|
---|
9 | ;filtered by Active or Inactive status and by flag category.
|
---|
10 | ;
|
---|
11 | ; Input:
|
---|
12 | ; DGDFN - (required) Pointer to patient in PATIENT (#2) file
|
---|
13 | ; DGIENS - (required) Result array passed by reference
|
---|
14 | ; DGSTAT - (optional) Status filter (0:Inactive,1:Active,"":Both).
|
---|
15 | ; Defaults to Both.
|
---|
16 | ; DGCAT - (optional) Category filter
|
---|
17 | ; (1:Category I,2:Category II,"":Both). Defaults to Both.
|
---|
18 | ;
|
---|
19 | ; Output:
|
---|
20 | ; Function Value - Count of returned IENs
|
---|
21 | ; DGIENS - Output array subscripted by the assignment IENs
|
---|
22 | ;
|
---|
23 | N DGCNT ;number of returned values
|
---|
24 | N DGIEN ;single IEN
|
---|
25 | N DGCKS ;check status flag (1:check, 0:ignore)
|
---|
26 | N DGFLAG ;pointer to #26.11 or #26.15
|
---|
27 | ;
|
---|
28 | S DGCNT=0
|
---|
29 | I $G(DGDFN)>0,$D(^DGPF(26.13,"B",DGDFN)) D
|
---|
30 | . S DGFLAG=""
|
---|
31 | . S DGCKS=0
|
---|
32 | . S DGSTAT=$G(DGSTAT)
|
---|
33 | . I DGSTAT=0!(DGSTAT=1) S DGCKS=1
|
---|
34 | . S DGCAT=+$G(DGCAT)
|
---|
35 | . S DGCAT=$S(DGCAT=1:"26.15",DGCAT=2:"26.11",1:0)
|
---|
36 | . F S DGFLAG=$O(^DGPF(26.13,"C",DGDFN,DGFLAG)) Q:(DGFLAG="") D
|
---|
37 | . . I DGCAT,DGFLAG'[DGCAT Q
|
---|
38 | . . S DGIEN=$O(^DGPF(26.13,"C",DGDFN,DGFLAG,0))
|
---|
39 | . . I DGCKS,'$D(^DGPF(26.13,"D",DGDFN,DGSTAT,DGIEN)) Q
|
---|
40 | . . S DGCNT=DGCNT+1
|
---|
41 | . . S DGIENS(DGIEN)=""
|
---|
42 | Q DGCNT
|
---|
43 | ;
|
---|
44 | GETASGN(DGPFIEN,DGPFA) ;retrieve a single assignment record
|
---|
45 | ;This function returns a single patient record flag assignment in an
|
---|
46 | ;array format.
|
---|
47 | ;
|
---|
48 | ; Input:
|
---|
49 | ; DGPFIEN - (required) Pointer to patient record flag assignment in
|
---|
50 | ; PRF ASSIGNMENT (#26.13) file
|
---|
51 | ; DGPFA - (required) Result array passed by reference
|
---|
52 | ;
|
---|
53 | ; Output:
|
---|
54 | ; Function Value - Returns 1 on success, 0 on failure
|
---|
55 | ; DGPFA - Output array containing assignment record field
|
---|
56 | ; values.
|
---|
57 | ; Subscript Field# Data
|
---|
58 | ; -------------- ------- ---------------------
|
---|
59 | ; "DFN" .01 internal^external
|
---|
60 | ; "FLAG" .02 internal^external
|
---|
61 | ; "STATUS" .03 internal^external
|
---|
62 | ; "OWNER" .04 internal^external
|
---|
63 | ; "ORIGSITE" .05 internal^external
|
---|
64 | ; "REVIEWDT" .06 internal^external
|
---|
65 | ; "NARR",line#,0 1 character string
|
---|
66 | ;
|
---|
67 | N DGIENS ;IEN string for DIQ
|
---|
68 | N DGFLDS ;results array for DIQ
|
---|
69 | N DGERR ;error arrary for DIQ
|
---|
70 | N DGRSLT
|
---|
71 | ;
|
---|
72 | S DGRSLT=0
|
---|
73 | I $G(DGPFIEN)>0,$D(^DGPF(26.13,DGPFIEN)) D
|
---|
74 | . S DGIENS=DGPFIEN_","
|
---|
75 | . D GETS^DIQ(26.13,DGIENS,"*","IEZ","DGFLDS","DGERR")
|
---|
76 | . Q:$D(DGERR)
|
---|
77 | . S DGRSLT=1
|
---|
78 | . S DGPFA("DFN")=$G(DGFLDS(26.13,DGIENS,.01,"I"))_U_$G(DGFLDS(26.13,DGIENS,.01,"E"))
|
---|
79 | . S DGPFA("FLAG")=$G(DGFLDS(26.13,DGIENS,.02,"I"))_U_$G(DGFLDS(26.13,DGIENS,.02,"E"))
|
---|
80 | . S DGPFA("STATUS")=$G(DGFLDS(26.13,DGIENS,.03,"I"))_U_$G(DGFLDS(26.13,DGIENS,.03,"E"))
|
---|
81 | . S DGPFA("OWNER")=$G(DGFLDS(26.13,DGIENS,.04,"I"))_U_$G(DGFLDS(26.13,DGIENS,.04,"E"))
|
---|
82 | . S DGPFA("ORIGSITE")=$G(DGFLDS(26.13,DGIENS,.05,"I"))_U_$G(DGFLDS(26.13,DGIENS,.05,"E"))
|
---|
83 | . S DGPFA("REVIEWDT")=$G(DGFLDS(26.13,DGIENS,.06,"I"))_U_$G(DGFLDS(26.13,DGIENS,.06,"E"))
|
---|
84 | . ;build assignment narrative word processing array
|
---|
85 | . M DGPFA("NARR")=DGFLDS(26.13,DGIENS,1)
|
---|
86 | . K DGPFA("NARR","E"),DGPFA("NARR","I")
|
---|
87 | Q DGRSLT
|
---|
88 | ;
|
---|
89 | FNDASGN(DGPFDFN,DGPFFLG) ;Find Assignment
|
---|
90 | ; This function finds a patient record flag assignment record.
|
---|
91 | ;
|
---|
92 | ; Input:
|
---|
93 | ; DGDFN - Pointer to patient in the PATIENT (#2) file
|
---|
94 | ; DGFLAG - Pointer to flag in either the PRF LOCAL FLAG (#26.11)
|
---|
95 | ; file or the PRF NATIONAL FLAG (#26.15) file
|
---|
96 | ;
|
---|
97 | ; Output:
|
---|
98 | ; Function Value - Returns IEN of existing record on success, 0 on
|
---|
99 | ; failure
|
---|
100 | ;
|
---|
101 | N DGIEN
|
---|
102 | ;
|
---|
103 | I $G(DGPFDFN)>0,($G(DGPFFLG)>0) D
|
---|
104 | . S DGIEN=$O(^DGPF(26.13,"C",DGPFDFN,DGPFFLG,0))
|
---|
105 | Q $S($G(DGIEN)>0:DGIEN,1:0)
|
---|
106 | ;
|
---|
107 | STOASGN(DGPFA,DGPFERR) ;store a single PRF ASSIGNMENT (#26.13) file record
|
---|
108 | ;
|
---|
109 | ; Input:
|
---|
110 | ; DGPFA - (required) array of values to be filed (see GETASGN tag
|
---|
111 | ; above for valid array structure)
|
---|
112 | ; DGPFERR - (optional) passed by reference to contain error messages
|
---|
113 | ;
|
---|
114 | ; Output:
|
---|
115 | ; Function Value - Returns IEN of record on success, 0 on failure
|
---|
116 | ; DGPFERR - Undefined on success, error message on failure
|
---|
117 | ;
|
---|
118 | N DGSUB
|
---|
119 | N DGFLD
|
---|
120 | N DGIEN
|
---|
121 | N DGIENS
|
---|
122 | N DGFDA
|
---|
123 | N DGFDAIEN
|
---|
124 | N DGERR
|
---|
125 | F DGSUB="DFN","FLAG","STATUS","OWNER","ORIGSITE" D
|
---|
126 | . S DGFLD(DGSUB)=$P($G(DGPFA(DGSUB)),U,1)
|
---|
127 | ;
|
---|
128 | ;only build DGFLD("REVIEWDT") if "REVIEWDT" is passed
|
---|
129 | I $D(DGPFA("REVIEWDT"))=1 S DGFLD("REVIEWDT")=$P(DGPFA("REVIEWDT"),U,1)
|
---|
130 | ;
|
---|
131 | I $D(DGPFA("NARR")) M DGFLD("NARR")=DGPFA("NARR")
|
---|
132 | I $$VALID^DGPFUT("DGPFAA1",26.13,.DGFLD,.DGPFERR) D
|
---|
133 | . S DGIEN=$$FNDASGN^DGPFAA(DGFLD("DFN"),DGFLD("FLAG"))
|
---|
134 | . I DGIEN S DGIENS=DGIEN_","
|
---|
135 | . E S DGIENS="+1,"
|
---|
136 | . S DGFDA(26.13,DGIENS,.01)=DGFLD("DFN")
|
---|
137 | . S DGFDA(26.13,DGIENS,.02)=DGFLD("FLAG")
|
---|
138 | . S DGFDA(26.13,DGIENS,.03)=DGFLD("STATUS")
|
---|
139 | . S DGFDA(26.13,DGIENS,.04)=DGFLD("OWNER")
|
---|
140 | . S DGFDA(26.13,DGIENS,.05)=DGFLD("ORIGSITE")
|
---|
141 | . ;
|
---|
142 | . ;only touch REVIEW DATE (#.06) field if "REVIEWDT" is passed
|
---|
143 | . I $D(DGFLD("REVIEWDT")) S DGFDA(26.13,DGIENS,.06)=DGFLD("REVIEWDT")
|
---|
144 | . ;
|
---|
145 | . S DGFDA(26.13,DGIENS,1)="DGFLD(""NARR"")"
|
---|
146 | . I DGIEN D
|
---|
147 | . . D FILE^DIE("","DGFDA","DGERR")
|
---|
148 | . . I $D(DGERR) S DGIEN=0
|
---|
149 | . E D
|
---|
150 | . . D UPDATE^DIE("","DGFDA","DGFDAIEN","DGERR")
|
---|
151 | . . I '$D(DGERR) S DGIEN=$G(DGFDAIEN(1))
|
---|
152 | Q $S($G(DGIEN)>0:DGIEN,1:0)
|
---|
153 | ;
|
---|
154 | STOALL(DGPFA,DGPFAH,DGPFERR) ;store both the assignment and history record
|
---|
155 | ;This function acts as a wrapper around the $$STOASGN and $$STOHIST
|
---|
156 | ;filer calls.
|
---|
157 | ;
|
---|
158 | ; Input:
|
---|
159 | ; DGPFA - (required) array of assignment values to be filed (see
|
---|
160 | ; $$GETASGN^DGPFAA for valid array structure)
|
---|
161 | ; DGPFAH - (required) array of assignment history values to be filed
|
---|
162 | ; (see $$STOHIST^DGPFAAH for valid array structure)
|
---|
163 | ; DGPFERR - (optional) passed by reference to contain error messages
|
---|
164 | ;
|
---|
165 | ; Output:
|
---|
166 | ; Function Value - Returns circumflex("^") delimited results of
|
---|
167 | ; $$STOASGN^DGPFAA and $$STOHIST^DGPFAAH calls
|
---|
168 | ; DGPFERR - Undefined on success, error message on failure
|
---|
169 | ;
|
---|
170 | N DGOIEN ;existing assignment file IEN used for "roll-back"
|
---|
171 | N DGPFOA ;existing assignment data array used for "roll-back"
|
---|
172 | N DGAIEN ;assignment file IEN
|
---|
173 | N DGAHIEN ;assignment history file IEN
|
---|
174 | N DGDFN ;"DFN" value
|
---|
175 | N DGFLG ;"FLAG" value
|
---|
176 | ;
|
---|
177 | S (DGAIEN,DGAHIEN)=0
|
---|
178 | S DGDFN=$P($G(DGPFA("DFN")),U,1)
|
---|
179 | S DGFLG=$P($G(DGPFA("FLAG")),U,1)
|
---|
180 | S DGOIEN=$$FNDASGN^DGPFAA(DGDFN,DGFLG)
|
---|
181 | D ;drops out of block if can't rollback or assignment filer fails
|
---|
182 | . I DGOIEN,'$$GETASGN^DGPFAA(DGOIEN,.DGPFOA) Q ;can't rollback, so quit
|
---|
183 | . ;
|
---|
184 | . ;store the assignment
|
---|
185 | . S DGAIEN=$$STOASGN^DGPFAA(.DGPFA,.DGPFERR)
|
---|
186 | . I $D(DGPFERR) S DGAIEN=0
|
---|
187 | . Q:'DGAIEN ;assignment filer failed, so quit
|
---|
188 | . ;
|
---|
189 | . ;store the assignment history
|
---|
190 | . S DGPFAH("ASSIGN")=DGAIEN
|
---|
191 | . S DGAHIEN=$$STOHIST^DGPFAAH(.DGPFAH,.DGPFERR)
|
---|
192 | . I $D(DGPFERR) S DGAHIEN=0
|
---|
193 | . I DGAHIEN=0 D ;history filer failed, so rollback the assignment
|
---|
194 | . . I 'DGOIEN,'$D(DGPFOA) S DGPFOA("DFN")="@"
|
---|
195 | . . I $$ROLLBACK^DGPFAA2(DGAIEN,.DGPFOA) S DGAIEN=0
|
---|
196 | Q $S(+$G(DGAHIEN)=0:0,1:DGAIEN_"^"_DGAHIEN)
|
---|