patient.dart 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  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. ///扩展信息Code
  28. String? extCode;
  29. /// 扩展Json
  30. String? extJson;
  31. /// 姓名
  32. String name = "";
  33. ///组织编码
  34. String orgCode = '';
  35. /// 高血压随访待上传数量
  36. int gxyFollowUpCount = 0;
  37. /// 糖尿病随访待上传数量
  38. int tnbFollowUpCount = 0;
  39. /// 健康检测待上传数量
  40. int diagnosisCount = 0;
  41. /// 体检待上传数量
  42. int examCount = 0;
  43. /// 中医体质待上传数量
  44. int tcmConsitutionCount = 0;
  45. /// 整体上传状态
  46. OfflineDataSyncState overallSyncState = OfflineDataSyncState.wait;
  47. // /// 扩展信息上传状态
  48. // OfflineDataSyncState extSyncState = OfflineDataSyncState.wait;
  49. @override
  50. Map<String, dynamic> toJson() {
  51. final map = super.toJson();
  52. map['name'] = name;
  53. map['orgCode'] = orgCode;
  54. map['extJson'] = extJson;
  55. map['extCode'] = extCode;
  56. map['gxyFollowUpCount'] = gxyFollowUpCount;
  57. map['tnbFollowUpCount'] = tnbFollowUpCount;
  58. map['diagnosisCount'] = diagnosisCount;
  59. map['tcmConsitutionCount'] = tcmConsitutionCount;
  60. map['examCount'] = examCount;
  61. map['overallSyncState'] = overallSyncState.index;
  62. // map['extSyncState'] = extSyncState.index;
  63. return map;
  64. }
  65. @override
  66. PatientEntity fromJson(Map<String, dynamic> map) {
  67. super.fromJson(map);
  68. name = map['name'];
  69. orgCode = map['orgCode'];
  70. extJson = map['extJson'];
  71. extCode = map['extCode'];
  72. gxyFollowUpCount = map['gxyFollowUpCount'];
  73. tnbFollowUpCount = map['tnbFollowUpCount'];
  74. diagnosisCount = map['diagnosisCount'];
  75. examCount = map['examCount'];
  76. tcmConsitutionCount = map['tcmConsitutionCount'];
  77. overallSyncState = OfflineDataSyncState.values[map['overallSyncState']];
  78. // extSyncState = OfflineDataSyncState.values[map['extSyncState']];
  79. return this;
  80. }
  81. }
  82. /// 病人字段定义
  83. class PatientColumnsDefine extends SyncableColumnsDefine<PatientEntity>
  84. implements IDbColumnsDefine<PatientEntity> {
  85. final name = DbColumn<String>("name");
  86. final orgCode = DbColumn<String>("orgCode");
  87. final extJson = DbColumn<String>("extJson");
  88. final overallSyncState = DbColumn<OfflineDataSyncState>("overallSyncState");
  89. final extSyncState = DbColumn<OfflineDataSyncState>("extSyncState");
  90. }