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.
- package/.circleci/config.yml +15 -5
- package/.commit-message.txt +21 -0
- package/.nvmrc +1 -1
- package/Makefile +32 -10
- package/REALM_V12_NOTES.md +46 -0
- package/dist/AbstractEncounter.js +4 -105
- package/dist/AddressLevel.js +5 -62
- package/dist/ApprovalStatus.js +4 -17
- package/dist/BaseEntity.js +5 -42
- package/dist/BeneficiaryModePin.js +4 -13
- package/dist/Checklist.js +6 -52
- package/dist/ChecklistDetail.js +4 -22
- package/dist/ChecklistItem.js +16 -96
- package/dist/ChecklistItemDetail.js +4 -43
- package/dist/ChecklistItemStatus.js +4 -33
- package/dist/Comment.js +6 -51
- package/dist/CommentThread.js +4 -26
- package/dist/CompositeDuration.js +1 -18
- package/dist/Concept.js +5 -107
- package/dist/ConceptAnswer.js +4 -21
- package/dist/CustomDashboardCache.js +4 -38
- package/dist/CustomFilter.js +5 -15
- package/dist/Dashboard.js +4 -23
- package/dist/DashboardCache.js +4 -23
- package/dist/DashboardSection.js +4 -24
- package/dist/DashboardSectionCardMapping.js +4 -21
- package/dist/Displayable.js +3 -11
- package/dist/Documentation.js +4 -21
- package/dist/DocumentationItem.js +4 -20
- package/dist/Duration.js +4 -39
- package/dist/Encounter.js +6 -41
- package/dist/EncounterType.js +4 -26
- package/dist/EntityApprovalStatus.js +6 -56
- package/dist/EntityMetaData.js +7 -105
- package/dist/EntityQueue.js +4 -15
- package/dist/EntityRule.js +1 -29
- package/dist/EntitySyncStatus.js +4 -19
- package/dist/Extension.js +4 -18
- package/dist/Family.js +4 -56
- package/dist/FileFormat.js +0 -7
- package/dist/Gender.js +4 -17
- package/dist/GroupDashboard.js +4 -23
- package/dist/GroupPrivileges.js +4 -28
- package/dist/GroupRole.js +4 -34
- package/dist/GroupSubject.js +6 -59
- package/dist/Groups.js +4 -14
- package/dist/Identifier.js +4 -20
- package/dist/IdentifierAssignment.js +6 -45
- package/dist/IdentifierSource.js +4 -15
- package/dist/Individual.js +17 -265
- package/dist/LocaleMapping.js +4 -13
- package/dist/LocationHierarchy.js +4 -25
- package/dist/Media.js +35 -35
- package/dist/MediaQueue.js +4 -26
- package/dist/MigrationsHelper.js +15 -22
- package/dist/MyGroups.js +4 -14
- package/dist/News.js +4 -31
- package/dist/Observation.js +4 -54
- package/dist/ObservationsHolder.js +104 -216
- package/dist/OrganisationConfig.js +4 -19
- package/dist/PersistedObject.js +1 -19
- package/dist/PhoneNumber.js +0 -11
- package/dist/PlatformTranslation.js +4 -17
- package/dist/Privilege.js +5 -22
- package/dist/Program.js +4 -39
- package/dist/ProgramEncounter.js +6 -48
- package/dist/ProgramEnrolment.js +8 -162
- package/dist/ReferenceEntity.js +1 -10
- package/dist/ReportCard.js +5 -60
- package/dist/ResetSync.js +4 -17
- package/dist/Rule.js +4 -28
- package/dist/RuleDependency.js +4 -17
- package/dist/RuleFailureTelemetry.js +4 -36
- package/dist/Schema.js +16 -268
- package/dist/SchemaNames.js +3 -46
- package/dist/Settings.js +4 -53
- package/dist/StandardReportCardType.js +4 -39
- package/dist/SubjectMigration.js +6 -45
- package/dist/SubjectType.js +6 -72
- package/dist/SyncTelemetry.js +4 -40
- package/dist/Translation.js +4 -17
- package/dist/UserInfo.js +4 -33
- package/dist/application/DashboardCacheFilter.js +4 -24
- package/dist/application/Filter.js +3 -16
- package/dist/application/Form.js +6 -93
- package/dist/application/FormElement.js +5 -100
- package/dist/application/FormElementGroup.js +4 -75
- package/dist/application/FormElementStatus.js +1 -11
- package/dist/application/FormMapping.js +6 -44
- package/dist/application/Format.js +4 -20
- package/dist/application/KeyValue.js +4 -19
- package/dist/application/MenuItem.js +4 -35
- package/dist/application/MultiSelectFilter.js +1 -11
- package/dist/application/NullProgramEnrolment.js +0 -8
- package/dist/application/SingleSelectFilter.js +1 -12
- package/dist/application/StaticFormElementGroup.js +0 -11
- package/dist/application/StringKeyNumericValue.js +4 -17
- package/dist/application/ValidationResult.js +6 -20
- package/dist/application/ValidationResults.js +1 -14
- package/dist/application/WorkItem.js +4 -20
- package/dist/application/WorkList.js +1 -24
- package/dist/application/WorkLists.js +1 -13
- package/dist/assignment/UserSubjectAssignment.js +6 -26
- package/dist/draft/DraftEncounter.js +4 -40
- package/dist/draft/DraftSubject.js +4 -46
- package/dist/error/IgnorableSyncError.js +1 -6
- package/dist/error/SyncError.js +1 -6
- package/dist/framework/ArrayHelper.js +3 -11
- package/dist/framework/DefinedObjectSchema.js +4 -12
- package/dist/framework/RealmCollectionHelper.js +1 -9
- package/dist/framework/RealmEmbeddedObjectHandler.js +126 -0
- package/dist/framework/RealmListProxy.js +1 -10
- package/dist/framework/RealmObjectSchema.js +1 -11
- package/dist/framework/RealmProxy.js +15 -39
- package/dist/framework/RealmResultsProxy.js +3 -37
- package/dist/framework/RealmResultsProxyHandler.js +2 -5
- package/dist/geo/Point.js +4 -17
- package/dist/index.js +9 -137
- package/dist/location/Locations.js +1 -6
- package/dist/observation/MultipleCodedValues.js +1 -21
- package/dist/observation/PrimitiveValue.js +1 -17
- package/dist/observation/QuestionGroup.js +1 -36
- package/dist/observation/RepeatableQuestionGroup.js +4 -27
- package/dist/observation/SingleCodedValue.js +1 -15
- package/dist/program/SubjectProgramEligibility.js +6 -56
- package/dist/relationship/IndividualRelation.js +6 -18
- package/dist/relationship/IndividualRelationGenderMapping.js +4 -22
- package/dist/relationship/IndividualRelationship.js +6 -51
- package/dist/relationship/IndividualRelationshipType.js +4 -24
- package/dist/relationship/IndividualRelative.js +4 -31
- package/dist/reports/DashboardFilter.js +4 -20
- package/dist/reports/DashboardFilterConfig.js +5 -85
- package/dist/reports/NestedReportCardResult.js +5 -35
- package/dist/reports/Range.js +4 -13
- package/dist/reports/ReportCardResult.js +5 -24
- package/dist/service/MetaDataService.js +1 -30
- package/dist/task/Task.js +6 -62
- package/dist/task/TaskStatus.js +4 -21
- package/dist/task/TaskType.js +4 -23
- package/dist/task/TaskUnAssignment.js +6 -30
- package/dist/utility/AgeUtil.js +1 -15
- package/dist/utility/ArrayUtil.js +1 -6
- package/dist/utility/AuditUtil.js +1 -8
- package/dist/utility/DateTimeUtil.js +1 -8
- package/dist/utility/General.js +4 -71
- package/dist/utility/JsonStringify.js +15 -28
- package/dist/utility/MergeUtil.js +1 -10
- package/dist/utility/ResourceUtil.js +1 -7
- package/dist/videos/Video.js +4 -23
- package/dist/videos/VideoTelemetric.js +6 -37
- package/package.json +6 -3
- package/scripts/validateSchemas.js +40 -0
- package/tsconfig.json +1 -1
- 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
|
|
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");
|
|
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
|
-
});
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
});
|
|
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);
|
|
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;
|