@icanbwell/bwell-sdk-ts 1.52.0 → 1.53.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.
Files changed (35) hide show
  1. package/dist/__version__.d.ts +1 -1
  2. package/dist/__version__.js +1 -1
  3. package/dist/api/base/health-space/add-care-team-member-request.d.ts +33 -0
  4. package/dist/api/base/health-space/add-care-team-member-request.js +36 -0
  5. package/dist/api/base/health-space/add-care-team-members-request.d.ts +35 -0
  6. package/dist/api/base/health-space/add-care-team-members-request.js +61 -0
  7. package/dist/api/base/health-space/health-space-manager.d.ts +86 -1
  8. package/dist/api/base/health-space/index.d.ts +4 -0
  9. package/dist/api/base/health-space/index.js +4 -0
  10. package/dist/api/base/health-space/remove-care-team-member-request.d.ts +34 -0
  11. package/dist/api/base/health-space/remove-care-team-member-request.js +36 -0
  12. package/dist/api/base/health-space/update-care-team-member-request.d.ts +55 -0
  13. package/dist/api/base/health-space/update-care-team-member-request.js +71 -0
  14. package/dist/api/graphql-api/health-space/add-care-team-member-request-factory.d.ts +20 -0
  15. package/dist/api/graphql-api/health-space/add-care-team-member-request-factory.js +29 -0
  16. package/dist/api/graphql-api/health-space/add-care-team-members-request-factory.d.ts +16 -0
  17. package/dist/api/graphql-api/health-space/add-care-team-members-request-factory.js +23 -0
  18. package/dist/api/graphql-api/health-space/care-team-factory-utils.d.ts +23 -0
  19. package/dist/api/graphql-api/health-space/care-team-factory-utils.js +30 -0
  20. package/dist/api/graphql-api/health-space/graphql-health-space-manager.d.ts +58 -1
  21. package/dist/api/graphql-api/health-space/graphql-health-space-manager.js +131 -2
  22. package/dist/api/graphql-api/health-space/index.d.ts +4 -0
  23. package/dist/api/graphql-api/health-space/index.js +4 -0
  24. package/dist/api/graphql-api/health-space/remove-care-team-member-request-factory.d.ts +16 -0
  25. package/dist/api/graphql-api/health-space/remove-care-team-member-request-factory.js +24 -0
  26. package/dist/api/graphql-api/health-space/update-care-team-member-request-factory.d.ts +16 -0
  27. package/dist/api/graphql-api/health-space/update-care-team-member-request-factory.js +20 -0
  28. package/dist/graphql/operations/index.d.ts +32 -0
  29. package/dist/graphql/operations/index.js +40 -0
  30. package/dist/graphql/operations/types.d.ts +32 -0
  31. package/dist/utils/date-utils.d.ts +6 -0
  32. package/dist/utils/date-utils.js +8 -0
  33. package/dist/utils/index.d.ts +1 -0
  34. package/dist/utils/index.js +1 -0
  35. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * This file is automatically generated. Please do not edit this file directly.
3
3
  */
4
- export declare const VERSION = "1.52.0";
4
+ export declare const VERSION = "1.53.0";
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * This file is automatically generated. Please do not edit this file directly.
3
3
  */
4
- export const VERSION = "1.52.0";
4
+ export const VERSION = "1.53.0";
@@ -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,20 @@
1
+ import { AddCareTeamMemberMutationVariables } from "../../../graphql/operations/types.js";
2
+ import { RequestFactory } from "../../../requests/index.js";
3
+ import { AddCareTeamMemberRequest } from "../../base/health-space/add-care-team-member-request.js";
4
+ /**
5
+ * Factory class for transforming AddCareTeamMemberRequest objects into GraphQL mutation variables.
6
+ * Handles the conversion between the SDK's domain model and the GraphQL API format.
7
+ * Automatically sets the start date to the current time for active membership.
8
+ *
9
+ * @implements RequestFactory<AddCareTeamMemberRequest, AddCareTeamMemberMutationVariables>
10
+ */
11
+ export declare class AddCareTeamMemberRequestFactory implements RequestFactory<AddCareTeamMemberRequest, AddCareTeamMemberMutationVariables> {
12
+ /**
13
+ * Creates GraphQL mutation variables from an AddCareTeamMemberRequest.
14
+ * Sets the start date to the current time for active membership.
15
+ *
16
+ * @param request - The AddCareTeamMemberRequest to transform
17
+ * @returns AddCareTeamMemberMutationVariables suitable for the GraphQL mutation
18
+ */
19
+ create(request: AddCareTeamMemberRequest): AddCareTeamMemberMutationVariables;
20
+ }
@@ -0,0 +1,29 @@
1
+ import { getCurrentDateTime } from "../../../utils/index.js";
2
+ import { buildCareTeamParticipant } from "./care-team-factory-utils.js";
3
+ /**
4
+ * Factory class for transforming AddCareTeamMemberRequest objects into GraphQL mutation variables.
5
+ * Handles the conversion between the SDK's domain model and the GraphQL API format.
6
+ * Automatically sets the start date to the current time for active membership.
7
+ *
8
+ * @implements RequestFactory<AddCareTeamMemberRequest, AddCareTeamMemberMutationVariables>
9
+ */
10
+ export class AddCareTeamMemberRequestFactory {
11
+ /**
12
+ * Creates GraphQL mutation variables from an AddCareTeamMemberRequest.
13
+ * Sets the start date to the current time for active membership.
14
+ *
15
+ * @param request - The AddCareTeamMemberRequest to transform
16
+ * @returns AddCareTeamMemberMutationVariables suitable for the GraphQL mutation
17
+ */
18
+ create(request) {
19
+ const input = request.data();
20
+ // Use shared participant builder with period for add operation
21
+ const participant = buildCareTeamParticipant(input, {
22
+ start: getCurrentDateTime(),
23
+ end: null,
24
+ });
25
+ return {
26
+ participant,
27
+ };
28
+ }
29
+ }
@@ -0,0 +1,16 @@
1
+ import { AddCareTeamMembersMutationVariables } from "../../../graphql/operations/types.js";
2
+ import { RequestFactory } from "../../../requests/index.js";
3
+ import { AddCareTeamMembersRequest } from "../../base/health-space/add-care-team-members-request.js";
4
+ /**
5
+ * Factory class for transforming AddCareTeamMembersRequest objects into GraphQL mutation variables.
6
+ */
7
+ export declare class AddCareTeamMembersRequestFactory implements RequestFactory<AddCareTeamMembersRequest, AddCareTeamMembersMutationVariables> {
8
+ /**
9
+ * Creates GraphQL mutation variables from an AddCareTeamMembersRequest.
10
+ * Sets the start date to the current time for all members being added.
11
+ *
12
+ * @param request - The AddCareTeamMembersRequest to transform
13
+ * @returns AddCareTeamMembersMutationVariables suitable for the GraphQL mutation
14
+ */
15
+ create(request: AddCareTeamMembersRequest): AddCareTeamMembersMutationVariables;
16
+ }
@@ -0,0 +1,23 @@
1
+ import { getCurrentDateTime } from "../../../utils/index.js";
2
+ import { buildCareTeamParticipant } from "./care-team-factory-utils.js";
3
+ /**
4
+ * Factory class for transforming AddCareTeamMembersRequest objects into GraphQL mutation variables.
5
+ */
6
+ export class AddCareTeamMembersRequestFactory {
7
+ /**
8
+ * Creates GraphQL mutation variables from an AddCareTeamMembersRequest.
9
+ * Sets the start date to the current time for all members being added.
10
+ *
11
+ * @param request - The AddCareTeamMembersRequest to transform
12
+ * @returns AddCareTeamMembersMutationVariables suitable for the GraphQL mutation
13
+ */
14
+ create(request) {
15
+ const input = request.data();
16
+ const currentDateTime = getCurrentDateTime();
17
+ const participants = input.members.map((member) => buildCareTeamParticipant(member, { start: currentDateTime, end: null }));
18
+ // Return with participant array structure expected by GraphQL
19
+ return {
20
+ participant: participants,
21
+ };
22
+ }
23
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Shared utility functions for CareTeam request factories.
3
+ * Provides common participant-building logic used across add/update/remove operations.
4
+ */
5
+ import { CareTeamParticipantInput } from "../../../graphql/schema.js";
6
+ /**
7
+ * Builds a participant object for CareTeam mutations.
8
+ * Used by add, update, and remove care team member factories.
9
+ *
10
+ * @param input - Member input containing id, type, and optional role
11
+ * @param period - Optional period object. If undefined, period is omitted (for update operations).
12
+ * For add: { start: currentDateTime, end: null }
13
+ * For remove: { end: currentDateTime }
14
+ * @returns Participant object formatted for GraphQL mutation
15
+ */
16
+ export declare function buildCareTeamParticipant(input: {
17
+ id: string;
18
+ type: string;
19
+ role?: string[];
20
+ }, period?: {
21
+ start?: string | null;
22
+ end?: string | null;
23
+ } | null): CareTeamParticipantInput;
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Shared utility functions for CareTeam request factories.
3
+ * Provides common participant-building logic used across add/update/remove operations.
4
+ */
5
+ /**
6
+ * Builds a participant object for CareTeam mutations.
7
+ * Used by add, update, and remove care team member factories.
8
+ *
9
+ * @param input - Member input containing id, type, and optional role
10
+ * @param period - Optional period object. If undefined, period is omitted (for update operations).
11
+ * For add: { start: currentDateTime, end: null }
12
+ * For remove: { end: currentDateTime }
13
+ * @returns Participant object formatted for GraphQL mutation
14
+ */
15
+ export function buildCareTeamParticipant(input, period) {
16
+ const roleCodeableConcepts = (input.role || []).map((r) => ({
17
+ text: r,
18
+ }));
19
+ const participant = {
20
+ id: input.id,
21
+ member: {
22
+ reference: `${input.type}/${input.id}`,
23
+ },
24
+ role: roleCodeableConcepts,
25
+ };
26
+ if (period !== undefined) {
27
+ participant.period = period;
28
+ }
29
+ return participant;
30
+ }
@@ -1,8 +1,9 @@
1
1
  import { ValidationError } from "../../../errors/index.js";
2
+ import type { AddCareTeamMemberMutationResults, AddCareTeamMembersMutationResults, RemoveCareTeamMemberMutationResults, UpdateCareTeamMemberMutationResults } from "../../../graphql/operations/types.js";
2
3
  import { type LoggerProvider } from "../../../logger/index.js";
3
4
  import { BWellQueryResult, BWellTransactionResult } from "../../../results/index.js";
4
5
  import type { BaseManagerError } from "../../base/errors.js";
5
- import { AppointmentsRequest, AppointmentsResults, CancelAppointmentRequest, CancelAppointmentResults, CancelationReasonsRequest, CancelationReasonsResults, HealthSpaceManager } from "../../base/index.js";
6
+ import { AddCareTeamMemberRequest, AddCareTeamMembersRequest, AppointmentsRequest, AppointmentsResults, CancelAppointmentRequest, CancelAppointmentResults, CancelationReasonsRequest, CancelationReasonsResults, HealthSpaceManager, RemoveCareTeamMemberRequest, UpdateCareTeamMemberRequest } from "../../base/index.js";
6
7
  import { GraphQLManager } from "../graphql-manager/index.js";
7
8
  import type { GraphQLSdk } from "../graphql-sdk/index.js";
8
9
  export declare class GraphQLHealthSpaceManager extends GraphQLManager implements HealthSpaceManager {
@@ -24,4 +25,60 @@ export declare class GraphQLHealthSpaceManager extends GraphQLManager implements
24
25
  */
25
26
  cancelAppointment(request: CancelAppointmentRequest): Promise<BWellTransactionResult<CancelAppointmentResults, BaseManagerError>>;
26
27
  getCancelationReasons(request: CancelationReasonsRequest): Promise<BWellQueryResult<CancelationReasonsResults, ValidationError | BaseManagerError>>;
28
+ /**
29
+ * Removes a care team member by validating the request and calling the GraphQL mutation.
30
+ *
31
+ * @param request - The RemoveCareTeamMemberRequest containing participant details with member reference and period.
32
+ * @returns A BWellTransactionResult containing the updated CareTeam resource or an error.
33
+ *
34
+ * The method performs the following steps:
35
+ * 1. Validates the request. If validation fails, returns a failure result with validation errors.
36
+ * 2. Calls the remove care team member mutation using the GraphQL SDK.
37
+ * 3. Handles the transaction result:
38
+ * - If the mutation fails, logs the error and returns a failure result.
39
+ * - If successful, returns a success result with the updated CareTeam resource.
40
+ */
41
+ removeCareTeamMember(request: RemoveCareTeamMemberRequest): Promise<BWellTransactionResult<RemoveCareTeamMemberMutationResults, ValidationError | BaseManagerError>>;
42
+ /**
43
+ * Adds a care team member by validating the request and calling the GraphQL mutation.
44
+ *
45
+ * @param request - The AddCareTeamMemberRequest containing participant details with member reference and roles.
46
+ * @returns A BWellTransactionResult containing the updated CareTeam resource or an error.
47
+ *
48
+ * The method performs the following steps:
49
+ * 1. Validates the request. If validation fails, returns a failure result with validation errors.
50
+ * 2. Calls the add care team member mutation using the GraphQL SDK.
51
+ * 3. Handles the transaction result:
52
+ * - If the mutation fails, logs the error and returns a failure result.
53
+ * - If successful, returns a success result with the updated CareTeam resource.
54
+ */
55
+ addCareTeamMember(request: AddCareTeamMemberRequest): Promise<BWellTransactionResult<AddCareTeamMemberMutationResults, ValidationError | BaseManagerError>>;
56
+ /**
57
+ * Adds multiple care team members by validating the request and calling the GraphQL mutation.
58
+ *
59
+ * @param request - The AddCareTeamMembersRequest containing multiple participant details.
60
+ * @returns A BWellTransactionResult containing an array with the updated CareTeam resource or an error.
61
+ *
62
+ * The method performs the following steps:
63
+ * 1. Validates the request. If validation fails, returns a failure result with validation errors.
64
+ * 2. Calls the add care team members mutation using the GraphQL SDK.
65
+ * 3. Handles the transaction result:
66
+ * - If the mutation fails, logs the error and returns a failure result.
67
+ * - If successful, returns a success result with the updated CareTeam resource in an array.
68
+ */
69
+ addCareTeamMembers(request: AddCareTeamMembersRequest): Promise<BWellTransactionResult<AddCareTeamMembersMutationResults, ValidationError | BaseManagerError>>;
70
+ /**
71
+ * Updates a care team member by validating the request and calling the GraphQL mutation.
72
+ *
73
+ * @param request - The UpdateCareTeamMemberRequest containing participant details to update.
74
+ * @returns A BWellTransactionResult containing the updated CareTeam resource or an error.
75
+ *
76
+ * The method performs the following steps:
77
+ * 1. Validates the request. If validation fails, returns a failure result with validation errors.
78
+ * 2. Calls the update care team member mutation using the GraphQL SDK.
79
+ * 3. Handles the transaction result:
80
+ * - If the mutation fails, logs the error and returns a failure result.
81
+ * - If successful, returns a success result with the updated CareTeam resource.
82
+ */
83
+ updateCareTeamMember(request: UpdateCareTeamMemberRequest): Promise<BWellTransactionResult<UpdateCareTeamMemberMutationResults, ValidationError | BaseManagerError>>;
27
84
  }
@@ -18,12 +18,16 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
18
18
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
19
19
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
20
20
  };
21
- var _GraphQLHealthSpaceManager_logger, _GraphQLHealthSpaceManager_sdk, _GraphQLHealthSpaceManager_appointments, _GraphQLHealthSpaceManager_cancelAppointment;
21
+ var _GraphQLHealthSpaceManager_logger, _GraphQLHealthSpaceManager_sdk, _GraphQLHealthSpaceManager_appointments, _GraphQLHealthSpaceManager_cancelAppointment, _GraphQLHealthSpaceManager_removeCareTeamMember, _GraphQLHealthSpaceManager_addCareTeamMember, _GraphQLHealthSpaceManager_addCareTeamMembers, _GraphQLHealthSpaceManager_updateCareTeamMember;
22
22
  import { ConsoleLoggerProvider, } from "../../../logger/index.js";
23
23
  import { BWellQueryResult, BWellTransactionResult, } from "../../../results/index.js";
24
24
  import { GraphQLManager } from "../graphql-manager/index.js";
25
+ import { AddCareTeamMemberRequestFactory } from "./add-care-team-member-request-factory.js";
26
+ import { AddCareTeamMembersRequestFactory } from "./add-care-team-members-request-factory.js";
25
27
  import { AppointmentsRequestFactory } from "./appointments-request-factory.js";
26
28
  import { CancelAppointmentRequestFactory } from "./cancel-appointment-request-factory.js";
29
+ import { RemoveCareTeamMemberRequestFactory } from "./remove-care-team-member-request-factory.js";
30
+ import { UpdateCareTeamMemberRequestFactory } from "./update-care-team-member-request-factory.js";
27
31
  export class GraphQLHealthSpaceManager extends GraphQLManager {
28
32
  constructor(sdk, loggerProvider = new ConsoleLoggerProvider()) {
29
33
  super();
@@ -31,6 +35,10 @@ export class GraphQLHealthSpaceManager extends GraphQLManager {
31
35
  _GraphQLHealthSpaceManager_sdk.set(this, void 0);
32
36
  _GraphQLHealthSpaceManager_appointments.set(this, new AppointmentsRequestFactory());
33
37
  _GraphQLHealthSpaceManager_cancelAppointment.set(this, new CancelAppointmentRequestFactory());
38
+ _GraphQLHealthSpaceManager_removeCareTeamMember.set(this, new RemoveCareTeamMemberRequestFactory());
39
+ _GraphQLHealthSpaceManager_addCareTeamMember.set(this, new AddCareTeamMemberRequestFactory());
40
+ _GraphQLHealthSpaceManager_addCareTeamMembers.set(this, new AddCareTeamMembersRequestFactory());
41
+ _GraphQLHealthSpaceManager_updateCareTeamMember.set(this, new UpdateCareTeamMemberRequestFactory());
34
42
  __classPrivateFieldSet(this, _GraphQLHealthSpaceManager_sdk, sdk, "f");
35
43
  __classPrivateFieldSet(this, _GraphQLHealthSpaceManager_logger, loggerProvider.getLogger("GraphQLHealthSpaceManager"), "f");
36
44
  }
@@ -102,5 +110,126 @@ export class GraphQLHealthSpaceManager extends GraphQLManager {
102
110
  return new BWellQueryResult((_a = result.data) === null || _a === void 0 ? void 0 : _a.cancelationReasons, result.error);
103
111
  });
104
112
  }
113
+ /**
114
+ * Removes a care team member by validating the request and calling the GraphQL mutation.
115
+ *
116
+ * @param request - The RemoveCareTeamMemberRequest containing participant details with member reference and period.
117
+ * @returns A BWellTransactionResult containing the updated CareTeam resource or an error.
118
+ *
119
+ * The method performs the following steps:
120
+ * 1. Validates the request. If validation fails, returns a failure result with validation errors.
121
+ * 2. Calls the remove care team member mutation using the GraphQL SDK.
122
+ * 3. Handles the transaction result:
123
+ * - If the mutation fails, logs the error and returns a failure result.
124
+ * - If successful, returns a success result with the updated CareTeam resource.
125
+ */
126
+ removeCareTeamMember(request) {
127
+ return __awaiter(this, void 0, void 0, function* () {
128
+ const validationResult = this.validateRequest(request);
129
+ if (validationResult.failure()) {
130
+ return validationResult.intoFailure();
131
+ }
132
+ __classPrivateFieldGet(this, _GraphQLHealthSpaceManager_logger, "f").verbose("calling removeCareTeamMember mutation...");
133
+ // For now, prepare the mutation variables and simulate the transaction pattern
134
+ const result = yield this.handleTransaction(__classPrivateFieldGet(this, _GraphQLHealthSpaceManager_sdk, "f").removeCareTeamMember(__classPrivateFieldGet(this, _GraphQLHealthSpaceManager_removeCareTeamMember, "f").create(request)));
135
+ __classPrivateFieldGet(this, _GraphQLHealthSpaceManager_logger, "f").verbose("removeCareTeamMember mutation completed");
136
+ if (result.failure()) {
137
+ __classPrivateFieldGet(this, _GraphQLHealthSpaceManager_logger, "f").error("removeCareTeamMember mutation error", result);
138
+ return result.intoFailure();
139
+ }
140
+ __classPrivateFieldGet(this, _GraphQLHealthSpaceManager_logger, "f").info("successfully called removeCareTeamMember mutation");
141
+ return BWellTransactionResult.success(result.data());
142
+ });
143
+ }
144
+ /**
145
+ * Adds a care team member by validating the request and calling the GraphQL mutation.
146
+ *
147
+ * @param request - The AddCareTeamMemberRequest containing participant details with member reference and roles.
148
+ * @returns A BWellTransactionResult containing the updated CareTeam resource or an error.
149
+ *
150
+ * The method performs the following steps:
151
+ * 1. Validates the request. If validation fails, returns a failure result with validation errors.
152
+ * 2. Calls the add care team member mutation using the GraphQL SDK.
153
+ * 3. Handles the transaction result:
154
+ * - If the mutation fails, logs the error and returns a failure result.
155
+ * - If successful, returns a success result with the updated CareTeam resource.
156
+ */
157
+ addCareTeamMember(request) {
158
+ return __awaiter(this, void 0, void 0, function* () {
159
+ const validationResult = this.validateRequest(request);
160
+ if (validationResult.failure()) {
161
+ return validationResult.intoFailure();
162
+ }
163
+ __classPrivateFieldGet(this, _GraphQLHealthSpaceManager_logger, "f").verbose("calling addCareTeamMember mutation...");
164
+ const result = yield this.handleTransaction(__classPrivateFieldGet(this, _GraphQLHealthSpaceManager_sdk, "f").addCareTeamMember(__classPrivateFieldGet(this, _GraphQLHealthSpaceManager_addCareTeamMember, "f").create(request)));
165
+ __classPrivateFieldGet(this, _GraphQLHealthSpaceManager_logger, "f").verbose("addCareTeamMember mutation completed");
166
+ if (result.failure()) {
167
+ __classPrivateFieldGet(this, _GraphQLHealthSpaceManager_logger, "f").error("addCareTeamMember mutation error", result);
168
+ return result.intoFailure();
169
+ }
170
+ __classPrivateFieldGet(this, _GraphQLHealthSpaceManager_logger, "f").info("successfully called addCareTeamMember mutation");
171
+ return BWellTransactionResult.success(result.data());
172
+ });
173
+ }
174
+ /**
175
+ * Adds multiple care team members by validating the request and calling the GraphQL mutation.
176
+ *
177
+ * @param request - The AddCareTeamMembersRequest containing multiple participant details.
178
+ * @returns A BWellTransactionResult containing an array with the updated CareTeam resource or an error.
179
+ *
180
+ * The method performs the following steps:
181
+ * 1. Validates the request. If validation fails, returns a failure result with validation errors.
182
+ * 2. Calls the add care team members mutation using the GraphQL SDK.
183
+ * 3. Handles the transaction result:
184
+ * - If the mutation fails, logs the error and returns a failure result.
185
+ * - If successful, returns a success result with the updated CareTeam resource in an array.
186
+ */
187
+ addCareTeamMembers(request) {
188
+ return __awaiter(this, void 0, void 0, function* () {
189
+ const validationResult = this.validateRequest(request);
190
+ if (validationResult.failure()) {
191
+ return validationResult.intoFailure();
192
+ }
193
+ __classPrivateFieldGet(this, _GraphQLHealthSpaceManager_logger, "f").verbose("calling addCareTeamMembers mutation...");
194
+ const mutationVariables = __classPrivateFieldGet(this, _GraphQLHealthSpaceManager_addCareTeamMembers, "f").create(request);
195
+ const result = yield this.handleTransaction(__classPrivateFieldGet(this, _GraphQLHealthSpaceManager_sdk, "f").addCareTeamMembers(mutationVariables));
196
+ __classPrivateFieldGet(this, _GraphQLHealthSpaceManager_logger, "f").verbose("addCareTeamMembers mutation completed");
197
+ if (result.failure()) {
198
+ __classPrivateFieldGet(this, _GraphQLHealthSpaceManager_logger, "f").error("addCareTeamMembers mutation error", result);
199
+ return result.intoFailure();
200
+ }
201
+ __classPrivateFieldGet(this, _GraphQLHealthSpaceManager_logger, "f").info("successfully called addCareTeamMembers mutation");
202
+ return BWellTransactionResult.success(result.data());
203
+ });
204
+ }
205
+ /**
206
+ * Updates a care team member by validating the request and calling the GraphQL mutation.
207
+ *
208
+ * @param request - The UpdateCareTeamMemberRequest containing participant details to update.
209
+ * @returns A BWellTransactionResult containing the updated CareTeam resource or an error.
210
+ *
211
+ * The method performs the following steps:
212
+ * 1. Validates the request. If validation fails, returns a failure result with validation errors.
213
+ * 2. Calls the update care team member mutation using the GraphQL SDK.
214
+ * 3. Handles the transaction result:
215
+ * - If the mutation fails, logs the error and returns a failure result.
216
+ * - If successful, returns a success result with the updated CareTeam resource.
217
+ */
218
+ updateCareTeamMember(request) {
219
+ return __awaiter(this, void 0, void 0, function* () {
220
+ const validationResult = this.validateRequest(request);
221
+ if (validationResult.failure()) {
222
+ return validationResult.intoFailure();
223
+ }
224
+ __classPrivateFieldGet(this, _GraphQLHealthSpaceManager_logger, "f").verbose("calling updateCareTeamMember mutation...");
225
+ const mutationVariables = __classPrivateFieldGet(this, _GraphQLHealthSpaceManager_updateCareTeamMember, "f").create(request);
226
+ const result = yield this.handleTransaction(__classPrivateFieldGet(this, _GraphQLHealthSpaceManager_sdk, "f").updateCareTeamMember(mutationVariables));
227
+ __classPrivateFieldGet(this, _GraphQLHealthSpaceManager_logger, "f").verbose("updateCareTeamMember mutation completed");
228
+ if (result.failure()) {
229
+ return result.intoFailure();
230
+ }
231
+ return BWellTransactionResult.success(result.data());
232
+ });
233
+ }
105
234
  }
106
- _GraphQLHealthSpaceManager_logger = new WeakMap(), _GraphQLHealthSpaceManager_sdk = new WeakMap(), _GraphQLHealthSpaceManager_appointments = new WeakMap(), _GraphQLHealthSpaceManager_cancelAppointment = new WeakMap();
235
+ _GraphQLHealthSpaceManager_logger = new WeakMap(), _GraphQLHealthSpaceManager_sdk = new WeakMap(), _GraphQLHealthSpaceManager_appointments = new WeakMap(), _GraphQLHealthSpaceManager_cancelAppointment = new WeakMap(), _GraphQLHealthSpaceManager_removeCareTeamMember = new WeakMap(), _GraphQLHealthSpaceManager_addCareTeamMember = new WeakMap(), _GraphQLHealthSpaceManager_addCareTeamMembers = new WeakMap(), _GraphQLHealthSpaceManager_updateCareTeamMember = new WeakMap();
@@ -1,3 +1,7 @@
1
1
  export * from "./graphql-health-space-manager.js";
2
2
  export * from "./appointments-request-factory.js";
3
3
  export * from "./cancel-appointment-request-factory.js";
4
+ export * from "./remove-care-team-member-request-factory.js";
5
+ export * from "./add-care-team-member-request-factory.js";
6
+ export * from "./add-care-team-members-request-factory.js";
7
+ export * from "./update-care-team-member-request-factory.js";
@@ -1,3 +1,7 @@
1
1
  export * from "./graphql-health-space-manager.js";
2
2
  export * from "./appointments-request-factory.js";
3
3
  export * from "./cancel-appointment-request-factory.js";
4
+ export * from "./remove-care-team-member-request-factory.js";
5
+ export * from "./add-care-team-member-request-factory.js";
6
+ export * from "./add-care-team-members-request-factory.js";
7
+ export * from "./update-care-team-member-request-factory.js";
@@ -0,0 +1,16 @@
1
+ import { RemoveCareTeamMemberMutationVariables } from "../../../graphql/operations/types.js";
2
+ import { RequestFactory } from "../../../requests/index.js";
3
+ import { RemoveCareTeamMemberRequest } from "../../base/health-space/remove-care-team-member-request.js";
4
+ /**
5
+ * Factory class for transforming RemoveCareTeamMemberRequest objects into GraphQL mutation variables.
6
+ */
7
+ export declare class RemoveCareTeamMemberRequestFactory implements RequestFactory<RemoveCareTeamMemberRequest, RemoveCareTeamMemberMutationVariables> {
8
+ /**
9
+ * Creates GraphQL mutation variables from a RemoveCareTeamMemberRequest.
10
+ * Sets the end date to the current time to mark membership termination.
11
+ *
12
+ * @param request - The RemoveCareTeamMemberRequest to transform
13
+ * @returns RemoveCareTeamMemberMutationVariables suitable for the GraphQL mutation
14
+ */
15
+ create(request: RemoveCareTeamMemberRequest): RemoveCareTeamMemberMutationVariables;
16
+ }
@@ -0,0 +1,24 @@
1
+ import { getCurrentDateTime } from "../../../utils/index.js";
2
+ import { buildCareTeamParticipant } from "./care-team-factory-utils.js";
3
+ /**
4
+ * Factory class for transforming RemoveCareTeamMemberRequest objects into GraphQL mutation variables.
5
+ */
6
+ export class RemoveCareTeamMemberRequestFactory {
7
+ /**
8
+ * Creates GraphQL mutation variables from a RemoveCareTeamMemberRequest.
9
+ * Sets the end date to the current time to mark membership termination.
10
+ *
11
+ * @param request - The RemoveCareTeamMemberRequest to transform
12
+ * @returns RemoveCareTeamMemberMutationVariables suitable for the GraphQL mutation
13
+ */
14
+ create(request) {
15
+ const input = request.data();
16
+ // Use shared participant builder with period.end for remove operation
17
+ const participant = buildCareTeamParticipant(input, {
18
+ end: getCurrentDateTime(),
19
+ });
20
+ return {
21
+ participant,
22
+ };
23
+ }
24
+ }
@@ -0,0 +1,16 @@
1
+ import { UpdateCareTeamMemberMutationVariables } from "../../../graphql/operations/types.js";
2
+ import { RequestFactory } from "../../../requests/index.js";
3
+ import { UpdateCareTeamMemberRequest } from "../../base/health-space/update-care-team-member-request.js";
4
+ /**
5
+ * Factory class for transforming UpdateCareTeamMemberRequest objects into GraphQL mutation variables.
6
+ */
7
+ export declare class UpdateCareTeamMemberRequestFactory implements RequestFactory<UpdateCareTeamMemberRequest, UpdateCareTeamMemberMutationVariables> {
8
+ /**
9
+ * Creates GraphQL mutation variables from an UpdateCareTeamMemberRequest.
10
+ * Preserves existing period information while updating participant details.
11
+ *
12
+ * @param request - The UpdateCareTeamMemberRequest to transform
13
+ * @returns UpdateCareTeamMemberMutationVariables suitable for the GraphQL mutation
14
+ */
15
+ create(request: UpdateCareTeamMemberRequest): UpdateCareTeamMemberMutationVariables;
16
+ }
@@ -0,0 +1,20 @@
1
+ import { buildCareTeamParticipant } from "./care-team-factory-utils.js";
2
+ /**
3
+ * Factory class for transforming UpdateCareTeamMemberRequest objects into GraphQL mutation variables.
4
+ */
5
+ export class UpdateCareTeamMemberRequestFactory {
6
+ /**
7
+ * Creates GraphQL mutation variables from an UpdateCareTeamMemberRequest.
8
+ * Preserves existing period information while updating participant details.
9
+ *
10
+ * @param request - The UpdateCareTeamMemberRequest to transform
11
+ * @returns UpdateCareTeamMemberMutationVariables suitable for the GraphQL mutation
12
+ */
13
+ create(request) {
14
+ const input = request.data();
15
+ const participant = buildCareTeamParticipant(input);
16
+ return {
17
+ participant,
18
+ };
19
+ }
20
+ }
@@ -134,6 +134,10 @@ export declare const UpdateMedicationStatementDocument = "\n mutation updateM
134
134
  export declare const AppointmentsDocument = "\n query appointments($source: SearchString, $id: SearchString, $count: Int, $getPagesOffset: Int, $date: SearchDate, $supportingInformation: SearchReference, $sort: [String], $status: SearchToken) {\n appointments(\n _source: $source\n id: $id\n _count: $count\n _getpagesoffset: $getPagesOffset\n date: $date\n supporting_info: $supportingInformation\n _sort: $sort\n status: $status\n ) {\n entry {\n resource {\n id\n status\n meta {\n ...MetaFields\n }\n cancelationReason {\n ...CodeableConceptFields\n }\n extension {\n url\n valueBoolean\n valueInteger\n valueString\n valueExpression {\n description\n name\n language\n expression\n reference\n }\n valueCodeableConcept {\n ...CodeableConceptFields\n }\n valueDateTime\n valueCode\n valueUri\n valueReference {\n reference\n type\n display\n }\n }\n serviceType {\n ...CodeableConceptFields\n }\n start\n end\n supportingInformation {\n id\n reference\n display\n }\n participant {\n id\n type {\n ...CodeableConceptFields\n }\n actor {\n reference\n resource {\n ... on Location {\n resourceType\n __typename\n id\n name\n description\n identifier {\n ...IdentifierFields\n }\n telecom {\n id\n system\n value\n }\n address {\n ...AddressFields\n }\n position {\n latitude\n longitude\n }\n managingOrganization {\n reference\n }\n }\n ... on RelatedPerson {\n __typename\n resourceType\n identifier {\n ...IdentifierFields\n }\n relationship {\n ...CodeableConceptFields\n }\n telecom {\n ...ContactPointFields\n }\n personName: name {\n ...HumanNameFields\n }\n gender\n birthDate\n }\n ... on Practitioner {\n __typename\n practitionerId: id\n practitionerName: name {\n ...HumanNameFields\n }\n identifier {\n ...IdentifierFields\n }\n telecom {\n ...ContactPointFields\n }\n practitionerAddress: address {\n ...AddressFields\n }\n }\n }\n }\n }\n }\n }\n }\n}\n \n fragment MetaFields on Meta {\n versionId\n lastUpdated\n source\n security {\n ...CodingFields\n }\n tag {\n ...CodingFields\n }\n}\n \n fragment CodingFields on Coding {\n system\n code\n display\n}\n \n\n fragment CodeableConceptFields on CodeableConcept {\n text\n coding {\n ...CodingFields\n }\n}\n \n fragment CodingFields on Coding {\n system\n code\n display\n}\n \n\n fragment IdentifierFields on Identifier {\n id\n type {\n ...CodeableConceptFields\n }\n system\n value\n}\n \n fragment CodeableConceptFields on CodeableConcept {\n text\n coding {\n ...CodingFields\n }\n}\n \n fragment CodingFields on Coding {\n system\n code\n display\n}\n \n\n fragment AddressFields on Address {\n use\n type\n text\n line\n city\n district\n state\n postalCode\n country\n}\n \n\n fragment ContactPointFields on ContactPoint {\n id\n system\n value\n use\n rank\n}\n \n\n fragment HumanNameFields on HumanName {\n text\n family\n given\n prefix\n suffix\n}\n ";
135
135
  export declare const CancelAppointmentDocument = "\n mutation cancelAppointment($appointment: UpdateAppointmentInput!) {\n updateAppointment(appointment: $appointment) {\n id\n status\n }\n}\n ";
136
136
  export declare const CancelationReasonsDocument = "\n query cancelationReasons($organization: SearchReference!) {\n cancelationReasons(organization: $organization) {\n id\n title\n url\n concept {\n code\n display\n }\n }\n}\n ";
137
+ export declare const AddCareTeamMemberDocument = "\n mutation addCareTeamMember($participant: CareTeamParticipantInput!) {\n updateCareTeamMember(participant: [$participant]) {\n id\n }\n}\n ";
138
+ export declare const AddCareTeamMembersDocument = "\n mutation addCareTeamMembers($participant: [CareTeamParticipantInput]!) {\n updateCareTeamMember(participant: $participant) {\n id\n }\n}\n ";
139
+ export declare const RemoveCareTeamMemberDocument = "\n mutation removeCareTeamMember($participant: CareTeamParticipantInput!) {\n updateCareTeamMember(participant: [$participant]) {\n id\n }\n}\n ";
140
+ export declare const UpdateCareTeamMemberDocument = "\n mutation updateCareTeamMember($participant: CareTeamParticipantInput!) {\n updateCareTeamMember(participant: [$participant]) {\n id\n }\n}\n ";
137
141
  export declare const AuthenticateDocument = "\n query authenticate {\n getToken {\n accessToken {\n jwtToken\n }\n idToken {\n jwtToken\n }\n refreshToken {\n token\n }\n }\n}\n ";
138
142
  export declare const CreateGuestAccessTokenDocument = "\n mutation createGuestAccessToken($clientKey: String!) {\n createGuestAccessToken(clientKey: $clientKey) {\n accessToken\n refreshToken\n identityToken\n tokenType\n issuedAt\n expiresIn\n }\n}\n ";
139
143
  export declare const ExchangeAuthCodeDocument = "\n mutation ExchangeAuthCode($authCode: String!) {\n exchangeAuthCode(authCode: $authCode) {\n accessToken {\n jwtToken\n }\n idToken {\n jwtToken\n }\n refreshToken {\n token\n }\n }\n}\n ";
@@ -480,6 +484,34 @@ export declare function getSdk(client: GraphQLClient, withWrapper?: SdkFunctionW
480
484
  headers: Headers;
481
485
  status: number;
482
486
  }>;
487
+ addCareTeamMember(variables: Types.AddCareTeamMemberMutationVariables, requestHeaders?: GraphQLClientRequestHeaders): Promise<{
488
+ data: Types.AddCareTeamMemberMutationResults;
489
+ errors?: GraphQLError[];
490
+ extensions?: any;
491
+ headers: Headers;
492
+ status: number;
493
+ }>;
494
+ addCareTeamMembers(variables: Types.AddCareTeamMembersMutationVariables, requestHeaders?: GraphQLClientRequestHeaders): Promise<{
495
+ data: Types.AddCareTeamMembersMutationResults;
496
+ errors?: GraphQLError[];
497
+ extensions?: any;
498
+ headers: Headers;
499
+ status: number;
500
+ }>;
501
+ removeCareTeamMember(variables: Types.RemoveCareTeamMemberMutationVariables, requestHeaders?: GraphQLClientRequestHeaders): Promise<{
502
+ data: Types.RemoveCareTeamMemberMutationResults;
503
+ errors?: GraphQLError[];
504
+ extensions?: any;
505
+ headers: Headers;
506
+ status: number;
507
+ }>;
508
+ updateCareTeamMember(variables: Types.UpdateCareTeamMemberMutationVariables, requestHeaders?: GraphQLClientRequestHeaders): Promise<{
509
+ data: Types.UpdateCareTeamMemberMutationResults;
510
+ errors?: GraphQLError[];
511
+ extensions?: any;
512
+ headers: Headers;
513
+ status: number;
514
+ }>;
483
515
  authenticate(variables?: Types.AuthenticateQueryVariables, requestHeaders?: GraphQLClientRequestHeaders): Promise<{
484
516
  data: Types.AuthenticateQueryResults;
485
517
  errors?: GraphQLError[];
@@ -3393,6 +3393,34 @@ export const CancelationReasonsDocument = `
3393
3393
  }
3394
3394
  }
3395
3395
  `;
3396
+ export const AddCareTeamMemberDocument = `
3397
+ mutation addCareTeamMember($participant: CareTeamParticipantInput!) {
3398
+ updateCareTeamMember(participant: [$participant]) {
3399
+ id
3400
+ }
3401
+ }
3402
+ `;
3403
+ export const AddCareTeamMembersDocument = `
3404
+ mutation addCareTeamMembers($participant: [CareTeamParticipantInput]!) {
3405
+ updateCareTeamMember(participant: $participant) {
3406
+ id
3407
+ }
3408
+ }
3409
+ `;
3410
+ export const RemoveCareTeamMemberDocument = `
3411
+ mutation removeCareTeamMember($participant: CareTeamParticipantInput!) {
3412
+ updateCareTeamMember(participant: [$participant]) {
3413
+ id
3414
+ }
3415
+ }
3416
+ `;
3417
+ export const UpdateCareTeamMemberDocument = `
3418
+ mutation updateCareTeamMember($participant: CareTeamParticipantInput!) {
3419
+ updateCareTeamMember(participant: [$participant]) {
3420
+ id
3421
+ }
3422
+ }
3423
+ `;
3396
3424
  export const AuthenticateDocument = `
3397
3425
  query authenticate {
3398
3426
  getToken {
@@ -4207,6 +4235,18 @@ export function getSdk(client, withWrapper = defaultWrapper) {
4207
4235
  cancelationReasons(variables, requestHeaders) {
4208
4236
  return withWrapper((wrappedRequestHeaders) => client.rawRequest(CancelationReasonsDocument, variables, Object.assign(Object.assign({}, requestHeaders), wrappedRequestHeaders)), 'cancelationReasons', 'query', variables);
4209
4237
  },
4238
+ addCareTeamMember(variables, requestHeaders) {
4239
+ return withWrapper((wrappedRequestHeaders) => client.rawRequest(AddCareTeamMemberDocument, variables, Object.assign(Object.assign({}, requestHeaders), wrappedRequestHeaders)), 'addCareTeamMember', 'mutation', variables);
4240
+ },
4241
+ addCareTeamMembers(variables, requestHeaders) {
4242
+ return withWrapper((wrappedRequestHeaders) => client.rawRequest(AddCareTeamMembersDocument, variables, Object.assign(Object.assign({}, requestHeaders), wrappedRequestHeaders)), 'addCareTeamMembers', 'mutation', variables);
4243
+ },
4244
+ removeCareTeamMember(variables, requestHeaders) {
4245
+ return withWrapper((wrappedRequestHeaders) => client.rawRequest(RemoveCareTeamMemberDocument, variables, Object.assign(Object.assign({}, requestHeaders), wrappedRequestHeaders)), 'removeCareTeamMember', 'mutation', variables);
4246
+ },
4247
+ updateCareTeamMember(variables, requestHeaders) {
4248
+ return withWrapper((wrappedRequestHeaders) => client.rawRequest(UpdateCareTeamMemberDocument, variables, Object.assign(Object.assign({}, requestHeaders), wrappedRequestHeaders)), 'updateCareTeamMember', 'mutation', variables);
4249
+ },
4210
4250
  authenticate(variables, requestHeaders) {
4211
4251
  return withWrapper((wrappedRequestHeaders) => client.rawRequest(AuthenticateDocument, variables, Object.assign(Object.assign({}, requestHeaders), wrappedRequestHeaders)), 'authenticate', 'query', variables);
4212
4252
  },
@@ -18435,6 +18435,38 @@ export type CancelationReasonsQueryResults = {
18435
18435
  } | null> | null;
18436
18436
  };
18437
18437
  };
18438
+ export type AddCareTeamMemberMutationVariables = Types.Exact<{
18439
+ participant: Types.CareTeamParticipantInput;
18440
+ }>;
18441
+ export type AddCareTeamMemberMutationResults = {
18442
+ updateCareTeamMember: {
18443
+ id: string;
18444
+ };
18445
+ };
18446
+ export type AddCareTeamMembersMutationVariables = Types.Exact<{
18447
+ participant: Array<Types.InputMaybe<Types.CareTeamParticipantInput>> | Types.InputMaybe<Types.CareTeamParticipantInput>;
18448
+ }>;
18449
+ export type AddCareTeamMembersMutationResults = {
18450
+ updateCareTeamMember: {
18451
+ id: string;
18452
+ };
18453
+ };
18454
+ export type RemoveCareTeamMemberMutationVariables = Types.Exact<{
18455
+ participant: Types.CareTeamParticipantInput;
18456
+ }>;
18457
+ export type RemoveCareTeamMemberMutationResults = {
18458
+ updateCareTeamMember: {
18459
+ id: string;
18460
+ };
18461
+ };
18462
+ export type UpdateCareTeamMemberMutationVariables = Types.Exact<{
18463
+ participant: Types.CareTeamParticipantInput;
18464
+ }>;
18465
+ export type UpdateCareTeamMemberMutationResults = {
18466
+ updateCareTeamMember: {
18467
+ id: string;
18468
+ };
18469
+ };
18438
18470
  export type AuthenticateQueryVariables = Types.Exact<{
18439
18471
  [key: string]: never;
18440
18472
  }>;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Gets the current datetime in ISO format (with timezone information).
3
+ *
4
+ * @returns Current datetime as ISO string (YYYY-MM-DDTHH:mm:ss.sssZ)
5
+ */
6
+ export declare function getCurrentDateTime(): string;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Gets the current datetime in ISO format (with timezone information).
3
+ *
4
+ * @returns Current datetime as ISO string (YYYY-MM-DDTHH:mm:ss.sssZ)
5
+ */
6
+ export function getCurrentDateTime() {
7
+ return new Date().toISOString();
8
+ }
@@ -1,4 +1,5 @@
1
1
  export * from "./base64.js";
2
+ export * from "./date-utils.js";
2
3
  export * from "./parsing-utils.js";
3
4
  export * from "./runtime.js";
4
5
  export * from "./string-utils.js";
@@ -1,4 +1,5 @@
1
1
  export * from "./base64.js";
2
+ export * from "./date-utils.js";
2
3
  export * from "./parsing-utils.js";
3
4
  export * from "./runtime.js";
4
5
  export * from "./string-utils.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@icanbwell/bwell-sdk-ts",
3
- "version": "1.52.0",
3
+ "version": "1.53.0",
4
4
  "description": "b.well TypeScript SDK",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",