@metriport/commonwell-sdk 1.0.2 → 1.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.
Files changed (57) hide show
  1. package/lib/client/commonwell.d.ts +60 -0
  2. package/lib/client/commonwell.js +312 -0
  3. package/lib/client/commonwell.js.map +1 -0
  4. package/lib/common/util.d.ts +5 -0
  5. package/lib/common/util.js +15 -0
  6. package/lib/common/util.js.map +1 -0
  7. package/lib/common/validate-npi.js +8 -8
  8. package/lib/common/validate-npi.js.map +1 -1
  9. package/lib/index.d.ts +10 -0
  10. package/lib/index.js +20 -1
  11. package/lib/index.js.map +1 -1
  12. package/lib/models/address.d.ts +50 -0
  13. package/lib/models/address.js +24 -0
  14. package/lib/models/address.js.map +1 -0
  15. package/lib/models/certificates.d.ts +156 -0
  16. package/lib/models/certificates.js +27 -0
  17. package/lib/models/certificates.js.map +1 -0
  18. package/lib/models/contact.d.ts +50 -0
  19. package/lib/models/contact.js +31 -0
  20. package/lib/models/contact.js.map +1 -0
  21. package/lib/models/demographics.d.ts +291 -0
  22. package/lib/models/demographics.js +32 -0
  23. package/lib/models/demographics.js.map +1 -0
  24. package/lib/models/enrollment-summary.d.ts +18 -0
  25. package/lib/models/enrollment-summary.js +13 -0
  26. package/lib/models/enrollment-summary.js.map +1 -0
  27. package/lib/models/facility.d.ts +75 -0
  28. package/lib/models/facility.js +11 -0
  29. package/lib/models/facility.js.map +1 -0
  30. package/lib/models/human-name.d.ts +53 -0
  31. package/lib/models/human-name.js +27 -0
  32. package/lib/models/human-name.js.map +1 -0
  33. package/lib/models/identifier.d.ts +46 -0
  34. package/lib/models/identifier.js +22 -0
  35. package/lib/models/identifier.js.map +1 -0
  36. package/lib/models/iso-date.d.ts +3 -0
  37. package/lib/models/iso-date.js +7 -0
  38. package/lib/models/iso-date.js.map +1 -0
  39. package/lib/models/iso-datetime.d.ts +3 -0
  40. package/lib/models/iso-datetime.js +9 -0
  41. package/lib/models/iso-datetime.js.map +1 -0
  42. package/lib/models/link.d.ts +638 -0
  43. package/lib/models/link.js +41 -0
  44. package/lib/models/link.js.map +1 -0
  45. package/lib/models/organization.d.ts +751 -0
  46. package/lib/models/organization.js +83 -0
  47. package/lib/models/organization.js.map +1 -0
  48. package/lib/models/patient.d.ts +5953 -0
  49. package/lib/models/patient.js +41 -0
  50. package/lib/models/patient.js.map +1 -0
  51. package/lib/models/period.d.ts +12 -0
  52. package/lib/models/period.js +11 -0
  53. package/lib/models/period.js.map +1 -0
  54. package/lib/models/person.d.ts +1884 -0
  55. package/lib/models/person.js +31 -0
  56. package/lib/models/person.js.map +1 -0
  57. package/package.json +6 -4
@@ -0,0 +1,60 @@
1
+ import { PurposeOfUse } from "../models/purpose-of-use";
2
+ import { Person, PersonSearchResp, PatientLink } from "../models/person";
3
+ import { Patient, PatientSearchResp, PatientNetworkLinkResp } from "../models/patient";
4
+ import { NetworkLink, PatientLinkProxy } from "../models/link";
5
+ import { Organization, OrganizationList } from "../models/organization";
6
+ import { CertificateParam, CertificateResp } from "../models/certificates";
7
+ import { Identifier } from "../models/identifier";
8
+ export declare enum APIMode {
9
+ integration = "integration",
10
+ production = "production"
11
+ }
12
+ export interface RequestMetadata {
13
+ role: string;
14
+ subjectId: string;
15
+ purposeOfUse: PurposeOfUse;
16
+ npi?: string;
17
+ payloadHash?: string;
18
+ }
19
+ export declare class CommonWell {
20
+ static integrationUrl: string;
21
+ static productionUrl: string;
22
+ static PERSON_ENDPOINT: string;
23
+ static ORG_ENDPOINT: string;
24
+ static PATIENT_ENDPOINT: string;
25
+ static MEMBER_ENDPOINT: string;
26
+ private api;
27
+ private rsaPrivateKey;
28
+ private orgName;
29
+ private oid;
30
+ private httpsAgent;
31
+ constructor(orgCert: string, rsaPrivateKey: string, orgName: string, oid: string, apiMode: APIMode);
32
+ createOrg(meta: RequestMetadata, organization: Organization): Promise<Organization>;
33
+ updateOrg(meta: RequestMetadata, organization: Organization, id: string): Promise<Organization>;
34
+ getAllOrgs(meta: RequestMetadata, summary?: boolean, offset?: number, limit?: number, sort?: string): Promise<OrganizationList>;
35
+ getOneOrg(meta: RequestMetadata, id: string): Promise<Organization>;
36
+ addCertificateToOrg(meta: RequestMetadata, certificate: CertificateParam, id: string): Promise<CertificateResp>;
37
+ replaceCertificateForOrg(meta: RequestMetadata, certificate: CertificateParam, id: string): Promise<CertificateResp>;
38
+ deleteCertificateFromOrg(meta: RequestMetadata, id: string, thumbprint: string, purpose: string): Promise<void>;
39
+ getCertificatesFromOrg(meta: RequestMetadata, id: string, thumbprint?: string, purpose?: string): Promise<CertificateResp>;
40
+ getCertificatesFromOrgByThumbprint(meta: RequestMetadata, id: string, thumbprint: string, purpose?: string): Promise<CertificateResp>;
41
+ getCertificatesFromOrgByThumbprintAndPurpose(meta: RequestMetadata, id: string, thumbprint: string, purpose: string): Promise<CertificateResp>;
42
+ enrollPerson(meta: RequestMetadata, person: Person): Promise<Person>;
43
+ searchPerson(meta: RequestMetadata, key: string, system: string): Promise<PersonSearchResp>;
44
+ searchPersonByPatientDemo(meta: RequestMetadata, id: string): Promise<PersonSearchResp>;
45
+ updatePerson(meta: RequestMetadata, person: Person, id: string): Promise<Person>;
46
+ patientMatch(meta: RequestMetadata, id: string): Promise<PatientSearchResp>;
47
+ patientLink(meta: RequestMetadata, id: string, uri: string): Promise<PatientLink>;
48
+ unenrollPerson(meta: RequestMetadata, id: string): Promise<Person>;
49
+ deletePerson(meta: RequestMetadata, id: string): Promise<void>;
50
+ registerPatient(meta: RequestMetadata, patient: Patient): Promise<Patient>;
51
+ searchPatient(meta: RequestMetadata, fname: string, lname: string, dob: string, gender: string, zip: string): Promise<PatientSearchResp>;
52
+ updatePatient(meta: RequestMetadata, patient: Patient, id: string): Promise<Patient>;
53
+ mergePatients(meta: RequestMetadata, nonSurvivingPatientId: string, referencePatientLink: string): Promise<void>;
54
+ getPatientsLinks(meta: RequestMetadata, id: string): Promise<PatientNetworkLinkResp>;
55
+ deletePatient(meta: RequestMetadata, id: string): Promise<void>;
56
+ upgradeOrDowngradePatientLink(meta: RequestMetadata, href: string, proxy?: PatientLinkProxy): Promise<NetworkLink>;
57
+ updatePatientLink(meta: RequestMetadata, patientLinkUri: string, patientUri?: string, identifier?: Identifier): Promise<PatientLink>;
58
+ deletePatientLink(meta: RequestMetadata, patientLinkUri: string): Promise<void>;
59
+ private buildQueryHeaders;
60
+ }
@@ -0,0 +1,312 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.CommonWell = exports.APIMode = void 0;
13
+ const axios_1 = require("axios");
14
+ const https_1 = require("https");
15
+ const make_jwt_1 = require("../common/make-jwt");
16
+ const person_1 = require("../models/person");
17
+ const patient_1 = require("../models/patient");
18
+ const link_1 = require("../models/link");
19
+ const organization_1 = require("../models/organization");
20
+ const certificates_1 = require("../models/certificates");
21
+ var APIMode;
22
+ (function (APIMode) {
23
+ APIMode["integration"] = "integration";
24
+ APIMode["production"] = "production";
25
+ })(APIMode = exports.APIMode || (exports.APIMode = {}));
26
+ class CommonWell {
27
+ constructor(orgCert, rsaPrivateKey, orgName, oid, apiMode) {
28
+ this.rsaPrivateKey = rsaPrivateKey;
29
+ this.httpsAgent = new https_1.Agent({ cert: orgCert, key: rsaPrivateKey });
30
+ this.api = axios_1.default.create({
31
+ baseURL: apiMode === APIMode.production ? CommonWell.productionUrl : CommonWell.integrationUrl,
32
+ httpsAgent: this.httpsAgent,
33
+ });
34
+ this.orgName = orgName;
35
+ this.oid = oid;
36
+ }
37
+ createOrg(meta, organization) {
38
+ return __awaiter(this, void 0, void 0, function* () {
39
+ const headers = yield this.buildQueryHeaders(meta);
40
+ const resp = yield this.api.post(`${CommonWell.MEMBER_ENDPOINT}/${this.oid}/org`, organization, {
41
+ headers,
42
+ });
43
+ return organization_1.organizationSchema.parse(resp.data);
44
+ });
45
+ }
46
+ updateOrg(meta, organization, id) {
47
+ return __awaiter(this, void 0, void 0, function* () {
48
+ const headers = yield this.buildQueryHeaders(meta);
49
+ const resp = yield this.api.put(`${CommonWell.MEMBER_ENDPOINT}/${this.oid}/org/${id}/`, organization, {
50
+ headers,
51
+ });
52
+ return organization_1.organizationSchema.parse(resp.data);
53
+ });
54
+ }
55
+ getAllOrgs(meta, summary, offset, limit, sort) {
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ const headers = yield this.buildQueryHeaders(meta);
58
+ const resp = yield this.api.get(`${CommonWell.MEMBER_ENDPOINT}/${this.oid}/org`, {
59
+ headers,
60
+ params: { summary, offset, limit, sort },
61
+ });
62
+ return organization_1.organizationListSchema.parse(resp.data);
63
+ });
64
+ }
65
+ getOneOrg(meta, id) {
66
+ return __awaiter(this, void 0, void 0, function* () {
67
+ const headers = yield this.buildQueryHeaders(meta);
68
+ const resp = yield this.api.get(`${CommonWell.MEMBER_ENDPOINT}/${this.oid}/org/${id}/`, {
69
+ headers,
70
+ });
71
+ return organization_1.organizationSchema.parse(resp.data);
72
+ });
73
+ }
74
+ addCertificateToOrg(meta, certificate, id) {
75
+ return __awaiter(this, void 0, void 0, function* () {
76
+ const headers = yield this.buildQueryHeaders(meta);
77
+ const resp = yield this.api.post(`${CommonWell.MEMBER_ENDPOINT}/${this.oid}/org/${id}/certificate`, certificate, {
78
+ headers,
79
+ });
80
+ return certificates_1.certificateRespSchema.parse(resp.data);
81
+ });
82
+ }
83
+ replaceCertificateForOrg(meta, certificate, id) {
84
+ return __awaiter(this, void 0, void 0, function* () {
85
+ const headers = yield this.buildQueryHeaders(meta);
86
+ const resp = yield this.api.put(`${CommonWell.MEMBER_ENDPOINT}/${this.oid}/org/${id}/certificate`, certificate, {
87
+ headers,
88
+ });
89
+ return certificates_1.certificateRespSchema.parse(resp.data);
90
+ });
91
+ }
92
+ deleteCertificateFromOrg(meta, id, thumbprint, purpose) {
93
+ return __awaiter(this, void 0, void 0, function* () {
94
+ const headers = yield this.buildQueryHeaders(meta);
95
+ yield this.api.delete(`${CommonWell.MEMBER_ENDPOINT}/${this.oid}/org/${id}/certificate/${thumbprint}/purpose/${purpose}`, {
96
+ headers,
97
+ });
98
+ return;
99
+ });
100
+ }
101
+ getCertificatesFromOrg(meta, id, thumbprint, purpose) {
102
+ return __awaiter(this, void 0, void 0, function* () {
103
+ const headers = yield this.buildQueryHeaders(meta);
104
+ const resp = yield this.api.get(`${CommonWell.MEMBER_ENDPOINT}/${this.oid}/org/${id}/certificate`, {
105
+ headers,
106
+ params: { thumbprint, purpose },
107
+ });
108
+ return certificates_1.certificateRespSchema.parse(resp.data);
109
+ });
110
+ }
111
+ getCertificatesFromOrgByThumbprint(meta, id, thumbprint, purpose) {
112
+ return __awaiter(this, void 0, void 0, function* () {
113
+ const headers = yield this.buildQueryHeaders(meta);
114
+ const resp = yield this.api.get(`${CommonWell.MEMBER_ENDPOINT}/${this.oid}/org/${id}/certificate/${thumbprint}`, {
115
+ headers,
116
+ params: { purpose },
117
+ });
118
+ return certificates_1.certificateRespSchema.parse(resp.data);
119
+ });
120
+ }
121
+ getCertificatesFromOrgByThumbprintAndPurpose(meta, id, thumbprint, purpose) {
122
+ return __awaiter(this, void 0, void 0, function* () {
123
+ const headers = yield this.buildQueryHeaders(meta);
124
+ const resp = yield this.api.get(`${CommonWell.MEMBER_ENDPOINT}/${this.oid}/org/${id}/certificate/${thumbprint}/purpose/${purpose}`, {
125
+ headers,
126
+ });
127
+ return certificates_1.certificateRespSchema.parse(resp.data);
128
+ });
129
+ }
130
+ enrollPerson(meta, person) {
131
+ return __awaiter(this, void 0, void 0, function* () {
132
+ const headers = yield this.buildQueryHeaders(meta);
133
+ const resp = yield this.api.post(CommonWell.PERSON_ENDPOINT, person, {
134
+ headers,
135
+ });
136
+ return person_1.personSchema.parse(resp.data);
137
+ });
138
+ }
139
+ searchPerson(meta, key, system) {
140
+ return __awaiter(this, void 0, void 0, function* () {
141
+ const headers = yield this.buildQueryHeaders(meta);
142
+ const resp = yield this.api.get(CommonWell.PERSON_ENDPOINT, {
143
+ headers,
144
+ params: { key, system },
145
+ });
146
+ return person_1.personSearchRespSchema.parse(resp.data);
147
+ });
148
+ }
149
+ searchPersonByPatientDemo(meta, id) {
150
+ return __awaiter(this, void 0, void 0, function* () {
151
+ const headers = yield this.buildQueryHeaders(meta);
152
+ const resp = yield this.api.get(`${CommonWell.ORG_ENDPOINT}/${this.oid}/patient/${id}/person`, {
153
+ headers,
154
+ });
155
+ return person_1.personSearchRespSchema.parse(resp.data);
156
+ });
157
+ }
158
+ updatePerson(meta, person, id) {
159
+ return __awaiter(this, void 0, void 0, function* () {
160
+ const headers = yield this.buildQueryHeaders(meta);
161
+ const resp = yield this.api.post(`${CommonWell.PERSON_ENDPOINT}/${id}`, person, {
162
+ headers,
163
+ });
164
+ return person_1.personSchema.parse(resp.data);
165
+ });
166
+ }
167
+ patientMatch(meta, id) {
168
+ return __awaiter(this, void 0, void 0, function* () {
169
+ const headers = yield this.buildQueryHeaders(meta);
170
+ const resp = yield this.api.get(`${CommonWell.PERSON_ENDPOINT}/${id}/patientMatch`, {
171
+ headers,
172
+ params: { orgId: this.oid },
173
+ });
174
+ return patient_1.patientSearchRespSchema.parse(resp.data);
175
+ });
176
+ }
177
+ patientLink(meta, id, uri) {
178
+ return __awaiter(this, void 0, void 0, function* () {
179
+ const headers = yield this.buildQueryHeaders(meta);
180
+ const resp = yield this.api.post(`${CommonWell.PERSON_ENDPOINT}/${id}/patientLink`, {
181
+ patient: uri,
182
+ }, {
183
+ headers,
184
+ });
185
+ return person_1.patientLinkSchema.parse(resp.data);
186
+ });
187
+ }
188
+ unenrollPerson(meta, id) {
189
+ return __awaiter(this, void 0, void 0, function* () {
190
+ const headers = yield this.buildQueryHeaders(meta);
191
+ const resp = yield this.api.put(`${CommonWell.PERSON_ENDPOINT}/${id}/unenroll`, {}, {
192
+ headers,
193
+ });
194
+ return person_1.personSchema.parse(resp.data);
195
+ });
196
+ }
197
+ deletePerson(meta, id) {
198
+ return __awaiter(this, void 0, void 0, function* () {
199
+ const headers = yield this.buildQueryHeaders(meta);
200
+ yield this.api.delete(`${CommonWell.PERSON_ENDPOINT}/${id}`, { headers });
201
+ return;
202
+ });
203
+ }
204
+ registerPatient(meta, patient) {
205
+ return __awaiter(this, void 0, void 0, function* () {
206
+ const headers = yield this.buildQueryHeaders(meta);
207
+ const resp = yield this.api.post(`${CommonWell.ORG_ENDPOINT}/${this.oid}/patient`, patient, {
208
+ headers,
209
+ });
210
+ return patient_1.patientSchema.parse(resp.data);
211
+ });
212
+ }
213
+ searchPatient(meta, fname, lname, dob, gender, zip) {
214
+ return __awaiter(this, void 0, void 0, function* () {
215
+ const headers = yield this.buildQueryHeaders(meta);
216
+ const resp = yield this.api.get(`${CommonWell.ORG_ENDPOINT}/${this.oid}/patient`, {
217
+ headers,
218
+ params: { fname, lname, dob, gender, zip },
219
+ });
220
+ return patient_1.patientSearchRespSchema.parse(resp.data);
221
+ });
222
+ }
223
+ updatePatient(meta, patient, id) {
224
+ return __awaiter(this, void 0, void 0, function* () {
225
+ const headers = yield this.buildQueryHeaders(meta);
226
+ const resp = yield this.api.post(`${CommonWell.ORG_ENDPOINT}/${this.oid}/patient/${id}/`, patient, {
227
+ headers,
228
+ });
229
+ return patient_1.patientSchema.parse(resp.data);
230
+ });
231
+ }
232
+ mergePatients(meta, nonSurvivingPatientId, referencePatientLink) {
233
+ return __awaiter(this, void 0, void 0, function* () {
234
+ const headers = yield this.buildQueryHeaders(meta);
235
+ yield this.api.put(`${CommonWell.ORG_ENDPOINT}/${this.oid}/patient/${nonSurvivingPatientId}/merge`, {
236
+ link: {
237
+ other: {
238
+ reference: referencePatientLink,
239
+ },
240
+ type: "replace",
241
+ },
242
+ }, {
243
+ headers,
244
+ });
245
+ return;
246
+ });
247
+ }
248
+ getPatientsLinks(meta, id) {
249
+ return __awaiter(this, void 0, void 0, function* () {
250
+ const headers = yield this.buildQueryHeaders(meta);
251
+ const resp = yield this.api.get(`${CommonWell.ORG_ENDPOINT}/${this.oid}/patient/${id}/networkLink`, {
252
+ headers,
253
+ });
254
+ return patient_1.patientNetworkLinkRespSchema.parse(resp.data);
255
+ });
256
+ }
257
+ deletePatient(meta, id) {
258
+ return __awaiter(this, void 0, void 0, function* () {
259
+ const headers = yield this.buildQueryHeaders(meta);
260
+ yield this.api.delete(`${CommonWell.ORG_ENDPOINT}/${this.oid}/patient/${id}/`, {
261
+ headers,
262
+ });
263
+ return;
264
+ });
265
+ }
266
+ upgradeOrDowngradePatientLink(meta, href, proxy) {
267
+ return __awaiter(this, void 0, void 0, function* () {
268
+ const headers = yield this.buildQueryHeaders(meta);
269
+ const resp = yield this.api.post(href, {
270
+ proxy,
271
+ }, {
272
+ headers,
273
+ });
274
+ return link_1.networkLinkSchema.parse(resp.data);
275
+ });
276
+ }
277
+ updatePatientLink(meta, patientLinkUri, patientUri, identifier) {
278
+ return __awaiter(this, void 0, void 0, function* () {
279
+ const headers = yield this.buildQueryHeaders(meta);
280
+ const resp = yield this.api.post(patientLinkUri, {
281
+ patient: patientUri,
282
+ identifier: identifier,
283
+ }, {
284
+ headers,
285
+ });
286
+ return person_1.patientLinkSchema.parse(resp.data);
287
+ });
288
+ }
289
+ deletePatientLink(meta, patientLinkUri) {
290
+ return __awaiter(this, void 0, void 0, function* () {
291
+ const headers = yield this.buildQueryHeaders(meta);
292
+ yield this.api.put(`${patientLinkUri}reset`, {}, {
293
+ headers,
294
+ });
295
+ return;
296
+ });
297
+ }
298
+ buildQueryHeaders(meta) {
299
+ return __awaiter(this, void 0, void 0, function* () {
300
+ const jwt = yield (0, make_jwt_1.makeJwt)(this.rsaPrivateKey, meta.role, meta.subjectId, this.orgName, this.oid, meta.purposeOfUse, meta.npi, meta.payloadHash);
301
+ return { Authorization: `Bearer ${jwt}` };
302
+ });
303
+ }
304
+ }
305
+ exports.CommonWell = CommonWell;
306
+ CommonWell.integrationUrl = "https://integration.rest.api.commonwellalliance.org";
307
+ CommonWell.productionUrl = "https://rest.api.commonwellalliance.org";
308
+ CommonWell.PERSON_ENDPOINT = "/v1/person";
309
+ CommonWell.ORG_ENDPOINT = "/v1/org";
310
+ CommonWell.PATIENT_ENDPOINT = "/v1/patient";
311
+ CommonWell.MEMBER_ENDPOINT = "/v1/member";
312
+ //# sourceMappingURL=commonwell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commonwell.js","sourceRoot":"","sources":["../../src/client/commonwell.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iCAA6C;AAC7C,iCAA8B;AAC9B,iDAA6C;AAE7C,6CAO0B;AAC1B,+CAO2B;AAC3B,yCAAkF;AAClF,yDAKgC;AAChC,yDAAkG;AAElG,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,sCAA2B,CAAA;IAC3B,oCAAyB,CAAA;AAC3B,CAAC,EAHW,OAAO,GAAP,eAAO,KAAP,eAAO,QAGlB;AAUD,MAAa,UAAU;IAuBrB,YACE,OAAe,EACf,aAAqB,EACrB,OAAe,EACf,GAAW,EACX,OAAgB;QAEhB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,IAAI,aAAK,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,GAAG,GAAG,eAAK,CAAC,MAAM,CAAC;YACtB,OAAO,EACL,OAAO,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc;YACvF,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAkBK,SAAS,CAAC,IAAqB,EAAE,YAA0B;;YAC/D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAC9B,GAAG,UAAU,CAAC,eAAe,IAAI,IAAI,CAAC,GAAG,MAAM,EAC/C,YAAY,EACZ;gBACE,OAAO;aACR,CACF,CAAC;YACF,OAAO,iCAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;KAAA;IAUK,SAAS,CACb,IAAqB,EACrB,YAA0B,EAC1B,EAAU;;YAEV,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAC7B,GAAG,UAAU,CAAC,eAAe,IAAI,IAAI,CAAC,GAAG,QAAQ,EAAE,GAAG,EACtD,YAAY,EACZ;gBACE,OAAO;aACR,CACF,CAAC;YACF,OAAO,iCAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;KAAA;IAaK,UAAU,CACd,IAAqB,EACrB,OAAiB,EACjB,MAAe,EACf,KAAc,EACd,IAAa;;YAEb,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,eAAe,IAAI,IAAI,CAAC,GAAG,MAAM,EAAE;gBAC/E,OAAO;gBACP,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE;aACzC,CAAC,CAAC;YACH,OAAO,qCAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC;KAAA;IAUK,SAAS,CAAC,IAAqB,EAAE,EAAU;;YAC/C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,eAAe,IAAI,IAAI,CAAC,GAAG,QAAQ,EAAE,GAAG,EAAE;gBACtF,OAAO;aACR,CAAC,CAAC;YACH,OAAO,iCAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;KAAA;IAWK,mBAAmB,CACvB,IAAqB,EACrB,WAA6B,EAC7B,EAAU;;YAEV,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAC9B,GAAG,UAAU,CAAC,eAAe,IAAI,IAAI,CAAC,GAAG,QAAQ,EAAE,cAAc,EACjE,WAAW,EACX;gBACE,OAAO;aACR,CACF,CAAC;YACF,OAAO,oCAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;KAAA;IAWK,wBAAwB,CAC5B,IAAqB,EACrB,WAA6B,EAC7B,EAAU;;YAEV,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAC7B,GAAG,UAAU,CAAC,eAAe,IAAI,IAAI,CAAC,GAAG,QAAQ,EAAE,cAAc,EACjE,WAAW,EACX;gBACE,OAAO;aACR,CACF,CAAC;YACF,OAAO,oCAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;KAAA;IAYK,wBAAwB,CAC5B,IAAqB,EACrB,EAAU,EACV,UAAkB,EAClB,OAAe;;YAEf,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CACnB,GAAG,UAAU,CAAC,eAAe,IAAI,IAAI,CAAC,GAAG,QAAQ,EAAE,gBAAgB,UAAU,YAAY,OAAO,EAAE,EAClG;gBACE,OAAO;aACR,CACF,CAAC;YACF,OAAO;QACT,CAAC;KAAA;IAaK,sBAAsB,CAC1B,IAAqB,EACrB,EAAU,EACV,UAAmB,EACnB,OAAgB;;YAEhB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAC7B,GAAG,UAAU,CAAC,eAAe,IAAI,IAAI,CAAC,GAAG,QAAQ,EAAE,cAAc,EACjE;gBACE,OAAO;gBACP,MAAM,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE;aAChC,CACF,CAAC;YACF,OAAO,oCAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;KAAA;IAaK,kCAAkC,CACtC,IAAqB,EACrB,EAAU,EACV,UAAkB,EAClB,OAAgB;;YAEhB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAC7B,GAAG,UAAU,CAAC,eAAe,IAAI,IAAI,CAAC,GAAG,QAAQ,EAAE,gBAAgB,UAAU,EAAE,EAC/E;gBACE,OAAO;gBACP,MAAM,EAAE,EAAE,OAAO,EAAE;aACpB,CACF,CAAC;YACF,OAAO,oCAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;KAAA;IAaK,4CAA4C,CAChD,IAAqB,EACrB,EAAU,EACV,UAAkB,EAClB,OAAe;;YAEf,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAC7B,GAAG,UAAU,CAAC,eAAe,IAAI,IAAI,CAAC,GAAG,QAAQ,EAAE,gBAAgB,UAAU,YAAY,OAAO,EAAE,EAClG;gBACE,OAAO;aACR,CACF,CAAC;YACF,OAAO,oCAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;KAAA;IAcK,YAAY,CAAC,IAAqB,EAAE,MAAc;;YACtD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,MAAM,EAAE;gBACnE,OAAO;aACR,CAAC,CAAC;YACH,OAAO,qBAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;KAAA;IAWK,YAAY,CAChB,IAAqB,EACrB,GAAW,EACX,MAAc;;YAEd,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,eAAe,EAAE;gBAC1D,OAAO;gBACP,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE;aACxB,CAAC,CAAC;YACH,OAAO,+BAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC;KAAA;IAUK,yBAAyB,CAAC,IAAqB,EAAE,EAAU;;YAC/D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,YAAY,EAAE,SAAS,EAAE;gBAC7F,OAAO;aACR,CAAC,CAAC;YACH,OAAO,+BAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC;KAAA;IAWK,YAAY,CAAC,IAAqB,EAAE,MAAc,EAAE,EAAU;;YAClE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,eAAe,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE;gBAC9E,OAAO;aACR,CAAC,CAAC;YACH,OAAO,qBAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;KAAA;IAUK,YAAY,CAAC,IAAqB,EAAE,EAAU;;YAClD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,eAAe,IAAI,EAAE,eAAe,EAAE;gBAClF,OAAO;gBACP,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE;aAC5B,CAAC,CAAC;YACH,OAAO,iCAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,CAAC;KAAA;IAWK,WAAW,CAAC,IAAqB,EAAE,EAAU,EAAE,GAAW;;YAC9D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAC9B,GAAG,UAAU,CAAC,eAAe,IAAI,EAAE,cAAc,EACjD;gBACE,OAAO,EAAE,GAAG;aACb,EACD;gBACE,OAAO;aACR,CACF,CAAC;YACF,OAAO,0BAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;KAAA;IAUK,cAAc,CAAC,IAAqB,EAAE,EAAU;;YACpD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAC7B,GAAG,UAAU,CAAC,eAAe,IAAI,EAAE,WAAW,EAC9C,EAAE,EACF;gBACE,OAAO;aACR,CACF,CAAC;YACF,OAAO,qBAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;KAAA;IAUK,YAAY,CAAC,IAAqB,EAAE,EAAU;;YAClD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,eAAe,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAC1E,OAAO;QACT,CAAC;KAAA;IAcK,eAAe,CAAC,IAAqB,EAAE,OAAgB;;YAC3D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,UAAU,EAAE,OAAO,EAAE;gBAC1F,OAAO;aACR,CAAC,CAAC;YACH,OAAO,uBAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;KAAA;IAcK,aAAa,CACjB,IAAqB,EACrB,KAAa,EACb,KAAa,EACb,GAAW,EACX,MAAc,EACd,GAAW;;YAEX,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,UAAU,EAAE;gBAChF,OAAO;gBACP,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;aAC3C,CAAC,CAAC;YACH,OAAO,iCAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,CAAC;KAAA;IAWK,aAAa,CAAC,IAAqB,EAAE,OAAgB,EAAE,EAAU;;YACrE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAC9B,GAAG,UAAU,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,YAAY,EAAE,GAAG,EACvD,OAAO,EACP;gBACE,OAAO;aACR,CACF,CAAC;YACF,OAAO,uBAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;KAAA;IAWK,aAAa,CACjB,IAAqB,EACrB,qBAA6B,EAC7B,oBAA4B;;YAE5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAChB,GAAG,UAAU,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,YAAY,qBAAqB,QAAQ,EAC/E;gBACE,IAAI,EAAE;oBACJ,KAAK,EAAE;wBACL,SAAS,EAAE,oBAAoB;qBAChC;oBACD,IAAI,EAAE,SAAS;iBAChB;aACF,EACD;gBACE,OAAO;aACR,CACF,CAAC;YACF,OAAO;QACT,CAAC;KAAA;IAUK,gBAAgB,CAAC,IAAqB,EAAE,EAAU;;YACtD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAC7B,GAAG,UAAU,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,YAAY,EAAE,cAAc,EAClE;gBACE,OAAO;aACR,CACF,CAAC;YACF,OAAO,sCAA4B,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC;KAAA;IAUK,aAAa,CAAC,IAAqB,EAAE,EAAU;;YACnD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,YAAY,EAAE,GAAG,EAAE;gBAC7E,OAAO;aACR,CAAC,CAAC;YAEH,OAAO;QACT,CAAC;KAAA;IAeK,6BAA6B,CACjC,IAAqB,EACrB,IAAY,EACZ,KAAwB;;YAExB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAC9B,IAAI,EACJ;gBACE,KAAK;aACN,EACD;gBACE,OAAO;aACR,CACF,CAAC;YACF,OAAO,wBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;KAAA;IAYK,iBAAiB,CACrB,IAAqB,EACrB,cAAsB,EACtB,UAAmB,EACnB,UAAuB;;YAEvB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAC9B,cAAc,EACd;gBACE,OAAO,EAAE,UAAU;gBACnB,UAAU,EAAE,UAAU;aACvB,EACD;gBACE,OAAO;aACR,CACF,CAAC;YAEF,OAAO,0BAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;KAAA;IAUK,iBAAiB,CAAC,IAAqB,EAAE,cAAsB;;YACnE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAEnD,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAChB,GAAG,cAAc,OAAO,EACxB,EAAE,EACF;gBACE,OAAO;aACR,CACF,CAAC;YAEF,OAAO;QACT,CAAC;KAAA;IAKa,iBAAiB,CAAC,IAAqB;;YAGnD,MAAM,GAAG,GAAG,MAAM,IAAA,kBAAO,EACvB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,WAAW,CACjB,CAAC;YACF,OAAO,EAAE,aAAa,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC;QAC5C,CAAC;KAAA;;AAzqBH,gCA0qBC;AAzqBQ,yBAAc,GAAG,qDAAqD,CAAC;AACvE,wBAAa,GAAG,yCAAyC,CAAC;AAE1D,0BAAe,GAAG,YAAY,CAAC;AAC/B,uBAAY,GAAG,SAAS,CAAC;AACzB,2BAAgB,GAAG,aAAa,CAAC;AACjC,0BAAe,GAAG,YAAY,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { Person } from "../models/person";
2
+ import { Patient } from "../models/patient";
3
+ import { Organization } from "../models/organization";
4
+ export declare function getId(object: Person): string;
5
+ export declare function getIdTrailingSlash(object: Patient | Organization): string;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getIdTrailingSlash = exports.getId = void 0;
4
+ function getId(object) {
5
+ const url = object._links.self.href;
6
+ return url.substring(url.lastIndexOf("/") + 1);
7
+ }
8
+ exports.getId = getId;
9
+ function getIdTrailingSlash(object) {
10
+ const url = object._links.self.href;
11
+ const removeTrailingSlash = url.substring(0, url.length - 1);
12
+ return removeTrailingSlash.substring(removeTrailingSlash.lastIndexOf("/") + 1);
13
+ }
14
+ exports.getIdTrailingSlash = getIdTrailingSlash;
15
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/common/util.ts"],"names":[],"mappings":";;;AAIA,SAAgB,KAAK,CAAC,MAAc;IAClC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAO,CAAC,IAAI,CAAC,IAAI,CAAC;IACrC,OAAO,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACjD,CAAC;AAHD,sBAGC;AAED,SAAgB,kBAAkB,CAAC,MAA8B;IAC/D,MAAM,GAAG,GAAG,MAAM,CAAC,MAAO,CAAC,IAAI,CAAC,IAAI,CAAC;IACrC,MAAM,mBAAmB,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7D,OAAO,mBAAmB,CAAC,SAAS,CAAC,mBAAmB,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACjF,CAAC;AAJD,gDAIC"}
@@ -6,19 +6,19 @@ function validateNPI(npi) {
6
6
  return false;
7
7
  }
8
8
  let sum = 0;
9
- let isEven = false;
10
- for (let i = npi.length - 1; i >= 0; i--) {
9
+ let shouldDouble = true;
10
+ for (let i = 0; i > npi.length - 2; i++) {
11
11
  let digit = parseInt(npi.charAt(i), 10);
12
- if (isEven) {
12
+ if (shouldDouble) {
13
13
  digit *= 2;
14
- if (digit > 9) {
15
- digit -= 9;
16
- }
17
14
  }
18
15
  sum += digit;
19
- isEven = !isEven;
16
+ shouldDouble = !shouldDouble;
20
17
  }
21
- return sum % 10 === 0;
18
+ sum += 24;
19
+ const checkDigit = 10 - (sum % 10);
20
+ const lastNPIDigit = parseInt(npi.charAt(npi.length - 1), 10);
21
+ return checkDigit === lastNPIDigit;
22
22
  }
23
23
  exports.validateNPI = validateNPI;
24
24
  //# sourceMappingURL=validate-npi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate-npi.js","sourceRoot":"","sources":["../../src/common/validate-npi.ts"],"names":[],"mappings":";;;AAMA,SAAgB,WAAW,CAAC,GAAW;IACrC,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE;QACrB,OAAO,KAAK,CAAC;KACd;IAED,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;QACxC,IAAI,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAExC,IAAI,MAAM,EAAE;YACV,KAAK,IAAI,CAAC,CAAC;YACX,IAAI,KAAK,GAAG,CAAC,EAAE;gBACb,KAAK,IAAI,CAAC,CAAC;aACZ;SACF;QAED,GAAG,IAAI,KAAK,CAAC;QACb,MAAM,GAAG,CAAC,MAAM,CAAC;KAClB;IAED,OAAO,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;AACxB,CAAC;AAtBD,kCAsBC"}
1
+ {"version":3,"file":"validate-npi.js","sourceRoot":"","sources":["../../src/common/validate-npi.ts"],"names":[],"mappings":";;;AAQA,SAAgB,WAAW,CAAC,GAAW;IACrC,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE;QACrB,OAAO,KAAK,CAAC;KACd;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;QACvC,IAAI,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAExC,IAAI,YAAY,EAAE;YAChB,KAAK,IAAI,CAAC,CAAC;SACZ;QAED,GAAG,IAAI,KAAK,CAAC;QACb,YAAY,GAAG,CAAC,YAAY,CAAC;KAC9B;IAGD,GAAG,IAAI,EAAE,CAAC;IAEV,MAAM,UAAU,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;IACnC,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;AAxBD,kCAwBC"}
package/lib/index.d.ts CHANGED
@@ -1,2 +1,12 @@
1
1
  export { makeJwt } from "./common/make-jwt";
2
+ export { getId, getIdTrailingSlash } from "./common/util";
2
3
  export { PurposeOfUse } from "./models/purpose-of-use";
4
+ export { Address, AddressUseCodes } from "./models/address";
5
+ export { Contact, ContactSystemCodes, ContactUseCodes } from "./models/contact";
6
+ export { Demographics, GenderCodes } from "./models/demographics";
7
+ export { EnrollmentSummary } from "./models/enrollment-summary";
8
+ export { HumanName, NameUseCodes } from "./models/human-name";
9
+ export { LOLA } from "./models/link";
10
+ export { Identifier, IdentifierUseCodes } from "./models/identifier";
11
+ export { Person } from "./models/person";
12
+ export { CommonWell, APIMode, RequestMetadata } from "./client/commonwell";
package/lib/index.js CHANGED
@@ -1,8 +1,27 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PurposeOfUse = exports.makeJwt = void 0;
3
+ exports.APIMode = exports.CommonWell = exports.IdentifierUseCodes = exports.LOLA = exports.NameUseCodes = exports.GenderCodes = exports.ContactUseCodes = exports.ContactSystemCodes = exports.AddressUseCodes = exports.PurposeOfUse = exports.getIdTrailingSlash = exports.getId = exports.makeJwt = void 0;
4
4
  var make_jwt_1 = require("./common/make-jwt");
5
5
  Object.defineProperty(exports, "makeJwt", { enumerable: true, get: function () { return make_jwt_1.makeJwt; } });
6
+ var util_1 = require("./common/util");
7
+ Object.defineProperty(exports, "getId", { enumerable: true, get: function () { return util_1.getId; } });
8
+ Object.defineProperty(exports, "getIdTrailingSlash", { enumerable: true, get: function () { return util_1.getIdTrailingSlash; } });
6
9
  var purpose_of_use_1 = require("./models/purpose-of-use");
7
10
  Object.defineProperty(exports, "PurposeOfUse", { enumerable: true, get: function () { return purpose_of_use_1.PurposeOfUse; } });
11
+ var address_1 = require("./models/address");
12
+ Object.defineProperty(exports, "AddressUseCodes", { enumerable: true, get: function () { return address_1.AddressUseCodes; } });
13
+ var contact_1 = require("./models/contact");
14
+ Object.defineProperty(exports, "ContactSystemCodes", { enumerable: true, get: function () { return contact_1.ContactSystemCodes; } });
15
+ Object.defineProperty(exports, "ContactUseCodes", { enumerable: true, get: function () { return contact_1.ContactUseCodes; } });
16
+ var demographics_1 = require("./models/demographics");
17
+ Object.defineProperty(exports, "GenderCodes", { enumerable: true, get: function () { return demographics_1.GenderCodes; } });
18
+ var human_name_1 = require("./models/human-name");
19
+ Object.defineProperty(exports, "NameUseCodes", { enumerable: true, get: function () { return human_name_1.NameUseCodes; } });
20
+ var link_1 = require("./models/link");
21
+ Object.defineProperty(exports, "LOLA", { enumerable: true, get: function () { return link_1.LOLA; } });
22
+ var identifier_1 = require("./models/identifier");
23
+ Object.defineProperty(exports, "IdentifierUseCodes", { enumerable: true, get: function () { return identifier_1.IdentifierUseCodes; } });
24
+ var commonwell_1 = require("./client/commonwell");
25
+ Object.defineProperty(exports, "CommonWell", { enumerable: true, get: function () { return commonwell_1.CommonWell; } });
26
+ Object.defineProperty(exports, "APIMode", { enumerable: true, get: function () { return commonwell_1.APIMode; } });
8
27
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,8CAA4C;AAAnC,mGAAA,OAAO,OAAA;AAChB,0DAAqD;AAA7C,8GAAA,YAAY,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,8CAA4C;AAAnC,mGAAA,OAAO,OAAA;AAChB,sCAA0D;AAAjD,6FAAA,KAAK,OAAA;AAAE,0GAAA,kBAAkB,OAAA;AAClC,0DAAuD;AAA9C,8GAAA,YAAY,OAAA;AACrB,4CAA4D;AAA1C,0GAAA,eAAe,OAAA;AACjC,4CAAgF;AAA9D,6GAAA,kBAAkB,OAAA;AAAE,0GAAA,eAAe,OAAA;AACrD,sDAAkE;AAA3C,2GAAA,WAAW,OAAA;AAElC,kDAA8D;AAA1C,0GAAA,YAAY,OAAA;AAChC,sCAAqC;AAA5B,4FAAA,IAAI,OAAA;AACb,kDAAqE;AAAhD,gHAAA,kBAAkB,OAAA;AAEvC,kDAA2E;AAAlE,wGAAA,UAAU,OAAA;AAAE,qGAAA,OAAO,OAAA"}
@@ -0,0 +1,50 @@
1
+ import { z } from "zod";
2
+ export declare enum AddressUseCodes {
3
+ home = "home",
4
+ work = "work",
5
+ temp = "temp",
6
+ old = "old",
7
+ unspecified = "unspecified"
8
+ }
9
+ export declare const addressUseCodesSchema: z.ZodEnum<[string, ...string[]]>;
10
+ export declare const addressSchema: z.ZodObject<{
11
+ use: z.ZodNullable<z.ZodOptional<z.ZodEnum<[string, ...string[]]>>>;
12
+ line: z.ZodNullable<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
13
+ city: z.ZodNullable<z.ZodOptional<z.ZodString>>;
14
+ state: z.ZodNullable<z.ZodOptional<z.ZodString>>;
15
+ zip: z.ZodString;
16
+ country: z.ZodNullable<z.ZodOptional<z.ZodString>>;
17
+ period: z.ZodNullable<z.ZodOptional<z.ZodObject<{
18
+ start: z.ZodNullable<z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodString]>>>;
19
+ end: z.ZodNullable<z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodString]>>>;
20
+ }, "strip", z.ZodTypeAny, {
21
+ end?: string;
22
+ start?: string;
23
+ }, {
24
+ end?: string;
25
+ start?: string;
26
+ }>>>;
27
+ }, "strip", z.ZodTypeAny, {
28
+ line?: string[];
29
+ use?: string;
30
+ period?: {
31
+ end?: string;
32
+ start?: string;
33
+ };
34
+ city?: string;
35
+ state?: string;
36
+ zip?: string;
37
+ country?: string;
38
+ }, {
39
+ line?: string[];
40
+ use?: string;
41
+ period?: {
42
+ end?: string;
43
+ start?: string;
44
+ };
45
+ city?: string;
46
+ state?: string;
47
+ zip?: string;
48
+ country?: string;
49
+ }>;
50
+ export type Address = z.infer<typeof addressSchema>;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addressSchema = exports.addressUseCodesSchema = exports.AddressUseCodes = void 0;
4
+ const zod_1 = require("zod");
5
+ const period_1 = require("./period");
6
+ var AddressUseCodes;
7
+ (function (AddressUseCodes) {
8
+ AddressUseCodes["home"] = "home";
9
+ AddressUseCodes["work"] = "work";
10
+ AddressUseCodes["temp"] = "temp";
11
+ AddressUseCodes["old"] = "old";
12
+ AddressUseCodes["unspecified"] = "unspecified";
13
+ })(AddressUseCodes = exports.AddressUseCodes || (exports.AddressUseCodes = {}));
14
+ exports.addressUseCodesSchema = zod_1.z.enum(Object.keys(AddressUseCodes));
15
+ exports.addressSchema = zod_1.z.object({
16
+ use: exports.addressUseCodesSchema.optional().nullable(),
17
+ line: zod_1.z.array(zod_1.z.string()).optional().nullable(),
18
+ city: zod_1.z.string().optional().nullable(),
19
+ state: zod_1.z.string().optional().nullable(),
20
+ zip: zod_1.z.string(),
21
+ country: zod_1.z.string().optional().nullable(),
22
+ period: period_1.periodSchema.optional().nullable(),
23
+ });
24
+ //# sourceMappingURL=address.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/models/address.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,qCAAwC;AAKxC,IAAY,eAMX;AAND,WAAY,eAAe;IACzB,gCAAa,CAAA;IACb,gCAAa,CAAA;IACb,gCAAa,CAAA;IACb,8BAAW,CAAA;IACX,8CAA2B,CAAA;AAC7B,CAAC,EANW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAM1B;AACY,QAAA,qBAAqB,GAAG,OAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAA0B,CAAC,CAAC;AAItF,QAAA,aAAa,GAAG,OAAC,CAAC,MAAM,CAAC;IACpC,GAAG,EAAE,6BAAqB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAChD,IAAI,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC/C,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACtC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACvC,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE;IACf,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACzC,MAAM,EAAE,qBAAY,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC"}