openchs-models 1.31.35 → 1.31.36
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 +1 -0
- package/.editorconfig +1 -1
- package/Makefile +4 -0
- package/dist/AbstractEncounter.js +53 -0
- package/dist/AddressLevel.js +1 -1
- package/dist/Checklist.js +41 -2
- package/dist/ChecklistItem.js +43 -5
- package/dist/ChecklistItemDetail.js +1 -1
- package/dist/ChecklistItemStatus.js +3 -2
- package/dist/Comment.js +41 -2
- package/dist/Concept.js +9 -13
- package/dist/DashboardCache.js +21 -37
- package/dist/Encounter.js +22 -10
- package/dist/EntityApprovalStatus.js +41 -2
- package/dist/EntityMetaData.js +5 -1
- package/dist/Family.js +2 -2
- package/dist/GroupSubject.js +41 -2
- package/dist/IdentifierAssignment.js +41 -2
- package/dist/Individual.js +44 -6
- package/dist/Observation.js +8 -3
- package/dist/ObservationsHolder.js +42 -76
- package/dist/ProgramEncounter.js +22 -8
- package/dist/ProgramEnrolment.js +46 -8
- package/dist/ReportCard.js +63 -6
- package/dist/Schema.js +173 -6
- package/dist/SchemaNames.js +12 -4
- package/dist/SubjectMigration.js +41 -2
- package/dist/SubjectType.js +5 -3
- package/dist/UserInfo.js +13 -0
- package/dist/application/DashboardCacheFilter.js +80 -0
- package/dist/application/FormElement.js +4 -6
- package/dist/application/Format.js +1 -0
- package/dist/application/KeyValue.js +2 -1
- package/dist/application/StringKeyNumericValue.js +1 -0
- package/dist/assignment/UserSubjectAssignment.js +41 -2
- package/dist/draft/DraftEncounter.js +6 -6
- package/dist/draft/DraftSubject.js +2 -2
- package/dist/framework/RealmProxy.js +9 -1
- package/dist/framework/RealmResultsProxy.js +8 -0
- package/dist/geo/Point.js +2 -1
- package/dist/index.js +9 -23
- package/dist/program/SubjectProgramEligibility.js +42 -3
- package/dist/relationship/IndividualRelationship.js +42 -7
- package/dist/service/MetaDataService.js +80 -5
- package/dist/task/Task.js +43 -4
- package/dist/task/TaskUnAssignment.js +41 -2
- package/dist/utility/AuditUtil.js +39 -0
- package/dist/utility/ResourceUtil.js +4 -0
- package/package.json +1 -1
- package/dist/VisitScheduleConfig.js +0 -73
- package/dist/VisitScheduleInterval.js +0 -71
package/dist/ProgramEncounter.js
CHANGED
|
@@ -25,8 +25,14 @@ var _SchemaNames = _interopRequireDefault(require("./SchemaNames"));
|
|
|
25
25
|
|
|
26
26
|
var _BaseEntity = _interopRequireDefault(require("./BaseEntity"));
|
|
27
27
|
|
|
28
|
+
var _AuditUtil = require("./utility/AuditUtil");
|
|
29
|
+
|
|
28
30
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
29
31
|
|
|
32
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
33
|
+
|
|
34
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
35
|
+
|
|
30
36
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
31
37
|
|
|
32
38
|
class ProgramEncounter extends _AbstractEncounter.default {
|
|
@@ -164,7 +170,7 @@ _defineProperty(ProgramEncounter, "validationKeys", {
|
|
|
164
170
|
_defineProperty(ProgramEncounter, "schema", {
|
|
165
171
|
name: _SchemaNames.default.ProgramEncounter,
|
|
166
172
|
primaryKey: "uuid",
|
|
167
|
-
properties: {
|
|
173
|
+
properties: _objectSpread({
|
|
168
174
|
uuid: {
|
|
169
175
|
type: "string"
|
|
170
176
|
},
|
|
@@ -190,7 +196,7 @@ _defineProperty(ProgramEncounter, "schema", {
|
|
|
190
196
|
programEnrolment: _SchemaNames.default.ProgramEnrolment,
|
|
191
197
|
observations: {
|
|
192
198
|
type: "list",
|
|
193
|
-
objectType: "
|
|
199
|
+
objectType: "EmbeddedObservation"
|
|
194
200
|
},
|
|
195
201
|
cancelDateTime: {
|
|
196
202
|
type: "date",
|
|
@@ -198,14 +204,14 @@ _defineProperty(ProgramEncounter, "schema", {
|
|
|
198
204
|
},
|
|
199
205
|
cancelObservations: {
|
|
200
206
|
type: "list",
|
|
201
|
-
objectType: "
|
|
207
|
+
objectType: "EmbeddedObservation"
|
|
202
208
|
},
|
|
203
209
|
encounterLocation: {
|
|
204
|
-
type:
|
|
210
|
+
type: _SchemaNames.default.EmbeddedPoint,
|
|
205
211
|
optional: true
|
|
206
212
|
},
|
|
207
213
|
cancelLocation: {
|
|
208
|
-
type:
|
|
214
|
+
type: _SchemaNames.default.EmbeddedPoint,
|
|
209
215
|
optional: true
|
|
210
216
|
},
|
|
211
217
|
voided: {
|
|
@@ -219,9 +225,17 @@ _defineProperty(ProgramEncounter, "schema", {
|
|
|
219
225
|
latestEntityApprovalStatus: {
|
|
220
226
|
type: "EntityApprovalStatus",
|
|
221
227
|
optional: true
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
|
|
228
|
+
}
|
|
229
|
+
}, _AuditUtil.AuditFields, {
|
|
230
|
+
filledBy: {
|
|
231
|
+
type: "string",
|
|
232
|
+
optional: true
|
|
233
|
+
},
|
|
234
|
+
filledByUUID: {
|
|
235
|
+
type: "string",
|
|
236
|
+
optional: true
|
|
237
|
+
}
|
|
238
|
+
})
|
|
225
239
|
});
|
|
226
240
|
|
|
227
241
|
var _default = ProgramEncounter;
|
package/dist/ProgramEnrolment.js
CHANGED
|
@@ -41,8 +41,14 @@ var _SchemaNames = _interopRequireDefault(require("./SchemaNames"));
|
|
|
41
41
|
|
|
42
42
|
var _MergeUtil = _interopRequireDefault(require("./utility/MergeUtil"));
|
|
43
43
|
|
|
44
|
+
var _AuditUtil = require("./utility/AuditUtil");
|
|
45
|
+
|
|
44
46
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
45
47
|
|
|
48
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
49
|
+
|
|
50
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
51
|
+
|
|
46
52
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
47
53
|
|
|
48
54
|
const mergeMap = new Map([[_SchemaNames.default.ProgramEncounter, "encounters"], [_SchemaNames.default.Checklist, "checklists"], [_SchemaNames.default.EntityApprovalStatus, "approvalStatuses"]]);
|
|
@@ -152,6 +158,38 @@ class ProgramEnrolment extends _BaseEntity.default {
|
|
|
152
158
|
this.that.approvalStatuses = this.fromEntityList(x);
|
|
153
159
|
}
|
|
154
160
|
|
|
161
|
+
get createdBy() {
|
|
162
|
+
return this.that.createdBy;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
set createdBy(x) {
|
|
166
|
+
this.that.createdBy = x;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
get lastModifiedBy() {
|
|
170
|
+
return this.that.lastModifiedBy;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
set lastModifiedBy(x) {
|
|
174
|
+
this.that.lastModifiedBy = x;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
get createdByUUID() {
|
|
178
|
+
return this.that.createdByUUID;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
set createdByUUID(x) {
|
|
182
|
+
this.that.createdByUUID = x;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
get lastModifiedByUUID() {
|
|
186
|
+
return this.that.lastModifiedByUUID;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
set lastModifiedByUUID(x) {
|
|
190
|
+
this.that.lastModifiedByUUID = x;
|
|
191
|
+
}
|
|
192
|
+
|
|
155
193
|
static createEmptyInstance({
|
|
156
194
|
individual,
|
|
157
195
|
program
|
|
@@ -220,6 +258,7 @@ class ProgramEnrolment extends _BaseEntity.default {
|
|
|
220
258
|
|
|
221
259
|
if (!_lodash.default.isNil(resource.enrolmentLocation)) programEnrolment.enrolmentLocation = _Point.default.fromResource(resource.enrolmentLocation);
|
|
222
260
|
if (!_lodash.default.isNil(resource.exitLocation)) programEnrolment.exitLocation = _Point.default.fromResource(resource.exitLocation);
|
|
261
|
+
(0, _AuditUtil.mapAuditFields)(programEnrolment, resource);
|
|
223
262
|
return programEnrolment;
|
|
224
263
|
}
|
|
225
264
|
|
|
@@ -636,13 +675,13 @@ class ProgramEnrolment extends _BaseEntity.default {
|
|
|
636
675
|
_defineProperty(ProgramEnrolment, "schema", {
|
|
637
676
|
name: _SchemaNames.default.ProgramEnrolment,
|
|
638
677
|
primaryKey: "uuid",
|
|
639
|
-
properties: {
|
|
678
|
+
properties: _objectSpread({
|
|
640
679
|
uuid: "string",
|
|
641
680
|
program: "Program",
|
|
642
681
|
enrolmentDateTime: "date",
|
|
643
682
|
observations: {
|
|
644
683
|
type: "list",
|
|
645
|
-
objectType: "
|
|
684
|
+
objectType: "EmbeddedObservation"
|
|
646
685
|
},
|
|
647
686
|
programExitDateTime: {
|
|
648
687
|
type: "date",
|
|
@@ -650,7 +689,7 @@ _defineProperty(ProgramEnrolment, "schema", {
|
|
|
650
689
|
},
|
|
651
690
|
programExitObservations: {
|
|
652
691
|
type: "list",
|
|
653
|
-
objectType: "
|
|
692
|
+
objectType: "EmbeddedObservation"
|
|
654
693
|
},
|
|
655
694
|
programOutcome: {
|
|
656
695
|
type: "ProgramOutcome",
|
|
@@ -666,11 +705,11 @@ _defineProperty(ProgramEnrolment, "schema", {
|
|
|
666
705
|
},
|
|
667
706
|
individual: "Individual",
|
|
668
707
|
enrolmentLocation: {
|
|
669
|
-
type:
|
|
708
|
+
type: _SchemaNames.default.EmbeddedPoint,
|
|
670
709
|
optional: true
|
|
671
710
|
},
|
|
672
711
|
exitLocation: {
|
|
673
|
-
type:
|
|
712
|
+
type: _SchemaNames.default.EmbeddedPoint,
|
|
674
713
|
optional: true
|
|
675
714
|
},
|
|
676
715
|
voided: {
|
|
@@ -684,9 +723,8 @@ _defineProperty(ProgramEnrolment, "schema", {
|
|
|
684
723
|
latestEntityApprovalStatus: {
|
|
685
724
|
type: "EntityApprovalStatus",
|
|
686
725
|
optional: true
|
|
687
|
-
}
|
|
688
|
-
|
|
689
|
-
}
|
|
726
|
+
}
|
|
727
|
+
}, _AuditUtil.AuditFields)
|
|
690
728
|
});
|
|
691
729
|
|
|
692
730
|
_defineProperty(ProgramEnrolment, "merge", childEntityName => _MergeUtil.default.getMergeFunction(childEntityName, mergeMap));
|
package/dist/ReportCard.js
CHANGED
|
@@ -13,10 +13,16 @@ var _ResourceUtil = _interopRequireDefault(require("./utility/ResourceUtil"));
|
|
|
13
13
|
|
|
14
14
|
var _StandardReportCardType = _interopRequireDefault(require("./StandardReportCardType"));
|
|
15
15
|
|
|
16
|
+
var _lodash = _interopRequireDefault(require("lodash"));
|
|
17
|
+
|
|
16
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
19
|
|
|
18
20
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
19
21
|
|
|
22
|
+
function throwInvalidIndexError(index, reportCardsLength) {
|
|
23
|
+
throw new Error(`Invalid index ${index} specified for reportCard with length ${reportCardsLength}`);
|
|
24
|
+
}
|
|
25
|
+
|
|
20
26
|
class ReportCard extends _BaseEntity.default {
|
|
21
27
|
constructor(that = null) {
|
|
22
28
|
super(that);
|
|
@@ -62,28 +68,68 @@ class ReportCard extends _BaseEntity.default {
|
|
|
62
68
|
this.that.colour = x;
|
|
63
69
|
}
|
|
64
70
|
|
|
71
|
+
get nested() {
|
|
72
|
+
return this.that.nested;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
set nested(x) {
|
|
76
|
+
this.that.nested = x;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
get countOfCards() {
|
|
80
|
+
return this.that.countOfCards;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
set countOfCards(x) {
|
|
84
|
+
this.that.countOfCards = x;
|
|
85
|
+
}
|
|
86
|
+
|
|
65
87
|
get iconName() {
|
|
66
88
|
//TODO: right now not syncing the icon name uploaded from app designer.
|
|
67
|
-
return
|
|
89
|
+
return _lodash.default.isNil(this.standardReportCardType) ? null : this.standardReportCardType.iconName;
|
|
68
90
|
}
|
|
69
91
|
|
|
70
92
|
get cardColor() {
|
|
71
|
-
return
|
|
93
|
+
return _lodash.default.isNil(this.standardReportCardType) ? this.colour : this.standardReportCardType.cardColor;
|
|
72
94
|
}
|
|
73
95
|
|
|
74
96
|
get textColor() {
|
|
75
|
-
return
|
|
97
|
+
return _lodash.default.isNil(this.standardReportCardType) ? '#ffffff' : this.standardReportCardType.textColor;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Helper method used to generate unique key value for Nested Report Cards using UUID and Index of the Report Card.
|
|
101
|
+
* The Nested Report Card's query responses would be mapped to the corresponding Dashboard Report cards using the UUID and Index.
|
|
102
|
+
*
|
|
103
|
+
* @param index
|
|
104
|
+
* @returns {string}
|
|
105
|
+
*/
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
getCardId(index = 0) {
|
|
109
|
+
return this.uuid + '#' + index;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
getCardName(response, index = 0) {
|
|
113
|
+
return _lodash.default.get(response, `reportCards[${index}].name`) || this.name;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
getCardColor(response, index = 0) {
|
|
117
|
+
return _lodash.default.get(response, `reportCards[${index}].cardColor`) || this.cardColor;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
getTextColor(response, index = 0) {
|
|
121
|
+
return _lodash.default.get(response, `reportCards[${index}].textColor`) || this.textColor;
|
|
76
122
|
}
|
|
77
123
|
|
|
78
124
|
static fromResource(resource, entityService) {
|
|
79
|
-
const reportCard = _General.default.assignFields(resource, new ReportCard(), ["uuid", "name", "query", "description", "colour", "voided"]);
|
|
125
|
+
const reportCard = _General.default.assignFields(resource, new ReportCard(), ["uuid", "name", "query", "description", "colour", "voided", "nested", "countOfCards"]);
|
|
80
126
|
|
|
81
127
|
reportCard.standardReportCardType = entityService.findByKey("uuid", _ResourceUtil.default.getUUIDFor(resource, "standardReportCardUUID"), _StandardReportCardType.default.schema.name);
|
|
82
128
|
return reportCard;
|
|
83
129
|
}
|
|
84
130
|
|
|
85
131
|
isStandardTaskType() {
|
|
86
|
-
return
|
|
132
|
+
return _lodash.default.isNil(this.standardReportCardType) ? false : this.standardReportCardType.isTaskType();
|
|
87
133
|
}
|
|
88
134
|
|
|
89
135
|
}
|
|
@@ -110,7 +156,18 @@ _defineProperty(ReportCard, "schema", {
|
|
|
110
156
|
voided: {
|
|
111
157
|
type: "bool",
|
|
112
158
|
default: false
|
|
113
|
-
}
|
|
159
|
+
},
|
|
160
|
+
nested: {
|
|
161
|
+
type: "bool",
|
|
162
|
+
default: false,
|
|
163
|
+
optional: true
|
|
164
|
+
},
|
|
165
|
+
countOfCards: {
|
|
166
|
+
type: "int",
|
|
167
|
+
default: 1,
|
|
168
|
+
optional: true
|
|
169
|
+
} //Used only by nested ReportCards
|
|
170
|
+
|
|
114
171
|
}
|
|
115
172
|
});
|
|
116
173
|
|
package/dist/Schema.js
CHANGED
|
@@ -71,10 +71,6 @@ var _UserInfo = _interopRequireDefault(require("./UserInfo"));
|
|
|
71
71
|
|
|
72
72
|
var _StringKeyNumericValue = _interopRequireDefault(require("./application/StringKeyNumericValue"));
|
|
73
73
|
|
|
74
|
-
var _VisitScheduleInterval = _interopRequireDefault(require("./VisitScheduleInterval"));
|
|
75
|
-
|
|
76
|
-
var _VisitScheduleConfig = _interopRequireDefault(require("./VisitScheduleConfig"));
|
|
77
|
-
|
|
78
74
|
var _IndividualRelation = _interopRequireDefault(require("./relationship/IndividualRelation"));
|
|
79
75
|
|
|
80
76
|
var _IndividualRelationship = _interopRequireDefault(require("./relationship/IndividualRelationship"));
|
|
@@ -191,18 +187,165 @@ var _DefinedObjectSchema = _interopRequireDefault(require("./framework/DefinedOb
|
|
|
191
187
|
|
|
192
188
|
var _MigrationsHelper = _interopRequireDefault(require("./MigrationsHelper"));
|
|
193
189
|
|
|
190
|
+
var _MetaDataService = _interopRequireDefault(require("./service/MetaDataService"));
|
|
191
|
+
|
|
194
192
|
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
|
|
195
193
|
|
|
196
194
|
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; }
|
|
197
195
|
|
|
198
196
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
199
197
|
|
|
200
|
-
const entities = [_DashboardFilter.default, _LocaleMapping.default, _Settings.default, _ConceptAnswer.default, _Concept.default, _EncounterType.default, _Gender.default, _UserDefinedIndividualProperty.default, _AddressLevel.LocationMapping, _AddressLevel.default, _KeyValue.default, _Form.default, _FormMapping.default, _FormElementGroup.default, _FormElement.default, _SubjectType.default, _Individual.default, _ProgramOutcome.default, _Program.default, _ProgramEnrolment.default, _Observation.default, _ProgramEncounter.default, _Encounter.default, _EntitySyncStatus.default, _EntityQueue.default, _ConfigFile.default, _Checklist.default, _ChecklistItem.default, _Format.default, _UserInfo.default, _StringKeyNumericValue.default,
|
|
198
|
+
const entities = [_DashboardFilter.default, _LocaleMapping.default, _Settings.default, _ConceptAnswer.default, _Concept.default, _EncounterType.default, _Gender.default, _UserDefinedIndividualProperty.default, _AddressLevel.LocationMapping, _AddressLevel.default, _KeyValue.default, _Form.default, _FormMapping.default, _FormElementGroup.default, _FormElement.default, _SubjectType.default, _Individual.default, _ProgramOutcome.default, _Program.default, _ProgramEnrolment.default, _Observation.default, _ProgramEncounter.default, _Encounter.default, _EntitySyncStatus.default, _EntityQueue.default, _ConfigFile.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];
|
|
199
|
+
|
|
200
|
+
function migrateObjectTypeFieldToEmbedded(newDB, oldDB, schemaName, field, creatorFn) {
|
|
201
|
+
console.log(`schema: ${schemaName}, field: ${field}`);
|
|
202
|
+
newDB.objects(schemaName).forEach(newDbParentEntity => {
|
|
203
|
+
const oldFieldValue = oldDB.objects(schemaName).filtered(`uuid = "${newDbParentEntity.uuid}"`)[0][field];
|
|
204
|
+
|
|
205
|
+
if (!_lodash.default.isNil(oldFieldValue)) {
|
|
206
|
+
newDbParentEntity[field] = creatorFn(oldFieldValue);
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
function migrateListTypeFieldToEmbedded(newDB, oldDB, schemaName, field, creatorFn) {
|
|
212
|
+
console.log(`schema: ${schemaName}, field: ${field}`);
|
|
213
|
+
newDB.objects(schemaName).forEach(newDbParentEntity => {
|
|
214
|
+
const newList = [];
|
|
215
|
+
const oldFieldValues = oldDB.objects(schemaName).filtered(`uuid = "${newDbParentEntity.uuid}"`)[0][field];
|
|
216
|
+
oldFieldValues.forEach(oldFieldValue => {
|
|
217
|
+
newList.push(creatorFn(oldFieldValue));
|
|
218
|
+
});
|
|
219
|
+
newDbParentEntity[field] = newList;
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
function migrateEmbeddedObjects(oldDB, newDB) {
|
|
224
|
+
_MetaDataService.default.forEachFormatField((field, schemaName) => {
|
|
225
|
+
migrateObjectTypeFieldToEmbedded(newDB, oldDB, schemaName, field, old => {
|
|
226
|
+
return {
|
|
227
|
+
regex: old.regex,
|
|
228
|
+
descriptionKey: old.descriptionKey
|
|
229
|
+
};
|
|
230
|
+
});
|
|
231
|
+
});
|
|
232
|
+
|
|
233
|
+
newDB.deleteModel("Format");
|
|
234
|
+
|
|
235
|
+
_MetaDataService.default.forEachKeyValueField((field, schemaName) => {
|
|
236
|
+
migrateListTypeFieldToEmbedded(newDB, oldDB, schemaName, field, old => {
|
|
237
|
+
return {
|
|
238
|
+
key: old.key,
|
|
239
|
+
value: old.value
|
|
240
|
+
};
|
|
241
|
+
});
|
|
242
|
+
});
|
|
243
|
+
|
|
244
|
+
newDB.deleteModel("KeyValue");
|
|
245
|
+
|
|
246
|
+
_MetaDataService.default.forEachChecklistItemStatusField((field, schemaName) => {
|
|
247
|
+
migrateListTypeFieldToEmbedded(newDB, oldDB, schemaName, field, old => {
|
|
248
|
+
return {
|
|
249
|
+
state: old.state,
|
|
250
|
+
from: {
|
|
251
|
+
key: old.from.key,
|
|
252
|
+
value: old.from.value
|
|
253
|
+
},
|
|
254
|
+
to: {
|
|
255
|
+
key: old.to.key,
|
|
256
|
+
value: old.to.value
|
|
257
|
+
},
|
|
258
|
+
color: old.color,
|
|
259
|
+
displayOrder: old.displayOrder,
|
|
260
|
+
start: old.start,
|
|
261
|
+
end: old.end
|
|
262
|
+
};
|
|
263
|
+
});
|
|
264
|
+
});
|
|
265
|
+
|
|
266
|
+
console.log(`deleting model: ChecklistItemStatus`);
|
|
267
|
+
newDB.deleteModel("ChecklistItemStatus");
|
|
268
|
+
console.log(`deleting model: ProgramConfig`);
|
|
269
|
+
newDB.deleteModel("ProgramConfig");
|
|
270
|
+
console.log(`deleting model: VisitScheduleConfig`);
|
|
271
|
+
newDB.deleteModel("VisitScheduleConfig");
|
|
272
|
+
console.log(`deleting model: VisitScheduleInterval`);
|
|
273
|
+
newDB.deleteModel("VisitScheduleInterval");
|
|
274
|
+
console.log(`deleting model: StringKeyNumericValue`);
|
|
275
|
+
newDB.deleteModel("StringKeyNumericValue");
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
function flush(db) {
|
|
279
|
+
db.commitTransaction();
|
|
280
|
+
db.beginTransaction();
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
function shouldFlush(numberOfRecords) {
|
|
284
|
+
const batchSize = 100;
|
|
285
|
+
return numberOfRecords % batchSize === batchSize - 1;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
function migrateGeoLocation(oldDB, newDB) {
|
|
289
|
+
flush(newDB);
|
|
290
|
+
let recordCounter = 0;
|
|
291
|
+
|
|
292
|
+
_MetaDataService.default.forEachPointField((field, schemaName) => {
|
|
293
|
+
console.log(`schema: ${schemaName}, field: ${field}`);
|
|
294
|
+
newDB.objects(schemaName).forEach(newDbParentEntity => {
|
|
295
|
+
if (shouldFlush(recordCounter)) {
|
|
296
|
+
flush(newDB);
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
const oldFieldValue = oldDB.objects(schemaName).filtered(`uuid = "${newDbParentEntity.uuid}"`)[0][field];
|
|
300
|
+
|
|
301
|
+
if (!_lodash.default.isNil(oldFieldValue)) {
|
|
302
|
+
newDbParentEntity[field] = {
|
|
303
|
+
x: oldFieldValue.x,
|
|
304
|
+
y: oldFieldValue.y
|
|
305
|
+
};
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
recordCounter++;
|
|
309
|
+
});
|
|
310
|
+
});
|
|
311
|
+
|
|
312
|
+
flush(newDB);
|
|
313
|
+
newDB.deleteModel("Point");
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
function migrateObservationsToEmbedded(oldDB, newDB) {
|
|
317
|
+
flush(newDB);
|
|
318
|
+
let recordCounter = 0;
|
|
319
|
+
|
|
320
|
+
_MetaDataService.default.forEachObservationField((observationField, schemaName) => {
|
|
321
|
+
console.log(`schema: ${schemaName}, field: ${observationField}`);
|
|
322
|
+
newDB.objects(schemaName).forEach(newDbParentEntity => {
|
|
323
|
+
if (shouldFlush(recordCounter)) {
|
|
324
|
+
flush(newDB);
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
const newList = [];
|
|
328
|
+
const oldFieldValues = oldDB.objects(schemaName).filtered(`uuid = "${newDbParentEntity.uuid}"`)[0][observationField];
|
|
329
|
+
oldFieldValues.forEach(oldFieldValue => {
|
|
330
|
+
const newConcept = newDB.objects("Concept").filtered(`uuid = "${oldFieldValue.concept.uuid}"`)[0];
|
|
331
|
+
newList.push({
|
|
332
|
+
concept: newConcept,
|
|
333
|
+
valueJSON: oldFieldValue.valueJSON
|
|
334
|
+
});
|
|
335
|
+
});
|
|
336
|
+
newDbParentEntity[observationField] = newList;
|
|
337
|
+
recordCounter++;
|
|
338
|
+
});
|
|
339
|
+
});
|
|
340
|
+
|
|
341
|
+
flush(newDB);
|
|
342
|
+
newDB.deleteModel("Observation");
|
|
343
|
+
}
|
|
201
344
|
|
|
202
345
|
function createRealmConfig() {
|
|
203
346
|
return {
|
|
204
347
|
//order is important, should be arranged according to the dependency
|
|
205
|
-
schemaVersion:
|
|
348
|
+
schemaVersion: 186,
|
|
206
349
|
onMigration: function (oldDB, newDB) {
|
|
207
350
|
console.log("[AvniModels.Schema]", `Running migration with old schema version: ${oldDB.schemaVersion} and new schema version: ${newDB.schemaVersion}`);
|
|
208
351
|
|
|
@@ -798,6 +941,30 @@ function createRealmConfig() {
|
|
|
798
941
|
rft.entityId = null;
|
|
799
942
|
});
|
|
800
943
|
}
|
|
944
|
+
|
|
945
|
+
if (oldDB.schemaVersion < 182) {
|
|
946
|
+
_lodash.default.forEach(newDB.objects(_ReportCard.default.schema.name), rc => {
|
|
947
|
+
rc.nested = false;
|
|
948
|
+
rc.countOfCards = 1;
|
|
949
|
+
});
|
|
950
|
+
}
|
|
951
|
+
|
|
952
|
+
if (newDB.schemaVersion < 183) {
|
|
953
|
+
const newObjects = newDB.objects("DashboardCache");
|
|
954
|
+
newDB.delete(newObjects);
|
|
955
|
+
}
|
|
956
|
+
|
|
957
|
+
if (oldDB.schemaVersion < 184) {
|
|
958
|
+
migrateEmbeddedObjects(oldDB, newDB);
|
|
959
|
+
}
|
|
960
|
+
|
|
961
|
+
if (oldDB.schemaVersion < 185) {
|
|
962
|
+
migrateGeoLocation(oldDB, newDB);
|
|
963
|
+
}
|
|
964
|
+
|
|
965
|
+
if (oldDB.schemaVersion < 186) {
|
|
966
|
+
migrateObservationsToEmbedded(oldDB, newDB);
|
|
967
|
+
}
|
|
801
968
|
}
|
|
802
969
|
};
|
|
803
970
|
}
|
package/dist/SchemaNames.js
CHANGED
|
@@ -9,6 +9,12 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
9
9
|
|
|
10
10
|
class SchemaNames {}
|
|
11
11
|
|
|
12
|
+
_defineProperty(SchemaNames, "Family", "Family");
|
|
13
|
+
|
|
14
|
+
_defineProperty(SchemaNames, "AddressLevel", "AddressLevel");
|
|
15
|
+
|
|
16
|
+
_defineProperty(SchemaNames, "DraftEncounter", "DraftEncounter");
|
|
17
|
+
|
|
12
18
|
_defineProperty(SchemaNames, "EntitySyncStatus", "EntitySyncStatus");
|
|
13
19
|
|
|
14
20
|
_defineProperty(SchemaNames, "Individual", "Individual");
|
|
@@ -27,7 +33,7 @@ _defineProperty(SchemaNames, "Identifier", "Identifier");
|
|
|
27
33
|
|
|
28
34
|
_defineProperty(SchemaNames, "Form", "Form");
|
|
29
35
|
|
|
30
|
-
_defineProperty(SchemaNames, "Format", "
|
|
36
|
+
_defineProperty(SchemaNames, "Format", "EmbeddedFormat");
|
|
31
37
|
|
|
32
38
|
_defineProperty(SchemaNames, "FormElement", "FormElement");
|
|
33
39
|
|
|
@@ -35,11 +41,11 @@ _defineProperty(SchemaNames, "FormElementGroup", "FormElementGroup");
|
|
|
35
41
|
|
|
36
42
|
_defineProperty(SchemaNames, "FormMapping", "FormMapping");
|
|
37
43
|
|
|
38
|
-
_defineProperty(SchemaNames, "KeyValue", "
|
|
44
|
+
_defineProperty(SchemaNames, "KeyValue", "EmbeddedKeyValue");
|
|
39
45
|
|
|
40
46
|
_defineProperty(SchemaNames, "MenuItem", "MenuItem");
|
|
41
47
|
|
|
42
|
-
_defineProperty(SchemaNames, "StringKeyNumericValue", "
|
|
48
|
+
_defineProperty(SchemaNames, "StringKeyNumericValue", "EmbeddedStringKeyNumericValue");
|
|
43
49
|
|
|
44
50
|
_defineProperty(SchemaNames, "UserSubjectAssignment", "UserSubjectAssignment");
|
|
45
51
|
|
|
@@ -77,7 +83,7 @@ _defineProperty(SchemaNames, "ChecklistDetail", "ChecklistDetail");
|
|
|
77
83
|
|
|
78
84
|
_defineProperty(SchemaNames, "ChecklistItemDetail", "ChecklistItemDetail");
|
|
79
85
|
|
|
80
|
-
_defineProperty(SchemaNames, "ChecklistItemStatus", "
|
|
86
|
+
_defineProperty(SchemaNames, "ChecklistItemStatus", "EmbeddedChecklistItemStatus");
|
|
81
87
|
|
|
82
88
|
_defineProperty(SchemaNames, "Comment", "Comment");
|
|
83
89
|
|
|
@@ -85,5 +91,7 @@ _defineProperty(SchemaNames, "Concept", "Concept");
|
|
|
85
91
|
|
|
86
92
|
_defineProperty(SchemaNames, "EntityApprovalStatus", "EntityApprovalStatus");
|
|
87
93
|
|
|
94
|
+
_defineProperty(SchemaNames, "EmbeddedPoint", "EmbeddedPoint");
|
|
95
|
+
|
|
88
96
|
var _default = SchemaNames;
|
|
89
97
|
exports.default = _default;
|
package/dist/SubjectMigration.js
CHANGED
|
@@ -11,8 +11,14 @@ var _BaseEntity = _interopRequireDefault(require("./BaseEntity"));
|
|
|
11
11
|
|
|
12
12
|
var _ResourceUtil = _interopRequireDefault(require("./utility/ResourceUtil"));
|
|
13
13
|
|
|
14
|
+
var _AuditUtil = require("./utility/AuditUtil");
|
|
15
|
+
|
|
14
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
17
|
|
|
18
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
19
|
+
|
|
20
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
21
|
+
|
|
16
22
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
17
23
|
|
|
18
24
|
class SubjectMigration extends _BaseEntity.default {
|
|
@@ -92,6 +98,38 @@ class SubjectMigration extends _BaseEntity.default {
|
|
|
92
98
|
this.that.hasMigrated = x;
|
|
93
99
|
}
|
|
94
100
|
|
|
101
|
+
get createdBy() {
|
|
102
|
+
return this.that.createdBy;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
set createdBy(x) {
|
|
106
|
+
this.that.createdBy = x;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
get lastModifiedBy() {
|
|
110
|
+
return this.that.lastModifiedBy;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
set lastModifiedBy(x) {
|
|
114
|
+
this.that.lastModifiedBy = x;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
get createdByUUID() {
|
|
118
|
+
return this.that.createdByUUID;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
set createdByUUID(x) {
|
|
122
|
+
this.that.createdByUUID = x;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
get lastModifiedByUUID() {
|
|
126
|
+
return this.that.lastModifiedByUUID;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
set lastModifiedByUUID(x) {
|
|
130
|
+
this.that.lastModifiedByUUID = x;
|
|
131
|
+
}
|
|
132
|
+
|
|
95
133
|
static create(subjectUUID, oldAddressLevelUUID, newAddressLevelUUID, oldSyncConcept1Value, newSyncConcept1Value, oldSyncConcept2Value, newSyncConcept2Value, subjectTypeUUID) {
|
|
96
134
|
let subjectMigration = new SubjectMigration();
|
|
97
135
|
subjectMigration.uuid = _General.default.randomUUID();
|
|
@@ -117,6 +155,7 @@ class SubjectMigration extends _BaseEntity.default {
|
|
|
117
155
|
subjectMigration.newSyncConcept1Value = resource.newSyncConcept1Value;
|
|
118
156
|
subjectMigration.oldSyncConcept2Value = resource.oldSyncConcept2Value;
|
|
119
157
|
subjectMigration.newSyncConcept2Value = resource.newSyncConcept2Value;
|
|
158
|
+
(0, _AuditUtil.mapAuditFields)(subjectMigration, resource);
|
|
120
159
|
return subjectMigration;
|
|
121
160
|
}
|
|
122
161
|
|
|
@@ -140,7 +179,7 @@ class SubjectMigration extends _BaseEntity.default {
|
|
|
140
179
|
_defineProperty(SubjectMigration, "schema", {
|
|
141
180
|
name: 'SubjectMigration',
|
|
142
181
|
primaryKey: 'uuid',
|
|
143
|
-
properties: {
|
|
182
|
+
properties: _objectSpread({
|
|
144
183
|
uuid: 'string',
|
|
145
184
|
subjectUUID: 'string',
|
|
146
185
|
oldAddressLevelUUID: {
|
|
@@ -172,7 +211,7 @@ _defineProperty(SubjectMigration, "schema", {
|
|
|
172
211
|
type: 'bool',
|
|
173
212
|
default: false
|
|
174
213
|
}
|
|
175
|
-
}
|
|
214
|
+
}, _AuditUtil.AuditFields)
|
|
176
215
|
});
|
|
177
216
|
|
|
178
217
|
var _default = SubjectMigration;
|
package/dist/SubjectType.js
CHANGED
|
@@ -13,6 +13,8 @@ var _Format = _interopRequireDefault(require("./application/Format"));
|
|
|
13
13
|
|
|
14
14
|
var _ResourceUtil = _interopRequireDefault(require("./utility/ResourceUtil"));
|
|
15
15
|
|
|
16
|
+
var _SchemaNames = _interopRequireDefault(require("./SchemaNames"));
|
|
17
|
+
|
|
16
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
19
|
|
|
18
20
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
@@ -300,15 +302,15 @@ _defineProperty(SubjectType, "schema", {
|
|
|
300
302
|
default: false
|
|
301
303
|
},
|
|
302
304
|
validFirstNameFormat: {
|
|
303
|
-
type:
|
|
305
|
+
type: _SchemaNames.default.Format,
|
|
304
306
|
optional: true
|
|
305
307
|
},
|
|
306
308
|
validMiddleNameFormat: {
|
|
307
|
-
type:
|
|
309
|
+
type: _SchemaNames.default.Format,
|
|
308
310
|
optional: true
|
|
309
311
|
},
|
|
310
312
|
validLastNameFormat: {
|
|
311
|
-
type:
|
|
313
|
+
type: _SchemaNames.default.Format,
|
|
312
314
|
optional: true
|
|
313
315
|
},
|
|
314
316
|
iconFileS3Key: {
|