kc-sdk 6.12.12271 → 6.13.1057

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kc-sdk",
3
- "version": "6.12.12271",
3
+ "version": "6.13.1057",
4
4
  "description": "Knowledge Components SDK",
5
5
  "exports": {
6
6
  ".": "./src/assets/sdk/kc-sdk.js",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["src/app/app.component.scss"],
4
- "sourcesContent": [".sdk-callApi-button {\r\n margin-left: 185px;\r\n}\r\n"],
4
+ "sourcesContent": [".sdk-callApi-button {\n margin-left: 185px;\n}\n"],
5
5
  "mappings": "AAAA,CAAA,mBACI,YAAA",
6
6
  "names": []
7
7
  }
@@ -1,8 +1,8 @@
1
- var kcSdkConfig = {
2
- mreServiceBase: 'https://test.kc-np.o360.cloud/Handlers/saml2.ashx',
3
- mreBaseUrl: 'https://www.medicalreferenceengine.com/mre/',
4
- tokenServer: '/Token/token/',
5
- url: '/',
6
- appName: 'kcApp',
7
- secret: ''
8
- };
1
+ var kcSdkConfig = {
2
+ mreServiceBase: 'https://test.kc-np.o360.cloud/Handlers/saml2.ashx',
3
+ mreBaseUrl: 'https://www.medicalreferenceengine.com/mre/',
4
+ tokenServer: '/Token/token/',
5
+ url: '/',
6
+ appName: 'kcApp',
7
+ secret: ''
8
+ };
@@ -1,8 +1,8 @@
1
- {
2
- "mreServiceBase": "https://test.kc-np.o360.cloud/Handlers/saml2.ashx",
3
- "mreBaseUrl": "https://www.medicalreferenceengine.com/mre/",
4
- "tokenServer": "/Token/token/",
5
- "url": "/",
6
- "appName": "kcApp",
7
- "secret": ""
8
- }
1
+ {
2
+ "mreServiceBase": "https://test.kc-np.o360.cloud/Handlers/saml2.ashx",
3
+ "mreBaseUrl": "https://www.medicalreferenceengine.com/mre/",
4
+ "tokenServer": "/Token/token/",
5
+ "url": "/",
6
+ "appName": "kcApp",
7
+ "secret": ""
8
+ }
@@ -1,289 +1,289 @@
1
- // enums
2
- var listeningWindows = Object.freeze({
3
- KC: 'kc',
4
- ENCODER: 'encoder',
5
- ALL: 'all'
6
- });
7
-
8
- var encoderTabs = Object.freeze({
9
- LOGIC: 'LOGIC',
10
- INDEX: 'INDEX',
11
- TABULAR: 'TABULAR'
12
- });
13
-
14
- var sessionTypes = Object.freeze({
15
- DX: {
16
- state: ['I9'],
17
- name: 'DX'
18
- },
19
- CMPX: {
20
- state: ['I9'],
21
- name: 'PX'
22
- },
23
- I10CM: {
24
- state: ['I10'],
25
- name: 'I10CM'
26
- },
27
- ICD10PCS: {
28
- state: ['I10'],
29
- name: 'ICD10PCS'
30
- },
31
- HCPCS: {
32
- state: ['I9', 'I10'],
33
- name: 'HCPCS'
34
- }
35
- });
36
-
37
- var codeTypes = Object.freeze({
38
- ADMITDX: {
39
- state: ['I9'],
40
- name: 'AdmitDx'
41
- },
42
- DX: {
43
- state: ['I9'],
44
- name: 'DX'
45
- },
46
- CMPX: {
47
- state: ['I9'],
48
- name: 'PX'
49
- },
50
- ADMIT10DX: {
51
- state: ['I9'],
52
- name: 'Admit10Dx'
53
- },
54
- I10CM: {
55
- state: ['I10'],
56
- name: 'I10CM'
57
- },
58
- I10PCS: {
59
- state: ['I10'],
60
- name: 'ICD10PCS'
61
- },
62
- HCPCS: {
63
- state: ['I9', 'I10'],
64
- name: 'HCPCS'
65
- },
66
- CPT: {
67
- state: ['I9', 'I10'],
68
- name: 'CPT'
69
- }
70
- });
71
-
72
- var i9I10States = Object.freeze({
73
- I9: { value: 'I9' },
74
- I10: { value: 'I10' }
75
- });
76
-
77
- var listenerResponse = Object.freeze({
78
- LOADPATIENTRECORD: 'loadPatientRecord Complete',
79
- SETAUTHTOKEN: 'setAuthToken Complete',
80
- SETI9I10STATE: 'setI9I10State Complete',
81
- SETDEMOGRAPHICS: 'setDemographics Complete',
82
- LOADPHRASEINLOGIC: 'logicRequest Received',
83
- LOADPHRASEININDEX: 'indexRequest Received',
84
- LOADCODEINTABULAR: 'tabularRequest Received',
85
- ENCODEREXCEPTION: 'encoder listener exception: ',
86
- KCEXCEPTION: 'kc listener exception: ',
87
- OPENENCODER: 'encoderListening',
88
- OPENKC: 'kcListening',
89
- ENCODERSTARTUPCOMPLETE: 'Encoder Startup Complete'
90
- });
91
-
92
- var callbacks = Object.freeze({
93
- SDKEXCEPTION: 'sdkRequestException',
94
- SDKRESPONSE: 'sdkServiceResponse',
95
- SAVEPATIENTRECORD: 'savePatientRecord',
96
- CODESADDED: 'codesAdded',
97
- KCLISTENINGCHANGED: 'kcListeningChanged',
98
- ENCODERLISTENINGCHANGED: 'encoderListeningChanged',
99
- WORKFLOWCOMPLETE: 'workflowComplete',
100
- UNAUTHORIZED: 'unAuthorized'
101
- });
102
-
103
- var patientType = Object.freeze({
104
- INPATIENT: {
105
- payer_number: '01',
106
- payer_name: 'Acute Inpatient',
107
- displayValue: '01 Acute Inpatient'
108
- },
109
- OUTPATIENT: {
110
- payer_number: '02',
111
- payer_name: 'Outpatient',
112
- displayValue: '02 Outpatient'
113
- },
114
- IRF: {
115
- payer_number: '03',
116
- payer_name: 'Inpatient Rehabilitation',
117
- displayValue: '03 Inpatient Rehabilitation'
118
- },
119
- CAH: {
120
- payer_number: '05',
121
- payer_name: 'CAH Method II',
122
- displayValue: '05 CAH Method II'
123
- },
124
- SNF: {
125
- payer_number: '06',
126
- payer_name: 'Skilled Nursing Facility',
127
- displayValue: '06 Skilled Nursing Facility'
128
- }
129
- });
130
-
131
- var messagingProvider = {
132
- initialized: false,
133
- currentHandler: null,
134
-
135
- init: function () {
136
- this.initialized = true;
137
- var eventMethod = window.addEventListener ? 'addEventListener' : 'attachEvent';
138
- var eventer = window[eventMethod];
139
- var messageEvent = eventMethod === 'attachEvent' ? 'onmessage' : 'message';
140
-
141
- eventer(
142
- messageEvent,
143
- function (e) {
144
- var callback = this.currentHandler;
145
- if (callback != null) {
146
- var key = e.message ? 'message' : 'data';
147
- var data = e[key];
148
- callback(data);
149
- }
150
- },
151
- false
152
- );
153
- },
154
-
155
- post: function (target, message) {
156
- if (target) {
157
- target.postMessage(message, '*');
158
- }
159
- }
160
- };
161
-
162
- var kcMreService = {
163
- launchMre: function (code, codeType, accessToken) {
164
- code = adjustCodeForDecimal.adjust(code, codeType);
165
- var codeTypeUrlHandler = {};
166
-
167
- codeTypeUrlHandler.CPT = 'cptHandler.do?_k=101*';
168
- codeTypeUrlHandler.HCPCS = 'hcpcsHandler.do?_k=102*';
169
- codeTypeUrlHandler.DX = 'i9v1Handler.do?_k=103*';
170
- codeTypeUrlHandler.PX = 'i9v3Handler.do?_k=104*';
171
- codeTypeUrlHandler.I10CM = 'i10cmHandler.do?_k=201*';
172
- codeTypeUrlHandler.ICD10PCS = 'i10pcsHandler.do?_k=202*';
173
-
174
- var relayUrl = '';
175
- var encodedUrl = '';
176
-
177
- if (code !== null && codeType !== null) {
178
- var codeBaseParam = codeType === codeTypes.HCPCS.name ? (isHcpcsCode(code) ? codeTypes.HCPCS.name : codeTypes.CPT.name) : codeType;
179
- relayUrl = generateRelayUrl(code, codeBaseParam);
180
- } else {
181
- relayUrl = generateRelayUrl('', '');
182
- }
183
- encodedUrl = encodeURIComponent(relayUrl);
184
-
185
- var xhttp = new XMLHttpRequest();
186
- xhttp.onreadystatechange = function () {
187
- if (this.readyState === 4 && this.status === 200) {
188
- var response = JSON.parse(xhttp.responseText);
189
- if (response.token) {
190
- var xhttpOpenToken = new XMLHttpRequest();
191
- xhttpOpenToken.onreadystatechange = function () {
192
- if (this.readyState === 4 && this.status === 200) {
193
- hasMREBrowserWindowOpened = true;
194
- var openToken = xhttpOpenToken.responseText;
195
-
196
- var mreForm = document.createElement('form');
197
- mreForm.target = 'MRE';
198
- mreForm.method = 'POST';
199
- mreForm.action = relayUrl;
200
-
201
- var mreInput = document.createElement('input');
202
- mreInput.type = 'hidden';
203
- mreInput.name = 'opentoken';
204
- mreInput.value = openToken;
205
- mreForm.appendChild(mreInput);
206
-
207
- window.open('', 'MRE');
208
- document.body.appendChild(mreForm);
209
- mreForm.submit();
210
- document.body.removeChild(mreForm);
211
- }
212
- };
213
- xhttpOpenToken.open('GET', kcSdkConfig.tokenServer + 'getMreOpenToken?relayUrl=' + encodedUrl, true);
214
- xhttpOpenToken.setRequestHeader('Authorization', 'Bearer ' + response.token);
215
- xhttpOpenToken.send();
216
- }
217
- }
218
- };
219
- xhttp.open('GET', kcSdkConfig.tokenServer + 'ssoLogin/' + kcSdkConfig.appName, true);
220
- xhttp.setRequestHeader('X-SSO-AuthToken', accessToken);
221
- xhttp.send();
222
-
223
- function generateRelayUrl(code, codeType) {
224
- var baseURL = kcSdkConfig.mreBaseUrl + 'ssoHandler.do?_a=home';
225
-
226
- if (code) {
227
- baseURL = kcSdkConfig.mreBaseUrl + (codeTypeUrlHandler[codeType] ? codeTypeUrlHandler[codeType] : '');
228
- baseURL = baseURL + code + '&_a=viewDetail';
229
- }
230
- return baseURL;
231
- }
232
-
233
- function isHcpcsCode(code) {
234
- var modifiedCode = filterCode(code);
235
- var regExHcpcsCode = /^[A-EG-HJ-MP-V][0-9]{4}$/;
236
- return regExHcpcsCode.test(modifiedCode);
237
- }
238
-
239
- function filterCode(code, stripDecimals) {
240
- var filteredCode = code;
241
- /* istanbul ignore else */
242
- if (filteredCode) {
243
- filteredCode = filteredCode.trim();
244
- if (stripDecimals) {
245
- filteredCode = filteredCode.replace('.', '');
246
- }
247
- }
248
- return filteredCode;
249
- }
250
- }
251
- };
252
-
253
- var jwt = {
254
- getJwtData: function (accessToken) {
255
- var jwtParts = accessToken.split('.');
256
- if (jwtParts.length === 3) {
257
- var payload = decodeURI(jwtParts[1]);
258
- var jwtStringData = atob(payload.replace(/_/g, '/').replace(/-/g, '+'));
259
- return JSON.parse(jwtStringData);
260
- }
261
- }
262
- };
263
-
264
- var adjustCodeForDecimal = {
265
- adjust: function (code, codeType) {
266
- if (code != null) {
267
- switch (codeType) {
268
- case codeTypes.I10CM.name:
269
- case codeTypes.ADMIT10DX.name:
270
- return addDecimal(code, 3);
271
- case codeTypes.DX.name:
272
- case codeTypes.ADMITDX.name:
273
- return addDecimal(code, code.substring(0, 1) === 'E' ? 4 : 3);
274
- case codeTypes.CMPX.name:
275
- return addDecimal(code, 2);
276
- }
277
- }
278
-
279
- function addDecimal(code, length) {
280
- code = code.replace('.', '');
281
- if (code.length > length) {
282
- code = code.substring(0, length) + '.' + code.substring(length);
283
- }
284
- return code;
285
- }
286
-
287
- return code;
288
- }
289
- };
1
+ // enums
2
+ var listeningWindows = Object.freeze({
3
+ KC: 'kc',
4
+ ENCODER: 'encoder',
5
+ ALL: 'all'
6
+ });
7
+
8
+ var encoderTabs = Object.freeze({
9
+ LOGIC: 'LOGIC',
10
+ INDEX: 'INDEX',
11
+ TABULAR: 'TABULAR'
12
+ });
13
+
14
+ var sessionTypes = Object.freeze({
15
+ DX: {
16
+ state: ['I9'],
17
+ name: 'DX'
18
+ },
19
+ CMPX: {
20
+ state: ['I9'],
21
+ name: 'PX'
22
+ },
23
+ I10CM: {
24
+ state: ['I10'],
25
+ name: 'I10CM'
26
+ },
27
+ ICD10PCS: {
28
+ state: ['I10'],
29
+ name: 'ICD10PCS'
30
+ },
31
+ HCPCS: {
32
+ state: ['I9', 'I10'],
33
+ name: 'HCPCS'
34
+ }
35
+ });
36
+
37
+ var codeTypes = Object.freeze({
38
+ ADMITDX: {
39
+ state: ['I9'],
40
+ name: 'AdmitDx'
41
+ },
42
+ DX: {
43
+ state: ['I9'],
44
+ name: 'DX'
45
+ },
46
+ CMPX: {
47
+ state: ['I9'],
48
+ name: 'PX'
49
+ },
50
+ ADMIT10DX: {
51
+ state: ['I9'],
52
+ name: 'Admit10Dx'
53
+ },
54
+ I10CM: {
55
+ state: ['I10'],
56
+ name: 'I10CM'
57
+ },
58
+ I10PCS: {
59
+ state: ['I10'],
60
+ name: 'ICD10PCS'
61
+ },
62
+ HCPCS: {
63
+ state: ['I9', 'I10'],
64
+ name: 'HCPCS'
65
+ },
66
+ CPT: {
67
+ state: ['I9', 'I10'],
68
+ name: 'CPT'
69
+ }
70
+ });
71
+
72
+ var i9I10States = Object.freeze({
73
+ I9: { value: 'I9' },
74
+ I10: { value: 'I10' }
75
+ });
76
+
77
+ var listenerResponse = Object.freeze({
78
+ LOADPATIENTRECORD: 'loadPatientRecord Complete',
79
+ SETAUTHTOKEN: 'setAuthToken Complete',
80
+ SETI9I10STATE: 'setI9I10State Complete',
81
+ SETDEMOGRAPHICS: 'setDemographics Complete',
82
+ LOADPHRASEINLOGIC: 'logicRequest Received',
83
+ LOADPHRASEININDEX: 'indexRequest Received',
84
+ LOADCODEINTABULAR: 'tabularRequest Received',
85
+ ENCODEREXCEPTION: 'encoder listener exception: ',
86
+ KCEXCEPTION: 'kc listener exception: ',
87
+ OPENENCODER: 'encoderListening',
88
+ OPENKC: 'kcListening',
89
+ ENCODERSTARTUPCOMPLETE: 'Encoder Startup Complete'
90
+ });
91
+
92
+ var callbacks = Object.freeze({
93
+ SDKEXCEPTION: 'sdkRequestException',
94
+ SDKRESPONSE: 'sdkServiceResponse',
95
+ SAVEPATIENTRECORD: 'savePatientRecord',
96
+ CODESADDED: 'codesAdded',
97
+ KCLISTENINGCHANGED: 'kcListeningChanged',
98
+ ENCODERLISTENINGCHANGED: 'encoderListeningChanged',
99
+ WORKFLOWCOMPLETE: 'workflowComplete',
100
+ UNAUTHORIZED: 'unAuthorized'
101
+ });
102
+
103
+ var patientType = Object.freeze({
104
+ INPATIENT: {
105
+ payer_number: '01',
106
+ payer_name: 'Acute Inpatient',
107
+ displayValue: '01 Acute Inpatient'
108
+ },
109
+ OUTPATIENT: {
110
+ payer_number: '02',
111
+ payer_name: 'Outpatient',
112
+ displayValue: '02 Outpatient'
113
+ },
114
+ IRF: {
115
+ payer_number: '03',
116
+ payer_name: 'Inpatient Rehabilitation',
117
+ displayValue: '03 Inpatient Rehabilitation'
118
+ },
119
+ CAH: {
120
+ payer_number: '05',
121
+ payer_name: 'CAH Method II',
122
+ displayValue: '05 CAH Method II'
123
+ },
124
+ SNF: {
125
+ payer_number: '06',
126
+ payer_name: 'Skilled Nursing Facility',
127
+ displayValue: '06 Skilled Nursing Facility'
128
+ }
129
+ });
130
+
131
+ var messagingProvider = {
132
+ initialized: false,
133
+ currentHandler: null,
134
+
135
+ init: function () {
136
+ this.initialized = true;
137
+ var eventMethod = window.addEventListener ? 'addEventListener' : 'attachEvent';
138
+ var eventer = window[eventMethod];
139
+ var messageEvent = eventMethod === 'attachEvent' ? 'onmessage' : 'message';
140
+
141
+ eventer(
142
+ messageEvent,
143
+ function (e) {
144
+ var callback = this.currentHandler;
145
+ if (callback != null) {
146
+ var key = e.message ? 'message' : 'data';
147
+ var data = e[key];
148
+ callback(data);
149
+ }
150
+ },
151
+ false
152
+ );
153
+ },
154
+
155
+ post: function (target, message) {
156
+ if (target) {
157
+ target.postMessage(message, '*');
158
+ }
159
+ }
160
+ };
161
+
162
+ var kcMreService = {
163
+ launchMre: function (code, codeType, accessToken) {
164
+ code = adjustCodeForDecimal.adjust(code, codeType);
165
+ var codeTypeUrlHandler = {};
166
+
167
+ codeTypeUrlHandler.CPT = 'cptHandler.do?_k=101*';
168
+ codeTypeUrlHandler.HCPCS = 'hcpcsHandler.do?_k=102*';
169
+ codeTypeUrlHandler.DX = 'i9v1Handler.do?_k=103*';
170
+ codeTypeUrlHandler.PX = 'i9v3Handler.do?_k=104*';
171
+ codeTypeUrlHandler.I10CM = 'i10cmHandler.do?_k=201*';
172
+ codeTypeUrlHandler.ICD10PCS = 'i10pcsHandler.do?_k=202*';
173
+
174
+ var relayUrl = '';
175
+ var encodedUrl = '';
176
+
177
+ if (code !== null && codeType !== null) {
178
+ var codeBaseParam = codeType === codeTypes.HCPCS.name ? (isHcpcsCode(code) ? codeTypes.HCPCS.name : codeTypes.CPT.name) : codeType;
179
+ relayUrl = generateRelayUrl(code, codeBaseParam);
180
+ } else {
181
+ relayUrl = generateRelayUrl('', '');
182
+ }
183
+ encodedUrl = encodeURIComponent(relayUrl);
184
+
185
+ var xhttp = new XMLHttpRequest();
186
+ xhttp.onreadystatechange = function () {
187
+ if (this.readyState === 4 && this.status === 200) {
188
+ var response = JSON.parse(xhttp.responseText);
189
+ if (response.token) {
190
+ var xhttpOpenToken = new XMLHttpRequest();
191
+ xhttpOpenToken.onreadystatechange = function () {
192
+ if (this.readyState === 4 && this.status === 200) {
193
+ hasMREBrowserWindowOpened = true;
194
+ var openToken = xhttpOpenToken.responseText;
195
+
196
+ var mreForm = document.createElement('form');
197
+ mreForm.target = 'MRE';
198
+ mreForm.method = 'POST';
199
+ mreForm.action = relayUrl;
200
+
201
+ var mreInput = document.createElement('input');
202
+ mreInput.type = 'hidden';
203
+ mreInput.name = 'opentoken';
204
+ mreInput.value = openToken;
205
+ mreForm.appendChild(mreInput);
206
+
207
+ window.open('', 'MRE');
208
+ document.body.appendChild(mreForm);
209
+ mreForm.submit();
210
+ document.body.removeChild(mreForm);
211
+ }
212
+ };
213
+ xhttpOpenToken.open('GET', kcSdkConfig.tokenServer + 'getMreOpenToken?relayUrl=' + encodedUrl, true);
214
+ xhttpOpenToken.setRequestHeader('Authorization', 'Bearer ' + response.token);
215
+ xhttpOpenToken.send();
216
+ }
217
+ }
218
+ };
219
+ xhttp.open('GET', kcSdkConfig.tokenServer + 'ssoLogin/' + kcSdkConfig.appName, true);
220
+ xhttp.setRequestHeader('X-SSO-AuthToken', accessToken);
221
+ xhttp.send();
222
+
223
+ function generateRelayUrl(code, codeType) {
224
+ var baseURL = kcSdkConfig.mreBaseUrl + 'ssoHandler.do?_a=home';
225
+
226
+ if (code) {
227
+ baseURL = kcSdkConfig.mreBaseUrl + (codeTypeUrlHandler[codeType] ? codeTypeUrlHandler[codeType] : '');
228
+ baseURL = baseURL + code + '&_a=viewDetail';
229
+ }
230
+ return baseURL;
231
+ }
232
+
233
+ function isHcpcsCode(code) {
234
+ var modifiedCode = filterCode(code);
235
+ var regExHcpcsCode = /^[A-EG-HJ-MP-V][0-9]{4}$/;
236
+ return regExHcpcsCode.test(modifiedCode);
237
+ }
238
+
239
+ function filterCode(code, stripDecimals) {
240
+ var filteredCode = code;
241
+ /* istanbul ignore else */
242
+ if (filteredCode) {
243
+ filteredCode = filteredCode.trim();
244
+ if (stripDecimals) {
245
+ filteredCode = filteredCode.replace('.', '');
246
+ }
247
+ }
248
+ return filteredCode;
249
+ }
250
+ }
251
+ };
252
+
253
+ var jwt = {
254
+ getJwtData: function (accessToken) {
255
+ var jwtParts = accessToken.split('.');
256
+ if (jwtParts.length === 3) {
257
+ var payload = decodeURI(jwtParts[1]);
258
+ var jwtStringData = atob(payload.replace(/_/g, '/').replace(/-/g, '+'));
259
+ return JSON.parse(jwtStringData);
260
+ }
261
+ }
262
+ };
263
+
264
+ var adjustCodeForDecimal = {
265
+ adjust: function (code, codeType) {
266
+ if (code != null) {
267
+ switch (codeType) {
268
+ case codeTypes.I10CM.name:
269
+ case codeTypes.ADMIT10DX.name:
270
+ return addDecimal(code, 3);
271
+ case codeTypes.DX.name:
272
+ case codeTypes.ADMITDX.name:
273
+ return addDecimal(code, code.substring(0, 1) === 'E' ? 4 : 3);
274
+ case codeTypes.CMPX.name:
275
+ return addDecimal(code, 2);
276
+ }
277
+ }
278
+
279
+ function addDecimal(code, length) {
280
+ code = code.replace('.', '');
281
+ if (code.length > length) {
282
+ code = code.substring(0, length) + '.' + code.substring(length);
283
+ }
284
+ return code;
285
+ }
286
+
287
+ return code;
288
+ }
289
+ };