ndhm-hrp 3.2.4 → 3.2.6

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.
@@ -28,9 +28,13 @@ export default class ConsentFlow extends Header {
28
28
  };
29
29
  }) => Promise<any>;
30
30
  /**
31
- * This API send fectch request from HIU after patient has and granted this is called by hiu/noitfy callback from gateway
32
- * @param config
33
- * @returns
31
+ * V3: HIU fetches consent artifact from CM.
32
+ * Called after HIU receives consent notification with consentArtefact IDs.
33
+ *
34
+ * Endpoint: POST /api/hiecm/consent/v3/fetch
35
+ *
36
+ * @param config.healthId - ABHA address used to derive X-CM-ID
37
+ * @param config.consentId - Consent artifact ID to fetch
34
38
  */
35
39
  hiuConsentFetch: (config: {
36
40
  healthId: string;
@@ -38,11 +42,17 @@ export default class ConsentFlow extends Header {
38
42
  errCode?: string;
39
43
  errMessage?: string;
40
44
  }) => Promise<any>;
45
+ /**
46
+ * V3: HIU responds to consent notification status from CM.
47
+ * Called when consent is DENIED/EXPIRED/REVOKED to update status.
48
+ *
49
+ * Endpoint: POST /api/hiecm/consent/v3/request/status
50
+ */
41
51
  onhiuNotify: (config: {
42
52
  healthId: string;
43
53
  acknowledgement: {
44
- "status": "OK" | "UNKNOWN";
45
- "consentId": string;
54
+ status: "OK" | "UNKNOWN";
55
+ consentId: string;
46
56
  }[];
47
57
  requestId: string;
48
58
  errCode?: string;
@@ -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;;;;;;;;;;;;;;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,kBAuCC;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"}
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,kBAuCC;IAEF;;;;;;;;OAQG;IACH,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,kBAkCC;IAGF;;;;;OAKG;IACH,WAAW,WAAkB;QAC3B,QAAQ,EAAE,MAAM,CAAC;QACjB,eAAe,EAAE;YACf,QAAQ,IAAI,GAAG,SAAS,CAAC;YACzB,SAAS,EAAE,MAAM,CAAC;SACnB,EAAE,CAAC;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,kBAqCC;CAOH"}
@@ -71,18 +71,27 @@ class ConsentFlow extends header_1.default {
71
71
  }
72
72
  });
73
73
  /**
74
- * This API send fectch request from HIU after patient has and granted this is called by hiu/noitfy callback from gateway
75
- * @param config
76
- * @returns
74
+ * V3: HIU fetches consent artifact from CM.
75
+ * Called after HIU receives consent notification with consentArtefact IDs.
76
+ *
77
+ * Endpoint: POST /api/hiecm/consent/v3/fetch
78
+ *
79
+ * @param config.healthId - ABHA address used to derive X-CM-ID
80
+ * @param config.consentId - Consent artifact ID to fetch
77
81
  */
78
82
  this.hiuConsentFetch = (config) => __awaiter(this, void 0, void 0, function* () {
79
83
  try {
80
- const headers = this.headers(config.healthId);
81
- const url = `${this.baseUrl}v0.5/consents/fetch`;
84
+ this.setXCmId(config.healthId);
85
+ const headers = {
86
+ "REQUEST-ID": (0, uuid_1.v4)(),
87
+ TIMESTAMP: new Date().toISOString(),
88
+ "X-CM-ID": this.xCmId,
89
+ "Content-Type": "application/json",
90
+ Authorization: `Bearer ${this.accessToken}`,
91
+ };
92
+ const url = `${this.baseUrl}/api/hiecm/consent/v3/fetch`;
82
93
  const body = {
83
- requestId: (0, uuid_1.v4)(),
84
- timestamp: new Date().toISOString(),
85
- "consentId": config.consentId
94
+ consentId: config.consentId,
86
95
  };
87
96
  if (config.errCode) {
88
97
  body.error = {
@@ -91,10 +100,10 @@ class ConsentFlow extends header_1.default {
91
100
  };
92
101
  }
93
102
  const res = yield new request_1.default().request({
94
- headers: headers,
103
+ headers,
95
104
  method: "POST",
96
105
  requestBody: body,
97
- url: url,
106
+ url,
98
107
  });
99
108
  return body;
100
109
  }
@@ -102,17 +111,28 @@ class ConsentFlow extends header_1.default {
102
111
  console.log(error);
103
112
  }
104
113
  });
114
+ /**
115
+ * V3: HIU responds to consent notification status from CM.
116
+ * Called when consent is DENIED/EXPIRED/REVOKED to update status.
117
+ *
118
+ * Endpoint: POST /api/hiecm/consent/v3/request/status
119
+ */
105
120
  this.onhiuNotify = (config) => __awaiter(this, void 0, void 0, function* () {
106
121
  try {
107
- const headers = this.headers(config.healthId);
108
- const url = `${this.baseUrl}v0.5/consents/hiu/on-notify`;
122
+ this.setXCmId(config.healthId);
123
+ const headers = {
124
+ "REQUEST-ID": (0, uuid_1.v4)(),
125
+ TIMESTAMP: new Date().toISOString(),
126
+ "X-CM-ID": this.xCmId,
127
+ "Content-Type": "application/json",
128
+ Authorization: `Bearer ${this.accessToken}`,
129
+ };
130
+ const url = `${this.baseUrl}/api/hiecm/consent/v3/request/status`;
109
131
  const body = {
110
- requestId: (0, uuid_1.v4)(),
111
- timestamp: new Date().toISOString(),
112
- "acknowledgement": config.acknowledgement,
113
- "resp": {
114
- "requestId": config.requestId
115
- }
132
+ acknowledgement: config.acknowledgement,
133
+ response: {
134
+ requestId: config.requestId,
135
+ },
116
136
  };
117
137
  if (config.errCode) {
118
138
  body.error = {
@@ -121,10 +141,10 @@ class ConsentFlow extends header_1.default {
121
141
  };
122
142
  }
123
143
  const res = yield new request_1.default().request({
124
- headers: headers,
144
+ headers,
125
145
  method: "POST",
126
146
  requestBody: body,
127
- url: url,
147
+ url,
128
148
  });
129
149
  return body;
130
150
  }
@@ -1 +1 @@
1
- {"version":3,"file":"consent-flow.js","sourceRoot":"","sources":["../../src/classes/consent-flow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"consent-flow.js","sourceRoot":"","sources":["../../src/classes/consent-flow.ts"],"names":[],"mappings":"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"}
@@ -45,6 +45,12 @@ export default class HealthInformation extends Header {
45
45
  message: string;
46
46
  };
47
47
  }) => Promise<any>;
48
+ /**
49
+ * V3: HIU requests health information from HIP via CM.
50
+ * Called after HIU receives GRANTED consent notification.
51
+ *
52
+ * Endpoint: POST /api/hiecm/data-flow/v3/health-information/request
53
+ */
48
54
  cmRequest: (config: {
49
55
  healthId: string;
50
56
  consentId: string;
@@ -61,7 +67,9 @@ export default class HealthInformation extends Header {
61
67
  }) => Promise<HIU_CM_REQUEST | undefined>;
62
68
  }
63
69
  /**
64
- * This interface is Cm_request decrypt keys
70
+ * V3 HIU_CM_REQUEST requestId/timestamp moved to V3 inline headers.
71
+ * privateKey, transactionId, xhiuid, healthId, status are local-only fields
72
+ * set by the caller after cmRequest() returns.
65
73
  */
66
74
  export interface HIU_CM_REQUEST {
67
75
  hiRequest: {
@@ -83,17 +91,12 @@ export interface HIU_CM_REQUEST {
83
91
  parameters: string;
84
92
  };
85
93
  };
86
- /**
87
- * private key is only for local storage not be sent along api call
88
- */
89
94
  privateKey?: string;
90
95
  transactionId?: string;
91
96
  xhiuid?: string;
92
97
  healthId?: string;
93
98
  status?: string;
94
99
  };
95
- requestId: string;
96
- timestamp: string;
97
100
  error?: {
98
101
  code: any;
99
102
  message: any;
@@ -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;;;;;;;;;;;;;;;;;;;;;;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"}
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;;;;;OAKG;IACH,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,yCAiEC;CACH;AAGD;;;;GAIG;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,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;IACD,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,GAAG,CAAC;QACV,OAAO,EAAE,GAAG,CAAA;KACb,CAAA;CACF"}
@@ -84,13 +84,25 @@ class HealthInformation extends header_1.default {
84
84
  console.log(error);
85
85
  }
86
86
  });
87
+ /**
88
+ * V3: HIU requests health information from HIP via CM.
89
+ * Called after HIU receives GRANTED consent notification.
90
+ *
91
+ * Endpoint: POST /api/hiecm/data-flow/v3/health-information/request
92
+ */
87
93
  this.cmRequest = (config) => __awaiter(this, void 0, void 0, function* () {
94
+ var _c;
88
95
  try {
89
- const headers = this.headers(config.healthId);
90
- const url = `${this.baseUrl}v0.5/health-information/cm/request`;
96
+ this.setXCmId(config.healthId);
97
+ const headers = {
98
+ "REQUEST-ID": (0, uuid_1.v4)(),
99
+ TIMESTAMP: new Date().toISOString(),
100
+ "X-CM-ID": this.xCmId,
101
+ "Content-Type": "application/json",
102
+ Authorization: `Bearer ${this.accessToken}`,
103
+ };
104
+ const url = `${this.baseUrl}/api/hiecm/data-flow/v3/health-information/request`;
91
105
  const body = {
92
- requestId: (0, uuid_1.v4)(),
93
- timestamp: new Date().toISOString(),
94
106
  hiRequest: {
95
107
  consent: {
96
108
  id: config.consentId,
@@ -116,11 +128,25 @@ class HealthInformation extends header_1.default {
116
128
  };
117
129
  }
118
130
  const res = yield new request_1.default().request({
119
- headers: headers,
131
+ headers,
120
132
  method: "POST",
121
133
  requestBody: body,
122
- url: url,
134
+ url,
123
135
  });
136
+ console.log("cmRequest V3 ABDM response:", res.status, res.statusText, (_c = res.body) === null || _c === void 0 ? void 0 : _c.slice(0, 500));
137
+ // Merge CM response fields into the returned body
138
+ if (res.body) {
139
+ try {
140
+ const resBody = JSON.parse(res.body);
141
+ if (resBody.transactionId) {
142
+ body.hiRequest.transactionId = resBody.transactionId;
143
+ }
144
+ if (resBody.requestId) {
145
+ body.requestId = resBody.requestId;
146
+ }
147
+ }
148
+ catch (_d) { }
149
+ }
124
150
  return body;
125
151
  }
126
152
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"health-information.js","sourceRoot":"","sources":["../../src/classes/health-information.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"health-information.js","sourceRoot":"","sources":["../../src/classes/health-information.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ndhm-hrp",
3
- "version": "3.2.4",
3
+ "version": "3.2.6",
4
4
  "description": "This is ndhm-hpr",
5
5
  "main": "lib/index.js",
6
6
  "directories": {