openchs-models 1.33.11 → 1.33.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/Concept.js CHANGED
@@ -3,14 +3,13 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.MediaType = exports.default = void 0;
6
+ exports.default = void 0;
7
7
  var _BaseEntity = _interopRequireDefault(require("./BaseEntity"));
8
8
  var _General = _interopRequireDefault(require("./utility/General"));
9
9
  var _lodash = _interopRequireDefault(require("lodash"));
10
10
  var _MultipleCodedValues = _interopRequireDefault(require("./observation/MultipleCodedValues"));
11
11
  var _SingleCodedValue = _interopRequireDefault(require("./observation/SingleCodedValue"));
12
12
  var _PrimitiveValue = _interopRequireDefault(require("./observation/PrimitiveValue"));
13
- var _Duration = _interopRequireDefault(require("./Duration"));
14
13
  var _CompositeDuration = _interopRequireDefault(require("./CompositeDuration"));
15
14
  var _KeyValue = _interopRequireDefault(require("./application/KeyValue"));
16
15
  var _PhoneNumber = _interopRequireDefault(require("./PhoneNumber"));
@@ -18,6 +17,7 @@ var _Identifier = _interopRequireDefault(require("./Identifier"));
18
17
  var _QuestionGroup = _interopRequireDefault(require("./observation/QuestionGroup"));
19
18
  var _RepeatableQuestionGroup = _interopRequireDefault(require("./observation/RepeatableQuestionGroup"));
20
19
  var _ConceptAnswer = _interopRequireDefault(require("./ConceptAnswer"));
20
+ var _ConceptMedia = _interopRequireDefault(require("./ConceptMedia"));
21
21
  var _SchemaNames = _interopRequireDefault(require("./SchemaNames"));
22
22
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
23
23
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
@@ -57,17 +57,25 @@ class Concept extends _BaseEntity.default {
57
57
  set unit(x) {
58
58
  this.that.unit = x;
59
59
  }
60
- get mediaUrl() {
61
- return this.that.mediaUrl;
60
+ getImageMedia() {
61
+ return this.media.filter(m => m.isImage());
62
62
  }
63
- set mediaUrl(x) {
64
- this.that.mediaUrl = x;
63
+ getVideoMedia() {
64
+ return this.media.filter(m => m.isVideo());
65
65
  }
66
- get mediaType() {
67
- return this.that.mediaType;
66
+ hasImage() {
67
+ return this.getImageMedia().length > 0;
68
68
  }
69
- set mediaType(x) {
70
- this.that.mediaType = x;
69
+ hasVideo() {
70
+ return this.getVideoMedia().length > 0;
71
+ }
72
+ getImageUrl() {
73
+ const imageMedia = this.getImageMedia();
74
+ return imageMedia.length > 0 ? imageMedia[0].url : null;
75
+ }
76
+ getVideoUrl() {
77
+ const videoMedia = this.getVideoMedia();
78
+ return videoMedia.length > 0 ? videoMedia[0].url : null;
71
79
  }
72
80
  get name() {
73
81
  return this.that.name;
@@ -93,6 +101,12 @@ class Concept extends _BaseEntity.default {
93
101
  set keyValues(x) {
94
102
  this.that.keyValues = this.fromEntityList(x);
95
103
  }
104
+ get media() {
105
+ return this.toEntityList("media", _ConceptMedia.default);
106
+ }
107
+ set media(x) {
108
+ this.that.media = this.fromEntityList(x);
109
+ }
96
110
  static fromResource(conceptResource, entityService) {
97
111
  const concept = new Concept();
98
112
  concept.name = conceptResource.name;
@@ -105,8 +119,11 @@ class Concept extends _BaseEntity.default {
105
119
  concept.unit = conceptResource.unit;
106
120
  concept.voided = conceptResource.voided || false; //This change should be independently deployable irrespective of server
107
121
  concept.keyValues = _lodash.default.map(conceptResource.keyValues, _KeyValue.default.fromResource);
108
- concept.mediaUrl = conceptResource.mediaUrl;
109
- concept.mediaType = conceptResource.mediaType;
122
+
123
+ // Handle media array format from server
124
+ if (conceptResource.media) {
125
+ concept.media = _lodash.default.map(conceptResource.media, _ConceptMedia.default.fromResource);
126
+ }
110
127
  return concept;
111
128
  }
112
129
  static associateChild(child, childEntityClass, childResource, entityService) {
@@ -264,20 +281,11 @@ class Concept extends _BaseEntity.default {
264
281
  const keyValue = this.recordValueByKey(_KeyValue.default.PrimaryContactKey) || this.recordValueByKey(_KeyValue.default.ContactNumberKey);
265
282
  return keyValue === _KeyValue.default.ContactYesValue;
266
283
  }
267
- isMediaTypeImage() {
268
- return this.mediaType === MediaType.Image;
269
- }
270
- hasMediaType() {
271
- return !_lodash.default.isNil(this.mediaType);
272
- }
273
- hasMediaUrl() {
274
- return !_lodash.default.isNil(this.mediaUrl) && this.mediaUrl !== '';
275
- }
276
284
  hasAnswersWithMedia() {
277
- return _lodash.default.some(this.answers, answer => answer.concept.hasMediaUrl() || answer.concept.hasMediaType());
285
+ return _lodash.default.some(this.answers, answer => answer.concept.hasMedia());
278
286
  }
279
287
  hasMedia() {
280
- return this.hasMediaUrl() || this.hasMediaType() || this.hasAnswersWithMedia();
288
+ return this.media.length > 0 || this.hasAnswersWithMedia();
281
289
  }
282
290
  }
283
291
  exports.default = Concept;
@@ -324,13 +332,10 @@ _defineProperty(Concept, "schema", {
324
332
  type: "bool",
325
333
  default: false
326
334
  },
327
- mediaUrl: {
328
- type: "string",
329
- optional: true
330
- },
331
- mediaType: {
332
- type: "string",
333
- optional: true
335
+ media: {
336
+ type: "list",
337
+ objectType: "ConceptMedia",
338
+ default: []
334
339
  }
335
340
  }
336
341
  });
@@ -373,8 +378,4 @@ _defineProperty(Concept, "dataType", {
373
378
  return [this.Image, this.ImageV2, this.Video, this.Audio, this.File];
374
379
  }
375
380
  });
376
- _defineProperty(Concept, "merge", () => _BaseEntity.default.mergeOn("answers"));
377
- const MediaType = {
378
- Image: "Image"
379
- };
380
- exports.MediaType = MediaType;
381
+ _defineProperty(Concept, "merge", () => _BaseEntity.default.mergeOn("answers"));
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _BaseEntity = _interopRequireDefault(require("./BaseEntity"));
8
+ var _General = _interopRequireDefault(require("./utility/General"));
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
11
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
12
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
13
+ class ConceptMedia extends _BaseEntity.default {
14
+ constructor(that = null) {
15
+ super(that);
16
+ }
17
+ get url() {
18
+ return this.that.url;
19
+ }
20
+ set url(x) {
21
+ this.that.url = x;
22
+ }
23
+ get type() {
24
+ return this.that.type;
25
+ }
26
+ set type(x) {
27
+ this.that.type = x;
28
+ }
29
+ static fromResource(resource) {
30
+ const conceptMedia = new ConceptMedia();
31
+ conceptMedia.uuid = resource.uuid || _General.default.randomUUID();
32
+ conceptMedia.url = resource.url;
33
+ conceptMedia.type = resource.type;
34
+ return conceptMedia;
35
+ }
36
+ isImage() {
37
+ return this.type === 'Image';
38
+ }
39
+ isVideo() {
40
+ return this.type === 'Video';
41
+ }
42
+ }
43
+ exports.default = ConceptMedia;
44
+ _defineProperty(ConceptMedia, "schema", {
45
+ name: "ConceptMedia",
46
+ embedded: true,
47
+ properties: {
48
+ uuid: "string",
49
+ url: {
50
+ type: "string",
51
+ optional: true
52
+ },
53
+ type: {
54
+ type: "string",
55
+ optional: true
56
+ }
57
+ }
58
+ });
package/dist/Schema.js CHANGED
@@ -8,6 +8,7 @@ var _Settings = _interopRequireDefault(require("./Settings"));
8
8
  var _LocaleMapping = _interopRequireDefault(require("./LocaleMapping"));
9
9
  var _Concept = _interopRequireDefault(require("./Concept"));
10
10
  var _ConceptAnswer = _interopRequireDefault(require("./ConceptAnswer"));
11
+ var _ConceptMedia = _interopRequireDefault(require("./ConceptMedia"));
11
12
  var _Individual = _interopRequireDefault(require("./Individual"));
12
13
  var _Family = _interopRequireDefault(require("./Family"));
13
14
  var _AddressLevel = _interopRequireWildcard(require("./AddressLevel"));
@@ -97,7 +98,7 @@ var _ReportCardResult = _interopRequireDefault(require("./reports/ReportCardResu
97
98
  var _NestedReportCardResult = _interopRequireDefault(require("./reports/NestedReportCardResult"));
98
99
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
99
100
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
100
- const entities = [_ReportCardResult.default, _NestedReportCardResult.default, _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];
101
+ const entities = [_ReportCardResult.default, _NestedReportCardResult.default, _DashboardFilter.default, _LocaleMapping.default, _Settings.default, _ConceptAnswer.default, _ConceptMedia.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];
101
102
  function migrateObjectTypeFieldToEmbedded(newDB, oldDB, schemaName, field, creatorFn) {
102
103
  console.log(`schema: ${schemaName}, field: ${field}`);
103
104
  newDB.objects(schemaName).forEach(newDbParentEntity => {
@@ -752,6 +753,13 @@ function createRealmConfig() {
752
753
  }
753
754
  });
754
755
  }
756
+ if (oldDB.schemaVersion < 204) {
757
+ _lodash.default.forEach(newDB.objects(_EntitySyncStatus.default.schema.name), ess => {
758
+ if (ess.entityName === 'Concept') {
759
+ ess.loadedSince = _EntitySyncStatus.default.REALLY_OLD_DATE;
760
+ }
761
+ });
762
+ }
755
763
  }
756
764
  };
757
765
  }
@@ -48,6 +48,7 @@ _defineProperty(SchemaNames, "ChecklistItemDetail", "ChecklistItemDetail");
48
48
  _defineProperty(SchemaNames, "ChecklistItemStatus", "EmbeddedChecklistItemStatus");
49
49
  _defineProperty(SchemaNames, "Comment", "Comment");
50
50
  _defineProperty(SchemaNames, "Concept", "Concept");
51
+ _defineProperty(SchemaNames, "ConceptMedia", "ConceptMedia");
51
52
  _defineProperty(SchemaNames, "EntityApprovalStatus", "EntityApprovalStatus");
52
53
  _defineProperty(SchemaNames, "Point", "Point");
53
54
  var _default = SchemaNames;
package/dist/index.js CHANGED
@@ -75,6 +75,12 @@ Object.defineProperty(exports, "ConceptAnswer", {
75
75
  return _ConceptAnswer.default;
76
76
  }
77
77
  });
78
+ Object.defineProperty(exports, "ConceptMedia", {
79
+ enumerable: true,
80
+ get: function () {
81
+ return _ConceptMedia.default;
82
+ }
83
+ });
78
84
  Object.defineProperty(exports, "Duration", {
79
85
  enumerable: true,
80
86
  get: function () {
@@ -836,6 +842,7 @@ var _ChecklistItemStatus = _interopRequireDefault(require("./ChecklistItemStatus
836
842
  var _CompositeDuration = _interopRequireDefault(require("./CompositeDuration"));
837
843
  var _Concept = _interopRequireDefault(require("./Concept"));
838
844
  var _ConceptAnswer = _interopRequireDefault(require("./ConceptAnswer"));
845
+ var _ConceptMedia = _interopRequireDefault(require("./ConceptMedia"));
839
846
  var _Duration = _interopRequireDefault(require("./Duration"));
840
847
  var _Encounter = _interopRequireDefault(require("./Encounter"));
841
848
  var _EncounterType = _interopRequireDefault(require("./EncounterType"));
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.33.11",
4
+ "version": "1.33.12",
5
5
  "private": false,
6
6
  "repository": {
7
7
  "type": "git",