Bläddra i källkod

add physicalEaxmNumber 2 exam

Melon 1 år sedan
förälder
incheckning
44a6f4524c

+ 2 - 0
lib/database/db_patch/v4.dart

@@ -18,5 +18,7 @@ class DatabasePatchV4 extends BaseDatabasePatch {
     // exam表新增字段
     await db.database.execute(
         "ALTER TABLE exams ADD COLUMN templateCode VARCHAR(100) NOT NULL;");
+    await db.database.execute(
+        "ALTER TABLE exams ADD COLUMN physicalEaxmNumber VARCHAR(100) NOT NULL;");
   }
 }

+ 6 - 0
lib/database/entities/exam.dart

@@ -36,6 +36,9 @@ class ExamEntity extends SyncableEntity<ExamEntity> {
   /// 批次号
   String batchNumber = '';
 
+  /// 体检号
+  String? physicalEaxmNumber;
+
   /// 模板Key
   String templateKey = '';
 
@@ -51,6 +54,9 @@ class ExamColumnsDefine extends SyncableColumnsDefine<ExamEntity>
   /// 批次号
   final batchNumber = DbColumn<String>("batchNumber");
 
+  /// 体检号
+  final physicalEaxmNumber = DbColumn<String?>("physicalEaxmNumber");
+
   /// 模板Key
   final templateKey = DbColumn<String>("templateKey");
 }

+ 1 - 1
lib/managers/interfaces/exam.dart

@@ -6,7 +6,7 @@ abstract class IExamManager implements IManager {
   /// 创建检查
   Future<bool?> createExam(CreateExamRequest examRequest);
 
-  /// 编辑检查(用)
+  /// 编辑检查(仅中医用)
   Future<bool?> editExam(UpdateExamRequest examRequest);
 
   /// 新增的接口,根据批次号更新检查

+ 74 - 4
lib/mock/services/exam.dart

@@ -32,6 +32,7 @@ class ExamServiceMock extends VitalExamService {
     entity.userCode = Store.user.userCode!;
     entity.patientCode = request.patientCode!;
     entity.batchNumber = request.batchNumber!;
+    entity.physicalEaxmNumber = request.physicalExamNumber!;
     entity.templateKey = request.key!;
     entity.templateCode = request.templateCode!;
     entity.dataJson = request.examData!;
@@ -40,11 +41,75 @@ class ExamServiceMock extends VitalExamService {
     return id > 0 ? entity.code : "";
   }
 
+  /// 目前仅中医体质用
+  @override
+  Future<bool> updateExamAsync(UpdateExamRequest request) async {
+    ExamEntity? entity = await db.repositories.exam.singleByCode(request.code!);
+    if (entity == null) {
+      // TODO: 此时拿不到批次号、体检号等信息,无法创建完整的离线数据,先直接返回失败
+      return false;
+    }
+
+    entity.dataJson = request.examData!;
+    final rows = await db.repositories.exam.update(entity);
+    return rows > 0;
+  }
+
   @override
   Future<bool> updateExamByBatchNumberAsync(
       UpdateExamByBatchNumberRequest request) async {
-    // TODO: implement updateExamByBatchNumberAsync
-    return super.updateExamByBatchNumberAsync(request);
+    final entity = await db.repositories.exam.queryable
+        .where((x) => [
+              x.isValid.equals(true),
+              x.batchNumber.equals(request.batchNumber),
+              x.batchNumber.equals(request.batchNumber),
+              x.templateKey.equals(request.key),
+            ])
+        .first();
+    if (entity == null) {
+      // TODO: 此时拿不到批次号、体检号等信息,无法创建完整的离线数据,先直接返回失败
+      return false;
+    }
+    entity.dataJson = request.examData!;
+    final rows = await db.repositories.exam.update(entity);
+    return rows > 0;
+  }
+
+  @override
+  Future<List<ExamDTO>> getExamByBatchNumberAsync(
+      GetExamByBatchNumberRequest request) async {
+    final entities = await db.repositories.exam.queryable
+        .where((x) => [
+              x.isValid.equals(true),
+              x.isValid.equals(request.batchNumber),
+            ])
+        .toList();
+    List<ExamDTO> dtos = [];
+    for (var entity in entities) {
+      final dto = ExamDTO(
+        code: entity.code,
+      );
+      dtos.add(dto);
+    }
+    return dtos;
+  }
+
+  @override
+  Future<PageCollection<ExamConclusionDTO>> getPatientExamByPageAsync(
+      GetPatientExamByPageRequest request) async {
+    var query = db.repositories.exam.queryable.where((x) => [
+          x.isValid.equals(true),
+        ]);
+    final count = await query.count();
+    final result = PageCollection<ExamConclusionDTO>(
+      currentPage: request.pageIndex,
+      pageIndex: request.pageIndex,
+      pageSize: request.pageSize,
+      totalCount: count,
+      dataCount: 0,
+      pageData: [],
+    );
+    return super.getPatientExamByPageAsync(request);
   }
 
   @override
@@ -85,8 +150,13 @@ class ExamServiceMock extends VitalExamService {
   }
 
   Future<bool> _checkBatch(String batchNumber, String patientCode) async {
-    final hisCount =
-        await db.repositories.examBatch.queryable.where((x) => []).count();
+    final hisCount = await db.repositories.examBatch.queryable
+        .where((x) => [
+              x.isValid.equals(true),
+              x.batchNumber.equals(batchNumber),
+              x.patientCode.equals(patientCode),
+            ])
+        .count();
     if (hisCount > 0) {
       // 已存在。不重复创建
       return true;