Merge branch 'update_flutter_3.24_vida_plus_episode' of http://34.17.52.180/Haroon6138/doctor_app_flutter into update_flutter_3.24_vida_plus_episode
commit
c040927e67
@ -0,0 +1,3 @@
|
||||
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M2.45416 1.79596C4.93831 0.272187 7.16683 0.879476 8.51311 1.89051C8.73459 2.05683 8.8866 2.17067 8.99975 2.24754C9.11292 2.17067 9.26492 2.05683 9.4864 1.89051C10.8327 0.879476 13.0612 0.272187 15.5454 1.79596C17.2631 2.8496 18.2296 5.0505 17.8904 7.57926C17.5496 10.1202 15.905 12.9941 12.422 15.5721C11.2125 16.4678 10.3248 17.1253 8.99976 17.1253C7.67471 17.1253 6.78702 16.4678 5.57754 15.5721C2.09453 12.9941 0.449878 10.1202 0.109088 7.57926C-0.230066 5.0505 0.73646 2.8496 2.45416 1.79596Z" fill="#459BF1"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 628 B |
@ -0,0 +1,92 @@
|
||||
class FavoriteDiseaseDetails {
|
||||
String? categoryCode;
|
||||
int? categoryId;
|
||||
String? chapterCode;
|
||||
String? codeRange;
|
||||
String? createdBy;
|
||||
String? diseaseType;
|
||||
String? diseases;
|
||||
String? diseasesCode;
|
||||
int? diseasesId;
|
||||
int? favoritesId;
|
||||
int? hospitalGroupId;
|
||||
int? hospitalId;
|
||||
int? icdId;
|
||||
String? icdSubVersion;
|
||||
String? icdType;
|
||||
String? icdVersion;
|
||||
bool? isDeleted;
|
||||
String? parentDiseasesCode;
|
||||
String? problemCode;
|
||||
String? problemDescription;
|
||||
int? problemMasterId;
|
||||
int? problemMasterRevisionId;
|
||||
String? problemName;
|
||||
String? problemType;
|
||||
String? rowVersion;
|
||||
String? sectionCode;
|
||||
int? specificationId;
|
||||
|
||||
FavoriteDiseaseDetails.fromJson(Map<String, dynamic> json) {
|
||||
categoryCode = json['CategoryCode'];
|
||||
categoryId = json['CategoryId'];
|
||||
chapterCode = json['ChapterCode'];
|
||||
codeRange = json['CodeRange'];
|
||||
createdBy = json['CreatedBy'];
|
||||
diseaseType = json['DiseaseType'];
|
||||
diseases = json['Diseases'];
|
||||
diseasesCode = json['DiseasesCode'];
|
||||
diseasesId = json['DiseasesId'];
|
||||
favoritesId = json['FavoritesId'];
|
||||
hospitalGroupId = json['HospitalGroupID'];
|
||||
hospitalId = json['HospitalID'];
|
||||
icdId = json['IcdId'];
|
||||
icdSubVersion = json['IcdSubVersion'];
|
||||
icdType = json['IcdType'];
|
||||
icdVersion = json['IcdVersion'];
|
||||
isDeleted = json['IsDeleted'];
|
||||
parentDiseasesCode = json['ParentDiseasesCode'];
|
||||
problemCode = json['ProblemCode'];
|
||||
problemDescription = json['ProblemDescription'];
|
||||
problemMasterId = json['ProblemMasterID'];
|
||||
problemMasterRevisionId = json['ProblemMasterRevisionID'];
|
||||
problemName = json['ProblemName'];
|
||||
problemType = json['ProblemType'];
|
||||
rowVersion = json['RowVersion'];
|
||||
sectionCode = json['SectionCode'];
|
||||
specificationId = json['SpecificationId'];
|
||||
}
|
||||
|
||||
// toJson method
|
||||
Map<String, dynamic> toJson() {
|
||||
return {
|
||||
'CategoryCode': categoryCode,
|
||||
'CategoryId': categoryId,
|
||||
'ChapterCode': chapterCode,
|
||||
'CodeRange': codeRange,
|
||||
'CreatedBy': createdBy,
|
||||
'DiseaseType': diseaseType,
|
||||
'Diseases': diseases,
|
||||
'DiseasesCode': diseasesCode,
|
||||
'DiseasesId': diseasesId,
|
||||
'FavoritesId': favoritesId,
|
||||
'HospitalGroupID': hospitalGroupId,
|
||||
'HospitalID': hospitalId,
|
||||
'IcdId': icdId,
|
||||
'IcdSubVersion': icdSubVersion,
|
||||
'IcdType': icdType,
|
||||
'IcdVersion': icdVersion,
|
||||
'IsDeleted': isDeleted,
|
||||
'ParentDiseasesCode': parentDiseasesCode,
|
||||
'ProblemCode': problemCode,
|
||||
'ProblemDescription': problemDescription,
|
||||
'ProblemMasterID': problemMasterId,
|
||||
'ProblemMasterRevisionID': problemMasterRevisionId,
|
||||
'ProblemName': problemName,
|
||||
'ProblemType': problemType,
|
||||
'RowVersion': rowVersion,
|
||||
'SectionCode': sectionCode,
|
||||
'SpecificationId': specificationId,
|
||||
};
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,37 @@
|
||||
class AuditDiagnosis {
|
||||
String? approvedBy;
|
||||
String? approvedOn;
|
||||
String? createdBy;
|
||||
String? createdOn;
|
||||
String? deletedBy;
|
||||
String? deletedOn;
|
||||
String? deletedRemarks;
|
||||
String? diagnosisType;
|
||||
bool? isEventIdentifiedExternally;
|
||||
bool? isResolved;
|
||||
String? modifiedBy;
|
||||
String? modifiedOn;
|
||||
int? patientId;
|
||||
int? patientProblemRevisionId;
|
||||
String? remarks;
|
||||
String? status;
|
||||
|
||||
AuditDiagnosis.fromJson(Map<String, dynamic> json) {
|
||||
approvedBy = json['approvedBy'];
|
||||
approvedOn = json['approvedOn'];
|
||||
createdBy = json['createdBy'];
|
||||
createdOn = json['createdOn'];
|
||||
deletedBy = json['deletedBy'];
|
||||
deletedOn = json['deletedOn'];
|
||||
deletedRemarks = json['deletedRemarks'];
|
||||
diagnosisType = json['diagnosisType'];
|
||||
isEventIdentifiedExternally = json['isEventIdentifiedExternally'];
|
||||
isResolved = json['isResolved'];
|
||||
modifiedBy = json['modifiedBy'];
|
||||
modifiedOn = json['modifiedOn'];
|
||||
patientId = json['patientId'];
|
||||
patientProblemRevisionId = json['patientProblemRevisionId'];
|
||||
remarks = json['remarks'];
|
||||
status = json['status'];
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,10 @@
|
||||
class DiagnosisType {
|
||||
String? diagnosisType;
|
||||
String? name;
|
||||
|
||||
|
||||
DiagnosisType.fromJson(Map<String, dynamic> json) {
|
||||
diagnosisType = json['diagnosisType'] ?? '';
|
||||
name = json['name'] ?? '';
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,287 @@
|
||||
class PatientPreviousDiagnosis {
|
||||
bool? active;
|
||||
int? admissionId;
|
||||
int? admissionRequestId;
|
||||
int? appointmentId;
|
||||
String? approvedBy;
|
||||
String? approvedOn;
|
||||
int? assessmentId;
|
||||
int? chiefComplainId;
|
||||
int? clinicGroupId;
|
||||
int? clinicId;
|
||||
String? condition;
|
||||
String? createdBy;
|
||||
String? createdOn;
|
||||
String? deletedBy;
|
||||
String? deletedByDoctorName;
|
||||
String? deletedOn;
|
||||
String? deletedRemarks;
|
||||
String? diagnosisType;
|
||||
int? doctorId;
|
||||
int? episodeId;
|
||||
int? hospitalGroupId;
|
||||
int? hospitalId;
|
||||
dynamic icdCodeDetailsDto;
|
||||
String? icdSubVersion;
|
||||
String? icdType;
|
||||
dynamic icdVersion;
|
||||
String? location;
|
||||
String? loginUserId;
|
||||
String? modifiedBy;
|
||||
String? modifiedOn;
|
||||
String? module;
|
||||
String? parentLocation;
|
||||
int? patientId;
|
||||
dynamic patientProblemChangeHistories;
|
||||
int? patientProblemId;
|
||||
int? patientProblemRevisionId;
|
||||
int? pomrId;
|
||||
bool? previousProblem;
|
||||
int? problemId;
|
||||
String? problemName;
|
||||
String? remarks;
|
||||
bool? resolved;
|
||||
String? selectedCategoryCode;
|
||||
String? selectedChapterCode;
|
||||
String? selectedDisease;
|
||||
String? selectedIcdCode;
|
||||
String? selectedSectionCode;
|
||||
String? status;
|
||||
List<VisitWisePatientDiagnosis>? visitWisePatientDiagnoses;
|
||||
bool? visitWiseSelected;
|
||||
|
||||
PatientPreviousDiagnosis.fromJson(Map<String, dynamic> json) {
|
||||
active = json['active'];
|
||||
admissionId = json['admissionId'];
|
||||
admissionRequestId = json['admissionRequestId'];
|
||||
appointmentId = json['appointmentId'];
|
||||
approvedBy = json['approvedBy'];
|
||||
approvedOn = json['approvedOn'];
|
||||
assessmentId = json['assessmentId'];
|
||||
chiefComplainId = json['chiefComplainId'];
|
||||
clinicGroupId = json['clinicGroupId'];
|
||||
clinicId = json['clinicId'];
|
||||
condition = json['condition'];
|
||||
createdBy = json['createdBy'];
|
||||
createdOn = json['createdOn'];
|
||||
deletedBy = json['deletedBy'];
|
||||
deletedByDoctorName = json['deletedByDoctorName'];
|
||||
deletedOn = json['deletedOn'];
|
||||
deletedRemarks = json['deletedRemarks'];
|
||||
diagnosisType = json['diagnosisType'];
|
||||
doctorId = json['doctorId'];
|
||||
episodeId = json['episodeId'];
|
||||
hospitalGroupId = json['hospitalGroupId'];
|
||||
hospitalId = json['hospitalId'];
|
||||
icdCodeDetailsDto = json['icdCodeDetailsDto'];
|
||||
icdSubVersion = json['icdSubVersion'];
|
||||
icdType = json['icdType'];
|
||||
icdVersion = json['icdVersion'];
|
||||
location = json['location'];
|
||||
loginUserId = json['loginUserId'];
|
||||
modifiedBy = json['modifiedBy'];
|
||||
modifiedOn = json['modifiedOn'];
|
||||
module = json['module'];
|
||||
parentLocation = json['parentLocation'];
|
||||
patientId = json['patientId'];
|
||||
patientProblemChangeHistories = json['patientProblemChangeHistories'];
|
||||
patientProblemId = json['patientProblemId'];
|
||||
patientProblemRevisionId = json['patientProblemRevisionId'];
|
||||
pomrId = json['pomrId'];
|
||||
previousProblem = json['previousProblem'];
|
||||
problemId = json['problemId'];
|
||||
problemName = json['problemName'];
|
||||
remarks = json['remarks'];
|
||||
resolved = json['resolved'];
|
||||
selectedCategoryCode = json['selectedCategoryCode'];
|
||||
selectedChapterCode = json['selectedChapterCode'];
|
||||
selectedDisease = json['selectedDisease'];
|
||||
selectedIcdCode = json['selectedIcdCode'];
|
||||
selectedSectionCode = json['selectedSectionCode'];
|
||||
status = json['status'];
|
||||
visitWiseSelected = json['visitWiseSelected'];
|
||||
if (json['visitWisePatientDiagnoses'] != null) {
|
||||
visitWisePatientDiagnoses = [];
|
||||
json['visitWisePatientDiagnoses'].forEach((v) {
|
||||
visitWisePatientDiagnoses!.add(VisitWisePatientDiagnosis.fromJson(v));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
return {
|
||||
'active': active,
|
||||
'admissionId': admissionId,
|
||||
'admissionRequestId': admissionRequestId,
|
||||
'appointmentId': appointmentId,
|
||||
'approvedBy': approvedBy,
|
||||
'approvedOn': approvedOn,
|
||||
'assessmentId': assessmentId,
|
||||
'chiefComplainId': chiefComplainId,
|
||||
'clinicGroupId': clinicGroupId,
|
||||
'clinicId': clinicId,
|
||||
'condition': condition,
|
||||
'createdBy': createdBy,
|
||||
'createdOn': createdOn,
|
||||
'deletedBy': deletedBy,
|
||||
'deletedByDoctorName': deletedByDoctorName,
|
||||
'deletedOn': deletedOn,
|
||||
'deletedRemarks': deletedRemarks,
|
||||
'diagnosisType': diagnosisType,
|
||||
'doctorId': doctorId,
|
||||
'episodeId': episodeId,
|
||||
'hospitalGroupId': hospitalGroupId,
|
||||
'hospitalId': hospitalId,
|
||||
'icdCodeDetailsDto': icdCodeDetailsDto,
|
||||
'icdSubVersion': icdSubVersion,
|
||||
'icdType': icdType,
|
||||
'icdVersion': icdVersion,
|
||||
'location': location,
|
||||
'loginUserId': loginUserId,
|
||||
'modifiedBy': modifiedBy,
|
||||
'modifiedOn': modifiedOn,
|
||||
'module': module,
|
||||
'parentLocation': parentLocation,
|
||||
'patientId': patientId,
|
||||
'patientProblemChangeHistories': patientProblemChangeHistories,
|
||||
'patientProblemId': patientProblemId,
|
||||
'patientProblemRevisionId': patientProblemRevisionId,
|
||||
'pomrId': pomrId,
|
||||
'previousProblem': previousProblem,
|
||||
'problemId': problemId,
|
||||
'problemName': problemName,
|
||||
'remarks': remarks,
|
||||
'resolved': resolved,
|
||||
'selectedCategoryCode': selectedCategoryCode,
|
||||
'selectedChapterCode': selectedChapterCode,
|
||||
'selectedDisease': selectedDisease,
|
||||
'selectedIcdCode': selectedIcdCode,
|
||||
'selectedSectionCode': selectedSectionCode,
|
||||
'status': status,
|
||||
'visitWiseSelected': visitWiseSelected,
|
||||
'visitWisePatientDiagnoses': visitWisePatientDiagnoses?.map((v) => v.toJson()).toList(),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
class VisitWisePatientDiagnosis {
|
||||
bool? active;
|
||||
int? admissionId;
|
||||
int? appointmentId;
|
||||
String? approvedBy;
|
||||
String? approvedOn;
|
||||
int? assessmentId;
|
||||
int? clinicId;
|
||||
String? condition;
|
||||
String? createdBy;
|
||||
String? createdOn;
|
||||
String? deletedBy;
|
||||
String? deletedOn;
|
||||
String? deletedRemarks;
|
||||
String? diagnosisType;
|
||||
int? doctorId;
|
||||
int? episodeId;
|
||||
int? hospitalGroupId;
|
||||
int? hospitalId;
|
||||
String? icdSubVersion;
|
||||
String? icdType;
|
||||
dynamic icdVersion;
|
||||
bool? isPreviousProblem;
|
||||
String? location;
|
||||
String? loginUserId;
|
||||
String? modifiedBy;
|
||||
String? modifiedOn;
|
||||
int? patientDiagnosisId;
|
||||
int? patientId;
|
||||
int? patientProblemRevisionId;
|
||||
int? pomrId;
|
||||
String? problemName;
|
||||
String? remarks;
|
||||
bool? resolved;
|
||||
bool? selected;
|
||||
String? selectedDisease;
|
||||
int? selectedDoctorId;
|
||||
String? selectedIcdCode;
|
||||
|
||||
VisitWisePatientDiagnosis.fromJson(Map<String, dynamic> json) {
|
||||
active = json['active'];
|
||||
admissionId = json['admissionId'];
|
||||
appointmentId = json['appointmentId'];
|
||||
approvedBy = json['approvedBy'];
|
||||
approvedOn = json['approvedOn'];
|
||||
assessmentId = json['assessmentId'];
|
||||
clinicId = json['clinicId'];
|
||||
condition = json['condition'];
|
||||
createdBy = json['createdBy'];
|
||||
createdOn = json['createdOn'];
|
||||
deletedBy = json['deletedBy'];
|
||||
deletedOn = json['deletedOn'];
|
||||
deletedRemarks = json['deletedRemarks'];
|
||||
diagnosisType = json['diagnosisType'];
|
||||
doctorId = json['doctorId'];
|
||||
episodeId = json['episodeId'];
|
||||
hospitalGroupId = json['hospitalGroupId'];
|
||||
hospitalId = json['hospitalId'];
|
||||
icdSubVersion = json['icdSubVersion'];
|
||||
icdType = json['icdType'];
|
||||
icdVersion = json['icdVersion'];
|
||||
isPreviousProblem = json['isPreviousProblem'];
|
||||
location = json['location'];
|
||||
loginUserId = json['loginUserId'];
|
||||
modifiedBy = json['modifiedBy'];
|
||||
modifiedOn = json['modifiedOn'];
|
||||
patientDiagnosisId = json['patientDiagnosisId'];
|
||||
patientId = json['patientId'];
|
||||
patientProblemRevisionId = json['patientProblemRevisionId'];
|
||||
pomrId = json['pomrId'];
|
||||
problemName = json['problemName'];
|
||||
remarks = json['remarks'];
|
||||
resolved = json['resolved'];
|
||||
selected = json['selected'];
|
||||
selectedDisease = json['selectedDisease'];
|
||||
selectedDoctorId = json['selectedDoctorId'];
|
||||
selectedIcdCode = json['selectedIcdCode'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
return {
|
||||
'active': active,
|
||||
'admissionId': admissionId,
|
||||
'appointmentId': appointmentId,
|
||||
'approvedBy': approvedBy,
|
||||
'approvedOn': approvedOn,
|
||||
'assessmentId': assessmentId,
|
||||
'clinicId': clinicId,
|
||||
'condition': condition,
|
||||
'createdBy': createdBy,
|
||||
'createdOn': createdOn,
|
||||
'deletedBy': deletedBy,
|
||||
'deletedOn': deletedOn,
|
||||
'deletedRemarks': deletedRemarks,
|
||||
'diagnosisType': diagnosisType,
|
||||
'doctorId': doctorId,
|
||||
'episodeId': episodeId,
|
||||
'hospitalGroupId': hospitalGroupId,
|
||||
'hospitalId': hospitalId,
|
||||
'icdSubVersion': icdSubVersion,
|
||||
'icdType': icdType,
|
||||
'icdVersion': icdVersion,
|
||||
'isPreviousProblem': isPreviousProblem,
|
||||
'location': location,
|
||||
'loginUserId': loginUserId,
|
||||
'modifiedBy': modifiedBy,
|
||||
'modifiedOn': modifiedOn,
|
||||
'patientDiagnosisId': patientDiagnosisId,
|
||||
'patientId': patientId,
|
||||
'patientProblemRevisionId': patientProblemRevisionId,
|
||||
'pomrId': pomrId,
|
||||
'problemName': problemName,
|
||||
'remarks': remarks,
|
||||
'resolved': resolved,
|
||||
'selected': selected,
|
||||
'selectedDisease': selectedDisease,
|
||||
'selectedDoctorId': selectedDoctorId,
|
||||
'selectedIcdCode': selectedIcdCode,
|
||||
};
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,99 @@
|
||||
class SearchDiagnosis {
|
||||
String? category;
|
||||
String? categoryId;
|
||||
String? codeRange;
|
||||
String? diseaseType;
|
||||
String? diseases;
|
||||
String? diseasesBCode;
|
||||
String? diseasesCode;
|
||||
String? diseasesDataId;
|
||||
String? diseasesId;
|
||||
String? diseasesName;
|
||||
int? hospitalGroupId;
|
||||
int? hospitalId;
|
||||
String? icdSubVersion;
|
||||
String? icdType;
|
||||
List<String>? icdVersion;
|
||||
String? icdVersionDisplay;
|
||||
bool? isDeleted;
|
||||
String? layerID;
|
||||
String? parentDiseasesCode;
|
||||
String? specification;
|
||||
int? specificationId;
|
||||
String? specificationNo;
|
||||
String? selectedIcdCode;
|
||||
String? selectedCategoryCode;
|
||||
String? selectedSectionCode;
|
||||
String? selectedChapterCode;
|
||||
String? selectedNandaCode;
|
||||
bool isFavorite = false;
|
||||
|
||||
// Default constructor
|
||||
SearchDiagnosis();
|
||||
|
||||
// fromJson constructor
|
||||
SearchDiagnosis.fromJson(Map<String, dynamic> json) {
|
||||
category = json['category'];
|
||||
categoryId = json['categoryId'];
|
||||
codeRange = json['codeRange'];
|
||||
diseaseType = json['diseaseType'];
|
||||
diseases = json['diseases'];
|
||||
diseasesBCode = json['diseasesBCode'];
|
||||
diseasesCode = json['diseasesCode'];
|
||||
diseasesDataId = json['diseasesDataId'];
|
||||
diseasesId = json['diseasesId'];
|
||||
diseasesName = json['diseasesName'];
|
||||
hospitalGroupId = json['hospitalGroupId'];
|
||||
hospitalId = json['hospitalId'];
|
||||
icdSubVersion = json['icdSubVersion'];
|
||||
icdType = json['icdType'];
|
||||
icdVersion = json['icdVersion'] != null
|
||||
? List<String>.from(json['icdVersion'])
|
||||
: null;
|
||||
icdVersionDisplay = json['icdVersionDisplay'];
|
||||
isDeleted = json['isDeleted'] == "True";
|
||||
layerID = json['layerID'];
|
||||
parentDiseasesCode = json['parentDiseasesCode'];
|
||||
specification = json['specification'];
|
||||
specificationId = json['specificationId'];
|
||||
specificationNo = json['specificationNo'];
|
||||
selectedIcdCode = json['selectedIcdCode'];
|
||||
selectedCategoryCode = json['selectedCategoryCode'];
|
||||
selectedSectionCode = json['selectedSectionCode'];
|
||||
selectedChapterCode = json['selectedChapterCode'];
|
||||
selectedNandaCode = json['selectedNandaCode'];
|
||||
}
|
||||
|
||||
// toJson method
|
||||
Map<String, dynamic> toJson() {
|
||||
return {
|
||||
'category': category,
|
||||
'categoryId': categoryId,
|
||||
'codeRange': codeRange,
|
||||
'diseaseType': diseaseType,
|
||||
'diseases': diseases,
|
||||
'diseasesBCode': diseasesBCode,
|
||||
'diseasesCode': diseasesCode,
|
||||
'diseasesDataId': diseasesDataId,
|
||||
'diseasesId': diseasesId,
|
||||
'diseasesName': diseasesName,
|
||||
'hospitalGroupId': hospitalGroupId,
|
||||
'hospitalId': hospitalId,
|
||||
'icdSubVersion': icdSubVersion,
|
||||
'icdType': icdType,
|
||||
'icdVersion': icdVersion,
|
||||
'icdVersionDisplay': icdVersionDisplay,
|
||||
'isDeleted': isDeleted.toString(),
|
||||
'layerID': layerID,
|
||||
'parentDiseasesCode': parentDiseasesCode,
|
||||
'specification': specification,
|
||||
'specificationId': specificationId,
|
||||
'specificationNo': specificationNo,
|
||||
'selectedIcdCode': selectedIcdCode,
|
||||
'selectedCategoryCode': selectedCategoryCode,
|
||||
'selectedSectionCode': selectedSectionCode,
|
||||
'selectedChapterCode': selectedChapterCode,
|
||||
'selectedNandaCode': selectedNandaCode,
|
||||
};
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,95 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class Condition {
|
||||
String? conditionCode;
|
||||
String? conditionName;
|
||||
|
||||
Condition();
|
||||
|
||||
Condition.fromJson(Map<String, dynamic> json) {
|
||||
conditionCode = json['conditionCode'];
|
||||
conditionName = json['conditionName'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
return {
|
||||
'conditionCode': conditionCode,
|
||||
'conditionName': conditionName,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
class Category {
|
||||
int? categoryId;
|
||||
String? code;
|
||||
String? codeAlias;
|
||||
List<Condition>? conditionsList;
|
||||
String? description;
|
||||
String? descriptionAlias;
|
||||
int? id;
|
||||
bool? isActive;
|
||||
bool? isBuiltin;
|
||||
String? languageCode;
|
||||
String? name;
|
||||
String? nameAlias;
|
||||
int? rowVersion;
|
||||
int? specialityId;
|
||||
String? specialityName;
|
||||
List<dynamic>? translationValues;
|
||||
bool isSelected = false;
|
||||
TextEditingController remarksController = TextEditingController();
|
||||
int selectedCondition = -1;
|
||||
String? pomrId;
|
||||
int? paitientId;
|
||||
int? userID;
|
||||
bool isExpanded = false;
|
||||
|
||||
Category();
|
||||
|
||||
Category.fromJson(Map<String, dynamic> json,int? specialityId, String specialityName, String? pomrId, int paitientId, int userID) {
|
||||
categoryId = json['categoryId'];
|
||||
code = json['code'];
|
||||
codeAlias = json['codeAlias'];
|
||||
if (json['conditionsList'] != null) {
|
||||
conditionsList = <Condition>[];
|
||||
json['conditionsList'].forEach((v) {
|
||||
conditionsList!.add(Condition.fromJson(v));
|
||||
});
|
||||
}
|
||||
if(conditionsList?.isNotEmpty == true) selectedCondition = int.parse(conditionsList?.first.conditionName ??'-1');
|
||||
description = json['description'];
|
||||
descriptionAlias = json['descriptionAlias'];
|
||||
id = json['id'];
|
||||
isActive = json['isActive'];
|
||||
isBuiltin = json['isBuiltin'];
|
||||
languageCode = json['languageCode'];
|
||||
name = json['name'];
|
||||
nameAlias = json['nameAlias'];
|
||||
rowVersion = json['rowVersion'];
|
||||
translationValues = json['translationValues'];
|
||||
this.specialityName = specialityName;
|
||||
this.specialityId = specialityId;
|
||||
this.pomrId = pomrId;
|
||||
this.paitientId = paitientId;
|
||||
this.userID = userID;
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
return {
|
||||
'categoryId': categoryId,
|
||||
'code': code,
|
||||
'codeAlias': codeAlias,
|
||||
'conditionsList': conditionsList?.map((v) => v.toJson()).toList(),
|
||||
'description': description,
|
||||
'descriptionAlias': descriptionAlias,
|
||||
'id': id,
|
||||
'isActive': isActive,
|
||||
'isBuiltin': isBuiltin,
|
||||
'languageCode': languageCode,
|
||||
'name': name,
|
||||
'nameAlias': nameAlias,
|
||||
'rowVersion': rowVersion,
|
||||
'translationValues': translationValues,
|
||||
};
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,74 @@
|
||||
import 'package:doctor_app_flutter/core/model/SOAP/physical_exam/Category.dart';
|
||||
|
||||
class CreatePhysicalExamination {
|
||||
bool? isChecked; // it will be told
|
||||
bool? selected; // same as above
|
||||
String? pomrid; // paitient
|
||||
int? patientID; // paitint
|
||||
bool? isClinicPhysicalExamination; // it will be told
|
||||
int? physicalExaminationSystemID; // category id
|
||||
String? physicalExaminationDescription; // name of the category
|
||||
int? specialityID; // id of the specialitiy id
|
||||
dynamic selectedOptions; // it will also be told but it could be sent as null
|
||||
bool? isMandatory; // it will also be checked default value is false
|
||||
String? specialityDescription; // name of the speciality
|
||||
int? physicalExaminationCondition; // condition selected
|
||||
String? loginUserId; // doctor id
|
||||
String? remark;
|
||||
|
||||
CreatePhysicalExamination();
|
||||
|
||||
CreatePhysicalExamination.fromJson(Map<String, dynamic> json) {
|
||||
isChecked = json['isChecked'];
|
||||
selected = json['selected'];
|
||||
pomrid = json['pomrid'];
|
||||
patientID = json['patientID'];
|
||||
isClinicPhysicalExamination = json['isClinicPhysicalExamination'];
|
||||
physicalExaminationSystemID = json['physicalExaminationSystemID'];
|
||||
physicalExaminationDescription = json['physicalExaminationDescription'];
|
||||
specialityID = json['specialityID'];
|
||||
selectedOptions = json['selectedOptions'];
|
||||
isMandatory = json['isMandatory'];
|
||||
specialityDescription = json['specialityDescription'];
|
||||
physicalExaminationCondition = json['physicalExaminationCondition'];
|
||||
loginUserId = json['loginUserId'];
|
||||
remark = json['remark'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
return {
|
||||
'isChecked': isChecked,
|
||||
'selected': selected,
|
||||
'pomrid': pomrid,
|
||||
'patientID': patientID,
|
||||
'isClinicPhysicalExamination': isClinicPhysicalExamination,
|
||||
'physicalExaminationSystemID': physicalExaminationSystemID,
|
||||
'physicalExaminationDescription': physicalExaminationDescription,
|
||||
'specialityID': specialityID,
|
||||
'selectedOptions': selectedOptions,
|
||||
'isMandatory': isMandatory,
|
||||
'specialityDescription': specialityDescription,
|
||||
'physicalExaminationCondition': physicalExaminationCondition,
|
||||
'loginUserId': loginUserId,
|
||||
'remark': remark,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
extension ConvertCategoryToCreatePhysicalExamination on Category {
|
||||
CreatePhysicalExamination createPhysicalExaminationFromCategory() =>
|
||||
CreatePhysicalExamination()
|
||||
..physicalExaminationDescription = this.name
|
||||
..physicalExaminationSystemID = this.categoryId
|
||||
..physicalExaminationCondition = this.selectedCondition
|
||||
..remark = this.remarksController.text
|
||||
..selected = false
|
||||
..isChecked = false
|
||||
..specialityID = this.specialityId
|
||||
..patientID = this.paitientId
|
||||
..pomrid = this.pomrId
|
||||
..loginUserId = this.userID?.toString()
|
||||
..isMandatory = false
|
||||
..specialityDescription = this.specialityName
|
||||
..isClinicPhysicalExamination = true;
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
class GeneralSpeciality {
|
||||
int? id;
|
||||
bool? isActive;
|
||||
String? name;
|
||||
int? rowVersion;
|
||||
bool isSelected = false;
|
||||
|
||||
GeneralSpeciality();
|
||||
|
||||
GeneralSpeciality.fromJson(Map<String, dynamic> json) {
|
||||
id = json['id'];
|
||||
isActive = json['isActive'];
|
||||
name = json['name'];
|
||||
rowVersion = json['rowVersion'];
|
||||
}
|
||||
Map<String, dynamic> toJson() {
|
||||
return {
|
||||
'id': id,
|
||||
'isActive': isActive,
|
||||
'name': name,
|
||||
'rowVersion': rowVersion,
|
||||
};
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,97 @@
|
||||
class PatientPhysicalExamination {
|
||||
int? patientPhysicalExaminationRevisionID;
|
||||
int? patientPhysicalExaminationID;
|
||||
int? patientID;
|
||||
int? physicalExaminationSystemID;
|
||||
String? physicalExaminationDescription;
|
||||
int? physicalExaminationCondition;
|
||||
String? remark;
|
||||
int? assessmentId;
|
||||
String? userType;
|
||||
int? specialtyID;
|
||||
String? specialityDescription;
|
||||
String? loginUserId;
|
||||
bool? isMandatory;
|
||||
String? examinationType;
|
||||
dynamic additionalParams; // Use dynamic for null or varied types
|
||||
int? hospitalGroupID;
|
||||
int? hospitalID;
|
||||
int? dbCRUDOperation;
|
||||
bool? isActive;
|
||||
int? createdBy;
|
||||
String? createdOn;
|
||||
int? modifiedBy;
|
||||
String? modifiedOn;
|
||||
int? approvedBy;
|
||||
String? approvedOn;
|
||||
String? rowVersion;
|
||||
String? pomrid;
|
||||
|
||||
// Default constructor
|
||||
PatientPhysicalExamination();
|
||||
|
||||
// fromJson constructor
|
||||
PatientPhysicalExamination.fromJson(Map<String, dynamic> json) {
|
||||
patientPhysicalExaminationRevisionID =
|
||||
json['patientPhysicalExaminationRevisionID'];
|
||||
patientPhysicalExaminationID = json['patientPhysicalExaminationID'];
|
||||
patientID = json['patientID'];
|
||||
physicalExaminationSystemID = json['physicalExaminationSystemID'];
|
||||
physicalExaminationDescription = json['physicalExaminationDescription'];
|
||||
physicalExaminationCondition = json['physicalExaminationCondition'];
|
||||
remark = json['remark'];
|
||||
assessmentId = json['assessmentId'];
|
||||
userType = json['userType'];
|
||||
specialtyID = json['specialtyID'];
|
||||
specialityDescription = json['specialityDescription'];
|
||||
loginUserId = json['loginUserId'];
|
||||
isMandatory = json['isMandatory'];
|
||||
examinationType = json['examinationType'];
|
||||
additionalParams = json['additionalParams'];
|
||||
hospitalGroupID = json['hospitalGroupID'];
|
||||
hospitalID = json['hospitalID'];
|
||||
dbCRUDOperation = json['dbCRUDOperation'];
|
||||
isActive = json['isActive'];
|
||||
createdBy = json['createdBy'];
|
||||
createdOn = json['createdOn'];
|
||||
modifiedBy = json['modifiedBy'];
|
||||
modifiedOn = json['modifiedOn'];
|
||||
approvedBy = json['approvedBy'];
|
||||
approvedOn = json['approvedOn'];
|
||||
rowVersion = json['rowVersion'];
|
||||
pomrid = json['pomrid'];
|
||||
}
|
||||
|
||||
// toJson method
|
||||
Map<String, dynamic> toJson() {
|
||||
return {
|
||||
'patientPhysicalExaminationRevisionID': patientPhysicalExaminationRevisionID,
|
||||
'patientPhysicalExaminationID': patientPhysicalExaminationID,
|
||||
'patientID': patientID,
|
||||
'physicalExaminationSystemID': physicalExaminationSystemID,
|
||||
'physicalExaminationDescription': physicalExaminationDescription,
|
||||
'physicalExaminationCondition': physicalExaminationCondition,
|
||||
'remark': remark,
|
||||
'assessmentId': assessmentId,
|
||||
'userType': userType,
|
||||
'specialtyID': specialtyID,
|
||||
'specialityDescription': specialityDescription,
|
||||
'loginUserId': loginUserId,
|
||||
'isMandatory': isMandatory,
|
||||
'examinationType': examinationType,
|
||||
'additionalParams': additionalParams,
|
||||
'hospitalGroupID': hospitalGroupID,
|
||||
'hospitalID': hospitalID,
|
||||
'dbCRUDOperation': dbCRUDOperation,
|
||||
'isActive': isActive,
|
||||
'createdBy': createdBy,
|
||||
'createdOn': createdOn,
|
||||
'modifiedBy': modifiedBy,
|
||||
'modifiedOn': modifiedOn,
|
||||
'approvedBy': approvedBy,
|
||||
'approvedOn': approvedOn,
|
||||
'rowVersion': rowVersion,
|
||||
'pomrid': pomrid,
|
||||
};
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,55 @@
|
||||
@deprecated
|
||||
class PostPhysicalExaminationModel {
|
||||
bool? isChecked;
|
||||
bool? selected;
|
||||
int? pomrid;
|
||||
int? patientID;
|
||||
bool? isClinicPhysicalExamination;
|
||||
int? physicalExaminationSystemID;
|
||||
String? physicalExaminationDescription;
|
||||
int? specialityID;
|
||||
dynamic selectedOptions;
|
||||
bool? isMandatory;
|
||||
String? specialityDescription;
|
||||
int? physicalExaminationCondition;
|
||||
String? loginUserId;
|
||||
String? remark;
|
||||
|
||||
PostPhysicalExaminationModel();
|
||||
|
||||
PostPhysicalExaminationModel.fromJson(Map<String, dynamic> json) {
|
||||
isChecked = json['isChecked'];
|
||||
selected = json['selected'];
|
||||
pomrid = json['pomrid'];
|
||||
patientID = json['patientID'];
|
||||
isClinicPhysicalExamination = json['isClinicPhysicalExamination'];
|
||||
physicalExaminationSystemID = json['physicalExaminationSystemID'];
|
||||
physicalExaminationDescription = json['physicalExaminationDescription'];
|
||||
specialityID = json['specialityID'];
|
||||
selectedOptions = json['selectedOptions'];
|
||||
isMandatory = json['isMandatory'];
|
||||
specialityDescription = json['specialityDescription'];
|
||||
physicalExaminationCondition = json['physicalExaminationCondition'];
|
||||
loginUserId = json['loginUserId'];
|
||||
remark = json['remark'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
return {
|
||||
'isChecked': isChecked,
|
||||
'selected': selected,
|
||||
'pomrid': pomrid,
|
||||
'patientID': patientID,
|
||||
'isClinicPhysicalExamination': isClinicPhysicalExamination,
|
||||
'physicalExaminationSystemID': physicalExaminationSystemID,
|
||||
'physicalExaminationDescription': physicalExaminationDescription,
|
||||
'specialityID': specialityID,
|
||||
'selectedOptions': selectedOptions,
|
||||
'isMandatory': isMandatory,
|
||||
'specialityDescription': specialityDescription,
|
||||
'physicalExaminationCondition': physicalExaminationCondition,
|
||||
'loginUserId': loginUserId,
|
||||
'remark': remark,
|
||||
};
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,35 @@
|
||||
class Clinic {
|
||||
int? clinicGroupID;
|
||||
String? clinicGroupName;
|
||||
int? clinicID;
|
||||
String? clinicNameArabic;
|
||||
String? clinicNameEnglish;
|
||||
|
||||
Clinic({
|
||||
this.clinicGroupID,
|
||||
this.clinicGroupName,
|
||||
this.clinicID,
|
||||
this.clinicNameArabic,
|
||||
this.clinicNameEnglish,
|
||||
});
|
||||
|
||||
factory Clinic.fromJson(Map<String, dynamic> json) {
|
||||
return Clinic(
|
||||
clinicGroupID: json['clinicGroupID'],
|
||||
clinicGroupName: json['clinicGroupName'],
|
||||
clinicID: json['clinicID'],
|
||||
clinicNameArabic: json['clinicNameArabic'],
|
||||
clinicNameEnglish: json['clinicNameEnglish'],
|
||||
);
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
return {
|
||||
'clinicGroupID': clinicGroupID,
|
||||
'clinicGroupName': clinicGroupName,
|
||||
'clinicID': clinicID,
|
||||
'clinicNameArabic': clinicNameArabic,
|
||||
'clinicNameEnglish': clinicNameEnglish,
|
||||
};
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,85 @@
|
||||
class ProgressNote {
|
||||
int? clinicGroupId;
|
||||
int? clinicId;
|
||||
int? createdById;
|
||||
String? createdOn;
|
||||
int? employeeId;
|
||||
int? hospitalGroupId;
|
||||
int? hospitalId;
|
||||
String? loginUserId;
|
||||
String? manualDate;
|
||||
String? modifiedOn;
|
||||
String? patientCondition;
|
||||
String? patientConditionName;
|
||||
int? patientId;
|
||||
int? patientPomrId;
|
||||
String? progressNote;
|
||||
int? progressNoteId;
|
||||
String? progressNotesTypes;
|
||||
String? progressNotesTypesName;
|
||||
String? speciality;
|
||||
String? specialityName;
|
||||
int? subCategoryId;
|
||||
String? userFullName;
|
||||
int? userId;
|
||||
String? userType;
|
||||
|
||||
ProgressNote();
|
||||
|
||||
ProgressNote.fromJson(Map<String, dynamic> json) {
|
||||
clinicGroupId = json['clinicGroupId'];
|
||||
clinicId = json['clinicId'];
|
||||
createdById = json['createdById'];
|
||||
createdOn = json['createdOn'];
|
||||
employeeId = json['employeeId'];
|
||||
hospitalGroupId = json['hospitalGroupId'];
|
||||
hospitalId = json['hospitalId'];
|
||||
loginUserId = json['loginUserId'];
|
||||
manualDate = json['manualDate'];
|
||||
modifiedOn = json['modifiedOn'];
|
||||
patientCondition = json['patientCondition'];
|
||||
patientConditionName = json['patientConditionName'];
|
||||
patientId = json['patientId'];
|
||||
patientPomrId = json['patientPomrId'];
|
||||
progressNote = json['progressNote'];
|
||||
progressNoteId = json['progressNoteId'];
|
||||
progressNotesTypes = json['progressNotesTypes'];
|
||||
progressNotesTypesName = json['progressNotesTypesName'];
|
||||
speciality = json['speciality'];
|
||||
specialityName = json['specialityName'];
|
||||
subCategoryId = json['subCategoryId'];
|
||||
userFullName = json['userFullName'];
|
||||
userId = json['userId'];
|
||||
userType = json['userType'];
|
||||
}
|
||||
|
||||
// toJson method
|
||||
Map<String, dynamic> toJson() {
|
||||
return {
|
||||
'clinicGroupId': clinicGroupId,
|
||||
'clinicId': clinicId,
|
||||
'createdById': createdById,
|
||||
'createdOn': createdOn,
|
||||
'employeeId': employeeId,
|
||||
'hospitalGroupId': hospitalGroupId,
|
||||
'hospitalId': hospitalId,
|
||||
'loginUserId': loginUserId,
|
||||
'manualDate': manualDate,
|
||||
'modifiedOn': modifiedOn,
|
||||
'patientCondition': patientCondition,
|
||||
'patientConditionName': patientConditionName,
|
||||
'patientId': patientId,
|
||||
'patientPomrId': patientPomrId,
|
||||
'progressNote': progressNote,
|
||||
'progressNoteId': progressNoteId,
|
||||
'progressNotesTypes': progressNotesTypes,
|
||||
'progressNotesTypesName': progressNotesTypesName,
|
||||
'speciality': speciality,
|
||||
'specialityName': specialityName,
|
||||
'subCategoryId': subCategoryId,
|
||||
'userFullName': userFullName,
|
||||
'userId': userId,
|
||||
'userType': userType,
|
||||
};
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,94 @@
|
||||
import 'package:doctor_app_flutter/core/model/SOAP/assessment/audit_diagnosis.dart';
|
||||
import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart';
|
||||
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
|
||||
class AuditItem extends StatelessWidget {
|
||||
final AuditDiagnosis auditDiagnosis;
|
||||
|
||||
const AuditItem({super.key, required this.auditDiagnosis});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.symmetric(vertical: 12, horizontal: 16),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
AppText(
|
||||
auditDiagnosis.createdBy ?? '',
|
||||
fontWeight: FontWeight.w600,
|
||||
fontSize: 12,
|
||||
color: Color(0xFF2B353E),
|
||||
),
|
||||
AppText(
|
||||
getDate(auditDiagnosis.createdOn?.isNotEmpty== true ? auditDiagnosis.createdOn ?? '' : auditDiagnosis.modifiedOn??''),
|
||||
fontWeight: FontWeight.w600,
|
||||
fontSize: 10,
|
||||
color: Color(0xFF2B353E),
|
||||
),
|
||||
],
|
||||
),
|
||||
SizedBox(height: 4,),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
AppText(
|
||||
"${TranslationBase.of(context).diagnosis}: ${auditDiagnosis.diagnosisType}",
|
||||
fontWeight: FontWeight.w600,
|
||||
fontSize: 12,
|
||||
color: Color(0xFF2B353E),
|
||||
),
|
||||
AppText(
|
||||
getTime(auditDiagnosis.createdOn?.isNotEmpty== true ? auditDiagnosis.createdOn ?? '' : auditDiagnosis.modifiedOn??''),
|
||||
fontWeight: FontWeight.w600,
|
||||
fontSize: 10,
|
||||
color: Color(0xFF2B353E),
|
||||
),
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 4,
|
||||
),
|
||||
|
||||
Visibility(
|
||||
visible: auditDiagnosis.deletedRemarks?.isEmpty == true,
|
||||
child: AppText(
|
||||
//todo handle the item after the discussion from the vidapro team this is temporary
|
||||
"${TranslationBase.of(context).remarks}: ${auditDiagnosis.remarks?.isNotEmpty == true? auditDiagnosis.remarks : TranslationBase.of(context).noRemarks}",
|
||||
fontWeight: FontWeight.w600,
|
||||
fontSize: 12,
|
||||
color: Color(0xFF2B353E),
|
||||
),
|
||||
),
|
||||
Visibility(
|
||||
visible: auditDiagnosis.deletedRemarks?.isNotEmpty == true,
|
||||
child: AppText(
|
||||
//todo handle the item after the discussion from the vidapro team this is temporary
|
||||
"${TranslationBase.of(context).deletedRemarks}${auditDiagnosis.deletedRemarks}",
|
||||
fontWeight: FontWeight.w600,
|
||||
fontSize: 12,
|
||||
color: Color(0xFF2B353E),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
String getDate(String dateTime) {
|
||||
if (dateTime.isEmpty) return '';
|
||||
DateTime now = DateTime.now();
|
||||
return DateFormat('dd MMM yyyy').format(now);
|
||||
}
|
||||
|
||||
String getTime(String dateTime) {
|
||||
if (dateTime.isEmpty) return '';
|
||||
DateTime now = DateTime.now();
|
||||
return DateFormat('hh:mm a').format(now);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,62 @@
|
||||
import 'package:doctor_app_flutter/core/model/SOAP/assessment/audit_diagnosis.dart';
|
||||
import 'package:doctor_app_flutter/screens/patients/profile/soap_update_vida_plus/assessment/widget/audit_item.dart';
|
||||
import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart';
|
||||
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class AuditListBottomSheet extends StatelessWidget {
|
||||
final List<AuditDiagnosis> auditList;
|
||||
|
||||
const AuditListBottomSheet({super.key, required this.auditList});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return SizedBox(
|
||||
height: (auditList.length>1)?MediaQuery.sizeOf(context).height*.41:MediaQuery.sizeOf(context).height*.28,
|
||||
child: Material(
|
||||
color: Color(0xFFF7F7F7),
|
||||
shape: RoundedRectangleBorder(borderRadius: BorderRadius.only(topLeft: Radius.circular(20), topRight: Radius.circular(20))),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 20.0, vertical: 32),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
AppText(
|
||||
TranslationBase.of(context).audit,
|
||||
fontWeight: FontWeight.w700,
|
||||
fontSize: 24,
|
||||
color: Color(0xFF2B353E),
|
||||
),
|
||||
SizedBox(
|
||||
height: 16,
|
||||
),
|
||||
SizedBox(
|
||||
height: (auditList.length>1)?MediaQuery.sizeOf(context).height*.25:MediaQuery.sizeOf(context).height*.12,
|
||||
child: Material(
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(10)),
|
||||
color: Colors.white,
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Expanded(
|
||||
child: ListView.separated(
|
||||
|
||||
itemCount: auditList.length,
|
||||
itemBuilder: (context, index) => AuditItem(
|
||||
auditDiagnosis: auditList[index],
|
||||
),
|
||||
separatorBuilder: (_, __) => Divider(),
|
||||
))
|
||||
],
|
||||
),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -1,61 +1,250 @@
|
||||
import 'package:doctor_app_flutter/config/config.dart';
|
||||
import 'package:doctor_app_flutter/core/model/SOAP/assessment/audit_diagnosis.dart';
|
||||
import 'package:doctor_app_flutter/core/model/SOAP/assessment/patient_previous_diagnosis.dart';
|
||||
import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.dart';
|
||||
import 'package:doctor_app_flutter/core/viewModel/SOAP_view_model.dart';
|
||||
import 'package:doctor_app_flutter/screens/base/base_view.dart';
|
||||
import 'package:doctor_app_flutter/screens/patients/profile/soap_update_vida_plus/assessment/add_diagnosis.dart';
|
||||
import 'package:doctor_app_flutter/screens/patients/profile/soap_update_vida_plus/assessment/widget/audit_list_bottom_sheet.dart';
|
||||
import 'package:doctor_app_flutter/screens/patients/profile/soap_update_vida_plus/assessment/widget/edit_diagnosis.dart';
|
||||
import 'package:doctor_app_flutter/screens/patients/profile/soap_update_vida_plus/assessment/widget/empty_diagnosis.dart';
|
||||
import 'package:doctor_app_flutter/screens/patients/profile/soap_update_vida_plus/subjective/chief_complaint/widgets/add_soap_item.dart';
|
||||
import 'package:doctor_app_flutter/screens/patients/profile/soap_update_vida_plus/widgets/SoapDetailItem.dart';
|
||||
import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart';
|
||||
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
|
||||
import 'package:doctor_app_flutter/widgets/shared/buttons/app_buttons_widget.dart';
|
||||
import 'package:doctor_app_flutter/widgets/transitions/fade_page.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class CurrentDiagnosis extends StatelessWidget {
|
||||
final List<dynamic> currentDiagnosisItems;
|
||||
import '../../../../../../widgets/shared/text_fields/app-textfield-custom.dart';
|
||||
|
||||
const CurrentDiagnosis({super.key, required this.currentDiagnosisItems});
|
||||
class CurrentDiagnosis extends StatefulWidget {
|
||||
final PatiantInformtion patientInfo;
|
||||
final List<PatientPreviousDiagnosis> currentDiagnosisItems;
|
||||
final SOAPViewModel model;
|
||||
|
||||
const CurrentDiagnosis(
|
||||
{super.key,
|
||||
required this.currentDiagnosisItems,
|
||||
required this.patientInfo,
|
||||
required this.model});
|
||||
|
||||
@override
|
||||
State<CurrentDiagnosis> createState() => _CurrentDiagnosisState();
|
||||
}
|
||||
|
||||
class _CurrentDiagnosisState extends State<CurrentDiagnosis> {
|
||||
TextEditingController deleteController = TextEditingController();
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
SizedBox(
|
||||
height: 10,
|
||||
),
|
||||
AddSoapItem(
|
||||
title: TranslationBase.of(context).addNewDiagnosis,
|
||||
onAddSoapItemClicked: () {
|
||||
Navigator.push(context, FadePage(page: AddDiagnosis()));
|
||||
}),
|
||||
SizedBox(
|
||||
height: 16,
|
||||
),
|
||||
Divider(),
|
||||
SizedBox(
|
||||
height: 16,
|
||||
),
|
||||
if (currentDiagnosisItems.isEmpty) ...{
|
||||
Center(
|
||||
child: EmptyDiagnosis(),
|
||||
),
|
||||
} else ...{
|
||||
Flexible(
|
||||
|
||||
child:
|
||||
ListView.separated(
|
||||
itemBuilder: (_, index) {
|
||||
return SoapDetailItem(
|
||||
title: 'lorem ipsum',
|
||||
status: 'active',
|
||||
condition: 'acute',
|
||||
remarks: 'initial',
|
||||
onSoapDetailActionClicked: (action) {},
|
||||
);
|
||||
},
|
||||
separatorBuilder: (_, index) => Divider(),
|
||||
itemCount: currentDiagnosisItems.length))
|
||||
return BaseView<SOAPViewModel>(
|
||||
onModelReady: (model) async {},
|
||||
builder: (_, model, w) {
|
||||
if (model.showAudit) {
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
showAuditBottomSheet(context, model.auditDiagnosislist,
|
||||
model.toggleShowBottomSheetValue);
|
||||
model.toggleShowBottomSheetValue(false);
|
||||
});
|
||||
}
|
||||
],
|
||||
),
|
||||
);
|
||||
|
||||
return Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
SizedBox(
|
||||
height: 10,
|
||||
),
|
||||
AddSoapItem(
|
||||
title: TranslationBase.of(context).addNewDiagnosis,
|
||||
onAddSoapItemClicked: () async {
|
||||
bool result = await Navigator.push(
|
||||
context,
|
||||
FadePage(
|
||||
page: AddDiagnosis(
|
||||
patientInfo: widget.patientInfo,
|
||||
)));
|
||||
if (result) {
|
||||
model.getCurrentDiagnosisList(widget.patientInfo);
|
||||
}
|
||||
}),
|
||||
SizedBox(
|
||||
height: 16,
|
||||
),
|
||||
Divider(),
|
||||
SizedBox(
|
||||
height: 16,
|
||||
),
|
||||
if (widget.currentDiagnosisItems.isEmpty) ...{
|
||||
Center(
|
||||
child: EmptyDiagnosis(),
|
||||
),
|
||||
} else ...{
|
||||
Flexible(
|
||||
child: ListView.separated(
|
||||
itemBuilder: (_, index) {
|
||||
return SoapDetailItem(
|
||||
title: widget.currentDiagnosisItems[index]
|
||||
.selectedDisease ??
|
||||
'',
|
||||
status:
|
||||
widget.currentDiagnosisItems[index].status ??
|
||||
'',
|
||||
condition: widget
|
||||
.currentDiagnosisItems[index].condition ??
|
||||
'',
|
||||
remarks:
|
||||
widget.currentDiagnosisItems[index].remarks ??
|
||||
'',
|
||||
onSoapDetailActionClicked: (action) async{
|
||||
switch (action) {
|
||||
case SoapDetailItemActions.AUDIT:
|
||||
model.getAuditOfDiagnosis(
|
||||
widget.patientInfo,
|
||||
widget.currentDiagnosisItems[index]
|
||||
.patientProblemRevisionId
|
||||
?.toString() ??
|
||||
'');
|
||||
break;
|
||||
case SoapDetailItemActions.EDIT:
|
||||
bool result = await Navigator.push(
|
||||
context,
|
||||
FadePage(
|
||||
page: EditDiagnosis(
|
||||
patientInfo: widget.patientInfo, diagnosis: widget.currentDiagnosisItems[index],
|
||||
)));
|
||||
if (result) {
|
||||
model.getCurrentDiagnosisList(widget.patientInfo);
|
||||
}
|
||||
break;
|
||||
case SoapDetailItemActions.RESOLVE:
|
||||
bool result = await model.resolveDiagnosis(widget.currentDiagnosisItems[index]);
|
||||
if (result) {
|
||||
model.getCurrentDiagnosisList(widget.patientInfo);
|
||||
}
|
||||
break;
|
||||
|
||||
case SoapDetailItemActions.REMOVE:
|
||||
showConfirmationDialog(context,
|
||||
"${TranslationBase.of(context).delete} ${TranslationBase.of(context).diagnosis}",
|
||||
() {
|
||||
widget.model
|
||||
.removeDiagnosis(widget.patientInfo);
|
||||
});
|
||||
case SoapDetailItemActions.CHANGE_STATUS:
|
||||
// TODO: Handle this case.
|
||||
default:
|
||||
}
|
||||
},
|
||||
);
|
||||
},
|
||||
separatorBuilder: (_, index) => Divider(),
|
||||
itemCount: widget.currentDiagnosisItems.length))
|
||||
}
|
||||
],
|
||||
),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
showConfirmationDialog(
|
||||
BuildContext context, String message, Function okFunction) {
|
||||
return showDialog(
|
||||
context: context,
|
||||
barrierDismissible: true, // user must tap button!
|
||||
builder: (_) {
|
||||
return Container(
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
AlertDialog(
|
||||
title: null,
|
||||
content: Container(
|
||||
child: Column(
|
||||
children: [
|
||||
AppText(message),
|
||||
SizedBox(
|
||||
height: 8,
|
||||
),
|
||||
AppText(
|
||||
TranslationBase.of(context)
|
||||
.areYouSureYouWantToDeleteDiagnosis,
|
||||
textAlign: TextAlign.center,
|
||||
),
|
||||
SizedBox(
|
||||
height: 8,
|
||||
),
|
||||
AppTextFieldCustom(
|
||||
hintText: TranslationBase.of(context).remarks,
|
||||
controller: deleteController,
|
||||
maxLines: 25,
|
||||
minLines: 3,
|
||||
hasBorder: true,
|
||||
onChanged: (value) {},
|
||||
inputType: TextInputType.multiline,
|
||||
onClick: () {},
|
||||
onFieldSubmitted: () {},
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
actions: [
|
||||
Row(
|
||||
children: [
|
||||
Expanded(
|
||||
child: AppButton(
|
||||
onPressed: () {
|
||||
Navigator.of(context).pop();
|
||||
},
|
||||
title: TranslationBase.of(context).cancel,
|
||||
fontColor: Colors.black,
|
||||
color: Color(0xffEAEAEA),
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
width: 8,
|
||||
),
|
||||
Expanded(
|
||||
child: AppButton(
|
||||
onPressed: () {
|
||||
okFunction();
|
||||
Navigator.of(context).pop();
|
||||
},
|
||||
title: TranslationBase.of(context).delete,
|
||||
fontColor: Colors.white,
|
||||
color: Colors.red[600],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}).then((value) {
|
||||
deleteController.clear();
|
||||
});
|
||||
}
|
||||
|
||||
void showAuditBottomSheet(
|
||||
BuildContext context,
|
||||
List<AuditDiagnosis> diagnosis,
|
||||
void Function(bool status) toggleShowBottomSheetValue,
|
||||
) {
|
||||
showModalBottomSheet(
|
||||
isDismissible: true,
|
||||
context: context,
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.only(
|
||||
topLeft: Radius.circular(20), topRight: Radius.circular(20))),
|
||||
builder: (_) {
|
||||
return AuditListBottomSheet(
|
||||
auditList: diagnosis,
|
||||
);
|
||||
},
|
||||
).then((value) => toggleShowBottomSheetValue(false));
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,477 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:doctor_app_flutter/config/config.dart';
|
||||
import 'package:doctor_app_flutter/config/size_config.dart';
|
||||
import 'package:doctor_app_flutter/core/enum/view_state.dart';
|
||||
import 'package:doctor_app_flutter/core/model/SOAP/assessment/diagnosis_type.dart';
|
||||
import 'package:doctor_app_flutter/core/model/SOAP/assessment/patient_previous_diagnosis.dart';
|
||||
import 'package:doctor_app_flutter/core/model/SOAP/assessment/search_diagnosis.dart';
|
||||
import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.dart';
|
||||
import 'package:doctor_app_flutter/core/viewModel/SOAP_view_model.dart';
|
||||
import 'package:doctor_app_flutter/screens/base/base_view.dart';
|
||||
import 'package:doctor_app_flutter/screens/patients/patient_search/patient_search_header.dart';
|
||||
import 'package:doctor_app_flutter/screens/patients/profile/soap_update_vida_plus/assessment/widget/empty_dropdown.dart';
|
||||
import 'package:doctor_app_flutter/utils/dr_app_toast_msg.dart';
|
||||
import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart';
|
||||
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
|
||||
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
|
||||
import 'package:doctor_app_flutter/widgets/shared/buttons/app_buttons_widget.dart';
|
||||
import 'package:doctor_app_flutter/widgets/shared/text_fields/app-textfield-custom.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get_it/get_it.dart';
|
||||
import 'package:hexcolor/hexcolor.dart';
|
||||
|
||||
class EditDiagnosis extends StatefulWidget {
|
||||
final PatiantInformtion patientInfo;
|
||||
final PatientPreviousDiagnosis diagnosis;
|
||||
|
||||
const EditDiagnosis(
|
||||
{super.key, required this.patientInfo, required this.diagnosis});
|
||||
|
||||
@override
|
||||
State<EditDiagnosis> createState() => _EditDiagnosisState();
|
||||
}
|
||||
|
||||
class _EditDiagnosisState extends State<EditDiagnosis> {
|
||||
final TextEditingController filteredSearchController =
|
||||
TextEditingController();
|
||||
bool showAllDiagnosis = true;
|
||||
String status = '';
|
||||
String? selectedDiagnosisItem;
|
||||
String? selectedDiagnosisItemValue;
|
||||
TextEditingController remarksController = TextEditingController();
|
||||
Timer? _tTimer;
|
||||
SOAPViewModel? model;
|
||||
SearchDiagnosis? selectedDiagnosis;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
filteredSearchController.text = widget.diagnosis.selectedDisease ?? '';
|
||||
filteredSearchController.text = widget.diagnosis.remarks ?? '';
|
||||
status = widget.diagnosis.condition ?? '';
|
||||
selectedDiagnosisItemValue = widget.diagnosis?.diagnosisType ?? '';
|
||||
}
|
||||
|
||||
void _onTextChanged(String text) {
|
||||
if (_tTimer != null) {
|
||||
_tTimer!.cancel();
|
||||
}
|
||||
_tTimer = Timer(Duration(milliseconds: 500), () {
|
||||
_onStopped(text);
|
||||
});
|
||||
}
|
||||
|
||||
void _onStopped(String searchText) async {
|
||||
await model?.searchDiagnosis(widget.patientInfo, searchText);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return BaseView<SOAPViewModel>(onModelReady: (model) {
|
||||
this.model = model;
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
model.getConditionAndType(widget.patientInfo);
|
||||
});
|
||||
}, builder: (_, model, w) {
|
||||
if (selectedDiagnosisItem == null && model.diagnosisTypeList.isNotEmpty) {
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
selectedDiagnosisItem = model.diagnosisTypeList.keys.firstWhere(
|
||||
(k) =>
|
||||
model.diagnosisTypeList[k] == selectedDiagnosisItemValue,
|
||||
orElse: () => '');
|
||||
if (selectedDiagnosisItem?.isEmpty == true)
|
||||
selectedDiagnosisItem = null;
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
return AppScaffold(
|
||||
isLoading: model.state == ViewState.BusyLocal,
|
||||
isShowAppBar: true,
|
||||
appBar: PatientSearchHeader(
|
||||
title: TranslationBase.of(context).editDiagnosis),
|
||||
body: SingleChildScrollView(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(vertical: 12, horizontal: 16),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
AppText(
|
||||
TranslationBase.of(context).editDiagnosis,
|
||||
fontWeight: FontWeight.w600,
|
||||
color: Color(0xFF2E303A),
|
||||
fontSize: 16,
|
||||
),
|
||||
SizedBox(
|
||||
height: 16,
|
||||
),
|
||||
AppTextFieldCustom(
|
||||
hintText: TranslationBase.of(context).diagnosis,
|
||||
isTextFieldHasSuffix: true,
|
||||
hasBorder: true,
|
||||
controller: filteredSearchController,
|
||||
onClick: () {
|
||||
setState(
|
||||
() {
|
||||
selectedDiagnosis = null;
|
||||
filteredSearchController.text = '';
|
||||
model.selectedIcd = '';
|
||||
},
|
||||
);
|
||||
},
|
||||
onChanged: (value) {
|
||||
if (value != null) _onTextChanged(value);
|
||||
},
|
||||
onFieldSubmitted: () {},
|
||||
suffixIcon: IconButton(
|
||||
icon: Icon(
|
||||
Icons.search,
|
||||
color: Color(0xff2B353E),
|
||||
size: 30,
|
||||
),
|
||||
onPressed: () {},
|
||||
),
|
||||
),
|
||||
Positioned(
|
||||
child: Material(
|
||||
elevation: 4.0, // Optional: for shadow effect
|
||||
child: ConstrainedBox(
|
||||
constraints: BoxConstraints(minHeight: 0, maxHeight: 300),
|
||||
child: ListView.builder(
|
||||
shrinkWrap: true,
|
||||
itemCount: model.icdVersionList.length,
|
||||
itemBuilder: (context, index) {
|
||||
return ListTile(
|
||||
title: InkWell(
|
||||
child: AppText(model.icdVersionList[index]),
|
||||
onTap: () {
|
||||
setState(
|
||||
() {
|
||||
selectedDiagnosis =
|
||||
model.findTheDiagnosisItem(
|
||||
model.icdVersionList[index]);
|
||||
filteredSearchController.text =
|
||||
model.icdVersionList[index];
|
||||
model.searchDiagnosisList.clear();
|
||||
model.icdVersionList.clear();
|
||||
},
|
||||
);
|
||||
},
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 8,
|
||||
),
|
||||
// Row(
|
||||
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
// children: [
|
||||
// Row(
|
||||
// children: [
|
||||
// Switch(
|
||||
// value: showAllDiagnosis,
|
||||
// activeColor: Colors.red,
|
||||
// onChanged: (bool value) {
|
||||
// setState(() {
|
||||
// showAllDiagnosis = value;
|
||||
// });
|
||||
// },
|
||||
// ),
|
||||
// SizedBox(
|
||||
// width: 8,
|
||||
// ),
|
||||
// AppText(
|
||||
// TranslationBase.of(context).showAllDiagnosis,
|
||||
// fontWeight: FontWeight.w500,
|
||||
// color: Color(0xFF2E303A),
|
||||
// fontSize: 11,
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// SvgPicture.asset('assets/images/svgs/information.svg'),
|
||||
// ],
|
||||
// ),
|
||||
Container(
|
||||
margin: EdgeInsets.only(bottom: 12),
|
||||
child: AppText(
|
||||
TranslationBase.of(context).condition,
|
||||
fontWeight: FontWeight.bold,
|
||||
fontFamily: 'Poppins',
|
||||
fontSize: 11,
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
width: MediaQuery.sizeOf(context).width,
|
||||
height: 24,
|
||||
child: ListView.builder(
|
||||
shrinkWrap: true,
|
||||
scrollDirection: Axis.horizontal,
|
||||
itemCount: model.conditionTypeList.length,
|
||||
itemBuilder: (context, index) => InkWell(
|
||||
onTap: () {
|
||||
setState(() {
|
||||
status = model.conditionTypeList[index];
|
||||
});
|
||||
},
|
||||
child: Row(
|
||||
children: [
|
||||
Container(
|
||||
padding: EdgeInsets.all(2.0),
|
||||
margin: EdgeInsets.symmetric(horizontal: 6),
|
||||
width: 20,
|
||||
height: 20,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
shape: BoxShape.circle,
|
||||
border: Border.all(
|
||||
color: Colors.grey, width: 1),
|
||||
),
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
color: status ==
|
||||
model.conditionTypeList[index]
|
||||
.toLowerCase()
|
||||
? HexColor("#D02127")
|
||||
: Colors.white,
|
||||
shape: BoxShape.circle,
|
||||
),
|
||||
),
|
||||
),
|
||||
AppText(
|
||||
model.conditionTypeList[index],
|
||||
fontWeight: FontWeight.normal,
|
||||
fontFamily: 'Poppins',
|
||||
fontSize: SizeConfig.textMultiplier! * 1.6,
|
||||
),
|
||||
],
|
||||
),
|
||||
)),
|
||||
),
|
||||
SizedBox(
|
||||
height: 8,
|
||||
),
|
||||
Material(
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(10),
|
||||
side: BorderSide(
|
||||
width: 1,
|
||||
color: Color(0xFFEFEFEF),
|
||||
)),
|
||||
color: Colors.white,
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
horizontal: 16.0, vertical: 12),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
AppText(
|
||||
TranslationBase.of(context).diagnoseType,
|
||||
textAlign: TextAlign.start,
|
||||
fontWeight: FontWeight.w600,
|
||||
fontSize: 11,
|
||||
color: Color(0xFF2E303A),
|
||||
),
|
||||
SizedBox(
|
||||
height: 4,
|
||||
),
|
||||
model.diagnosisTypeList.isEmpty
|
||||
? EmptyDropDown()
|
||||
: DropdownButtonHideUnderline(
|
||||
child: DropdownButton(
|
||||
dropdownColor: Colors.white,
|
||||
iconEnabledColor: Colors.black,
|
||||
icon: Icon(Icons.keyboard_arrow_down),
|
||||
isExpanded: true,
|
||||
value: selectedDiagnosisItem == null
|
||||
? model.diagnosisTypeList.keys.first
|
||||
: selectedDiagnosisItem,
|
||||
iconSize: 25,
|
||||
elevation: 16,
|
||||
onChanged: (newValue) async {
|
||||
if (newValue != null)
|
||||
setState(() {
|
||||
selectedDiagnosisItem = newValue;
|
||||
});
|
||||
},
|
||||
items:
|
||||
model.diagnosisTypeList.keys.map((item) {
|
||||
return DropdownMenuItem(
|
||||
child: AppText(
|
||||
item ?? '',
|
||||
fontSize: 14,
|
||||
letterSpacing: -0.96,
|
||||
color: AppGlobal.appTextColor,
|
||||
fontWeight: FontWeight.normal,
|
||||
textAlign: TextAlign.left,
|
||||
),
|
||||
value: item,
|
||||
);
|
||||
}).toList(),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
margin: EdgeInsets.only(top: 8),
|
||||
child: AppTextFieldCustom(
|
||||
hintText: TranslationBase.of(context).remarks,
|
||||
controller: remarksController,
|
||||
minLines: 2,
|
||||
maxLines: 4,
|
||||
inputType: TextInputType.multiline,
|
||||
onChanged: (value) {},
|
||||
onClick: () {},
|
||||
onFieldSubmitted: () {},
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 16,
|
||||
),
|
||||
// InkWell(
|
||||
// onTap: () async {
|
||||
// if (selectedDiagnosis != null) {
|
||||
// SearchDiagnosis? diagnosis =
|
||||
// await model.addToFavoriteDiagnosis(widget.patientInfo,
|
||||
// diagnosis: selectedDiagnosis);
|
||||
// setState(() {
|
||||
// selectedDiagnosis = diagnosis;
|
||||
// });
|
||||
// }
|
||||
// },
|
||||
// child: Row(
|
||||
// children: [
|
||||
// SvgPicture.asset(selectedDiagnosis?.isFavorite == true
|
||||
// ? 'assets/images/svgs/favoriteadded.svg'
|
||||
// : 'assets/images/svgs/favorite.svg'),
|
||||
// SizedBox(
|
||||
// width: 4,
|
||||
// ),
|
||||
// AppText(
|
||||
// TranslationBase.of(context).addToFavorite,
|
||||
// textAlign: TextAlign.start,
|
||||
// fontWeight: FontWeight.w600,
|
||||
// fontSize: 10,
|
||||
// color: Color(0xFF449BF1),
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// )
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
bottomNavigationBar: Container(
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
borderRadius: BorderRadius.all(
|
||||
Radius.circular(0.0),
|
||||
),
|
||||
border: Border.all(color: HexColor('#707070'), width: 0),
|
||||
),
|
||||
height: SizeConfig.heightMultiplier! *
|
||||
(SizeConfig.isHeightVeryShort ? 12 : 10),
|
||||
width: double.infinity,
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(10),
|
||||
child: Column(
|
||||
children: [
|
||||
Center(
|
||||
child: Row(
|
||||
children: [
|
||||
Expanded(
|
||||
child: AppButton(
|
||||
title: TranslationBase.of(context).previous,
|
||||
color: Colors.grey[300]!,
|
||||
fontColor: Colors.black,
|
||||
fontWeight: FontWeight.w600,
|
||||
onPressed: () {
|
||||
Navigator.pop(context);
|
||||
},
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
width: 5,
|
||||
),
|
||||
Expanded(
|
||||
child: AppButton(
|
||||
title: TranslationBase.of(context).save,
|
||||
fontWeight: FontWeight.w600,
|
||||
color: Color(0xFF359846),
|
||||
onPressed: () async {
|
||||
selectedDiagnosisItem ??=
|
||||
model.diagnosisTypeList.keys.first;
|
||||
if (selectedDiagnosis == null &&
|
||||
filteredSearchController.text.isEmpty) {
|
||||
DrAppToastMsg.showErrorToast(
|
||||
TranslationBase.of(context)
|
||||
.selectedDiagnosis);
|
||||
return;
|
||||
}
|
||||
if (status.isEmpty) {
|
||||
DrAppToastMsg.showErrorToast(
|
||||
TranslationBase.of(context)
|
||||
.selectConditionFirst);
|
||||
return;
|
||||
}
|
||||
|
||||
if (remarksController.text.isEmpty) {
|
||||
DrAppToastMsg.showErrorToast(
|
||||
TranslationBase.of(context)
|
||||
.remarksCanNotBeEmpty);
|
||||
return;
|
||||
}
|
||||
|
||||
if (filteredSearchController.text ==
|
||||
widget.diagnosis.selectedDisease &&
|
||||
status == widget.diagnosis.condition &&
|
||||
widget.diagnosis.diagnosisType ==
|
||||
selectedDiagnosisItem &&
|
||||
widget.diagnosis.remarks ==
|
||||
filteredSearchController.text) {
|
||||
DrAppToastMsg.showErrorToast(
|
||||
TranslationBase.of(context)
|
||||
.noChangeRecorded);
|
||||
return;
|
||||
}
|
||||
widget.diagnosis.selectedDisease =
|
||||
filteredSearchController.text;
|
||||
widget.diagnosis.selectedCategoryCode =
|
||||
selectedDiagnosis?.selectedCategoryCode ?? '';
|
||||
widget.diagnosis.selectedIcdCode =
|
||||
selectedDiagnosis?.selectedIcdCode ?? '';
|
||||
widget.diagnosis.selectedChapterCode =
|
||||
selectedDiagnosis?.selectedChapterCode ?? '';
|
||||
widget.diagnosis.selectedSectionCode =
|
||||
selectedDiagnosis?.selectedSectionCode ?? '';
|
||||
widget.diagnosis.condition = status;
|
||||
widget.diagnosis.diagnosisType =
|
||||
selectedDiagnosisItem;
|
||||
|
||||
bool result =
|
||||
await model.editDiagnosis(widget.diagnosis);
|
||||
if (result) {
|
||||
Navigator.pop(context, result);
|
||||
}
|
||||
}),
|
||||
),
|
||||
],
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class EmptyDropDown extends StatelessWidget{
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.all(12.0),
|
||||
child: Row(
|
||||
children: [
|
||||
Expanded(child: SizedBox.shrink()),
|
||||
Align(
|
||||
alignment: Alignment.centerLeft,
|
||||
child: Icon(Icons.keyboard_arrow_down),
|
||||
)
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,467 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:doctor_app_flutter/config/config.dart';
|
||||
import 'package:doctor_app_flutter/config/size_config.dart';
|
||||
import 'package:doctor_app_flutter/core/model/SOAP/assessment/diagnosis_type.dart';
|
||||
import 'package:doctor_app_flutter/core/model/SOAP/assessment/search_diagnosis.dart';
|
||||
import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.dart';
|
||||
import 'package:doctor_app_flutter/core/viewModel/SOAP_view_model.dart';
|
||||
import 'package:doctor_app_flutter/screens/base/base_view.dart';
|
||||
import 'package:doctor_app_flutter/screens/patients/profile/soap_update_vida_plus/assessment/widget/empty_dropdown.dart';
|
||||
import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart';
|
||||
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
|
||||
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
|
||||
import 'package:doctor_app_flutter/widgets/shared/buttons/app_buttons_widget.dart';
|
||||
import 'package:doctor_app_flutter/widgets/shared/text_fields/app-textfield-custom.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:hexcolor/hexcolor.dart';
|
||||
|
||||
List<String> patientState = ["", "Stable", "Not Stable", "Not Defined"];
|
||||
|
||||
class FavoriteDiagnosis extends StatefulWidget {
|
||||
final PatiantInformtion patientInfo;
|
||||
|
||||
const FavoriteDiagnosis({super.key, required this.patientInfo});
|
||||
|
||||
@override
|
||||
State<FavoriteDiagnosis> createState() => _FavoriteDiagnosisState();
|
||||
}
|
||||
|
||||
class _FavoriteDiagnosisState extends State<FavoriteDiagnosis> {
|
||||
final TextEditingController filteredSearchController =
|
||||
TextEditingController();
|
||||
bool showAllDiagnosis = true;
|
||||
String status = '';
|
||||
String? selectedItem;
|
||||
String? selectedFavorite;
|
||||
TextEditingController remarksController = TextEditingController();
|
||||
Timer? _tTimer;
|
||||
SOAPViewModel? model;
|
||||
SearchDiagnosis? selectedDiagnosis;
|
||||
|
||||
void _onTextChanged(String text) {
|
||||
if (_tTimer != null) {
|
||||
_tTimer!.cancel();
|
||||
}
|
||||
_tTimer = Timer(Duration(milliseconds: 500), () {
|
||||
_onStopped(text);
|
||||
});
|
||||
}
|
||||
|
||||
void _onStopped(String searchText) async {
|
||||
await model?.searchDiagnosis(widget.patientInfo, searchText);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return BaseView<SOAPViewModel>(
|
||||
onModelReady: (model) {
|
||||
this.model = model;
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
model.favoriteDiagnosis(widget.patientInfo);
|
||||
});
|
||||
},
|
||||
builder: (_, model, w) => AppScaffold(
|
||||
body: SingleChildScrollView(
|
||||
child: Padding(
|
||||
padding:
|
||||
const EdgeInsets.symmetric(vertical: 12, horizontal: 16),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
AppText(
|
||||
TranslationBase.of(context).addDiagnosis,
|
||||
fontWeight: FontWeight.w600,
|
||||
color: Color(0xFF2E303A),
|
||||
fontSize: 16,
|
||||
),
|
||||
SizedBox(
|
||||
height: 16,
|
||||
),
|
||||
Material(
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(10),
|
||||
side: BorderSide(
|
||||
width: 1,
|
||||
color: Color(0xFFEFEFEF),
|
||||
)),
|
||||
color: Colors.white,
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
horizontal: 16.0, vertical: 12),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
AppText(
|
||||
TranslationBase.of(context).diagnosis,
|
||||
textAlign: TextAlign.start,
|
||||
fontWeight: FontWeight.w600,
|
||||
fontSize: 11,
|
||||
color: Color(0xFF2E303A),
|
||||
),
|
||||
SizedBox(
|
||||
height: 4,
|
||||
),
|
||||
model.favoriteDiagnosisDetails.isEmpty
|
||||
? EmptyDropDown()
|
||||
: DropdownButtonHideUnderline(
|
||||
child: DropdownButton(
|
||||
dropdownColor: Colors.white,
|
||||
iconEnabledColor: Colors.black,
|
||||
icon: Icon(Icons.keyboard_arrow_down),
|
||||
isExpanded: true,
|
||||
itemHeight: null,
|
||||
value: selectedFavorite == null
|
||||
? model.favoriteDiagnosisDetails.first
|
||||
.diseases
|
||||
: selectedFavorite,
|
||||
iconSize: 25,
|
||||
elevation: 16,
|
||||
onChanged: (newValue) async {
|
||||
if (newValue != null)
|
||||
setState(() {
|
||||
selectedFavorite = newValue;
|
||||
});
|
||||
},
|
||||
items: model.favoriteDiagnosisDetails
|
||||
.map((item) {
|
||||
return DropdownMenuItem(
|
||||
child: AppText(
|
||||
item.diseases ?? '',
|
||||
fontSize: 14,
|
||||
letterSpacing: -0.96,
|
||||
color: AppGlobal.appTextColor,
|
||||
fontWeight: FontWeight.normal,
|
||||
textAlign: TextAlign.left,
|
||||
),
|
||||
value: item.diseases,
|
||||
);
|
||||
}).toList(),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
SizedBox(
|
||||
height: 8,
|
||||
),
|
||||
Container(
|
||||
margin: EdgeInsets.only(bottom: 12),
|
||||
child: AppText(
|
||||
TranslationBase.of(context).condition,
|
||||
fontWeight: FontWeight.bold,
|
||||
fontFamily: 'Poppins',
|
||||
fontSize: 11,
|
||||
),
|
||||
),
|
||||
// Row(
|
||||
// children: [
|
||||
// Expanded(
|
||||
// child: InkWell(
|
||||
// onTap: () {
|
||||
// setState(() {
|
||||
// status = "";
|
||||
// });
|
||||
// },
|
||||
// child: Row(
|
||||
// children: [
|
||||
// Container(
|
||||
// padding: EdgeInsets.all(2.0),
|
||||
// margin: EdgeInsets.symmetric(horizontal: 6),
|
||||
// width: 20,
|
||||
// height: 20,
|
||||
// decoration: BoxDecoration(
|
||||
// color: Colors.white,
|
||||
// shape: BoxShape.circle,
|
||||
// border:
|
||||
// Border.all(color: Colors.grey, width: 1),
|
||||
// ),
|
||||
// child: Container(
|
||||
// decoration: BoxDecoration(
|
||||
// color: status == 1
|
||||
// ? HexColor("#D02127")
|
||||
// : Colors.white,
|
||||
// shape: BoxShape.circle,
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
// AppText(
|
||||
// TranslationBase.of(context).acute,
|
||||
// fontWeight: FontWeight.normal,
|
||||
// fontFamily: 'Poppins',
|
||||
// fontSize: SizeConfig.textMultiplier! * 1.6,
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// )),
|
||||
// Expanded(
|
||||
// child: InkWell(
|
||||
// onTap: () {
|
||||
// setState(() {
|
||||
// status = "2";
|
||||
// });
|
||||
// },
|
||||
// child: Row(
|
||||
// children: [
|
||||
// Container(
|
||||
// padding: EdgeInsets.all(2.0),
|
||||
// margin: EdgeInsets.symmetric(horizontal: 6),
|
||||
// width: 20,
|
||||
// height: 20,
|
||||
// decoration: BoxDecoration(
|
||||
// color: Colors.white,
|
||||
// shape: BoxShape.circle,
|
||||
// border: Border.all(
|
||||
// color: Colors.grey, width: 1),
|
||||
// ),
|
||||
// child: Container(
|
||||
// decoration: BoxDecoration(
|
||||
// color: status == 2
|
||||
// ? HexColor("#D02127")
|
||||
// : Colors.white,
|
||||
// shape: BoxShape.circle,
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
// AppText(
|
||||
// TranslationBase.of(context).subAcute,
|
||||
// fontWeight: FontWeight.normal,
|
||||
// fontFamily: 'Poppins',
|
||||
// fontSize: SizeConfig.textMultiplier! * 1.6,
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
// Expanded(
|
||||
// child: InkWell(
|
||||
// onTap: () {
|
||||
// setState(() {
|
||||
// status = "3";
|
||||
// });
|
||||
// },
|
||||
// child: Row(
|
||||
// children: [
|
||||
// Container(
|
||||
// padding: EdgeInsets.all(2.0),
|
||||
// margin: EdgeInsets.symmetric(horizontal: 6),
|
||||
// width: 20,
|
||||
// height: 20,
|
||||
// decoration: BoxDecoration(
|
||||
// color: Colors.white,
|
||||
// shape: BoxShape.circle,
|
||||
// border: Border.all(
|
||||
// color: Colors.grey, width: 1),
|
||||
// ),
|
||||
// child: Container(
|
||||
// decoration: BoxDecoration(
|
||||
// color: status == 3
|
||||
// ? HexColor("#D02127")
|
||||
// : Colors.white,
|
||||
// shape: BoxShape.circle,
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
// AppText(
|
||||
// TranslationBase.of(context).chronic,
|
||||
// fontWeight: FontWeight.normal,
|
||||
// fontFamily: 'Poppins',
|
||||
// fontSize: SizeConfig.textMultiplier! * 1.6,
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
SizedBox(
|
||||
width: MediaQuery.sizeOf(context).width,
|
||||
height: 24,
|
||||
child: ListView.builder(
|
||||
shrinkWrap: true,
|
||||
scrollDirection: Axis.horizontal,
|
||||
itemCount: model.conditionTypeList.length,
|
||||
itemBuilder: (context, index) => InkWell(
|
||||
onTap: () {
|
||||
setState(() {
|
||||
status = model.conditionTypeList[index];
|
||||
});
|
||||
},
|
||||
child: Row(
|
||||
children: [
|
||||
Container(
|
||||
padding: EdgeInsets.all(2.0),
|
||||
margin:
|
||||
EdgeInsets.symmetric(horizontal: 6),
|
||||
width: 20,
|
||||
height: 20,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
shape: BoxShape.circle,
|
||||
border: Border.all(
|
||||
color: Colors.grey, width: 1),
|
||||
),
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
color: status ==
|
||||
model.conditionTypeList[index]
|
||||
? HexColor("#D02127")
|
||||
: Colors.white,
|
||||
shape: BoxShape.circle,
|
||||
),
|
||||
),
|
||||
),
|
||||
AppText(
|
||||
model.conditionTypeList[index],
|
||||
fontWeight: FontWeight.normal,
|
||||
fontFamily: 'Poppins',
|
||||
fontSize:
|
||||
SizeConfig.textMultiplier! * 1.6,
|
||||
),
|
||||
],
|
||||
),
|
||||
)),
|
||||
),
|
||||
SizedBox(
|
||||
height: 8,
|
||||
),
|
||||
Material(
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(10),
|
||||
side: BorderSide(
|
||||
width: 1,
|
||||
color: Color(0xFFEFEFEF),
|
||||
)),
|
||||
color: Colors.white,
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
horizontal: 16.0, vertical: 12),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
AppText(
|
||||
TranslationBase.of(context).diagnoseType,
|
||||
textAlign: TextAlign.start,
|
||||
fontWeight: FontWeight.w600,
|
||||
fontSize: 11,
|
||||
color: Color(0xFF2E303A),
|
||||
),
|
||||
SizedBox(
|
||||
height: 4,
|
||||
),
|
||||
model.diagnosisTypeList.isEmpty
|
||||
? EmptyDropDown()
|
||||
: DropdownButtonHideUnderline(
|
||||
child: DropdownButton(
|
||||
itemHeight: null,
|
||||
dropdownColor: Colors.white,
|
||||
iconEnabledColor: Colors.black,
|
||||
icon: Icon(Icons.keyboard_arrow_down),
|
||||
isExpanded: true,
|
||||
value: selectedItem == null
|
||||
? model.diagnosisTypeList.keys.first
|
||||
: selectedItem,
|
||||
iconSize: 25,
|
||||
elevation: 16,
|
||||
onChanged: (newValue) async {
|
||||
if (newValue != null)
|
||||
setState(() {
|
||||
selectedItem = newValue;
|
||||
});
|
||||
},
|
||||
items: model.diagnosisTypeList.keys
|
||||
.map((item) {
|
||||
return DropdownMenuItem(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: AppText(
|
||||
item ?? '',
|
||||
fontSize: 14,
|
||||
letterSpacing: -0.96,
|
||||
color: AppGlobal.appTextColor,
|
||||
fontWeight: FontWeight.normal,
|
||||
textAlign: TextAlign.left,
|
||||
),
|
||||
),
|
||||
value: item,
|
||||
);
|
||||
}).toList(),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
margin: EdgeInsets.only(top: 8),
|
||||
child: AppTextFieldCustom(
|
||||
hintText: TranslationBase.of(context).remarks,
|
||||
controller: remarksController,
|
||||
minLines: 2,
|
||||
maxLines: 4,
|
||||
inputType: TextInputType.multiline,
|
||||
onChanged: (value) {},
|
||||
onClick: () {},
|
||||
onFieldSubmitted: () {},
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 16,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
bottomNavigationBar: Container(
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
borderRadius: BorderRadius.all(
|
||||
Radius.circular(0.0),
|
||||
),
|
||||
border: Border.all(color: HexColor('#707070'), width: 0),
|
||||
),
|
||||
height: SizeConfig.heightMultiplier! *
|
||||
(SizeConfig.isHeightVeryShort ? 12 : 10),
|
||||
width: double.infinity,
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(10),
|
||||
child: Column(
|
||||
children: [
|
||||
Center(
|
||||
child: Row(
|
||||
children: [
|
||||
Expanded(
|
||||
child: AppButton(
|
||||
title: TranslationBase.of(context).previous,
|
||||
color: Colors.grey[300]!,
|
||||
fontColor: Colors.black,
|
||||
fontWeight: FontWeight.w600,
|
||||
onPressed: () {
|
||||
Navigator.pop(context);
|
||||
},
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
width: 5,
|
||||
),
|
||||
Expanded(
|
||||
child: AppButton(
|
||||
title: TranslationBase.of(context).save,
|
||||
fontWeight: FontWeight.w600,
|
||||
color: Color(0xFF359846),
|
||||
onPressed: () async {},
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
));
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue