@nsshunt/stsfhirpg 1.2.28 → 1.2.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +368 -307
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +368 -307
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/types/fhir-database/pg/pgfhiraccesslayer.d.ts +2 -1
- package/types/fhir-database/pg/pgfhiraccesslayer.d.ts.map +1 -1
- package/types/fhir-database/pg/pgfhirdbbase.d.ts +14 -0
- package/types/fhir-database/pg/pgfhirdbbase.d.ts.map +1 -0
- package/types/fhir-database/pg/pgfhirresource.d.ts +9 -10
- package/types/fhir-database/pg/pgfhirresource.d.ts.map +1 -1
- package/types/fhir-database/pg/pgfhirresourceversion.d.ts +5 -6
- package/types/fhir-database/pg/pgfhirresourceversion.d.ts.map +1 -1
package/dist/index.mjs
CHANGED
|
@@ -13,7 +13,7 @@ import cluster from "cluster";
|
|
|
13
13
|
import { Pool } from "pg";
|
|
14
14
|
import { TinyEmitter } from "tiny-emitter";
|
|
15
15
|
//#region \0rolldown/runtime.js
|
|
16
|
-
var __commonJSMin = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
|
|
16
|
+
var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
|
|
17
17
|
//#endregion
|
|
18
18
|
//#region src/fhir-utils/fhirDateUtils.ts
|
|
19
19
|
var FHIRDateUtils = class {
|
|
@@ -3245,7 +3245,8 @@ var HashUtils = class HashUtils {
|
|
|
3245
3245
|
return input.trim().replace(/\s+/g, " ").toLowerCase();
|
|
3246
3246
|
};
|
|
3247
3247
|
InitHash = async () => {
|
|
3248
|
-
|
|
3248
|
+
const api = await e();
|
|
3249
|
+
this.h64 = api.h64;
|
|
3249
3250
|
};
|
|
3250
3251
|
xxhash64Signed(input) {
|
|
3251
3252
|
if (this.h64) return BigInt.asIntN(64, this.h64(input, this.HASH_SEED));
|
|
@@ -4786,19 +4787,46 @@ var PGPoolManager = class extends TinyEmitter {
|
|
|
4786
4787
|
}
|
|
4787
4788
|
};
|
|
4788
4789
|
//#endregion
|
|
4790
|
+
//#region src/fhir-database/pg/pgfhirdbbase.ts
|
|
4791
|
+
var DBSTSFhirDBBase = class {
|
|
4792
|
+
_options;
|
|
4793
|
+
_poolManager;
|
|
4794
|
+
constructor(options) {
|
|
4795
|
+
this._options = options;
|
|
4796
|
+
this._poolManager = options.poolManager;
|
|
4797
|
+
}
|
|
4798
|
+
async withClient(fname, fn) {
|
|
4799
|
+
let client;
|
|
4800
|
+
try {
|
|
4801
|
+
client = await this._poolManager.connectReadWrite();
|
|
4802
|
+
} catch (error) {
|
|
4803
|
+
this._options.logger.error(`${fname}(): DB: Connection Error: [${error}]`);
|
|
4804
|
+
throw error;
|
|
4805
|
+
}
|
|
4806
|
+
try {
|
|
4807
|
+
return await fn(client);
|
|
4808
|
+
} catch (error) {
|
|
4809
|
+
this._options.logger.error(`${fname}(): DB: Query Error: [${error}]`);
|
|
4810
|
+
throw error;
|
|
4811
|
+
} finally {
|
|
4812
|
+
client.release();
|
|
4813
|
+
}
|
|
4814
|
+
}
|
|
4815
|
+
};
|
|
4816
|
+
//#endregion
|
|
4789
4817
|
//#region src/fhir-database/pg/pgfhirresource.ts
|
|
4790
|
-
var DBSTSResource = class {
|
|
4791
|
-
|
|
4792
|
-
|
|
4793
|
-
this.#poolManager = poolManager;
|
|
4818
|
+
var DBSTSResource = class extends DBSTSFhirDBBase {
|
|
4819
|
+
constructor(options) {
|
|
4820
|
+
super(options);
|
|
4794
4821
|
}
|
|
4795
4822
|
async InsertResourceEx(client, data) {
|
|
4796
4823
|
try {
|
|
4797
|
-
await client.query(`
|
|
4824
|
+
return (await client.query(`
|
|
4798
4825
|
INSERT INTO stsresfhir (
|
|
4799
4826
|
PID, PARTITION_ID, PARTITION_DATE, RES_ID, RES_TYPE,
|
|
4800
4827
|
RES_VER, RES_VERSION, RES_PUBLISHED, RES_UPDATED
|
|
4801
4828
|
) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)
|
|
4829
|
+
RETURNING RES_VER
|
|
4802
4830
|
`, [
|
|
4803
4831
|
data.PID,
|
|
4804
4832
|
data.PARTITION_ID,
|
|
@@ -4809,146 +4837,90 @@ var DBSTSResource = class {
|
|
|
4809
4837
|
data.RES_VERSION,
|
|
4810
4838
|
BigInt(data.RES_PUBLISHED),
|
|
4811
4839
|
BigInt(data.RES_UPDATED)
|
|
4812
|
-
]);
|
|
4840
|
+
])).rows[0]?.res_ver;
|
|
4813
4841
|
} catch (error) {
|
|
4814
|
-
|
|
4842
|
+
this._options.logger.error(`DBSTSResource:InsertResource(): Query Error: [${error}]`);
|
|
4815
4843
|
throw error;
|
|
4816
4844
|
}
|
|
4817
4845
|
}
|
|
4818
4846
|
async InsertResource(data) {
|
|
4819
|
-
|
|
4820
|
-
const client = await this.#poolManager.connectReadWrite();
|
|
4821
|
-
try {
|
|
4822
|
-
await this.InsertResourceEx(client, data);
|
|
4823
|
-
} catch (error) {
|
|
4824
|
-
defaultLogger.error(`DBSTSResource:InsertResource(): Query Error: [${error}]`);
|
|
4825
|
-
} finally {
|
|
4826
|
-
client.release();
|
|
4827
|
-
}
|
|
4828
|
-
} catch (error) {
|
|
4829
|
-
defaultLogger.error(`DBSTSResource:InsertResource(): Connection Error: [${error}]`);
|
|
4830
|
-
}
|
|
4847
|
+
return this.withClient("InsertResource", ((client) => this.InsertResourceEx(client, data)));
|
|
4831
4848
|
}
|
|
4832
4849
|
async UpdateResourceRecordEx(client, data) {
|
|
4833
4850
|
try {
|
|
4834
|
-
|
|
4851
|
+
return (await client.query(`
|
|
4835
4852
|
UPDATE stsresfhir SET
|
|
4836
4853
|
RES_VER = RES_VER + 1,
|
|
4837
4854
|
RES_UPDATED = $1,
|
|
4838
4855
|
RES_DELETED_AT = NULL
|
|
4839
4856
|
WHERE RES_ID = $2 AND RES_TYPE = $3 AND RES_VER = $4
|
|
4857
|
+
RETURNING RES_VER
|
|
4840
4858
|
`, [
|
|
4841
4859
|
BigInt(data.RES_UPDATED),
|
|
4842
4860
|
data.RES_ID,
|
|
4843
4861
|
data.RES_TYPE,
|
|
4844
4862
|
data.RES_VER
|
|
4845
|
-
]);
|
|
4846
|
-
return res.rowCount ? res.rowCount > 0 : false;
|
|
4863
|
+
])).rows[0]?.res_ver;
|
|
4847
4864
|
} catch (error) {
|
|
4848
|
-
|
|
4865
|
+
this._options.logger.error(`DBSTSResource:UpdateResourceRecordEx(): Query Error: [${error}]`);
|
|
4849
4866
|
throw error;
|
|
4850
4867
|
}
|
|
4851
4868
|
}
|
|
4852
4869
|
async UpdateResourceRecord(data) {
|
|
4853
|
-
|
|
4854
|
-
const client = await this.#poolManager.connectReadWrite();
|
|
4855
|
-
try {
|
|
4856
|
-
return await this.UpdateResourceRecordEx(client, data);
|
|
4857
|
-
} catch (error) {
|
|
4858
|
-
defaultLogger.error(`DBSTSResource:UpdateResourceRecord-1(): Query Error: [${error}]`);
|
|
4859
|
-
} finally {
|
|
4860
|
-
client.release();
|
|
4861
|
-
}
|
|
4862
|
-
} catch (error) {
|
|
4863
|
-
defaultLogger.error(`DBSTSResource:UpdateResourceRecord-2(): Connection Error: [${error}]`);
|
|
4864
|
-
}
|
|
4870
|
+
return this.withClient("UpdateResourceRecord", ((client) => this.UpdateResourceRecordEx(client, data)));
|
|
4865
4871
|
}
|
|
4866
4872
|
async DeleteResourceRecordEx(client, data) {
|
|
4867
4873
|
try {
|
|
4868
|
-
|
|
4874
|
+
return (await client.query(`
|
|
4869
4875
|
UPDATE stsresfhir SET
|
|
4870
4876
|
RES_DELETED_AT = $1,
|
|
4871
4877
|
RES_VER = RES_VER + 1,
|
|
4872
4878
|
RES_UPDATED = $2
|
|
4873
4879
|
WHERE RES_ID = $3 AND RES_TYPE = $4 AND RES_VER = $5
|
|
4880
|
+
RETURNING RES_VER
|
|
4874
4881
|
`, [
|
|
4875
4882
|
BigInt(data.RES_DELETED_AT),
|
|
4876
4883
|
BigInt(data.RES_UPDATED),
|
|
4877
4884
|
data.RES_ID,
|
|
4878
4885
|
data.RES_TYPE,
|
|
4879
4886
|
data.RES_VER
|
|
4880
|
-
]);
|
|
4881
|
-
return res.rowCount ? res.rowCount > 0 : false;
|
|
4887
|
+
])).rows[0]?.res_ver;
|
|
4882
4888
|
} catch (error) {
|
|
4883
|
-
|
|
4889
|
+
this._options.logger.error(`DBSTSResource:DeleteResourceRecord(): Query Error: [${error}]`);
|
|
4884
4890
|
throw error;
|
|
4885
4891
|
}
|
|
4886
4892
|
}
|
|
4887
4893
|
async DeleteResourceRecord(data) {
|
|
4888
|
-
|
|
4889
|
-
const client = await this.#poolManager.connectReadWrite();
|
|
4890
|
-
try {
|
|
4891
|
-
return await this.DeleteResourceRecordEx(client, data);
|
|
4892
|
-
} catch (error) {
|
|
4893
|
-
defaultLogger.error(`DBSTSResource:DeleteResourceRecord(): Query Error: [${error}]`);
|
|
4894
|
-
} finally {
|
|
4895
|
-
client.release();
|
|
4896
|
-
}
|
|
4897
|
-
} catch (error) {
|
|
4898
|
-
defaultLogger.error(`DBSTSResource:DeleteResourceRecord(): Connection Error: [${error}]`);
|
|
4899
|
-
}
|
|
4894
|
+
return this.withClient("DeleteResourceRecord", ((client) => this.DeleteResourceRecordEx(client, data)));
|
|
4900
4895
|
}
|
|
4901
4896
|
async ReadResourceRecordEx(client, PID) {
|
|
4902
4897
|
try {
|
|
4903
4898
|
return (await client.query(`SELECT * FROM stsresfhir WHERE PID = $1`, [PID])).rows[0];
|
|
4904
4899
|
} catch (error) {
|
|
4905
|
-
|
|
4900
|
+
this._options.logger.error(`DBSTSResource:ReadResourceRecord(): Query Error: [${error}]`);
|
|
4906
4901
|
throw error;
|
|
4907
4902
|
}
|
|
4908
4903
|
}
|
|
4909
4904
|
async ReadResourceRecord(PID) {
|
|
4910
|
-
|
|
4911
|
-
const client = await this.#poolManager.connectReadOnly();
|
|
4912
|
-
try {
|
|
4913
|
-
return await this.ReadResourceRecordEx(client, PID);
|
|
4914
|
-
} catch (error) {
|
|
4915
|
-
defaultLogger.error(`DBSTSResource:ReadResourceRecord(): Query Error: [${error}]`);
|
|
4916
|
-
} finally {
|
|
4917
|
-
client.release();
|
|
4918
|
-
}
|
|
4919
|
-
} catch (error) {
|
|
4920
|
-
defaultLogger.error(`DBSTSResource:ReadResourceRecord(): Connection Error: [${error}]`);
|
|
4921
|
-
}
|
|
4905
|
+
return this.withClient("ReadResourceRecord", ((client) => this.ReadResourceRecordEx(client, PID)));
|
|
4922
4906
|
}
|
|
4923
4907
|
async ReadAllResourceRecordsEx(client) {
|
|
4924
4908
|
try {
|
|
4925
4909
|
return (await client.query(`SELECT * FROM stsresfhir`)).rows;
|
|
4926
4910
|
} catch (error) {
|
|
4927
|
-
|
|
4911
|
+
this._options.logger.error(`DBSTSResource:ReadAllResourceRecords(): Query Error: [${error}]`);
|
|
4928
4912
|
throw error;
|
|
4929
4913
|
}
|
|
4930
4914
|
}
|
|
4931
4915
|
async ReadAllResourceRecords() {
|
|
4932
|
-
|
|
4933
|
-
const client = await this.#poolManager.connectReadOnly();
|
|
4934
|
-
try {
|
|
4935
|
-
return await this.ReadAllResourceRecordsEx(client);
|
|
4936
|
-
} catch (error) {
|
|
4937
|
-
defaultLogger.error(`DBSTSResource:ReadAllResourceRecords(): Query Error: [${error}]`);
|
|
4938
|
-
} finally {
|
|
4939
|
-
client.release();
|
|
4940
|
-
}
|
|
4941
|
-
} catch (error) {
|
|
4942
|
-
defaultLogger.error(`DBSTSResource:ReadAllResourceRecords(): Connection Error: [${error}]`);
|
|
4943
|
-
}
|
|
4916
|
+
return this.withClient("ReadAllResourceRecords", ((client) => this.ReadAllResourceRecordsEx(client)));
|
|
4944
4917
|
}
|
|
4945
4918
|
};
|
|
4946
4919
|
//#endregion
|
|
4947
4920
|
//#region src/fhir-database/pg/pgfhirresourceversion.ts
|
|
4948
|
-
var DBSTSResourceVersion = class {
|
|
4949
|
-
|
|
4950
|
-
|
|
4951
|
-
this.#poolManager = poolManager;
|
|
4921
|
+
var DBSTSResourceVersion = class extends DBSTSFhirDBBase {
|
|
4922
|
+
constructor(options) {
|
|
4923
|
+
super(options);
|
|
4952
4924
|
}
|
|
4953
4925
|
async InsertResourceVersionEx(client, data) {
|
|
4954
4926
|
const values = [
|
|
@@ -4962,81 +4934,49 @@ var DBSTSResourceVersion = class {
|
|
|
4962
4934
|
data.RES
|
|
4963
4935
|
];
|
|
4964
4936
|
try {
|
|
4965
|
-
await client.query(`
|
|
4937
|
+
return (await client.query(`
|
|
4966
4938
|
INSERT INTO stsresfhirver (
|
|
4967
4939
|
PID, PARTITION_ID, PARTITION_DATE,
|
|
4968
4940
|
RES_ID, RES_TYPE, RES_VER, OPERATION, RES
|
|
4969
4941
|
) VALUES ($1, $2, $3, $4, $5, $6, $7, $8)
|
|
4970
|
-
|
|
4942
|
+
RETURNING RES_VER
|
|
4943
|
+
`, values)).rows[0]?.res_ver;
|
|
4971
4944
|
} catch (error) {
|
|
4972
|
-
|
|
4973
|
-
|
|
4974
|
-
|
|
4975
|
-
|
|
4976
|
-
|
|
4977
|
-
|
|
4978
|
-
|
|
4979
|
-
|
|
4945
|
+
this._options.logger.error(`DBSTSResourceVersion:InsertResourceVersion(): Query Error: [${error}]`);
|
|
4946
|
+
this._options.logger.error(`DBSTSResourceVersion:InsertResourceVersion(): --> Values PID: [${values[0]}]`);
|
|
4947
|
+
this._options.logger.error(`DBSTSResourceVersion:InsertResourceVersion(): --> Values PARTITION_ID: [${values[1]}]`);
|
|
4948
|
+
this._options.logger.error(`DBSTSResourceVersion:InsertResourceVersion(): --> Values PARTITION_DATE: [${values[2]}]`);
|
|
4949
|
+
this._options.logger.error(`DBSTSResourceVersion:InsertResourceVersion(): --> Values RES_ID: [${values[3]}]`);
|
|
4950
|
+
this._options.logger.error(`DBSTSResourceVersion:InsertResourceVersion(): --> Values RES_TYPE: [${values[4]}]`);
|
|
4951
|
+
this._options.logger.error(`DBSTSResourceVersion:InsertResourceVersion(): --> Values RES_VER: [${values[5]}]`);
|
|
4952
|
+
this._options.logger.error(`DBSTSResourceVersion:InsertResourceVersion(): --> Values OPERATION: [${values[6]}]`);
|
|
4980
4953
|
throw error;
|
|
4981
4954
|
}
|
|
4982
4955
|
}
|
|
4983
4956
|
async InsertResourceVersion(data) {
|
|
4984
|
-
|
|
4985
|
-
const client = await this.#poolManager.connectReadWrite();
|
|
4986
|
-
try {
|
|
4987
|
-
await this.InsertResourceVersionEx(client, data);
|
|
4988
|
-
} catch (error) {
|
|
4989
|
-
defaultLogger.error(`DBSTSResourceVersion:InsertResourceVersion(): Query Error: [${error}]`);
|
|
4990
|
-
} finally {
|
|
4991
|
-
client.release();
|
|
4992
|
-
}
|
|
4993
|
-
} catch (error) {
|
|
4994
|
-
defaultLogger.error(`DBSTSResourceVersion:InsertResourceVersion(): Connection Error: [${error}]`);
|
|
4995
|
-
}
|
|
4957
|
+
return this.withClient("InsertResourceVersion", ((client) => this.InsertResourceVersionEx(client, data)));
|
|
4996
4958
|
}
|
|
4997
4959
|
async ReadResourceVersionRecordEx(client, PID, RES_VER) {
|
|
4998
4960
|
try {
|
|
4999
4961
|
return (await client.query(`SELECT * FROM stsresfhirver WHERE PID = $1 AND RES_VER = $2`, [PID, RES_VER])).rows[0];
|
|
5000
4962
|
} catch (error) {
|
|
5001
|
-
|
|
4963
|
+
this._options.logger.error(`DBSTSResourceVersion:ReadResourceVersionRecord(): Query Error: [${error}]`);
|
|
5002
4964
|
throw error;
|
|
5003
4965
|
}
|
|
5004
4966
|
}
|
|
5005
4967
|
async ReadResourceVersionRecord(PID, RES_VER) {
|
|
5006
|
-
|
|
5007
|
-
const client = await this.#poolManager.connectReadWrite();
|
|
5008
|
-
try {
|
|
5009
|
-
return await this.ReadResourceVersionRecordEx(client, PID, RES_VER);
|
|
5010
|
-
} catch (error) {
|
|
5011
|
-
defaultLogger.error(`DBSTSResourceVersion:ReadResourceVersionRecord(): Query Error: [${error}]`);
|
|
5012
|
-
} finally {
|
|
5013
|
-
client.release();
|
|
5014
|
-
}
|
|
5015
|
-
} catch (error) {
|
|
5016
|
-
defaultLogger.error(`DBSTSResourceVersion:ReadResourceVersionRecord(): Connection Error: [${error}]`);
|
|
5017
|
-
}
|
|
4968
|
+
return this.withClient("ReadResourceVersionRecord", ((client) => this.ReadResourceVersionRecordEx(client, PID, RES_VER)));
|
|
5018
4969
|
}
|
|
5019
4970
|
async ReadAllResourceVersionRecordsEx(client) {
|
|
5020
4971
|
try {
|
|
5021
4972
|
return (await client.query(`SELECT * FROM stsresfhirver`)).rows;
|
|
5022
4973
|
} catch (error) {
|
|
5023
|
-
|
|
4974
|
+
this._options.logger.error(`DBSTSResourceVersion:ReadAllResourceVersionRecords(): Query Error: [${error}]`);
|
|
5024
4975
|
throw error;
|
|
5025
4976
|
}
|
|
5026
4977
|
}
|
|
5027
4978
|
async ReadAllResourceVersionRecords() {
|
|
5028
|
-
|
|
5029
|
-
const client = await this.#poolManager.connectReadWrite();
|
|
5030
|
-
try {
|
|
5031
|
-
return await this.ReadAllResourceVersionRecordsEx(client);
|
|
5032
|
-
} catch (error) {
|
|
5033
|
-
defaultLogger.error(`DBSTSResourceVersion:ReadAllResourceVersionRecords(): Query Error: [${error}]`);
|
|
5034
|
-
} finally {
|
|
5035
|
-
client.release();
|
|
5036
|
-
}
|
|
5037
|
-
} catch (error) {
|
|
5038
|
-
defaultLogger.error(`DBSTSResourceVersion:ReadAllResourceVersionRecords(): Connection Error: [${error}]`);
|
|
5039
|
-
}
|
|
4979
|
+
return this.withClient("ReadAllResourceVersionRecords", ((client) => this.ReadAllResourceVersionRecordsEx(client)));
|
|
5040
4980
|
}
|
|
5041
4981
|
};
|
|
5042
4982
|
//#endregion
|
|
@@ -5822,8 +5762,14 @@ var PGFhirAccessLayer = class extends TinyEmitter {
|
|
|
5822
5762
|
logger: this.#options.logger,
|
|
5823
5763
|
usedefaultdb: this.#options.usedefaultdb
|
|
5824
5764
|
});
|
|
5825
|
-
this.#dbSTSResource = new DBSTSResource(
|
|
5826
|
-
|
|
5765
|
+
this.#dbSTSResource = new DBSTSResource({
|
|
5766
|
+
logger: this.#options.logger,
|
|
5767
|
+
poolManager: this.#poolManager
|
|
5768
|
+
});
|
|
5769
|
+
this.#dbSTSResourceVersion = new DBSTSResourceVersion({
|
|
5770
|
+
logger: this.#options.logger,
|
|
5771
|
+
poolManager: this.#poolManager
|
|
5772
|
+
});
|
|
5827
5773
|
this.#dbSearchIndex = DBSearchIndex.getInstance();
|
|
5828
5774
|
this.#dbSTSResourceLink = new DBSTSResourceLink();
|
|
5829
5775
|
this.#dbSTSString = new DBSTSString();
|
|
@@ -5834,6 +5780,16 @@ var PGFhirAccessLayer = class extends TinyEmitter {
|
|
|
5834
5780
|
this.#dbSTSUri = new DBSTSUri();
|
|
5835
5781
|
this.#dbSTSCombo = new DBSTSCombo();
|
|
5836
5782
|
}
|
|
5783
|
+
GetOperationOutcome = (code, diagnostics) => {
|
|
5784
|
+
return {
|
|
5785
|
+
resourceType: "OperationOutcome",
|
|
5786
|
+
issue: [{
|
|
5787
|
+
severity: "error",
|
|
5788
|
+
code,
|
|
5789
|
+
diagnostics
|
|
5790
|
+
}]
|
|
5791
|
+
};
|
|
5792
|
+
};
|
|
5837
5793
|
async StartDatabase() {
|
|
5838
5794
|
return true;
|
|
5839
5795
|
}
|
|
@@ -6019,14 +5975,14 @@ var PGFhirAccessLayer = class extends TinyEmitter {
|
|
|
6019
5975
|
return false;
|
|
6020
5976
|
};
|
|
6021
5977
|
CreateResource = async (resource, transactionHandle) => {
|
|
6022
|
-
if (this.#poolManager)
|
|
6023
|
-
|
|
6024
|
-
|
|
6025
|
-
|
|
6026
|
-
|
|
6027
|
-
|
|
6028
|
-
|
|
6029
|
-
|
|
5978
|
+
if (!this.#poolManager) {
|
|
5979
|
+
const errorMessage = `CreateResource(): poolManager not set`;
|
|
5980
|
+
this.#options.logger.error(errorMessage);
|
|
5981
|
+
throw new Error(errorMessage);
|
|
5982
|
+
}
|
|
5983
|
+
let client;
|
|
5984
|
+
let useTransaction;
|
|
5985
|
+
try {
|
|
6030
5986
|
if (transactionHandle && this.#transactions[transactionHandle]) {
|
|
6031
5987
|
client = this.#transactions[transactionHandle].client;
|
|
6032
5988
|
useTransaction = false;
|
|
@@ -6034,50 +5990,72 @@ var PGFhirAccessLayer = class extends TinyEmitter {
|
|
|
6034
5990
|
client = await this.#poolManager.connectReadWrite();
|
|
6035
5991
|
useTransaction = true;
|
|
6036
5992
|
}
|
|
6037
|
-
try {
|
|
6038
|
-
if (useTransaction) await client.query("BEGIN");
|
|
6039
|
-
await this.#dbSTSResource.InsertResourceEx(client, {
|
|
6040
|
-
PID: PK,
|
|
6041
|
-
PARTITION_ID: 0,
|
|
6042
|
-
PARTITION_DATE: 0,
|
|
6043
|
-
RES_ID,
|
|
6044
|
-
RES_TYPE,
|
|
6045
|
-
RES_VER: 1,
|
|
6046
|
-
RES_VERSION: "r5",
|
|
6047
|
-
RES_PUBLISHED: now,
|
|
6048
|
-
RES_UPDATED: now
|
|
6049
|
-
});
|
|
6050
|
-
await this.#dbSTSResourceVersion.InsertResourceVersionEx(client, {
|
|
6051
|
-
PID: randomUUID$1(),
|
|
6052
|
-
PARTITION_ID: 0,
|
|
6053
|
-
PARTITION_DATE: 0,
|
|
6054
|
-
RES_ID,
|
|
6055
|
-
RES_TYPE,
|
|
6056
|
-
RES_VER: 1,
|
|
6057
|
-
OPERATION: "POST",
|
|
6058
|
-
RES
|
|
6059
|
-
});
|
|
6060
|
-
performance.now();
|
|
6061
|
-
await this.UpdateIndexes(client, resource);
|
|
6062
|
-
if (useTransaction) await client.query("COMMIT");
|
|
6063
|
-
return resource;
|
|
6064
|
-
} catch (error) {
|
|
6065
|
-
if (useTransaction) await client.query("ROLLBACK");
|
|
6066
|
-
} finally {
|
|
6067
|
-
if (useTransaction) client.release();
|
|
6068
|
-
}
|
|
6069
5993
|
} catch (error) {
|
|
6070
|
-
|
|
5994
|
+
const errorMessage = `CreateResource(): Could not get connection: Error: [${error}]`;
|
|
5995
|
+
this.#options.logger.error(errorMessage);
|
|
5996
|
+
throw new Error(errorMessage);
|
|
6071
5997
|
}
|
|
6072
|
-
|
|
6073
|
-
UpdateResource = async (resource, RES_VER, operation, transactionHandle) => {
|
|
6074
|
-
if (this.#poolManager) try {
|
|
5998
|
+
try {
|
|
6075
5999
|
const RES_ID = resource.id;
|
|
6076
6000
|
const RES_TYPE = resource.resourceType;
|
|
6077
|
-
const RES = JSON.stringify(resource);
|
|
6078
6001
|
const now = (/* @__PURE__ */ new Date()).getTime();
|
|
6079
|
-
|
|
6080
|
-
|
|
6002
|
+
if (useTransaction) await client.query("BEGIN");
|
|
6003
|
+
const newVersion = await this.#dbSTSResource.InsertResourceEx(client, {
|
|
6004
|
+
PID: randomUUID$1(),
|
|
6005
|
+
PARTITION_ID: 0,
|
|
6006
|
+
PARTITION_DATE: 0,
|
|
6007
|
+
RES_ID,
|
|
6008
|
+
RES_TYPE,
|
|
6009
|
+
RES_VER: 1,
|
|
6010
|
+
RES_VERSION: "r5",
|
|
6011
|
+
RES_PUBLISHED: now,
|
|
6012
|
+
RES_UPDATED: now
|
|
6013
|
+
});
|
|
6014
|
+
if (newVersion === void 0) {
|
|
6015
|
+
const errorMessage = `CreateResource(): Version Conflict. newVersion is undefined.`;
|
|
6016
|
+
this.#options.logger.error(errorMessage);
|
|
6017
|
+
throw new Error(errorMessage);
|
|
6018
|
+
}
|
|
6019
|
+
resource.meta ??= {};
|
|
6020
|
+
resource.meta.versionId = String(newVersion);
|
|
6021
|
+
resource.meta.lastUpdated = new Date(now).toISOString();
|
|
6022
|
+
const RES = JSON.stringify(resource);
|
|
6023
|
+
if (await this.#dbSTSResourceVersion.InsertResourceVersionEx(client, {
|
|
6024
|
+
PID: randomUUID$1(),
|
|
6025
|
+
PARTITION_ID: 0,
|
|
6026
|
+
PARTITION_DATE: 0,
|
|
6027
|
+
RES_ID,
|
|
6028
|
+
RES_TYPE,
|
|
6029
|
+
RES_VER: newVersion,
|
|
6030
|
+
OPERATION: "POST",
|
|
6031
|
+
RES
|
|
6032
|
+
}) === void 0) {
|
|
6033
|
+
const errorMessage = `CreateResource(): Version Conflict. resourceVersionRunResult is undefined.`;
|
|
6034
|
+
this.#options.logger.error(errorMessage);
|
|
6035
|
+
throw new Error(errorMessage);
|
|
6036
|
+
}
|
|
6037
|
+
performance.now();
|
|
6038
|
+
await this.UpdateIndexes(client, resource);
|
|
6039
|
+
if (useTransaction) await client.query("COMMIT");
|
|
6040
|
+
return resource;
|
|
6041
|
+
} catch (error) {
|
|
6042
|
+
if (useTransaction) await client.query("ROLLBACK");
|
|
6043
|
+
const errorMessage = `CreateResource(): Error: [${error}]`;
|
|
6044
|
+
this.#options.logger.error(errorMessage);
|
|
6045
|
+
throw new Error(errorMessage);
|
|
6046
|
+
} finally {
|
|
6047
|
+
if (useTransaction) client.release();
|
|
6048
|
+
}
|
|
6049
|
+
};
|
|
6050
|
+
UpdateResource = async (resource, RES_VER, operation, transactionHandle) => {
|
|
6051
|
+
if (!this.#poolManager) {
|
|
6052
|
+
const errorMessage = `UpdateResource(): poolManager not set`;
|
|
6053
|
+
this.#options.logger.error(errorMessage);
|
|
6054
|
+
throw new Error(errorMessage);
|
|
6055
|
+
}
|
|
6056
|
+
let client;
|
|
6057
|
+
let useTransaction;
|
|
6058
|
+
try {
|
|
6081
6059
|
if (transactionHandle && this.#transactions[transactionHandle]) {
|
|
6082
6060
|
client = this.#transactions[transactionHandle].client;
|
|
6083
6061
|
useTransaction = false;
|
|
@@ -6085,43 +6063,66 @@ var PGFhirAccessLayer = class extends TinyEmitter {
|
|
|
6085
6063
|
client = await this.#poolManager.connectReadWrite();
|
|
6086
6064
|
useTransaction = true;
|
|
6087
6065
|
}
|
|
6088
|
-
|
|
6089
|
-
|
|
6090
|
-
|
|
6091
|
-
|
|
6092
|
-
|
|
6093
|
-
|
|
6094
|
-
|
|
6095
|
-
|
|
6096
|
-
|
|
6097
|
-
|
|
6098
|
-
|
|
6099
|
-
|
|
6100
|
-
|
|
6101
|
-
|
|
6102
|
-
|
|
6103
|
-
|
|
6104
|
-
|
|
6105
|
-
}
|
|
6106
|
-
|
|
6107
|
-
|
|
6108
|
-
|
|
6109
|
-
|
|
6110
|
-
|
|
6111
|
-
|
|
6112
|
-
|
|
6066
|
+
} catch (error) {
|
|
6067
|
+
const errorMessage = `UpdateResource(): Could not get connection: Error: [${error}]`;
|
|
6068
|
+
this.#options.logger.error(errorMessage);
|
|
6069
|
+
throw new Error(errorMessage);
|
|
6070
|
+
}
|
|
6071
|
+
try {
|
|
6072
|
+
const RES_ID = resource.id;
|
|
6073
|
+
const RES_TYPE = resource.resourceType;
|
|
6074
|
+
const now = (/* @__PURE__ */ new Date()).getTime();
|
|
6075
|
+
if (useTransaction) await client.query("BEGIN");
|
|
6076
|
+
const newVersion = await this.#dbSTSResource.UpdateResourceRecordEx(client, {
|
|
6077
|
+
RES_TYPE,
|
|
6078
|
+
RES_ID,
|
|
6079
|
+
RES_VER,
|
|
6080
|
+
RES_UPDATED: now
|
|
6081
|
+
});
|
|
6082
|
+
if (newVersion === void 0) {
|
|
6083
|
+
const errorMessage = `UpdateResource(): Version Conflict. newVersion is undefined. RES_VER: [${RES_VER}]`;
|
|
6084
|
+
this.#options.logger.error(errorMessage);
|
|
6085
|
+
throw new Error(errorMessage);
|
|
6086
|
+
}
|
|
6087
|
+
resource.meta ??= {};
|
|
6088
|
+
resource.meta.versionId = String(newVersion);
|
|
6089
|
+
resource.meta.lastUpdated = new Date(now).toISOString();
|
|
6090
|
+
const RES = JSON.stringify(resource);
|
|
6091
|
+
if (await this.#dbSTSResourceVersion.InsertResourceVersionEx(client, {
|
|
6092
|
+
PID: randomUUID$1(),
|
|
6093
|
+
PARTITION_ID: 0,
|
|
6094
|
+
PARTITION_DATE: 0,
|
|
6095
|
+
RES_ID,
|
|
6096
|
+
RES_TYPE,
|
|
6097
|
+
RES_VER: newVersion,
|
|
6098
|
+
OPERATION: operation,
|
|
6099
|
+
RES
|
|
6100
|
+
}) === void 0) {
|
|
6101
|
+
const errorMessage = `UpdateResource(): Version Conflict. resourceVersionRunResult is undefined. RES_VER: [${RES_VER}]`;
|
|
6102
|
+
this.#options.logger.error(errorMessage);
|
|
6103
|
+
throw new Error(errorMessage);
|
|
6113
6104
|
}
|
|
6105
|
+
await this.UpdateIndexes(client, resource);
|
|
6106
|
+
if (useTransaction) await client.query("COMMIT");
|
|
6107
|
+
return resource;
|
|
6114
6108
|
} catch (error) {
|
|
6115
|
-
|
|
6109
|
+
if (useTransaction) await client.query("ROLLBACK");
|
|
6110
|
+
const errorMessage = `UpdateResource(): Error: [${error}]`;
|
|
6111
|
+
this.#options.logger.error(errorMessage);
|
|
6112
|
+
throw new Error(errorMessage);
|
|
6113
|
+
} finally {
|
|
6114
|
+
if (useTransaction) client.release();
|
|
6116
6115
|
}
|
|
6117
6116
|
};
|
|
6118
6117
|
DeleteResource = async (resource, RES_VER, transactionHandle) => {
|
|
6119
|
-
if (this.#poolManager)
|
|
6120
|
-
const
|
|
6121
|
-
|
|
6122
|
-
|
|
6123
|
-
|
|
6124
|
-
|
|
6118
|
+
if (!this.#poolManager) {
|
|
6119
|
+
const errorMessage = `DeleteResource(): poolManager not set`;
|
|
6120
|
+
this.#options.logger.error(errorMessage);
|
|
6121
|
+
throw new Error(errorMessage);
|
|
6122
|
+
}
|
|
6123
|
+
let client;
|
|
6124
|
+
let useTransaction;
|
|
6125
|
+
try {
|
|
6125
6126
|
if (transactionHandle && this.#transactions[transactionHandle]) {
|
|
6126
6127
|
client = this.#transactions[transactionHandle].client;
|
|
6127
6128
|
useTransaction = false;
|
|
@@ -6129,39 +6130,64 @@ var PGFhirAccessLayer = class extends TinyEmitter {
|
|
|
6129
6130
|
client = await this.#poolManager.connectReadWrite();
|
|
6130
6131
|
useTransaction = true;
|
|
6131
6132
|
}
|
|
6132
|
-
|
|
6133
|
-
|
|
6134
|
-
|
|
6135
|
-
|
|
6136
|
-
|
|
6137
|
-
|
|
6138
|
-
|
|
6139
|
-
|
|
6140
|
-
|
|
6141
|
-
|
|
6142
|
-
|
|
6143
|
-
|
|
6144
|
-
|
|
6145
|
-
|
|
6146
|
-
|
|
6147
|
-
|
|
6148
|
-
|
|
6149
|
-
|
|
6150
|
-
}
|
|
6151
|
-
|
|
6152
|
-
|
|
6153
|
-
|
|
6154
|
-
|
|
6155
|
-
|
|
6156
|
-
|
|
6157
|
-
|
|
6133
|
+
} catch (error) {
|
|
6134
|
+
const errorMessage = `DeleteResource(): Could not get connection: Error: [${error}]`;
|
|
6135
|
+
this.#options.logger.error(errorMessage);
|
|
6136
|
+
throw new Error(errorMessage);
|
|
6137
|
+
}
|
|
6138
|
+
try {
|
|
6139
|
+
const RES_ID = resource.id;
|
|
6140
|
+
const RES_TYPE = resource.resourceType;
|
|
6141
|
+
const now = (/* @__PURE__ */ new Date()).getTime();
|
|
6142
|
+
if (useTransaction) await client.query("BEGIN");
|
|
6143
|
+
const newVersion = await this.#dbSTSResource.DeleteResourceRecordEx(client, {
|
|
6144
|
+
RES_ID,
|
|
6145
|
+
RES_TYPE,
|
|
6146
|
+
RES_VER,
|
|
6147
|
+
RES_DELETED_AT: now,
|
|
6148
|
+
RES_UPDATED: now
|
|
6149
|
+
});
|
|
6150
|
+
if (newVersion === void 0) {
|
|
6151
|
+
const errorMessage = `DeleteResource(): Version Conflict. newVersion is undefined. RES_VER: [${RES_VER}]`;
|
|
6152
|
+
this.#options.logger.error(errorMessage);
|
|
6153
|
+
throw new Error(errorMessage);
|
|
6154
|
+
}
|
|
6155
|
+
resource.meta ??= {};
|
|
6156
|
+
resource.meta.versionId = String(newVersion);
|
|
6157
|
+
resource.meta.lastUpdated = new Date(now).toISOString();
|
|
6158
|
+
if (await this.#dbSTSResourceVersion.InsertResourceVersionEx(client, {
|
|
6159
|
+
PID: randomUUID$1(),
|
|
6160
|
+
PARTITION_ID: 0,
|
|
6161
|
+
PARTITION_DATE: 0,
|
|
6162
|
+
RES_ID,
|
|
6163
|
+
RES_TYPE,
|
|
6164
|
+
RES_VER: newVersion,
|
|
6165
|
+
OPERATION: "DELETE",
|
|
6166
|
+
RES: ""
|
|
6167
|
+
}) === void 0) {
|
|
6168
|
+
const errorMessage = `DeleteResource(): Version Conflict. resourceVersionRunResult is undefined. RES_VER: [${RES_VER}]`;
|
|
6169
|
+
this.#options.logger.error(errorMessage);
|
|
6170
|
+
throw new Error(errorMessage);
|
|
6158
6171
|
}
|
|
6172
|
+
await this.UpdateIndexes(client, resource);
|
|
6173
|
+
if (useTransaction) await client.query("COMMIT");
|
|
6174
|
+
return resource;
|
|
6159
6175
|
} catch (error) {
|
|
6160
|
-
|
|
6176
|
+
if (useTransaction) await client.query("ROLLBACK");
|
|
6177
|
+
const errorMessage = `DeleteResource(): Error: [${error}]`;
|
|
6178
|
+
this.#options.logger.error(errorMessage);
|
|
6179
|
+
throw new Error(errorMessage);
|
|
6180
|
+
} finally {
|
|
6181
|
+
if (useTransaction) client.release();
|
|
6161
6182
|
}
|
|
6162
6183
|
};
|
|
6163
6184
|
ReadResourceRecord = async (RES_TYPE, RES_ID, transactionHandle) => {
|
|
6164
|
-
if (this.#poolManager)
|
|
6185
|
+
if (!this.#poolManager) {
|
|
6186
|
+
const errorMessage = `ReadResourceRecord(): poolManager not set`;
|
|
6187
|
+
this.#options.logger.error(errorMessage);
|
|
6188
|
+
throw new Error(errorMessage);
|
|
6189
|
+
}
|
|
6190
|
+
try {
|
|
6165
6191
|
let client;
|
|
6166
6192
|
let useTransaction;
|
|
6167
6193
|
if (transactionHandle && this.#transactions[transactionHandle]) {
|
|
@@ -6173,19 +6199,19 @@ var PGFhirAccessLayer = class extends TinyEmitter {
|
|
|
6173
6199
|
}
|
|
6174
6200
|
try {
|
|
6175
6201
|
return (await client.query(`
|
|
6176
|
-
|
|
6177
|
-
|
|
6178
|
-
|
|
6179
|
-
|
|
6180
|
-
|
|
6181
|
-
|
|
6182
|
-
|
|
6183
|
-
|
|
6184
|
-
|
|
6185
|
-
|
|
6186
|
-
|
|
6187
|
-
|
|
6188
|
-
|
|
6202
|
+
SELECT
|
|
6203
|
+
r.*, v.* FROM stsresfhir r
|
|
6204
|
+
JOIN
|
|
6205
|
+
stsresfhirver v
|
|
6206
|
+
ON
|
|
6207
|
+
r.RES_ID = v.RES_ID AND
|
|
6208
|
+
r.RES_TYPE = v.RES_TYPE AND
|
|
6209
|
+
r.RES_VER = v.RES_VER
|
|
6210
|
+
WHERE
|
|
6211
|
+
r.RES_ID = $1 AND
|
|
6212
|
+
r.RES_TYPE = $2 AND
|
|
6213
|
+
r.RES_DELETED_AT IS NULL
|
|
6214
|
+
`, [RES_ID, RES_TYPE])).rows[0];
|
|
6189
6215
|
} catch (error) {
|
|
6190
6216
|
defaultLogger.error(`DBSTSResource:ReadResourceRecord(): Query Error: [${error}]`);
|
|
6191
6217
|
} finally {
|
|
@@ -6196,7 +6222,12 @@ var PGFhirAccessLayer = class extends TinyEmitter {
|
|
|
6196
6222
|
}
|
|
6197
6223
|
};
|
|
6198
6224
|
ReadResourceRecordWithVersion = async (RES_TYPE, RES_ID, RES_VER, transactionHandle) => {
|
|
6199
|
-
if (this.#poolManager)
|
|
6225
|
+
if (!this.#poolManager) {
|
|
6226
|
+
const errorMessage = `ReadResourceRecordWithVersion(): poolManager not set`;
|
|
6227
|
+
this.#options.logger.error(errorMessage);
|
|
6228
|
+
throw new Error(errorMessage);
|
|
6229
|
+
}
|
|
6230
|
+
try {
|
|
6200
6231
|
let client;
|
|
6201
6232
|
let useTransaction;
|
|
6202
6233
|
if (transactionHandle && this.#transactions[transactionHandle]) {
|
|
@@ -6208,18 +6239,18 @@ var PGFhirAccessLayer = class extends TinyEmitter {
|
|
|
6208
6239
|
}
|
|
6209
6240
|
try {
|
|
6210
6241
|
return (await client.query(`
|
|
6211
|
-
|
|
6212
|
-
|
|
6213
|
-
|
|
6214
|
-
|
|
6215
|
-
|
|
6216
|
-
|
|
6217
|
-
|
|
6218
|
-
|
|
6219
|
-
|
|
6220
|
-
|
|
6221
|
-
|
|
6222
|
-
|
|
6242
|
+
SELECT
|
|
6243
|
+
r.*, v.*, r.res_ver as R_res_ver, v.res_ver as V_res_ver FROM stsresfhir r
|
|
6244
|
+
JOIN
|
|
6245
|
+
stsresfhirver v
|
|
6246
|
+
ON
|
|
6247
|
+
r.RES_ID = v.RES_ID AND
|
|
6248
|
+
r.RES_TYPE = v.RES_TYPE
|
|
6249
|
+
WHERE
|
|
6250
|
+
r.RES_ID = $1 AND
|
|
6251
|
+
r.RES_TYPE = $2 AND
|
|
6252
|
+
v.RES_VER = $3
|
|
6253
|
+
`, [
|
|
6223
6254
|
RES_ID,
|
|
6224
6255
|
RES_TYPE,
|
|
6225
6256
|
RES_VER
|
|
@@ -6234,7 +6265,12 @@ var PGFhirAccessLayer = class extends TinyEmitter {
|
|
|
6234
6265
|
}
|
|
6235
6266
|
};
|
|
6236
6267
|
ReadResourceInstanceWithAllVersions = async (RES_TYPE, RES_ID, transactionHandle) => {
|
|
6237
|
-
if (this.#poolManager)
|
|
6268
|
+
if (!this.#poolManager) {
|
|
6269
|
+
const errorMessage = `ReadResourceInstanceWithAllVersions(): poolManager not set`;
|
|
6270
|
+
this.#options.logger.error(errorMessage);
|
|
6271
|
+
throw new Error(errorMessage);
|
|
6272
|
+
}
|
|
6273
|
+
try {
|
|
6238
6274
|
let client;
|
|
6239
6275
|
let useTransaction;
|
|
6240
6276
|
if (transactionHandle && this.#transactions[transactionHandle]) {
|
|
@@ -6246,19 +6282,19 @@ var PGFhirAccessLayer = class extends TinyEmitter {
|
|
|
6246
6282
|
}
|
|
6247
6283
|
try {
|
|
6248
6284
|
return (await client.query(`
|
|
6249
|
-
|
|
6250
|
-
|
|
6251
|
-
|
|
6252
|
-
|
|
6253
|
-
|
|
6254
|
-
|
|
6255
|
-
|
|
6256
|
-
|
|
6257
|
-
|
|
6258
|
-
|
|
6259
|
-
|
|
6260
|
-
|
|
6261
|
-
|
|
6285
|
+
SELECT
|
|
6286
|
+
r.*, v.*, r.res_ver as R_res_ver, v.res_ver as V_res_ver FROM stsresfhir r
|
|
6287
|
+
JOIN
|
|
6288
|
+
stsresfhirver v
|
|
6289
|
+
ON
|
|
6290
|
+
r.RES_ID = v.RES_ID AND
|
|
6291
|
+
r.RES_TYPE = v.RES_TYPE
|
|
6292
|
+
WHERE
|
|
6293
|
+
r.RES_ID = $1 AND
|
|
6294
|
+
r.RES_TYPE = $2
|
|
6295
|
+
ORDER BY
|
|
6296
|
+
v.RES_TYPE ASC, v.RES_ID ASC, v.RES_VER DESC
|
|
6297
|
+
`, [RES_ID, RES_TYPE])).rows;
|
|
6262
6298
|
} catch (error) {
|
|
6263
6299
|
defaultLogger.error(`DBSTSResource:ReadResourceRecord(): Query Error: [${error}]`);
|
|
6264
6300
|
} finally {
|
|
@@ -6269,7 +6305,12 @@ var PGFhirAccessLayer = class extends TinyEmitter {
|
|
|
6269
6305
|
}
|
|
6270
6306
|
};
|
|
6271
6307
|
ReadResourcesWithAllVersions = async (RES_TYPE, transactionHandle) => {
|
|
6272
|
-
if (this.#poolManager)
|
|
6308
|
+
if (!this.#poolManager) {
|
|
6309
|
+
const errorMessage = `ReadResourcesWithAllVersions(): poolManager not set`;
|
|
6310
|
+
this.#options.logger.error(errorMessage);
|
|
6311
|
+
throw new Error(errorMessage);
|
|
6312
|
+
}
|
|
6313
|
+
try {
|
|
6273
6314
|
let client;
|
|
6274
6315
|
let useTransaction;
|
|
6275
6316
|
if (transactionHandle && this.#transactions[transactionHandle]) {
|
|
@@ -6281,18 +6322,18 @@ var PGFhirAccessLayer = class extends TinyEmitter {
|
|
|
6281
6322
|
}
|
|
6282
6323
|
try {
|
|
6283
6324
|
return (await client.query(`
|
|
6284
|
-
|
|
6285
|
-
|
|
6286
|
-
|
|
6287
|
-
|
|
6288
|
-
|
|
6289
|
-
|
|
6290
|
-
|
|
6291
|
-
|
|
6292
|
-
|
|
6293
|
-
|
|
6294
|
-
|
|
6295
|
-
|
|
6325
|
+
SELECT
|
|
6326
|
+
r.*, v.*, r.res_ver as R_res_ver, v.res_ver as V_res_ver FROM stsresfhir r
|
|
6327
|
+
JOIN
|
|
6328
|
+
stsresfhirver v
|
|
6329
|
+
ON
|
|
6330
|
+
r.RES_ID = v.RES_ID AND
|
|
6331
|
+
r.RES_TYPE = v.RES_TYPE
|
|
6332
|
+
WHERE
|
|
6333
|
+
r.RES_TYPE = $1
|
|
6334
|
+
ORDER BY
|
|
6335
|
+
v.RES_TYPE ASC, v.RES_ID ASC, v.RES_VER DESC
|
|
6336
|
+
`, [RES_TYPE])).rows;
|
|
6296
6337
|
} catch (error) {
|
|
6297
6338
|
defaultLogger.error(`DBSTSResource:ReadResourceRecord(): Query Error: [${error}]`);
|
|
6298
6339
|
} finally {
|
|
@@ -6303,7 +6344,12 @@ var PGFhirAccessLayer = class extends TinyEmitter {
|
|
|
6303
6344
|
}
|
|
6304
6345
|
};
|
|
6305
6346
|
ReadAllResourcesWithVersions = async (transactionHandle) => {
|
|
6306
|
-
if (this.#poolManager)
|
|
6347
|
+
if (!this.#poolManager) {
|
|
6348
|
+
const errorMessage = `ReadAllResourcesWithVersions(): poolManager not set`;
|
|
6349
|
+
this.#options.logger.error(errorMessage);
|
|
6350
|
+
throw new Error(errorMessage);
|
|
6351
|
+
}
|
|
6352
|
+
try {
|
|
6307
6353
|
let client;
|
|
6308
6354
|
let useTransaction;
|
|
6309
6355
|
if (transactionHandle && this.#transactions[transactionHandle]) {
|
|
@@ -6315,16 +6361,16 @@ var PGFhirAccessLayer = class extends TinyEmitter {
|
|
|
6315
6361
|
}
|
|
6316
6362
|
try {
|
|
6317
6363
|
return (await client.query(`
|
|
6318
|
-
|
|
6319
|
-
|
|
6320
|
-
|
|
6321
|
-
|
|
6322
|
-
|
|
6323
|
-
|
|
6324
|
-
|
|
6325
|
-
|
|
6326
|
-
|
|
6327
|
-
|
|
6364
|
+
SELECT
|
|
6365
|
+
r.*, v.* FROM stsresfhir r
|
|
6366
|
+
JOIN
|
|
6367
|
+
stsresfhirver v
|
|
6368
|
+
ON
|
|
6369
|
+
r.RES_ID = v.RES_ID AND
|
|
6370
|
+
r.RES_TYPE = v.RES_TYPE AND
|
|
6371
|
+
ORDER BY
|
|
6372
|
+
v.RES_TYPE ASC, v.RES_ID ASC, v.RES_VER DESC
|
|
6373
|
+
`)).rows;
|
|
6328
6374
|
} catch (error) {
|
|
6329
6375
|
defaultLogger.error(`DBSTSResource:ReadResourceRecord(): Query Error: [${error}]`);
|
|
6330
6376
|
} finally {
|
|
@@ -6338,7 +6384,12 @@ var PGFhirAccessLayer = class extends TinyEmitter {
|
|
|
6338
6384
|
return this.#dbSTSResourceVersion.ReadAllResourceVersionRecords();
|
|
6339
6385
|
};
|
|
6340
6386
|
ReadResourceIndexes = async (resource, transactionHandle) => {
|
|
6341
|
-
if (this.#poolManager)
|
|
6387
|
+
if (!this.#poolManager) {
|
|
6388
|
+
const errorMessage = `ReadResourceIndexes(): poolManager not set`;
|
|
6389
|
+
this.#options.logger.error(errorMessage);
|
|
6390
|
+
throw new Error(errorMessage);
|
|
6391
|
+
}
|
|
6392
|
+
try {
|
|
6342
6393
|
const resultSet = {
|
|
6343
6394
|
"stsresfhirlink": [],
|
|
6344
6395
|
"stsresfhirstring": [],
|
|
@@ -6378,7 +6429,12 @@ var PGFhirAccessLayer = class extends TinyEmitter {
|
|
|
6378
6429
|
}
|
|
6379
6430
|
};
|
|
6380
6431
|
ExecuteReadQuery = async (queryData, transactionHandle) => {
|
|
6381
|
-
if (this.#poolManager)
|
|
6432
|
+
if (!this.#poolManager) {
|
|
6433
|
+
const errorMessage = `ExecuteReadQuery(): poolManager not set`;
|
|
6434
|
+
this.#options.logger.error(errorMessage);
|
|
6435
|
+
throw new Error(errorMessage);
|
|
6436
|
+
}
|
|
6437
|
+
try {
|
|
6382
6438
|
let client;
|
|
6383
6439
|
let useTransaction;
|
|
6384
6440
|
if (transactionHandle && this.#transactions[transactionHandle]) {
|
|
@@ -6401,7 +6457,12 @@ var PGFhirAccessLayer = class extends TinyEmitter {
|
|
|
6401
6457
|
}
|
|
6402
6458
|
};
|
|
6403
6459
|
TruncateAll = async () => {
|
|
6404
|
-
if (this.#poolManager)
|
|
6460
|
+
if (!this.#poolManager) {
|
|
6461
|
+
const errorMessage = `TruncateAll(): poolManager not set`;
|
|
6462
|
+
this.#options.logger.error(errorMessage);
|
|
6463
|
+
throw new Error(errorMessage);
|
|
6464
|
+
}
|
|
6465
|
+
try {
|
|
6405
6466
|
let client;
|
|
6406
6467
|
client = await this.#poolManager.connectReadWrite();
|
|
6407
6468
|
try {
|