openchs-models 1.32.54 → 1.32.56
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 +42 -41
- package/dist/ConceptMedia.js +72 -0
- package/dist/Schema.js +19 -2
- package/dist/SchemaNames.js +2 -0
- package/dist/index.js +8 -0
- package/package.json +1 -1
package/dist/Concept.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.default = void 0;
|
|
7
7
|
|
|
8
8
|
var _BaseEntity = _interopRequireDefault(require("./BaseEntity"));
|
|
9
9
|
|
|
@@ -17,8 +17,6 @@ var _SingleCodedValue = _interopRequireDefault(require("./observation/SingleCode
|
|
|
17
17
|
|
|
18
18
|
var _PrimitiveValue = _interopRequireDefault(require("./observation/PrimitiveValue"));
|
|
19
19
|
|
|
20
|
-
var _Duration = _interopRequireDefault(require("./Duration"));
|
|
21
|
-
|
|
22
20
|
var _CompositeDuration = _interopRequireDefault(require("./CompositeDuration"));
|
|
23
21
|
|
|
24
22
|
var _KeyValue = _interopRequireDefault(require("./application/KeyValue"));
|
|
@@ -33,6 +31,8 @@ var _RepeatableQuestionGroup = _interopRequireDefault(require("./observation/Rep
|
|
|
33
31
|
|
|
34
32
|
var _ConceptAnswer = _interopRequireDefault(require("./ConceptAnswer"));
|
|
35
33
|
|
|
34
|
+
var _ConceptMedia = _interopRequireDefault(require("./ConceptMedia"));
|
|
35
|
+
|
|
36
36
|
var _SchemaNames = _interopRequireDefault(require("./SchemaNames"));
|
|
37
37
|
|
|
38
38
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -84,20 +84,30 @@ class Concept extends _BaseEntity.default {
|
|
|
84
84
|
this.that.unit = x;
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
-
|
|
88
|
-
return this.
|
|
87
|
+
getImageMedia() {
|
|
88
|
+
return this.media.filter(m => m.isImage());
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
getVideoMedia() {
|
|
92
|
+
return this.media.filter(m => m.isVideo());
|
|
89
93
|
}
|
|
90
94
|
|
|
91
|
-
|
|
92
|
-
this.
|
|
95
|
+
hasImage() {
|
|
96
|
+
return this.getImageMedia().length > 0;
|
|
93
97
|
}
|
|
94
98
|
|
|
95
|
-
|
|
96
|
-
return this.
|
|
99
|
+
hasVideo() {
|
|
100
|
+
return this.getVideoMedia().length > 0;
|
|
97
101
|
}
|
|
98
102
|
|
|
99
|
-
|
|
100
|
-
|
|
103
|
+
getImageUrl() {
|
|
104
|
+
const imageMedia = this.getImageMedia();
|
|
105
|
+
return imageMedia.length > 0 ? imageMedia[0].url : null;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
getVideoUrl() {
|
|
109
|
+
const videoMedia = this.getVideoMedia();
|
|
110
|
+
return videoMedia.length > 0 ? videoMedia[0].url : null;
|
|
101
111
|
}
|
|
102
112
|
|
|
103
113
|
get name() {
|
|
@@ -132,6 +142,14 @@ class Concept extends _BaseEntity.default {
|
|
|
132
142
|
this.that.keyValues = this.fromEntityList(x);
|
|
133
143
|
}
|
|
134
144
|
|
|
145
|
+
get media() {
|
|
146
|
+
return this.toEntityList("media", _ConceptMedia.default);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
set media(x) {
|
|
150
|
+
this.that.media = this.fromEntityList(x);
|
|
151
|
+
}
|
|
152
|
+
|
|
135
153
|
static fromResource(conceptResource, entityService) {
|
|
136
154
|
const concept = new Concept();
|
|
137
155
|
concept.name = conceptResource.name;
|
|
@@ -144,9 +162,12 @@ class Concept extends _BaseEntity.default {
|
|
|
144
162
|
concept.unit = conceptResource.unit;
|
|
145
163
|
concept.voided = conceptResource.voided || false; //This change should be independently deployable irrespective of server
|
|
146
164
|
|
|
147
|
-
concept.keyValues = _lodash.default.map(conceptResource.keyValues, _KeyValue.default.fromResource);
|
|
148
|
-
|
|
149
|
-
|
|
165
|
+
concept.keyValues = _lodash.default.map(conceptResource.keyValues, _KeyValue.default.fromResource); // Handle media array format from server
|
|
166
|
+
|
|
167
|
+
if (conceptResource.media) {
|
|
168
|
+
concept.media = _lodash.default.map(conceptResource.media, _ConceptMedia.default.fromResource);
|
|
169
|
+
}
|
|
170
|
+
|
|
150
171
|
return concept;
|
|
151
172
|
}
|
|
152
173
|
|
|
@@ -351,24 +372,12 @@ class Concept extends _BaseEntity.default {
|
|
|
351
372
|
return keyValue === _KeyValue.default.ContactYesValue;
|
|
352
373
|
}
|
|
353
374
|
|
|
354
|
-
isMediaTypeImage() {
|
|
355
|
-
return this.mediaType === MediaType.Image;
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
hasMediaType() {
|
|
359
|
-
return !_lodash.default.isNil(this.mediaType);
|
|
360
|
-
}
|
|
361
|
-
|
|
362
|
-
hasMediaUrl() {
|
|
363
|
-
return !_lodash.default.isNil(this.mediaUrl) && this.mediaUrl !== '';
|
|
364
|
-
}
|
|
365
|
-
|
|
366
375
|
hasAnswersWithMedia() {
|
|
367
|
-
return _lodash.default.some(this.answers, answer => answer.concept.
|
|
376
|
+
return _lodash.default.some(this.answers, answer => answer.concept.hasMedia());
|
|
368
377
|
}
|
|
369
378
|
|
|
370
379
|
hasMedia() {
|
|
371
|
-
return this.
|
|
380
|
+
return this.media.length > 0 || this.hasAnswersWithMedia();
|
|
372
381
|
}
|
|
373
382
|
|
|
374
383
|
}
|
|
@@ -419,13 +428,10 @@ _defineProperty(Concept, "schema", {
|
|
|
419
428
|
type: "bool",
|
|
420
429
|
default: false
|
|
421
430
|
},
|
|
422
|
-
|
|
423
|
-
type: "
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
mediaType: {
|
|
427
|
-
type: "string",
|
|
428
|
-
optional: true
|
|
431
|
+
media: {
|
|
432
|
+
type: "list",
|
|
433
|
+
objectType: "ConceptMedia",
|
|
434
|
+
default: []
|
|
429
435
|
}
|
|
430
436
|
}
|
|
431
437
|
});
|
|
@@ -474,9 +480,4 @@ _defineProperty(Concept, "dataType", {
|
|
|
474
480
|
|
|
475
481
|
});
|
|
476
482
|
|
|
477
|
-
_defineProperty(Concept, "merge", () => _BaseEntity.default.mergeOn("answers"));
|
|
478
|
-
|
|
479
|
-
const MediaType = {
|
|
480
|
-
Image: "Image"
|
|
481
|
-
};
|
|
482
|
-
exports.MediaType = MediaType;
|
|
483
|
+
_defineProperty(Concept, "merge", () => _BaseEntity.default.mergeOn("answers"));
|
|
@@ -0,0 +1,72 @@
|
|
|
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 _General = _interopRequireDefault(require("./utility/General"));
|
|
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 ConceptMedia extends _BaseEntity.default {
|
|
17
|
+
constructor(that = null) {
|
|
18
|
+
super(that);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
get url() {
|
|
22
|
+
return this.that.url;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
set url(x) {
|
|
26
|
+
this.that.url = x;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
get type() {
|
|
30
|
+
return this.that.type;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
set type(x) {
|
|
34
|
+
this.that.type = x;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
static fromResource(resource) {
|
|
38
|
+
const conceptMedia = new ConceptMedia();
|
|
39
|
+
conceptMedia.uuid = resource.uuid || _General.default.randomUUID();
|
|
40
|
+
conceptMedia.url = resource.url;
|
|
41
|
+
conceptMedia.type = resource.type;
|
|
42
|
+
return conceptMedia;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
isImage() {
|
|
46
|
+
return this.type === 'Image';
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
isVideo() {
|
|
50
|
+
return this.type === 'Video';
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
exports.default = ConceptMedia;
|
|
56
|
+
|
|
57
|
+
_defineProperty(ConceptMedia, "schema", {
|
|
58
|
+
name: "ConceptMedia",
|
|
59
|
+
embedded: true,
|
|
60
|
+
primaryKey: "uuid",
|
|
61
|
+
properties: {
|
|
62
|
+
uuid: "string",
|
|
63
|
+
url: {
|
|
64
|
+
type: "string",
|
|
65
|
+
optional: true
|
|
66
|
+
},
|
|
67
|
+
type: {
|
|
68
|
+
type: "string",
|
|
69
|
+
optional: true
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
});
|
package/dist/Schema.js
CHANGED
|
@@ -13,6 +13,8 @@ var _Concept = _interopRequireDefault(require("./Concept"));
|
|
|
13
13
|
|
|
14
14
|
var _ConceptAnswer = _interopRequireDefault(require("./ConceptAnswer"));
|
|
15
15
|
|
|
16
|
+
var _ConceptMedia = _interopRequireDefault(require("./ConceptMedia"));
|
|
17
|
+
|
|
16
18
|
var _Individual = _interopRequireDefault(require("./Individual"));
|
|
17
19
|
|
|
18
20
|
var _Family = _interopRequireDefault(require("./Family"));
|
|
@@ -193,7 +195,7 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj;
|
|
|
193
195
|
|
|
194
196
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
195
197
|
|
|
196
|
-
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];
|
|
198
|
+
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];
|
|
197
199
|
|
|
198
200
|
function migrateObjectTypeFieldToEmbedded(newDB, oldDB, schemaName, field, creatorFn) {
|
|
199
201
|
console.log(`schema: ${schemaName}, field: ${field}`);
|
|
@@ -283,7 +285,7 @@ function createRealmConfig() {
|
|
|
283
285
|
return doCompact;
|
|
284
286
|
},
|
|
285
287
|
//order is important, should be arranged according to the dependency
|
|
286
|
-
schemaVersion:
|
|
288
|
+
schemaVersion: 204,
|
|
287
289
|
onMigration: function (oldDB, newDB) {
|
|
288
290
|
console.log("[AvniModels.Schema]", `Running migration with old schema version: ${oldDB.schemaVersion} and new schema version: ${newDB.schemaVersion}`);
|
|
289
291
|
if (oldDB.schemaVersion === VersionWithEmbeddedMigrationProblem) throw new Error(`Update from schema version ${VersionWithEmbeddedMigrationProblem} is not allowed. Please uninstall and install app.`);
|
|
@@ -994,6 +996,21 @@ function createRealmConfig() {
|
|
|
994
996
|
}
|
|
995
997
|
});
|
|
996
998
|
}
|
|
999
|
+
|
|
1000
|
+
if (oldDB.schemaVersion < 204) {
|
|
1001
|
+
_lodash.default.forEach(newDB.objects(_Concept.default.schema.name), concept => {
|
|
1002
|
+
if (!concept.media) {
|
|
1003
|
+
concept.media = [];
|
|
1004
|
+
}
|
|
1005
|
+
}); // Reset EntitySyncStatus for Concept to refetch media URLs
|
|
1006
|
+
|
|
1007
|
+
|
|
1008
|
+
_lodash.default.forEach(newDB.objects(_EntitySyncStatus.default.schema.name), ess => {
|
|
1009
|
+
if (ess.entityName === 'Concept') {
|
|
1010
|
+
ess.loadedSince = _EntitySyncStatus.default.REALLY_OLD_DATE;
|
|
1011
|
+
}
|
|
1012
|
+
});
|
|
1013
|
+
}
|
|
997
1014
|
}
|
|
998
1015
|
};
|
|
999
1016
|
}
|
package/dist/SchemaNames.js
CHANGED
|
@@ -89,6 +89,8 @@ _defineProperty(SchemaNames, "Comment", "Comment");
|
|
|
89
89
|
|
|
90
90
|
_defineProperty(SchemaNames, "Concept", "Concept");
|
|
91
91
|
|
|
92
|
+
_defineProperty(SchemaNames, "ConceptMedia", "ConceptMedia");
|
|
93
|
+
|
|
92
94
|
_defineProperty(SchemaNames, "EntityApprovalStatus", "EntityApprovalStatus");
|
|
93
95
|
|
|
94
96
|
_defineProperty(SchemaNames, "Point", "Point");
|
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 () {
|
|
@@ -842,6 +848,8 @@ var _Concept = _interopRequireDefault(require("./Concept"));
|
|
|
842
848
|
|
|
843
849
|
var _ConceptAnswer = _interopRequireDefault(require("./ConceptAnswer"));
|
|
844
850
|
|
|
851
|
+
var _ConceptMedia = _interopRequireDefault(require("./ConceptMedia"));
|
|
852
|
+
|
|
845
853
|
var _Duration = _interopRequireDefault(require("./Duration"));
|
|
846
854
|
|
|
847
855
|
var _Encounter = _interopRequireDefault(require("./Encounter"));
|