@nsshunt/stsappframework 3.1.144 → 3.1.146

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 (49) hide show
  1. package/dist/fhir/STSFhirTypes.js +1 -0
  2. package/dist/fhir/STSFhirTypes.js.map +1 -1
  3. package/dist/fhir/dalFhirManager.js +4 -0
  4. package/dist/fhir/dalFhirManager.js.map +1 -1
  5. package/dist/fhir/dalFhirManagerIORedisJson.js +201 -0
  6. package/dist/fhir/dalFhirManagerIORedisJson.js.map +1 -0
  7. package/dist/fhir/dalFhirManagerIORedisJson.test.js +47 -0
  8. package/dist/fhir/dalFhirManagerIORedisJson.test.js.map +1 -0
  9. package/dist/fhir/dalFhirManagerPGRes.js +31 -5
  10. package/dist/fhir/dalFhirManagerPGRes.js.map +1 -1
  11. package/dist/fhir/dalFhirManagerPGRes.test.js +12 -0
  12. package/dist/fhir/dalFhirManagerPGRes.test.js.map +1 -1
  13. package/dist/fhir/dalFhirManagerPGResEntity.js +32 -5
  14. package/dist/fhir/dalFhirManagerPGResEntity.js.map +1 -1
  15. package/dist/fhir/dalFhirManagerPGResEntity.test.js +12 -0
  16. package/dist/fhir/dalFhirManagerPGResEntity.test.js.map +1 -1
  17. package/dist/fhir/dalFhirManagerRedisJson.js +124 -28
  18. package/dist/fhir/dalFhirManagerRedisJson.js.map +1 -1
  19. package/dist/fhir/dalFhirManagerRedisJson.test.js +14 -2
  20. package/dist/fhir/dalFhirManagerRedisJson.test.js.map +1 -1
  21. package/dist/fhir/dalFhirTestHelpers.js +23 -1
  22. package/dist/fhir/dalFhirTestHelpers.js.map +1 -1
  23. package/package.json +1 -1
  24. package/src/fhir/STSFhirTypes.ts +5 -4
  25. package/src/fhir/dalFhirManager.ts +6 -1
  26. package/src/fhir/dalFhirManagerIORedisJson.test.ts +58 -0
  27. package/src/fhir/dalFhirManagerIORedisJson.ts +218 -0
  28. package/src/fhir/dalFhirManagerPGRes.test.ts +12 -0
  29. package/src/fhir/dalFhirManagerPGRes.ts +37 -6
  30. package/src/fhir/dalFhirManagerPGResEntity.test.ts +12 -0
  31. package/src/fhir/dalFhirManagerPGResEntity.ts +55 -5
  32. package/src/fhir/dalFhirManagerRedisJson.test.ts +14 -2
  33. package/src/fhir/dalFhirManagerRedisJson.ts +131 -28
  34. package/src/fhir/dalFhirTestHelpers.ts +26 -1
  35. package/types/fhir/STSFhirTypes.d.ts +5 -4
  36. package/types/fhir/STSFhirTypes.d.ts.map +1 -1
  37. package/types/fhir/dalFhirManager.d.ts.map +1 -1
  38. package/types/fhir/dalFhirManagerIORedisJson.d.ts +19 -0
  39. package/types/fhir/dalFhirManagerIORedisJson.d.ts.map +1 -0
  40. package/types/fhir/dalFhirManagerIORedisJson.test.d.ts +2 -0
  41. package/types/fhir/dalFhirManagerIORedisJson.test.d.ts.map +1 -0
  42. package/types/fhir/dalFhirManagerPGRes.d.ts +3 -3
  43. package/types/fhir/dalFhirManagerPGRes.d.ts.map +1 -1
  44. package/types/fhir/dalFhirManagerPGResEntity.d.ts +3 -3
  45. package/types/fhir/dalFhirManagerPGResEntity.d.ts.map +1 -1
  46. package/types/fhir/dalFhirManagerRedisJson.d.ts +3 -3
  47. package/types/fhir/dalFhirManagerRedisJson.d.ts.map +1 -1
  48. package/types/fhir/dalFhirTestHelpers.d.ts +1 -0
  49. package/types/fhir/dalFhirTestHelpers.d.ts.map +1 -1
@@ -1,10 +1,15 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.DALFhirManagerRedisJson = void 0;
4
- const ioredis_1 = require("ioredis");
7
+ const redis_1 = require("redis");
8
+ const chalk_1 = __importDefault(require("chalk"));
5
9
  class DALFhirManagerRedisJson {
6
10
  #options;
7
- #redisSubscriber = null;
11
+ #redis = null;
12
+ #indexName = 'idx:stsfhirresindex';
8
13
  constructor(options) {
9
14
  this.#options = options;
10
15
  }
@@ -14,28 +19,76 @@ class DALFhirManagerRedisJson {
14
19
  set options(options) {
15
20
  this.#options = options;
16
21
  }
17
- Start() {
18
- const redisOptions = {
19
- showFriendlyErrorStack: true,
20
- maxRetriesPerRequest: 20
22
+ #CreateIndex = async () => {
23
+ if (!this.#redis) {
24
+ return;
25
+ }
26
+ try {
27
+ const retVal = await this.#redis.ft.dropIndex(this.#indexName);
28
+ console.log(retVal);
29
+ }
30
+ catch (error) {
31
+ console.log(chalk_1.default.red(error));
32
+ }
33
+ try {
34
+ const retVal = await this.#redis.ft.create(this.#indexName, {
35
+ 'id': { type: redis_1.SchemaFieldTypes.TEXT, SORTABLE: true }
36
+ }, {
37
+ ON: 'HASH',
38
+ PREFIX: `${this.#options.resourceName}_`
39
+ });
40
+ console.log(retVal);
41
+ }
42
+ catch (error) {
43
+ console.log(chalk_1.default.red(error));
44
+ }
45
+ };
46
+ #SearchBy = async (id) => {
47
+ if (!this.#redis) {
48
+ return null;
49
+ }
50
+ const queryOptions = {
51
+ RETURN: ['id', 'data'],
52
+ LIMIT: {
53
+ from: 0,
54
+ size: 100
55
+ },
56
+ SORTBY: {
57
+ BY: 'id',
58
+ DIRECTION: 'DESC'
59
+ }
21
60
  };
22
- this.#redisSubscriber = new ioredis_1.Redis(this.#options.redisUrl, redisOptions);
61
+ const query = `@id:${this.#options.resourceName}_${id}*`;
62
+ const retVal = await this.#redis.ft.search(this.#indexName, query, queryOptions);
63
+ return retVal;
64
+ };
65
+ async Start() {
66
+ this.#redis = await (0, redis_1.createClient)({ url: this.#options.redisUrl })
67
+ .on('error', error => console.error(chalk_1.default.red(`Error connecting to redis. Error: [${error}]`)))
68
+ .connect();
69
+ if (this.#redis) {
70
+ await this.#CreateIndex();
71
+ }
72
+ else {
73
+ console.error(chalk_1.default.red(`this.#redis instance not created.`));
74
+ }
23
75
  }
24
- Stop() {
25
- if (this.#redisSubscriber) {
26
- this.#redisSubscriber.quit();
27
- this.#redisSubscriber.disconnect();
76
+ async Stop() {
77
+ if (this.#redis) {
78
+ //await this.#redis.quit();
79
+ await this.#redis.disconnect();
28
80
  }
29
81
  }
30
82
  GetResourceType(fhir) {
31
83
  return `${this.#options.resourceName}_${fhir.id}`;
32
84
  }
33
85
  async GetFhirResource(fhir, ecb) {
34
- if (this.#redisSubscriber) {
35
- const retValRaw = await this.#redisSubscriber?.get(this.GetResourceType(fhir));
86
+ if (this.#redis) {
87
+ const retValRaw = await this.#redis.HGETALL(this.GetResourceType(fhir));
36
88
  if (retValRaw) {
37
89
  try {
38
- return JSON.parse(retValRaw);
90
+ const { id, data } = retValRaw;
91
+ return JSON.parse(data);
39
92
  }
40
93
  catch (error) {
41
94
  if (ecb) {
@@ -54,19 +107,40 @@ class DALFhirManagerRedisJson {
54
107
  }
55
108
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
56
109
  async CreateFhirResource(fhir, ecb) {
57
- const retVal = await this.#redisSubscriber?.set(this.GetResourceType(fhir), JSON.stringify(fhir));
58
- if (retVal) {
59
- return fhir;
110
+ if (this.#redis) {
111
+ const record = {
112
+ id: this.GetResourceType(fhir),
113
+ data: JSON.stringify(fhir)
114
+ };
115
+ const keyValuePairs = Object.entries(record).flat();
116
+ const retVal = await this.#redis.HSET(this.GetResourceType(fhir), keyValuePairs);
117
+ if (retVal) {
118
+ return fhir;
119
+ }
120
+ else {
121
+ return null;
122
+ }
60
123
  }
61
124
  else {
125
+ console.error(chalk_1.default.red(`this.#redis not defined.`));
62
126
  return null;
63
127
  }
64
128
  }
65
129
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
66
130
  async UpdateFhirResource(fhir, ecb) {
67
- const retVal = await this.#redisSubscriber?.set(this.GetResourceType(fhir), JSON.stringify(fhir));
68
- if (retVal) {
69
- return fhir;
131
+ if (this.#redis) {
132
+ const record = {
133
+ id: this.GetResourceType(fhir),
134
+ data: JSON.stringify(fhir)
135
+ };
136
+ const keyValuePairs = Object.entries(record).flat();
137
+ const retVal = await this.#redis.HSET(this.GetResourceType(fhir), keyValuePairs);
138
+ if (retVal >= 0) {
139
+ return fhir;
140
+ }
141
+ else {
142
+ return null;
143
+ }
70
144
  }
71
145
  else {
72
146
  return null;
@@ -74,11 +148,16 @@ class DALFhirManagerRedisJson {
74
148
  }
75
149
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
76
150
  async DeleteFhirResource(fhir, ecb) {
77
- const deleteResource = await this.GetFhirResource(fhir);
78
- if (deleteResource) {
79
- const retVal = await this.#redisSubscriber?.del(this.GetResourceType(fhir));
80
- if (retVal) {
81
- return deleteResource;
151
+ if (this.#redis) {
152
+ const deleteResource = await this.GetFhirResource(fhir);
153
+ if (deleteResource) {
154
+ const retVal = await this.#redis.del(this.GetResourceType(fhir));
155
+ if (retVal > 0) {
156
+ return deleteResource;
157
+ }
158
+ else {
159
+ return null;
160
+ }
82
161
  }
83
162
  else {
84
163
  return null;
@@ -88,10 +167,27 @@ class DALFhirManagerRedisJson {
88
167
  return null;
89
168
  }
90
169
  }
91
- async CreateFhirResources(fhir, ecb) {
92
- return null;
170
+ async GetFhirResources(filters, ecb) {
171
+ const promArray = [];
172
+ filters.forEach(filter => {
173
+ const prom = async () => {
174
+ const retValArray = [];
175
+ const retVal = await this.#SearchBy(filter);
176
+ retVal?.documents.forEach(doc => {
177
+ retValArray.push(JSON.parse(doc.value.data));
178
+ });
179
+ return retValArray;
180
+ };
181
+ promArray.push(prom());
182
+ });
183
+ const promRetVal = await Promise.all(promArray);
184
+ let retVal = [];
185
+ promRetVal.forEach(prv => {
186
+ retVal = retVal.concat(prv);
187
+ });
188
+ return retVal;
93
189
  }
94
- async GetFhirResources(fhir, ecb) {
190
+ async CreateFhirResources(fhir, ecb) {
95
191
  return null;
96
192
  }
97
193
  async UpdateFhirResources(fhir, ecb) {
@@ -1 +1 @@
1
- {"version":3,"file":"dalFhirManagerRedisJson.js","sourceRoot":"","sources":["../../src/fhir/dalFhirManagerRedisJson.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dalFhirManagerRedisJson.js","sourceRoot":"","sources":["../../src/fhir/dalFhirManagerRedisJson.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,7 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  /* eslint @typescript-eslint/no-explicit-any: 0 */ // --> OFF
4
7
  const vitest_1 = require("vitest");
@@ -6,6 +9,7 @@ const STSFhirTypes_1 = require("./STSFhirTypes");
6
9
  const dalFhirTestHelpers_1 = require("./dalFhirTestHelpers");
7
10
  const stsutils_1 = require("@nsshunt/stsutils");
8
11
  const dalFhirManager_1 = require("./dalFhirManager");
12
+ const chalk_1 = __importDefault(require("chalk"));
9
13
  vitest_1.describe.skip("Test hl7 fhir resource data access layer - RedisJson", () => {
10
14
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
15
  let testHelpers;
@@ -20,14 +24,22 @@ vitest_1.describe.skip("Test hl7 fhir resource data access layer - RedisJson", (
20
24
  redisUrl: testHelpers.ioRedisMessageProcessorUrl
21
25
  }
22
26
  });
23
- fhirManager.fhirDataAccessManager.Start();
27
+ await fhirManager.fhirDataAccessManager.Start();
24
28
  }, 30000);
25
29
  (0, vitest_1.test)('Testing Person', async () => {
26
30
  vitest_1.expect.assertions(6);
27
31
  await testHelpers.TestFhirPerson(fhirManager.fhirDataAccessManager);
28
32
  }, 30000);
33
+ (0, vitest_1.test)('Testing Person', async () => {
34
+ const iterations = 10;
35
+ vitest_1.expect.assertions(iterations + 1);
36
+ await testHelpers.AddFhirPersons(fhirManager.fhirDataAccessManager, iterations);
37
+ const fhirResources = await fhirManager.fhirDataAccessManager.GetFhirResources(['']);
38
+ (0, vitest_1.expect)(fhirResources?.length).toEqual(iterations);
39
+ console.log(chalk_1.default.green(JSON.stringify(fhirResources)));
40
+ }, 30000);
29
41
  (0, vitest_1.afterAll)(async () => {
30
- fhirManager.fhirDataAccessManager.Stop();
42
+ await fhirManager.fhirDataAccessManager.Stop();
31
43
  await (0, stsutils_1.JestSleep)();
32
44
  await testHelpers.StopRedis();
33
45
  }, 5000);
@@ -1 +1 @@
1
- {"version":3,"file":"dalFhirManagerRedisJson.test.js","sourceRoot":"","sources":["../../src/fhir/dalFhirManagerRedisJson.test.ts"],"names":[],"mappings":";;AAAA,kDAAkD,CAAE,UAAU;AAC9D,mCAAqE;AAErE,iDAA8D;AAE9D,6DAAkD;AAElD,gDAA6C;AAE7C,qDAAiD;AAEjD,iBAAQ,CAAC,IAAI,CAAC,sDAAsD,EAAE,GAAG,EAAE;IAEvE,8DAA8D;IAC9D,IAAI,WAAwB,CAAC;IAC7B,IAAI,WAAoC,CAAA;IAExC,IAAA,kBAAS,EAAC,KAAK,IAAI,EAAE;QAEjB,WAAW,GAAG,IAAI,gCAAW,EAAE,CAAC;QAChC,MAAM,WAAW,CAAC,UAAU,EAAE,CAAC;QAE/B,WAAW,GAAG,IAAI,+BAAc,CAAC;YAC7B,eAAe,EAAE,mCAAoB,CAAC,SAAS;YAC/C,sBAAsB,EAAE;gBACpB,YAAY,EAAE,eAAe;gBAC7B,QAAQ,EAAE,WAAW,CAAC,0BAA0B;aACnD;SACJ,CAAC,CAAC;QAEH,WAAW,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;IAC9C,CAAC,EAAE,KAAK,CAAC,CAAC;IAEV,IAAA,aAAI,EAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC9B,eAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;IACxE,CAAC,EAAE,KAAK,CAAC,CAAC;IAEV,IAAA,iBAAQ,EAAC,KAAK,IAAI,EAAE;QAEhB,WAAW,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,IAAA,oBAAS,GAAE,CAAC;QAClB,MAAM,WAAW,CAAC,SAAS,EAAE,CAAC;IAClC,CAAC,EAAE,IAAI,CAAC,CAAC;AACb,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"dalFhirManagerRedisJson.test.js","sourceRoot":"","sources":["../../src/fhir/dalFhirManagerRedisJson.test.ts"],"names":[],"mappings":";;;;;AAAA,kDAAkD,CAAE,UAAU;AAC9D,mCAAqE;AAErE,iDAA8D;AAE9D,6DAAkD;AAElD,gDAA6C;AAE7C,qDAAiD;AACjD,kDAAyB;AAEzB,iBAAQ,CAAC,IAAI,CAAC,sDAAsD,EAAE,GAAG,EAAE;IAEvE,8DAA8D;IAC9D,IAAI,WAAwB,CAAC;IAC7B,IAAI,WAAoC,CAAA;IAExC,IAAA,kBAAS,EAAC,KAAK,IAAI,EAAE;QAEjB,WAAW,GAAG,IAAI,gCAAW,EAAE,CAAC;QAChC,MAAM,WAAW,CAAC,UAAU,EAAE,CAAC;QAE/B,WAAW,GAAG,IAAI,+BAAc,CAAC;YAC7B,eAAe,EAAE,mCAAoB,CAAC,SAAS;YAC/C,sBAAsB,EAAE;gBACpB,YAAY,EAAE,eAAe;gBAC7B,QAAQ,EAAE,WAAW,CAAC,0BAA0B;aACnD;SACJ,CAAC,CAAC;QAEH,MAAM,WAAW,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;IACpD,CAAC,EAAE,KAAK,CAAC,CAAC;IAEV,IAAA,aAAI,EAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC9B,eAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;IACxE,CAAC,EAAE,KAAK,CAAC,CAAC;IAEV,IAAA,aAAI,EAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC9B,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,eAAM,CAAC,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAClC,MAAM,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAC;QAEhF,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrF,IAAA,eAAM,EAAC,aAAa,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAElD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC,EAAE,KAAK,CAAC,CAAC;IAEV,IAAA,iBAAQ,EAAC,KAAK,IAAI,EAAE;QAEhB,MAAM,WAAW,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;QAC/C,MAAM,IAAA,oBAAS,GAAE,CAAC;QAClB,MAAM,WAAW,CAAC,SAAS,EAAE,CAAC;IAClC,CAAC,EAAE,IAAI,CAAC,CAAC;AACb,CAAC,CAAC,CAAC"}
@@ -65,6 +65,28 @@ class TestHelpers {
65
65
  const getPerson01AfterDelete = await personManager.GetFhirResource({ id });
66
66
  (0, vitest_1.expect)(getPerson01AfterDelete).toBeNull();
67
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
+ };
68
90
  StartDatabase = async () => {
69
91
  this.#postgresContainer = await new testcontainers_1.GenericContainer("postgres")
70
92
  .withExposedPorts(5432)
@@ -117,7 +139,7 @@ class TestHelpers {
117
139
  await this.#postgresContainer.stop();
118
140
  };
119
141
  StartRedis = async () => {
120
- this.#ioRedisContainer = await new testcontainers_1.GenericContainer("redis")
142
+ this.#ioRedisContainer = await new testcontainers_1.GenericContainer("redis/redis-stack-server")
121
143
  .withExposedPorts(6379)
122
144
  .start();
123
145
  this.#ioRedisMessageProcessorUrl = `redis://${this.#ioRedisContainer.getHost()}:${this.#ioRedisContainer.getMappedPort(6379)}`;
@@ -1 +1 @@
1
- {"version":3,"file":"dalFhirTestHelpers.js","sourceRoot":"","sources":["../../src/fhir/dalFhirTestHelpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dalFhirTestHelpers.js","sourceRoot":"","sources":["../../src/fhir/dalFhirTestHelpers.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nsshunt/stsappframework",
3
- "version": "3.1.144",
3
+ "version": "3.1.146",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "./types/index.d.ts",
@@ -498,15 +498,15 @@ export interface IPersonResource {
498
498
 
499
499
  export interface IDALFhirDataAccessManager<T> {
500
500
  GetFhirResource(fhir: Partial<T>, ecb?: (error: Error) => void): Promise<T | null>
501
- GetFhirResources(fhir: Partial<T>[], ecb?: (error: Error) => void): Promise<T[] | null>
501
+ GetFhirResources(filters: string[], ecb?: (error: Error) => void): Promise<T[] | null>
502
502
  CreateFhirResource(fhir: T, ecb?: (error: Error) => void): Promise<T | null>
503
503
  CreateFhirResources(fhir: T[], ecb?: (error: Error) => void): Promise<T[] | null>
504
504
  UpdateFhirResource(fhir: T, ecb?: (error: Error) => void): Promise<T | null>
505
505
  UpdateFhirResources(fhir: T[], ecb?: (error: Error) => void): Promise<T[] | null>
506
506
  DeleteFhirResource(fhir: Partial<T>, ecb?: (error: Error) => void): Promise<T | null>
507
507
  DeleteFhirResources(fhir: Partial<T>[], ecb?: (error: Error) => void): Promise<T[] | null>
508
- Start(): void
509
- Stop(): void
508
+ Start(): Promise<void>
509
+ Stop(): Promise<void>
510
510
  get options()
511
511
  set options(options: JSONObject)
512
512
  }
@@ -531,7 +531,8 @@ export interface IFhirManagerRedisJsonOptions {
531
531
  export enum IFhirPersistenceType {
532
532
  postgresResources,
533
533
  postgresResourcesEntities,
534
- redisJson
534
+ redisJson,
535
+ ioredisJson
535
536
  }
536
537
 
537
538
  export interface IDALFhirManagerOptions {
@@ -1,7 +1,9 @@
1
- import { IDALFhirDataAccessManager, IFhirManagerPGResOptions, IFhirManagerPGResEntityOptions, IFhirManagerRedisJsonOptions, IDALFhirManagerOptions, IFhirPersistenceType } from './STSFhirTypes'
1
+ import { IDALFhirDataAccessManager, IFhirManagerPGResOptions, IFhirManagerPGResEntityOptions, IFhirManagerRedisJsonOptions,
2
+ IDALFhirManagerOptions, IFhirPersistenceType } from './STSFhirTypes'
2
3
  import { DALFhirManagerPGRes } from './dalFhirManagerPGRes'
3
4
  import { DALFhirManagerPGResEntity } from './dalFhirManagerPGResEntity'
4
5
  import { DALFhirManagerRedisJson } from './dalFhirManagerRedisJson'
6
+ import { DALFhirManagerIORedisJson } from './dalFhirManagerIORedisJson'
5
7
 
6
8
  export class DALFhirManager<T> {
7
9
  #fhirDataAccessManager: IDALFhirDataAccessManager<T>;
@@ -17,6 +19,9 @@ export class DALFhirManager<T> {
17
19
  case IFhirPersistenceType.redisJson:
18
20
  this.#fhirDataAccessManager = new DALFhirManagerRedisJson<T>(options.persistenceTypeOptions as IFhirManagerRedisJsonOptions);
19
21
  break;
22
+ case IFhirPersistenceType.ioredisJson:
23
+ this.#fhirDataAccessManager = new DALFhirManagerIORedisJson<T>(options.persistenceTypeOptions as IFhirManagerRedisJsonOptions);
24
+ break;
20
25
  default :
21
26
  this.#fhirDataAccessManager = new DALFhirManagerPGRes<T>(options.persistenceTypeOptions as IFhirManagerPGResOptions);
22
27
  }
@@ -0,0 +1,58 @@
1
+ /* eslint @typescript-eslint/no-explicit-any: 0 */ // --> OFF
2
+ import { beforeAll, afterAll, test, describe, expect } from 'vitest';
3
+
4
+ import { IPerson, IFhirPersistenceType } from './STSFhirTypes'
5
+
6
+ import { TestHelpers } from './dalFhirTestHelpers'
7
+
8
+ import { JestSleep } from '@nsshunt/stsutils'
9
+
10
+ import { DALFhirManager } from './dalFhirManager'
11
+
12
+ import chalk from 'chalk'
13
+
14
+ describe.skip("Test hl7 fhir resource data access layer - RedisJson", () =>
15
+ {
16
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
17
+ let testHelpers: TestHelpers;
18
+ let fhirManager: DALFhirManager<IPerson>
19
+
20
+ beforeAll(async () =>
21
+ {
22
+ testHelpers = new TestHelpers();
23
+ await testHelpers.StartRedis();
24
+
25
+ fhirManager = new DALFhirManager({
26
+ persistenceType: IFhirPersistenceType.ioredisJson,
27
+ persistenceTypeOptions: {
28
+ resourceName: 'STSFhirPerson',
29
+ redisUrl: testHelpers.ioRedisMessageProcessorUrl
30
+ }
31
+ });
32
+
33
+ await fhirManager.fhirDataAccessManager.Start();
34
+ }, 30000);
35
+
36
+ test('Testing Person', async () => {
37
+ expect.assertions(6);
38
+ await testHelpers.TestFhirPerson(fhirManager.fhirDataAccessManager);
39
+ }, 30000);
40
+
41
+ test('Testing Person', async () => {
42
+ const iterations = 10;
43
+ expect.assertions(iterations + 1);
44
+ await testHelpers.AddFhirPersons(fhirManager.fhirDataAccessManager, iterations);
45
+
46
+ const fhirResources = await fhirManager.fhirDataAccessManager.GetFhirResources(['']);
47
+ expect(fhirResources?.length).toEqual(iterations);
48
+
49
+ console.log(chalk.magenta(JSON.stringify(fhirResources)));
50
+ }, 30000);
51
+
52
+ afterAll(async () =>
53
+ {
54
+ await fhirManager.fhirDataAccessManager.Stop();
55
+ await JestSleep();
56
+ await testHelpers.StopRedis();
57
+ }, 5000);
58
+ });