@oystehr/sdk 4.0.0-alpha.4 → 4.0.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 (162) hide show
  1. package/dist/cjs/client/client.cjs +259 -0
  2. package/dist/cjs/client/client.cjs.map +1 -0
  3. package/dist/cjs/errors/index.cjs +58 -0
  4. package/dist/cjs/errors/index.cjs.map +1 -0
  5. package/dist/cjs/index.cjs +11 -1980
  6. package/dist/cjs/index.cjs.map +1 -1
  7. package/dist/cjs/index.min.cjs +1 -1
  8. package/dist/cjs/index.min.cjs.map +1 -1
  9. package/dist/cjs/resources/classes/application.cjs +88 -0
  10. package/dist/cjs/resources/classes/application.cjs.map +1 -0
  11. package/dist/cjs/resources/classes/charge.cjs +44 -0
  12. package/dist/cjs/resources/classes/charge.cjs.map +1 -0
  13. package/dist/cjs/resources/classes/conversation-ext.cjs +31 -0
  14. package/dist/cjs/resources/classes/conversation-ext.cjs.map +1 -0
  15. package/dist/cjs/resources/classes/conversation.cjs +84 -0
  16. package/dist/cjs/resources/classes/conversation.cjs.map +1 -0
  17. package/dist/cjs/resources/classes/developer.cjs +72 -0
  18. package/dist/cjs/resources/classes/developer.cjs.map +1 -0
  19. package/dist/cjs/resources/classes/erx.cjs +88 -0
  20. package/dist/cjs/resources/classes/erx.cjs.map +1 -0
  21. package/dist/cjs/resources/classes/erx.d.ts +5 -1
  22. package/dist/cjs/resources/classes/erxV1.cjs +46 -0
  23. package/dist/cjs/resources/classes/erxV1.cjs.map +1 -0
  24. package/dist/cjs/resources/classes/erxV2.cjs +22 -0
  25. package/dist/cjs/resources/classes/erxV2.cjs.map +1 -0
  26. package/dist/cjs/resources/classes/fax.cjs +46 -0
  27. package/dist/cjs/resources/classes/fax.cjs.map +1 -0
  28. package/dist/cjs/resources/classes/fhir-ext.cjs +200 -0
  29. package/dist/cjs/resources/classes/fhir-ext.cjs.map +1 -0
  30. package/dist/cjs/resources/classes/fhir-ext.d.ts +8 -8
  31. package/dist/cjs/resources/classes/fhir.cjs +34 -0
  32. package/dist/cjs/resources/classes/fhir.cjs.map +1 -0
  33. package/dist/cjs/resources/classes/fhir.d.ts +2 -2
  34. package/dist/cjs/resources/classes/index.cjs +88 -0
  35. package/dist/cjs/resources/classes/index.cjs.map +1 -0
  36. package/dist/cjs/resources/classes/lab.cjs +76 -0
  37. package/dist/cjs/resources/classes/lab.cjs.map +1 -0
  38. package/dist/cjs/resources/classes/m2m.cjs +81 -0
  39. package/dist/cjs/resources/classes/m2m.cjs.map +1 -0
  40. package/dist/cjs/resources/classes/messaging.cjs +22 -0
  41. package/dist/cjs/resources/classes/messaging.cjs.map +1 -0
  42. package/dist/cjs/resources/classes/paymentMethod.cjs +88 -0
  43. package/dist/cjs/resources/classes/paymentMethod.cjs.map +1 -0
  44. package/dist/cjs/resources/classes/project.cjs +34 -0
  45. package/dist/cjs/resources/classes/project.cjs.map +1 -0
  46. package/dist/cjs/resources/classes/rcm.cjs +55 -0
  47. package/dist/cjs/resources/classes/rcm.cjs.map +1 -0
  48. package/dist/cjs/resources/classes/role.cjs +62 -0
  49. package/dist/cjs/resources/classes/role.cjs.map +1 -0
  50. package/dist/cjs/resources/classes/secret.cjs +52 -0
  51. package/dist/cjs/resources/classes/secret.cjs.map +1 -0
  52. package/dist/cjs/resources/classes/telemed.cjs +43 -0
  53. package/dist/cjs/resources/classes/telemed.cjs.map +1 -0
  54. package/dist/cjs/resources/classes/transactionalSMS.cjs +34 -0
  55. package/dist/cjs/resources/classes/transactionalSMS.cjs.map +1 -0
  56. package/dist/cjs/resources/classes/user.cjs +80 -0
  57. package/dist/cjs/resources/classes/user.cjs.map +1 -0
  58. package/dist/cjs/resources/classes/version.cjs +22 -0
  59. package/dist/cjs/resources/classes/version.cjs.map +1 -0
  60. package/dist/cjs/resources/classes/z3-ext.cjs +81 -0
  61. package/dist/cjs/resources/classes/z3-ext.cjs.map +1 -0
  62. package/dist/cjs/resources/classes/z3.cjs +88 -0
  63. package/dist/cjs/resources/classes/z3.cjs.map +1 -0
  64. package/dist/cjs/resources/classes/zambda-ext.cjs +15 -0
  65. package/dist/cjs/resources/classes/zambda-ext.cjs.map +1 -0
  66. package/dist/cjs/resources/classes/zambda.cjs +89 -0
  67. package/dist/cjs/resources/classes/zambda.cjs.map +1 -0
  68. package/dist/cjs/resources/classes/zambdaLogStream.cjs +43 -0
  69. package/dist/cjs/resources/classes/zambdaLogStream.cjs.map +1 -0
  70. package/dist/cjs/resources/types/ErxGetConfigurationResponse.d.ts +9 -0
  71. package/dist/cjs/resources/types/ZambdaCreateParams.d.ts +12 -0
  72. package/dist/cjs/resources/types/ZambdaFunction.d.ts +8 -0
  73. package/dist/cjs/resources/types/ZambdaUpdateParams.d.ts +8 -0
  74. package/dist/cjs/resources/types/fhir.d.ts +12 -12
  75. package/dist/cjs/resources/types/index.d.ts +1 -0
  76. package/dist/esm/client/client.js +68 -67
  77. package/dist/esm/client/client.js.map +1 -1
  78. package/dist/esm/errors/index.js +3 -2
  79. package/dist/esm/errors/index.js.map +1 -1
  80. package/dist/esm/index.js +2 -2
  81. package/dist/esm/index.js.map +1 -1
  82. package/dist/esm/index.min.js +1 -1
  83. package/dist/esm/index.min.js.map +1 -1
  84. package/dist/esm/resources/classes/application.js +11 -15
  85. package/dist/esm/resources/classes/application.js.map +1 -1
  86. package/dist/esm/resources/classes/charge.js +5 -9
  87. package/dist/esm/resources/classes/charge.js.map +1 -1
  88. package/dist/esm/resources/classes/conversation-ext.js +4 -5
  89. package/dist/esm/resources/classes/conversation-ext.js.map +1 -1
  90. package/dist/esm/resources/classes/conversation.js +16 -20
  91. package/dist/esm/resources/classes/conversation.js.map +1 -1
  92. package/dist/esm/resources/classes/developer.js +9 -13
  93. package/dist/esm/resources/classes/developer.js.map +1 -1
  94. package/dist/esm/resources/classes/erx.d.ts +5 -1
  95. package/dist/esm/resources/classes/erx.js +20 -18
  96. package/dist/esm/resources/classes/erx.js.map +1 -1
  97. package/dist/esm/resources/classes/erxV1.js +8 -12
  98. package/dist/esm/resources/classes/erxV1.js.map +1 -1
  99. package/dist/esm/resources/classes/erxV2.js +4 -8
  100. package/dist/esm/resources/classes/erxV2.js.map +1 -1
  101. package/dist/esm/resources/classes/fax.js +6 -10
  102. package/dist/esm/resources/classes/fax.js.map +1 -1
  103. package/dist/esm/resources/classes/fhir-ext.d.ts +8 -8
  104. package/dist/esm/resources/classes/fhir-ext.js +71 -62
  105. package/dist/esm/resources/classes/fhir-ext.js.map +1 -1
  106. package/dist/esm/resources/classes/fhir.d.ts +2 -2
  107. package/dist/esm/resources/classes/fhir.js +20 -20
  108. package/dist/esm/resources/classes/fhir.js.map +1 -1
  109. package/dist/esm/resources/classes/index.js +28 -5
  110. package/dist/esm/resources/classes/index.js.map +1 -1
  111. package/dist/esm/resources/classes/lab.js +9 -13
  112. package/dist/esm/resources/classes/lab.js.map +1 -1
  113. package/dist/esm/resources/classes/m2m.js +10 -14
  114. package/dist/esm/resources/classes/m2m.js.map +1 -1
  115. package/dist/esm/resources/classes/messaging.js +4 -8
  116. package/dist/esm/resources/classes/messaging.js.map +1 -1
  117. package/dist/esm/resources/classes/paymentMethod.js +7 -11
  118. package/dist/esm/resources/classes/paymentMethod.js.map +1 -1
  119. package/dist/esm/resources/classes/project.js +5 -9
  120. package/dist/esm/resources/classes/project.js.map +1 -1
  121. package/dist/esm/resources/classes/rcm.js +6 -10
  122. package/dist/esm/resources/classes/rcm.js.map +1 -1
  123. package/dist/esm/resources/classes/role.js +8 -12
  124. package/dist/esm/resources/classes/role.js.map +1 -1
  125. package/dist/esm/resources/classes/secret.js +7 -11
  126. package/dist/esm/resources/classes/secret.js.map +1 -1
  127. package/dist/esm/resources/classes/telemed.js +5 -9
  128. package/dist/esm/resources/classes/telemed.js.map +1 -1
  129. package/dist/esm/resources/classes/transactionalSMS.js +4 -8
  130. package/dist/esm/resources/classes/transactionalSMS.js.map +1 -1
  131. package/dist/esm/resources/classes/user.js +10 -14
  132. package/dist/esm/resources/classes/user.js.map +1 -1
  133. package/dist/esm/resources/classes/version.js +4 -8
  134. package/dist/esm/resources/classes/version.js.map +1 -1
  135. package/dist/esm/resources/classes/z3-ext.js +47 -56
  136. package/dist/esm/resources/classes/z3-ext.js.map +1 -1
  137. package/dist/esm/resources/classes/z3.js +26 -30
  138. package/dist/esm/resources/classes/z3.js.map +1 -1
  139. package/dist/esm/resources/classes/zambda-ext.js +6 -11
  140. package/dist/esm/resources/classes/zambda-ext.js.map +1 -1
  141. package/dist/esm/resources/classes/zambda.js +12 -16
  142. package/dist/esm/resources/classes/zambda.js.map +1 -1
  143. package/dist/esm/resources/classes/zambdaLogStream.js +6 -10
  144. package/dist/esm/resources/classes/zambdaLogStream.js.map +1 -1
  145. package/dist/esm/resources/types/ErxGetConfigurationResponse.d.ts +9 -0
  146. package/dist/esm/resources/types/ZambdaCreateParams.d.ts +12 -0
  147. package/dist/esm/resources/types/ZambdaFunction.d.ts +8 -0
  148. package/dist/esm/resources/types/ZambdaUpdateParams.d.ts +8 -0
  149. package/dist/esm/resources/types/fhir.d.ts +12 -12
  150. package/dist/esm/resources/types/index.d.ts +1 -0
  151. package/package.json +4 -3
  152. package/rollup.config-cjs.mjs +97 -18
  153. package/src/resources/classes/erx.ts +7 -0
  154. package/src/resources/classes/fhir-ext.ts +6 -6
  155. package/src/resources/types/ErxGetConfigurationResponse.ts +11 -0
  156. package/src/resources/types/ZambdaCreateParams.ts +12 -0
  157. package/src/resources/types/ZambdaFunction.ts +8 -0
  158. package/src/resources/types/ZambdaUpdateParams.ts +8 -0
  159. package/src/resources/types/fhir.ts +12 -12
  160. package/src/resources/types/index.ts +1 -0
  161. package/dist/esm/node_modules/tslib/tslib.es6.js +0 -40
  162. package/dist/esm/node_modules/tslib/tslib.es6.js.map +0 -1
@@ -0,0 +1,46 @@
1
+ 'use strict';
2
+
3
+ var client = require('../../client/client.cjs');
4
+
5
+ // AUTOGENERATED -- DO NOT EDIT
6
+ class Fax extends client.SDKResource {
7
+ constructor(config) {
8
+ super(config);
9
+ }
10
+ #baseUrlThunk() {
11
+ return this.config.services?.['faxApiUrl'] ?? 'https://fax-api.zapehr.com/v1';
12
+ }
13
+ /**
14
+ * Offboard a fax number. Oystehr's [offboard](https://docs.oystehr.com/oystehr/services/fax/number/) feature makes it easy to stop using the fax service and release the project's assigned fax number with a single API call. Please note there is no way to guarantee getting the same number back again, so if you think this can break your project in any way we recommend not offboarding and avoid sending faxes until you're sure.
15
+ *
16
+ * Access Policy Requirements:
17
+ * Action: `Fax:Offboard`
18
+ * Access Policy Resource: `Fax:Number`
19
+ */
20
+ offboard(request) {
21
+ return this.request('/offboard', 'post', this.#baseUrlThunk.bind(this))(request);
22
+ }
23
+ /**
24
+ * Onboard a fax number. Oystehr's [onboard](https://docs.oystehr.com/oystehr/services/fax/number/) feature makes it easy to start using the fax service and purchase a new fax number for your project with a single API call.
25
+ *
26
+ * Access Policy Requirements:
27
+ * Action: `Fax:Onboard`
28
+ * Access Policy Resource: `Fax:Number`
29
+ */
30
+ onboard(request) {
31
+ return this.request('/onboard', 'post', this.#baseUrlThunk.bind(this))(request);
32
+ }
33
+ /**
34
+ * Send a fax. Oystehr's [fax sending](https://docs.oystehr.com/oystehr/services/fax/send/) feature makes it easy to send a fax to a chosen recipient with a single API call. You can use this feature to send referrals, medical records, prescriptions, and other documents that require fax transmission e.g. for HIPAA compliance.
35
+ *
36
+ * Access Policy Requirements:
37
+ * Action: `Fax:Send`
38
+ * Access Policy Resource: `Fax:Fax`
39
+ */
40
+ send(params, request) {
41
+ return this.request('/send', 'post', this.#baseUrlThunk.bind(this))(params, request);
42
+ }
43
+ }
44
+
45
+ exports.Fax = Fax;
46
+ //# sourceMappingURL=fax.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fax.cjs","sources":["../../../../src/resources/classes/fax.ts"],"sourcesContent":["// AUTOGENERATED -- DO NOT EDIT\n\nimport { FaxSendParams, FaxSendResponse, OystehrClientRequest } from '../..';\nimport { SDKResource } from '../../client/client';\nimport { OystehrConfig } from '../../config';\n\nexport class Fax extends SDKResource {\n constructor(config: OystehrConfig) {\n super(config);\n }\n #baseUrlThunk(): string {\n return this.config.services?.['faxApiUrl'] ?? 'https://fax-api.zapehr.com/v1';\n }\n /**\n * Offboard a fax number. Oystehr's [offboard](https://docs.oystehr.com/oystehr/services/fax/number/) feature makes it easy to stop using the fax service and release the project's assigned fax number with a single API call. Please note there is no way to guarantee getting the same number back again, so if you think this can break your project in any way we recommend not offboarding and avoid sending faxes until you're sure.\n *\n * Access Policy Requirements:\n * Action: `Fax:Offboard`\n * Access Policy Resource: `Fax:Number`\n */\n offboard(request?: OystehrClientRequest): Promise<void> {\n return this.request('/offboard', 'post', this.#baseUrlThunk.bind(this))(request);\n }\n /**\n * Onboard a fax number. Oystehr's [onboard](https://docs.oystehr.com/oystehr/services/fax/number/) feature makes it easy to start using the fax service and purchase a new fax number for your project with a single API call.\n *\n * Access Policy Requirements:\n * Action: `Fax:Onboard`\n * Access Policy Resource: `Fax:Number`\n */\n onboard(request?: OystehrClientRequest): Promise<void> {\n return this.request('/onboard', 'post', this.#baseUrlThunk.bind(this))(request);\n }\n /**\n * Send a fax. Oystehr's [fax sending](https://docs.oystehr.com/oystehr/services/fax/send/) feature makes it easy to send a fax to a chosen recipient with a single API call. You can use this feature to send referrals, medical records, prescriptions, and other documents that require fax transmission e.g. for HIPAA compliance.\n *\n * Access Policy Requirements:\n * Action: `Fax:Send`\n * Access Policy Resource: `Fax:Fax`\n */\n send(params: FaxSendParams, request?: OystehrClientRequest): Promise<FaxSendResponse> {\n return this.request('/send', 'post', this.#baseUrlThunk.bind(this))(params, request);\n }\n}\n"],"names":["SDKResource"],"mappings":";;;;AAAA;AAMM,MAAO,GAAI,SAAQA,kBAAW,CAAA;AAClC,IAAA,WAAA,CAAY,MAAqB,EAAA;QAC/B,KAAK,CAAC,MAAM,CAAC,CAAC;KACf;IACD,aAAa,GAAA;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,+BAA+B,CAAC;KAC/E;AACD;;;;;;AAMG;AACH,IAAA,QAAQ,CAAC,OAA8B,EAAA;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;KAClF;AACD;;;;;;AAMG;AACH,IAAA,OAAO,CAAC,OAA8B,EAAA;QACpC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;KACjF;AACD;;;;;;AAMG;IACH,IAAI,CAAC,MAAqB,EAAE,OAA8B,EAAA;QACxD,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACtF;AACF;;;;"}
@@ -0,0 +1,200 @@
1
+ 'use strict';
2
+
3
+ var client = require('../../client/client.cjs');
4
+
5
+ /**
6
+ * Performs a FHIR search and returns the results as a Bundle resource
7
+ *
8
+ * @param options FHIR resource type and FHIR search parameters
9
+ * @param request optional OystehrClientRequest object
10
+ * @returns FHIR Bundle resource
11
+ */
12
+ async function search(params, request) {
13
+ const { resourceType, params: searchParams } = params;
14
+ let paramMap;
15
+ if (searchParams) {
16
+ paramMap = Object.entries(searchParams).reduce((acc, [_, param]) => {
17
+ if (!acc[param.name]) {
18
+ acc[param.name] = [];
19
+ }
20
+ acc[param.name].push(param.value);
21
+ return acc;
22
+ }, {});
23
+ }
24
+ const requestBundle = await this.fhirRequest(`/${resourceType}/_search`, 'POST')(paramMap, {
25
+ ...request,
26
+ contentType: 'application/x-www-form-urlencoded',
27
+ });
28
+ const bundle = {
29
+ ...requestBundle,
30
+ entry: requestBundle.entry,
31
+ unbundle: function () {
32
+ return this.entry?.map((entry) => entry.resource).filter((entry) => entry !== undefined) ?? [];
33
+ },
34
+ };
35
+ return bundle;
36
+ }
37
+ async function create(params, request) {
38
+ const { resourceType } = params;
39
+ return this.fhirRequest(`/${resourceType}`, 'POST')(params, request);
40
+ }
41
+ async function get({ resourceType, id }, request) {
42
+ return this.fhirRequest(`/${resourceType}/${id}`, 'GET')({}, request);
43
+ }
44
+ async function update(params, request) {
45
+ const { id, resourceType } = params;
46
+ return this.fhirRequest(`/${resourceType}/${id}`, 'PUT')(params, {
47
+ ...request,
48
+ ifMatch: request?.optimisticLockingVersionId ? `W/"${request.optimisticLockingVersionId}"` : undefined,
49
+ });
50
+ }
51
+ async function patch({ resourceType, id, operations }, request) {
52
+ return this.fhirRequest(`/${resourceType}/${id}`, 'PATCH')(operations, {
53
+ ...request,
54
+ contentType: 'application/json-patch+json',
55
+ ifMatch: request?.optimisticLockingVersionId ? `W/"${request.optimisticLockingVersionId}"` : undefined,
56
+ });
57
+ }
58
+ async function del({ resourceType, id }, request) {
59
+ return this.fhirRequest(`/${resourceType}/${id}`, 'DELETE')({}, request);
60
+ }
61
+ async function history({ resourceType, id, versionId }, request) {
62
+ return this.fhirRequest(`/${resourceType}/${id}/_history${versionId ? `/${versionId}` : ''}`, 'GET')({}, request);
63
+ }
64
+ function batchInputRequestToBundleEntryItem(request) {
65
+ const { method, url } = request;
66
+ const baseRequest = {
67
+ request: {
68
+ method,
69
+ url,
70
+ },
71
+ };
72
+ // Escape query string parameters in entry.request.url
73
+ if (url.split('?').length > 1) {
74
+ const [resource, query] = url.split('?');
75
+ const params = query
76
+ .split('&')
77
+ .map((param) => {
78
+ const [name, value] = param.split('=');
79
+ return { name, value };
80
+ })
81
+ .reduce((acc, { name, value }) => {
82
+ if (!name) {
83
+ return acc;
84
+ }
85
+ if (!acc[name]) {
86
+ acc[name] = [];
87
+ }
88
+ acc[name].push(value);
89
+ return acc;
90
+ }, {});
91
+ const search = new URLSearchParams();
92
+ client.addParamsToSearch(params, search);
93
+ baseRequest.request.url = `${resource}?${search.toString()}`;
94
+ }
95
+ // GET, DELETE, and HEAD require no further parameters
96
+ if (['GET', 'DELETE', 'HEAD'].includes(method)) {
97
+ return baseRequest;
98
+ }
99
+ // PUT updates require a full resource
100
+ if (method === 'PUT') {
101
+ const { resource } = request;
102
+ return {
103
+ ...baseRequest,
104
+ resource: resource,
105
+ };
106
+ }
107
+ // PATCH can be Binary resource or JSON patch
108
+ if (method === 'PATCH') {
109
+ if ('resource' in request) {
110
+ return {
111
+ ...baseRequest,
112
+ resource: request.resource,
113
+ };
114
+ }
115
+ return {
116
+ ...baseRequest,
117
+ resource: {
118
+ resourceType: 'Binary',
119
+ contentType: 'application/json-patch+json',
120
+ data: Buffer.from(JSON.stringify(request.operations), 'utf8').toString('base64'),
121
+ },
122
+ };
123
+ }
124
+ // POST creates require a full resource
125
+ if (method === 'POST') {
126
+ const { resource, fullUrl } = request;
127
+ return {
128
+ ...baseRequest,
129
+ resource: resource,
130
+ fullUrl,
131
+ };
132
+ }
133
+ throw new Error('Unrecognized method');
134
+ }
135
+ function bundleRequest(type) {
136
+ return async function (input, request) {
137
+ return this.fhirRequest('/', 'POST')({
138
+ resourceType: 'Bundle',
139
+ type,
140
+ entry: input.requests.map(batchInputRequestToBundleEntryItem),
141
+ }, request);
142
+ };
143
+ }
144
+ const batch = bundleRequest('batch');
145
+ const transaction = bundleRequest('transaction');
146
+ function formatAddress(address, options) {
147
+ const builder = [];
148
+ if (address.line) {
149
+ builder.push(...address.line);
150
+ }
151
+ if (address.city || address.state || address.postalCode) {
152
+ const cityStateZip = [];
153
+ if (address.city) {
154
+ cityStateZip.push(address.city);
155
+ }
156
+ if (address.state) {
157
+ cityStateZip.push(address.state);
158
+ }
159
+ if (address.postalCode) {
160
+ cityStateZip.push(address.postalCode);
161
+ }
162
+ builder.push(cityStateZip.join(', '));
163
+ }
164
+ if (address.use && (options?.all || options?.use)) {
165
+ builder.push('[' + address.use + ']');
166
+ }
167
+ return builder.join(options?.lineSeparator || ', ').trim();
168
+ }
169
+ function formatHumanName(name, options) {
170
+ const builder = [];
171
+ if (name.prefix && options?.prefix !== false) {
172
+ builder.push(...name.prefix);
173
+ }
174
+ if (name.given) {
175
+ builder.push(...name.given);
176
+ }
177
+ if (name.family) {
178
+ builder.push(name.family);
179
+ }
180
+ if (name.suffix && options?.suffix !== false) {
181
+ builder.push(...name.suffix);
182
+ }
183
+ if (name.use && (options?.all || options?.use)) {
184
+ builder.push('[' + name.use + ']');
185
+ }
186
+ return builder.join(' ').trim();
187
+ }
188
+
189
+ exports.batch = batch;
190
+ exports.create = create;
191
+ exports.delete = del;
192
+ exports.formatAddress = formatAddress;
193
+ exports.formatHumanName = formatHumanName;
194
+ exports.get = get;
195
+ exports.history = history;
196
+ exports.patch = patch;
197
+ exports.search = search;
198
+ exports.transaction = transaction;
199
+ exports.update = update;
200
+ //# sourceMappingURL=fhir-ext.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fhir-ext.cjs","sources":["../../../../src/resources/classes/fhir-ext.ts"],"sourcesContent":["import { Address as AddressR4B, HumanName as HumanNameR4B } from 'fhir/r4b';\nimport { Address as AddressR5, HumanName as HumanNameR5 } from 'fhir/r5';\nimport {\n BatchInput,\n BatchInputRequest,\n Binary,\n Bundle,\n BundleEntry,\n FhirBundle,\n FhirCreateParams,\n FhirDeleteParams,\n FhirGetParams,\n FhirHistoryGetParams,\n FhirHistorySearchParams,\n FhirPatchParams,\n FhirResource,\n FhirSearchParams,\n FhirUpdateParams,\n} from '../..';\nimport { addParamsToSearch, FhirFetcherResponse, OystehrClientRequest, SDKResource } from '../../client/client';\n\n/**\n * Optional parameter that can be passed to the client methods. It allows\n * overriding the access token or project ID, and setting various headers,\n * such as 'Content-Type'. Also support enabling optimistic locking.\n */\nexport interface OystehrFHIRUpdateClientRequest extends OystehrClientRequest {\n /**\n * Enable optimistic locking for the request. If set to a version ID, the request will\n * include the 'If-Match' header with that value in the FHIR optimistic-locking format.\n * If the resource has been updated since the version provided, the request\n * will fail with a 412 Precondition Failed error.\n */\n optimisticLockingVersionId?: string;\n}\n\n/**\n * Performs a FHIR search and returns the results as a Bundle resource\n *\n * @param options FHIR resource type and FHIR search parameters\n * @param request optional OystehrClientRequest object\n * @returns FHIR Bundle resource\n */\nexport async function search<T extends FhirResource>(\n this: SDKResource,\n params: FhirSearchParams<T>,\n request?: OystehrClientRequest\n): Promise<FhirFetcherResponse<Bundle<T>>> {\n const { resourceType, params: searchParams } = params;\n let paramMap: Record<string, (string | number)[]> | undefined;\n if (searchParams) {\n paramMap = Object.entries(searchParams).reduce((acc, [_, param]) => {\n if (!acc[param.name]) {\n acc[param.name] = [];\n }\n acc[param.name].push(param.value);\n return acc;\n }, {} as Record<string, (string | number)[]>);\n }\n const requestBundle = await this.fhirRequest<FhirBundle<T>>(`/${resourceType}/_search`, 'POST')(paramMap, {\n ...request,\n contentType: 'application/x-www-form-urlencoded',\n });\n const bundle: Bundle<T> = {\n ...requestBundle,\n entry: requestBundle.entry as Array<BundleEntry<T>> | undefined,\n unbundle: function (this: { entry?: Array<BundleEntry<T>> | undefined }) {\n return this.entry?.map((entry) => entry.resource).filter((entry): entry is T => entry !== undefined) ?? [];\n },\n };\n return bundle;\n}\n\nexport async function create<T extends FhirResource>(\n this: SDKResource,\n params: FhirCreateParams<T>,\n request?: OystehrClientRequest\n): Promise<FhirFetcherResponse<T>> {\n const { resourceType } = params;\n return this.fhirRequest(`/${resourceType}`, 'POST')(params as unknown as Record<string, unknown>, request);\n}\n\nexport async function get<T extends FhirResource>(\n this: SDKResource,\n { resourceType, id }: FhirGetParams<T>,\n request?: OystehrClientRequest\n): Promise<FhirFetcherResponse<T>> {\n return this.fhirRequest<T>(`/${resourceType}/${id}`, 'GET')({}, request);\n}\n\nexport async function update<T extends FhirResource>(\n this: SDKResource,\n params: FhirUpdateParams<T>,\n request?: OystehrFHIRUpdateClientRequest\n): Promise<FhirFetcherResponse<T>> {\n const { id, resourceType } = params;\n return this.fhirRequest(`/${resourceType}/${id}`, 'PUT')(params as unknown as Record<string, unknown>, {\n ...request,\n ifMatch: request?.optimisticLockingVersionId ? `W/\"${request.optimisticLockingVersionId}\"` : undefined,\n });\n}\n\nexport async function patch<T extends FhirResource>(\n this: SDKResource,\n { resourceType, id, operations }: FhirPatchParams<T>,\n request?: OystehrFHIRUpdateClientRequest\n): Promise<FhirFetcherResponse<T>> {\n return this.fhirRequest(`/${resourceType}/${id}`, 'PATCH')(operations, {\n ...request,\n contentType: 'application/json-patch+json',\n ifMatch: request?.optimisticLockingVersionId ? `W/\"${request.optimisticLockingVersionId}\"` : undefined,\n });\n}\n\nasync function del<T extends FhirResource>(\n this: SDKResource,\n { resourceType, id }: FhirDeleteParams<T>,\n request?: OystehrClientRequest\n): Promise<FhirFetcherResponse<T>> {\n return this.fhirRequest(`/${resourceType}/${id}`, 'DELETE')({}, request);\n}\nexport { del as delete };\n\nexport async function history<T extends FhirResource>(\n this: SDKResource,\n { resourceType, id }: FhirHistorySearchParams<T>,\n request?: OystehrClientRequest\n): Promise<FhirFetcherResponse<Bundle<T>>>;\nexport async function history<T extends FhirResource>(\n this: SDKResource,\n { resourceType, id, versionId }: FhirHistoryGetParams<T>,\n request?: OystehrClientRequest\n): Promise<FhirFetcherResponse<T>>;\nexport async function history<T extends FhirResource>(\n this: SDKResource,\n { resourceType, id, versionId }: { resourceType: string; id: string; versionId?: string },\n request?: OystehrClientRequest\n): Promise<FhirFetcherResponse<Bundle<T>> | FhirFetcherResponse<T>> {\n return this.fhirRequest(`/${resourceType}/${id}/_history${versionId ? `/${versionId}` : ''}`, 'GET')({}, request);\n}\n\nfunction batchInputRequestToBundleEntryItem<T extends FhirResource>(\n request: BatchInputRequest<T>\n): BundleEntry<T | Binary<T>> {\n const { method, url } = request;\n const baseRequest = {\n request: {\n method,\n url,\n },\n };\n\n // Escape query string parameters in entry.request.url\n if (url.split('?').length > 1) {\n const [resource, query] = url.split('?');\n const params = query\n .split('&')\n .map((param) => {\n const [name, value] = param.split('=');\n return { name, value };\n })\n .reduce((acc, { name, value }) => {\n if (!name) {\n return acc;\n }\n if (!acc[name]) {\n acc[name] = [];\n }\n acc[name].push(value);\n return acc;\n }, {} as Record<string, string[]>);\n const search = new URLSearchParams();\n addParamsToSearch(params, search);\n baseRequest.request.url = `${resource}?${search.toString()}`;\n }\n\n // GET, DELETE, and HEAD require no further parameters\n if (['GET', 'DELETE', 'HEAD'].includes(method)) {\n return baseRequest as BundleEntry<T>;\n }\n\n // PUT updates require a full resource\n if (method === 'PUT') {\n const { resource } = request;\n return {\n ...baseRequest,\n resource: resource as T,\n } as BundleEntry<T>;\n }\n\n // PATCH can be Binary resource or JSON patch\n if (method === 'PATCH') {\n if ('resource' in request) {\n return {\n ...baseRequest,\n resource: request.resource,\n } as BundleEntry<Binary<T>>;\n }\n return {\n ...baseRequest,\n resource: {\n resourceType: 'Binary',\n contentType: 'application/json-patch+json',\n data: Buffer.from(JSON.stringify(request.operations), 'utf8').toString('base64'),\n },\n } as BundleEntry<Binary<T>>;\n }\n\n // POST creates require a full resource\n if (method === 'POST') {\n const { resource, fullUrl } = request;\n return {\n ...baseRequest,\n resource: resource as T,\n fullUrl,\n } as BundleEntry<T>;\n }\n throw new Error('Unrecognized method');\n}\n\nfunction bundleRequest(type: 'batch' | 'transaction') {\n return async function <BundleContentType extends FhirResource>(\n this: SDKResource,\n input: BatchInput<BundleContentType>,\n request?: OystehrClientRequest\n ): Promise<FhirFetcherResponse<Bundle<BundleContentType>>> {\n return this.fhirRequest('/', 'POST')(\n {\n resourceType: 'Bundle',\n type,\n entry: input.requests.map(batchInputRequestToBundleEntryItem),\n },\n request\n );\n };\n}\n\nexport const batch = bundleRequest('batch');\nexport const transaction = bundleRequest('transaction');\n\nexport function formatAddress(\n address: AddressR4B | AddressR5,\n options?: { all?: boolean; use?: boolean; lineSeparator?: string }\n): string {\n const builder = [];\n\n if (address.line) {\n builder.push(...address.line);\n }\n\n if (address.city || address.state || address.postalCode) {\n const cityStateZip = [];\n if (address.city) {\n cityStateZip.push(address.city);\n }\n if (address.state) {\n cityStateZip.push(address.state);\n }\n if (address.postalCode) {\n cityStateZip.push(address.postalCode);\n }\n builder.push(cityStateZip.join(', '));\n }\n\n if (address.use && (options?.all || options?.use)) {\n builder.push('[' + address.use + ']');\n }\n\n return builder.join(options?.lineSeparator || ', ').trim();\n}\n\nexport function formatHumanName(\n name: HumanNameR4B | HumanNameR5,\n options?: {\n all?: boolean;\n prefix?: boolean;\n suffix?: boolean;\n use?: boolean;\n }\n): string {\n const builder = [];\n\n if (name.prefix && options?.prefix !== false) {\n builder.push(...name.prefix);\n }\n\n if (name.given) {\n builder.push(...name.given);\n }\n\n if (name.family) {\n builder.push(name.family);\n }\n\n if (name.suffix && options?.suffix !== false) {\n builder.push(...name.suffix);\n }\n\n if (name.use && (options?.all || options?.use)) {\n builder.push('[' + name.use + ']');\n }\n\n return builder.join(' ').trim();\n}\n"],"names":["addParamsToSearch"],"mappings":"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"}
@@ -23,17 +23,17 @@ export interface OystehrFHIRUpdateClientRequest extends OystehrClientRequest {
23
23
  * @param request optional OystehrClientRequest object
24
24
  * @returns FHIR Bundle resource
25
25
  */
26
- export declare function search<T extends FhirResource>(this: SDKResource, params: FhirSearchParams, request?: OystehrClientRequest): Promise<FhirFetcherResponse<Bundle<T>>>;
26
+ export declare function search<T extends FhirResource>(this: SDKResource, params: FhirSearchParams<T>, request?: OystehrClientRequest): Promise<FhirFetcherResponse<Bundle<T>>>;
27
27
  export declare function create<T extends FhirResource>(this: SDKResource, params: FhirCreateParams<T>, request?: OystehrClientRequest): Promise<FhirFetcherResponse<T>>;
28
- export declare function get<T extends FhirResource>(this: SDKResource, { resourceType, id }: FhirGetParams, request?: OystehrClientRequest): Promise<FhirFetcherResponse<T>>;
28
+ export declare function get<T extends FhirResource>(this: SDKResource, { resourceType, id }: FhirGetParams<T>, request?: OystehrClientRequest): Promise<FhirFetcherResponse<T>>;
29
29
  export declare function update<T extends FhirResource>(this: SDKResource, params: FhirUpdateParams<T>, request?: OystehrFHIRUpdateClientRequest): Promise<FhirFetcherResponse<T>>;
30
- export declare function patch<T extends FhirResource>(this: SDKResource, { resourceType, id, operations }: FhirPatchParams, request?: OystehrFHIRUpdateClientRequest): Promise<FhirFetcherResponse<T>>;
31
- declare function del<T extends FhirResource>(this: SDKResource, { resourceType, id }: FhirDeleteParams, request?: OystehrClientRequest): Promise<FhirFetcherResponse<T>>;
30
+ export declare function patch<T extends FhirResource>(this: SDKResource, { resourceType, id, operations }: FhirPatchParams<T>, request?: OystehrFHIRUpdateClientRequest): Promise<FhirFetcherResponse<T>>;
31
+ declare function del<T extends FhirResource>(this: SDKResource, { resourceType, id }: FhirDeleteParams<T>, request?: OystehrClientRequest): Promise<FhirFetcherResponse<T>>;
32
32
  export { del as delete };
33
- export declare function history<T extends FhirResource>(this: SDKResource, { resourceType, id }: FhirHistorySearchParams, request?: OystehrClientRequest): Promise<FhirFetcherResponse<Bundle<T>>>;
34
- export declare function history<T extends FhirResource>(this: SDKResource, { resourceType, id, versionId }: FhirHistoryGetParams, request?: OystehrClientRequest): Promise<FhirFetcherResponse<T>>;
35
- export declare const batch: <BundleContentType extends FhirResource>(this: SDKResource, input: BatchInput<BundleContentType>, request?: OystehrClientRequest) => Promise<Bundle<BundleContentType>>;
36
- export declare const transaction: <BundleContentType extends FhirResource>(this: SDKResource, input: BatchInput<BundleContentType>, request?: OystehrClientRequest) => Promise<Bundle<BundleContentType>>;
33
+ export declare function history<T extends FhirResource>(this: SDKResource, { resourceType, id }: FhirHistorySearchParams<T>, request?: OystehrClientRequest): Promise<FhirFetcherResponse<Bundle<T>>>;
34
+ export declare function history<T extends FhirResource>(this: SDKResource, { resourceType, id, versionId }: FhirHistoryGetParams<T>, request?: OystehrClientRequest): Promise<FhirFetcherResponse<T>>;
35
+ export declare const batch: <BundleContentType extends FhirResource>(this: SDKResource, input: BatchInput<BundleContentType>, request?: OystehrClientRequest) => Promise<FhirFetcherResponse<Bundle<BundleContentType>>>;
36
+ export declare const transaction: <BundleContentType extends FhirResource>(this: SDKResource, input: BatchInput<BundleContentType>, request?: OystehrClientRequest) => Promise<FhirFetcherResponse<Bundle<BundleContentType>>>;
37
37
  export declare function formatAddress(address: AddressR4B | AddressR5, options?: {
38
38
  all?: boolean;
39
39
  use?: boolean;
@@ -0,0 +1,34 @@
1
+ 'use strict';
2
+
3
+ var client = require('../../client/client.cjs');
4
+ var fhirExt = require('./fhir-ext.cjs');
5
+
6
+ // AUTOGENERATED -- DO NOT EDIT
7
+ class Fhir extends client.SDKResource {
8
+ constructor(config) {
9
+ super(config);
10
+ }
11
+ #baseUrlThunk() {
12
+ return this.config.services?.['fhirApiUrl'] ?? 'https://fhir-api.zapehr.com';
13
+ }
14
+ /**
15
+ * Performs a FHIR search and returns the results as a Bundle resource
16
+ * @param options FHIR resource type and FHIR search parameters
17
+ * @param request optional OystehrClientRequest object
18
+ * @returns FHIR Bundle resource
19
+ */
20
+ search = fhirExt.search;
21
+ create = fhirExt.create;
22
+ get = fhirExt.get;
23
+ update = fhirExt.update;
24
+ patch = fhirExt.patch;
25
+ delete = fhirExt.delete;
26
+ history = fhirExt.history;
27
+ batch = fhirExt.batch;
28
+ transaction = fhirExt.transaction;
29
+ formatAddress = fhirExt.formatAddress;
30
+ formatHumanName = fhirExt.formatHumanName;
31
+ }
32
+
33
+ exports.Fhir = Fhir;
34
+ //# sourceMappingURL=fhir.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fhir.cjs","sources":["../../../../src/resources/classes/fhir.ts"],"sourcesContent":["// AUTOGENERATED -- DO NOT EDIT\n\nimport { SDKResource } from '../../client/client';\nimport { OystehrConfig } from '../../config';\nimport * as ext from './fhir-ext';\n\nexport class Fhir extends SDKResource {\n constructor(config: OystehrConfig) {\n super(config);\n }\n #baseUrlThunk(): string {\n return this.config.services?.['fhirApiUrl'] ?? 'https://fhir-api.zapehr.com';\n }\n /**\n * Performs a FHIR search and returns the results as a Bundle resource\n * @param options FHIR resource type and FHIR search parameters\n * @param request optional OystehrClientRequest object\n * @returns FHIR Bundle resource\n */\n search = ext.search;\n create = ext.create;\n get = ext.get;\n update = ext.update;\n patch = ext.patch;\n delete = ext.delete;\n history = ext.history;\n batch = ext.batch;\n transaction = ext.transaction;\n formatAddress = ext.formatAddress;\n formatHumanName = ext.formatHumanName;\n}\n"],"names":["SDKResource","ext.search","ext.create","ext.get","ext.update","ext.patch","ext.delete","ext.history","ext.batch","ext.transaction","ext.formatAddress","ext.formatHumanName"],"mappings":";;;;;AAAA;AAMM,MAAO,IAAK,SAAQA,kBAAW,CAAA;AACnC,IAAA,WAAA,CAAY,MAAqB,EAAA;QAC/B,KAAK,CAAC,MAAM,CAAC,CAAC;KACf;IACD,aAAa,GAAA;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,YAAY,CAAC,IAAI,6BAA6B,CAAC;KAC9E;AACD;;;;;AAKG;AACH,IAAA,MAAM,GAAGC,cAAU,CAAC;AACpB,IAAA,MAAM,GAAGC,cAAU,CAAC;AACpB,IAAA,GAAG,GAAGC,WAAO,CAAC;AACd,IAAA,MAAM,GAAGC,cAAU,CAAC;AACpB,IAAA,KAAK,GAAGC,aAAS,CAAC;AAClB,IAAA,MAAM,GAAGC,cAAU,CAAC;AACpB,IAAA,OAAO,GAAGC,eAAW,CAAC;AACtB,IAAA,KAAK,GAAGC,aAAS,CAAC;AAClB,IAAA,WAAW,GAAGC,mBAAe,CAAC;AAC9B,IAAA,aAAa,GAAGC,qBAAiB,CAAC;AAClC,IAAA,eAAe,GAAGC,uBAAmB,CAAC;AACvC;;;;"}
@@ -17,8 +17,8 @@ export declare class Fhir extends SDKResource {
17
17
  patch: typeof ext.patch;
18
18
  delete: typeof ext.delete;
19
19
  history: typeof ext.history;
20
- batch: <BundleContentType extends import("..").FhirResource>(this: SDKResource, input: import("..").BatchInput<BundleContentType>, request?: import("../../client/client").OystehrClientRequest | undefined) => Promise<import("..").Bundle<BundleContentType>>;
21
- transaction: <BundleContentType extends import("..").FhirResource>(this: SDKResource, input: import("..").BatchInput<BundleContentType>, request?: import("../../client/client").OystehrClientRequest | undefined) => Promise<import("..").Bundle<BundleContentType>>;
20
+ batch: <BundleContentType extends import("..").FhirResource>(this: SDKResource, input: import("..").BatchInput<BundleContentType>, request?: import("../..").OystehrClientRequest) => Promise<import("../../client/client").FhirFetcherResponse<import("..").Bundle<BundleContentType>>>;
21
+ transaction: <BundleContentType extends import("..").FhirResource>(this: SDKResource, input: import("..").BatchInput<BundleContentType>, request?: import("../..").OystehrClientRequest) => Promise<import("../../client/client").FhirFetcherResponse<import("..").Bundle<BundleContentType>>>;
22
22
  formatAddress: typeof ext.formatAddress;
23
23
  formatHumanName: typeof ext.formatHumanName;
24
24
  }
@@ -0,0 +1,88 @@
1
+ 'use strict';
2
+
3
+ var application = require('./application.cjs');
4
+ var charge = require('./charge.cjs');
5
+ var conversation = require('./conversation.cjs');
6
+ var developer = require('./developer.cjs');
7
+ var erx = require('./erx.cjs');
8
+ var erxV1 = require('./erxV1.cjs');
9
+ var erxV2 = require('./erxV2.cjs');
10
+ var fax = require('./fax.cjs');
11
+ var fhir = require('./fhir.cjs');
12
+ var lab = require('./lab.cjs');
13
+ var m2m = require('./m2m.cjs');
14
+ var messaging = require('./messaging.cjs');
15
+ var paymentMethod = require('./paymentMethod.cjs');
16
+ var project = require('./project.cjs');
17
+ var rcm = require('./rcm.cjs');
18
+ var role = require('./role.cjs');
19
+ var secret = require('./secret.cjs');
20
+ var telemed = require('./telemed.cjs');
21
+ var transactionalSMS = require('./transactionalSMS.cjs');
22
+ var user = require('./user.cjs');
23
+ var version = require('./version.cjs');
24
+ var z3 = require('./z3.cjs');
25
+ var zambda = require('./zambda.cjs');
26
+ var zambdaLogStream = require('./zambdaLogStream.cjs');
27
+
28
+ // AUTOGENERATED -- DO NOT EDIT
29
+ let Oystehr$1 = class Oystehr {
30
+ config;
31
+ application;
32
+ developer;
33
+ m2m;
34
+ messaging;
35
+ conversation;
36
+ transactionalSMS;
37
+ paymentMethod;
38
+ charge;
39
+ project;
40
+ rcm;
41
+ erxV1;
42
+ erxV2;
43
+ role;
44
+ secret;
45
+ telemed;
46
+ user;
47
+ version;
48
+ z3;
49
+ zambda;
50
+ zambdaLogStream;
51
+ fax;
52
+ lab;
53
+ erx;
54
+ fhir;
55
+ constructor(config) {
56
+ this.config = config;
57
+ this.config.services ??= {};
58
+ this.config.services['projectApiUrl'] ??= config.projectApiUrl;
59
+ this.config.services['fhirApiUrl'] ??= config.fhirApiUrl;
60
+ this.application = new application.Application(config);
61
+ this.developer = new developer.Developer(config);
62
+ this.m2m = new m2m.M2m(config);
63
+ this.messaging = new messaging.Messaging(config);
64
+ this.conversation = new conversation.Conversation(config);
65
+ this.transactionalSMS = new transactionalSMS.TransactionalSMS(config);
66
+ this.paymentMethod = new paymentMethod.PaymentMethod(config);
67
+ this.charge = new charge.Charge(config);
68
+ this.project = new project.Project(config);
69
+ this.rcm = new rcm.Rcm(config);
70
+ this.erxV1 = new erxV1.ErxV1(config);
71
+ this.erxV2 = new erxV2.ErxV2(config);
72
+ this.role = new role.Role(config);
73
+ this.secret = new secret.Secret(config);
74
+ this.telemed = new telemed.Telemed(config);
75
+ this.user = new user.User(config);
76
+ this.version = new version.Version(config);
77
+ this.z3 = new z3.Z3(config);
78
+ this.zambda = new zambda.Zambda(config);
79
+ this.zambdaLogStream = new zambdaLogStream.ZambdaLogStream(config);
80
+ this.fax = new fax.Fax(config);
81
+ this.lab = new lab.Lab(config);
82
+ this.erx = new erx.Erx(config);
83
+ this.fhir = new fhir.Fhir(config);
84
+ }
85
+ };
86
+
87
+ exports.Oystehr = Oystehr$1;
88
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../../src/resources/classes/index.ts"],"sourcesContent":["// AUTOGENERATED -- DO NOT EDIT\n\nimport { OystehrConfig } from '../../config';\nimport { Application } from './application';\nimport { Charge } from './charge';\nimport { Conversation } from './conversation';\nimport { Developer } from './developer';\nimport { Erx } from './erx';\nimport { ErxV1 } from './erxV1';\nimport { ErxV2 } from './erxV2';\nimport { Fax } from './fax';\nimport { Fhir } from './fhir';\nimport { Lab } from './lab';\nimport { M2m } from './m2m';\nimport { Messaging } from './messaging';\nimport { PaymentMethod } from './paymentMethod';\nimport { Project } from './project';\nimport { Rcm } from './rcm';\nimport { Role } from './role';\nimport { Secret } from './secret';\nimport { Telemed } from './telemed';\nimport { TransactionalSMS } from './transactionalSMS';\nimport { User } from './user';\nimport { Version } from './version';\nimport { Z3 } from './z3';\nimport { Zambda } from './zambda';\nimport { ZambdaLogStream } from './zambdaLogStream';\n\nexport class Oystehr {\n readonly config: OystehrConfig;\n readonly application: Application;\n readonly developer: Developer;\n readonly m2m: M2m;\n readonly messaging: Messaging;\n readonly conversation: Conversation;\n readonly transactionalSMS: TransactionalSMS;\n readonly paymentMethod: PaymentMethod;\n readonly charge: Charge;\n readonly project: Project;\n readonly rcm: Rcm;\n readonly erxV1: ErxV1;\n readonly erxV2: ErxV2;\n readonly role: Role;\n readonly secret: Secret;\n readonly telemed: Telemed;\n readonly user: User;\n readonly version: Version;\n readonly z3: Z3;\n readonly zambda: Zambda;\n readonly zambdaLogStream: ZambdaLogStream;\n readonly fax: Fax;\n readonly lab: Lab;\n readonly erx: Erx;\n readonly fhir: Fhir;\n constructor(config: OystehrConfig) {\n this.config = config;\n this.config.services ??= {};\n this.config.services['projectApiUrl'] ??= config.projectApiUrl;\n this.config.services['fhirApiUrl'] ??= config.fhirApiUrl;\n this.application = new Application(config);\n this.developer = new Developer(config);\n this.m2m = new M2m(config);\n this.messaging = new Messaging(config);\n this.conversation = new Conversation(config);\n this.transactionalSMS = new TransactionalSMS(config);\n this.paymentMethod = new PaymentMethod(config);\n this.charge = new Charge(config);\n this.project = new Project(config);\n this.rcm = new Rcm(config);\n this.erxV1 = new ErxV1(config);\n this.erxV2 = new ErxV2(config);\n this.role = new Role(config);\n this.secret = new Secret(config);\n this.telemed = new Telemed(config);\n this.user = new User(config);\n this.version = new Version(config);\n this.z3 = new Z3(config);\n this.zambda = new Zambda(config);\n this.zambdaLogStream = new ZambdaLogStream(config);\n this.fax = new Fax(config);\n this.lab = new Lab(config);\n this.erx = new Erx(config);\n this.fhir = new Fhir(config);\n }\n}\n"],"names":["Application","Developer","M2m","Messaging","Conversation","TransactionalSMS","PaymentMethod","Charge","Project","Rcm","ErxV1","ErxV2","Role","Secret","Telemed","User","Version","Z3","Zambda","ZambdaLogStream","Fax","Lab","Erx","Fhir"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;sBA4Ba,OAAO,CAAA;AACT,IAAA,MAAM,CAAgB;AACtB,IAAA,WAAW,CAAc;AACzB,IAAA,SAAS,CAAY;AACrB,IAAA,GAAG,CAAM;AACT,IAAA,SAAS,CAAY;AACrB,IAAA,YAAY,CAAe;AAC3B,IAAA,gBAAgB,CAAmB;AACnC,IAAA,aAAa,CAAgB;AAC7B,IAAA,MAAM,CAAS;AACf,IAAA,OAAO,CAAU;AACjB,IAAA,GAAG,CAAM;AACT,IAAA,KAAK,CAAQ;AACb,IAAA,KAAK,CAAQ;AACb,IAAA,IAAI,CAAO;AACX,IAAA,MAAM,CAAS;AACf,IAAA,OAAO,CAAU;AACjB,IAAA,IAAI,CAAO;AACX,IAAA,OAAO,CAAU;AACjB,IAAA,EAAE,CAAK;AACP,IAAA,MAAM,CAAS;AACf,IAAA,eAAe,CAAkB;AACjC,IAAA,GAAG,CAAM;AACT,IAAA,GAAG,CAAM;AACT,IAAA,GAAG,CAAM;AACT,IAAA,IAAI,CAAO;AACpB,IAAA,WAAA,CAAY,MAAqB,EAAA;AAC/B,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACrB,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,MAAM,CAAC,aAAa,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,MAAM,CAAC,UAAU,CAAC;QACzD,IAAI,CAAC,WAAW,GAAG,IAAIA,uBAAW,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,IAAIC,mBAAS,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG,GAAG,IAAIC,OAAG,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAIC,mBAAS,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,IAAIC,yBAAY,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,gBAAgB,GAAG,IAAIC,iCAAgB,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,CAAC,aAAa,GAAG,IAAIC,2BAAa,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,GAAG,IAAIC,aAAM,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,IAAIC,eAAO,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,GAAG,IAAIC,OAAG,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,IAAIC,WAAK,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAIC,WAAK,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAIC,SAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,IAAIC,aAAM,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,IAAIC,eAAO,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,IAAIC,SAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,IAAIC,eAAO,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,EAAE,GAAG,IAAIC,KAAE,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,IAAIC,aAAM,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,eAAe,GAAG,IAAIC,+BAAe,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,GAAG,GAAG,IAAIC,OAAG,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,CAAC,GAAG,GAAG,IAAIC,OAAG,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,CAAC,GAAG,GAAG,IAAIC,OAAG,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAIC,SAAI,CAAC,MAAM,CAAC,CAAC;KAC9B;AACF;;;;"}
@@ -0,0 +1,76 @@
1
+ 'use strict';
2
+
3
+ var client = require('../../client/client.cjs');
4
+
5
+ // AUTOGENERATED -- DO NOT EDIT
6
+ class Lab extends client.SDKResource {
7
+ constructor(config) {
8
+ super(config);
9
+ }
10
+ #baseUrlThunk() {
11
+ return this.config.services?.['labApiUrl'] ?? 'https://labs-api.zapehr.com/v1';
12
+ }
13
+ /**
14
+ * Gets a list of Routes associated with the project. Returns an empty list if no Routes are found.
15
+ *
16
+ * Access Policy Requirements:
17
+ * Action: `Lab:GetRoutes`
18
+ * Access Policy Resource: `Lab:Route`
19
+ */
20
+ routeList(request) {
21
+ return this.request('/route', 'get', this.#baseUrlThunk.bind(this))(request);
22
+ }
23
+ /**
24
+ * Create a route. A Route represents that a lab and particular customer have a relationship, and a Route is necessary to submit an order to a lab. See [Route](https://docs.oystehr.com/oystehr/services/lab/onboarding-a-lab/#create-route) for more details.
25
+ *
26
+ * Access Policy Requirements:
27
+ * Action: `Lab:CreateRoute`
28
+ * Access Policy Resource: `Lab:Route`
29
+ */
30
+ routeCreate(params, request) {
31
+ return this.request('/route', 'post', this.#baseUrlThunk.bind(this))(params, request);
32
+ }
33
+ /**
34
+ * Delete a route. Deleting a Route will permanently remove the `routeGuid`. Orders can no longer be submitted to this lab until a new Route is created. See [Route](https://docs.oystehr.com/oystehr/services/lab/onboarding-a-lab/#delete-route) for more details.
35
+ *
36
+ * Access Policy Requirements:
37
+ * Action: `Lab:DeleteRoute`
38
+ * Access Policy Resource: `Lab:Route`
39
+ */
40
+ routeDelete(params, request) {
41
+ return this.request('/route/{routeGuid}', 'delete', this.#baseUrlThunk.bind(this))(params, request);
42
+ }
43
+ /**
44
+ * Returns list of active orderable items for the latest compendium version. Page size is default 25 and max 100 items. See [orderable item Search](https://docs.oystehr.com/oystehr/services/lab/explore-the-compendium/#orderable-item-search) for more details.
45
+ *
46
+ * Access Policy Requirements:
47
+ * Action: `Lab:SearchOrderableItems`
48
+ * Access Policy Resource: `Lab:OrderableItem`
49
+ */
50
+ orderableItemList(params, request) {
51
+ return this.request('/orderableItem', 'get', this.#baseUrlThunk.bind(this))(params, request);
52
+ }
53
+ /**
54
+ * Retrieve the AOE (Answer on Entry) Questionnaire for the given orderable item. The orderable item is defined by its labGuid, compendiumVersion, and itemCode. See [AOE](https://docs.oystehr.com/oystehr/services/lab/explore-the-compendium/#AOE) for more details.
55
+ *
56
+ * Access Policy Requirements:
57
+ * Action: `Lab:SearchOrderableItems`
58
+ * Access Policy Resource: `Lab:OrderableItem`
59
+ */
60
+ orderableItemQuestionnaireGet(params, request) {
61
+ return this.request('/canonical-questionnaire/lab/{labGuid}/compendium/{compendiumVersion}/item/{itemCode}/questionnaire', 'get', this.#baseUrlThunk.bind(this))(params, request);
62
+ }
63
+ /**
64
+ * Submit a lab order. Oystehr's [Submit Lab](https://docs.oystehr.com/oystehr/services/lab/submit-an-order/) feature allows users to submit a well configured ServiceRequest to an external lab. In order to successfully submit an order, a [Route](https://docs.oystehr.com/oystehr/services/lab/onboarding-a-lab/#create-route) to and Organization representing that lab must exist.
65
+ *
66
+ * Access Policy Requirements:
67
+ * Action: `Lab:SubmitOrder`
68
+ * Access Policy Resource: `Lab:Order`
69
+ */
70
+ orderSubmit(params, request) {
71
+ return this.request('/submit', 'post', this.#baseUrlThunk.bind(this))(params, request);
72
+ }
73
+ }
74
+
75
+ exports.Lab = Lab;
76
+ //# sourceMappingURL=lab.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lab.cjs","sources":["../../../../src/resources/classes/lab.ts"],"sourcesContent":["// AUTOGENERATED -- DO NOT EDIT\n\nimport {\n LabOrderableItemListParams,\n LabOrderableItemListResponse,\n LabOrderableItemQuestionnaireGetParams,\n LabOrderableItemQuestionnaireGetResponse,\n LabOrderSubmitParams,\n LabRouteCreateParams,\n LabRouteDeleteParams,\n LabRouteListResponse,\n OystehrClientRequest,\n} from '../..';\nimport { SDKResource } from '../../client/client';\nimport { OystehrConfig } from '../../config';\n\nexport class Lab extends SDKResource {\n constructor(config: OystehrConfig) {\n super(config);\n }\n #baseUrlThunk(): string {\n return this.config.services?.['labApiUrl'] ?? 'https://labs-api.zapehr.com/v1';\n }\n /**\n * Gets a list of Routes associated with the project. Returns an empty list if no Routes are found.\n *\n * Access Policy Requirements:\n * Action: `Lab:GetRoutes`\n * Access Policy Resource: `Lab:Route`\n */\n routeList(request?: OystehrClientRequest): Promise<LabRouteListResponse> {\n return this.request('/route', 'get', this.#baseUrlThunk.bind(this))(request);\n }\n /**\n * Create a route. A Route represents that a lab and particular customer have a relationship, and a Route is necessary to submit an order to a lab. See [Route](https://docs.oystehr.com/oystehr/services/lab/onboarding-a-lab/#create-route) for more details.\n *\n * Access Policy Requirements:\n * Action: `Lab:CreateRoute`\n * Access Policy Resource: `Lab:Route`\n */\n routeCreate(params: LabRouteCreateParams, request?: OystehrClientRequest): Promise<void> {\n return this.request('/route', 'post', this.#baseUrlThunk.bind(this))(params, request);\n }\n /**\n * Delete a route. Deleting a Route will permanently remove the `routeGuid`. Orders can no longer be submitted to this lab until a new Route is created. See [Route](https://docs.oystehr.com/oystehr/services/lab/onboarding-a-lab/#delete-route) for more details.\n *\n * Access Policy Requirements:\n * Action: `Lab:DeleteRoute`\n * Access Policy Resource: `Lab:Route`\n */\n routeDelete(params: LabRouteDeleteParams, request?: OystehrClientRequest): Promise<void> {\n return this.request('/route/{routeGuid}', 'delete', this.#baseUrlThunk.bind(this))(params, request);\n }\n /**\n * Returns list of active orderable items for the latest compendium version. Page size is default 25 and max 100 items. See [orderable item Search](https://docs.oystehr.com/oystehr/services/lab/explore-the-compendium/#orderable-item-search) for more details.\n *\n * Access Policy Requirements:\n * Action: `Lab:SearchOrderableItems`\n * Access Policy Resource: `Lab:OrderableItem`\n */\n orderableItemList(\n params: LabOrderableItemListParams,\n request?: OystehrClientRequest\n ): Promise<LabOrderableItemListResponse>;\n /**\n * Returns list of active orderable items for the latest compendium version. Page size is default 25 and max 100 items. See [orderable item Search](https://docs.oystehr.com/oystehr/services/lab/explore-the-compendium/#orderable-item-search) for more details.\n *\n * Access Policy Requirements:\n * Action: `Lab:SearchOrderableItems`\n * Access Policy Resource: `Lab:OrderableItem`\n */\n orderableItemList(request?: OystehrClientRequest): Promise<LabOrderableItemListResponse>;\n /**\n * Returns list of active orderable items for the latest compendium version. Page size is default 25 and max 100 items. See [orderable item Search](https://docs.oystehr.com/oystehr/services/lab/explore-the-compendium/#orderable-item-search) for more details.\n *\n * Access Policy Requirements:\n * Action: `Lab:SearchOrderableItems`\n * Access Policy Resource: `Lab:OrderableItem`\n */\n orderableItemList(\n params?: LabOrderableItemListParams | OystehrClientRequest,\n request?: OystehrClientRequest\n ): Promise<LabOrderableItemListResponse> {\n return this.request('/orderableItem', 'get', this.#baseUrlThunk.bind(this))(params, request);\n }\n /**\n * Retrieve the AOE (Answer on Entry) Questionnaire for the given orderable item. The orderable item is defined by its labGuid, compendiumVersion, and itemCode. See [AOE](https://docs.oystehr.com/oystehr/services/lab/explore-the-compendium/#AOE) for more details.\n *\n * Access Policy Requirements:\n * Action: `Lab:SearchOrderableItems`\n * Access Policy Resource: `Lab:OrderableItem`\n */\n orderableItemQuestionnaireGet(\n params: LabOrderableItemQuestionnaireGetParams,\n request?: OystehrClientRequest\n ): Promise<LabOrderableItemQuestionnaireGetResponse> {\n return this.request(\n '/canonical-questionnaire/lab/{labGuid}/compendium/{compendiumVersion}/item/{itemCode}/questionnaire',\n 'get',\n this.#baseUrlThunk.bind(this)\n )(params, request);\n }\n /**\n * Submit a lab order. Oystehr's [Submit Lab](https://docs.oystehr.com/oystehr/services/lab/submit-an-order/) feature allows users to submit a well configured ServiceRequest to an external lab. In order to successfully submit an order, a [Route](https://docs.oystehr.com/oystehr/services/lab/onboarding-a-lab/#create-route) to and Organization representing that lab must exist.\n *\n * Access Policy Requirements:\n * Action: `Lab:SubmitOrder`\n * Access Policy Resource: `Lab:Order`\n */\n orderSubmit(params: LabOrderSubmitParams, request?: OystehrClientRequest): Promise<void> {\n return this.request('/submit', 'post', this.#baseUrlThunk.bind(this))(params, request);\n }\n}\n"],"names":["SDKResource"],"mappings":";;;;AAAA;AAgBM,MAAO,GAAI,SAAQA,kBAAW,CAAA;AAClC,IAAA,WAAA,CAAY,MAAqB,EAAA;QAC/B,KAAK,CAAC,MAAM,CAAC,CAAC;KACf;IACD,aAAa,GAAA;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,gCAAgC,CAAC;KAChF;AACD;;;;;;AAMG;AACH,IAAA,SAAS,CAAC,OAA8B,EAAA;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;KAC9E;AACD;;;;;;AAMG;IACH,WAAW,CAAC,MAA4B,EAAE,OAA8B,EAAA;QACtE,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACvF;AACD;;;;;;AAMG;IACH,WAAW,CAAC,MAA4B,EAAE,OAA8B,EAAA;QACtE,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACrG;AAoBD;;;;;;AAMG;IACH,iBAAiB,CACf,MAA0D,EAC1D,OAA8B,EAAA;QAE9B,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC9F;AACD;;;;;;AAMG;IACH,6BAA6B,CAC3B,MAA8C,EAC9C,OAA8B,EAAA;QAE9B,OAAO,IAAI,CAAC,OAAO,CACjB,qGAAqG,EACrG,KAAK,EACL,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAC9B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpB;AACD;;;;;;AAMG;IACH,WAAW,CAAC,MAA4B,EAAE,OAA8B,EAAA;QACtE,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACxF;AACF;;;;"}