openchs-models 1.23.10 → 1.25.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.
package/Makefile CHANGED
@@ -30,6 +30,9 @@ release:
30
30
  publish:
31
31
  git push && git push origin --tags
32
32
 
33
+ copy-dist-to-avni-client:
34
+ cp -r * ../avni-client/packages/openchs-android/node_modules/openchs-models/
35
+
33
36
  deploy:
34
37
  $(if $(local),$(call _deploy,$(local)/packages/openchs-android/node_modules/openchs-models))
35
38
 
@@ -139,6 +139,8 @@ var _TaskStatus = _interopRequireDefault(require("./task/TaskStatus"));
139
139
 
140
140
  var _TaskUnAssignment = _interopRequireDefault(require("./task/TaskUnAssignment"));
141
141
 
142
+ var _SubjectProgramEligibility = _interopRequireDefault(require("./program/SubjectProgramEligibility"));
143
+
142
144
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
143
145
 
144
146
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
@@ -481,11 +483,18 @@ const taskUnAssigment = txData(_TaskUnAssignment.default, {
481
483
  res: 'taskUnAssignments',
482
484
  syncWeight: 0
483
485
  });
486
+ const subjectProgramEligibility = txData(_SubjectProgramEligibility.default, {
487
+ resUrl: "subjectProgramEligibility",
488
+ syncWeight: 0,
489
+ privilegeParam: "subjectTypeUuid",
490
+ privilegeEntity: _Privilege.default.privilegeEntityType.subject,
491
+ privilegeName: _Privilege.default.privilegeName.viewSubject
492
+ });
484
493
 
485
494
  class EntityMetaData {
486
495
  //order is important. last entity in each (tx and ref) with be executed first. parent should be synced before the child.
487
496
  static model() {
488
- return [groupDashboard, approvalStatus, dashboardSectionCardMapping, dashboardSection, dashboard, reportCard, standardReportCardType, locationHierarchy, video, checklistItemDetail, checklistDetail, rule, ruleDependency, individualRelationshipType, individualRelationGenderMapping, individualRelation, programConfig, 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, taskUnAssigment, task, news, videoTelemetric, groupSubject, comment, commentThread, entityApprovalStatus, individualRelationship, checklistItem, checklist, encounter, identifierAssignment, programEncounter, programEnrolment, individual, extension, userInfo, syncTelemetry, ruleFailureTelemetry];
497
+ return [groupDashboard, approvalStatus, dashboardSectionCardMapping, dashboardSection, dashboard, reportCard, standardReportCardType, locationHierarchy, video, checklistItemDetail, checklistDetail, rule, ruleDependency, individualRelationshipType, individualRelationGenderMapping, individualRelation, programConfig, 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, taskUnAssigment, task, subjectProgramEligibility, news, videoTelemetric, groupSubject, comment, commentThread, entityApprovalStatus, individualRelationship, checklistItem, checklist, encounter, identifierAssignment, programEncounter, programEnrolment, individual, extension, userInfo, syncTelemetry, ruleFailureTelemetry];
489
498
  }
490
499
 
491
500
  static entitiesLoadedFromServer() {
package/dist/Program.js CHANGED
@@ -53,6 +53,8 @@ class Program extends _ReferenceEntity.default {
53
53
  program.displayName = _lodash.default.isEmpty(program.operationalProgramName) ? program.name : program.operationalProgramName;
54
54
  program.programSubjectLabel = operationalProgram.programSubjectLabel || operationalProgram.name || program.name;
55
55
  program.enrolmentSummaryRule = operationalProgram.enrolmentSummaryRule;
56
+ program.manualEligibilityCheckRequired = operationalProgram.manualEligibilityCheckRequired;
57
+ program.manualEnrolmentEligibilityCheckRule = operationalProgram.manualEnrolmentEligibilityCheckRule;
56
58
  program.enrolmentEligibilityCheckRule = operationalProgram.enrolmentEligibilityCheckRule;
57
59
  program.active = operationalProgram.active;
58
60
  program.voided = operationalProgram.programVoided;
package/dist/Schema.js CHANGED
@@ -173,6 +173,10 @@ var _TaskStatus = _interopRequireDefault(require("./task/TaskStatus"));
173
173
 
174
174
  var _TaskUnAssignment = _interopRequireDefault(require("./task/TaskUnAssignment"));
175
175
 
176
+ var _DraftEncounter = _interopRequireDefault(require("./draft/DraftEncounter"));
177
+
178
+ var _SubjectProgramEligibility = _interopRequireDefault(require("./program/SubjectProgramEligibility"));
179
+
176
180
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
177
181
 
178
182
  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; }
@@ -181,8 +185,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
181
185
 
182
186
  var _default = {
183
187
  //order is important, should be arranged according to the dependency
184
- 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, _Documentation.default, _DocumentationItem.default, _TaskType.default, _TaskStatus.default, _Task.default, _TaskUnAssignment.default],
185
- schemaVersion: 160,
188
+ 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, _Documentation.default, _DocumentationItem.default, _TaskType.default, _TaskStatus.default, _Task.default, _TaskUnAssignment.default, _DraftEncounter.default, _SubjectProgramEligibility.default],
189
+ schemaVersion: 162,
186
190
  migration: function (oldDB, newDB) {
187
191
  if (oldDB.schemaVersion < 10) {
188
192
  var oldObjects = oldDB.objects("DecisionConfig");
@@ -40,6 +40,8 @@ class SubjectType extends _ReferenceEntity.default {
40
40
  _defineProperty(this, "validMiddleNameFormat", void 0);
41
41
 
42
42
  _defineProperty(this, "validLastNameFormat", void 0);
43
+
44
+ _defineProperty(this, "programEligibilityCheckRule", void 0);
43
45
  }
44
46
 
45
47
  static create(name, group = false, household = false, type) {
@@ -63,6 +65,7 @@ class SubjectType extends _ReferenceEntity.default {
63
65
  subjectType.active = operationalSubjectType.active;
64
66
  subjectType.type = operationalSubjectType.type;
65
67
  subjectType.subjectSummaryRule = operationalSubjectType.subjectSummaryRule;
68
+ subjectType.programEligibilityCheckRule = operationalSubjectType.programEligibilityCheckRule;
66
69
  subjectType.uniqueName = operationalSubjectType.uniqueName;
67
70
  subjectType.allowMiddleName = operationalSubjectType.allowMiddleName;
68
71
  subjectType.allowProfilePicture = operationalSubjectType.allowProfilePicture;
@@ -86,6 +89,7 @@ class SubjectType extends _ReferenceEntity.default {
86
89
  cloned.active = this.active;
87
90
  cloned.type = this.type;
88
91
  cloned.subjectSummaryRule = this.subjectSummaryRule;
92
+ cloned.programEligibilityCheckRule = this.programEligibilityCheckRule;
89
93
  cloned.allowEmptyLocation = this.allowEmptyLocation;
90
94
  cloned.allowMiddleName = this.allowMiddleName;
91
95
  cloned.allowProfilePicture = this.allowProfilePicture;
@@ -153,6 +157,10 @@ _defineProperty(SubjectType, "schema", {
153
157
  type: 'string',
154
158
  optional: true
155
159
  },
160
+ programEligibilityCheckRule: {
161
+ type: 'string',
162
+ optional: true
163
+ },
156
164
  uniqueName: {
157
165
  type: 'bool',
158
166
  default: false
@@ -297,7 +297,9 @@ _defineProperty(Form, "formTypes", {
297
297
  ProgramEncounterCancellation: "ProgramEncounterCancellation",
298
298
  ChecklistItem: "ChecklistItem",
299
299
  IndividualEncounterCancellation: "IndividualEncounterCancellation",
300
- Task: "Task"
300
+ Task: "Task",
301
+ SubjectEnrolmentEligibility: "SubjectEnrolmentEligibility",
302
+ ManualProgramEnrolmentEligibility: "ManualProgramEnrolmentEligibility"
301
303
  });
302
304
 
303
305
  var _default = Form;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _lodash = _interopRequireDefault(require("lodash"));
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 MenuItem {}
15
+
16
+ _defineProperty(MenuItem, "schema", {
17
+ name: "MenuItem",
18
+ primaryKey: "uuid",
19
+ properties: {
20
+ uuid: "string",
21
+ displayKey: "string",
22
+ type: "string",
23
+ icon: {
24
+ type: "string",
25
+ optional: true
26
+ },
27
+ group: "string",
28
+ link: {
29
+ type: "string",
30
+ optional: true
31
+ }
32
+ }
33
+ });
34
+
35
+ var _default = MenuItem;
36
+ exports.default = _default;
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _ObservationsHolder = _interopRequireDefault(require("../ObservationsHolder"));
9
+
10
+ var _Encounter = _interopRequireDefault(require("../Encounter"));
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 DraftEncounter {
17
+ static create(encounter) {
18
+ const draftEncounter = new DraftEncounter();
19
+ draftEncounter.uuid = encounter.uuid;
20
+ draftEncounter.encounterType = encounter.encounterType;
21
+ draftEncounter.encounterDateTime = encounter.encounterDateTime;
22
+ draftEncounter.individual = encounter.individual;
23
+ draftEncounter.observations = encounter.observations;
24
+ draftEncounter.encounterLocation = encounter.encounterLocation;
25
+ draftEncounter.name = encounter.name;
26
+ draftEncounter.earliestVisitDateTime = encounter.earliestVisitDateTime;
27
+ draftEncounter.maxVisitDateTime = encounter.maxVisitDateTime;
28
+ draftEncounter.cancelDateTime = encounter.cancelDateTime;
29
+ draftEncounter.cancelObservations = encounter.cancelObservations;
30
+ draftEncounter.cancelLocation = encounter.cancelLocation;
31
+ draftEncounter.voided = encounter.voided;
32
+ draftEncounter.latestEntityApprovalStatus = encounter.latestEntityApprovalStatus;
33
+ draftEncounter.registrationLocation = encounter.registrationLocation;
34
+ draftEncounter.updatedOn = new Date();
35
+ return draftEncounter;
36
+ }
37
+
38
+ constructEncounter() {
39
+ const encounter = new _Encounter.default();
40
+ encounter.uuid = this.uuid;
41
+ encounter.encounterType = this.encounterType;
42
+ encounter.encounterDateTime = this.encounterDateTime;
43
+ encounter.individual = this.individual;
44
+ encounter.observations = _ObservationsHolder.default.clone(this.observations);
45
+ encounter.encounterLocation = this.encounterLocation;
46
+ encounter.name = this.name;
47
+ encounter.earliestVisitDateTime = this.earliestVisitDateTime;
48
+ encounter.maxVisitDateTime = this.maxVisitDateTime;
49
+ encounter.cancelDateTime = this.cancelDateTime;
50
+ encounter.cancelObservations = _ObservationsHolder.default.clone(this.cancelObservations);
51
+ encounter.cancelLocation = this.cancelLocation;
52
+ encounter.voided = this.voided;
53
+ encounter.latestEntityApprovalStatus = this.latestEntityApprovalStatus;
54
+ encounter.registrationLocation = this.registrationLocation;
55
+ return encounter;
56
+ }
57
+
58
+ }
59
+
60
+ _defineProperty(DraftEncounter, "schema", {
61
+ name: "DraftEncounter",
62
+ primaryKey: "uuid",
63
+ properties: {
64
+ uuid: "string",
65
+ encounterType: "EncounterType",
66
+ encounterDateTime: {
67
+ type: "date",
68
+ optional: true
69
+ },
70
+ individual: "Individual",
71
+ observations: {
72
+ type: "list",
73
+ objectType: "Observation"
74
+ },
75
+ encounterLocation: {
76
+ type: "Point",
77
+ optional: true
78
+ },
79
+ name: {
80
+ type: "string",
81
+ optional: true
82
+ },
83
+ earliestVisitDateTime: {
84
+ type: "date",
85
+ optional: true
86
+ },
87
+ maxVisitDateTime: {
88
+ type: "date",
89
+ optional: true
90
+ },
91
+ cancelDateTime: {
92
+ type: "date",
93
+ optional: true
94
+ },
95
+ cancelObservations: {
96
+ type: "list",
97
+ objectType: "Observation"
98
+ },
99
+ cancelLocation: {
100
+ type: "Point",
101
+ optional: true
102
+ },
103
+ voided: {
104
+ type: "bool",
105
+ default: false
106
+ },
107
+ latestEntityApprovalStatus: {
108
+ type: "EntityApprovalStatus",
109
+ optional: true
110
+ }
111
+ }
112
+ });
113
+
114
+ var _default = DraftEncounter;
115
+ exports.default = _default;
package/dist/index.js CHANGED
@@ -699,6 +699,18 @@ Object.defineProperty(exports, "TaskUnAssignment", {
699
699
  return _TaskUnAssignment.default;
700
700
  }
701
701
  });
702
+ Object.defineProperty(exports, "DraftEncounter", {
703
+ enumerable: true,
704
+ get: function () {
705
+ return _DraftEncounter.default;
706
+ }
707
+ });
708
+ Object.defineProperty(exports, "SubjectProgramEligibility", {
709
+ enumerable: true,
710
+ get: function () {
711
+ return _SubjectProgramEligibility.default;
712
+ }
713
+ });
702
714
 
703
715
  var _AbstractEncounter = _interopRequireDefault(require("./AbstractEncounter"));
704
716
 
@@ -930,6 +942,10 @@ var _TaskType = _interopRequireDefault(require("./task/TaskType"));
930
942
 
931
943
  var _TaskUnAssignment = _interopRequireDefault(require("./task/TaskUnAssignment"));
932
944
 
945
+ var _DraftEncounter = _interopRequireDefault(require("./draft/DraftEncounter"));
946
+
947
+ var _SubjectProgramEligibility = _interopRequireDefault(require("./program/SubjectProgramEligibility"));
948
+
933
949
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
934
950
 
935
951
  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; }
@@ -0,0 +1,137 @@
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 _Individual = _interopRequireDefault(require("../Individual"));
11
+
12
+ var _Program = _interopRequireDefault(require("../Program"));
13
+
14
+ var _General = _interopRequireDefault(require("../utility/General"));
15
+
16
+ var _ResourceUtil = _interopRequireDefault(require("../utility/ResourceUtil"));
17
+
18
+ var _ObservationsHolder = _interopRequireDefault(require("../ObservationsHolder"));
19
+
20
+ var _lodash = _interopRequireDefault(require("lodash"));
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+
24
+ 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; }
25
+
26
+ class SubjectProgramEligibility extends _BaseEntity.default {
27
+ constructor(...args) {
28
+ super(...args);
29
+
30
+ _defineProperty(this, "uuid", void 0);
31
+
32
+ _defineProperty(this, "subject", void 0);
33
+
34
+ _defineProperty(this, "program", void 0);
35
+
36
+ _defineProperty(this, "checkDate", void 0);
37
+
38
+ _defineProperty(this, "eligible", void 0);
39
+
40
+ _defineProperty(this, "voided", void 0);
41
+
42
+ _defineProperty(this, "observations", void 0);
43
+ }
44
+
45
+ get toResource() {
46
+ const resource = _lodash.default.pick(this, ["uuid", "voided", "eligible"]);
47
+
48
+ resource.subjectUUID = this.subject.uuid;
49
+ resource.programUUID = this.program.uuid;
50
+ resource.checkDate = _General.default.isoFormat(this.checkDate);
51
+ resource["observations"] = [];
52
+ this.observations.forEach(obs => {
53
+ resource["observations"].push(obs.toResource);
54
+ });
55
+ return resource;
56
+ }
57
+
58
+ get eligibilityString() {
59
+ return this.eligible ? 'yes' : 'no';
60
+ }
61
+
62
+ static fromResource(resource, entityService) {
63
+ const program = entityService.findByKey("uuid", _ResourceUtil.default.getUUIDFor(resource, "programUUID"), _Program.default.schema.name);
64
+ const subject = entityService.findByKey("uuid", _ResourceUtil.default.getUUIDFor(resource, "subjectUUID"), _Individual.default.schema.name);
65
+
66
+ const subjectProgramEligibility = _General.default.assignFields(resource, new SubjectProgramEligibility(), ["uuid", "voided", "eligible"], ["checkDate"], ["observations"], entityService);
67
+
68
+ subjectProgramEligibility.program = program;
69
+ subjectProgramEligibility.subject = subject;
70
+ return subjectProgramEligibility;
71
+ }
72
+
73
+ static createNew(subjectProgramEligibilityStatus, entityService) {
74
+ const subjectProgramEligibility = new SubjectProgramEligibility();
75
+ subjectProgramEligibility.uuid = _General.default.randomUUID();
76
+ this.buildSubjectProgramEligibility(subjectProgramEligibilityStatus, subjectProgramEligibility, entityService);
77
+ return subjectProgramEligibility;
78
+ }
79
+
80
+ static updateExisting(subjectProgramEligibilityStatus, olderSubjectProgramEligibility, entityService) {
81
+ const subjectProgramEligibility = olderSubjectProgramEligibility.cloneForEdit();
82
+ this.buildSubjectProgramEligibility(subjectProgramEligibilityStatus, subjectProgramEligibility, entityService);
83
+ return subjectProgramEligibility;
84
+ }
85
+
86
+ static buildSubjectProgramEligibility(status, subjectProgramEligibility, entityService) {
87
+ const program = entityService.findByKey("uuid", status.programUUID, _Program.default.schema.name);
88
+ const subject = entityService.findByKey("uuid", status.subjectUUID, _Individual.default.schema.name);
89
+ subjectProgramEligibility.program = program;
90
+ subjectProgramEligibility.subject = subject;
91
+ subjectProgramEligibility.eligible = status.eligible;
92
+ subjectProgramEligibility.checkDate = new Date();
93
+ }
94
+
95
+ static buildFromSubjectProgramEligibilityStatus(subjectProgramEligibilityStatus, olderSubjectProgramEligibility, entityService) {
96
+ return _lodash.default.isNil(olderSubjectProgramEligibility) ? this.createNew(subjectProgramEligibilityStatus, entityService) : this.updateExisting(subjectProgramEligibilityStatus, olderSubjectProgramEligibility, entityService);
97
+ }
98
+
99
+ cloneForEdit() {
100
+ const subjectProgramEligibility = new SubjectProgramEligibility();
101
+ subjectProgramEligibility.uuid = this.uuid;
102
+ subjectProgramEligibility.subject = this.subject;
103
+ subjectProgramEligibility.program = this.program;
104
+ subjectProgramEligibility.checkDate = this.checkDate;
105
+ subjectProgramEligibility.eligible = this.eligible;
106
+ subjectProgramEligibility.voided = this.voided;
107
+ subjectProgramEligibility.observations = _ObservationsHolder.default.clone(this.observations);
108
+ return subjectProgramEligibility;
109
+ }
110
+
111
+ }
112
+
113
+ _defineProperty(SubjectProgramEligibility, "schema", {
114
+ name: "SubjectProgramEligibility",
115
+ primaryKey: "uuid",
116
+ properties: {
117
+ uuid: "string",
118
+ subject: "Individual",
119
+ program: "Program",
120
+ checkDate: "date",
121
+ eligible: {
122
+ type: "bool",
123
+ default: false
124
+ },
125
+ observations: {
126
+ type: "list",
127
+ objectType: "Observation"
128
+ },
129
+ voided: {
130
+ type: "bool",
131
+ default: false
132
+ }
133
+ }
134
+ });
135
+
136
+ var _default = SubjectProgramEligibility;
137
+ exports.default = _default;
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.23.10",
4
+ "version": "1.25.0",
5
5
  "private": false,
6
6
  "repository": {
7
7
  "type": "git",