@nsshunt/stsappframework 3.1.148 → 3.1.150

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.
Files changed (66) hide show
  1. package/dist/index.js +0 -2
  2. package/dist/index.js.map +1 -1
  3. package/package.json +10 -10
  4. package/src/index.ts +0 -2
  5. package/types/index.d.ts +0 -2
  6. package/types/index.d.ts.map +1 -1
  7. package/dist/fhir/STSFhirTypes.js +0 -11
  8. package/dist/fhir/STSFhirTypes.js.map +0 -1
  9. package/dist/fhir/dalFhirManager.js +0 -34
  10. package/dist/fhir/dalFhirManager.js.map +0 -1
  11. package/dist/fhir/dalFhirManagerBase.js +0 -63
  12. package/dist/fhir/dalFhirManagerBase.js.map +0 -1
  13. package/dist/fhir/dalFhirManagerIORedisJson.js +0 -250
  14. package/dist/fhir/dalFhirManagerIORedisJson.js.map +0 -1
  15. package/dist/fhir/dalFhirManagerIORedisJson.test.js +0 -73
  16. package/dist/fhir/dalFhirManagerIORedisJson.test.js.map +0 -1
  17. package/dist/fhir/dalFhirManagerPGRes.js +0 -133
  18. package/dist/fhir/dalFhirManagerPGRes.js.map +0 -1
  19. package/dist/fhir/dalFhirManagerPGRes.test.js +0 -72
  20. package/dist/fhir/dalFhirManagerPGRes.test.js.map +0 -1
  21. package/dist/fhir/dalFhirManagerPGResEntity.js +0 -166
  22. package/dist/fhir/dalFhirManagerPGResEntity.js.map +0 -1
  23. package/dist/fhir/dalFhirManagerPGResEntity.test.js +0 -73
  24. package/dist/fhir/dalFhirManagerPGResEntity.test.js.map +0 -1
  25. package/dist/fhir/dalFhirManagerRedisJson.js +0 -226
  26. package/dist/fhir/dalFhirManagerRedisJson.js.map +0 -1
  27. package/dist/fhir/dalFhirManagerRedisJson.test.js +0 -73
  28. package/dist/fhir/dalFhirManagerRedisJson.test.js.map +0 -1
  29. package/dist/fhir/dalFhirTestHelpers.js +0 -227
  30. package/dist/fhir/dalFhirTestHelpers.js.map +0 -1
  31. package/src/fhir/STSFhirTypes.ts +0 -541
  32. package/src/fhir/dalFhirManager.ts +0 -33
  33. package/src/fhir/dalFhirManagerBase.ts +0 -77
  34. package/src/fhir/dalFhirManagerIORedisJson.test.ts +0 -94
  35. package/src/fhir/dalFhirManagerIORedisJson.ts +0 -260
  36. package/src/fhir/dalFhirManagerPGRes.test.ts +0 -91
  37. package/src/fhir/dalFhirManagerPGRes.ts +0 -147
  38. package/src/fhir/dalFhirManagerPGResEntity.test.ts +0 -93
  39. package/src/fhir/dalFhirManagerPGResEntity.ts +0 -183
  40. package/src/fhir/dalFhirManagerRedisJson.test.ts +0 -93
  41. package/src/fhir/dalFhirManagerRedisJson.ts +0 -230
  42. package/src/fhir/dalFhirTestHelpers.ts +0 -276
  43. package/types/fhir/STSFhirTypes.d.ts +0 -351
  44. package/types/fhir/STSFhirTypes.d.ts.map +0 -1
  45. package/types/fhir/dalFhirManager.d.ts +0 -7
  46. package/types/fhir/dalFhirManager.d.ts.map +0 -1
  47. package/types/fhir/dalFhirManagerBase.d.ts +0 -19
  48. package/types/fhir/dalFhirManagerBase.d.ts.map +0 -1
  49. package/types/fhir/dalFhirManagerIORedisJson.d.ts +0 -18
  50. package/types/fhir/dalFhirManagerIORedisJson.d.ts.map +0 -1
  51. package/types/fhir/dalFhirManagerIORedisJson.test.d.ts +0 -2
  52. package/types/fhir/dalFhirManagerIORedisJson.test.d.ts.map +0 -1
  53. package/types/fhir/dalFhirManagerPGRes.d.ts +0 -14
  54. package/types/fhir/dalFhirManagerPGRes.d.ts.map +0 -1
  55. package/types/fhir/dalFhirManagerPGRes.test.d.ts +0 -2
  56. package/types/fhir/dalFhirManagerPGRes.test.d.ts.map +0 -1
  57. package/types/fhir/dalFhirManagerPGResEntity.d.ts +0 -14
  58. package/types/fhir/dalFhirManagerPGResEntity.d.ts.map +0 -1
  59. package/types/fhir/dalFhirManagerPGResEntity.test.d.ts +0 -2
  60. package/types/fhir/dalFhirManagerPGResEntity.test.d.ts.map +0 -1
  61. package/types/fhir/dalFhirManagerRedisJson.d.ts +0 -15
  62. package/types/fhir/dalFhirManagerRedisJson.d.ts.map +0 -1
  63. package/types/fhir/dalFhirManagerRedisJson.test.d.ts +0 -2
  64. package/types/fhir/dalFhirManagerRedisJson.test.d.ts.map +0 -1
  65. package/types/fhir/dalFhirTestHelpers.d.ts +0 -20
  66. package/types/fhir/dalFhirTestHelpers.d.ts.map +0 -1
@@ -1,226 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.DALFhirManagerRedisJson = void 0;
7
- const redis_1 = require("redis");
8
- const dalFhirManagerBase_1 = require("./dalFhirManagerBase");
9
- const chalk_1 = __importDefault(require("chalk"));
10
- class DALFhirManagerRedisJson extends dalFhirManagerBase_1.DALFhirManagerBase {
11
- #redis = null;
12
- #indexName = 'idx:stsfhirresindex';
13
- constructor(options) {
14
- super(options);
15
- }
16
- #CreateIndex = async () => {
17
- if (!this.#redis) {
18
- return;
19
- }
20
- try {
21
- const retVal = await this.#redis.ft.dropIndex(this.#indexName);
22
- console.log(retVal);
23
- }
24
- catch (error) {
25
- console.log(chalk_1.default.red(error));
26
- }
27
- try {
28
- const retVal = await this.#redis.ft.create(this.#indexName, {
29
- 'id': { type: redis_1.SchemaFieldTypes.TEXT, SORTABLE: true }
30
- }, {
31
- ON: 'HASH',
32
- PREFIX: `${this.options.resourceName}_`
33
- });
34
- console.log(retVal);
35
- }
36
- catch (error) {
37
- console.log(chalk_1.default.red(error));
38
- }
39
- };
40
- #SearchBy = async (id) => {
41
- if (!this.#redis) {
42
- return null;
43
- }
44
- const queryOptions = {
45
- RETURN: ['id', 'data'],
46
- LIMIT: {
47
- from: 0,
48
- size: 100
49
- },
50
- SORTBY: {
51
- BY: 'id',
52
- DIRECTION: 'DESC'
53
- }
54
- };
55
- const query = `@id:${this.options.resourceName}_${id}*`;
56
- const retVal = await this.#redis.ft.search(this.#indexName, query, queryOptions);
57
- return retVal;
58
- };
59
- async Start() {
60
- this.#redis = await (0, redis_1.createClient)({ url: this.options.redisUrl })
61
- .on('error', error => console.error(chalk_1.default.red(`Error connecting to redis. Error: [${error}]`)))
62
- .connect();
63
- if (this.#redis) {
64
- await this.#CreateIndex();
65
- }
66
- else {
67
- console.error(chalk_1.default.red(`this.#redis instance not created.`));
68
- }
69
- }
70
- async Stop() {
71
- if (this.#redis) {
72
- //await this.#redis.quit();
73
- await this.#redis.disconnect();
74
- }
75
- }
76
- GetResourceType(fhir) {
77
- return `${this.options.resourceName}_${fhir.id}`;
78
- }
79
- async GetFhirResource(fhir, ecb) {
80
- try {
81
- if (this.#redis) {
82
- const retValRaw = await this.#redis.HGETALL(this.GetResourceType(fhir));
83
- if (retValRaw) {
84
- try {
85
- const { id, data } = retValRaw;
86
- return JSON.parse(data);
87
- }
88
- catch (error) {
89
- if (ecb) {
90
- ecb(fhir, error);
91
- }
92
- return null;
93
- }
94
- }
95
- else {
96
- return null;
97
- }
98
- }
99
- else {
100
- return null;
101
- }
102
- }
103
- catch (error) {
104
- if (ecb) {
105
- ecb(fhir, error);
106
- }
107
- return null;
108
- }
109
- }
110
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
111
- async CreateFhirResource(fhir, ecb) {
112
- try {
113
- if (this.#redis) {
114
- const record = {
115
- id: this.GetResourceType(fhir),
116
- data: JSON.stringify(fhir)
117
- };
118
- const keyValuePairs = Object.entries(record).flat();
119
- const retVal = await this.#redis.HSET(this.GetResourceType(fhir), keyValuePairs);
120
- if (retVal) {
121
- return fhir;
122
- }
123
- else {
124
- return null;
125
- }
126
- }
127
- else {
128
- console.error(chalk_1.default.red(`this.#redis not defined.`));
129
- return null;
130
- }
131
- }
132
- catch (error) {
133
- if (ecb) {
134
- ecb(fhir, error);
135
- }
136
- return null;
137
- }
138
- }
139
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
140
- async UpdateFhirResource(fhir, ecb) {
141
- try {
142
- if (this.#redis) {
143
- const record = {
144
- id: this.GetResourceType(fhir),
145
- data: JSON.stringify(fhir)
146
- };
147
- const keyValuePairs = Object.entries(record).flat();
148
- const retVal = await this.#redis.HSET(this.GetResourceType(fhir), keyValuePairs);
149
- if (retVal >= 0) {
150
- return fhir;
151
- }
152
- else {
153
- return null;
154
- }
155
- }
156
- else {
157
- return null;
158
- }
159
- }
160
- catch (error) {
161
- if (ecb) {
162
- ecb(fhir, error);
163
- }
164
- return null;
165
- }
166
- }
167
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
168
- async DeleteFhirResource(fhir, ecb) {
169
- try {
170
- if (this.#redis) {
171
- const deleteResource = await this.GetFhirResource(fhir);
172
- if (deleteResource) {
173
- const retVal = await this.#redis.del(this.GetResourceType(fhir));
174
- if (retVal > 0) {
175
- return deleteResource;
176
- }
177
- else {
178
- return null;
179
- }
180
- }
181
- else {
182
- return null;
183
- }
184
- }
185
- else {
186
- return null;
187
- }
188
- }
189
- catch (error) {
190
- if (ecb) {
191
- ecb(fhir, error);
192
- }
193
- return null;
194
- }
195
- }
196
- async GetFhirResources(filters, ecb) {
197
- try {
198
- const promArray = [];
199
- filters.forEach(filter => {
200
- const prom = async () => {
201
- const retValArray = [];
202
- const retVal = await this.#SearchBy(filter);
203
- retVal?.documents.forEach(doc => {
204
- retValArray.push(JSON.parse(doc.value.data));
205
- });
206
- return retValArray;
207
- };
208
- promArray.push(prom());
209
- });
210
- const promRetVal = await Promise.all(promArray);
211
- let retVal = [];
212
- promRetVal.forEach(prv => {
213
- retVal = retVal.concat(prv);
214
- });
215
- return retVal;
216
- }
217
- catch (error) {
218
- if (ecb) {
219
- ecb(filters, error);
220
- }
221
- return null;
222
- }
223
- }
224
- }
225
- exports.DALFhirManagerRedisJson = DALFhirManagerRedisJson;
226
- //# sourceMappingURL=dalFhirManagerRedisJson.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dalFhirManagerRedisJson.js","sourceRoot":"","sources":["../../src/fhir/dalFhirManagerRedisJson.ts"],"names":[],"mappings":"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"}
@@ -1,73 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- /* eslint @typescript-eslint/no-explicit-any: 0 */ // --> OFF
7
- const vitest_1 = require("vitest");
8
- const STSFhirTypes_1 = require("./STSFhirTypes");
9
- const dalFhirTestHelpers_1 = require("./dalFhirTestHelpers");
10
- const stsutils_1 = require("@nsshunt/stsutils");
11
- const dalFhirManager_1 = require("./dalFhirManager");
12
- const chalk_1 = __importDefault(require("chalk"));
13
- const stsdatamanagement_1 = require("@nsshunt/stsdatamanagement");
14
- vitest_1.describe.skip("Test hl7 fhir resource data access layer - RedisJson", () => {
15
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
16
- let testHelpers;
17
- let fhirManager;
18
- (0, vitest_1.beforeAll)(async () => {
19
- testHelpers = new dalFhirTestHelpers_1.TestHelpers();
20
- await testHelpers.StartRedis();
21
- fhirManager = new dalFhirManager_1.DALFhirManager({
22
- persistenceType: STSFhirTypes_1.IFhirPersistenceType.redisJson,
23
- persistenceTypeOptions: {
24
- resourceName: 'STSFhirPerson',
25
- dbactionuser: stsdatamanagement_1.SYSTEM_USER_ID,
26
- redisUrl: testHelpers.ioRedisMessageProcessorUrl
27
- }
28
- });
29
- await fhirManager.fhirDataAccessManager.Start();
30
- }, 30000);
31
- (0, vitest_1.test)('Testing Person', async () => {
32
- vitest_1.expect.assertions(6);
33
- await testHelpers.TestFhirPerson(fhirManager.fhirDataAccessManager);
34
- }, 30000);
35
- (0, vitest_1.test)('Testing Persons with Search', async () => {
36
- const iterations = 10;
37
- vitest_1.expect.assertions(iterations + 1);
38
- await testHelpers.AddFhirPersons(fhirManager.fhirDataAccessManager, iterations);
39
- const fhirResources = await fhirManager.fhirDataAccessManager.GetFhirResources(['']);
40
- (0, vitest_1.expect)(fhirResources?.length).toEqual(iterations);
41
- console.log(chalk_1.default.green(JSON.stringify(fhirResources)));
42
- }, 30000);
43
- (0, vitest_1.test)('Testing Persons with Bulk Insert', async () => {
44
- const iterations = 10;
45
- vitest_1.expect.assertions(2);
46
- await testHelpers.AddFhirPersonsByArray(fhirManager.fhirDataAccessManager, iterations);
47
- const fhirResources = await fhirManager.fhirDataAccessManager.GetFhirResources(['bulk_']);
48
- (0, vitest_1.expect)(fhirResources?.length).toEqual(iterations);
49
- console.log(chalk_1.default.rgb(133, 161, 142)(JSON.stringify(fhirResources)));
50
- }, 30000);
51
- (0, vitest_1.test)('Testing Persons with Bulk Update', async () => {
52
- const iterations = 10;
53
- vitest_1.expect.assertions(2);
54
- await testHelpers.UpdateFhirPersonsByArray(fhirManager.fhirDataAccessManager, iterations);
55
- const fhirResources = await fhirManager.fhirDataAccessManager.GetFhirResources(['bulk_']);
56
- (0, vitest_1.expect)(fhirResources?.length).toEqual(iterations);
57
- console.log(chalk_1.default.rgb(157, 133, 161)(JSON.stringify(fhirResources)));
58
- }, 30000);
59
- (0, vitest_1.test)('Testing Persons with Bulk Delete', async () => {
60
- const iterations = 7;
61
- vitest_1.expect.assertions(2);
62
- await testHelpers.DeleteFhirPersonsByArray(fhirManager.fhirDataAccessManager, iterations);
63
- const fhirResources = await fhirManager.fhirDataAccessManager.GetFhirResources(['bulk_']);
64
- (0, vitest_1.expect)(fhirResources?.length).toEqual(10 - iterations);
65
- console.log(chalk_1.default.rgb(105, 97, 50)(JSON.stringify(fhirResources)));
66
- }, 30000);
67
- (0, vitest_1.afterAll)(async () => {
68
- await fhirManager.fhirDataAccessManager.Stop();
69
- await (0, stsutils_1.JestSleep)();
70
- await testHelpers.StopRedis();
71
- }, 5000);
72
- });
73
- //# sourceMappingURL=dalFhirManagerRedisJson.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dalFhirManagerRedisJson.test.js","sourceRoot":"","sources":["../../src/fhir/dalFhirManagerRedisJson.test.ts"],"names":[],"mappings":"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"}
@@ -1,227 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.TestHelpers = void 0;
7
- const vitest_1 = require("vitest");
8
- const uuid_1 = require("uuid");
9
- const chalk_1 = __importDefault(require("chalk"));
10
- const stsconfig_1 = require("@nsshunt/stsconfig");
11
- const stsutils_1 = require("@nsshunt/stsutils");
12
- const stsdatamanagement_1 = require("@nsshunt/stsdatamanagement");
13
- const testcontainers_1 = require("testcontainers");
14
- const winston_1 = __importDefault(require("winston"));
15
- class TestHelpers {
16
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
17
- #postgresContainer;
18
- #accessLayer = null;
19
- #logger;
20
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
21
- #ioRedisContainer;
22
- #ioRedisMessageProcessorUrl = '';
23
- constructor() {
24
- winston_1.default.format.combine(winston_1.default.format.colorize(), winston_1.default.format.simple());
25
- this.#logger = winston_1.default.createLogger({
26
- level: 'silly',
27
- format: winston_1.default.format.combine(winston_1.default.format.colorize(), winston_1.default.format.simple()),
28
- transports: [
29
- new winston_1.default.transports.Console(),
30
- ]
31
- });
32
- }
33
- get logger() {
34
- return this.#logger;
35
- }
36
- TestFhirPerson = async (personManager) => {
37
- vitest_1.expect.assertions(6);
38
- const id = (0, uuid_1.v4)();
39
- const personRecord = {
40
- id,
41
- _resourceType: 'Person',
42
- name: [
43
- {
44
- family: 'family',
45
- given: ['given'],
46
- use: 'usual'
47
- }
48
- ],
49
- text: {
50
- div: 'New Record',
51
- status: 'generated'
52
- }
53
- };
54
- const newPerson01 = await personManager.CreateFhirResource(personRecord);
55
- (0, vitest_1.expect)(newPerson01).toMatchObject(personRecord);
56
- personRecord.text.div = 'user01 updated at ' + new Date().toString();
57
- const updatedPerson01 = await personManager.UpdateFhirResource(personRecord);
58
- (0, vitest_1.expect)(updatedPerson01).toMatchObject(personRecord);
59
- const getPerson01 = await personManager.GetFhirResource({ id });
60
- (0, vitest_1.expect)(getPerson01).toMatchObject(personRecord);
61
- const getPerson02 = await personManager.GetFhirResource({ id: 'willnotfind' });
62
- (0, vitest_1.expect)(getPerson02).toBeNull();
63
- const deletePerson01 = await personManager.DeleteFhirResource({ id });
64
- (0, vitest_1.expect)(deletePerson01).toMatchObject(personRecord);
65
- const getPerson01AfterDelete = await personManager.GetFhirResource({ id });
66
- (0, vitest_1.expect)(getPerson01AfterDelete).toBeNull();
67
- };
68
- AddFhirPersons = async (personManager, iterations) => {
69
- for (let i = 0; i < iterations; i++) {
70
- const id = (0, uuid_1.v4)();
71
- const personRecord = {
72
- id,
73
- _resourceType: 'Person',
74
- name: [
75
- {
76
- family: `family ${i}`,
77
- given: [`given ${i}`],
78
- use: `usual`
79
- }
80
- ],
81
- text: {
82
- div: `New Record ${i}`,
83
- status: 'generated'
84
- }
85
- };
86
- const newPerson01 = await personManager.CreateFhirResource(personRecord);
87
- (0, vitest_1.expect)(newPerson01).toMatchObject(personRecord);
88
- }
89
- };
90
- AddFhirPersonsByArray = async (personManager, iterations) => {
91
- const persons = [];
92
- for (let i = 0; i < iterations; i++) {
93
- const id = `bulk_${i}`;
94
- const personRecord = {
95
- id,
96
- _resourceType: 'Person',
97
- name: [
98
- {
99
- family: `family ${i}`,
100
- given: [`given ${i}`],
101
- use: `usual`
102
- }
103
- ],
104
- text: {
105
- div: `New Record ${i}`,
106
- status: 'generated'
107
- }
108
- };
109
- persons.push(personRecord);
110
- }
111
- const newPersons = await personManager.CreateFhirResources(persons);
112
- (0, vitest_1.expect)(newPersons).toMatchObject(persons);
113
- };
114
- UpdateFhirPersonsByArray = async (personManager, iterations) => {
115
- const persons = [];
116
- for (let i = 0; i < iterations; i++) {
117
- const id = `bulk_${i}`;
118
- const personRecord = {
119
- id,
120
- _resourceType: 'Person',
121
- name: [
122
- {
123
- family: `family ${i}`,
124
- given: [`given ${i}`],
125
- use: `usual`
126
- }
127
- ],
128
- text: {
129
- div: `Updated Record ${i}`,
130
- status: 'generated'
131
- }
132
- };
133
- persons.push(personRecord);
134
- }
135
- const newPersons = await personManager.UpdateFhirResources(persons);
136
- (0, vitest_1.expect)(newPersons).toMatchObject(persons);
137
- };
138
- DeleteFhirPersonsByArray = async (personManager, iterations) => {
139
- const persons = [];
140
- for (let i = 0; i < iterations; i++) {
141
- const id = `bulk_${i}`;
142
- const personRecord = {
143
- id,
144
- _resourceType: 'Person',
145
- name: [
146
- {
147
- family: `family ${i}`,
148
- given: [`given ${i}`],
149
- use: `usual`
150
- }
151
- ],
152
- text: {
153
- div: `Updated Record ${i}`,
154
- status: 'generated'
155
- }
156
- };
157
- persons.push(personRecord);
158
- }
159
- const newPersons = await personManager.DeleteFhirResources(persons);
160
- (0, vitest_1.expect)(newPersons).toMatchObject(persons);
161
- };
162
- StartDatabase = async () => {
163
- this.#postgresContainer = await new testcontainers_1.GenericContainer("postgres")
164
- .withExposedPorts(5432)
165
- .withEnvironment({
166
- POSTGRES_PASSWORD: "postgres",
167
- //UV_THREADPOOL_SIZE: "64"
168
- })
169
- .withCommand(['-c', 'max_connections=20'])
170
- .start();
171
- await (0, stsutils_1.Sleep)(1000);
172
- const postgresHttpPort = this.#postgresContainer.getMappedPort(5432);
173
- const postgresHost = this.#postgresContainer.getHost();
174
- process.env.DB_HOST = `${postgresHost}:${postgresHttpPort}`;
175
- process.env.POOL_SIZE = '10';
176
- (0, stsconfig_1.$ResetOptions)();
177
- this.logger.info(chalk_1.default.green(`httpPort: [${postgresHttpPort}]`));
178
- this.logger.info(chalk_1.default.green(`host: [${postgresHost}]`));
179
- this.logger.info(chalk_1.default.yellow(`connectionString: [${stsconfig_1.goptions.connectionString}]`));
180
- this.logger.info(chalk_1.default.yellow(`defaultDatabaseConnectionString: [${stsconfig_1.goptions.defaultDatabaseConnectionString}]`));
181
- const dbOptions = {
182
- start: 0,
183
- iterations: 10000,
184
- minextradata: 0,
185
- maxextradata: 1000,
186
- workerScriptFolder: './dist', //@@
187
- useMultiBar: false
188
- };
189
- const dbUtils = new stsdatamanagement_1.DatabaseUtils({
190
- logger: this.logger
191
- });
192
- await dbUtils.CreateDatabase(dbOptions);
193
- await (0, stsutils_1.Sleep)(1000);
194
- this.logger.info(chalk_1.default.green(`Starting accessLayer`));
195
- this.#accessLayer = new stsdatamanagement_1.DBAccessLayerManager().CreateAccessLayer({
196
- accessLayerType: stsdatamanagement_1.accessLayerType.postgresql,
197
- accessLayerOptions: {
198
- logger: stsutils_1.defaultLogger,
199
- usedefaultdb: false
200
- }
201
- });
202
- this.logger.info(chalk_1.default.green(`accessLayer:startdatabase()`));
203
- await this.#accessLayer.StartDatabase();
204
- };
205
- get accessLayer() {
206
- return this.#accessLayer;
207
- }
208
- StopDatabase = async () => {
209
- await this.#accessLayer?.EndDatabase();
210
- await (0, stsutils_1.JestSleep)();
211
- await this.#postgresContainer.stop();
212
- };
213
- StartRedis = async () => {
214
- this.#ioRedisContainer = await new testcontainers_1.GenericContainer("redis/redis-stack-server")
215
- .withExposedPorts(6379)
216
- .start();
217
- this.#ioRedisMessageProcessorUrl = `redis://${this.#ioRedisContainer.getHost()}:${this.#ioRedisContainer.getMappedPort(6379)}`;
218
- };
219
- get ioRedisMessageProcessorUrl() {
220
- return this.#ioRedisMessageProcessorUrl;
221
- }
222
- StopRedis = async () => {
223
- await this.#ioRedisContainer.stop();
224
- };
225
- }
226
- exports.TestHelpers = TestHelpers;
227
- //# sourceMappingURL=dalFhirTestHelpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dalFhirTestHelpers.js","sourceRoot":"","sources":["../../src/fhir/dalFhirTestHelpers.ts"],"names":[],"mappings":"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"}