@clinia/context-engine-js 0.7.0 → 0.9.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.
@@ -12,7 +12,7 @@ export interface paths {
12
12
  };
13
13
  /**
14
14
  * Get service info
15
- * @description Returns the service name and the build identity of the running process. Use it to confirm which build a deployment is serving.
15
+ * @description Returns the service name, its status, and the build identity of the running process. Use it to confirm which build a deployment is serving, or as an availability probe: it answers `200` when the service is healthy and `503` when it is degraded.
16
16
  */
17
17
  get: operations["get-service-info"];
18
18
  put?: never;
@@ -32,7 +32,7 @@ export interface paths {
32
32
  };
33
33
  /**
34
34
  * List patients
35
- * @description Returns a page of the patients currently registered, ordered by registry key. An empty page is returned if none have been registered yet. Graph counts are read per patient from the graph endpoints.
35
+ * @description Returns a page of the patients currently registered, ordered by patient ID. An empty page is returned if none have been registered yet. Graph counts are read per patient from the graph endpoints.
36
36
  */
37
37
  get: operations["list-patients"];
38
38
  put?: never;
@@ -52,12 +52,12 @@ export interface paths {
52
52
  };
53
53
  /**
54
54
  * Get patient
55
- * @description Returns demographic metadata and pipeline stats for a patient identified by its registry key.
55
+ * @description Returns demographic metadata and pipeline stats for a patient identified by its patient ID.
56
56
  */
57
57
  get: operations["get-patient"];
58
58
  /**
59
59
  * Upsert patient
60
- * @description Creates the patient entry if it does not yet exist, or returns the existing record unchanged. Fully idempotent — safe to call before or after the first ingest.
60
+ * @description Creates the patient entry if it does not yet exist, or returns the existing record unchanged. Idempotent.
61
61
  *
62
62
  * New ids are limited to `[A-Za-z0-9][A-Za-z0-9.~:-]{0,127}`, but you can keep referring to previous ids as they were defined.
63
63
  */
@@ -177,6 +177,30 @@ export interface paths {
177
177
  patch?: never;
178
178
  trace?: never;
179
179
  };
180
+ "/v1/patients/{patientId}/ingestions/sessions": {
181
+ parameters: {
182
+ query?: never;
183
+ header?: never;
184
+ path?: never;
185
+ cookie?: never;
186
+ };
187
+ get?: never;
188
+ put?: never;
189
+ /**
190
+ * Ingest sessions
191
+ * @description Submits one or more conversation transcripts. Each transcript is stored as a session — under the `sessionId` it declares, or a generated one — and the patient's memories are formed from it as ingestion proceeds.
192
+ *
193
+ * The response is a receipt: ingestion continues after it is returned, so poll the ingestion to follow it. `intake` comes back index-aligned with the sessions you sent, each item naming the session its transcript was stored under.
194
+ *
195
+ * Resending a session under the same `sessionId` is safe: messages already stored are recognised and not staged again, and turns added at the end are appended. A transcript without a `sessionId` always opens a new session. A transcript that edits, removes or reorders stored turns is refused. If any transcript is refused, the whole request is rejected and nothing is stored.
196
+ */
197
+ post: operations["ingest-sessions"];
198
+ delete?: never;
199
+ options?: never;
200
+ head?: never;
201
+ patch?: never;
202
+ trace?: never;
203
+ };
180
204
  "/v1/patients/{patientId}/ingestions": {
181
205
  parameters: {
182
206
  query?: never;
@@ -228,7 +252,10 @@ export interface paths {
228
252
  put?: never;
229
253
  /**
230
254
  * Create session
255
+ * @deprecated
231
256
  * @description Opens a new query session scoped to a patient. Sessions track interaction context across multiple MCP tool calls within a single agent run.
257
+ *
258
+ * Deprecated: a session no longer needs opening. Writing under a `sessionId` of your choosing — appending messages, a tool call's `session_id`, or `POST …/ingestions/sessions` — creates it, and the import route generates one when a transcript declares none.
232
259
  */
233
260
  post: operations["create-session"];
234
261
  delete?: never;
@@ -251,9 +278,12 @@ export interface paths {
251
278
  get: operations["get-session"];
252
279
  /**
253
280
  * Upsert a session
281
+ * @deprecated
254
282
  * @description Idempotently opens a session under a caller-provided id: creates it if new, or returns the existing session unchanged. Sessions track interaction context across multiple MCP tool calls within a single agent run.
255
283
  *
256
284
  * New ids are limited to `[A-Za-z0-9][A-Za-z0-9.~:-]{0,127}`, but you can keep referring to previous ids as they were defined.
285
+ *
286
+ * Deprecated: a session no longer needs opening. Its first write — appending messages, a tool call's `session_id`, or `POST …/ingestions/sessions` — creates it.
257
287
  */
258
288
  put: operations["upsert-session"];
259
289
  post?: never;
@@ -274,7 +304,12 @@ export interface paths {
274
304
  put?: never;
275
305
  /**
276
306
  * Append session messages
277
- * @description Appends user/assistant messages to an open session, in order. The session stays open. Tool-call turns are recorded separately by the MCP layer and are not accepted here.
307
+ * @deprecated
308
+ * @description Appends user/assistant messages to a session, in order, creating the session if this is its first write, and queues memory formation over them. The returned `ingestion` is the receipt to poll. Tool-call turns are recorded separately by the MCP layer and are not accepted here.
309
+ *
310
+ * New ids are limited to `[A-Za-z0-9][A-Za-z0-9.~:-]{0,127}`, but you can keep referring to previous ids as they were defined.
311
+ *
312
+ * Deprecated: use `POST …/ingestions/sessions`, which accepts the same messages under the session's id.
278
313
  */
279
314
  post: operations["append-messages"];
280
315
  delete?: never;
@@ -298,7 +333,10 @@ export interface paths {
298
333
  put?: never;
299
334
  /**
300
335
  * Generate session memories
301
- * @description Extracts memories from messages appended since the last run and infers memory↔fact relationships. The session stays active and can keep receiving messages. Append-only: it never re-extracts messages already covered by a prior run, so re-running it only adds memories for what's new, but it does not deduplicate against memories from a previous run. Call it intentionally rather than on every turn.
336
+ * @deprecated
337
+ * @description Accepts and does nothing: memories form from a session's messages as they arrive, through appending messages or `POST …/ingestions/sessions`, each of which returns the ingestion receipt to poll. `GET …/memories` returns a session's memories as they land.
338
+ *
339
+ * Deprecated: drop the call.
302
340
  */
303
341
  post: operations["generate-memories"];
304
342
  delete?: never;
@@ -307,26 +345,6 @@ export interface paths {
307
345
  patch?: never;
308
346
  trace?: never;
309
347
  };
310
- "/v1/patients/{patientId}/sessions/ingest": {
311
- parameters: {
312
- query?: never;
313
- header?: never;
314
- path?: never;
315
- cookie?: never;
316
- };
317
- get?: never;
318
- put?: never;
319
- /**
320
- * Ingest a complete session
321
- * @description Replays a complete set of messages as one session: creates the session, appends every message in order, then generates memories from it synchronously, so the response returns only after the patient's memories reflect the conversation. Messages can still be appended to the session. Intended for batch/replay use, not interactive sessions.
322
- */
323
- post: operations["ingest-session"];
324
- delete?: never;
325
- options?: never;
326
- head?: never;
327
- patch?: never;
328
- trace?: never;
329
- };
330
348
  "/v1/patients/{patientId}/vfs": {
331
349
  parameters: {
332
350
  query?: never;
@@ -671,10 +689,15 @@ export interface paths {
671
689
  export type webhooks = Record<string, never>;
672
690
  export interface components {
673
691
  schemas: {
674
- /** @description Identity of the running service: its name and the build it came from. Reports what this process resolved at startup, which for edge builds is more specific than any released version. */
692
+ /** @description Identity and status of the running service: its name, whether it can serve requests, and the build it came from. Build identity is what this process resolved at startup, which for edge builds is more specific than any released version. */
675
693
  ServiceInfo: {
676
694
  /** @description Display name of the service. */
677
695
  name: string;
696
+ /**
697
+ * @description Whether the service can currently serve requests. `degraded` means requests that read or write data are expected to fail; it is always served with a `503`.
698
+ * @enum {string}
699
+ */
700
+ status: "healthy" | "degraded";
678
701
  /** @description Build identity of the running process. */
679
702
  version: {
680
703
  /** @description Product version of the running build. Injected as `VERSION` at image build time; falls back to the server package version outside a built image. */
@@ -689,7 +712,7 @@ export interface components {
689
712
  PatientList: {
690
713
  /** @description The requested page of items. */
691
714
  data: {
692
- /** @description Caller-assigned identifier used in all REST API routes. */
715
+ /** @description The patient ID, used in every REST route, VFS path and MCP tool. */
693
716
  registryKey: string;
694
717
  patient: components["schemas"]["PatientDemographics"];
695
718
  }[];
@@ -705,14 +728,14 @@ export interface components {
705
728
  };
706
729
  /** @description Demographic data extracted from the ingested record. Null if no patient resource was found during ingestion. */
707
730
  PatientDemographics: {
708
- /** @description Internal patient ID extracted from the ingested record (e.g., FHIR Patient.id). Used in VFS paths. */
731
+ /** @description The patient ID, the identifier the caller chose when creating the patient. */
709
732
  id: string;
710
733
  /** @description Patient display name extracted from the ingested record. */
711
734
  name: string;
712
735
  } | null;
713
736
  /** @description Demographic metadata and pipeline stats for a single patient. */
714
737
  PatientDetail: {
715
- /** @description Internal patient ID extracted from the ingested record. Used in VFS paths. */
738
+ /** @description The patient ID, used in every REST route, VFS path and MCP tool. */
716
739
  id: string;
717
740
  /** @description Patient display name extracted from the ingested record. */
718
741
  name: string;
@@ -928,6 +951,8 @@ export interface components {
928
951
  events: number;
929
952
  /** @description Prose passages staged. */
930
953
  narratives: number;
954
+ /** @description Conversation messages staged. */
955
+ messages: number;
931
956
  };
932
957
  /** @description What the submission held. Absent when it was not recorded. */
933
958
  IngestionIntake: {
@@ -955,6 +980,8 @@ export interface components {
955
980
  outcome: components["schemas"]["IngestionItemOutcome"];
956
981
  reason?: components["schemas"]["IngestionIgnoreReason"];
957
982
  }[];
983
+ /** @description Present on `message` items: the session the conversation was stored under — the `sessionId` it declared, or the one generated for it. Use it to continue the session or read its memories. */
984
+ sessionId?: string;
958
985
  }[];
959
986
  /**
960
987
  * @description structured: clinical detail was read from it. text_only: kept, but as prose — no structured detail was read. ignored: not used at all.
@@ -978,6 +1005,26 @@ export interface components {
978
1005
  } & {
979
1006
  [key: string]: unknown;
980
1007
  };
1008
+ /** @description One or more sessions to import. */
1009
+ IngestSessionsBody: {
1010
+ /** @description Sessions to import. `intake` comes back index-aligned with this list. */
1011
+ sessions: components["schemas"]["IngestSession"][];
1012
+ };
1013
+ IngestSession: {
1014
+ /** @description Id of the session these messages belong to. Omit it to open a new session under a generated id; send the same id again to continue that session. */
1015
+ sessionId?: string;
1016
+ /** @description The messages, in chronological order. */
1017
+ messages: components["schemas"]["IngestSessionsMessage"][];
1018
+ };
1019
+ IngestSessionsMessage: {
1020
+ /**
1021
+ * @description Author of the message.
1022
+ * @enum {string}
1023
+ */
1024
+ role: "user" | "assistant";
1025
+ /** @description Message text. */
1026
+ content: string;
1027
+ };
981
1028
  /** @description A page of submissions for this patient. */
982
1029
  IngestionList: {
983
1030
  /** @description The requested page of items. */
@@ -1044,19 +1091,6 @@ export interface components {
1044
1091
  /** @description ISO 8601 timestamp when this memory was recorded. */
1045
1092
  createdAt: string;
1046
1093
  };
1047
- /** @description A complete set of messages to ingest as a single closed session. */
1048
- IngestSessionBody: {
1049
- /** @description Every message to replay, in chronological order. */
1050
- messages: {
1051
- /**
1052
- * @description Author of the message.
1053
- * @enum {string}
1054
- */
1055
- role: "user" | "assistant";
1056
- /** @description Message text. */
1057
- content: string;
1058
- }[];
1059
- };
1060
1094
  /** @description Result of a VFS browse operation. Contains directory children when the path resolves to a directory, or file content metadata when it resolves to a file. */
1061
1095
  BrowseResult: {
1062
1096
  /** @description VFS path of the browsed node, relative to the patient root. */
@@ -1070,6 +1104,8 @@ export interface components {
1070
1104
  children?: {
1071
1105
  /** @description Name of the child node (filename or directory name). */
1072
1106
  name: string;
1107
+ /** @description Human-readable label for the child. Shown beside `name`, never used in a path. */
1108
+ display?: string;
1073
1109
  /**
1074
1110
  * @description Whether this child is a directory or a file.
1075
1111
  * @enum {string}
@@ -1095,7 +1131,7 @@ export interface components {
1095
1131
  * @enum {string}
1096
1132
  */
1097
1133
  type: "extracted_fact";
1098
- /** @description Unique identifier for this node, as a prefixed node id (`{type}_{id}`, e.g. `ef_...`). */
1134
+ /** @description Unique identifier for this node: its type's prefix, `_`, then the underlying id (e.g. `ef_...`). */
1099
1135
  id: string;
1100
1136
  /** @description ISO 8601 timestamp when this node was first created. */
1101
1137
  createdAt: string;
@@ -1111,24 +1147,26 @@ export interface components {
1111
1147
  code: string;
1112
1148
  display?: string;
1113
1149
  }[];
1114
- /** @description ISO date when this fact was recorded or last updated in the source system. */
1115
- date?: string;
1116
- /** @description Temporal bounds of the fact's validity. */
1150
+ /** @description ISO date when the source entry was clinically recorded, from FHIR recordedDate/dateAsserted/recorded/FamilyMemberHistory.date or CDA entry/section author/time. */
1151
+ authoredAt?: string;
1152
+ /** @enum {string} */
1153
+ type: "condition";
1154
+ /** @description When the fact held: `start` is when it became active, `end` when it ended or was resolved. */
1117
1155
  effectivePeriod?: {
1118
- /** @description ISO date when this fact became active. */
1156
+ /** @description ISO date when it began. */
1119
1157
  start?: string;
1120
- /** @description ISO date when this fact ended or was resolved. */
1158
+ /** @description ISO date when it ended. */
1121
1159
  end?: string;
1122
1160
  };
1123
- /** @enum {string} */
1124
- type: "condition";
1125
1161
  /**
1126
1162
  * @description Clinical status of the condition. active = currently present; resolved = no longer present; inactive = present but not actively managed.
1127
1163
  * @enum {string}
1128
1164
  */
1129
1165
  status: "active" | "resolved" | "inactive" | "unknown";
1130
- /** @description ISO date when the condition first started, from Condition.onsetPeriod.start or onsetDateTime. */
1131
- onsetDate?: string;
1166
+ /** @description ISO date when a clinician stated it held. Shows it held then, not when it started. */
1167
+ assertedAt?: string;
1168
+ /** @description ISO date when its status last changed. */
1169
+ statusChangedAt?: string;
1132
1170
  /** @description Where this fact was extracted from. */
1133
1171
  source: {
1134
1172
  /**
@@ -1156,15 +1194,8 @@ export interface components {
1156
1194
  code: string;
1157
1195
  display?: string;
1158
1196
  }[];
1159
- /** @description ISO date when this fact was recorded or last updated in the source system. */
1160
- date?: string;
1161
- /** @description Temporal bounds of the fact's validity. */
1162
- effectivePeriod?: {
1163
- /** @description ISO date when this fact became active. */
1164
- start?: string;
1165
- /** @description ISO date when this fact ended or was resolved. */
1166
- end?: string;
1167
- };
1197
+ /** @description ISO date when the source entry was clinically recorded, from FHIR recordedDate/dateAsserted/recorded/FamilyMemberHistory.date or CDA entry/section author/time. */
1198
+ authoredAt?: string;
1168
1199
  /** @enum {string} */
1169
1200
  type: "medication";
1170
1201
  /**
@@ -1176,6 +1207,31 @@ export interface components {
1176
1207
  dosageInstructions?: string;
1177
1208
  /** @description Route of administration from dosage[].route, e.g. 'Oral', 'IV', 'Topical'. */
1178
1209
  route?: string;
1210
+ /** @description When the fact held: `start` is when it became active, `end` when it ended or was resolved. */
1211
+ effectivePeriod?: {
1212
+ /** @description ISO date when it began. */
1213
+ start?: string;
1214
+ /** @description ISO date when it ended. */
1215
+ end?: string;
1216
+ };
1217
+ /** @description ISO date when the pharmacy prepared the dispense. */
1218
+ preparedAt?: string;
1219
+ /** @description ISO date when the pharmacy handed the drug over, which shows the patient actually received it. */
1220
+ handedOverAt?: string;
1221
+ /** @description ISO date when the drug or procedure was ordered. */
1222
+ orderedAt?: string;
1223
+ /** @description When it is intended to happen, as opposed to when it did: a scheduled encounter or procedure, the intended dosing or therapy span. */
1224
+ plannedPeriod?: {
1225
+ /** @description ISO date when it began. */
1226
+ start?: string;
1227
+ /** @description ISO date when it ended. */
1228
+ end?: string;
1229
+ };
1230
+ /** @description ISO date until which the order may be filled. */
1231
+ orderValidUntil?: string;
1232
+ /** @description ISO date when a clinician stated it held. Shows it held then, not when it started. */
1233
+ assertedAt?: string;
1234
+ routeDecision?: components["schemas"]["MedicationRouteDecision"];
1179
1235
  /** @description Where this fact was extracted from. */
1180
1236
  source: {
1181
1237
  /**
@@ -1203,15 +1259,8 @@ export interface components {
1203
1259
  code: string;
1204
1260
  display?: string;
1205
1261
  }[];
1206
- /** @description ISO date when this fact was recorded or last updated in the source system. */
1207
- date?: string;
1208
- /** @description Temporal bounds of the fact's validity. */
1209
- effectivePeriod?: {
1210
- /** @description ISO date when this fact became active. */
1211
- start?: string;
1212
- /** @description ISO date when this fact ended or was resolved. */
1213
- end?: string;
1214
- };
1262
+ /** @description ISO date when the source entry was clinically recorded, from FHIR recordedDate/dateAsserted/recorded/FamilyMemberHistory.date or CDA entry/section author/time. */
1263
+ authoredAt?: string;
1215
1264
  /** @enum {string} */
1216
1265
  type: "allergy";
1217
1266
  /**
@@ -1228,6 +1277,22 @@ export interface components {
1228
1277
  category?: string[];
1229
1278
  /** @description Observed reaction manifestations as display strings from reaction[].manifestation, e.g. ['Swelling', 'Anaphylaxis']. */
1230
1279
  reactions?: string[];
1280
+ /** @description When the fact held: `start` is when it became active, `end` when it ended or was resolved. */
1281
+ effectivePeriod?: {
1282
+ /** @description ISO date when it began. */
1283
+ start?: string;
1284
+ /** @description ISO date when it ended. */
1285
+ end?: string;
1286
+ };
1287
+ /** @description When each recorded reaction to the substance or vaccine started and ended. */
1288
+ reactionPeriods?: {
1289
+ /** @description ISO date when it began. */
1290
+ start?: string;
1291
+ /** @description ISO date when it ended. */
1292
+ end?: string;
1293
+ }[];
1294
+ /** @description ISO date of the most recent known reaction to the substance. */
1295
+ lastReactionAt?: string;
1231
1296
  /** @description Where this fact was extracted from. */
1232
1297
  source: {
1233
1298
  /**
@@ -1255,15 +1320,8 @@ export interface components {
1255
1320
  code: string;
1256
1321
  display?: string;
1257
1322
  }[];
1258
- /** @description ISO date when this fact was recorded or last updated in the source system. */
1259
- date?: string;
1260
- /** @description Temporal bounds of the fact's validity. */
1261
- effectivePeriod?: {
1262
- /** @description ISO date when this fact became active. */
1263
- start?: string;
1264
- /** @description ISO date when this fact ended or was resolved. */
1265
- end?: string;
1266
- };
1323
+ /** @description ISO date when the source entry was clinically recorded, from FHIR recordedDate/dateAsserted/recorded/FamilyMemberHistory.date or CDA entry/section author/time. */
1324
+ authoredAt?: string;
1267
1325
  /** @enum {string} */
1268
1326
  type: "family_history";
1269
1327
  /** @description Relationship of the relative to the patient from FamilyMemberHistory.relationship.text, e.g. 'Brother', 'Father', 'Maternal grandmother'. */
@@ -1277,7 +1335,15 @@ export interface components {
1277
1335
  conditions: {
1278
1336
  /** @description Condition name for this relative, e.g. 'Multiple sclerosis'. */
1279
1337
  display: string;
1338
+ /** @description When the relative developed the condition: an ISO date, or their age in years. */
1339
+ onset?: string | number;
1280
1340
  }[];
1341
+ /** @description ISO date when the relative was born. */
1342
+ birthDate?: string;
1343
+ /** @description When the relative died: an ISO date, or their age in years at death. */
1344
+ death?: string | number;
1345
+ /** @description The relative's age: in years, or as the source states it. */
1346
+ age?: string | number;
1281
1347
  /** @description Where this fact was extracted from. */
1282
1348
  source: {
1283
1349
  /**
@@ -1305,21 +1371,25 @@ export interface components {
1305
1371
  code: string;
1306
1372
  display?: string;
1307
1373
  }[];
1308
- /** @description ISO date when this fact was recorded or last updated in the source system. */
1309
- date?: string;
1310
- /** @description Temporal bounds of the fact's validity. */
1311
- effectivePeriod?: {
1312
- /** @description ISO date when this fact became active. */
1313
- start?: string;
1314
- /** @description ISO date when this fact ended or was resolved. */
1315
- end?: string;
1316
- };
1374
+ /** @description ISO date when the source entry was clinically recorded, from FHIR recordedDate/dateAsserted/recorded/FamilyMemberHistory.date or CDA entry/section author/time. */
1375
+ authoredAt?: string;
1317
1376
  /** @enum {string} */
1318
1377
  type: "social_history";
1319
1378
  /** @description Observation topic from Observation.code.text, e.g. 'Tobacco use and exposure', 'Alcohol use'. */
1320
1379
  category?: string;
1321
1380
  /** @description Current state as a string from Observation.valueString or valueCodeableConcept.text, e.g. 'Smokeless tobacco non-user', 'Current every day smoker'. */
1322
1381
  value?: string;
1382
+ /** @description When the fact held: `start` is when it became active, `end` when it ended or was resolved. */
1383
+ effectivePeriod?: {
1384
+ /** @description ISO date when it began. */
1385
+ start?: string;
1386
+ /** @description ISO date when it ended. */
1387
+ end?: string;
1388
+ };
1389
+ /** @description ISO date when it happened, for something that happened at a point in time. */
1390
+ occurredAt?: string;
1391
+ /** @description ISO date when the result was released, which comes after it was measured. */
1392
+ issuedAt?: string;
1323
1393
  /** @description Where this fact was extracted from. */
1324
1394
  source: {
1325
1395
  /**
@@ -1347,15 +1417,8 @@ export interface components {
1347
1417
  code: string;
1348
1418
  display?: string;
1349
1419
  }[];
1350
- /** @description ISO date when this fact was recorded or last updated in the source system. */
1351
- date?: string;
1352
- /** @description Temporal bounds of the fact's validity. */
1353
- effectivePeriod?: {
1354
- /** @description ISO date when this fact became active. */
1355
- start?: string;
1356
- /** @description ISO date when this fact ended or was resolved. */
1357
- end?: string;
1358
- };
1420
+ /** @description ISO date when the source entry was clinically recorded, from FHIR recordedDate/dateAsserted/recorded/FamilyMemberHistory.date or CDA entry/section author/time. */
1421
+ authoredAt?: string;
1359
1422
  /** @enum {string} */
1360
1423
  type: "immunization";
1361
1424
  /**
@@ -1364,7 +1427,20 @@ export interface components {
1364
1427
  */
1365
1428
  status: "completed" | "not-done";
1366
1429
  /** @description ISO date when the vaccine was administered, from Immunization.occurrenceDateTime. */
1367
- occurrenceDate?: string;
1430
+ occurredAt?: string;
1431
+ /** @description When each recorded reaction to the substance or vaccine started and ended. */
1432
+ reactionPeriods?: {
1433
+ /** @description ISO date when it began. */
1434
+ start?: string;
1435
+ /** @description ISO date when it ended. */
1436
+ end?: string;
1437
+ }[];
1438
+ /** @description ISO date when the vaccine lot or device expires. */
1439
+ expiresAt?: string;
1440
+ /** @description ISO date when the vaccine information statement was published. */
1441
+ infoPublishedAt?: string;
1442
+ /** @description ISO date when the vaccine information statement was given to the patient. */
1443
+ infoPresentedAt?: string;
1368
1444
  /** @description Where this fact was extracted from. */
1369
1445
  source: {
1370
1446
  /**
@@ -1392,15 +1468,8 @@ export interface components {
1392
1468
  code: string;
1393
1469
  display?: string;
1394
1470
  }[];
1395
- /** @description ISO date when this fact was recorded or last updated in the source system. */
1396
- date?: string;
1397
- /** @description Temporal bounds of the fact's validity. */
1398
- effectivePeriod?: {
1399
- /** @description ISO date when this fact became active. */
1400
- start?: string;
1401
- /** @description ISO date when this fact ended or was resolved. */
1402
- end?: string;
1403
- };
1471
+ /** @description ISO date when the source entry was clinically recorded, from FHIR recordedDate/dateAsserted/recorded/FamilyMemberHistory.date or CDA entry/section author/time. */
1472
+ authoredAt?: string;
1404
1473
  /** @enum {string} */
1405
1474
  type: "device";
1406
1475
  /**
@@ -1408,6 +1477,17 @@ export interface components {
1408
1477
  * @enum {string}
1409
1478
  */
1410
1479
  status: "active" | "inactive" | "entered-in-error" | "unknown";
1480
+ /** @description When the fact held: `start` is when it became active, `end` when it ended or was resolved. */
1481
+ effectivePeriod?: {
1482
+ /** @description ISO date when it began. */
1483
+ start?: string;
1484
+ /** @description ISO date when it ended. */
1485
+ end?: string;
1486
+ };
1487
+ /** @description ISO date when the device was made. */
1488
+ manufacturedAt?: string;
1489
+ /** @description ISO date when the vaccine lot or device expires. */
1490
+ expiresAt?: string;
1411
1491
  /** @description Where this fact was extracted from. */
1412
1492
  source: {
1413
1493
  /**
@@ -1435,19 +1515,14 @@ export interface components {
1435
1515
  code: string;
1436
1516
  display?: string;
1437
1517
  }[];
1438
- /** @description ISO date when this fact was recorded or last updated in the source system. */
1439
- date?: string;
1440
- /** @description Temporal bounds of the fact's validity. */
1441
- effectivePeriod?: {
1442
- /** @description ISO date when this fact became active. */
1443
- start?: string;
1444
- /** @description ISO date when this fact ended or was resolved. */
1445
- end?: string;
1446
- };
1518
+ /** @description ISO date when the source entry was clinically recorded, from FHIR recordedDate/dateAsserted/recorded/FamilyMemberHistory.date or CDA entry/section author/time. */
1519
+ authoredAt?: string;
1447
1520
  /** @enum {string} */
1448
1521
  type: "demographic";
1449
1522
  /** @description Patient date of birth in ISO format (YYYY-MM-DD), from Patient.birthDate. */
1450
1523
  birthDate?: string;
1524
+ /** @description When the patient died: an ISO date from Patient.deceasedDateTime, or their age in years at death. */
1525
+ death?: string | number;
1451
1526
  /** @description Administrative sex from Patient.gender, e.g. 'male', 'female'. */
1452
1527
  sex?: string;
1453
1528
  /** @description Flattened address string from Patient.address, e.g. 'Laporte, CO'. Kept as a single string since HG provides it pre-formatted. */
@@ -1479,15 +1554,8 @@ export interface components {
1479
1554
  code: string;
1480
1555
  display?: string;
1481
1556
  }[];
1482
- /** @description ISO date when this fact was recorded or last updated in the source system. */
1483
- date?: string;
1484
- /** @description Temporal bounds of the fact's validity. */
1485
- effectivePeriod?: {
1486
- /** @description ISO date when this fact became active. */
1487
- start?: string;
1488
- /** @description ISO date when this fact ended or was resolved. */
1489
- end?: string;
1490
- };
1557
+ /** @description ISO date when the source entry was clinically recorded, from FHIR recordedDate/dateAsserted/recorded/FamilyMemberHistory.date or CDA entry/section author/time. */
1558
+ authoredAt?: string;
1491
1559
  /** @enum {string} */
1492
1560
  type: "insurance";
1493
1561
  /**
@@ -1499,6 +1567,13 @@ export interface components {
1499
1567
  planName?: string;
1500
1568
  /** @description Member identifier from Coverage.identifier[].value. */
1501
1569
  memberId?: string;
1570
+ /** @description When the fact held: `start` is when it became active, `end` when it ended or was resolved. */
1571
+ effectivePeriod?: {
1572
+ /** @description ISO date when it began. */
1573
+ start?: string;
1574
+ /** @description ISO date when it ended. */
1575
+ end?: string;
1576
+ };
1502
1577
  /** @description Where this fact was extracted from. */
1503
1578
  source: {
1504
1579
  /**
@@ -1526,15 +1601,8 @@ export interface components {
1526
1601
  code: string;
1527
1602
  display?: string;
1528
1603
  }[];
1529
- /** @description ISO date when this fact was recorded or last updated in the source system. */
1530
- date?: string;
1531
- /** @description Temporal bounds of the fact's validity. */
1532
- effectivePeriod?: {
1533
- /** @description ISO date when this fact became active. */
1534
- start?: string;
1535
- /** @description ISO date when this fact ended or was resolved. */
1536
- end?: string;
1537
- };
1604
+ /** @description ISO date when the source entry was clinically recorded, from FHIR recordedDate/dateAsserted/recorded/FamilyMemberHistory.date or CDA entry/section author/time. */
1605
+ authoredAt?: string;
1538
1606
  /** @enum {string} */
1539
1607
  type: "directive";
1540
1608
  /**
@@ -1544,6 +1612,17 @@ export interface components {
1544
1612
  status: "active" | "void" | "entered-in-error";
1545
1613
  /** @description Directive content extracted from the source document (e.g. living will, POLST). HG delivers these as PDFs rather than structured Consent resources. */
1546
1614
  notes?: string;
1615
+ /** @description When the fact held: `start` is when it became active, `end` when it ended or was resolved. */
1616
+ effectivePeriod?: {
1617
+ /** @description ISO date when it began. */
1618
+ start?: string;
1619
+ /** @description ISO date when it ended. */
1620
+ end?: string;
1621
+ };
1622
+ /** @description ISO date when the patient agreed to or signed it. */
1623
+ signedAt?: string;
1624
+ /** @description ISO date when someone last confirmed it is still valid. */
1625
+ verifiedAt?: string;
1547
1626
  /** @description Where this fact was extracted from. */
1548
1627
  source: {
1549
1628
  /**
@@ -1564,6 +1643,81 @@ export interface components {
1564
1643
  ingestionId: string;
1565
1644
  };
1566
1645
  };
1646
+ /** @description How a medication record's route was decided: `route` is the route it was given, absent when no step placed it, and `evidence` holds every step's decision. Depending on how it was ingested, a medication record carries it. */
1647
+ MedicationRouteDecision: {
1648
+ route?: components["schemas"]["MedicationRoute"];
1649
+ /** @description Every decision the steps made about the route, in the order the steps ran. */
1650
+ evidence: components["schemas"]["MedicationRouteEvidence"][];
1651
+ };
1652
+ /**
1653
+ * @description A route group, or `other` for a route outside every group. Absent from an identity when the route is unknown.
1654
+ * @enum {string}
1655
+ */
1656
+ MedicationRoute: "oral" | "rectal" | "sublingual" | "buccal" | "nasogastric" | "intramuscular" | "intravenous" | "subcutaneous" | "intradermal" | "intrathecal" | "intraperitoneal" | "intra-articular" | "intraosseous" | "hemodialysis" | "urethral" | "intrauterine" | "intraocular" | "intravesical" | "topical" | "transdermal" | "ophthalmic" | "otic" | "nasal" | "vaginal" | "inhalation" | "nebulization" | "other";
1657
+ /** @description One step's decision about a medication record's route: the route it named and how. `code-match` reads the product's dose form, `phrase-match` the record's texts, `evaluation` and `judgement` ask a model. A model's decision below its confidence threshold, or one the model is not sure of, stays as evidence without giving the route. */
1658
+ MedicationRouteEvidence: {
1659
+ route: components["schemas"]["MedicationRoute"];
1660
+ /** @enum {string} */
1661
+ method: "code-match";
1662
+ /** @description The RxNorm dose forms that named the route. */
1663
+ evidence: {
1664
+ system: string;
1665
+ code: string;
1666
+ display?: string;
1667
+ }[];
1668
+ } | {
1669
+ route: components["schemas"]["MedicationRoute"];
1670
+ /** @enum {string} */
1671
+ method: "phrase-match";
1672
+ /** @description The texts that named the route, each with the phrase that matched. */
1673
+ evidence: {
1674
+ /** @description The text the phrase was found in, as read from the record. */
1675
+ text: string;
1676
+ /** @description The route phrase that matched, in lower-case words. */
1677
+ phrase: string;
1678
+ }[];
1679
+ } | {
1680
+ route: components["schemas"]["MedicationRoute"];
1681
+ /** @enum {string} */
1682
+ method: "evaluation";
1683
+ /** @description The probability the model gave this route, from 0 to 1. */
1684
+ confidence: number;
1685
+ model: {
1686
+ /** @description Model provider identifier. */
1687
+ provider: string;
1688
+ /** @description Exact provider model identifier. */
1689
+ model: string;
1690
+ /** @description Provider model version when it is distinct from the model identifier. */
1691
+ version?: string;
1692
+ };
1693
+ /** @description The texts and codings the model read. */
1694
+ evidence: (string | {
1695
+ system: string;
1696
+ code: string;
1697
+ display?: string;
1698
+ })[];
1699
+ } | {
1700
+ route: components["schemas"]["MedicationRoute"];
1701
+ /** @enum {string} */
1702
+ method: "judgement";
1703
+ /**
1704
+ * @description How sure the model said it was. Only a `certain` judgement gives the route.
1705
+ * @enum {string}
1706
+ */
1707
+ certainty: "certain" | "likely" | "unsure";
1708
+ model: {
1709
+ /** @description Model provider identifier. */
1710
+ provider: string;
1711
+ /** @description Exact provider model identifier. */
1712
+ model: string;
1713
+ /** @description Provider model version when it is distinct from the model identifier. */
1714
+ version?: string;
1715
+ };
1716
+ /** @description The words of the record the model quoted. */
1717
+ evidence: string[];
1718
+ /** @description Why the model named this route. */
1719
+ reasoning: string;
1720
+ };
1567
1721
  /** @description A `fact` node in the patient context graph. */
1568
1722
  FactNode: {
1569
1723
  /**
@@ -1571,7 +1725,7 @@ export interface components {
1571
1725
  * @enum {string}
1572
1726
  */
1573
1727
  type: "fact";
1574
- /** @description Unique identifier for this node, as a prefixed node id (`{type}_{id}`, e.g. `ef_...`). */
1728
+ /** @description Unique identifier for this node: its type's prefix, `_`, then the underlying id (e.g. `ef_...`). */
1575
1729
  id: string;
1576
1730
  /** @description ISO 8601 timestamp when this node was first created. */
1577
1731
  createdAt: string;
@@ -1587,24 +1741,26 @@ export interface components {
1587
1741
  code: string;
1588
1742
  display?: string;
1589
1743
  }[];
1590
- /** @description ISO date when this fact was recorded or last updated in the source system. */
1591
- date?: string;
1592
- /** @description Temporal bounds of the fact's validity. */
1744
+ /** @description ISO date when the source entry was clinically recorded, from FHIR recordedDate/dateAsserted/recorded/FamilyMemberHistory.date or CDA entry/section author/time. */
1745
+ authoredAt?: string;
1746
+ /** @enum {string} */
1747
+ type: "condition";
1748
+ /** @description When the fact held: `start` is when it became active, `end` when it ended or was resolved. */
1593
1749
  effectivePeriod?: {
1594
- /** @description ISO date when this fact became active. */
1750
+ /** @description ISO date when it began. */
1595
1751
  start?: string;
1596
- /** @description ISO date when this fact ended or was resolved. */
1752
+ /** @description ISO date when it ended. */
1597
1753
  end?: string;
1598
1754
  };
1599
- /** @enum {string} */
1600
- type: "condition";
1601
1755
  /**
1602
1756
  * @description Clinical status of the condition. active = currently present; resolved = no longer present; inactive = present but not actively managed.
1603
1757
  * @enum {string}
1604
1758
  */
1605
1759
  status: "active" | "resolved" | "inactive" | "unknown";
1606
- /** @description ISO date when the condition first started, from Condition.onsetPeriod.start or onsetDateTime. */
1607
- onsetDate?: string;
1760
+ /** @description ISO date when a clinician stated it held. Shows it held then, not when it started. */
1761
+ assertedAt?: string;
1762
+ /** @description ISO date when its status last changed. */
1763
+ statusChangedAt?: string;
1608
1764
  /** @description Every extracted fact this fact was projected from. */
1609
1765
  members: {
1610
1766
  /** @description Id of the `extracted_fact` node this member traces to (`ef_...`). */
@@ -1620,15 +1776,8 @@ export interface components {
1620
1776
  code: string;
1621
1777
  display?: string;
1622
1778
  }[];
1623
- /** @description ISO date when this fact was recorded or last updated in the source system. */
1624
- date?: string;
1625
- /** @description Temporal bounds of the fact's validity. */
1626
- effectivePeriod?: {
1627
- /** @description ISO date when this fact became active. */
1628
- start?: string;
1629
- /** @description ISO date when this fact ended or was resolved. */
1630
- end?: string;
1631
- };
1779
+ /** @description ISO date when the source entry was clinically recorded, from FHIR recordedDate/dateAsserted/recorded/FamilyMemberHistory.date or CDA entry/section author/time. */
1780
+ authoredAt?: string;
1632
1781
  /** @enum {string} */
1633
1782
  type: "medication";
1634
1783
  /**
@@ -1640,6 +1789,31 @@ export interface components {
1640
1789
  dosageInstructions?: string;
1641
1790
  /** @description Route of administration from dosage[].route, e.g. 'Oral', 'IV', 'Topical'. */
1642
1791
  route?: string;
1792
+ /** @description When the fact held: `start` is when it became active, `end` when it ended or was resolved. */
1793
+ effectivePeriod?: {
1794
+ /** @description ISO date when it began. */
1795
+ start?: string;
1796
+ /** @description ISO date when it ended. */
1797
+ end?: string;
1798
+ };
1799
+ /** @description ISO date when the pharmacy prepared the dispense. */
1800
+ preparedAt?: string;
1801
+ /** @description ISO date when the pharmacy handed the drug over, which shows the patient actually received it. */
1802
+ handedOverAt?: string;
1803
+ /** @description ISO date when the drug or procedure was ordered. */
1804
+ orderedAt?: string;
1805
+ /** @description When it is intended to happen, as opposed to when it did: a scheduled encounter or procedure, the intended dosing or therapy span. */
1806
+ plannedPeriod?: {
1807
+ /** @description ISO date when it began. */
1808
+ start?: string;
1809
+ /** @description ISO date when it ended. */
1810
+ end?: string;
1811
+ };
1812
+ /** @description ISO date until which the order may be filled. */
1813
+ orderValidUntil?: string;
1814
+ /** @description ISO date when a clinician stated it held. Shows it held then, not when it started. */
1815
+ assertedAt?: string;
1816
+ identity?: components["schemas"]["MedicationIdentity"];
1643
1817
  /** @description Every extracted fact this fact was projected from. */
1644
1818
  members: {
1645
1819
  /** @description Id of the `extracted_fact` node this member traces to (`ef_...`). */
@@ -1655,15 +1829,8 @@ export interface components {
1655
1829
  code: string;
1656
1830
  display?: string;
1657
1831
  }[];
1658
- /** @description ISO date when this fact was recorded or last updated in the source system. */
1659
- date?: string;
1660
- /** @description Temporal bounds of the fact's validity. */
1661
- effectivePeriod?: {
1662
- /** @description ISO date when this fact became active. */
1663
- start?: string;
1664
- /** @description ISO date when this fact ended or was resolved. */
1665
- end?: string;
1666
- };
1832
+ /** @description ISO date when the source entry was clinically recorded, from FHIR recordedDate/dateAsserted/recorded/FamilyMemberHistory.date or CDA entry/section author/time. */
1833
+ authoredAt?: string;
1667
1834
  /** @enum {string} */
1668
1835
  type: "allergy";
1669
1836
  /**
@@ -1680,6 +1847,22 @@ export interface components {
1680
1847
  category?: string[];
1681
1848
  /** @description Observed reaction manifestations as display strings from reaction[].manifestation, e.g. ['Swelling', 'Anaphylaxis']. */
1682
1849
  reactions?: string[];
1850
+ /** @description When the fact held: `start` is when it became active, `end` when it ended or was resolved. */
1851
+ effectivePeriod?: {
1852
+ /** @description ISO date when it began. */
1853
+ start?: string;
1854
+ /** @description ISO date when it ended. */
1855
+ end?: string;
1856
+ };
1857
+ /** @description When each recorded reaction to the substance or vaccine started and ended. */
1858
+ reactionPeriods?: {
1859
+ /** @description ISO date when it began. */
1860
+ start?: string;
1861
+ /** @description ISO date when it ended. */
1862
+ end?: string;
1863
+ }[];
1864
+ /** @description ISO date of the most recent known reaction to the substance. */
1865
+ lastReactionAt?: string;
1683
1866
  /** @description Every extracted fact this fact was projected from. */
1684
1867
  members: {
1685
1868
  /** @description Id of the `extracted_fact` node this member traces to (`ef_...`). */
@@ -1695,15 +1878,8 @@ export interface components {
1695
1878
  code: string;
1696
1879
  display?: string;
1697
1880
  }[];
1698
- /** @description ISO date when this fact was recorded or last updated in the source system. */
1699
- date?: string;
1700
- /** @description Temporal bounds of the fact's validity. */
1701
- effectivePeriod?: {
1702
- /** @description ISO date when this fact became active. */
1703
- start?: string;
1704
- /** @description ISO date when this fact ended or was resolved. */
1705
- end?: string;
1706
- };
1881
+ /** @description ISO date when the source entry was clinically recorded, from FHIR recordedDate/dateAsserted/recorded/FamilyMemberHistory.date or CDA entry/section author/time. */
1882
+ authoredAt?: string;
1707
1883
  /** @enum {string} */
1708
1884
  type: "family_history";
1709
1885
  /** @description Relationship of the relative to the patient from FamilyMemberHistory.relationship.text, e.g. 'Brother', 'Father', 'Maternal grandmother'. */
@@ -1717,7 +1893,15 @@ export interface components {
1717
1893
  conditions: {
1718
1894
  /** @description Condition name for this relative, e.g. 'Multiple sclerosis'. */
1719
1895
  display: string;
1896
+ /** @description When the relative developed the condition: an ISO date, or their age in years. */
1897
+ onset?: string | number;
1720
1898
  }[];
1899
+ /** @description ISO date when the relative was born. */
1900
+ birthDate?: string;
1901
+ /** @description When the relative died: an ISO date, or their age in years at death. */
1902
+ death?: string | number;
1903
+ /** @description The relative's age: in years, or as the source states it. */
1904
+ age?: string | number;
1721
1905
  /** @description Every extracted fact this fact was projected from. */
1722
1906
  members: {
1723
1907
  /** @description Id of the `extracted_fact` node this member traces to (`ef_...`). */
@@ -1733,21 +1917,25 @@ export interface components {
1733
1917
  code: string;
1734
1918
  display?: string;
1735
1919
  }[];
1736
- /** @description ISO date when this fact was recorded or last updated in the source system. */
1737
- date?: string;
1738
- /** @description Temporal bounds of the fact's validity. */
1739
- effectivePeriod?: {
1740
- /** @description ISO date when this fact became active. */
1741
- start?: string;
1742
- /** @description ISO date when this fact ended or was resolved. */
1743
- end?: string;
1744
- };
1920
+ /** @description ISO date when the source entry was clinically recorded, from FHIR recordedDate/dateAsserted/recorded/FamilyMemberHistory.date or CDA entry/section author/time. */
1921
+ authoredAt?: string;
1745
1922
  /** @enum {string} */
1746
1923
  type: "social_history";
1747
1924
  /** @description Observation topic from Observation.code.text, e.g. 'Tobacco use and exposure', 'Alcohol use'. */
1748
1925
  category?: string;
1749
1926
  /** @description Current state as a string from Observation.valueString or valueCodeableConcept.text, e.g. 'Smokeless tobacco non-user', 'Current every day smoker'. */
1750
1927
  value?: string;
1928
+ /** @description When the fact held: `start` is when it became active, `end` when it ended or was resolved. */
1929
+ effectivePeriod?: {
1930
+ /** @description ISO date when it began. */
1931
+ start?: string;
1932
+ /** @description ISO date when it ended. */
1933
+ end?: string;
1934
+ };
1935
+ /** @description ISO date when it happened, for something that happened at a point in time. */
1936
+ occurredAt?: string;
1937
+ /** @description ISO date when the result was released, which comes after it was measured. */
1938
+ issuedAt?: string;
1751
1939
  /** @description Every extracted fact this fact was projected from. */
1752
1940
  members: {
1753
1941
  /** @description Id of the `extracted_fact` node this member traces to (`ef_...`). */
@@ -1763,15 +1951,8 @@ export interface components {
1763
1951
  code: string;
1764
1952
  display?: string;
1765
1953
  }[];
1766
- /** @description ISO date when this fact was recorded or last updated in the source system. */
1767
- date?: string;
1768
- /** @description Temporal bounds of the fact's validity. */
1769
- effectivePeriod?: {
1770
- /** @description ISO date when this fact became active. */
1771
- start?: string;
1772
- /** @description ISO date when this fact ended or was resolved. */
1773
- end?: string;
1774
- };
1954
+ /** @description ISO date when the source entry was clinically recorded, from FHIR recordedDate/dateAsserted/recorded/FamilyMemberHistory.date or CDA entry/section author/time. */
1955
+ authoredAt?: string;
1775
1956
  /** @enum {string} */
1776
1957
  type: "immunization";
1777
1958
  /**
@@ -1780,7 +1961,20 @@ export interface components {
1780
1961
  */
1781
1962
  status: "completed" | "not-done";
1782
1963
  /** @description ISO date when the vaccine was administered, from Immunization.occurrenceDateTime. */
1783
- occurrenceDate?: string;
1964
+ occurredAt?: string;
1965
+ /** @description When each recorded reaction to the substance or vaccine started and ended. */
1966
+ reactionPeriods?: {
1967
+ /** @description ISO date when it began. */
1968
+ start?: string;
1969
+ /** @description ISO date when it ended. */
1970
+ end?: string;
1971
+ }[];
1972
+ /** @description ISO date when the vaccine lot or device expires. */
1973
+ expiresAt?: string;
1974
+ /** @description ISO date when the vaccine information statement was published. */
1975
+ infoPublishedAt?: string;
1976
+ /** @description ISO date when the vaccine information statement was given to the patient. */
1977
+ infoPresentedAt?: string;
1784
1978
  /** @description Every extracted fact this fact was projected from. */
1785
1979
  members: {
1786
1980
  /** @description Id of the `extracted_fact` node this member traces to (`ef_...`). */
@@ -1796,15 +1990,8 @@ export interface components {
1796
1990
  code: string;
1797
1991
  display?: string;
1798
1992
  }[];
1799
- /** @description ISO date when this fact was recorded or last updated in the source system. */
1800
- date?: string;
1801
- /** @description Temporal bounds of the fact's validity. */
1802
- effectivePeriod?: {
1803
- /** @description ISO date when this fact became active. */
1804
- start?: string;
1805
- /** @description ISO date when this fact ended or was resolved. */
1806
- end?: string;
1807
- };
1993
+ /** @description ISO date when the source entry was clinically recorded, from FHIR recordedDate/dateAsserted/recorded/FamilyMemberHistory.date or CDA entry/section author/time. */
1994
+ authoredAt?: string;
1808
1995
  /** @enum {string} */
1809
1996
  type: "device";
1810
1997
  /**
@@ -1812,6 +1999,17 @@ export interface components {
1812
1999
  * @enum {string}
1813
2000
  */
1814
2001
  status: "active" | "inactive" | "entered-in-error" | "unknown";
2002
+ /** @description When the fact held: `start` is when it became active, `end` when it ended or was resolved. */
2003
+ effectivePeriod?: {
2004
+ /** @description ISO date when it began. */
2005
+ start?: string;
2006
+ /** @description ISO date when it ended. */
2007
+ end?: string;
2008
+ };
2009
+ /** @description ISO date when the device was made. */
2010
+ manufacturedAt?: string;
2011
+ /** @description ISO date when the vaccine lot or device expires. */
2012
+ expiresAt?: string;
1815
2013
  /** @description Every extracted fact this fact was projected from. */
1816
2014
  members: {
1817
2015
  /** @description Id of the `extracted_fact` node this member traces to (`ef_...`). */
@@ -1827,19 +2025,14 @@ export interface components {
1827
2025
  code: string;
1828
2026
  display?: string;
1829
2027
  }[];
1830
- /** @description ISO date when this fact was recorded or last updated in the source system. */
1831
- date?: string;
1832
- /** @description Temporal bounds of the fact's validity. */
1833
- effectivePeriod?: {
1834
- /** @description ISO date when this fact became active. */
1835
- start?: string;
1836
- /** @description ISO date when this fact ended or was resolved. */
1837
- end?: string;
1838
- };
2028
+ /** @description ISO date when the source entry was clinically recorded, from FHIR recordedDate/dateAsserted/recorded/FamilyMemberHistory.date or CDA entry/section author/time. */
2029
+ authoredAt?: string;
1839
2030
  /** @enum {string} */
1840
2031
  type: "demographic";
1841
2032
  /** @description Patient date of birth in ISO format (YYYY-MM-DD), from Patient.birthDate. */
1842
2033
  birthDate?: string;
2034
+ /** @description When the patient died: an ISO date from Patient.deceasedDateTime, or their age in years at death. */
2035
+ death?: string | number;
1843
2036
  /** @description Administrative sex from Patient.gender, e.g. 'male', 'female'. */
1844
2037
  sex?: string;
1845
2038
  /** @description Flattened address string from Patient.address, e.g. 'Laporte, CO'. Kept as a single string since HG provides it pre-formatted. */
@@ -1859,15 +2052,8 @@ export interface components {
1859
2052
  code: string;
1860
2053
  display?: string;
1861
2054
  }[];
1862
- /** @description ISO date when this fact was recorded or last updated in the source system. */
1863
- date?: string;
1864
- /** @description Temporal bounds of the fact's validity. */
1865
- effectivePeriod?: {
1866
- /** @description ISO date when this fact became active. */
1867
- start?: string;
1868
- /** @description ISO date when this fact ended or was resolved. */
1869
- end?: string;
1870
- };
2055
+ /** @description ISO date when the source entry was clinically recorded, from FHIR recordedDate/dateAsserted/recorded/FamilyMemberHistory.date or CDA entry/section author/time. */
2056
+ authoredAt?: string;
1871
2057
  /** @enum {string} */
1872
2058
  type: "insurance";
1873
2059
  /**
@@ -1879,6 +2065,13 @@ export interface components {
1879
2065
  planName?: string;
1880
2066
  /** @description Member identifier from Coverage.identifier[].value. */
1881
2067
  memberId?: string;
2068
+ /** @description When the fact held: `start` is when it became active, `end` when it ended or was resolved. */
2069
+ effectivePeriod?: {
2070
+ /** @description ISO date when it began. */
2071
+ start?: string;
2072
+ /** @description ISO date when it ended. */
2073
+ end?: string;
2074
+ };
1882
2075
  /** @description Every extracted fact this fact was projected from. */
1883
2076
  members: {
1884
2077
  /** @description Id of the `extracted_fact` node this member traces to (`ef_...`). */
@@ -1894,15 +2087,8 @@ export interface components {
1894
2087
  code: string;
1895
2088
  display?: string;
1896
2089
  }[];
1897
- /** @description ISO date when this fact was recorded or last updated in the source system. */
1898
- date?: string;
1899
- /** @description Temporal bounds of the fact's validity. */
1900
- effectivePeriod?: {
1901
- /** @description ISO date when this fact became active. */
1902
- start?: string;
1903
- /** @description ISO date when this fact ended or was resolved. */
1904
- end?: string;
1905
- };
2090
+ /** @description ISO date when the source entry was clinically recorded, from FHIR recordedDate/dateAsserted/recorded/FamilyMemberHistory.date or CDA entry/section author/time. */
2091
+ authoredAt?: string;
1906
2092
  /** @enum {string} */
1907
2093
  type: "directive";
1908
2094
  /**
@@ -1912,6 +2098,17 @@ export interface components {
1912
2098
  status: "active" | "void" | "entered-in-error";
1913
2099
  /** @description Directive content extracted from the source document (e.g. living will, POLST). HG delivers these as PDFs rather than structured Consent resources. */
1914
2100
  notes?: string;
2101
+ /** @description When the fact held: `start` is when it became active, `end` when it ended or was resolved. */
2102
+ effectivePeriod?: {
2103
+ /** @description ISO date when it began. */
2104
+ start?: string;
2105
+ /** @description ISO date when it ended. */
2106
+ end?: string;
2107
+ };
2108
+ /** @description ISO date when the patient agreed to or signed it. */
2109
+ signedAt?: string;
2110
+ /** @description ISO date when someone last confirmed it is still valid. */
2111
+ verifiedAt?: string;
1915
2112
  /** @description Every extracted fact this fact was projected from. */
1916
2113
  members: {
1917
2114
  /** @description Id of the `extracted_fact` node this member traces to (`ef_...`). */
@@ -1940,6 +2137,22 @@ export interface components {
1940
2137
  /** @description Score this member was ranked with when the field was decided. */
1941
2138
  score: number;
1942
2139
  };
2140
+ /** @description What identifies a medication: its ingredients, its route, and for `other` the product's dose forms. Depending on how it was ingested, a medication is returned as its identity, codes, status and effective period, and leaves its dose, route text and dates on its members. Its `display` then reads as its identity, and it carries none when no identity was found. */
2141
+ MedicationIdentity: {
2142
+ /** @description Each RxNorm ingredient, at its precise grain when it is given as a salt or ester, sorted by code. */
2143
+ ingredients: {
2144
+ system: string;
2145
+ code: string;
2146
+ display?: string;
2147
+ }[];
2148
+ route?: components["schemas"]["MedicationRoute"];
2149
+ /** @description The product's RxNorm dose forms, sorted by code. Only for `other`, and absent when unknown. */
2150
+ doseForms?: {
2151
+ system: string;
2152
+ code: string;
2153
+ display?: string;
2154
+ }[];
2155
+ };
1943
2156
  /** @description An `extracted_narrative` node in the patient context graph. */
1944
2157
  ExtractedNarrativeNode: {
1945
2158
  /**
@@ -1947,7 +2160,7 @@ export interface components {
1947
2160
  * @enum {string}
1948
2161
  */
1949
2162
  type: "extracted_narrative";
1950
- /** @description Unique identifier for this node, as a prefixed node id (`{type}_{id}`, e.g. `ef_...`). */
2163
+ /** @description Unique identifier for this node: its type's prefix, `_`, then the underlying id (e.g. `ef_...`). */
1951
2164
  id: string;
1952
2165
  /** @description ISO 8601 timestamp when this node was first created. */
1953
2166
  createdAt: string;
@@ -1992,7 +2205,7 @@ export interface components {
1992
2205
  * @enum {string}
1993
2206
  */
1994
2207
  type: "narrative_passage";
1995
- /** @description Unique identifier for this node, as a prefixed node id (`{type}_{id}`, e.g. `ef_...`). */
2208
+ /** @description Unique identifier for this node: its type's prefix, `_`, then the underlying id (e.g. `ef_...`). */
1996
2209
  id: string;
1997
2210
  /** @description ISO 8601 timestamp when this node was first created. */
1998
2211
  createdAt: string;
@@ -2019,7 +2232,7 @@ export interface components {
2019
2232
  * @enum {string}
2020
2233
  */
2021
2234
  type: "narrative";
2022
- /** @description Unique identifier for this node, as a prefixed node id (`{type}_{id}`, e.g. `ef_...`). */
2235
+ /** @description Unique identifier for this node: its type's prefix, `_`, then the underlying id (e.g. `ef_...`). */
2023
2236
  id: string;
2024
2237
  /** @description ISO 8601 timestamp when this node was first created. */
2025
2238
  createdAt: string;
@@ -2071,7 +2284,7 @@ export interface components {
2071
2284
  * @enum {string}
2072
2285
  */
2073
2286
  type: "learned_memory";
2074
- /** @description Unique identifier for this node, as a prefixed node id (`{type}_{id}`, e.g. `ef_...`). */
2287
+ /** @description Unique identifier for this node: its type's prefix, `_`, then the underlying id (e.g. `ef_...`). */
2075
2288
  id: string;
2076
2289
  /** @description ISO 8601 timestamp when this node was first created. */
2077
2290
  createdAt: string;
@@ -2097,7 +2310,7 @@ export interface components {
2097
2310
  * @enum {string}
2098
2311
  */
2099
2312
  type: "extracted_clinical_event";
2100
- /** @description Unique identifier for this node, as a prefixed node id (`{type}_{id}`, e.g. `ef_...`). */
2313
+ /** @description Unique identifier for this node: its type's prefix, `_`, then the underlying id (e.g. `ef_...`). */
2101
2314
  id: string;
2102
2315
  /** @description ISO 8601 timestamp when this node was first created. */
2103
2316
  createdAt: string;
@@ -2107,17 +2320,19 @@ export interface components {
2107
2320
  payload: {
2108
2321
  /** @enum {string} */
2109
2322
  type: "encounter";
2323
+ /** @description ISO 8601 timestamp when this clinical event occurred. */
2324
+ timestamp: string;
2110
2325
  /** @description Temporal bounds of the event, for one that spans time rather than happening at an instant. */
2111
2326
  effectivePeriod?: {
2112
- /** @description ISO date when the event's span began. */
2327
+ /** @description ISO date when it began. */
2113
2328
  start?: string;
2114
2329
  /** @description ISO date when it ended. */
2115
2330
  end?: string;
2116
2331
  };
2117
2332
  /** @description One-line description for display and timeline. */
2118
2333
  summary: string;
2119
- /** @description Provenance: the ingestion request that introduced this event. Absent for a row written outside a run, which is every row predating the run model. */
2120
- ingestionId?: string;
2334
+ /** @description ISO date when the source entry was clinically recorded, from FHIR recordedDate/dateAsserted/recorded/FamilyMemberHistory.date or CDA entry/section author/time. */
2335
+ authoredAt?: string;
2121
2336
  /**
2122
2337
  * @description Encounter class. Maps from FHIR V3 ActEncounterCode: IMP/ACUTE/NONAC/SS → inpatient, AMB/OBSENC → outpatient, EMER → emergency, VR → virtual, HH/FLD → home.
2123
2338
  * @enum {string}
@@ -2133,8 +2348,15 @@ export interface components {
2133
2348
  location?: string;
2134
2349
  /** @description Where the patient went after discharge. */
2135
2350
  dischargeDisposition?: string;
2136
- /** @description ISO 8601 timestamp when this clinical event occurred. */
2137
- timestamp: string;
2351
+ /** @description When it is intended to happen, as opposed to when it did: a scheduled encounter or procedure, the intended dosing or therapy span. */
2352
+ plannedPeriod?: {
2353
+ /** @description ISO date when it began. */
2354
+ start?: string;
2355
+ /** @description ISO date when it ended. */
2356
+ end?: string;
2357
+ };
2358
+ /** @description ISO date when its status last changed. */
2359
+ statusChangedAt?: string;
2138
2360
  /** @description Where this event was extracted from. Events are single-source — not merged across sources. */
2139
2361
  source: {
2140
2362
  /**
@@ -2151,20 +2373,24 @@ export interface components {
2151
2373
  /** @description ISO 8601 timestamp when this record was ingested. */
2152
2374
  ingestedAt: string;
2153
2375
  };
2376
+ /** @description Provenance: the ingestion request that introduced this event. Absent for a row written outside a run, which is every row predating the run model. */
2377
+ ingestionId?: string;
2154
2378
  } | {
2155
2379
  /** @enum {string} */
2156
2380
  type: "observation";
2381
+ /** @description ISO 8601 timestamp when this clinical event occurred. */
2382
+ timestamp: string;
2157
2383
  /** @description Temporal bounds of the event, for one that spans time rather than happening at an instant. */
2158
2384
  effectivePeriod?: {
2159
- /** @description ISO date when the event's span began. */
2385
+ /** @description ISO date when it began. */
2160
2386
  start?: string;
2161
2387
  /** @description ISO date when it ended. */
2162
2388
  end?: string;
2163
2389
  };
2164
2390
  /** @description One-line description for display and timeline. */
2165
2391
  summary: string;
2166
- /** @description Provenance: the ingestion request that introduced this event. Absent for a row written outside a run, which is every row predating the run model. */
2167
- ingestionId?: string;
2392
+ /** @description ISO date when the source entry was clinically recorded, from FHIR recordedDate/dateAsserted/recorded/FamilyMemberHistory.date or CDA entry/section author/time. */
2393
+ authoredAt?: string;
2168
2394
  /**
2169
2395
  * @description Observation sub-domain. Maps from FHIR Observation.category and CDA section LOINC codes: 30954-2 → laboratory/imaging, 8716-3 → vital-signs, Functional Status / Mental Status sections → functional-status.
2170
2396
  * @enum {string}
@@ -2194,8 +2420,10 @@ export interface components {
2194
2420
  * @enum {string}
2195
2421
  */
2196
2422
  status: "final" | "preliminary" | "amended" | "corrected" | "cancelled" | "unknown";
2197
- /** @description ISO 8601 timestamp when this clinical event occurred. */
2198
- timestamp: string;
2423
+ /** @description ISO date when it happened, for something that happened at a point in time. */
2424
+ occurredAt?: string;
2425
+ /** @description ISO date when the result was released, which comes after it was measured. */
2426
+ issuedAt?: string;
2199
2427
  /** @description Where this event was extracted from. Events are single-source — not merged across sources. */
2200
2428
  source: {
2201
2429
  /**
@@ -2212,20 +2440,24 @@ export interface components {
2212
2440
  /** @description ISO 8601 timestamp when this record was ingested. */
2213
2441
  ingestedAt: string;
2214
2442
  };
2443
+ /** @description Provenance: the ingestion request that introduced this event. Absent for a row written outside a run, which is every row predating the run model. */
2444
+ ingestionId?: string;
2215
2445
  } | {
2216
2446
  /** @enum {string} */
2217
2447
  type: "procedure";
2448
+ /** @description ISO 8601 timestamp when this clinical event occurred. */
2449
+ timestamp: string;
2218
2450
  /** @description Temporal bounds of the event, for one that spans time rather than happening at an instant. */
2219
2451
  effectivePeriod?: {
2220
- /** @description ISO date when the event's span began. */
2452
+ /** @description ISO date when it began. */
2221
2453
  start?: string;
2222
2454
  /** @description ISO date when it ended. */
2223
2455
  end?: string;
2224
2456
  };
2225
2457
  /** @description One-line description for display and timeline. */
2226
2458
  summary: string;
2227
- /** @description Provenance: the ingestion request that introduced this event. Absent for a row written outside a run, which is every row predating the run model. */
2228
- ingestionId?: string;
2459
+ /** @description ISO date when the source entry was clinically recorded, from FHIR recordedDate/dateAsserted/recorded/FamilyMemberHistory.date or CDA entry/section author/time. */
2460
+ authoredAt?: string;
2229
2461
  /** @description Procedure codes from CPT, SNOMED-CT, or ICD PCS. */
2230
2462
  codes?: {
2231
2463
  system: string;
@@ -2241,8 +2473,17 @@ export interface components {
2241
2473
  * @enum {string}
2242
2474
  */
2243
2475
  status: "completed" | "not-done" | "aborted" | "in-progress" | "stopped" | "unknown";
2244
- /** @description ISO 8601 timestamp when this clinical event occurred. */
2245
- timestamp: string;
2476
+ /** @description ISO date when it happened, for something that happened at a point in time. */
2477
+ occurredAt?: string;
2478
+ /** @description ISO date when the drug or procedure was ordered. */
2479
+ orderedAt?: string;
2480
+ /** @description When it is intended to happen, as opposed to when it did: a scheduled encounter or procedure, the intended dosing or therapy span. */
2481
+ plannedPeriod?: {
2482
+ /** @description ISO date when it began. */
2483
+ start?: string;
2484
+ /** @description ISO date when it ended. */
2485
+ end?: string;
2486
+ };
2246
2487
  /** @description Where this event was extracted from. Events are single-source — not merged across sources. */
2247
2488
  source: {
2248
2489
  /**
@@ -2259,20 +2500,24 @@ export interface components {
2259
2500
  /** @description ISO 8601 timestamp when this record was ingested. */
2260
2501
  ingestedAt: string;
2261
2502
  };
2503
+ /** @description Provenance: the ingestion request that introduced this event. Absent for a row written outside a run, which is every row predating the run model. */
2504
+ ingestionId?: string;
2262
2505
  } | {
2263
2506
  /** @enum {string} */
2264
2507
  type: "medication_event";
2508
+ /** @description ISO 8601 timestamp when this clinical event occurred. */
2509
+ timestamp: string;
2265
2510
  /** @description Temporal bounds of the event, for one that spans time rather than happening at an instant. */
2266
2511
  effectivePeriod?: {
2267
- /** @description ISO date when the event's span began. */
2512
+ /** @description ISO date when it began. */
2268
2513
  start?: string;
2269
2514
  /** @description ISO date when it ended. */
2270
2515
  end?: string;
2271
2516
  };
2272
2517
  /** @description One-line description for display and timeline. */
2273
2518
  summary: string;
2274
- /** @description Provenance: the ingestion request that introduced this event. Absent for a row written outside a run, which is every row predating the run model. */
2275
- ingestionId?: string;
2519
+ /** @description ISO date when the source entry was clinically recorded, from FHIR recordedDate/dateAsserted/recorded/FamilyMemberHistory.date or CDA entry/section author/time. */
2520
+ authoredAt?: string;
2276
2521
  /** @description Medication name as it appears in the source, e.g. 'Lisinopril 10 mg tablet'. */
2277
2522
  medicationDisplay: string;
2278
2523
  /** @description RxNorm or NDC codes for the medication. */
@@ -2295,8 +2540,25 @@ export interface components {
2295
2540
  dose?: string;
2296
2541
  /** @description Route of administration, e.g. 'oral', 'IV'. */
2297
2542
  route?: string;
2298
- /** @description ISO 8601 timestamp when this clinical event occurred. */
2299
- timestamp: string;
2543
+ /** @description ISO date when it happened, for something that happened at a point in time. */
2544
+ occurredAt?: string;
2545
+ /** @description ISO date when the pharmacy prepared the dispense. */
2546
+ preparedAt?: string;
2547
+ /** @description ISO date when the pharmacy handed the drug over, which shows the patient actually received it. */
2548
+ handedOverAt?: string;
2549
+ /** @description ISO date when the drug or procedure was ordered. */
2550
+ orderedAt?: string;
2551
+ /** @description When it is intended to happen, as opposed to when it did: a scheduled encounter or procedure, the intended dosing or therapy span. */
2552
+ plannedPeriod?: {
2553
+ /** @description ISO date when it began. */
2554
+ start?: string;
2555
+ /** @description ISO date when it ended. */
2556
+ end?: string;
2557
+ };
2558
+ /** @description ISO date until which the order may be filled. */
2559
+ orderValidUntil?: string;
2560
+ /** @description ISO date when its status last changed. */
2561
+ statusChangedAt?: string;
2300
2562
  /** @description Where this event was extracted from. Events are single-source — not merged across sources. */
2301
2563
  source: {
2302
2564
  /**
@@ -2313,6 +2575,8 @@ export interface components {
2313
2575
  /** @description ISO 8601 timestamp when this record was ingested. */
2314
2576
  ingestedAt: string;
2315
2577
  };
2578
+ /** @description Provenance: the ingestion request that introduced this event. Absent for a row written outside a run, which is every row predating the run model. */
2579
+ ingestionId?: string;
2316
2580
  };
2317
2581
  };
2318
2582
  /** @description A page of nodes of one type from the patient context graph. */
@@ -2338,7 +2602,7 @@ export interface components {
2338
2602
  * @enum {string}
2339
2603
  */
2340
2604
  type: "resolution_decision";
2341
- /** @description Unique identifier for this edge, as a prefixed edge id (`{type}_{id}`, e.g. `rd_...`). */
2605
+ /** @description Unique identifier for this edge: its type's prefix, `_`, then the underlying id (e.g. `rd_...`). */
2342
2606
  id: string;
2343
2607
  /** @description ISO 8601 timestamp when this edge was first created. */
2344
2608
  createdAt: string;
@@ -2358,7 +2622,7 @@ export interface components {
2358
2622
  * @enum {string}
2359
2623
  */
2360
2624
  resolution: "uncertain" | "probable" | "confirmed";
2361
- /** @description Id of the stop rule that fired, e.g. 'corroborated-hierarchical-merge'. This is the audit's 'why'. */
2625
+ /** @description Id of the stop rule that fired, e.g. 'deterministic-code-exact'. This is the audit's 'why'. */
2362
2626
  ruleId: string;
2363
2627
  /** @description The full accumulated evidence the rule evaluated, in the order the layers ran. */
2364
2628
  evidence: ({
@@ -2407,12 +2671,15 @@ export interface components {
2407
2671
  codeB: string;
2408
2672
  } | {
2409
2673
  /** @enum {string} */
2410
- layer: "concept-identity";
2674
+ layer: "deterministic-code";
2411
2675
  a: {
2412
- /** @description The best candidate's base-ingredient concept ids — more than one for a combination product. */
2413
- conceptIds: string[];
2414
- /** @description The best candidate's salt/ester-grain concept ids. Empty when the match carries no precise grain. */
2415
- preciseConceptIds: string[];
2676
+ /** @description The best candidate's members — more than one for a combination product. */
2677
+ members: {
2678
+ /** @description The base-ingredient concept id. */
2679
+ conceptId: string;
2680
+ /** @description The salt/ester-grain concept ids this ingredient is given as. Empty when the match carries none. */
2681
+ preciseConceptIds: string[];
2682
+ }[];
2416
2683
  /**
2417
2684
  * @description The cascade rung that grounded this side.
2418
2685
  * @enum {string}
@@ -2422,10 +2689,13 @@ export interface components {
2422
2689
  compositionId: string;
2423
2690
  };
2424
2691
  b: {
2425
- /** @description The best candidate's base-ingredient concept ids — more than one for a combination product. */
2426
- conceptIds: string[];
2427
- /** @description The best candidate's salt/ester-grain concept ids. Empty when the match carries no precise grain. */
2428
- preciseConceptIds: string[];
2692
+ /** @description The best candidate's members — more than one for a combination product. */
2693
+ members: {
2694
+ /** @description The base-ingredient concept id. */
2695
+ conceptId: string;
2696
+ /** @description The salt/ester-grain concept ids this ingredient is given as. Empty when the match carries none. */
2697
+ preciseConceptIds: string[];
2698
+ }[];
2429
2699
  /**
2430
2700
  * @description The cascade rung that grounded this side.
2431
2701
  * @enum {string}
@@ -2438,12 +2708,15 @@ export interface components {
2438
2708
  kind: "concept-identity-match";
2439
2709
  } | {
2440
2710
  /** @enum {string} */
2441
- layer: "concept-identity";
2711
+ layer: "deterministic-code";
2442
2712
  a: {
2443
- /** @description The best candidate's base-ingredient concept ids — more than one for a combination product. */
2444
- conceptIds: string[];
2445
- /** @description The best candidate's salt/ester-grain concept ids. Empty when the match carries no precise grain. */
2446
- preciseConceptIds: string[];
2713
+ /** @description The best candidate's members — more than one for a combination product. */
2714
+ members: {
2715
+ /** @description The base-ingredient concept id. */
2716
+ conceptId: string;
2717
+ /** @description The salt/ester-grain concept ids this ingredient is given as. Empty when the match carries none. */
2718
+ preciseConceptIds: string[];
2719
+ }[];
2447
2720
  /**
2448
2721
  * @description The cascade rung that grounded this side.
2449
2722
  * @enum {string}
@@ -2453,10 +2726,13 @@ export interface components {
2453
2726
  compositionId: string;
2454
2727
  };
2455
2728
  b: {
2456
- /** @description The best candidate's base-ingredient concept ids — more than one for a combination product. */
2457
- conceptIds: string[];
2458
- /** @description The best candidate's salt/ester-grain concept ids. Empty when the match carries no precise grain. */
2459
- preciseConceptIds: string[];
2729
+ /** @description The best candidate's members — more than one for a combination product. */
2730
+ members: {
2731
+ /** @description The base-ingredient concept id. */
2732
+ conceptId: string;
2733
+ /** @description The salt/ester-grain concept ids this ingredient is given as. Empty when the match carries none. */
2734
+ preciseConceptIds: string[];
2735
+ }[];
2460
2736
  /**
2461
2737
  * @description The cascade rung that grounded this side.
2462
2738
  * @enum {string}
@@ -2469,12 +2745,15 @@ export interface components {
2469
2745
  kind: "concept-identity-partial-match";
2470
2746
  } | {
2471
2747
  /** @enum {string} */
2472
- layer: "concept-identity";
2748
+ layer: "deterministic-code";
2473
2749
  a: {
2474
- /** @description The best candidate's base-ingredient concept ids — more than one for a combination product. */
2475
- conceptIds: string[];
2476
- /** @description The best candidate's salt/ester-grain concept ids. Empty when the match carries no precise grain. */
2477
- preciseConceptIds: string[];
2750
+ /** @description The best candidate's members — more than one for a combination product. */
2751
+ members: {
2752
+ /** @description The base-ingredient concept id. */
2753
+ conceptId: string;
2754
+ /** @description The salt/ester-grain concept ids this ingredient is given as. Empty when the match carries none. */
2755
+ preciseConceptIds: string[];
2756
+ }[];
2478
2757
  /**
2479
2758
  * @description The cascade rung that grounded this side.
2480
2759
  * @enum {string}
@@ -2484,10 +2763,13 @@ export interface components {
2484
2763
  compositionId: string;
2485
2764
  };
2486
2765
  b: {
2487
- /** @description The best candidate's base-ingredient concept ids — more than one for a combination product. */
2488
- conceptIds: string[];
2489
- /** @description The best candidate's salt/ester-grain concept ids. Empty when the match carries no precise grain. */
2490
- preciseConceptIds: string[];
2766
+ /** @description The best candidate's members — more than one for a combination product. */
2767
+ members: {
2768
+ /** @description The base-ingredient concept id. */
2769
+ conceptId: string;
2770
+ /** @description The salt/ester-grain concept ids this ingredient is given as. Empty when the match carries none. */
2771
+ preciseConceptIds: string[];
2772
+ }[];
2491
2773
  /**
2492
2774
  * @description The cascade rung that grounded this side.
2493
2775
  * @enum {string}
@@ -2498,6 +2780,27 @@ export interface components {
2498
2780
  };
2499
2781
  /** @enum {string} */
2500
2782
  kind: "concept-identity-mismatch";
2783
+ } | {
2784
+ /** @enum {string} */
2785
+ layer: "identity";
2786
+ a: components["schemas"]["MedicationIdentity"] & unknown;
2787
+ b: components["schemas"]["MedicationIdentity"] & unknown;
2788
+ /** @enum {string} */
2789
+ kind: "medication-identity-match";
2790
+ } | {
2791
+ /** @enum {string} */
2792
+ layer: "identity";
2793
+ a: components["schemas"]["MedicationIdentity"] & unknown;
2794
+ b: components["schemas"]["MedicationIdentity"] & unknown;
2795
+ /** @enum {string} */
2796
+ kind: "medication-identity-mismatch";
2797
+ } | {
2798
+ /** @enum {string} */
2799
+ layer: "identity";
2800
+ a?: components["schemas"]["MedicationIdentity"] & unknown;
2801
+ b?: components["schemas"]["MedicationIdentity"] & unknown;
2802
+ /** @enum {string} */
2803
+ kind: "medication-identity-incomplete";
2501
2804
  } | {
2502
2805
  /** @enum {string} */
2503
2806
  kind: "field-similarity";
@@ -2618,7 +2921,7 @@ export interface components {
2618
2921
  };
2619
2922
  /** @description The node this edge originates from. */
2620
2923
  NodeRef: {
2621
- /** @description Id of the referenced node, as a prefixed node id (`{type}_{id}`, e.g. `ef_...`). */
2924
+ /** @description Id of the referenced node: its type's prefix, `_`, then the underlying id (e.g. `ef_...`). */
2622
2925
  id: string;
2623
2926
  /**
2624
2927
  * @description Node type of the referenced node.
@@ -2633,7 +2936,7 @@ export interface components {
2633
2936
  * @enum {string}
2634
2937
  */
2635
2938
  type: "resolves_to";
2636
- /** @description Unique identifier for this edge, as a prefixed edge id (`{type}_{id}`, e.g. `rd_...`). */
2939
+ /** @description Unique identifier for this edge: its type's prefix, `_`, then the underlying id (e.g. `rd_...`). */
2637
2940
  id: string;
2638
2941
  /** @description ISO 8601 timestamp when this edge was first created. */
2639
2942
  createdAt: string;
@@ -2651,7 +2954,7 @@ export interface components {
2651
2954
  * @enum {string}
2652
2955
  */
2653
2956
  type: "chunked_into";
2654
- /** @description Unique identifier for this edge, as a prefixed edge id (`{type}_{id}`, e.g. `rd_...`). */
2957
+ /** @description Unique identifier for this edge: its type's prefix, `_`, then the underlying id (e.g. `rd_...`). */
2655
2958
  id: string;
2656
2959
  /** @description ISO 8601 timestamp when this edge was first created. */
2657
2960
  createdAt: string;
@@ -2669,7 +2972,7 @@ export interface components {
2669
2972
  * @enum {string}
2670
2973
  */
2671
2974
  type: "relationship";
2672
- /** @description Unique identifier for this edge, as a prefixed edge id (`{type}_{id}`, e.g. `rd_...`). */
2975
+ /** @description Unique identifier for this edge: its type's prefix, `_`, then the underlying id (e.g. `rd_...`). */
2673
2976
  id: string;
2674
2977
  /** @description ISO 8601 timestamp when this edge was first created. */
2675
2978
  createdAt: string;
@@ -2875,7 +3178,7 @@ export interface operations {
2875
3178
  };
2876
3179
  requestBody?: never;
2877
3180
  responses: {
2878
- /** @description Service name and build identity */
3181
+ /** @description Service is healthy */
2879
3182
  200: {
2880
3183
  headers: {
2881
3184
  [name: string]: unknown;
@@ -2884,6 +3187,15 @@ export interface operations {
2884
3187
  "application/json": components["schemas"]["ServiceInfo"];
2885
3188
  };
2886
3189
  };
3190
+ /** @description Service is degraded */
3191
+ 503: {
3192
+ headers: {
3193
+ [name: string]: unknown;
3194
+ };
3195
+ content: {
3196
+ "application/json": components["schemas"]["ServiceInfo"];
3197
+ };
3198
+ };
2887
3199
  };
2888
3200
  };
2889
3201
  "list-patients": {
@@ -2932,7 +3244,7 @@ export interface operations {
2932
3244
  "application/json": components["schemas"]["PatientDetail"];
2933
3245
  };
2934
3246
  };
2935
- /** @description Patient not found or no data ingested */
3247
+ /** @description Patient not found */
2936
3248
  404: {
2937
3249
  headers: {
2938
3250
  [name: string]: unknown;
@@ -3067,7 +3379,7 @@ export interface operations {
3067
3379
  "text/plain": string;
3068
3380
  };
3069
3381
  };
3070
- /** @description Patient not found or no data ingested */
3382
+ /** @description Patient not found */
3071
3383
  404: {
3072
3384
  headers: {
3073
3385
  [name: string]: unknown;
@@ -3246,6 +3558,51 @@ export interface operations {
3246
3558
  };
3247
3559
  };
3248
3560
  };
3561
+ "ingest-sessions": {
3562
+ parameters: {
3563
+ query?: never;
3564
+ header?: never;
3565
+ path: {
3566
+ /** @description ID of the patient */
3567
+ patientId: string;
3568
+ };
3569
+ cookie?: never;
3570
+ };
3571
+ requestBody: {
3572
+ content: {
3573
+ "application/json": components["schemas"]["IngestSessionsBody"];
3574
+ };
3575
+ };
3576
+ responses: {
3577
+ /** @description Submission accepted */
3578
+ 202: {
3579
+ headers: {
3580
+ [name: string]: unknown;
3581
+ };
3582
+ content: {
3583
+ "application/json": components["schemas"]["Ingestion"];
3584
+ };
3585
+ };
3586
+ /** @description A transcript is invalid, names a session id that cannot be used, or does not continue the stored conversation of the session it names */
3587
+ 400: {
3588
+ headers: {
3589
+ [name: string]: unknown;
3590
+ };
3591
+ content: {
3592
+ "application/json": components["schemas"]["ApiError"];
3593
+ };
3594
+ };
3595
+ /** @description Patient not found */
3596
+ 404: {
3597
+ headers: {
3598
+ [name: string]: unknown;
3599
+ };
3600
+ content: {
3601
+ "application/json": components["schemas"]["ApiError"];
3602
+ };
3603
+ };
3604
+ };
3605
+ };
3249
3606
  "list-ingestions": {
3250
3607
  parameters: {
3251
3608
  query?: {
@@ -3335,7 +3692,7 @@ export interface operations {
3335
3692
  "application/json": components["schemas"]["Session"];
3336
3693
  };
3337
3694
  };
3338
- /** @description Patient not found or no data ingested */
3695
+ /** @description Patient not found */
3339
3696
  404: {
3340
3697
  headers: {
3341
3698
  [name: string]: unknown;
@@ -3421,7 +3778,7 @@ export interface operations {
3421
3778
  "application/json": components["schemas"]["ApiError"];
3422
3779
  };
3423
3780
  };
3424
- /** @description Patient not found or no data ingested */
3781
+ /** @description Patient not found */
3425
3782
  404: {
3426
3783
  headers: {
3427
3784
  [name: string]: unknown;
@@ -3461,10 +3818,20 @@ export interface operations {
3461
3818
  ok: boolean;
3462
3819
  /** @description Number of messages appended. */
3463
3820
  messageCount: number;
3821
+ ingestion: components["schemas"]["Ingestion"] & unknown;
3464
3822
  };
3465
3823
  };
3466
3824
  };
3467
- /** @description Patient or session not found */
3825
+ /** @description Session id is not usable for a new session, or the session's stored conversation changed concurrently. */
3826
+ 400: {
3827
+ headers: {
3828
+ [name: string]: unknown;
3829
+ };
3830
+ content: {
3831
+ "application/json": components["schemas"]["ApiError"];
3832
+ };
3833
+ };
3834
+ /** @description Patient not found */
3468
3835
  404: {
3469
3836
  headers: {
3470
3837
  [name: string]: unknown;
@@ -3532,14 +3899,14 @@ export interface operations {
3532
3899
  };
3533
3900
  requestBody?: never;
3534
3901
  responses: {
3535
- /** @description Memories generated */
3536
- 200: {
3902
+ /** @description Accepted; memory formation is already queued */
3903
+ 202: {
3537
3904
  headers: {
3538
3905
  [name: string]: unknown;
3539
3906
  };
3540
3907
  content: {
3541
3908
  "application/json": {
3542
- /** @description Always `true` when generation succeeded. */
3909
+ /** @description Always `true`. */
3543
3910
  ok: boolean;
3544
3911
  };
3545
3912
  };
@@ -3555,49 +3922,6 @@ export interface operations {
3555
3922
  };
3556
3923
  };
3557
3924
  };
3558
- "ingest-session": {
3559
- parameters: {
3560
- query?: never;
3561
- header?: never;
3562
- path: {
3563
- /** @description ID of the patient */
3564
- patientId: string;
3565
- };
3566
- cookie?: never;
3567
- };
3568
- requestBody: {
3569
- content: {
3570
- "application/json": components["schemas"]["IngestSessionBody"];
3571
- };
3572
- };
3573
- responses: {
3574
- /** @description Session ingested and closed */
3575
- 200: {
3576
- headers: {
3577
- [name: string]: unknown;
3578
- };
3579
- content: {
3580
- "application/json": {
3581
- /** @description Always `true` when the session was ingested successfully. */
3582
- ok: boolean;
3583
- /** @description ID of the session that was created and closed. */
3584
- sessionId: string;
3585
- /** @description Number of messages appended to the session. */
3586
- messageCount: number;
3587
- };
3588
- };
3589
- };
3590
- /** @description Patient not found or no data ingested */
3591
- 404: {
3592
- headers: {
3593
- [name: string]: unknown;
3594
- };
3595
- content: {
3596
- "application/json": components["schemas"]["ApiError"];
3597
- };
3598
- };
3599
- };
3600
- };
3601
3925
  "browse-vfs": {
3602
3926
  parameters: {
3603
3927
  query?: {
@@ -3622,7 +3946,7 @@ export interface operations {
3622
3946
  "application/json": components["schemas"]["BrowseResult"];
3623
3947
  };
3624
3948
  };
3625
- /** @description Patient not found or no data ingested */
3949
+ /** @description Patient not found */
3626
3950
  404: {
3627
3951
  headers: {
3628
3952
  [name: string]: unknown;
@@ -3661,7 +3985,7 @@ export interface operations {
3661
3985
  "application/json": components["schemas"]["ReadResponse"];
3662
3986
  };
3663
3987
  };
3664
- /** @description Patient not found or no data ingested */
3988
+ /** @description Patient not found */
3665
3989
  404: {
3666
3990
  headers: {
3667
3991
  [name: string]: unknown;
@@ -3681,7 +4005,7 @@ export interface operations {
3681
4005
  patientId: string;
3682
4006
  /** @description Type of node to operate on. */
3683
4007
  type: "extracted_fact" | "fact" | "extracted_narrative" | "narrative_passage" | "narrative" | "learned_memory" | "extracted_clinical_event";
3684
- /** @description Id of the node to retrieve. */
4008
+ /** @description A node id: its type's prefix, `_`, then the underlying id. Supported prefixes: `ef` (extracted_fact), `fct` (fact), `en` (extracted_narrative), `np` (narrative_passage), `nar` (narrative), `lm` (learned_memory), `ece` (extracted_clinical_event). */
3685
4009
  nodeId: string;
3686
4010
  };
3687
4011
  cookie?: never;
@@ -3697,7 +4021,7 @@ export interface operations {
3697
4021
  "application/json": components["schemas"]["Node"];
3698
4022
  };
3699
4023
  };
3700
- /** @description `nodeId` is not a node of the given `type`. */
4024
+ /** @description `nodeId` is malformed, or not a node of the given `type`. */
3701
4025
  400: {
3702
4026
  headers: {
3703
4027
  [name: string]: unknown;
@@ -3765,7 +4089,7 @@ export interface operations {
3765
4089
  patientId: string;
3766
4090
  /** @description Type of edge to operate on. */
3767
4091
  type: "resolution_decision" | "resolves_to" | "chunked_into" | "relationship";
3768
- /** @description Id of the edge to retrieve. */
4092
+ /** @description An edge id: its type's prefix, `_`, then the underlying id. Supported prefixes: `rd` (resolution_decision), `rslv` (resolves_to), `ci` (chunked_into), `rel` (relationship). */
3769
4093
  edgeId: string;
3770
4094
  };
3771
4095
  cookie?: never;
@@ -3781,7 +4105,7 @@ export interface operations {
3781
4105
  "application/json": components["schemas"]["Edge"];
3782
4106
  };
3783
4107
  };
3784
- /** @description `edgeId` is not an edge of the given `type`. */
4108
+ /** @description `edgeId` is malformed, or not an edge of the given `type`. */
3785
4109
  400: {
3786
4110
  headers: {
3787
4111
  [name: string]: unknown;
@@ -3808,7 +4132,7 @@ export interface operations {
3808
4132
  page?: number | null;
3809
4133
  /** @description Number of edges per page. Defaults to 100; maximum is 1000. */
3810
4134
  perPage?: number;
3811
- /** @description Restrict results to edges touching the given node id(s) (same `{type}_{id}` format). One id returns every edge touching that node, in either direction. Two ids (repeat the param, e.g. `?touching=a&touching=b`) return only the edge(s) connecting exactly that pair. */
4135
+ /** @description Restrict results to edges touching the given node id(s). One id returns every edge touching that node, in either direction. Two ids (repeat the param, e.g. `?touching=a&touching=b`) return only the edge(s) connecting exactly that pair. */
3812
4136
  touching?: string | string[];
3813
4137
  };
3814
4138
  header?: never;
@@ -3831,7 +4155,7 @@ export interface operations {
3831
4155
  "application/json": components["schemas"]["EdgeList"];
3832
4156
  };
3833
4157
  };
3834
- /** @description The edge type cannot touch the node `touching` names, or cannot connect the pair it names. */
4158
+ /** @description A `touching` id is malformed, or the edge type cannot touch the node it names or connect the pair it names. */
3835
4159
  400: {
3836
4160
  headers: {
3837
4161
  [name: string]: unknown;