1
1
"use server" ;
2
2
3
3
import { fetchBundle } from "@/lib/fhir/bundle" ;
4
- import { LocationData , SummaryItem } from "@/lib/models/types" ;
4
+ import { SummaryItem } from "@/lib/models/types" ;
5
5
import { FilterFormData } from "@/model/filters" ;
6
6
import { fhirR4 } from "@smile-cdr/fhirts" ;
7
7
import { fixDate } from "./model" ;
@@ -10,16 +10,10 @@ import {
10
10
createQuestionnaireResponseFilters ,
11
11
} from "./filters" ;
12
12
import { eachDayOfInterval } from "@/lib/utils" ;
13
+ import { fetchLocations } from "@/lib/api/server" ;
13
14
14
15
export async function fetchRequiredData ( ) {
15
- const locationQuery = paramGenerator ( "/Location" , {
16
- _count : 100 ,
17
- type : "https://d-tree.org/fhir/location-type|facility" ,
18
- } ) ;
19
- var bundle = await fetchBundle ( [ locationQuery ] ) ;
20
- const locations = getLocationData (
21
- bundle . entry ?. [ 0 ] ?. resource as fhirR4 . Bundle
22
- ) ;
16
+ const locations = await fetchLocations ( ) ;
23
17
return {
24
18
locations,
25
19
} ;
@@ -99,9 +93,15 @@ export async function fetchData(formData: FormData) {
99
93
baseFilter ,
100
94
false
101
95
) ,
102
- createPatientFilters ( [ "newly-diagnosed-client" ] , null , baseFilter , true ) ,
103
- createPatientFilters ( [ "client-already-on-art" ] , null , baseFilter , true ) ,
104
- createPatientFilters ( [ "exposed-infant" ] , null , baseFilter , true ) ,
96
+ createPatientFilters ( [ "newly-diagnosed-client" ] , null , baseFilter , {
97
+ hasCount : true ,
98
+ } ) ,
99
+ createPatientFilters ( [ "client-already-on-art" ] , null , baseFilter , {
100
+ hasCount : true ,
101
+ } ) ,
102
+ createPatientFilters ( [ "exposed-infant" ] , null , baseFilter , {
103
+ hasCount : true ,
104
+ } ) ,
105
105
createQuestionnaireResponseFilters (
106
106
"patient-finish-visit" ,
107
107
rawDate ,
@@ -181,20 +181,6 @@ export async function fetchData(formData: FormData) {
181
181
} ;
182
182
}
183
183
184
- const getLocationData = ( bundle : fhirR4 . Bundle | undefined ) : LocationData [ ] => {
185
- if ( bundle == undefined ) {
186
- return [ ] ;
187
- }
188
- return (
189
- bundle . entry ?. map ( ( entry ) => {
190
- return {
191
- id : entry . resource ?. id ?? "" ,
192
- name : ( entry . resource as fhirR4 . Location ) ?. name ?? "" ,
193
- } ;
194
- } ) ?? [ ]
195
- ) ;
196
- } ;
197
-
198
184
const getResults = (
199
185
bundle : fhirR4 . Bundle | undefined ,
200
186
summary : string [ ] ,
@@ -231,12 +217,3 @@ const getResults = (
231
217
} ) ?? [ ]
232
218
) ;
233
219
} ;
234
-
235
- const paramGenerator = (
236
- resources : string ,
237
- params : Record < string , string | number | string >
238
- ) => {
239
- return `${ resources } ?${ Object . keys ( params )
240
- . map ( ( key ) => `${ key } =${ params [ key ] } ` )
241
- . join ( "&" ) } `;
242
- } ;
0 commit comments