1
- import 'package:fhir_r4/fhir_r4.dart' ;
2
1
import 'package:flutter/material.dart' ;
3
2
import 'package:get/get.dart' ;
4
3
import 'package:symptom_tracker/services/services.dart' ;
@@ -7,33 +6,45 @@ import 'package:symptom_tracker/shared/shared.dart';
7
6
class FhirView extends StatelessWidget {
8
7
@override
9
8
Widget build (BuildContext context) {
10
- return Center (
11
- child: SharedActionButton (
12
- title: 'Get FHIR data' ,
13
- onPressed: () async {
14
- List <Quantity > data = await FhirService ().getResponse ();
15
- Get .defaultDialog (
16
- content: Container (
17
- height: 500 ,
18
- width: 300 ,
19
- child: ListView (
20
- shrinkWrap: true ,
21
- children: < Widget > [
22
- ...data.map ((f) {
23
- return Row (
24
- mainAxisAlignment: MainAxisAlignment .spaceBetween,
25
- children: < Widget > [
26
- Text ('${f .value }' ),
27
- Text ('${f .unit }' ),
28
- ],
29
- );
30
- })
9
+ return GetBuilder <FhirManager >(
10
+ init: FhirManager (),
11
+ builder: (data) => data.isBusy
12
+ ? Center (child: CircularProgressIndicator ())
13
+ : Column (
14
+ mainAxisAlignment: MainAxisAlignment .spaceEvenly,
15
+ children: [
16
+ //* Aidbox FHIR calls
17
+ SharedActionButton (
18
+ title: 'Aidbox: Vitals' ,
19
+ onPressed: () => data.aidboxVitals (),
20
+ ),
21
+
22
+ //* Hapi FHIR calls
23
+ Row (
24
+ mainAxisAlignment: MainAxisAlignment .spaceEvenly,
25
+ children: < Widget > [
26
+ _nameContainer (data.lastName, 'Last name' ),
27
+ _nameContainer (data.firstName, 'First name' ),
28
+ ],
29
+ ),
30
+ Row (
31
+ mainAxisAlignment: MainAxisAlignment .spaceEvenly,
32
+ children: < Widget > [
33
+ SmallActionButton (title: 'Hapi: Search' , onPressed: () => data.hapiSearch ()),
34
+ SmallActionButton (title: 'Hapi: Create' , onPressed: () => data.hapiCreate ()),
35
+ ],
36
+ )
31
37
],
32
38
),
33
- ));
34
- print (data);
35
- },
36
- ),
37
39
);
38
40
}
41
+
42
+ Container _nameContainer (TextEditingController name, String text) => Container (
43
+ width: Get .width / 3 ,
44
+ margin: EdgeInsets .symmetric (horizontal: 8 ),
45
+ child: TextField (
46
+ controller: name,
47
+ decoration: InputDecoration (hintText: text),
48
+ ),
49
+ );
39
50
}
0 commit comments