@quesmed/types 2.6.241 → 2.6.243

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.
@@ -18,6 +18,8 @@ export interface IOsceMarksheetMark {
18
18
  id: Id;
19
19
  index: number;
20
20
  mark: number | null;
21
+ reason?: string;
22
+ suggestion?: string;
21
23
  selectedChoice: Nullable<EPaceMarkType>;
22
24
  osceMarksheetId: Id;
23
25
  osceMarksheet?: IOsceMarksheet;
@@ -43,7 +45,8 @@ export declare enum EOsceMarksheetAction {
43
45
  LEFT = 8,
44
46
  KICK = 9,
45
47
  ROLE_CHANGE = 10,
46
- STATE_CHANGE = 11
48
+ STATE_CHANGE = 11,
49
+ PHASE_CHANGE = 12
47
50
  }
48
51
  export declare enum EOsceMarksheetState {
49
52
  LOBBY = 0,
@@ -52,6 +55,35 @@ export declare enum EOsceMarksheetState {
52
55
  STATION = 3,
53
56
  RESULT = 4
54
57
  }
58
+ export declare enum EOsceMarksheetMode {
59
+ STANDARD = "STANDARD",
60
+ CHAT = "CHAT",
61
+ VOICE = "VOICE"
62
+ }
63
+ export declare enum EOsceStationPhase {
64
+ PATIENT = "PATIENT",
65
+ EXAMINER = "EXAMINER"
66
+ }
67
+ export interface IOsceMarksheetMessage {
68
+ id: Id;
69
+ type: string;
70
+ content: string;
71
+ createdAt: number | Date;
72
+ phase: EOsceStationPhase;
73
+ }
74
+ export interface IOsceMarksheetHeaderFeedback {
75
+ header: string;
76
+ summary: string;
77
+ strengths: string[];
78
+ improvements: string[];
79
+ }
80
+ export interface IOsceMarksheetSummary {
81
+ commentary: string;
82
+ overallSummary: string;
83
+ strengths: string[];
84
+ improvements: string[];
85
+ headerFeedback: IOsceMarksheetHeaderFeedback[];
86
+ }
55
87
  export interface IOsceMarksheet {
56
88
  id: Id;
57
89
  createdAt: number | Date;
@@ -88,6 +120,11 @@ export interface IOsceMarksheet {
88
120
  entitlement: IEntitlement;
89
121
  entitlementId: EProductType | EEntitlementType;
90
122
  isTimed: boolean;
123
+ phase: EOsceStationPhase;
124
+ mode: EOsceMarksheetMode;
125
+ summary: IOsceMarksheetSummary | null;
126
+ messages: IOsceMarksheetMessage[] | null;
127
+ transcript: string | null;
91
128
  }
92
129
  export interface IDashboardOsce {
93
130
  lastSessionId: string;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createTimerPayload = exports.EOsceStage = exports.EOsceTimerState = exports.EOsceMarksheetState = exports.EOsceMarksheetAction = exports.EOsceRoles = void 0;
3
+ exports.createTimerPayload = exports.EOsceStage = exports.EOsceTimerState = exports.EOsceStationPhase = exports.EOsceMarksheetMode = exports.EOsceMarksheetState = exports.EOsceMarksheetAction = exports.EOsceRoles = void 0;
4
4
  const utils_1 = require("../utils");
5
5
  var EOsceRoles;
6
6
  (function (EOsceRoles) {
@@ -24,6 +24,7 @@ var EOsceMarksheetAction;
24
24
  EOsceMarksheetAction[EOsceMarksheetAction["KICK"] = 9] = "KICK";
25
25
  EOsceMarksheetAction[EOsceMarksheetAction["ROLE_CHANGE"] = 10] = "ROLE_CHANGE";
26
26
  EOsceMarksheetAction[EOsceMarksheetAction["STATE_CHANGE"] = 11] = "STATE_CHANGE";
27
+ EOsceMarksheetAction[EOsceMarksheetAction["PHASE_CHANGE"] = 12] = "PHASE_CHANGE";
27
28
  })(EOsceMarksheetAction = exports.EOsceMarksheetAction || (exports.EOsceMarksheetAction = {}));
28
29
  var EOsceMarksheetState;
29
30
  (function (EOsceMarksheetState) {
@@ -33,6 +34,17 @@ var EOsceMarksheetState;
33
34
  EOsceMarksheetState[EOsceMarksheetState["STATION"] = 3] = "STATION";
34
35
  EOsceMarksheetState[EOsceMarksheetState["RESULT"] = 4] = "RESULT";
35
36
  })(EOsceMarksheetState = exports.EOsceMarksheetState || (exports.EOsceMarksheetState = {}));
37
+ var EOsceMarksheetMode;
38
+ (function (EOsceMarksheetMode) {
39
+ EOsceMarksheetMode["STANDARD"] = "STANDARD";
40
+ EOsceMarksheetMode["CHAT"] = "CHAT";
41
+ EOsceMarksheetMode["VOICE"] = "VOICE";
42
+ })(EOsceMarksheetMode = exports.EOsceMarksheetMode || (exports.EOsceMarksheetMode = {}));
43
+ var EOsceStationPhase;
44
+ (function (EOsceStationPhase) {
45
+ EOsceStationPhase["PATIENT"] = "PATIENT";
46
+ EOsceStationPhase["EXAMINER"] = "EXAMINER";
47
+ })(EOsceStationPhase = exports.EOsceStationPhase || (exports.EOsceStationPhase = {}));
36
48
  var EOsceTimerState;
37
49
  (function (EOsceTimerState) {
38
50
  EOsceTimerState[EOsceTimerState["START"] = 0] = "START";
@@ -62,6 +62,7 @@ export interface IOsceStation {
62
62
  totalMarks: number;
63
63
  completedMarks: number;
64
64
  topics?: ITopic[];
65
+ picture: IPicture | null;
65
66
  candidatePictures?: IPicture[];
66
67
  actorPictures?: IPicture[];
67
68
  examinerPictures?: IPicture[];
@@ -1,9 +1,13 @@
1
1
  export declare const OSCE_STATION_MARK_FIELDS: import("@apollo/client").DocumentNode;
2
2
  export declare const OSCE_STATION_FIELDS: import("@apollo/client").DocumentNode;
3
3
  export declare const OSCE_MARKSHEET_MARK_FIELDS: import("@apollo/client").DocumentNode;
4
+ export declare const OSCE_MARKSHEET_MESSAGE_FIELDS: import("@apollo/client").DocumentNode;
5
+ export declare const OSCE_MARKSHEET_RESULT_FIELDS: import("@apollo/client").DocumentNode;
4
6
  export declare const OSCE_MARKSHEET_FIELDS: import("@apollo/client").DocumentNode;
5
7
  export declare const OSCE_MATCHMAKING_ACTION_FIELDS: import("@apollo/client").DocumentNode;
6
8
  export declare const STATION_CONCEPT_FRAGMENT: import("@apollo/client").DocumentNode;
7
9
  export declare const COMPLETED_OSCE_MARKSHEET_FRAGMENT: import("@apollo/client").DocumentNode;
10
+ export declare const AUTO_MARKED_OSCE_MARKSHEET_FRAGMENT: import("@apollo/client").DocumentNode;
8
11
  export declare const COMPLETED_OSCE_STATION_FRAGMENT: import("@apollo/client").DocumentNode;
9
12
  export declare const UPSERT_STATION_NOTE_FRAGMENT: import("@apollo/client").DocumentNode;
13
+ export declare const AUTO_MARKED_OSCE_MARKSHEET_MARK_FIELDS: import("@apollo/client").DocumentNode;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UPSERT_STATION_NOTE_FRAGMENT = exports.COMPLETED_OSCE_STATION_FRAGMENT = exports.COMPLETED_OSCE_MARKSHEET_FRAGMENT = exports.STATION_CONCEPT_FRAGMENT = exports.OSCE_MATCHMAKING_ACTION_FIELDS = exports.OSCE_MARKSHEET_FIELDS = exports.OSCE_MARKSHEET_MARK_FIELDS = exports.OSCE_STATION_FIELDS = exports.OSCE_STATION_MARK_FIELDS = void 0;
3
+ exports.AUTO_MARKED_OSCE_MARKSHEET_MARK_FIELDS = exports.UPSERT_STATION_NOTE_FRAGMENT = exports.COMPLETED_OSCE_STATION_FRAGMENT = exports.AUTO_MARKED_OSCE_MARKSHEET_FRAGMENT = exports.COMPLETED_OSCE_MARKSHEET_FRAGMENT = exports.STATION_CONCEPT_FRAGMENT = exports.OSCE_MATCHMAKING_ACTION_FIELDS = exports.OSCE_MARKSHEET_FIELDS = exports.OSCE_MARKSHEET_RESULT_FIELDS = exports.OSCE_MARKSHEET_MESSAGE_FIELDS = exports.OSCE_MARKSHEET_MARK_FIELDS = exports.OSCE_STATION_FIELDS = exports.OSCE_STATION_MARK_FIELDS = void 0;
4
4
  const client_1 = require("@apollo/client");
5
5
  const picture_1 = require("./picture");
6
6
  const video_1 = require("./video");
@@ -29,6 +29,8 @@ exports.OSCE_STATION_FIELDS = (0, client_1.gql) `
29
29
  name
30
30
  hiddenName
31
31
  status
32
+ aiEnabled
33
+ examinerQuestions
32
34
  userNote {
33
35
  id
34
36
  userId
@@ -59,6 +61,9 @@ exports.OSCE_STATION_FIELDS = (0, client_1.gql) `
59
61
  id
60
62
  name
61
63
  }
64
+ picture {
65
+ ...PictureFields
66
+ }
62
67
  candidatePictures {
63
68
  ...PictureFields
64
69
  }
@@ -94,8 +99,42 @@ exports.OSCE_MARKSHEET_MARK_FIELDS = (0, client_1.gql) `
94
99
  }
95
100
  }
96
101
  `;
102
+ exports.OSCE_MARKSHEET_MESSAGE_FIELDS = (0, client_1.gql) `
103
+ fragment OsceMarksheetMessageFields on OsceMarksheetMessage {
104
+ id
105
+ type
106
+ content
107
+ createdAt
108
+ phase
109
+ }
110
+ `;
111
+ exports.OSCE_MARKSHEET_RESULT_FIELDS = (0, client_1.gql) `
112
+ ${exports.OSCE_MARKSHEET_MESSAGE_FIELDS}
113
+ fragment OsceMarksheetResultFields on OsceMarksheet {
114
+ feedback
115
+ summary {
116
+ commentary
117
+ overallSummary
118
+ strengths
119
+ improvements
120
+ headerFeedback {
121
+ header
122
+ summary
123
+ strengths
124
+ improvements
125
+ }
126
+ }
127
+ transcript
128
+ messages {
129
+ ...OsceMarksheetMessageFields
130
+ }
131
+ score
132
+ globalScore
133
+ }
134
+ `;
97
135
  exports.OSCE_MARKSHEET_FIELDS = (0, client_1.gql) `
98
136
  ${exports.OSCE_MARKSHEET_MARK_FIELDS}
137
+ ${exports.OSCE_MARKSHEET_RESULT_FIELDS}
99
138
  fragment OsceMarksheetFields on OsceMarksheet {
100
139
  id
101
140
  createdAt
@@ -103,10 +142,9 @@ exports.OSCE_MARKSHEET_FIELDS = (0, client_1.gql) `
103
142
  timeTaken
104
143
  osceStationId
105
144
  solo
106
- globalScore
107
- score
108
- feedback
145
+ mode
109
146
  agoraId
147
+ phase
110
148
  sessionId
111
149
  isTimed
112
150
  readingTime
@@ -142,6 +180,7 @@ exports.OSCE_MARKSHEET_FIELDS = (0, client_1.gql) `
142
180
  }
143
181
  state
144
182
  completed
183
+ ...OsceMarksheetResultFields
145
184
  }
146
185
  `;
147
186
  exports.OSCE_MATCHMAKING_ACTION_FIELDS = (0, client_1.gql) `
@@ -172,6 +211,14 @@ exports.COMPLETED_OSCE_MARKSHEET_FRAGMENT = (0, client_1.gql) `
172
211
  endedAt
173
212
  }
174
213
  `;
214
+ exports.AUTO_MARKED_OSCE_MARKSHEET_FRAGMENT = (0, client_1.gql) `
215
+ fragment AutoMarkedOsceMarksheetFragment on OsceMarksheet {
216
+ transcript
217
+ feedback
218
+ score
219
+ globalScore
220
+ }
221
+ `;
175
222
  exports.COMPLETED_OSCE_STATION_FRAGMENT = (0, client_1.gql) `
176
223
  fragment CompletedOsceStationFragment on OsceStation {
177
224
  score
@@ -191,3 +238,10 @@ exports.UPSERT_STATION_NOTE_FRAGMENT = (0, client_1.gql) `
191
238
  }
192
239
  }
193
240
  `;
241
+ exports.AUTO_MARKED_OSCE_MARKSHEET_MARK_FIELDS = (0, client_1.gql) `
242
+ fragment AutoMarkedOsceMarksheetMarkFields on OsceMarksheetMark {
243
+ mark
244
+ reason
245
+ suggestion
246
+ }
247
+ `;
@@ -1,7 +1,7 @@
1
1
  import { ApolloCache } from '@apollo/client';
2
- import { EEntitlementType, EOsceMarksheetAction, EOsceMarksheetState, EOsceRoles, EPaceMarkType, EProductType, EStudyAction, IOsceMarksheet, IOsceMarksheetMark, Id } from '../../../models';
2
+ import { EEntitlementType, EOsceMarksheetAction, EOsceMarksheetMode, EOsceMarksheetState, EOsceRoles, EOsceStationPhase, EPaceMarkType, EProductType, EStudyAction, IOsceMarksheet, IOsceMarksheetMark, Id } from '../../../models';
3
3
  import { ApolloUpdateOptions, ApolloUpdateResultRestricted } from '../../apollo';
4
- import { IOsceMatchmakingAction } from '../../subscription/osce';
4
+ import { IOsceChatStreamChunk, IOsceMatchmakingAction } from '../../subscription/osce';
5
5
  import { RestrictedData, graphqlNormalize } from '../../types';
6
6
  export declare const START_OSCE_MATCHMAKING: import("@apollo/client").DocumentNode;
7
7
  export interface IStartOsceMatchmakingVar {
@@ -70,6 +70,7 @@ export interface IPrestartOsceMarksheetVar {
70
70
  stationTime: number;
71
71
  feedbackTime: number;
72
72
  isTimed: boolean;
73
+ mode?: EOsceMarksheetMode;
73
74
  }
74
75
  export type IPrestartOsceMarksheetData = RestrictedData<graphqlNormalize & IOsceMarksheet, 'prestartOsceMarksheet'>;
75
76
  export declare const SAVE_OSCE_MARKSHEET: import("@apollo/client").DocumentNode;
@@ -133,6 +134,11 @@ export declare const optimisticEndOsceMarksheet: (marksheet: IOsceMarksheet) =>
133
134
  entitlement: import("../../../models").IEntitlement;
134
135
  entitlementId: EEntitlementType | EProductType;
135
136
  isTimed: boolean;
137
+ phase: EOsceStationPhase;
138
+ mode: EOsceMarksheetMode;
139
+ summary: import("../../../models").IOsceMarksheetSummary | null;
140
+ messages: import("../../../models").IOsceMarksheetMessage[] | null;
141
+ transcript: string | null;
136
142
  __typename: string;
137
143
  };
138
144
  };
@@ -142,3 +148,16 @@ export interface ILeaveOsceMarksheetVar {
142
148
  osceMarksheetId: Id;
143
149
  }
144
150
  export type ILeaveOsceMarksheetData = RestrictedData<graphqlNormalize & IOsceMarksheet, 'leaveOsceMarksheet'>;
151
+ export declare const STREAM_OSCE_CHAT_MESSAGE: import("@apollo/client").DocumentNode;
152
+ export interface IStreamOsceChatMessageVar {
153
+ osceMarksheetId: Id;
154
+ message: string;
155
+ phase: EOsceStationPhase;
156
+ }
157
+ export type IStreamOsceChatMessageData = RestrictedData<graphqlNormalize & IOsceChatStreamChunk, 'streamOsceChatMessage'>;
158
+ export declare const AUTO_MARK_OSCE_MARKSHEET: import("@apollo/client").DocumentNode;
159
+ export interface IAutoMarkOsceMarksheetVar {
160
+ osceMarksheetId: Id;
161
+ }
162
+ export type IAutoMarkOsceMarksheetData = RestrictedData<graphqlNormalize & IOsceMarksheet, 'autoMarkOsceMarksheet'>;
163
+ export declare const updateCacheOnAutoMarkOsceMarksheet: (cache: ApolloCache<any>, result: ApolloUpdateResultRestricted<IAutoMarkOsceMarksheetData>, options: ApolloUpdateOptions<IAutoMarkOsceMarksheetVar>) => void;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LEAVE_OSCE_MARKSHEET = exports.optimisticEndOsceMarksheet = exports.updateCacheOnEndOsceMarksheet = exports.END_OSCE_MARKSHEET = exports.MODIFY_OSCE_MARKSHEET = exports.SAVE_OSCE_MARKSHEET = exports.PRESTART_OSCE_MARKSHEET = exports.START_OSCE_TIMER = exports.START_OSCE_MARKSHEET = exports.SELECT_OSCE_STATION = exports.optimisticMarkOsceMarksheetMark = exports.MARK_OSCE_MARKSHEET_MARK = exports.CHANGE_OSCE_ROLE = exports.BUILD_OSCE_MARKSHEET = exports.CREATE_OR_JOIN_OSCE_MARKSHEET = exports.CANCEL_OSCE_MATCHMAKING = exports.CHECK_OSCE_MATCHMAKING = exports.ACCEPT_OSCE_MATCHMAKING = exports.START_OSCE_MATCHMAKING = void 0;
3
+ exports.updateCacheOnAutoMarkOsceMarksheet = exports.AUTO_MARK_OSCE_MARKSHEET = exports.STREAM_OSCE_CHAT_MESSAGE = exports.LEAVE_OSCE_MARKSHEET = exports.optimisticEndOsceMarksheet = exports.updateCacheOnEndOsceMarksheet = exports.END_OSCE_MARKSHEET = exports.MODIFY_OSCE_MARKSHEET = exports.SAVE_OSCE_MARKSHEET = exports.PRESTART_OSCE_MARKSHEET = exports.START_OSCE_TIMER = exports.START_OSCE_MARKSHEET = exports.SELECT_OSCE_STATION = exports.optimisticMarkOsceMarksheetMark = exports.MARK_OSCE_MARKSHEET_MARK = exports.CHANGE_OSCE_ROLE = exports.BUILD_OSCE_MARKSHEET = exports.CREATE_OR_JOIN_OSCE_MARKSHEET = exports.CANCEL_OSCE_MATCHMAKING = exports.CHECK_OSCE_MATCHMAKING = exports.ACCEPT_OSCE_MATCHMAKING = exports.START_OSCE_MATCHMAKING = void 0;
4
4
  const client_1 = require("@apollo/client");
5
5
  const models_1 = require("../../../models");
6
6
  const fragments_1 = require("../../fragments");
@@ -174,6 +174,7 @@ exports.PRESTART_OSCE_MARKSHEET = (0, client_1.gql) `
174
174
  $stationTime: Int!
175
175
  $feedbackTime: Int!
176
176
  $isTimed: Boolean
177
+ $mode: OsceMarksheetMode
177
178
  ) {
178
179
  restricted {
179
180
  prestartOsceMarksheet(
@@ -182,6 +183,7 @@ exports.PRESTART_OSCE_MARKSHEET = (0, client_1.gql) `
182
183
  stationTime: $stationTime
183
184
  feedbackTime: $feedbackTime
184
185
  isTimed: $isTimed
186
+ mode: $mode
185
187
  ) {
186
188
  ...OsceMarksheetFields
187
189
  osceStation {
@@ -248,21 +250,35 @@ const updateCacheOnEndOsceMarksheet = (productType) => (cache, result, options)
248
250
  if (!variables || !endOsceMarksheet) {
249
251
  return;
250
252
  }
251
- cache.writeFragment({
253
+ cache.modify({
252
254
  id: cache.identify({
253
255
  id: endOsceMarksheet.id,
254
256
  __typename: 'OsceMarksheet',
255
257
  }),
256
- data: {
257
- completed: true,
258
- score: endOsceMarksheet.score,
259
- state: endOsceMarksheet.state,
260
- globalScore: endOsceMarksheet.globalScore,
261
- timeTaken: endOsceMarksheet.timeTaken,
262
- endedAt: endOsceMarksheet.endedAt,
258
+ fields: {
259
+ completed: () => true,
260
+ state: () => endOsceMarksheet.state,
261
+ timeTaken: () => endOsceMarksheet.timeTaken,
262
+ endedAt: () => endOsceMarksheet.endedAt,
263
+ score: () => endOsceMarksheet.score,
264
+ globalScore: () => endOsceMarksheet.globalScore,
265
+ transcript: () => endOsceMarksheet.transcript,
266
+ feedback: () => endOsceMarksheet.feedback,
263
267
  },
264
- fragment: fragments_1.COMPLETED_OSCE_MARKSHEET_FRAGMENT,
265
268
  });
269
+ for (const mark of endOsceMarksheet.marks) {
270
+ cache.modify({
271
+ id: cache.identify({
272
+ id: mark.id,
273
+ __typename: 'OsceMarksheetMark',
274
+ }),
275
+ fields: {
276
+ mark: () => mark.mark,
277
+ reason: () => mark.reason,
278
+ suggestion: () => mark.suggestion,
279
+ },
280
+ });
281
+ }
266
282
  cache.writeFragment({
267
283
  id: cache.identify({
268
284
  id: endOsceMarksheet.osceStationId,
@@ -300,3 +316,60 @@ exports.LEAVE_OSCE_MARKSHEET = (0, client_1.gql) `
300
316
  }
301
317
  }
302
318
  `;
319
+ exports.STREAM_OSCE_CHAT_MESSAGE = (0, client_1.gql) `
320
+ mutation StreamOsceChatMessage(
321
+ $osceMarksheetId: Int!
322
+ $message: String!
323
+ $phase: OsceStationPhase!
324
+ ) {
325
+ restricted {
326
+ streamOsceChatMessage(
327
+ osceMarksheetId: $osceMarksheetId
328
+ message: $message
329
+ phase: $phase
330
+ )
331
+ }
332
+ }
333
+ `;
334
+ exports.AUTO_MARK_OSCE_MARKSHEET = (0, client_1.gql) `
335
+ mutation AutoMarkOsceMarksheet($osceMarksheetId: Int!) {
336
+ restricted {
337
+ autoMarkOsceMarksheet(osceMarksheetId: $osceMarksheetId) {
338
+ ...OsceMarksheetFields
339
+ }
340
+ }
341
+ }
342
+ `;
343
+ const updateCacheOnAutoMarkOsceMarksheet = (cache, result, options) => {
344
+ const { autoMarkOsceMarksheet } = result?.data?.restricted || {};
345
+ const { variables } = options || {};
346
+ if (!variables || !autoMarkOsceMarksheet) {
347
+ return;
348
+ }
349
+ cache.modify({
350
+ id: cache.identify({
351
+ id: autoMarkOsceMarksheet.id,
352
+ __typename: 'OsceMarksheetMark',
353
+ }),
354
+ fields: {
355
+ score: () => autoMarkOsceMarksheet.score,
356
+ globalScore: () => autoMarkOsceMarksheet.globalScore,
357
+ transcript: () => autoMarkOsceMarksheet.transcript,
358
+ feedback: () => autoMarkOsceMarksheet.feedback,
359
+ },
360
+ });
361
+ for (const mark of autoMarkOsceMarksheet.marks) {
362
+ cache.modify({
363
+ id: cache.identify({
364
+ id: mark.id,
365
+ __typename: 'OsceMarksheetMark',
366
+ }),
367
+ fields: {
368
+ mark: () => mark.mark,
369
+ reason: () => mark.reason,
370
+ suggestion: () => mark.suggestion,
371
+ },
372
+ });
373
+ }
374
+ };
375
+ exports.updateCacheOnAutoMarkOsceMarksheet = updateCacheOnAutoMarkOsceMarksheet;
@@ -19,7 +19,6 @@ export interface IDashboardOsceQueryData {
19
19
  user: IUser;
20
20
  };
21
21
  }
22
- export declare const OSCE_MARKSHEETS: import("@apollo/client").DocumentNode;
23
22
  export interface IOsceMarksheetsVar {
24
23
  solo?: boolean;
25
24
  days?: number;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HEARTBEAT = exports.SEARCH_OSCE_STATIONS = exports.OSCE_TOPICS = exports.OSCE_STATION = exports.OSCE_STATIONS = exports.OSCE_MARKSHEET = exports.OSCE_MARKSHEET_WINDOW = exports.OSCE_MARKSHEETS = exports.DASHBOARD_OSCE = exports.OSCE_STATS = void 0;
3
+ exports.HEARTBEAT = exports.SEARCH_OSCE_STATIONS = exports.OSCE_TOPICS = exports.OSCE_STATION = exports.OSCE_STATIONS = exports.OSCE_MARKSHEET = exports.OSCE_MARKSHEET_WINDOW = exports.DASHBOARD_OSCE = exports.OSCE_STATS = void 0;
4
4
  const client_1 = require("@apollo/client");
5
5
  const osce_1 = require("../../fragments/osce");
6
6
  const osce_2 = require("./../../fragments/osce");
@@ -58,20 +58,6 @@ exports.DASHBOARD_OSCE = (0, client_1.gql) `
58
58
  }
59
59
  }
60
60
  `;
61
- exports.OSCE_MARKSHEETS = (0, client_1.gql) `
62
- ${osce_2.OSCE_STATION_FIELDS}
63
- ${osce_1.OSCE_MARKSHEET_FIELDS}
64
- query OsceMarksheets($solo: Boolean, $days: Int) {
65
- restricted {
66
- osceMarksheets(solo: $solo, days: $days) {
67
- ...OsceMarksheetFields
68
- osceStation {
69
- ...OsceStationFields
70
- }
71
- }
72
- }
73
- }
74
- `;
75
61
  exports.OSCE_MARKSHEET_WINDOW = (0, client_1.gql) `
76
62
  ${osce_2.OSCE_STATION_FIELDS}
77
63
  ${osce_1.OSCE_MARKSHEET_FIELDS}
@@ -1,4 +1,4 @@
1
- import { EClassYearGroup, EOsceMarksheetAction, EOsceMarksheetState, EOsceRoles, IAccessLevel, IClassYear, Id, IOsceMarksheetMark, IOsceMarksheetMember, IOsceMarksheetTimer, IUser } from '../../models';
1
+ import { EClassYearGroup, EOsceMarksheetAction, EOsceMarksheetState, EOsceRoles, EOsceStationPhase, IAccessLevel, IClassYear, Id, IOsceMarksheetMark, IOsceMarksheetMember, IOsceMarksheetTimer, IUser } from '../../models';
2
2
  import { RootData } from '../types';
3
3
  export declare const OSCE_ROLE_CHANGE_KEY = "OSCE_ROLE_CHANGE";
4
4
  export declare const OSCE_MARKSHEET_ACTION_KEY = "OSCE_MARKSHEET_ACTION";
@@ -76,3 +76,17 @@ export interface IOsceMarksheetTimerVar {
76
76
  sessionId: string;
77
77
  }
78
78
  export type IOsceMarksheetTimerData = RootData<IOsceMarksheetTimer, 'osceMarksheetTimer'>;
79
+ export declare const OSCE_CHAT_STREAM: import("@apollo/client").DocumentNode;
80
+ export interface IOsceChatStreamVar {
81
+ osceMarksheetId: Id;
82
+ phase?: EOsceStationPhase;
83
+ }
84
+ export interface IOsceChatStreamChunk {
85
+ token: string | null;
86
+ message: string | null;
87
+ done: boolean;
88
+ phase: EOsceStationPhase;
89
+ error: string | null;
90
+ osceMarksheetId: Id;
91
+ }
92
+ export type IOsceChatStreamData = RootData<IOsceChatStreamChunk, 'osceChatStream'>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OSCE_MARKSHEET_TIMER = exports.OSCE_MATCHMAKING_USERS = exports.OSCE_MATCHMAKING = exports.OSCE_MARKSHEET_ACTION = exports.OSCE_ROLE_CHANGE = exports.OsceGroupInit = exports.OSCE_MATCHMAKING_USERS_KEY = exports.OSCE_MATCHMAKING_KEY = exports.OSCE_MARKSHEET_TIMER_KEY = exports.OSCE_MARKSHEET_ACTION_KEY = exports.OSCE_ROLE_CHANGE_KEY = void 0;
3
+ exports.OSCE_CHAT_STREAM = exports.OSCE_MARKSHEET_TIMER = exports.OSCE_MATCHMAKING_USERS = exports.OSCE_MATCHMAKING = exports.OSCE_MARKSHEET_ACTION = exports.OSCE_ROLE_CHANGE = exports.OsceGroupInit = exports.OSCE_MATCHMAKING_USERS_KEY = exports.OSCE_MATCHMAKING_KEY = exports.OSCE_MARKSHEET_TIMER_KEY = exports.OSCE_MARKSHEET_ACTION_KEY = exports.OSCE_ROLE_CHANGE_KEY = void 0;
4
4
  const client_1 = require("@apollo/client");
5
5
  const models_1 = require("../../models");
6
6
  const fragments_1 = require("../fragments");
@@ -136,3 +136,18 @@ exports.OSCE_MARKSHEET_TIMER = (0, client_1.gql) `
136
136
  }
137
137
  }
138
138
  `;
139
+ exports.OSCE_CHAT_STREAM = (0, client_1.gql) `
140
+ subscription OsceMarksheetMessage(
141
+ $osceMarksheetId: Int!
142
+ $phase: OsceStationPhase
143
+ ) {
144
+ osceChatStream(osceMarksheetId: $osceMarksheetId, phase: $phase) {
145
+ token
146
+ message
147
+ done
148
+ phase
149
+ error
150
+ osceMarksheetId
151
+ }
152
+ }
153
+ `;
@@ -18,6 +18,8 @@ export interface IOsceMarksheetMark {
18
18
  id: Id;
19
19
  index: number;
20
20
  mark: number | null;
21
+ reason?: string;
22
+ suggestion?: string;
21
23
  selectedChoice: Nullable<EPaceMarkType>;
22
24
  osceMarksheetId: Id;
23
25
  osceMarksheet?: IOsceMarksheet;
@@ -43,7 +45,8 @@ export declare enum EOsceMarksheetAction {
43
45
  LEFT = 8,
44
46
  KICK = 9,
45
47
  ROLE_CHANGE = 10,
46
- STATE_CHANGE = 11
48
+ STATE_CHANGE = 11,
49
+ PHASE_CHANGE = 12
47
50
  }
48
51
  export declare enum EOsceMarksheetState {
49
52
  LOBBY = 0,
@@ -52,6 +55,35 @@ export declare enum EOsceMarksheetState {
52
55
  STATION = 3,
53
56
  RESULT = 4
54
57
  }
58
+ export declare enum EOsceMarksheetMode {
59
+ STANDARD = "STANDARD",
60
+ CHAT = "CHAT",
61
+ VOICE = "VOICE"
62
+ }
63
+ export declare enum EOsceStationPhase {
64
+ PATIENT = "PATIENT",
65
+ EXAMINER = "EXAMINER"
66
+ }
67
+ export interface IOsceMarksheetMessage {
68
+ id: Id;
69
+ type: string;
70
+ content: string;
71
+ createdAt: number | Date;
72
+ phase: EOsceStationPhase;
73
+ }
74
+ export interface IOsceMarksheetHeaderFeedback {
75
+ header: string;
76
+ summary: string;
77
+ strengths: string[];
78
+ improvements: string[];
79
+ }
80
+ export interface IOsceMarksheetSummary {
81
+ commentary: string;
82
+ overallSummary: string;
83
+ strengths: string[];
84
+ improvements: string[];
85
+ headerFeedback: IOsceMarksheetHeaderFeedback[];
86
+ }
55
87
  export interface IOsceMarksheet {
56
88
  id: Id;
57
89
  createdAt: number | Date;
@@ -88,6 +120,11 @@ export interface IOsceMarksheet {
88
120
  entitlement: IEntitlement;
89
121
  entitlementId: EProductType | EEntitlementType;
90
122
  isTimed: boolean;
123
+ phase: EOsceStationPhase;
124
+ mode: EOsceMarksheetMode;
125
+ summary: IOsceMarksheetSummary | null;
126
+ messages: IOsceMarksheetMessage[] | null;
127
+ transcript: string | null;
91
128
  }
92
129
  export interface IDashboardOsce {
93
130
  lastSessionId: string;
@@ -21,6 +21,7 @@ export var EOsceMarksheetAction;
21
21
  EOsceMarksheetAction[EOsceMarksheetAction["KICK"] = 9] = "KICK";
22
22
  EOsceMarksheetAction[EOsceMarksheetAction["ROLE_CHANGE"] = 10] = "ROLE_CHANGE";
23
23
  EOsceMarksheetAction[EOsceMarksheetAction["STATE_CHANGE"] = 11] = "STATE_CHANGE";
24
+ EOsceMarksheetAction[EOsceMarksheetAction["PHASE_CHANGE"] = 12] = "PHASE_CHANGE";
24
25
  })(EOsceMarksheetAction || (EOsceMarksheetAction = {}));
25
26
  export var EOsceMarksheetState;
26
27
  (function (EOsceMarksheetState) {
@@ -30,6 +31,17 @@ export var EOsceMarksheetState;
30
31
  EOsceMarksheetState[EOsceMarksheetState["STATION"] = 3] = "STATION";
31
32
  EOsceMarksheetState[EOsceMarksheetState["RESULT"] = 4] = "RESULT";
32
33
  })(EOsceMarksheetState || (EOsceMarksheetState = {}));
34
+ export var EOsceMarksheetMode;
35
+ (function (EOsceMarksheetMode) {
36
+ EOsceMarksheetMode["STANDARD"] = "STANDARD";
37
+ EOsceMarksheetMode["CHAT"] = "CHAT";
38
+ EOsceMarksheetMode["VOICE"] = "VOICE";
39
+ })(EOsceMarksheetMode || (EOsceMarksheetMode = {}));
40
+ export var EOsceStationPhase;
41
+ (function (EOsceStationPhase) {
42
+ EOsceStationPhase["PATIENT"] = "PATIENT";
43
+ EOsceStationPhase["EXAMINER"] = "EXAMINER";
44
+ })(EOsceStationPhase || (EOsceStationPhase = {}));
33
45
  export var EOsceTimerState;
34
46
  (function (EOsceTimerState) {
35
47
  EOsceTimerState[EOsceTimerState["START"] = 0] = "START";
@@ -62,6 +62,7 @@ export interface IOsceStation {
62
62
  totalMarks: number;
63
63
  completedMarks: number;
64
64
  topics?: ITopic[];
65
+ picture: IPicture | null;
65
66
  candidatePictures?: IPicture[];
66
67
  actorPictures?: IPicture[];
67
68
  examinerPictures?: IPicture[];
@@ -1,9 +1,13 @@
1
1
  export declare const OSCE_STATION_MARK_FIELDS: import("@apollo/client").DocumentNode;
2
2
  export declare const OSCE_STATION_FIELDS: import("@apollo/client").DocumentNode;
3
3
  export declare const OSCE_MARKSHEET_MARK_FIELDS: import("@apollo/client").DocumentNode;
4
+ export declare const OSCE_MARKSHEET_MESSAGE_FIELDS: import("@apollo/client").DocumentNode;
5
+ export declare const OSCE_MARKSHEET_RESULT_FIELDS: import("@apollo/client").DocumentNode;
4
6
  export declare const OSCE_MARKSHEET_FIELDS: import("@apollo/client").DocumentNode;
5
7
  export declare const OSCE_MATCHMAKING_ACTION_FIELDS: import("@apollo/client").DocumentNode;
6
8
  export declare const STATION_CONCEPT_FRAGMENT: import("@apollo/client").DocumentNode;
7
9
  export declare const COMPLETED_OSCE_MARKSHEET_FRAGMENT: import("@apollo/client").DocumentNode;
10
+ export declare const AUTO_MARKED_OSCE_MARKSHEET_FRAGMENT: import("@apollo/client").DocumentNode;
8
11
  export declare const COMPLETED_OSCE_STATION_FRAGMENT: import("@apollo/client").DocumentNode;
9
12
  export declare const UPSERT_STATION_NOTE_FRAGMENT: import("@apollo/client").DocumentNode;
13
+ export declare const AUTO_MARKED_OSCE_MARKSHEET_MARK_FIELDS: import("@apollo/client").DocumentNode;
@@ -26,6 +26,8 @@ export const OSCE_STATION_FIELDS = gql `
26
26
  name
27
27
  hiddenName
28
28
  status
29
+ aiEnabled
30
+ examinerQuestions
29
31
  userNote {
30
32
  id
31
33
  userId
@@ -56,6 +58,9 @@ export const OSCE_STATION_FIELDS = gql `
56
58
  id
57
59
  name
58
60
  }
61
+ picture {
62
+ ...PictureFields
63
+ }
59
64
  candidatePictures {
60
65
  ...PictureFields
61
66
  }
@@ -91,8 +96,42 @@ export const OSCE_MARKSHEET_MARK_FIELDS = gql `
91
96
  }
92
97
  }
93
98
  `;
99
+ export const OSCE_MARKSHEET_MESSAGE_FIELDS = gql `
100
+ fragment OsceMarksheetMessageFields on OsceMarksheetMessage {
101
+ id
102
+ type
103
+ content
104
+ createdAt
105
+ phase
106
+ }
107
+ `;
108
+ export const OSCE_MARKSHEET_RESULT_FIELDS = gql `
109
+ ${OSCE_MARKSHEET_MESSAGE_FIELDS}
110
+ fragment OsceMarksheetResultFields on OsceMarksheet {
111
+ feedback
112
+ summary {
113
+ commentary
114
+ overallSummary
115
+ strengths
116
+ improvements
117
+ headerFeedback {
118
+ header
119
+ summary
120
+ strengths
121
+ improvements
122
+ }
123
+ }
124
+ transcript
125
+ messages {
126
+ ...OsceMarksheetMessageFields
127
+ }
128
+ score
129
+ globalScore
130
+ }
131
+ `;
94
132
  export const OSCE_MARKSHEET_FIELDS = gql `
95
133
  ${OSCE_MARKSHEET_MARK_FIELDS}
134
+ ${OSCE_MARKSHEET_RESULT_FIELDS}
96
135
  fragment OsceMarksheetFields on OsceMarksheet {
97
136
  id
98
137
  createdAt
@@ -100,10 +139,9 @@ export const OSCE_MARKSHEET_FIELDS = gql `
100
139
  timeTaken
101
140
  osceStationId
102
141
  solo
103
- globalScore
104
- score
105
- feedback
142
+ mode
106
143
  agoraId
144
+ phase
107
145
  sessionId
108
146
  isTimed
109
147
  readingTime
@@ -139,6 +177,7 @@ export const OSCE_MARKSHEET_FIELDS = gql `
139
177
  }
140
178
  state
141
179
  completed
180
+ ...OsceMarksheetResultFields
142
181
  }
143
182
  `;
144
183
  export const OSCE_MATCHMAKING_ACTION_FIELDS = gql `
@@ -169,6 +208,14 @@ export const COMPLETED_OSCE_MARKSHEET_FRAGMENT = gql `
169
208
  endedAt
170
209
  }
171
210
  `;
211
+ export const AUTO_MARKED_OSCE_MARKSHEET_FRAGMENT = gql `
212
+ fragment AutoMarkedOsceMarksheetFragment on OsceMarksheet {
213
+ transcript
214
+ feedback
215
+ score
216
+ globalScore
217
+ }
218
+ `;
172
219
  export const COMPLETED_OSCE_STATION_FRAGMENT = gql `
173
220
  fragment CompletedOsceStationFragment on OsceStation {
174
221
  score
@@ -188,3 +235,10 @@ export const UPSERT_STATION_NOTE_FRAGMENT = gql `
188
235
  }
189
236
  }
190
237
  `;
238
+ export const AUTO_MARKED_OSCE_MARKSHEET_MARK_FIELDS = gql `
239
+ fragment AutoMarkedOsceMarksheetMarkFields on OsceMarksheetMark {
240
+ mark
241
+ reason
242
+ suggestion
243
+ }
244
+ `;
@@ -1,7 +1,7 @@
1
1
  import { ApolloCache } from '@apollo/client';
2
- import { EEntitlementType, EOsceMarksheetAction, EOsceMarksheetState, EOsceRoles, EPaceMarkType, EProductType, EStudyAction, IOsceMarksheet, IOsceMarksheetMark, Id } from '../../../models';
2
+ import { EEntitlementType, EOsceMarksheetAction, EOsceMarksheetMode, EOsceMarksheetState, EOsceRoles, EOsceStationPhase, EPaceMarkType, EProductType, EStudyAction, IOsceMarksheet, IOsceMarksheetMark, Id } from '../../../models';
3
3
  import { ApolloUpdateOptions, ApolloUpdateResultRestricted } from '../../apollo';
4
- import { IOsceMatchmakingAction } from '../../subscription/osce';
4
+ import { IOsceChatStreamChunk, IOsceMatchmakingAction } from '../../subscription/osce';
5
5
  import { RestrictedData, graphqlNormalize } from '../../types';
6
6
  export declare const START_OSCE_MATCHMAKING: import("@apollo/client").DocumentNode;
7
7
  export interface IStartOsceMatchmakingVar {
@@ -70,6 +70,7 @@ export interface IPrestartOsceMarksheetVar {
70
70
  stationTime: number;
71
71
  feedbackTime: number;
72
72
  isTimed: boolean;
73
+ mode?: EOsceMarksheetMode;
73
74
  }
74
75
  export type IPrestartOsceMarksheetData = RestrictedData<graphqlNormalize & IOsceMarksheet, 'prestartOsceMarksheet'>;
75
76
  export declare const SAVE_OSCE_MARKSHEET: import("@apollo/client").DocumentNode;
@@ -133,6 +134,11 @@ export declare const optimisticEndOsceMarksheet: (marksheet: IOsceMarksheet) =>
133
134
  entitlement: import("../../../models").IEntitlement;
134
135
  entitlementId: EEntitlementType | EProductType;
135
136
  isTimed: boolean;
137
+ phase: EOsceStationPhase;
138
+ mode: EOsceMarksheetMode;
139
+ summary: import("../../../models").IOsceMarksheetSummary | null;
140
+ messages: import("../../../models").IOsceMarksheetMessage[] | null;
141
+ transcript: string | null;
136
142
  __typename: string;
137
143
  };
138
144
  };
@@ -142,3 +148,16 @@ export interface ILeaveOsceMarksheetVar {
142
148
  osceMarksheetId: Id;
143
149
  }
144
150
  export type ILeaveOsceMarksheetData = RestrictedData<graphqlNormalize & IOsceMarksheet, 'leaveOsceMarksheet'>;
151
+ export declare const STREAM_OSCE_CHAT_MESSAGE: import("@apollo/client").DocumentNode;
152
+ export interface IStreamOsceChatMessageVar {
153
+ osceMarksheetId: Id;
154
+ message: string;
155
+ phase: EOsceStationPhase;
156
+ }
157
+ export type IStreamOsceChatMessageData = RestrictedData<graphqlNormalize & IOsceChatStreamChunk, 'streamOsceChatMessage'>;
158
+ export declare const AUTO_MARK_OSCE_MARKSHEET: import("@apollo/client").DocumentNode;
159
+ export interface IAutoMarkOsceMarksheetVar {
160
+ osceMarksheetId: Id;
161
+ }
162
+ export type IAutoMarkOsceMarksheetData = RestrictedData<graphqlNormalize & IOsceMarksheet, 'autoMarkOsceMarksheet'>;
163
+ export declare const updateCacheOnAutoMarkOsceMarksheet: (cache: ApolloCache<any>, result: ApolloUpdateResultRestricted<IAutoMarkOsceMarksheetData>, options: ApolloUpdateOptions<IAutoMarkOsceMarksheetVar>) => void;
@@ -1,6 +1,6 @@
1
1
  import { gql } from '@apollo/client';
2
2
  import { EProductType, } from '../../../models';
3
- import { COMPLETED_OSCE_MARKSHEET_FRAGMENT, COMPLETED_OSCE_STATION_FRAGMENT, OSCE_MARKSHEET_FIELDS, OSCE_MATCHMAKING_ACTION_FIELDS, OSCE_STATION_FIELDS, } from '../../fragments';
3
+ import { COMPLETED_OSCE_STATION_FRAGMENT, OSCE_MARKSHEET_FIELDS, OSCE_MATCHMAKING_ACTION_FIELDS, OSCE_STATION_FIELDS, } from '../../fragments';
4
4
  export const START_OSCE_MATCHMAKING = gql `
5
5
  mutation StartOsceMatchmaking($sessionId: String!) {
6
6
  restricted {
@@ -170,6 +170,7 @@ export const PRESTART_OSCE_MARKSHEET = gql `
170
170
  $stationTime: Int!
171
171
  $feedbackTime: Int!
172
172
  $isTimed: Boolean
173
+ $mode: OsceMarksheetMode
173
174
  ) {
174
175
  restricted {
175
176
  prestartOsceMarksheet(
@@ -178,6 +179,7 @@ export const PRESTART_OSCE_MARKSHEET = gql `
178
179
  stationTime: $stationTime
179
180
  feedbackTime: $feedbackTime
180
181
  isTimed: $isTimed
182
+ mode: $mode
181
183
  ) {
182
184
  ...OsceMarksheetFields
183
185
  osceStation {
@@ -244,21 +246,35 @@ export const updateCacheOnEndOsceMarksheet = (productType) => (cache, result, op
244
246
  if (!variables || !endOsceMarksheet) {
245
247
  return;
246
248
  }
247
- cache.writeFragment({
249
+ cache.modify({
248
250
  id: cache.identify({
249
251
  id: endOsceMarksheet.id,
250
252
  __typename: 'OsceMarksheet',
251
253
  }),
252
- data: {
253
- completed: true,
254
- score: endOsceMarksheet.score,
255
- state: endOsceMarksheet.state,
256
- globalScore: endOsceMarksheet.globalScore,
257
- timeTaken: endOsceMarksheet.timeTaken,
258
- endedAt: endOsceMarksheet.endedAt,
254
+ fields: {
255
+ completed: () => true,
256
+ state: () => endOsceMarksheet.state,
257
+ timeTaken: () => endOsceMarksheet.timeTaken,
258
+ endedAt: () => endOsceMarksheet.endedAt,
259
+ score: () => endOsceMarksheet.score,
260
+ globalScore: () => endOsceMarksheet.globalScore,
261
+ transcript: () => endOsceMarksheet.transcript,
262
+ feedback: () => endOsceMarksheet.feedback,
259
263
  },
260
- fragment: COMPLETED_OSCE_MARKSHEET_FRAGMENT,
261
264
  });
265
+ for (const mark of endOsceMarksheet.marks) {
266
+ cache.modify({
267
+ id: cache.identify({
268
+ id: mark.id,
269
+ __typename: 'OsceMarksheetMark',
270
+ }),
271
+ fields: {
272
+ mark: () => mark.mark,
273
+ reason: () => mark.reason,
274
+ suggestion: () => mark.suggestion,
275
+ },
276
+ });
277
+ }
262
278
  cache.writeFragment({
263
279
  id: cache.identify({
264
280
  id: endOsceMarksheet.osceStationId,
@@ -294,3 +310,59 @@ export const LEAVE_OSCE_MARKSHEET = gql `
294
310
  }
295
311
  }
296
312
  `;
313
+ export const STREAM_OSCE_CHAT_MESSAGE = gql `
314
+ mutation StreamOsceChatMessage(
315
+ $osceMarksheetId: Int!
316
+ $message: String!
317
+ $phase: OsceStationPhase!
318
+ ) {
319
+ restricted {
320
+ streamOsceChatMessage(
321
+ osceMarksheetId: $osceMarksheetId
322
+ message: $message
323
+ phase: $phase
324
+ )
325
+ }
326
+ }
327
+ `;
328
+ export const AUTO_MARK_OSCE_MARKSHEET = gql `
329
+ mutation AutoMarkOsceMarksheet($osceMarksheetId: Int!) {
330
+ restricted {
331
+ autoMarkOsceMarksheet(osceMarksheetId: $osceMarksheetId) {
332
+ ...OsceMarksheetFields
333
+ }
334
+ }
335
+ }
336
+ `;
337
+ export const updateCacheOnAutoMarkOsceMarksheet = (cache, result, options) => {
338
+ const { autoMarkOsceMarksheet } = result?.data?.restricted || {};
339
+ const { variables } = options || {};
340
+ if (!variables || !autoMarkOsceMarksheet) {
341
+ return;
342
+ }
343
+ cache.modify({
344
+ id: cache.identify({
345
+ id: autoMarkOsceMarksheet.id,
346
+ __typename: 'OsceMarksheetMark',
347
+ }),
348
+ fields: {
349
+ score: () => autoMarkOsceMarksheet.score,
350
+ globalScore: () => autoMarkOsceMarksheet.globalScore,
351
+ transcript: () => autoMarkOsceMarksheet.transcript,
352
+ feedback: () => autoMarkOsceMarksheet.feedback,
353
+ },
354
+ });
355
+ for (const mark of autoMarkOsceMarksheet.marks) {
356
+ cache.modify({
357
+ id: cache.identify({
358
+ id: mark.id,
359
+ __typename: 'OsceMarksheetMark',
360
+ }),
361
+ fields: {
362
+ mark: () => mark.mark,
363
+ reason: () => mark.reason,
364
+ suggestion: () => mark.suggestion,
365
+ },
366
+ });
367
+ }
368
+ };
@@ -19,7 +19,6 @@ export interface IDashboardOsceQueryData {
19
19
  user: IUser;
20
20
  };
21
21
  }
22
- export declare const OSCE_MARKSHEETS: import("@apollo/client").DocumentNode;
23
22
  export interface IOsceMarksheetsVar {
24
23
  solo?: boolean;
25
24
  days?: number;
@@ -55,20 +55,6 @@ export const DASHBOARD_OSCE = gql `
55
55
  }
56
56
  }
57
57
  `;
58
- export const OSCE_MARKSHEETS = gql `
59
- ${OSCE_STATION_FIELDS}
60
- ${OSCE_MARKSHEET_FIELDS}
61
- query OsceMarksheets($solo: Boolean, $days: Int) {
62
- restricted {
63
- osceMarksheets(solo: $solo, days: $days) {
64
- ...OsceMarksheetFields
65
- osceStation {
66
- ...OsceStationFields
67
- }
68
- }
69
- }
70
- }
71
- `;
72
58
  export const OSCE_MARKSHEET_WINDOW = gql `
73
59
  ${OSCE_STATION_FIELDS}
74
60
  ${OSCE_MARKSHEET_FIELDS}
@@ -1,4 +1,4 @@
1
- import { EClassYearGroup, EOsceMarksheetAction, EOsceMarksheetState, EOsceRoles, IAccessLevel, IClassYear, Id, IOsceMarksheetMark, IOsceMarksheetMember, IOsceMarksheetTimer, IUser } from '../../models';
1
+ import { EClassYearGroup, EOsceMarksheetAction, EOsceMarksheetState, EOsceRoles, EOsceStationPhase, IAccessLevel, IClassYear, Id, IOsceMarksheetMark, IOsceMarksheetMember, IOsceMarksheetTimer, IUser } from '../../models';
2
2
  import { RootData } from '../types';
3
3
  export declare const OSCE_ROLE_CHANGE_KEY = "OSCE_ROLE_CHANGE";
4
4
  export declare const OSCE_MARKSHEET_ACTION_KEY = "OSCE_MARKSHEET_ACTION";
@@ -76,3 +76,17 @@ export interface IOsceMarksheetTimerVar {
76
76
  sessionId: string;
77
77
  }
78
78
  export type IOsceMarksheetTimerData = RootData<IOsceMarksheetTimer, 'osceMarksheetTimer'>;
79
+ export declare const OSCE_CHAT_STREAM: import("@apollo/client").DocumentNode;
80
+ export interface IOsceChatStreamVar {
81
+ osceMarksheetId: Id;
82
+ phase?: EOsceStationPhase;
83
+ }
84
+ export interface IOsceChatStreamChunk {
85
+ token: string | null;
86
+ message: string | null;
87
+ done: boolean;
88
+ phase: EOsceStationPhase;
89
+ error: string | null;
90
+ osceMarksheetId: Id;
91
+ }
92
+ export type IOsceChatStreamData = RootData<IOsceChatStreamChunk, 'osceChatStream'>;
@@ -132,3 +132,18 @@ export const OSCE_MARKSHEET_TIMER = gql `
132
132
  }
133
133
  }
134
134
  `;
135
+ export const OSCE_CHAT_STREAM = gql `
136
+ subscription OsceMarksheetMessage(
137
+ $osceMarksheetId: Int!
138
+ $phase: OsceStationPhase
139
+ ) {
140
+ osceChatStream(osceMarksheetId: $osceMarksheetId, phase: $phase) {
141
+ token
142
+ message
143
+ done
144
+ phase
145
+ error
146
+ osceMarksheetId
147
+ }
148
+ }
149
+ `;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quesmed/types",
3
- "version": "2.6.241",
3
+ "version": "2.6.243",
4
4
  "description": "Typescript types for Quesmed",
5
5
  "keywords": [
6
6
  "quesmed",