@openhi/constructs 0.0.186 → 0.0.188
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.
|
@@ -6182,6 +6182,9 @@ var CLAIM_SEARCH_PARAMETERS = [
|
|
|
6182
6182
|
{ code: "use", type: "token", jsonbPath: "$.use" }
|
|
6183
6183
|
];
|
|
6184
6184
|
|
|
6185
|
+
// src/data/search/registry/clinicalimpression-search-parameters.ts
|
|
6186
|
+
var CLINICALIMPRESSION_SEARCH_PARAMETERS = [{ code: "encounter", type: "reference", jsonbPath: "$.encounter" }];
|
|
6187
|
+
|
|
6185
6188
|
// src/data/search/registry/composition-search-parameters.ts
|
|
6186
6189
|
var COMPOSITION_SEARCH_PARAMETERS = [
|
|
6187
6190
|
{ code: "status", type: "token", jsonbPath: "$.status" },
|
|
@@ -6843,6 +6846,12 @@ var RELATEDPERSON_SEARCH_PARAMETERS = [
|
|
|
6843
6846
|
}
|
|
6844
6847
|
];
|
|
6845
6848
|
|
|
6849
|
+
// src/data/search/registry/riskassessment-search-parameters.ts
|
|
6850
|
+
var RISKASSESSMENT_SEARCH_PARAMETERS = [
|
|
6851
|
+
{ code: "subject", type: "reference", jsonbPath: "$.subject" },
|
|
6852
|
+
{ code: "patient", type: "reference", jsonbPath: "$.subject" }
|
|
6853
|
+
];
|
|
6854
|
+
|
|
6846
6855
|
// src/data/search/registry/schedule-search-parameters.ts
|
|
6847
6856
|
var SCHEDULE_SEARCH_PARAMETERS = [
|
|
6848
6857
|
{ code: "active", type: "token", jsonbPath: "$.active" },
|
|
@@ -6858,6 +6867,9 @@ var SCHEDULE_SEARCH_PARAMETERS = [
|
|
|
6858
6867
|
{ code: "specialty", type: "token", jsonbPath: "$.specialty[*]" }
|
|
6859
6868
|
];
|
|
6860
6869
|
|
|
6870
|
+
// src/data/search/registry/servicerequest-search-parameters.ts
|
|
6871
|
+
var SERVICEREQUEST_SEARCH_PARAMETERS = [{ code: "encounter", type: "reference", jsonbPath: "$.encounter" }];
|
|
6872
|
+
|
|
6861
6873
|
// src/data/search/registry/slot-search-parameters.ts
|
|
6862
6874
|
var SLOT_SEARCH_PARAMETERS = [
|
|
6863
6875
|
{ code: "status", type: "token", jsonbPath: "$.status" },
|
|
@@ -6934,6 +6946,7 @@ var STATIC_SEARCH_PARAMETER_MAP = {
|
|
|
6934
6946
|
Appointment: APPOINTMENT_SEARCH_PARAMETERS,
|
|
6935
6947
|
ChargeItem: CHARGEITEM_SEARCH_PARAMETERS,
|
|
6936
6948
|
Claim: CLAIM_SEARCH_PARAMETERS,
|
|
6949
|
+
ClinicalImpression: CLINICALIMPRESSION_SEARCH_PARAMETERS,
|
|
6937
6950
|
Composition: COMPOSITION_SEARCH_PARAMETERS,
|
|
6938
6951
|
Condition: CONDITION_SEARCH_PARAMETERS,
|
|
6939
6952
|
Coverage: COVERAGE_SEARCH_PARAMETERS,
|
|
@@ -6958,7 +6971,9 @@ var STATIC_SEARCH_PARAMETER_MAP = {
|
|
|
6958
6971
|
PractitionerRole: PRACTITIONERROLE_SEARCH_PARAMETERS,
|
|
6959
6972
|
Procedure: PROCEDURE_SEARCH_PARAMETERS,
|
|
6960
6973
|
RelatedPerson: RELATEDPERSON_SEARCH_PARAMETERS,
|
|
6974
|
+
RiskAssessment: RISKASSESSMENT_SEARCH_PARAMETERS,
|
|
6961
6975
|
Schedule: SCHEDULE_SEARCH_PARAMETERS,
|
|
6976
|
+
ServiceRequest: SERVICEREQUEST_SEARCH_PARAMETERS,
|
|
6962
6977
|
Slot: SLOT_SEARCH_PARAMETERS,
|
|
6963
6978
|
Specimen: SPECIMEN_SEARCH_PARAMETERS,
|
|
6964
6979
|
Task: TASK_SEARCH_PARAMETERS
|
|
@@ -14581,15 +14596,122 @@ async function listClinicalImpressionsOperation(params) {
|
|
|
14581
14596
|
}
|
|
14582
14597
|
|
|
14583
14598
|
// src/data/rest-api/routes/data/clinicalimpression/clinicalimpression-list-route.ts
|
|
14584
|
-
|
|
14585
|
-
|
|
14586
|
-
|
|
14587
|
-
|
|
14588
|
-
|
|
14589
|
-
|
|
14590
|
-
|
|
14599
|
+
var CLINICALIMPRESSION_RESOURCE_TYPE = "ClinicalImpression";
|
|
14600
|
+
function stripModifier5(key) {
|
|
14601
|
+
const idx = key.indexOf(":");
|
|
14602
|
+
return idx === -1 ? key : key.slice(0, idx);
|
|
14603
|
+
}
|
|
14604
|
+
function isResultParameter5(key) {
|
|
14605
|
+
return key.startsWith("_");
|
|
14606
|
+
}
|
|
14607
|
+
function sendInvalidSearch4005(res, diagnostics) {
|
|
14608
|
+
return res.status(400).json({
|
|
14609
|
+
resourceType: "OperationOutcome",
|
|
14610
|
+
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
14591
14611
|
});
|
|
14592
14612
|
}
|
|
14613
|
+
function extractSearchParamKeys5(query) {
|
|
14614
|
+
const out = [];
|
|
14615
|
+
for (const rawKey of Object.keys(query)) {
|
|
14616
|
+
if (isResultParameter5(rawKey)) {
|
|
14617
|
+
continue;
|
|
14618
|
+
}
|
|
14619
|
+
out.push({ rawKey, code: stripModifier5(rawKey) });
|
|
14620
|
+
}
|
|
14621
|
+
return out;
|
|
14622
|
+
}
|
|
14623
|
+
function buildUnknownParamDiagnostics5(unknownCodes) {
|
|
14624
|
+
const validCodes = getRegisteredSearchParameters(
|
|
14625
|
+
CLINICALIMPRESSION_RESOURCE_TYPE
|
|
14626
|
+
).map((p) => p.code).sort().join(", ");
|
|
14627
|
+
const codes = unknownCodes.join(", ");
|
|
14628
|
+
const isPlural = unknownCodes.length !== 1;
|
|
14629
|
+
return [
|
|
14630
|
+
`Unknown search ${isPlural ? "parameters" : "parameter"} for ClinicalImpression: ${codes}.`,
|
|
14631
|
+
`Valid codes: ${validCodes}.`
|
|
14632
|
+
].join(" ");
|
|
14633
|
+
}
|
|
14634
|
+
function findMalformedReference5(query, searchParamKeys) {
|
|
14635
|
+
const referenceCodes = new Set(
|
|
14636
|
+
getRegisteredSearchParameters(CLINICALIMPRESSION_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
14637
|
+
);
|
|
14638
|
+
if (referenceCodes.size === 0) {
|
|
14639
|
+
return void 0;
|
|
14640
|
+
}
|
|
14641
|
+
for (const { rawKey, code } of searchParamKeys) {
|
|
14642
|
+
if (!referenceCodes.has(code)) {
|
|
14643
|
+
continue;
|
|
14644
|
+
}
|
|
14645
|
+
const raw = query[rawKey];
|
|
14646
|
+
const values = typeof raw === "string" ? raw.split(",") : Array.isArray(raw) ? raw.flatMap((v) => v.split(",")) : [];
|
|
14647
|
+
for (const v of values) {
|
|
14648
|
+
const trimmed = v.trim();
|
|
14649
|
+
if (trimmed.length === 0) {
|
|
14650
|
+
continue;
|
|
14651
|
+
}
|
|
14652
|
+
if (parseTypedReference(trimmed) === void 0) {
|
|
14653
|
+
return { rawKey, value: trimmed };
|
|
14654
|
+
}
|
|
14655
|
+
}
|
|
14656
|
+
}
|
|
14657
|
+
return void 0;
|
|
14658
|
+
}
|
|
14659
|
+
async function listClinicalImpressionsRoute(req, res) {
|
|
14660
|
+
const searchParamKeys = extractSearchParamKeys5(
|
|
14661
|
+
req.query
|
|
14662
|
+
);
|
|
14663
|
+
if (searchParamKeys.length === 0) {
|
|
14664
|
+
return handleListRoute({
|
|
14665
|
+
req,
|
|
14666
|
+
res,
|
|
14667
|
+
basePath: BASE_PATH.CLINICALIMPRESSION,
|
|
14668
|
+
listOperation: listClinicalImpressionsOperation,
|
|
14669
|
+
errorLogContext: "GET /ClinicalImpression list error:"
|
|
14670
|
+
});
|
|
14671
|
+
}
|
|
14672
|
+
const registered = getRegisteredSearchParameters(
|
|
14673
|
+
CLINICALIMPRESSION_RESOURCE_TYPE
|
|
14674
|
+
);
|
|
14675
|
+
const validCodes = new Set(registered.map((p) => p.code));
|
|
14676
|
+
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
14677
|
+
if (unknownCodes.length > 0) {
|
|
14678
|
+
return sendInvalidSearch4005(
|
|
14679
|
+
res,
|
|
14680
|
+
buildUnknownParamDiagnostics5([...new Set(unknownCodes)])
|
|
14681
|
+
);
|
|
14682
|
+
}
|
|
14683
|
+
const malformedRef = findMalformedReference5(
|
|
14684
|
+
req.query,
|
|
14685
|
+
searchParamKeys
|
|
14686
|
+
);
|
|
14687
|
+
if (malformedRef !== void 0) {
|
|
14688
|
+
return sendInvalidSearch4005(
|
|
14689
|
+
res,
|
|
14690
|
+
`?${malformedRef.rawKey} must be a typed reference like "Encounter/<id>"; got "${malformedRef.value}".`
|
|
14691
|
+
);
|
|
14692
|
+
}
|
|
14693
|
+
const ctx = req.openhiContext;
|
|
14694
|
+
try {
|
|
14695
|
+
const result = await genericSearchOperation({
|
|
14696
|
+
resourceType: CLINICALIMPRESSION_RESOURCE_TYPE,
|
|
14697
|
+
tenantId: ctx.tenantId,
|
|
14698
|
+
workspaceId: ctx.workspaceId,
|
|
14699
|
+
query: req.query,
|
|
14700
|
+
resolver: defaultSearchParameterResolver
|
|
14701
|
+
});
|
|
14702
|
+
const bundle = buildSearchsetBundle(
|
|
14703
|
+
BASE_PATH.CLINICALIMPRESSION,
|
|
14704
|
+
result.entries
|
|
14705
|
+
);
|
|
14706
|
+
return res.json(bundle);
|
|
14707
|
+
} catch (err) {
|
|
14708
|
+
return sendOperationOutcome500(
|
|
14709
|
+
res,
|
|
14710
|
+
err,
|
|
14711
|
+
"GET /ClinicalImpression search error:"
|
|
14712
|
+
);
|
|
14713
|
+
}
|
|
14714
|
+
}
|
|
14593
14715
|
|
|
14594
14716
|
// src/data/operations/data/clinicalimpression/clinicalimpression-update-operation.ts
|
|
14595
14717
|
async function updateClinicalImpressionOperation(params) {
|
|
@@ -15437,30 +15559,30 @@ async function listCompositionsOperation(params) {
|
|
|
15437
15559
|
|
|
15438
15560
|
// src/data/rest-api/routes/data/composition/composition-list-route.ts
|
|
15439
15561
|
var COMPOSITION_RESOURCE_TYPE = "Composition";
|
|
15440
|
-
function
|
|
15562
|
+
function stripModifier6(key) {
|
|
15441
15563
|
const idx = key.indexOf(":");
|
|
15442
15564
|
return idx === -1 ? key : key.slice(0, idx);
|
|
15443
15565
|
}
|
|
15444
|
-
function
|
|
15566
|
+
function isResultParameter6(key) {
|
|
15445
15567
|
return key.startsWith("_");
|
|
15446
15568
|
}
|
|
15447
|
-
function
|
|
15569
|
+
function sendInvalidSearch4006(res, diagnostics) {
|
|
15448
15570
|
return res.status(400).json({
|
|
15449
15571
|
resourceType: "OperationOutcome",
|
|
15450
15572
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
15451
15573
|
});
|
|
15452
15574
|
}
|
|
15453
|
-
function
|
|
15575
|
+
function extractSearchParamKeys6(query) {
|
|
15454
15576
|
const out = [];
|
|
15455
15577
|
for (const rawKey of Object.keys(query)) {
|
|
15456
|
-
if (
|
|
15578
|
+
if (isResultParameter6(rawKey)) {
|
|
15457
15579
|
continue;
|
|
15458
15580
|
}
|
|
15459
|
-
out.push({ rawKey, code:
|
|
15581
|
+
out.push({ rawKey, code: stripModifier6(rawKey) });
|
|
15460
15582
|
}
|
|
15461
15583
|
return out;
|
|
15462
15584
|
}
|
|
15463
|
-
function
|
|
15585
|
+
function buildUnknownParamDiagnostics6(unknownCodes) {
|
|
15464
15586
|
const validCodes = getRegisteredSearchParameters(COMPOSITION_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
15465
15587
|
const codes = unknownCodes.join(", ");
|
|
15466
15588
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -15469,7 +15591,7 @@ function buildUnknownParamDiagnostics5(unknownCodes) {
|
|
|
15469
15591
|
`Valid codes: ${validCodes}.`
|
|
15470
15592
|
].join(" ");
|
|
15471
15593
|
}
|
|
15472
|
-
function
|
|
15594
|
+
function findMalformedReference6(query, searchParamKeys) {
|
|
15473
15595
|
const referenceCodes = new Set(
|
|
15474
15596
|
getRegisteredSearchParameters(COMPOSITION_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
15475
15597
|
);
|
|
@@ -15495,7 +15617,7 @@ function findMalformedReference5(query, searchParamKeys) {
|
|
|
15495
15617
|
return void 0;
|
|
15496
15618
|
}
|
|
15497
15619
|
async function listCompositionsRoute(req, res) {
|
|
15498
|
-
const searchParamKeys =
|
|
15620
|
+
const searchParamKeys = extractSearchParamKeys6(
|
|
15499
15621
|
req.query
|
|
15500
15622
|
);
|
|
15501
15623
|
if (searchParamKeys.length === 0) {
|
|
@@ -15511,17 +15633,17 @@ async function listCompositionsRoute(req, res) {
|
|
|
15511
15633
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
15512
15634
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
15513
15635
|
if (unknownCodes.length > 0) {
|
|
15514
|
-
return
|
|
15636
|
+
return sendInvalidSearch4006(
|
|
15515
15637
|
res,
|
|
15516
|
-
|
|
15638
|
+
buildUnknownParamDiagnostics6([...new Set(unknownCodes)])
|
|
15517
15639
|
);
|
|
15518
15640
|
}
|
|
15519
|
-
const malformedRef =
|
|
15641
|
+
const malformedRef = findMalformedReference6(
|
|
15520
15642
|
req.query,
|
|
15521
15643
|
searchParamKeys
|
|
15522
15644
|
);
|
|
15523
15645
|
if (malformedRef !== void 0) {
|
|
15524
|
-
return
|
|
15646
|
+
return sendInvalidSearch4006(
|
|
15525
15647
|
res,
|
|
15526
15648
|
`?${malformedRef.rawKey} must be a typed reference like "Patient/<id>"; got "${malformedRef.value}".`
|
|
15527
15649
|
);
|
|
@@ -15863,30 +15985,30 @@ async function listConditionsOperation(params) {
|
|
|
15863
15985
|
|
|
15864
15986
|
// src/data/rest-api/routes/data/condition/condition-list-route.ts
|
|
15865
15987
|
var CONDITION_RESOURCE_TYPE = "Condition";
|
|
15866
|
-
function
|
|
15988
|
+
function stripModifier7(key) {
|
|
15867
15989
|
const idx = key.indexOf(":");
|
|
15868
15990
|
return idx === -1 ? key : key.slice(0, idx);
|
|
15869
15991
|
}
|
|
15870
|
-
function
|
|
15992
|
+
function isResultParameter7(key) {
|
|
15871
15993
|
return key.startsWith("_");
|
|
15872
15994
|
}
|
|
15873
|
-
function
|
|
15995
|
+
function sendInvalidSearch4007(res, diagnostics) {
|
|
15874
15996
|
return res.status(400).json({
|
|
15875
15997
|
resourceType: "OperationOutcome",
|
|
15876
15998
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
15877
15999
|
});
|
|
15878
16000
|
}
|
|
15879
|
-
function
|
|
16001
|
+
function extractSearchParamKeys7(query) {
|
|
15880
16002
|
const out = [];
|
|
15881
16003
|
for (const rawKey of Object.keys(query)) {
|
|
15882
|
-
if (
|
|
16004
|
+
if (isResultParameter7(rawKey)) {
|
|
15883
16005
|
continue;
|
|
15884
16006
|
}
|
|
15885
|
-
out.push({ rawKey, code:
|
|
16007
|
+
out.push({ rawKey, code: stripModifier7(rawKey) });
|
|
15886
16008
|
}
|
|
15887
16009
|
return out;
|
|
15888
16010
|
}
|
|
15889
|
-
function
|
|
16011
|
+
function buildUnknownParamDiagnostics7(unknownCodes) {
|
|
15890
16012
|
const validCodes = getRegisteredSearchParameters(CONDITION_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
15891
16013
|
const codes = unknownCodes.join(", ");
|
|
15892
16014
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -15895,7 +16017,7 @@ function buildUnknownParamDiagnostics6(unknownCodes) {
|
|
|
15895
16017
|
`Valid codes: ${validCodes}.`
|
|
15896
16018
|
].join(" ");
|
|
15897
16019
|
}
|
|
15898
|
-
function
|
|
16020
|
+
function findMalformedReference7(query, searchParamKeys) {
|
|
15899
16021
|
const referenceCodes = new Set(
|
|
15900
16022
|
getRegisteredSearchParameters(CONDITION_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
15901
16023
|
);
|
|
@@ -15918,7 +16040,7 @@ function findMalformedReference6(query, searchParamKeys) {
|
|
|
15918
16040
|
return void 0;
|
|
15919
16041
|
}
|
|
15920
16042
|
async function listConditionsRoute(req, res) {
|
|
15921
|
-
const searchParamKeys =
|
|
16043
|
+
const searchParamKeys = extractSearchParamKeys7(
|
|
15922
16044
|
req.query
|
|
15923
16045
|
);
|
|
15924
16046
|
if (searchParamKeys.length === 0) {
|
|
@@ -15934,17 +16056,17 @@ async function listConditionsRoute(req, res) {
|
|
|
15934
16056
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
15935
16057
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
15936
16058
|
if (unknownCodes.length > 0) {
|
|
15937
|
-
return
|
|
16059
|
+
return sendInvalidSearch4007(
|
|
15938
16060
|
res,
|
|
15939
|
-
|
|
16061
|
+
buildUnknownParamDiagnostics7([...new Set(unknownCodes)])
|
|
15940
16062
|
);
|
|
15941
16063
|
}
|
|
15942
|
-
const malformedRef =
|
|
16064
|
+
const malformedRef = findMalformedReference7(
|
|
15943
16065
|
req.query,
|
|
15944
16066
|
searchParamKeys
|
|
15945
16067
|
);
|
|
15946
16068
|
if (malformedRef !== void 0) {
|
|
15947
|
-
return
|
|
16069
|
+
return sendInvalidSearch4007(
|
|
15948
16070
|
res,
|
|
15949
16071
|
`?${malformedRef.rawKey} must be a typed reference like "Practitioner/<id>"; got "${malformedRef.value}".`
|
|
15950
16072
|
);
|
|
@@ -16454,30 +16576,30 @@ async function listCoveragesOperation(params) {
|
|
|
16454
16576
|
|
|
16455
16577
|
// src/data/rest-api/routes/data/coverage/coverage-list-route.ts
|
|
16456
16578
|
var COVERAGE_RESOURCE_TYPE = "Coverage";
|
|
16457
|
-
function
|
|
16579
|
+
function stripModifier8(key) {
|
|
16458
16580
|
const idx = key.indexOf(":");
|
|
16459
16581
|
return idx === -1 ? key : key.slice(0, idx);
|
|
16460
16582
|
}
|
|
16461
|
-
function
|
|
16583
|
+
function isResultParameter8(key) {
|
|
16462
16584
|
return key.startsWith("_");
|
|
16463
16585
|
}
|
|
16464
|
-
function
|
|
16586
|
+
function sendInvalidSearch4008(res, diagnostics) {
|
|
16465
16587
|
return res.status(400).json({
|
|
16466
16588
|
resourceType: "OperationOutcome",
|
|
16467
16589
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
16468
16590
|
});
|
|
16469
16591
|
}
|
|
16470
|
-
function
|
|
16592
|
+
function extractSearchParamKeys8(query) {
|
|
16471
16593
|
const out = [];
|
|
16472
16594
|
for (const rawKey of Object.keys(query)) {
|
|
16473
|
-
if (
|
|
16595
|
+
if (isResultParameter8(rawKey)) {
|
|
16474
16596
|
continue;
|
|
16475
16597
|
}
|
|
16476
|
-
out.push({ rawKey, code:
|
|
16598
|
+
out.push({ rawKey, code: stripModifier8(rawKey) });
|
|
16477
16599
|
}
|
|
16478
16600
|
return out;
|
|
16479
16601
|
}
|
|
16480
|
-
function
|
|
16602
|
+
function buildUnknownParamDiagnostics8(unknownCodes) {
|
|
16481
16603
|
const validCodes = getRegisteredSearchParameters(COVERAGE_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
16482
16604
|
const codes = unknownCodes.join(", ");
|
|
16483
16605
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -16486,7 +16608,7 @@ function buildUnknownParamDiagnostics7(unknownCodes) {
|
|
|
16486
16608
|
`Valid codes: ${validCodes}.`
|
|
16487
16609
|
].join(" ");
|
|
16488
16610
|
}
|
|
16489
|
-
function
|
|
16611
|
+
function findMalformedReference8(query, searchParamKeys) {
|
|
16490
16612
|
const referenceCodes = new Set(
|
|
16491
16613
|
getRegisteredSearchParameters(COVERAGE_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
16492
16614
|
);
|
|
@@ -16512,7 +16634,7 @@ function findMalformedReference7(query, searchParamKeys) {
|
|
|
16512
16634
|
return void 0;
|
|
16513
16635
|
}
|
|
16514
16636
|
async function listCoveragesRoute(req, res) {
|
|
16515
|
-
const searchParamKeys =
|
|
16637
|
+
const searchParamKeys = extractSearchParamKeys8(
|
|
16516
16638
|
req.query
|
|
16517
16639
|
);
|
|
16518
16640
|
if (searchParamKeys.length === 0) {
|
|
@@ -16530,17 +16652,17 @@ async function listCoveragesRoute(req, res) {
|
|
|
16530
16652
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
16531
16653
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
16532
16654
|
if (unknownCodes.length > 0) {
|
|
16533
|
-
return
|
|
16655
|
+
return sendInvalidSearch4008(
|
|
16534
16656
|
res,
|
|
16535
|
-
|
|
16657
|
+
buildUnknownParamDiagnostics8([...new Set(unknownCodes)])
|
|
16536
16658
|
);
|
|
16537
16659
|
}
|
|
16538
|
-
const malformedRef =
|
|
16660
|
+
const malformedRef = findMalformedReference8(
|
|
16539
16661
|
req.query,
|
|
16540
16662
|
searchParamKeys
|
|
16541
16663
|
);
|
|
16542
16664
|
if (malformedRef !== void 0) {
|
|
16543
|
-
return
|
|
16665
|
+
return sendInvalidSearch4008(
|
|
16544
16666
|
res,
|
|
16545
16667
|
`?${malformedRef.rawKey} must be a typed reference like "Patient/<id>"; got "${malformedRef.value}".`
|
|
16546
16668
|
);
|
|
@@ -18089,30 +18211,30 @@ async function listDiagnosticReportsOperation(params) {
|
|
|
18089
18211
|
|
|
18090
18212
|
// src/data/rest-api/routes/data/diagnosticreport/diagnosticreport-list-route.ts
|
|
18091
18213
|
var DIAGNOSTICREPORT_RESOURCE_TYPE = "DiagnosticReport";
|
|
18092
|
-
function
|
|
18214
|
+
function stripModifier9(key) {
|
|
18093
18215
|
const idx = key.indexOf(":");
|
|
18094
18216
|
return idx === -1 ? key : key.slice(0, idx);
|
|
18095
18217
|
}
|
|
18096
|
-
function
|
|
18218
|
+
function isResultParameter9(key) {
|
|
18097
18219
|
return key.startsWith("_");
|
|
18098
18220
|
}
|
|
18099
|
-
function
|
|
18221
|
+
function sendInvalidSearch4009(res, diagnostics) {
|
|
18100
18222
|
return res.status(400).json({
|
|
18101
18223
|
resourceType: "OperationOutcome",
|
|
18102
18224
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
18103
18225
|
});
|
|
18104
18226
|
}
|
|
18105
|
-
function
|
|
18227
|
+
function extractSearchParamKeys9(query) {
|
|
18106
18228
|
const out = [];
|
|
18107
18229
|
for (const rawKey of Object.keys(query)) {
|
|
18108
|
-
if (
|
|
18230
|
+
if (isResultParameter9(rawKey)) {
|
|
18109
18231
|
continue;
|
|
18110
18232
|
}
|
|
18111
|
-
out.push({ rawKey, code:
|
|
18233
|
+
out.push({ rawKey, code: stripModifier9(rawKey) });
|
|
18112
18234
|
}
|
|
18113
18235
|
return out;
|
|
18114
18236
|
}
|
|
18115
|
-
function
|
|
18237
|
+
function buildUnknownParamDiagnostics9(unknownCodes) {
|
|
18116
18238
|
const validCodes = getRegisteredSearchParameters(
|
|
18117
18239
|
DIAGNOSTICREPORT_RESOURCE_TYPE
|
|
18118
18240
|
).map((p) => p.code).sort().join(", ");
|
|
@@ -18123,7 +18245,7 @@ function buildUnknownParamDiagnostics8(unknownCodes) {
|
|
|
18123
18245
|
`Valid codes: ${validCodes}.`
|
|
18124
18246
|
].join(" ");
|
|
18125
18247
|
}
|
|
18126
|
-
function
|
|
18248
|
+
function findMalformedReference9(query, searchParamKeys) {
|
|
18127
18249
|
const referenceCodes = new Set(
|
|
18128
18250
|
getRegisteredSearchParameters(DIAGNOSTICREPORT_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
18129
18251
|
);
|
|
@@ -18149,7 +18271,7 @@ function findMalformedReference8(query, searchParamKeys) {
|
|
|
18149
18271
|
return void 0;
|
|
18150
18272
|
}
|
|
18151
18273
|
async function listDiagnosticReportsRoute(req, res) {
|
|
18152
|
-
const searchParamKeys =
|
|
18274
|
+
const searchParamKeys = extractSearchParamKeys9(
|
|
18153
18275
|
req.query
|
|
18154
18276
|
);
|
|
18155
18277
|
if (searchParamKeys.length === 0) {
|
|
@@ -18167,17 +18289,17 @@ async function listDiagnosticReportsRoute(req, res) {
|
|
|
18167
18289
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
18168
18290
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
18169
18291
|
if (unknownCodes.length > 0) {
|
|
18170
|
-
return
|
|
18292
|
+
return sendInvalidSearch4009(
|
|
18171
18293
|
res,
|
|
18172
|
-
|
|
18294
|
+
buildUnknownParamDiagnostics9([...new Set(unknownCodes)])
|
|
18173
18295
|
);
|
|
18174
18296
|
}
|
|
18175
|
-
const malformedRef =
|
|
18297
|
+
const malformedRef = findMalformedReference9(
|
|
18176
18298
|
req.query,
|
|
18177
18299
|
searchParamKeys
|
|
18178
18300
|
);
|
|
18179
18301
|
if (malformedRef !== void 0) {
|
|
18180
|
-
return
|
|
18302
|
+
return sendInvalidSearch4009(
|
|
18181
18303
|
res,
|
|
18182
18304
|
`?${malformedRef.rawKey} must be a typed reference like "Patient/<id>"; got "${malformedRef.value}".`
|
|
18183
18305
|
);
|
|
@@ -18361,30 +18483,30 @@ async function listDocumentManifestsOperation(params) {
|
|
|
18361
18483
|
|
|
18362
18484
|
// src/data/rest-api/routes/data/documentmanifest/documentmanifest-list-route.ts
|
|
18363
18485
|
var DOCUMENTMANIFEST_RESOURCE_TYPE = "DocumentManifest";
|
|
18364
|
-
function
|
|
18486
|
+
function stripModifier10(key) {
|
|
18365
18487
|
const idx = key.indexOf(":");
|
|
18366
18488
|
return idx === -1 ? key : key.slice(0, idx);
|
|
18367
18489
|
}
|
|
18368
|
-
function
|
|
18490
|
+
function isResultParameter10(key) {
|
|
18369
18491
|
return key.startsWith("_");
|
|
18370
18492
|
}
|
|
18371
|
-
function
|
|
18493
|
+
function sendInvalidSearch40010(res, diagnostics) {
|
|
18372
18494
|
return res.status(400).json({
|
|
18373
18495
|
resourceType: "OperationOutcome",
|
|
18374
18496
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
18375
18497
|
});
|
|
18376
18498
|
}
|
|
18377
|
-
function
|
|
18499
|
+
function extractSearchParamKeys10(query) {
|
|
18378
18500
|
const out = [];
|
|
18379
18501
|
for (const rawKey of Object.keys(query)) {
|
|
18380
|
-
if (
|
|
18502
|
+
if (isResultParameter10(rawKey)) {
|
|
18381
18503
|
continue;
|
|
18382
18504
|
}
|
|
18383
|
-
out.push({ rawKey, code:
|
|
18505
|
+
out.push({ rawKey, code: stripModifier10(rawKey) });
|
|
18384
18506
|
}
|
|
18385
18507
|
return out;
|
|
18386
18508
|
}
|
|
18387
|
-
function
|
|
18509
|
+
function buildUnknownParamDiagnostics10(unknownCodes) {
|
|
18388
18510
|
const validCodes = getRegisteredSearchParameters(
|
|
18389
18511
|
DOCUMENTMANIFEST_RESOURCE_TYPE
|
|
18390
18512
|
).map((p) => p.code).sort().join(", ");
|
|
@@ -18395,7 +18517,7 @@ function buildUnknownParamDiagnostics9(unknownCodes) {
|
|
|
18395
18517
|
`Valid codes: ${validCodes}.`
|
|
18396
18518
|
].join(" ");
|
|
18397
18519
|
}
|
|
18398
|
-
function
|
|
18520
|
+
function findMalformedReference10(query, searchParamKeys) {
|
|
18399
18521
|
const referenceCodes = new Set(
|
|
18400
18522
|
getRegisteredSearchParameters(DOCUMENTMANIFEST_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
18401
18523
|
);
|
|
@@ -18421,7 +18543,7 @@ function findMalformedReference9(query, searchParamKeys) {
|
|
|
18421
18543
|
return void 0;
|
|
18422
18544
|
}
|
|
18423
18545
|
async function listDocumentManifestsRoute(req, res) {
|
|
18424
|
-
const searchParamKeys =
|
|
18546
|
+
const searchParamKeys = extractSearchParamKeys10(
|
|
18425
18547
|
req.query
|
|
18426
18548
|
);
|
|
18427
18549
|
if (searchParamKeys.length === 0) {
|
|
@@ -18439,17 +18561,17 @@ async function listDocumentManifestsRoute(req, res) {
|
|
|
18439
18561
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
18440
18562
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
18441
18563
|
if (unknownCodes.length > 0) {
|
|
18442
|
-
return
|
|
18564
|
+
return sendInvalidSearch40010(
|
|
18443
18565
|
res,
|
|
18444
|
-
|
|
18566
|
+
buildUnknownParamDiagnostics10([...new Set(unknownCodes)])
|
|
18445
18567
|
);
|
|
18446
18568
|
}
|
|
18447
|
-
const malformedRef =
|
|
18569
|
+
const malformedRef = findMalformedReference10(
|
|
18448
18570
|
req.query,
|
|
18449
18571
|
searchParamKeys
|
|
18450
18572
|
);
|
|
18451
18573
|
if (malformedRef !== void 0) {
|
|
18452
|
-
return
|
|
18574
|
+
return sendInvalidSearch40010(
|
|
18453
18575
|
res,
|
|
18454
18576
|
`?${malformedRef.rawKey} must be a typed reference like "Patient/<id>"; got "${malformedRef.value}".`
|
|
18455
18577
|
);
|
|
@@ -18636,30 +18758,30 @@ async function listDocumentReferencesOperation(params) {
|
|
|
18636
18758
|
|
|
18637
18759
|
// src/data/rest-api/routes/data/documentreference/documentreference-list-route.ts
|
|
18638
18760
|
var DOCUMENTREFERENCE_RESOURCE_TYPE = "DocumentReference";
|
|
18639
|
-
function
|
|
18761
|
+
function stripModifier11(key) {
|
|
18640
18762
|
const idx = key.indexOf(":");
|
|
18641
18763
|
return idx === -1 ? key : key.slice(0, idx);
|
|
18642
18764
|
}
|
|
18643
|
-
function
|
|
18765
|
+
function isResultParameter11(key) {
|
|
18644
18766
|
return key.startsWith("_");
|
|
18645
18767
|
}
|
|
18646
|
-
function
|
|
18768
|
+
function sendInvalidSearch40011(res, diagnostics) {
|
|
18647
18769
|
return res.status(400).json({
|
|
18648
18770
|
resourceType: "OperationOutcome",
|
|
18649
18771
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
18650
18772
|
});
|
|
18651
18773
|
}
|
|
18652
|
-
function
|
|
18774
|
+
function extractSearchParamKeys11(query) {
|
|
18653
18775
|
const out = [];
|
|
18654
18776
|
for (const rawKey of Object.keys(query)) {
|
|
18655
|
-
if (
|
|
18777
|
+
if (isResultParameter11(rawKey)) {
|
|
18656
18778
|
continue;
|
|
18657
18779
|
}
|
|
18658
|
-
out.push({ rawKey, code:
|
|
18780
|
+
out.push({ rawKey, code: stripModifier11(rawKey) });
|
|
18659
18781
|
}
|
|
18660
18782
|
return out;
|
|
18661
18783
|
}
|
|
18662
|
-
function
|
|
18784
|
+
function buildUnknownParamDiagnostics11(unknownCodes) {
|
|
18663
18785
|
const validCodes = getRegisteredSearchParameters(
|
|
18664
18786
|
DOCUMENTREFERENCE_RESOURCE_TYPE
|
|
18665
18787
|
).map((p) => p.code).sort().join(", ");
|
|
@@ -18670,7 +18792,7 @@ function buildUnknownParamDiagnostics10(unknownCodes) {
|
|
|
18670
18792
|
`Valid codes: ${validCodes}.`
|
|
18671
18793
|
].join(" ");
|
|
18672
18794
|
}
|
|
18673
|
-
function
|
|
18795
|
+
function findMalformedReference11(query, searchParamKeys) {
|
|
18674
18796
|
const referenceCodes = new Set(
|
|
18675
18797
|
getRegisteredSearchParameters(DOCUMENTREFERENCE_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
18676
18798
|
);
|
|
@@ -18696,7 +18818,7 @@ function findMalformedReference10(query, searchParamKeys) {
|
|
|
18696
18818
|
return void 0;
|
|
18697
18819
|
}
|
|
18698
18820
|
async function listDocumentReferencesRoute(req, res) {
|
|
18699
|
-
const searchParamKeys =
|
|
18821
|
+
const searchParamKeys = extractSearchParamKeys11(
|
|
18700
18822
|
req.query
|
|
18701
18823
|
);
|
|
18702
18824
|
if (searchParamKeys.length === 0) {
|
|
@@ -18714,17 +18836,17 @@ async function listDocumentReferencesRoute(req, res) {
|
|
|
18714
18836
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
18715
18837
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
18716
18838
|
if (unknownCodes.length > 0) {
|
|
18717
|
-
return
|
|
18839
|
+
return sendInvalidSearch40011(
|
|
18718
18840
|
res,
|
|
18719
|
-
|
|
18841
|
+
buildUnknownParamDiagnostics11([...new Set(unknownCodes)])
|
|
18720
18842
|
);
|
|
18721
18843
|
}
|
|
18722
|
-
const malformedRef =
|
|
18844
|
+
const malformedRef = findMalformedReference11(
|
|
18723
18845
|
req.query,
|
|
18724
18846
|
searchParamKeys
|
|
18725
18847
|
);
|
|
18726
18848
|
if (malformedRef !== void 0) {
|
|
18727
|
-
return
|
|
18849
|
+
return sendInvalidSearch40011(
|
|
18728
18850
|
res,
|
|
18729
18851
|
`?${malformedRef.rawKey} must be a typed reference like "Patient/<id>"; got "${malformedRef.value}".`
|
|
18730
18852
|
);
|
|
@@ -19092,30 +19214,30 @@ async function listEncountersOperation(params) {
|
|
|
19092
19214
|
|
|
19093
19215
|
// src/data/rest-api/routes/data/encounter/encounter-list-route.ts
|
|
19094
19216
|
var ENCOUNTER_RESOURCE_TYPE = "Encounter";
|
|
19095
|
-
function
|
|
19217
|
+
function stripModifier12(key) {
|
|
19096
19218
|
const idx = key.indexOf(":");
|
|
19097
19219
|
return idx === -1 ? key : key.slice(0, idx);
|
|
19098
19220
|
}
|
|
19099
|
-
function
|
|
19221
|
+
function isResultParameter12(key) {
|
|
19100
19222
|
return key.startsWith("_");
|
|
19101
19223
|
}
|
|
19102
|
-
function
|
|
19224
|
+
function sendInvalidSearch40012(res, diagnostics) {
|
|
19103
19225
|
return res.status(400).json({
|
|
19104
19226
|
resourceType: "OperationOutcome",
|
|
19105
19227
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
19106
19228
|
});
|
|
19107
19229
|
}
|
|
19108
|
-
function
|
|
19230
|
+
function extractSearchParamKeys12(query) {
|
|
19109
19231
|
const out = [];
|
|
19110
19232
|
for (const rawKey of Object.keys(query)) {
|
|
19111
|
-
if (
|
|
19233
|
+
if (isResultParameter12(rawKey)) {
|
|
19112
19234
|
continue;
|
|
19113
19235
|
}
|
|
19114
|
-
out.push({ rawKey, code:
|
|
19236
|
+
out.push({ rawKey, code: stripModifier12(rawKey) });
|
|
19115
19237
|
}
|
|
19116
19238
|
return out;
|
|
19117
19239
|
}
|
|
19118
|
-
function
|
|
19240
|
+
function buildUnknownParamDiagnostics12(unknownCodes) {
|
|
19119
19241
|
const validCodes = getRegisteredSearchParameters(ENCOUNTER_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
19120
19242
|
const codes = unknownCodes.join(", ");
|
|
19121
19243
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -19124,7 +19246,7 @@ function buildUnknownParamDiagnostics11(unknownCodes) {
|
|
|
19124
19246
|
`Valid codes: ${validCodes}.`
|
|
19125
19247
|
].join(" ");
|
|
19126
19248
|
}
|
|
19127
|
-
function
|
|
19249
|
+
function findMalformedReference12(query, searchParamKeys) {
|
|
19128
19250
|
const referenceCodes = new Set(
|
|
19129
19251
|
getRegisteredSearchParameters(ENCOUNTER_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
19130
19252
|
);
|
|
@@ -19147,7 +19269,7 @@ function findMalformedReference11(query, searchParamKeys) {
|
|
|
19147
19269
|
return void 0;
|
|
19148
19270
|
}
|
|
19149
19271
|
async function listEncountersRoute(req, res) {
|
|
19150
|
-
const searchParamKeys =
|
|
19272
|
+
const searchParamKeys = extractSearchParamKeys12(
|
|
19151
19273
|
req.query
|
|
19152
19274
|
);
|
|
19153
19275
|
if (searchParamKeys.length === 0) {
|
|
@@ -19163,17 +19285,17 @@ async function listEncountersRoute(req, res) {
|
|
|
19163
19285
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
19164
19286
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
19165
19287
|
if (unknownCodes.length > 0) {
|
|
19166
|
-
return
|
|
19288
|
+
return sendInvalidSearch40012(
|
|
19167
19289
|
res,
|
|
19168
|
-
|
|
19290
|
+
buildUnknownParamDiagnostics12([...new Set(unknownCodes)])
|
|
19169
19291
|
);
|
|
19170
19292
|
}
|
|
19171
|
-
const malformedRef =
|
|
19293
|
+
const malformedRef = findMalformedReference12(
|
|
19172
19294
|
req.query,
|
|
19173
19295
|
searchParamKeys
|
|
19174
19296
|
);
|
|
19175
19297
|
if (malformedRef !== void 0) {
|
|
19176
|
-
return
|
|
19298
|
+
return sendInvalidSearch40012(
|
|
19177
19299
|
res,
|
|
19178
19300
|
`?${malformedRef.rawKey} must be a typed reference like "Practitioner/<id>"; got "${malformedRef.value}".`
|
|
19179
19301
|
);
|
|
@@ -19355,30 +19477,30 @@ async function listEndpointsOperation(params) {
|
|
|
19355
19477
|
|
|
19356
19478
|
// src/data/rest-api/routes/data/endpoint/endpoint-list-route.ts
|
|
19357
19479
|
var ENDPOINT_RESOURCE_TYPE = "Endpoint";
|
|
19358
|
-
function
|
|
19480
|
+
function stripModifier13(key) {
|
|
19359
19481
|
const idx = key.indexOf(":");
|
|
19360
19482
|
return idx === -1 ? key : key.slice(0, idx);
|
|
19361
19483
|
}
|
|
19362
|
-
function
|
|
19484
|
+
function isResultParameter13(key) {
|
|
19363
19485
|
return key.startsWith("_");
|
|
19364
19486
|
}
|
|
19365
|
-
function
|
|
19487
|
+
function sendInvalidSearch40013(res, diagnostics) {
|
|
19366
19488
|
return res.status(400).json({
|
|
19367
19489
|
resourceType: "OperationOutcome",
|
|
19368
19490
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
19369
19491
|
});
|
|
19370
19492
|
}
|
|
19371
|
-
function
|
|
19493
|
+
function extractSearchParamKeys13(query) {
|
|
19372
19494
|
const out = [];
|
|
19373
19495
|
for (const rawKey of Object.keys(query)) {
|
|
19374
|
-
if (
|
|
19496
|
+
if (isResultParameter13(rawKey)) {
|
|
19375
19497
|
continue;
|
|
19376
19498
|
}
|
|
19377
|
-
out.push({ rawKey, code:
|
|
19499
|
+
out.push({ rawKey, code: stripModifier13(rawKey) });
|
|
19378
19500
|
}
|
|
19379
19501
|
return out;
|
|
19380
19502
|
}
|
|
19381
|
-
function
|
|
19503
|
+
function buildUnknownParamDiagnostics13(unknownCodes) {
|
|
19382
19504
|
const validCodes = getRegisteredSearchParameters(ENDPOINT_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
19383
19505
|
const codes = unknownCodes.join(", ");
|
|
19384
19506
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -19387,7 +19509,7 @@ function buildUnknownParamDiagnostics12(unknownCodes) {
|
|
|
19387
19509
|
`Valid codes: ${validCodes}.`
|
|
19388
19510
|
].join(" ");
|
|
19389
19511
|
}
|
|
19390
|
-
function
|
|
19512
|
+
function findMalformedReference13(query, searchParamKeys) {
|
|
19391
19513
|
const referenceCodes = new Set(
|
|
19392
19514
|
getRegisteredSearchParameters(ENDPOINT_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
19393
19515
|
);
|
|
@@ -19413,7 +19535,7 @@ function findMalformedReference12(query, searchParamKeys) {
|
|
|
19413
19535
|
return void 0;
|
|
19414
19536
|
}
|
|
19415
19537
|
async function listEndpointsRoute(req, res) {
|
|
19416
|
-
const searchParamKeys =
|
|
19538
|
+
const searchParamKeys = extractSearchParamKeys13(
|
|
19417
19539
|
req.query
|
|
19418
19540
|
);
|
|
19419
19541
|
if (searchParamKeys.length === 0) {
|
|
@@ -19429,17 +19551,17 @@ async function listEndpointsRoute(req, res) {
|
|
|
19429
19551
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
19430
19552
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
19431
19553
|
if (unknownCodes.length > 0) {
|
|
19432
|
-
return
|
|
19554
|
+
return sendInvalidSearch40013(
|
|
19433
19555
|
res,
|
|
19434
|
-
|
|
19556
|
+
buildUnknownParamDiagnostics13([...new Set(unknownCodes)])
|
|
19435
19557
|
);
|
|
19436
19558
|
}
|
|
19437
|
-
const malformedRef =
|
|
19559
|
+
const malformedRef = findMalformedReference13(
|
|
19438
19560
|
req.query,
|
|
19439
19561
|
searchParamKeys
|
|
19440
19562
|
);
|
|
19441
19563
|
if (malformedRef !== void 0) {
|
|
19442
|
-
return
|
|
19564
|
+
return sendInvalidSearch40013(
|
|
19443
19565
|
res,
|
|
19444
19566
|
`?${malformedRef.rawKey} must be a typed reference like "Patient/<id>"; got "${malformedRef.value}".`
|
|
19445
19567
|
);
|
|
@@ -20792,30 +20914,30 @@ async function listExplanationOfBenefitsOperation(params) {
|
|
|
20792
20914
|
|
|
20793
20915
|
// src/data/rest-api/routes/data/explanationofbenefit/explanationofbenefit-list-route.ts
|
|
20794
20916
|
var EXPLANATIONOFBENEFIT_RESOURCE_TYPE = "ExplanationOfBenefit";
|
|
20795
|
-
function
|
|
20917
|
+
function stripModifier14(key) {
|
|
20796
20918
|
const idx = key.indexOf(":");
|
|
20797
20919
|
return idx === -1 ? key : key.slice(0, idx);
|
|
20798
20920
|
}
|
|
20799
|
-
function
|
|
20921
|
+
function isResultParameter14(key) {
|
|
20800
20922
|
return key.startsWith("_");
|
|
20801
20923
|
}
|
|
20802
|
-
function
|
|
20924
|
+
function sendInvalidSearch40014(res, diagnostics) {
|
|
20803
20925
|
return res.status(400).json({
|
|
20804
20926
|
resourceType: "OperationOutcome",
|
|
20805
20927
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
20806
20928
|
});
|
|
20807
20929
|
}
|
|
20808
|
-
function
|
|
20930
|
+
function extractSearchParamKeys14(query) {
|
|
20809
20931
|
const out = [];
|
|
20810
20932
|
for (const rawKey of Object.keys(query)) {
|
|
20811
|
-
if (
|
|
20933
|
+
if (isResultParameter14(rawKey)) {
|
|
20812
20934
|
continue;
|
|
20813
20935
|
}
|
|
20814
|
-
out.push({ rawKey, code:
|
|
20936
|
+
out.push({ rawKey, code: stripModifier14(rawKey) });
|
|
20815
20937
|
}
|
|
20816
20938
|
return out;
|
|
20817
20939
|
}
|
|
20818
|
-
function
|
|
20940
|
+
function buildUnknownParamDiagnostics14(unknownCodes) {
|
|
20819
20941
|
const validCodes = getRegisteredSearchParameters(
|
|
20820
20942
|
EXPLANATIONOFBENEFIT_RESOURCE_TYPE
|
|
20821
20943
|
).map((p) => p.code).sort().join(", ");
|
|
@@ -20826,7 +20948,7 @@ function buildUnknownParamDiagnostics13(unknownCodes) {
|
|
|
20826
20948
|
`Valid codes: ${validCodes}.`
|
|
20827
20949
|
].join(" ");
|
|
20828
20950
|
}
|
|
20829
|
-
function
|
|
20951
|
+
function findMalformedReference14(query, searchParamKeys) {
|
|
20830
20952
|
const referenceCodes = new Set(
|
|
20831
20953
|
getRegisteredSearchParameters(EXPLANATIONOFBENEFIT_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
20832
20954
|
);
|
|
@@ -20852,7 +20974,7 @@ function findMalformedReference13(query, searchParamKeys) {
|
|
|
20852
20974
|
return void 0;
|
|
20853
20975
|
}
|
|
20854
20976
|
async function listExplanationOfBenefitsRoute(req, res) {
|
|
20855
|
-
const searchParamKeys =
|
|
20977
|
+
const searchParamKeys = extractSearchParamKeys14(
|
|
20856
20978
|
req.query
|
|
20857
20979
|
);
|
|
20858
20980
|
if (searchParamKeys.length === 0) {
|
|
@@ -20870,17 +20992,17 @@ async function listExplanationOfBenefitsRoute(req, res) {
|
|
|
20870
20992
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
20871
20993
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
20872
20994
|
if (unknownCodes.length > 0) {
|
|
20873
|
-
return
|
|
20995
|
+
return sendInvalidSearch40014(
|
|
20874
20996
|
res,
|
|
20875
|
-
|
|
20997
|
+
buildUnknownParamDiagnostics14([...new Set(unknownCodes)])
|
|
20876
20998
|
);
|
|
20877
20999
|
}
|
|
20878
|
-
const malformedRef =
|
|
21000
|
+
const malformedRef = findMalformedReference14(
|
|
20879
21001
|
req.query,
|
|
20880
21002
|
searchParamKeys
|
|
20881
21003
|
);
|
|
20882
21004
|
if (malformedRef !== void 0) {
|
|
20883
|
-
return
|
|
21005
|
+
return sendInvalidSearch40014(
|
|
20884
21006
|
res,
|
|
20885
21007
|
`?${malformedRef.rawKey} must be a typed reference like "Patient/<id>"; got "${malformedRef.value}".`
|
|
20886
21008
|
);
|
|
@@ -21071,30 +21193,30 @@ async function listFamilyMemberHistorysOperation(params) {
|
|
|
21071
21193
|
|
|
21072
21194
|
// src/data/rest-api/routes/data/familymemberhistory/familymemberhistory-list-route.ts
|
|
21073
21195
|
var FAMILYMEMBERHISTORY_RESOURCE_TYPE = "FamilyMemberHistory";
|
|
21074
|
-
function
|
|
21196
|
+
function stripModifier15(key) {
|
|
21075
21197
|
const idx = key.indexOf(":");
|
|
21076
21198
|
return idx === -1 ? key : key.slice(0, idx);
|
|
21077
21199
|
}
|
|
21078
|
-
function
|
|
21200
|
+
function isResultParameter15(key) {
|
|
21079
21201
|
return key.startsWith("_");
|
|
21080
21202
|
}
|
|
21081
|
-
function
|
|
21203
|
+
function sendInvalidSearch40015(res, diagnostics) {
|
|
21082
21204
|
return res.status(400).json({
|
|
21083
21205
|
resourceType: "OperationOutcome",
|
|
21084
21206
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
21085
21207
|
});
|
|
21086
21208
|
}
|
|
21087
|
-
function
|
|
21209
|
+
function extractSearchParamKeys15(query) {
|
|
21088
21210
|
const out = [];
|
|
21089
21211
|
for (const rawKey of Object.keys(query)) {
|
|
21090
|
-
if (
|
|
21212
|
+
if (isResultParameter15(rawKey)) {
|
|
21091
21213
|
continue;
|
|
21092
21214
|
}
|
|
21093
|
-
out.push({ rawKey, code:
|
|
21215
|
+
out.push({ rawKey, code: stripModifier15(rawKey) });
|
|
21094
21216
|
}
|
|
21095
21217
|
return out;
|
|
21096
21218
|
}
|
|
21097
|
-
function
|
|
21219
|
+
function buildUnknownParamDiagnostics15(unknownCodes) {
|
|
21098
21220
|
const validCodes = getRegisteredSearchParameters(
|
|
21099
21221
|
FAMILYMEMBERHISTORY_RESOURCE_TYPE
|
|
21100
21222
|
).map((p) => p.code).sort().join(", ");
|
|
@@ -21105,7 +21227,7 @@ function buildUnknownParamDiagnostics14(unknownCodes) {
|
|
|
21105
21227
|
`Valid codes: ${validCodes}.`
|
|
21106
21228
|
].join(" ");
|
|
21107
21229
|
}
|
|
21108
|
-
function
|
|
21230
|
+
function findMalformedReference15(query, searchParamKeys) {
|
|
21109
21231
|
const referenceCodes = new Set(
|
|
21110
21232
|
getRegisteredSearchParameters(FAMILYMEMBERHISTORY_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
21111
21233
|
);
|
|
@@ -21128,7 +21250,7 @@ function findMalformedReference14(query, searchParamKeys) {
|
|
|
21128
21250
|
return void 0;
|
|
21129
21251
|
}
|
|
21130
21252
|
async function listFamilyMemberHistorysRoute(req, res) {
|
|
21131
|
-
const searchParamKeys =
|
|
21253
|
+
const searchParamKeys = extractSearchParamKeys15(
|
|
21132
21254
|
req.query
|
|
21133
21255
|
);
|
|
21134
21256
|
if (searchParamKeys.length === 0) {
|
|
@@ -21146,17 +21268,17 @@ async function listFamilyMemberHistorysRoute(req, res) {
|
|
|
21146
21268
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
21147
21269
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
21148
21270
|
if (unknownCodes.length > 0) {
|
|
21149
|
-
return
|
|
21271
|
+
return sendInvalidSearch40015(
|
|
21150
21272
|
res,
|
|
21151
|
-
|
|
21273
|
+
buildUnknownParamDiagnostics15([...new Set(unknownCodes)])
|
|
21152
21274
|
);
|
|
21153
21275
|
}
|
|
21154
|
-
const malformedRef =
|
|
21276
|
+
const malformedRef = findMalformedReference15(
|
|
21155
21277
|
req.query,
|
|
21156
21278
|
searchParamKeys
|
|
21157
21279
|
);
|
|
21158
21280
|
if (malformedRef !== void 0) {
|
|
21159
|
-
return
|
|
21281
|
+
return sendInvalidSearch40015(
|
|
21160
21282
|
res,
|
|
21161
21283
|
`?${malformedRef.rawKey} must be a typed reference like "Patient/<id>"; got "${malformedRef.value}".`
|
|
21162
21284
|
);
|
|
@@ -22333,30 +22455,30 @@ async function listImagingStudysOperation(params) {
|
|
|
22333
22455
|
|
|
22334
22456
|
// src/data/rest-api/routes/data/imagingstudy/imagingstudy-list-route.ts
|
|
22335
22457
|
var IMAGINGSTUDY_RESOURCE_TYPE = "ImagingStudy";
|
|
22336
|
-
function
|
|
22458
|
+
function stripModifier16(key) {
|
|
22337
22459
|
const idx = key.indexOf(":");
|
|
22338
22460
|
return idx === -1 ? key : key.slice(0, idx);
|
|
22339
22461
|
}
|
|
22340
|
-
function
|
|
22462
|
+
function isResultParameter16(key) {
|
|
22341
22463
|
return key.startsWith("_");
|
|
22342
22464
|
}
|
|
22343
|
-
function
|
|
22465
|
+
function sendInvalidSearch40016(res, diagnostics) {
|
|
22344
22466
|
return res.status(400).json({
|
|
22345
22467
|
resourceType: "OperationOutcome",
|
|
22346
22468
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
22347
22469
|
});
|
|
22348
22470
|
}
|
|
22349
|
-
function
|
|
22471
|
+
function extractSearchParamKeys16(query) {
|
|
22350
22472
|
const out = [];
|
|
22351
22473
|
for (const rawKey of Object.keys(query)) {
|
|
22352
|
-
if (
|
|
22474
|
+
if (isResultParameter16(rawKey)) {
|
|
22353
22475
|
continue;
|
|
22354
22476
|
}
|
|
22355
|
-
out.push({ rawKey, code:
|
|
22477
|
+
out.push({ rawKey, code: stripModifier16(rawKey) });
|
|
22356
22478
|
}
|
|
22357
22479
|
return out;
|
|
22358
22480
|
}
|
|
22359
|
-
function
|
|
22481
|
+
function buildUnknownParamDiagnostics16(unknownCodes) {
|
|
22360
22482
|
const validCodes = getRegisteredSearchParameters(IMAGINGSTUDY_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
22361
22483
|
const codes = unknownCodes.join(", ");
|
|
22362
22484
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -22365,7 +22487,7 @@ function buildUnknownParamDiagnostics15(unknownCodes) {
|
|
|
22365
22487
|
`Valid codes: ${validCodes}.`
|
|
22366
22488
|
].join(" ");
|
|
22367
22489
|
}
|
|
22368
|
-
function
|
|
22490
|
+
function findMalformedReference16(query, searchParamKeys) {
|
|
22369
22491
|
const referenceCodes = new Set(
|
|
22370
22492
|
getRegisteredSearchParameters(IMAGINGSTUDY_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
22371
22493
|
);
|
|
@@ -22391,7 +22513,7 @@ function findMalformedReference15(query, searchParamKeys) {
|
|
|
22391
22513
|
return void 0;
|
|
22392
22514
|
}
|
|
22393
22515
|
async function listImagingStudysRoute(req, res) {
|
|
22394
|
-
const searchParamKeys =
|
|
22516
|
+
const searchParamKeys = extractSearchParamKeys16(
|
|
22395
22517
|
req.query
|
|
22396
22518
|
);
|
|
22397
22519
|
if (searchParamKeys.length === 0) {
|
|
@@ -22407,17 +22529,17 @@ async function listImagingStudysRoute(req, res) {
|
|
|
22407
22529
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
22408
22530
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
22409
22531
|
if (unknownCodes.length > 0) {
|
|
22410
|
-
return
|
|
22532
|
+
return sendInvalidSearch40016(
|
|
22411
22533
|
res,
|
|
22412
|
-
|
|
22534
|
+
buildUnknownParamDiagnostics16([...new Set(unknownCodes)])
|
|
22413
22535
|
);
|
|
22414
22536
|
}
|
|
22415
|
-
const malformedRef =
|
|
22537
|
+
const malformedRef = findMalformedReference16(
|
|
22416
22538
|
req.query,
|
|
22417
22539
|
searchParamKeys
|
|
22418
22540
|
);
|
|
22419
22541
|
if (malformedRef !== void 0) {
|
|
22420
|
-
return
|
|
22542
|
+
return sendInvalidSearch40016(
|
|
22421
22543
|
res,
|
|
22422
22544
|
`?${malformedRef.rawKey} must be a typed reference like "Patient/<id>"; got "${malformedRef.value}".`
|
|
22423
22545
|
);
|
|
@@ -22594,30 +22716,30 @@ async function listImmunizationsOperation(params) {
|
|
|
22594
22716
|
|
|
22595
22717
|
// src/data/rest-api/routes/data/immunization/immunization-list-route.ts
|
|
22596
22718
|
var IMMUNIZATION_RESOURCE_TYPE = "Immunization";
|
|
22597
|
-
function
|
|
22719
|
+
function stripModifier17(key) {
|
|
22598
22720
|
const idx = key.indexOf(":");
|
|
22599
22721
|
return idx === -1 ? key : key.slice(0, idx);
|
|
22600
22722
|
}
|
|
22601
|
-
function
|
|
22723
|
+
function isResultParameter17(key) {
|
|
22602
22724
|
return key.startsWith("_");
|
|
22603
22725
|
}
|
|
22604
|
-
function
|
|
22726
|
+
function sendInvalidSearch40017(res, diagnostics) {
|
|
22605
22727
|
return res.status(400).json({
|
|
22606
22728
|
resourceType: "OperationOutcome",
|
|
22607
22729
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
22608
22730
|
});
|
|
22609
22731
|
}
|
|
22610
|
-
function
|
|
22732
|
+
function extractSearchParamKeys17(query) {
|
|
22611
22733
|
const out = [];
|
|
22612
22734
|
for (const rawKey of Object.keys(query)) {
|
|
22613
|
-
if (
|
|
22735
|
+
if (isResultParameter17(rawKey)) {
|
|
22614
22736
|
continue;
|
|
22615
22737
|
}
|
|
22616
|
-
out.push({ rawKey, code:
|
|
22738
|
+
out.push({ rawKey, code: stripModifier17(rawKey) });
|
|
22617
22739
|
}
|
|
22618
22740
|
return out;
|
|
22619
22741
|
}
|
|
22620
|
-
function
|
|
22742
|
+
function buildUnknownParamDiagnostics17(unknownCodes) {
|
|
22621
22743
|
const validCodes = getRegisteredSearchParameters(IMMUNIZATION_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
22622
22744
|
const codes = unknownCodes.join(", ");
|
|
22623
22745
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -22626,7 +22748,7 @@ function buildUnknownParamDiagnostics16(unknownCodes) {
|
|
|
22626
22748
|
`Valid codes: ${validCodes}.`
|
|
22627
22749
|
].join(" ");
|
|
22628
22750
|
}
|
|
22629
|
-
function
|
|
22751
|
+
function findMalformedReference17(query, searchParamKeys) {
|
|
22630
22752
|
const referenceCodes = new Set(
|
|
22631
22753
|
getRegisteredSearchParameters(IMMUNIZATION_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
22632
22754
|
);
|
|
@@ -22649,7 +22771,7 @@ function findMalformedReference16(query, searchParamKeys) {
|
|
|
22649
22771
|
return void 0;
|
|
22650
22772
|
}
|
|
22651
22773
|
async function listImmunizationsRoute(req, res) {
|
|
22652
|
-
const searchParamKeys =
|
|
22774
|
+
const searchParamKeys = extractSearchParamKeys17(
|
|
22653
22775
|
req.query
|
|
22654
22776
|
);
|
|
22655
22777
|
if (searchParamKeys.length === 0) {
|
|
@@ -22665,17 +22787,17 @@ async function listImmunizationsRoute(req, res) {
|
|
|
22665
22787
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
22666
22788
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
22667
22789
|
if (unknownCodes.length > 0) {
|
|
22668
|
-
return
|
|
22790
|
+
return sendInvalidSearch40017(
|
|
22669
22791
|
res,
|
|
22670
|
-
|
|
22792
|
+
buildUnknownParamDiagnostics17([...new Set(unknownCodes)])
|
|
22671
22793
|
);
|
|
22672
22794
|
}
|
|
22673
|
-
const malformedRef =
|
|
22795
|
+
const malformedRef = findMalformedReference17(
|
|
22674
22796
|
req.query,
|
|
22675
22797
|
searchParamKeys
|
|
22676
22798
|
);
|
|
22677
22799
|
if (malformedRef !== void 0) {
|
|
22678
|
-
return
|
|
22800
|
+
return sendInvalidSearch40017(
|
|
22679
22801
|
res,
|
|
22680
22802
|
`?${malformedRef.rawKey} must be a typed reference like "Practitioner/<id>"; got "${malformedRef.value}".`
|
|
22681
22803
|
);
|
|
@@ -23557,30 +23679,30 @@ async function listInvoicesOperation(params) {
|
|
|
23557
23679
|
|
|
23558
23680
|
// src/data/rest-api/routes/data/invoice/invoice-list-route.ts
|
|
23559
23681
|
var INVOICE_RESOURCE_TYPE = "Invoice";
|
|
23560
|
-
function
|
|
23682
|
+
function stripModifier18(key) {
|
|
23561
23683
|
const idx = key.indexOf(":");
|
|
23562
23684
|
return idx === -1 ? key : key.slice(0, idx);
|
|
23563
23685
|
}
|
|
23564
|
-
function
|
|
23686
|
+
function isResultParameter18(key) {
|
|
23565
23687
|
return key.startsWith("_");
|
|
23566
23688
|
}
|
|
23567
|
-
function
|
|
23689
|
+
function sendInvalidSearch40018(res, diagnostics) {
|
|
23568
23690
|
return res.status(400).json({
|
|
23569
23691
|
resourceType: "OperationOutcome",
|
|
23570
23692
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
23571
23693
|
});
|
|
23572
23694
|
}
|
|
23573
|
-
function
|
|
23695
|
+
function extractSearchParamKeys18(query) {
|
|
23574
23696
|
const out = [];
|
|
23575
23697
|
for (const rawKey of Object.keys(query)) {
|
|
23576
|
-
if (
|
|
23698
|
+
if (isResultParameter18(rawKey)) {
|
|
23577
23699
|
continue;
|
|
23578
23700
|
}
|
|
23579
|
-
out.push({ rawKey, code:
|
|
23701
|
+
out.push({ rawKey, code: stripModifier18(rawKey) });
|
|
23580
23702
|
}
|
|
23581
23703
|
return out;
|
|
23582
23704
|
}
|
|
23583
|
-
function
|
|
23705
|
+
function buildUnknownParamDiagnostics18(unknownCodes) {
|
|
23584
23706
|
const validCodes = getRegisteredSearchParameters(INVOICE_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
23585
23707
|
const codes = unknownCodes.join(", ");
|
|
23586
23708
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -23589,7 +23711,7 @@ function buildUnknownParamDiagnostics17(unknownCodes) {
|
|
|
23589
23711
|
`Valid codes: ${validCodes}.`
|
|
23590
23712
|
].join(" ");
|
|
23591
23713
|
}
|
|
23592
|
-
function
|
|
23714
|
+
function findMalformedReference18(query, searchParamKeys) {
|
|
23593
23715
|
const referenceCodes = new Set(
|
|
23594
23716
|
getRegisteredSearchParameters(INVOICE_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
23595
23717
|
);
|
|
@@ -23615,7 +23737,7 @@ function findMalformedReference17(query, searchParamKeys) {
|
|
|
23615
23737
|
return void 0;
|
|
23616
23738
|
}
|
|
23617
23739
|
async function listInvoicesRoute(req, res) {
|
|
23618
|
-
const searchParamKeys =
|
|
23740
|
+
const searchParamKeys = extractSearchParamKeys18(
|
|
23619
23741
|
req.query
|
|
23620
23742
|
);
|
|
23621
23743
|
if (searchParamKeys.length === 0) {
|
|
@@ -23631,17 +23753,17 @@ async function listInvoicesRoute(req, res) {
|
|
|
23631
23753
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
23632
23754
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
23633
23755
|
if (unknownCodes.length > 0) {
|
|
23634
|
-
return
|
|
23756
|
+
return sendInvalidSearch40018(
|
|
23635
23757
|
res,
|
|
23636
|
-
|
|
23758
|
+
buildUnknownParamDiagnostics18([...new Set(unknownCodes)])
|
|
23637
23759
|
);
|
|
23638
23760
|
}
|
|
23639
|
-
const malformedRef =
|
|
23761
|
+
const malformedRef = findMalformedReference18(
|
|
23640
23762
|
req.query,
|
|
23641
23763
|
searchParamKeys
|
|
23642
23764
|
);
|
|
23643
23765
|
if (malformedRef !== void 0) {
|
|
23644
|
-
return
|
|
23766
|
+
return sendInvalidSearch40018(
|
|
23645
23767
|
res,
|
|
23646
23768
|
`?${malformedRef.rawKey} must be a typed reference like "Patient/<id>"; got "${malformedRef.value}".`
|
|
23647
23769
|
);
|
|
@@ -24313,30 +24435,30 @@ async function listLocationsOperation(params) {
|
|
|
24313
24435
|
|
|
24314
24436
|
// src/data/rest-api/routes/data/location/location-list-route.ts
|
|
24315
24437
|
var LOCATION_RESOURCE_TYPE = "Location";
|
|
24316
|
-
function
|
|
24438
|
+
function stripModifier19(key) {
|
|
24317
24439
|
const idx = key.indexOf(":");
|
|
24318
24440
|
return idx === -1 ? key : key.slice(0, idx);
|
|
24319
24441
|
}
|
|
24320
|
-
function
|
|
24442
|
+
function isResultParameter19(key) {
|
|
24321
24443
|
return key.startsWith("_");
|
|
24322
24444
|
}
|
|
24323
|
-
function
|
|
24445
|
+
function sendInvalidSearch40019(res, diagnostics) {
|
|
24324
24446
|
return res.status(400).json({
|
|
24325
24447
|
resourceType: "OperationOutcome",
|
|
24326
24448
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
24327
24449
|
});
|
|
24328
24450
|
}
|
|
24329
|
-
function
|
|
24451
|
+
function extractSearchParamKeys19(query) {
|
|
24330
24452
|
const out = [];
|
|
24331
24453
|
for (const rawKey of Object.keys(query)) {
|
|
24332
|
-
if (
|
|
24454
|
+
if (isResultParameter19(rawKey)) {
|
|
24333
24455
|
continue;
|
|
24334
24456
|
}
|
|
24335
|
-
out.push({ rawKey, code:
|
|
24457
|
+
out.push({ rawKey, code: stripModifier19(rawKey) });
|
|
24336
24458
|
}
|
|
24337
24459
|
return out;
|
|
24338
24460
|
}
|
|
24339
|
-
function
|
|
24461
|
+
function buildUnknownParamDiagnostics19(unknownCodes) {
|
|
24340
24462
|
const validCodes = getRegisteredSearchParameters(LOCATION_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
24341
24463
|
const codes = unknownCodes.join(", ");
|
|
24342
24464
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -24345,7 +24467,7 @@ function buildUnknownParamDiagnostics18(unknownCodes) {
|
|
|
24345
24467
|
`Valid codes: ${validCodes}.`
|
|
24346
24468
|
].join(" ");
|
|
24347
24469
|
}
|
|
24348
|
-
function
|
|
24470
|
+
function findMalformedReference19(query, searchParamKeys) {
|
|
24349
24471
|
const referenceCodes = new Set(
|
|
24350
24472
|
getRegisteredSearchParameters(LOCATION_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
24351
24473
|
);
|
|
@@ -24371,7 +24493,7 @@ function findMalformedReference18(query, searchParamKeys) {
|
|
|
24371
24493
|
return void 0;
|
|
24372
24494
|
}
|
|
24373
24495
|
async function listLocationsRoute(req, res) {
|
|
24374
|
-
const searchParamKeys =
|
|
24496
|
+
const searchParamKeys = extractSearchParamKeys19(
|
|
24375
24497
|
req.query
|
|
24376
24498
|
);
|
|
24377
24499
|
if (searchParamKeys.length === 0) {
|
|
@@ -24387,17 +24509,17 @@ async function listLocationsRoute(req, res) {
|
|
|
24387
24509
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
24388
24510
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
24389
24511
|
if (unknownCodes.length > 0) {
|
|
24390
|
-
return
|
|
24512
|
+
return sendInvalidSearch40019(
|
|
24391
24513
|
res,
|
|
24392
|
-
|
|
24514
|
+
buildUnknownParamDiagnostics19([...new Set(unknownCodes)])
|
|
24393
24515
|
);
|
|
24394
24516
|
}
|
|
24395
|
-
const malformedRef =
|
|
24517
|
+
const malformedRef = findMalformedReference19(
|
|
24396
24518
|
req.query,
|
|
24397
24519
|
searchParamKeys
|
|
24398
24520
|
);
|
|
24399
24521
|
if (malformedRef !== void 0) {
|
|
24400
|
-
return
|
|
24522
|
+
return sendInvalidSearch40019(
|
|
24401
24523
|
res,
|
|
24402
24524
|
`?${malformedRef.rawKey} must be a typed reference like "Patient/<id>"; got "${malformedRef.value}".`
|
|
24403
24525
|
);
|
|
@@ -25765,30 +25887,30 @@ async function listMedicationRequestsOperation(params) {
|
|
|
25765
25887
|
|
|
25766
25888
|
// src/data/rest-api/routes/data/medicationrequest/medicationrequest-list-route.ts
|
|
25767
25889
|
var MEDICATIONREQUEST_RESOURCE_TYPE = "MedicationRequest";
|
|
25768
|
-
function
|
|
25890
|
+
function stripModifier20(key) {
|
|
25769
25891
|
const idx = key.indexOf(":");
|
|
25770
25892
|
return idx === -1 ? key : key.slice(0, idx);
|
|
25771
25893
|
}
|
|
25772
|
-
function
|
|
25894
|
+
function isResultParameter20(key) {
|
|
25773
25895
|
return key.startsWith("_");
|
|
25774
25896
|
}
|
|
25775
|
-
function
|
|
25897
|
+
function sendInvalidSearch40020(res, diagnostics) {
|
|
25776
25898
|
return res.status(400).json({
|
|
25777
25899
|
resourceType: "OperationOutcome",
|
|
25778
25900
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
25779
25901
|
});
|
|
25780
25902
|
}
|
|
25781
|
-
function
|
|
25903
|
+
function extractSearchParamKeys20(query) {
|
|
25782
25904
|
const out = [];
|
|
25783
25905
|
for (const rawKey of Object.keys(query)) {
|
|
25784
|
-
if (
|
|
25906
|
+
if (isResultParameter20(rawKey)) {
|
|
25785
25907
|
continue;
|
|
25786
25908
|
}
|
|
25787
|
-
out.push({ rawKey, code:
|
|
25909
|
+
out.push({ rawKey, code: stripModifier20(rawKey) });
|
|
25788
25910
|
}
|
|
25789
25911
|
return out;
|
|
25790
25912
|
}
|
|
25791
|
-
function
|
|
25913
|
+
function buildUnknownParamDiagnostics20(unknownCodes) {
|
|
25792
25914
|
const validCodes = getRegisteredSearchParameters(
|
|
25793
25915
|
MEDICATIONREQUEST_RESOURCE_TYPE
|
|
25794
25916
|
).map((p) => p.code).sort().join(", ");
|
|
@@ -25799,7 +25921,7 @@ function buildUnknownParamDiagnostics19(unknownCodes) {
|
|
|
25799
25921
|
`Valid codes: ${validCodes}.`
|
|
25800
25922
|
].join(" ");
|
|
25801
25923
|
}
|
|
25802
|
-
function
|
|
25924
|
+
function findMalformedReference20(query, searchParamKeys) {
|
|
25803
25925
|
const referenceCodes = new Set(
|
|
25804
25926
|
getRegisteredSearchParameters(MEDICATIONREQUEST_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
25805
25927
|
);
|
|
@@ -25822,7 +25944,7 @@ function findMalformedReference19(query, searchParamKeys) {
|
|
|
25822
25944
|
return void 0;
|
|
25823
25945
|
}
|
|
25824
25946
|
async function listMedicationRequestsRoute(req, res) {
|
|
25825
|
-
const searchParamKeys =
|
|
25947
|
+
const searchParamKeys = extractSearchParamKeys20(
|
|
25826
25948
|
req.query
|
|
25827
25949
|
);
|
|
25828
25950
|
if (searchParamKeys.length === 0) {
|
|
@@ -25840,17 +25962,17 @@ async function listMedicationRequestsRoute(req, res) {
|
|
|
25840
25962
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
25841
25963
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
25842
25964
|
if (unknownCodes.length > 0) {
|
|
25843
|
-
return
|
|
25965
|
+
return sendInvalidSearch40020(
|
|
25844
25966
|
res,
|
|
25845
|
-
|
|
25967
|
+
buildUnknownParamDiagnostics20([...new Set(unknownCodes)])
|
|
25846
25968
|
);
|
|
25847
25969
|
}
|
|
25848
|
-
const malformedRef =
|
|
25970
|
+
const malformedRef = findMalformedReference20(
|
|
25849
25971
|
req.query,
|
|
25850
25972
|
searchParamKeys
|
|
25851
25973
|
);
|
|
25852
25974
|
if (malformedRef !== void 0) {
|
|
25853
|
-
return
|
|
25975
|
+
return sendInvalidSearch40020(
|
|
25854
25976
|
res,
|
|
25855
25977
|
`?${malformedRef.rawKey} must be a typed reference like "Practitioner/<id>"; got "${malformedRef.value}".`
|
|
25856
25978
|
);
|
|
@@ -26041,30 +26163,30 @@ async function listMedicationStatementsOperation(params) {
|
|
|
26041
26163
|
|
|
26042
26164
|
// src/data/rest-api/routes/data/medicationstatement/medicationstatement-list-route.ts
|
|
26043
26165
|
var MEDICATIONSTATEMENT_RESOURCE_TYPE = "MedicationStatement";
|
|
26044
|
-
function
|
|
26166
|
+
function stripModifier21(key) {
|
|
26045
26167
|
const idx = key.indexOf(":");
|
|
26046
26168
|
return idx === -1 ? key : key.slice(0, idx);
|
|
26047
26169
|
}
|
|
26048
|
-
function
|
|
26170
|
+
function isResultParameter21(key) {
|
|
26049
26171
|
return key.startsWith("_");
|
|
26050
26172
|
}
|
|
26051
|
-
function
|
|
26173
|
+
function sendInvalidSearch40021(res, diagnostics) {
|
|
26052
26174
|
return res.status(400).json({
|
|
26053
26175
|
resourceType: "OperationOutcome",
|
|
26054
26176
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
26055
26177
|
});
|
|
26056
26178
|
}
|
|
26057
|
-
function
|
|
26179
|
+
function extractSearchParamKeys21(query) {
|
|
26058
26180
|
const out = [];
|
|
26059
26181
|
for (const rawKey of Object.keys(query)) {
|
|
26060
|
-
if (
|
|
26182
|
+
if (isResultParameter21(rawKey)) {
|
|
26061
26183
|
continue;
|
|
26062
26184
|
}
|
|
26063
|
-
out.push({ rawKey, code:
|
|
26185
|
+
out.push({ rawKey, code: stripModifier21(rawKey) });
|
|
26064
26186
|
}
|
|
26065
26187
|
return out;
|
|
26066
26188
|
}
|
|
26067
|
-
function
|
|
26189
|
+
function buildUnknownParamDiagnostics21(unknownCodes) {
|
|
26068
26190
|
const validCodes = getRegisteredSearchParameters(
|
|
26069
26191
|
MEDICATIONSTATEMENT_RESOURCE_TYPE
|
|
26070
26192
|
).map((p) => p.code).sort().join(", ");
|
|
@@ -26075,7 +26197,7 @@ function buildUnknownParamDiagnostics20(unknownCodes) {
|
|
|
26075
26197
|
`Valid codes: ${validCodes}.`
|
|
26076
26198
|
].join(" ");
|
|
26077
26199
|
}
|
|
26078
|
-
function
|
|
26200
|
+
function findMalformedReference21(query, searchParamKeys) {
|
|
26079
26201
|
const referenceCodes = new Set(
|
|
26080
26202
|
getRegisteredSearchParameters(MEDICATIONSTATEMENT_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
26081
26203
|
);
|
|
@@ -26098,7 +26220,7 @@ function findMalformedReference20(query, searchParamKeys) {
|
|
|
26098
26220
|
return void 0;
|
|
26099
26221
|
}
|
|
26100
26222
|
async function listMedicationStatementsRoute(req, res) {
|
|
26101
|
-
const searchParamKeys =
|
|
26223
|
+
const searchParamKeys = extractSearchParamKeys21(
|
|
26102
26224
|
req.query
|
|
26103
26225
|
);
|
|
26104
26226
|
if (searchParamKeys.length === 0) {
|
|
@@ -26116,17 +26238,17 @@ async function listMedicationStatementsRoute(req, res) {
|
|
|
26116
26238
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
26117
26239
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
26118
26240
|
if (unknownCodes.length > 0) {
|
|
26119
|
-
return
|
|
26241
|
+
return sendInvalidSearch40021(
|
|
26120
26242
|
res,
|
|
26121
|
-
|
|
26243
|
+
buildUnknownParamDiagnostics21([...new Set(unknownCodes)])
|
|
26122
26244
|
);
|
|
26123
26245
|
}
|
|
26124
|
-
const malformedRef =
|
|
26246
|
+
const malformedRef = findMalformedReference21(
|
|
26125
26247
|
req.query,
|
|
26126
26248
|
searchParamKeys
|
|
26127
26249
|
);
|
|
26128
26250
|
if (malformedRef !== void 0) {
|
|
26129
|
-
return
|
|
26251
|
+
return sendInvalidSearch40021(
|
|
26130
26252
|
res,
|
|
26131
26253
|
`?${malformedRef.rawKey} must be a typed reference like "Practitioner/<id>"; got "${malformedRef.value}".`
|
|
26132
26254
|
);
|
|
@@ -28983,30 +29105,30 @@ async function listObservationsOperation(params) {
|
|
|
28983
29105
|
|
|
28984
29106
|
// src/data/rest-api/routes/data/observation/observation-list-route.ts
|
|
28985
29107
|
var OBSERVATION_RESOURCE_TYPE = "Observation";
|
|
28986
|
-
function
|
|
29108
|
+
function stripModifier22(key) {
|
|
28987
29109
|
const idx = key.indexOf(":");
|
|
28988
29110
|
return idx === -1 ? key : key.slice(0, idx);
|
|
28989
29111
|
}
|
|
28990
|
-
function
|
|
29112
|
+
function isResultParameter22(key) {
|
|
28991
29113
|
return key.startsWith("_");
|
|
28992
29114
|
}
|
|
28993
|
-
function
|
|
29115
|
+
function sendInvalidSearch40022(res, diagnostics) {
|
|
28994
29116
|
return res.status(400).json({
|
|
28995
29117
|
resourceType: "OperationOutcome",
|
|
28996
29118
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
28997
29119
|
});
|
|
28998
29120
|
}
|
|
28999
|
-
function
|
|
29121
|
+
function extractSearchParamKeys22(query) {
|
|
29000
29122
|
const out = [];
|
|
29001
29123
|
for (const rawKey of Object.keys(query)) {
|
|
29002
|
-
if (
|
|
29124
|
+
if (isResultParameter22(rawKey)) {
|
|
29003
29125
|
continue;
|
|
29004
29126
|
}
|
|
29005
|
-
out.push({ rawKey, code:
|
|
29127
|
+
out.push({ rawKey, code: stripModifier22(rawKey) });
|
|
29006
29128
|
}
|
|
29007
29129
|
return out;
|
|
29008
29130
|
}
|
|
29009
|
-
function
|
|
29131
|
+
function buildUnknownParamDiagnostics22(unknownCodes) {
|
|
29010
29132
|
const validCodes = getRegisteredSearchParameters(OBSERVATION_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
29011
29133
|
const codes = unknownCodes.join(", ");
|
|
29012
29134
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -29015,7 +29137,7 @@ function buildUnknownParamDiagnostics21(unknownCodes) {
|
|
|
29015
29137
|
`Valid codes: ${validCodes}.`
|
|
29016
29138
|
].join(" ");
|
|
29017
29139
|
}
|
|
29018
|
-
function
|
|
29140
|
+
function findMalformedReference22(query, searchParamKeys) {
|
|
29019
29141
|
const referenceCodes = new Set(
|
|
29020
29142
|
getRegisteredSearchParameters(OBSERVATION_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
29021
29143
|
);
|
|
@@ -29038,7 +29160,7 @@ function findMalformedReference21(query, searchParamKeys) {
|
|
|
29038
29160
|
return void 0;
|
|
29039
29161
|
}
|
|
29040
29162
|
async function listObservationsRoute(req, res) {
|
|
29041
|
-
const searchParamKeys =
|
|
29163
|
+
const searchParamKeys = extractSearchParamKeys22(
|
|
29042
29164
|
req.query
|
|
29043
29165
|
);
|
|
29044
29166
|
if (searchParamKeys.length === 0) {
|
|
@@ -29054,17 +29176,17 @@ async function listObservationsRoute(req, res) {
|
|
|
29054
29176
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
29055
29177
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
29056
29178
|
if (unknownCodes.length > 0) {
|
|
29057
|
-
return
|
|
29179
|
+
return sendInvalidSearch40022(
|
|
29058
29180
|
res,
|
|
29059
|
-
|
|
29181
|
+
buildUnknownParamDiagnostics22([...new Set(unknownCodes)])
|
|
29060
29182
|
);
|
|
29061
29183
|
}
|
|
29062
|
-
const malformedRef =
|
|
29184
|
+
const malformedRef = findMalformedReference22(
|
|
29063
29185
|
req.query,
|
|
29064
29186
|
searchParamKeys
|
|
29065
29187
|
);
|
|
29066
29188
|
if (malformedRef !== void 0) {
|
|
29067
|
-
return
|
|
29189
|
+
return sendInvalidSearch40022(
|
|
29068
29190
|
res,
|
|
29069
29191
|
`?${malformedRef.rawKey} must be a typed reference like "Practitioner/<id>"; got "${malformedRef.value}".`
|
|
29070
29192
|
);
|
|
@@ -29570,30 +29692,30 @@ async function listOrganizationsOperation(params) {
|
|
|
29570
29692
|
|
|
29571
29693
|
// src/data/rest-api/routes/data/organization/organization-list-route.ts
|
|
29572
29694
|
var ORGANIZATION_RESOURCE_TYPE = "Organization";
|
|
29573
|
-
function
|
|
29695
|
+
function stripModifier23(key) {
|
|
29574
29696
|
const idx = key.indexOf(":");
|
|
29575
29697
|
return idx === -1 ? key : key.slice(0, idx);
|
|
29576
29698
|
}
|
|
29577
|
-
function
|
|
29699
|
+
function isResultParameter23(key) {
|
|
29578
29700
|
return key.startsWith("_");
|
|
29579
29701
|
}
|
|
29580
|
-
function
|
|
29702
|
+
function sendInvalidSearch40023(res, diagnostics) {
|
|
29581
29703
|
return res.status(400).json({
|
|
29582
29704
|
resourceType: "OperationOutcome",
|
|
29583
29705
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
29584
29706
|
});
|
|
29585
29707
|
}
|
|
29586
|
-
function
|
|
29708
|
+
function extractSearchParamKeys23(query) {
|
|
29587
29709
|
const out = [];
|
|
29588
29710
|
for (const rawKey of Object.keys(query)) {
|
|
29589
|
-
if (
|
|
29711
|
+
if (isResultParameter23(rawKey)) {
|
|
29590
29712
|
continue;
|
|
29591
29713
|
}
|
|
29592
|
-
out.push({ rawKey, code:
|
|
29714
|
+
out.push({ rawKey, code: stripModifier23(rawKey) });
|
|
29593
29715
|
}
|
|
29594
29716
|
return out;
|
|
29595
29717
|
}
|
|
29596
|
-
function
|
|
29718
|
+
function buildUnknownParamDiagnostics23(unknownCodes) {
|
|
29597
29719
|
const validCodes = getRegisteredSearchParameters(ORGANIZATION_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
29598
29720
|
const codes = unknownCodes.join(", ");
|
|
29599
29721
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -29602,7 +29724,7 @@ function buildUnknownParamDiagnostics22(unknownCodes) {
|
|
|
29602
29724
|
`Valid codes: ${validCodes}.`
|
|
29603
29725
|
].join(" ");
|
|
29604
29726
|
}
|
|
29605
|
-
function
|
|
29727
|
+
function findMalformedReference23(query, searchParamKeys) {
|
|
29606
29728
|
const referenceCodes = new Set(
|
|
29607
29729
|
getRegisteredSearchParameters(ORGANIZATION_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
29608
29730
|
);
|
|
@@ -29628,7 +29750,7 @@ function findMalformedReference22(query, searchParamKeys) {
|
|
|
29628
29750
|
return void 0;
|
|
29629
29751
|
}
|
|
29630
29752
|
async function listOrganizationsRoute(req, res) {
|
|
29631
|
-
const searchParamKeys =
|
|
29753
|
+
const searchParamKeys = extractSearchParamKeys23(
|
|
29632
29754
|
req.query
|
|
29633
29755
|
);
|
|
29634
29756
|
if (searchParamKeys.length === 0) {
|
|
@@ -29644,17 +29766,17 @@ async function listOrganizationsRoute(req, res) {
|
|
|
29644
29766
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
29645
29767
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
29646
29768
|
if (unknownCodes.length > 0) {
|
|
29647
|
-
return
|
|
29769
|
+
return sendInvalidSearch40023(
|
|
29648
29770
|
res,
|
|
29649
|
-
|
|
29771
|
+
buildUnknownParamDiagnostics23([...new Set(unknownCodes)])
|
|
29650
29772
|
);
|
|
29651
29773
|
}
|
|
29652
|
-
const malformedRef =
|
|
29774
|
+
const malformedRef = findMalformedReference23(
|
|
29653
29775
|
req.query,
|
|
29654
29776
|
searchParamKeys
|
|
29655
29777
|
);
|
|
29656
29778
|
if (malformedRef !== void 0) {
|
|
29657
|
-
return
|
|
29779
|
+
return sendInvalidSearch40023(
|
|
29658
29780
|
res,
|
|
29659
29781
|
`?${malformedRef.rawKey} must be a typed reference like "Patient/<id>"; got "${malformedRef.value}".`
|
|
29660
29782
|
);
|
|
@@ -30015,30 +30137,30 @@ async function listPatientsOperation(params) {
|
|
|
30015
30137
|
|
|
30016
30138
|
// src/data/rest-api/routes/data/patient/patient-list-route.ts
|
|
30017
30139
|
var PATIENT_RESOURCE_TYPE = "Patient";
|
|
30018
|
-
function
|
|
30140
|
+
function stripModifier24(key) {
|
|
30019
30141
|
const idx = key.indexOf(":");
|
|
30020
30142
|
return idx === -1 ? key : key.slice(0, idx);
|
|
30021
30143
|
}
|
|
30022
|
-
function
|
|
30144
|
+
function isResultParameter24(key) {
|
|
30023
30145
|
return key.startsWith("_");
|
|
30024
30146
|
}
|
|
30025
|
-
function
|
|
30147
|
+
function sendInvalidSearch40024(res, diagnostics) {
|
|
30026
30148
|
return res.status(400).json({
|
|
30027
30149
|
resourceType: "OperationOutcome",
|
|
30028
30150
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
30029
30151
|
});
|
|
30030
30152
|
}
|
|
30031
|
-
function
|
|
30153
|
+
function extractSearchParamKeys24(query) {
|
|
30032
30154
|
const out = [];
|
|
30033
30155
|
for (const rawKey of Object.keys(query)) {
|
|
30034
|
-
if (
|
|
30156
|
+
if (isResultParameter24(rawKey)) {
|
|
30035
30157
|
continue;
|
|
30036
30158
|
}
|
|
30037
|
-
out.push({ rawKey, code:
|
|
30159
|
+
out.push({ rawKey, code: stripModifier24(rawKey) });
|
|
30038
30160
|
}
|
|
30039
30161
|
return out;
|
|
30040
30162
|
}
|
|
30041
|
-
function
|
|
30163
|
+
function buildUnknownParamDiagnostics24(unknownCodes) {
|
|
30042
30164
|
const validCodes = getRegisteredSearchParameters(PATIENT_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
30043
30165
|
const codes = unknownCodes.join(", ");
|
|
30044
30166
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -30047,7 +30169,7 @@ function buildUnknownParamDiagnostics23(unknownCodes) {
|
|
|
30047
30169
|
`Valid codes: ${validCodes}.`
|
|
30048
30170
|
].join(" ");
|
|
30049
30171
|
}
|
|
30050
|
-
function
|
|
30172
|
+
function findMalformedReference24(query, searchParamKeys) {
|
|
30051
30173
|
const referenceCodes = new Set(
|
|
30052
30174
|
getRegisteredSearchParameters(PATIENT_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
30053
30175
|
);
|
|
@@ -30070,7 +30192,7 @@ function findMalformedReference23(query, searchParamKeys) {
|
|
|
30070
30192
|
return void 0;
|
|
30071
30193
|
}
|
|
30072
30194
|
async function listPatientsRoute(req, res) {
|
|
30073
|
-
const searchParamKeys =
|
|
30195
|
+
const searchParamKeys = extractSearchParamKeys24(
|
|
30074
30196
|
req.query
|
|
30075
30197
|
);
|
|
30076
30198
|
if (searchParamKeys.length === 0) {
|
|
@@ -30086,17 +30208,17 @@ async function listPatientsRoute(req, res) {
|
|
|
30086
30208
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
30087
30209
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
30088
30210
|
if (unknownCodes.length > 0) {
|
|
30089
|
-
return
|
|
30211
|
+
return sendInvalidSearch40024(
|
|
30090
30212
|
res,
|
|
30091
|
-
|
|
30213
|
+
buildUnknownParamDiagnostics24([...new Set(unknownCodes)])
|
|
30092
30214
|
);
|
|
30093
30215
|
}
|
|
30094
|
-
const malformedRef =
|
|
30216
|
+
const malformedRef = findMalformedReference24(
|
|
30095
30217
|
req.query,
|
|
30096
30218
|
searchParamKeys
|
|
30097
30219
|
);
|
|
30098
30220
|
if (malformedRef !== void 0) {
|
|
30099
|
-
return
|
|
30221
|
+
return sendInvalidSearch40024(
|
|
30100
30222
|
res,
|
|
30101
30223
|
`?${malformedRef.rawKey} must be a typed reference like "Practitioner/<id>"; got "${malformedRef.value}".`
|
|
30102
30224
|
);
|
|
@@ -30273,30 +30395,30 @@ async function listPaymentNoticesOperation(params) {
|
|
|
30273
30395
|
|
|
30274
30396
|
// src/data/rest-api/routes/data/paymentnotice/paymentnotice-list-route.ts
|
|
30275
30397
|
var PAYMENTNOTICE_RESOURCE_TYPE = "PaymentNotice";
|
|
30276
|
-
function
|
|
30398
|
+
function stripModifier25(key) {
|
|
30277
30399
|
const idx = key.indexOf(":");
|
|
30278
30400
|
return idx === -1 ? key : key.slice(0, idx);
|
|
30279
30401
|
}
|
|
30280
|
-
function
|
|
30402
|
+
function isResultParameter25(key) {
|
|
30281
30403
|
return key.startsWith("_");
|
|
30282
30404
|
}
|
|
30283
|
-
function
|
|
30405
|
+
function sendInvalidSearch40025(res, diagnostics) {
|
|
30284
30406
|
return res.status(400).json({
|
|
30285
30407
|
resourceType: "OperationOutcome",
|
|
30286
30408
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
30287
30409
|
});
|
|
30288
30410
|
}
|
|
30289
|
-
function
|
|
30411
|
+
function extractSearchParamKeys25(query) {
|
|
30290
30412
|
const out = [];
|
|
30291
30413
|
for (const rawKey of Object.keys(query)) {
|
|
30292
|
-
if (
|
|
30414
|
+
if (isResultParameter25(rawKey)) {
|
|
30293
30415
|
continue;
|
|
30294
30416
|
}
|
|
30295
|
-
out.push({ rawKey, code:
|
|
30417
|
+
out.push({ rawKey, code: stripModifier25(rawKey) });
|
|
30296
30418
|
}
|
|
30297
30419
|
return out;
|
|
30298
30420
|
}
|
|
30299
|
-
function
|
|
30421
|
+
function buildUnknownParamDiagnostics25(unknownCodes) {
|
|
30300
30422
|
const validCodes = getRegisteredSearchParameters(PAYMENTNOTICE_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
30301
30423
|
const codes = unknownCodes.join(", ");
|
|
30302
30424
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -30305,7 +30427,7 @@ function buildUnknownParamDiagnostics24(unknownCodes) {
|
|
|
30305
30427
|
`Valid codes: ${validCodes}.`
|
|
30306
30428
|
].join(" ");
|
|
30307
30429
|
}
|
|
30308
|
-
function
|
|
30430
|
+
function findMalformedReference25(query, searchParamKeys) {
|
|
30309
30431
|
const referenceCodes = new Set(
|
|
30310
30432
|
getRegisteredSearchParameters(PAYMENTNOTICE_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
30311
30433
|
);
|
|
@@ -30331,7 +30453,7 @@ function findMalformedReference24(query, searchParamKeys) {
|
|
|
30331
30453
|
return void 0;
|
|
30332
30454
|
}
|
|
30333
30455
|
async function listPaymentNoticesRoute(req, res) {
|
|
30334
|
-
const searchParamKeys =
|
|
30456
|
+
const searchParamKeys = extractSearchParamKeys25(
|
|
30335
30457
|
req.query
|
|
30336
30458
|
);
|
|
30337
30459
|
if (searchParamKeys.length === 0) {
|
|
@@ -30347,17 +30469,17 @@ async function listPaymentNoticesRoute(req, res) {
|
|
|
30347
30469
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
30348
30470
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
30349
30471
|
if (unknownCodes.length > 0) {
|
|
30350
|
-
return
|
|
30472
|
+
return sendInvalidSearch40025(
|
|
30351
30473
|
res,
|
|
30352
|
-
|
|
30474
|
+
buildUnknownParamDiagnostics25([...new Set(unknownCodes)])
|
|
30353
30475
|
);
|
|
30354
30476
|
}
|
|
30355
|
-
const malformedRef =
|
|
30477
|
+
const malformedRef = findMalformedReference25(
|
|
30356
30478
|
req.query,
|
|
30357
30479
|
searchParamKeys
|
|
30358
30480
|
);
|
|
30359
30481
|
if (malformedRef !== void 0) {
|
|
30360
|
-
return
|
|
30482
|
+
return sendInvalidSearch40025(
|
|
30361
30483
|
res,
|
|
30362
30484
|
`?${malformedRef.rawKey} must be a typed reference like "Practitioner/<id>"; got "${malformedRef.value}".`
|
|
30363
30485
|
);
|
|
@@ -31055,30 +31177,30 @@ async function listPractitionersOperation(params) {
|
|
|
31055
31177
|
|
|
31056
31178
|
// src/data/rest-api/routes/data/practitioner/practitioner-list-route.ts
|
|
31057
31179
|
var PRACTITIONER_RESOURCE_TYPE = "Practitioner";
|
|
31058
|
-
function
|
|
31180
|
+
function stripModifier26(key) {
|
|
31059
31181
|
const idx = key.indexOf(":");
|
|
31060
31182
|
return idx === -1 ? key : key.slice(0, idx);
|
|
31061
31183
|
}
|
|
31062
|
-
function
|
|
31184
|
+
function isResultParameter26(key) {
|
|
31063
31185
|
return key.startsWith("_");
|
|
31064
31186
|
}
|
|
31065
|
-
function
|
|
31187
|
+
function sendInvalidSearch40026(res, diagnostics) {
|
|
31066
31188
|
return res.status(400).json({
|
|
31067
31189
|
resourceType: "OperationOutcome",
|
|
31068
31190
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
31069
31191
|
});
|
|
31070
31192
|
}
|
|
31071
|
-
function
|
|
31193
|
+
function extractSearchParamKeys26(query) {
|
|
31072
31194
|
const out = [];
|
|
31073
31195
|
for (const rawKey of Object.keys(query)) {
|
|
31074
|
-
if (
|
|
31196
|
+
if (isResultParameter26(rawKey)) {
|
|
31075
31197
|
continue;
|
|
31076
31198
|
}
|
|
31077
|
-
out.push({ rawKey, code:
|
|
31199
|
+
out.push({ rawKey, code: stripModifier26(rawKey) });
|
|
31078
31200
|
}
|
|
31079
31201
|
return out;
|
|
31080
31202
|
}
|
|
31081
|
-
function
|
|
31203
|
+
function buildUnknownParamDiagnostics26(unknownCodes) {
|
|
31082
31204
|
const validCodes = getRegisteredSearchParameters(PRACTITIONER_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
31083
31205
|
const codes = unknownCodes.join(", ");
|
|
31084
31206
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -31087,7 +31209,7 @@ function buildUnknownParamDiagnostics25(unknownCodes) {
|
|
|
31087
31209
|
`Valid codes: ${validCodes}.`
|
|
31088
31210
|
].join(" ");
|
|
31089
31211
|
}
|
|
31090
|
-
function
|
|
31212
|
+
function findMalformedReference26(query, searchParamKeys) {
|
|
31091
31213
|
const referenceCodes = new Set(
|
|
31092
31214
|
getRegisteredSearchParameters(PRACTITIONER_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
31093
31215
|
);
|
|
@@ -31113,7 +31235,7 @@ function findMalformedReference25(query, searchParamKeys) {
|
|
|
31113
31235
|
return void 0;
|
|
31114
31236
|
}
|
|
31115
31237
|
async function listPractitionersRoute(req, res) {
|
|
31116
|
-
const searchParamKeys =
|
|
31238
|
+
const searchParamKeys = extractSearchParamKeys26(
|
|
31117
31239
|
req.query
|
|
31118
31240
|
);
|
|
31119
31241
|
if (searchParamKeys.length === 0) {
|
|
@@ -31129,17 +31251,17 @@ async function listPractitionersRoute(req, res) {
|
|
|
31129
31251
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
31130
31252
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
31131
31253
|
if (unknownCodes.length > 0) {
|
|
31132
|
-
return
|
|
31254
|
+
return sendInvalidSearch40026(
|
|
31133
31255
|
res,
|
|
31134
|
-
|
|
31256
|
+
buildUnknownParamDiagnostics26([...new Set(unknownCodes)])
|
|
31135
31257
|
);
|
|
31136
31258
|
}
|
|
31137
|
-
const malformedRef =
|
|
31259
|
+
const malformedRef = findMalformedReference26(
|
|
31138
31260
|
req.query,
|
|
31139
31261
|
searchParamKeys
|
|
31140
31262
|
);
|
|
31141
31263
|
if (malformedRef !== void 0) {
|
|
31142
|
-
return
|
|
31264
|
+
return sendInvalidSearch40026(
|
|
31143
31265
|
res,
|
|
31144
31266
|
`?${malformedRef.rawKey} must be a typed reference like "Practitioner/<id>"; got "${malformedRef.value}".`
|
|
31145
31267
|
);
|
|
@@ -31295,30 +31417,30 @@ async function getPractitionerRoleByIdRoute(req, res) {
|
|
|
31295
31417
|
|
|
31296
31418
|
// src/data/rest-api/routes/data/practitionerrole/practitionerrole-list-route.ts
|
|
31297
31419
|
var PRACTITIONERROLE_RESOURCE_TYPE = "PractitionerRole";
|
|
31298
|
-
function
|
|
31420
|
+
function stripModifier27(key) {
|
|
31299
31421
|
const idx = key.indexOf(":");
|
|
31300
31422
|
return idx === -1 ? key : key.slice(0, idx);
|
|
31301
31423
|
}
|
|
31302
|
-
function
|
|
31424
|
+
function isResultParameter27(key) {
|
|
31303
31425
|
return key.startsWith("_");
|
|
31304
31426
|
}
|
|
31305
|
-
function
|
|
31427
|
+
function sendInvalidSearch40027(res, diagnostics) {
|
|
31306
31428
|
return res.status(400).json({
|
|
31307
31429
|
resourceType: "OperationOutcome",
|
|
31308
31430
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
31309
31431
|
});
|
|
31310
31432
|
}
|
|
31311
|
-
function
|
|
31433
|
+
function extractSearchParamKeys27(query) {
|
|
31312
31434
|
const out = [];
|
|
31313
31435
|
for (const rawKey of Object.keys(query)) {
|
|
31314
|
-
if (
|
|
31436
|
+
if (isResultParameter27(rawKey)) {
|
|
31315
31437
|
continue;
|
|
31316
31438
|
}
|
|
31317
|
-
out.push({ rawKey, code:
|
|
31439
|
+
out.push({ rawKey, code: stripModifier27(rawKey) });
|
|
31318
31440
|
}
|
|
31319
31441
|
return out;
|
|
31320
31442
|
}
|
|
31321
|
-
function
|
|
31443
|
+
function buildUnknownParamDiagnostics27(unknownCodes) {
|
|
31322
31444
|
const validCodes = getRegisteredSearchParameters(
|
|
31323
31445
|
PRACTITIONERROLE_RESOURCE_TYPE
|
|
31324
31446
|
).map((p) => p.code).sort().join(", ");
|
|
@@ -31329,7 +31451,7 @@ function buildUnknownParamDiagnostics26(unknownCodes) {
|
|
|
31329
31451
|
`Valid codes: ${validCodes}.`
|
|
31330
31452
|
].join(" ");
|
|
31331
31453
|
}
|
|
31332
|
-
function
|
|
31454
|
+
function findMalformedReference27(query, searchParamKeys) {
|
|
31333
31455
|
const referenceCodes = new Set(
|
|
31334
31456
|
getRegisteredSearchParameters(PRACTITIONERROLE_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
31335
31457
|
);
|
|
@@ -31352,7 +31474,7 @@ function findMalformedReference26(query, searchParamKeys) {
|
|
|
31352
31474
|
return void 0;
|
|
31353
31475
|
}
|
|
31354
31476
|
async function listPractitionerRolesRoute(req, res) {
|
|
31355
|
-
const searchParamKeys =
|
|
31477
|
+
const searchParamKeys = extractSearchParamKeys27(
|
|
31356
31478
|
req.query
|
|
31357
31479
|
);
|
|
31358
31480
|
if (searchParamKeys.length === 0) {
|
|
@@ -31370,17 +31492,17 @@ async function listPractitionerRolesRoute(req, res) {
|
|
|
31370
31492
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
31371
31493
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
31372
31494
|
if (unknownCodes.length > 0) {
|
|
31373
|
-
return
|
|
31495
|
+
return sendInvalidSearch40027(
|
|
31374
31496
|
res,
|
|
31375
|
-
|
|
31497
|
+
buildUnknownParamDiagnostics27([...new Set(unknownCodes)])
|
|
31376
31498
|
);
|
|
31377
31499
|
}
|
|
31378
|
-
const malformedRef =
|
|
31500
|
+
const malformedRef = findMalformedReference27(
|
|
31379
31501
|
req.query,
|
|
31380
31502
|
searchParamKeys
|
|
31381
31503
|
);
|
|
31382
31504
|
if (malformedRef !== void 0) {
|
|
31383
|
-
return
|
|
31505
|
+
return sendInvalidSearch40027(
|
|
31384
31506
|
res,
|
|
31385
31507
|
`?${malformedRef.rawKey} must be a typed reference like "Practitioner/<id>"; got "${malformedRef.value}".`
|
|
31386
31508
|
);
|
|
@@ -31564,30 +31686,30 @@ async function listProceduresOperation(params) {
|
|
|
31564
31686
|
|
|
31565
31687
|
// src/data/rest-api/routes/data/procedure/procedure-list-route.ts
|
|
31566
31688
|
var PROCEDURE_RESOURCE_TYPE = "Procedure";
|
|
31567
|
-
function
|
|
31689
|
+
function stripModifier28(key) {
|
|
31568
31690
|
const idx = key.indexOf(":");
|
|
31569
31691
|
return idx === -1 ? key : key.slice(0, idx);
|
|
31570
31692
|
}
|
|
31571
|
-
function
|
|
31693
|
+
function isResultParameter28(key) {
|
|
31572
31694
|
return key.startsWith("_");
|
|
31573
31695
|
}
|
|
31574
|
-
function
|
|
31696
|
+
function sendInvalidSearch40028(res, diagnostics) {
|
|
31575
31697
|
return res.status(400).json({
|
|
31576
31698
|
resourceType: "OperationOutcome",
|
|
31577
31699
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
31578
31700
|
});
|
|
31579
31701
|
}
|
|
31580
|
-
function
|
|
31702
|
+
function extractSearchParamKeys28(query) {
|
|
31581
31703
|
const out = [];
|
|
31582
31704
|
for (const rawKey of Object.keys(query)) {
|
|
31583
|
-
if (
|
|
31705
|
+
if (isResultParameter28(rawKey)) {
|
|
31584
31706
|
continue;
|
|
31585
31707
|
}
|
|
31586
|
-
out.push({ rawKey, code:
|
|
31708
|
+
out.push({ rawKey, code: stripModifier28(rawKey) });
|
|
31587
31709
|
}
|
|
31588
31710
|
return out;
|
|
31589
31711
|
}
|
|
31590
|
-
function
|
|
31712
|
+
function buildUnknownParamDiagnostics28(unknownCodes) {
|
|
31591
31713
|
const validCodes = getRegisteredSearchParameters(PROCEDURE_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
31592
31714
|
const codes = unknownCodes.join(", ");
|
|
31593
31715
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -31596,7 +31718,7 @@ function buildUnknownParamDiagnostics27(unknownCodes) {
|
|
|
31596
31718
|
`Valid codes: ${validCodes}.`
|
|
31597
31719
|
].join(" ");
|
|
31598
31720
|
}
|
|
31599
|
-
function
|
|
31721
|
+
function findMalformedReference28(query, searchParamKeys) {
|
|
31600
31722
|
const referenceCodes = new Set(
|
|
31601
31723
|
getRegisteredSearchParameters(PROCEDURE_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
31602
31724
|
);
|
|
@@ -31619,7 +31741,7 @@ function findMalformedReference27(query, searchParamKeys) {
|
|
|
31619
31741
|
return void 0;
|
|
31620
31742
|
}
|
|
31621
31743
|
async function listProceduresRoute(req, res) {
|
|
31622
|
-
const searchParamKeys =
|
|
31744
|
+
const searchParamKeys = extractSearchParamKeys28(
|
|
31623
31745
|
req.query
|
|
31624
31746
|
);
|
|
31625
31747
|
if (searchParamKeys.length === 0) {
|
|
@@ -31635,17 +31757,17 @@ async function listProceduresRoute(req, res) {
|
|
|
31635
31757
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
31636
31758
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
31637
31759
|
if (unknownCodes.length > 0) {
|
|
31638
|
-
return
|
|
31760
|
+
return sendInvalidSearch40028(
|
|
31639
31761
|
res,
|
|
31640
|
-
|
|
31762
|
+
buildUnknownParamDiagnostics28([...new Set(unknownCodes)])
|
|
31641
31763
|
);
|
|
31642
31764
|
}
|
|
31643
|
-
const malformedRef =
|
|
31765
|
+
const malformedRef = findMalformedReference28(
|
|
31644
31766
|
req.query,
|
|
31645
31767
|
searchParamKeys
|
|
31646
31768
|
);
|
|
31647
31769
|
if (malformedRef !== void 0) {
|
|
31648
|
-
return
|
|
31770
|
+
return sendInvalidSearch40028(
|
|
31649
31771
|
res,
|
|
31650
31772
|
`?${malformedRef.rawKey} must be a typed reference like "Practitioner/<id>"; got "${malformedRef.value}".`
|
|
31651
31773
|
);
|
|
@@ -32336,30 +32458,30 @@ async function listRelatedPersonsOperation(params) {
|
|
|
32336
32458
|
|
|
32337
32459
|
// src/data/rest-api/routes/data/relatedperson/relatedperson-list-route.ts
|
|
32338
32460
|
var RELATEDPERSON_RESOURCE_TYPE = "RelatedPerson";
|
|
32339
|
-
function
|
|
32461
|
+
function stripModifier29(key) {
|
|
32340
32462
|
const idx = key.indexOf(":");
|
|
32341
32463
|
return idx === -1 ? key : key.slice(0, idx);
|
|
32342
32464
|
}
|
|
32343
|
-
function
|
|
32465
|
+
function isResultParameter29(key) {
|
|
32344
32466
|
return key.startsWith("_");
|
|
32345
32467
|
}
|
|
32346
|
-
function
|
|
32468
|
+
function sendInvalidSearch40029(res, diagnostics) {
|
|
32347
32469
|
return res.status(400).json({
|
|
32348
32470
|
resourceType: "OperationOutcome",
|
|
32349
32471
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
32350
32472
|
});
|
|
32351
32473
|
}
|
|
32352
|
-
function
|
|
32474
|
+
function extractSearchParamKeys29(query) {
|
|
32353
32475
|
const out = [];
|
|
32354
32476
|
for (const rawKey of Object.keys(query)) {
|
|
32355
|
-
if (
|
|
32477
|
+
if (isResultParameter29(rawKey)) {
|
|
32356
32478
|
continue;
|
|
32357
32479
|
}
|
|
32358
|
-
out.push({ rawKey, code:
|
|
32480
|
+
out.push({ rawKey, code: stripModifier29(rawKey) });
|
|
32359
32481
|
}
|
|
32360
32482
|
return out;
|
|
32361
32483
|
}
|
|
32362
|
-
function
|
|
32484
|
+
function buildUnknownParamDiagnostics29(unknownCodes) {
|
|
32363
32485
|
const validCodes = getRegisteredSearchParameters(RELATEDPERSON_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
32364
32486
|
const codes = unknownCodes.join(", ");
|
|
32365
32487
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -32368,7 +32490,7 @@ function buildUnknownParamDiagnostics28(unknownCodes) {
|
|
|
32368
32490
|
`Valid codes: ${validCodes}.`
|
|
32369
32491
|
].join(" ");
|
|
32370
32492
|
}
|
|
32371
|
-
function
|
|
32493
|
+
function findMalformedReference29(query, searchParamKeys) {
|
|
32372
32494
|
const referenceCodes = new Set(
|
|
32373
32495
|
getRegisteredSearchParameters(RELATEDPERSON_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
32374
32496
|
);
|
|
@@ -32391,7 +32513,7 @@ function findMalformedReference28(query, searchParamKeys) {
|
|
|
32391
32513
|
return void 0;
|
|
32392
32514
|
}
|
|
32393
32515
|
async function listRelatedPersonsRoute(req, res) {
|
|
32394
|
-
const searchParamKeys =
|
|
32516
|
+
const searchParamKeys = extractSearchParamKeys29(
|
|
32395
32517
|
req.query
|
|
32396
32518
|
);
|
|
32397
32519
|
if (searchParamKeys.length === 0) {
|
|
@@ -32407,17 +32529,17 @@ async function listRelatedPersonsRoute(req, res) {
|
|
|
32407
32529
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
32408
32530
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
32409
32531
|
if (unknownCodes.length > 0) {
|
|
32410
|
-
return
|
|
32532
|
+
return sendInvalidSearch40029(
|
|
32411
32533
|
res,
|
|
32412
|
-
|
|
32534
|
+
buildUnknownParamDiagnostics29([...new Set(unknownCodes)])
|
|
32413
32535
|
);
|
|
32414
32536
|
}
|
|
32415
|
-
const malformedRef =
|
|
32537
|
+
const malformedRef = findMalformedReference29(
|
|
32416
32538
|
req.query,
|
|
32417
32539
|
searchParamKeys
|
|
32418
32540
|
);
|
|
32419
32541
|
if (malformedRef !== void 0) {
|
|
32420
|
-
return
|
|
32542
|
+
return sendInvalidSearch40029(
|
|
32421
32543
|
res,
|
|
32422
32544
|
`?${malformedRef.rawKey} must be a typed reference like "Practitioner/<id>"; got "${malformedRef.value}".`
|
|
32423
32545
|
);
|
|
@@ -33451,15 +33573,120 @@ async function listRiskAssessmentsOperation(params) {
|
|
|
33451
33573
|
}
|
|
33452
33574
|
|
|
33453
33575
|
// src/data/rest-api/routes/data/riskassessment/riskassessment-list-route.ts
|
|
33454
|
-
|
|
33455
|
-
|
|
33456
|
-
|
|
33457
|
-
|
|
33458
|
-
|
|
33459
|
-
|
|
33460
|
-
|
|
33576
|
+
var RISKASSESSMENT_RESOURCE_TYPE = "RiskAssessment";
|
|
33577
|
+
function stripModifier30(key) {
|
|
33578
|
+
const idx = key.indexOf(":");
|
|
33579
|
+
return idx === -1 ? key : key.slice(0, idx);
|
|
33580
|
+
}
|
|
33581
|
+
function isResultParameter30(key) {
|
|
33582
|
+
return key.startsWith("_");
|
|
33583
|
+
}
|
|
33584
|
+
function sendInvalidSearch40030(res, diagnostics) {
|
|
33585
|
+
return res.status(400).json({
|
|
33586
|
+
resourceType: "OperationOutcome",
|
|
33587
|
+
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
33461
33588
|
});
|
|
33462
33589
|
}
|
|
33590
|
+
function extractSearchParamKeys30(query) {
|
|
33591
|
+
const out = [];
|
|
33592
|
+
for (const rawKey of Object.keys(query)) {
|
|
33593
|
+
if (isResultParameter30(rawKey)) {
|
|
33594
|
+
continue;
|
|
33595
|
+
}
|
|
33596
|
+
out.push({ rawKey, code: stripModifier30(rawKey) });
|
|
33597
|
+
}
|
|
33598
|
+
return out;
|
|
33599
|
+
}
|
|
33600
|
+
function buildUnknownParamDiagnostics30(unknownCodes) {
|
|
33601
|
+
const validCodes = getRegisteredSearchParameters(RISKASSESSMENT_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
33602
|
+
const codes = unknownCodes.join(", ");
|
|
33603
|
+
const isPlural = unknownCodes.length !== 1;
|
|
33604
|
+
return [
|
|
33605
|
+
`Unknown search ${isPlural ? "parameters" : "parameter"} for RiskAssessment: ${codes}.`,
|
|
33606
|
+
`Valid codes: ${validCodes}.`
|
|
33607
|
+
].join(" ");
|
|
33608
|
+
}
|
|
33609
|
+
function findMalformedReference30(query, searchParamKeys) {
|
|
33610
|
+
const referenceCodes = new Set(
|
|
33611
|
+
getRegisteredSearchParameters(RISKASSESSMENT_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
33612
|
+
);
|
|
33613
|
+
if (referenceCodes.size === 0) {
|
|
33614
|
+
return void 0;
|
|
33615
|
+
}
|
|
33616
|
+
for (const { rawKey, code } of searchParamKeys) {
|
|
33617
|
+
if (!referenceCodes.has(code)) {
|
|
33618
|
+
continue;
|
|
33619
|
+
}
|
|
33620
|
+
const raw = query[rawKey];
|
|
33621
|
+
const values = typeof raw === "string" ? raw.split(",") : Array.isArray(raw) ? raw.flatMap((v) => v.split(",")) : [];
|
|
33622
|
+
for (const v of values) {
|
|
33623
|
+
const trimmed = v.trim();
|
|
33624
|
+
if (trimmed.length === 0) {
|
|
33625
|
+
continue;
|
|
33626
|
+
}
|
|
33627
|
+
if (parseTypedReference(trimmed) === void 0) {
|
|
33628
|
+
return { rawKey, value: trimmed };
|
|
33629
|
+
}
|
|
33630
|
+
}
|
|
33631
|
+
}
|
|
33632
|
+
return void 0;
|
|
33633
|
+
}
|
|
33634
|
+
async function listRiskAssessmentsRoute(req, res) {
|
|
33635
|
+
const searchParamKeys = extractSearchParamKeys30(
|
|
33636
|
+
req.query
|
|
33637
|
+
);
|
|
33638
|
+
if (searchParamKeys.length === 0) {
|
|
33639
|
+
return handleListRoute({
|
|
33640
|
+
req,
|
|
33641
|
+
res,
|
|
33642
|
+
basePath: BASE_PATH.RISKASSESSMENT,
|
|
33643
|
+
listOperation: listRiskAssessmentsOperation,
|
|
33644
|
+
errorLogContext: "GET /RiskAssessment list error:"
|
|
33645
|
+
});
|
|
33646
|
+
}
|
|
33647
|
+
const registered = getRegisteredSearchParameters(
|
|
33648
|
+
RISKASSESSMENT_RESOURCE_TYPE
|
|
33649
|
+
);
|
|
33650
|
+
const validCodes = new Set(registered.map((p) => p.code));
|
|
33651
|
+
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
33652
|
+
if (unknownCodes.length > 0) {
|
|
33653
|
+
return sendInvalidSearch40030(
|
|
33654
|
+
res,
|
|
33655
|
+
buildUnknownParamDiagnostics30([...new Set(unknownCodes)])
|
|
33656
|
+
);
|
|
33657
|
+
}
|
|
33658
|
+
const malformedRef = findMalformedReference30(
|
|
33659
|
+
req.query,
|
|
33660
|
+
searchParamKeys
|
|
33661
|
+
);
|
|
33662
|
+
if (malformedRef !== void 0) {
|
|
33663
|
+
return sendInvalidSearch40030(
|
|
33664
|
+
res,
|
|
33665
|
+
`?${malformedRef.rawKey} must be a typed reference like "Patient/<id>"; got "${malformedRef.value}".`
|
|
33666
|
+
);
|
|
33667
|
+
}
|
|
33668
|
+
const ctx = req.openhiContext;
|
|
33669
|
+
try {
|
|
33670
|
+
const result = await genericSearchOperation({
|
|
33671
|
+
resourceType: RISKASSESSMENT_RESOURCE_TYPE,
|
|
33672
|
+
tenantId: ctx.tenantId,
|
|
33673
|
+
workspaceId: ctx.workspaceId,
|
|
33674
|
+
query: req.query,
|
|
33675
|
+
resolver: defaultSearchParameterResolver
|
|
33676
|
+
});
|
|
33677
|
+
const bundle = buildSearchsetBundle(
|
|
33678
|
+
BASE_PATH.RISKASSESSMENT,
|
|
33679
|
+
result.entries
|
|
33680
|
+
);
|
|
33681
|
+
return res.json(bundle);
|
|
33682
|
+
} catch (err) {
|
|
33683
|
+
return sendOperationOutcome500(
|
|
33684
|
+
res,
|
|
33685
|
+
err,
|
|
33686
|
+
"GET /RiskAssessment search error:"
|
|
33687
|
+
);
|
|
33688
|
+
}
|
|
33689
|
+
}
|
|
33463
33690
|
|
|
33464
33691
|
// src/data/operations/data/riskassessment/riskassessment-update-operation.ts
|
|
33465
33692
|
async function updateRiskAssessmentOperation(params) {
|
|
@@ -33801,30 +34028,30 @@ async function listSchedulesOperation(params) {
|
|
|
33801
34028
|
|
|
33802
34029
|
// src/data/rest-api/routes/data/schedule/schedule-list-route.ts
|
|
33803
34030
|
var SCHEDULE_RESOURCE_TYPE = "Schedule";
|
|
33804
|
-
function
|
|
34031
|
+
function stripModifier31(key) {
|
|
33805
34032
|
const idx = key.indexOf(":");
|
|
33806
34033
|
return idx === -1 ? key : key.slice(0, idx);
|
|
33807
34034
|
}
|
|
33808
|
-
function
|
|
34035
|
+
function isResultParameter31(key) {
|
|
33809
34036
|
return key.startsWith("_");
|
|
33810
34037
|
}
|
|
33811
|
-
function
|
|
34038
|
+
function sendInvalidSearch40031(res, diagnostics) {
|
|
33812
34039
|
return res.status(400).json({
|
|
33813
34040
|
resourceType: "OperationOutcome",
|
|
33814
34041
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
33815
34042
|
});
|
|
33816
34043
|
}
|
|
33817
|
-
function
|
|
34044
|
+
function extractSearchParamKeys31(query) {
|
|
33818
34045
|
const out = [];
|
|
33819
34046
|
for (const rawKey of Object.keys(query)) {
|
|
33820
|
-
if (
|
|
34047
|
+
if (isResultParameter31(rawKey)) {
|
|
33821
34048
|
continue;
|
|
33822
34049
|
}
|
|
33823
|
-
out.push({ rawKey, code:
|
|
34050
|
+
out.push({ rawKey, code: stripModifier31(rawKey) });
|
|
33824
34051
|
}
|
|
33825
34052
|
return out;
|
|
33826
34053
|
}
|
|
33827
|
-
function
|
|
34054
|
+
function buildUnknownParamDiagnostics31(unknownCodes) {
|
|
33828
34055
|
const validCodes = getRegisteredSearchParameters(SCHEDULE_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
33829
34056
|
const codes = unknownCodes.join(", ");
|
|
33830
34057
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -33833,7 +34060,7 @@ function buildUnknownParamDiagnostics29(unknownCodes) {
|
|
|
33833
34060
|
`Valid codes: ${validCodes}.`
|
|
33834
34061
|
].join(" ");
|
|
33835
34062
|
}
|
|
33836
|
-
function
|
|
34063
|
+
function findMalformedReference31(query, searchParamKeys) {
|
|
33837
34064
|
const referenceCodes = new Set(
|
|
33838
34065
|
getRegisteredSearchParameters(SCHEDULE_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
33839
34066
|
);
|
|
@@ -33856,7 +34083,7 @@ function findMalformedReference29(query, searchParamKeys) {
|
|
|
33856
34083
|
return void 0;
|
|
33857
34084
|
}
|
|
33858
34085
|
async function listSchedulesRoute(req, res) {
|
|
33859
|
-
const searchParamKeys =
|
|
34086
|
+
const searchParamKeys = extractSearchParamKeys31(
|
|
33860
34087
|
req.query
|
|
33861
34088
|
);
|
|
33862
34089
|
if (searchParamKeys.length === 0) {
|
|
@@ -33872,17 +34099,17 @@ async function listSchedulesRoute(req, res) {
|
|
|
33872
34099
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
33873
34100
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
33874
34101
|
if (unknownCodes.length > 0) {
|
|
33875
|
-
return
|
|
34102
|
+
return sendInvalidSearch40031(
|
|
33876
34103
|
res,
|
|
33877
|
-
|
|
34104
|
+
buildUnknownParamDiagnostics31([...new Set(unknownCodes)])
|
|
33878
34105
|
);
|
|
33879
34106
|
}
|
|
33880
|
-
const malformedRef =
|
|
34107
|
+
const malformedRef = findMalformedReference31(
|
|
33881
34108
|
req.query,
|
|
33882
34109
|
searchParamKeys
|
|
33883
34110
|
);
|
|
33884
34111
|
if (malformedRef !== void 0) {
|
|
33885
|
-
return
|
|
34112
|
+
return sendInvalidSearch40031(
|
|
33886
34113
|
res,
|
|
33887
34114
|
`?${malformedRef.rawKey} must be a typed reference like "Practitioner/<id>"; got "${malformedRef.value}".`
|
|
33888
34115
|
);
|
|
@@ -34223,15 +34450,120 @@ async function listServiceRequestsOperation(params) {
|
|
|
34223
34450
|
}
|
|
34224
34451
|
|
|
34225
34452
|
// src/data/rest-api/routes/data/servicerequest/servicerequest-list-route.ts
|
|
34226
|
-
|
|
34227
|
-
|
|
34228
|
-
|
|
34229
|
-
|
|
34230
|
-
|
|
34231
|
-
|
|
34232
|
-
|
|
34453
|
+
var SERVICEREQUEST_RESOURCE_TYPE = "ServiceRequest";
|
|
34454
|
+
function stripModifier32(key) {
|
|
34455
|
+
const idx = key.indexOf(":");
|
|
34456
|
+
return idx === -1 ? key : key.slice(0, idx);
|
|
34457
|
+
}
|
|
34458
|
+
function isResultParameter32(key) {
|
|
34459
|
+
return key.startsWith("_");
|
|
34460
|
+
}
|
|
34461
|
+
function sendInvalidSearch40032(res, diagnostics) {
|
|
34462
|
+
return res.status(400).json({
|
|
34463
|
+
resourceType: "OperationOutcome",
|
|
34464
|
+
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
34233
34465
|
});
|
|
34234
34466
|
}
|
|
34467
|
+
function extractSearchParamKeys32(query) {
|
|
34468
|
+
const out = [];
|
|
34469
|
+
for (const rawKey of Object.keys(query)) {
|
|
34470
|
+
if (isResultParameter32(rawKey)) {
|
|
34471
|
+
continue;
|
|
34472
|
+
}
|
|
34473
|
+
out.push({ rawKey, code: stripModifier32(rawKey) });
|
|
34474
|
+
}
|
|
34475
|
+
return out;
|
|
34476
|
+
}
|
|
34477
|
+
function buildUnknownParamDiagnostics32(unknownCodes) {
|
|
34478
|
+
const validCodes = getRegisteredSearchParameters(SERVICEREQUEST_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
34479
|
+
const codes = unknownCodes.join(", ");
|
|
34480
|
+
const isPlural = unknownCodes.length !== 1;
|
|
34481
|
+
return [
|
|
34482
|
+
`Unknown search ${isPlural ? "parameters" : "parameter"} for ServiceRequest: ${codes}.`,
|
|
34483
|
+
`Valid codes: ${validCodes}.`
|
|
34484
|
+
].join(" ");
|
|
34485
|
+
}
|
|
34486
|
+
function findMalformedReference32(query, searchParamKeys) {
|
|
34487
|
+
const referenceCodes = new Set(
|
|
34488
|
+
getRegisteredSearchParameters(SERVICEREQUEST_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
34489
|
+
);
|
|
34490
|
+
if (referenceCodes.size === 0) {
|
|
34491
|
+
return void 0;
|
|
34492
|
+
}
|
|
34493
|
+
for (const { rawKey, code } of searchParamKeys) {
|
|
34494
|
+
if (!referenceCodes.has(code)) {
|
|
34495
|
+
continue;
|
|
34496
|
+
}
|
|
34497
|
+
const raw = query[rawKey];
|
|
34498
|
+
const values = typeof raw === "string" ? raw.split(",") : Array.isArray(raw) ? raw.flatMap((v) => v.split(",")) : [];
|
|
34499
|
+
for (const v of values) {
|
|
34500
|
+
const trimmed = v.trim();
|
|
34501
|
+
if (trimmed.length === 0) {
|
|
34502
|
+
continue;
|
|
34503
|
+
}
|
|
34504
|
+
if (parseTypedReference(trimmed) === void 0) {
|
|
34505
|
+
return { rawKey, value: trimmed };
|
|
34506
|
+
}
|
|
34507
|
+
}
|
|
34508
|
+
}
|
|
34509
|
+
return void 0;
|
|
34510
|
+
}
|
|
34511
|
+
async function listServiceRequestsRoute(req, res) {
|
|
34512
|
+
const searchParamKeys = extractSearchParamKeys32(
|
|
34513
|
+
req.query
|
|
34514
|
+
);
|
|
34515
|
+
if (searchParamKeys.length === 0) {
|
|
34516
|
+
return handleListRoute({
|
|
34517
|
+
req,
|
|
34518
|
+
res,
|
|
34519
|
+
basePath: BASE_PATH.SERVICEREQUEST,
|
|
34520
|
+
listOperation: listServiceRequestsOperation,
|
|
34521
|
+
errorLogContext: "GET /ServiceRequest list error:"
|
|
34522
|
+
});
|
|
34523
|
+
}
|
|
34524
|
+
const registered = getRegisteredSearchParameters(
|
|
34525
|
+
SERVICEREQUEST_RESOURCE_TYPE
|
|
34526
|
+
);
|
|
34527
|
+
const validCodes = new Set(registered.map((p) => p.code));
|
|
34528
|
+
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
34529
|
+
if (unknownCodes.length > 0) {
|
|
34530
|
+
return sendInvalidSearch40032(
|
|
34531
|
+
res,
|
|
34532
|
+
buildUnknownParamDiagnostics32([...new Set(unknownCodes)])
|
|
34533
|
+
);
|
|
34534
|
+
}
|
|
34535
|
+
const malformedRef = findMalformedReference32(
|
|
34536
|
+
req.query,
|
|
34537
|
+
searchParamKeys
|
|
34538
|
+
);
|
|
34539
|
+
if (malformedRef !== void 0) {
|
|
34540
|
+
return sendInvalidSearch40032(
|
|
34541
|
+
res,
|
|
34542
|
+
`?${malformedRef.rawKey} must be a typed reference like "Encounter/<id>"; got "${malformedRef.value}".`
|
|
34543
|
+
);
|
|
34544
|
+
}
|
|
34545
|
+
const ctx = req.openhiContext;
|
|
34546
|
+
try {
|
|
34547
|
+
const result = await genericSearchOperation({
|
|
34548
|
+
resourceType: SERVICEREQUEST_RESOURCE_TYPE,
|
|
34549
|
+
tenantId: ctx.tenantId,
|
|
34550
|
+
workspaceId: ctx.workspaceId,
|
|
34551
|
+
query: req.query,
|
|
34552
|
+
resolver: defaultSearchParameterResolver
|
|
34553
|
+
});
|
|
34554
|
+
const bundle = buildSearchsetBundle(
|
|
34555
|
+
BASE_PATH.SERVICEREQUEST,
|
|
34556
|
+
result.entries
|
|
34557
|
+
);
|
|
34558
|
+
return res.json(bundle);
|
|
34559
|
+
} catch (err) {
|
|
34560
|
+
return sendOperationOutcome500(
|
|
34561
|
+
res,
|
|
34562
|
+
err,
|
|
34563
|
+
"GET /ServiceRequest search error:"
|
|
34564
|
+
);
|
|
34565
|
+
}
|
|
34566
|
+
}
|
|
34235
34567
|
|
|
34236
34568
|
// src/data/operations/data/servicerequest/servicerequest-update-operation.ts
|
|
34237
34569
|
async function updateServiceRequestOperation(params) {
|
|
@@ -34389,30 +34721,30 @@ async function listSlotsOperation(params) {
|
|
|
34389
34721
|
|
|
34390
34722
|
// src/data/rest-api/routes/data/slot/slot-list-route.ts
|
|
34391
34723
|
var SLOT_RESOURCE_TYPE = "Slot";
|
|
34392
|
-
function
|
|
34724
|
+
function stripModifier33(key) {
|
|
34393
34725
|
const idx = key.indexOf(":");
|
|
34394
34726
|
return idx === -1 ? key : key.slice(0, idx);
|
|
34395
34727
|
}
|
|
34396
|
-
function
|
|
34728
|
+
function isResultParameter33(key) {
|
|
34397
34729
|
return key.startsWith("_");
|
|
34398
34730
|
}
|
|
34399
|
-
function
|
|
34731
|
+
function sendInvalidSearch40033(res, diagnostics) {
|
|
34400
34732
|
return res.status(400).json({
|
|
34401
34733
|
resourceType: "OperationOutcome",
|
|
34402
34734
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
34403
34735
|
});
|
|
34404
34736
|
}
|
|
34405
|
-
function
|
|
34737
|
+
function extractSearchParamKeys33(query) {
|
|
34406
34738
|
const out = [];
|
|
34407
34739
|
for (const rawKey of Object.keys(query)) {
|
|
34408
|
-
if (
|
|
34740
|
+
if (isResultParameter33(rawKey)) {
|
|
34409
34741
|
continue;
|
|
34410
34742
|
}
|
|
34411
|
-
out.push({ rawKey, code:
|
|
34743
|
+
out.push({ rawKey, code: stripModifier33(rawKey) });
|
|
34412
34744
|
}
|
|
34413
34745
|
return out;
|
|
34414
34746
|
}
|
|
34415
|
-
function
|
|
34747
|
+
function buildUnknownParamDiagnostics33(unknownCodes) {
|
|
34416
34748
|
const validCodes = getRegisteredSearchParameters(SLOT_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
34417
34749
|
const codes = unknownCodes.join(", ");
|
|
34418
34750
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -34421,7 +34753,7 @@ function buildUnknownParamDiagnostics30(unknownCodes) {
|
|
|
34421
34753
|
`Valid codes: ${validCodes}.`
|
|
34422
34754
|
].join(" ");
|
|
34423
34755
|
}
|
|
34424
|
-
function
|
|
34756
|
+
function findMalformedReference33(query, searchParamKeys) {
|
|
34425
34757
|
const referenceCodes = new Set(
|
|
34426
34758
|
getRegisteredSearchParameters(SLOT_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
34427
34759
|
);
|
|
@@ -34444,7 +34776,7 @@ function findMalformedReference30(query, searchParamKeys) {
|
|
|
34444
34776
|
return void 0;
|
|
34445
34777
|
}
|
|
34446
34778
|
async function listSlotsRoute(req, res) {
|
|
34447
|
-
const searchParamKeys =
|
|
34779
|
+
const searchParamKeys = extractSearchParamKeys33(
|
|
34448
34780
|
req.query
|
|
34449
34781
|
);
|
|
34450
34782
|
if (searchParamKeys.length === 0) {
|
|
@@ -34460,17 +34792,17 @@ async function listSlotsRoute(req, res) {
|
|
|
34460
34792
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
34461
34793
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
34462
34794
|
if (unknownCodes.length > 0) {
|
|
34463
|
-
return
|
|
34795
|
+
return sendInvalidSearch40033(
|
|
34464
34796
|
res,
|
|
34465
|
-
|
|
34797
|
+
buildUnknownParamDiagnostics33([...new Set(unknownCodes)])
|
|
34466
34798
|
);
|
|
34467
34799
|
}
|
|
34468
|
-
const malformedRef =
|
|
34800
|
+
const malformedRef = findMalformedReference33(
|
|
34469
34801
|
req.query,
|
|
34470
34802
|
searchParamKeys
|
|
34471
34803
|
);
|
|
34472
34804
|
if (malformedRef !== void 0) {
|
|
34473
|
-
return
|
|
34805
|
+
return sendInvalidSearch40033(
|
|
34474
34806
|
res,
|
|
34475
34807
|
`?${malformedRef.rawKey} must be a typed reference like "Schedule/<id>"; got "${malformedRef.value}".`
|
|
34476
34808
|
);
|
|
@@ -34647,30 +34979,30 @@ async function listSpecimensOperation(params) {
|
|
|
34647
34979
|
|
|
34648
34980
|
// src/data/rest-api/routes/data/specimen/specimen-list-route.ts
|
|
34649
34981
|
var SPECIMEN_RESOURCE_TYPE = "Specimen";
|
|
34650
|
-
function
|
|
34982
|
+
function stripModifier34(key) {
|
|
34651
34983
|
const idx = key.indexOf(":");
|
|
34652
34984
|
return idx === -1 ? key : key.slice(0, idx);
|
|
34653
34985
|
}
|
|
34654
|
-
function
|
|
34986
|
+
function isResultParameter34(key) {
|
|
34655
34987
|
return key.startsWith("_");
|
|
34656
34988
|
}
|
|
34657
|
-
function
|
|
34989
|
+
function sendInvalidSearch40034(res, diagnostics) {
|
|
34658
34990
|
return res.status(400).json({
|
|
34659
34991
|
resourceType: "OperationOutcome",
|
|
34660
34992
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
34661
34993
|
});
|
|
34662
34994
|
}
|
|
34663
|
-
function
|
|
34995
|
+
function extractSearchParamKeys34(query) {
|
|
34664
34996
|
const out = [];
|
|
34665
34997
|
for (const rawKey of Object.keys(query)) {
|
|
34666
|
-
if (
|
|
34998
|
+
if (isResultParameter34(rawKey)) {
|
|
34667
34999
|
continue;
|
|
34668
35000
|
}
|
|
34669
|
-
out.push({ rawKey, code:
|
|
35001
|
+
out.push({ rawKey, code: stripModifier34(rawKey) });
|
|
34670
35002
|
}
|
|
34671
35003
|
return out;
|
|
34672
35004
|
}
|
|
34673
|
-
function
|
|
35005
|
+
function buildUnknownParamDiagnostics34(unknownCodes) {
|
|
34674
35006
|
const validCodes = getRegisteredSearchParameters(SPECIMEN_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
34675
35007
|
const codes = unknownCodes.join(", ");
|
|
34676
35008
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -34679,7 +35011,7 @@ function buildUnknownParamDiagnostics31(unknownCodes) {
|
|
|
34679
35011
|
`Valid codes: ${validCodes}.`
|
|
34680
35012
|
].join(" ");
|
|
34681
35013
|
}
|
|
34682
|
-
function
|
|
35014
|
+
function findMalformedReference34(query, searchParamKeys) {
|
|
34683
35015
|
const referenceCodes = new Set(
|
|
34684
35016
|
getRegisteredSearchParameters(SPECIMEN_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
34685
35017
|
);
|
|
@@ -34705,7 +35037,7 @@ function findMalformedReference31(query, searchParamKeys) {
|
|
|
34705
35037
|
return void 0;
|
|
34706
35038
|
}
|
|
34707
35039
|
async function listSpecimensRoute(req, res) {
|
|
34708
|
-
const searchParamKeys =
|
|
35040
|
+
const searchParamKeys = extractSearchParamKeys34(
|
|
34709
35041
|
req.query
|
|
34710
35042
|
);
|
|
34711
35043
|
if (searchParamKeys.length === 0) {
|
|
@@ -34721,17 +35053,17 @@ async function listSpecimensRoute(req, res) {
|
|
|
34721
35053
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
34722
35054
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
34723
35055
|
if (unknownCodes.length > 0) {
|
|
34724
|
-
return
|
|
35056
|
+
return sendInvalidSearch40034(
|
|
34725
35057
|
res,
|
|
34726
|
-
|
|
35058
|
+
buildUnknownParamDiagnostics34([...new Set(unknownCodes)])
|
|
34727
35059
|
);
|
|
34728
35060
|
}
|
|
34729
|
-
const malformedRef =
|
|
35061
|
+
const malformedRef = findMalformedReference34(
|
|
34730
35062
|
req.query,
|
|
34731
35063
|
searchParamKeys
|
|
34732
35064
|
);
|
|
34733
35065
|
if (malformedRef !== void 0) {
|
|
34734
|
-
return
|
|
35066
|
+
return sendInvalidSearch40034(
|
|
34735
35067
|
res,
|
|
34736
35068
|
`?${malformedRef.rawKey} must be a typed reference like "Patient/<id>"; got "${malformedRef.value}".`
|
|
34737
35069
|
);
|
|
@@ -37135,30 +37467,30 @@ async function listTasksOperation(params) {
|
|
|
37135
37467
|
|
|
37136
37468
|
// src/data/rest-api/routes/data/task/task-list-route.ts
|
|
37137
37469
|
var TASK_RESOURCE_TYPE = "Task";
|
|
37138
|
-
function
|
|
37470
|
+
function stripModifier35(key) {
|
|
37139
37471
|
const idx = key.indexOf(":");
|
|
37140
37472
|
return idx === -1 ? key : key.slice(0, idx);
|
|
37141
37473
|
}
|
|
37142
|
-
function
|
|
37474
|
+
function isResultParameter35(key) {
|
|
37143
37475
|
return key.startsWith("_");
|
|
37144
37476
|
}
|
|
37145
|
-
function
|
|
37477
|
+
function sendInvalidSearch40035(res, diagnostics) {
|
|
37146
37478
|
return res.status(400).json({
|
|
37147
37479
|
resourceType: "OperationOutcome",
|
|
37148
37480
|
issue: [{ severity: "error", code: "invalid", diagnostics }]
|
|
37149
37481
|
});
|
|
37150
37482
|
}
|
|
37151
|
-
function
|
|
37483
|
+
function extractSearchParamKeys35(query) {
|
|
37152
37484
|
const out = [];
|
|
37153
37485
|
for (const rawKey of Object.keys(query)) {
|
|
37154
|
-
if (
|
|
37486
|
+
if (isResultParameter35(rawKey)) {
|
|
37155
37487
|
continue;
|
|
37156
37488
|
}
|
|
37157
|
-
out.push({ rawKey, code:
|
|
37489
|
+
out.push({ rawKey, code: stripModifier35(rawKey) });
|
|
37158
37490
|
}
|
|
37159
37491
|
return out;
|
|
37160
37492
|
}
|
|
37161
|
-
function
|
|
37493
|
+
function buildUnknownParamDiagnostics35(unknownCodes) {
|
|
37162
37494
|
const validCodes = getRegisteredSearchParameters(TASK_RESOURCE_TYPE).map((p) => p.code).sort().join(", ");
|
|
37163
37495
|
const codes = unknownCodes.join(", ");
|
|
37164
37496
|
const isPlural = unknownCodes.length !== 1;
|
|
@@ -37167,7 +37499,7 @@ function buildUnknownParamDiagnostics32(unknownCodes) {
|
|
|
37167
37499
|
`Valid codes: ${validCodes}.`
|
|
37168
37500
|
].join(" ");
|
|
37169
37501
|
}
|
|
37170
|
-
function
|
|
37502
|
+
function findMalformedReference35(query, searchParamKeys) {
|
|
37171
37503
|
const referenceCodes = new Set(
|
|
37172
37504
|
getRegisteredSearchParameters(TASK_RESOURCE_TYPE).filter((p) => p.type === "reference").map((p) => p.code)
|
|
37173
37505
|
);
|
|
@@ -37190,7 +37522,7 @@ function findMalformedReference32(query, searchParamKeys) {
|
|
|
37190
37522
|
return void 0;
|
|
37191
37523
|
}
|
|
37192
37524
|
async function listTasksRoute(req, res) {
|
|
37193
|
-
const searchParamKeys =
|
|
37525
|
+
const searchParamKeys = extractSearchParamKeys35(
|
|
37194
37526
|
req.query
|
|
37195
37527
|
);
|
|
37196
37528
|
if (searchParamKeys.length === 0) {
|
|
@@ -37206,17 +37538,17 @@ async function listTasksRoute(req, res) {
|
|
|
37206
37538
|
const validCodes = new Set(registered.map((p) => p.code));
|
|
37207
37539
|
const unknownCodes = searchParamKeys.map((k) => k.code).filter((code) => !validCodes.has(code));
|
|
37208
37540
|
if (unknownCodes.length > 0) {
|
|
37209
|
-
return
|
|
37541
|
+
return sendInvalidSearch40035(
|
|
37210
37542
|
res,
|
|
37211
|
-
|
|
37543
|
+
buildUnknownParamDiagnostics35([...new Set(unknownCodes)])
|
|
37212
37544
|
);
|
|
37213
37545
|
}
|
|
37214
|
-
const malformedRef =
|
|
37546
|
+
const malformedRef = findMalformedReference35(
|
|
37215
37547
|
req.query,
|
|
37216
37548
|
searchParamKeys
|
|
37217
37549
|
);
|
|
37218
37550
|
if (malformedRef !== void 0) {
|
|
37219
|
-
return
|
|
37551
|
+
return sendInvalidSearch40035(
|
|
37220
37552
|
res,
|
|
37221
37553
|
`?${malformedRef.rawKey} must be a typed reference like "Practitioner/<id>"; got "${malformedRef.value}".`
|
|
37222
37554
|
);
|