@openhi/constructs 0.0.182 → 0.0.184
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.
|
@@ -5815,10 +5815,25 @@ function wrapTokenInShape(shape, value) {
|
|
|
5815
5815
|
return { [shape.field]: [{ [shape.subfield]: value }] };
|
|
5816
5816
|
}
|
|
5817
5817
|
}
|
|
5818
|
+
function wrapTokenWithSystem(shape, systemSubfield, parsed) {
|
|
5819
|
+
if (shape.kind !== "array-of-objects") {
|
|
5820
|
+
throw new Error(
|
|
5821
|
+
`Token predicate option "systemSubfield" requires an array-of-objects JSONPath ("$.field[*].subfield"); got shape "${shape.kind}".`
|
|
5822
|
+
);
|
|
5823
|
+
}
|
|
5824
|
+
const entry = {};
|
|
5825
|
+
if (parsed.system !== void 0) {
|
|
5826
|
+
entry[systemSubfield] = parsed.system;
|
|
5827
|
+
}
|
|
5828
|
+
if (parsed.system === void 0 || parsed.code.length > 0) {
|
|
5829
|
+
entry[shape.subfield] = parsed.code;
|
|
5830
|
+
}
|
|
5831
|
+
return { [shape.field]: [entry] };
|
|
5832
|
+
}
|
|
5818
5833
|
function emitTokenPredicate(opts) {
|
|
5819
5834
|
const shape = jsonbPathToTokenShape(opts.jsonbPath);
|
|
5820
|
-
const
|
|
5821
|
-
const payload = wrapTokenInShape(shape, code);
|
|
5835
|
+
const parsed = parseTokenValue(opts.rawValue);
|
|
5836
|
+
const payload = opts.systemSubfield !== void 0 ? wrapTokenWithSystem(shape, opts.systemSubfield, parsed) : wrapTokenInShape(shape, parsed.code);
|
|
5822
5837
|
const sql = `resource @> :${opts.paramName}::jsonb`;
|
|
5823
5838
|
const params = [
|
|
5824
5839
|
{ name: opts.paramName, value: JSON.stringify(payload) }
|
|
@@ -5892,6 +5907,7 @@ function emitOne(opts) {
|
|
|
5892
5907
|
rawValue,
|
|
5893
5908
|
paramName,
|
|
5894
5909
|
modifier: effectiveModifier,
|
|
5910
|
+
systemSubfield: param.systemSubfield,
|
|
5895
5911
|
context
|
|
5896
5912
|
});
|
|
5897
5913
|
if (!negate) {
|
|
@@ -5913,6 +5929,7 @@ function emitForType(opts) {
|
|
|
5913
5929
|
jsonbPath: opts.jsonbPath,
|
|
5914
5930
|
rawValue: opts.rawValue,
|
|
5915
5931
|
paramName: opts.paramName,
|
|
5932
|
+
systemSubfield: opts.systemSubfield,
|
|
5916
5933
|
context: opts.context
|
|
5917
5934
|
});
|
|
5918
5935
|
case "date":
|
|
@@ -6097,7 +6114,13 @@ var APPOINTMENT_SEARCH_PARAMETERS = [
|
|
|
6097
6114
|
type: "token",
|
|
6098
6115
|
jsonbPath: "$.appointmentType"
|
|
6099
6116
|
},
|
|
6100
|
-
{ code: "slot", type: "reference", jsonbPath: "$.slot[*]" }
|
|
6117
|
+
{ code: "slot", type: "reference", jsonbPath: "$.slot[*]" },
|
|
6118
|
+
{
|
|
6119
|
+
code: "identifier",
|
|
6120
|
+
type: "token",
|
|
6121
|
+
jsonbPath: "$.identifier[*].value",
|
|
6122
|
+
systemSubfield: "system"
|
|
6123
|
+
}
|
|
6101
6124
|
];
|
|
6102
6125
|
|
|
6103
6126
|
// src/data/search/registry/chargeitem-search-parameters.ts
|
|
@@ -6347,6 +6370,12 @@ var ENCOUNTER_SEARCH_PARAMETERS = [
|
|
|
6347
6370
|
code: "episode-of-care",
|
|
6348
6371
|
type: "reference",
|
|
6349
6372
|
jsonbPath: "$.episodeOfCare[*]"
|
|
6373
|
+
},
|
|
6374
|
+
{
|
|
6375
|
+
code: "identifier",
|
|
6376
|
+
type: "token",
|
|
6377
|
+
jsonbPath: "$.identifier[*].value",
|
|
6378
|
+
systemSubfield: "system"
|
|
6350
6379
|
}
|
|
6351
6380
|
];
|
|
6352
6381
|
|