@icanbwell/bwell-sdk-ts 1.52.0 → 1.53.0-rc.1766074701
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/__version__.d.ts +1 -1
- package/dist/__version__.js +1 -1
- package/dist/api/base/health-space/add-care-team-member-request.d.ts +33 -0
- package/dist/api/base/health-space/add-care-team-member-request.js +36 -0
- package/dist/api/base/health-space/add-care-team-members-request.d.ts +35 -0
- package/dist/api/base/health-space/add-care-team-members-request.js +61 -0
- package/dist/api/base/health-space/health-space-manager.d.ts +86 -1
- package/dist/api/base/health-space/index.d.ts +4 -0
- package/dist/api/base/health-space/index.js +4 -0
- package/dist/api/base/health-space/remove-care-team-member-request.d.ts +34 -0
- package/dist/api/base/health-space/remove-care-team-member-request.js +36 -0
- package/dist/api/base/health-space/update-care-team-member-request.d.ts +55 -0
- package/dist/api/base/health-space/update-care-team-member-request.js +71 -0
- package/dist/api/base/support/create-support-request-request.d.ts +22 -0
- package/dist/api/base/support/create-support-request-request.js +20 -0
- package/dist/api/base/support/delete-support-attachment-request.d.ts +11 -0
- package/dist/api/base/support/delete-support-attachment-request.js +14 -0
- package/dist/api/base/support/index.d.ts +3 -0
- package/dist/api/base/support/index.js +3 -0
- package/dist/api/base/support/support-manager.d.ts +32 -2
- package/dist/api/base/support/upload-support-attachment-request.d.ts +25 -0
- package/dist/api/base/support/upload-support-attachment-request.js +27 -0
- package/dist/api/graphql-api/health-space/add-care-team-member-request-factory.d.ts +20 -0
- package/dist/api/graphql-api/health-space/add-care-team-member-request-factory.js +29 -0
- package/dist/api/graphql-api/health-space/add-care-team-members-request-factory.d.ts +16 -0
- package/dist/api/graphql-api/health-space/add-care-team-members-request-factory.js +23 -0
- package/dist/api/graphql-api/health-space/care-team-factory-utils.d.ts +23 -0
- package/dist/api/graphql-api/health-space/care-team-factory-utils.js +30 -0
- package/dist/api/graphql-api/health-space/graphql-health-space-manager.d.ts +58 -1
- package/dist/api/graphql-api/health-space/graphql-health-space-manager.js +131 -2
- package/dist/api/graphql-api/health-space/index.d.ts +4 -0
- package/dist/api/graphql-api/health-space/index.js +4 -0
- package/dist/api/graphql-api/health-space/remove-care-team-member-request-factory.d.ts +16 -0
- package/dist/api/graphql-api/health-space/remove-care-team-member-request-factory.js +24 -0
- package/dist/api/graphql-api/health-space/update-care-team-member-request-factory.d.ts +16 -0
- package/dist/api/graphql-api/health-space/update-care-team-member-request-factory.js +20 -0
- package/dist/api/graphql-api/support/create-support-request-request-factory.d.ts +6 -0
- package/dist/api/graphql-api/support/create-support-request-request-factory.js +19 -0
- package/dist/api/graphql-api/support/delete-support-attachment-request-factory.d.ts +6 -0
- package/dist/api/graphql-api/support/delete-support-attachment-request-factory.js +10 -0
- package/dist/api/graphql-api/support/graphql-support-manager.d.ts +11 -4
- package/dist/api/graphql-api/support/graphql-support-manager.js +79 -4
- package/dist/api/graphql-api/support/upload-support-attachment-request-factory.d.ts +6 -0
- package/dist/api/graphql-api/support/upload-support-attachment-request-factory.js +11 -0
- package/dist/graphql/operations/index.d.ts +64 -0
- package/dist/graphql/operations/index.js +94 -0
- package/dist/graphql/operations/types.d.ts +80 -2
- package/dist/graphql/schema.d.ts +105 -3
- package/dist/utils/date-utils.d.ts +6 -0
- package/dist/utils/date-utils.js +8 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/package.json +1 -1
package/dist/__version__.d.ts
CHANGED
package/dist/__version__.js
CHANGED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ErrorsCollector, ValidationRequest } from "../../../requests/index.js";
|
|
2
|
+
import { UpdateCareTeamMemberInput } from "./update-care-team-member-request.js";
|
|
3
|
+
/**
|
|
4
|
+
* Input type for adding a single care team member.
|
|
5
|
+
*/
|
|
6
|
+
export type AddCareTeamMemberInput = UpdateCareTeamMemberInput;
|
|
7
|
+
/**
|
|
8
|
+
* Validator class for adding a single care team member.
|
|
9
|
+
* This class reuses the UpdateCareTeamMemberRequestValidator validation logic with required roles.
|
|
10
|
+
*/
|
|
11
|
+
declare class AddCareTeamMemberRequestValidator {
|
|
12
|
+
private updateValidator;
|
|
13
|
+
/**
|
|
14
|
+
* Validates the provided `AddCareTeamMemberInput` data with roles required.
|
|
15
|
+
*
|
|
16
|
+
* @param data - The input data to validate, containing member details to add.
|
|
17
|
+
* @param errors - An instance of `ErrorsCollector` to collect validation errors.
|
|
18
|
+
*/
|
|
19
|
+
validate(data: AddCareTeamMemberInput, errors: ErrorsCollector): void;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Represents a request for adding a single care team member.
|
|
23
|
+
* This class reuses the validation logic from UpdateCareTeamMemberRequest.
|
|
24
|
+
*
|
|
25
|
+
* @extends ValidationRequest<AddCareTeamMemberInput>
|
|
26
|
+
* @category Requests
|
|
27
|
+
* @title AddCareTeamMemberRequest
|
|
28
|
+
* @excerpt Request class for adding a single care team member
|
|
29
|
+
*/
|
|
30
|
+
export declare class AddCareTeamMemberRequest extends ValidationRequest<AddCareTeamMemberInput> {
|
|
31
|
+
protected validator: AddCareTeamMemberRequestValidator;
|
|
32
|
+
}
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ValidationRequest } from "../../../requests/index.js";
|
|
2
|
+
import { UpdateCareTeamMemberRequestValidator, } from "./update-care-team-member-request.js";
|
|
3
|
+
/**
|
|
4
|
+
* Validator class for adding a single care team member.
|
|
5
|
+
* This class reuses the UpdateCareTeamMemberRequestValidator validation logic with required roles.
|
|
6
|
+
*/
|
|
7
|
+
class AddCareTeamMemberRequestValidator {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.updateValidator = new UpdateCareTeamMemberRequestValidator();
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Validates the provided `AddCareTeamMemberInput` data with roles required.
|
|
13
|
+
*
|
|
14
|
+
* @param data - The input data to validate, containing member details to add.
|
|
15
|
+
* @param errors - An instance of `ErrorsCollector` to collect validation errors.
|
|
16
|
+
*/
|
|
17
|
+
validate(data, errors) {
|
|
18
|
+
// For add operations, role is required
|
|
19
|
+
this.updateValidator.validate(data, errors, { requireRole: true });
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Represents a request for adding a single care team member.
|
|
24
|
+
* This class reuses the validation logic from UpdateCareTeamMemberRequest.
|
|
25
|
+
*
|
|
26
|
+
* @extends ValidationRequest<AddCareTeamMemberInput>
|
|
27
|
+
* @category Requests
|
|
28
|
+
* @title AddCareTeamMemberRequest
|
|
29
|
+
* @excerpt Request class for adding a single care team member
|
|
30
|
+
*/
|
|
31
|
+
export class AddCareTeamMemberRequest extends ValidationRequest {
|
|
32
|
+
constructor() {
|
|
33
|
+
super(...arguments);
|
|
34
|
+
this.validator = new AddCareTeamMemberRequestValidator();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ErrorsCollector, ValidationRequest } from "../../../requests/index.js";
|
|
2
|
+
import { AddCareTeamMemberInput } from "./add-care-team-member-request.js";
|
|
3
|
+
/**
|
|
4
|
+
* Input type for adding multiple care team members.
|
|
5
|
+
*/
|
|
6
|
+
export type AddCareTeamMembersInput = {
|
|
7
|
+
/** Array of care team members to add */
|
|
8
|
+
members: AddCareTeamMemberInput[];
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Validator class for adding multiple care team members.
|
|
12
|
+
* This class reuses the UpdateCareTeamMemberRequestValidator for each member.
|
|
13
|
+
*/
|
|
14
|
+
declare class AddCareTeamMembersRequestValidator {
|
|
15
|
+
private updateValidator;
|
|
16
|
+
/**
|
|
17
|
+
* Validates the provided `AddCareTeamMembersInput` data by validating each member individually.
|
|
18
|
+
*
|
|
19
|
+
* @param data - The input data to validate, containing an array of members to add.
|
|
20
|
+
* @param errors - An instance of `ErrorsCollector` to collect validation errors.
|
|
21
|
+
*/
|
|
22
|
+
validate(data: AddCareTeamMembersInput, errors: ErrorsCollector): void;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Represents a request for adding multiple care team members.
|
|
26
|
+
*
|
|
27
|
+
* @extends ValidationRequest<AddCareTeamMembersInput>
|
|
28
|
+
* @category Requests
|
|
29
|
+
* @title AddCareTeamMembersRequest
|
|
30
|
+
* @excerpt Request class for adding multiple care team members
|
|
31
|
+
*/
|
|
32
|
+
export declare class AddCareTeamMembersRequest extends ValidationRequest<AddCareTeamMembersInput> {
|
|
33
|
+
protected validator: AddCareTeamMembersRequestValidator;
|
|
34
|
+
}
|
|
35
|
+
export {};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { ValidationErrorsCollector, ValidationRequest, } from "../../../requests/index.js";
|
|
2
|
+
import { isNotNullOrUndefined } from "../../../utils/type-utils.js";
|
|
3
|
+
import { UpdateCareTeamMemberRequestValidator } from "./update-care-team-member-request.js";
|
|
4
|
+
/**
|
|
5
|
+
* Validator class for adding multiple care team members.
|
|
6
|
+
* This class reuses the UpdateCareTeamMemberRequestValidator for each member.
|
|
7
|
+
*/
|
|
8
|
+
class AddCareTeamMembersRequestValidator {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.updateValidator = new UpdateCareTeamMemberRequestValidator();
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Validates the provided `AddCareTeamMembersInput` data by validating each member individually.
|
|
14
|
+
*
|
|
15
|
+
* @param data - The input data to validate, containing an array of members to add.
|
|
16
|
+
* @param errors - An instance of `ErrorsCollector` to collect validation errors.
|
|
17
|
+
*/
|
|
18
|
+
validate(data, errors) {
|
|
19
|
+
// Validate members array is provided
|
|
20
|
+
if (!isNotNullOrUndefined(data.members)) {
|
|
21
|
+
errors.add("Members array is required");
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
if (data.members.length === 0) {
|
|
25
|
+
errors.add("Members array cannot be empty");
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
// Validate each member using the update validator
|
|
29
|
+
for (let memberIndex = 0; memberIndex < data.members.length; memberIndex++) {
|
|
30
|
+
const member = data.members[memberIndex];
|
|
31
|
+
if (!isNotNullOrUndefined(member)) {
|
|
32
|
+
errors.add(`Member ${memberIndex}: Cannot be null or undefined`);
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
// Create a sub-errors collector to prefix errors with member index
|
|
36
|
+
const memberErrors = new ValidationErrorsCollector();
|
|
37
|
+
// For add operations, each member must include a role
|
|
38
|
+
this.updateValidator.validate(member, memberErrors, {
|
|
39
|
+
requireRole: true,
|
|
40
|
+
});
|
|
41
|
+
// Add member-specific errors with prefix
|
|
42
|
+
for (const errorMessage of memberErrors.errors()) {
|
|
43
|
+
errors.add(`Member ${memberIndex}: ${errorMessage}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Represents a request for adding multiple care team members.
|
|
50
|
+
*
|
|
51
|
+
* @extends ValidationRequest<AddCareTeamMembersInput>
|
|
52
|
+
* @category Requests
|
|
53
|
+
* @title AddCareTeamMembersRequest
|
|
54
|
+
* @excerpt Request class for adding multiple care team members
|
|
55
|
+
*/
|
|
56
|
+
export class AddCareTeamMembersRequest extends ValidationRequest {
|
|
57
|
+
constructor() {
|
|
58
|
+
super(...arguments);
|
|
59
|
+
this.validator = new AddCareTeamMembersRequestValidator();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
import { AppointmentsQueryResults, CancelAppointmentMutationResults, CancelationReasonsQueryResults } from "../../../graphql/operations/types.js";
|
|
1
|
+
import { AddCareTeamMemberMutationResults, AddCareTeamMembersMutationResults, AppointmentsQueryResults, CancelAppointmentMutationResults, CancelationReasonsQueryResults, RemoveCareTeamMemberMutationResults, UpdateCareTeamMemberMutationResults } from "../../../graphql/operations/types.js";
|
|
2
2
|
import { BWellQueryResult, BWellTransactionResult } from "../../../results/index.js";
|
|
3
3
|
import { BaseManagerError } from "../errors.js";
|
|
4
|
+
import { AddCareTeamMemberRequest } from "./add-care-team-member-request.js";
|
|
5
|
+
import { AddCareTeamMembersRequest } from "./add-care-team-members-request.js";
|
|
4
6
|
import { AppointmentsRequest } from "./appointments-request.js";
|
|
5
7
|
import { CancelAppointmentRequest } from "./cancel-appointment-request.js";
|
|
6
8
|
import { CancelationReasonsRequest } from "./cancelationReasons-request.js";
|
|
9
|
+
import { RemoveCareTeamMemberRequest } from "./remove-care-team-member-request.js";
|
|
10
|
+
import { UpdateCareTeamMemberRequest } from "./update-care-team-member-request.js";
|
|
7
11
|
export type AppointmentsResults = AppointmentsQueryResults["appointments"];
|
|
8
12
|
export type CancelAppointmentResults = CancelAppointmentMutationResults["updateAppointment"];
|
|
9
13
|
export type CancelationReasonsResults = CancelationReasonsQueryResults["cancelationReasons"];
|
|
@@ -35,4 +39,85 @@ export interface HealthSpaceManager {
|
|
|
35
39
|
* or an error of type `BaseManagerError`.
|
|
36
40
|
*/
|
|
37
41
|
getCancelationReasons(request: CancelationReasonsRequest): Promise<BWellQueryResult<CancelationReasonsResults, BaseManagerError>>;
|
|
42
|
+
/**
|
|
43
|
+
* Adds a single care team member to a care team.
|
|
44
|
+
*
|
|
45
|
+
* @param request - AddCareTeamMemberRequest with id, type, and role (string array)
|
|
46
|
+
* @returns Promise resolving to mutation result with updated CareTeam resource
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* const result = await sdk.healthSpace.addCareTeamMember(
|
|
51
|
+
* new AddCareTeamMemberRequest({
|
|
52
|
+
* id: "practitioner-123",
|
|
53
|
+
* type: "Practitioner",
|
|
54
|
+
* role: ["Primary care physician"]
|
|
55
|
+
* })
|
|
56
|
+
* );
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
addCareTeamMember(request: AddCareTeamMemberRequest): Promise<BWellTransactionResult<AddCareTeamMemberMutationResults, BaseManagerError>>;
|
|
60
|
+
/**
|
|
61
|
+
* Adds multiple care team members in a single operation.
|
|
62
|
+
*
|
|
63
|
+
* @param request - AddCareTeamMembersRequest with members array (each with id, type, and role)
|
|
64
|
+
* @returns Promise resolving to array of mutation results with updated CareTeam resources
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```typescript
|
|
68
|
+
* const result = await sdk.healthSpace.addCareTeamMembers(
|
|
69
|
+
* new AddCareTeamMembersRequest({
|
|
70
|
+
* members: [
|
|
71
|
+
* {
|
|
72
|
+
* id: "practitioner-123",
|
|
73
|
+
* type: "Practitioner",
|
|
74
|
+
* role: ["Primary care physician"]
|
|
75
|
+
* },
|
|
76
|
+
* {
|
|
77
|
+
* id: "nurse-456",
|
|
78
|
+
* type: "Practitioner",
|
|
79
|
+
* role: ["Registered Nurse"]
|
|
80
|
+
* }
|
|
81
|
+
* ]
|
|
82
|
+
* })
|
|
83
|
+
* );
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
addCareTeamMembers(request: AddCareTeamMembersRequest): Promise<BWellTransactionResult<AddCareTeamMembersMutationResults, BaseManagerError>>;
|
|
87
|
+
/**
|
|
88
|
+
* Removes a care team member from a care team.
|
|
89
|
+
*
|
|
90
|
+
* @param request - RemoveCareTeamMemberRequest with id and type
|
|
91
|
+
* @returns Promise resolving to mutation result with updated CareTeam resource
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```typescript
|
|
95
|
+
* const result = await sdk.healthSpace.removeCareTeamMember(
|
|
96
|
+
* new RemoveCareTeamMemberRequest({
|
|
97
|
+
* id: "practitioner-123",
|
|
98
|
+
* type: "Practitioner",
|
|
99
|
+
* })
|
|
100
|
+
* );
|
|
101
|
+
* ```
|
|
102
|
+
*/
|
|
103
|
+
removeCareTeamMember(request: RemoveCareTeamMemberRequest): Promise<BWellTransactionResult<RemoveCareTeamMemberMutationResults, BaseManagerError>>;
|
|
104
|
+
/**
|
|
105
|
+
* This operation overwrites the member's role(s) with the provided value(s).
|
|
106
|
+
* If you need to preserve existing roles, include them in the role here.
|
|
107
|
+
*
|
|
108
|
+
* @param request - UpdateCareTeamMemberRequest with id, type, and role (string array)
|
|
109
|
+
* @returns Promise resolving to mutation result with updated CareTeam resource
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* ```typescript
|
|
113
|
+
* const result = await sdk.healthSpace.updateCareTeamMember(
|
|
114
|
+
* new UpdateCareTeamMemberRequest({
|
|
115
|
+
* id: "practitioner-123",
|
|
116
|
+
* type: "Practitioner",
|
|
117
|
+
* role: ["Specialist"] // overwrites existing role(s)
|
|
118
|
+
* })
|
|
119
|
+
* );
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
updateCareTeamMember(request: UpdateCareTeamMemberRequest): Promise<BWellTransactionResult<UpdateCareTeamMemberMutationResults, BaseManagerError>>;
|
|
38
123
|
}
|
|
@@ -2,3 +2,7 @@ export { AppointmentsResults, CancelAppointmentResults, HealthSpaceManager, Canc
|
|
|
2
2
|
export { AppointmentsRequest, AppointmentsRequestInput, } from "./appointments-request.js";
|
|
3
3
|
export { CancelAppointmentRequest, CancelAppointmentRequestInput, } from "./cancel-appointment-request.js";
|
|
4
4
|
export { CancelationReasonsRequest, CancelationReasonsRequestInput, } from "./cancelationReasons-request.js";
|
|
5
|
+
export { RemoveCareTeamMemberRequest, RemoveCareTeamMemberInput, } from "./remove-care-team-member-request.js";
|
|
6
|
+
export { AddCareTeamMemberInput, AddCareTeamMemberRequest, } from "./add-care-team-member-request.js";
|
|
7
|
+
export { AddCareTeamMembersRequest, AddCareTeamMembersInput, } from "./add-care-team-members-request.js";
|
|
8
|
+
export { UpdateCareTeamMemberRequest, UpdateCareTeamMemberInput, UpdateCareTeamMemberType, } from "./update-care-team-member-request.js";
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
export { AppointmentsRequest, } from "./appointments-request.js";
|
|
2
2
|
export { CancelAppointmentRequest, } from "./cancel-appointment-request.js";
|
|
3
3
|
export { CancelationReasonsRequest, } from "./cancelationReasons-request.js";
|
|
4
|
+
export { RemoveCareTeamMemberRequest, } from "./remove-care-team-member-request.js";
|
|
5
|
+
export { AddCareTeamMemberRequest, } from "./add-care-team-member-request.js";
|
|
6
|
+
export { AddCareTeamMembersRequest, } from "./add-care-team-members-request.js";
|
|
7
|
+
export { UpdateCareTeamMemberRequest, } from "./update-care-team-member-request.js";
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ErrorsCollector, ValidationRequest } from "../../../requests/index.js";
|
|
2
|
+
import { UpdateCareTeamMemberInput } from "./update-care-team-member-request.js";
|
|
3
|
+
/**
|
|
4
|
+
* Input type for removing care team members.
|
|
5
|
+
* Same structure as UpdateCareTeamMemberInput since we only need id, type, and role to identify the member.
|
|
6
|
+
*/
|
|
7
|
+
export type RemoveCareTeamMemberInput = UpdateCareTeamMemberInput;
|
|
8
|
+
/**
|
|
9
|
+
* Validator class for removing a single care team member.
|
|
10
|
+
* This class reuses the UpdateCareTeamMemberRequestValidator validation logic with optional roles.
|
|
11
|
+
*/
|
|
12
|
+
declare class RemoveCareTeamMemberRequestValidator {
|
|
13
|
+
private updateValidator;
|
|
14
|
+
/**
|
|
15
|
+
* Validates the provided `RemoveCareTeamMemberInput` data with roles optional.
|
|
16
|
+
*
|
|
17
|
+
* @param data - The input data to validate, containing member details to remove.
|
|
18
|
+
* @param errors - An instance of `ErrorsCollector` to collect validation errors.
|
|
19
|
+
*/
|
|
20
|
+
validate(data: RemoveCareTeamMemberInput, errors: ErrorsCollector): void;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Represents a request for removing a single care team member.
|
|
24
|
+
* This class reuses the validation logic from UpdateCareTeamMemberRequest.
|
|
25
|
+
*
|
|
26
|
+
* @extends ValidationRequest<RemoveCareTeamMemberInput>
|
|
27
|
+
* @category Requests
|
|
28
|
+
* @title RemoveCareTeamMemberRequest
|
|
29
|
+
* @excerpt Request class for removing a single care team member
|
|
30
|
+
*/
|
|
31
|
+
export declare class RemoveCareTeamMemberRequest extends ValidationRequest<RemoveCareTeamMemberInput> {
|
|
32
|
+
protected validator: RemoveCareTeamMemberRequestValidator;
|
|
33
|
+
}
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ValidationRequest } from "../../../requests/index.js";
|
|
2
|
+
import { UpdateCareTeamMemberRequestValidator, } from "./update-care-team-member-request.js";
|
|
3
|
+
/**
|
|
4
|
+
* Validator class for removing a single care team member.
|
|
5
|
+
* This class reuses the UpdateCareTeamMemberRequestValidator validation logic with optional roles.
|
|
6
|
+
*/
|
|
7
|
+
class RemoveCareTeamMemberRequestValidator {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.updateValidator = new UpdateCareTeamMemberRequestValidator();
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Validates the provided `RemoveCareTeamMemberInput` data with roles optional.
|
|
13
|
+
*
|
|
14
|
+
* @param data - The input data to validate, containing member details to remove.
|
|
15
|
+
* @param errors - An instance of `ErrorsCollector` to collect validation errors.
|
|
16
|
+
*/
|
|
17
|
+
validate(data, errors) {
|
|
18
|
+
// Delegate to the update validator with requireRole: false for remove operations
|
|
19
|
+
this.updateValidator.validate(data, errors, { requireRole: false });
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Represents a request for removing a single care team member.
|
|
24
|
+
* This class reuses the validation logic from UpdateCareTeamMemberRequest.
|
|
25
|
+
*
|
|
26
|
+
* @extends ValidationRequest<RemoveCareTeamMemberInput>
|
|
27
|
+
* @category Requests
|
|
28
|
+
* @title RemoveCareTeamMemberRequest
|
|
29
|
+
* @excerpt Request class for removing a single care team member
|
|
30
|
+
*/
|
|
31
|
+
export class RemoveCareTeamMemberRequest extends ValidationRequest {
|
|
32
|
+
constructor() {
|
|
33
|
+
super(...arguments);
|
|
34
|
+
this.validator = new RemoveCareTeamMemberRequestValidator();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { CodeableConceptFieldsFragment } from "../../../graphql/operations/types.js";
|
|
2
|
+
import { ErrorsCollector, ValidationRequest } from "../../../requests/index.js";
|
|
3
|
+
/**
|
|
4
|
+
* Supported care team member types based on FHIR resource types.
|
|
5
|
+
*/
|
|
6
|
+
export type UpdateCareTeamMemberType = "Practitioner" | "PractitionerRole" | "Patient" | "RelatedPerson" | "Organization" | "CareTeam";
|
|
7
|
+
/**
|
|
8
|
+
* FHIR CodeableConcept structure for roles (using GraphQL generated types)
|
|
9
|
+
*/
|
|
10
|
+
export type CodeableConcept = CodeableConceptFieldsFragment;
|
|
11
|
+
/**
|
|
12
|
+
* Input type for updating a single care team member.
|
|
13
|
+
* role in the input is expected to be a list of strings (e.g. ["Primary care physician"]).
|
|
14
|
+
*/
|
|
15
|
+
export type UpdateCareTeamMemberInput = {
|
|
16
|
+
/** Resource ID of the care team member */
|
|
17
|
+
id: string;
|
|
18
|
+
/** FHIR resource type of the member */
|
|
19
|
+
type: UpdateCareTeamMemberType;
|
|
20
|
+
/** Array of role strings (preferred) */
|
|
21
|
+
role?: string[];
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Shared validator class for care team member operations.
|
|
25
|
+
* This class provides the core validation logic that can be reused by other request types.
|
|
26
|
+
*/
|
|
27
|
+
export declare class UpdateCareTeamMemberRequestValidator {
|
|
28
|
+
/**
|
|
29
|
+
* Validates the provided `UpdateCareTeamMemberInput` data and collects any validation errors.
|
|
30
|
+
*
|
|
31
|
+
* @param data - The input data to validate, containing member details.
|
|
32
|
+
* @param errors - An instance of `ErrorsCollector` to collect validation errors.
|
|
33
|
+
* @param options - Validation options to customize behavior.
|
|
34
|
+
* @param options.requireRole - Whether the role field is required (default: true).
|
|
35
|
+
*
|
|
36
|
+
* @remarks
|
|
37
|
+
* - The `id` field is required and must be a non-empty string.
|
|
38
|
+
* - The `type` field is required and must be a valid UpdateCareTeamMemberType.
|
|
39
|
+
* - The `role` field validation depends on the `requireRole` option.
|
|
40
|
+
*/
|
|
41
|
+
validate(data: UpdateCareTeamMemberInput, errors: ErrorsCollector, options?: {
|
|
42
|
+
requireRole?: boolean;
|
|
43
|
+
}): void;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Represents a request for updating a single care team member.
|
|
47
|
+
*
|
|
48
|
+
* @extends ValidationRequest<UpdateCareTeamMemberInput>
|
|
49
|
+
* @category Requests
|
|
50
|
+
* @title UpdateCareTeamMemberRequest
|
|
51
|
+
* @excerpt Core request class for single care team member operations
|
|
52
|
+
*/
|
|
53
|
+
export declare class UpdateCareTeamMemberRequest extends ValidationRequest<UpdateCareTeamMemberInput> {
|
|
54
|
+
protected validator: UpdateCareTeamMemberRequestValidator;
|
|
55
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { ValidationRequest } from "../../../requests/index.js";
|
|
2
|
+
import { isBlank, isNotNullOrUndefined } from "../../../utils/index.js";
|
|
3
|
+
/**
|
|
4
|
+
* Shared validator class for care team member operations.
|
|
5
|
+
* This class provides the core validation logic that can be reused by other request types.
|
|
6
|
+
*/
|
|
7
|
+
export class UpdateCareTeamMemberRequestValidator {
|
|
8
|
+
/**
|
|
9
|
+
* Validates the provided `UpdateCareTeamMemberInput` data and collects any validation errors.
|
|
10
|
+
*
|
|
11
|
+
* @param data - The input data to validate, containing member details.
|
|
12
|
+
* @param errors - An instance of `ErrorsCollector` to collect validation errors.
|
|
13
|
+
* @param options - Validation options to customize behavior.
|
|
14
|
+
* @param options.requireRole - Whether the role field is required (default: true).
|
|
15
|
+
*
|
|
16
|
+
* @remarks
|
|
17
|
+
* - The `id` field is required and must be a non-empty string.
|
|
18
|
+
* - The `type` field is required and must be a valid UpdateCareTeamMemberType.
|
|
19
|
+
* - The `role` field validation depends on the `requireRole` option.
|
|
20
|
+
*/
|
|
21
|
+
validate(data, errors, options = {}) {
|
|
22
|
+
const { requireRole = true } = options;
|
|
23
|
+
// Validate id
|
|
24
|
+
if (!isNotNullOrUndefined(data.id)) {
|
|
25
|
+
errors.add("Member id is required");
|
|
26
|
+
}
|
|
27
|
+
else if (isBlank(data.id)) {
|
|
28
|
+
errors.add("Member id cannot be empty");
|
|
29
|
+
}
|
|
30
|
+
else if (data.id.length > 255) {
|
|
31
|
+
errors.add("Member id cannot exceed 255 characters");
|
|
32
|
+
}
|
|
33
|
+
// Validate type
|
|
34
|
+
if (!isNotNullOrUndefined(data.type)) {
|
|
35
|
+
errors.add("Member type is required");
|
|
36
|
+
}
|
|
37
|
+
else if (isBlank(data.type)) {
|
|
38
|
+
errors.add("Member type cannot be empty");
|
|
39
|
+
}
|
|
40
|
+
// Validate role (must be array of non-blank strings when required or provided)
|
|
41
|
+
const roleProvided = isNotNullOrUndefined(data.role);
|
|
42
|
+
if (requireRole && !roleProvided) {
|
|
43
|
+
errors.add("Member role is required");
|
|
44
|
+
}
|
|
45
|
+
if (roleProvided && data.role) {
|
|
46
|
+
for (let roleIndex = 0; roleIndex < data.role.length; roleIndex++) {
|
|
47
|
+
const roleItem = data.role[roleIndex];
|
|
48
|
+
if (!isNotNullOrUndefined(roleItem)) {
|
|
49
|
+
errors.add(`Role ${roleIndex}: Cannot be null or undefined`);
|
|
50
|
+
}
|
|
51
|
+
else if (isBlank(roleItem)) {
|
|
52
|
+
errors.add(`Role ${roleIndex}: Cannot be blank`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Represents a request for updating a single care team member.
|
|
60
|
+
*
|
|
61
|
+
* @extends ValidationRequest<UpdateCareTeamMemberInput>
|
|
62
|
+
* @category Requests
|
|
63
|
+
* @title UpdateCareTeamMemberRequest
|
|
64
|
+
* @excerpt Core request class for single care team member operations
|
|
65
|
+
*/
|
|
66
|
+
export class UpdateCareTeamMemberRequest extends ValidationRequest {
|
|
67
|
+
constructor() {
|
|
68
|
+
super(...arguments);
|
|
69
|
+
this.validator = new UpdateCareTeamMemberRequestValidator();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ErrorsCollector, ValidationRequest, Validator } from "../../../requests/index.js";
|
|
2
|
+
export type CommentInput = {
|
|
3
|
+
body: string;
|
|
4
|
+
uploads?: string[];
|
|
5
|
+
};
|
|
6
|
+
export type SupportRequestFieldsInput = {
|
|
7
|
+
category: string;
|
|
8
|
+
};
|
|
9
|
+
export type CreateSupportRequestRequestInput = {
|
|
10
|
+
comment: CommentInput;
|
|
11
|
+
email?: string;
|
|
12
|
+
fields: SupportRequestFieldsInput;
|
|
13
|
+
name?: string;
|
|
14
|
+
subject: string;
|
|
15
|
+
};
|
|
16
|
+
declare class CreateSupportRequestRequestValidator implements Validator<CreateSupportRequestRequestInput> {
|
|
17
|
+
validate(data: CreateSupportRequestRequestInput, errors: ErrorsCollector): void;
|
|
18
|
+
}
|
|
19
|
+
export declare class CreateSupportRequestRequest extends ValidationRequest<CreateSupportRequestRequestInput> {
|
|
20
|
+
protected validator: CreateSupportRequestRequestValidator;
|
|
21
|
+
}
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ValidationRequest, } from "../../../requests/index.js";
|
|
2
|
+
class CreateSupportRequestRequestValidator {
|
|
3
|
+
validate(data, errors) {
|
|
4
|
+
if (!data.subject.trim()) {
|
|
5
|
+
errors.add("Subject is required");
|
|
6
|
+
}
|
|
7
|
+
if (!data.comment.body.trim()) {
|
|
8
|
+
errors.add("Comment body is required");
|
|
9
|
+
}
|
|
10
|
+
if (!data.fields.category.trim()) {
|
|
11
|
+
errors.add("Category is required");
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export class CreateSupportRequestRequest extends ValidationRequest {
|
|
16
|
+
constructor() {
|
|
17
|
+
super(...arguments);
|
|
18
|
+
this.validator = new CreateSupportRequestRequestValidator();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ErrorsCollector, ValidationRequest, Validator } from "../../../requests/index.js";
|
|
2
|
+
export type DeleteSupportAttachmentRequestInput = {
|
|
3
|
+
attachmentId: string;
|
|
4
|
+
};
|
|
5
|
+
declare class DeleteSupportAttachmentRequestValidator implements Validator<DeleteSupportAttachmentRequestInput> {
|
|
6
|
+
validate(data: DeleteSupportAttachmentRequestInput, errors: ErrorsCollector): void;
|
|
7
|
+
}
|
|
8
|
+
export declare class DeleteSupportAttachmentRequest extends ValidationRequest<DeleteSupportAttachmentRequestInput> {
|
|
9
|
+
protected validator: DeleteSupportAttachmentRequestValidator;
|
|
10
|
+
}
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ValidationRequest, } from "../../../requests/index.js";
|
|
2
|
+
class DeleteSupportAttachmentRequestValidator {
|
|
3
|
+
validate(data, errors) {
|
|
4
|
+
if (!data.attachmentId.trim()) {
|
|
5
|
+
errors.add("Attachment ID is required");
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export class DeleteSupportAttachmentRequest extends ValidationRequest {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
this.validator = new DeleteSupportAttachmentRequestValidator();
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -1,8 +1,15 @@
|
|
|
1
|
-
import type { GetSupportRequestsQueryResults } from "../../../graphql/operations/types.js";
|
|
2
|
-
import type { BWellQueryResult } from "../../../results/index.js";
|
|
1
|
+
import type { CreateSupportRequestMutationResults, DeleteSupportAttachmentMutationResults, GetSupportCategoriesQueryResults, GetSupportRequestsQueryResults, UploadSupportAttachmentMutationResults } from "../../../graphql/operations/types.js";
|
|
2
|
+
import type { BWellQueryResult, BWellTransactionResult } from "../../../results/index.js";
|
|
3
3
|
import type { BaseManagerError } from "../errors.js";
|
|
4
|
+
import { CreateSupportRequestRequest } from "./create-support-request-request.js";
|
|
5
|
+
import { DeleteSupportAttachmentRequest } from "./delete-support-attachment-request.js";
|
|
4
6
|
import { GetSupportRequestsRequest } from "./get-support-requests-request.js";
|
|
7
|
+
import { UploadSupportAttachmentRequest } from "./upload-support-attachment-request.js";
|
|
5
8
|
export type GetSupportRequestsResults = GetSupportRequestsQueryResults["getSupportRequests"];
|
|
9
|
+
export type UploadSupportAttachmentResults = UploadSupportAttachmentMutationResults["uploadSupportAttachment"];
|
|
10
|
+
export type DeleteSupportAttachmentResults = DeleteSupportAttachmentMutationResults["deleteSupportAttachment"];
|
|
11
|
+
export type CreateSupportRequestResults = CreateSupportRequestMutationResults["createSupportRequest"];
|
|
12
|
+
export type GetSupportCategoriesResults = GetSupportCategoriesQueryResults["getSupportCategories"];
|
|
6
13
|
/**
|
|
7
14
|
* The SupportManager interface provides methods for managing support requests.
|
|
8
15
|
*/
|
|
@@ -13,4 +20,27 @@ export interface SupportManager {
|
|
|
13
20
|
* @returns A promise that resolves to a query result with the support requests data.
|
|
14
21
|
*/
|
|
15
22
|
getSupportRequests(request: GetSupportRequestsRequest): Promise<BWellQueryResult<GetSupportRequestsResults, BaseManagerError>>;
|
|
23
|
+
/**
|
|
24
|
+
* Uploads an attachment for a support request.
|
|
25
|
+
* @param request The request containing the file content as a data URI (data:<MIME-type>;base64,<base64-data>) and file name.
|
|
26
|
+
* @returns A promise that resolves to a transaction result with the uploaded attachment data.
|
|
27
|
+
*/
|
|
28
|
+
uploadSupportAttachment(request: UploadSupportAttachmentRequest): Promise<BWellTransactionResult<UploadSupportAttachmentResults, BaseManagerError>>;
|
|
29
|
+
/**
|
|
30
|
+
* Deletes an attachment from a support request.
|
|
31
|
+
* @param request The request containing the attachment ID to delete.
|
|
32
|
+
* @returns A promise that resolves to a transaction result with the deletion status.
|
|
33
|
+
*/
|
|
34
|
+
deleteSupportAttachment(request: DeleteSupportAttachmentRequest): Promise<BWellTransactionResult<DeleteSupportAttachmentResults, BaseManagerError>>;
|
|
35
|
+
/**
|
|
36
|
+
* Creates a new support request.
|
|
37
|
+
* @param request The request containing the support request details (subject, comment, category, etc.).
|
|
38
|
+
* @returns A promise that resolves to a transaction result with the created support request data.
|
|
39
|
+
*/
|
|
40
|
+
createSupportRequest(request: CreateSupportRequestRequest): Promise<BWellTransactionResult<CreateSupportRequestResults, BaseManagerError>>;
|
|
41
|
+
/**
|
|
42
|
+
* Retrieves available support request categories.
|
|
43
|
+
* @returns A promise that resolves to a query result with the list of support categories.
|
|
44
|
+
*/
|
|
45
|
+
getSupportCategories(): Promise<BWellQueryResult<GetSupportCategoriesResults, BaseManagerError>>;
|
|
16
46
|
}
|