openchs-models 1.31.24 → 1.31.26

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.
@@ -261,7 +261,7 @@ _defineProperty(AddressLevel, "schema", {
261
261
  },
262
262
  locationProperties: {
263
263
  type: "list",
264
- objectType: "Observation"
264
+ objectType: "EmbeddedObservation"
265
265
  },
266
266
  titleLineage: {
267
267
  type: "string",
@@ -362,7 +362,7 @@ _defineProperty(ChecklistItem, "schema", {
362
362
  },
363
363
  observations: {
364
364
  type: "list",
365
- objectType: "Observation"
365
+ objectType: "EmbeddedObservation"
366
366
  },
367
367
  checklist: "Checklist",
368
368
  approvalStatuses: {
@@ -146,7 +146,7 @@ _defineProperty(ChecklistItemDetail, "schema", {
146
146
  concept: "Concept",
147
147
  stateConfig: {
148
148
  type: "list",
149
- objectType: "ChecklistItemStatus"
149
+ objectType: _SchemaNames.default.ChecklistItemStatus
150
150
  },
151
151
  form: {
152
152
  type: "Form",
@@ -126,10 +126,11 @@ class ChecklistItemStatus extends _PersistedObject.default {
126
126
 
127
127
  _defineProperty(ChecklistItemStatus, "schema", {
128
128
  name: _SchemaNames.default.ChecklistItemStatus,
129
+ embedded: true,
129
130
  properties: {
130
131
  state: "string",
131
- from: "StringKeyNumericValue",
132
- to: "StringKeyNumericValue",
132
+ from: _SchemaNames.default.StringKeyNumericValue,
133
+ to: _SchemaNames.default.StringKeyNumericValue,
133
134
  color: {
134
135
  type: "string",
135
136
  default: "yellow"
package/dist/Concept.js CHANGED
@@ -375,7 +375,7 @@ _defineProperty(Concept, "schema", {
375
375
  },
376
376
  keyValues: {
377
377
  type: "list",
378
- objectType: "KeyValue"
378
+ objectType: _SchemaNames.default.KeyValue
379
379
  },
380
380
  voided: {
381
381
  type: "bool",
package/dist/Encounter.js CHANGED
@@ -19,8 +19,6 @@ var _General = _interopRequireDefault(require("./utility/General"));
19
19
 
20
20
  var _EncounterType = _interopRequireDefault(require("./EncounterType"));
21
21
 
22
- var _Point = _interopRequireDefault(require("./geo/Point"));
23
-
24
22
  var _EntityApprovalStatus = _interopRequireDefault(require("./EntityApprovalStatus"));
25
23
 
26
24
  var _SchemaNames = _interopRequireDefault(require("./SchemaNames"));
@@ -134,10 +132,10 @@ _defineProperty(Encounter, "schema", {
134
132
  individual: _SchemaNames.default.Individual,
135
133
  observations: {
136
134
  type: "list",
137
- objectType: "Observation"
135
+ objectType: "EmbeddedObservation"
138
136
  },
139
137
  encounterLocation: {
140
- type: "Point",
138
+ type: _SchemaNames.default.EmbeddedPoint,
141
139
  optional: true
142
140
  },
143
141
  name: {
@@ -158,10 +156,10 @@ _defineProperty(Encounter, "schema", {
158
156
  },
159
157
  cancelObservations: {
160
158
  type: "list",
161
- objectType: "Observation"
159
+ objectType: "EmbeddedObservation"
162
160
  },
163
161
  cancelLocation: {
164
- type: "Point",
162
+ type: _SchemaNames.default.EmbeddedPoint,
165
163
  optional: true
166
164
  },
167
165
  voided: {
package/dist/Family.js CHANGED
@@ -211,7 +211,7 @@ class Family extends _BaseEntity.default {
211
211
  }
212
212
 
213
213
  _defineProperty(Family, "schema", {
214
- name: "Family",
214
+ name: _SchemaNames.default.Family,
215
215
  primaryKey: "uuid",
216
216
  properties: {
217
217
  uuid: "string",
@@ -226,7 +226,7 @@ _defineProperty(Family, "schema", {
226
226
  },
227
227
  observations: {
228
228
  type: "list",
229
- objectType: "Observation"
229
+ objectType: "EmbeddedObservation"
230
230
  }
231
231
  }
232
232
  });
@@ -1104,7 +1104,7 @@ _defineProperty(Individual, "schema", {
1104
1104
  },
1105
1105
  observations: {
1106
1106
  type: "list",
1107
- objectType: "Observation"
1107
+ objectType: "EmbeddedObservation"
1108
1108
  },
1109
1109
  relationships: {
1110
1110
  type: "list",
@@ -1115,7 +1115,7 @@ _defineProperty(Individual, "schema", {
1115
1115
  objectType: "GroupSubject"
1116
1116
  },
1117
1117
  registrationLocation: {
1118
- type: "Point",
1118
+ type: _SchemaNames.default.EmbeddedPoint,
1119
1119
  optional: true
1120
1120
  },
1121
1121
  comments: {
@@ -49,7 +49,7 @@ class Observation extends _PersistedObject.default {
49
49
  this.that.valueJSON = x;
50
50
  }
51
51
 
52
- static create(concept, value, abnormal = false) {
52
+ static create(concept, value) {
53
53
  const observation = new Observation();
54
54
  observation.concept = concept;
55
55
  observation.valueJSON = value;
@@ -254,10 +254,15 @@ class Observation extends _PersistedObject.default {
254
254
  return this.concept.isMobileNo();
255
255
  }
256
256
 
257
+ isForMedia(mediaName) {
258
+ return _Concept.default.dataType.Media.includes(this.concept.datatype) && this.valueJSON.includes(mediaName);
259
+ }
260
+
257
261
  }
258
262
 
259
263
  _defineProperty(Observation, "schema", {
260
- name: "Observation",
264
+ name: "EmbeddedObservation",
265
+ embedded: true,
261
266
  properties: {
262
267
  concept: "Concept",
263
268
  valueJSON: "string"
@@ -196,7 +196,7 @@ _defineProperty(ProgramEncounter, "schema", {
196
196
  programEnrolment: _SchemaNames.default.ProgramEnrolment,
197
197
  observations: {
198
198
  type: "list",
199
- objectType: "Observation"
199
+ objectType: "EmbeddedObservation"
200
200
  },
201
201
  cancelDateTime: {
202
202
  type: "date",
@@ -204,14 +204,14 @@ _defineProperty(ProgramEncounter, "schema", {
204
204
  },
205
205
  cancelObservations: {
206
206
  type: "list",
207
- objectType: "Observation"
207
+ objectType: "EmbeddedObservation"
208
208
  },
209
209
  encounterLocation: {
210
- type: "Point",
210
+ type: _SchemaNames.default.EmbeddedPoint,
211
211
  optional: true
212
212
  },
213
213
  cancelLocation: {
214
- type: "Point",
214
+ type: _SchemaNames.default.EmbeddedPoint,
215
215
  optional: true
216
216
  },
217
217
  voided: {
@@ -681,7 +681,7 @@ _defineProperty(ProgramEnrolment, "schema", {
681
681
  enrolmentDateTime: "date",
682
682
  observations: {
683
683
  type: "list",
684
- objectType: "Observation"
684
+ objectType: "EmbeddedObservation"
685
685
  },
686
686
  programExitDateTime: {
687
687
  type: "date",
@@ -689,7 +689,7 @@ _defineProperty(ProgramEnrolment, "schema", {
689
689
  },
690
690
  programExitObservations: {
691
691
  type: "list",
692
- objectType: "Observation"
692
+ objectType: "EmbeddedObservation"
693
693
  },
694
694
  programOutcome: {
695
695
  type: "ProgramOutcome",
@@ -705,11 +705,11 @@ _defineProperty(ProgramEnrolment, "schema", {
705
705
  },
706
706
  individual: "Individual",
707
707
  enrolmentLocation: {
708
- type: "Point",
708
+ type: _SchemaNames.default.EmbeddedPoint,
709
709
  optional: true
710
710
  },
711
711
  exitLocation: {
712
- type: "Point",
712
+ type: _SchemaNames.default.EmbeddedPoint,
713
713
  optional: true
714
714
  },
715
715
  voided: {
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,114 @@ 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, _VisitScheduleInterval.default, _VisitScheduleConfig.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];
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.forEachObservationField((observationField, schemaName) => {
225
+ migrateListTypeFieldToEmbedded(newDB, oldDB, schemaName, observationField, old => {
226
+ const newConcept = newDB.objects("Concept").filtered(`uuid = "${old.concept.uuid}"`)[0];
227
+ return {
228
+ concept: newConcept,
229
+ valueJSON: old.valueJSON
230
+ };
231
+ });
232
+ });
233
+
234
+ newDB.deleteModel("Observation");
235
+
236
+ _MetaDataService.default.forEachPointField((field, schemaName) => {
237
+ migrateObjectTypeFieldToEmbedded(newDB, oldDB, schemaName, field, old => {
238
+ return {
239
+ x: old.x,
240
+ y: old.y
241
+ };
242
+ });
243
+ });
244
+
245
+ newDB.deleteModel("Point");
246
+
247
+ _MetaDataService.default.forEachFormatField((field, schemaName) => {
248
+ migrateObjectTypeFieldToEmbedded(newDB, oldDB, schemaName, field, old => {
249
+ return {
250
+ regex: old.regex,
251
+ descriptionKey: old.descriptionKey
252
+ };
253
+ });
254
+ });
255
+
256
+ newDB.deleteModel("Format");
257
+
258
+ _MetaDataService.default.forEachKeyValueField((field, schemaName) => {
259
+ migrateListTypeFieldToEmbedded(newDB, oldDB, schemaName, field, old => {
260
+ return {
261
+ key: old.key,
262
+ value: old.value
263
+ };
264
+ });
265
+ });
266
+
267
+ newDB.deleteModel("KeyValue");
268
+
269
+ _MetaDataService.default.forEachChecklistItemStatusField((field, schemaName) => {
270
+ migrateListTypeFieldToEmbedded(newDB, oldDB, schemaName, field, old => {
271
+ return {
272
+ state: old.state,
273
+ from: {
274
+ key: old.from.key,
275
+ value: old.from.value
276
+ },
277
+ to: {
278
+ key: old.to.key,
279
+ value: old.to.value
280
+ },
281
+ color: old.color,
282
+ displayOrder: old.displayOrder,
283
+ start: old.start,
284
+ end: old.end
285
+ };
286
+ });
287
+ });
288
+
289
+ console.log(`deleting model: ChecklistItemStatus`);
290
+ newDB.deleteModel("ChecklistItemStatus"); // console.log(`deleting model: StringKeyNumericValue`);
291
+ // newDB.deleteModel("StringKeyNumericValue");
292
+ }
201
293
 
202
294
  function createRealmConfig() {
203
295
  return {
204
296
  //order is important, should be arranged according to the dependency
205
- schemaVersion: 183,
297
+ schemaVersion: 184,
206
298
  onMigration: function (oldDB, newDB) {
207
299
  console.log("[AvniModels.Schema]", `Running migration with old schema version: ${oldDB.schemaVersion} and new schema version: ${newDB.schemaVersion}`);
208
300
 
@@ -810,6 +902,10 @@ function createRealmConfig() {
810
902
  const newObjects = newDB.objects("DashboardCache");
811
903
  newDB.delete(newObjects);
812
904
  }
905
+
906
+ if (oldDB.schemaVersion < 184) {
907
+ migrateEmbeddedObjects(oldDB, newDB);
908
+ }
813
909
  }
814
910
  };
815
911
  }
@@ -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", "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", "KeyValue");
44
+ _defineProperty(SchemaNames, "KeyValue", "EmbeddedKeyValue");
39
45
 
40
46
  _defineProperty(SchemaNames, "MenuItem", "MenuItem");
41
47
 
42
- _defineProperty(SchemaNames, "StringKeyNumericValue", "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", "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;
@@ -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: "Format",
305
+ type: _SchemaNames.default.Format,
304
306
  optional: true
305
307
  },
306
308
  validMiddleNameFormat: {
307
- type: "Format",
309
+ type: _SchemaNames.default.Format,
308
310
  optional: true
309
311
  },
310
312
  validLastNameFormat: {
311
- type: "Format",
313
+ type: _SchemaNames.default.Format,
312
314
  optional: true
313
315
  },
314
316
  iconFileS3Key: {
@@ -418,7 +418,7 @@ _defineProperty(FormElement, "schema", {
418
418
  mandatory: "bool",
419
419
  keyValues: {
420
420
  type: "list",
421
- objectType: "KeyValue"
421
+ objectType: _SchemaNames.default.KeyValue
422
422
  },
423
423
  concept: "Concept",
424
424
  type: {
@@ -427,7 +427,7 @@ _defineProperty(FormElement, "schema", {
427
427
  },
428
428
  formElementGroup: "FormElementGroup",
429
429
  validFormat: {
430
- type: "Format",
430
+ type: _SchemaNames.default.Format,
431
431
  optional: true
432
432
  },
433
433
  voided: {
@@ -61,6 +61,7 @@ _defineProperty(Format, "map", new Map());
61
61
 
62
62
  _defineProperty(Format, "schema", {
63
63
  name: _SchemaNames.default.Format,
64
+ embedded: true,
64
65
  properties: {
65
66
  regex: "string",
66
67
  descriptionKey: "string"
@@ -59,6 +59,7 @@ _defineProperty(KeyValue, "ContactYesValue", "yes");
59
59
 
60
60
  _defineProperty(KeyValue, "schema", {
61
61
  name: _SchemaNames.default.KeyValue,
62
+ embedded: true,
62
63
  properties: {
63
64
  key: "string",
64
65
  value: "string"
@@ -53,6 +53,7 @@ class StringKeyNumericValue extends _PersistedObject.default {
53
53
 
54
54
  _defineProperty(StringKeyNumericValue, "schema", {
55
55
  name: _SchemaNames.default.StringKeyNumericValue,
56
+ embedded: true,
56
57
  properties: {
57
58
  key: "string",
58
59
  value: "double"
@@ -19,7 +19,7 @@ var _index = require("../index");
19
19
 
20
20
  var _Point = _interopRequireDefault(require("../geo/Point"));
21
21
 
22
- var _ApprovalStatus = _interopRequireDefault(require("../ApprovalStatus"));
22
+ var _SchemaNames = _interopRequireDefault(require("../SchemaNames"));
23
23
 
24
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
25
 
@@ -158,7 +158,7 @@ class DraftEncounter extends _BaseEntity.default {
158
158
  }
159
159
 
160
160
  _defineProperty(DraftEncounter, "schema", {
161
- name: "DraftEncounter",
161
+ name: _SchemaNames.default.DraftEncounter,
162
162
  primaryKey: "uuid",
163
163
  properties: {
164
164
  uuid: "string",
@@ -170,10 +170,10 @@ _defineProperty(DraftEncounter, "schema", {
170
170
  individual: "Individual",
171
171
  observations: {
172
172
  type: "list",
173
- objectType: "Observation"
173
+ objectType: "EmbeddedObservation"
174
174
  },
175
175
  encounterLocation: {
176
- type: "Point",
176
+ type: _SchemaNames.default.EmbeddedPoint,
177
177
  optional: true
178
178
  },
179
179
  name: {
@@ -194,10 +194,10 @@ _defineProperty(DraftEncounter, "schema", {
194
194
  },
195
195
  cancelObservations: {
196
196
  type: "list",
197
- objectType: "Observation"
197
+ objectType: "EmbeddedObservation"
198
198
  },
199
199
  cancelLocation: {
200
- type: "Point",
200
+ type: _SchemaNames.default.EmbeddedPoint,
201
201
  optional: true
202
202
  },
203
203
  voided: {
@@ -211,10 +211,10 @@ _defineProperty(DraftSubject, "schema", {
211
211
  lowestAddressLevel: "AddressLevel",
212
212
  observations: {
213
213
  type: "list",
214
- objectType: "Observation"
214
+ objectType: "EmbeddedObservation"
215
215
  },
216
216
  registrationLocation: {
217
- type: "Point",
217
+ type: _SchemaNames.default.EmbeddedPoint,
218
218
  optional: true
219
219
  },
220
220
  updatedOn: "date",
@@ -153,6 +153,14 @@ class RealmResultsProxy {
153
153
  return _lodash.default.isNil(thisArg) ? this.realmCollection.find(findFunc) : this.realmCollection.find(findFunc, thisArg);
154
154
  }
155
155
 
156
+ every(callback, [thisArg] = []) {
157
+ const everyFunc = (object, index, collection) => {
158
+ return callback(this.createEntity(object), index, collection);
159
+ };
160
+
161
+ return _lodash.default.isNil(thisArg) ? this.realmCollection.every(everyFunc) : this.realmCollection.every(everyFunc, [thisArg]);
162
+ }
163
+
156
164
  }
157
165
 
158
166
  var _default = RealmResultsProxy;
package/dist/geo/Point.js CHANGED
@@ -57,7 +57,8 @@ class Point extends _PersistedObject.default {
57
57
  }
58
58
 
59
59
  _defineProperty(Point, "schema", {
60
- name: "Point",
60
+ name: "EmbeddedPoint",
61
+ embedded: true,
61
62
  properties: {
62
63
  x: "double",
63
64
  y: "double"
package/dist/index.js CHANGED
@@ -387,18 +387,6 @@ Object.defineProperty(exports, "VideoTelemetric", {
387
387
  return _VideoTelemetric.default;
388
388
  }
389
389
  });
390
- Object.defineProperty(exports, "VisitScheduleConfig", {
391
- enumerable: true,
392
- get: function () {
393
- return _VisitScheduleConfig.default;
394
- }
395
- });
396
- Object.defineProperty(exports, "VisitScheduleInterval", {
397
- enumerable: true,
398
- get: function () {
399
- return _VisitScheduleInterval.default;
400
- }
401
- });
402
390
  Object.defineProperty(exports, "MediaQueue", {
403
391
  enumerable: true,
404
392
  get: function () {
@@ -940,10 +928,6 @@ var _Video = _interopRequireDefault(require("./videos/Video"));
940
928
 
941
929
  var _VideoTelemetric = _interopRequireDefault(require("./videos/VideoTelemetric"));
942
930
 
943
- var _VisitScheduleConfig = _interopRequireDefault(require("./VisitScheduleConfig"));
944
-
945
- var _VisitScheduleInterval = _interopRequireDefault(require("./VisitScheduleInterval"));
946
-
947
931
  var _MediaQueue = _interopRequireDefault(require("./MediaQueue"));
948
932
 
949
933
  var _Point = _interopRequireDefault(require("./geo/Point"));
@@ -221,7 +221,7 @@ _defineProperty(SubjectProgramEligibility, "schema", {
221
221
  },
222
222
  observations: {
223
223
  type: "list",
224
- objectType: "Observation"
224
+ objectType: "EmbeddedObservation"
225
225
  },
226
226
  voided: {
227
227
  type: "bool",
@@ -207,7 +207,7 @@ _defineProperty(IndividualRelationship, "schema", {
207
207
  },
208
208
  exitObservations: {
209
209
  type: "list",
210
- objectType: "Observation"
210
+ objectType: "EmbeddedObservation"
211
211
  },
212
212
  voided: {
213
213
  type: "bool",
@@ -7,27 +7,102 @@ exports.default = void 0;
7
7
 
8
8
  var _lodash = _interopRequireDefault(require("lodash"));
9
9
 
10
- var _openchsModels = require("openchs-models");
10
+ var _Form = _interopRequireDefault(require("../application/Form"));
11
+
12
+ var _SchemaNames = _interopRequireDefault(require("../SchemaNames"));
11
13
 
12
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
15
 
16
+ const observationHolders = new Map();
17
+ observationHolders.set(_SchemaNames.default.Individual, ["observations"]);
18
+ observationHolders.set(_SchemaNames.default.DraftSubject, ["observations"]);
19
+ observationHolders.set(_SchemaNames.default.Encounter, ["observations", "cancelObservations"]);
20
+ observationHolders.set(_SchemaNames.default.DraftEncounter, ["observations", "cancelObservations"]);
21
+ observationHolders.set(_SchemaNames.default.SubjectProgramEligibility, ["observations"]);
22
+ observationHolders.set(_SchemaNames.default.IndividualRelationship, ["exitObservations"]);
23
+ observationHolders.set(_SchemaNames.default.AddressLevel, ["locationProperties"]);
24
+ observationHolders.set(_SchemaNames.default.ChecklistItem, ["observations"]);
25
+ observationHolders.set(_SchemaNames.default.Family, ["observations"]);
26
+ observationHolders.set(_SchemaNames.default.ProgramEncounter, ["observations", "cancelObservations"]);
27
+ observationHolders.set(_SchemaNames.default.ProgramEnrolment, ["observations", "programExitObservations"]);
28
+ observationHolders.set(_SchemaNames.default.Task, ["metadata", "observations"]);
29
+ observationHolders.set(_SchemaNames.default.Family, ["observations"]);
30
+ const pointHolders = new Map();
31
+ pointHolders.set(_SchemaNames.default.DraftEncounter, ["encounterLocation", "cancelLocation"]);
32
+ pointHolders.set(_SchemaNames.default.DraftSubject, ["registrationLocation"]);
33
+ pointHolders.set(_SchemaNames.default.Encounter, ["encounterLocation", "cancelLocation"]);
34
+ pointHolders.set(_SchemaNames.default.Individual, ["registrationLocation"]);
35
+ pointHolders.set(_SchemaNames.default.ProgramEncounter, ["encounterLocation", "cancelLocation"]);
36
+ pointHolders.set(_SchemaNames.default.ProgramEnrolment, ["enrolmentLocation", "exitLocation"]);
37
+ const formatHolders = new Map();
38
+ formatHolders.set("SubjectType", ["validFirstNameFormat", "validMiddleNameFormat", "validLastNameFormat"]);
39
+ formatHolders.set(_SchemaNames.default.FormElement, ["validFormat"]);
40
+ const keyValueHolders = new Map();
41
+ keyValueHolders.set(_SchemaNames.default.FormElement, ["keyValues"]);
42
+ keyValueHolders.set(_SchemaNames.default.Concept, ["keyValues"]);
43
+ const checklistItemStatusHolders = new Map();
44
+ checklistItemStatusHolders.set(_SchemaNames.default.ChecklistItemDetail, ["stateConfig"]);
45
+
46
+ function forEachField(fn, holders) {
47
+ holders.forEach((fields, schemaName) => {
48
+ fields.forEach(field => {
49
+ fn(field, schemaName);
50
+ });
51
+ });
52
+ }
53
+
14
54
  class MetaDataService {
55
+ static forEachPointField(fn) {
56
+ forEachField(fn, pointHolders);
57
+ }
58
+
59
+ static forEachObservationField(fn) {
60
+ forEachField(fn, observationHolders);
61
+ }
62
+
63
+ static forEachFormatField(fn) {
64
+ forEachField(fn, formatHolders);
65
+ }
66
+
67
+ static forEachKeyValueField(fn) {
68
+ forEachField(fn, keyValueHolders);
69
+ }
70
+
71
+ static forEachChecklistItemStatusField(fn) {
72
+ forEachField(fn, checklistItemStatusHolders);
73
+ }
74
+
75
+ static everyObservationField(fn) {
76
+ const schemaAndObsFields = Array.from(observationHolders, ([schema, observationFields]) => ({
77
+ schema,
78
+ observationFields
79
+ }));
80
+ return schemaAndObsFields.every(({
81
+ schema,
82
+ observationFields
83
+ }) => {
84
+ return observationFields.every(observationField => {
85
+ return fn(observationField, schema);
86
+ });
87
+ });
88
+ }
89
+
15
90
  static getProgramFormMappings(formMappings) {
16
- return _lodash.default.filter(formMappings, formMapping => formMapping.formType === _openchsModels.Form.formTypes.ProgramEnrolment);
91
+ return _lodash.default.filter(formMappings, formMapping => formMapping.formType === _Form.default.formTypes.ProgramEnrolment);
17
92
  }
18
93
 
19
94
  static getGeneralEncounterFormMappings(formMappings) {
20
- return _lodash.default.filter(formMappings, formMapping => formMapping.formType === _openchsModels.Form.formTypes.Encounter || formMapping.formType === _openchsModels.Form.formTypes.IndividualEncounterCancellation);
95
+ return _lodash.default.filter(formMappings, formMapping => formMapping.formType === _Form.default.formTypes.Encounter || formMapping.formType === _Form.default.formTypes.IndividualEncounterCancellation);
21
96
  }
22
97
 
23
98
  static getProgramEncounterFormMappings(formMappings) {
24
- return _lodash.default.filter(formMappings, formMapping => formMapping.formType === _openchsModels.Form.formTypes.ProgramEncounter || formMapping.formType === _openchsModels.Form.formTypes.ProgramEncounterCancellation);
99
+ return _lodash.default.filter(formMappings, formMapping => formMapping.formType === _Form.default.formTypes.ProgramEncounter || formMapping.formType === _Form.default.formTypes.ProgramEncounterCancellation);
25
100
  }
26
101
 
27
102
  static getProgramsForSubjectType(allPrograms, subjectType, formMappings) {
28
103
  if (_lodash.default.isNil(subjectType)) return allPrograms;
29
104
 
30
- const programFormMappingsForSubjectType = _lodash.default.filter(formMappings, formMapping => formMapping.subjectTypeUUID === subjectType.uuid && formMapping.formType === _openchsModels.Form.formTypes.ProgramEnrolment);
105
+ const programFormMappingsForSubjectType = _lodash.default.filter(formMappings, formMapping => formMapping.subjectTypeUUID === subjectType.uuid && formMapping.formType === _Form.default.formTypes.ProgramEnrolment);
31
106
 
32
107
  return _lodash.default.intersectionWith(allPrograms, programFormMappingsForSubjectType, (p, fm) => p.uuid === fm.programUUID);
33
108
  }
package/dist/task/Task.js CHANGED
@@ -230,7 +230,7 @@ _defineProperty(Task, "schema", {
230
230
  },
231
231
  metadata: {
232
232
  type: "list",
233
- objectType: "Observation"
233
+ objectType: "EmbeddedObservation"
234
234
  },
235
235
  subject: {
236
236
  type: 'Individual',
@@ -238,7 +238,7 @@ _defineProperty(Task, "schema", {
238
238
  },
239
239
  observations: {
240
240
  type: "list",
241
- objectType: "Observation"
241
+ objectType: "EmbeddedObservation"
242
242
  },
243
243
  voided: {
244
244
  type: 'bool',
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "openchs-models",
3
3
  "description": "OpenCHS data model to be used by front end clients",
4
- "version": "1.31.24",
4
+ "version": "1.31.26",
5
5
  "private": false,
6
6
  "repository": {
7
7
  "type": "git",
@@ -1,73 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _ReferenceEntity = _interopRequireDefault(require("./ReferenceEntity"));
9
-
10
- var _General = _interopRequireDefault(require("./utility/General"));
11
-
12
- var _EncounterType = _interopRequireDefault(require("./EncounterType"));
13
-
14
- var _VisitScheduleInterval = _interopRequireDefault(require("./VisitScheduleInterval"));
15
-
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
18
- 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
-
20
- class VisitScheduleConfig extends _ReferenceEntity.default {
21
- constructor(that = null) {
22
- super(that);
23
- }
24
-
25
- get name() {
26
- return this.that.name;
27
- }
28
-
29
- set name(x) {
30
- this.that.name = x;
31
- }
32
-
33
- get encounterType() {
34
- return this.toEntity("encounterType", _EncounterType.default);
35
- }
36
-
37
- set encounterType(x) {
38
- this.that.encounterType = this.fromObject(x);
39
- }
40
-
41
- get interval() {
42
- return this.toEntity("interval", _VisitScheduleInterval.default);
43
- }
44
-
45
- set interval(x) {
46
- this.that.interval = this.fromObject(x);
47
- }
48
-
49
- static fromResource(resource, entityService) {
50
- const visitScheduleConfig = _General.default.assignFields(resource, new VisitScheduleConfig(), ["uuid", "name"]);
51
-
52
- visitScheduleConfig.encounterType = entityService.findByKey("name", resource.encounterType, _EncounterType.default.schema.name);
53
- visitScheduleConfig.interval = _VisitScheduleInterval.default.fromResource(resource.interval, entityService);
54
- return visitScheduleConfig;
55
- }
56
-
57
- clone() {
58
- return super.clone(new VisitScheduleConfig());
59
- }
60
-
61
- }
62
-
63
- _defineProperty(VisitScheduleConfig, "schema", {
64
- name: "VisitScheduleConfig",
65
- properties: {
66
- name: "string",
67
- encounterType: "EncounterType",
68
- interval: "VisitScheduleInterval"
69
- }
70
- });
71
-
72
- var _default = VisitScheduleConfig;
73
- exports.default = _default;
@@ -1,71 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _ReferenceEntity = _interopRequireDefault(require("./ReferenceEntity"));
9
-
10
- var _StringKeyNumericValue = _interopRequireDefault(require("./application/StringKeyNumericValue"));
11
-
12
- var _General = _interopRequireDefault(require("./utility/General"));
13
-
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
- 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
-
18
- class VisitScheduleInterval extends _ReferenceEntity.default {
19
- constructor(that = null) {
20
- super(that);
21
- }
22
-
23
- get from() {
24
- return this.that.from;
25
- }
26
-
27
- set from(x) {
28
- this.that.from = x;
29
- }
30
-
31
- get min() {
32
- return this.toEntity("min", _StringKeyNumericValue.default);
33
- }
34
-
35
- set min(x) {
36
- this.that.min = this.fromObject(x);
37
- }
38
-
39
- get max() {
40
- return this.toEntity("max", _StringKeyNumericValue.default);
41
- }
42
-
43
- set max(x) {
44
- this.that.max = this.fromObject(x);
45
- }
46
-
47
- static fromResource(resource) {
48
- const visitScheduleInterval = _General.default.assignFields(resource, new VisitScheduleInterval(), ["uuid", "from"]);
49
-
50
- visitScheduleInterval.min = _StringKeyNumericValue.default.fromResource(resource.min.unit, resource.min.value);
51
- visitScheduleInterval.max = _StringKeyNumericValue.default.fromResource(resource.max.unit, resource.max.value);
52
- return visitScheduleInterval;
53
- }
54
-
55
- clone() {
56
- return super.clone(new VisitScheduleInterval());
57
- }
58
-
59
- }
60
-
61
- _defineProperty(VisitScheduleInterval, "schema", {
62
- name: "VisitScheduleInterval",
63
- properties: {
64
- from: "string",
65
- min: "StringKeyNumericValue",
66
- max: "StringKeyNumericValue"
67
- }
68
- });
69
-
70
- var _default = VisitScheduleInterval;
71
- exports.default = _default;