import 'dart:convert'; import 'package:fhir/r4.dart'; import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; void main() { runApp(MaterialApp(home: const MyApp())); } class MyApp extends StatefulWidget { const MyApp({Key? key}) : super(key: key); @override State createState() => _MyAppState(); } class _MyAppState extends State { TextEditingController controller = TextEditingController(); String observationId = ''; Future sendObs(String value) async { Observation observation = Observation( resourceType: R4ResourceType.Observation, status: ObservationStatus.final_, code: CodeableConcept(coding: [ Coding( system: FhirUri('www.snomed.org'), display: 'Valore', code: Code('0000') ) ]), subject: Reference( reference: "Patient/2936332", //luca rossi ), valueString: value ); var response = await http.post(Uri.parse('$server/Observation'), headers: headers, body: jsonEncode(observation.toJson())); if(response.statusCode == 200 || response.statusCode == 201) { return Observation.fromJson(jsonDecode(response.body)); } else { return null; } } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: const Text('Prova FHIR')), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ const Text('Valore Observation:'), TextField( controller: controller, ), ElevatedButton(onPressed: () async { Observation? obs = await sendObs(controller.text); setState(() { observationId = obs!.id.toString(); }); }, child: const Text('Send Observation')), Text(observationId), ], ), ), ); } } //header chiamata final Map headers = { "Content-Type": "application/fhir+json", }; const server = 'https://hapi.fhir.org/baseR4';