@nsshunt/stsappframework 3.1.136 → 3.1.138

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 (54) hide show
  1. package/dist/fhir/STSFhirTypes.js +3 -0
  2. package/dist/fhir/STSFhirTypes.js.map +1 -0
  3. package/dist/fhir/dalFhirManagerPGRes.js +87 -0
  4. package/dist/fhir/dalFhirManagerPGRes.js.map +1 -0
  5. package/dist/fhir/dalFhirManagerPGRes.test.js +31 -0
  6. package/dist/fhir/dalFhirManagerPGRes.test.js.map +1 -0
  7. package/dist/fhir/dalFhirManagerPGResEntity.js +116 -0
  8. package/dist/fhir/dalFhirManagerPGResEntity.js.map +1 -0
  9. package/dist/fhir/dalFhirManagerPGResEntity.test.js +32 -0
  10. package/dist/fhir/dalFhirManagerPGResEntity.test.js.map +1 -0
  11. package/dist/fhir/dalFhirManagerRedisJson.js +87 -0
  12. package/dist/fhir/dalFhirManagerRedisJson.js.map +1 -0
  13. package/dist/fhir/dalFhirManagerRedisJson.test.js +33 -0
  14. package/dist/fhir/dalFhirManagerRedisJson.test.js.map +1 -0
  15. package/dist/fhir/dalFhirTestHelpers.js +130 -0
  16. package/dist/fhir/dalFhirTestHelpers.js.map +1 -0
  17. package/dist/index.js +2 -0
  18. package/dist/index.js.map +1 -1
  19. package/dist/redisMessageHandler.js +23 -0
  20. package/dist/redisMessageHandler.js.map +1 -1
  21. package/dist/testing/app.js +9 -0
  22. package/dist/testing/app.js.map +1 -1
  23. package/package.json +1 -1
  24. package/src/fhir/STSFhirTypes.ts +501 -0
  25. package/src/fhir/dalFhirManagerPGRes.test.ts +42 -0
  26. package/src/fhir/dalFhirManagerPGRes.ts +92 -0
  27. package/src/fhir/dalFhirManagerPGResEntity.test.ts +43 -0
  28. package/src/fhir/dalFhirManagerPGResEntity.ts +123 -0
  29. package/src/fhir/dalFhirManagerRedisJson.test.ts +44 -0
  30. package/src/fhir/dalFhirManagerRedisJson.ts +92 -0
  31. package/src/fhir/dalFhirTestHelpers.ts +163 -0
  32. package/src/index.ts +2 -0
  33. package/src/redisMessageHandler.ts +23 -0
  34. package/src/testing/app.ts +10 -0
  35. package/types/fhir/STSFhirTypes.d.ts +318 -0
  36. package/types/fhir/STSFhirTypes.d.ts.map +1 -0
  37. package/types/fhir/dalFhirManagerPGRes.d.ts +16 -0
  38. package/types/fhir/dalFhirManagerPGRes.d.ts.map +1 -0
  39. package/types/fhir/dalFhirManagerPGRes.test.d.ts +2 -0
  40. package/types/fhir/dalFhirManagerPGRes.test.d.ts.map +1 -0
  41. package/types/fhir/dalFhirManagerPGResEntity.d.ts +15 -0
  42. package/types/fhir/dalFhirManagerPGResEntity.d.ts.map +1 -0
  43. package/types/fhir/dalFhirManagerPGResEntity.test.d.ts +2 -0
  44. package/types/fhir/dalFhirManagerPGResEntity.test.d.ts.map +1 -0
  45. package/types/fhir/dalFhirManagerRedisJson.d.ts +17 -0
  46. package/types/fhir/dalFhirManagerRedisJson.d.ts.map +1 -0
  47. package/types/fhir/dalFhirManagerRedisJson.test.d.ts +2 -0
  48. package/types/fhir/dalFhirManagerRedisJson.test.d.ts.map +1 -0
  49. package/types/fhir/dalFhirTestHelpers.d.ts +14 -0
  50. package/types/fhir/dalFhirTestHelpers.d.ts.map +1 -0
  51. package/types/index.d.ts +2 -0
  52. package/types/index.d.ts.map +1 -1
  53. package/types/redisMessageHandler.d.ts +1 -0
  54. package/types/redisMessageHandler.d.ts.map +1 -1
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=STSFhirTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"STSFhirTypes.js","sourceRoot":"","sources":["../../src/fhir/STSFhirTypes.ts"],"names":[],"mappings":""}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DALFhirManagerPGRes = void 0;
4
+ const stsdatamanagement_1 = require("@nsshunt/stsdatamanagement");
5
+ class DALFhirManagerPGRes {
6
+ #options;
7
+ #accessLayer;
8
+ constructor(options) {
9
+ this.#options = options;
10
+ this.#accessLayer = new stsdatamanagement_1.DBAccessLayerManager().CreateAccessLayer({
11
+ accessLayerType: options.accessLayerType,
12
+ accessLayerOptions: options.accessLayerOptions
13
+ });
14
+ }
15
+ GetResourceType(fhir) {
16
+ return `${this.#options.resourceName}_${fhir.id}`;
17
+ }
18
+ async GetFhirResource(fhir, ecb) {
19
+ const retVal = await this.#accessLayer.GetResource({
20
+ filters: {
21
+ resname: this.GetResourceType(fhir)
22
+ }
23
+ });
24
+ if (retVal.error) {
25
+ if (ecb) {
26
+ ecb(retVal.error.error);
27
+ }
28
+ return null;
29
+ }
30
+ else {
31
+ return retVal.detail.resdesc;
32
+ }
33
+ }
34
+ async CreateFhirResource(fhir, ecb) {
35
+ const retVal = await this.#accessLayer.CreateResource({
36
+ filters: {
37
+ dbactionuser: this.#options.dbactionuser,
38
+ resname: this.GetResourceType(fhir)
39
+ }
40
+ }, fhir);
41
+ if (retVal.error) {
42
+ if (ecb) {
43
+ ecb(retVal.error.error);
44
+ }
45
+ return null;
46
+ }
47
+ else {
48
+ return retVal.detail.resdesc;
49
+ }
50
+ }
51
+ async UpdateFhirResource(fhir, ecb) {
52
+ const retVal = await this.#accessLayer.UpdateResource({
53
+ filters: {
54
+ dbactionuser: this.#options.dbactionuser,
55
+ resname: this.GetResourceType(fhir)
56
+ }
57
+ }, fhir);
58
+ if (retVal.error) {
59
+ if (ecb) {
60
+ ecb(retVal.error.error);
61
+ }
62
+ return null;
63
+ }
64
+ else {
65
+ return retVal.detail.resdesc;
66
+ }
67
+ }
68
+ async DeleteFhirResource(fhir, ecb) {
69
+ const retVal = await this.#accessLayer.DeleteResource({
70
+ filters: {
71
+ dbactionuser: this.#options.dbactionuser,
72
+ resname: this.GetResourceType(fhir)
73
+ }
74
+ });
75
+ if (retVal.error) {
76
+ if (ecb) {
77
+ ecb(retVal.error.error);
78
+ }
79
+ return null;
80
+ }
81
+ else {
82
+ return retVal.detail.resdesc;
83
+ }
84
+ }
85
+ }
86
+ exports.DALFhirManagerPGRes = DALFhirManagerPGRes;
87
+ //# sourceMappingURL=dalFhirManagerPGRes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dalFhirManagerPGRes.js","sourceRoot":"","sources":["../../src/fhir/dalFhirManagerPGRes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /* eslint @typescript-eslint/no-explicit-any: 0 */ // --> OFF
4
+ const vitest_1 = require("vitest");
5
+ const stsdatamanagement_1 = require("@nsshunt/stsdatamanagement");
6
+ const dalFhirManagerPGRes_1 = require("./dalFhirManagerPGRes");
7
+ const dalFhirTestHelpers_1 = require("./dalFhirTestHelpers");
8
+ (0, vitest_1.describe)("Test hl7 fhir resource data access layer - PGRes", () => {
9
+ let testHelpers;
10
+ (0, vitest_1.beforeAll)(async () => {
11
+ testHelpers = new dalFhirTestHelpers_1.TestHelpers();
12
+ await testHelpers.StartDatabase();
13
+ }, 30000);
14
+ (0, vitest_1.test)('Testing Person', async () => {
15
+ vitest_1.expect.assertions(6);
16
+ const personManager = new dalFhirManagerPGRes_1.DALFhirManagerPGRes({
17
+ accessLayerType: stsdatamanagement_1.accessLayerType.postgresql,
18
+ accessLayerOptions: {
19
+ logger: testHelpers.logger,
20
+ usedefaultdb: false
21
+ },
22
+ resourceName: 'STSFhirPerson',
23
+ dbactionuser: stsdatamanagement_1.SYSTEM_USER_ID
24
+ });
25
+ await testHelpers.TestFhirPerson(personManager);
26
+ }, 30000);
27
+ (0, vitest_1.afterAll)(async () => {
28
+ await testHelpers.StopDatabase();
29
+ }, 5000);
30
+ });
31
+ //# sourceMappingURL=dalFhirManagerPGRes.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dalFhirManagerPGRes.test.js","sourceRoot":"","sources":["../../src/fhir/dalFhirManagerPGRes.test.ts"],"names":[],"mappings":";;AAAA,kDAAkD,CAAE,UAAU;AAC9D,mCAAqE;AAErE,kEAAmG;AAEnG,+DAA2D;AAI3D,6DAAkD;AAElD,IAAA,iBAAQ,EAAC,kDAAkD,EAAE,GAAG,EAAE;IAE9D,IAAI,WAAwB,CAAC;IAE7B,IAAA,kBAAS,EAAC,KAAK,IAAI,EAAE;QAEjB,WAAW,GAAG,IAAI,gCAAW,EAAE,CAAC;QAChC,MAAM,WAAW,CAAC,aAAa,EAAE,CAAC;IACtC,CAAC,EAAE,KAAK,CAAC,CAAC;IAEV,IAAA,aAAI,EAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC9B,eAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAErB,MAAM,aAAa,GAAG,IAAI,yCAAmB,CAAU;YACnD,eAAe,EAAE,mCAAe,CAAC,UAAU;YAC3C,kBAAkB,EAAE;gBAChB,MAAM,EAAE,WAAW,CAAC,MAAM;gBAC1B,YAAY,EAAE,KAAK;aACG;YAC1B,YAAY,EAAE,eAAe;YAC7B,YAAY,EAAE,kCAAc;SAC/B,CAAC,CAAC;QAEH,MAAM,WAAW,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IACpD,CAAC,EAAE,KAAK,CAAC,CAAC;IAEV,IAAA,iBAAQ,EAAC,KAAK,IAAI,EAAE;QAEhB,MAAM,WAAW,CAAC,YAAY,EAAE,CAAC;IACrC,CAAC,EAAE,IAAI,CAAC,CAAC;AACb,CAAC,CAAC,CAAC"}
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DALFhirManagerPGResEntity = void 0;
4
+ const stsdatamanagement_1 = require("@nsshunt/stsdatamanagement");
5
+ class DALFhirManagerPGResEntity {
6
+ #options;
7
+ #accessLayer;
8
+ #fhirResource;
9
+ constructor(options) {
10
+ this.#options = options;
11
+ this.#accessLayer = new stsdatamanagement_1.DBAccessLayerManager().CreateAccessLayer({
12
+ accessLayerType: options.accessLayerType,
13
+ accessLayerOptions: options.accessLayerOptions
14
+ });
15
+ }
16
+ #GetSTSFhirBaseResource = async () => {
17
+ if (!this.#fhirResource) {
18
+ this.#fhirResource = (await this.#accessLayer.GetResource({
19
+ filters: {
20
+ resname: this.#options.resourceName
21
+ }
22
+ })).detail;
23
+ if (!this.#fhirResource) {
24
+ const fhirResourceType = {
25
+ name: this.#options.resourceName,
26
+ description: `${this.#options.resourceName} description`,
27
+ notes: `${this.#options.resourceName} notes`,
28
+ };
29
+ this.#fhirResource = (await this.#accessLayer.CreateResource({
30
+ filters: {
31
+ dbactionuser: this.#options.dbactionuser,
32
+ resname: this.#options.resourceName
33
+ }
34
+ }, fhirResourceType)).detail;
35
+ }
36
+ }
37
+ return this.#fhirResource;
38
+ };
39
+ async GetFhirResource(fhir, ecb) {
40
+ const fhirResource = await this.#GetSTSFhirBaseResource();
41
+ const retVal = await this.#accessLayer.GetEntity({
42
+ filters: {
43
+ resname: fhirResource.resname,
44
+ entname: fhir.id
45
+ }
46
+ });
47
+ if (retVal.error) {
48
+ if (ecb) {
49
+ ecb(retVal.error.error);
50
+ }
51
+ return null;
52
+ }
53
+ else {
54
+ return retVal.detail.entvalue;
55
+ }
56
+ }
57
+ async CreateFhirResource(fhir, ecb) {
58
+ const fhirResource = await this.#GetSTSFhirBaseResource();
59
+ const retVal = await this.#accessLayer.CreateEntity({
60
+ filters: {
61
+ dbactionuser: this.#options.dbactionuser,
62
+ resname: fhirResource.resname,
63
+ entname: fhir.id
64
+ }
65
+ }, fhir);
66
+ if (retVal.error) {
67
+ if (ecb) {
68
+ ecb(retVal.error.error);
69
+ }
70
+ return null;
71
+ }
72
+ else {
73
+ return retVal.detail.entvalue;
74
+ }
75
+ }
76
+ async UpdateFhirResource(fhir, ecb) {
77
+ const fhirResource = await this.#GetSTSFhirBaseResource();
78
+ const retVal = await this.#accessLayer.UpdateEntity({
79
+ filters: {
80
+ dbactionuser: this.#options.dbactionuser,
81
+ resname: fhirResource.resname,
82
+ entname: fhir.id
83
+ }
84
+ }, fhir);
85
+ if (retVal.error) {
86
+ if (ecb) {
87
+ ecb(retVal.error.error);
88
+ }
89
+ return null;
90
+ }
91
+ else {
92
+ return retVal.detail.entvalue;
93
+ }
94
+ }
95
+ async DeleteFhirResource(fhir, ecb) {
96
+ const fhirResource = await this.#GetSTSFhirBaseResource();
97
+ const retVal = await this.#accessLayer.DeleteEntity({
98
+ filters: {
99
+ dbactionuser: this.#options.dbactionuser,
100
+ resname: fhirResource.resname,
101
+ entname: fhir.id
102
+ }
103
+ });
104
+ if (retVal.error) {
105
+ if (ecb) {
106
+ ecb(retVal.error.error);
107
+ }
108
+ return null;
109
+ }
110
+ else {
111
+ return retVal.detail.entvalue;
112
+ }
113
+ }
114
+ }
115
+ exports.DALFhirManagerPGResEntity = DALFhirManagerPGResEntity;
116
+ //# sourceMappingURL=dalFhirManagerPGResEntity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dalFhirManagerPGResEntity.js","sourceRoot":"","sources":["../../src/fhir/dalFhirManagerPGResEntity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /* eslint @typescript-eslint/no-explicit-any: 0 */ // --> OFF
4
+ const vitest_1 = require("vitest");
5
+ const stsdatamanagement_1 = require("@nsshunt/stsdatamanagement");
6
+ const dalFhirManagerPGResEntity_1 = require("./dalFhirManagerPGResEntity");
7
+ const dalFhirTestHelpers_1 = require("./dalFhirTestHelpers");
8
+ (0, vitest_1.describe)("Test hl7 fhir resource data access layer - PGResEntity", () => {
9
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
10
+ let testHelpers;
11
+ (0, vitest_1.beforeAll)(async () => {
12
+ testHelpers = new dalFhirTestHelpers_1.TestHelpers();
13
+ await testHelpers.StartDatabase();
14
+ }, 30000);
15
+ (0, vitest_1.test)('Testing Person', async () => {
16
+ vitest_1.expect.assertions(6);
17
+ const personManager = new dalFhirManagerPGResEntity_1.DALFhirManagerPGResEntity({
18
+ accessLayerType: stsdatamanagement_1.accessLayerType.postgresql,
19
+ accessLayerOptions: {
20
+ logger: testHelpers.logger,
21
+ usedefaultdb: false
22
+ },
23
+ resourceName: 'STSFhirPerson',
24
+ dbactionuser: stsdatamanagement_1.SYSTEM_USER_ID
25
+ });
26
+ await testHelpers.TestFhirPerson(personManager);
27
+ }, 30000);
28
+ (0, vitest_1.afterAll)(async () => {
29
+ await testHelpers.StopDatabase();
30
+ }, 5000);
31
+ });
32
+ //# sourceMappingURL=dalFhirManagerPGResEntity.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dalFhirManagerPGResEntity.test.js","sourceRoot":"","sources":["../../src/fhir/dalFhirManagerPGResEntity.test.ts"],"names":[],"mappings":";;AAAA,kDAAkD,CAAE,UAAU;AAC9D,mCAAqE;AAErE,kEAAmG;AAEnG,2EAAuE;AAIvE,6DAAkD;AAElD,IAAA,iBAAQ,EAAC,wDAAwD,EAAE,GAAG,EAAE;IAEpE,8DAA8D;IAC9D,IAAI,WAAwB,CAAC;IAE7B,IAAA,kBAAS,EAAC,KAAK,IAAI,EAAE;QAEjB,WAAW,GAAG,IAAI,gCAAW,EAAE,CAAC;QAChC,MAAM,WAAW,CAAC,aAAa,EAAE,CAAC;IACtC,CAAC,EAAE,KAAK,CAAC,CAAC;IAEV,IAAA,aAAI,EAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC9B,eAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAErB,MAAM,aAAa,GAAG,IAAI,qDAAyB,CAAU;YACzD,eAAe,EAAE,mCAAe,CAAC,UAAU;YAC3C,kBAAkB,EAAE;gBAChB,MAAM,EAAE,WAAW,CAAC,MAAM;gBAC1B,YAAY,EAAE,KAAK;aACG;YAC1B,YAAY,EAAE,eAAe;YAC7B,YAAY,EAAE,kCAAc;SAC/B,CAAC,CAAC;QAEH,MAAM,WAAW,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IACpD,CAAC,EAAE,KAAK,CAAC,CAAC;IAEV,IAAA,iBAAQ,EAAC,KAAK,IAAI,EAAE;QAEhB,MAAM,WAAW,CAAC,YAAY,EAAE,CAAC;IACrC,CAAC,EAAE,IAAI,CAAC,CAAC;AACb,CAAC,CAAC,CAAC"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DALFhirManagerRedisJson = void 0;
4
+ const ioredis_1 = require("ioredis");
5
+ class DALFhirManagerRedisJson {
6
+ #options;
7
+ #redisSubscriber = null;
8
+ constructor(options) {
9
+ this.#options = options;
10
+ }
11
+ Start() {
12
+ const redisOptions = {
13
+ showFriendlyErrorStack: true,
14
+ maxRetriesPerRequest: 20
15
+ };
16
+ this.#redisSubscriber = new ioredis_1.Redis(this.#options.redisUrl, redisOptions);
17
+ }
18
+ Stop() {
19
+ if (this.#redisSubscriber) {
20
+ this.#redisSubscriber.quit();
21
+ this.#redisSubscriber.disconnect();
22
+ }
23
+ }
24
+ GetResourceType(fhir) {
25
+ return `${this.#options.resourceName}_${fhir.id}`;
26
+ }
27
+ async GetFhirResource(fhir, ecb) {
28
+ if (this.#redisSubscriber) {
29
+ const retValRaw = await this.#redisSubscriber?.get(this.GetResourceType(fhir));
30
+ if (retValRaw) {
31
+ try {
32
+ return JSON.parse(retValRaw);
33
+ }
34
+ catch (error) {
35
+ if (ecb) {
36
+ ecb(error);
37
+ }
38
+ return null;
39
+ }
40
+ }
41
+ else {
42
+ return null;
43
+ }
44
+ }
45
+ else {
46
+ return null;
47
+ }
48
+ }
49
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
50
+ async CreateFhirResource(fhir, ecb) {
51
+ const retVal = await this.#redisSubscriber?.set(this.GetResourceType(fhir), JSON.stringify(fhir));
52
+ if (retVal) {
53
+ return fhir;
54
+ }
55
+ else {
56
+ return null;
57
+ }
58
+ }
59
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
60
+ async UpdateFhirResource(fhir, ecb) {
61
+ const retVal = await this.#redisSubscriber?.set(this.GetResourceType(fhir), JSON.stringify(fhir));
62
+ if (retVal) {
63
+ return fhir;
64
+ }
65
+ else {
66
+ return null;
67
+ }
68
+ }
69
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
70
+ async DeleteFhirResource(fhir, ecb) {
71
+ const deleteResource = await this.GetFhirResource(fhir);
72
+ if (deleteResource) {
73
+ const retVal = await this.#redisSubscriber?.del(this.GetResourceType(fhir));
74
+ if (retVal) {
75
+ return deleteResource;
76
+ }
77
+ else {
78
+ return null;
79
+ }
80
+ }
81
+ else {
82
+ return null;
83
+ }
84
+ }
85
+ }
86
+ exports.DALFhirManagerRedisJson = DALFhirManagerRedisJson;
87
+ //# sourceMappingURL=dalFhirManagerRedisJson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dalFhirManagerRedisJson.js","sourceRoot":"","sources":["../../src/fhir/dalFhirManagerRedisJson.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /* eslint @typescript-eslint/no-explicit-any: 0 */ // --> OFF
4
+ const vitest_1 = require("vitest");
5
+ const dalFhirManagerRedisJson_1 = require("./dalFhirManagerRedisJson");
6
+ const dalFhirTestHelpers_1 = require("./dalFhirTestHelpers");
7
+ const stsutils_1 = require("@nsshunt/stsutils");
8
+ vitest_1.describe.skip("Test hl7 fhir resource data access layer - RedisJson", () => {
9
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
10
+ let personManager;
11
+ let testHelpers;
12
+ (0, vitest_1.beforeAll)(async () => {
13
+ testHelpers = new dalFhirTestHelpers_1.TestHelpers();
14
+ await testHelpers.StartRedis();
15
+ personManager = new dalFhirManagerRedisJson_1.DALFhirManagerRedisJson({
16
+ //const personManager = new DALFhirManagerPGRes<IPerson>({
17
+ //const personManager = new DALFhirManagerPGResEntity<IPerson>({
18
+ resourceName: 'STSFhirPerson',
19
+ redisUrl: testHelpers.ioRedisMessageProcessorUrl
20
+ });
21
+ personManager.Start();
22
+ }, 30000);
23
+ (0, vitest_1.test)('Testing Person', async () => {
24
+ vitest_1.expect.assertions(6);
25
+ await testHelpers.TestFhirPerson(personManager);
26
+ }, 30000);
27
+ (0, vitest_1.afterAll)(async () => {
28
+ personManager.Stop();
29
+ await (0, stsutils_1.JestSleep)();
30
+ await testHelpers.StopRedis();
31
+ }, 5000);
32
+ });
33
+ //# sourceMappingURL=dalFhirManagerRedisJson.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dalFhirManagerRedisJson.test.js","sourceRoot":"","sources":["../../src/fhir/dalFhirManagerRedisJson.test.ts"],"names":[],"mappings":";;AAAA,kDAAkD,CAAE,UAAU;AAC9D,mCAAqE;AAErE,uEAAmE;AAInE,6DAAkD;AAElD,gDAA6C;AAE7C,iBAAQ,CAAC,IAAI,CAAC,sDAAsD,EAAE,GAAG,EAAE;IAEvE,8DAA8D;IAC9D,IAAI,aAA+C,CAAC;IACpD,IAAI,WAAwB,CAAC;IAE7B,IAAA,kBAAS,EAAC,KAAK,IAAI,EAAE;QAEjB,WAAW,GAAG,IAAI,gCAAW,EAAE,CAAC;QAChC,MAAM,WAAW,CAAC,UAAU,EAAE,CAAC;QAE/B,aAAa,GAAG,IAAI,iDAAuB,CAAU;YACjD,0DAA0D;YAC1D,gEAAgE;YAChE,YAAY,EAAE,eAAe;YAC7B,QAAQ,EAAE,WAAW,CAAC,0BAA0B;SACnD,CAAC,CAAC;QACH,aAAa,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC,EAAE,KAAK,CAAC,CAAC;IAEV,IAAA,aAAI,EAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC9B,eAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAErB,MAAM,WAAW,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IACpD,CAAC,EAAE,KAAK,CAAC,CAAC;IAEV,IAAA,iBAAQ,EAAC,KAAK,IAAI,EAAE;QAEhB,aAAa,CAAC,IAAI,EAAE,CAAC;QACrB,MAAM,IAAA,oBAAS,GAAE,CAAC;QAClB,MAAM,WAAW,CAAC,SAAS,EAAE,CAAC;IAClC,CAAC,EAAE,IAAI,CAAC,CAAC;AACb,CAAC,CAAC,CAAC"}
@@ -0,0 +1,130 @@
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
+ StartDatabase = async () => {
69
+ this.#postgresContainer = await new testcontainers_1.GenericContainer("postgres")
70
+ .withExposedPorts(5432)
71
+ .withEnvironment({
72
+ POSTGRES_PASSWORD: "postgres",
73
+ //UV_THREADPOOL_SIZE: "64"
74
+ })
75
+ .withCommand(['-c', 'max_connections=20'])
76
+ .start();
77
+ await (0, stsutils_1.Sleep)(1000);
78
+ const postgresHttpPort = this.#postgresContainer.getMappedPort(5432);
79
+ const postgresHost = this.#postgresContainer.getHost();
80
+ process.env.DB_HOST = `${postgresHost}:${postgresHttpPort}`;
81
+ process.env.POOL_SIZE = '10';
82
+ (0, stsconfig_1.$ResetOptions)();
83
+ this.logger.info(chalk_1.default.green(`httpPort: [${postgresHttpPort}]`));
84
+ this.logger.info(chalk_1.default.green(`host: [${postgresHost}]`));
85
+ this.logger.info(chalk_1.default.yellow(`connectionString: [${stsconfig_1.goptions.connectionString}]`));
86
+ this.logger.info(chalk_1.default.yellow(`defaultDatabaseConnectionString: [${stsconfig_1.goptions.defaultDatabaseConnectionString}]`));
87
+ const dbOptions = {
88
+ start: 0,
89
+ iterations: 10000,
90
+ minextradata: 0,
91
+ maxextradata: 1000,
92
+ workerScriptFolder: './dist', //@@
93
+ useMultiBar: false
94
+ };
95
+ const dbUtils = new stsdatamanagement_1.DatabaseUtils({
96
+ logger: this.logger
97
+ });
98
+ await dbUtils.CreateDatabase(dbOptions);
99
+ await (0, stsutils_1.Sleep)(1000);
100
+ this.logger.info(chalk_1.default.green(`Starting accessLayer`));
101
+ this.#accessLayer = new stsdatamanagement_1.DBAccessLayerManager().CreateAccessLayer({
102
+ accessLayerType: stsdatamanagement_1.accessLayerType.postgresql,
103
+ accessLayerOptions: {
104
+ logger: stsutils_1.defaultLogger,
105
+ usedefaultdb: false
106
+ }
107
+ });
108
+ this.logger.info(chalk_1.default.green(`accessLayer:startdatabase()`));
109
+ await this.#accessLayer.StartDatabase();
110
+ };
111
+ StopDatabase = async () => {
112
+ await this.#accessLayer?.EndDatabase();
113
+ await (0, stsutils_1.JestSleep)();
114
+ await this.#postgresContainer.stop();
115
+ };
116
+ StartRedis = async () => {
117
+ this.#ioRedisContainer = await new testcontainers_1.GenericContainer("redis")
118
+ .withExposedPorts(6379)
119
+ .start();
120
+ this.#ioRedisMessageProcessorUrl = `redis://${this.#ioRedisContainer.getHost()}:${this.#ioRedisContainer.getMappedPort(6379)}`;
121
+ };
122
+ get ioRedisMessageProcessorUrl() {
123
+ return this.#ioRedisMessageProcessorUrl;
124
+ }
125
+ StopRedis = async () => {
126
+ await this.#ioRedisContainer.stop();
127
+ };
128
+ }
129
+ exports.TestHelpers = TestHelpers;
130
+ //# sourceMappingURL=dalFhirTestHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dalFhirTestHelpers.js","sourceRoot":"","sources":["../../src/fhir/dalFhirTestHelpers.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -42,4 +42,6 @@ __exportStar(require("./ipcMessageProcessorPrimary"), exports);
42
42
  __exportStar(require("./ipcMessageProcessorWorker"), exports);
43
43
  __exportStar(require("./ipcMessageManager"), exports);
44
44
  __exportStar(require("./redisMessageHandler"), exports);
45
+ __exportStar(require("./fhir/STSFhirTypes"), exports);
46
+ __exportStar(require("./fhir/dalFhirManagerPGResEntity"), exports);
45
47
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA6B;AAC7B,mDAAgC;AAChC,6CAA0B;AAC1B,kDAA+B;AAC/B,kDAA+B;AAC/B,sDAAmC;AACnC,sDAAmC;AACnC,sDAAmC;AACnC,sDAAmC;AACnC,yDAAsC;AACtC,yDAAsC;AACtC,oDAAiC;AACjC,uDAAoC;AACpC,wDAAqC;AACrC,wDAAqC;AACrC,yDAAsC;AACtC,6DAA0C;AAC1C,iEAA8C;AAC9C,oEAAiD;AACjD,kEAA+C;AAC/C,mEAAgD;AAChD,8EAA2D;AAC3D,wDAAqC;AACrC,8DAA2C;AAC3C,+DAA4C;AAC5C,8DAA2C;AAC3C,sDAAmC;AACnC,wDAAqC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA6B;AAC7B,mDAAgC;AAChC,6CAA0B;AAC1B,kDAA+B;AAC/B,kDAA+B;AAC/B,sDAAmC;AACnC,sDAAmC;AACnC,sDAAmC;AACnC,sDAAmC;AACnC,yDAAsC;AACtC,yDAAsC;AACtC,oDAAiC;AACjC,uDAAoC;AACpC,wDAAqC;AACrC,wDAAqC;AACrC,yDAAsC;AACtC,6DAA0C;AAC1C,iEAA8C;AAC9C,oEAAiD;AACjD,kEAA+C;AAC/C,mEAAgD;AAChD,8EAA2D;AAC3D,wDAAqC;AACrC,8DAA2C;AAC3C,+DAA4C;AAC5C,8DAA2C;AAC3C,sDAAmC;AACnC,wDAAqC;AACrC,sDAAmC;AACnC,mEAAgD"}
@@ -275,6 +275,29 @@ class RedisMessageHandler extends tiny_emitter_1.TinyEmitter {
275
275
  })();
276
276
  return this;
277
277
  }
278
+ emitWithError(event, args, responseCb, errorCb) {
279
+ (async () => {
280
+ try {
281
+ const retVal = await this.#ipcMessageManager?.SendMessage({
282
+ __eventName: event,
283
+ args: [args]
284
+ });
285
+ // Invoke the response callback
286
+ responseCb(retVal);
287
+ }
288
+ catch (error) {
289
+ if (this.#options.ignoreEvents) {
290
+ //console.log(chalk.red(`RedisMessageHandler:emit(): ignoreEvents: [${this.#options.ignoreEvents}]`))
291
+ if (this.#options.ignoreEvents.indexOf(error.__eventName) !== -1) {
292
+ return;
293
+ }
294
+ }
295
+ //this.#options.logger.error(chalk.red(`RedisMessageHandler:emit(): Error: [${JSON.stringify(error)}]`));
296
+ errorCb(error);
297
+ }
298
+ })();
299
+ return this;
300
+ }
278
301
  emitex = async (event, ...args) => {
279
302
  return this.#ipcMessageManager.SendMessage({
280
303
  __eventName: event,