@metriport/shared 0.13.3 → 0.14.0-alpha.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 (220) hide show
  1. package/dist/common/__tests__/npi.d.ts +7 -0
  2. package/dist/common/__tests__/npi.d.ts.map +1 -0
  3. package/dist/common/__tests__/npi.js +32 -0
  4. package/dist/common/__tests__/npi.js.map +1 -0
  5. package/dist/common/__tests__/number.test.d.ts +2 -0
  6. package/dist/common/__tests__/number.test.d.ts.map +1 -0
  7. package/dist/common/__tests__/number.test.js +10 -0
  8. package/dist/common/__tests__/number.test.js.map +1 -0
  9. package/dist/common/__tests__/string.test copy.d.ts +2 -0
  10. package/dist/common/__tests__/string.test copy.d.ts.map +1 -0
  11. package/dist/common/__tests__/string.test copy.js +10 -0
  12. package/dist/common/__tests__/string.test copy.js.map +1 -0
  13. package/dist/common/__tests__/validate-npi.d.ts +10 -0
  14. package/dist/common/__tests__/validate-npi.d.ts.map +1 -0
  15. package/dist/common/__tests__/validate-npi.js +35 -0
  16. package/dist/common/__tests__/validate-npi.js.map +1 -0
  17. package/dist/common/__tests__/validate-npi.test.d.ts +2 -0
  18. package/dist/common/__tests__/validate-npi.test.d.ts.map +1 -0
  19. package/dist/common/__tests__/validate-npi.test.js +24 -0
  20. package/dist/common/__tests__/validate-npi.test.js.map +1 -0
  21. package/dist/common/date.d.ts +6 -2
  22. package/dist/common/date.d.ts.map +1 -1
  23. package/dist/common/date.js +38 -6
  24. package/dist/common/date.js.map +1 -1
  25. package/dist/common/error.d.ts +3 -3
  26. package/dist/common/error.js +3 -3
  27. package/dist/common/filter-map.d.ts +11 -0
  28. package/dist/common/filter-map.d.ts.map +1 -0
  29. package/dist/common/filter-map.js +17 -0
  30. package/dist/common/filter-map.js.map +1 -0
  31. package/dist/common/xml-parser.d.ts +3 -0
  32. package/dist/common/xml-parser.d.ts.map +1 -0
  33. package/dist/common/xml-parser.js +17 -0
  34. package/dist/common/xml-parser.js.map +1 -0
  35. package/dist/core/src/command/patient-import/patient-import-shared.d.ts +18 -0
  36. package/dist/core/src/command/patient-import/patient-import-shared.d.ts.map +1 -0
  37. package/dist/core/src/command/patient-import/patient-import-shared.js +137 -0
  38. package/dist/core/src/command/patient-import/patient-import-shared.js.map +1 -0
  39. package/dist/core/src/command/patient-import/patient-import.d.ts +60 -0
  40. package/dist/core/src/command/patient-import/patient-import.d.ts.map +1 -0
  41. package/dist/core/src/command/patient-import/patient-import.js +3 -0
  42. package/dist/core/src/command/patient-import/patient-import.js.map +1 -0
  43. package/dist/core/src/domain/address.d.ts +17 -0
  44. package/dist/core/src/domain/address.d.ts.map +1 -0
  45. package/dist/core/src/domain/address.js +20 -0
  46. package/dist/core/src/domain/address.js.map +1 -0
  47. package/dist/core/src/domain/base-domain.d.ts +14 -0
  48. package/dist/core/src/domain/base-domain.d.ts.map +1 -0
  49. package/dist/core/src/domain/base-domain.js +3 -0
  50. package/dist/core/src/domain/base-domain.js.map +1 -0
  51. package/dist/core/src/domain/bulk-get-document-url.d.ts +8 -0
  52. package/dist/core/src/domain/bulk-get-document-url.d.ts.map +1 -0
  53. package/dist/core/src/domain/bulk-get-document-url.js +9 -0
  54. package/dist/core/src/domain/bulk-get-document-url.js.map +1 -0
  55. package/dist/core/src/domain/contact.d.ts +3 -0
  56. package/dist/core/src/domain/contact.d.ts.map +1 -0
  57. package/dist/core/src/domain/contact.js +3 -0
  58. package/dist/core/src/domain/contact.js.map +1 -0
  59. package/dist/core/src/domain/document-query.d.ts +24 -0
  60. package/dist/core/src/domain/document-query.d.ts.map +1 -0
  61. package/dist/core/src/domain/document-query.js +27 -0
  62. package/dist/core/src/domain/document-query.js.map +1 -0
  63. package/dist/core/src/domain/patient-demographics.d.ts +33 -0
  64. package/dist/core/src/domain/patient-demographics.d.ts.map +1 -0
  65. package/dist/core/src/domain/patient-demographics.js +3 -0
  66. package/dist/core/src/domain/patient-demographics.js.map +1 -0
  67. package/dist/core/src/domain/patient-discovery.d.ts +15 -0
  68. package/dist/core/src/domain/patient-discovery.d.ts.map +1 -0
  69. package/dist/core/src/domain/patient-discovery.js +3 -0
  70. package/dist/core/src/domain/patient-discovery.js.map +1 -0
  71. package/dist/core/src/domain/patient.d.ts +78 -0
  72. package/dist/core/src/domain/patient.d.ts.map +1 -0
  73. package/dist/core/src/domain/patient.js +38 -0
  74. package/dist/core/src/domain/patient.js.map +1 -0
  75. package/dist/core/src/external/index.d.ts +14 -0
  76. package/dist/core/src/external/index.d.ts.map +1 -0
  77. package/dist/core/src/external/index.js +24 -0
  78. package/dist/core/src/external/index.js.map +1 -0
  79. package/dist/domain/address/USStateForAddress.d.ts +3 -0
  80. package/dist/domain/address/USStateForAddress.d.ts.map +1 -0
  81. package/dist/domain/address/USStateForAddress.js +3 -0
  82. package/dist/domain/address/USStateForAddress.js.map +1 -0
  83. package/dist/domain/address/__tests__/normalize-zip.test copy.d.ts +2 -0
  84. package/dist/domain/address/__tests__/normalize-zip.test copy.d.ts.map +1 -0
  85. package/dist/domain/address/__tests__/normalize-zip.test copy.js +117 -0
  86. package/dist/domain/address/__tests__/normalize-zip.test copy.js.map +1 -0
  87. package/dist/domain/address/__tests__/normalize-zip.test.js +109 -30
  88. package/dist/domain/address/__tests__/normalize-zip.test.js.map +1 -1
  89. package/dist/domain/address/__tests__/state.test copy.d.ts +2 -0
  90. package/dist/domain/address/__tests__/state.test copy.d.ts.map +1 -0
  91. package/dist/domain/address/__tests__/state.test copy.js +33 -0
  92. package/dist/domain/address/__tests__/state.test copy.js.map +1 -0
  93. package/dist/domain/address/__tests__/state.test.d.ts +2 -0
  94. package/dist/domain/address/__tests__/state.test.d.ts.map +1 -0
  95. package/dist/domain/address/__tests__/state.test.js +40 -0
  96. package/dist/domain/address/__tests__/state.test.js.map +1 -0
  97. package/dist/domain/address/__tests__/territory.test.d.ts +2 -0
  98. package/dist/domain/address/__tests__/territory.test.d.ts.map +1 -0
  99. package/dist/domain/address/__tests__/territory.test.js +35 -0
  100. package/dist/domain/address/__tests__/territory.test.js.map +1 -0
  101. package/dist/domain/address/index.d.ts +6 -0
  102. package/dist/domain/address/index.d.ts.map +1 -0
  103. package/dist/domain/address/index.js +21 -0
  104. package/dist/domain/address/index.js.map +1 -0
  105. package/dist/domain/address/state copy.d.ts +62 -0
  106. package/dist/domain/address/state copy.d.ts.map +1 -0
  107. package/dist/domain/address/state copy.js +136 -0
  108. package/dist/domain/address/state copy.js.map +1 -0
  109. package/dist/domain/address/state-for-address.d.ts +4 -0
  110. package/dist/domain/address/state-for-address.d.ts.map +1 -0
  111. package/dist/domain/address/state-for-address.js +17 -0
  112. package/dist/domain/address/state-for-address.js.map +1 -0
  113. package/dist/domain/address/state.d.ts +1 -3
  114. package/dist/domain/address/state.d.ts.map +1 -1
  115. package/dist/domain/address/state.js +57 -61
  116. package/dist/domain/address/state.js.map +1 -1
  117. package/dist/domain/address/territory.d.ts +10 -0
  118. package/dist/domain/address/territory.d.ts.map +1 -0
  119. package/dist/domain/address/territory.js +32 -0
  120. package/dist/domain/address/territory.js.map +1 -0
  121. package/dist/domain/address/zip.d.ts +5 -2
  122. package/dist/domain/address/zip.d.ts.map +1 -1
  123. package/dist/domain/address/zip.js +45 -5
  124. package/dist/domain/address/zip.js.map +1 -1
  125. package/dist/domain/contact/__tests__/email.test.d.ts +2 -0
  126. package/dist/domain/contact/__tests__/email.test.d.ts.map +1 -0
  127. package/dist/domain/contact/__tests__/email.test.js +39 -0
  128. package/dist/domain/contact/__tests__/email.test.js.map +1 -0
  129. package/dist/domain/contact/__tests__/phone.test.js +28 -0
  130. package/dist/domain/contact/__tests__/phone.test.js.map +1 -1
  131. package/dist/domain/contact/email.d.ts +1 -0
  132. package/dist/domain/contact/email.d.ts.map +1 -1
  133. package/dist/domain/contact/email.js +5 -1
  134. package/dist/domain/contact/email.js.map +1 -1
  135. package/dist/domain/contact/phone.d.ts +2 -0
  136. package/dist/domain/contact/phone.d.ts.map +1 -1
  137. package/dist/domain/contact/phone.js +13 -1
  138. package/dist/domain/contact/phone.js.map +1 -1
  139. package/dist/domain/patient/__tests__/normalize-zip.test.d.ts +1 -0
  140. package/dist/domain/patient/__tests__/normalize-zip.test.d.ts.map +1 -0
  141. package/dist/domain/patient/__tests__/normalize-zip.test.js +2 -0
  142. package/dist/domain/patient/__tests__/normalize-zip.test.js.map +1 -0
  143. package/dist/domain/patient/patient-import.d.ts +131 -0
  144. package/dist/domain/patient/patient-import.d.ts.map +1 -0
  145. package/dist/domain/patient/patient-import.js +32 -0
  146. package/dist/domain/patient/patient-import.js.map +1 -0
  147. package/dist/domain/patient/patient.d.ts +23 -0
  148. package/dist/domain/patient/patient.d.ts.map +1 -0
  149. package/dist/domain/patient/patient.js +14 -0
  150. package/dist/domain/patient/patient.js.map +1 -0
  151. package/dist/error/metriport-error.d.ts +1 -1
  152. package/dist/error/metriport-error.d.ts.map +1 -1
  153. package/dist/index.d.ts +11 -7
  154. package/dist/index.d.ts.map +1 -1
  155. package/dist/index.js +16 -12
  156. package/dist/index.js.map +1 -1
  157. package/dist/interface/external/athenahealth/appointment.d.ts +50 -0
  158. package/dist/interface/external/athenahealth/appointment.d.ts.map +1 -0
  159. package/dist/interface/external/athenahealth/appointment.js +18 -0
  160. package/dist/interface/external/athenahealth/appointment.js.map +1 -0
  161. package/dist/interface/external/athenahealth/cx-mapping.d.ts +10 -0
  162. package/dist/interface/external/athenahealth/cx-mapping.d.ts.map +1 -0
  163. package/dist/interface/external/athenahealth/cx-mapping.js +8 -0
  164. package/dist/interface/external/athenahealth/cx-mapping.js.map +1 -0
  165. package/dist/interface/external/athenahealth/department.d.ts +27 -0
  166. package/dist/interface/external/athenahealth/department.d.ts.map +1 -0
  167. package/dist/interface/external/athenahealth/department.js +11 -0
  168. package/dist/interface/external/athenahealth/department.js.map +1 -0
  169. package/dist/interface/external/athenahealth/index.d.ts +6 -0
  170. package/dist/interface/external/athenahealth/index.d.ts.map +1 -1
  171. package/dist/interface/external/athenahealth/index.js +6 -0
  172. package/dist/interface/external/athenahealth/index.js.map +1 -1
  173. package/dist/interface/external/athenahealth/jwt-token.d.ts +5 -0
  174. package/dist/interface/external/athenahealth/jwt-token.d.ts.map +1 -0
  175. package/dist/interface/external/athenahealth/jwt-token.js +3 -0
  176. package/dist/interface/external/athenahealth/jwt-token.js.map +1 -0
  177. package/dist/interface/external/athenahealth/medication.d.ts +38 -0
  178. package/dist/interface/external/athenahealth/medication.d.ts.map +1 -0
  179. package/dist/interface/external/athenahealth/medication.js +15 -0
  180. package/dist/interface/external/athenahealth/medication.js.map +1 -0
  181. package/dist/interface/external/athenahealth/patient.d.ts +277 -8
  182. package/dist/interface/external/athenahealth/patient.d.ts.map +1 -1
  183. package/dist/interface/external/athenahealth/patient.js +8 -1
  184. package/dist/interface/external/athenahealth/patient.js.map +1 -1
  185. package/dist/interface/external/athenahealth/subscription.d.ts +10 -0
  186. package/dist/interface/external/athenahealth/subscription.d.ts.map +1 -0
  187. package/dist/interface/external/athenahealth/subscription.js +8 -0
  188. package/dist/interface/external/athenahealth/subscription.js.map +1 -0
  189. package/dist/interface/internal/consolidated.d.ts +2 -2
  190. package/dist/medical/fhir/bundle.d.ts +3 -0
  191. package/dist/medical/fhir/bundle.d.ts.map +1 -1
  192. package/dist/medical/fhir/bundle.js +21 -0
  193. package/dist/medical/fhir/bundle.js.map +1 -1
  194. package/dist/medical/webhook/webhook-request.d.ts +25 -25
  195. package/dist/net/error.d.ts.map +1 -1
  196. package/dist/net/error.js +1 -0
  197. package/dist/net/error.js.map +1 -1
  198. package/dist/net/retry.d.ts.map +1 -1
  199. package/dist/net/retry.js +3 -1
  200. package/dist/net/retry.js.map +1 -1
  201. package/dist/shared/src/domain/patient/__tests__/normalize-zip.test.d.ts.map +1 -0
  202. package/dist/shared/src/domain/patient/__tests__/normalize-zip.test.js +81 -0
  203. package/dist/shared/src/domain/patient/__tests__/normalize-zip.test.js.map +1 -0
  204. package/package.json +2 -2
  205. package/dist/common/__tests__/normalize-zip.test.d.ts.map +0 -1
  206. package/dist/common/__tests__/normalize-zip.test.js +0 -38
  207. package/dist/common/__tests__/normalize-zip.test.js.map +0 -1
  208. package/dist/common/normalize-zip.d.ts +0 -10
  209. package/dist/common/normalize-zip.d.ts.map +0 -1
  210. package/dist/common/normalize-zip.js +0 -30
  211. package/dist/common/normalize-zip.js.map +0 -1
  212. package/dist/net/__tests__/file-downloader.d.ts +0 -2
  213. package/dist/net/__tests__/file-downloader.d.ts.map +0 -1
  214. package/dist/net/__tests__/file-downloader.js +0 -66
  215. package/dist/net/__tests__/file-downloader.js.map +0 -1
  216. package/dist/net/file-downloader.d.ts +0 -22
  217. package/dist/net/file-downloader.d.ts.map +0 -1
  218. package/dist/net/file-downloader.js +0 -67
  219. package/dist/net/file-downloader.js.map +0 -1
  220. /package/dist/{common → shared/src/domain/patient}/__tests__/normalize-zip.test.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patient-import.d.ts","sourceRoot":"","sources":["../../../../../../core/src/command/patient-import/patient-import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEhE,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,WAAW,CAAC;IACjC,mBAAmB,CAAC,EAAE,WAAW,CAAC;IAClC,uBAAuB,CAAC,EAAE,WAAW,CAAC;IACtC,wBAAwB,CAAC,EAAE,WAAW,CAAC;IACvC,aAAa,CAAC,EAAE,WAAW,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;AAEnE,MAAM,MAAM,SAAS,GAAG;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,SAAS,CAAC;AAExC,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,0BAA0B,EAAE,MAAM,CAAC;IACnC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,yBAAyB,EAAE,MAAM,CAAC;IAClC,wBAAwB,EAAE,OAAO,CAAC;IAClC,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG;IAAE,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAElF,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,wBAAwB,EAAE,MAAM,CAAC;IACjC,wBAAwB,EAAE,OAAO,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,wBAAwB,EAAE,OAAO,CAAC;IAClC,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzE"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=patient-import.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patient-import.js","sourceRoot":"","sources":["../../../../../../core/src/command/patient-import/patient-import.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ import { USState } from "@metriport/shared";
2
+ export type Coordinates = {
3
+ lat: number;
4
+ lon: number;
5
+ };
6
+ export type Address = {
7
+ addressLine1: string;
8
+ addressLine2?: string;
9
+ city: string;
10
+ state: USState;
11
+ zip: string;
12
+ country?: string;
13
+ coordinates?: Coordinates;
14
+ };
15
+ export declare function getState(address: Address): USState;
16
+ export declare function combineAddresses(addressList1: Address[], addressList2: Address[]): Address[];
17
+ //# sourceMappingURL=address.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../../../../core/src/domain/address.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,MAAM,WAAW,GAAG;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;AAEF,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAElD;AAED,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAW5F"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.combineAddresses = exports.getState = void 0;
4
+ const lodash_1 = require("lodash");
5
+ function getState(address) {
6
+ return address.state;
7
+ }
8
+ exports.getState = getState;
9
+ function combineAddresses(addressList1, addressList2) {
10
+ const combined = [...addressList1, ...addressList2];
11
+ const compareAddresses = (a, b) => {
12
+ const aHasCoordinates = a.coordinates ? 1 : 0;
13
+ const bHasCoordinates = b.coordinates ? 1 : 0;
14
+ return bHasCoordinates - aHasCoordinates;
15
+ };
16
+ combined.sort(compareAddresses);
17
+ return (0, lodash_1.uniqBy)(combined, a => `${a.addressLine1}-${a.addressLine2}-${a.city}-${a.state}-${a.zip}`);
18
+ }
19
+ exports.combineAddresses = combineAddresses;
20
+ //# sourceMappingURL=address.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address.js","sourceRoot":"","sources":["../../../../../core/src/domain/address.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAkBhC,SAAgB,QAAQ,CAAC,OAAgB;IACvC,OAAO,OAAO,CAAC,KAAK,CAAC;AACvB,CAAC;AAFD,4BAEC;AAED,SAAgB,gBAAgB,CAAC,YAAuB,EAAE,YAAuB;IAC/E,MAAM,QAAQ,GAAG,CAAC,GAAG,YAAY,EAAE,GAAG,YAAY,CAAC,CAAC;IAEpD,MAAM,gBAAgB,GAAG,CAAC,CAAU,EAAE,CAAU,EAAU,EAAE;QAC1D,MAAM,eAAe,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,eAAe,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,OAAO,eAAe,GAAG,eAAe,CAAC;IAC3C,CAAC,CAAC;IACF,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAEhC,OAAO,IAAA,eAAM,EAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AACpG,CAAC;AAXD,4CAWC"}
@@ -0,0 +1,14 @@
1
+ export interface BaseDomainCreate {
2
+ id: string;
3
+ }
4
+ export interface BaseDomainNoId {
5
+ createdAt: Date;
6
+ updatedAt: Date;
7
+ }
8
+ export interface BaseDomain extends BaseDomainCreate, BaseDomainNoId {
9
+ eTag: string;
10
+ }
11
+ export interface BaseDomainSoftDelete extends BaseDomain {
12
+ deletedAt?: Date;
13
+ }
14
+ //# sourceMappingURL=base-domain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-domain.d.ts","sourceRoot":"","sources":["../../../../../core/src/domain/base-domain.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,UAAW,SAAQ,gBAAgB,EAAE,cAAc;IAClE,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAqB,SAAQ,UAAU;IACtD,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=base-domain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-domain.js","sourceRoot":"","sources":["../../../../../core/src/domain/base-domain.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ export declare const BulkGetDocUrlStatus: readonly ["processing", "completed", "failed"];
2
+ export type BulkGetDocUrlStatus = (typeof BulkGetDocUrlStatus)[number];
3
+ export type BulkGetDocumentsUrlProgress = {
4
+ status: BulkGetDocUrlStatus;
5
+ requestId?: string;
6
+ };
7
+ export declare function isBulkGetDocUrlProcessing(status?: BulkGetDocUrlStatus | undefined): boolean;
8
+ //# sourceMappingURL=bulk-get-document-url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bulk-get-document-url.d.ts","sourceRoot":"","sources":["../../../../../core/src/domain/bulk-get-document-url.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,gDAAiD,CAAC;AAClF,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE,MAAM,MAAM,2BAA2B,GAAG;IACxC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,SAAS,GAAG,OAAO,CAE3F"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isBulkGetDocUrlProcessing = exports.BulkGetDocUrlStatus = void 0;
4
+ exports.BulkGetDocUrlStatus = ["processing", "completed", "failed"];
5
+ function isBulkGetDocUrlProcessing(status) {
6
+ return status === "processing";
7
+ }
8
+ exports.isBulkGetDocUrlProcessing = isBulkGetDocUrlProcessing;
9
+ //# sourceMappingURL=bulk-get-document-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bulk-get-document-url.js","sourceRoot":"","sources":["../../../../../core/src/domain/bulk-get-document-url.ts"],"names":[],"mappings":";;;AAAa,QAAA,mBAAmB,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,QAAQ,CAAU,CAAC;AAQlF,SAAgB,yBAAyB,CAAC,MAAwC;IAChF,OAAO,MAAM,KAAK,YAAY,CAAC;AACjC,CAAC;AAFD,8DAEC"}
@@ -0,0 +1,3 @@
1
+ export type ContactTypes = "email" | "phone";
2
+ export type Contact = Partial<Record<ContactTypes, string | undefined>>;
3
+ //# sourceMappingURL=contact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contact.d.ts","sourceRoot":"","sources":["../../../../../core/src/domain/contact.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,OAAO,CAAC;AAE7C,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=contact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contact.js","sourceRoot":"","sources":["../../../../../core/src/domain/contact.ts"],"names":[],"mappings":""}
@@ -0,0 +1,24 @@
1
+ export declare const documentQueryStatus: readonly ["processing", "completed", "failed"];
2
+ export type DocumentQueryStatus = (typeof documentQueryStatus)[number];
3
+ export type Progress = {
4
+ status: DocumentQueryStatus;
5
+ total?: number;
6
+ successful?: number;
7
+ errors?: number;
8
+ webhookSent?: boolean;
9
+ };
10
+ export type ProgressIntKeys = keyof Omit<Progress, "status">;
11
+ export declare const progressTypes: readonly ["convert", "download"];
12
+ export type ProgressType = (typeof progressTypes)[number];
13
+ export type DocumentQueryProgress = Partial<Record<ProgressType, Progress> & {
14
+ requestId: string;
15
+ startedAt: Date;
16
+ triggerConsolidated: boolean;
17
+ }>;
18
+ export declare const convertResult: readonly ["success", "failed"];
19
+ export type ConvertResult = (typeof convertResult)[number];
20
+ export declare function getStatusFromProgress(progress: Pick<Progress, "errors" | "successful" | "total">): DocumentQueryStatus;
21
+ export declare function isProcessingStatus(status?: DocumentQueryStatus | undefined): boolean;
22
+ export declare function isFinalStatus(status?: DocumentQueryStatus | undefined): boolean;
23
+ export declare function isProcessing(progress?: Progress | undefined): boolean;
24
+ //# sourceMappingURL=document-query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-query.d.ts","sourceRoot":"","sources":["../../../../../core/src/domain/document-query.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,gDAAiD,CAAC;AAClF,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAE7D,eAAO,MAAM,aAAa,kCAAmC,CAAC;AAC9D,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1D,MAAM,MAAM,qBAAqB,GAAG,OAAO,CACzC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,mBAAmB,EAAE,OAAO,CAAC;CAC9B,CACF,CAAC;AAEF,eAAO,MAAM,aAAa,gCAAiC,CAAC;AAC5D,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY,GAAG,OAAO,CAAC,GAC1D,mBAAmB,CAIrB;AAED,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,SAAS,WAG1E;AACD,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,SAAS,WAErE;AAED,wBAAgB,YAAY,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,WAE3D"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isProcessing = exports.isFinalStatus = exports.isProcessingStatus = exports.getStatusFromProgress = exports.convertResult = exports.progressTypes = exports.documentQueryStatus = void 0;
4
+ exports.documentQueryStatus = ["processing", "completed", "failed"];
5
+ exports.progressTypes = ["convert", "download"];
6
+ exports.convertResult = ["success", "failed"];
7
+ function getStatusFromProgress(progress) {
8
+ const { successful, errors, total } = progress;
9
+ const isConversionCompleted = (successful ?? 0) + (errors ?? 0) >= (total ?? 0);
10
+ return isConversionCompleted ? "completed" : "processing";
11
+ }
12
+ exports.getStatusFromProgress = getStatusFromProgress;
13
+ function isProcessingStatus(status) {
14
+ if (!status)
15
+ return false;
16
+ return status === "processing";
17
+ }
18
+ exports.isProcessingStatus = isProcessingStatus;
19
+ function isFinalStatus(status) {
20
+ return !isProcessingStatus(status);
21
+ }
22
+ exports.isFinalStatus = isFinalStatus;
23
+ function isProcessing(progress) {
24
+ return isProcessingStatus(progress?.status);
25
+ }
26
+ exports.isProcessing = isProcessing;
27
+ //# sourceMappingURL=document-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-query.js","sourceRoot":"","sources":["../../../../../core/src/domain/document-query.ts"],"names":[],"mappings":";;;AAAa,QAAA,mBAAmB,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,QAAQ,CAAU,CAAC;AAarE,QAAA,aAAa,GAAG,CAAC,SAAS,EAAE,UAAU,CAAU,CAAC;AAWjD,QAAA,aAAa,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAU,CAAC;AAG5D,SAAgB,qBAAqB,CACnC,QAA2D;IAE3D,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;IAC/C,MAAM,qBAAqB,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;IAChF,OAAO,qBAAqB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC;AAC5D,CAAC;AAND,sDAMC;AAED,SAAgB,kBAAkB,CAAC,MAAwC;IACzE,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,OAAO,MAAM,KAAK,YAAY,CAAC;AACjC,CAAC;AAHD,gDAGC;AACD,SAAgB,aAAa,CAAC,MAAwC;IACpE,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC;AAFD,sCAEC;AAED,SAAgB,YAAY,CAAC,QAA+B;IAC1D,OAAO,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAFD,oCAEC"}
@@ -0,0 +1,33 @@
1
+ import { Patient as FHIRPatient } from "@medplum/fhirtypes";
2
+ export type LinkDateOfBirth = string | undefined;
3
+ export type LinkGender = FHIRPatient["gender"];
4
+ export type LinkGenericName = {
5
+ firstName: string;
6
+ lastName: string;
7
+ };
8
+ export type LinkGenericAddress = {
9
+ line: string[];
10
+ city: string;
11
+ state: string;
12
+ zip: string;
13
+ country: string;
14
+ };
15
+ export type LinkGenericDriversLicense = {
16
+ state: string;
17
+ value: string;
18
+ };
19
+ export type LinkDemographics = {
20
+ dob: LinkDateOfBirth;
21
+ gender: LinkGender;
22
+ names: string[];
23
+ addresses: string[];
24
+ telephoneNumbers: string[];
25
+ emails: string[];
26
+ driversLicenses: string[];
27
+ ssns: string[];
28
+ };
29
+ export type LinkDemographicsComparison = Partial<LinkDemographics>;
30
+ export type LinkDemographicsHistory = {
31
+ [key: string]: LinkDemographics[];
32
+ };
33
+ //# sourceMappingURL=patient-demographics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patient-demographics.d.ts","sourceRoot":"","sources":["../../../../../core/src/domain/patient-demographics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE5D,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,SAAS,CAAC;AACjD,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;AAE/C,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,eAAe,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAEnE,MAAM,MAAM,uBAAuB,GAAG;IACpC,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAC;CACnC,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=patient-demographics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patient-demographics.js","sourceRoot":"","sources":["../../../../../core/src/domain/patient-demographics.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ export type ScheduledPatientDiscovery = {
2
+ requestId: string;
3
+ facilityId: string;
4
+ orgIdExcludeList?: string[];
5
+ rerunPdOnNewDemographics?: boolean;
6
+ forceCommonwell?: boolean;
7
+ forceCarequality?: boolean;
8
+ };
9
+ export type DiscoveryParams = {
10
+ requestId: string;
11
+ facilityId: string;
12
+ startedAt: Date;
13
+ rerunPdOnNewDemographics: boolean;
14
+ };
15
+ //# sourceMappingURL=patient-discovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patient-discovery.d.ts","sourceRoot":"","sources":["../../../../../core/src/domain/patient-discovery.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAE5B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;IAChB,wBAAwB,EAAE,OAAO,CAAC;CACnC,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=patient-discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patient-discovery.js","sourceRoot":"","sources":["../../../../../core/src/domain/patient-discovery.ts"],"names":[],"mappings":""}
@@ -0,0 +1,78 @@
1
+ import { ConsolidatedQuery } from "@metriport/api-sdk";
2
+ import { USState } from "@metriport/shared";
3
+ import { BaseDomain, BaseDomainCreate } from "./base-domain";
4
+ import { DocumentQueryProgress } from "./document-query";
5
+ import { DiscoveryParams, ScheduledPatientDiscovery } from "./patient-discovery";
6
+ import { BulkGetDocumentsUrlProgress } from "./bulk-get-document-url";
7
+ import { MedicalDataSource } from "../external";
8
+ import { Address } from "./address";
9
+ import { Contact } from "./contact";
10
+ import { LinkDemographics } from "./patient-demographics";
11
+ export declare const generalPersonalIdentifiers: readonly ["ssn"];
12
+ export declare const driversLicensePersonalIdentifier: readonly ["driversLicense"];
13
+ export type GeneralPersonalIdentifiers = (typeof generalPersonalIdentifiers)[number];
14
+ export type DriversLicensePersonalIdentifier = (typeof driversLicensePersonalIdentifier)[number];
15
+ export type Period = {
16
+ start: string;
17
+ end?: string;
18
+ } | {
19
+ start?: string;
20
+ end: string;
21
+ };
22
+ export type BaseIdentifier = {
23
+ value: string;
24
+ period?: Period;
25
+ assigner?: string;
26
+ };
27
+ export type PersonalIdentifier = BaseIdentifier & ({
28
+ type: GeneralPersonalIdentifiers;
29
+ } | {
30
+ type: DriversLicensePersonalIdentifier;
31
+ state: USState;
32
+ });
33
+ export type DriversLicense = {
34
+ value: string;
35
+ state: USState;
36
+ };
37
+ export declare const genderAtBirthTypes: readonly ["F", "M", "O", "U"];
38
+ export type GenderAtBirth = (typeof genderAtBirthTypes)[number];
39
+ export declare abstract class PatientExternalDataEntry {
40
+ documentQueryProgress?: DocumentQueryProgress;
41
+ scheduledPdRequest?: ScheduledPatientDiscovery;
42
+ discoveryParams?: DiscoveryParams;
43
+ }
44
+ export type PatientExternalData = Partial<Record<MedicalDataSource, PatientExternalDataEntry>>;
45
+ export type ConsolidatedLinkDemographics = Omit<LinkDemographics, "dob" | "gender">;
46
+ export type PatientData = {
47
+ firstName: string;
48
+ lastName: string;
49
+ dob: string;
50
+ genderAtBirth: GenderAtBirth;
51
+ personalIdentifiers?: PersonalIdentifier[] | undefined;
52
+ address: Address[];
53
+ contact?: Contact[];
54
+ requestId?: string;
55
+ consolidatedLinkDemographics?: ConsolidatedLinkDemographics | undefined;
56
+ documentQueryProgress?: DocumentQueryProgress | undefined;
57
+ consolidatedQueries?: ConsolidatedQuery[] | undefined;
58
+ bulkGetDocumentsUrlProgress?: BulkGetDocumentsUrlProgress;
59
+ externalData?: PatientExternalData | undefined;
60
+ cxDocumentRequestMetadata?: unknown;
61
+ cxConsolidatedRequestMetadata?: unknown;
62
+ cxDownloadRequestMetadata?: unknown;
63
+ };
64
+ export type PatientDemoData = Pick<PatientData, "firstName" | "lastName" | "dob" | "genderAtBirth" | "personalIdentifiers" | "address" | "contact">;
65
+ export interface PatientCreate extends BaseDomainCreate {
66
+ cxId: string;
67
+ facilityIds: string[];
68
+ externalId?: string;
69
+ data: PatientData;
70
+ }
71
+ export declare function splitName(name: string): string[];
72
+ export declare function splitDob(dob: string): string[];
73
+ export declare function joinName(name: string[]): string;
74
+ export interface Patient extends BaseDomain, PatientCreate {
75
+ }
76
+ export declare function getStatesFromAddresses(patient: Patient): USState[];
77
+ export declare function createDriversLicensePersonalIdentifier(value: string, state: USState): PersonalIdentifier;
78
+ //# sourceMappingURL=patient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patient.d.ts","sourceRoot":"","sources":["../../../../../core/src/domain/patient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createDriversLicensePersonalIdentifier = exports.getStatesFromAddresses = exports.joinName = exports.splitDob = exports.splitName = exports.PatientExternalDataEntry = exports.genderAtBirthTypes = exports.driversLicensePersonalIdentifier = exports.generalPersonalIdentifiers = void 0;
4
+ const address_1 = require("./address");
5
+ exports.generalPersonalIdentifiers = ["ssn"];
6
+ exports.driversLicensePersonalIdentifier = ["driversLicense"];
7
+ exports.genderAtBirthTypes = ["F", "M", "O", "U"];
8
+ class PatientExternalDataEntry {
9
+ }
10
+ exports.PatientExternalDataEntry = PatientExternalDataEntry;
11
+ function splitName(name) {
12
+ // splits by comma delimiter and filters out empty strings
13
+ return name.split(/[\s,]+/).filter(str => str);
14
+ }
15
+ exports.splitName = splitName;
16
+ function splitDob(dob) {
17
+ // splits by dash delimiter and filters out empty strings
18
+ return dob.split(/[\s-]+/).filter(str => str);
19
+ }
20
+ exports.splitDob = splitDob;
21
+ function joinName(name) {
22
+ return name.join(" ");
23
+ }
24
+ exports.joinName = joinName;
25
+ function getStatesFromAddresses(patient) {
26
+ return patient.data.address.map(address_1.getState);
27
+ }
28
+ exports.getStatesFromAddresses = getStatesFromAddresses;
29
+ function createDriversLicensePersonalIdentifier(value, state) {
30
+ const personalIdentifier = {
31
+ type: "driversLicense",
32
+ value: value,
33
+ state: state,
34
+ };
35
+ return personalIdentifier;
36
+ }
37
+ exports.createDriversLicensePersonalIdentifier = createDriversLicensePersonalIdentifier;
38
+ //# sourceMappingURL=patient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patient.js","sourceRoot":"","sources":["../../../../../core/src/domain/patient.ts"],"names":[],"mappings":";;;AAOA,uCAA8C;AAIjC,QAAA,0BAA0B,GAAG,CAAC,KAAK,CAAU,CAAC;AAC9C,QAAA,gCAAgC,GAAG,CAAC,gBAAgB,CAAU,CAAC;AA+B/D,QAAA,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AAGhE,MAAsB,wBAAwB;CAI7C;AAJD,4DAIC;AAqCD,SAAgB,SAAS,CAAC,IAAY;IACpC,0DAA0D;IAC1D,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACjD,CAAC;AAHD,8BAGC;AAED,SAAgB,QAAQ,CAAC,GAAW;IAClC,yDAAyD;IACzD,OAAO,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAChD,CAAC;AAHD,4BAGC;AAED,SAAgB,QAAQ,CAAC,IAAc;IACrC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;AAFD,4BAEC;AAID,SAAgB,sBAAsB,CAAC,OAAgB;IACrD,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAQ,CAAC,CAAC;AAC5C,CAAC;AAFD,wDAEC;AAED,SAAgB,sCAAsC,CACpD,KAAa,EACb,KAAc;IAEd,MAAM,kBAAkB,GAAuB;QAC7C,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,KAAK;KACb,CAAC;IACF,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAVD,wFAUC"}
@@ -0,0 +1,14 @@
1
+ export declare enum MedicalDataSource {
2
+ /**
3
+ * @deprecated There's no HIE called "ALL", we should accept a list of HIEs instead when needed.
4
+ */
5
+ ALL = "ALL",
6
+ COMMONWELL = "COMMONWELL",
7
+ CAREQUALITY = "CAREQUALITY"
8
+ }
9
+ export declare function isMedicalDataSource(s?: string | null): s is MedicalDataSource;
10
+ export declare const HL7OID = "2.16.840.1.113883";
11
+ type ValidMedicalDataSourceOid = Exclude<MedicalDataSource, MedicalDataSource.ALL | MedicalDataSource.CAREQUALITY>;
12
+ export declare const MedicalDataSourceOid: Record<ValidMedicalDataSourceOid, string>;
13
+ export {};
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../core/src/external/index.ts"],"names":[],"mappings":"AAAA,oBAAY,iBAAiB;IAC3B;;OAEG;IACH,GAAG,QAAQ;IACX,UAAU,eAAe;IACzB,WAAW,gBAAgB;CAC5B;AAED,wBAAgB,mBAAmB,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,iBAAiB,CAI7E;AAED,eAAO,MAAM,MAAM,sBAAsB,CAAC;AAE1C,KAAK,yBAAyB,GAAG,OAAO,CACtC,iBAAiB,EACjB,iBAAiB,CAAC,GAAG,GAAG,iBAAiB,CAAC,WAAW,CACtD,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,yBAAyB,EAAE,MAAM,CAE1E,CAAC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MedicalDataSourceOid = exports.HL7OID = exports.isMedicalDataSource = exports.MedicalDataSource = void 0;
4
+ var MedicalDataSource;
5
+ (function (MedicalDataSource) {
6
+ /**
7
+ * @deprecated There's no HIE called "ALL", we should accept a list of HIEs instead when needed.
8
+ */
9
+ MedicalDataSource["ALL"] = "ALL";
10
+ MedicalDataSource["COMMONWELL"] = "COMMONWELL";
11
+ MedicalDataSource["CAREQUALITY"] = "CAREQUALITY";
12
+ })(MedicalDataSource = exports.MedicalDataSource || (exports.MedicalDataSource = {}));
13
+ function isMedicalDataSource(s) {
14
+ if (!s)
15
+ return false;
16
+ const list = Object.values(MedicalDataSource);
17
+ return list.includes(s);
18
+ }
19
+ exports.isMedicalDataSource = isMedicalDataSource;
20
+ exports.HL7OID = "2.16.840.1.113883";
21
+ exports.MedicalDataSourceOid = {
22
+ [MedicalDataSource.COMMONWELL]: `${exports.HL7OID}.3.3330`,
23
+ };
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../core/src/external/index.ts"],"names":[],"mappings":";;;AAAA,IAAY,iBAOX;AAPD,WAAY,iBAAiB;IAC3B;;OAEG;IACH,gCAAW,CAAA;IACX,8CAAyB,CAAA;IACzB,gDAA2B,CAAA;AAC7B,CAAC,EAPW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAO5B;AAED,SAAgB,mBAAmB,CAAC,CAAiB;IACnD,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAa,CAAC;IAC1D,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC1B,CAAC;AAJD,kDAIC;AAEY,QAAA,MAAM,GAAG,mBAAmB,CAAC;AAO7B,QAAA,oBAAoB,GAA8C;IAC7E,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,GAAG,cAAM,SAAS;CACnD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { USState, USTerritory } from "@metriport/shared";
2
+ export type USStateForAddress = USState | USTerritory;
3
+ //# sourceMappingURL=USStateForAddress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"USStateForAddress.d.ts","sourceRoot":"","sources":["../../../src/domain/address/USStateForAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGzD,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,WAAW,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=USStateForAddress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"USStateForAddress.js","sourceRoot":"","sources":["../../../src/domain/address/USStateForAddress.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=normalize-zip.test%20copy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-zip.test copy.d.ts","sourceRoot":"","sources":["../../../../src/domain/address/__tests__/normalize-zip.test copy.ts"],"names":[],"mappings":""}
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const faker_1 = require("@faker-js/faker");
4
+ const zip_1 = require("../zip");
5
+ function getFiveDigitZip() {
6
+ return faker_1.faker.number.int({ min: 10000, max: 99999 }).toString();
7
+ }
8
+ describe("zip", () => {
9
+ describe("normalizeZipCode", () => {
10
+ test("should handle short zip codes", () => {
11
+ const input = "1234";
12
+ const expectedOutput = "1234";
13
+ expect((0, zip_1.normalizeZipCode)(input)).toBe(expectedOutput);
14
+ });
15
+ test("should return first 4 characters when zip code length is 9", () => {
16
+ const input = "1234-6677";
17
+ const expectedOutput = "1234";
18
+ expect((0, zip_1.normalizeZipCode)(input)).toBe(expectedOutput);
19
+ });
20
+ test("should return first 5 characters when zip code length is 10", () => {
21
+ const input = "12345-6677";
22
+ const expectedOutput = "12345";
23
+ expect((0, zip_1.normalizeZipCode)(input)).toBe(expectedOutput);
24
+ });
25
+ test("should return first 5 characters when zip code length is 5", () => {
26
+ const input = "54321";
27
+ const expectedOutput = "54321";
28
+ expect((0, zip_1.normalizeZipCode)(input)).toBe(expectedOutput);
29
+ });
30
+ test("should throw an error if zip contains non-digit and non-dash characters (length 9)", () => {
31
+ const input = "12345-667a";
32
+ expect(() => (0, zip_1.normalizeZipCode)(input)).toThrow();
33
+ });
34
+ test("should throw an error if zip contains non-digit and non-dash characters (length 5)", () => {
35
+ const input = "1234a";
36
+ expect(() => (0, zip_1.normalizeZipCode)(input)).toThrow();
37
+ });
38
+ test("should throw an error if zip is an empty string", () => {
39
+ const input = "";
40
+ expect(() => (0, zip_1.normalizeZipCode)(input)).toThrow();
41
+ });
42
+ });
43
+ describe("normalizeZipCodeNew", () => {
44
+ it("returns the result of the normalizeFn param", () => {
45
+ const expectedOutput = getFiveDigitZip();
46
+ const normalizeFn = jest.fn(() => expectedOutput);
47
+ expect((0, zip_1.normalizeZipCodeNew)("54321", normalizeFn)).toBe(expectedOutput);
48
+ });
49
+ it("should throw an error if zip is an empty string", () => {
50
+ const normalizeFn = jest.fn(() => undefined);
51
+ expect(() => (0, zip_1.normalizeZipCodeNew)("54321", normalizeFn)).toThrow();
52
+ });
53
+ });
54
+ describe("safe normalizeZipCodeNewSafe", () => {
55
+ it("should return undefined when it gets empty string", () => {
56
+ const input = "";
57
+ const expectedOutput = undefined;
58
+ expect((0, zip_1.normalizeZipCodeNewSafe)(input)).toBe(expectedOutput);
59
+ });
60
+ it("should return undefined when it gets space", () => {
61
+ const input = " ";
62
+ const expectedOutput = undefined;
63
+ expect((0, zip_1.normalizeZipCodeNewSafe)(input)).toBe(expectedOutput);
64
+ });
65
+ it("should handle 5 digits", () => {
66
+ const input = getFiveDigitZip();
67
+ const expectedOutput = input;
68
+ expect((0, zip_1.normalizeZipCodeNewSafe)(input)).toBe(expectedOutput);
69
+ });
70
+ it("should trim input prefix", () => {
71
+ const expectedOutput = getFiveDigitZip();
72
+ const input = " " + expectedOutput;
73
+ expect((0, zip_1.normalizeZipCodeNewSafe)(input)).toBe(expectedOutput);
74
+ });
75
+ it("should trim input suffix", () => {
76
+ const expectedOutput = getFiveDigitZip();
77
+ const input = expectedOutput + " ";
78
+ expect((0, zip_1.normalizeZipCodeNewSafe)(input)).toBe(expectedOutput);
79
+ });
80
+ it("should return undefined for zip codes that are too short", () => {
81
+ const input = "12";
82
+ expect((0, zip_1.normalizeZipCodeNewSafe)(input)).toBeUndefined();
83
+ });
84
+ it("should handle short zip codes", () => {
85
+ const input = "123";
86
+ const expectedOutput = "00123";
87
+ expect((0, zip_1.normalizeZipCodeNewSafe)(input)).toBe(expectedOutput);
88
+ });
89
+ it("should return padded first 4 characters when contains dash at position 4", () => {
90
+ const input = "1234-6677";
91
+ const expectedOutput = "01234";
92
+ expect((0, zip_1.normalizeZipCodeNewSafe)(input)).toBe(expectedOutput);
93
+ });
94
+ it("should return first 5 characters when zip code length is 10", () => {
95
+ const input = "12345-6677";
96
+ const expectedOutput = "12345";
97
+ expect((0, zip_1.normalizeZipCodeNewSafe)(input)).toBe(expectedOutput);
98
+ });
99
+ it("should return undefined if zip contains non-digit and non-dash characters (length 9)", () => {
100
+ const input = "12345-667a";
101
+ expect((0, zip_1.normalizeZipCodeNewSafe)(input)).toBeUndefined();
102
+ });
103
+ it("should return undefined if zip contains non-digit and non-dash characters (length 5)", () => {
104
+ const input = "1234a";
105
+ expect((0, zip_1.normalizeZipCodeNewSafe)(input)).toBeUndefined();
106
+ });
107
+ describe("examples from the wild", () => {
108
+ const tests = [{ input: "2468", expectedOutput: "02468" }];
109
+ for (const { input, expectedOutput } of tests) {
110
+ it(`should return ${expectedOutput} when input is ${input}`, () => {
111
+ expect((0, zip_1.normalizeZipCodeNewSafe)(input)).toBe(expectedOutput);
112
+ });
113
+ }
114
+ });
115
+ });
116
+ });
117
+ //# sourceMappingURL=normalize-zip.test%20copy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-zip.test copy.js","sourceRoot":"","sources":["../../../../src/domain/address/__tests__/normalize-zip.test copy.ts"],"names":[],"mappings":"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"}