Claim and statement fix

This commit is contained in:
2025-05-20 15:03:47 +02:00
parent 8985cf1922
commit 4ab05e5e86
5 changed files with 41 additions and 31 deletions

View File

@@ -21,6 +21,7 @@ class MIHClaimStatementGenerationApi {
Future<void> generateClaimStatement( Future<void> generateClaimStatement(
ClaimStatementGenerationArguments data, ClaimStatementGenerationArguments data,
PatientViewArguments args, PatientViewArguments args,
String env,
BuildContext context, BuildContext context,
) async { ) async {
//start loading circle //start loading circle
@@ -31,6 +32,11 @@ class MIHClaimStatementGenerationApi {
}, },
); );
DateTime now = new DateTime.now();
// DateTime date = new DateTime(now.year, now.month, now.day);
String fileName =
"${data.document_type}-${data.patient_full_name}-${now.toString().substring(0, 19)}.pdf"
.replaceAll(RegExp(r' '), '-');
var response1 = await http.post( var response1 = await http.post(
Uri.parse("${AppEnviroment.baseApiUrl}/minio/generate/claim-statement/"), Uri.parse("${AppEnviroment.baseApiUrl}/minio/generate/claim-statement/"),
headers: <String, String>{ headers: <String, String>{
@@ -39,7 +45,9 @@ class MIHClaimStatementGenerationApi {
body: jsonEncode(<String, dynamic>{ body: jsonEncode(<String, dynamic>{
"document_type": data.document_type, "document_type": data.document_type,
"patient_app_id": data.patient_app_id, "patient_app_id": data.patient_app_id,
"env": env,
"patient_full_name": data.patient_full_name, "patient_full_name": data.patient_full_name,
"fileName": fileName,
"patient_id_no": data.patient_id_no, "patient_id_no": data.patient_id_no,
"has_med_aid": data.has_med_aid, "has_med_aid": data.has_med_aid,
"med_aid_no": data.med_aid_no, "med_aid_no": data.med_aid_no,
@@ -66,10 +74,6 @@ class MIHClaimStatementGenerationApi {
}), }),
); );
//print(response1.statusCode); //print(response1.statusCode);
DateTime now = new DateTime.now();
DateTime date = new DateTime(now.year, now.month, now.day);
String fileName =
"${data.document_type}-${data.patient_full_name}-${date.toString().substring(0, 10)}.pdf";
if (response1.statusCode == 200) { if (response1.statusCode == 200) {
//Update this API //Update this API
var response2 = await http.post( var response2 = await http.post(
@@ -176,6 +180,7 @@ class MIHClaimStatementGenerationApi {
/// Returns VOID (TRIGGERS NOTIGICATIOPN ON SUCCESS) /// Returns VOID (TRIGGERS NOTIGICATIOPN ON SUCCESS)
static Future<void> deleteClaimStatementFilesByFileID( static Future<void> deleteClaimStatementFilesByFileID(
PatientViewArguments args, PatientViewArguments args,
String env,
String filePath, String filePath,
int fileID, int fileID,
BuildContext context, BuildContext context,
@@ -192,7 +197,10 @@ class MIHClaimStatementGenerationApi {
headers: <String, String>{ headers: <String, String>{
"Content-Type": "application/json; charset=UTF-8" "Content-Type": "application/json; charset=UTF-8"
}, },
body: jsonEncode(<String, dynamic>{"file_path": filePath}), body: jsonEncode(<String, dynamic>{
"file_path": filePath,
"env": env,
}),
); );
//print("Here4"); //print("Here4");
//print(response.statusCode); //print(response.statusCode);
@@ -203,7 +211,8 @@ class MIHClaimStatementGenerationApi {
headers: <String, String>{ headers: <String, String>{
"Content-Type": "application/json; charset=UTF-8" "Content-Type": "application/json; charset=UTF-8"
}, },
body: jsonEncode(<String, dynamic>{"idclaim_statement_file": fileID}), body: jsonEncode(
<String, dynamic>{"idclaim_statement_file": fileID, "env": env}),
); );
if (response2.statusCode == 200) { if (response2.statusCode == 200) {
Navigator.of(context).pop(); Navigator.of(context).pop();

View File

@@ -23,12 +23,14 @@ class ClaimStatementWindow extends StatefulWidget {
final AppUser signedInUser; final AppUser signedInUser;
final Business? business; final Business? business;
final BusinessUser? businessUser; final BusinessUser? businessUser;
final String env;
const ClaimStatementWindow({ const ClaimStatementWindow({
super.key, super.key,
required this.selectedPatient, required this.selectedPatient,
required this.signedInUser, required this.signedInUser,
required this.business, required this.business,
required this.businessUser, required this.businessUser,
required this.env,
}); });
@override @override
@@ -265,6 +267,7 @@ class _ClaimStatementWindowState extends State<ClaimStatementWindow> {
widget.business, widget.business,
"business", "business",
), ),
widget.env,
context); context);
} else { } else {
showDialog( showDialog(

View File

@@ -1,7 +1,6 @@
import 'dart:convert';
import 'package:mzansi_innovation_hub/main.dart'; import 'package:mzansi_innovation_hub/main.dart';
import 'package:mzansi_innovation_hub/mih_apis/mih_claim_statement_generation_api.dart'; import 'package:mzansi_innovation_hub/mih_apis/mih_claim_statement_generation_api.dart';
import 'package:mzansi_innovation_hub/mih_apis/mih_file_api.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_window.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_window.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_delete_message.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_delete_message.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_error_message.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_error_message.dart';
@@ -15,7 +14,6 @@ import 'package:mzansi_innovation_hub/mih_objects/claim_statement_file.dart';
import 'package:mzansi_innovation_hub/mih_objects/patients.dart'; import 'package:mzansi_innovation_hub/mih_objects/patients.dart';
import 'package:mzansi_innovation_hub/mih_packages/patient_profile/pat_profile/list_builders/build_file_view.dart'; import 'package:mzansi_innovation_hub/mih_packages/patient_profile/pat_profile/list_builders/build_file_view.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:supertokens_flutter/http.dart' as http;
class BuildClaimStatementFileList extends StatefulWidget { class BuildClaimStatementFileList extends StatefulWidget {
final AppUser signedInUser; final AppUser signedInUser;
@@ -24,6 +22,7 @@ class BuildClaimStatementFileList extends StatefulWidget {
final Business? business; final Business? business;
final BusinessUser? businessUser; final BusinessUser? businessUser;
final String type; final String type;
final String env;
const BuildClaimStatementFileList({ const BuildClaimStatementFileList({
super.key, super.key,
required this.files, required this.files,
@@ -32,6 +31,7 @@ class BuildClaimStatementFileList extends StatefulWidget {
required this.business, required this.business,
required this.businessUser, required this.businessUser,
required this.type, required this.type,
required this.env,
}); });
@override @override
@@ -47,27 +47,14 @@ class _BuildClaimStatementFileListState
String fileUrl = ""; String fileUrl = "";
Future<String> getFileUrlApiCall(String filePath) async { Future<String> getFileUrlApiCall(String filePath) async {
var url = "$baseAPI/minio/pull/file/${AppEnviroment.getEnv()}/$filePath"; String teporaryFileUrl = "";
//print(url); await MihFileApi.getMinioFileUrl(
var response = await http.get(Uri.parse(url)); filePath,
// print("here1"); context,
//print(response.statusCode); ).then((value) {
teporaryFileUrl = value;
if (response.statusCode == 200) { });
//print("here2"); return teporaryFileUrl;
String body = response.body;
//print(body);
//print("here3");
var decodedData = jsonDecode(body);
//print("Dedoced: ${decodedData['minioURL']}");
return decodedData['minioURL'];
//AppUser u = AppUser.fromJson(decodedData);
// print(u.email);
//return "AlometThere";
} else {
throw Exception("Error: GetUserData status code ${response.statusCode}");
}
} }
void internetConnectionPopUp() { void internetConnectionPopUp() {
@@ -108,6 +95,7 @@ class _BuildClaimStatementFileListState
widget.business, widget.business,
"business", "business",
), ),
widget.env,
filePath, filePath,
fileID, fileID,
context, context,

View File

@@ -4,6 +4,7 @@ import 'package:mzansi_innovation_hub/mih_apis/mih_claim_statement_generation_ap
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih-app_tool_body.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih-app_tool_body.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_floating_menu.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_floating_menu.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart';
import 'package:mzansi_innovation_hub/mih_env/env.dart';
import 'package:mzansi_innovation_hub/mih_objects/app_user.dart'; import 'package:mzansi_innovation_hub/mih_objects/app_user.dart';
import 'package:mzansi_innovation_hub/mih_objects/business.dart'; import 'package:mzansi_innovation_hub/mih_objects/business.dart';
import 'package:mzansi_innovation_hub/mih_objects/business_user.dart'; import 'package:mzansi_innovation_hub/mih_objects/business_user.dart';
@@ -37,6 +38,7 @@ class PatientClaimOrStatement extends StatefulWidget {
class _PatientClaimOrStatementState extends State<PatientClaimOrStatement> { class _PatientClaimOrStatementState extends State<PatientClaimOrStatement> {
late Future<List<ClaimStatementFile>> futueFiles; late Future<List<ClaimStatementFile>> futueFiles;
late String env;
void claimOrStatementWindow() { void claimOrStatementWindow() {
showDialog( showDialog(
@@ -47,6 +49,7 @@ class _PatientClaimOrStatementState extends State<PatientClaimOrStatement> {
signedInUser: widget.signedInUser, signedInUser: widget.signedInUser,
business: widget.business, business: widget.business,
businessUser: widget.businessUser, businessUser: widget.businessUser,
env: env,
), ),
); );
} }
@@ -100,6 +103,11 @@ class _PatientClaimOrStatementState extends State<PatientClaimOrStatement> {
MIHClaimStatementGenerationApi.getClaimStatementFilesByBusiness( MIHClaimStatementGenerationApi.getClaimStatementFilesByBusiness(
widget.business!.business_id); widget.business!.business_id);
} }
if (AppEnviroment.getEnv() == "Prod") {
env = "Prod";
} else {
env = "Dev";
}
super.initState(); super.initState();
} }
@@ -154,6 +162,7 @@ class _PatientClaimOrStatementState extends State<PatientClaimOrStatement> {
business: widget.business, business: widget.business,
businessUser: widget.businessUser, businessUser: widget.businessUser,
type: widget.type, type: widget.type,
env: env,
), ),
], ],
); );

View File

@@ -81,6 +81,7 @@ class claimStatementUploud(BaseModel):
patient_app_id: str patient_app_id: str
env: str env: str
patient_full_name: str patient_full_name: str
fileName: str
patient_id_no: str patient_id_no: str
has_med_aid: str has_med_aid: str
med_aid_no: str med_aid_no: str
@@ -395,7 +396,7 @@ def uploudClaimStatement(requestItem: claimStatementUploud):
client.make_bucket("mih") client.make_bucket("mih")
else: else:
print("Bucket already exists") print("Bucket already exists")
fileName = f"{requestItem.patient_app_id}/claims-statements/{requestItem.document_type}-{requestItem.patient_full_name}-{today}.pdf" fileName = f"{requestItem.patient_app_id}/claims-statements/{requestItem.fileName}"
client.fput_object("mih", fileName, "temp-claim-statement.pdf") client.fput_object("mih", fileName, "temp-claim-statement.pdf")
def generateClaimStatementPDF(requestItem: claimStatementUploud): def generateClaimStatementPDF(requestItem: claimStatementUploud):