@metriport/fhir-sdk 1.2.7 → 1.3.1

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 (92) hide show
  1. package/README.md +207 -0
  2. package/dist/__tests__/clinical-dates.test.d.ts +2 -0
  3. package/dist/__tests__/clinical-dates.test.d.ts.map +1 -0
  4. package/dist/__tests__/clinical-dates.test.js +341 -0
  5. package/dist/__tests__/clinical-dates.test.js.map +1 -0
  6. package/dist/__tests__/date-range-performance.test.d.ts +2 -0
  7. package/dist/__tests__/date-range-performance.test.d.ts.map +1 -0
  8. package/dist/__tests__/date-range-performance.test.js +218 -0
  9. package/dist/__tests__/date-range-performance.test.js.map +1 -0
  10. package/dist/__tests__/date-range-search.test.d.ts +2 -0
  11. package/dist/__tests__/date-range-search.test.d.ts.map +1 -0
  12. package/dist/__tests__/date-range-search.test.js +215 -0
  13. package/dist/__tests__/date-range-search.test.js.map +1 -0
  14. package/dist/__tests__/fhir-bundle-sdk.test.js +467 -0
  15. package/dist/__tests__/fhir-bundle-sdk.test.js.map +1 -1
  16. package/dist/__tests__/reverse-references.test.d.ts +2 -0
  17. package/dist/__tests__/reverse-references.test.d.ts.map +1 -0
  18. package/dist/__tests__/reverse-references.test.js +241 -0
  19. package/dist/__tests__/reverse-references.test.js.map +1 -0
  20. package/dist/clinical-dates.d.ts +26 -0
  21. package/dist/clinical-dates.d.ts.map +1 -0
  22. package/dist/clinical-dates.js +571 -0
  23. package/dist/clinical-dates.js.map +1 -0
  24. package/dist/demo-reverse-references.d.ts +7 -0
  25. package/dist/demo-reverse-references.d.ts.map +1 -0
  26. package/dist/demo-reverse-references.js +207 -0
  27. package/dist/demo-reverse-references.js.map +1 -0
  28. package/dist/fhir-bundle-sdk.d.ts +222 -0
  29. package/dist/fhir-bundle-sdk.d.ts.map +1 -0
  30. package/dist/fhir-bundle-sdk.js +527 -0
  31. package/dist/fhir-bundle-sdk.js.map +1 -0
  32. package/dist/index.d.ts +3 -242
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +5 -678
  35. package/dist/index.js.map +1 -1
  36. package/dist/internal/bundle-operations.d.ts +14 -0
  37. package/dist/internal/bundle-operations.d.ts.map +1 -0
  38. package/dist/internal/bundle-operations.js +55 -0
  39. package/dist/internal/bundle-operations.js.map +1 -0
  40. package/dist/internal/date-extraction.d.ts +12 -0
  41. package/dist/internal/date-extraction.d.ts.map +1 -0
  42. package/dist/internal/date-extraction.js +629 -0
  43. package/dist/internal/date-extraction.js.map +1 -0
  44. package/dist/internal/graph-traversal.d.ts +13 -0
  45. package/dist/internal/graph-traversal.d.ts.map +1 -0
  46. package/dist/internal/graph-traversal.js +89 -0
  47. package/dist/internal/graph-traversal.js.map +1 -0
  48. package/dist/internal/indexing.d.ts +17 -0
  49. package/dist/internal/indexing.d.ts.map +1 -0
  50. package/dist/internal/indexing.js +118 -0
  51. package/dist/internal/indexing.js.map +1 -0
  52. package/dist/internal/llm-context.d.ts +39 -0
  53. package/dist/internal/llm-context.d.ts.map +1 -0
  54. package/dist/internal/llm-context.js +188 -0
  55. package/dist/internal/llm-context.js.map +1 -0
  56. package/dist/internal/reference-resolution.d.ts +25 -0
  57. package/dist/internal/reference-resolution.d.ts.map +1 -0
  58. package/dist/internal/reference-resolution.js +133 -0
  59. package/dist/internal/reference-resolution.js.map +1 -0
  60. package/dist/internal/reference-utils.d.ts +26 -0
  61. package/dist/internal/reference-utils.d.ts.map +1 -0
  62. package/dist/internal/reference-utils.js +89 -0
  63. package/dist/internal/reference-utils.js.map +1 -0
  64. package/dist/internal/validation.d.ts +16 -0
  65. package/dist/internal/validation.d.ts.map +1 -0
  66. package/dist/internal/validation.js +45 -0
  67. package/dist/internal/validation.js.map +1 -0
  68. package/dist/types/sdk-types.d.ts +107 -0
  69. package/dist/types/sdk-types.d.ts.map +1 -0
  70. package/dist/types/sdk-types.js +17 -0
  71. package/dist/types/sdk-types.js.map +1 -0
  72. package/dist/types/smart-resources.d.ts +97 -4
  73. package/dist/types/smart-resources.d.ts.map +1 -1
  74. package/dist/types/smart-resources.js +82 -5
  75. package/dist/types/smart-resources.js.map +1 -1
  76. package/dist/utils/interval-tree/index.d.ts +87 -0
  77. package/dist/utils/interval-tree/index.d.ts.map +1 -0
  78. package/dist/utils/interval-tree/index.js +774 -0
  79. package/dist/utils/interval-tree/index.js.map +1 -0
  80. package/dist/utils/interval-tree/shallowequal/arrays.d.ts +3 -0
  81. package/dist/utils/interval-tree/shallowequal/arrays.d.ts.map +1 -0
  82. package/dist/utils/interval-tree/shallowequal/arrays.js +25 -0
  83. package/dist/utils/interval-tree/shallowequal/arrays.js.map +1 -0
  84. package/dist/utils/interval-tree/shallowequal/index.d.ts +6 -0
  85. package/dist/utils/interval-tree/shallowequal/index.d.ts.map +1 -0
  86. package/dist/utils/interval-tree/shallowequal/index.js +28 -0
  87. package/dist/utils/interval-tree/shallowequal/index.js.map +1 -0
  88. package/dist/utils/interval-tree/shallowequal/objects.d.ts +3 -0
  89. package/dist/utils/interval-tree/shallowequal/objects.d.ts.map +1 -0
  90. package/dist/utils/interval-tree/shallowequal/objects.js +28 -0
  91. package/dist/utils/interval-tree/shallowequal/objects.js.map +1 -0
  92. package/package.json +1 -1
@@ -11,22 +11,58 @@ exports.getReferenceField = exports.isReferenceMethod = exports.REFERENCE_METHOD
11
11
  */
12
12
  exports.REFERENCE_METHOD_MAPPING = {
13
13
  Observation: {
14
+ getBasedOn: "basedOn",
15
+ getPartOf: "partOf",
14
16
  getSubject: "subject",
17
+ getFocus: "focus",
15
18
  getEncounter: "encounter",
16
19
  getPerformers: "performer",
20
+ getSpecimen: "specimen",
21
+ getDevice: "device",
22
+ getHasMember: "hasMember",
23
+ getDerivedFrom: "derivedFrom",
17
24
  },
18
25
  Encounter: {
19
26
  getSubject: "subject",
20
- getParticipants: "participant",
27
+ getEpisodeOfCare: "episodeOfCare",
28
+ getBasedOn: "basedOn",
29
+ getParticipants: "participant.individual",
30
+ getAppointment: "appointment",
31
+ getReasonReference: "reasonReference",
32
+ getAccount: "account",
33
+ getServiceProvider: "serviceProvider",
34
+ getPartOf: "partOf",
35
+ getHospitalizationOrigin: "hospitalization.origin",
36
+ getHospitalizationDestination: "hospitalization.destination",
37
+ getLocation: "location.location",
38
+ getDiagnosisCondition: "diagnosis.condition",
21
39
  },
22
40
  DiagnosticReport: {
41
+ getBasedOn: "basedOn",
23
42
  getSubject: "subject",
24
- getResults: "result",
43
+ getEncounter: "encounter",
25
44
  getPerformers: "performer",
45
+ getResultsInterpreter: "resultsInterpreter",
46
+ getSpecimen: "specimen",
47
+ getResults: "result",
48
+ getImagingStudy: "imagingStudy",
49
+ getMediaLink: "media.link",
26
50
  },
27
51
  Patient: {
28
52
  getGeneralPractitioners: "generalPractitioner",
29
53
  getManagingOrganization: "managingOrganization",
54
+ getContactOrganization: "contact.organization",
55
+ getLinkOther: "link.other",
56
+ },
57
+ Practitioner: {
58
+ getQualificationIssuer: "qualification.issuer",
59
+ },
60
+ PractitionerRole: {
61
+ getPractitioner: "practitioner",
62
+ getOrganization: "organization",
63
+ getLocation: "location",
64
+ getHealthcareService: "healthcareService",
65
+ getEndpoint: "endpoint",
30
66
  },
31
67
  AllergyIntolerance: {
32
68
  getPatient: "patient",
@@ -39,19 +75,29 @@ exports.REFERENCE_METHOD_MAPPING = {
39
75
  getEncounter: "encounter",
40
76
  getRecorder: "recorder",
41
77
  getAsserter: "asserter",
78
+ getStageAssessment: "stage.assessment",
79
+ getEvidenceDetail: "evidence.detail",
42
80
  },
43
81
  Organization: {
44
82
  getPartOf: "partOf",
83
+ getEndpoint: "endpoint",
45
84
  },
46
85
  Location: {
47
86
  getManagingOrganization: "managingOrganization",
48
87
  getPartOf: "partOf",
88
+ getEndpoint: "endpoint",
49
89
  },
50
90
  Composition: {
51
91
  getSubject: "subject",
52
92
  getEncounter: "encounter",
53
93
  getAuthors: "author",
54
94
  getCustodian: "custodian",
95
+ getAttesterParty: "attester.party",
96
+ getRelatesToTarget: "relatesTo.targetReference",
97
+ getEventDetail: "event.detail",
98
+ getSectionAuthor: "section.author",
99
+ getSectionFocus: "section.focus",
100
+ getSectionEntry: "section.entry",
55
101
  },
56
102
  Coverage: {
57
103
  getBeneficiary: "beneficiary",
@@ -64,26 +110,57 @@ exports.REFERENCE_METHOD_MAPPING = {
64
110
  getAuthors: "author",
65
111
  getAuthenticator: "authenticator",
66
112
  getCustodian: "custodian",
113
+ getRelatesToTarget: "relatesTo.target",
114
+ getContextEncounter: "context.encounter",
115
+ getContextSourcePatientInfo: "context.sourcePatientInfo",
116
+ getContextRelated: "context.related",
67
117
  },
68
118
  Immunization: {
69
119
  getPatient: "patient",
70
120
  getEncounter: "encounter",
121
+ getLocation: "location",
122
+ getManufacturer: "manufacturer",
71
123
  getPerformers: "performer.actor",
124
+ getReasonReference: "reasonReference",
125
+ getProtocolAppliedAuthority: "protocolApplied.authority",
126
+ getReactionDetail: "reaction.detail",
72
127
  },
73
128
  Medication: {
74
129
  getManufacturer: "manufacturer",
130
+ getIngredientItem: "ingredient.itemReference",
75
131
  },
76
132
  MedicationRequest: {
133
+ getReportedReference: "reportedReference",
134
+ getMedicationReference: "medicationReference",
77
135
  getSubject: "subject",
78
136
  getEncounter: "encounter",
137
+ getSupportingInformation: "supportingInformation",
79
138
  getRequester: "requester",
80
139
  getPerformer: "performer",
81
- getMedicationReference: "medicationReference",
140
+ getRecorder: "recorder",
141
+ getReasonReference: "reasonReference",
142
+ getBasedOn: "basedOn",
143
+ getInsurance: "insurance",
144
+ getPriorPrescription: "priorPrescription",
145
+ getDetectedIssue: "detectedIssue",
146
+ getEventHistory: "eventHistory",
147
+ getDispenseRequestPerformer: "dispenseRequest.performer",
82
148
  },
83
149
  Procedure: {
150
+ getBasedOn: "basedOn",
151
+ getPartOf: "partOf",
84
152
  getSubject: "subject",
85
153
  getEncounter: "encounter",
154
+ getRecorder: "recorder",
155
+ getAsserter: "asserter",
86
156
  getPerformers: "performer.actor",
157
+ getPerformerOnBehalfOf: "performer.onBehalfOf",
158
+ getLocation: "location",
159
+ getReasonReference: "reasonReference",
160
+ getReport: "report",
161
+ getComplicationDetail: "complicationDetail",
162
+ getFocalDeviceManipulated: "focalDevice.manipulated",
163
+ getUsedReference: "usedReference",
87
164
  },
88
165
  FamilyMemberHistory: {
89
166
  getPatient: "patient",
@@ -91,13 +168,13 @@ exports.REFERENCE_METHOD_MAPPING = {
91
168
  MedicationAdministration: {
92
169
  getSubject: "subject",
93
170
  getContext: "context",
94
- getPerformers: "performer",
171
+ getPerformers: "performer.actor",
95
172
  getMedicationReference: "medicationReference",
96
173
  },
97
174
  MedicationDispense: {
98
175
  getSubject: "subject",
99
176
  getContext: "context",
100
- getPerformers: "performer",
177
+ getPerformers: "performer.actor",
101
178
  getMedicationReference: "medicationReference",
102
179
  },
103
180
  MedicationStatement: {
@@ -1 +1 @@
1
- {"version":3,"file":"smart-resources.js","sourceRoot":"","sources":["../../src/types/smart-resources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smart-resources.js","sourceRoot":"","sources":["../../src/types/smart-resources.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ export interface Interval<N extends number | bigint = number> {
2
+ readonly low: N;
3
+ readonly high: N;
4
+ }
5
+ export declare class Node<T extends Interval<N>, N extends number | bigint = number> {
6
+ intervalTree: IntervalTree<T, N>;
7
+ key: N;
8
+ max: N;
9
+ records: T[];
10
+ parent?: Node<T, N>;
11
+ height: number;
12
+ left?: Node<T, N>;
13
+ right?: Node<T, N>;
14
+ constructor(intervalTree: IntervalTree<T, N>, record: T);
15
+ getNodeHigh(): N;
16
+ updateHeight(): void;
17
+ updateMaxOfParents(): void;
18
+ private _updateMaxAfterRightRotate;
19
+ private _updateMaxAfterLeftRotate;
20
+ private _leftRotate;
21
+ private _rightRotate;
22
+ private _rebalance;
23
+ insert(record: T): void;
24
+ private _getOverlappingRecords;
25
+ search(low: N, high: N): T[];
26
+ searchExisting(low: N): Node<T, N> | undefined;
27
+ private _minValue;
28
+ remove(node: Node<T, N>): Node<T, N> | undefined;
29
+ }
30
+ export declare class IntervalTree<T extends Interval<N>, N extends number | bigint = number> {
31
+ root?: Node<T, N>;
32
+ count: number;
33
+ insert(record: T): boolean;
34
+ search(low: N, high: N): T[];
35
+ remove(record: T): boolean;
36
+ inOrder(): InOrder<T, N>;
37
+ reverseInOrder(): ReverseInOrder<T, N>;
38
+ preOrder(): PreOrder<T, N>;
39
+ }
40
+ export interface DataInterval<T, N extends number | bigint = number> extends Interval<N> {
41
+ data: T;
42
+ }
43
+ /**
44
+ * The default export just wraps the `IntervalTree`, while providing a simpler API. Check out the
45
+ * README for description on how to use each.
46
+ */
47
+ export default class DataIntervalTree<T, N extends number | bigint = number> {
48
+ private tree;
49
+ insert(low: N, high: N, data: T): boolean;
50
+ remove(low: N, high: N, data: T): boolean;
51
+ search(low: N, high: N): T[];
52
+ inOrder(): InOrder<DataInterval<T, N>, N>;
53
+ reverseInOrder(): ReverseInOrder<DataInterval<T, N>, N>;
54
+ preOrder(): PreOrder<DataInterval<T, N>, N>;
55
+ get count(): number;
56
+ }
57
+ export declare class InOrder<T extends Interval<N>, N extends number | bigint = number> implements IterableIterator<T> {
58
+ private stack;
59
+ private currentNode?;
60
+ private i;
61
+ constructor(startNode?: Node<T, N>);
62
+ [Symbol.iterator](): this;
63
+ next(): IteratorResult<T>;
64
+ private push;
65
+ private pop;
66
+ }
67
+ export declare class ReverseInOrder<T extends Interval<N>, N extends number | bigint = number> implements IterableIterator<T> {
68
+ private stack;
69
+ private currentNode?;
70
+ private i;
71
+ constructor(startNode?: Node<T, N>);
72
+ [Symbol.iterator](): this;
73
+ next(): IteratorResult<T>;
74
+ private push;
75
+ private pop;
76
+ }
77
+ export declare class PreOrder<T extends Interval<N>, N extends number | bigint = number> implements IterableIterator<T> {
78
+ private stack;
79
+ private currentNode?;
80
+ private i;
81
+ constructor(startNode?: Node<T, N>);
82
+ [Symbol.iterator](): this;
83
+ next(): IteratorResult<T>;
84
+ private push;
85
+ private pop;
86
+ }
87
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/interval-tree/index.ts"],"names":[],"mappings":"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"}