@acorex-platform/module-health-core-client 0.0.21

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.
Files changed (25) hide show
  1. package/fesm2022/acorex-platform-module-health-core-client-contracts.mjs +285 -0
  2. package/fesm2022/acorex-platform-module-health-core-client-contracts.mjs.map +1 -0
  3. package/fesm2022/acorex-platform-module-health-core-client-list-alcohol-consumption-options.query-CFQk6mlY.mjs +61 -0
  4. package/fesm2022/acorex-platform-module-health-core-client-list-alcohol-consumption-options.query-CFQk6mlY.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-module-health-core-client-list-allergy-severity-options.query-BmdEP1TK.mjs +53 -0
  6. package/fesm2022/acorex-platform-module-health-core-client-list-allergy-severity-options.query-BmdEP1TK.mjs.map +1 -0
  7. package/fesm2022/acorex-platform-module-health-core-client-list-chronic-condition-status-options.query-QgsQCqLm.mjs +59 -0
  8. package/fesm2022/acorex-platform-module-health-core-client-list-chronic-condition-status-options.query-QgsQCqLm.mjs.map +1 -0
  9. package/fesm2022/acorex-platform-module-health-core-client-list-health-risk-level-options.query-BtJdBZVT.mjs +54 -0
  10. package/fesm2022/acorex-platform-module-health-core-client-list-health-risk-level-options.query-BtJdBZVT.mjs.map +1 -0
  11. package/fesm2022/acorex-platform-module-health-core-client-list-injury-mechanism-options.query-D7Tjl7eC.mjs +57 -0
  12. package/fesm2022/acorex-platform-module-health-core-client-list-injury-mechanism-options.query-D7Tjl7eC.mjs.map +1 -0
  13. package/fesm2022/acorex-platform-module-health-core-client-list-pain-rate-options.query-C9sGCRmk.mjs +53 -0
  14. package/fesm2022/acorex-platform-module-health-core-client-list-pain-rate-options.query-C9sGCRmk.mjs.map +1 -0
  15. package/fesm2022/acorex-platform-module-health-core-client-list-smoking-status-options.query-EUVhlNLW.mjs +54 -0
  16. package/fesm2022/acorex-platform-module-health-core-client-list-smoking-status-options.query-EUVhlNLW.mjs.map +1 -0
  17. package/fesm2022/acorex-platform-module-health-core-client-list-work-capacity-options.query-YQ6BW3kG.mjs +52 -0
  18. package/fesm2022/acorex-platform-module-health-core-client-list-work-capacity-options.query-YQ6BW3kG.mjs.map +1 -0
  19. package/fesm2022/acorex-platform-module-health-core-client-start-health-record-flow.command-BsB-MPmu.mjs +263 -0
  20. package/fesm2022/acorex-platform-module-health-core-client-start-health-record-flow.command-BsB-MPmu.mjs.map +1 -0
  21. package/fesm2022/acorex-platform-module-health-core-client.mjs +522 -0
  22. package/fesm2022/acorex-platform-module-health-core-client.mjs.map +1 -0
  23. package/package.json +28 -0
  24. package/types/acorex-platform-module-health-core-client-contracts.d.ts +342 -0
  25. package/types/acorex-platform-module-health-core-client.d.ts +32 -0
@@ -0,0 +1,342 @@
1
+ import { AXPEntityProperty, AXPQueryFilter, AXPEntityModel } from '@acorex-platform/framework-shared/entity';
2
+ import { AXPMultiLanguageString, AXPEntityReference, AXPSystemStatusType, AXPCategoryListItem } from '@acorex-platform/framework-shared/core';
3
+ import { AXMMetaDataBuilderValue } from '@acorex-platform/module-data-management-contracts';
4
+
5
+ /** Health catalog scope for questionnaires, question bank items, and workflow definitions. */
6
+ declare const HEALTH_CATALOG_SCOPE = "health-core.health";
7
+
8
+ declare const AXMHealthCoreCommandKeys: {
9
+ readonly HealthEvent: {
10
+ readonly StartFlow: "HealthCore.HealthEvent:StartFlow";
11
+ };
12
+ };
13
+
14
+ declare const AXMHealthCoreMenuKeys: {
15
+ readonly Root: "health-core";
16
+ readonly BloodTypes: "health-core.blood-types";
17
+ readonly BodyParts: "health-core.body-parts";
18
+ readonly DisabilityStatuses: "health-core.disability-statuses";
19
+ readonly InjuryTypes: "health-core.injury-types";
20
+ readonly VaccinationTypes: "health-core.vaccination-types";
21
+ readonly HealthConditionTypes: "health-core.health-condition-types";
22
+ readonly HealthRestrictions: "health-core.health-restrictions";
23
+ readonly HealthRecordTypes: "health-core.health-record-types";
24
+ readonly HealthEvents: "health-core.health-events";
25
+ readonly HealthProfiles: "health-core.health-profiles";
26
+ readonly HealthConditions: "health-core.health-conditions";
27
+ };
28
+
29
+ /**
30
+ * Safety & Risk capabilities used by this module.
31
+ * Domain capability keys for this module. Root groups live in `AXPCommonPermissionGroupKeys` (common contracts).
32
+ */
33
+ declare const AXPSafetyRiskPermissionKeys: {
34
+ readonly Access: "SafetyRisk:Permission:Access";
35
+ readonly MaintainSafety: "SafetyRisk:Permission:MaintainSafety";
36
+ readonly MaintainRisk: "SafetyRisk:Permission:MaintainRisk";
37
+ readonly MaintainHealth: "SafetyRisk:Permission:MaintainHealth";
38
+ readonly MaintainAssessments: "SafetyRisk:Permission:MaintainAssessments";
39
+ readonly Setup: "SafetyRisk:Permission:Setup";
40
+ };
41
+ /**
42
+ * @deprecated Prefer {@link AXPSafetyRiskPermissionKeys}.
43
+ * Legacy nested shape kept so existing imports compile during migration.
44
+ */
45
+ declare const AXMHealthCorePermissionKeys: {
46
+ readonly HealthCore: {
47
+ readonly BloodType: {
48
+ readonly Management: "SafetyRisk:Permission:Setup";
49
+ };
50
+ readonly BodyPart: {
51
+ readonly Management: "SafetyRisk:Permission:Setup";
52
+ };
53
+ readonly DisabilityStatus: {
54
+ readonly Management: "SafetyRisk:Permission:Setup";
55
+ };
56
+ readonly InjuryType: {
57
+ readonly Management: "SafetyRisk:Permission:Setup";
58
+ };
59
+ readonly VaccinationType: {
60
+ readonly Management: "SafetyRisk:Permission:Setup";
61
+ };
62
+ readonly HealthConditionType: {
63
+ readonly Management: "SafetyRisk:Permission:Setup";
64
+ };
65
+ readonly HealthRestriction: {
66
+ readonly Management: "SafetyRisk:Permission:Setup";
67
+ };
68
+ readonly HealthRecordType: {
69
+ readonly Management: "SafetyRisk:Permission:Setup";
70
+ };
71
+ readonly HealthProfile: {
72
+ readonly ViewOwn: "SafetyRisk:Permission:MaintainHealth";
73
+ readonly EditOwn: "SafetyRisk:Permission:MaintainHealth";
74
+ readonly View: "SafetyRisk:Permission:MaintainHealth";
75
+ readonly Manage: "SafetyRisk:Permission:MaintainHealth";
76
+ };
77
+ readonly HealthCondition: {
78
+ readonly ViewOwn: "SafetyRisk:Permission:MaintainHealth";
79
+ readonly EditOwn: "SafetyRisk:Permission:MaintainHealth";
80
+ readonly View: "SafetyRisk:Permission:MaintainHealth";
81
+ readonly Manage: "SafetyRisk:Permission:MaintainHealth";
82
+ };
83
+ readonly HealthEvent: {
84
+ readonly ViewOwn: "SafetyRisk:Permission:MaintainHealth";
85
+ readonly EditOwn: "SafetyRisk:Permission:MaintainHealth";
86
+ readonly View: "SafetyRisk:Permission:MaintainHealth";
87
+ readonly Manage: "SafetyRisk:Permission:MaintainHealth";
88
+ };
89
+ };
90
+ };
91
+
92
+ /** Subject lookup field omitted from create/update when injected from parent context. */
93
+ declare const HEALTH_SUBJECT_PROPERTY_NAMES: readonly ["subject.id"];
94
+ type PropertyLayoutRef = {
95
+ name: string;
96
+ layout?: Record<string, unknown>;
97
+ };
98
+ /** Omits subject lookup from master create/update layouts (subject is injected from context). */
99
+ declare function omitHealthSubjectFromEditLayouts<T extends PropertyLayoutRef>(layouts: T[]): T[];
100
+
101
+ /** Person subject type for health records shared between My Profile and employee detail. */
102
+ declare const HEALTH_PERSON_SUBJECT_TYPE = "PersonCore.Person";
103
+ /** Filters child health records by polymorphic subject on a parent entity detail context. */
104
+ declare function healthSubjectReferenceConditions(subjectType: string): AXPQueryFilter[];
105
+ /**
106
+ * Filters health records for an employee's linked person (`personId` on employee context).
107
+ * Use for all person-scoped health records on employee detail so data matches My Profile.
108
+ */
109
+ declare function healthPersonSubjectReferenceConditions(personIdExpression?: string): AXPQueryFilter[];
110
+ /** Single polymorphic subject lookup (assessment-case `subjectRef.id` pattern). */
111
+ declare function createHealthSubjectLookupProperty(groupId: string, options?: {
112
+ readonly?: boolean;
113
+ }): AXPEntityProperty;
114
+
115
+ declare const RootConfig: {
116
+ readonly config: {
117
+ i18n: string;
118
+ module: string;
119
+ };
120
+ readonly module: {
121
+ readonly name: string;
122
+ readonly title: `@${string}:module.title`;
123
+ readonly icon: "fa-light fa-heart-pulse";
124
+ };
125
+ readonly entities: {
126
+ readonly bloodType: {
127
+ readonly name: "BloodType";
128
+ readonly title: `@${string}:blood-types.entities.blood-type.title`;
129
+ readonly titlePlural: `@${string}:blood-types.entities.blood-type.plural`;
130
+ readonly icon: "fa-light fa-droplet";
131
+ };
132
+ readonly bodyPart: {
133
+ readonly name: "BodyPart";
134
+ readonly title: `@${string}:body-parts.entities.body-part.title`;
135
+ readonly titlePlural: `@${string}:body-parts.entities.body-part.plural`;
136
+ readonly icon: "fa-light fa-person";
137
+ };
138
+ readonly disabilityStatus: {
139
+ readonly name: "DisabilityStatus";
140
+ readonly title: `@${string}:disability-statuses.entities.disability-status.title`;
141
+ readonly titlePlural: `@${string}:disability-statuses.entities.disability-status.plural`;
142
+ readonly icon: "fa-light fa-wheelchair";
143
+ };
144
+ readonly injuryType: {
145
+ readonly name: "InjuryType";
146
+ readonly title: `@${string}:injury-types.entities.injury-type.title`;
147
+ readonly titlePlural: `@${string}:injury-types.entities.injury-type.plural`;
148
+ readonly icon: "fa-light fa-bandage";
149
+ };
150
+ readonly vaccinationType: {
151
+ readonly name: "VaccinationType";
152
+ readonly title: `@${string}:vaccination-types.entities.vaccination-type.title`;
153
+ readonly titlePlural: `@${string}:vaccination-types.entities.vaccination-type.plural`;
154
+ readonly icon: "fa-light fa-syringe";
155
+ };
156
+ readonly healthConditionType: {
157
+ readonly name: "HealthConditionType";
158
+ readonly title: `@${string}:health-condition-types.entities.health-condition-type.title`;
159
+ readonly titlePlural: `@${string}:health-condition-types.entities.health-condition-type.plural`;
160
+ readonly icon: "fa-light fa-file-medical";
161
+ };
162
+ readonly healthRestriction: {
163
+ readonly name: "HealthRestriction";
164
+ readonly title: `@${string}:health-restrictions.entities.health-restriction.title`;
165
+ readonly titlePlural: `@${string}:health-restrictions.entities.health-restriction.plural`;
166
+ readonly icon: "fa-light fa-ban";
167
+ };
168
+ readonly healthRecordType: {
169
+ readonly name: "HealthRecordType";
170
+ readonly title: `@${string}:health-record-types.entities.health-record-type.title`;
171
+ readonly titlePlural: `@${string}:health-record-types.entities.health-record-type.plural`;
172
+ readonly icon: "fa-light fa-notes-medical";
173
+ };
174
+ readonly healthEvent: {
175
+ readonly name: "HealthEvent";
176
+ readonly title: `@${string}:health-events.entities.health-event.title`;
177
+ readonly titlePlural: `@${string}:health-events.entities.health-event.plural`;
178
+ readonly icon: "fa-light fa-file-medical";
179
+ };
180
+ readonly healthProfile: {
181
+ readonly name: "HealthProfile";
182
+ readonly title: `@${string}:health-profiles.entities.health-profile.title`;
183
+ readonly titlePlural: `@${string}:health-profiles.entities.health-profile.plural`;
184
+ readonly icon: "fa-light fa-heart-pulse";
185
+ };
186
+ readonly healthCondition: {
187
+ readonly name: "HealthCondition";
188
+ readonly title: `@${string}:health-conditions.entities.health-condition.title`;
189
+ readonly titlePlural: `@${string}:health-conditions.entities.health-condition.plural`;
190
+ readonly icon: "fa-light fa-file-medical";
191
+ };
192
+ };
193
+ readonly queries: {
194
+ readonly reports: {
195
+ readonly getHealthEventsByType: `${string}:Reports:GetHealthEventsByType`;
196
+ readonly getWorkplaceInjuries: `${string}:Reports:GetWorkplaceInjuries`;
197
+ readonly getActiveWorkRestrictions: `${string}:Reports:GetActiveWorkRestrictions`;
198
+ readonly getFitnessForWorkStatus: `${string}:Reports:GetFitnessForWorkStatus`;
199
+ readonly getVaccinationCoverage: `${string}:Reports:GetVaccinationCoverage`;
200
+ readonly getHealthRiskDistribution: `${string}:Reports:GetHealthRiskDistribution`;
201
+ readonly getIncompleteHealthProfiles: `${string}:Reports:GetIncompleteHealthProfiles`;
202
+ readonly getIncompleteHealthProfileEmployees: `${string}:Reports:GetIncompleteHealthProfileEmployees`;
203
+ };
204
+ readonly dashboard: {
205
+ readonly healthEventsTrendLine: `${string}:Dashboard:HealthEventsTrendLine`;
206
+ };
207
+ };
208
+ };
209
+
210
+ interface AXMHealthCoreBloodTypeEntityModel extends AXPEntityModel<string> {
211
+ title: AXPMultiLanguageString;
212
+ description?: AXPMultiLanguageString | null;
213
+ }
214
+
215
+ interface AXMHealthCoreBodyPartEntityModel extends AXPEntityModel<string> {
216
+ title: AXPMultiLanguageString;
217
+ description?: AXPMultiLanguageString | null;
218
+ }
219
+
220
+ interface AXMHealthCoreDisabilityStatusEntityModel extends AXPEntityModel<string> {
221
+ title: AXPMultiLanguageString;
222
+ description?: AXPMultiLanguageString | null;
223
+ }
224
+
225
+ interface AXMHealthCoreHealthConditionRestrictionItem {
226
+ restrictionId: string;
227
+ restriction?: {
228
+ id: string;
229
+ title?: unknown;
230
+ };
231
+ startDate?: Date | string;
232
+ endDate?: Date | string;
233
+ }
234
+ interface AXMHealthCoreHealthConditionEntityModel extends AXPEntityModel<string> {
235
+ subject: AXPEntityReference;
236
+ conditionTypeId: string;
237
+ conditionType?: {
238
+ id: string;
239
+ title?: unknown;
240
+ kind?: string;
241
+ };
242
+ diagnosedDate?: Date | string;
243
+ restrictions?: AXMHealthCoreHealthConditionRestrictionItem[];
244
+ notes?: string;
245
+ }
246
+
247
+ type AXMHealthCoreHealthConditionKind = 'allergy' | 'chronic';
248
+ interface AXMHealthCoreHealthConditionTypeEntityModel extends AXPEntityModel<string> {
249
+ title: unknown;
250
+ kind: AXMHealthCoreHealthConditionKind;
251
+ description?: unknown;
252
+ suggestedRestrictionIds?: string[];
253
+ suggestedRestrictions?: Array<{
254
+ id: string;
255
+ title: AXPMultiLanguageString;
256
+ }>;
257
+ metaDataList?: AXMMetaDataBuilderValue;
258
+ }
259
+
260
+ type AXMHealthCoreHealthEventStatus = AXPSystemStatusType.InProgress | AXPSystemStatusType.WaitingSignOff | AXPSystemStatusType.Completed | AXPSystemStatusType.Cancelled;
261
+ interface AXMHealthCoreHealthEventEntityModel extends AXPEntityModel<string> {
262
+ subject: AXPEntityReference;
263
+ recordTypeId: string;
264
+ recordType?: {
265
+ id: string;
266
+ title?: AXPMultiLanguageString;
267
+ };
268
+ occurredDate?: Date | string;
269
+ endDate?: Date | string | null;
270
+ provider?: string;
271
+ facility?: string;
272
+ notes?: string;
273
+ employeeSignature?: string;
274
+ employeeSignedAt?: Date | string;
275
+ managerSignature?: string;
276
+ managerSignedAt?: Date | string;
277
+ statusId?: AXMHealthCoreHealthEventStatus;
278
+ status?: {
279
+ id: AXMHealthCoreHealthEventStatus;
280
+ title?: string;
281
+ };
282
+ }
283
+
284
+ interface AXMHealthCoreHealthProfileEntityModel extends AXPEntityModel<string> {
285
+ subject: AXPEntityReference;
286
+ bloodTypeId?: string;
287
+ bloodType?: {
288
+ id: string;
289
+ title?: unknown;
290
+ };
291
+ disabilityStatusId?: string;
292
+ disabilityStatus?: {
293
+ id: string;
294
+ title?: unknown;
295
+ };
296
+ smokingStatus?: string;
297
+ alcoholConsumption?: string;
298
+ healthRiskLevel?: string;
299
+ doctorName?: string;
300
+ doctorNumber?: string;
301
+ emergencyContactName?: string;
302
+ emergencyContactPhone?: string;
303
+ emergencyContactEmail?: string;
304
+ notes?: string;
305
+ }
306
+
307
+ /** Workflow template binding and admin-configured default inputs for health record types. */
308
+ interface AXMHealthCoreHealthRecordTypeWorkflowConfig {
309
+ workflowDefinitionId: string;
310
+ workflowName: string;
311
+ defaultInput?: Record<string, unknown>;
312
+ }
313
+ /**
314
+ * Defines workflow defaults, questionnaire, and metadata schema for health timeline records.
315
+ */
316
+ interface AXMHealthCoreHealthRecordTypeEntityModel extends AXPEntityModel<string> {
317
+ title: AXPMultiLanguageString;
318
+ description?: AXPMultiLanguageString;
319
+ workflowConfig?: AXMHealthCoreHealthRecordTypeWorkflowConfig | null;
320
+ icon?: string;
321
+ metaDataList?: AXMMetaDataBuilderValue;
322
+ }
323
+
324
+ interface AXMHealthCoreHealthRestrictionEntityModel extends AXPEntityModel<string> {
325
+ title: AXPMultiLanguageString;
326
+ description?: AXPMultiLanguageString;
327
+ categoryIds?: string[];
328
+ categories?: AXPCategoryListItem[];
329
+ }
330
+
331
+ interface AXMHealthCoreInjuryTypeEntityModel extends AXPEntityModel<string> {
332
+ title: AXPMultiLanguageString;
333
+ description?: AXPMultiLanguageString | null;
334
+ }
335
+
336
+ interface AXMHealthCoreVaccinationTypeEntityModel extends AXPEntityModel<string> {
337
+ title: AXPMultiLanguageString;
338
+ description?: AXPMultiLanguageString | null;
339
+ }
340
+
341
+ export { AXMHealthCoreCommandKeys, AXMHealthCoreMenuKeys, AXMHealthCorePermissionKeys, AXPSafetyRiskPermissionKeys, HEALTH_CATALOG_SCOPE, HEALTH_PERSON_SUBJECT_TYPE, HEALTH_SUBJECT_PROPERTY_NAMES, RootConfig, createHealthSubjectLookupProperty, healthPersonSubjectReferenceConditions, healthSubjectReferenceConditions, omitHealthSubjectFromEditLayouts };
342
+ export type { AXMHealthCoreBloodTypeEntityModel, AXMHealthCoreBodyPartEntityModel, AXMHealthCoreDisabilityStatusEntityModel, AXMHealthCoreHealthConditionEntityModel, AXMHealthCoreHealthConditionKind, AXMHealthCoreHealthConditionRestrictionItem, AXMHealthCoreHealthConditionTypeEntityModel, AXMHealthCoreHealthEventEntityModel, AXMHealthCoreHealthEventStatus, AXMHealthCoreHealthProfileEntityModel, AXMHealthCoreHealthRecordTypeEntityModel, AXMHealthCoreHealthRecordTypeWorkflowConfig, AXMHealthCoreHealthRestrictionEntityModel, AXMHealthCoreInjuryTypeEntityModel, AXMHealthCoreVaccinationTypeEntityModel };
@@ -0,0 +1,32 @@
1
+ import * as i0 from '@angular/core';
2
+ import * as i1 from '@acorex-platform/framework-client/runtime';
3
+ import { AXPMenuProvider, AXPMenuProviderContext } from '@acorex-platform/framework-client/common';
4
+ import { AXPPermissionDefinitionProvider, AXPPermissionDefinitionProviderContext } from '@acorex-platform/framework-client/auth';
5
+
6
+ declare class AXMHealthCoreHealthEventFeatureModule {
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMHealthCoreHealthEventFeatureModule, never>;
8
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXMHealthCoreHealthEventFeatureModule, never, [typeof i1.AXPRuntimeModule], never>;
9
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXMHealthCoreHealthEventFeatureModule>;
10
+ }
11
+
12
+ declare class AXMHealthCoreModule {
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMHealthCoreModule, never>;
14
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXMHealthCoreModule, never, [typeof i1.AXPRuntimeModule, typeof AXMHealthCoreHealthEventFeatureModule], never>;
15
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXMHealthCoreModule>;
16
+ }
17
+
18
+ declare class AXMHealthCoreMenuProvider implements AXPMenuProvider {
19
+ private readonly entityService;
20
+ provide(context: AXPMenuProviderContext): Promise<void>;
21
+ }
22
+
23
+ /**
24
+ * Registers health capabilities into the shared Safety & Risk group.
25
+ */
26
+ declare class AXMHealthCorePermissionDefinitionProvider implements AXPPermissionDefinitionProvider {
27
+ define(context: AXPPermissionDefinitionProviderContext): Promise<void>;
28
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMHealthCorePermissionDefinitionProvider, never>;
29
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXMHealthCorePermissionDefinitionProvider>;
30
+ }
31
+
32
+ export { AXMHealthCoreMenuProvider, AXMHealthCoreModule, AXMHealthCorePermissionDefinitionProvider };