@openhi/constructs 0.0.185 → 0.0.187
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/{chunk-B6GCDQKX.mjs → chunk-HQ4CPUPH.mjs} +2 -2
- package/lib/{chunk-B6GCDQKX.mjs.map → chunk-HQ4CPUPH.mjs.map} +1 -1
- package/lib/data-store-postgres-replication.handler.js +1 -1
- package/lib/data-store-postgres-replication.handler.js.map +1 -1
- package/lib/data-store-postgres-replication.handler.mjs +1 -1
- package/lib/rest-api-lambda.handler.js +717 -385
- package/lib/rest-api-lambda.handler.js.map +1 -1
- package/lib/rest-api-lambda.handler.mjs +718 -386
- package/lib/rest-api-lambda.handler.mjs.map +1 -1
- package/package.json +10 -10
|
@@ -11614,6 +11614,9 @@ var CLAIM_SEARCH_PARAMETERS = [
|
|
|
11614
11614
|
{ code: "use", type: "token", jsonbPath: "$.use" }
|
|
11615
11615
|
];
|
|
11616
11616
|
|
|
11617
|
+
// src/data/search/registry/clinicalimpression-search-parameters.ts
|
|
11618
|
+
var CLINICALIMPRESSION_SEARCH_PARAMETERS = [{ code: "encounter", type: "reference", jsonbPath: "$.encounter" }];
|
|
11619
|
+
|
|
11617
11620
|
// src/data/search/registry/composition-search-parameters.ts
|
|
11618
11621
|
var COMPOSITION_SEARCH_PARAMETERS = [
|
|
11619
11622
|
{ code: "status", type: "token", jsonbPath: "$.status" },
|
|
@@ -12275,6 +12278,12 @@ var RELATEDPERSON_SEARCH_PARAMETERS = [
|
|
|
12275
12278
|
}
|
|
12276
12279
|
];
|
|
12277
12280
|
|
|
12281
|
+
// src/data/search/registry/riskassessment-search-parameters.ts
|
|
12282
|
+
var RISKASSESSMENT_SEARCH_PARAMETERS = [
|
|
12283
|
+
{ code: "subject", type: "reference", jsonbPath: "$.subject" },
|
|
12284
|
+
{ code: "patient", type: "reference", jsonbPath: "$.subject" }
|
|
12285
|
+
];
|
|
12286
|
+
|
|
12278
12287
|
// src/data/search/registry/schedule-search-parameters.ts
|
|
12279
12288
|
var SCHEDULE_SEARCH_PARAMETERS = [
|
|
12280
12289
|
{ code: "active", type: "token", jsonbPath: "$.active" },
|
|
@@ -12290,6 +12299,9 @@ var SCHEDULE_SEARCH_PARAMETERS = [
|
|
|
12290
12299
|
{ code: "specialty", type: "token", jsonbPath: "$.specialty[*]" }
|
|
12291
12300
|
];
|
|
12292
12301
|
|
|
12302
|
+
// src/data/search/registry/servicerequest-search-parameters.ts
|
|
12303
|
+
var SERVICEREQUEST_SEARCH_PARAMETERS = [{ code: "encounter", type: "reference", jsonbPath: "$.encounter" }];
|
|
12304
|
+
|
|
12293
12305
|
// src/data/search/registry/slot-search-parameters.ts
|
|
12294
12306
|
var SLOT_SEARCH_PARAMETERS = [
|
|
12295
12307
|
{ code: "status", type: "token", jsonbPath: "$.status" },
|
|
@@ -12366,6 +12378,7 @@ var STATIC_SEARCH_PARAMETER_MAP = {
|
|
|
12366
12378
|
Appointment: APPOINTMENT_SEARCH_PARAMETERS,
|
|
12367
12379
|
ChargeItem: CHARGEITEM_SEARCH_PARAMETERS,
|
|
12368
12380
|
Claim: CLAIM_SEARCH_PARAMETERS,
|
|
12381
|
+
ClinicalImpression: CLINICALIMPRESSION_SEARCH_PARAMETERS,
|
|
12369
12382
|
Composition: COMPOSITION_SEARCH_PARAMETERS,
|
|
12370
12383
|
Condition: CONDITION_SEARCH_PARAMETERS,
|
|
12371
12384
|
Coverage: COVERAGE_SEARCH_PARAMETERS,
|
|
@@ -12390,7 +12403,9 @@ var STATIC_SEARCH_PARAMETER_MAP = {
|
|
|
12390
12403
|
PractitionerRole: PRACTITIONERROLE_SEARCH_PARAMETERS,
|
|
12391
12404
|
Procedure: PROCEDURE_SEARCH_PARAMETERS,
|
|
12392
12405
|
RelatedPerson: RELATEDPERSON_SEARCH_PARAMETERS,
|
|
12406
|
+
RiskAssessment: RISKASSESSMENT_SEARCH_PARAMETERS,
|
|
12393
12407
|
Schedule: SCHEDULE_SEARCH_PARAMETERS,
|
|
12408
|
+
ServiceRequest: SERVICEREQUEST_SEARCH_PARAMETERS,
|
|
12394
12409
|
Slot: SLOT_SEARCH_PARAMETERS,
|
|
12395
12410
|
Specimen: SPECIMEN_SEARCH_PARAMETERS,
|
|
12396
12411
|
Task: TASK_SEARCH_PARAMETERS
|
|
@@ -20433,15 +20448,122 @@ async function listClinicalImpressionsOperation(params) {
|
|
|
20433
20448
|
}
|
|
20434
20449
|
|
|
20435
20450
|
// src/data/rest-api/routes/data/clinicalimpression/clinicalimpression-list-route.ts
|
|
20436
|
-
|
|
20437
|
-
|
|
20438
|
-
|
|
20439
|
-
|
|
20440
|
-
|
|
20441
|
-
|
|
20442
|
-
|
|
20451
|
+
var CLINICALIMPRESSION_RESOURCE_TYPE = "ClinicalImpression";
|
|
20452
|
+
function stripModifier5(key) {
|
|
20453
|
+
const idx = key.indexOf(":");
|
|
20454
|
+
return idx === -1 ? key : key.slice(0, idx);
|
|
20455
|
+
}
|
|
20456
|
+
function isResultParameter5(key) {
|
|
20457
|
+
return key.startsWith("_");
|
|
20458
|
+
}
|
|
20459
|
+
function sendInvalidSearch4005(res, diagnostics) {
|
|
20460
|
+
return res.status(400).json({
|
|
20461
|
+
resourceType: "OperationOutcome",
|
|
20462
|
+
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
20443
20463
|
});
|
|
20444
20464
|
}
|
|
20465
|
+
function extractSearchParamKeys5(query) {
|
|
20466
|
+
const out = [];
|
|
20467
|
+
for (const rawKey of Object.keys(query)) {
|
|
20468
|
+
if (isResultParameter5(rawKey)) {
|
|
20469
|
+
continue;
|
|
20470
|
+
}
|
|
20471
|
+
out.push({ rawKey, code: stripModifier5(rawKey) });
|
|
20472
|
+
}
|
|
20473
|
+
return out;
|
|
20474
|
+
}
|
|
20475
|
+
function buildUnknownParamDiagnostics5(unknownCodes) {
|
|
20476
|
+
const validCodes = getRegisteredSearchParameters(
|
|
20477
|
+
CLINICALIMPRESSION_RESOURCE_TYPE
|
|
20478
|
+
).map((p) => p.code).sort().join(", ");
|
|
20479
|
+
const codes = unknownCodes.join(", ");
|
|
20480
|
+
const isPlural = unknownCodes.length !== 1;
|
|
20481
|
+
return [
|
|
20482
|
+
`Unknown search ${isPlural ? "parameters" : "parameter"} for ClinicalImpression: ${codes}.`,
|
|
20483
|
+
`Valid codes: ${validCodes}.`
|
|
20484
|
+
].join(" ");
|
|
20485
|
+
}
|
|
20486
|
+
function findMalformedReference5(query, searchParamKeys) {
|
|
20487
|
+
const referenceCodes = new Set(
|
|
20488
|
+
getRegisteredSearchParameters(CLINICALIMPRESSION_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
20489
|
+
);
|
|
20490
|
+
if (referenceCodes.size === 0) {
|
|
20491
|
+
return void 0;
|
|
20492
|
+
}
|
|
20493
|
+
for (const { rawKey, code } of searchParamKeys) {
|
|
20494
|
+
if (!referenceCodes.has(code)) {
|
|
20495
|
+
continue;
|
|
20496
|
+
}
|
|
20497
|
+
const raw = query[rawKey];
|
|
20498
|
+
const values = typeof raw === "string" ? raw.split(",") : Array.isArray(raw) ? raw.flatMap((v) => v.split(",")) : [];
|
|
20499
|
+
for (const v of values) {
|
|
20500
|
+
const trimmed = v.trim();
|
|
20501
|
+
if (trimmed.length === 0) {
|
|
20502
|
+
continue;
|
|
20503
|
+
}
|
|
20504
|
+
if (parseTypedReference(trimmed) === void 0) {
|
|
20505
|
+
return { rawKey, value: trimmed };
|
|
20506
|
+
}
|
|
20507
|
+
}
|
|
20508
|
+
}
|
|
20509
|
+
return void 0;
|
|
20510
|
+
}
|
|
20511
|
+
async function listClinicalImpressionsRoute(req, res) {
|
|
20512
|
+
const searchParamKeys = extractSearchParamKeys5(
|
|
20513
|
+
req.query
|
|
20514
|
+
);
|
|
20515
|
+
if (searchParamKeys.length === 0) {
|
|
20516
|
+
return handleListRoute({
|
|
20517
|
+
req,
|
|
20518
|
+
res,
|
|
20519
|
+
basePath: BASE_PATH.CLINICALIMPRESSION,
|
|
20520
|
+
listOperation: listClinicalImpressionsOperation,
|
|
20521
|
+
errorLogContext: "GET /ClinicalImpression list error:"
|
|
20522
|
+
});
|
|
20523
|
+
}
|
|
20524
|
+
const registered = getRegisteredSearchParameters(
|
|
20525
|
+
CLINICALIMPRESSION_RESOURCE_TYPE
|
|
20526
|
+
);
|
|
20527
|
+
const validCodes = new Set(registered.map((p) => p.code));
|
|
20528
|
+
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
20529
|
+
if (unknownCodes.length > 0) {
|
|
20530
|
+
return sendInvalidSearch4005(
|
|
20531
|
+
res,
|
|
20532
|
+
buildUnknownParamDiagnostics5([...new Set(unknownCodes)])
|
|
20533
|
+
);
|
|
20534
|
+
}
|
|
20535
|
+
const malformedRef = findMalformedReference5(
|
|
20536
|
+
req.query,
|
|
20537
|
+
searchParamKeys
|
|
20538
|
+
);
|
|
20539
|
+
if (malformedRef !== void 0) {
|
|
20540
|
+
return sendInvalidSearch4005(
|
|
20541
|
+
res,
|
|
20542
|
+
`?${malformedRef.rawKey} must be a typed reference like "Encounter/<id>"; got "${malformedRef.value}".`
|
|
20543
|
+
);
|
|
20544
|
+
}
|
|
20545
|
+
const ctx = req.openhiContext;
|
|
20546
|
+
try {
|
|
20547
|
+
const result = await genericSearchOperation({
|
|
20548
|
+
resourceType: CLINICALIMPRESSION_RESOURCE_TYPE,
|
|
20549
|
+
tenantId: ctx.tenantId,
|
|
20550
|
+
workspaceId: ctx.workspaceId,
|
|
20551
|
+
query: req.query,
|
|
20552
|
+
resolver: defaultSearchParameterResolver
|
|
20553
|
+
});
|
|
20554
|
+
const bundle = buildSearchsetBundle(
|
|
20555
|
+
BASE_PATH.CLINICALIMPRESSION,
|
|
20556
|
+
result.entries
|
|
20557
|
+
);
|
|
20558
|
+
return res.json(bundle);
|
|
20559
|
+
} catch (err) {
|
|
20560
|
+
return sendOperationOutcome500(
|
|
20561
|
+
res,
|
|
20562
|
+
err,
|
|
20563
|
+
"GET /ClinicalImpression search error:"
|
|
20564
|
+
);
|
|
20565
|
+
}
|
|
20566
|
+
}
|
|
20445
20567
|
|
|
20446
20568
|
// src/data/operations/data/clinicalimpression/clinicalimpression-update-operation.ts
|
|
20447
20569
|
async function updateClinicalImpressionOperation(params) {
|
|
@@ -21289,30 +21411,30 @@ async function listCompositionsOperation(params) {
|
|
|
21289
21411
|
|
|
21290
21412
|
// src/data/rest-api/routes/data/composition/composition-list-route.ts
|
|
21291
21413
|
var COMPOSITION_RESOURCE_TYPE = "Composition";
|
|
21292
|
-
function
|
|
21414
|
+
function stripModifier6(key) {
|
|
21293
21415
|
const idx = key.indexOf(":");
|
|
21294
21416
|
return idx === -1 ? key : key.slice(0, idx);
|
|
21295
21417
|
}
|
|
21296
|
-
function
|
|
21418
|
+
function isResultParameter6(key) {
|
|
21297
21419
|
return key.startsWith("_");
|
|
21298
21420
|
}
|
|
21299
|
-
function
|
|
21421
|
+
function sendInvalidSearch4006(res, diagnostics) {
|
|
21300
21422
|
return res.status(400).json({
|
|
21301
21423
|
resourceType: "OperationOutcome",
|
|
21302
21424
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
21303
21425
|
});
|
|
21304
21426
|
}
|
|
21305
|
-
function
|
|
21427
|
+
function extractSearchParamKeys6(query) {
|
|
21306
21428
|
const out = [];
|
|
21307
21429
|
for (const rawKey of Object.keys(query)) {
|
|
21308
|
-
if (
|
|
21430
|
+
if (isResultParameter6(rawKey)) {
|
|
21309
21431
|
continue;
|
|
21310
21432
|
}
|
|
21311
|
-
out.push({ rawKey, code:
|
|
21433
|
+
out.push({ rawKey, code: stripModifier6(rawKey) });
|
|
21312
21434
|
}
|
|
21313
21435
|
return out;
|
|
21314
21436
|
}
|
|
21315
|
-
function
|
|
21437
|
+
function buildUnknownParamDiagnostics6(unknownCodes) {
|
|
21316
21438
|
const validCodes = getRegisteredSearchParameters(COMPOSITION_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
21317
21439
|
const codes = unknownCodes.join(", ");
|
|
21318
21440
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -21321,7 +21443,7 @@ function buildUnknownParamDiagnostics5(unknownCodes) {
|
|
|
21321
21443
|
`Valid codes: ${validCodes}.`
|
|
21322
21444
|
].join(" ");
|
|
21323
21445
|
}
|
|
21324
|
-
function
|
|
21446
|
+
function findMalformedReference6(query, searchParamKeys) {
|
|
21325
21447
|
const referenceCodes = new Set(
|
|
21326
21448
|
getRegisteredSearchParameters(COMPOSITION_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
21327
21449
|
);
|
|
@@ -21347,7 +21469,7 @@ function findMalformedReference5(query, searchParamKeys) {
|
|
|
21347
21469
|
return void 0;
|
|
21348
21470
|
}
|
|
21349
21471
|
async function listCompositionsRoute(req, res) {
|
|
21350
|
-
const searchParamKeys =
|
|
21472
|
+
const searchParamKeys = extractSearchParamKeys6(
|
|
21351
21473
|
req.query
|
|
21352
21474
|
);
|
|
21353
21475
|
if (searchParamKeys.length === 0) {
|
|
@@ -21363,17 +21485,17 @@ async function listCompositionsRoute(req, res) {
|
|
|
21363
21485
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
21364
21486
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
21365
21487
|
if (unknownCodes.length > 0) {
|
|
21366
|
-
return
|
|
21488
|
+
return sendInvalidSearch4006(
|
|
21367
21489
|
res,
|
|
21368
|
-
|
|
21490
|
+
buildUnknownParamDiagnostics6([...new Set(unknownCodes)])
|
|
21369
21491
|
);
|
|
21370
21492
|
}
|
|
21371
|
-
const malformedRef =
|
|
21493
|
+
const malformedRef = findMalformedReference6(
|
|
21372
21494
|
req.query,
|
|
21373
21495
|
searchParamKeys
|
|
21374
21496
|
);
|
|
21375
21497
|
if (malformedRef !== void 0) {
|
|
21376
|
-
return
|
|
21498
|
+
return sendInvalidSearch4006(
|
|
21377
21499
|
res,
|
|
21378
21500
|
`?${malformedRef.rawKey} must be a typed reference like "Patient/<id>"; got "${malformedRef.value}".`
|
|
21379
21501
|
);
|
|
@@ -21715,30 +21837,30 @@ async function listConditionsOperation(params) {
|
|
|
21715
21837
|
|
|
21716
21838
|
// src/data/rest-api/routes/data/condition/condition-list-route.ts
|
|
21717
21839
|
var CONDITION_RESOURCE_TYPE = "Condition";
|
|
21718
|
-
function
|
|
21840
|
+
function stripModifier7(key) {
|
|
21719
21841
|
const idx = key.indexOf(":");
|
|
21720
21842
|
return idx === -1 ? key : key.slice(0, idx);
|
|
21721
21843
|
}
|
|
21722
|
-
function
|
|
21844
|
+
function isResultParameter7(key) {
|
|
21723
21845
|
return key.startsWith("_");
|
|
21724
21846
|
}
|
|
21725
|
-
function
|
|
21847
|
+
function sendInvalidSearch4007(res, diagnostics) {
|
|
21726
21848
|
return res.status(400).json({
|
|
21727
21849
|
resourceType: "OperationOutcome",
|
|
21728
21850
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
21729
21851
|
});
|
|
21730
21852
|
}
|
|
21731
|
-
function
|
|
21853
|
+
function extractSearchParamKeys7(query) {
|
|
21732
21854
|
const out = [];
|
|
21733
21855
|
for (const rawKey of Object.keys(query)) {
|
|
21734
|
-
if (
|
|
21856
|
+
if (isResultParameter7(rawKey)) {
|
|
21735
21857
|
continue;
|
|
21736
21858
|
}
|
|
21737
|
-
out.push({ rawKey, code:
|
|
21859
|
+
out.push({ rawKey, code: stripModifier7(rawKey) });
|
|
21738
21860
|
}
|
|
21739
21861
|
return out;
|
|
21740
21862
|
}
|
|
21741
|
-
function
|
|
21863
|
+
function buildUnknownParamDiagnostics7(unknownCodes) {
|
|
21742
21864
|
const validCodes = getRegisteredSearchParameters(CONDITION_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
21743
21865
|
const codes = unknownCodes.join(", ");
|
|
21744
21866
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -21747,7 +21869,7 @@ function buildUnknownParamDiagnostics6(unknownCodes) {
|
|
|
21747
21869
|
`Valid codes: ${validCodes}.`
|
|
21748
21870
|
].join(" ");
|
|
21749
21871
|
}
|
|
21750
|
-
function
|
|
21872
|
+
function findMalformedReference7(query, searchParamKeys) {
|
|
21751
21873
|
const referenceCodes = new Set(
|
|
21752
21874
|
getRegisteredSearchParameters(CONDITION_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
21753
21875
|
);
|
|
@@ -21770,7 +21892,7 @@ function findMalformedReference6(query, searchParamKeys) {
|
|
|
21770
21892
|
return void 0;
|
|
21771
21893
|
}
|
|
21772
21894
|
async function listConditionsRoute(req, res) {
|
|
21773
|
-
const searchParamKeys =
|
|
21895
|
+
const searchParamKeys = extractSearchParamKeys7(
|
|
21774
21896
|
req.query
|
|
21775
21897
|
);
|
|
21776
21898
|
if (searchParamKeys.length === 0) {
|
|
@@ -21786,17 +21908,17 @@ async function listConditionsRoute(req, res) {
|
|
|
21786
21908
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
21787
21909
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
21788
21910
|
if (unknownCodes.length > 0) {
|
|
21789
|
-
return
|
|
21911
|
+
return sendInvalidSearch4007(
|
|
21790
21912
|
res,
|
|
21791
|
-
|
|
21913
|
+
buildUnknownParamDiagnostics7([...new Set(unknownCodes)])
|
|
21792
21914
|
);
|
|
21793
21915
|
}
|
|
21794
|
-
const malformedRef =
|
|
21916
|
+
const malformedRef = findMalformedReference7(
|
|
21795
21917
|
req.query,
|
|
21796
21918
|
searchParamKeys
|
|
21797
21919
|
);
|
|
21798
21920
|
if (malformedRef !== void 0) {
|
|
21799
|
-
return
|
|
21921
|
+
return sendInvalidSearch4007(
|
|
21800
21922
|
res,
|
|
21801
21923
|
`?${malformedRef.rawKey} must be a typed reference like "Practitioner/<id>"; got "${malformedRef.value}".`
|
|
21802
21924
|
);
|
|
@@ -22306,30 +22428,30 @@ async function listCoveragesOperation(params) {
|
|
|
22306
22428
|
|
|
22307
22429
|
// src/data/rest-api/routes/data/coverage/coverage-list-route.ts
|
|
22308
22430
|
var COVERAGE_RESOURCE_TYPE = "Coverage";
|
|
22309
|
-
function
|
|
22431
|
+
function stripModifier8(key) {
|
|
22310
22432
|
const idx = key.indexOf(":");
|
|
22311
22433
|
return idx === -1 ? key : key.slice(0, idx);
|
|
22312
22434
|
}
|
|
22313
|
-
function
|
|
22435
|
+
function isResultParameter8(key) {
|
|
22314
22436
|
return key.startsWith("_");
|
|
22315
22437
|
}
|
|
22316
|
-
function
|
|
22438
|
+
function sendInvalidSearch4008(res, diagnostics) {
|
|
22317
22439
|
return res.status(400).json({
|
|
22318
22440
|
resourceType: "OperationOutcome",
|
|
22319
22441
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
22320
22442
|
});
|
|
22321
22443
|
}
|
|
22322
|
-
function
|
|
22444
|
+
function extractSearchParamKeys8(query) {
|
|
22323
22445
|
const out = [];
|
|
22324
22446
|
for (const rawKey of Object.keys(query)) {
|
|
22325
|
-
if (
|
|
22447
|
+
if (isResultParameter8(rawKey)) {
|
|
22326
22448
|
continue;
|
|
22327
22449
|
}
|
|
22328
|
-
out.push({ rawKey, code:
|
|
22450
|
+
out.push({ rawKey, code: stripModifier8(rawKey) });
|
|
22329
22451
|
}
|
|
22330
22452
|
return out;
|
|
22331
22453
|
}
|
|
22332
|
-
function
|
|
22454
|
+
function buildUnknownParamDiagnostics8(unknownCodes) {
|
|
22333
22455
|
const validCodes = getRegisteredSearchParameters(COVERAGE_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
22334
22456
|
const codes = unknownCodes.join(", ");
|
|
22335
22457
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -22338,7 +22460,7 @@ function buildUnknownParamDiagnostics7(unknownCodes) {
|
|
|
22338
22460
|
`Valid codes: ${validCodes}.`
|
|
22339
22461
|
].join(" ");
|
|
22340
22462
|
}
|
|
22341
|
-
function
|
|
22463
|
+
function findMalformedReference8(query, searchParamKeys) {
|
|
22342
22464
|
const referenceCodes = new Set(
|
|
22343
22465
|
getRegisteredSearchParameters(COVERAGE_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
22344
22466
|
);
|
|
@@ -22364,7 +22486,7 @@ function findMalformedReference7(query, searchParamKeys) {
|
|
|
22364
22486
|
return void 0;
|
|
22365
22487
|
}
|
|
22366
22488
|
async function listCoveragesRoute(req, res) {
|
|
22367
|
-
const searchParamKeys =
|
|
22489
|
+
const searchParamKeys = extractSearchParamKeys8(
|
|
22368
22490
|
req.query
|
|
22369
22491
|
);
|
|
22370
22492
|
if (searchParamKeys.length === 0) {
|
|
@@ -22382,17 +22504,17 @@ async function listCoveragesRoute(req, res) {
|
|
|
22382
22504
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
22383
22505
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
22384
22506
|
if (unknownCodes.length > 0) {
|
|
22385
|
-
return
|
|
22507
|
+
return sendInvalidSearch4008(
|
|
22386
22508
|
res,
|
|
22387
|
-
|
|
22509
|
+
buildUnknownParamDiagnostics8([...new Set(unknownCodes)])
|
|
22388
22510
|
);
|
|
22389
22511
|
}
|
|
22390
|
-
const malformedRef =
|
|
22512
|
+
const malformedRef = findMalformedReference8(
|
|
22391
22513
|
req.query,
|
|
22392
22514
|
searchParamKeys
|
|
22393
22515
|
);
|
|
22394
22516
|
if (malformedRef !== void 0) {
|
|
22395
|
-
return
|
|
22517
|
+
return sendInvalidSearch4008(
|
|
22396
22518
|
res,
|
|
22397
22519
|
`?${malformedRef.rawKey} must be a typed reference like "Patient/<id>"; got "${malformedRef.value}".`
|
|
22398
22520
|
);
|
|
@@ -23941,30 +24063,30 @@ async function listDiagnosticReportsOperation(params) {
|
|
|
23941
24063
|
|
|
23942
24064
|
// src/data/rest-api/routes/data/diagnosticreport/diagnosticreport-list-route.ts
|
|
23943
24065
|
var DIAGNOSTICREPORT_RESOURCE_TYPE = "DiagnosticReport";
|
|
23944
|
-
function
|
|
24066
|
+
function stripModifier9(key) {
|
|
23945
24067
|
const idx = key.indexOf(":");
|
|
23946
24068
|
return idx === -1 ? key : key.slice(0, idx);
|
|
23947
24069
|
}
|
|
23948
|
-
function
|
|
24070
|
+
function isResultParameter9(key) {
|
|
23949
24071
|
return key.startsWith("_");
|
|
23950
24072
|
}
|
|
23951
|
-
function
|
|
24073
|
+
function sendInvalidSearch4009(res, diagnostics) {
|
|
23952
24074
|
return res.status(400).json({
|
|
23953
24075
|
resourceType: "OperationOutcome",
|
|
23954
24076
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
23955
24077
|
});
|
|
23956
24078
|
}
|
|
23957
|
-
function
|
|
24079
|
+
function extractSearchParamKeys9(query) {
|
|
23958
24080
|
const out = [];
|
|
23959
24081
|
for (const rawKey of Object.keys(query)) {
|
|
23960
|
-
if (
|
|
24082
|
+
if (isResultParameter9(rawKey)) {
|
|
23961
24083
|
continue;
|
|
23962
24084
|
}
|
|
23963
|
-
out.push({ rawKey, code:
|
|
24085
|
+
out.push({ rawKey, code: stripModifier9(rawKey) });
|
|
23964
24086
|
}
|
|
23965
24087
|
return out;
|
|
23966
24088
|
}
|
|
23967
|
-
function
|
|
24089
|
+
function buildUnknownParamDiagnostics9(unknownCodes) {
|
|
23968
24090
|
const validCodes = getRegisteredSearchParameters(
|
|
23969
24091
|
DIAGNOSTICREPORT_RESOURCE_TYPE
|
|
23970
24092
|
).map((p) => p.code).sort().join(", ");
|
|
@@ -23975,7 +24097,7 @@ function buildUnknownParamDiagnostics8(unknownCodes) {
|
|
|
23975
24097
|
`Valid codes: ${validCodes}.`
|
|
23976
24098
|
].join(" ");
|
|
23977
24099
|
}
|
|
23978
|
-
function
|
|
24100
|
+
function findMalformedReference9(query, searchParamKeys) {
|
|
23979
24101
|
const referenceCodes = new Set(
|
|
23980
24102
|
getRegisteredSearchParameters(DIAGNOSTICREPORT_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
23981
24103
|
);
|
|
@@ -24001,7 +24123,7 @@ function findMalformedReference8(query, searchParamKeys) {
|
|
|
24001
24123
|
return void 0;
|
|
24002
24124
|
}
|
|
24003
24125
|
async function listDiagnosticReportsRoute(req, res) {
|
|
24004
|
-
const searchParamKeys =
|
|
24126
|
+
const searchParamKeys = extractSearchParamKeys9(
|
|
24005
24127
|
req.query
|
|
24006
24128
|
);
|
|
24007
24129
|
if (searchParamKeys.length === 0) {
|
|
@@ -24019,17 +24141,17 @@ async function listDiagnosticReportsRoute(req, res) {
|
|
|
24019
24141
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
24020
24142
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
24021
24143
|
if (unknownCodes.length > 0) {
|
|
24022
|
-
return
|
|
24144
|
+
return sendInvalidSearch4009(
|
|
24023
24145
|
res,
|
|
24024
|
-
|
|
24146
|
+
buildUnknownParamDiagnostics9([...new Set(unknownCodes)])
|
|
24025
24147
|
);
|
|
24026
24148
|
}
|
|
24027
|
-
const malformedRef =
|
|
24149
|
+
const malformedRef = findMalformedReference9(
|
|
24028
24150
|
req.query,
|
|
24029
24151
|
searchParamKeys
|
|
24030
24152
|
);
|
|
24031
24153
|
if (malformedRef !== void 0) {
|
|
24032
|
-
return
|
|
24154
|
+
return sendInvalidSearch4009(
|
|
24033
24155
|
res,
|
|
24034
24156
|
`?${malformedRef.rawKey} must be a typed reference like "Patient/<id>"; got "${malformedRef.value}".`
|
|
24035
24157
|
);
|
|
@@ -24213,30 +24335,30 @@ async function listDocumentManifestsOperation(params) {
|
|
|
24213
24335
|
|
|
24214
24336
|
// src/data/rest-api/routes/data/documentmanifest/documentmanifest-list-route.ts
|
|
24215
24337
|
var DOCUMENTMANIFEST_RESOURCE_TYPE = "DocumentManifest";
|
|
24216
|
-
function
|
|
24338
|
+
function stripModifier10(key) {
|
|
24217
24339
|
const idx = key.indexOf(":");
|
|
24218
24340
|
return idx === -1 ? key : key.slice(0, idx);
|
|
24219
24341
|
}
|
|
24220
|
-
function
|
|
24342
|
+
function isResultParameter10(key) {
|
|
24221
24343
|
return key.startsWith("_");
|
|
24222
24344
|
}
|
|
24223
|
-
function
|
|
24345
|
+
function sendInvalidSearch40010(res, diagnostics) {
|
|
24224
24346
|
return res.status(400).json({
|
|
24225
24347
|
resourceType: "OperationOutcome",
|
|
24226
24348
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
24227
24349
|
});
|
|
24228
24350
|
}
|
|
24229
|
-
function
|
|
24351
|
+
function extractSearchParamKeys10(query) {
|
|
24230
24352
|
const out = [];
|
|
24231
24353
|
for (const rawKey of Object.keys(query)) {
|
|
24232
|
-
if (
|
|
24354
|
+
if (isResultParameter10(rawKey)) {
|
|
24233
24355
|
continue;
|
|
24234
24356
|
}
|
|
24235
|
-
out.push({ rawKey, code:
|
|
24357
|
+
out.push({ rawKey, code: stripModifier10(rawKey) });
|
|
24236
24358
|
}
|
|
24237
24359
|
return out;
|
|
24238
24360
|
}
|
|
24239
|
-
function
|
|
24361
|
+
function buildUnknownParamDiagnostics10(unknownCodes) {
|
|
24240
24362
|
const validCodes = getRegisteredSearchParameters(
|
|
24241
24363
|
DOCUMENTMANIFEST_RESOURCE_TYPE
|
|
24242
24364
|
).map((p) => p.code).sort().join(", ");
|
|
@@ -24247,7 +24369,7 @@ function buildUnknownParamDiagnostics9(unknownCodes) {
|
|
|
24247
24369
|
`Valid codes: ${validCodes}.`
|
|
24248
24370
|
].join(" ");
|
|
24249
24371
|
}
|
|
24250
|
-
function
|
|
24372
|
+
function findMalformedReference10(query, searchParamKeys) {
|
|
24251
24373
|
const referenceCodes = new Set(
|
|
24252
24374
|
getRegisteredSearchParameters(DOCUMENTMANIFEST_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
24253
24375
|
);
|
|
@@ -24273,7 +24395,7 @@ function findMalformedReference9(query, searchParamKeys) {
|
|
|
24273
24395
|
return void 0;
|
|
24274
24396
|
}
|
|
24275
24397
|
async function listDocumentManifestsRoute(req, res) {
|
|
24276
|
-
const searchParamKeys =
|
|
24398
|
+
const searchParamKeys = extractSearchParamKeys10(
|
|
24277
24399
|
req.query
|
|
24278
24400
|
);
|
|
24279
24401
|
if (searchParamKeys.length === 0) {
|
|
@@ -24291,17 +24413,17 @@ async function listDocumentManifestsRoute(req, res) {
|
|
|
24291
24413
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
24292
24414
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
24293
24415
|
if (unknownCodes.length > 0) {
|
|
24294
|
-
return
|
|
24416
|
+
return sendInvalidSearch40010(
|
|
24295
24417
|
res,
|
|
24296
|
-
|
|
24418
|
+
buildUnknownParamDiagnostics10([...new Set(unknownCodes)])
|
|
24297
24419
|
);
|
|
24298
24420
|
}
|
|
24299
|
-
const malformedRef =
|
|
24421
|
+
const malformedRef = findMalformedReference10(
|
|
24300
24422
|
req.query,
|
|
24301
24423
|
searchParamKeys
|
|
24302
24424
|
);
|
|
24303
24425
|
if (malformedRef !== void 0) {
|
|
24304
|
-
return
|
|
24426
|
+
return sendInvalidSearch40010(
|
|
24305
24427
|
res,
|
|
24306
24428
|
`?${malformedRef.rawKey} must be a typed reference like "Patient/<id>"; got "${malformedRef.value}".`
|
|
24307
24429
|
);
|
|
@@ -24488,30 +24610,30 @@ async function listDocumentReferencesOperation(params) {
|
|
|
24488
24610
|
|
|
24489
24611
|
// src/data/rest-api/routes/data/documentreference/documentreference-list-route.ts
|
|
24490
24612
|
var DOCUMENTREFERENCE_RESOURCE_TYPE = "DocumentReference";
|
|
24491
|
-
function
|
|
24613
|
+
function stripModifier11(key) {
|
|
24492
24614
|
const idx = key.indexOf(":");
|
|
24493
24615
|
return idx === -1 ? key : key.slice(0, idx);
|
|
24494
24616
|
}
|
|
24495
|
-
function
|
|
24617
|
+
function isResultParameter11(key) {
|
|
24496
24618
|
return key.startsWith("_");
|
|
24497
24619
|
}
|
|
24498
|
-
function
|
|
24620
|
+
function sendInvalidSearch40011(res, diagnostics) {
|
|
24499
24621
|
return res.status(400).json({
|
|
24500
24622
|
resourceType: "OperationOutcome",
|
|
24501
24623
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
24502
24624
|
});
|
|
24503
24625
|
}
|
|
24504
|
-
function
|
|
24626
|
+
function extractSearchParamKeys11(query) {
|
|
24505
24627
|
const out = [];
|
|
24506
24628
|
for (const rawKey of Object.keys(query)) {
|
|
24507
|
-
if (
|
|
24629
|
+
if (isResultParameter11(rawKey)) {
|
|
24508
24630
|
continue;
|
|
24509
24631
|
}
|
|
24510
|
-
out.push({ rawKey, code:
|
|
24632
|
+
out.push({ rawKey, code: stripModifier11(rawKey) });
|
|
24511
24633
|
}
|
|
24512
24634
|
return out;
|
|
24513
24635
|
}
|
|
24514
|
-
function
|
|
24636
|
+
function buildUnknownParamDiagnostics11(unknownCodes) {
|
|
24515
24637
|
const validCodes = getRegisteredSearchParameters(
|
|
24516
24638
|
DOCUMENTREFERENCE_RESOURCE_TYPE
|
|
24517
24639
|
).map((p) => p.code).sort().join(", ");
|
|
@@ -24522,7 +24644,7 @@ function buildUnknownParamDiagnostics10(unknownCodes) {
|
|
|
24522
24644
|
`Valid codes: ${validCodes}.`
|
|
24523
24645
|
].join(" ");
|
|
24524
24646
|
}
|
|
24525
|
-
function
|
|
24647
|
+
function findMalformedReference11(query, searchParamKeys) {
|
|
24526
24648
|
const referenceCodes = new Set(
|
|
24527
24649
|
getRegisteredSearchParameters(DOCUMENTREFERENCE_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
24528
24650
|
);
|
|
@@ -24548,7 +24670,7 @@ function findMalformedReference10(query, searchParamKeys) {
|
|
|
24548
24670
|
return void 0;
|
|
24549
24671
|
}
|
|
24550
24672
|
async function listDocumentReferencesRoute(req, res) {
|
|
24551
|
-
const searchParamKeys =
|
|
24673
|
+
const searchParamKeys = extractSearchParamKeys11(
|
|
24552
24674
|
req.query
|
|
24553
24675
|
);
|
|
24554
24676
|
if (searchParamKeys.length === 0) {
|
|
@@ -24566,17 +24688,17 @@ async function listDocumentReferencesRoute(req, res) {
|
|
|
24566
24688
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
24567
24689
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
24568
24690
|
if (unknownCodes.length > 0) {
|
|
24569
|
-
return
|
|
24691
|
+
return sendInvalidSearch40011(
|
|
24570
24692
|
res,
|
|
24571
|
-
|
|
24693
|
+
buildUnknownParamDiagnostics11([...new Set(unknownCodes)])
|
|
24572
24694
|
);
|
|
24573
24695
|
}
|
|
24574
|
-
const malformedRef =
|
|
24696
|
+
const malformedRef = findMalformedReference11(
|
|
24575
24697
|
req.query,
|
|
24576
24698
|
searchParamKeys
|
|
24577
24699
|
);
|
|
24578
24700
|
if (malformedRef !== void 0) {
|
|
24579
|
-
return
|
|
24701
|
+
return sendInvalidSearch40011(
|
|
24580
24702
|
res,
|
|
24581
24703
|
`?${malformedRef.rawKey} must be a typed reference like "Patient/<id>"; got "${malformedRef.value}".`
|
|
24582
24704
|
);
|
|
@@ -24944,30 +25066,30 @@ async function listEncountersOperation(params) {
|
|
|
24944
25066
|
|
|
24945
25067
|
// src/data/rest-api/routes/data/encounter/encounter-list-route.ts
|
|
24946
25068
|
var ENCOUNTER_RESOURCE_TYPE = "Encounter";
|
|
24947
|
-
function
|
|
25069
|
+
function stripModifier12(key) {
|
|
24948
25070
|
const idx = key.indexOf(":");
|
|
24949
25071
|
return idx === -1 ? key : key.slice(0, idx);
|
|
24950
25072
|
}
|
|
24951
|
-
function
|
|
25073
|
+
function isResultParameter12(key) {
|
|
24952
25074
|
return key.startsWith("_");
|
|
24953
25075
|
}
|
|
24954
|
-
function
|
|
25076
|
+
function sendInvalidSearch40012(res, diagnostics) {
|
|
24955
25077
|
return res.status(400).json({
|
|
24956
25078
|
resourceType: "OperationOutcome",
|
|
24957
25079
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
24958
25080
|
});
|
|
24959
25081
|
}
|
|
24960
|
-
function
|
|
25082
|
+
function extractSearchParamKeys12(query) {
|
|
24961
25083
|
const out = [];
|
|
24962
25084
|
for (const rawKey of Object.keys(query)) {
|
|
24963
|
-
if (
|
|
25085
|
+
if (isResultParameter12(rawKey)) {
|
|
24964
25086
|
continue;
|
|
24965
25087
|
}
|
|
24966
|
-
out.push({ rawKey, code:
|
|
25088
|
+
out.push({ rawKey, code: stripModifier12(rawKey) });
|
|
24967
25089
|
}
|
|
24968
25090
|
return out;
|
|
24969
25091
|
}
|
|
24970
|
-
function
|
|
25092
|
+
function buildUnknownParamDiagnostics12(unknownCodes) {
|
|
24971
25093
|
const validCodes = getRegisteredSearchParameters(ENCOUNTER_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
24972
25094
|
const codes = unknownCodes.join(", ");
|
|
24973
25095
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -24976,7 +25098,7 @@ function buildUnknownParamDiagnostics11(unknownCodes) {
|
|
|
24976
25098
|
`Valid codes: ${validCodes}.`
|
|
24977
25099
|
].join(" ");
|
|
24978
25100
|
}
|
|
24979
|
-
function
|
|
25101
|
+
function findMalformedReference12(query, searchParamKeys) {
|
|
24980
25102
|
const referenceCodes = new Set(
|
|
24981
25103
|
getRegisteredSearchParameters(ENCOUNTER_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
24982
25104
|
);
|
|
@@ -24999,7 +25121,7 @@ function findMalformedReference11(query, searchParamKeys) {
|
|
|
24999
25121
|
return void 0;
|
|
25000
25122
|
}
|
|
25001
25123
|
async function listEncountersRoute(req, res) {
|
|
25002
|
-
const searchParamKeys =
|
|
25124
|
+
const searchParamKeys = extractSearchParamKeys12(
|
|
25003
25125
|
req.query
|
|
25004
25126
|
);
|
|
25005
25127
|
if (searchParamKeys.length === 0) {
|
|
@@ -25015,17 +25137,17 @@ async function listEncountersRoute(req, res) {
|
|
|
25015
25137
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
25016
25138
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
25017
25139
|
if (unknownCodes.length > 0) {
|
|
25018
|
-
return
|
|
25140
|
+
return sendInvalidSearch40012(
|
|
25019
25141
|
res,
|
|
25020
|
-
|
|
25142
|
+
buildUnknownParamDiagnostics12([...new Set(unknownCodes)])
|
|
25021
25143
|
);
|
|
25022
25144
|
}
|
|
25023
|
-
const malformedRef =
|
|
25145
|
+
const malformedRef = findMalformedReference12(
|
|
25024
25146
|
req.query,
|
|
25025
25147
|
searchParamKeys
|
|
25026
25148
|
);
|
|
25027
25149
|
if (malformedRef !== void 0) {
|
|
25028
|
-
return
|
|
25150
|
+
return sendInvalidSearch40012(
|
|
25029
25151
|
res,
|
|
25030
25152
|
`?${malformedRef.rawKey} must be a typed reference like "Practitioner/<id>"; got "${malformedRef.value}".`
|
|
25031
25153
|
);
|
|
@@ -25207,30 +25329,30 @@ async function listEndpointsOperation(params) {
|
|
|
25207
25329
|
|
|
25208
25330
|
// src/data/rest-api/routes/data/endpoint/endpoint-list-route.ts
|
|
25209
25331
|
var ENDPOINT_RESOURCE_TYPE = "Endpoint";
|
|
25210
|
-
function
|
|
25332
|
+
function stripModifier13(key) {
|
|
25211
25333
|
const idx = key.indexOf(":");
|
|
25212
25334
|
return idx === -1 ? key : key.slice(0, idx);
|
|
25213
25335
|
}
|
|
25214
|
-
function
|
|
25336
|
+
function isResultParameter13(key) {
|
|
25215
25337
|
return key.startsWith("_");
|
|
25216
25338
|
}
|
|
25217
|
-
function
|
|
25339
|
+
function sendInvalidSearch40013(res, diagnostics) {
|
|
25218
25340
|
return res.status(400).json({
|
|
25219
25341
|
resourceType: "OperationOutcome",
|
|
25220
25342
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
25221
25343
|
});
|
|
25222
25344
|
}
|
|
25223
|
-
function
|
|
25345
|
+
function extractSearchParamKeys13(query) {
|
|
25224
25346
|
const out = [];
|
|
25225
25347
|
for (const rawKey of Object.keys(query)) {
|
|
25226
|
-
if (
|
|
25348
|
+
if (isResultParameter13(rawKey)) {
|
|
25227
25349
|
continue;
|
|
25228
25350
|
}
|
|
25229
|
-
out.push({ rawKey, code:
|
|
25351
|
+
out.push({ rawKey, code: stripModifier13(rawKey) });
|
|
25230
25352
|
}
|
|
25231
25353
|
return out;
|
|
25232
25354
|
}
|
|
25233
|
-
function
|
|
25355
|
+
function buildUnknownParamDiagnostics13(unknownCodes) {
|
|
25234
25356
|
const validCodes = getRegisteredSearchParameters(ENDPOINT_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
25235
25357
|
const codes = unknownCodes.join(", ");
|
|
25236
25358
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -25239,7 +25361,7 @@ function buildUnknownParamDiagnostics12(unknownCodes) {
|
|
|
25239
25361
|
`Valid codes: ${validCodes}.`
|
|
25240
25362
|
].join(" ");
|
|
25241
25363
|
}
|
|
25242
|
-
function
|
|
25364
|
+
function findMalformedReference13(query, searchParamKeys) {
|
|
25243
25365
|
const referenceCodes = new Set(
|
|
25244
25366
|
getRegisteredSearchParameters(ENDPOINT_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
25245
25367
|
);
|
|
@@ -25265,7 +25387,7 @@ function findMalformedReference12(query, searchParamKeys) {
|
|
|
25265
25387
|
return void 0;
|
|
25266
25388
|
}
|
|
25267
25389
|
async function listEndpointsRoute(req, res) {
|
|
25268
|
-
const searchParamKeys =
|
|
25390
|
+
const searchParamKeys = extractSearchParamKeys13(
|
|
25269
25391
|
req.query
|
|
25270
25392
|
);
|
|
25271
25393
|
if (searchParamKeys.length === 0) {
|
|
@@ -25281,17 +25403,17 @@ async function listEndpointsRoute(req, res) {
|
|
|
25281
25403
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
25282
25404
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
25283
25405
|
if (unknownCodes.length > 0) {
|
|
25284
|
-
return
|
|
25406
|
+
return sendInvalidSearch40013(
|
|
25285
25407
|
res,
|
|
25286
|
-
|
|
25408
|
+
buildUnknownParamDiagnostics13([...new Set(unknownCodes)])
|
|
25287
25409
|
);
|
|
25288
25410
|
}
|
|
25289
|
-
const malformedRef =
|
|
25411
|
+
const malformedRef = findMalformedReference13(
|
|
25290
25412
|
req.query,
|
|
25291
25413
|
searchParamKeys
|
|
25292
25414
|
);
|
|
25293
25415
|
if (malformedRef !== void 0) {
|
|
25294
|
-
return
|
|
25416
|
+
return sendInvalidSearch40013(
|
|
25295
25417
|
res,
|
|
25296
25418
|
`?${malformedRef.rawKey} must be a typed reference like "Patient/<id>"; got "${malformedRef.value}".`
|
|
25297
25419
|
);
|
|
@@ -26644,30 +26766,30 @@ async function listExplanationOfBenefitsOperation(params) {
|
|
|
26644
26766
|
|
|
26645
26767
|
// src/data/rest-api/routes/data/explanationofbenefit/explanationofbenefit-list-route.ts
|
|
26646
26768
|
var EXPLANATIONOFBENEFIT_RESOURCE_TYPE = "ExplanationOfBenefit";
|
|
26647
|
-
function
|
|
26769
|
+
function stripModifier14(key) {
|
|
26648
26770
|
const idx = key.indexOf(":");
|
|
26649
26771
|
return idx === -1 ? key : key.slice(0, idx);
|
|
26650
26772
|
}
|
|
26651
|
-
function
|
|
26773
|
+
function isResultParameter14(key) {
|
|
26652
26774
|
return key.startsWith("_");
|
|
26653
26775
|
}
|
|
26654
|
-
function
|
|
26776
|
+
function sendInvalidSearch40014(res, diagnostics) {
|
|
26655
26777
|
return res.status(400).json({
|
|
26656
26778
|
resourceType: "OperationOutcome",
|
|
26657
26779
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
26658
26780
|
});
|
|
26659
26781
|
}
|
|
26660
|
-
function
|
|
26782
|
+
function extractSearchParamKeys14(query) {
|
|
26661
26783
|
const out = [];
|
|
26662
26784
|
for (const rawKey of Object.keys(query)) {
|
|
26663
|
-
if (
|
|
26785
|
+
if (isResultParameter14(rawKey)) {
|
|
26664
26786
|
continue;
|
|
26665
26787
|
}
|
|
26666
|
-
out.push({ rawKey, code:
|
|
26788
|
+
out.push({ rawKey, code: stripModifier14(rawKey) });
|
|
26667
26789
|
}
|
|
26668
26790
|
return out;
|
|
26669
26791
|
}
|
|
26670
|
-
function
|
|
26792
|
+
function buildUnknownParamDiagnostics14(unknownCodes) {
|
|
26671
26793
|
const validCodes = getRegisteredSearchParameters(
|
|
26672
26794
|
EXPLANATIONOFBENEFIT_RESOURCE_TYPE
|
|
26673
26795
|
).map((p) => p.code).sort().join(", ");
|
|
@@ -26678,7 +26800,7 @@ function buildUnknownParamDiagnostics13(unknownCodes) {
|
|
|
26678
26800
|
`Valid codes: ${validCodes}.`
|
|
26679
26801
|
].join(" ");
|
|
26680
26802
|
}
|
|
26681
|
-
function
|
|
26803
|
+
function findMalformedReference14(query, searchParamKeys) {
|
|
26682
26804
|
const referenceCodes = new Set(
|
|
26683
26805
|
getRegisteredSearchParameters(EXPLANATIONOFBENEFIT_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
26684
26806
|
);
|
|
@@ -26704,7 +26826,7 @@ function findMalformedReference13(query, searchParamKeys) {
|
|
|
26704
26826
|
return void 0;
|
|
26705
26827
|
}
|
|
26706
26828
|
async function listExplanationOfBenefitsRoute(req, res) {
|
|
26707
|
-
const searchParamKeys =
|
|
26829
|
+
const searchParamKeys = extractSearchParamKeys14(
|
|
26708
26830
|
req.query
|
|
26709
26831
|
);
|
|
26710
26832
|
if (searchParamKeys.length === 0) {
|
|
@@ -26722,17 +26844,17 @@ async function listExplanationOfBenefitsRoute(req, res) {
|
|
|
26722
26844
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
26723
26845
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
26724
26846
|
if (unknownCodes.length > 0) {
|
|
26725
|
-
return
|
|
26847
|
+
return sendInvalidSearch40014(
|
|
26726
26848
|
res,
|
|
26727
|
-
|
|
26849
|
+
buildUnknownParamDiagnostics14([...new Set(unknownCodes)])
|
|
26728
26850
|
);
|
|
26729
26851
|
}
|
|
26730
|
-
const malformedRef =
|
|
26852
|
+
const malformedRef = findMalformedReference14(
|
|
26731
26853
|
req.query,
|
|
26732
26854
|
searchParamKeys
|
|
26733
26855
|
);
|
|
26734
26856
|
if (malformedRef !== void 0) {
|
|
26735
|
-
return
|
|
26857
|
+
return sendInvalidSearch40014(
|
|
26736
26858
|
res,
|
|
26737
26859
|
`?${malformedRef.rawKey} must be a typed reference like "Patient/<id>"; got "${malformedRef.value}".`
|
|
26738
26860
|
);
|
|
@@ -26923,30 +27045,30 @@ async function listFamilyMemberHistorysOperation(params) {
|
|
|
26923
27045
|
|
|
26924
27046
|
// src/data/rest-api/routes/data/familymemberhistory/familymemberhistory-list-route.ts
|
|
26925
27047
|
var FAMILYMEMBERHISTORY_RESOURCE_TYPE = "FamilyMemberHistory";
|
|
26926
|
-
function
|
|
27048
|
+
function stripModifier15(key) {
|
|
26927
27049
|
const idx = key.indexOf(":");
|
|
26928
27050
|
return idx === -1 ? key : key.slice(0, idx);
|
|
26929
27051
|
}
|
|
26930
|
-
function
|
|
27052
|
+
function isResultParameter15(key) {
|
|
26931
27053
|
return key.startsWith("_");
|
|
26932
27054
|
}
|
|
26933
|
-
function
|
|
27055
|
+
function sendInvalidSearch40015(res, diagnostics) {
|
|
26934
27056
|
return res.status(400).json({
|
|
26935
27057
|
resourceType: "OperationOutcome",
|
|
26936
27058
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
26937
27059
|
});
|
|
26938
27060
|
}
|
|
26939
|
-
function
|
|
27061
|
+
function extractSearchParamKeys15(query) {
|
|
26940
27062
|
const out = [];
|
|
26941
27063
|
for (const rawKey of Object.keys(query)) {
|
|
26942
|
-
if (
|
|
27064
|
+
if (isResultParameter15(rawKey)) {
|
|
26943
27065
|
continue;
|
|
26944
27066
|
}
|
|
26945
|
-
out.push({ rawKey, code:
|
|
27067
|
+
out.push({ rawKey, code: stripModifier15(rawKey) });
|
|
26946
27068
|
}
|
|
26947
27069
|
return out;
|
|
26948
27070
|
}
|
|
26949
|
-
function
|
|
27071
|
+
function buildUnknownParamDiagnostics15(unknownCodes) {
|
|
26950
27072
|
const validCodes = getRegisteredSearchParameters(
|
|
26951
27073
|
FAMILYMEMBERHISTORY_RESOURCE_TYPE
|
|
26952
27074
|
).map((p) => p.code).sort().join(", ");
|
|
@@ -26957,7 +27079,7 @@ function buildUnknownParamDiagnostics14(unknownCodes) {
|
|
|
26957
27079
|
`Valid codes: ${validCodes}.`
|
|
26958
27080
|
].join(" ");
|
|
26959
27081
|
}
|
|
26960
|
-
function
|
|
27082
|
+
function findMalformedReference15(query, searchParamKeys) {
|
|
26961
27083
|
const referenceCodes = new Set(
|
|
26962
27084
|
getRegisteredSearchParameters(FAMILYMEMBERHISTORY_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
26963
27085
|
);
|
|
@@ -26980,7 +27102,7 @@ function findMalformedReference14(query, searchParamKeys) {
|
|
|
26980
27102
|
return void 0;
|
|
26981
27103
|
}
|
|
26982
27104
|
async function listFamilyMemberHistorysRoute(req, res) {
|
|
26983
|
-
const searchParamKeys =
|
|
27105
|
+
const searchParamKeys = extractSearchParamKeys15(
|
|
26984
27106
|
req.query
|
|
26985
27107
|
);
|
|
26986
27108
|
if (searchParamKeys.length === 0) {
|
|
@@ -26998,17 +27120,17 @@ async function listFamilyMemberHistorysRoute(req, res) {
|
|
|
26998
27120
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
26999
27121
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
27000
27122
|
if (unknownCodes.length > 0) {
|
|
27001
|
-
return
|
|
27123
|
+
return sendInvalidSearch40015(
|
|
27002
27124
|
res,
|
|
27003
|
-
|
|
27125
|
+
buildUnknownParamDiagnostics15([...new Set(unknownCodes)])
|
|
27004
27126
|
);
|
|
27005
27127
|
}
|
|
27006
|
-
const malformedRef =
|
|
27128
|
+
const malformedRef = findMalformedReference15(
|
|
27007
27129
|
req.query,
|
|
27008
27130
|
searchParamKeys
|
|
27009
27131
|
);
|
|
27010
27132
|
if (malformedRef !== void 0) {
|
|
27011
|
-
return
|
|
27133
|
+
return sendInvalidSearch40015(
|
|
27012
27134
|
res,
|
|
27013
27135
|
`?${malformedRef.rawKey} must be a typed reference like "Patient/<id>"; got "${malformedRef.value}".`
|
|
27014
27136
|
);
|
|
@@ -28185,30 +28307,30 @@ async function listImagingStudysOperation(params) {
|
|
|
28185
28307
|
|
|
28186
28308
|
// src/data/rest-api/routes/data/imagingstudy/imagingstudy-list-route.ts
|
|
28187
28309
|
var IMAGINGSTUDY_RESOURCE_TYPE = "ImagingStudy";
|
|
28188
|
-
function
|
|
28310
|
+
function stripModifier16(key) {
|
|
28189
28311
|
const idx = key.indexOf(":");
|
|
28190
28312
|
return idx === -1 ? key : key.slice(0, idx);
|
|
28191
28313
|
}
|
|
28192
|
-
function
|
|
28314
|
+
function isResultParameter16(key) {
|
|
28193
28315
|
return key.startsWith("_");
|
|
28194
28316
|
}
|
|
28195
|
-
function
|
|
28317
|
+
function sendInvalidSearch40016(res, diagnostics) {
|
|
28196
28318
|
return res.status(400).json({
|
|
28197
28319
|
resourceType: "OperationOutcome",
|
|
28198
28320
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
28199
28321
|
});
|
|
28200
28322
|
}
|
|
28201
|
-
function
|
|
28323
|
+
function extractSearchParamKeys16(query) {
|
|
28202
28324
|
const out = [];
|
|
28203
28325
|
for (const rawKey of Object.keys(query)) {
|
|
28204
|
-
if (
|
|
28326
|
+
if (isResultParameter16(rawKey)) {
|
|
28205
28327
|
continue;
|
|
28206
28328
|
}
|
|
28207
|
-
out.push({ rawKey, code:
|
|
28329
|
+
out.push({ rawKey, code: stripModifier16(rawKey) });
|
|
28208
28330
|
}
|
|
28209
28331
|
return out;
|
|
28210
28332
|
}
|
|
28211
|
-
function
|
|
28333
|
+
function buildUnknownParamDiagnostics16(unknownCodes) {
|
|
28212
28334
|
const validCodes = getRegisteredSearchParameters(IMAGINGSTUDY_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
28213
28335
|
const codes = unknownCodes.join(", ");
|
|
28214
28336
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -28217,7 +28339,7 @@ function buildUnknownParamDiagnostics15(unknownCodes) {
|
|
|
28217
28339
|
`Valid codes: ${validCodes}.`
|
|
28218
28340
|
].join(" ");
|
|
28219
28341
|
}
|
|
28220
|
-
function
|
|
28342
|
+
function findMalformedReference16(query, searchParamKeys) {
|
|
28221
28343
|
const referenceCodes = new Set(
|
|
28222
28344
|
getRegisteredSearchParameters(IMAGINGSTUDY_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
28223
28345
|
);
|
|
@@ -28243,7 +28365,7 @@ function findMalformedReference15(query, searchParamKeys) {
|
|
|
28243
28365
|
return void 0;
|
|
28244
28366
|
}
|
|
28245
28367
|
async function listImagingStudysRoute(req, res) {
|
|
28246
|
-
const searchParamKeys =
|
|
28368
|
+
const searchParamKeys = extractSearchParamKeys16(
|
|
28247
28369
|
req.query
|
|
28248
28370
|
);
|
|
28249
28371
|
if (searchParamKeys.length === 0) {
|
|
@@ -28259,17 +28381,17 @@ async function listImagingStudysRoute(req, res) {
|
|
|
28259
28381
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
28260
28382
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
28261
28383
|
if (unknownCodes.length > 0) {
|
|
28262
|
-
return
|
|
28384
|
+
return sendInvalidSearch40016(
|
|
28263
28385
|
res,
|
|
28264
|
-
|
|
28386
|
+
buildUnknownParamDiagnostics16([...new Set(unknownCodes)])
|
|
28265
28387
|
);
|
|
28266
28388
|
}
|
|
28267
|
-
const malformedRef =
|
|
28389
|
+
const malformedRef = findMalformedReference16(
|
|
28268
28390
|
req.query,
|
|
28269
28391
|
searchParamKeys
|
|
28270
28392
|
);
|
|
28271
28393
|
if (malformedRef !== void 0) {
|
|
28272
|
-
return
|
|
28394
|
+
return sendInvalidSearch40016(
|
|
28273
28395
|
res,
|
|
28274
28396
|
`?${malformedRef.rawKey} must be a typed reference like "Patient/<id>"; got "${malformedRef.value}".`
|
|
28275
28397
|
);
|
|
@@ -28446,30 +28568,30 @@ async function listImmunizationsOperation(params) {
|
|
|
28446
28568
|
|
|
28447
28569
|
// src/data/rest-api/routes/data/immunization/immunization-list-route.ts
|
|
28448
28570
|
var IMMUNIZATION_RESOURCE_TYPE = "Immunization";
|
|
28449
|
-
function
|
|
28571
|
+
function stripModifier17(key) {
|
|
28450
28572
|
const idx = key.indexOf(":");
|
|
28451
28573
|
return idx === -1 ? key : key.slice(0, idx);
|
|
28452
28574
|
}
|
|
28453
|
-
function
|
|
28575
|
+
function isResultParameter17(key) {
|
|
28454
28576
|
return key.startsWith("_");
|
|
28455
28577
|
}
|
|
28456
|
-
function
|
|
28578
|
+
function sendInvalidSearch40017(res, diagnostics) {
|
|
28457
28579
|
return res.status(400).json({
|
|
28458
28580
|
resourceType: "OperationOutcome",
|
|
28459
28581
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
28460
28582
|
});
|
|
28461
28583
|
}
|
|
28462
|
-
function
|
|
28584
|
+
function extractSearchParamKeys17(query) {
|
|
28463
28585
|
const out = [];
|
|
28464
28586
|
for (const rawKey of Object.keys(query)) {
|
|
28465
|
-
if (
|
|
28587
|
+
if (isResultParameter17(rawKey)) {
|
|
28466
28588
|
continue;
|
|
28467
28589
|
}
|
|
28468
|
-
out.push({ rawKey, code:
|
|
28590
|
+
out.push({ rawKey, code: stripModifier17(rawKey) });
|
|
28469
28591
|
}
|
|
28470
28592
|
return out;
|
|
28471
28593
|
}
|
|
28472
|
-
function
|
|
28594
|
+
function buildUnknownParamDiagnostics17(unknownCodes) {
|
|
28473
28595
|
const validCodes = getRegisteredSearchParameters(IMMUNIZATION_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
28474
28596
|
const codes = unknownCodes.join(", ");
|
|
28475
28597
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -28478,7 +28600,7 @@ function buildUnknownParamDiagnostics16(unknownCodes) {
|
|
|
28478
28600
|
`Valid codes: ${validCodes}.`
|
|
28479
28601
|
].join(" ");
|
|
28480
28602
|
}
|
|
28481
|
-
function
|
|
28603
|
+
function findMalformedReference17(query, searchParamKeys) {
|
|
28482
28604
|
const referenceCodes = new Set(
|
|
28483
28605
|
getRegisteredSearchParameters(IMMUNIZATION_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
28484
28606
|
);
|
|
@@ -28501,7 +28623,7 @@ function findMalformedReference16(query, searchParamKeys) {
|
|
|
28501
28623
|
return void 0;
|
|
28502
28624
|
}
|
|
28503
28625
|
async function listImmunizationsRoute(req, res) {
|
|
28504
|
-
const searchParamKeys =
|
|
28626
|
+
const searchParamKeys = extractSearchParamKeys17(
|
|
28505
28627
|
req.query
|
|
28506
28628
|
);
|
|
28507
28629
|
if (searchParamKeys.length === 0) {
|
|
@@ -28517,17 +28639,17 @@ async function listImmunizationsRoute(req, res) {
|
|
|
28517
28639
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
28518
28640
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
28519
28641
|
if (unknownCodes.length > 0) {
|
|
28520
|
-
return
|
|
28642
|
+
return sendInvalidSearch40017(
|
|
28521
28643
|
res,
|
|
28522
|
-
|
|
28644
|
+
buildUnknownParamDiagnostics17([...new Set(unknownCodes)])
|
|
28523
28645
|
);
|
|
28524
28646
|
}
|
|
28525
|
-
const malformedRef =
|
|
28647
|
+
const malformedRef = findMalformedReference17(
|
|
28526
28648
|
req.query,
|
|
28527
28649
|
searchParamKeys
|
|
28528
28650
|
);
|
|
28529
28651
|
if (malformedRef !== void 0) {
|
|
28530
|
-
return
|
|
28652
|
+
return sendInvalidSearch40017(
|
|
28531
28653
|
res,
|
|
28532
28654
|
`?${malformedRef.rawKey} must be a typed reference like "Practitioner/<id>"; got "${malformedRef.value}".`
|
|
28533
28655
|
);
|
|
@@ -29409,30 +29531,30 @@ async function listInvoicesOperation(params) {
|
|
|
29409
29531
|
|
|
29410
29532
|
// src/data/rest-api/routes/data/invoice/invoice-list-route.ts
|
|
29411
29533
|
var INVOICE_RESOURCE_TYPE = "Invoice";
|
|
29412
|
-
function
|
|
29534
|
+
function stripModifier18(key) {
|
|
29413
29535
|
const idx = key.indexOf(":");
|
|
29414
29536
|
return idx === -1 ? key : key.slice(0, idx);
|
|
29415
29537
|
}
|
|
29416
|
-
function
|
|
29538
|
+
function isResultParameter18(key) {
|
|
29417
29539
|
return key.startsWith("_");
|
|
29418
29540
|
}
|
|
29419
|
-
function
|
|
29541
|
+
function sendInvalidSearch40018(res, diagnostics) {
|
|
29420
29542
|
return res.status(400).json({
|
|
29421
29543
|
resourceType: "OperationOutcome",
|
|
29422
29544
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
29423
29545
|
});
|
|
29424
29546
|
}
|
|
29425
|
-
function
|
|
29547
|
+
function extractSearchParamKeys18(query) {
|
|
29426
29548
|
const out = [];
|
|
29427
29549
|
for (const rawKey of Object.keys(query)) {
|
|
29428
|
-
if (
|
|
29550
|
+
if (isResultParameter18(rawKey)) {
|
|
29429
29551
|
continue;
|
|
29430
29552
|
}
|
|
29431
|
-
out.push({ rawKey, code:
|
|
29553
|
+
out.push({ rawKey, code: stripModifier18(rawKey) });
|
|
29432
29554
|
}
|
|
29433
29555
|
return out;
|
|
29434
29556
|
}
|
|
29435
|
-
function
|
|
29557
|
+
function buildUnknownParamDiagnostics18(unknownCodes) {
|
|
29436
29558
|
const validCodes = getRegisteredSearchParameters(INVOICE_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
29437
29559
|
const codes = unknownCodes.join(", ");
|
|
29438
29560
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -29441,7 +29563,7 @@ function buildUnknownParamDiagnostics17(unknownCodes) {
|
|
|
29441
29563
|
`Valid codes: ${validCodes}.`
|
|
29442
29564
|
].join(" ");
|
|
29443
29565
|
}
|
|
29444
|
-
function
|
|
29566
|
+
function findMalformedReference18(query, searchParamKeys) {
|
|
29445
29567
|
const referenceCodes = new Set(
|
|
29446
29568
|
getRegisteredSearchParameters(INVOICE_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
29447
29569
|
);
|
|
@@ -29467,7 +29589,7 @@ function findMalformedReference17(query, searchParamKeys) {
|
|
|
29467
29589
|
return void 0;
|
|
29468
29590
|
}
|
|
29469
29591
|
async function listInvoicesRoute(req, res) {
|
|
29470
|
-
const searchParamKeys =
|
|
29592
|
+
const searchParamKeys = extractSearchParamKeys18(
|
|
29471
29593
|
req.query
|
|
29472
29594
|
);
|
|
29473
29595
|
if (searchParamKeys.length === 0) {
|
|
@@ -29483,17 +29605,17 @@ async function listInvoicesRoute(req, res) {
|
|
|
29483
29605
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
29484
29606
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
29485
29607
|
if (unknownCodes.length > 0) {
|
|
29486
|
-
return
|
|
29608
|
+
return sendInvalidSearch40018(
|
|
29487
29609
|
res,
|
|
29488
|
-
|
|
29610
|
+
buildUnknownParamDiagnostics18([...new Set(unknownCodes)])
|
|
29489
29611
|
);
|
|
29490
29612
|
}
|
|
29491
|
-
const malformedRef =
|
|
29613
|
+
const malformedRef = findMalformedReference18(
|
|
29492
29614
|
req.query,
|
|
29493
29615
|
searchParamKeys
|
|
29494
29616
|
);
|
|
29495
29617
|
if (malformedRef !== void 0) {
|
|
29496
|
-
return
|
|
29618
|
+
return sendInvalidSearch40018(
|
|
29497
29619
|
res,
|
|
29498
29620
|
`?${malformedRef.rawKey} must be a typed reference like "Patient/<id>"; got "${malformedRef.value}".`
|
|
29499
29621
|
);
|
|
@@ -30165,30 +30287,30 @@ async function listLocationsOperation(params) {
|
|
|
30165
30287
|
|
|
30166
30288
|
// src/data/rest-api/routes/data/location/location-list-route.ts
|
|
30167
30289
|
var LOCATION_RESOURCE_TYPE = "Location";
|
|
30168
|
-
function
|
|
30290
|
+
function stripModifier19(key) {
|
|
30169
30291
|
const idx = key.indexOf(":");
|
|
30170
30292
|
return idx === -1 ? key : key.slice(0, idx);
|
|
30171
30293
|
}
|
|
30172
|
-
function
|
|
30294
|
+
function isResultParameter19(key) {
|
|
30173
30295
|
return key.startsWith("_");
|
|
30174
30296
|
}
|
|
30175
|
-
function
|
|
30297
|
+
function sendInvalidSearch40019(res, diagnostics) {
|
|
30176
30298
|
return res.status(400).json({
|
|
30177
30299
|
resourceType: "OperationOutcome",
|
|
30178
30300
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
30179
30301
|
});
|
|
30180
30302
|
}
|
|
30181
|
-
function
|
|
30303
|
+
function extractSearchParamKeys19(query) {
|
|
30182
30304
|
const out = [];
|
|
30183
30305
|
for (const rawKey of Object.keys(query)) {
|
|
30184
|
-
if (
|
|
30306
|
+
if (isResultParameter19(rawKey)) {
|
|
30185
30307
|
continue;
|
|
30186
30308
|
}
|
|
30187
|
-
out.push({ rawKey, code:
|
|
30309
|
+
out.push({ rawKey, code: stripModifier19(rawKey) });
|
|
30188
30310
|
}
|
|
30189
30311
|
return out;
|
|
30190
30312
|
}
|
|
30191
|
-
function
|
|
30313
|
+
function buildUnknownParamDiagnostics19(unknownCodes) {
|
|
30192
30314
|
const validCodes = getRegisteredSearchParameters(LOCATION_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
30193
30315
|
const codes = unknownCodes.join(", ");
|
|
30194
30316
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -30197,7 +30319,7 @@ function buildUnknownParamDiagnostics18(unknownCodes) {
|
|
|
30197
30319
|
`Valid codes: ${validCodes}.`
|
|
30198
30320
|
].join(" ");
|
|
30199
30321
|
}
|
|
30200
|
-
function
|
|
30322
|
+
function findMalformedReference19(query, searchParamKeys) {
|
|
30201
30323
|
const referenceCodes = new Set(
|
|
30202
30324
|
getRegisteredSearchParameters(LOCATION_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
30203
30325
|
);
|
|
@@ -30223,7 +30345,7 @@ function findMalformedReference18(query, searchParamKeys) {
|
|
|
30223
30345
|
return void 0;
|
|
30224
30346
|
}
|
|
30225
30347
|
async function listLocationsRoute(req, res) {
|
|
30226
|
-
const searchParamKeys =
|
|
30348
|
+
const searchParamKeys = extractSearchParamKeys19(
|
|
30227
30349
|
req.query
|
|
30228
30350
|
);
|
|
30229
30351
|
if (searchParamKeys.length === 0) {
|
|
@@ -30239,17 +30361,17 @@ async function listLocationsRoute(req, res) {
|
|
|
30239
30361
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
30240
30362
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
30241
30363
|
if (unknownCodes.length > 0) {
|
|
30242
|
-
return
|
|
30364
|
+
return sendInvalidSearch40019(
|
|
30243
30365
|
res,
|
|
30244
|
-
|
|
30366
|
+
buildUnknownParamDiagnostics19([...new Set(unknownCodes)])
|
|
30245
30367
|
);
|
|
30246
30368
|
}
|
|
30247
|
-
const malformedRef =
|
|
30369
|
+
const malformedRef = findMalformedReference19(
|
|
30248
30370
|
req.query,
|
|
30249
30371
|
searchParamKeys
|
|
30250
30372
|
);
|
|
30251
30373
|
if (malformedRef !== void 0) {
|
|
30252
|
-
return
|
|
30374
|
+
return sendInvalidSearch40019(
|
|
30253
30375
|
res,
|
|
30254
30376
|
`?${malformedRef.rawKey} must be a typed reference like "Patient/<id>"; got "${malformedRef.value}".`
|
|
30255
30377
|
);
|
|
@@ -31617,30 +31739,30 @@ async function listMedicationRequestsOperation(params) {
|
|
|
31617
31739
|
|
|
31618
31740
|
// src/data/rest-api/routes/data/medicationrequest/medicationrequest-list-route.ts
|
|
31619
31741
|
var MEDICATIONREQUEST_RESOURCE_TYPE = "MedicationRequest";
|
|
31620
|
-
function
|
|
31742
|
+
function stripModifier20(key) {
|
|
31621
31743
|
const idx = key.indexOf(":");
|
|
31622
31744
|
return idx === -1 ? key : key.slice(0, idx);
|
|
31623
31745
|
}
|
|
31624
|
-
function
|
|
31746
|
+
function isResultParameter20(key) {
|
|
31625
31747
|
return key.startsWith("_");
|
|
31626
31748
|
}
|
|
31627
|
-
function
|
|
31749
|
+
function sendInvalidSearch40020(res, diagnostics) {
|
|
31628
31750
|
return res.status(400).json({
|
|
31629
31751
|
resourceType: "OperationOutcome",
|
|
31630
31752
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
31631
31753
|
});
|
|
31632
31754
|
}
|
|
31633
|
-
function
|
|
31755
|
+
function extractSearchParamKeys20(query) {
|
|
31634
31756
|
const out = [];
|
|
31635
31757
|
for (const rawKey of Object.keys(query)) {
|
|
31636
|
-
if (
|
|
31758
|
+
if (isResultParameter20(rawKey)) {
|
|
31637
31759
|
continue;
|
|
31638
31760
|
}
|
|
31639
|
-
out.push({ rawKey, code:
|
|
31761
|
+
out.push({ rawKey, code: stripModifier20(rawKey) });
|
|
31640
31762
|
}
|
|
31641
31763
|
return out;
|
|
31642
31764
|
}
|
|
31643
|
-
function
|
|
31765
|
+
function buildUnknownParamDiagnostics20(unknownCodes) {
|
|
31644
31766
|
const validCodes = getRegisteredSearchParameters(
|
|
31645
31767
|
MEDICATIONREQUEST_RESOURCE_TYPE
|
|
31646
31768
|
).map((p) => p.code).sort().join(", ");
|
|
@@ -31651,7 +31773,7 @@ function buildUnknownParamDiagnostics19(unknownCodes) {
|
|
|
31651
31773
|
`Valid codes: ${validCodes}.`
|
|
31652
31774
|
].join(" ");
|
|
31653
31775
|
}
|
|
31654
|
-
function
|
|
31776
|
+
function findMalformedReference20(query, searchParamKeys) {
|
|
31655
31777
|
const referenceCodes = new Set(
|
|
31656
31778
|
getRegisteredSearchParameters(MEDICATIONREQUEST_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
31657
31779
|
);
|
|
@@ -31674,7 +31796,7 @@ function findMalformedReference19(query, searchParamKeys) {
|
|
|
31674
31796
|
return void 0;
|
|
31675
31797
|
}
|
|
31676
31798
|
async function listMedicationRequestsRoute(req, res) {
|
|
31677
|
-
const searchParamKeys =
|
|
31799
|
+
const searchParamKeys = extractSearchParamKeys20(
|
|
31678
31800
|
req.query
|
|
31679
31801
|
);
|
|
31680
31802
|
if (searchParamKeys.length === 0) {
|
|
@@ -31692,17 +31814,17 @@ async function listMedicationRequestsRoute(req, res) {
|
|
|
31692
31814
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
31693
31815
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
31694
31816
|
if (unknownCodes.length > 0) {
|
|
31695
|
-
return
|
|
31817
|
+
return sendInvalidSearch40020(
|
|
31696
31818
|
res,
|
|
31697
|
-
|
|
31819
|
+
buildUnknownParamDiagnostics20([...new Set(unknownCodes)])
|
|
31698
31820
|
);
|
|
31699
31821
|
}
|
|
31700
|
-
const malformedRef =
|
|
31822
|
+
const malformedRef = findMalformedReference20(
|
|
31701
31823
|
req.query,
|
|
31702
31824
|
searchParamKeys
|
|
31703
31825
|
);
|
|
31704
31826
|
if (malformedRef !== void 0) {
|
|
31705
|
-
return
|
|
31827
|
+
return sendInvalidSearch40020(
|
|
31706
31828
|
res,
|
|
31707
31829
|
`?${malformedRef.rawKey} must be a typed reference like "Practitioner/<id>"; got "${malformedRef.value}".`
|
|
31708
31830
|
);
|
|
@@ -31893,30 +32015,30 @@ async function listMedicationStatementsOperation(params) {
|
|
|
31893
32015
|
|
|
31894
32016
|
// src/data/rest-api/routes/data/medicationstatement/medicationstatement-list-route.ts
|
|
31895
32017
|
var MEDICATIONSTATEMENT_RESOURCE_TYPE = "MedicationStatement";
|
|
31896
|
-
function
|
|
32018
|
+
function stripModifier21(key) {
|
|
31897
32019
|
const idx = key.indexOf(":");
|
|
31898
32020
|
return idx === -1 ? key : key.slice(0, idx);
|
|
31899
32021
|
}
|
|
31900
|
-
function
|
|
32022
|
+
function isResultParameter21(key) {
|
|
31901
32023
|
return key.startsWith("_");
|
|
31902
32024
|
}
|
|
31903
|
-
function
|
|
32025
|
+
function sendInvalidSearch40021(res, diagnostics) {
|
|
31904
32026
|
return res.status(400).json({
|
|
31905
32027
|
resourceType: "OperationOutcome",
|
|
31906
32028
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
31907
32029
|
});
|
|
31908
32030
|
}
|
|
31909
|
-
function
|
|
32031
|
+
function extractSearchParamKeys21(query) {
|
|
31910
32032
|
const out = [];
|
|
31911
32033
|
for (const rawKey of Object.keys(query)) {
|
|
31912
|
-
if (
|
|
32034
|
+
if (isResultParameter21(rawKey)) {
|
|
31913
32035
|
continue;
|
|
31914
32036
|
}
|
|
31915
|
-
out.push({ rawKey, code:
|
|
32037
|
+
out.push({ rawKey, code: stripModifier21(rawKey) });
|
|
31916
32038
|
}
|
|
31917
32039
|
return out;
|
|
31918
32040
|
}
|
|
31919
|
-
function
|
|
32041
|
+
function buildUnknownParamDiagnostics21(unknownCodes) {
|
|
31920
32042
|
const validCodes = getRegisteredSearchParameters(
|
|
31921
32043
|
MEDICATIONSTATEMENT_RESOURCE_TYPE
|
|
31922
32044
|
).map((p) => p.code).sort().join(", ");
|
|
@@ -31927,7 +32049,7 @@ function buildUnknownParamDiagnostics20(unknownCodes) {
|
|
|
31927
32049
|
`Valid codes: ${validCodes}.`
|
|
31928
32050
|
].join(" ");
|
|
31929
32051
|
}
|
|
31930
|
-
function
|
|
32052
|
+
function findMalformedReference21(query, searchParamKeys) {
|
|
31931
32053
|
const referenceCodes = new Set(
|
|
31932
32054
|
getRegisteredSearchParameters(MEDICATIONSTATEMENT_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
31933
32055
|
);
|
|
@@ -31950,7 +32072,7 @@ function findMalformedReference20(query, searchParamKeys) {
|
|
|
31950
32072
|
return void 0;
|
|
31951
32073
|
}
|
|
31952
32074
|
async function listMedicationStatementsRoute(req, res) {
|
|
31953
|
-
const searchParamKeys =
|
|
32075
|
+
const searchParamKeys = extractSearchParamKeys21(
|
|
31954
32076
|
req.query
|
|
31955
32077
|
);
|
|
31956
32078
|
if (searchParamKeys.length === 0) {
|
|
@@ -31968,17 +32090,17 @@ async function listMedicationStatementsRoute(req, res) {
|
|
|
31968
32090
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
31969
32091
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
31970
32092
|
if (unknownCodes.length > 0) {
|
|
31971
|
-
return
|
|
32093
|
+
return sendInvalidSearch40021(
|
|
31972
32094
|
res,
|
|
31973
|
-
|
|
32095
|
+
buildUnknownParamDiagnostics21([...new Set(unknownCodes)])
|
|
31974
32096
|
);
|
|
31975
32097
|
}
|
|
31976
|
-
const malformedRef =
|
|
32098
|
+
const malformedRef = findMalformedReference21(
|
|
31977
32099
|
req.query,
|
|
31978
32100
|
searchParamKeys
|
|
31979
32101
|
);
|
|
31980
32102
|
if (malformedRef !== void 0) {
|
|
31981
|
-
return
|
|
32103
|
+
return sendInvalidSearch40021(
|
|
31982
32104
|
res,
|
|
31983
32105
|
`?${malformedRef.rawKey} must be a typed reference like "Practitioner/<id>"; got "${malformedRef.value}".`
|
|
31984
32106
|
);
|
|
@@ -34835,30 +34957,30 @@ async function listObservationsOperation(params) {
|
|
|
34835
34957
|
|
|
34836
34958
|
// src/data/rest-api/routes/data/observation/observation-list-route.ts
|
|
34837
34959
|
var OBSERVATION_RESOURCE_TYPE = "Observation";
|
|
34838
|
-
function
|
|
34960
|
+
function stripModifier22(key) {
|
|
34839
34961
|
const idx = key.indexOf(":");
|
|
34840
34962
|
return idx === -1 ? key : key.slice(0, idx);
|
|
34841
34963
|
}
|
|
34842
|
-
function
|
|
34964
|
+
function isResultParameter22(key) {
|
|
34843
34965
|
return key.startsWith("_");
|
|
34844
34966
|
}
|
|
34845
|
-
function
|
|
34967
|
+
function sendInvalidSearch40022(res, diagnostics) {
|
|
34846
34968
|
return res.status(400).json({
|
|
34847
34969
|
resourceType: "OperationOutcome",
|
|
34848
34970
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
34849
34971
|
});
|
|
34850
34972
|
}
|
|
34851
|
-
function
|
|
34973
|
+
function extractSearchParamKeys22(query) {
|
|
34852
34974
|
const out = [];
|
|
34853
34975
|
for (const rawKey of Object.keys(query)) {
|
|
34854
|
-
if (
|
|
34976
|
+
if (isResultParameter22(rawKey)) {
|
|
34855
34977
|
continue;
|
|
34856
34978
|
}
|
|
34857
|
-
out.push({ rawKey, code:
|
|
34979
|
+
out.push({ rawKey, code: stripModifier22(rawKey) });
|
|
34858
34980
|
}
|
|
34859
34981
|
return out;
|
|
34860
34982
|
}
|
|
34861
|
-
function
|
|
34983
|
+
function buildUnknownParamDiagnostics22(unknownCodes) {
|
|
34862
34984
|
const validCodes = getRegisteredSearchParameters(OBSERVATION_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
34863
34985
|
const codes = unknownCodes.join(", ");
|
|
34864
34986
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -34867,7 +34989,7 @@ function buildUnknownParamDiagnostics21(unknownCodes) {
|
|
|
34867
34989
|
`Valid codes: ${validCodes}.`
|
|
34868
34990
|
].join(" ");
|
|
34869
34991
|
}
|
|
34870
|
-
function
|
|
34992
|
+
function findMalformedReference22(query, searchParamKeys) {
|
|
34871
34993
|
const referenceCodes = new Set(
|
|
34872
34994
|
getRegisteredSearchParameters(OBSERVATION_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
34873
34995
|
);
|
|
@@ -34890,7 +35012,7 @@ function findMalformedReference21(query, searchParamKeys) {
|
|
|
34890
35012
|
return void 0;
|
|
34891
35013
|
}
|
|
34892
35014
|
async function listObservationsRoute(req, res) {
|
|
34893
|
-
const searchParamKeys =
|
|
35015
|
+
const searchParamKeys = extractSearchParamKeys22(
|
|
34894
35016
|
req.query
|
|
34895
35017
|
);
|
|
34896
35018
|
if (searchParamKeys.length === 0) {
|
|
@@ -34906,17 +35028,17 @@ async function listObservationsRoute(req, res) {
|
|
|
34906
35028
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
34907
35029
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
34908
35030
|
if (unknownCodes.length > 0) {
|
|
34909
|
-
return
|
|
35031
|
+
return sendInvalidSearch40022(
|
|
34910
35032
|
res,
|
|
34911
|
-
|
|
35033
|
+
buildUnknownParamDiagnostics22([...new Set(unknownCodes)])
|
|
34912
35034
|
);
|
|
34913
35035
|
}
|
|
34914
|
-
const malformedRef =
|
|
35036
|
+
const malformedRef = findMalformedReference22(
|
|
34915
35037
|
req.query,
|
|
34916
35038
|
searchParamKeys
|
|
34917
35039
|
);
|
|
34918
35040
|
if (malformedRef !== void 0) {
|
|
34919
|
-
return
|
|
35041
|
+
return sendInvalidSearch40022(
|
|
34920
35042
|
res,
|
|
34921
35043
|
`?${malformedRef.rawKey} must be a typed reference like "Practitioner/<id>"; got "${malformedRef.value}".`
|
|
34922
35044
|
);
|
|
@@ -35422,30 +35544,30 @@ async function listOrganizationsOperation(params) {
|
|
|
35422
35544
|
|
|
35423
35545
|
// src/data/rest-api/routes/data/organization/organization-list-route.ts
|
|
35424
35546
|
var ORGANIZATION_RESOURCE_TYPE = "Organization";
|
|
35425
|
-
function
|
|
35547
|
+
function stripModifier23(key) {
|
|
35426
35548
|
const idx = key.indexOf(":");
|
|
35427
35549
|
return idx === -1 ? key : key.slice(0, idx);
|
|
35428
35550
|
}
|
|
35429
|
-
function
|
|
35551
|
+
function isResultParameter23(key) {
|
|
35430
35552
|
return key.startsWith("_");
|
|
35431
35553
|
}
|
|
35432
|
-
function
|
|
35554
|
+
function sendInvalidSearch40023(res, diagnostics) {
|
|
35433
35555
|
return res.status(400).json({
|
|
35434
35556
|
resourceType: "OperationOutcome",
|
|
35435
35557
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
35436
35558
|
});
|
|
35437
35559
|
}
|
|
35438
|
-
function
|
|
35560
|
+
function extractSearchParamKeys23(query) {
|
|
35439
35561
|
const out = [];
|
|
35440
35562
|
for (const rawKey of Object.keys(query)) {
|
|
35441
|
-
if (
|
|
35563
|
+
if (isResultParameter23(rawKey)) {
|
|
35442
35564
|
continue;
|
|
35443
35565
|
}
|
|
35444
|
-
out.push({ rawKey, code:
|
|
35566
|
+
out.push({ rawKey, code: stripModifier23(rawKey) });
|
|
35445
35567
|
}
|
|
35446
35568
|
return out;
|
|
35447
35569
|
}
|
|
35448
|
-
function
|
|
35570
|
+
function buildUnknownParamDiagnostics23(unknownCodes) {
|
|
35449
35571
|
const validCodes = getRegisteredSearchParameters(ORGANIZATION_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
35450
35572
|
const codes = unknownCodes.join(", ");
|
|
35451
35573
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -35454,7 +35576,7 @@ function buildUnknownParamDiagnostics22(unknownCodes) {
|
|
|
35454
35576
|
`Valid codes: ${validCodes}.`
|
|
35455
35577
|
].join(" ");
|
|
35456
35578
|
}
|
|
35457
|
-
function
|
|
35579
|
+
function findMalformedReference23(query, searchParamKeys) {
|
|
35458
35580
|
const referenceCodes = new Set(
|
|
35459
35581
|
getRegisteredSearchParameters(ORGANIZATION_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
35460
35582
|
);
|
|
@@ -35480,7 +35602,7 @@ function findMalformedReference22(query, searchParamKeys) {
|
|
|
35480
35602
|
return void 0;
|
|
35481
35603
|
}
|
|
35482
35604
|
async function listOrganizationsRoute(req, res) {
|
|
35483
|
-
const searchParamKeys =
|
|
35605
|
+
const searchParamKeys = extractSearchParamKeys23(
|
|
35484
35606
|
req.query
|
|
35485
35607
|
);
|
|
35486
35608
|
if (searchParamKeys.length === 0) {
|
|
@@ -35496,17 +35618,17 @@ async function listOrganizationsRoute(req, res) {
|
|
|
35496
35618
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
35497
35619
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
35498
35620
|
if (unknownCodes.length > 0) {
|
|
35499
|
-
return
|
|
35621
|
+
return sendInvalidSearch40023(
|
|
35500
35622
|
res,
|
|
35501
|
-
|
|
35623
|
+
buildUnknownParamDiagnostics23([...new Set(unknownCodes)])
|
|
35502
35624
|
);
|
|
35503
35625
|
}
|
|
35504
|
-
const malformedRef =
|
|
35626
|
+
const malformedRef = findMalformedReference23(
|
|
35505
35627
|
req.query,
|
|
35506
35628
|
searchParamKeys
|
|
35507
35629
|
);
|
|
35508
35630
|
if (malformedRef !== void 0) {
|
|
35509
|
-
return
|
|
35631
|
+
return sendInvalidSearch40023(
|
|
35510
35632
|
res,
|
|
35511
35633
|
`?${malformedRef.rawKey} must be a typed reference like "Patient/<id>"; got "${malformedRef.value}".`
|
|
35512
35634
|
);
|
|
@@ -35867,30 +35989,30 @@ async function listPatientsOperation(params) {
|
|
|
35867
35989
|
|
|
35868
35990
|
// src/data/rest-api/routes/data/patient/patient-list-route.ts
|
|
35869
35991
|
var PATIENT_RESOURCE_TYPE = "Patient";
|
|
35870
|
-
function
|
|
35992
|
+
function stripModifier24(key) {
|
|
35871
35993
|
const idx = key.indexOf(":");
|
|
35872
35994
|
return idx === -1 ? key : key.slice(0, idx);
|
|
35873
35995
|
}
|
|
35874
|
-
function
|
|
35996
|
+
function isResultParameter24(key) {
|
|
35875
35997
|
return key.startsWith("_");
|
|
35876
35998
|
}
|
|
35877
|
-
function
|
|
35999
|
+
function sendInvalidSearch40024(res, diagnostics) {
|
|
35878
36000
|
return res.status(400).json({
|
|
35879
36001
|
resourceType: "OperationOutcome",
|
|
35880
36002
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
35881
36003
|
});
|
|
35882
36004
|
}
|
|
35883
|
-
function
|
|
36005
|
+
function extractSearchParamKeys24(query) {
|
|
35884
36006
|
const out = [];
|
|
35885
36007
|
for (const rawKey of Object.keys(query)) {
|
|
35886
|
-
if (
|
|
36008
|
+
if (isResultParameter24(rawKey)) {
|
|
35887
36009
|
continue;
|
|
35888
36010
|
}
|
|
35889
|
-
out.push({ rawKey, code:
|
|
36011
|
+
out.push({ rawKey, code: stripModifier24(rawKey) });
|
|
35890
36012
|
}
|
|
35891
36013
|
return out;
|
|
35892
36014
|
}
|
|
35893
|
-
function
|
|
36015
|
+
function buildUnknownParamDiagnostics24(unknownCodes) {
|
|
35894
36016
|
const validCodes = getRegisteredSearchParameters(PATIENT_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
35895
36017
|
const codes = unknownCodes.join(", ");
|
|
35896
36018
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -35899,7 +36021,7 @@ function buildUnknownParamDiagnostics23(unknownCodes) {
|
|
|
35899
36021
|
`Valid codes: ${validCodes}.`
|
|
35900
36022
|
].join(" ");
|
|
35901
36023
|
}
|
|
35902
|
-
function
|
|
36024
|
+
function findMalformedReference24(query, searchParamKeys) {
|
|
35903
36025
|
const referenceCodes = new Set(
|
|
35904
36026
|
getRegisteredSearchParameters(PATIENT_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
35905
36027
|
);
|
|
@@ -35922,7 +36044,7 @@ function findMalformedReference23(query, searchParamKeys) {
|
|
|
35922
36044
|
return void 0;
|
|
35923
36045
|
}
|
|
35924
36046
|
async function listPatientsRoute(req, res) {
|
|
35925
|
-
const searchParamKeys =
|
|
36047
|
+
const searchParamKeys = extractSearchParamKeys24(
|
|
35926
36048
|
req.query
|
|
35927
36049
|
);
|
|
35928
36050
|
if (searchParamKeys.length === 0) {
|
|
@@ -35938,17 +36060,17 @@ async function listPatientsRoute(req, res) {
|
|
|
35938
36060
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
35939
36061
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
35940
36062
|
if (unknownCodes.length > 0) {
|
|
35941
|
-
return
|
|
36063
|
+
return sendInvalidSearch40024(
|
|
35942
36064
|
res,
|
|
35943
|
-
|
|
36065
|
+
buildUnknownParamDiagnostics24([...new Set(unknownCodes)])
|
|
35944
36066
|
);
|
|
35945
36067
|
}
|
|
35946
|
-
const malformedRef =
|
|
36068
|
+
const malformedRef = findMalformedReference24(
|
|
35947
36069
|
req.query,
|
|
35948
36070
|
searchParamKeys
|
|
35949
36071
|
);
|
|
35950
36072
|
if (malformedRef !== void 0) {
|
|
35951
|
-
return
|
|
36073
|
+
return sendInvalidSearch40024(
|
|
35952
36074
|
res,
|
|
35953
36075
|
`?${malformedRef.rawKey} must be a typed reference like "Practitioner/<id>"; got "${malformedRef.value}".`
|
|
35954
36076
|
);
|
|
@@ -36125,30 +36247,30 @@ async function listPaymentNoticesOperation(params) {
|
|
|
36125
36247
|
|
|
36126
36248
|
// src/data/rest-api/routes/data/paymentnotice/paymentnotice-list-route.ts
|
|
36127
36249
|
var PAYMENTNOTICE_RESOURCE_TYPE = "PaymentNotice";
|
|
36128
|
-
function
|
|
36250
|
+
function stripModifier25(key) {
|
|
36129
36251
|
const idx = key.indexOf(":");
|
|
36130
36252
|
return idx === -1 ? key : key.slice(0, idx);
|
|
36131
36253
|
}
|
|
36132
|
-
function
|
|
36254
|
+
function isResultParameter25(key) {
|
|
36133
36255
|
return key.startsWith("_");
|
|
36134
36256
|
}
|
|
36135
|
-
function
|
|
36257
|
+
function sendInvalidSearch40025(res, diagnostics) {
|
|
36136
36258
|
return res.status(400).json({
|
|
36137
36259
|
resourceType: "OperationOutcome",
|
|
36138
36260
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
36139
36261
|
});
|
|
36140
36262
|
}
|
|
36141
|
-
function
|
|
36263
|
+
function extractSearchParamKeys25(query) {
|
|
36142
36264
|
const out = [];
|
|
36143
36265
|
for (const rawKey of Object.keys(query)) {
|
|
36144
|
-
if (
|
|
36266
|
+
if (isResultParameter25(rawKey)) {
|
|
36145
36267
|
continue;
|
|
36146
36268
|
}
|
|
36147
|
-
out.push({ rawKey, code:
|
|
36269
|
+
out.push({ rawKey, code: stripModifier25(rawKey) });
|
|
36148
36270
|
}
|
|
36149
36271
|
return out;
|
|
36150
36272
|
}
|
|
36151
|
-
function
|
|
36273
|
+
function buildUnknownParamDiagnostics25(unknownCodes) {
|
|
36152
36274
|
const validCodes = getRegisteredSearchParameters(PAYMENTNOTICE_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
36153
36275
|
const codes = unknownCodes.join(", ");
|
|
36154
36276
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -36157,7 +36279,7 @@ function buildUnknownParamDiagnostics24(unknownCodes) {
|
|
|
36157
36279
|
`Valid codes: ${validCodes}.`
|
|
36158
36280
|
].join(" ");
|
|
36159
36281
|
}
|
|
36160
|
-
function
|
|
36282
|
+
function findMalformedReference25(query, searchParamKeys) {
|
|
36161
36283
|
const referenceCodes = new Set(
|
|
36162
36284
|
getRegisteredSearchParameters(PAYMENTNOTICE_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
36163
36285
|
);
|
|
@@ -36183,7 +36305,7 @@ function findMalformedReference24(query, searchParamKeys) {
|
|
|
36183
36305
|
return void 0;
|
|
36184
36306
|
}
|
|
36185
36307
|
async function listPaymentNoticesRoute(req, res) {
|
|
36186
|
-
const searchParamKeys =
|
|
36308
|
+
const searchParamKeys = extractSearchParamKeys25(
|
|
36187
36309
|
req.query
|
|
36188
36310
|
);
|
|
36189
36311
|
if (searchParamKeys.length === 0) {
|
|
@@ -36199,17 +36321,17 @@ async function listPaymentNoticesRoute(req, res) {
|
|
|
36199
36321
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
36200
36322
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
36201
36323
|
if (unknownCodes.length > 0) {
|
|
36202
|
-
return
|
|
36324
|
+
return sendInvalidSearch40025(
|
|
36203
36325
|
res,
|
|
36204
|
-
|
|
36326
|
+
buildUnknownParamDiagnostics25([...new Set(unknownCodes)])
|
|
36205
36327
|
);
|
|
36206
36328
|
}
|
|
36207
|
-
const malformedRef =
|
|
36329
|
+
const malformedRef = findMalformedReference25(
|
|
36208
36330
|
req.query,
|
|
36209
36331
|
searchParamKeys
|
|
36210
36332
|
);
|
|
36211
36333
|
if (malformedRef !== void 0) {
|
|
36212
|
-
return
|
|
36334
|
+
return sendInvalidSearch40025(
|
|
36213
36335
|
res,
|
|
36214
36336
|
`?${malformedRef.rawKey} must be a typed reference like "Practitioner/<id>"; got "${malformedRef.value}".`
|
|
36215
36337
|
);
|
|
@@ -36907,30 +37029,30 @@ async function listPractitionersOperation(params) {
|
|
|
36907
37029
|
|
|
36908
37030
|
// src/data/rest-api/routes/data/practitioner/practitioner-list-route.ts
|
|
36909
37031
|
var PRACTITIONER_RESOURCE_TYPE = "Practitioner";
|
|
36910
|
-
function
|
|
37032
|
+
function stripModifier26(key) {
|
|
36911
37033
|
const idx = key.indexOf(":");
|
|
36912
37034
|
return idx === -1 ? key : key.slice(0, idx);
|
|
36913
37035
|
}
|
|
36914
|
-
function
|
|
37036
|
+
function isResultParameter26(key) {
|
|
36915
37037
|
return key.startsWith("_");
|
|
36916
37038
|
}
|
|
36917
|
-
function
|
|
37039
|
+
function sendInvalidSearch40026(res, diagnostics) {
|
|
36918
37040
|
return res.status(400).json({
|
|
36919
37041
|
resourceType: "OperationOutcome",
|
|
36920
37042
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
36921
37043
|
});
|
|
36922
37044
|
}
|
|
36923
|
-
function
|
|
37045
|
+
function extractSearchParamKeys26(query) {
|
|
36924
37046
|
const out = [];
|
|
36925
37047
|
for (const rawKey of Object.keys(query)) {
|
|
36926
|
-
if (
|
|
37048
|
+
if (isResultParameter26(rawKey)) {
|
|
36927
37049
|
continue;
|
|
36928
37050
|
}
|
|
36929
|
-
out.push({ rawKey, code:
|
|
37051
|
+
out.push({ rawKey, code: stripModifier26(rawKey) });
|
|
36930
37052
|
}
|
|
36931
37053
|
return out;
|
|
36932
37054
|
}
|
|
36933
|
-
function
|
|
37055
|
+
function buildUnknownParamDiagnostics26(unknownCodes) {
|
|
36934
37056
|
const validCodes = getRegisteredSearchParameters(PRACTITIONER_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
36935
37057
|
const codes = unknownCodes.join(", ");
|
|
36936
37058
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -36939,7 +37061,7 @@ function buildUnknownParamDiagnostics25(unknownCodes) {
|
|
|
36939
37061
|
`Valid codes: ${validCodes}.`
|
|
36940
37062
|
].join(" ");
|
|
36941
37063
|
}
|
|
36942
|
-
function
|
|
37064
|
+
function findMalformedReference26(query, searchParamKeys) {
|
|
36943
37065
|
const referenceCodes = new Set(
|
|
36944
37066
|
getRegisteredSearchParameters(PRACTITIONER_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
36945
37067
|
);
|
|
@@ -36965,7 +37087,7 @@ function findMalformedReference25(query, searchParamKeys) {
|
|
|
36965
37087
|
return void 0;
|
|
36966
37088
|
}
|
|
36967
37089
|
async function listPractitionersRoute(req, res) {
|
|
36968
|
-
const searchParamKeys =
|
|
37090
|
+
const searchParamKeys = extractSearchParamKeys26(
|
|
36969
37091
|
req.query
|
|
36970
37092
|
);
|
|
36971
37093
|
if (searchParamKeys.length === 0) {
|
|
@@ -36981,17 +37103,17 @@ async function listPractitionersRoute(req, res) {
|
|
|
36981
37103
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
36982
37104
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
36983
37105
|
if (unknownCodes.length > 0) {
|
|
36984
|
-
return
|
|
37106
|
+
return sendInvalidSearch40026(
|
|
36985
37107
|
res,
|
|
36986
|
-
|
|
37108
|
+
buildUnknownParamDiagnostics26([...new Set(unknownCodes)])
|
|
36987
37109
|
);
|
|
36988
37110
|
}
|
|
36989
|
-
const malformedRef =
|
|
37111
|
+
const malformedRef = findMalformedReference26(
|
|
36990
37112
|
req.query,
|
|
36991
37113
|
searchParamKeys
|
|
36992
37114
|
);
|
|
36993
37115
|
if (malformedRef !== void 0) {
|
|
36994
|
-
return
|
|
37116
|
+
return sendInvalidSearch40026(
|
|
36995
37117
|
res,
|
|
36996
37118
|
`?${malformedRef.rawKey} must be a typed reference like "Practitioner/<id>"; got "${malformedRef.value}".`
|
|
36997
37119
|
);
|
|
@@ -37147,30 +37269,30 @@ async function getPractitionerRoleByIdRoute(req, res) {
|
|
|
37147
37269
|
|
|
37148
37270
|
// src/data/rest-api/routes/data/practitionerrole/practitionerrole-list-route.ts
|
|
37149
37271
|
var PRACTITIONERROLE_RESOURCE_TYPE = "PractitionerRole";
|
|
37150
|
-
function
|
|
37272
|
+
function stripModifier27(key) {
|
|
37151
37273
|
const idx = key.indexOf(":");
|
|
37152
37274
|
return idx === -1 ? key : key.slice(0, idx);
|
|
37153
37275
|
}
|
|
37154
|
-
function
|
|
37276
|
+
function isResultParameter27(key) {
|
|
37155
37277
|
return key.startsWith("_");
|
|
37156
37278
|
}
|
|
37157
|
-
function
|
|
37279
|
+
function sendInvalidSearch40027(res, diagnostics) {
|
|
37158
37280
|
return res.status(400).json({
|
|
37159
37281
|
resourceType: "OperationOutcome",
|
|
37160
37282
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
37161
37283
|
});
|
|
37162
37284
|
}
|
|
37163
|
-
function
|
|
37285
|
+
function extractSearchParamKeys27(query) {
|
|
37164
37286
|
const out = [];
|
|
37165
37287
|
for (const rawKey of Object.keys(query)) {
|
|
37166
|
-
if (
|
|
37288
|
+
if (isResultParameter27(rawKey)) {
|
|
37167
37289
|
continue;
|
|
37168
37290
|
}
|
|
37169
|
-
out.push({ rawKey, code:
|
|
37291
|
+
out.push({ rawKey, code: stripModifier27(rawKey) });
|
|
37170
37292
|
}
|
|
37171
37293
|
return out;
|
|
37172
37294
|
}
|
|
37173
|
-
function
|
|
37295
|
+
function buildUnknownParamDiagnostics27(unknownCodes) {
|
|
37174
37296
|
const validCodes = getRegisteredSearchParameters(
|
|
37175
37297
|
PRACTITIONERROLE_RESOURCE_TYPE
|
|
37176
37298
|
).map((p) => p.code).sort().join(", ");
|
|
@@ -37181,7 +37303,7 @@ function buildUnknownParamDiagnostics26(unknownCodes) {
|
|
|
37181
37303
|
`Valid codes: ${validCodes}.`
|
|
37182
37304
|
].join(" ");
|
|
37183
37305
|
}
|
|
37184
|
-
function
|
|
37306
|
+
function findMalformedReference27(query, searchParamKeys) {
|
|
37185
37307
|
const referenceCodes = new Set(
|
|
37186
37308
|
getRegisteredSearchParameters(PRACTITIONERROLE_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
37187
37309
|
);
|
|
@@ -37204,7 +37326,7 @@ function findMalformedReference26(query, searchParamKeys) {
|
|
|
37204
37326
|
return void 0;
|
|
37205
37327
|
}
|
|
37206
37328
|
async function listPractitionerRolesRoute(req, res) {
|
|
37207
|
-
const searchParamKeys =
|
|
37329
|
+
const searchParamKeys = extractSearchParamKeys27(
|
|
37208
37330
|
req.query
|
|
37209
37331
|
);
|
|
37210
37332
|
if (searchParamKeys.length === 0) {
|
|
@@ -37222,17 +37344,17 @@ async function listPractitionerRolesRoute(req, res) {
|
|
|
37222
37344
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
37223
37345
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
37224
37346
|
if (unknownCodes.length > 0) {
|
|
37225
|
-
return
|
|
37347
|
+
return sendInvalidSearch40027(
|
|
37226
37348
|
res,
|
|
37227
|
-
|
|
37349
|
+
buildUnknownParamDiagnostics27([...new Set(unknownCodes)])
|
|
37228
37350
|
);
|
|
37229
37351
|
}
|
|
37230
|
-
const malformedRef =
|
|
37352
|
+
const malformedRef = findMalformedReference27(
|
|
37231
37353
|
req.query,
|
|
37232
37354
|
searchParamKeys
|
|
37233
37355
|
);
|
|
37234
37356
|
if (malformedRef !== void 0) {
|
|
37235
|
-
return
|
|
37357
|
+
return sendInvalidSearch40027(
|
|
37236
37358
|
res,
|
|
37237
37359
|
`?${malformedRef.rawKey} must be a typed reference like "Practitioner/<id>"; got "${malformedRef.value}".`
|
|
37238
37360
|
);
|
|
@@ -37416,30 +37538,30 @@ async function listProceduresOperation(params) {
|
|
|
37416
37538
|
|
|
37417
37539
|
// src/data/rest-api/routes/data/procedure/procedure-list-route.ts
|
|
37418
37540
|
var PROCEDURE_RESOURCE_TYPE = "Procedure";
|
|
37419
|
-
function
|
|
37541
|
+
function stripModifier28(key) {
|
|
37420
37542
|
const idx = key.indexOf(":");
|
|
37421
37543
|
return idx === -1 ? key : key.slice(0, idx);
|
|
37422
37544
|
}
|
|
37423
|
-
function
|
|
37545
|
+
function isResultParameter28(key) {
|
|
37424
37546
|
return key.startsWith("_");
|
|
37425
37547
|
}
|
|
37426
|
-
function
|
|
37548
|
+
function sendInvalidSearch40028(res, diagnostics) {
|
|
37427
37549
|
return res.status(400).json({
|
|
37428
37550
|
resourceType: "OperationOutcome",
|
|
37429
37551
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
37430
37552
|
});
|
|
37431
37553
|
}
|
|
37432
|
-
function
|
|
37554
|
+
function extractSearchParamKeys28(query) {
|
|
37433
37555
|
const out = [];
|
|
37434
37556
|
for (const rawKey of Object.keys(query)) {
|
|
37435
|
-
if (
|
|
37557
|
+
if (isResultParameter28(rawKey)) {
|
|
37436
37558
|
continue;
|
|
37437
37559
|
}
|
|
37438
|
-
out.push({ rawKey, code:
|
|
37560
|
+
out.push({ rawKey, code: stripModifier28(rawKey) });
|
|
37439
37561
|
}
|
|
37440
37562
|
return out;
|
|
37441
37563
|
}
|
|
37442
|
-
function
|
|
37564
|
+
function buildUnknownParamDiagnostics28(unknownCodes) {
|
|
37443
37565
|
const validCodes = getRegisteredSearchParameters(PROCEDURE_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
37444
37566
|
const codes = unknownCodes.join(", ");
|
|
37445
37567
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -37448,7 +37570,7 @@ function buildUnknownParamDiagnostics27(unknownCodes) {
|
|
|
37448
37570
|
`Valid codes: ${validCodes}.`
|
|
37449
37571
|
].join(" ");
|
|
37450
37572
|
}
|
|
37451
|
-
function
|
|
37573
|
+
function findMalformedReference28(query, searchParamKeys) {
|
|
37452
37574
|
const referenceCodes = new Set(
|
|
37453
37575
|
getRegisteredSearchParameters(PROCEDURE_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
37454
37576
|
);
|
|
@@ -37471,7 +37593,7 @@ function findMalformedReference27(query, searchParamKeys) {
|
|
|
37471
37593
|
return void 0;
|
|
37472
37594
|
}
|
|
37473
37595
|
async function listProceduresRoute(req, res) {
|
|
37474
|
-
const searchParamKeys =
|
|
37596
|
+
const searchParamKeys = extractSearchParamKeys28(
|
|
37475
37597
|
req.query
|
|
37476
37598
|
);
|
|
37477
37599
|
if (searchParamKeys.length === 0) {
|
|
@@ -37487,17 +37609,17 @@ async function listProceduresRoute(req, res) {
|
|
|
37487
37609
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
37488
37610
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
37489
37611
|
if (unknownCodes.length > 0) {
|
|
37490
|
-
return
|
|
37612
|
+
return sendInvalidSearch40028(
|
|
37491
37613
|
res,
|
|
37492
|
-
|
|
37614
|
+
buildUnknownParamDiagnostics28([...new Set(unknownCodes)])
|
|
37493
37615
|
);
|
|
37494
37616
|
}
|
|
37495
|
-
const malformedRef =
|
|
37617
|
+
const malformedRef = findMalformedReference28(
|
|
37496
37618
|
req.query,
|
|
37497
37619
|
searchParamKeys
|
|
37498
37620
|
);
|
|
37499
37621
|
if (malformedRef !== void 0) {
|
|
37500
|
-
return
|
|
37622
|
+
return sendInvalidSearch40028(
|
|
37501
37623
|
res,
|
|
37502
37624
|
`?${malformedRef.rawKey} must be a typed reference like "Practitioner/<id>"; got "${malformedRef.value}".`
|
|
37503
37625
|
);
|
|
@@ -38188,30 +38310,30 @@ async function listRelatedPersonsOperation(params) {
|
|
|
38188
38310
|
|
|
38189
38311
|
// src/data/rest-api/routes/data/relatedperson/relatedperson-list-route.ts
|
|
38190
38312
|
var RELATEDPERSON_RESOURCE_TYPE = "RelatedPerson";
|
|
38191
|
-
function
|
|
38313
|
+
function stripModifier29(key) {
|
|
38192
38314
|
const idx = key.indexOf(":");
|
|
38193
38315
|
return idx === -1 ? key : key.slice(0, idx);
|
|
38194
38316
|
}
|
|
38195
|
-
function
|
|
38317
|
+
function isResultParameter29(key) {
|
|
38196
38318
|
return key.startsWith("_");
|
|
38197
38319
|
}
|
|
38198
|
-
function
|
|
38320
|
+
function sendInvalidSearch40029(res, diagnostics) {
|
|
38199
38321
|
return res.status(400).json({
|
|
38200
38322
|
resourceType: "OperationOutcome",
|
|
38201
38323
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
38202
38324
|
});
|
|
38203
38325
|
}
|
|
38204
|
-
function
|
|
38326
|
+
function extractSearchParamKeys29(query) {
|
|
38205
38327
|
const out = [];
|
|
38206
38328
|
for (const rawKey of Object.keys(query)) {
|
|
38207
|
-
if (
|
|
38329
|
+
if (isResultParameter29(rawKey)) {
|
|
38208
38330
|
continue;
|
|
38209
38331
|
}
|
|
38210
|
-
out.push({ rawKey, code:
|
|
38332
|
+
out.push({ rawKey, code: stripModifier29(rawKey) });
|
|
38211
38333
|
}
|
|
38212
38334
|
return out;
|
|
38213
38335
|
}
|
|
38214
|
-
function
|
|
38336
|
+
function buildUnknownParamDiagnostics29(unknownCodes) {
|
|
38215
38337
|
const validCodes = getRegisteredSearchParameters(RELATEDPERSON_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
38216
38338
|
const codes = unknownCodes.join(", ");
|
|
38217
38339
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -38220,7 +38342,7 @@ function buildUnknownParamDiagnostics28(unknownCodes) {
|
|
|
38220
38342
|
`Valid codes: ${validCodes}.`
|
|
38221
38343
|
].join(" ");
|
|
38222
38344
|
}
|
|
38223
|
-
function
|
|
38345
|
+
function findMalformedReference29(query, searchParamKeys) {
|
|
38224
38346
|
const referenceCodes = new Set(
|
|
38225
38347
|
getRegisteredSearchParameters(RELATEDPERSON_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
38226
38348
|
);
|
|
@@ -38243,7 +38365,7 @@ function findMalformedReference28(query, searchParamKeys) {
|
|
|
38243
38365
|
return void 0;
|
|
38244
38366
|
}
|
|
38245
38367
|
async function listRelatedPersonsRoute(req, res) {
|
|
38246
|
-
const searchParamKeys =
|
|
38368
|
+
const searchParamKeys = extractSearchParamKeys29(
|
|
38247
38369
|
req.query
|
|
38248
38370
|
);
|
|
38249
38371
|
if (searchParamKeys.length === 0) {
|
|
@@ -38259,17 +38381,17 @@ async function listRelatedPersonsRoute(req, res) {
|
|
|
38259
38381
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
38260
38382
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
38261
38383
|
if (unknownCodes.length > 0) {
|
|
38262
|
-
return
|
|
38384
|
+
return sendInvalidSearch40029(
|
|
38263
38385
|
res,
|
|
38264
|
-
|
|
38386
|
+
buildUnknownParamDiagnostics29([...new Set(unknownCodes)])
|
|
38265
38387
|
);
|
|
38266
38388
|
}
|
|
38267
|
-
const malformedRef =
|
|
38389
|
+
const malformedRef = findMalformedReference29(
|
|
38268
38390
|
req.query,
|
|
38269
38391
|
searchParamKeys
|
|
38270
38392
|
);
|
|
38271
38393
|
if (malformedRef !== void 0) {
|
|
38272
|
-
return
|
|
38394
|
+
return sendInvalidSearch40029(
|
|
38273
38395
|
res,
|
|
38274
38396
|
`?${malformedRef.rawKey} must be a typed reference like "Practitioner/<id>"; got "${malformedRef.value}".`
|
|
38275
38397
|
);
|
|
@@ -39303,15 +39425,120 @@ async function listRiskAssessmentsOperation(params) {
|
|
|
39303
39425
|
}
|
|
39304
39426
|
|
|
39305
39427
|
// src/data/rest-api/routes/data/riskassessment/riskassessment-list-route.ts
|
|
39306
|
-
|
|
39307
|
-
|
|
39308
|
-
|
|
39309
|
-
|
|
39310
|
-
|
|
39311
|
-
|
|
39312
|
-
|
|
39428
|
+
var RISKASSESSMENT_RESOURCE_TYPE = "RiskAssessment";
|
|
39429
|
+
function stripModifier30(key) {
|
|
39430
|
+
const idx = key.indexOf(":");
|
|
39431
|
+
return idx === -1 ? key : key.slice(0, idx);
|
|
39432
|
+
}
|
|
39433
|
+
function isResultParameter30(key) {
|
|
39434
|
+
return key.startsWith("_");
|
|
39435
|
+
}
|
|
39436
|
+
function sendInvalidSearch40030(res, diagnostics) {
|
|
39437
|
+
return res.status(400).json({
|
|
39438
|
+
resourceType: "OperationOutcome",
|
|
39439
|
+
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
39313
39440
|
});
|
|
39314
39441
|
}
|
|
39442
|
+
function extractSearchParamKeys30(query) {
|
|
39443
|
+
const out = [];
|
|
39444
|
+
for (const rawKey of Object.keys(query)) {
|
|
39445
|
+
if (isResultParameter30(rawKey)) {
|
|
39446
|
+
continue;
|
|
39447
|
+
}
|
|
39448
|
+
out.push({ rawKey, code: stripModifier30(rawKey) });
|
|
39449
|
+
}
|
|
39450
|
+
return out;
|
|
39451
|
+
}
|
|
39452
|
+
function buildUnknownParamDiagnostics30(unknownCodes) {
|
|
39453
|
+
const validCodes = getRegisteredSearchParameters(RISKASSESSMENT_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
39454
|
+
const codes = unknownCodes.join(", ");
|
|
39455
|
+
const isPlural = unknownCodes.length !== 1;
|
|
39456
|
+
return [
|
|
39457
|
+
`Unknown search ${isPlural ? "parameters" : "parameter"} for RiskAssessment: ${codes}.`,
|
|
39458
|
+
`Valid codes: ${validCodes}.`
|
|
39459
|
+
].join(" ");
|
|
39460
|
+
}
|
|
39461
|
+
function findMalformedReference30(query, searchParamKeys) {
|
|
39462
|
+
const referenceCodes = new Set(
|
|
39463
|
+
getRegisteredSearchParameters(RISKASSESSMENT_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
39464
|
+
);
|
|
39465
|
+
if (referenceCodes.size === 0) {
|
|
39466
|
+
return void 0;
|
|
39467
|
+
}
|
|
39468
|
+
for (const { rawKey, code } of searchParamKeys) {
|
|
39469
|
+
if (!referenceCodes.has(code)) {
|
|
39470
|
+
continue;
|
|
39471
|
+
}
|
|
39472
|
+
const raw = query[rawKey];
|
|
39473
|
+
const values = typeof raw === "string" ? raw.split(",") : Array.isArray(raw) ? raw.flatMap((v) => v.split(",")) : [];
|
|
39474
|
+
for (const v of values) {
|
|
39475
|
+
const trimmed = v.trim();
|
|
39476
|
+
if (trimmed.length === 0) {
|
|
39477
|
+
continue;
|
|
39478
|
+
}
|
|
39479
|
+
if (parseTypedReference(trimmed) === void 0) {
|
|
39480
|
+
return { rawKey, value: trimmed };
|
|
39481
|
+
}
|
|
39482
|
+
}
|
|
39483
|
+
}
|
|
39484
|
+
return void 0;
|
|
39485
|
+
}
|
|
39486
|
+
async function listRiskAssessmentsRoute(req, res) {
|
|
39487
|
+
const searchParamKeys = extractSearchParamKeys30(
|
|
39488
|
+
req.query
|
|
39489
|
+
);
|
|
39490
|
+
if (searchParamKeys.length === 0) {
|
|
39491
|
+
return handleListRoute({
|
|
39492
|
+
req,
|
|
39493
|
+
res,
|
|
39494
|
+
basePath: BASE_PATH.RISKASSESSMENT,
|
|
39495
|
+
listOperation: listRiskAssessmentsOperation,
|
|
39496
|
+
errorLogContext: "GET /RiskAssessment list error:"
|
|
39497
|
+
});
|
|
39498
|
+
}
|
|
39499
|
+
const registered = getRegisteredSearchParameters(
|
|
39500
|
+
RISKASSESSMENT_RESOURCE_TYPE
|
|
39501
|
+
);
|
|
39502
|
+
const validCodes = new Set(registered.map((p) => p.code));
|
|
39503
|
+
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
39504
|
+
if (unknownCodes.length > 0) {
|
|
39505
|
+
return sendInvalidSearch40030(
|
|
39506
|
+
res,
|
|
39507
|
+
buildUnknownParamDiagnostics30([...new Set(unknownCodes)])
|
|
39508
|
+
);
|
|
39509
|
+
}
|
|
39510
|
+
const malformedRef = findMalformedReference30(
|
|
39511
|
+
req.query,
|
|
39512
|
+
searchParamKeys
|
|
39513
|
+
);
|
|
39514
|
+
if (malformedRef !== void 0) {
|
|
39515
|
+
return sendInvalidSearch40030(
|
|
39516
|
+
res,
|
|
39517
|
+
`?${malformedRef.rawKey} must be a typed reference like "Patient/<id>"; got "${malformedRef.value}".`
|
|
39518
|
+
);
|
|
39519
|
+
}
|
|
39520
|
+
const ctx = req.openhiContext;
|
|
39521
|
+
try {
|
|
39522
|
+
const result = await genericSearchOperation({
|
|
39523
|
+
resourceType: RISKASSESSMENT_RESOURCE_TYPE,
|
|
39524
|
+
tenantId: ctx.tenantId,
|
|
39525
|
+
workspaceId: ctx.workspaceId,
|
|
39526
|
+
query: req.query,
|
|
39527
|
+
resolver: defaultSearchParameterResolver
|
|
39528
|
+
});
|
|
39529
|
+
const bundle = buildSearchsetBundle(
|
|
39530
|
+
BASE_PATH.RISKASSESSMENT,
|
|
39531
|
+
result.entries
|
|
39532
|
+
);
|
|
39533
|
+
return res.json(bundle);
|
|
39534
|
+
} catch (err) {
|
|
39535
|
+
return sendOperationOutcome500(
|
|
39536
|
+
res,
|
|
39537
|
+
err,
|
|
39538
|
+
"GET /RiskAssessment search error:"
|
|
39539
|
+
);
|
|
39540
|
+
}
|
|
39541
|
+
}
|
|
39315
39542
|
|
|
39316
39543
|
// src/data/operations/data/riskassessment/riskassessment-update-operation.ts
|
|
39317
39544
|
async function updateRiskAssessmentOperation(params) {
|
|
@@ -39653,30 +39880,30 @@ async function listSchedulesOperation(params) {
|
|
|
39653
39880
|
|
|
39654
39881
|
// src/data/rest-api/routes/data/schedule/schedule-list-route.ts
|
|
39655
39882
|
var SCHEDULE_RESOURCE_TYPE = "Schedule";
|
|
39656
|
-
function
|
|
39883
|
+
function stripModifier31(key) {
|
|
39657
39884
|
const idx = key.indexOf(":");
|
|
39658
39885
|
return idx === -1 ? key : key.slice(0, idx);
|
|
39659
39886
|
}
|
|
39660
|
-
function
|
|
39887
|
+
function isResultParameter31(key) {
|
|
39661
39888
|
return key.startsWith("_");
|
|
39662
39889
|
}
|
|
39663
|
-
function
|
|
39890
|
+
function sendInvalidSearch40031(res, diagnostics) {
|
|
39664
39891
|
return res.status(400).json({
|
|
39665
39892
|
resourceType: "OperationOutcome",
|
|
39666
39893
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
39667
39894
|
});
|
|
39668
39895
|
}
|
|
39669
|
-
function
|
|
39896
|
+
function extractSearchParamKeys31(query) {
|
|
39670
39897
|
const out = [];
|
|
39671
39898
|
for (const rawKey of Object.keys(query)) {
|
|
39672
|
-
if (
|
|
39899
|
+
if (isResultParameter31(rawKey)) {
|
|
39673
39900
|
continue;
|
|
39674
39901
|
}
|
|
39675
|
-
out.push({ rawKey, code:
|
|
39902
|
+
out.push({ rawKey, code: stripModifier31(rawKey) });
|
|
39676
39903
|
}
|
|
39677
39904
|
return out;
|
|
39678
39905
|
}
|
|
39679
|
-
function
|
|
39906
|
+
function buildUnknownParamDiagnostics31(unknownCodes) {
|
|
39680
39907
|
const validCodes = getRegisteredSearchParameters(SCHEDULE_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
39681
39908
|
const codes = unknownCodes.join(", ");
|
|
39682
39909
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -39685,7 +39912,7 @@ function buildUnknownParamDiagnostics29(unknownCodes) {
|
|
|
39685
39912
|
`Valid codes: ${validCodes}.`
|
|
39686
39913
|
].join(" ");
|
|
39687
39914
|
}
|
|
39688
|
-
function
|
|
39915
|
+
function findMalformedReference31(query, searchParamKeys) {
|
|
39689
39916
|
const referenceCodes = new Set(
|
|
39690
39917
|
getRegisteredSearchParameters(SCHEDULE_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
39691
39918
|
);
|
|
@@ -39708,7 +39935,7 @@ function findMalformedReference29(query, searchParamKeys) {
|
|
|
39708
39935
|
return void 0;
|
|
39709
39936
|
}
|
|
39710
39937
|
async function listSchedulesRoute(req, res) {
|
|
39711
|
-
const searchParamKeys =
|
|
39938
|
+
const searchParamKeys = extractSearchParamKeys31(
|
|
39712
39939
|
req.query
|
|
39713
39940
|
);
|
|
39714
39941
|
if (searchParamKeys.length === 0) {
|
|
@@ -39724,17 +39951,17 @@ async function listSchedulesRoute(req, res) {
|
|
|
39724
39951
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
39725
39952
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
39726
39953
|
if (unknownCodes.length > 0) {
|
|
39727
|
-
return
|
|
39954
|
+
return sendInvalidSearch40031(
|
|
39728
39955
|
res,
|
|
39729
|
-
|
|
39956
|
+
buildUnknownParamDiagnostics31([...new Set(unknownCodes)])
|
|
39730
39957
|
);
|
|
39731
39958
|
}
|
|
39732
|
-
const malformedRef =
|
|
39959
|
+
const malformedRef = findMalformedReference31(
|
|
39733
39960
|
req.query,
|
|
39734
39961
|
searchParamKeys
|
|
39735
39962
|
);
|
|
39736
39963
|
if (malformedRef !== void 0) {
|
|
39737
|
-
return
|
|
39964
|
+
return sendInvalidSearch40031(
|
|
39738
39965
|
res,
|
|
39739
39966
|
`?${malformedRef.rawKey} must be a typed reference like "Practitioner/<id>"; got "${malformedRef.value}".`
|
|
39740
39967
|
);
|
|
@@ -40075,15 +40302,120 @@ async function listServiceRequestsOperation(params) {
|
|
|
40075
40302
|
}
|
|
40076
40303
|
|
|
40077
40304
|
// src/data/rest-api/routes/data/servicerequest/servicerequest-list-route.ts
|
|
40078
|
-
|
|
40079
|
-
|
|
40080
|
-
|
|
40081
|
-
|
|
40082
|
-
|
|
40083
|
-
|
|
40084
|
-
|
|
40305
|
+
var SERVICEREQUEST_RESOURCE_TYPE = "ServiceRequest";
|
|
40306
|
+
function stripModifier32(key) {
|
|
40307
|
+
const idx = key.indexOf(":");
|
|
40308
|
+
return idx === -1 ? key : key.slice(0, idx);
|
|
40309
|
+
}
|
|
40310
|
+
function isResultParameter32(key) {
|
|
40311
|
+
return key.startsWith("_");
|
|
40312
|
+
}
|
|
40313
|
+
function sendInvalidSearch40032(res, diagnostics) {
|
|
40314
|
+
return res.status(400).json({
|
|
40315
|
+
resourceType: "OperationOutcome",
|
|
40316
|
+
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
40085
40317
|
});
|
|
40086
40318
|
}
|
|
40319
|
+
function extractSearchParamKeys32(query) {
|
|
40320
|
+
const out = [];
|
|
40321
|
+
for (const rawKey of Object.keys(query)) {
|
|
40322
|
+
if (isResultParameter32(rawKey)) {
|
|
40323
|
+
continue;
|
|
40324
|
+
}
|
|
40325
|
+
out.push({ rawKey, code: stripModifier32(rawKey) });
|
|
40326
|
+
}
|
|
40327
|
+
return out;
|
|
40328
|
+
}
|
|
40329
|
+
function buildUnknownParamDiagnostics32(unknownCodes) {
|
|
40330
|
+
const validCodes = getRegisteredSearchParameters(SERVICEREQUEST_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
40331
|
+
const codes = unknownCodes.join(", ");
|
|
40332
|
+
const isPlural = unknownCodes.length !== 1;
|
|
40333
|
+
return [
|
|
40334
|
+
`Unknown search ${isPlural ? "parameters" : "parameter"} for ServiceRequest: ${codes}.`,
|
|
40335
|
+
`Valid codes: ${validCodes}.`
|
|
40336
|
+
].join(" ");
|
|
40337
|
+
}
|
|
40338
|
+
function findMalformedReference32(query, searchParamKeys) {
|
|
40339
|
+
const referenceCodes = new Set(
|
|
40340
|
+
getRegisteredSearchParameters(SERVICEREQUEST_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
40341
|
+
);
|
|
40342
|
+
if (referenceCodes.size === 0) {
|
|
40343
|
+
return void 0;
|
|
40344
|
+
}
|
|
40345
|
+
for (const { rawKey, code } of searchParamKeys) {
|
|
40346
|
+
if (!referenceCodes.has(code)) {
|
|
40347
|
+
continue;
|
|
40348
|
+
}
|
|
40349
|
+
const raw = query[rawKey];
|
|
40350
|
+
const values = typeof raw === "string" ? raw.split(",") : Array.isArray(raw) ? raw.flatMap((v) => v.split(",")) : [];
|
|
40351
|
+
for (const v of values) {
|
|
40352
|
+
const trimmed = v.trim();
|
|
40353
|
+
if (trimmed.length === 0) {
|
|
40354
|
+
continue;
|
|
40355
|
+
}
|
|
40356
|
+
if (parseTypedReference(trimmed) === void 0) {
|
|
40357
|
+
return { rawKey, value: trimmed };
|
|
40358
|
+
}
|
|
40359
|
+
}
|
|
40360
|
+
}
|
|
40361
|
+
return void 0;
|
|
40362
|
+
}
|
|
40363
|
+
async function listServiceRequestsRoute(req, res) {
|
|
40364
|
+
const searchParamKeys = extractSearchParamKeys32(
|
|
40365
|
+
req.query
|
|
40366
|
+
);
|
|
40367
|
+
if (searchParamKeys.length === 0) {
|
|
40368
|
+
return handleListRoute({
|
|
40369
|
+
req,
|
|
40370
|
+
res,
|
|
40371
|
+
basePath: BASE_PATH.SERVICEREQUEST,
|
|
40372
|
+
listOperation: listServiceRequestsOperation,
|
|
40373
|
+
errorLogContext: "GET /ServiceRequest list error:"
|
|
40374
|
+
});
|
|
40375
|
+
}
|
|
40376
|
+
const registered = getRegisteredSearchParameters(
|
|
40377
|
+
SERVICEREQUEST_RESOURCE_TYPE
|
|
40378
|
+
);
|
|
40379
|
+
const validCodes = new Set(registered.map((p) => p.code));
|
|
40380
|
+
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
40381
|
+
if (unknownCodes.length > 0) {
|
|
40382
|
+
return sendInvalidSearch40032(
|
|
40383
|
+
res,
|
|
40384
|
+
buildUnknownParamDiagnostics32([...new Set(unknownCodes)])
|
|
40385
|
+
);
|
|
40386
|
+
}
|
|
40387
|
+
const malformedRef = findMalformedReference32(
|
|
40388
|
+
req.query,
|
|
40389
|
+
searchParamKeys
|
|
40390
|
+
);
|
|
40391
|
+
if (malformedRef !== void 0) {
|
|
40392
|
+
return sendInvalidSearch40032(
|
|
40393
|
+
res,
|
|
40394
|
+
`?${malformedRef.rawKey} must be a typed reference like "Encounter/<id>"; got "${malformedRef.value}".`
|
|
40395
|
+
);
|
|
40396
|
+
}
|
|
40397
|
+
const ctx = req.openhiContext;
|
|
40398
|
+
try {
|
|
40399
|
+
const result = await genericSearchOperation({
|
|
40400
|
+
resourceType: SERVICEREQUEST_RESOURCE_TYPE,
|
|
40401
|
+
tenantId: ctx.tenantId,
|
|
40402
|
+
workspaceId: ctx.workspaceId,
|
|
40403
|
+
query: req.query,
|
|
40404
|
+
resolver: defaultSearchParameterResolver
|
|
40405
|
+
});
|
|
40406
|
+
const bundle = buildSearchsetBundle(
|
|
40407
|
+
BASE_PATH.SERVICEREQUEST,
|
|
40408
|
+
result.entries
|
|
40409
|
+
);
|
|
40410
|
+
return res.json(bundle);
|
|
40411
|
+
} catch (err) {
|
|
40412
|
+
return sendOperationOutcome500(
|
|
40413
|
+
res,
|
|
40414
|
+
err,
|
|
40415
|
+
"GET /ServiceRequest search error:"
|
|
40416
|
+
);
|
|
40417
|
+
}
|
|
40418
|
+
}
|
|
40087
40419
|
|
|
40088
40420
|
// src/data/operations/data/servicerequest/servicerequest-update-operation.ts
|
|
40089
40421
|
async function updateServiceRequestOperation(params) {
|
|
@@ -40241,30 +40573,30 @@ async function listSlotsOperation(params) {
|
|
|
40241
40573
|
|
|
40242
40574
|
// src/data/rest-api/routes/data/slot/slot-list-route.ts
|
|
40243
40575
|
var SLOT_RESOURCE_TYPE = "Slot";
|
|
40244
|
-
function
|
|
40576
|
+
function stripModifier33(key) {
|
|
40245
40577
|
const idx = key.indexOf(":");
|
|
40246
40578
|
return idx === -1 ? key : key.slice(0, idx);
|
|
40247
40579
|
}
|
|
40248
|
-
function
|
|
40580
|
+
function isResultParameter33(key) {
|
|
40249
40581
|
return key.startsWith("_");
|
|
40250
40582
|
}
|
|
40251
|
-
function
|
|
40583
|
+
function sendInvalidSearch40033(res, diagnostics) {
|
|
40252
40584
|
return res.status(400).json({
|
|
40253
40585
|
resourceType: "OperationOutcome",
|
|
40254
40586
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
40255
40587
|
});
|
|
40256
40588
|
}
|
|
40257
|
-
function
|
|
40589
|
+
function extractSearchParamKeys33(query) {
|
|
40258
40590
|
const out = [];
|
|
40259
40591
|
for (const rawKey of Object.keys(query)) {
|
|
40260
|
-
if (
|
|
40592
|
+
if (isResultParameter33(rawKey)) {
|
|
40261
40593
|
continue;
|
|
40262
40594
|
}
|
|
40263
|
-
out.push({ rawKey, code:
|
|
40595
|
+
out.push({ rawKey, code: stripModifier33(rawKey) });
|
|
40264
40596
|
}
|
|
40265
40597
|
return out;
|
|
40266
40598
|
}
|
|
40267
|
-
function
|
|
40599
|
+
function buildUnknownParamDiagnostics33(unknownCodes) {
|
|
40268
40600
|
const validCodes = getRegisteredSearchParameters(SLOT_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
40269
40601
|
const codes = unknownCodes.join(", ");
|
|
40270
40602
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -40273,7 +40605,7 @@ function buildUnknownParamDiagnostics30(unknownCodes) {
|
|
|
40273
40605
|
`Valid codes: ${validCodes}.`
|
|
40274
40606
|
].join(" ");
|
|
40275
40607
|
}
|
|
40276
|
-
function
|
|
40608
|
+
function findMalformedReference33(query, searchParamKeys) {
|
|
40277
40609
|
const referenceCodes = new Set(
|
|
40278
40610
|
getRegisteredSearchParameters(SLOT_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
40279
40611
|
);
|
|
@@ -40296,7 +40628,7 @@ function findMalformedReference30(query, searchParamKeys) {
|
|
|
40296
40628
|
return void 0;
|
|
40297
40629
|
}
|
|
40298
40630
|
async function listSlotsRoute(req, res) {
|
|
40299
|
-
const searchParamKeys =
|
|
40631
|
+
const searchParamKeys = extractSearchParamKeys33(
|
|
40300
40632
|
req.query
|
|
40301
40633
|
);
|
|
40302
40634
|
if (searchParamKeys.length === 0) {
|
|
@@ -40312,17 +40644,17 @@ async function listSlotsRoute(req, res) {
|
|
|
40312
40644
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
40313
40645
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
40314
40646
|
if (unknownCodes.length > 0) {
|
|
40315
|
-
return
|
|
40647
|
+
return sendInvalidSearch40033(
|
|
40316
40648
|
res,
|
|
40317
|
-
|
|
40649
|
+
buildUnknownParamDiagnostics33([...new Set(unknownCodes)])
|
|
40318
40650
|
);
|
|
40319
40651
|
}
|
|
40320
|
-
const malformedRef =
|
|
40652
|
+
const malformedRef = findMalformedReference33(
|
|
40321
40653
|
req.query,
|
|
40322
40654
|
searchParamKeys
|
|
40323
40655
|
);
|
|
40324
40656
|
if (malformedRef !== void 0) {
|
|
40325
|
-
return
|
|
40657
|
+
return sendInvalidSearch40033(
|
|
40326
40658
|
res,
|
|
40327
40659
|
`?${malformedRef.rawKey} must be a typed reference like "Schedule/<id>"; got "${malformedRef.value}".`
|
|
40328
40660
|
);
|
|
@@ -40499,30 +40831,30 @@ async function listSpecimensOperation(params) {
|
|
|
40499
40831
|
|
|
40500
40832
|
// src/data/rest-api/routes/data/specimen/specimen-list-route.ts
|
|
40501
40833
|
var SPECIMEN_RESOURCE_TYPE = "Specimen";
|
|
40502
|
-
function
|
|
40834
|
+
function stripModifier34(key) {
|
|
40503
40835
|
const idx = key.indexOf(":");
|
|
40504
40836
|
return idx === -1 ? key : key.slice(0, idx);
|
|
40505
40837
|
}
|
|
40506
|
-
function
|
|
40838
|
+
function isResultParameter34(key) {
|
|
40507
40839
|
return key.startsWith("_");
|
|
40508
40840
|
}
|
|
40509
|
-
function
|
|
40841
|
+
function sendInvalidSearch40034(res, diagnostics) {
|
|
40510
40842
|
return res.status(400).json({
|
|
40511
40843
|
resourceType: "OperationOutcome",
|
|
40512
40844
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
40513
40845
|
});
|
|
40514
40846
|
}
|
|
40515
|
-
function
|
|
40847
|
+
function extractSearchParamKeys34(query) {
|
|
40516
40848
|
const out = [];
|
|
40517
40849
|
for (const rawKey of Object.keys(query)) {
|
|
40518
|
-
if (
|
|
40850
|
+
if (isResultParameter34(rawKey)) {
|
|
40519
40851
|
continue;
|
|
40520
40852
|
}
|
|
40521
|
-
out.push({ rawKey, code:
|
|
40853
|
+
out.push({ rawKey, code: stripModifier34(rawKey) });
|
|
40522
40854
|
}
|
|
40523
40855
|
return out;
|
|
40524
40856
|
}
|
|
40525
|
-
function
|
|
40857
|
+
function buildUnknownParamDiagnostics34(unknownCodes) {
|
|
40526
40858
|
const validCodes = getRegisteredSearchParameters(SPECIMEN_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
40527
40859
|
const codes = unknownCodes.join(", ");
|
|
40528
40860
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -40531,7 +40863,7 @@ function buildUnknownParamDiagnostics31(unknownCodes) {
|
|
|
40531
40863
|
`Valid codes: ${validCodes}.`
|
|
40532
40864
|
].join(" ");
|
|
40533
40865
|
}
|
|
40534
|
-
function
|
|
40866
|
+
function findMalformedReference34(query, searchParamKeys) {
|
|
40535
40867
|
const referenceCodes = new Set(
|
|
40536
40868
|
getRegisteredSearchParameters(SPECIMEN_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
40537
40869
|
);
|
|
@@ -40557,7 +40889,7 @@ function findMalformedReference31(query, searchParamKeys) {
|
|
|
40557
40889
|
return void 0;
|
|
40558
40890
|
}
|
|
40559
40891
|
async function listSpecimensRoute(req, res) {
|
|
40560
|
-
const searchParamKeys =
|
|
40892
|
+
const searchParamKeys = extractSearchParamKeys34(
|
|
40561
40893
|
req.query
|
|
40562
40894
|
);
|
|
40563
40895
|
if (searchParamKeys.length === 0) {
|
|
@@ -40573,17 +40905,17 @@ async function listSpecimensRoute(req, res) {
|
|
|
40573
40905
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
40574
40906
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
40575
40907
|
if (unknownCodes.length > 0) {
|
|
40576
|
-
return
|
|
40908
|
+
return sendInvalidSearch40034(
|
|
40577
40909
|
res,
|
|
40578
|
-
|
|
40910
|
+
buildUnknownParamDiagnostics34([...new Set(unknownCodes)])
|
|
40579
40911
|
);
|
|
40580
40912
|
}
|
|
40581
|
-
const malformedRef =
|
|
40913
|
+
const malformedRef = findMalformedReference34(
|
|
40582
40914
|
req.query,
|
|
40583
40915
|
searchParamKeys
|
|
40584
40916
|
);
|
|
40585
40917
|
if (malformedRef !== void 0) {
|
|
40586
|
-
return
|
|
40918
|
+
return sendInvalidSearch40034(
|
|
40587
40919
|
res,
|
|
40588
40920
|
`?${malformedRef.rawKey} must be a typed reference like "Patient/<id>"; got "${malformedRef.value}".`
|
|
40589
40921
|
);
|
|
@@ -42987,30 +43319,30 @@ async function listTasksOperation(params) {
|
|
|
42987
43319
|
|
|
42988
43320
|
// src/data/rest-api/routes/data/task/task-list-route.ts
|
|
42989
43321
|
var TASK_RESOURCE_TYPE = "Task";
|
|
42990
|
-
function
|
|
43322
|
+
function stripModifier35(key) {
|
|
42991
43323
|
const idx = key.indexOf(":");
|
|
42992
43324
|
return idx === -1 ? key : key.slice(0, idx);
|
|
42993
43325
|
}
|
|
42994
|
-
function
|
|
43326
|
+
function isResultParameter35(key) {
|
|
42995
43327
|
return key.startsWith("_");
|
|
42996
43328
|
}
|
|
42997
|
-
function
|
|
43329
|
+
function sendInvalidSearch40035(res, diagnostics) {
|
|
42998
43330
|
return res.status(400).json({
|
|
42999
43331
|
resourceType: "OperationOutcome",
|
|
43000
43332
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
43001
43333
|
});
|
|
43002
43334
|
}
|
|
43003
|
-
function
|
|
43335
|
+
function extractSearchParamKeys35(query) {
|
|
43004
43336
|
const out = [];
|
|
43005
43337
|
for (const rawKey of Object.keys(query)) {
|
|
43006
|
-
if (
|
|
43338
|
+
if (isResultParameter35(rawKey)) {
|
|
43007
43339
|
continue;
|
|
43008
43340
|
}
|
|
43009
|
-
out.push({ rawKey, code:
|
|
43341
|
+
out.push({ rawKey, code: stripModifier35(rawKey) });
|
|
43010
43342
|
}
|
|
43011
43343
|
return out;
|
|
43012
43344
|
}
|
|
43013
|
-
function
|
|
43345
|
+
function buildUnknownParamDiagnostics35(unknownCodes) {
|
|
43014
43346
|
const validCodes = getRegisteredSearchParameters(TASK_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
43015
43347
|
const codes = unknownCodes.join(", ");
|
|
43016
43348
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -43019,7 +43351,7 @@ function buildUnknownParamDiagnostics32(unknownCodes) {
|
|
|
43019
43351
|
`Valid codes: ${validCodes}.`
|
|
43020
43352
|
].join(" ");
|
|
43021
43353
|
}
|
|
43022
|
-
function
|
|
43354
|
+
function findMalformedReference35(query, searchParamKeys) {
|
|
43023
43355
|
const referenceCodes = new Set(
|
|
43024
43356
|
getRegisteredSearchParameters(TASK_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
43025
43357
|
);
|
|
@@ -43042,7 +43374,7 @@ function findMalformedReference32(query, searchParamKeys) {
|
|
|
43042
43374
|
return void 0;
|
|
43043
43375
|
}
|
|
43044
43376
|
async function listTasksRoute(req, res) {
|
|
43045
|
-
const searchParamKeys =
|
|
43377
|
+
const searchParamKeys = extractSearchParamKeys35(
|
|
43046
43378
|
req.query
|
|
43047
43379
|
);
|
|
43048
43380
|
if (searchParamKeys.length === 0) {
|
|
@@ -43058,17 +43390,17 @@ async function listTasksRoute(req, res) {
|
|
|
43058
43390
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
43059
43391
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
43060
43392
|
if (unknownCodes.length > 0) {
|
|
43061
|
-
return
|
|
43393
|
+
return sendInvalidSearch40035(
|
|
43062
43394
|
res,
|
|
43063
|
-
|
|
43395
|
+
buildUnknownParamDiagnostics35([...new Set(unknownCodes)])
|
|
43064
43396
|
);
|
|
43065
43397
|
}
|
|
43066
|
-
const malformedRef =
|
|
43398
|
+
const malformedRef = findMalformedReference35(
|
|
43067
43399
|
req.query,
|
|
43068
43400
|
searchParamKeys
|
|
43069
43401
|
);
|
|
43070
43402
|
if (malformedRef !== void 0) {
|
|
43071
|
-
return
|
|
43403
|
+
return sendInvalidSearch40035(
|
|
43072
43404
|
res,
|
|
43073
43405
|
`?${malformedRef.rawKey} must be a typed reference like "Practitioner/<id>"; got "${malformedRef.value}".`
|
|
43074
43406
|
);
|