|
@@ -10,126 +10,6 @@ import 'package:vitalapp/database/entities/patient.dart';
|
|
|
import 'package:vitalapp/managers/interfaces/patient.dart';
|
|
|
import 'package:fis_common/logger/logger.dart';
|
|
|
|
|
|
-class PatientOfflineStoreAdapter implements IPatientStoreAdapter {
|
|
|
- @override
|
|
|
- Future<String?> create(CreatePatientRequest request) async {
|
|
|
- // await db.database.execute("DROP TABLE IF EXISTS Patients;");
|
|
|
- // await db.database.execute(PatientEntity.TABLE_CREATE_SQL);
|
|
|
- final dto = PatientDtoConverter.create2Dto(request);
|
|
|
- final dtoJson = dto.toJson();
|
|
|
-
|
|
|
- final entity = PatientEntity();
|
|
|
- entity.code = request.code!;
|
|
|
- entity.isValid = true;
|
|
|
- entity.name = request.patientName!;
|
|
|
- entity.dataJson = jsonEncode(dtoJson);
|
|
|
-
|
|
|
- final id = await db.repositories.patient.insert(entity);
|
|
|
- print("Patient Id: $id");
|
|
|
-
|
|
|
- return id > 0 ? entity.code : null;
|
|
|
- }
|
|
|
-
|
|
|
- @override
|
|
|
- Future<bool> updatePatientAsync(UpdatePatientRequest request) async {
|
|
|
- PatientEntity? entity =
|
|
|
- await db.repositories.patient.singleByCode(request.code!);
|
|
|
- PatientDTO dto;
|
|
|
- if (entity == null) {
|
|
|
- entity = PatientEntity();
|
|
|
- entity.isValid = true;
|
|
|
- entity.syncType = OfflineDataSyncType.update;
|
|
|
-
|
|
|
- final id = await db.repositories.patient.insert(entity);
|
|
|
- if (id == 0) {
|
|
|
- logger.i("PatientOfflineStoreAdapter insert patient update fail.");
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- dto = PatientDTO();
|
|
|
- } else {
|
|
|
- final jsonMap = jsonDecode(entity.dataJson);
|
|
|
- dto = PatientDTO.fromJson(jsonMap);
|
|
|
- }
|
|
|
- if (entity.syncType == OfflineDataSyncType.create) {
|
|
|
- if (entity.syncState == OfflineDataSyncState.success) {
|
|
|
- entity.syncType = OfflineDataSyncType.update;
|
|
|
- entity.syncState = OfflineDataSyncState.wait;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- PatientDtoConverter.syncUpdate2Dto(dto, request);
|
|
|
-
|
|
|
- entity.name = request.patientName!;
|
|
|
- entity.dataJson = jsonEncode(dto.toJson());
|
|
|
-
|
|
|
- final count = await db.repositories.patient.update(entity);
|
|
|
- // final dataJson = jsonEncode(dto.toJson());
|
|
|
- // final count = await db.repositories.patient.queryable
|
|
|
- // .where((x) => [x.code.equals(dto.code)])
|
|
|
- // .update((x) => [x.dataJson.update(dataJson)]);
|
|
|
- print("Patient Update count: $count");
|
|
|
-
|
|
|
- return count > 0;
|
|
|
- }
|
|
|
-
|
|
|
- @override
|
|
|
- Future<PatientDTO?> getDetail(String code) async {
|
|
|
- final entity = await db.repositories.patient.singleByCode(code);
|
|
|
- if (entity == null || entity.dataJson.isEmpty) {
|
|
|
- return null;
|
|
|
- }
|
|
|
- final jsonMap = jsonDecode(entity.dataJson);
|
|
|
- final dto = PatientDTO.fromJson(jsonMap);
|
|
|
- return dto;
|
|
|
- }
|
|
|
-
|
|
|
- @override
|
|
|
- Future<bool> setCrowdLabelsAsync(
|
|
|
- String patientCode, List<String> carowLabels) async {
|
|
|
- final dto = await getDetail(patientCode);
|
|
|
- if (dto == null) {
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- dto.crowdLabels = carowLabels;
|
|
|
- final dataJson = jsonEncode(dto.toJson());
|
|
|
-
|
|
|
- final count = await db.repositories.patient.queryable
|
|
|
- .where((x) => [x.code.equals(patientCode)])
|
|
|
- .update((x) => [x.dataJson.update(dataJson)]);
|
|
|
- print("Patient setCrowdLabelsAsync count: $count");
|
|
|
-
|
|
|
- return count > 0;
|
|
|
- }
|
|
|
-
|
|
|
- @override
|
|
|
- Future<PatientExtensionDTO?> getPatientExtensionDetailByCodeAndKeyAsync(
|
|
|
- GetPatientExtensionByCodeAndKeyRequest request) {
|
|
|
- // TODO: implement getPatientExtensionDetailByCodeAndKeyAsync
|
|
|
- throw UnimplementedError();
|
|
|
- }
|
|
|
-
|
|
|
- @override
|
|
|
- Future<String> createPatientExtensionAsync(
|
|
|
- CreatePatientExtensionRequest request) {
|
|
|
- // TODO: implement createPatientExtensionAsync
|
|
|
- throw UnimplementedError();
|
|
|
- }
|
|
|
-
|
|
|
- @override
|
|
|
- Future<bool> updatePatientExtensionAsync(
|
|
|
- UpdatePatientExtensionRequest request) {
|
|
|
- // TODO: implement updatePatientExtensionAsync
|
|
|
- throw UnimplementedError();
|
|
|
- }
|
|
|
-
|
|
|
- @override
|
|
|
- Future<PageCollection<PatientDTO>?> getPagedList(PatientPageRequest request) {
|
|
|
- throw UnimplementedError();
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
abstract class PatientDtoConverter {
|
|
|
/// 根据新建请求创建DTO
|
|
|
static PatientDTO create2Dto(CreatePatientRequest request) {
|