Bladeren bron

add orgCode of patient

Melon 1 jaar geleden
bovenliggende
commit
5b706f4174
4 gewijzigde bestanden met toevoegingen van 17 en 1 verwijderingen
  1. 2 0
      lib/database/db.dart
  2. 2 0
      lib/database/db_patch/v2.dart
  3. 6 0
      lib/database/entities/patient.dart
  4. 7 1
      lib/managers/patient.dart

+ 2 - 0
lib/database/db.dart

@@ -54,6 +54,8 @@ class VitalDatabaseAccessor
     // database.execute("DROP TABLE ${FollowUpEntity().tableName};");
     // database.execute("DROP TABLE ${ExamBatchEntity().tableName};");
     // database.execute("DROP TABLE ${ExamEntity().tableName};");
+    await db.database.execute(
+        'ALTER TABLE patients ADD COLUMN orgCode VARCHAR(100) NOT NULL;');
   }
 
   ///检查本地数据库版本,以判断是否需要升级

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

@@ -26,6 +26,8 @@ class DatabasePatchV2 extends BaseDatabasePatch {
         'ALTER TABLE patients ADD COLUMN followUpCount INTEGER NOT NULL DEFAULT 0;');
     await db.database.execute(
         'ALTER TABLE patients ADD COLUMN diagnosisCount INTEGER NOT NULL DEFAULT 0;');
+    await db.database.execute(
+        'ALTER TABLE patients ADD COLUMN orgCode VARCHAR(100) NOT NULL;');
 
     await _cleanDuplicatePatients();
 

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

@@ -36,6 +36,9 @@ class PatientEntity extends SyncableEntity<PatientEntity> {
   /// 姓名
   String name = "";
 
+  ///组织编码
+  String orgCode = '';
+
   /// 随访待上传数量
   int followUpCount = 0;
 
@@ -54,6 +57,7 @@ class PatientEntity extends SyncableEntity<PatientEntity> {
   Map<String, dynamic> toJson() {
     final map = super.toJson();
     map['name'] = name;
+    map['orgCode'] = name;
     map['extJson'] = extJson;
     map['followUpCount'] = followUpCount;
     map['diagnosisCount'] = diagnosisCount;
@@ -65,6 +69,7 @@ class PatientEntity extends SyncableEntity<PatientEntity> {
   PatientEntity fromJson(Map<String, dynamic> map) {
     super.fromJson(map);
     name = map['name'];
+    name = map['orgCode'];
     extJson = map['extJson'];
     followUpCount = map['followUpCount'];
     diagnosisCount = map['diagnosisCount'];
@@ -77,6 +82,7 @@ class PatientEntity extends SyncableEntity<PatientEntity> {
 class PatientColumnsDefine extends SyncableColumnsDefine<PatientEntity>
     implements IDbColumnsDefine<PatientEntity> {
   final name = DbColumn<String>("name");
+  final orgCode = DbColumn<String>("orgCode");
   final extJson = DbColumn<String>("extJson");
   final overallSyncState = DbColumn<OfflineDataSyncState>("overallSyncState");
 }

+ 7 - 1
lib/managers/patient.dart

@@ -259,6 +259,11 @@ class PatientManager implements IPatientManager {
         }
         await db.repositories.patient.update(element);
       }
+
+      // 更新归属于该医生下的居民的组织Code
+      final orgCode = Store.user.organizationCode;
+      await db.database.execute(
+          "UPDATE patients SET orgCode = '$orgCode' WHERE 1=1 AND isValid=1 AND userCode=${Store.user.userCode};");
     }
   }
 
@@ -271,7 +276,8 @@ class PatientManager implements IPatientManager {
         entity = PatientEntity();
         entity.isValid = true;
         entity.code = dto.code!;
-        entity.userCode = userCode!;
+        // entity.userCode = userCode!;
+        entity.userCode = 'temp'; // TODO: 没有任何数据的时候,没必要在离线列表中展示
         // 从在线数据中刚获取的,不需要同步
         entity.syncState = OfflineDataSyncState.success;
         entity.overallSyncState = OfflineDataSyncState.success;