openchs-models 1.31.43 → 1.31.45

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", {
@@ -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() {
@@ -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", {
@@ -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", {
@@ -667,6 +695,10 @@ _defineProperty(ProgramEnrolment, "schema", {
667
695
  type: "list",
668
696
  objectType: "EmbeddedObservation"
669
697
  },
698
+ programOutcome: {
699
+ type: "ProgramOutcome",
700
+ optional: true
701
+ },
670
702
  encounters: {
671
703
  type: "list",
672
704
  objectType: _SchemaNames.default.ProgramEncounter
@@ -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;
package/dist/Schema.js CHANGED
@@ -38,6 +38,8 @@ var _Encounter = _interopRequireDefault(require("./Encounter"));
38
38
 
39
39
  var _EncounterType = _interopRequireDefault(require("./EncounterType"));
40
40
 
41
+ var _ProgramOutcome = _interopRequireDefault(require("./ProgramOutcome"));
42
+
41
43
  var _FormElement = _interopRequireDefault(require("./application/FormElement"));
42
44
 
43
45
  var _FormElementGroup = _interopRequireDefault(require("./application/FormElementGroup"));
@@ -196,7 +198,7 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj;
196
198
 
197
199
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
198
200
 
199
- 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, _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];
201
+ 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];
200
202
 
201
203
  function migrateObjectTypeFieldToEmbedded(newDB, oldDB, schemaName, field, creatorFn) {
202
204
  console.log(`schema: ${schemaName}, field: ${field}`);
@@ -373,6 +375,11 @@ function migrateAllEmbeddedForTxnData(oldDB, newDB) {
373
375
 
374
376
  function createRealmConfig() {
375
377
  return {
378
+ shouldCompact: function (totalBytes, usedBytes) {
379
+ const doCompact = totalBytes / usedBytes > 1.1;
380
+ console.log("Should compact", totalBytes, usedBytes, doCompact);
381
+ return doCompact;
382
+ },
376
383
  //order is important, should be arranged according to the dependency
377
384
  schemaVersion: 185,
378
385
  onMigration: function (oldDB, newDB) {
@@ -66,14 +66,6 @@ class Form extends _BaseEntity.default {
66
66
  this.that.decisionRule = x;
67
67
  }
68
68
 
69
- get editFormRule() {
70
- return this.that.editFormRule;
71
- }
72
-
73
- set editFormRule(x) {
74
- this.that.editFormRule = x;
75
- }
76
-
77
69
  get visitScheduleRule() {
78
70
  return this.that.visitScheduleRule;
79
71
  }
@@ -126,7 +118,7 @@ class Form extends _BaseEntity.default {
126
118
  this.deleteOutOfSyncDrafts(entityService, resource.uuid);
127
119
  }
128
120
 
129
- return _General.default.assignFields(resource, new Form(), ["uuid", "name", "formType", "decisionRule", "editFormRule", "visitScheduleRule", "taskScheduleRule", "validationRule", "checklistsRule", "taskScheduleRule"]);
121
+ return _General.default.assignFields(resource, new Form(), ["uuid", "name", "formType", "decisionRule", "visitScheduleRule", "taskScheduleRule", "validationRule", "checklistsRule", "taskScheduleRule"]);
130
122
  }
131
123
 
132
124
  static deleteOutOfSyncDrafts(entityService, formUUID) {
@@ -356,10 +348,6 @@ _defineProperty(Form, "schema", {
356
348
  type: "string",
357
349
  optional: true
358
350
  },
359
- editFormRule: {
360
- type: "string",
361
- optional: true
362
- },
363
351
  visitScheduleRule: {
364
352
  type: "string",
365
353
  optional: true
@@ -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/index.js CHANGED
@@ -297,6 +297,12 @@ Object.defineProperty(exports, "Program", {
297
297
  return _Program.default;
298
298
  }
299
299
  });
300
+ Object.defineProperty(exports, "ProgramOutcome", {
301
+ enumerable: true,
302
+ get: function () {
303
+ return _ProgramOutcome.default;
304
+ }
305
+ });
300
306
  Object.defineProperty(exports, "ReferenceEntity", {
301
307
  enumerable: true,
302
308
  get: function () {
@@ -896,6 +902,8 @@ var _ProgramEnrolment = _interopRequireDefault(require("./ProgramEnrolment"));
896
902
 
897
903
  var _Program = _interopRequireDefault(require("./Program"));
898
904
 
905
+ var _ProgramOutcome = _interopRequireDefault(require("./ProgramOutcome"));
906
+
899
907
  var _ReferenceEntity = _interopRequireDefault(require("./ReferenceEntity"));
900
908
 
901
909
  var _RuleDependency = _interopRequireDefault(require("./RuleDependency"));
@@ -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.43",
4
+ "version": "1.31.45",
5
5
  "private": false,
6
6
  "repository": {
7
7
  "type": "git",