followup.dart 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. import 'package:fis_jsonrpc/rpc.dart';
  2. import 'package:vital_local_database/index.dart';
  3. import 'syncable.dart';
  4. /// 随访
  5. class FollowUpEntity extends SyncableEntity<FollowUpEntity> {
  6. static const String _tableName = "followup";
  7. static final _columns = FollowUpColumnsDefine();
  8. // ignore: constant_identifier_names
  9. static const TABLE_CREATE_SQL = 'CREATE TABLE IF NOT EXISTS "$_tableName" ('
  10. '"id" INTEGER NOT NULL,'
  11. '"code" VARCHAR(100) NOT NULL,'
  12. '"userCode" VARCHAR(100) NOT NULL,'
  13. '"patientCode" VARCHAR(100) NOT NULL,'
  14. '"contractDoctor" VARCHAR(100) NOT NULL,'
  15. '"typeKey" VARCHAR(100) NOT NULL,'
  16. '"templateCode" VARCHAR(100) NOT NULL,'
  17. '"dataJson" TEXT NOT NULL,'
  18. '"mode" INTEGER NOT NULL,'
  19. '"followUpTime" DATETIME NOT NULL,'
  20. '"nextFollowUpTime" DATETIME NOT NULL,'
  21. '"followUpPhtots" TEXT NOT NULL,'
  22. '"syncType" INTEGER NOT NULL,'
  23. '"syncState" INTEGER NOT NULL,'
  24. '"createTime" DATETIME NOT NULL,'
  25. '"updateTime" DATETIME NULL,'
  26. '"isValid" INTEGER NOT NULL,'
  27. 'PRIMARY KEY ("id")'
  28. ');';
  29. @override
  30. IDbColumnsDefine<IDbEntity> get columns => _columns;
  31. @override
  32. String get tableName => _tableName;
  33. /// 居民档案编码
  34. String patientCode = '';
  35. /// 签约医生
  36. ///
  37. /// - 现在取 主治医师 字段
  38. String contractDoctor = '';
  39. /// 分类Key
  40. String typeKey = '';
  41. /// 模板Code
  42. String templateCode = '';
  43. /// 随访方式
  44. FollowUpModeEnum mode = FollowUpModeEnum.Outpatient;
  45. /// 随访时间
  46. DateTime followUpTime = DateTime(1900, 1, 1);
  47. /// 下次随访时间
  48. DateTime nextFollowUpTime = DateTime(1900, 1, 1);
  49. /// 随访照片
  50. List<String> followUpPhtots = [];
  51. @override
  52. Map<String, dynamic> toJson() {
  53. final map = super.toJson();
  54. map['patientCode'] = patientCode;
  55. map['contractDoctor'] = contractDoctor;
  56. map['typeKey'] = typeKey;
  57. map['templateCode'] = templateCode;
  58. map['mode'] = mode.index;
  59. map['followUpTime'] = f2d_DateTime(followUpTime);
  60. map['nextFollowUpTime'] = f2d_DateTime(nextFollowUpTime);
  61. // 符号 `|` 分隔
  62. map['followUpPhtots'] = followUpPhtots.join('|');
  63. return map;
  64. }
  65. @override
  66. FollowUpEntity fromJson(Map<String, dynamic> map) {
  67. super.fromJson(map);
  68. patientCode = map['patientCode'];
  69. contractDoctor = map['contractDoctor'];
  70. typeKey = map['typeKey'];
  71. templateCode = map['templateCode'];
  72. mode = FollowUpModeEnum.values[map["mode"]];
  73. followUpTime = d2f_DateTime(map['followUpTime']);
  74. nextFollowUpTime = d2f_DateTime(map['nextFollowUpTime']);
  75. followUpPhtots = (map['followUpPhtots'] as String).split('|');
  76. return this;
  77. }
  78. }
  79. class FollowUpColumnsDefine extends SyncableColumnsDefine<FollowUpEntity>
  80. implements IDbColumnsDefine<FollowUpEntity> {
  81. /// 居民档案编码
  82. final patientCode = DbColumn<String>("patientCode");
  83. /// 分类Key
  84. final typeKey = DbColumn<String>("typeKey");
  85. /// 模板Code
  86. final templateCode = DbColumn<String>("templateCode");
  87. /// 随访方式
  88. final mode = DbColumn<FollowUpModeEnum>("mode");
  89. /// 随访时间
  90. final followUpTime = DbColumn<DateTime>("followUpTime");
  91. }