openchs-models 1.31.58 → 1.31.60

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.
@@ -412,6 +412,19 @@ class AbstractEncounter extends _BaseEntity.default {
412
412
  this.that.latestEntityApprovalStatus = this.fromObject(entityApprovalStatus);
413
413
  }
414
414
 
415
+ updateAudit(userInfo, isNew, isGettingFilled) {
416
+ (0, _AuditUtil.updateAuditFields)(this, userInfo, isNew);
417
+
418
+ if (_lodash.default.isNil(this.filledByUUID) && isGettingFilled) {
419
+ this.filledByUUID = userInfo.userUUID;
420
+ this.filledBy = userInfo.name;
421
+ }
422
+ }
423
+
424
+ isFilled() {
425
+ return !_lodash.default.isNil(this.encounterDateTime);
426
+ }
427
+
415
428
  }
416
429
 
417
430
  _defineProperty(AbstractEncounter, "fieldKeys", {
@@ -261,7 +261,7 @@ _defineProperty(AddressLevel, "schema", {
261
261
  },
262
262
  locationProperties: {
263
263
  type: "list",
264
- objectType: "EmbeddedObservation"
264
+ objectType: "Observation"
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: "EmbeddedObservation"
365
+ objectType: "Observation"
366
366
  },
367
367
  checklist: "Checklist",
368
368
  approvalStatuses: {
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _PersistedObject = _interopRequireDefault(require("./PersistedObject"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ 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; }
13
+
14
+ class ConfigFile extends _PersistedObject.default {
15
+ constructor(that = null) {
16
+ super(that);
17
+ }
18
+
19
+ get fileName() {
20
+ return this.that.fileName;
21
+ }
22
+
23
+ set fileName(x) {
24
+ this.that.fileName = x;
25
+ }
26
+
27
+ get contents() {
28
+ return this.that.contents;
29
+ }
30
+
31
+ set contents(x) {
32
+ this.that.contents = x;
33
+ }
34
+
35
+ static create(fileName, contents) {
36
+ const configFile = new ConfigFile();
37
+ configFile.fileName = fileName.toLowerCase();
38
+ configFile.contents = contents;
39
+ return configFile;
40
+ }
41
+
42
+ toString() {
43
+ return this.fileName;
44
+ }
45
+
46
+ }
47
+
48
+ _defineProperty(ConfigFile, "schema", {
49
+ name: "ConfigFile",
50
+ primaryKey: "fileName",
51
+ properties: {
52
+ fileName: "string",
53
+ contents: "string"
54
+ }
55
+ });
56
+
57
+ var _default = ConfigFile;
58
+ exports.default = _default;
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _PersistedObject = _interopRequireDefault(require("./PersistedObject"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ 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; }
13
+
14
+ class Decision extends _PersistedObject.default {
15
+ constructor(that = null) {
16
+ super(that);
17
+ }
18
+
19
+ get name() {
20
+ return this.that.name;
21
+ }
22
+
23
+ set name(x) {
24
+ this.that.name = x;
25
+ }
26
+
27
+ get value() {
28
+ return this.that.value;
29
+ }
30
+
31
+ set value(x) {
32
+ this.that.value = x;
33
+ }
34
+
35
+ get code() {
36
+ return this.that.code;
37
+ }
38
+
39
+ set code(x) {
40
+ this.that.code = x;
41
+ }
42
+
43
+ static newInstance(name, code, value) {
44
+ return {
45
+ name: name,
46
+ code: code,
47
+ value: value
48
+ };
49
+ }
50
+
51
+ }
52
+
53
+ _defineProperty(Decision, "schema", {
54
+ name: "Decision",
55
+ properties: {
56
+ name: "string",
57
+ code: "string",
58
+ value: "string"
59
+ }
60
+ });
61
+
62
+ var _default = Decision;
63
+ exports.default = _default;
package/dist/Encounter.js CHANGED
@@ -132,10 +132,10 @@ _defineProperty(Encounter, "schema", {
132
132
  individual: _SchemaNames.default.Individual,
133
133
  observations: {
134
134
  type: "list",
135
- objectType: "EmbeddedObservation"
135
+ objectType: "Observation"
136
136
  },
137
137
  encounterLocation: {
138
- type: _SchemaNames.default.EmbeddedPoint,
138
+ type: _SchemaNames.default.Point,
139
139
  optional: true
140
140
  },
141
141
  name: {
@@ -156,10 +156,10 @@ _defineProperty(Encounter, "schema", {
156
156
  },
157
157
  cancelObservations: {
158
158
  type: "list",
159
- objectType: "EmbeddedObservation"
159
+ objectType: "Observation"
160
160
  },
161
161
  cancelLocation: {
162
- type: _SchemaNames.default.EmbeddedPoint,
162
+ type: _SchemaNames.default.Point,
163
163
  optional: true
164
164
  },
165
165
  voided: {
@@ -33,6 +33,8 @@ var _EncounterType = _interopRequireDefault(require("./EncounterType"));
33
33
 
34
34
  var _Encounter = _interopRequireDefault(require("./Encounter"));
35
35
 
36
+ var _ProgramOutcome = _interopRequireDefault(require("./ProgramOutcome"));
37
+
36
38
  var _Form = _interopRequireDefault(require("./application/Form"));
37
39
 
38
40
  var _FormElementGroup = _interopRequireDefault(require("./application/FormElementGroup"));
@@ -246,6 +248,9 @@ const program = refDataNameTranslated(_Program.default, {
246
248
  res: "operationalProgram",
247
249
  syncWeight: 3
248
250
  });
251
+ const programOutcome = refDataNameTranslated(_ProgramOutcome.default, {
252
+ syncWeight: 3
253
+ });
249
254
  const gender = refDataNameTranslated(_Gender.default, {
250
255
  syncWeight: 1
251
256
  });
@@ -625,7 +630,7 @@ class EntityMetaData {
625
630
 
626
631
  //order is important. last entity in each (tx and ref) with be executed first. parent should be synced before the child.
627
632
  static model() {
628
- return [groupDashboard, approvalStatus, dashboardSectionCardMapping, dashboardSection, dashboardFilter, dashboard, reportCard, standardReportCardType, menuItem, locationHierarchy, video, checklistItemDetail, checklistDetail, rule, ruleDependency, individualRelationshipType, individualRelationGenderMapping, individualRelation, formMapping, formElement, formElementGroup, form, documentationItem, documentation, identifierSource, organisationConfig, platformTranslation, translation, locationMapping, addressLevel, taskStatus, taskType, encounterType, program, gender, groupRole, subjectType, conceptAnswer, concept, myGroups, groupPrivileges, groups, privilege, resetSync, subjectMigration, userSubjectAssignment, task, taskUnAssigment, subjectProgramEligibility, news, videoTelemetric, groupSubject, comment, commentThread, entityApprovalStatus, subjectEntityApprovalStatus, encounterEntityApprovalStatus, programEncounterEntityApprovalStatus, programEnrolmentEntityApprovalStatus, checklistItemEntityApprovalStatus, individualRelationship, checklistItem, checklist, encounter, identifierAssignment, programEncounter, programEnrolment, individual, extension, userInfo, ruleFailureTelemetry, syncTelemetry];
633
+ return [groupDashboard, approvalStatus, dashboardSectionCardMapping, dashboardSection, dashboardFilter, dashboard, reportCard, standardReportCardType, menuItem, locationHierarchy, video, checklistItemDetail, checklistDetail, rule, ruleDependency, individualRelationshipType, individualRelationGenderMapping, individualRelation, formMapping, formElement, formElementGroup, form, documentationItem, documentation, identifierSource, organisationConfig, platformTranslation, translation, locationMapping, addressLevel, taskStatus, taskType, encounterType, program, programOutcome, gender, groupRole, subjectType, conceptAnswer, concept, myGroups, groupPrivileges, groups, privilege, resetSync, subjectMigration, userSubjectAssignment, task, taskUnAssigment, subjectProgramEligibility, news, videoTelemetric, groupSubject, comment, commentThread, entityApprovalStatus, subjectEntityApprovalStatus, encounterEntityApprovalStatus, programEncounterEntityApprovalStatus, programEnrolmentEntityApprovalStatus, checklistItemEntityApprovalStatus, individualRelationship, checklistItem, checklist, encounter, identifierAssignment, programEncounter, programEnrolment, individual, extension, userInfo, ruleFailureTelemetry, syncTelemetry];
629
634
  }
630
635
 
631
636
  static entitiesLoadedFromServer() {
package/dist/Family.js CHANGED
@@ -226,7 +226,7 @@ _defineProperty(Family, "schema", {
226
226
  },
227
227
  observations: {
228
228
  type: "list",
229
- objectType: "EmbeddedObservation"
229
+ objectType: "Observation"
230
230
  }
231
231
  }
232
232
  });
@@ -32,14 +32,6 @@ class GroupDashboard extends _BaseEntity.default {
32
32
  this.that.primaryDashboard = x;
33
33
  }
34
34
 
35
- get secondaryDashboard() {
36
- return this.that.secondaryDashboard;
37
- }
38
-
39
- set secondaryDashboard(x) {
40
- this.that.secondaryDashboard = x;
41
- }
42
-
43
35
  get group() {
44
36
  return this.toEntity("group", _Groups.default);
45
37
  }
@@ -57,7 +49,7 @@ class GroupDashboard extends _BaseEntity.default {
57
49
  }
58
50
 
59
51
  static fromResource(resource, entityService) {
60
- const groupDashboard = _General.default.assignFields(resource, new GroupDashboard(), ["uuid", "primaryDashboard", "secondaryDashboard", "voided"]);
52
+ const groupDashboard = _General.default.assignFields(resource, new GroupDashboard(), ["uuid", "primaryDashboard", "voided"]);
61
53
 
62
54
  groupDashboard.group = entityService.findByKey("uuid", _ResourceUtil.default.getUUIDFor(resource, "groupUUID"), _Groups.default.schema.name);
63
55
  groupDashboard.dashboard = entityService.findByKey("uuid", _ResourceUtil.default.getUUIDFor(resource, "dashboardUUID"), _Dashboard.default.schema.name);
@@ -75,10 +67,6 @@ _defineProperty(GroupDashboard, "schema", {
75
67
  type: "bool",
76
68
  default: false
77
69
  },
78
- secondaryDashboard: {
79
- type: "bool",
80
- default: false
81
- },
82
70
  group: {
83
71
  type: "Groups",
84
72
  optional: true
@@ -891,18 +891,6 @@ class Individual extends _BaseEntity.default {
891
891
  return _lodash.default.filter(this.getEncounters(true), encounter => !encounter.encounterDateTime && _lodash.default.isNil(encounter.cancelDateTime));
892
892
  }
893
893
 
894
- everScheduledEncounters() {
895
- return _lodash.default.filter(this.getEncounters(true), encounter => !_lodash.default.isNil(encounter.earliestVisitDateTime) && _lodash.default.isNil(encounter.cancelDateTime));
896
- }
897
-
898
- scheduledEncountersOfType(encounterTypeName) {
899
- return this.scheduledEncounters().filter(scheduledEncounter => scheduledEncounter.encounterType.name === encounterTypeName);
900
- }
901
-
902
- everScheduledEncountersOfType(encounterTypeName) {
903
- return this.everScheduledEncounters().filter(scheduledEncounter => scheduledEncounter.encounterType.name === encounterTypeName);
904
- }
905
-
906
894
  findObservationInLastEncounter(conceptNameOrUuid, currentEncounter) {
907
895
  const lastEncounter = this.findLastEncounterOfType(currentEncounter, _lodash.default.get(currentEncounter, 'encounterType'));
908
896
  return lastEncounter ? lastEncounter.findObservation(conceptNameOrUuid) : null;
@@ -1066,6 +1054,10 @@ class Individual extends _BaseEntity.default {
1066
1054
  return _SchemaNames.default.Individual;
1067
1055
  }
1068
1056
 
1057
+ updateAudit(userInfo, isNew) {
1058
+ (0, _AuditUtil.updateAuditFields)(this, userInfo, isNew);
1059
+ }
1060
+
1069
1061
  }
1070
1062
 
1071
1063
  _defineProperty(Individual, "schema", {
@@ -1116,7 +1108,7 @@ _defineProperty(Individual, "schema", {
1116
1108
  },
1117
1109
  observations: {
1118
1110
  type: "list",
1119
- objectType: "EmbeddedObservation"
1111
+ objectType: "Observation"
1120
1112
  },
1121
1113
  relationships: {
1122
1114
  type: "list",
@@ -1127,7 +1119,7 @@ _defineProperty(Individual, "schema", {
1127
1119
  objectType: "GroupSubject"
1128
1120
  },
1129
1121
  registrationLocation: {
1130
- type: _SchemaNames.default.EmbeddedPoint,
1122
+ type: _SchemaNames.default.Point,
1131
1123
  optional: true
1132
1124
  },
1133
1125
  comments: {
@@ -261,8 +261,7 @@ class Observation extends _PersistedObject.default {
261
261
  }
262
262
 
263
263
  _defineProperty(Observation, "schema", {
264
- name: "EmbeddedObservation",
265
- embedded: true,
264
+ name: "Observation",
266
265
  properties: {
267
266
  concept: "Concept",
268
267
  valueJSON: "string"
@@ -194,7 +194,7 @@ _defineProperty(ProgramEncounter, "schema", {
194
194
  programEnrolment: _SchemaNames.default.ProgramEnrolment,
195
195
  observations: {
196
196
  type: "list",
197
- objectType: "EmbeddedObservation"
197
+ objectType: "Observation"
198
198
  },
199
199
  cancelDateTime: {
200
200
  type: "date",
@@ -202,14 +202,14 @@ _defineProperty(ProgramEncounter, "schema", {
202
202
  },
203
203
  cancelObservations: {
204
204
  type: "list",
205
- objectType: "EmbeddedObservation"
205
+ objectType: "Observation"
206
206
  },
207
207
  encounterLocation: {
208
- type: _SchemaNames.default.EmbeddedPoint,
208
+ type: _SchemaNames.default.Point,
209
209
  optional: true
210
210
  },
211
211
  cancelLocation: {
212
- type: _SchemaNames.default.EmbeddedPoint,
212
+ type: _SchemaNames.default.Point,
213
213
  optional: true
214
214
  },
215
215
  voided: {
@@ -11,6 +11,8 @@ var _ResourceUtil = _interopRequireDefault(require("./utility/ResourceUtil"));
11
11
 
12
12
  var _Program = _interopRequireDefault(require("./Program"));
13
13
 
14
+ var _ProgramOutcome = _interopRequireDefault(require("./ProgramOutcome"));
15
+
14
16
  var _ProgramEncounter = _interopRequireDefault(require("./ProgramEncounter"));
15
17
 
16
18
  var _BaseEntity = _interopRequireDefault(require("./BaseEntity"));
@@ -96,6 +98,14 @@ class ProgramEnrolment extends _BaseEntity.default {
96
98
  this.that.programExitObservations = this.fromEntityList(x);
97
99
  }
98
100
 
101
+ get programOutcome() {
102
+ return this.toEntity("programOutcome", _ProgramOutcome.default);
103
+ }
104
+
105
+ set programOutcome(x) {
106
+ this.that.programOutcome = this.fromObject(x);
107
+ }
108
+
99
109
  get encounters() {
100
110
  return this.toEntityList("encounters", _ProgramEncounter.default);
101
111
  }
@@ -207,6 +217,7 @@ class ProgramEnrolment extends _BaseEntity.default {
207
217
  resource["programUUID"] = this.program.uuid;
208
218
  resource.enrolmentDateTime = _General.default.isoFormat(this.enrolmentDateTime);
209
219
  resource.programExitDateTime = _General.default.isoFormat(this.programExitDateTime);
220
+ resource["programOutcomeUUID"] = _lodash.default.isNil(this.programOutcome) ? null : this.programOutcome.uuid;
210
221
  resource["individualUUID"] = this.individual.uuid;
211
222
  if (!_lodash.default.isNil(this.checklist)) resource["checklistUUID"] = this.checklist.uuid;
212
223
  resource["observations"] = [];
@@ -231,12 +242,20 @@ class ProgramEnrolment extends _BaseEntity.default {
231
242
 
232
243
  static fromResource(resource, entityService) {
233
244
  const program = entityService.findByKey("uuid", _ResourceUtil.default.getUUIDFor(resource, "programUUID"), _Program.default.schema.name);
245
+
246
+ const programOutcomeUUID = _ResourceUtil.default.getUUIDFor(resource, "programOutcomeUUID");
247
+
234
248
  const individual = entityService.findByKey("uuid", _ResourceUtil.default.getUUIDFor(resource, "individualUUID"), _Individual.default.schema.name);
235
249
 
236
250
  const programEnrolment = _General.default.assignFields(resource, new ProgramEnrolment(), ["uuid", "voided"], ["enrolmentDateTime", "programExitDateTime"], ["observations", "programExitObservations"], entityService);
237
251
 
238
252
  programEnrolment.program = program;
239
253
  programEnrolment.individual = individual;
254
+
255
+ if (!_lodash.default.isNil(programOutcomeUUID)) {
256
+ programEnrolment.programOutcome = entityService.findByKey("uuid", programOutcomeUUID, _ProgramOutcome.default.schema.name);
257
+ }
258
+
240
259
  if (!_lodash.default.isNil(resource.enrolmentLocation)) programEnrolment.enrolmentLocation = _Point.default.fromResource(resource.enrolmentLocation);
241
260
  if (!_lodash.default.isNil(resource.exitLocation)) programEnrolment.exitLocation = _Point.default.fromResource(resource.exitLocation);
242
261
  (0, _AuditUtil.mapAuditFields)(programEnrolment, resource);
@@ -271,6 +290,7 @@ class ProgramEnrolment extends _BaseEntity.default {
271
290
  programEnrolment.program = _lodash.default.isNil(this.program) ? null : this.program.clone();
272
291
  programEnrolment.enrolmentDateTime = this.enrolmentDateTime;
273
292
  programEnrolment.programExitDateTime = this.programExitDateTime;
293
+ programEnrolment.programOutcome = _lodash.default.isNil(this.programOutcome) ? null : this.programOutcome.clone();
274
294
  programEnrolment.individual = this.individual;
275
295
  programEnrolment.observations = _ObservationsHolder.default.clone(this.observations);
276
296
  programEnrolment.programExitObservations = _ObservationsHolder.default.clone(this.programExitObservations);
@@ -634,6 +654,10 @@ class ProgramEnrolment extends _BaseEntity.default {
634
654
  observations: this.observations,
635
655
  programExitDateTime: this.programExitDateTime,
636
656
  programExitObservations: this.programExitObservations,
657
+ programOutcome: {
658
+ type: "ProgramOutcome",
659
+ optional: true
660
+ },
637
661
  encounters: this.encounters,
638
662
  checklists: this.checklists,
639
663
  individualUUID: this.individual.uuid,
@@ -646,6 +670,10 @@ class ProgramEnrolment extends _BaseEntity.default {
646
670
  return _SchemaNames.default.ProgramEnrolment;
647
671
  }
648
672
 
673
+ updateAudit(userInfo, isNew) {
674
+ (0, _AuditUtil.updateAuditFields)(this, userInfo, isNew);
675
+ }
676
+
649
677
  }
650
678
 
651
679
  _defineProperty(ProgramEnrolment, "schema", {
@@ -657,7 +685,7 @@ _defineProperty(ProgramEnrolment, "schema", {
657
685
  enrolmentDateTime: "date",
658
686
  observations: {
659
687
  type: "list",
660
- objectType: "EmbeddedObservation"
688
+ objectType: "Observation"
661
689
  },
662
690
  programExitDateTime: {
663
691
  type: "date",
@@ -665,7 +693,11 @@ _defineProperty(ProgramEnrolment, "schema", {
665
693
  },
666
694
  programExitObservations: {
667
695
  type: "list",
668
- objectType: "EmbeddedObservation"
696
+ objectType: "Observation"
697
+ },
698
+ programOutcome: {
699
+ type: "ProgramOutcome",
700
+ optional: true
669
701
  },
670
702
  encounters: {
671
703
  type: "list",
@@ -677,11 +709,11 @@ _defineProperty(ProgramEnrolment, "schema", {
677
709
  },
678
710
  individual: "Individual",
679
711
  enrolmentLocation: {
680
- type: _SchemaNames.default.EmbeddedPoint,
712
+ type: _SchemaNames.default.Point,
681
713
  optional: true
682
714
  },
683
715
  exitLocation: {
684
- type: _SchemaNames.default.EmbeddedPoint,
716
+ type: _SchemaNames.default.Point,
685
717
  optional: true
686
718
  },
687
719
  voided: {
@@ -0,0 +1,39 @@
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
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ 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; }
13
+
14
+ class ProgramOutcome extends _ReferenceEntity.default {
15
+ constructor(that = null) {
16
+ super(that);
17
+ }
18
+
19
+ get name() {
20
+ return this.that.name;
21
+ }
22
+
23
+ set name(x) {
24
+ this.that.name = x;
25
+ }
26
+
27
+ }
28
+
29
+ _defineProperty(ProgramOutcome, "schema", {
30
+ name: "ProgramOutcome",
31
+ primaryKey: "uuid",
32
+ properties: {
33
+ uuid: "string",
34
+ name: "string"
35
+ }
36
+ });
37
+
38
+ var _default = ProgramOutcome;
39
+ exports.default = _default;
@@ -9,6 +9,8 @@ var _ReferenceEntity = _interopRequireDefault(require("./ReferenceEntity"));
9
9
 
10
10
  var _General = _interopRequireDefault(require("./utility/General"));
11
11
 
12
+ var _lodash = _interopRequireDefault(require("lodash"));
13
+
12
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
15
 
14
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; }
@@ -31,7 +33,7 @@ class RuleDependency extends _ReferenceEntity.default {
31
33
  }
32
34
 
33
35
  static getCode(ruleDependency) {
34
- return _.isEmpty(ruleDependency) ? RuleDependency.noop : ruleDependency.code;
36
+ return _lodash.default.isEmpty(ruleDependency) ? RuleDependency.noop : ruleDependency.code;
35
37
  }
36
38
 
37
39
  clone() {
package/dist/Schema.js CHANGED
@@ -3,7 +3,6 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.createTransactionDataMapForEmbeddedFields = createTransactionDataMapForEmbeddedFields;
7
6
  exports.default = void 0;
8
7
 
9
8
  var _Settings = _interopRequireDefault(require("./Settings"));
@@ -20,6 +19,8 @@ var _Family = _interopRequireDefault(require("./Family"));
20
19
 
21
20
  var _AddressLevel = _interopRequireWildcard(require("./AddressLevel"));
22
21
 
22
+ var _UserDefinedIndividualProperty = _interopRequireDefault(require("./UserDefinedIndividualProperty"));
23
+
23
24
  var _Gender = _interopRequireDefault(require("./Gender"));
24
25
 
25
26
  var _EntitySyncStatus = _interopRequireDefault(require("./EntitySyncStatus"));
@@ -36,6 +37,8 @@ var _Encounter = _interopRequireDefault(require("./Encounter"));
36
37
 
37
38
  var _EncounterType = _interopRequireDefault(require("./EncounterType"));
38
39
 
40
+ var _ProgramOutcome = _interopRequireDefault(require("./ProgramOutcome"));
41
+
39
42
  var _FormElement = _interopRequireDefault(require("./application/FormElement"));
40
43
 
41
44
  var _FormElementGroup = _interopRequireDefault(require("./application/FormElementGroup"));
@@ -50,6 +53,8 @@ var _EntityQueue = _interopRequireDefault(require("./EntityQueue"));
50
53
 
51
54
  var _FormMapping = _interopRequireDefault(require("./application/FormMapping"));
52
55
 
56
+ var _ConfigFile = _interopRequireDefault(require("./ConfigFile"));
57
+
53
58
  var _ChecklistItemStatus = _interopRequireDefault(require("./ChecklistItemStatus"));
54
59
 
55
60
  var _ChecklistItemDetail = _interopRequireDefault(require("./ChecklistItemDetail"));
@@ -192,7 +197,7 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj;
192
197
 
193
198
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
194
199
 
195
- const entities = [_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];
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, _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];
196
201
 
197
202
  function migrateObjectTypeFieldToEmbedded(newDB, oldDB, schemaName, field, creatorFn) {
198
203
  console.log(`schema: ${schemaName}, field: ${field}`);
@@ -272,100 +277,7 @@ function migrateEmbeddedObjects(oldDB, newDB) {
272
277
  newDB.deleteModel("StringKeyNumericValue");
273
278
  }
274
279
 
275
- function flush(db) {
276
- db.commitTransaction();
277
- db.beginTransaction();
278
- }
279
-
280
- function shouldFlush(numberOfRecords) {
281
- const batchSize = 100;
282
- return numberOfRecords % batchSize === batchSize - 1;
283
- }
284
-
285
- function createTransactionDataMapForEmbeddedFields() {
286
- const map = new Map();
287
-
288
- _MetaDataService.default.forEachPointField((fieldName, schemaName) => {
289
- if (map.has(schemaName)) {
290
- map.get(schemaName).push({
291
- fieldName,
292
- fieldType: "Point"
293
- });
294
- } else {
295
- map.set(schemaName, [{
296
- fieldName,
297
- fieldType: "Point"
298
- }]);
299
- }
300
- });
301
-
302
- _MetaDataService.default.forEachObservationField((fieldName, schemaName) => {
303
- if (map.has(schemaName)) {
304
- map.get(schemaName).push({
305
- fieldName,
306
- fieldType: "Obs"
307
- });
308
- } else {
309
- map.set(schemaName, [{
310
- fieldName,
311
- fieldType: "Obs"
312
- }]);
313
- }
314
- });
315
-
316
- return map;
317
- }
318
-
319
- function migrateAllEmbeddedForTxnData(oldDB, newDB) {
320
- const startTime = new Date();
321
- flush(newDB);
322
- const map = createTransactionDataMapForEmbeddedFields();
323
- let recordCounter = 0;
324
- const conceptMap = new Map();
325
- map.forEach((fields, schemaName) => {
326
- console.log(`schema: ${schemaName}, fields: ${fields.length}`);
327
- newDB.objects(schemaName).forEach(newDbParentEntity => {
328
- if (shouldFlush(recordCounter)) {
329
- flush(newDB);
330
- }
331
-
332
- fields.forEach(field => {
333
- const oldEntity = oldDB.objects(schemaName).filtered(`uuid = "${newDbParentEntity.uuid}"`)[0];
334
- const oldValue = oldEntity[field.fieldName];
335
-
336
- if (!_lodash.default.isNil(oldValue)) {
337
- if (field.fieldType === "Point") newDbParentEntity[field.fieldName] = {
338
- x: oldValue.x,
339
- y: oldValue.y
340
- };else {
341
- const newObsList = [];
342
- oldValue.forEach(oldItemValue => {
343
- let newConcept = conceptMap.get(oldItemValue.concept.uuid);
344
-
345
- if (_lodash.default.isNil(newConcept)) {
346
- newConcept = newDB.objects("Concept").filtered(`uuid = "${oldItemValue.concept.uuid}"`)[0];
347
- conceptMap.set(oldItemValue.concept.uuid, newConcept);
348
- }
349
-
350
- newObsList.push({
351
- concept: newConcept,
352
- valueJSON: oldItemValue.valueJSON
353
- });
354
- });
355
- newDbParentEntity[field.fieldName] = newObsList;
356
- }
357
- }
358
- });
359
- recordCounter++;
360
- });
361
- });
362
- flush(newDB);
363
- newDB.deleteModel("Point");
364
- newDB.deleteModel("Observation");
365
- const endTime = new Date();
366
- const diff = (0, _moment.default)(endTime).diff(startTime, "seconds", true);
367
- console.log("Total Time Taken", diff, "seconds");
368
- }
280
+ const VersionWithEmbeddedMigrationProblem = 185;
369
281
 
370
282
  function createRealmConfig() {
371
283
  return {
@@ -375,9 +287,17 @@ function createRealmConfig() {
375
287
  return doCompact;
376
288
  },
377
289
  //order is important, should be arranged according to the dependency
378
- schemaVersion: 188,
290
+ schemaVersion: 186,
379
291
  onMigration: function (oldDB, newDB) {
380
292
  console.log("[AvniModels.Schema]", `Running migration with old schema version: ${oldDB.schemaVersion} and new schema version: ${newDB.schemaVersion}`);
293
+ if (oldDB.schemaVersion === VersionWithEmbeddedMigrationProblem) throw new Error(`Update from schema version ${VersionWithEmbeddedMigrationProblem} is not allowed. Please uninstall and install app.`);
294
+
295
+ if (oldDB.schemaVersion < 10) {
296
+ const oldObjects = oldDB.objects("DecisionConfig");
297
+ oldObjects.forEach(decisionConfig => {
298
+ newDB.create(_ConfigFile.default.schema.name, _ConfigFile.default.create(decisionConfig.fileName, decisionConfig.decisionCode), true);
299
+ });
300
+ }
381
301
 
382
302
  if (oldDB.schemaVersion < 17) {
383
303
  const oldObjects = oldDB.objects("AddressLevel");
@@ -981,14 +901,7 @@ function createRealmConfig() {
981
901
  migrateEmbeddedObjects(oldDB, newDB);
982
902
  }
983
903
 
984
- if (oldDB.schemaVersion < 185) {
985
- migrateAllEmbeddedForTxnData(oldDB, newDB);
986
- }
987
-
988
- if (oldDB.schemaVersion < 186) {// newDB.deleteModel("UserDefinedIndividualProperty");
989
- // newDB.deleteModel("ConfigFile");
990
- // newDB.deleteModel("Decision");
991
- // newDB.deleteModel("ProgramOutcome");
904
+ if (oldDB.schemaVersion < VersionWithEmbeddedMigrationProblem) {// removed migration code. keeping the version number in case this number is required for any checks later
992
905
  }
993
906
  }
994
907
  };
@@ -91,7 +91,7 @@ _defineProperty(SchemaNames, "Concept", "Concept");
91
91
 
92
92
  _defineProperty(SchemaNames, "EntityApprovalStatus", "EntityApprovalStatus");
93
93
 
94
- _defineProperty(SchemaNames, "EmbeddedPoint", "EmbeddedPoint");
94
+ _defineProperty(SchemaNames, "Point", "Point");
95
95
 
96
96
  var _default = SchemaNames;
97
97
  exports.default = _default;
@@ -13,6 +13,8 @@ var _TaskType = _interopRequireDefault(require("./task/TaskType"));
13
13
 
14
14
  var _ApprovalStatus = _interopRequireDefault(require("./ApprovalStatus"));
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; }
@@ -71,7 +73,7 @@ class StandardReportCardType extends _BaseEntity.default {
71
73
  }
72
74
 
73
75
  isStandardCard() {
74
- return _.includes([...this.approvalTypes(), StandardReportCardType.type.Comments, StandardReportCardType.type.CallTasks, StandardReportCardType.type.OpenSubjectTasks], this.name);
76
+ return _lodash.default.includes([...this.approvalTypes(), StandardReportCardType.type.Comments, StandardReportCardType.type.CallTasks, StandardReportCardType.type.OpenSubjectTasks], this.name);
75
77
  }
76
78
 
77
79
  approvalTypes() {
@@ -83,7 +85,7 @@ class StandardReportCardType extends _BaseEntity.default {
83
85
  }
84
86
 
85
87
  isApprovalType() {
86
- return _.includes(this.approvalTypes(), this.name);
88
+ return _lodash.default.includes(this.approvalTypes(), this.name);
87
89
  }
88
90
 
89
91
  isCommentType() {
@@ -91,7 +93,7 @@ class StandardReportCardType extends _BaseEntity.default {
91
93
  }
92
94
 
93
95
  isTaskType() {
94
- return _.includes([StandardReportCardType.type.CallTasks, StandardReportCardType.type.OpenSubjectTasks], this.name);
96
+ return _lodash.default.includes([StandardReportCardType.type.CallTasks, StandardReportCardType.type.OpenSubjectTasks], this.name);
95
97
  }
96
98
 
97
99
  isChecklistType() {
@@ -109,7 +111,7 @@ class StandardReportCardType extends _BaseEntity.default {
109
111
  }
110
112
 
111
113
  isDefaultType() {
112
- return _.includes(this.defaultTypes(), this.name);
114
+ return _lodash.default.includes(this.defaultTypes(), this.name);
113
115
  }
114
116
 
115
117
  getApprovalStatusForType() {
@@ -15,6 +15,8 @@ var _ResourceUtil = _interopRequireDefault(require("./utility/ResourceUtil"));
15
15
 
16
16
  var _SchemaNames = _interopRequireDefault(require("./SchemaNames"));
17
17
 
18
+ var _lodash = _interopRequireDefault(require("lodash"));
19
+
18
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
21
 
20
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; }
@@ -176,14 +178,6 @@ class SubjectType extends _ReferenceEntity.default {
176
178
  this.that.directlyAssignable = x;
177
179
  }
178
180
 
179
- get settings() {
180
- return this.that.settings;
181
- }
182
-
183
- set settings(x) {
184
- this.that.settings = x;
185
- }
186
-
187
181
  static create(name, group = false, household = false, type) {
188
182
  let subjectType = new SubjectType();
189
183
  subjectType.uuid = _General.default.randomUUID();
@@ -218,7 +212,6 @@ class SubjectType extends _ReferenceEntity.default {
218
212
  subjectType.syncRegistrationConcept1 = _ResourceUtil.default.getUUIDFor(operationalSubjectType, 'syncRegistrationConcept1');
219
213
  subjectType.syncRegistrationConcept2 = _ResourceUtil.default.getUUIDFor(operationalSubjectType, 'syncRegistrationConcept2');
220
214
  subjectType.nameHelpText = _ResourceUtil.default.getUUIDFor(operationalSubjectType, 'nameHelpText');
221
- subjectType.settings = !_.isNil(operationalSubjectType.settings) ? JSON.stringify(operationalSubjectType.settings) : '{}';
222
215
  return subjectType;
223
216
  }
224
217
 
@@ -246,7 +239,6 @@ class SubjectType extends _ReferenceEntity.default {
246
239
  cloned.syncRegistrationConcept1 = this.syncRegistrationConcept1;
247
240
  cloned.syncRegistrationConcept2 = this.syncRegistrationConcept2;
248
241
  cloned.nameHelpText = this.nameHelpText;
249
- cloned.settings = this.settings;
250
242
  return cloned;
251
243
  }
252
244
 
@@ -271,15 +263,7 @@ class SubjectType extends _ReferenceEntity.default {
271
263
  }
272
264
 
273
265
  isIconSetup() {
274
- return !_.isNil(this.iconFileS3Key);
275
- }
276
-
277
- getSettings() {
278
- return JSON.parse(this.settings);
279
- }
280
-
281
- getSetting(settingName) {
282
- return this.getSettings()[settingName];
266
+ return !_lodash.default.isNil(this.iconFileS3Key);
283
267
  }
284
268
 
285
269
  }
@@ -362,10 +346,6 @@ _defineProperty(SubjectType, "schema", {
362
346
  nameHelpText: {
363
347
  type: "string",
364
348
  optional: true
365
- },
366
- settings: {
367
- type: "string",
368
- default: '{}'
369
349
  }
370
350
  }
371
351
  });
@@ -377,10 +357,5 @@ _defineProperty(SubjectType, "types", {
377
357
  Household: 'Household'
378
358
  });
379
359
 
380
- _defineProperty(SubjectType, "settingKeys", {
381
- displayRegistrationDetails: 'displayRegistrationDetails',
382
- displayPlannedEncounters: 'displayPlannedEncounters'
383
- });
384
-
385
360
  var _default = SubjectType;
386
361
  exports.default = _default;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _PersistedObject = _interopRequireDefault(require("./PersistedObject"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ 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; }
13
+
14
+ class UserDefinedIndividualProperty extends _PersistedObject.default {
15
+ constructor(that = null) {
16
+ super(that);
17
+ }
18
+
19
+ get name() {
20
+ return this.that.name;
21
+ }
22
+
23
+ set name(x) {
24
+ this.that.name = x;
25
+ }
26
+
27
+ get value() {
28
+ return this.that.value;
29
+ }
30
+
31
+ set value(x) {
32
+ this.that.value = x;
33
+ }
34
+
35
+ get unit() {
36
+ return this.that.unit;
37
+ }
38
+
39
+ set unit(x) {
40
+ this.that.unit = x;
41
+ }
42
+
43
+ }
44
+
45
+ _defineProperty(UserDefinedIndividualProperty, "schema", {
46
+ name: "UserDefinedIndividualProperty",
47
+ properties: {
48
+ name: "string",
49
+ value: "string",
50
+ unit: {
51
+ type: "string",
52
+ optional: true
53
+ }
54
+ }
55
+ });
56
+
57
+ var _default = UserDefinedIndividualProperty;
58
+ exports.default = _default;
@@ -227,32 +227,6 @@ class Form extends _BaseEntity.default {
227
227
 
228
228
  const extraObs = observations.filter(obs => _lodash.default.isNil(orderedObservations.find(oobs => oobs.concept.uuid === obs.concept.uuid)));
229
229
  return orderedObservations.concat(extraObs);
230
- } //TODO add tests
231
-
232
-
233
- orderObservationsPerFEG(observations) {
234
- const orderedObservations = [];
235
-
236
- const formElementOrdering = _lodash.default.sortBy(this.formElementGroups, feg => feg.displayOrder).map(feg => {
237
- let fegOrderedObservations = [];
238
- const returnValue = {};
239
- returnValue.uuid = feg.uuid;
240
- returnValue.feg = feg;
241
- returnValue.sortedObservationsArray = fegOrderedObservations;
242
- this.orderObservationsWithinAFEG(feg.getFormElements(), observations, fegOrderedObservations);
243
- orderedObservations.concat(fegOrderedObservations);
244
- return returnValue;
245
- });
246
-
247
- return formElementOrdering;
248
- }
249
-
250
- orderObservationsWithinAFEG(formElements, observations, orderedObservations) {
251
- _lodash.default.sortBy(formElements, fe => fe.displayOrder).forEach(formElement => this.addSortedObservations(formElement, observations, orderedObservations));
252
-
253
- const extraObs = observations.filter(obs => _lodash.default.isNil(orderedObservations.find(oobs => oobs.concept.uuid === obs.concept.uuid)));
254
- orderedObservations.concat(extraObs);
255
- return extraObs;
256
230
  }
257
231
 
258
232
  sectionWiseOrderedObservations(observations) {
@@ -31,8 +31,6 @@ var _BaseEntity = _interopRequireDefault(require("../BaseEntity"));
31
31
 
32
32
  var _SchemaNames = _interopRequireDefault(require("../SchemaNames"));
33
33
 
34
- var _RepeatableQuestionGroup = _interopRequireDefault(require("../observation/RepeatableQuestionGroup"));
35
-
36
34
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
37
35
 
38
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; }
@@ -151,18 +149,8 @@ class FormElement extends _BaseEntity.default {
151
149
  return formElement;
152
150
  }
153
151
 
154
- newFormElement() {
155
- return new FormElement();
156
- }
157
-
158
152
  getType() {
159
- if (this.concept.datatype === _Concept.default.dataType.Coded) {
160
- return this.type;
161
- } else if (this.concept.datatype === _Concept.default.dataType.QuestionGroup && this.repeatable) {
162
- return _RepeatableQuestionGroup.default.TypeName;
163
- } else {
164
- return this.concept.datatype;
165
- }
153
+ return this.concept.datatype === _Concept.default.dataType.Coded ? this.type : this.concept.datatype;
166
154
  }
167
155
 
168
156
  isMultiSelect() {
@@ -399,7 +387,7 @@ class FormElement extends _BaseEntity.default {
399
387
  }
400
388
 
401
389
  clone() {
402
- const formElement = this.newFormElement();
390
+ const formElement = new FormElement();
403
391
  formElement.uuid = this.uuid;
404
392
  formElement.name = this.name;
405
393
  formElement.displayOrder = this.displayOrder;
@@ -170,10 +170,10 @@ _defineProperty(DraftEncounter, "schema", {
170
170
  individual: "Individual",
171
171
  observations: {
172
172
  type: "list",
173
- objectType: "EmbeddedObservation"
173
+ objectType: "Observation"
174
174
  },
175
175
  encounterLocation: {
176
- type: _SchemaNames.default.EmbeddedPoint,
176
+ type: _SchemaNames.default.Point,
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: "EmbeddedObservation"
197
+ objectType: "Observation"
198
198
  },
199
199
  cancelLocation: {
200
- type: _SchemaNames.default.EmbeddedPoint,
200
+ type: _SchemaNames.default.Point,
201
201
  optional: true
202
202
  },
203
203
  voided: {
@@ -23,6 +23,8 @@ var _Point = _interopRequireDefault(require("../geo/Point"));
23
23
 
24
24
  var _SchemaNames = _interopRequireDefault(require("../SchemaNames"));
25
25
 
26
+ var _lodash = _interopRequireDefault(require("lodash"));
27
+
26
28
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
29
 
28
30
  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; }
@@ -150,7 +152,7 @@ class DraftSubject extends _BaseEntity.default {
150
152
  draftSubject.lowestAddressLevel = subject.lowestAddressLevel;
151
153
  draftSubject.observations = _ObservationsHolder.default.clone(subject.observations);
152
154
  draftSubject.registrationLocation = subject.registrationLocation;
153
- draftSubject.totalMembers = _.isEmpty(totalMembers) ? null : totalMembers;
155
+ draftSubject.totalMembers = _lodash.default.isEmpty(totalMembers) ? null : totalMembers;
154
156
  draftSubject.updatedOn = new Date();
155
157
  return draftSubject;
156
158
  }
@@ -165,10 +167,10 @@ class DraftSubject extends _BaseEntity.default {
165
167
  individual.dateOfBirth = this.dateOfBirth;
166
168
  individual.registrationDate = this.registrationDate;
167
169
  individual.dateOfBirthVerified = this.dateOfBirthVerified;
168
- individual.gender = _.isNil(this.gender) ? null : this.gender.clone();
169
- individual.lowestAddressLevel = _.isNil(this.lowestAddressLevel) ? null : _.assignIn({}, this.lowestAddressLevel);
170
+ individual.gender = _lodash.default.isNil(this.gender) ? null : this.gender.clone();
171
+ individual.lowestAddressLevel = _lodash.default.isNil(this.lowestAddressLevel) ? null : _lodash.default.assignIn({}, this.lowestAddressLevel);
170
172
  individual.observations = _ObservationsHolder.default.clone(this.observations);
171
- individual.registrationLocation = _.isNil(this.registrationLocation) ? null : this.registrationLocation.clone();
173
+ individual.registrationLocation = _lodash.default.isNil(this.registrationLocation) ? null : this.registrationLocation.clone();
172
174
  individual.voided = false;
173
175
  individual.encounters = [];
174
176
  individual.enrolments = [];
@@ -211,10 +213,10 @@ _defineProperty(DraftSubject, "schema", {
211
213
  lowestAddressLevel: "AddressLevel",
212
214
  observations: {
213
215
  type: "list",
214
- objectType: "EmbeddedObservation"
216
+ objectType: "Observation"
215
217
  },
216
218
  registrationLocation: {
217
- type: _SchemaNames.default.EmbeddedPoint,
219
+ type: _SchemaNames.default.Point,
218
220
  optional: true
219
221
  },
220
222
  updatedOn: "date",
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
 
8
8
  //https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error
9
- function SyncError(code, message) {
10
- let instance = new Error(message);
9
+ function SyncError(code, message, fileName, lineNumber) {
10
+ let instance = new Error(message, fileName, lineNumber);
11
11
  instance.errorCode = code;
12
12
  instance.errorText = message;
13
13
 
package/dist/geo/Point.js CHANGED
@@ -57,8 +57,7 @@ class Point extends _PersistedObject.default {
57
57
  }
58
58
 
59
59
  _defineProperty(Point, "schema", {
60
- name: "EmbeddedPoint",
61
- embedded: true,
60
+ name: "Point",
62
61
  properties: {
63
62
  x: "double",
64
63
  y: "double"
package/dist/index.js CHANGED
@@ -75,6 +75,18 @@ Object.defineProperty(exports, "ConceptAnswer", {
75
75
  return _ConceptAnswer.default;
76
76
  }
77
77
  });
78
+ Object.defineProperty(exports, "ConfigFile", {
79
+ enumerable: true,
80
+ get: function () {
81
+ return _ConfigFile.default;
82
+ }
83
+ });
84
+ Object.defineProperty(exports, "Decision", {
85
+ enumerable: true,
86
+ get: function () {
87
+ return _Decision.default;
88
+ }
89
+ });
78
90
  Object.defineProperty(exports, "Duration", {
79
91
  enumerable: true,
80
92
  get: function () {
@@ -285,6 +297,12 @@ Object.defineProperty(exports, "Program", {
285
297
  return _Program.default;
286
298
  }
287
299
  });
300
+ Object.defineProperty(exports, "ProgramOutcome", {
301
+ enumerable: true,
302
+ get: function () {
303
+ return _ProgramOutcome.default;
304
+ }
305
+ });
288
306
  Object.defineProperty(exports, "ReferenceEntity", {
289
307
  enumerable: true,
290
308
  get: function () {
@@ -339,6 +357,12 @@ Object.defineProperty(exports, "StringKeyNumericValue", {
339
357
  return _StringKeyNumericValue.default;
340
358
  }
341
359
  });
360
+ Object.defineProperty(exports, "UserDefinedIndividualProperty", {
361
+ enumerable: true,
362
+ get: function () {
363
+ return _UserDefinedIndividualProperty.default;
364
+ }
365
+ });
342
366
  Object.defineProperty(exports, "UserInfo", {
343
367
  enumerable: true,
344
368
  get: function () {
@@ -806,6 +830,10 @@ var _Concept = _interopRequireDefault(require("./Concept"));
806
830
 
807
831
  var _ConceptAnswer = _interopRequireDefault(require("./ConceptAnswer"));
808
832
 
833
+ var _ConfigFile = _interopRequireDefault(require("./ConfigFile"));
834
+
835
+ var _Decision = _interopRequireDefault(require("./Decision"));
836
+
809
837
  var _Duration = _interopRequireDefault(require("./Duration"));
810
838
 
811
839
  var _Encounter = _interopRequireDefault(require("./Encounter"));
@@ -874,6 +902,8 @@ var _ProgramEnrolment = _interopRequireDefault(require("./ProgramEnrolment"));
874
902
 
875
903
  var _Program = _interopRequireDefault(require("./Program"));
876
904
 
905
+ var _ProgramOutcome = _interopRequireDefault(require("./ProgramOutcome"));
906
+
877
907
  var _ReferenceEntity = _interopRequireDefault(require("./ReferenceEntity"));
878
908
 
879
909
  var _RuleDependency = _interopRequireDefault(require("./RuleDependency"));
@@ -892,6 +922,8 @@ var _StaticFormElementGroup = _interopRequireDefault(require("./application/Stat
892
922
 
893
923
  var _StringKeyNumericValue = _interopRequireDefault(require("./application/StringKeyNumericValue"));
894
924
 
925
+ var _UserDefinedIndividualProperty = _interopRequireDefault(require("./UserDefinedIndividualProperty"));
926
+
895
927
  var _UserInfo = _interopRequireDefault(require("./UserInfo"));
896
928
 
897
929
  var _ValidationResult = _interopRequireDefault(require("./application/ValidationResult"));
@@ -88,8 +88,6 @@ class RepeatableQuestionGroup {
88
88
 
89
89
  }
90
90
 
91
- _defineProperty(RepeatableQuestionGroup, "TypeName", "RepeatableQuestionGroup");
92
-
93
91
  _defineProperty(RepeatableQuestionGroup, "actions", {
94
92
  add: 'add',
95
93
  remove: 'remove'
@@ -221,7 +221,7 @@ _defineProperty(SubjectProgramEligibility, "schema", {
221
221
  },
222
222
  observations: {
223
223
  type: "list",
224
- objectType: "EmbeddedObservation"
224
+ objectType: "Observation"
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: "EmbeddedObservation"
210
+ objectType: "Observation"
211
211
  },
212
212
  voided: {
213
213
  type: "bool",
package/dist/task/Task.js CHANGED
@@ -230,7 +230,7 @@ _defineProperty(Task, "schema", {
230
230
  },
231
231
  metadata: {
232
232
  type: "list",
233
- objectType: "EmbeddedObservation"
233
+ objectType: "Observation"
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: "EmbeddedObservation"
241
+ objectType: "Observation"
242
242
  },
243
243
  voided: {
244
244
  type: 'bool',
@@ -3,10 +3,14 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.mapAuditFields = exports.AuditFields = void 0;
6
+ exports.updateAuditFields = updateAuditFields;
7
+ exports.mapAuditFields = mapAuditFields;
8
+ exports.AuditFields = void 0;
7
9
 
8
10
  var _ResourceUtil = _interopRequireDefault(require("./ResourceUtil"));
9
11
 
12
+ var _lodash = _interopRequireDefault(require("lodash"));
13
+
10
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
15
 
12
16
  const AuditFields = {
@@ -29,11 +33,23 @@ const AuditFields = {
29
33
  };
30
34
  exports.AuditFields = AuditFields;
31
35
 
32
- const mapAuditFields = function (txnEntity, txnResource) {
36
+ function updateAuditFields(entity, userInfo, isNew = false) {
37
+ // old entities may have createdByUUID as null if never synced after audit release
38
+ // isNew must be passed by callers to specify that it is indeed a create scenario
39
+ if (_lodash.default.isNil(entity.createdByUUID) && isNew) {
40
+ entity.createdByUUID = userInfo.userUUID;
41
+ entity.createdBy = userInfo.name;
42
+ }
43
+
44
+ if (_lodash.default.isNil(entity.lastModifiedByUUID)) {
45
+ entity.lastModifiedByUUID = userInfo.userUUID;
46
+ entity.lastModifiedBy = userInfo.name;
47
+ }
48
+ }
49
+
50
+ function mapAuditFields(txnEntity, txnResource) {
33
51
  txnEntity.createdBy = _ResourceUtil.default.getFieldValue(txnResource, "createdBy");
34
52
  txnEntity.createdByUUID = _ResourceUtil.default.getFieldValue(txnResource, "createdByUUID");
35
53
  txnEntity.lastModifiedBy = _ResourceUtil.default.getFieldValue(txnResource, "lastModifiedBy");
36
54
  txnEntity.lastModifiedByUUID = _ResourceUtil.default.getFieldValue(txnResource, "lastModifiedByUUID");
37
- };
38
-
39
- exports.mapAuditFields = mapAuditFields;
55
+ }
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.58",
4
+ "version": "1.31.60",
5
5
  "private": false,
6
6
  "repository": {
7
7
  "type": "git",