ndhm-hrp 3.0.19 → 3.1.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/lib/classes/consent-flow.d.ts +20 -8
- package/lib/classes/consent-flow.d.ts.map +1 -1
- package/lib/classes/consent-flow.js +30 -19
- package/lib/classes/consent-flow.js.map +1 -1
- package/lib/classes/data-flow.d.ts +20 -8
- package/lib/classes/data-flow.d.ts.map +1 -1
- package/lib/classes/data-flow.js +29 -18
- package/lib/classes/data-flow.js.map +1 -1
- package/lib/classes/health-information.d.ts +27 -5
- package/lib/classes/health-information.d.ts.map +1 -1
- package/lib/classes/health-information.js +35 -14
- package/lib/classes/health-information.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,18 +2,30 @@ import Header from "./header";
|
|
|
2
2
|
export default class ConsentFlow extends Header {
|
|
3
3
|
constructor(_baseUrl: string, _accessToken: string);
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
5
|
+
* V3: HIP acknowledges consent notification from CM.
|
|
6
|
+
* Called in response to the CM callback POST {cb}/api/v3/consent/request/hip/notify.
|
|
7
|
+
*
|
|
8
|
+
* Endpoint: POST /api/hiecm/consent/v3/request/hip/on-notify
|
|
9
|
+
* Per ABDM M2 Sandbox Documentation v2.8, Section 6.3.2
|
|
10
|
+
*
|
|
11
|
+
* @param config.healthId - ABHA address used to derive X-CM-ID
|
|
12
|
+
* @param config.consentId - Consent ID from the notify callback
|
|
13
|
+
* @param config.callbackRequestId - The requestId from the HIE-CM callback, echoed in response.requestId
|
|
14
|
+
* @param config.requestId - Optional UUID for REQUEST-ID header
|
|
15
|
+
* @param config.timestamp - Optional ISO timestamp for TIMESTAMP header
|
|
16
|
+
* @param config.error - Optional error object { code, message }
|
|
17
|
+
* @returns The request body that was sent
|
|
10
18
|
*/
|
|
11
19
|
onhipNotify: (config: {
|
|
12
20
|
healthId: string;
|
|
13
21
|
consentId: string;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
22
|
+
callbackRequestId: string;
|
|
23
|
+
requestId?: string;
|
|
24
|
+
timestamp?: string;
|
|
25
|
+
error?: {
|
|
26
|
+
code: string;
|
|
27
|
+
message: string;
|
|
28
|
+
};
|
|
17
29
|
}) => Promise<any>;
|
|
18
30
|
/**
|
|
19
31
|
* This API send fectch request from HIU after patient has and granted this is called by hiu/noitfy callback from gateway
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consent-flow.d.ts","sourceRoot":"","sources":["../../src/classes/consent-flow.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAC;AAI9B,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,MAAM;gBACjC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAGlD
|
|
1
|
+
{"version":3,"file":"consent-flow.d.ts","sourceRoot":"","sources":["../../src/classes/consent-flow.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAC;AAI9B,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,MAAM;gBACjC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAGlD;;;;;;;;;;;;;;OAcG;IACH,WAAW,WAAkB;QAC3B,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE;YACN,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;KACH,kBAqCC;IAEJ;;;;OAIG;IACD,eAAe,WAAkB;QAC/B,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,kBAgCC;IAGF,WAAW,WAAkB;QAC3B,QAAQ,EAAE,MAAM,CAAC;QACjB,eAAe,EAAO;YACpB,QAAQ,EAAE,IAAI,GAAG,SAAS,CAAC;YAC3B,WAAW,EAAE,MAAM,CAAA;SACpB,EAAE,CAAC;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,kBAmCC;CAOH"}
|
|
@@ -19,38 +19,49 @@ class ConsentFlow extends header_1.default {
|
|
|
19
19
|
constructor(_baseUrl, _accessToken) {
|
|
20
20
|
super(_baseUrl, _accessToken);
|
|
21
21
|
/**
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
22
|
+
* V3: HIP acknowledges consent notification from CM.
|
|
23
|
+
* Called in response to the CM callback POST {cb}/api/v3/consent/request/hip/notify.
|
|
24
|
+
*
|
|
25
|
+
* Endpoint: POST /api/hiecm/consent/v3/request/hip/on-notify
|
|
26
|
+
* Per ABDM M2 Sandbox Documentation v2.8, Section 6.3.2
|
|
27
|
+
*
|
|
28
|
+
* @param config.healthId - ABHA address used to derive X-CM-ID
|
|
29
|
+
* @param config.consentId - Consent ID from the notify callback
|
|
30
|
+
* @param config.callbackRequestId - The requestId from the HIE-CM callback, echoed in response.requestId
|
|
31
|
+
* @param config.requestId - Optional UUID for REQUEST-ID header
|
|
32
|
+
* @param config.timestamp - Optional ISO timestamp for TIMESTAMP header
|
|
33
|
+
* @param config.error - Optional error object { code, message }
|
|
34
|
+
* @returns The request body that was sent
|
|
27
35
|
*/
|
|
28
36
|
this.onhipNotify = (config) => __awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
var _a, _b;
|
|
29
38
|
try {
|
|
30
|
-
|
|
31
|
-
const
|
|
39
|
+
this.setXCmId(config.healthId);
|
|
40
|
+
const headers = {
|
|
41
|
+
"REQUEST-ID": (_a = config.requestId) !== null && _a !== void 0 ? _a : (0, uuid_1.v4)(),
|
|
42
|
+
TIMESTAMP: (_b = config.timestamp) !== null && _b !== void 0 ? _b : new Date().toISOString(),
|
|
43
|
+
"X-CM-ID": this.xCmId,
|
|
44
|
+
"Content-Type": "application/json",
|
|
45
|
+
Authorization: `Bearer ${this.accessToken}`,
|
|
46
|
+
};
|
|
47
|
+
const url = `${this.baseUrl}/api/hiecm/consent/v3/request/hip/on-notify`;
|
|
32
48
|
const body = {
|
|
33
|
-
requestId: (0, uuid_1.v4)(),
|
|
34
|
-
timestamp: new Date().toISOString(),
|
|
35
49
|
acknowledgement: {
|
|
36
|
-
status: "OK",
|
|
50
|
+
status: config.error ? "ERROR" : "OK",
|
|
37
51
|
consentId: config.consentId,
|
|
38
52
|
},
|
|
39
|
-
|
|
40
|
-
requestId: config.
|
|
53
|
+
response: {
|
|
54
|
+
requestId: config.callbackRequestId,
|
|
41
55
|
},
|
|
42
56
|
};
|
|
43
|
-
if (config.
|
|
44
|
-
body.error =
|
|
45
|
-
code: config.errCode,
|
|
46
|
-
message: config.errMessage || "Error occured",
|
|
47
|
-
};
|
|
57
|
+
if (config.error) {
|
|
58
|
+
body.error = config.error;
|
|
48
59
|
}
|
|
49
60
|
const res = yield new request_1.default().request({
|
|
50
|
-
headers
|
|
61
|
+
headers,
|
|
51
62
|
method: "POST",
|
|
52
63
|
requestBody: body,
|
|
53
|
-
url
|
|
64
|
+
url,
|
|
54
65
|
});
|
|
55
66
|
return body;
|
|
56
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consent-flow.js","sourceRoot":"","sources":["../../src/classes/consent-flow.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,sDAA8B;AAC9B,+BAAoC;AACpC,wDAAgC;AAEhC,MAAqB,WAAY,SAAQ,gBAAM;IAC7C,YAAY,QAAgB,EAAE,YAAoB;QAChD,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAEhC
|
|
1
|
+
{"version":3,"file":"consent-flow.js","sourceRoot":"","sources":["../../src/classes/consent-flow.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,18 +2,30 @@ import Header from "./header";
|
|
|
2
2
|
export default class DataFlow extends Header {
|
|
3
3
|
constructor(_baseUrl: string, _accessToken: string);
|
|
4
4
|
/**
|
|
5
|
-
* API called by HIP to acknowledge Health
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
5
|
+
* V3: API called by HIP to acknowledge Health Information request receipt.
|
|
6
|
+
* Called in response to CM callback POST {cb}/api/v3/hip/health-information/request.
|
|
7
|
+
*
|
|
8
|
+
* Endpoint: POST /api/hiecm/data-flow/v3/health-information/hip/on-request
|
|
9
|
+
* Per ABDM M2 Sandbox Documentation v2.8, Section 6.3.4
|
|
10
|
+
*
|
|
11
|
+
* @param config.healthId - ABHA address used to derive X-CM-ID
|
|
12
|
+
* @param config.transactionId - Transaction ID from the HI request callback
|
|
13
|
+
* @param config.callbackRequestId - The requestId from the HIE-CM callback, echoed in response.requestId
|
|
14
|
+
* @param config.requestId - Optional UUID for REQUEST-ID header
|
|
15
|
+
* @param config.timestamp - Optional ISO timestamp for TIMESTAMP header
|
|
16
|
+
* @param config.error - Optional error object { code, message }
|
|
17
|
+
* @returns The request body that was sent
|
|
10
18
|
*/
|
|
11
19
|
onhipRequest: (config: {
|
|
12
20
|
healthId: string;
|
|
13
21
|
transactionId: string;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
22
|
+
callbackRequestId: string;
|
|
23
|
+
requestId?: string;
|
|
24
|
+
timestamp?: string;
|
|
25
|
+
error?: {
|
|
26
|
+
code: string;
|
|
27
|
+
message: string;
|
|
28
|
+
};
|
|
17
29
|
}) => Promise<any>;
|
|
18
30
|
}
|
|
19
31
|
//# sourceMappingURL=data-flow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-flow.d.ts","sourceRoot":"","sources":["../../src/classes/data-flow.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAC;AAK9B,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,MAAM;gBAC9B,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAGlD
|
|
1
|
+
{"version":3,"file":"data-flow.d.ts","sourceRoot":"","sources":["../../src/classes/data-flow.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAC;AAK9B,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,MAAM;gBAC9B,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAGlD;;;;;;;;;;;;;;OAcG;IACH,YAAY,WAAkB;QAC5B,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE;YACN,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;KACH,kBAqCC;CA2FH"}
|
package/lib/classes/data-flow.js
CHANGED
|
@@ -19,38 +19,49 @@ class DataFlow extends header_1.default {
|
|
|
19
19
|
constructor(_baseUrl, _accessToken) {
|
|
20
20
|
super(_baseUrl, _accessToken);
|
|
21
21
|
/**
|
|
22
|
-
* API called by HIP to acknowledge Health
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
22
|
+
* V3: API called by HIP to acknowledge Health Information request receipt.
|
|
23
|
+
* Called in response to CM callback POST {cb}/api/v3/hip/health-information/request.
|
|
24
|
+
*
|
|
25
|
+
* Endpoint: POST /api/hiecm/data-flow/v3/health-information/hip/on-request
|
|
26
|
+
* Per ABDM M2 Sandbox Documentation v2.8, Section 6.3.4
|
|
27
|
+
*
|
|
28
|
+
* @param config.healthId - ABHA address used to derive X-CM-ID
|
|
29
|
+
* @param config.transactionId - Transaction ID from the HI request callback
|
|
30
|
+
* @param config.callbackRequestId - The requestId from the HIE-CM callback, echoed in response.requestId
|
|
31
|
+
* @param config.requestId - Optional UUID for REQUEST-ID header
|
|
32
|
+
* @param config.timestamp - Optional ISO timestamp for TIMESTAMP header
|
|
33
|
+
* @param config.error - Optional error object { code, message }
|
|
34
|
+
* @returns The request body that was sent
|
|
27
35
|
*/
|
|
28
36
|
this.onhipRequest = (config) => __awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
var _a, _b;
|
|
29
38
|
try {
|
|
30
|
-
|
|
31
|
-
const
|
|
39
|
+
this.setXCmId(config.healthId);
|
|
40
|
+
const headers = {
|
|
41
|
+
"REQUEST-ID": (_a = config.requestId) !== null && _a !== void 0 ? _a : (0, uuid_1.v4)(),
|
|
42
|
+
TIMESTAMP: (_b = config.timestamp) !== null && _b !== void 0 ? _b : new Date().toISOString(),
|
|
43
|
+
"X-CM-ID": this.xCmId,
|
|
44
|
+
"Content-Type": "application/json",
|
|
45
|
+
Authorization: `Bearer ${this.accessToken}`,
|
|
46
|
+
};
|
|
47
|
+
const url = `${this.baseUrl}/api/hiecm/data-flow/v3/health-information/hip/on-request`;
|
|
32
48
|
const body = {
|
|
33
|
-
requestId: (0, uuid_1.v4)(),
|
|
34
|
-
timestamp: new Date().toISOString(),
|
|
35
49
|
hiRequest: {
|
|
36
50
|
transactionId: config.transactionId,
|
|
37
51
|
sessionStatus: "ACKNOWLEDGED",
|
|
38
52
|
},
|
|
39
|
-
|
|
40
|
-
requestId: config.
|
|
53
|
+
response: {
|
|
54
|
+
requestId: config.callbackRequestId,
|
|
41
55
|
},
|
|
42
56
|
};
|
|
43
|
-
if (config.
|
|
44
|
-
body.error =
|
|
45
|
-
code: config.errCode,
|
|
46
|
-
message: config.errMessage || "Error occured",
|
|
47
|
-
};
|
|
57
|
+
if (config.error) {
|
|
58
|
+
body.error = config.error;
|
|
48
59
|
}
|
|
49
60
|
const res = yield new request_1.default().request({
|
|
50
|
-
headers
|
|
61
|
+
headers,
|
|
51
62
|
method: "POST",
|
|
52
63
|
requestBody: body,
|
|
53
|
-
url
|
|
64
|
+
url,
|
|
54
65
|
});
|
|
55
66
|
return body;
|
|
56
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-flow.js","sourceRoot":"","sources":["../../src/classes/data-flow.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,sDAA8B;AAC9B,+BAAoC;AACpC,wDAAgC;AAGhC,MAAqB,QAAS,SAAQ,gBAAM;IAC1C,YAAY,QAAgB,EAAE,YAAoB;QAChD,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAEhC
|
|
1
|
+
{"version":3,"file":"data-flow.js","sourceRoot":"","sources":["../../src/classes/data-flow.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,sDAA8B;AAC9B,+BAAoC;AACpC,wDAAgC;AAGhC,MAAqB,QAAS,SAAQ,gBAAM;IAC1C,YAAY,QAAgB,EAAE,YAAoB;QAChD,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAEhC;;;;;;;;;;;;;;WAcG;QACH,iBAAY,GAAG,CAAO,MAUrB,EAAE,EAAE;;YACH,IAAI;gBACF,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC/B,MAAM,OAAO,GAAG;oBACd,YAAY,EAAE,MAAA,MAAM,CAAC,SAAS,mCAAI,IAAA,SAAM,GAAE;oBAC1C,SAAS,EAAE,MAAA,MAAM,CAAC,SAAS,mCAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACvD,SAAS,EAAE,IAAI,CAAC,KAAK;oBACrB,cAAc,EAAE,kBAAkB;oBAClC,aAAa,EAAE,UAAU,IAAI,CAAC,WAAW,EAAE;iBAC5C,CAAC;gBACF,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,2DAA2D,CAAC;gBAEvF,MAAM,IAAI,GAAQ;oBAChB,SAAS,EAAE;wBACT,aAAa,EAAE,MAAM,CAAC,aAAa;wBACnC,aAAa,EAAE,cAAc;qBAC9B;oBACD,QAAQ,EAAE;wBACR,SAAS,EAAE,MAAM,CAAC,iBAAiB;qBACpC;iBACF,CAAC;gBAEF,IAAI,MAAM,CAAC,KAAK,EAAE;oBAChB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;iBAC3B;gBAED,MAAM,GAAG,GAAG,MAAM,IAAI,iBAAO,EAAE,CAAC,OAAO,CAAC;oBACtC,OAAO;oBACP,MAAM,EAAE,MAAM;oBACd,WAAW,EAAE,IAAI;oBACjB,GAAG;iBACJ,CAAC,CAAC;gBAEH,OAAO,IAAI,CAAC;aACb;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aACpB;QACH,CAAC,CAAA,CAAC;IA/DF,CAAC;CA0JF;AA7JD,2BA6JC"}
|
|
@@ -7,9 +7,27 @@ export interface STATUS_RESPONSES_HEALTH_INFORMATION_NOTIFY {
|
|
|
7
7
|
export default class HealthInformation extends Header {
|
|
8
8
|
constructor(_baseUrl: string, _accessToken: string);
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
10
|
+
* V3: HIP notifies CM of data transfer status after pushing encrypted data to HIU.
|
|
11
|
+
* HIU notifies CM after receiving data.
|
|
12
|
+
*
|
|
13
|
+
* Endpoint: POST /api/hiecm/data-flow/v3/health-information/notify
|
|
14
|
+
* Per ABDM M2 Sandbox Documentation v2.8, Section 6.3.6
|
|
15
|
+
*
|
|
16
|
+
* HIP sends: sessionStatus = TRANSFERRED | FAILED, hiStatus = DELIVERED | ERRORED
|
|
17
|
+
* HIU sends: sessionStatus = RECEIVED | FAILED, hiStatus = OK | ERRORED
|
|
18
|
+
*
|
|
19
|
+
* @param config.healthId - ABHA address used to derive X-CM-ID
|
|
20
|
+
* @param config.consentId - Consent ID
|
|
21
|
+
* @param config.transactionId - Transaction ID from the HI request callback
|
|
22
|
+
* @param config.notifer - "HIP" or "HIU"
|
|
23
|
+
* @param config.notifierId - ID of notifier
|
|
24
|
+
* @param config.hipId - HIP facility ID
|
|
25
|
+
* @param config.sessionStatus - "TRANSFERRED" | "FAILED" for HIP, "RECEIVED" | "FAILED" for HIU
|
|
26
|
+
* @param config.statusResponses - Array of per-care-context statuses
|
|
27
|
+
* @param config.requestId - Optional UUID for REQUEST-ID header
|
|
28
|
+
* @param config.timestamp - Optional ISO timestamp for TIMESTAMP header
|
|
29
|
+
* @param config.error - Optional error object { code, message }
|
|
30
|
+
* @returns The request body that was sent
|
|
13
31
|
*/
|
|
14
32
|
notify: (config: {
|
|
15
33
|
healthId: string;
|
|
@@ -19,9 +37,13 @@ export default class HealthInformation extends Header {
|
|
|
19
37
|
notifierId: string;
|
|
20
38
|
hipId: string;
|
|
21
39
|
sessionStatus: "TRANSFERRED" | "FAILED";
|
|
22
|
-
errCode?: string;
|
|
23
|
-
errMessage?: string;
|
|
24
40
|
statusResponses: STATUS_RESPONSES_HEALTH_INFORMATION_NOTIFY[];
|
|
41
|
+
requestId?: string;
|
|
42
|
+
timestamp?: string;
|
|
43
|
+
error?: {
|
|
44
|
+
code: string;
|
|
45
|
+
message: string;
|
|
46
|
+
};
|
|
25
47
|
}) => Promise<any>;
|
|
26
48
|
cmRequest: (config: {
|
|
27
49
|
healthId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health-information.d.ts","sourceRoot":"","sources":["../../src/classes/health-information.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAC;AAI9B,MAAM,WAAW,0CAA0C;IACzD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IACzC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,MAAM;gBACvC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAIlD
|
|
1
|
+
{"version":3,"file":"health-information.d.ts","sourceRoot":"","sources":["../../src/classes/health-information.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAC;AAI9B,MAAM,WAAW,0CAA0C;IACzD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IACzC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,MAAM;gBACvC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAIlD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM,WAAkB;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,OAAO,EAAE,KAAK,GAAG,KAAK,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,aAAa,GAAG,QAAQ,CAAC;QACxC,eAAe,EAAE,0CAA0C,EAAE,CAAC;QAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE;YACN,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;KACH,kBA4CC;IAEF,SAAS,WAAkB;QACzB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE;YACT,IAAI,EAAE,MAAM,CAAC;YACb,EAAE,EAAE,MAAM,CAAC;SACZ,CAAC;QACF,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,GAAG,CAAC;QACd,UAAU,CAAC,EAAE,GAAG,CAAC;KAClB,yCA6CC;CACH;AAGD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE;QACT,OAAO,EAAE;YACP,EAAE,EAAE,MAAM,CAAA;SACX,CAAA;QACD,SAAS,EAAE;YACT,EAAE,EAAE,MAAM,CAAA;YACV,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;QACD,WAAW,EAAE,MAAM,CAAA;QACnB,WAAW,EAAE;YACX,KAAK,EAAE,MAAM,CAAA;YACb,KAAK,EAAE,MAAM,CAAA;YACb,SAAS,EAAE,MAAM,CAAA;YACjB,WAAW,EAAE;gBACX,MAAM,EAAE,MAAM,CAAA;gBACd,QAAQ,EAAE,MAAM,CAAA;gBAChB,UAAU,EAAE,MAAM,CAAA;aACnB,CAAA;SACF,CAAA;QACD;;WAEG;QACH,UAAU,CAAC,EAAC,MAAM,CAAA;QAClB,aAAa,CAAC,EAAC,MAAM,CAAA;QACrB,MAAM,CAAC,EAAC,MAAM,CAAC;QACf,QAAQ,CAAC,EAAC,MAAM,CAAC;QACjB,MAAM,CAAC,EAAC,MAAM,CAAA;KACf,CAAA;IACD,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,GAAG,CAAC;QACV,OAAO,EAAE,GAAG,CAAA;KACb,CAAA;CACF"}
|
|
@@ -19,17 +19,41 @@ class HealthInformation extends header_1.default {
|
|
|
19
19
|
constructor(_baseUrl, _accessToken) {
|
|
20
20
|
super(_baseUrl, _accessToken);
|
|
21
21
|
/**
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
22
|
+
* V3: HIP notifies CM of data transfer status after pushing encrypted data to HIU.
|
|
23
|
+
* HIU notifies CM after receiving data.
|
|
24
|
+
*
|
|
25
|
+
* Endpoint: POST /api/hiecm/data-flow/v3/health-information/notify
|
|
26
|
+
* Per ABDM M2 Sandbox Documentation v2.8, Section 6.3.6
|
|
27
|
+
*
|
|
28
|
+
* HIP sends: sessionStatus = TRANSFERRED | FAILED, hiStatus = DELIVERED | ERRORED
|
|
29
|
+
* HIU sends: sessionStatus = RECEIVED | FAILED, hiStatus = OK | ERRORED
|
|
30
|
+
*
|
|
31
|
+
* @param config.healthId - ABHA address used to derive X-CM-ID
|
|
32
|
+
* @param config.consentId - Consent ID
|
|
33
|
+
* @param config.transactionId - Transaction ID from the HI request callback
|
|
34
|
+
* @param config.notifer - "HIP" or "HIU"
|
|
35
|
+
* @param config.notifierId - ID of notifier
|
|
36
|
+
* @param config.hipId - HIP facility ID
|
|
37
|
+
* @param config.sessionStatus - "TRANSFERRED" | "FAILED" for HIP, "RECEIVED" | "FAILED" for HIU
|
|
38
|
+
* @param config.statusResponses - Array of per-care-context statuses
|
|
39
|
+
* @param config.requestId - Optional UUID for REQUEST-ID header
|
|
40
|
+
* @param config.timestamp - Optional ISO timestamp for TIMESTAMP header
|
|
41
|
+
* @param config.error - Optional error object { code, message }
|
|
42
|
+
* @returns The request body that was sent
|
|
25
43
|
*/
|
|
26
44
|
this.notify = (config) => __awaiter(this, void 0, void 0, function* () {
|
|
45
|
+
var _a, _b;
|
|
27
46
|
try {
|
|
28
|
-
|
|
29
|
-
const
|
|
47
|
+
this.setXCmId(config.healthId);
|
|
48
|
+
const headers = {
|
|
49
|
+
"REQUEST-ID": (_a = config.requestId) !== null && _a !== void 0 ? _a : (0, uuid_1.v4)(),
|
|
50
|
+
TIMESTAMP: (_b = config.timestamp) !== null && _b !== void 0 ? _b : new Date().toISOString(),
|
|
51
|
+
"X-CM-ID": this.xCmId,
|
|
52
|
+
"Content-Type": "application/json",
|
|
53
|
+
Authorization: `Bearer ${this.accessToken}`,
|
|
54
|
+
};
|
|
55
|
+
const url = `${this.baseUrl}/api/hiecm/data-flow/v3/health-information/notify`;
|
|
30
56
|
const body = {
|
|
31
|
-
requestId: (0, uuid_1.v4)(),
|
|
32
|
-
timestamp: new Date().toISOString(),
|
|
33
57
|
notification: {
|
|
34
58
|
consentId: config.consentId,
|
|
35
59
|
transactionId: config.transactionId,
|
|
@@ -45,17 +69,14 @@ class HealthInformation extends header_1.default {
|
|
|
45
69
|
},
|
|
46
70
|
},
|
|
47
71
|
};
|
|
48
|
-
if (config.
|
|
49
|
-
body.error =
|
|
50
|
-
code: config.errCode,
|
|
51
|
-
message: config.errMessage || "Error occured",
|
|
52
|
-
};
|
|
72
|
+
if (config.error) {
|
|
73
|
+
body.error = config.error;
|
|
53
74
|
}
|
|
54
75
|
const res = yield new request_1.default().request({
|
|
55
|
-
headers
|
|
76
|
+
headers,
|
|
56
77
|
method: "POST",
|
|
57
78
|
requestBody: body,
|
|
58
|
-
url
|
|
79
|
+
url,
|
|
59
80
|
});
|
|
60
81
|
return body;
|
|
61
82
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health-information.js","sourceRoot":"","sources":["../../src/classes/health-information.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,sDAA8B;AAC9B,+BAAoC;AACpC,wDAAgC;AAQhC,MAAqB,iBAAkB,SAAQ,gBAAM;IACnD,YAAY,QAAgB,EAAE,YAAoB;QAChD,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAGhC
|
|
1
|
+
{"version":3,"file":"health-information.js","sourceRoot":"","sources":["../../src/classes/health-information.ts"],"names":[],"mappings":"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"}
|