@metriport/shared 0.34.8-alpha.0 → 0.35.0-alpha.0
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/common/__tests__/normalize-oid.test.js +27 -7
- package/dist/common/__tests__/normalize-oid.test.js.map +1 -1
- package/dist/common/__tests__/purpose-of-use.test.js +10 -0
- package/dist/common/__tests__/purpose-of-use.test.js.map +1 -1
- package/dist/common/__tests__/uuid.test.d.ts +2 -0
- package/dist/common/__tests__/uuid.test.d.ts.map +1 -0
- package/dist/common/__tests__/uuid.test.js +51 -0
- package/dist/common/__tests__/uuid.test.js.map +1 -0
- package/dist/common/normalize-oid.d.ts +7 -1
- package/dist/common/normalize-oid.d.ts.map +1 -1
- package/dist/common/normalize-oid.js +21 -6
- package/dist/common/normalize-oid.js.map +1 -1
- package/dist/common/object.js.map +1 -1
- package/dist/common/purpose-of-use.d.ts +5 -0
- package/dist/common/purpose-of-use.d.ts.map +1 -1
- package/dist/common/purpose-of-use.js +15 -0
- package/dist/common/purpose-of-use.js.map +1 -1
- package/dist/common/validate-npi.d.ts +3 -0
- package/dist/common/validate-npi.d.ts.map +1 -1
- package/dist/common/validate-npi.js +6 -0
- package/dist/common/validate-npi.js.map +1 -1
- package/dist/domain/cq-streaming/index.d.ts +4 -0
- package/dist/domain/cq-streaming/index.d.ts.map +1 -0
- package/dist/domain/cq-streaming/index.js +20 -0
- package/dist/domain/cq-streaming/index.js.map +1 -0
- package/dist/domain/cq-streaming/link-event.d.ts +10 -0
- package/dist/domain/cq-streaming/link-event.d.ts.map +1 -0
- package/dist/domain/cq-streaming/link-event.js +21 -0
- package/dist/domain/cq-streaming/link-event.js.map +1 -0
- package/dist/domain/cq-streaming/status-event.d.ts +30 -0
- package/dist/domain/cq-streaming/status-event.d.ts.map +1 -0
- package/dist/domain/cq-streaming/status-event.js +32 -0
- package/dist/domain/cq-streaming/status-event.js.map +1 -0
- package/dist/domain/cq-streaming/types.d.ts +10 -0
- package/dist/domain/cq-streaming/types.d.ts.map +1 -0
- package/dist/domain/cq-streaming/types.js +15 -0
- package/dist/domain/cq-streaming/types.js.map +1 -0
- package/dist/domain/message/__tests__/message.test.d.ts +2 -0
- package/dist/domain/message/__tests__/message.test.d.ts.map +1 -0
- package/dist/domain/message/__tests__/message.test.js +170 -0
- package/dist/domain/message/__tests__/message.test.js.map +1 -0
- package/dist/domain/message/index.d.ts +2 -0
- package/dist/domain/message/index.d.ts.map +1 -0
- package/dist/domain/message/index.js +18 -0
- package/dist/domain/message/index.js.map +1 -0
- package/dist/domain/message/internal-message-for-sender.d.ts +29 -0
- package/dist/domain/message/internal-message-for-sender.d.ts.map +1 -0
- package/dist/domain/message/internal-message-for-sender.js +26 -0
- package/dist/domain/message/internal-message-for-sender.js.map +1 -0
- package/dist/domain/message/internal-message-xdr.d.ts +237 -0
- package/dist/domain/message/internal-message-xdr.d.ts.map +1 -0
- package/dist/domain/message/internal-message-xdr.js +44 -0
- package/dist/domain/message/internal-message-xdr.js.map +1 -0
- package/dist/domain/message/message.d.ts +167 -0
- package/dist/domain/message/message.d.ts.map +1 -0
- package/dist/domain/message/message.js +110 -0
- package/dist/domain/message/message.js.map +1 -0
- package/dist/domain/network-query/__tests__/source.test.js +47 -0
- package/dist/domain/network-query/__tests__/source.test.js.map +1 -1
- package/dist/domain/network-query/query.d.ts +31 -13
- package/dist/domain/network-query/query.d.ts.map +1 -1
- package/dist/domain/network-query/query.js.map +1 -1
- package/dist/domain/network-query/source.d.ts +91 -18
- package/dist/domain/network-query/source.d.ts.map +1 -1
- package/dist/domain/network-query/source.js +89 -4
- package/dist/domain/network-query/source.js.map +1 -1
- package/dist/domain/network-query/supported-event-types.d.ts +18 -5
- package/dist/domain/network-query/supported-event-types.d.ts.map +1 -1
- package/dist/domain/network-query/supported-event-types.js +50 -2
- package/dist/domain/network-query/supported-event-types.js.map +1 -1
- package/dist/domain/rate-limiting/index.d.ts +1 -1
- package/dist/domain/rate-limiting/index.d.ts.map +1 -1
- package/dist/domain/rate-limiting/index.js +3 -0
- package/dist/domain/rate-limiting/index.js.map +1 -1
- package/dist/error/conflict.d.ts +5 -0
- package/dist/error/conflict.d.ts.map +1 -0
- package/dist/error/conflict.js +17 -0
- package/dist/error/conflict.js.map +1 -0
- package/dist/error/patient-not-found.d.ts +8 -0
- package/dist/error/patient-not-found.d.ts.map +1 -0
- package/dist/error/patient-not-found.js +18 -0
- package/dist/error/patient-not-found.js.map +1 -0
- package/dist/error/patient-opted-out.d.ts +12 -0
- package/dist/error/patient-opted-out.d.ts.map +1 -0
- package/dist/error/patient-opted-out.js +22 -0
- package/dist/error/patient-opted-out.js.map +1 -0
- package/dist/error/patient-without-treatment-relationship.d.ts +12 -0
- package/dist/error/patient-without-treatment-relationship.d.ts.map +1 -0
- package/dist/error/patient-without-treatment-relationship.js +23 -0
- package/dist/error/patient-without-treatment-relationship.js.map +1 -0
- package/dist/error/timeout-error.d.ts +8 -0
- package/dist/error/timeout-error.d.ts.map +1 -0
- package/dist/error/timeout-error.js +18 -0
- package/dist/error/timeout-error.js.map +1 -0
- package/dist/external/hl7v2/constants.d.ts +2 -1
- package/dist/external/hl7v2/constants.d.ts.map +1 -1
- package/dist/external/hl7v2/constants.js +2 -0
- package/dist/external/hl7v2/constants.js.map +1 -1
- package/dist/external/ihe/constants.d.ts +1 -1
- package/dist/external/ihe/constants.d.ts.map +1 -1
- package/dist/external/ihe/constants.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -1
- package/dist/index.js.map +1 -1
- package/dist/medical/fhir/condition-clinical-status-map.d.ts.map +1 -1
- package/dist/medical/fhir/condition-clinical-status-map.js +0 -1
- package/dist/medical/fhir/condition-clinical-status-map.js.map +1 -1
- package/dist/medical/fhir/condition-clinical-status-priority.d.ts.map +1 -1
- package/dist/medical/fhir/condition-clinical-status-priority.js +0 -1
- package/dist/medical/fhir/condition-clinical-status-priority.js.map +1 -1
- package/dist/medical/fhir/constants.d.ts +6 -0
- package/dist/medical/fhir/constants.d.ts.map +1 -1
- package/dist/medical/fhir/constants.js +8 -1
- package/dist/medical/fhir/constants.js.map +1 -1
- package/dist/medical/webhook/__tests__/network-query-first-data-ready.test.d.ts +2 -0
- package/dist/medical/webhook/__tests__/network-query-first-data-ready.test.d.ts.map +1 -0
- package/dist/medical/webhook/__tests__/network-query-first-data-ready.test.js +45 -0
- package/dist/medical/webhook/__tests__/network-query-first-data-ready.test.js.map +1 -0
- package/dist/medical/webhook/webhook-request.d.ts +236 -2
- package/dist/medical/webhook/webhook-request.d.ts.map +1 -1
- package/dist/medical/webhook/webhook-request.js +23 -2
- package/dist/medical/webhook/webhook-request.js.map +1 -1
- package/dist/net/axios.d.ts +3 -0
- package/dist/net/axios.d.ts.map +1 -0
- package/dist/net/axios.js +21 -0
- package/dist/net/axios.js.map +1 -0
- package/dist/util/sqs-delay-from-uuid.d.ts +11 -0
- package/dist/util/sqs-delay-from-uuid.d.ts.map +1 -0
- package/dist/util/sqs-delay-from-uuid.js +21 -0
- package/dist/util/sqs-delay-from-uuid.js.map +1 -0
- package/package.json +10 -2
|
@@ -22,7 +22,6 @@ describe("normalizeOid", () => {
|
|
|
22
22
|
it("should return the same oid if it is already valid", () => {
|
|
23
23
|
expect((0, normalize_oid_1.normalizeOid)(validOid)).toBe(validOid);
|
|
24
24
|
expect((0, normalize_oid_1.normalizeOid)(shorterValidOid)).toBe(shorterValidOid);
|
|
25
|
-
expect((0, normalize_oid_1.normalizeOid)(longerValidOid)).toBe(longerValidOid);
|
|
26
25
|
});
|
|
27
26
|
it("should return the oid without the junk surrounding it", () => {
|
|
28
27
|
expect((0, normalize_oid_1.normalizeOid)(validOidWithPrefix)).toBe(validOid);
|
|
@@ -36,8 +35,9 @@ describe("normalizeOid", () => {
|
|
|
36
35
|
it("should return the oid without leading and trailing junk", () => {
|
|
37
36
|
expect((0, normalize_oid_1.normalizeOid)(oidWithLeadingAndTrailingJunk)).toBe(validOid);
|
|
38
37
|
});
|
|
39
|
-
it("should
|
|
40
|
-
expect((0, normalize_oid_1.normalizeOid)(oidWithLeadingZeros)).toBe(
|
|
38
|
+
it("should strip leading zeros from arcs", () => {
|
|
39
|
+
expect((0, normalize_oid_1.normalizeOid)(oidWithLeadingZeros)).toBe("1.2.3.4");
|
|
40
|
+
expect((0, normalize_oid_1.normalizeOid)(longerValidOid)).toBe("1.22.33.444.555.6677.889999.1");
|
|
41
41
|
});
|
|
42
42
|
it("should throw an error for empty string or only dots", () => {
|
|
43
43
|
expect(() => (0, normalize_oid_1.normalizeOid)(emptyString)).toThrow("OID is not valid");
|
|
@@ -66,14 +66,20 @@ describe("parseOid", () => {
|
|
|
66
66
|
});
|
|
67
67
|
});
|
|
68
68
|
describe("isBareOidValue", () => {
|
|
69
|
-
it("returns true
|
|
69
|
+
it("returns true when the entire string is a multi-arc OID with an in-range root", () => {
|
|
70
70
|
expect((0, normalize_oid_1.isBareOidValue)(validOid)).toBe(true);
|
|
71
|
-
expect((0, normalize_oid_1.isBareOidValue)(shorterValidOid)).toBe(true);
|
|
72
|
-
expect((0, normalize_oid_1.isBareOidValue)(longerValidOid)).toBe(true);
|
|
73
|
-
expect((0, normalize_oid_1.isBareOidValue)(oidWithLeadingZeros)).toBe(true);
|
|
74
71
|
expect((0, normalize_oid_1.isBareOidValue)(rootBoundaryZero)).toBe(true);
|
|
75
72
|
expect((0, normalize_oid_1.isBareOidValue)(rootBoundaryTwo)).toBe(true);
|
|
76
73
|
});
|
|
74
|
+
it("returns false for single-arc values that are not usable OIDs", () => {
|
|
75
|
+
expect((0, normalize_oid_1.isBareOidValue)(shorterValidOid)).toBe(false);
|
|
76
|
+
expect((0, normalize_oid_1.isBareOidValue)("0")).toBe(false);
|
|
77
|
+
expect((0, normalize_oid_1.isBareOidValue)("2")).toBe(false);
|
|
78
|
+
});
|
|
79
|
+
it("returns false for out-of-range roots", () => {
|
|
80
|
+
expect((0, normalize_oid_1.isBareOidValue)("3.4.5")).toBe(false);
|
|
81
|
+
expect((0, normalize_oid_1.isBareOidValue)("1000.2")).toBe(false);
|
|
82
|
+
});
|
|
77
83
|
it("returns false for URIs and strings that contain but are not solely an OID", () => {
|
|
78
84
|
expect((0, normalize_oid_1.isBareOidValue)(oidAsPartOfUrl)).toBe(false);
|
|
79
85
|
expect((0, normalize_oid_1.isBareOidValue)(validOidWithPrefix)).toBe(false);
|
|
@@ -89,4 +95,18 @@ describe("isBareOidValue", () => {
|
|
|
89
95
|
expect((0, normalize_oid_1.isBareOidValue)(oidAsPartOfUrl)).toBe(false);
|
|
90
96
|
});
|
|
91
97
|
});
|
|
98
|
+
describe("stripOidLeadingZeros", () => {
|
|
99
|
+
it("strips leading zeros from each arc", () => {
|
|
100
|
+
expect((0, normalize_oid_1.stripOidLeadingZeros)("2.16.840.001")).toBe("2.16.840.1");
|
|
101
|
+
expect((0, normalize_oid_1.stripOidLeadingZeros)(oidWithLeadingZeros)).toBe("1.2.3.4");
|
|
102
|
+
expect((0, normalize_oid_1.stripOidLeadingZeros)("1.22.33.444.555.6677.889999.0001")).toBe("1.22.33.444.555.6677.889999.1");
|
|
103
|
+
});
|
|
104
|
+
it("preserves an all-zero arc as a single 0", () => {
|
|
105
|
+
expect((0, normalize_oid_1.stripOidLeadingZeros)("2.0.0")).toBe("2.0.0");
|
|
106
|
+
expect((0, normalize_oid_1.stripOidLeadingZeros)("1.00.2")).toBe("1.0.2");
|
|
107
|
+
});
|
|
108
|
+
it("leaves an already-canonical OID unchanged", () => {
|
|
109
|
+
expect((0, normalize_oid_1.stripOidLeadingZeros)(validOid)).toBe(validOid);
|
|
110
|
+
});
|
|
111
|
+
});
|
|
92
112
|
//# sourceMappingURL=normalize-oid.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize-oid.test.js","sourceRoot":"","sources":["../../../src/common/__tests__/normalize-oid.test.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"normalize-oid.test.js","sourceRoot":"","sources":["../../../src/common/__tests__/normalize-oid.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,4 +21,14 @@ describe("isAcceptedTefcaPurposeOfUse", () => {
|
|
|
21
21
|
expect((0, purpose_of_use_1.isAcceptedTefcaPurposeOfUse)(purpose_of_use_1.NO_POU_SPECIFIED)).toBe(false);
|
|
22
22
|
});
|
|
23
23
|
});
|
|
24
|
+
describe("getTefcaPurposeDisplayName", () => {
|
|
25
|
+
it("returns display names for supported TEFCA purpose codes", () => {
|
|
26
|
+
expect((0, purpose_of_use_1.getTefcaPurposeDisplayName)(purpose_of_use_1.TefcaPurposeOfUse.TREATMENT)).toBe("TEFCA Required Treatment");
|
|
27
|
+
expect((0, purpose_of_use_1.getTefcaPurposeDisplayName)(purpose_of_use_1.TefcaPurposeOfUse.IAS)).toBe("Individual Access Services");
|
|
28
|
+
});
|
|
29
|
+
it("returns undefined for unsupported purpose codes", () => {
|
|
30
|
+
expect((0, purpose_of_use_1.getTefcaPurposeDisplayName)(purpose_of_use_1.PurposeOfUse.TREATMENT)).toBeUndefined();
|
|
31
|
+
expect((0, purpose_of_use_1.getTefcaPurposeDisplayName)(undefined)).toBeUndefined();
|
|
32
|
+
});
|
|
33
|
+
});
|
|
24
34
|
//# sourceMappingURL=purpose-of-use.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"purpose-of-use.test.js","sourceRoot":"","sources":["../../../src/common/__tests__/purpose-of-use.test.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"purpose-of-use.test.js","sourceRoot":"","sources":["../../../src/common/__tests__/purpose-of-use.test.ts"],"names":[],"mappings":";;AAAA,sDAM2B;AAE3B,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC1B,MAAM,CAAC,IAAA,4CAA2B,EAAC,kCAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;QACvB,MAAM,CAAC,IAAA,4CAA2B,EAAC,kCAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,IAAA,4CAA2B,EAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,CAAC,IAAA,4CAA2B,EAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,CAAC,IAAA,4CAA2B,EAAC,6BAAY,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,CAAC,IAAA,4CAA2B,EAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3D,MAAM,CAAC,IAAA,4CAA2B,EAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpD,MAAM,CAAC,IAAA,4CAA2B,EAAC,iCAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,CAAC,IAAA,2CAA0B,EAAC,kCAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAClE,0BAA0B,CAC3B,CAAC;QACF,MAAM,CAAC,IAAA,2CAA0B,EAAC,kCAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAC/F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,IAAA,2CAA0B,EAAC,6BAAY,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAC3E,MAAM,CAAC,IAAA,2CAA0B,EAAC,SAAS,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IAChE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uuid.test.d.ts","sourceRoot":"","sources":["../../../src/common/__tests__/uuid.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const util_1 = require("../../util");
|
|
4
|
+
const sleep_1 = require("../sleep");
|
|
5
|
+
const uuid_1 = require("../uuid");
|
|
6
|
+
describe("pickLexicographicallyLatestUuid", () => {
|
|
7
|
+
it("returns undefined for an empty list", () => {
|
|
8
|
+
expect((0, uuid_1.pickLexicographicallyLatestUuid)([])).toBeUndefined();
|
|
9
|
+
});
|
|
10
|
+
it("returns undefined when every entry is null or undefined", () => {
|
|
11
|
+
expect((0, uuid_1.pickLexicographicallyLatestUuid)([undefined, null, undefined])).toBeUndefined();
|
|
12
|
+
});
|
|
13
|
+
it("returns the only UUID when there is one", () => {
|
|
14
|
+
const id = "0194a8c0-0000-7000-8000-000000000001";
|
|
15
|
+
expect((0, uuid_1.pickLexicographicallyLatestUuid)([id])).toBe(id);
|
|
16
|
+
});
|
|
17
|
+
it("returns the lexicographically greatest UUID", async () => {
|
|
18
|
+
const uuid1 = (0, util_1.uuidv7)();
|
|
19
|
+
await (0, sleep_1.sleep)(10);
|
|
20
|
+
const uuid2 = (0, util_1.uuidv7)();
|
|
21
|
+
await (0, sleep_1.sleep)(10);
|
|
22
|
+
const uuid3 = (0, util_1.uuidv7)();
|
|
23
|
+
expect((0, uuid_1.pickLexicographicallyLatestUuid)([uuid1, uuid2, uuid3])).toBe(uuid3);
|
|
24
|
+
});
|
|
25
|
+
it("returns the lexicographically greatest UUID", () => {
|
|
26
|
+
expect((0, uuid_1.pickLexicographicallyLatestUuid)([
|
|
27
|
+
"0194a8c0-0000-7000-8000-000000000001",
|
|
28
|
+
"0194a8c0-0000-7000-8000-000000000003",
|
|
29
|
+
"0194a8c0-0000-7000-8000-000000000002",
|
|
30
|
+
])).toBe("0194a8c0-0000-7000-8000-000000000003");
|
|
31
|
+
});
|
|
32
|
+
it("is insensitive to input order", () => {
|
|
33
|
+
const a = "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa";
|
|
34
|
+
const b = "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb";
|
|
35
|
+
expect((0, uuid_1.pickLexicographicallyLatestUuid)([a, b])).toBe(b);
|
|
36
|
+
expect((0, uuid_1.pickLexicographicallyLatestUuid)([b, a])).toBe(b);
|
|
37
|
+
});
|
|
38
|
+
it("deduplicates before picking", () => {
|
|
39
|
+
const id = "0194a8c0-0000-7000-8000-000000000001";
|
|
40
|
+
expect((0, uuid_1.pickLexicographicallyLatestUuid)([id, id, id])).toBe(id);
|
|
41
|
+
});
|
|
42
|
+
it("drops null and undefined entries", () => {
|
|
43
|
+
const id = "ffffffff-ffff-ffff-ffff-ffffffffffff";
|
|
44
|
+
expect((0, uuid_1.pickLexicographicallyLatestUuid)([undefined, id, null])).toBe(id);
|
|
45
|
+
});
|
|
46
|
+
it("keeps empty string as a candidate (not treated like missing)", () => {
|
|
47
|
+
expect((0, uuid_1.pickLexicographicallyLatestUuid)(["", "a"])).toBe("a");
|
|
48
|
+
expect((0, uuid_1.pickLexicographicallyLatestUuid)(["b", ""])).toBe("b");
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
//# sourceMappingURL=uuid.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uuid.test.js","sourceRoot":"","sources":["../../../src/common/__tests__/uuid.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,8 +7,14 @@ export declare function normalizeOid(input: string): string;
|
|
|
7
7
|
*/
|
|
8
8
|
export declare function parseOid(input: string): string;
|
|
9
9
|
/**
|
|
10
|
-
* Returns true when the entire string is a bare
|
|
10
|
+
* Returns true when the entire string is a bare OID: a root arc of 0-2 and at least two arcs
|
|
11
|
+
* Single arcs like `1` and out-of-range roots are rejected
|
|
11
12
|
* Unlike {@link parseOid}, does not extract OID-like substrings from HTTP or other URIs.
|
|
12
13
|
*/
|
|
13
14
|
export declare function isBareOidValue(value: string): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Canonicalizes a dotted-decimal OID by stripping leading zeros from each arc
|
|
17
|
+
* (e.g. `2.16.840.001` becomes `2.16.840.1`)
|
|
18
|
+
*/
|
|
19
|
+
export declare function stripOidLeadingZeros(oid: string): string;
|
|
14
20
|
//# sourceMappingURL=normalize-oid.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize-oid.d.ts","sourceRoot":"","sources":["../../src/common/normalize-oid.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"normalize-oid.d.ts","sourceRoot":"","sources":["../../src/common/normalize-oid.ts"],"names":[],"mappings":"AAMA,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAYlD;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAwC9C;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAKrD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKxD"}
|
|
@@ -3,16 +3,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.normalizeOid = normalizeOid;
|
|
4
4
|
exports.parseOid = parseOid;
|
|
5
5
|
exports.isBareOidValue = isBareOidValue;
|
|
6
|
-
|
|
7
|
-
const
|
|
6
|
+
exports.stripOidLeadingZeros = stripOidLeadingZeros;
|
|
7
|
+
const oidRegex = /(?:[^.\d]*)((([0-9]*)(?:\.*))*)*(?:[^.\d]*)/;
|
|
8
|
+
// A bare OID has a root arc of 0-2 and at least two arcs (e.g. `2.16.840.1.113883.6.1`)
|
|
9
|
+
const bareOidValuePattern = /^[0-2](?:\.[0-9]+)+$/;
|
|
10
|
+
// Matches leading zeros on an arc only when followed by another digit.
|
|
11
|
+
const oidArcLeadingZerosPattern = /^0+(?=[0-9])/;
|
|
8
12
|
function normalizeOid(input) {
|
|
9
|
-
const match = input.match(
|
|
13
|
+
const match = input.match(oidRegex);
|
|
10
14
|
// The OID should not contain "..". If it does, it is not a valid OID.
|
|
11
15
|
// The root of OID must be 0, 1 or 2. If it is not, it is not a valid OID. (i.e. '1000' is not a valid OID)
|
|
12
16
|
if (match && match[1]) {
|
|
13
17
|
const oidCandidate = match[1];
|
|
14
18
|
if (!oidCandidate.includes("..") && startsWithRootCode(oidCandidate)) {
|
|
15
|
-
return oidCandidate;
|
|
19
|
+
return stripOidLeadingZeros(oidCandidate);
|
|
16
20
|
}
|
|
17
21
|
}
|
|
18
22
|
throw new Error("OID is not valid");
|
|
@@ -60,15 +64,26 @@ function parseOid(input) {
|
|
|
60
64
|
throw new Error("No valid OID found in input string");
|
|
61
65
|
}
|
|
62
66
|
/**
|
|
63
|
-
* Returns true when the entire string is a bare
|
|
67
|
+
* Returns true when the entire string is a bare OID: a root arc of 0-2 and at least two arcs
|
|
68
|
+
* Single arcs like `1` and out-of-range roots are rejected
|
|
64
69
|
* Unlike {@link parseOid}, does not extract OID-like substrings from HTTP or other URIs.
|
|
65
70
|
*/
|
|
66
71
|
function isBareOidValue(value) {
|
|
67
|
-
if (!value || !
|
|
72
|
+
if (!value || !bareOidValuePattern.test(value)) {
|
|
68
73
|
return false;
|
|
69
74
|
}
|
|
70
75
|
return isValidOid(value);
|
|
71
76
|
}
|
|
77
|
+
/**
|
|
78
|
+
* Canonicalizes a dotted-decimal OID by stripping leading zeros from each arc
|
|
79
|
+
* (e.g. `2.16.840.001` becomes `2.16.840.1`)
|
|
80
|
+
*/
|
|
81
|
+
function stripOidLeadingZeros(oid) {
|
|
82
|
+
return oid
|
|
83
|
+
.split(".")
|
|
84
|
+
.map(arc => arc.replace(oidArcLeadingZerosPattern, ""))
|
|
85
|
+
.join(".");
|
|
86
|
+
}
|
|
72
87
|
/**
|
|
73
88
|
* Validates if a string is a valid OID
|
|
74
89
|
* @param oid - The OID string to validate
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize-oid.js","sourceRoot":"","sources":["../../src/common/normalize-oid.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"normalize-oid.js","sourceRoot":"","sources":["../../src/common/normalize-oid.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object.js","sourceRoot":"","sources":["../../src/common/object.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"object.js","sourceRoot":"","sources":["../../src/common/object.ts"],"names":[],"mappings":";;AAaA,gGAsBC;AAnCD;;;;;;;;;;;;GAYG;AACH,SAAgB,0CAA0C,CAAC,KAAc;IACvE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,0CAA0C,CAAC,IAAI,CAAC,CAAC;QAC3E,OAAO;IACT,CAAC;IACD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO;IAEhD,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YAChB,SAAS;QACX,CAAC;QACD,0CAA0C,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;YACzD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;;gBACnC,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;QAC1B,CAAC;aAAM,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAChC,CAAC;AACJ,CAAC"}
|
|
@@ -55,4 +55,9 @@ export declare function isAcceptedPurposeOfUse(pou: string | undefined): boolean
|
|
|
55
55
|
* @returns True if the purpose of use is valid (T-TRTMNT or T-IAS), false otherwise.
|
|
56
56
|
*/
|
|
57
57
|
export declare function isAcceptedTefcaPurposeOfUse(pou: string | undefined): boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Display name for a TEFCA Exchange Purpose code in SAML PurposeOfUse assertions.
|
|
60
|
+
* @see https://sequoiaproject.org/fhir/sphd/CodeSystem/RCE-Purpose
|
|
61
|
+
*/
|
|
62
|
+
export declare function getTefcaPurposeDisplayName(pou: string | undefined): string | undefined;
|
|
58
63
|
//# sourceMappingURL=purpose-of-use.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"purpose-of-use.d.ts","sourceRoot":"","sources":["../../src/common/purpose-of-use.ts"],"names":[],"mappings":"AACA,oBAAY,YAAY;IACtB,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,aAAa,kBAAkB;IAC/B,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,YAAY,iBAAiB;IAC7B,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,GAAG,QAAQ;IACX,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;IACrB,OAAO,YAAY;CACpB;AAED;;;GAGG;AACH,oBAAY,iBAAiB;IAC3B,SAAS,aAAa;IACtB,GAAG,UAAU;CACd;AAED;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAEnD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEvE;
|
|
1
|
+
{"version":3,"file":"purpose-of-use.d.ts","sourceRoot":"","sources":["../../src/common/purpose-of-use.ts"],"names":[],"mappings":"AACA,oBAAY,YAAY;IACtB,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,aAAa,kBAAkB;IAC/B,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,YAAY,iBAAiB;IAC7B,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,GAAG,QAAQ;IACX,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;IACrB,OAAO,YAAY;CACpB;AAED;;;GAGG;AACH,oBAAY,iBAAiB;IAC3B,SAAS,aAAa;IACtB,GAAG,UAAU;CACd;AAED;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAEnD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEvE;AAaD;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAK5E;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAKtF"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.NO_POU_SPECIFIED = exports.TefcaPurposeOfUse = exports.PurposeOfUse = void 0;
|
|
4
4
|
exports.isAcceptedPurposeOfUse = isAcceptedPurposeOfUse;
|
|
5
5
|
exports.isAcceptedTefcaPurposeOfUse = isAcceptedTefcaPurposeOfUse;
|
|
6
|
+
exports.getTefcaPurposeDisplayName = getTefcaPurposeDisplayName;
|
|
6
7
|
// https://www.hl7.org/fhir/codesystem-nhin-purposeofuse.html
|
|
7
8
|
var PurposeOfUse;
|
|
8
9
|
(function (PurposeOfUse) {
|
|
@@ -60,6 +61,10 @@ function isAcceptedPurposeOfUse(pou) {
|
|
|
60
61
|
return pou?.trim().toUpperCase() === PurposeOfUse.TREATMENT;
|
|
61
62
|
}
|
|
62
63
|
const acceptedTefcaPurposeOfUse = new Set(Object.values(TefcaPurposeOfUse).map(value => value.trim().toUpperCase()));
|
|
64
|
+
const tefcaPurposeDisplayNameByCode = new Map(Object.entries({
|
|
65
|
+
[TefcaPurposeOfUse.TREATMENT]: "TEFCA Required Treatment",
|
|
66
|
+
[TefcaPurposeOfUse.IAS]: "Individual Access Services",
|
|
67
|
+
}).map(([code, displayName]) => [code.toUpperCase(), displayName]));
|
|
63
68
|
/**
|
|
64
69
|
* TEFCA inbound Responding Node supports Treatment (T-TRTMNT) and IAS (T-IAS) exchange purposes.
|
|
65
70
|
* @param pou Purpose of use / XP code from the SAML PurposeOfUse attribute.
|
|
@@ -71,4 +76,14 @@ function isAcceptedTefcaPurposeOfUse(pou) {
|
|
|
71
76
|
}
|
|
72
77
|
return acceptedTefcaPurposeOfUse.has(pou.trim().toUpperCase());
|
|
73
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Display name for a TEFCA Exchange Purpose code in SAML PurposeOfUse assertions.
|
|
81
|
+
* @see https://sequoiaproject.org/fhir/sphd/CodeSystem/RCE-Purpose
|
|
82
|
+
*/
|
|
83
|
+
function getTefcaPurposeDisplayName(pou) {
|
|
84
|
+
if (!pou) {
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
return tefcaPurposeDisplayNameByCode.get(pou.trim().toUpperCase());
|
|
88
|
+
}
|
|
74
89
|
//# sourceMappingURL=purpose-of-use.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"purpose-of-use.js","sourceRoot":"","sources":["../../src/common/purpose-of-use.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"purpose-of-use.js","sourceRoot":"","sources":["../../src/common/purpose-of-use.ts"],"names":[],"mappings":";;;;;;AAAA,6DAA6D;AAC7D,IAAY,YA4BX;AA5BD,WAAY,YAAY;IACtB,uCAAuB,CAAA;IACvB,mCAAmB,CAAA;IACnB,yCAAyB,CAAA;IACzB,qCAAqB,CAAA;IACrB,+BAAe,CAAA;IACf,+CAA+B,CAAA;IAC/B,qCAAqB,CAAA;IACrB,+BAAe,CAAA;IACf,uCAAuB,CAAA;IACvB,uCAAuB,CAAA;IACvB,iCAAiB,CAAA;IACjB,mCAAmB,CAAA;IACnB,uCAAuB,CAAA;IACvB,qCAAqB,CAAA;IACrB,6CAA6B,CAAA;IAC7B,+BAAe,CAAA;IACf,uCAAuB,CAAA;IACvB,qCAAqB,CAAA;IACrB,2BAAW,CAAA;IACX,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;IACrB,iCAAiB,CAAA;IACjB,yCAAyB,CAAA;IACzB,2CAA2B,CAAA;IAC3B,qCAAqB,CAAA;IACrB,mCAAmB,CAAA;AACrB,CAAC,EA5BW,YAAY,aAAZ,YAAY,GAAZ,YAAY,QA4BvB;AAED;;;GAGG;AACH,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC3B,2CAAsB,CAAA;IACtB,kCAAa,CAAA;AACf,CAAC,EAHW,iBAAiB,aAAjB,iBAAiB,GAAjB,iBAAiB,QAG5B;AAED;;;;;;GAMG;AACU,QAAA,gBAAgB,GAAG,kBAAkB,CAAC;AAEnD;;;;GAIG;AACH,gCAAuC,GAAuB;IAC5D,OAAO,GAAG,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,SAAS,CAAC;AAC9D,CAAC;AAED,MAAM,yBAAyB,GAAG,IAAI,GAAG,CACvC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAC1E,CAAC;AAEF,MAAM,6BAA6B,GAAG,IAAI,GAAG,CAC3C,MAAM,CAAC,OAAO,CAAC;IACb,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,0BAA0B;IACzD,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,4BAA4B;CACtD,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,WAAW,CAAC,CAAC,CACnE,CAAC;AAEF;;;;GAIG;AACH,qCAA4C,GAAuB;IACjE,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,yBAAyB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AACjE,CAAC;AAED;;;GAGG;AACH,oCAA2C,GAAuB;IAChE,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,6BAA6B,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AACrE,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
1
2
|
/**
|
|
2
3
|
* Checks if the specified 10 digit NPI is valid as per ISO standard mod 10 Luhn algorithm.
|
|
3
4
|
*
|
|
@@ -7,4 +8,6 @@
|
|
|
7
8
|
* @returns true if valid; false otherwise.
|
|
8
9
|
*/
|
|
9
10
|
export declare function validateNPI(npi: string): boolean;
|
|
11
|
+
export declare const validNpiSchema: z.ZodEffects<z.ZodString, string, string>;
|
|
12
|
+
export type Npi = z.infer<typeof validNpiSchema>;
|
|
10
13
|
//# sourceMappingURL=validate-npi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-npi.d.ts","sourceRoot":"","sources":["../../src/common/validate-npi.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAiChD"}
|
|
1
|
+
{"version":3,"file":"validate-npi.d.ts","sourceRoot":"","sources":["../../src/common/validate-npi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAiChD;AAED,eAAO,MAAM,cAAc,2CAGwC,CAAC;AAEpE,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validNpiSchema = void 0;
|
|
3
4
|
exports.validateNPI = validateNPI;
|
|
5
|
+
const zod_1 = require("zod");
|
|
4
6
|
/**
|
|
5
7
|
* Checks if the specified 10 digit NPI is valid as per ISO standard mod 10 Luhn algorithm.
|
|
6
8
|
*
|
|
@@ -37,4 +39,8 @@ function validateNPI(npi) {
|
|
|
37
39
|
const lastNPIDigit = parseInt(npi.charAt(npi.length - 1), 10);
|
|
38
40
|
return checkDigit === lastNPIDigit;
|
|
39
41
|
}
|
|
42
|
+
exports.validNpiSchema = zod_1.z
|
|
43
|
+
.string()
|
|
44
|
+
.length(10)
|
|
45
|
+
.refine(npi => validateNPI(npi), { message: "NPI is not valid" });
|
|
40
46
|
//# sourceMappingURL=validate-npi.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-npi.js","sourceRoot":"","sources":["../../src/common/validate-npi.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validate-npi.js","sourceRoot":"","sources":["../../src/common/validate-npi.ts"],"names":[],"mappings":";;;;AAAA,6BAAwB;AAExB;;;;;;;GAOG;AACH,qBAA4B,GAAW;IACrC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClD,IAAI,aAAa,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;QAC/C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,YAAY,GAAG,IAAI,CAAC;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,IAAI,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAExC,IAAI,YAAY,EAAE,CAAC;YACjB,KAAK,IAAI,CAAC,CAAC;YACX,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACd,KAAK,IAAI,CAAC,CAAC;YACb,CAAC;QACH,CAAC;QAED,GAAG,IAAI,KAAK,CAAC;QACb,YAAY,GAAG,CAAC,YAAY,CAAC;IAC/B,CAAC;IAED,yBAAyB;IACzB,GAAG,IAAI,EAAE,CAAC;IAEV,MAAM,gBAAgB,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;IACzC,MAAM,UAAU,GAAG,gBAAgB,GAAG,EAAE,CAAC;IAEzC,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9D,OAAO,UAAU,KAAK,YAAY,CAAC;AACrC,CAAC;AAEY,QAAA,cAAc,GAAG,OAAC;KAC5B,MAAM,EAAE;KACR,MAAM,CAAC,EAAE,CAAC;KACV,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/cq-streaming/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./link-event"), exports);
|
|
18
|
+
__exportStar(require("./status-event"), exports);
|
|
19
|
+
__exportStar(require("./types"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/cq-streaming/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,iDAA+B;AAC/B,0CAAwB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const CqStreamingLinkEventType: {
|
|
3
|
+
readonly validLink: "ValidLink";
|
|
4
|
+
readonly invalidLink: "InvalidLink";
|
|
5
|
+
};
|
|
6
|
+
export type CqStreamingLinkStatus = "valid" | "invalid";
|
|
7
|
+
export type CqStreamingLinkEventType = (typeof CqStreamingLinkEventType)[keyof typeof CqStreamingLinkEventType];
|
|
8
|
+
export declare const cqStreamingLinkEventTypeSchema: z.ZodEnum<["ValidLink", "InvalidLink"]>;
|
|
9
|
+
export declare function getEventTypeFromLinkStatus(status: CqStreamingLinkStatus): CqStreamingLinkEventType;
|
|
10
|
+
//# sourceMappingURL=link-event.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link-event.d.ts","sourceRoot":"","sources":["../../../src/domain/cq-streaming/link-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,wBAAwB;aACnC,SAAS,EAAE,WAAW;aACtB,WAAW,EAAE,aAAa;CAClB,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,SAAS,CAAC;AAExD,MAAM,MAAM,wBAAwB,GAClC,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,OAAO,wBAAwB,CAAC,CAAC;AAE3E,eAAO,MAAM,8BAA8B,yCAGzC,CAAC;AAOH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,qBAAqB,GAC5B,wBAAwB,CAE1B"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cqStreamingLinkEventTypeSchema = exports.CqStreamingLinkEventType = void 0;
|
|
4
|
+
exports.getEventTypeFromLinkStatus = getEventTypeFromLinkStatus;
|
|
5
|
+
const zod_1 = require("zod");
|
|
6
|
+
exports.CqStreamingLinkEventType = {
|
|
7
|
+
validLink: "ValidLink",
|
|
8
|
+
invalidLink: "InvalidLink",
|
|
9
|
+
};
|
|
10
|
+
exports.cqStreamingLinkEventTypeSchema = zod_1.z.enum([
|
|
11
|
+
exports.CqStreamingLinkEventType.validLink,
|
|
12
|
+
exports.CqStreamingLinkEventType.invalidLink,
|
|
13
|
+
]);
|
|
14
|
+
const linkStatusToEventType = {
|
|
15
|
+
valid: exports.CqStreamingLinkEventType.validLink,
|
|
16
|
+
invalid: exports.CqStreamingLinkEventType.invalidLink,
|
|
17
|
+
};
|
|
18
|
+
function getEventTypeFromLinkStatus(status) {
|
|
19
|
+
return linkStatusToEventType[status];
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=link-event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link-event.js","sourceRoot":"","sources":["../../../src/domain/cq-streaming/link-event.ts"],"names":[],"mappings":";;;;AAAA,6BAAwB;AAEX,QAAA,wBAAwB,GAAG;IACtC,SAAS,EAAE,WAAW;IACtB,WAAW,EAAE,aAAa;CAClB,CAAC;AAOE,QAAA,8BAA8B,GAAG,OAAC,CAAC,IAAI,CAAC;IACnD,QAAA,wBAAwB,CAAC,SAAS;IAClC,QAAA,wBAAwB,CAAC,WAAW;CACrC,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAA4D;IACrF,KAAK,EAAE,QAAA,wBAAwB,CAAC,SAAS;IACzC,OAAO,EAAE,QAAA,wBAAwB,CAAC,WAAW;CAC9C,CAAC;AAEF,oCACE,MAA6B;IAE7B,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const CqStreamingStatusEventType: {
|
|
3
|
+
readonly firstDataReady: "cq-streaming-first-data-ready";
|
|
4
|
+
readonly completed: "cq-streaming-completed";
|
|
5
|
+
readonly skipped: "cq-streaming-skipped";
|
|
6
|
+
readonly failed: "cq-streaming-failed";
|
|
7
|
+
};
|
|
8
|
+
export type CqStreamingStatusEventType = (typeof CqStreamingStatusEventType)[keyof typeof CqStreamingStatusEventType];
|
|
9
|
+
export declare const cqStreamingStatusEventTypeSchema: z.ZodNativeEnum<{
|
|
10
|
+
readonly firstDataReady: "cq-streaming-first-data-ready";
|
|
11
|
+
readonly completed: "cq-streaming-completed";
|
|
12
|
+
readonly skipped: "cq-streaming-skipped";
|
|
13
|
+
readonly failed: "cq-streaming-failed";
|
|
14
|
+
}>;
|
|
15
|
+
export declare const cqStreamingStatusSnsSchemaVersion: 1;
|
|
16
|
+
export type CqStreamingStatusSnsEvent = {
|
|
17
|
+
eventType: CqStreamingStatusEventType;
|
|
18
|
+
schemaVersion: typeof cqStreamingStatusSnsSchemaVersion;
|
|
19
|
+
cxId: string;
|
|
20
|
+
patientId: string;
|
|
21
|
+
requestId: string;
|
|
22
|
+
durationInMs?: number | undefined;
|
|
23
|
+
numberOfDocuments?: number | undefined;
|
|
24
|
+
numberOfValidLinks?: number | undefined;
|
|
25
|
+
facilityId?: string | undefined;
|
|
26
|
+
};
|
|
27
|
+
export declare const cqStreamingStatusSnsEventSchema: z.ZodType<CqStreamingStatusSnsEvent>;
|
|
28
|
+
export declare function isCompletedEventType(event?: CqStreamingStatusEventType | undefined): boolean;
|
|
29
|
+
export declare function isFirstDataEvent(event?: CqStreamingStatusEventType | undefined): boolean;
|
|
30
|
+
//# sourceMappingURL=status-event.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-event.d.ts","sourceRoot":"","sources":["../../../src/domain/cq-streaming/status-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,0BAA0B;aACrC,cAAc,EAAE,+BAA+B;aAC/C,SAAS,EAAE,wBAAwB;aACnC,OAAO,EAAE,sBAAsB;aAC/B,MAAM,EAAE,qBAAqB;CACrB,CAAC;AAEX,MAAM,MAAM,0BAA0B,GACpC,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,OAAO,0BAA0B,CAAC,CAAC;AAE/E,eAAO,MAAM,gCAAgC;6BAT3B,+BAA+B;wBACpC,wBAAwB;sBAC1B,sBAAsB;qBACvB,qBAAqB;EAMyD,CAAC;AAEzF,eAAO,MAAM,iCAAiC,EAAG,CAAU,CAAC;AAE5D,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,EAAE,0BAA0B,CAAC;IACtC,aAAa,EAAE,OAAO,iCAAiC,CAAC;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAU/E,CAAC;AAEH,wBAAgB,oBAAoB,CAAC,KAAK,CAAC,EAAE,0BAA0B,GAAG,SAAS,GAAG,OAAO,CAE5F;AAED,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,EAAE,0BAA0B,GAAG,SAAS,GAAG,OAAO,CAExF"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cqStreamingStatusSnsEventSchema = exports.cqStreamingStatusSnsSchemaVersion = exports.cqStreamingStatusEventTypeSchema = exports.CqStreamingStatusEventType = void 0;
|
|
4
|
+
exports.isCompletedEventType = isCompletedEventType;
|
|
5
|
+
exports.isFirstDataEvent = isFirstDataEvent;
|
|
6
|
+
const zod_1 = require("zod");
|
|
7
|
+
exports.CqStreamingStatusEventType = {
|
|
8
|
+
firstDataReady: "cq-streaming-first-data-ready",
|
|
9
|
+
completed: "cq-streaming-completed",
|
|
10
|
+
skipped: "cq-streaming-skipped",
|
|
11
|
+
failed: "cq-streaming-failed",
|
|
12
|
+
};
|
|
13
|
+
exports.cqStreamingStatusEventTypeSchema = zod_1.z.nativeEnum(exports.CqStreamingStatusEventType);
|
|
14
|
+
exports.cqStreamingStatusSnsSchemaVersion = 1;
|
|
15
|
+
exports.cqStreamingStatusSnsEventSchema = zod_1.z.object({
|
|
16
|
+
eventType: exports.cqStreamingStatusEventTypeSchema,
|
|
17
|
+
schemaVersion: zod_1.z.literal(exports.cqStreamingStatusSnsSchemaVersion),
|
|
18
|
+
cxId: zod_1.z.string().uuid(),
|
|
19
|
+
patientId: zod_1.z.string().uuid(),
|
|
20
|
+
requestId: zod_1.z.string().min(1),
|
|
21
|
+
durationInMs: zod_1.z.number(),
|
|
22
|
+
numberOfDocuments: zod_1.z.number().optional(),
|
|
23
|
+
numberOfValidLinks: zod_1.z.number().optional(),
|
|
24
|
+
facilityId: zod_1.z.string().uuid().optional(),
|
|
25
|
+
});
|
|
26
|
+
function isCompletedEventType(event) {
|
|
27
|
+
return !!event && event === exports.CqStreamingStatusEventType.completed;
|
|
28
|
+
}
|
|
29
|
+
function isFirstDataEvent(event) {
|
|
30
|
+
return !!event && event === exports.CqStreamingStatusEventType.firstDataReady;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=status-event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-event.js","sourceRoot":"","sources":["../../../src/domain/cq-streaming/status-event.ts"],"names":[],"mappings":";;;;;AAAA,6BAAwB;AAEX,QAAA,0BAA0B,GAAG;IACxC,cAAc,EAAE,+BAA+B;IAC/C,SAAS,EAAE,wBAAwB;IACnC,OAAO,EAAE,sBAAsB;IAC/B,MAAM,EAAE,qBAAqB;CACrB,CAAC;AAKE,QAAA,gCAAgC,GAAG,OAAC,CAAC,UAAU,CAAC,QAAA,0BAA0B,CAAC,CAAC;AAE5E,QAAA,iCAAiC,GAAG,CAAU,CAAC;AAc/C,QAAA,+BAA+B,GAAyC,OAAC,CAAC,MAAM,CAAC;IAC5F,SAAS,EAAE,QAAA,gCAAgC;IAC3C,aAAa,EAAE,OAAC,CAAC,OAAO,CAAC,QAAA,iCAAiC,CAAC;IAC3D,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IACvB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC5B,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE;IACxB,iBAAiB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC,kBAAkB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzC,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC;AAEH,8BAAqC,KAA8C;IACjF,OAAO,CAAC,CAAC,KAAK,IAAI,KAAK,KAAK,QAAA,0BAA0B,CAAC,SAAS,CAAC;AACnE,CAAC;AAED,0BAAiC,KAA8C;IAC7E,OAAO,CAAC,CAAC,KAAK,IAAI,KAAK,KAAK,QAAA,0BAA0B,CAAC,cAAc,CAAC;AACxE,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { NetworkQueryRequestingSources } from "../network-query/source";
|
|
2
|
+
export declare const CqStreamingAcceptedSources: {
|
|
3
|
+
readonly PatientCreate: NetworkQueryRequestingSources.PatientCreate;
|
|
4
|
+
readonly PatientUpdate: NetworkQueryRequestingSources.PatientUpdate;
|
|
5
|
+
readonly AdhocQuery: NetworkQueryRequestingSources.AdhocQuery;
|
|
6
|
+
readonly CqStreamingDemoAug: "cq-streaming-demo-aug";
|
|
7
|
+
};
|
|
8
|
+
export type CqStreamingAcceptedSources = (typeof CqStreamingAcceptedSources)[keyof typeof CqStreamingAcceptedSources];
|
|
9
|
+
export declare function isDemoAugRun(source: CqStreamingAcceptedSources | undefined): boolean;
|
|
10
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/domain/cq-streaming/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAExE,eAAO,MAAM,0BAA0B;;;;iCAEjB,uBAAuB;CACnC,CAAC;AAEX,MAAM,MAAM,0BAA0B,GACpC,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,OAAO,0BAA0B,CAAC,CAAC;AAE/E,wBAAgB,YAAY,CAAC,MAAM,EAAE,0BAA0B,GAAG,SAAS,GAAG,OAAO,CAGpF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CqStreamingAcceptedSources = void 0;
|
|
4
|
+
exports.isDemoAugRun = isDemoAugRun;
|
|
5
|
+
const source_1 = require("../network-query/source");
|
|
6
|
+
exports.CqStreamingAcceptedSources = {
|
|
7
|
+
...source_1.NetworkQueryRequestingSources,
|
|
8
|
+
CqStreamingDemoAug: "cq-streaming-demo-aug",
|
|
9
|
+
};
|
|
10
|
+
function isDemoAugRun(source) {
|
|
11
|
+
if (source && source === exports.CqStreamingAcceptedSources.CqStreamingDemoAug)
|
|
12
|
+
return true;
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/domain/cq-streaming/types.ts"],"names":[],"mappings":";;;;AAAA,oDAAwE;AAE3D,QAAA,0BAA0B,GAAG;IACxC,GAAG,sCAA6B;IAChC,kBAAkB,EAAE,uBAAuB;CACnC,CAAC;AAKX,sBAA6B,MAA8C;IACzE,IAAI,MAAM,IAAI,MAAM,KAAK,QAAA,0BAA0B,CAAC,kBAAkB;QAAE,OAAO,IAAI,CAAC;IACpF,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message.test.d.ts","sourceRoot":"","sources":["../../../../src/domain/message/__tests__/message.test.ts"],"names":[],"mappings":""}
|