openchs-models 1.33.2 → 1.33.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/.circleci/config.yml +15 -5
  2. package/.commit-message.txt +21 -0
  3. package/.nvmrc +1 -1
  4. package/Makefile +32 -10
  5. package/REALM_V12_NOTES.md +46 -0
  6. package/dist/AbstractEncounter.js +4 -105
  7. package/dist/AddressLevel.js +5 -62
  8. package/dist/ApprovalStatus.js +4 -17
  9. package/dist/BaseEntity.js +5 -42
  10. package/dist/BeneficiaryModePin.js +4 -13
  11. package/dist/Checklist.js +6 -52
  12. package/dist/ChecklistDetail.js +4 -22
  13. package/dist/ChecklistItem.js +16 -96
  14. package/dist/ChecklistItemDetail.js +4 -43
  15. package/dist/ChecklistItemStatus.js +4 -33
  16. package/dist/Comment.js +6 -51
  17. package/dist/CommentThread.js +4 -26
  18. package/dist/CompositeDuration.js +1 -18
  19. package/dist/Concept.js +5 -107
  20. package/dist/ConceptAnswer.js +4 -21
  21. package/dist/CustomDashboardCache.js +4 -38
  22. package/dist/CustomFilter.js +5 -15
  23. package/dist/Dashboard.js +4 -23
  24. package/dist/DashboardCache.js +4 -23
  25. package/dist/DashboardSection.js +4 -24
  26. package/dist/DashboardSectionCardMapping.js +4 -21
  27. package/dist/Displayable.js +3 -11
  28. package/dist/Documentation.js +4 -21
  29. package/dist/DocumentationItem.js +4 -20
  30. package/dist/Duration.js +4 -39
  31. package/dist/Encounter.js +6 -41
  32. package/dist/EncounterType.js +4 -26
  33. package/dist/EntityApprovalStatus.js +6 -56
  34. package/dist/EntityMetaData.js +7 -105
  35. package/dist/EntityQueue.js +4 -15
  36. package/dist/EntityRule.js +1 -29
  37. package/dist/EntitySyncStatus.js +4 -19
  38. package/dist/Extension.js +4 -18
  39. package/dist/Family.js +4 -56
  40. package/dist/FileFormat.js +0 -7
  41. package/dist/Gender.js +4 -17
  42. package/dist/GroupDashboard.js +4 -23
  43. package/dist/GroupPrivileges.js +4 -28
  44. package/dist/GroupRole.js +4 -34
  45. package/dist/GroupSubject.js +6 -59
  46. package/dist/Groups.js +4 -14
  47. package/dist/Identifier.js +4 -20
  48. package/dist/IdentifierAssignment.js +6 -45
  49. package/dist/IdentifierSource.js +4 -15
  50. package/dist/Individual.js +17 -265
  51. package/dist/LocaleMapping.js +4 -13
  52. package/dist/LocationHierarchy.js +4 -25
  53. package/dist/Media.js +35 -35
  54. package/dist/MediaQueue.js +4 -26
  55. package/dist/MigrationsHelper.js +15 -22
  56. package/dist/MyGroups.js +4 -14
  57. package/dist/News.js +4 -31
  58. package/dist/Observation.js +4 -54
  59. package/dist/ObservationsHolder.js +104 -216
  60. package/dist/OrganisationConfig.js +4 -19
  61. package/dist/PersistedObject.js +1 -19
  62. package/dist/PhoneNumber.js +0 -11
  63. package/dist/PlatformTranslation.js +4 -17
  64. package/dist/Privilege.js +5 -22
  65. package/dist/Program.js +4 -39
  66. package/dist/ProgramEncounter.js +6 -48
  67. package/dist/ProgramEnrolment.js +8 -162
  68. package/dist/ReferenceEntity.js +1 -10
  69. package/dist/ReportCard.js +5 -60
  70. package/dist/ResetSync.js +4 -17
  71. package/dist/Rule.js +4 -28
  72. package/dist/RuleDependency.js +4 -17
  73. package/dist/RuleFailureTelemetry.js +4 -36
  74. package/dist/Schema.js +16 -268
  75. package/dist/SchemaNames.js +3 -46
  76. package/dist/Settings.js +4 -53
  77. package/dist/StandardReportCardType.js +4 -39
  78. package/dist/SubjectMigration.js +6 -45
  79. package/dist/SubjectType.js +6 -72
  80. package/dist/SyncTelemetry.js +4 -40
  81. package/dist/Translation.js +4 -17
  82. package/dist/UserInfo.js +4 -33
  83. package/dist/application/DashboardCacheFilter.js +4 -24
  84. package/dist/application/Filter.js +3 -16
  85. package/dist/application/Form.js +6 -93
  86. package/dist/application/FormElement.js +5 -100
  87. package/dist/application/FormElementGroup.js +4 -75
  88. package/dist/application/FormElementStatus.js +1 -11
  89. package/dist/application/FormMapping.js +6 -44
  90. package/dist/application/Format.js +4 -20
  91. package/dist/application/KeyValue.js +4 -19
  92. package/dist/application/MenuItem.js +4 -35
  93. package/dist/application/MultiSelectFilter.js +1 -11
  94. package/dist/application/NullProgramEnrolment.js +0 -8
  95. package/dist/application/SingleSelectFilter.js +1 -12
  96. package/dist/application/StaticFormElementGroup.js +0 -11
  97. package/dist/application/StringKeyNumericValue.js +4 -17
  98. package/dist/application/ValidationResult.js +6 -20
  99. package/dist/application/ValidationResults.js +1 -14
  100. package/dist/application/WorkItem.js +4 -20
  101. package/dist/application/WorkList.js +1 -24
  102. package/dist/application/WorkLists.js +1 -13
  103. package/dist/assignment/UserSubjectAssignment.js +6 -26
  104. package/dist/draft/DraftEncounter.js +4 -40
  105. package/dist/draft/DraftSubject.js +4 -46
  106. package/dist/error/IgnorableSyncError.js +1 -6
  107. package/dist/error/SyncError.js +1 -6
  108. package/dist/framework/ArrayHelper.js +3 -11
  109. package/dist/framework/DefinedObjectSchema.js +4 -12
  110. package/dist/framework/RealmCollectionHelper.js +1 -9
  111. package/dist/framework/RealmEmbeddedObjectHandler.js +126 -0
  112. package/dist/framework/RealmListProxy.js +1 -10
  113. package/dist/framework/RealmObjectSchema.js +1 -11
  114. package/dist/framework/RealmProxy.js +15 -39
  115. package/dist/framework/RealmResultsProxy.js +3 -37
  116. package/dist/framework/RealmResultsProxyHandler.js +2 -5
  117. package/dist/geo/Point.js +4 -17
  118. package/dist/index.js +9 -137
  119. package/dist/location/Locations.js +1 -6
  120. package/dist/observation/MultipleCodedValues.js +1 -21
  121. package/dist/observation/PrimitiveValue.js +1 -17
  122. package/dist/observation/QuestionGroup.js +1 -36
  123. package/dist/observation/RepeatableQuestionGroup.js +4 -27
  124. package/dist/observation/SingleCodedValue.js +1 -15
  125. package/dist/program/SubjectProgramEligibility.js +6 -56
  126. package/dist/relationship/IndividualRelation.js +6 -18
  127. package/dist/relationship/IndividualRelationGenderMapping.js +4 -22
  128. package/dist/relationship/IndividualRelationship.js +6 -51
  129. package/dist/relationship/IndividualRelationshipType.js +4 -24
  130. package/dist/relationship/IndividualRelative.js +4 -31
  131. package/dist/reports/DashboardFilter.js +4 -20
  132. package/dist/reports/DashboardFilterConfig.js +5 -85
  133. package/dist/reports/NestedReportCardResult.js +5 -35
  134. package/dist/reports/Range.js +4 -13
  135. package/dist/reports/ReportCardResult.js +5 -24
  136. package/dist/service/MetaDataService.js +1 -30
  137. package/dist/task/Task.js +6 -62
  138. package/dist/task/TaskStatus.js +4 -21
  139. package/dist/task/TaskType.js +4 -23
  140. package/dist/task/TaskUnAssignment.js +6 -30
  141. package/dist/utility/AgeUtil.js +1 -15
  142. package/dist/utility/ArrayUtil.js +1 -6
  143. package/dist/utility/AuditUtil.js +1 -8
  144. package/dist/utility/DateTimeUtil.js +1 -8
  145. package/dist/utility/General.js +4 -71
  146. package/dist/utility/JsonStringify.js +15 -28
  147. package/dist/utility/MergeUtil.js +1 -10
  148. package/dist/utility/ResourceUtil.js +1 -7
  149. package/dist/videos/Video.js +4 -23
  150. package/dist/videos/VideoTelemetric.js +6 -37
  151. package/package.json +6 -3
  152. package/scripts/validateSchemas.js +40 -0
  153. package/tsconfig.json +1 -1
  154. package/yarn.lock +0 -6744
package/dist/Schema.js CHANGED
@@ -4,208 +4,109 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _Settings = _interopRequireDefault(require("./Settings"));
9
-
10
8
  var _LocaleMapping = _interopRequireDefault(require("./LocaleMapping"));
11
-
12
9
  var _Concept = _interopRequireDefault(require("./Concept"));
13
-
14
10
  var _ConceptAnswer = _interopRequireDefault(require("./ConceptAnswer"));
15
-
16
11
  var _Individual = _interopRequireDefault(require("./Individual"));
17
-
18
12
  var _Family = _interopRequireDefault(require("./Family"));
19
-
20
13
  var _AddressLevel = _interopRequireWildcard(require("./AddressLevel"));
21
-
22
14
  var _Gender = _interopRequireDefault(require("./Gender"));
23
-
24
15
  var _EntitySyncStatus = _interopRequireDefault(require("./EntitySyncStatus"));
25
-
26
16
  var _ProgramEnrolment = _interopRequireDefault(require("./ProgramEnrolment"));
27
-
28
17
  var _ProgramEncounter = _interopRequireDefault(require("./ProgramEncounter"));
29
-
30
18
  var _Program = _interopRequireDefault(require("./Program"));
31
-
32
19
  var _Observation = _interopRequireDefault(require("./Observation"));
33
-
34
20
  var _Encounter = _interopRequireDefault(require("./Encounter"));
35
-
36
21
  var _EncounterType = _interopRequireDefault(require("./EncounterType"));
37
-
38
22
  var _FormElement = _interopRequireDefault(require("./application/FormElement"));
39
-
40
23
  var _FormElementGroup = _interopRequireDefault(require("./application/FormElementGroup"));
41
-
42
24
  var _Form = _interopRequireDefault(require("./application/Form"));
43
-
44
25
  var _KeyValue = _interopRequireDefault(require("./application/KeyValue"));
45
-
46
26
  var _Format = _interopRequireDefault(require("./application/Format"));
47
-
48
27
  var _EntityQueue = _interopRequireDefault(require("./EntityQueue"));
49
-
50
28
  var _FormMapping = _interopRequireDefault(require("./application/FormMapping"));
51
-
52
29
  var _ChecklistItemStatus = _interopRequireDefault(require("./ChecklistItemStatus"));
53
-
54
30
  var _ChecklistItemDetail = _interopRequireDefault(require("./ChecklistItemDetail"));
55
-
56
31
  var _ChecklistDetail = _interopRequireDefault(require("./ChecklistDetail"));
57
-
58
32
  var _Checklist = _interopRequireDefault(require("./Checklist"));
59
-
60
33
  var _ChecklistItem = _interopRequireDefault(require("./ChecklistItem"));
61
-
62
34
  var _lodash = _interopRequireDefault(require("lodash"));
63
-
64
35
  var _UserInfo = _interopRequireDefault(require("./UserInfo"));
65
-
66
36
  var _StringKeyNumericValue = _interopRequireDefault(require("./application/StringKeyNumericValue"));
67
-
68
37
  var _IndividualRelation = _interopRequireDefault(require("./relationship/IndividualRelation"));
69
-
70
38
  var _IndividualRelationship = _interopRequireDefault(require("./relationship/IndividualRelationship"));
71
-
72
39
  var _IndividualRelationshipType = _interopRequireDefault(require("./relationship/IndividualRelationshipType"));
73
-
74
40
  var _IndividualRelationGenderMapping = _interopRequireDefault(require("./relationship/IndividualRelationGenderMapping"));
75
-
76
41
  var _Rule = _interopRequireDefault(require("./Rule"));
77
-
78
42
  var _RuleDependency = _interopRequireDefault(require("./RuleDependency"));
79
-
80
43
  var _Video = _interopRequireDefault(require("./videos/Video"));
81
-
82
44
  var _VideoTelemetric = _interopRequireDefault(require("./videos/VideoTelemetric"));
83
-
84
45
  var _MediaQueue = _interopRequireDefault(require("./MediaQueue"));
85
-
86
46
  var _Point = _interopRequireDefault(require("./geo/Point"));
87
-
88
47
  var _SubjectType = _interopRequireDefault(require("./SubjectType"));
89
-
90
48
  var _SyncTelemetry = _interopRequireDefault(require("./SyncTelemetry"));
91
-
92
49
  var _IdentifierSource = _interopRequireDefault(require("./IdentifierSource"));
93
-
94
50
  var _IdentifierAssignment = _interopRequireDefault(require("./IdentifierAssignment"));
95
-
96
51
  var _RuleFailureTelemetry = _interopRequireDefault(require("./RuleFailureTelemetry"));
97
-
98
52
  var _BeneficiaryModePin = _interopRequireDefault(require("./BeneficiaryModePin"));
99
-
100
53
  var _OrganisationConfig = _interopRequireDefault(require("./OrganisationConfig"));
101
-
102
54
  var _PlatformTranslation = _interopRequireDefault(require("./PlatformTranslation"));
103
-
104
55
  var _Translation = _interopRequireDefault(require("./Translation"));
105
-
106
56
  var _Groups = _interopRequireDefault(require("./Groups"));
107
-
108
57
  var _GroupPrivileges = _interopRequireDefault(require("./GroupPrivileges"));
109
-
110
58
  var _MyGroups = _interopRequireDefault(require("./MyGroups"));
111
-
112
59
  var _Privilege = _interopRequireDefault(require("./Privilege"));
113
-
114
60
  var _General = _interopRequireDefault(require("./utility/General"));
115
-
116
61
  var _GroupRole = _interopRequireDefault(require("./GroupRole"));
117
-
118
62
  var _GroupSubject = _interopRequireDefault(require("./GroupSubject"));
119
-
120
63
  var _DashboardCache = _interopRequireDefault(require("./DashboardCache"));
121
-
122
64
  var _LocationHierarchy = _interopRequireDefault(require("./LocationHierarchy"));
123
-
124
65
  var _ReportCard = _interopRequireDefault(require("./ReportCard"));
125
-
126
66
  var _Dashboard = _interopRequireDefault(require("./Dashboard"));
127
-
128
67
  var _DashboardSectionCardMapping = _interopRequireDefault(require("./DashboardSectionCardMapping"));
129
-
130
68
  var _DraftSubject = _interopRequireDefault(require("./draft/DraftSubject"));
131
-
132
69
  var _StandardReportCardType = _interopRequireDefault(require("./StandardReportCardType"));
133
-
134
70
  var _ApprovalStatus = _interopRequireDefault(require("./ApprovalStatus"));
135
-
136
71
  var _EntityApprovalStatus = _interopRequireDefault(require("./EntityApprovalStatus"));
137
-
138
72
  var _GroupDashboard = _interopRequireDefault(require("./GroupDashboard"));
139
-
140
73
  var _DashboardSection = _interopRequireDefault(require("./DashboardSection"));
141
-
142
74
  var _News = _interopRequireDefault(require("./News"));
143
-
144
75
  var _Comment = _interopRequireDefault(require("./Comment"));
145
-
146
76
  var _CommentThread = _interopRequireDefault(require("./CommentThread"));
147
-
148
77
  var _Extension = _interopRequireDefault(require("./Extension"));
149
-
150
78
  var _SubjectMigration = _interopRequireDefault(require("./SubjectMigration"));
151
-
152
79
  var _ResetSync = _interopRequireDefault(require("./ResetSync"));
153
-
154
80
  var _Documentation = _interopRequireDefault(require("./Documentation"));
155
-
156
81
  var _DocumentationItem = _interopRequireDefault(require("./DocumentationItem"));
157
-
158
82
  var _Task = _interopRequireDefault(require("./task/Task"));
159
-
160
83
  var _TaskType = _interopRequireDefault(require("./task/TaskType"));
161
-
162
84
  var _TaskStatus = _interopRequireDefault(require("./task/TaskStatus"));
163
-
164
85
  var _TaskUnAssignment = _interopRequireDefault(require("./task/TaskUnAssignment"));
165
-
166
86
  var _DraftEncounter = _interopRequireDefault(require("./draft/DraftEncounter"));
167
-
168
87
  var _SubjectProgramEligibility = _interopRequireDefault(require("./program/SubjectProgramEligibility"));
169
-
170
88
  var _MenuItem = _interopRequireDefault(require("./application/MenuItem"));
171
-
172
89
  var _UserSubjectAssignment = _interopRequireDefault(require("./assignment/UserSubjectAssignment"));
173
-
174
90
  var _SchemaNames = _interopRequireDefault(require("./SchemaNames"));
175
-
176
91
  var _DashboardFilter = _interopRequireDefault(require("./reports/DashboardFilter"));
177
-
178
92
  var _CustomDashboardCache = _interopRequireDefault(require("./CustomDashboardCache"));
179
-
180
93
  var _DefinedObjectSchema = _interopRequireDefault(require("./framework/DefinedObjectSchema"));
181
-
182
94
  var _MigrationsHelper = _interopRequireDefault(require("./MigrationsHelper"));
183
-
184
95
  var _MetaDataService = _interopRequireDefault(require("./service/MetaDataService"));
185
-
186
96
  var _ReportCardResult = _interopRequireDefault(require("./reports/ReportCardResult"));
187
-
188
97
  var _NestedReportCardResult = _interopRequireDefault(require("./reports/NestedReportCardResult"));
189
-
190
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
191
-
192
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
193
-
194
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
195
-
98
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
99
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
196
100
  const entities = [_ReportCardResult.default, _NestedReportCardResult.default, _DashboardFilter.default, _LocaleMapping.default, _Settings.default, _ConceptAnswer.default, _Concept.default, _EncounterType.default, _Gender.default, _AddressLevel.LocationMapping, _AddressLevel.default, _KeyValue.default, _Form.default, _FormMapping.default, _FormElementGroup.default, _FormElement.default, _SubjectType.default, _Individual.default, _Program.default, _ProgramEnrolment.default, _Observation.default, _ProgramEncounter.default, _Encounter.default, _EntitySyncStatus.default, _EntityQueue.default, _Checklist.default, _ChecklistItem.default, _Format.default, _UserInfo.default, _StringKeyNumericValue.default, _Family.default, _IndividualRelation.default, _IndividualRelationGenderMapping.default, _IndividualRelationshipType.default, _IndividualRelationship.default, _RuleDependency.default, _Rule.default, _ChecklistItemStatus.default, _ChecklistDetail.default, _ChecklistItemDetail.default, _VideoTelemetric.default, _Video.default, _MediaQueue.default, _Point.default, _SyncTelemetry.default, _IdentifierSource.default, _IdentifierAssignment.default, _RuleFailureTelemetry.default, _BeneficiaryModePin.default, _OrganisationConfig.default, _PlatformTranslation.default, _Translation.default, _Groups.default, _MyGroups.default, _GroupPrivileges.default, _Privilege.default, _GroupRole.default, _GroupSubject.default, _DashboardCache.default, _CustomDashboardCache.default, _LocationHierarchy.default, _ReportCard.default, _Dashboard.default, _DashboardSectionCardMapping.default, _DraftSubject.default, _StandardReportCardType.default, _ApprovalStatus.default, _EntityApprovalStatus.default, _GroupDashboard.default, _DashboardSection.default, _News.default, _Comment.default, _CommentThread.default, _Extension.default, _SubjectMigration.default, _ResetSync.default, _Documentation.default, _DocumentationItem.default, _TaskType.default, _TaskStatus.default, _Task.default, _TaskUnAssignment.default, _DraftEncounter.default, _SubjectProgramEligibility.default, _MenuItem.default, _UserSubjectAssignment.default];
197
-
198
101
  function migrateObjectTypeFieldToEmbedded(newDB, oldDB, schemaName, field, creatorFn) {
199
102
  console.log(`schema: ${schemaName}, field: ${field}`);
200
103
  newDB.objects(schemaName).forEach(newDbParentEntity => {
201
104
  const oldFieldValue = oldDB.objects(schemaName).filtered(`uuid = "${newDbParentEntity.uuid}"`)[0][field];
202
-
203
105
  if (!_lodash.default.isNil(oldFieldValue)) {
204
106
  newDbParentEntity[field] = creatorFn(oldFieldValue);
205
107
  }
206
108
  });
207
109
  }
208
-
209
110
  function migrateListTypeFieldToEmbedded(newDB, oldDB, schemaName, field, creatorFn) {
210
111
  console.log(`schema: ${schemaName}, field: ${field}`);
211
112
  newDB.objects(schemaName).forEach(newDbParentEntity => {
@@ -217,7 +118,6 @@ function migrateListTypeFieldToEmbedded(newDB, oldDB, schemaName, field, creator
217
118
  newDbParentEntity[field] = newList;
218
119
  });
219
120
  }
220
-
221
121
  function migrateEmbeddedObjects(oldDB, newDB) {
222
122
  _MetaDataService.default.forEachFormatField((field, schemaName) => {
223
123
  migrateObjectTypeFieldToEmbedded(newDB, oldDB, schemaName, field, old => {
@@ -227,9 +127,7 @@ function migrateEmbeddedObjects(oldDB, newDB) {
227
127
  };
228
128
  });
229
129
  });
230
-
231
130
  newDB.deleteModel("Format");
232
-
233
131
  _MetaDataService.default.forEachKeyValueField((field, schemaName) => {
234
132
  migrateListTypeFieldToEmbedded(newDB, oldDB, schemaName, field, old => {
235
133
  return {
@@ -238,9 +136,7 @@ function migrateEmbeddedObjects(oldDB, newDB) {
238
136
  };
239
137
  });
240
138
  });
241
-
242
139
  newDB.deleteModel("KeyValue");
243
-
244
140
  _MetaDataService.default.forEachChecklistItemStatusField((field, schemaName) => {
245
141
  migrateListTypeFieldToEmbedded(newDB, oldDB, schemaName, field, old => {
246
142
  return {
@@ -260,7 +156,6 @@ function migrateEmbeddedObjects(oldDB, newDB) {
260
156
  };
261
157
  });
262
158
  });
263
-
264
159
  console.log(`deleting model: ChecklistItemStatus`);
265
160
  newDB.deleteModel("ChecklistItemStatus");
266
161
  console.log(`deleting model: ProgramConfig`);
@@ -272,9 +167,7 @@ function migrateEmbeddedObjects(oldDB, newDB) {
272
167
  console.log(`deleting model: StringKeyNumericValue`);
273
168
  newDB.deleteModel("StringKeyNumericValue");
274
169
  }
275
-
276
170
  const VersionWithEmbeddedMigrationProblem = 185;
277
-
278
171
  function createRealmConfig() {
279
172
  return {
280
173
  shouldCompact: function (totalBytes, usedBytes) {
@@ -287,215 +180,167 @@ function createRealmConfig() {
287
180
  onMigration: function (oldDB, newDB) {
288
181
  console.log("[AvniModels.Schema]", `Running migration with old schema version: ${oldDB.schemaVersion} and new schema version: ${newDB.schemaVersion}`);
289
182
  if (oldDB.schemaVersion === VersionWithEmbeddedMigrationProblem) throw new Error(`Update from schema version ${VersionWithEmbeddedMigrationProblem} is not allowed. Please uninstall and install app.`);
290
-
291
183
  if (oldDB.schemaVersion < 10) {
292
184
  const oldObjects = oldDB.objects("DecisionConfig");
293
185
  oldObjects.forEach(decisionConfig => {
294
186
  newDB.create(ConfigFile.schema.name, ConfigFile.create(decisionConfig.fileName, decisionConfig.decisionCode), true);
295
187
  });
296
188
  }
297
-
298
189
  if (oldDB.schemaVersion < 17) {
299
190
  const oldObjects = oldDB.objects("AddressLevel");
300
191
  const newObjects = newDB.objects("AddressLevel");
301
-
302
192
  for (let i = 0; i < oldObjects.length; i++) {
303
193
  newObjects[i].name = oldObjects[i].title;
304
194
  }
305
195
  }
306
-
307
196
  if (oldDB.schemaVersion < 23) {
308
197
  const newObjects = newDB.objects("Individual");
309
-
310
198
  for (let i = 0; i < newObjects.length; i++) {
311
199
  newObjects[i].registrationDate = new Date(2017, 0, 0);
312
200
  }
313
201
  }
314
-
315
202
  if (oldDB.schemaVersion < 30) {
316
203
  const newObjects = newDB.objects("Settings");
317
-
318
204
  for (let i = 0; i < newObjects.length; i++) {
319
205
  newObjects[i].locale = null;
320
206
  }
321
-
322
207
  const oldLocaleMappings = newDB.objects("LocaleMapping");
323
208
  newDB.delete(oldLocaleMappings);
324
209
  }
325
-
326
210
  if (oldDB.schemaVersion < 32) {
327
211
  const oldSettings = newDB.objects("Settings");
328
212
  newDB.delete(oldSettings);
329
213
  }
330
-
331
214
  if (oldDB.schemaVersion < 33) {
332
215
  const checklists = newDB.objects("Checklist");
333
-
334
216
  _lodash.default.forEach(checklists, checklist => {
335
217
  checklist.baseDate = checklist.programEnrolment.individual.dateOfBirth;
336
218
  });
337
219
  }
338
-
339
220
  if (oldDB.schemaVersion < 38) {
340
221
  const programs = newDB.objects("Program");
341
-
342
222
  _lodash.default.forEach(programs, program => {
343
223
  program.colour = _Program.default.randomColour();
344
224
  });
345
225
  }
346
-
347
226
  if (oldDB.schemaVersion < 39) {
348
227
  const settings = newDB.objects("Settings");
349
-
350
228
  _lodash.default.forEach(settings, setting => {
351
229
  setting.userId = "";
352
230
  setting.password = "";
353
231
  });
354
232
  }
355
-
356
233
  if (oldDB.schemaVersion < 40) {
357
234
  const settings = newDB.objects("Settings");
358
-
359
235
  _lodash.default.forEach(settings, setting => {
360
236
  setting.authToken = "";
361
237
  });
362
238
  }
363
-
364
239
  if (oldDB.schemaVersion < 41) {
365
240
  const settings = newDB.objects("Settings");
366
-
367
241
  _lodash.default.forEach(settings, setting => {
368
242
  setting.poolId = "";
369
243
  setting.clientId = "";
370
244
  setting.organisationName = "";
371
245
  });
372
246
  }
373
-
374
247
  if (oldDB.schemaVersion < 42) {
375
248
  const individuals = newDB.objects("Individual");
376
-
377
249
  _lodash.default.forEach(individuals, individual => {
378
250
  individual.firstName = "";
379
251
  individual.lastName = "";
380
252
  });
381
253
  }
382
-
383
254
  if (oldDB.schemaVersion < 48) {
384
255
  const concepts = newDB.objects("Concept");
385
-
386
256
  _lodash.default.forEach(concepts, concept => {
387
257
  concept.voided = false;
388
258
  });
389
-
390
259
  const conceptAnswers = newDB.objects("ConceptAnswer");
391
-
392
260
  _lodash.default.forEach(conceptAnswers, conceptAnswer => {
393
261
  conceptAnswer.voided = false;
394
262
  });
395
263
  }
396
-
397
264
  if (oldDB.schemaVersion < 49) {
398
265
  const oldFormElements = oldDB.objects("FormElement");
399
266
  const formElements = newDB.objects("FormElement");
400
-
401
267
  for (let i = 0; i < oldFormElements.length; i++) {
402
268
  formElements[i].displayOrder = oldFormElements[i].displayOrder;
403
269
  }
404
-
405
270
  const oldFormElementGroups = oldDB.objects("FormElementGroup");
406
271
  const formElementGroups = newDB.objects("FormElementGroup");
407
-
408
272
  for (let j = 0; j < oldFormElementGroups.length; j++) {
409
273
  formElementGroups[j].displayOrder = oldFormElementGroups[j].displayOrder;
410
274
  }
411
275
  }
412
-
413
276
  if (oldDB.schemaVersion < 50) {
414
277
  const concepts = newDB.objects("Concept");
415
-
416
278
  _lodash.default.forEach(concepts, concept => {
417
279
  if (concept.datatype === "N/A") {
418
280
  concept.datatype = "NA";
419
281
  }
420
282
  });
421
283
  }
422
-
423
284
  if (oldDB.schemaVersion < 51) {
424
285
  const conceptAnswers = newDB.objects("ConceptAnswer");
425
-
426
286
  _lodash.default.forEach(conceptAnswers, conceptAnswer => {
427
287
  conceptAnswer.unique = false;
428
288
  });
429
289
  }
430
-
431
290
  if (oldDB.schemaVersion < 54) {
432
291
  _lodash.default.forEach(newDB.objects("FormMapping"), fm => fm.voided = false);
433
292
  }
434
-
435
293
  if (oldDB.schemaVersion < 55) {
436
294
  _lodash.default.forEach(newDB.objects("EncounterType"), fm => fm.voided = false);
437
295
  }
438
-
439
296
  if (oldDB.schemaVersion < 64) {
440
297
  _lodash.default.forEach(newDB.objects("EncounterType"), et => {
441
298
  if (_lodash.default.isEmpty(et.operationalEncounterTypeName)) {
442
299
  et.operationalEncounterTypeName = et.name;
443
300
  }
444
-
445
301
  if (_lodash.default.isEmpty(et.displayName)) {
446
302
  et.displayName = _lodash.default.isEmpty(et.operationalEncounterTypeName) ? et.name : et.operationalEncounterTypeName;
447
303
  }
448
304
  });
449
-
450
305
  _lodash.default.forEach(newDB.objects("Program"), p => {
451
306
  if (_lodash.default.isEmpty(p.operationalProgramName)) {
452
307
  p.operationalProgramName = p.name;
453
308
  }
454
-
455
309
  if (_lodash.default.isEmpty(p.displayName)) {
456
310
  p.displayName = _lodash.default.isEmpty(p.operationalProgramName) ? p.name : p.operationalProgramName;
457
311
  }
458
312
  });
459
313
  }
460
-
461
314
  if (oldDB.schemaVersion < 67) {
462
315
  const oldConceptAnswers = oldDB.objects("ConceptAnswer");
463
316
  const conceptAnswers = newDB.objects("ConceptAnswer");
464
-
465
317
  for (let i = 0; i < oldConceptAnswers.length; i++) {
466
318
  conceptAnswers[i].answerOrder = oldConceptAnswers[i].answerOrder;
467
319
  }
468
320
  }
469
-
470
321
  if (oldDB.schemaVersion < 73) {
471
322
  const oldChecklists = newDB.objects("Checklist");
472
323
  const oldChecklistItems = newDB.objects("ChecklistItem");
473
324
  newDB.delete(oldChecklistItems);
474
325
  newDB.delete(oldChecklists);
475
326
  }
476
-
477
327
  if (oldDB.schemaVersion < 74) {
478
328
  _lodash.default.forEach(newDB.objects("Individual"), individual => individual.voided = false);
479
329
  }
480
-
481
330
  if (oldDB.schemaVersion < 76) {
482
331
  const oldAddressLevels = oldDB.objects("AddressLevel");
483
332
  const addressLevels = newDB.objects("AddressLevel");
484
-
485
333
  for (let i = 0; i < oldAddressLevels.length; i++) {
486
334
  addressLevels[i].level = oldAddressLevels[i].level;
487
335
  }
488
336
  }
489
-
490
337
  if (oldDB.schemaVersion < 82) {
491
338
  const oblongProgramEncounters = newDB.objects("ProgramEncounter").filtered("maxVisitDateTime=null and earliestVisitDateTime!=null");
492
-
493
339
  for (let i = 0; i < oblongProgramEncounters.length; i++) {
494
340
  newDB.create("EntityQueue", _EntityQueue.default.create(oblongProgramEncounters[i], "ProgramEncounter", new Date()));
495
341
  oblongProgramEncounters[i].earliestVisitDateTime = null;
496
342
  }
497
343
  }
498
-
499
344
  if (oldDB.schemaVersion < 83) {
500
345
  _lodash.default.forEach([...newDB.objects("Settings")], settings => {
501
346
  if (settings.pageSize === 0 || settings.pageSize === undefined || settings.pageSize === null) {
@@ -503,61 +348,46 @@ function createRealmConfig() {
503
348
  }
504
349
  });
505
350
  }
506
-
507
351
  if (oldDB.schemaVersion < 87) {
508
352
  _lodash.default.forEach(newDB.objects("ChecklistItemDetail"), item => item.scheduleOnExpiryOfDependency = false);
509
353
  }
510
-
511
354
  if (oldDB.schemaVersion < 90) {
512
355
  _lodash.default.forEach(newDB.objects("Settings"), item => item.devSkipValidation = false);
513
356
  }
514
-
515
357
  if (oldDB.schemaVersion < 93) {
516
358
  const individuals = newDB.objects("Individual");
517
-
518
359
  if (individuals.length > 0) {
519
- const individualSubjectType = _SubjectType.default.create("Individual"); //This is the uuid used in server migration to create Individual subjectType
520
-
521
-
360
+ const individualSubjectType = _SubjectType.default.create("Individual");
361
+ //This is the uuid used in server migration to create Individual subjectType
522
362
  individualSubjectType.uuid = "9f2af1f9-e150-4f8e-aad3-40bb7eb05aa3";
523
363
  individualSubjectType.voided = false;
524
364
  newDB.create(_SubjectType.default.schema.name, individualSubjectType, true);
525
-
526
365
  _lodash.default.forEach(individuals, item => item.subjectType = individualSubjectType);
527
366
  }
528
367
  }
529
-
530
368
  if (oldDB.schemaVersion < 94) {
531
369
  _lodash.default.forEach(newDB.objects("Settings"), item => item.captureLocation = true);
532
370
  }
533
-
534
371
  if (oldDB.schemaVersion < 95) {
535
372
  _lodash.default.forEach(newDB.objects("ProgramEnrolment"), programEnrolment => programEnrolment.voided = false);
536
-
537
373
  _lodash.default.forEach(newDB.objects("ProgramEncounter"), programEncounter => programEncounter.voided = false);
538
-
539
374
  _lodash.default.forEach(newDB.objects("Encounter"), encounter => encounter.voided = false);
540
375
  }
541
-
542
376
  if (oldDB.schemaVersion < 96) {
543
377
  _lodash.default.forEach(newDB.objects("UserInfo"), userInfo => userInfo.settings = _UserInfo.default.DEFAULT_SETTINGS);
544
378
  }
545
-
546
379
  if (oldDB.schemaVersion < 102) {
547
380
  const programs = newDB.objects("Program");
548
-
549
381
  _lodash.default.forEach(programs, program => {
550
382
  program.programSubjectLabel = program.operationalProgramName || program.name;
551
383
  });
552
384
  }
553
-
554
385
  if (oldDB.schemaVersion < 103) {
555
386
  _lodash.default.forEach(newDB.objects(_UserInfo.default.schema.name), userInfo => {
556
387
  userInfo.username = "";
557
388
  newDB.create(_EntityQueue.default.schema.name, _EntityQueue.default.create(userInfo, _UserInfo.default.schema.name));
558
389
  });
559
390
  }
560
-
561
391
  if (oldDB.schemaVersion < 104) {
562
392
  /*
563
393
  Assumption: All existing users have just one subject type
@@ -568,12 +398,10 @@ function createRealmConfig() {
568
398
  */
569
399
  const subjectType = oldDB.objects("SubjectType")[0];
570
400
  const formMappings = newDB.objects("FormMapping");
571
-
572
401
  _lodash.default.forEach(formMappings, formMapping => {
573
402
  formMapping.subjectType = subjectType;
574
403
  });
575
404
  }
576
-
577
405
  if (oldDB.schemaVersion < 105) {
578
406
  _lodash.default.forEach(newDB.objects(_Rule.default.schema.name), rule => {
579
407
  rule.entity = {
@@ -582,20 +410,17 @@ function createRealmConfig() {
582
410
  };
583
411
  });
584
412
  }
585
-
586
413
  if (oldDB.schemaVersion < 108) {
587
414
  _lodash.default.forEach(newDB.objects(_Encounter.default.schema.name), enc => {
588
415
  enc.cancelObservations = [];
589
416
  });
590
417
  }
591
-
592
418
  if (oldDB.schemaVersion < 109) {
593
419
  _lodash.default.forEach(newDB.objects(_RuleFailureTelemetry.default.schema.name), rule => {
594
420
  rule.errorDateTime = new Date();
595
421
  rule.closed = false;
596
422
  });
597
423
  }
598
-
599
424
  if (oldDB.schemaVersion < 116) {
600
425
  //this migration creates entry in EntitySyncStatus for all entityType as per the old synced audit so that those entities are not synced again.
601
426
  const olderSubjectTypeEntry = newDB.objects(_EntitySyncStatus.default.schema.name).filtered("entityName = $0", "Individual");
@@ -609,21 +434,17 @@ function createRealmConfig() {
609
434
  const program = newDB.objects(_Program.default.schema.name);
610
435
  const formMappings = newDB.objects(_FormMapping.default.schema.name).filtered("observationsTypeEntityUUID <> null AND voided = false").filtered(`TRUEPREDICATE DISTINCT(observationsTypeEntityUUID)`);
611
436
  const checklistDetail = newDB.objects(_ChecklistDetail.default.schema.name);
612
-
613
437
  _lodash.default.forEach(subjectType, st => {
614
438
  newDB.create(_EntitySyncStatus.default.schema.name, _EntitySyncStatus.default.create(olderSubjectTypeEntry[0].entityName, olderSubjectTypeEntry[0].loadedSince, _General.default.randomUUID(), st.uuid), true);
615
439
  newDB.create(_EntitySyncStatus.default.schema.name, _EntitySyncStatus.default.create(olderIndividualRelationshipEntry[0].entityName, olderIndividualRelationshipEntry[0].loadedSince, _General.default.randomUUID(), st.uuid), true);
616
440
  });
617
-
618
441
  _lodash.default.forEach(program, pt => {
619
442
  newDB.create(_EntitySyncStatus.default.schema.name, _EntitySyncStatus.default.create(olderProgramEntry[0].entityName, olderProgramEntry[0].loadedSince, _General.default.randomUUID(), pt.uuid), true);
620
443
  });
621
-
622
444
  _lodash.default.forEach(checklistDetail, ct => {
623
445
  newDB.create(_EntitySyncStatus.default.schema.name, _EntitySyncStatus.default.create(olderChecklistItemEntry[0].entityName, olderChecklistItemEntry[0].loadedSince, _General.default.randomUUID(), ct.uuid), true);
624
446
  newDB.create(_EntitySyncStatus.default.schema.name, _EntitySyncStatus.default.create(olderChecklistEntry[0].entityName, olderChecklistEntry[0].loadedSince, _General.default.randomUUID(), ct.uuid), true);
625
447
  });
626
-
627
448
  _lodash.default.forEach(formMappings, fm => {
628
449
  if (fm.entityUUID) {
629
450
  newDB.create(_EntitySyncStatus.default.schema.name, _EntitySyncStatus.default.create(olderProgramEncounterEntry[0].entityName, olderProgramEncounterEntry[0].loadedSince, _General.default.randomUUID(), fm.observationsTypeEntityUUID), true);
@@ -632,41 +453,34 @@ function createRealmConfig() {
632
453
  }
633
454
  });
634
455
  }
635
-
636
456
  if (oldDB.schemaVersion < 117) {
637
457
  _lodash.default.forEach(newDB.objects(_Individual.default.schema.name), ind => {
638
458
  ind.groupSubjects = [];
639
459
  });
640
460
  }
641
-
642
461
  if (oldDB.schemaVersion < 119) {
643
462
  _lodash.default.forEach(newDB.objects(_Groups.default.schema.name), group => {
644
463
  group.hasAllPrivileges = false;
645
464
  });
646
465
  }
647
-
648
466
  if (oldDB.schemaVersion < 120) {
649
467
  _lodash.default.forEach(newDB.objects(_SubjectType.default.schema.name), sub => {
650
468
  sub.group = false;
651
469
  sub.household = false;
652
470
  });
653
471
  }
654
-
655
472
  if (oldDB.schemaVersion < 123) {
656
473
  _lodash.default.forEach(newDB.objects(_SubjectType.default.schema.name), sub => {
657
474
  sub.active = true;
658
475
  });
659
-
660
476
  _lodash.default.forEach(newDB.objects(_Program.default.schema.name), prog => {
661
477
  prog.voided = false;
662
478
  prog.active = true;
663
479
  });
664
-
665
480
  _lodash.default.forEach(newDB.objects(_EncounterType.default.schema.name), enc => {
666
481
  enc.active = true;
667
482
  });
668
483
  }
669
-
670
484
  if (oldDB.schemaVersion < 124) {
671
485
  _lodash.default.forEach(newDB.objects(_SubjectType.default.schema.name), sub => {
672
486
  const {
@@ -674,7 +488,6 @@ function createRealmConfig() {
674
488
  household,
675
489
  name
676
490
  } = sub;
677
-
678
491
  if (household) {
679
492
  sub.type = _SubjectType.default.types.Household;
680
493
  } else if (group) {
@@ -686,123 +499,98 @@ function createRealmConfig() {
686
499
  }
687
500
  });
688
501
  }
689
-
690
502
  if (oldDB.schemaVersion < 125) {
691
503
  _lodash.default.forEach(newDB.objects(_AddressLevel.default.schema.name), add => {
692
504
  add.voided = false;
693
505
  });
694
506
  }
695
-
696
507
  if (oldDB.schemaVersion < 129) {
697
508
  _lodash.default.forEach(newDB.objects(_AddressLevel.default.schema.name), add => {
698
509
  const locationMapping = _lodash.default.head(newDB.objects(_AddressLevel.LocationMapping.schema.name).filtered("child.uuid = $0", add.uuid));
699
-
700
510
  add.parentUuid = locationMapping ? locationMapping.parent.uuid : null;
701
- }); //reset the AddressLevel sync so that typeUuid start getting sync
702
-
703
-
511
+ });
512
+ //reset the AddressLevel sync so that typeUuid start getting sync
704
513
  const addressLevelSyncStatus = newDB.objects(_EntitySyncStatus.default.schema.name).filtered("entityName = $0", "AddressLevel");
705
514
  newDB.create(_EntitySyncStatus.default.schema.name, _EntitySyncStatus.default.create('AddressLevel', _EntitySyncStatus.default.REALLY_OLD_DATE, addressLevelSyncStatus[0].uuid, ''), true);
706
515
  }
707
-
708
516
  if (oldDB.schemaVersion < 133) {
709
517
  _lodash.default.forEach(newDB.objects(_ReportCard.default.schema.name), reportCard => {
710
518
  reportCard.standardReportCardType = null;
711
519
  });
712
520
  }
713
-
714
521
  if (oldDB.schemaVersion < 135) {
715
522
  const dashboardCardMappings = newDB.objects(_EntitySyncStatus.default.schema.name).filtered("entityName = 'DashboardCardMapping'");
716
-
717
523
  _lodash.default.forEach(dashboardCardMappings, dcm => newDB.delete(dcm));
718
524
  }
719
-
720
525
  if (oldDB.schemaVersion < 141) {
721
526
  _lodash.default.forEach(newDB.objects(_News.default.schema.name), news => {
722
527
  news.lastModifiedDateTime = news.publishedDate;
723
528
  });
724
529
  }
725
-
726
530
  if (oldDB.schemaVersion < 145) {
727
531
  _lodash.default.forEach(newDB.objects(_Individual.default.schema.name), individual => {
728
532
  const groups = newDB.objects(_GroupSubject.default.schema.name).filtered("memberSubject.uuid = $0", individual.uuid).map(_lodash.default.identity);
729
533
  individual.groups = groups;
730
534
  });
731
535
  }
732
-
733
536
  if (oldDB.schemaVersion < 152) {
734
537
  _lodash.default.forEach(newDB.objects(_MediaQueue.default.schema.name), mediaQueueItem => {
735
538
  mediaQueueItem.entityTargetField = "observations";
736
539
  });
737
-
738
540
  _lodash.default.forEach(newDB.objects(_SubjectType.default.schema.name), sub => {
739
541
  sub.allowProfilePicture = false;
740
542
  });
741
543
  }
742
-
743
544
  if (oldDB.schemaVersion < 169) {
744
545
  const oldDraftSubjects = newDB.objects(_DraftSubject.default.schema.name);
745
546
  newDB.delete(oldDraftSubjects);
746
547
  }
747
-
748
548
  if (oldDB.schemaVersion < 170) {
749
549
  const oldObjects = oldDB.objects("EntityApprovalStatus");
750
550
  const newObjects = newDB.objects("EntityApprovalStatus");
751
-
752
551
  for (let i = 0; i < oldObjects.length; i++) {
753
552
  let entityApprovalStatus = oldObjects[i];
754
-
755
553
  if (oldObjects[i].entityType === 'Subject') {
756
554
  const subject = oldDB.objects(_Individual.default.schema.name).filtered("uuid = $0", entityApprovalStatus.entityUUID)[0];
757
-
758
555
  if (subject) {
759
556
  newObjects[i].entityTypeUuid = subject.subjectType.uuid;
760
557
  }
761
558
  } else if (oldObjects[i].entityType === 'ProgramEnrolment') {
762
559
  const programEnrolment = oldDB.objects(_ProgramEnrolment.default.schema.name).filtered("uuid = $0", entityApprovalStatus.entityUUID)[0];
763
-
764
560
  if (programEnrolment) {
765
561
  newObjects[i].entityTypeUuid = programEnrolment.program.uuid;
766
562
  }
767
563
  } else if (oldObjects[i].entityType === 'ChecklistItem') {
768
564
  const checklistItem = oldDB.objects(_ChecklistItem.default.schema.name).filtered("uuid = $0", entityApprovalStatus.entityUUID)[0];
769
-
770
565
  if (checklistItem) {
771
566
  newObjects[i].entityTypeUuid = checklistItem.checklist.programEnrolment.program.uuid;
772
567
  }
773
568
  } else if (oldObjects[i].entityType === 'Encounter') {
774
569
  const encounter = oldDB.objects(_Encounter.default.schema.name).filtered("uuid = $0", entityApprovalStatus.entityUUID)[0];
775
-
776
570
  if (encounter) {
777
571
  newObjects[i].entityTypeUuid = encounter.encounterType.uuid;
778
572
  }
779
573
  } else if (oldObjects[i].entityType === 'ProgramEncounter') {
780
574
  const programEncounter = oldDB.objects(_ProgramEncounter.default.schema.name).filtered("uuid = $0", entityApprovalStatus.entityUUID)[0];
781
-
782
575
  if (programEncounter) {
783
576
  newObjects[i].entityTypeUuid = programEncounter.encounterType.uuid;
784
577
  }
785
578
  }
786
579
  }
787
580
  }
788
-
789
581
  if (oldDB.schemaVersion < 173) {
790
582
  const entityApprovalStatuses = newDB.objects(_EntityApprovalStatus.default.schema.name);
791
583
  entityApprovalStatuses.forEach(entityApprovalStatus => {
792
584
  let schemaName;
793
-
794
585
  switch (entityApprovalStatus.entityType) {
795
586
  case _EntityApprovalStatus.default.entityType.Subject:
796
587
  schemaName = _SchemaNames.default.Individual;
797
588
  break;
798
-
799
589
  default:
800
590
  schemaName = entityApprovalStatus.entityType;
801
591
  break;
802
592
  }
803
-
804
593
  const entities = newDB.objects(schemaName).filtered("uuid = $0", entityApprovalStatus.entityUUID);
805
-
806
594
  if (entities.length === 1) {
807
595
  const entity = entities[0];
808
596
  entity.approvalStatuses.push(entityApprovalStatus);
@@ -810,47 +598,38 @@ function createRealmConfig() {
810
598
  }
811
599
  });
812
600
  const entityApprovalStatusSyncStatus = newDB.objects(_EntitySyncStatus.default.schema.name).filtered("entityName = $0", "EntityApprovalStatus");
813
-
814
601
  if (entityApprovalStatusSyncStatus[0]) {
815
602
  newDB.delete(entityApprovalStatusSyncStatus);
816
603
  }
817
604
  }
818
-
819
605
  if (oldDB.schemaVersion < 175) {
820
606
  _lodash.default.forEach(newDB.objects(_SubjectType.default.schema.name), sub => {
821
607
  sub.lastNameOptional = false;
822
608
  });
823
609
  }
824
-
825
610
  if (oldDB.schemaVersion < 176) {
826
611
  const entityApprovalStatuses = newDB.objects(_EntityApprovalStatus.default.schema.name);
827
612
  entityApprovalStatuses.forEach(entityApprovalStatus => {
828
613
  let parentSchemaName;
829
-
830
614
  switch (entityApprovalStatus.entityType) {
831
615
  case _EntityApprovalStatus.default.entityType.Subject:
832
616
  parentSchemaName = _SchemaNames.default.Individual;
833
617
  break;
834
-
835
618
  default:
836
619
  parentSchemaName = entityApprovalStatus.entityType;
837
620
  break;
838
621
  }
839
-
840
622
  const parentEntities = newDB.objects(parentSchemaName).filtered("uuid = $0", entityApprovalStatus.entityUUID);
841
-
842
623
  if (parentEntities.length === 1) {
843
624
  const parentEntity = parentEntities[0];
844
625
  parentEntity.latestEntityApprovalStatus = _lodash.default.maxBy(parentEntity.approvalStatuses, 'statusDateTime');
845
626
  }
846
627
  });
847
628
  }
848
-
849
629
  if (oldDB.schemaVersion < 178) {
850
630
  const pushOnlyEntities = newDB.objects(_SchemaNames.default.EntitySyncStatus).filtered("entityName = 'EntityApprovalStatus' OR entityName = 'SyncTelemetry' OR entityName = 'VideoTelemetric' OR entityName = 'RuleFailureTelemetry'");
851
631
  newDB.delete(pushOnlyEntities);
852
632
  }
853
-
854
633
  if (oldDB.schemaVersion < 179) {
855
634
  _lodash.default.forEach(newDB.objects(_IdentifierAssignment.default.schema.name), identifierAssignment => {
856
635
  if (identifierAssignment.individual !== null || identifierAssignment.programEnrolment !== null) {
@@ -858,20 +637,15 @@ function createRealmConfig() {
858
637
  }
859
638
  });
860
639
  }
861
-
862
640
  if (oldDB.schemaVersion < 180) {
863
641
  _General.default.logInfo("Migration180", "Execution started");
864
-
865
642
  const individualsOfInterest = newDB.objects(_Individual.default.schema.name).filtered("lowestAddressLevel = null");
866
643
  individualsOfInterest && individualsOfInterest.forEach(individual => {
867
644
  _General.default.logInfo("Migration180", "Deleting individual " + individual.uuid + " and related entities");
868
-
869
645
  _MigrationsHelper.default.deleteIndividual(individual, newDB);
870
646
  });
871
-
872
647
  _General.default.logInfo("Migration180", "Execution completed");
873
648
  }
874
-
875
649
  if (oldDB.schemaVersion < 181) {
876
650
  _lodash.default.forEach(newDB.objects(_RuleFailureTelemetry.default.schema.name), rft => {
877
651
  rft.sourceType = null;
@@ -880,32 +654,28 @@ function createRealmConfig() {
880
654
  rft.entityId = null;
881
655
  });
882
656
  }
883
-
884
657
  if (oldDB.schemaVersion < 182) {
885
658
  _lodash.default.forEach(newDB.objects(_ReportCard.default.schema.name), rc => {
886
659
  rc.nested = false;
887
660
  rc.countOfCards = 1;
888
661
  });
889
662
  }
890
-
891
663
  if (newDB.schemaVersion < 183) {
892
664
  const newObjects = newDB.objects("DashboardCache");
893
665
  newDB.delete(newObjects);
894
666
  }
895
-
896
667
  if (oldDB.schemaVersion < 184) {
897
668
  migrateEmbeddedObjects(oldDB, newDB);
898
669
  }
899
-
900
- if (oldDB.schemaVersion < VersionWithEmbeddedMigrationProblem) {// removed migration code. keeping the version number in case this number is required for any checks later
670
+ if (oldDB.schemaVersion < VersionWithEmbeddedMigrationProblem) {
671
+ // removed migration code. keeping the version number in case this number is required for any checks later
901
672
  }
902
-
903
- if (oldDB.schemaVersion < 186) {// newDB.deleteModel("UserDefinedIndividualProperty");
673
+ if (oldDB.schemaVersion < 186) {
674
+ // newDB.deleteModel("UserDefinedIndividualProperty");
904
675
  // newDB.deleteModel("ConfigFile");
905
676
  // newDB.deleteModel("Decision");
906
677
  // newDB.deleteModel("ProgramOutcome");
907
678
  }
908
-
909
679
  if (oldDB.schemaVersion < 189) {
910
680
  _lodash.default.forEach(newDB.objects("SubjectType"), subjectType => {
911
681
  if (!subjectType.settings) {
@@ -913,15 +683,13 @@ function createRealmConfig() {
913
683
  }
914
684
  });
915
685
  }
916
-
917
- if (oldDB.schemaVersion < 190) {// PlaceHolder for SubjectType.User changes, so that people with previous version of client
686
+ if (oldDB.schemaVersion < 190) {
687
+ // PlaceHolder for SubjectType.User changes, so that people with previous version of client
918
688
  // are not able to use fastSync of version 190 and above
919
689
  }
920
-
921
690
  if (oldDB.schemaVersion < 191) {
922
691
  newDB.delete(newDB.objects("CustomDashboardCache"));
923
692
  }
924
-
925
693
  if (oldDB.schemaVersion < 197) {
926
694
  _lodash.default.forEach(newDB.objects("ReportCard"), reportCard => {
927
695
  if (reportCard.standardReportCardType && ['Last 24 hours registrations', 'Last 24 hours enrolments', 'Last 24 hours visits'].includes(reportCard.standardReportCardType.name)) reportCard.standardReportCardInputRecentDurationJSON = JSON.stringify({
@@ -929,56 +697,47 @@ function createRealmConfig() {
929
697
  unit: "days"
930
698
  });
931
699
  });
932
-
933
700
  _lodash.default.forEach(newDB.objects("StandardReportCardType"), standardReportCardType => {
934
701
  if (standardReportCardType.name === 'Last 24 hours registrations') {
935
702
  standardReportCardType.description = 'Recent registrations';
936
703
  }
937
-
938
704
  if (standardReportCardType.name === 'Last 24 hours enrolments') {
939
705
  standardReportCardType.description = 'Recent enrolments';
940
706
  }
941
-
942
707
  if (standardReportCardType.name === 'Last 24 hours visits') {
943
708
  standardReportCardType.description = 'Recent visits';
944
709
  }
945
-
946
710
  standardReportCardType.type = _lodash.default.replace(_lodash.default.startCase(standardReportCardType.description), new RegExp(' ', 'g'), '');
947
- }); //Reset MyDashboard cache because shape of filterJSON in cache has changed
948
-
711
+ });
949
712
 
713
+ //Reset MyDashboard cache because shape of filterJSON in cache has changed
950
714
  const dashboardCache = newDB.objects("DashboardCache");
951
715
  newDB.delete(dashboardCache);
952
716
  }
953
-
954
717
  if (oldDB.schemaVersion < 198) {
955
718
  const oldObjects = oldDB.objects(_FormElementGroup.default.schema.name);
956
- const newObjects = newDB.objects(_FormElementGroup.default.schema.name); // loop through all objects and set the name property in the
719
+ const newObjects = newDB.objects(_FormElementGroup.default.schema.name);
720
+ // loop through all objects and set the name property in the
957
721
  // new schema to display property
958
-
959
722
  for (const objectIndex in oldObjects) {
960
723
  const oldObject = oldObjects[objectIndex];
961
724
  const newObject = newObjects[objectIndex];
962
-
963
725
  if (!_lodash.default.isEmpty(oldObject.display) && oldObject.name !== oldObject.display) {
964
726
  newObject.name = oldObject.display;
965
727
  }
966
728
  }
967
729
  }
968
-
969
730
  if (oldDB.schemaVersion < 199) {
970
731
  _lodash.default.forEach(newDB.objects("Program"), program => {
971
732
  program.showGrowthChart = _lodash.default.toLower(program.name) === "child";
972
733
  });
973
734
  }
974
-
975
735
  if (oldDB.schemaVersion < 201) {
976
736
  _lodash.default.forEach(newDB.objects("Concept"), concept => {
977
737
  concept.mediaType = null;
978
738
  concept.mediaUrl = null;
979
739
  });
980
740
  }
981
-
982
741
  if (oldDB.schemaVersion < 202) {
983
742
  _lodash.default.forEach(newDB.objects("SyncTelemetry"), syncTelemetry => {
984
743
  if (syncTelemetry.appInfo === '') {
@@ -986,7 +745,6 @@ function createRealmConfig() {
986
745
  }
987
746
  });
988
747
  }
989
-
990
748
  if (oldDB.schemaVersion < 203) {
991
749
  _lodash.default.forEach(newDB.objects(_EntitySyncStatus.default.schema.name), ess => {
992
750
  if (ess.entityName === 'SubjectType') {
@@ -997,13 +755,11 @@ function createRealmConfig() {
997
755
  }
998
756
  };
999
757
  }
1000
-
1001
758
  class EntityMappingConfig {
1002
759
  static getInstance() {
1003
760
  if (_lodash.default.isNil(EntityMappingConfig.instance)) EntityMappingConfig.instance = new EntityMappingConfig();
1004
761
  return EntityMappingConfig.instance;
1005
762
  }
1006
-
1007
763
  constructor() {
1008
764
  this.realmConfig = createRealmConfig();
1009
765
  this.realmConfig.schema = [];
@@ -1017,32 +773,24 @@ class EntityMappingConfig {
1017
773
  });
1018
774
  this.realmConfig.schema.forEach(x => {
1019
775
  const nonOptionalObjectProperties = _DefinedObjectSchema.default.getNonOptionalObjectProperties(x);
1020
-
1021
776
  this.mandatoryObjectSchemaProperties.set(x.name, nonOptionalObjectProperties);
1022
777
  }, []);
1023
778
  }
1024
-
1025
779
  getEntityClass(schemaName) {
1026
780
  return this.schemaEntityMap.get(schemaName);
1027
781
  }
1028
-
1029
782
  getRealmConfig() {
1030
783
  return this.realmConfig;
1031
784
  }
1032
-
1033
785
  getEntities() {
1034
786
  return entities;
1035
787
  }
1036
-
1037
788
  getSchemaVersion() {
1038
789
  return this.getRealmConfig().schemaVersion;
1039
790
  }
1040
-
1041
791
  getMandatoryObjectSchemaProperties(schemaName) {
1042
792
  return this.mandatoryObjectSchemaProperties.get(schemaName);
1043
793
  }
1044
-
1045
794
  }
1046
-
1047
795
  var _default = EntityMappingConfig;
1048
796
  exports.default = _default;