openchs-models 1.17.2 → 1.18.0

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.
@@ -125,6 +125,8 @@ var _Extension = _interopRequireDefault(require("./Extension"));
125
125
 
126
126
  var _SubjectMigration = _interopRequireDefault(require("./SubjectMigration"));
127
127
 
128
+ var _ResetSync = _interopRequireDefault(require("./ResetSync"));
129
+
128
130
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
129
131
 
130
132
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
@@ -280,6 +282,10 @@ const subjectMigration = txData(_SubjectMigration.default, {
280
282
  privilegeEntity: _Privilege.default.privilegeEntityType.subject,
281
283
  privilegeName: _Privilege.default.privilegeName.viewSubject
282
284
  });
285
+ const resetSync = txData(_ResetSync.default, {
286
+ res: "resetSyncs",
287
+ syncWeight: 0
288
+ });
283
289
  const addressLevel = refDataNameTranslated(_AddressLevel.default, {
284
290
  res: "locations",
285
291
  syncWeight: 4
@@ -443,7 +449,7 @@ const commentThread = txData(_CommentThread.default, {
443
449
  class EntityMetaData {
444
450
  //order is important. last entity in each (tx and ref) with be executed first. parent should be synced before the child.
445
451
  static model() {
446
- return [groupDashboard, approvalStatus, dashboardSectionCardMapping, dashboardSection, dashboard, reportCard, standardReportCardType, locationHierarchy, video, checklistItemDetail, checklistDetail, rule, ruleDependency, individualRelationshipType, individualRelationGenderMapping, individualRelation, programConfig, formMapping, formElement, formElementGroup, form, identifierSource, organisationConfig, platformTranslation, translation, locationMapping, addressLevel, encounterType, program, programOutcome, gender, groupRole, subjectType, conceptAnswer, concept, myGroups, groupPrivileges, groups, privilege, subjectMigration, news, videoTelemetric, groupSubject, comment, commentThread, entityApprovalStatus, individualRelationship, checklistItem, checklist, encounter, identifierAssignment, programEncounter, programEnrolment, individual, extension, userInfo, syncTelemetry, ruleFailureTelemetry];
452
+ return [groupDashboard, approvalStatus, dashboardSectionCardMapping, dashboardSection, dashboard, reportCard, standardReportCardType, locationHierarchy, video, checklistItemDetail, checklistDetail, rule, ruleDependency, individualRelationshipType, individualRelationGenderMapping, individualRelation, programConfig, formMapping, formElement, formElementGroup, form, identifierSource, organisationConfig, platformTranslation, translation, locationMapping, addressLevel, encounterType, program, programOutcome, gender, groupRole, subjectType, conceptAnswer, concept, myGroups, groupPrivileges, groups, privilege, resetSync, subjectMigration, news, videoTelemetric, groupSubject, comment, commentThread, entityApprovalStatus, individualRelationship, checklistItem, checklist, encounter, identifierAssignment, programEncounter, programEnrolment, individual, extension, userInfo, syncTelemetry, ruleFailureTelemetry];
447
453
  }
448
454
 
449
455
  static entitiesLoadedFromServer() {
@@ -234,6 +234,10 @@ class ObservationsHolder {
234
234
  }
235
235
 
236
236
  updatePrimitiveCodedObs(applicableFormElements, formElementStatuses) {
237
+ const updateQuestionGroupObs = (parentFormElement, questionGroupIndex, fe, value) => {
238
+ parentFormElement.repeatable ? this.updateRepeatableGroupQuestion(questionGroupIndex, parentFormElement, fe, value) : this.updateGroupQuestion(parentFormElement, fe, value);
239
+ };
240
+
237
241
  applicableFormElements.forEach(fe => {
238
242
  const formElementStatus = _lodash.default.find(formElementStatuses, formElementStatus => {
239
243
  return fe.uuid === formElementStatus.uuid && (_lodash.default.isNil(fe.questionGroupIndex) || fe.questionGroupIndex === formElementStatus.questionGroupIndex);
@@ -252,7 +256,35 @@ class ObservationsHolder {
252
256
  uuid
253
257
  }) => fe.groupUuid === uuid);
254
258
 
255
- parentFormElement.repeatable ? this.updateRepeatableGroupQuestion(questionGroupIndex, parentFormElement, fe, value) : this.updateGroupQuestion(parentFormElement, fe, value);
259
+ updateQuestionGroupObs(parentFormElement, questionGroupIndex, fe, value);
260
+ } else if (concept.isQuestionGroup() && _lodash.default.isArray(value)) {
261
+ const observation = this.findObservation(concept);
262
+ const questionGroup = observation && observation.getValueWrapper();
263
+ const size = questionGroup ? questionGroup.size() : 0;
264
+
265
+ if (size >= value.length) {
266
+ // Don't populate the values if already done. This will allow users to edit the prepopulated values.
267
+ // This check is added to make sure user can update the group values.
268
+ return;
269
+ }
270
+
271
+ _lodash.default.forEach(value, (questionGroupValue, index) => {
272
+ if (fe.repeatable && size < index + 1) {
273
+ this.updateRepeatableGroupQuestion(index, fe, null, null, 'add');
274
+ }
275
+
276
+ _lodash.default.forEach(questionGroupValue, (answerValue, conceptUUID) => {
277
+ const childFormElement = _lodash.default.find(fe.formElementGroup.getFormElements(), ({
278
+ concept
279
+ }) => concept.uuid === conceptUUID);
280
+
281
+ if (childFormElement.concept.isCodedConcept() && childFormElement.isMultiSelect() && _lodash.default.isArray(answerValue)) {
282
+ _lodash.default.forEach(answerValue, v => updateQuestionGroupObs(fe, index, childFormElement, v));
283
+ } else {
284
+ updateQuestionGroupObs(fe, index, childFormElement, answerValue);
285
+ }
286
+ });
287
+ });
256
288
  } else {
257
289
  concept.isCodedConcept() ? this.addOrUpdateCodedObs(concept, value, fe.isSingleSelect()) : this.addOrUpdatePrimitiveObs(concept, value);
258
290
  }
@@ -338,7 +370,7 @@ class ObservationsHolder {
338
370
  }
339
371
  }
340
372
 
341
- if (childConcept.isCodedConcept()) {
373
+ if (childConcept.isCodedConcept() || childConcept.isMediaConcept()) {
342
374
  let observation = childObservations.getObservation(childConcept);
343
375
  const isSingleSelect = childFormElement.isSingleSelect();
344
376
 
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _BaseEntity = _interopRequireDefault(require("./BaseEntity"));
9
+
10
+ var _ResourceUtil = _interopRequireDefault(require("./utility/ResourceUtil"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ 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; }
15
+
16
+ class ResetSync extends _BaseEntity.default {
17
+ constructor(...args) {
18
+ super(...args);
19
+
20
+ _defineProperty(this, "uuid", void 0);
21
+
22
+ _defineProperty(this, "subjectTypeUUID", void 0);
23
+
24
+ _defineProperty(this, "hasMigrated", void 0);
25
+
26
+ _defineProperty(this, "voided", void 0);
27
+ }
28
+
29
+ static fromResource(resource) {
30
+ const resetSync = new ResetSync();
31
+ resetSync.uuid = resource.uuid;
32
+ resetSync.voided = resource.voided;
33
+ resetSync.subjectTypeUUID = _ResourceUtil.default.getUUIDFor(resource, 'subjectTypeUUID');
34
+ return resetSync;
35
+ }
36
+
37
+ updatedHasMigrated() {
38
+ const resetSync = this.clone();
39
+ resetSync.hasMigrated = true;
40
+ return resetSync;
41
+ }
42
+
43
+ clone() {
44
+ const resetSync = new ResetSync();
45
+ resetSync.uuid = this.uuid;
46
+ resetSync.subjectTypeUUID = this.subjectTypeUUID;
47
+ resetSync.hasMigrated = this.hasMigrated;
48
+ resetSync.voided = this.voided;
49
+ return resetSync;
50
+ }
51
+
52
+ }
53
+
54
+ _defineProperty(ResetSync, "schema", {
55
+ name: 'ResetSync',
56
+ primaryKey: 'uuid',
57
+ properties: {
58
+ uuid: 'string',
59
+ subjectTypeUUID: {
60
+ type: 'string',
61
+ optional: true
62
+ },
63
+ hasMigrated: {
64
+ type: 'bool',
65
+ default: false
66
+ },
67
+ voided: {
68
+ type: "bool",
69
+ default: false
70
+ }
71
+ }
72
+ });
73
+
74
+ var _default = ResetSync;
75
+ exports.default = _default;
package/dist/Schema.js CHANGED
@@ -159,6 +159,8 @@ var _Extension = _interopRequireDefault(require("./Extension"));
159
159
 
160
160
  var _SubjectMigration = _interopRequireDefault(require("./SubjectMigration"));
161
161
 
162
+ var _ResetSync = _interopRequireDefault(require("./ResetSync"));
163
+
162
164
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
163
165
 
164
166
  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; }
@@ -167,8 +169,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
167
169
 
168
170
  var _default = {
169
171
  //order is important, should be arranged according to the dependency
170
- schema: [_LocaleMapping.default, _Settings.default, _Concept.ConceptAnswer, _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, _ProgramConfig.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, _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],
171
- schemaVersion: 153,
172
+ schema: [_LocaleMapping.default, _Settings.default, _Concept.ConceptAnswer, _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, _ProgramConfig.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, _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],
173
+ schemaVersion: 154,
172
174
  migration: function (oldDB, newDB) {
173
175
  if (oldDB.schemaVersion < 10) {
174
176
  var oldObjects = oldDB.objects("DecisionConfig");
package/dist/index.js CHANGED
@@ -657,6 +657,12 @@ Object.defineProperty(exports, "RepeatableQuestionGroup", {
657
657
  return _RepeatableQuestionGroup.default;
658
658
  }
659
659
  });
660
+ Object.defineProperty(exports, "ResetSync", {
661
+ enumerable: true,
662
+ get: function () {
663
+ return _ResetSync.default;
664
+ }
665
+ });
660
666
 
661
667
  var _AbstractEncounter = _interopRequireDefault(require("./AbstractEncounter"));
662
668
 
@@ -874,6 +880,8 @@ var _QuestionGroup = _interopRequireDefault(require("./observation/QuestionGroup
874
880
 
875
881
  var _RepeatableQuestionGroup = _interopRequireDefault(require("./observation/RepeatableQuestionGroup"));
876
882
 
883
+ var _ResetSync = _interopRequireDefault(require("./ResetSync"));
884
+
877
885
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
878
886
 
879
887
  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; }
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.17.2",
4
+ "version": "1.18.0",
5
5
  "private": false,
6
6
  "repository": {
7
7
  "type": "git",