@quesmed/types 2.6.296 → 2.6.298

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.
@@ -1,5 +1,6 @@
1
1
  import { IConcept } from './Concept';
2
2
  import { Id } from './Type';
3
+ import { EUkmla2026ChangeType } from './Ukmla2026';
3
4
  import { IUkmlaTopic } from './UkmlaTopic';
4
5
  export interface ICondition {
5
6
  id: Id;
@@ -7,12 +8,18 @@ export interface ICondition {
7
8
  updatedAt: number | Date;
8
9
  deletedAt: number | Date;
9
10
  name: string;
10
- topicId: Id;
11
- topic: IUkmlaTopic;
11
+ /** @deprecated Legacy UKMLA content map. Use `bodySystemId` instead. */
12
+ topicId?: Id | null;
13
+ /** @deprecated Legacy UKMLA content map. Not set on UKMLA 2026 rows. */
14
+ topic?: IUkmlaTopic | null;
12
15
  concepts?: IConcept[];
16
+ /** @deprecated Legacy UKMLA content map. Not set on UKMLA 2026 rows. */
13
17
  demo?: boolean;
14
18
  public: boolean;
15
19
  questionIds: number[];
20
+ bodySystemId?: number | null;
21
+ changeType?: EUkmla2026ChangeType | null;
22
+ legacyNames?: string[] | null;
16
23
  totalQuestions?: number | null;
17
24
  correctQuestions?: number | null;
18
25
  incorrectQuestions?: number | null;
@@ -1,4 +1,5 @@
1
1
  import { Id } from './Type';
2
+ import { EUkmla2026ChangeType } from './Ukmla2026';
2
3
  import { IUkmlaTopic } from './UkmlaTopic';
3
4
  export interface IPresentation {
4
5
  id: Id;
@@ -6,11 +7,16 @@ export interface IPresentation {
6
7
  updatedAt: number | Date;
7
8
  deletedAt: number | Date;
8
9
  name: string;
9
- topicId: Id;
10
- topic: IUkmlaTopic;
10
+ /** @deprecated Legacy UKMLA content map. Not set on UKMLA 2026 rows. */
11
+ topicId?: Id | null;
12
+ /** @deprecated Legacy UKMLA content map. Not set on UKMLA 2026 rows. */
13
+ topic?: IUkmlaTopic | null;
14
+ /** @deprecated Legacy UKMLA content map. Not set on UKMLA 2026 rows. */
11
15
  demo?: boolean;
12
16
  public: boolean;
13
17
  questionIds: number[];
18
+ changeType?: EUkmla2026ChangeType | null;
19
+ legacyNames?: string[] | null;
14
20
  totalQuestions?: number | null;
15
21
  correctQuestions?: number | null;
16
22
  incorrectQuestions?: number | null;
@@ -10,6 +10,7 @@ import { IPresentation } from './Presentation';
10
10
  import { ITopic } from './Topic';
11
11
  import { Id } from './Type';
12
12
  import { ITheme } from './Ucat';
13
+ import { IUkmla2026Area, IUkmla2026BodySystem } from './Ukmla2026';
13
14
  import { IUkmlaTopic } from './UkmlaTopic';
14
15
  import { EUserLearningPoint, IUser } from './User';
15
16
  export declare enum EPsaSectionType {
@@ -95,6 +96,8 @@ export interface IQuestion {
95
96
  concept?: IConcept;
96
97
  conditions?: ICondition[];
97
98
  presentations?: IPresentation[];
99
+ bodySystems?: Pick<IUkmla2026BodySystem, 'id' | 'name' | 'sortOrder'>[];
100
+ areas?: Pick<IUkmla2026Area, 'id' | 'name' | 'sortOrder'>[];
98
101
  question: string;
99
102
  explanation?: string;
100
103
  learningPoint?: string;
@@ -46,13 +46,10 @@ export interface ITutorHint {
46
46
  }
47
47
  export interface ITutorFeedback {
48
48
  rating: number | null;
49
- categories: string[] | null;
50
49
  comment: string | null;
51
- submittedAt: number | Date | null;
52
50
  }
53
51
  export interface ITutorFeedbackInput {
54
52
  rating?: number;
55
- categories?: string[];
56
53
  comment?: string;
57
54
  }
58
55
  export interface ITutorResource {
@@ -43,3 +43,48 @@ export interface IUkmla2026Presentation {
43
43
  correctQuestions?: number | null;
44
44
  incorrectQuestions?: number | null;
45
45
  }
46
+ /**
47
+ * A Quesmed area of clinical practice: our own curated grouping.
48
+ * Conditions and presentations can sit in several areas, and their counts here
49
+ * are specific to this area.
50
+ */
51
+ export interface IUkmla2026Area {
52
+ id: Id;
53
+ name: string;
54
+ sortOrder: number;
55
+ descriptor?: string | null;
56
+ changeType: EUkmla2026ChangeType;
57
+ legacyNames?: string[];
58
+ conditions?: IUkmla2026AreaCondition[];
59
+ presentations?: IUkmla2026AreaPresentation[];
60
+ totalQuestions?: number | null;
61
+ correctQuestions?: number | null;
62
+ incorrectQuestions?: number | null;
63
+ }
64
+ /**
65
+ * A condition as it appears inside one area.
66
+ */
67
+ export interface IUkmla2026AreaCondition {
68
+ areaId: number;
69
+ conditionId: number;
70
+ name: string;
71
+ changeType: EUkmla2026ChangeType;
72
+ legacyNames?: string[];
73
+ concepts?: IConcept[];
74
+ questionIds?: number[];
75
+ totalQuestions?: number | null;
76
+ correctQuestions?: number | null;
77
+ incorrectQuestions?: number | null;
78
+ }
79
+ /** A presentation as it appears inside one area. */
80
+ export interface IUkmla2026AreaPresentation {
81
+ areaId: number;
82
+ presentationId: number;
83
+ name: string;
84
+ changeType: EUkmla2026ChangeType;
85
+ legacyNames?: string[];
86
+ questionIds?: number[];
87
+ totalQuestions?: number | null;
88
+ correctQuestions?: number | null;
89
+ incorrectQuestions?: number | null;
90
+ }
@@ -17,6 +17,7 @@ export type IVideoTokens = {
17
17
  storyboard: string;
18
18
  gif: string;
19
19
  bunnyUrl: string;
20
+ hlsUrl: string;
20
21
  };
21
22
  export interface IVideo {
22
23
  id: Id;
@@ -43,20 +43,20 @@ exports.QUESTION_UKMLA_FIELDS = (0, client_1.gql) `
43
43
  presentations {
44
44
  id
45
45
  name
46
- topicId
47
- topic {
48
- id
49
- name
50
- }
51
46
  }
52
47
  conditions {
53
48
  id
54
49
  name
55
- topicId
56
- topic {
57
- id
58
- name
59
- }
50
+ }
51
+ bodySystems {
52
+ id
53
+ name
54
+ sortOrder
55
+ }
56
+ areas {
57
+ id
58
+ name
59
+ sortOrder
60
60
  }
61
61
  }
62
62
  `;
@@ -70,9 +70,7 @@ exports.TUTOR_CONVERSATION_FIELDS = (0, client_1.gql) `
70
70
  }
71
71
  feedback {
72
72
  rating
73
- categories
74
73
  comment
75
- submittedAt
76
74
  }
77
75
  lastActivityAt
78
76
  createdAt
@@ -59,6 +59,7 @@ exports.VIDEO_LIBRARY_FIELDS = (0, client_1.gql) `
59
59
  thumbnail
60
60
  gif
61
61
  bunnyUrl
62
+ hlsUrl
62
63
  }
63
64
  duration
64
65
  status
@@ -88,6 +89,7 @@ exports.VIDEO_TOKENS_FIELDS = (0, client_1.gql) `
88
89
  storyboard
89
90
  gif
90
91
  bunnyUrl
92
+ hlsUrl
91
93
  }
92
94
  }
93
95
  `;
@@ -137,14 +137,111 @@ exports.PUBLIC_QBANK_KNOWLEDGE_LIBRARY = (0, client_1.gql) `
137
137
  }
138
138
  `;
139
139
  exports.OSCE_KNOWLEDGE_VIDEO_LIBRARY = (0, client_1.gql) `
140
- ${osce_1.OSCE_STATION_FIELDS}
140
+ ${fragments_1.PICTURE_FIELDS}
141
+ fragment OsceStationMarkFields on OsceStationMark {
142
+ id
143
+ index
144
+ osceStationId
145
+ header
146
+ name
147
+ weight
148
+ __typename
149
+ }
150
+
151
+ fragment VideoFields on Video {
152
+ id
153
+ title
154
+ thumbnail
155
+ description
156
+ duration
157
+ watchLater
158
+ tokens {
159
+ hlsUrl
160
+ bunnyUrl
161
+ thumbnail
162
+ gif
163
+ }
164
+ __typename
165
+ }
166
+
167
+ fragment OsceStationFields on OsceStation {
168
+ id
169
+ updatedAt
170
+ name
171
+ hiddenName
172
+ status
173
+ createdBy
174
+ preDefined
175
+ aiEnabled
176
+ phaseTimers
177
+ userNote {
178
+ id
179
+ userId
180
+ stationId
181
+ note
182
+ updatedAt
183
+ __typename
184
+ }
185
+ osceType {
186
+ id
187
+ name
188
+ __typename
189
+ }
190
+ entitlement {
191
+ id
192
+ name
193
+ index
194
+ __typename
195
+ }
196
+ difficulty
197
+ candidateBrief
198
+ examinerBrief
199
+ actorBrief
200
+ explanation
201
+ marks {
202
+ ...OsceStationMarkFields
203
+ __typename
204
+ }
205
+ clinicalData
206
+ picture {
207
+ ...PictureFields
208
+ __typename
209
+ }
210
+ candidatePictures {
211
+ ...PictureFields
212
+ __typename
213
+ }
214
+ actorPictures {
215
+ ...PictureFields
216
+ __typename
217
+ }
218
+ examinerPictures {
219
+ ...PictureFields
220
+ __typename
221
+ }
222
+ walkthroughPictures {
223
+ ...PictureFields
224
+ __typename
225
+ }
226
+ clinicalPictures {
227
+ ...PictureFields
228
+ __typename
229
+ }
230
+ videos {
231
+ ...VideoFields
232
+ __typename
233
+ }
234
+ demo
235
+ __typename
236
+ }
237
+
141
238
  query OsceKnowledgeVideoLibrary($videosOnly: Boolean) {
142
239
  restricted {
143
240
  osceBook(videosOnly: $videosOnly) {
144
241
  ...OsceStationFields
145
- lastOsceMarksheetId
146
- score
242
+ __typename
147
243
  }
244
+ __typename
148
245
  }
149
246
  }
150
247
  `;
@@ -1,14 +1,27 @@
1
- import { EDifficultyType, IUkmla2026BodySystem, IUkmla2026PresentationLetter, Id } from '../../../models';
1
+ import { EDifficultyType, IUkmla2026Area, IUkmla2026BodySystem, IUkmla2026PresentationLetter, Id } from '../../../models';
2
2
  import { IPreBuildMarksheet } from '../../mutation/restricted';
3
3
  import { RestrictedData, graphqlNormalize } from '../../types';
4
4
  export type IUkmla2026BodySystemsData = RestrictedData<(graphqlNormalize & IUkmla2026BodySystem)[], 'ukmlaBodySystems'>;
5
5
  export declare const UKMLA_2026_BODY_SYSTEMS: import("@apollo/client").DocumentNode;
6
6
  export type IUkmla2026PresentationsData = RestrictedData<(graphqlNormalize & IUkmla2026PresentationLetter)[], 'ukmlaPresentations'>;
7
7
  export declare const UKMLA_2026_PRESENTATIONS: import("@apollo/client").DocumentNode;
8
+ export type IUkmla2026AreasData = RestrictedData<(graphqlNormalize & IUkmla2026Area)[], 'ukmlaAreas'>;
9
+ export declare const UKMLA_2026_AREAS: import("@apollo/client").DocumentNode;
10
+ /**
11
+ * One item inside one area of the Areas of Practice tab. `itemId` is the
12
+ * `conditionId` or `presentationId`, depending on which list it is passed in.
13
+ */
14
+ export interface IUkmla2026AreaItemInput {
15
+ areaId: number;
16
+ itemId: number;
17
+ }
8
18
  export interface IPreBuildUkmla2026MarksheetVar {
9
19
  bodySystemIds?: number[];
10
20
  conditionIds?: number[];
11
21
  presentationIds?: number[];
22
+ areaIds?: number[];
23
+ areaConditions?: IUkmla2026AreaItemInput[];
24
+ areaPresentations?: IUkmla2026AreaItemInput[];
12
25
  search?: string;
13
26
  marksheetId?: Id;
14
27
  source: string;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PRE_BUILD_UKMLA_2026_MARKSHEET = exports.UKMLA_2026_PRESENTATIONS = exports.UKMLA_2026_BODY_SYSTEMS = void 0;
3
+ exports.PRE_BUILD_UKMLA_2026_MARKSHEET = exports.UKMLA_2026_AREAS = exports.UKMLA_2026_PRESENTATIONS = exports.UKMLA_2026_BODY_SYSTEMS = void 0;
4
4
  const client_1 = require("@apollo/client");
5
5
  exports.UKMLA_2026_BODY_SYSTEMS = (0, client_1.gql) `
6
6
  query Ukmla2026BodySystems {
@@ -55,11 +55,59 @@ exports.UKMLA_2026_PRESENTATIONS = (0, client_1.gql) `
55
55
  }
56
56
  }
57
57
  `;
58
+ exports.UKMLA_2026_AREAS = (0, client_1.gql) `
59
+ query Ukmla2026Areas {
60
+ restricted {
61
+ ukmlaAreas {
62
+ id
63
+ name
64
+ sortOrder
65
+ descriptor
66
+ changeType
67
+ legacyNames
68
+ totalQuestions
69
+ correctQuestions
70
+ incorrectQuestions
71
+ conditions {
72
+ areaId
73
+ conditionId
74
+ name
75
+ changeType
76
+ legacyNames
77
+ questionIds
78
+ totalQuestions
79
+ correctQuestions
80
+ incorrectQuestions
81
+ concepts {
82
+ id
83
+ name
84
+ topicId
85
+ chapterId
86
+ }
87
+ }
88
+ presentations {
89
+ areaId
90
+ presentationId
91
+ name
92
+ changeType
93
+ legacyNames
94
+ questionIds
95
+ totalQuestions
96
+ correctQuestions
97
+ incorrectQuestions
98
+ }
99
+ }
100
+ }
101
+ }
102
+ `;
58
103
  exports.PRE_BUILD_UKMLA_2026_MARKSHEET = (0, client_1.gql) `
59
104
  query PreBuildUkmla2026Marksheet(
60
105
  $bodySystemIds: [Int!]
61
106
  $conditionIds: [Int!]
62
107
  $presentationIds: [Int!]
108
+ $areaIds: [Int!]
109
+ $areaConditions: [Ukmla2026AreaItemInput!]
110
+ $areaPresentations: [Ukmla2026AreaItemInput!]
63
111
  $source: String!
64
112
  $search: String
65
113
  $marksheetId: Int
@@ -71,6 +119,9 @@ exports.PRE_BUILD_UKMLA_2026_MARKSHEET = (0, client_1.gql) `
71
119
  bodySystemIds: $bodySystemIds
72
120
  conditionIds: $conditionIds
73
121
  presentationIds: $presentationIds
122
+ areaIds: $areaIds
123
+ areaConditions: $areaConditions
124
+ areaPresentations: $areaPresentations
74
125
  source: $source
75
126
  search: $search
76
127
  marksheetId: $marksheetId
@@ -1,5 +1,6 @@
1
1
  import { IConcept } from './Concept';
2
2
  import { Id } from './Type';
3
+ import { EUkmla2026ChangeType } from './Ukmla2026';
3
4
  import { IUkmlaTopic } from './UkmlaTopic';
4
5
  export interface ICondition {
5
6
  id: Id;
@@ -7,12 +8,18 @@ export interface ICondition {
7
8
  updatedAt: number | Date;
8
9
  deletedAt: number | Date;
9
10
  name: string;
10
- topicId: Id;
11
- topic: IUkmlaTopic;
11
+ /** @deprecated Legacy UKMLA content map. Use `bodySystemId` instead. */
12
+ topicId?: Id | null;
13
+ /** @deprecated Legacy UKMLA content map. Not set on UKMLA 2026 rows. */
14
+ topic?: IUkmlaTopic | null;
12
15
  concepts?: IConcept[];
16
+ /** @deprecated Legacy UKMLA content map. Not set on UKMLA 2026 rows. */
13
17
  demo?: boolean;
14
18
  public: boolean;
15
19
  questionIds: number[];
20
+ bodySystemId?: number | null;
21
+ changeType?: EUkmla2026ChangeType | null;
22
+ legacyNames?: string[] | null;
16
23
  totalQuestions?: number | null;
17
24
  correctQuestions?: number | null;
18
25
  incorrectQuestions?: number | null;
@@ -1,4 +1,5 @@
1
1
  import { Id } from './Type';
2
+ import { EUkmla2026ChangeType } from './Ukmla2026';
2
3
  import { IUkmlaTopic } from './UkmlaTopic';
3
4
  export interface IPresentation {
4
5
  id: Id;
@@ -6,11 +7,16 @@ export interface IPresentation {
6
7
  updatedAt: number | Date;
7
8
  deletedAt: number | Date;
8
9
  name: string;
9
- topicId: Id;
10
- topic: IUkmlaTopic;
10
+ /** @deprecated Legacy UKMLA content map. Not set on UKMLA 2026 rows. */
11
+ topicId?: Id | null;
12
+ /** @deprecated Legacy UKMLA content map. Not set on UKMLA 2026 rows. */
13
+ topic?: IUkmlaTopic | null;
14
+ /** @deprecated Legacy UKMLA content map. Not set on UKMLA 2026 rows. */
11
15
  demo?: boolean;
12
16
  public: boolean;
13
17
  questionIds: number[];
18
+ changeType?: EUkmla2026ChangeType | null;
19
+ legacyNames?: string[] | null;
14
20
  totalQuestions?: number | null;
15
21
  correctQuestions?: number | null;
16
22
  incorrectQuestions?: number | null;
@@ -10,6 +10,7 @@ import { IPresentation } from './Presentation';
10
10
  import { ITopic } from './Topic';
11
11
  import { Id } from './Type';
12
12
  import { ITheme } from './Ucat';
13
+ import { IUkmla2026Area, IUkmla2026BodySystem } from './Ukmla2026';
13
14
  import { IUkmlaTopic } from './UkmlaTopic';
14
15
  import { EUserLearningPoint, IUser } from './User';
15
16
  export declare enum EPsaSectionType {
@@ -95,6 +96,8 @@ export interface IQuestion {
95
96
  concept?: IConcept;
96
97
  conditions?: ICondition[];
97
98
  presentations?: IPresentation[];
99
+ bodySystems?: Pick<IUkmla2026BodySystem, 'id' | 'name' | 'sortOrder'>[];
100
+ areas?: Pick<IUkmla2026Area, 'id' | 'name' | 'sortOrder'>[];
98
101
  question: string;
99
102
  explanation?: string;
100
103
  learningPoint?: string;
@@ -46,13 +46,10 @@ export interface ITutorHint {
46
46
  }
47
47
  export interface ITutorFeedback {
48
48
  rating: number | null;
49
- categories: string[] | null;
50
49
  comment: string | null;
51
- submittedAt: number | Date | null;
52
50
  }
53
51
  export interface ITutorFeedbackInput {
54
52
  rating?: number;
55
- categories?: string[];
56
53
  comment?: string;
57
54
  }
58
55
  export interface ITutorResource {
@@ -43,3 +43,48 @@ export interface IUkmla2026Presentation {
43
43
  correctQuestions?: number | null;
44
44
  incorrectQuestions?: number | null;
45
45
  }
46
+ /**
47
+ * A Quesmed area of clinical practice: our own curated grouping.
48
+ * Conditions and presentations can sit in several areas, and their counts here
49
+ * are specific to this area.
50
+ */
51
+ export interface IUkmla2026Area {
52
+ id: Id;
53
+ name: string;
54
+ sortOrder: number;
55
+ descriptor?: string | null;
56
+ changeType: EUkmla2026ChangeType;
57
+ legacyNames?: string[];
58
+ conditions?: IUkmla2026AreaCondition[];
59
+ presentations?: IUkmla2026AreaPresentation[];
60
+ totalQuestions?: number | null;
61
+ correctQuestions?: number | null;
62
+ incorrectQuestions?: number | null;
63
+ }
64
+ /**
65
+ * A condition as it appears inside one area.
66
+ */
67
+ export interface IUkmla2026AreaCondition {
68
+ areaId: number;
69
+ conditionId: number;
70
+ name: string;
71
+ changeType: EUkmla2026ChangeType;
72
+ legacyNames?: string[];
73
+ concepts?: IConcept[];
74
+ questionIds?: number[];
75
+ totalQuestions?: number | null;
76
+ correctQuestions?: number | null;
77
+ incorrectQuestions?: number | null;
78
+ }
79
+ /** A presentation as it appears inside one area. */
80
+ export interface IUkmla2026AreaPresentation {
81
+ areaId: number;
82
+ presentationId: number;
83
+ name: string;
84
+ changeType: EUkmla2026ChangeType;
85
+ legacyNames?: string[];
86
+ questionIds?: number[];
87
+ totalQuestions?: number | null;
88
+ correctQuestions?: number | null;
89
+ incorrectQuestions?: number | null;
90
+ }
@@ -17,6 +17,7 @@ export type IVideoTokens = {
17
17
  storyboard: string;
18
18
  gif: string;
19
19
  bunnyUrl: string;
20
+ hlsUrl: string;
20
21
  };
21
22
  export interface IVideo {
22
23
  id: Id;
@@ -40,20 +40,20 @@ export const QUESTION_UKMLA_FIELDS = gql `
40
40
  presentations {
41
41
  id
42
42
  name
43
- topicId
44
- topic {
45
- id
46
- name
47
- }
48
43
  }
49
44
  conditions {
50
45
  id
51
46
  name
52
- topicId
53
- topic {
54
- id
55
- name
56
- }
47
+ }
48
+ bodySystems {
49
+ id
50
+ name
51
+ sortOrder
52
+ }
53
+ areas {
54
+ id
55
+ name
56
+ sortOrder
57
57
  }
58
58
  }
59
59
  `;
@@ -67,9 +67,7 @@ export const TUTOR_CONVERSATION_FIELDS = gql `
67
67
  }
68
68
  feedback {
69
69
  rating
70
- categories
71
70
  comment
72
- submittedAt
73
71
  }
74
72
  lastActivityAt
75
73
  createdAt
@@ -56,6 +56,7 @@ export const VIDEO_LIBRARY_FIELDS = gql `
56
56
  thumbnail
57
57
  gif
58
58
  bunnyUrl
59
+ hlsUrl
59
60
  }
60
61
  duration
61
62
  status
@@ -85,6 +86,7 @@ export const VIDEO_TOKENS_FIELDS = gql `
85
86
  storyboard
86
87
  gif
87
88
  bunnyUrl
89
+ hlsUrl
88
90
  }
89
91
  }
90
92
  `;
@@ -1,5 +1,5 @@
1
1
  import { gql } from '@apollo/client';
2
- import { CHAPTER_FIELDS } from '../../fragments';
2
+ import { CHAPTER_FIELDS, PICTURE_FIELDS } from '../../fragments';
3
3
  import { OSCE_STATION_FIELDS } from './../../fragments/osce';
4
4
  export const QBANK_KNOWLEDGE_VIDEO_LIBRARY = gql `
5
5
  ${CHAPTER_FIELDS}
@@ -134,14 +134,111 @@ export const PUBLIC_QBANK_KNOWLEDGE_LIBRARY = gql `
134
134
  }
135
135
  `;
136
136
  export const OSCE_KNOWLEDGE_VIDEO_LIBRARY = gql `
137
- ${OSCE_STATION_FIELDS}
137
+ ${PICTURE_FIELDS}
138
+ fragment OsceStationMarkFields on OsceStationMark {
139
+ id
140
+ index
141
+ osceStationId
142
+ header
143
+ name
144
+ weight
145
+ __typename
146
+ }
147
+
148
+ fragment VideoFields on Video {
149
+ id
150
+ title
151
+ thumbnail
152
+ description
153
+ duration
154
+ watchLater
155
+ tokens {
156
+ hlsUrl
157
+ bunnyUrl
158
+ thumbnail
159
+ gif
160
+ }
161
+ __typename
162
+ }
163
+
164
+ fragment OsceStationFields on OsceStation {
165
+ id
166
+ updatedAt
167
+ name
168
+ hiddenName
169
+ status
170
+ createdBy
171
+ preDefined
172
+ aiEnabled
173
+ phaseTimers
174
+ userNote {
175
+ id
176
+ userId
177
+ stationId
178
+ note
179
+ updatedAt
180
+ __typename
181
+ }
182
+ osceType {
183
+ id
184
+ name
185
+ __typename
186
+ }
187
+ entitlement {
188
+ id
189
+ name
190
+ index
191
+ __typename
192
+ }
193
+ difficulty
194
+ candidateBrief
195
+ examinerBrief
196
+ actorBrief
197
+ explanation
198
+ marks {
199
+ ...OsceStationMarkFields
200
+ __typename
201
+ }
202
+ clinicalData
203
+ picture {
204
+ ...PictureFields
205
+ __typename
206
+ }
207
+ candidatePictures {
208
+ ...PictureFields
209
+ __typename
210
+ }
211
+ actorPictures {
212
+ ...PictureFields
213
+ __typename
214
+ }
215
+ examinerPictures {
216
+ ...PictureFields
217
+ __typename
218
+ }
219
+ walkthroughPictures {
220
+ ...PictureFields
221
+ __typename
222
+ }
223
+ clinicalPictures {
224
+ ...PictureFields
225
+ __typename
226
+ }
227
+ videos {
228
+ ...VideoFields
229
+ __typename
230
+ }
231
+ demo
232
+ __typename
233
+ }
234
+
138
235
  query OsceKnowledgeVideoLibrary($videosOnly: Boolean) {
139
236
  restricted {
140
237
  osceBook(videosOnly: $videosOnly) {
141
238
  ...OsceStationFields
142
- lastOsceMarksheetId
143
- score
239
+ __typename
144
240
  }
241
+ __typename
145
242
  }
146
243
  }
147
244
  `;
@@ -1,14 +1,27 @@
1
- import { EDifficultyType, IUkmla2026BodySystem, IUkmla2026PresentationLetter, Id } from '../../../models';
1
+ import { EDifficultyType, IUkmla2026Area, IUkmla2026BodySystem, IUkmla2026PresentationLetter, Id } from '../../../models';
2
2
  import { IPreBuildMarksheet } from '../../mutation/restricted';
3
3
  import { RestrictedData, graphqlNormalize } from '../../types';
4
4
  export type IUkmla2026BodySystemsData = RestrictedData<(graphqlNormalize & IUkmla2026BodySystem)[], 'ukmlaBodySystems'>;
5
5
  export declare const UKMLA_2026_BODY_SYSTEMS: import("@apollo/client").DocumentNode;
6
6
  export type IUkmla2026PresentationsData = RestrictedData<(graphqlNormalize & IUkmla2026PresentationLetter)[], 'ukmlaPresentations'>;
7
7
  export declare const UKMLA_2026_PRESENTATIONS: import("@apollo/client").DocumentNode;
8
+ export type IUkmla2026AreasData = RestrictedData<(graphqlNormalize & IUkmla2026Area)[], 'ukmlaAreas'>;
9
+ export declare const UKMLA_2026_AREAS: import("@apollo/client").DocumentNode;
10
+ /**
11
+ * One item inside one area of the Areas of Practice tab. `itemId` is the
12
+ * `conditionId` or `presentationId`, depending on which list it is passed in.
13
+ */
14
+ export interface IUkmla2026AreaItemInput {
15
+ areaId: number;
16
+ itemId: number;
17
+ }
8
18
  export interface IPreBuildUkmla2026MarksheetVar {
9
19
  bodySystemIds?: number[];
10
20
  conditionIds?: number[];
11
21
  presentationIds?: number[];
22
+ areaIds?: number[];
23
+ areaConditions?: IUkmla2026AreaItemInput[];
24
+ areaPresentations?: IUkmla2026AreaItemInput[];
12
25
  search?: string;
13
26
  marksheetId?: Id;
14
27
  source: string;
@@ -52,11 +52,59 @@ export const UKMLA_2026_PRESENTATIONS = gql `
52
52
  }
53
53
  }
54
54
  `;
55
+ export const UKMLA_2026_AREAS = gql `
56
+ query Ukmla2026Areas {
57
+ restricted {
58
+ ukmlaAreas {
59
+ id
60
+ name
61
+ sortOrder
62
+ descriptor
63
+ changeType
64
+ legacyNames
65
+ totalQuestions
66
+ correctQuestions
67
+ incorrectQuestions
68
+ conditions {
69
+ areaId
70
+ conditionId
71
+ name
72
+ changeType
73
+ legacyNames
74
+ questionIds
75
+ totalQuestions
76
+ correctQuestions
77
+ incorrectQuestions
78
+ concepts {
79
+ id
80
+ name
81
+ topicId
82
+ chapterId
83
+ }
84
+ }
85
+ presentations {
86
+ areaId
87
+ presentationId
88
+ name
89
+ changeType
90
+ legacyNames
91
+ questionIds
92
+ totalQuestions
93
+ correctQuestions
94
+ incorrectQuestions
95
+ }
96
+ }
97
+ }
98
+ }
99
+ `;
55
100
  export const PRE_BUILD_UKMLA_2026_MARKSHEET = gql `
56
101
  query PreBuildUkmla2026Marksheet(
57
102
  $bodySystemIds: [Int!]
58
103
  $conditionIds: [Int!]
59
104
  $presentationIds: [Int!]
105
+ $areaIds: [Int!]
106
+ $areaConditions: [Ukmla2026AreaItemInput!]
107
+ $areaPresentations: [Ukmla2026AreaItemInput!]
60
108
  $source: String!
61
109
  $search: String
62
110
  $marksheetId: Int
@@ -68,6 +116,9 @@ export const PRE_BUILD_UKMLA_2026_MARKSHEET = gql `
68
116
  bodySystemIds: $bodySystemIds
69
117
  conditionIds: $conditionIds
70
118
  presentationIds: $presentationIds
119
+ areaIds: $areaIds
120
+ areaConditions: $areaConditions
121
+ areaPresentations: $areaPresentations
71
122
  source: $source
72
123
  search: $search
73
124
  marksheetId: $marksheetId
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quesmed/types",
3
- "version": "2.6.296",
3
+ "version": "2.6.298",
4
4
  "description": "Typescript types for Quesmed",
5
5
  "keywords": [
6
6
  "quesmed",