patient.dart 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. import 'package:vital_local_database/core/interface/entity.dart';
  2. import 'package:vital_local_database/core/sqlite/entity.dart';
  3. import 'defines.dart';
  4. import 'syncable.dart';
  5. /// 病人实体
  6. class PatientEntity extends SyncableEntity<PatientEntity> {
  7. static const String _tableName = "patients";
  8. static final _columns = PatientColumnsDefine();
  9. // ignore: constant_identifier_names
  10. static const TABLE_CREATE_SQL = 'CREATE TABLE IF NOT EXISTS "patients" ('
  11. '"id" INTEGER NOT NULL,'
  12. '"code" VARCHAR(100) NOT NULL,'
  13. '"name" VARCHAR(200) NOT NULL,'
  14. '"dataJson" TEXT NOT NULL,'
  15. '"extJson" TEXT NULL,'
  16. '"syncType" INTEGER NOT NULL,'
  17. '"syncState" INTEGER NOT NULL,'
  18. '"createTime" DATETIME NOT NULL,'
  19. '"updateTime" DATETIME NULL,'
  20. '"isValid" INTEGER NOT NULL,'
  21. 'PRIMARY KEY ("id")'
  22. ');';
  23. @override
  24. PatientColumnsDefine get columns => _columns;
  25. @override
  26. String get tableName => _tableName;
  27. /// 扩展Json
  28. String? extJson;
  29. /// 姓名
  30. String name = "";
  31. ///组织编码
  32. String orgCode = '';
  33. /// 随访待上传数量
  34. int followUpCount = 0;
  35. /// 健康检测待上传数量
  36. int diagnosisCount = 0;
  37. /// 体检待上传数量
  38. ///
  39. /// TODO: 尚未支持
  40. int examCount = 0;
  41. /// 整体上传状态
  42. OfflineDataSyncState overallSyncState = OfflineDataSyncState.wait;
  43. /// 扩展信息上传状态
  44. OfflineDataSyncState extSyncState = OfflineDataSyncState.wait;
  45. @override
  46. Map<String, dynamic> toJson() {
  47. final map = super.toJson();
  48. map['name'] = name;
  49. map['orgCode'] = orgCode;
  50. map['extJson'] = extJson;
  51. map['followUpCount'] = followUpCount;
  52. map['diagnosisCount'] = diagnosisCount;
  53. map['overallSyncState'] = overallSyncState.index;
  54. map['extSyncState'] = extSyncState.index;
  55. return map;
  56. }
  57. @override
  58. PatientEntity fromJson(Map<String, dynamic> map) {
  59. super.fromJson(map);
  60. name = map['name'];
  61. orgCode = map['orgCode'];
  62. extJson = map['extJson'];
  63. followUpCount = map['followUpCount'];
  64. diagnosisCount = map['diagnosisCount'];
  65. overallSyncState = OfflineDataSyncState.values[map['overallSyncState']];
  66. extSyncState = OfflineDataSyncState.values[map['extSyncState']];
  67. return this;
  68. }
  69. }
  70. /// 病人字段定义
  71. class PatientColumnsDefine extends SyncableColumnsDefine<PatientEntity>
  72. implements IDbColumnsDefine<PatientEntity> {
  73. final name = DbColumn<String>("name");
  74. final orgCode = DbColumn<String>("orgCode");
  75. final extJson = DbColumn<String>("extJson");
  76. final overallSyncState = DbColumn<OfflineDataSyncState>("overallSyncState");
  77. final extSyncState = DbColumn<OfflineDataSyncState>("extSyncState");
  78. }