@cornerstonejs/metadata 5.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 (138) hide show
  1. package/LICENSE +21 -0
  2. package/dist/esm/enums/CalibrationTypes.d.ts +12 -0
  3. package/dist/esm/enums/CalibrationTypes.js +13 -0
  4. package/dist/esm/enums/MetadataModules.d.ts +54 -0
  5. package/dist/esm/enums/MetadataModules.js +57 -0
  6. package/dist/esm/enums/index.d.ts +4 -0
  7. package/dist/esm/enums/index.js +4 -0
  8. package/dist/esm/index.d.ts +10 -0
  9. package/dist/esm/index.js +9 -0
  10. package/dist/esm/metaData.d.ts +33 -0
  11. package/dist/esm/metaData.js +181 -0
  12. package/dist/esm/registerDefaultProviders.d.ts +1 -0
  13. package/dist/esm/registerDefaultProviders.js +38 -0
  14. package/dist/esm/types/DicomStreamTypes.d.ts +13 -0
  15. package/dist/esm/types/DicomStreamTypes.js +0 -0
  16. package/dist/esm/types/IImageCalibration.d.ts +11 -0
  17. package/dist/esm/types/IImageCalibration.js +0 -0
  18. package/dist/esm/types/MetadataModuleTypes.d.ts +100 -0
  19. package/dist/esm/types/MetadataModuleTypes.js +0 -0
  20. package/dist/esm/types/index.d.ts +3 -0
  21. package/dist/esm/types/index.js +0 -0
  22. package/dist/esm/utilities/Tags.d.ts +25 -0
  23. package/dist/esm/utilities/Tags.js +112 -0
  24. package/dist/esm/utilities/bulkDataFromArray.d.ts +1 -0
  25. package/dist/esm/utilities/bulkDataFromArray.js +38 -0
  26. package/dist/esm/utilities/calibratedPixelSpacingMetadataProvider.d.ts +7 -0
  27. package/dist/esm/utilities/calibratedPixelSpacingMetadataProvider.js +21 -0
  28. package/dist/esm/utilities/dicomStream/MetaDataIterator.d.ts +11 -0
  29. package/dist/esm/utilities/dicomStream/MetaDataIterator.js +58 -0
  30. package/dist/esm/utilities/dicomStream/NaturalTagListener.d.ts +22 -0
  31. package/dist/esm/utilities/dicomStream/NaturalTagListener.js +106 -0
  32. package/dist/esm/utilities/dicomStream/index.d.ts +3 -0
  33. package/dist/esm/utilities/dicomStream/index.js +2 -0
  34. package/dist/esm/utilities/getNaturalizedField.d.ts +3 -0
  35. package/dist/esm/utilities/getNaturalizedField.js +34 -0
  36. package/dist/esm/utilities/getPixelSpacingInformation.d.ts +13 -0
  37. package/dist/esm/utilities/getPixelSpacingInformation.js +93 -0
  38. package/dist/esm/utilities/imageIdToURI.d.ts +1 -0
  39. package/dist/esm/utilities/imageIdToURI.js +15 -0
  40. package/dist/esm/utilities/index.d.ts +15 -0
  41. package/dist/esm/utilities/index.js +15 -0
  42. package/dist/esm/utilities/isEqual.d.ts +2 -0
  43. package/dist/esm/utilities/isEqual.js +2 -0
  44. package/dist/esm/utilities/isVideoTransferSyntax.d.ts +2 -0
  45. package/dist/esm/utilities/isVideoTransferSyntax.js +25 -0
  46. package/dist/esm/utilities/logging.d.ts +3 -0
  47. package/dist/esm/utilities/logging.js +2 -0
  48. package/dist/esm/utilities/metadataProvider/addDicomPart10Instance.d.ts +2 -0
  49. package/dist/esm/utilities/metadataProvider/addDicomPart10Instance.js +12 -0
  50. package/dist/esm/utilities/metadataProvider/cacheData.d.ts +39 -0
  51. package/dist/esm/utilities/metadataProvider/cacheData.js +235 -0
  52. package/dist/esm/utilities/metadataProvider/calibrationModule.d.ts +2 -0
  53. package/dist/esm/utilities/metadataProvider/calibrationModule.js +25 -0
  54. package/dist/esm/utilities/metadataProvider/combineFrameInstance.d.ts +5 -0
  55. package/dist/esm/utilities/metadataProvider/combineFrameInstance.js +158 -0
  56. package/dist/esm/utilities/metadataProvider/compressedFrameData.d.ts +1 -0
  57. package/dist/esm/utilities/metadataProvider/compressedFrameData.js +133 -0
  58. package/dist/esm/utilities/metadataProvider/dataLookup.d.ts +7 -0
  59. package/dist/esm/utilities/metadataProvider/dataLookup.js +18 -0
  60. package/dist/esm/utilities/metadataProvider/dicomSplit.d.ts +1 -0
  61. package/dist/esm/utilities/metadataProvider/dicomSplit.js +5 -0
  62. package/dist/esm/utilities/metadataProvider/ecgFromInstance.d.ts +18 -0
  63. package/dist/esm/utilities/metadataProvider/ecgFromInstance.js +228 -0
  64. package/dist/esm/utilities/metadataProvider/ecgModule.d.ts +1 -0
  65. package/dist/esm/utilities/metadataProvider/ecgModule.js +0 -0
  66. package/dist/esm/utilities/metadataProvider/imageIdsProviders.d.ts +11 -0
  67. package/dist/esm/utilities/metadataProvider/imageIdsProviders.js +117 -0
  68. package/dist/esm/utilities/metadataProvider/imagePlaneCalibrated.d.ts +4 -0
  69. package/dist/esm/utilities/metadataProvider/imagePlaneCalibrated.js +89 -0
  70. package/dist/esm/utilities/metadataProvider/index.d.ts +18 -0
  71. package/dist/esm/utilities/metadataProvider/index.js +17 -0
  72. package/dist/esm/utilities/metadataProvider/instanceFromListener.d.ts +2 -0
  73. package/dist/esm/utilities/metadataProvider/instanceFromListener.js +9 -0
  74. package/dist/esm/utilities/metadataProvider/makeArrayLike.d.ts +1 -0
  75. package/dist/esm/utilities/metadataProvider/makeArrayLike.js +25 -0
  76. package/dist/esm/utilities/metadataProvider/naturalizedHandlers.d.ts +5 -0
  77. package/dist/esm/utilities/metadataProvider/naturalizedHandlers.js +67 -0
  78. package/dist/esm/utilities/metadataProvider/pixelDataUpdate.d.ts +2 -0
  79. package/dist/esm/utilities/metadataProvider/pixelDataUpdate.js +133 -0
  80. package/dist/esm/utilities/metadataProvider/scalingFromInstance.d.ts +1 -0
  81. package/dist/esm/utilities/metadataProvider/scalingFromInstance.js +148 -0
  82. package/dist/esm/utilities/metadataProvider/tagModules.d.ts +7 -0
  83. package/dist/esm/utilities/metadataProvider/tagModules.js +62 -0
  84. package/dist/esm/utilities/metadataProvider/transferSyntaxProvider.d.ts +2 -0
  85. package/dist/esm/utilities/metadataProvider/transferSyntaxProvider.js +20 -0
  86. package/dist/esm/utilities/metadataProvider/uriModule.d.ts +19 -0
  87. package/dist/esm/utilities/metadataProvider/uriModule.js +26 -0
  88. package/dist/esm/utilities/modules/cine.d.ts +2 -0
  89. package/dist/esm/utilities/modules/cine.js +4 -0
  90. package/dist/esm/utilities/modules/clinicalTrial.d.ts +2 -0
  91. package/dist/esm/utilities/modules/clinicalTrial.js +6 -0
  92. package/dist/esm/utilities/modules/ecg.d.ts +2 -0
  93. package/dist/esm/utilities/modules/ecg.js +11 -0
  94. package/dist/esm/utilities/modules/generalImage.d.ts +2 -0
  95. package/dist/esm/utilities/modules/generalImage.js +14 -0
  96. package/dist/esm/utilities/modules/generalSeries.d.ts +2 -0
  97. package/dist/esm/utilities/modules/generalSeries.js +11 -0
  98. package/dist/esm/utilities/modules/generalStudy.d.ts +2 -0
  99. package/dist/esm/utilities/modules/generalStudy.js +7 -0
  100. package/dist/esm/utilities/modules/imagePixel.d.ts +2 -0
  101. package/dist/esm/utilities/modules/imagePixel.js +31 -0
  102. package/dist/esm/utilities/modules/imagePlane.d.ts +2 -0
  103. package/dist/esm/utilities/modules/imagePlane.js +8 -0
  104. package/dist/esm/utilities/modules/index.d.ts +5 -0
  105. package/dist/esm/utilities/modules/index.js +48 -0
  106. package/dist/esm/utilities/modules/modalityLut.d.ts +2 -0
  107. package/dist/esm/utilities/modules/modalityLut.js +5 -0
  108. package/dist/esm/utilities/modules/patient.d.ts +2 -0
  109. package/dist/esm/utilities/modules/patient.js +6 -0
  110. package/dist/esm/utilities/modules/patientStudy.d.ts +2 -0
  111. package/dist/esm/utilities/modules/patientStudy.js +6 -0
  112. package/dist/esm/utilities/modules/ptImage.d.ts +2 -0
  113. package/dist/esm/utilities/modules/ptImage.js +4 -0
  114. package/dist/esm/utilities/modules/ptIsotope.d.ts +2 -0
  115. package/dist/esm/utilities/modules/ptIsotope.js +1 -0
  116. package/dist/esm/utilities/modules/ptSeries.d.ts +2 -0
  117. package/dist/esm/utilities/modules/ptSeries.js +5 -0
  118. package/dist/esm/utilities/modules/radiopharmaceuticalInfo.d.ts +2 -0
  119. package/dist/esm/utilities/modules/radiopharmaceuticalInfo.js +6 -0
  120. package/dist/esm/utilities/modules/sopCommon.d.ts +2 -0
  121. package/dist/esm/utilities/modules/sopCommon.js +1 -0
  122. package/dist/esm/utilities/modules/transferSyntax.d.ts +2 -0
  123. package/dist/esm/utilities/modules/transferSyntax.js +4 -0
  124. package/dist/esm/utilities/modules/ultrasoundEnhancedRegion.d.ts +2 -0
  125. package/dist/esm/utilities/modules/ultrasoundEnhancedRegion.js +1 -0
  126. package/dist/esm/utilities/modules/unassigned.d.ts +2 -0
  127. package/dist/esm/utilities/modules/unassigned.js +15 -0
  128. package/dist/esm/utilities/modules/usRegionChild.d.ts +2 -0
  129. package/dist/esm/utilities/modules/usRegionChild.js +18 -0
  130. package/dist/esm/utilities/modules/voiLut.d.ts +2 -0
  131. package/dist/esm/utilities/modules/voiLut.js +6 -0
  132. package/dist/esm/utilities/splitImageIdsBy4DTags.d.ts +12 -0
  133. package/dist/esm/utilities/splitImageIdsBy4DTags.js +314 -0
  134. package/dist/esm/utilities/toNumber.d.ts +2 -0
  135. package/dist/esm/utilities/toNumber.js +2 -0
  136. package/dist/esm/version.d.ts +1 -0
  137. package/dist/esm/version.js +1 -0
  138. package/package.json +99 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2019 Open Health Imaging Foundation
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,12 @@
1
+ export declare enum CalibrationTypes {
2
+ NOT_APPLICABLE = "",
3
+ ERMF = "ERMF",
4
+ USER = "User",
5
+ PROJECTION = "Proj",
6
+ REGION = "Region",
7
+ ERROR = "Error",
8
+ UNCALIBRATED = "Uncalibrated",
9
+ CALIBRATED = "Calibrated",
10
+ UNKNOWN = "Unknown"
11
+ }
12
+ export default CalibrationTypes;
@@ -0,0 +1,13 @@
1
+ export var CalibrationTypes;
2
+ (function (CalibrationTypes) {
3
+ CalibrationTypes["NOT_APPLICABLE"] = "";
4
+ CalibrationTypes["ERMF"] = "ERMF";
5
+ CalibrationTypes["USER"] = "User";
6
+ CalibrationTypes["PROJECTION"] = "Proj";
7
+ CalibrationTypes["REGION"] = "Region";
8
+ CalibrationTypes["ERROR"] = "Error";
9
+ CalibrationTypes["UNCALIBRATED"] = "Uncalibrated";
10
+ CalibrationTypes["CALIBRATED"] = "Calibrated";
11
+ CalibrationTypes["UNKNOWN"] = "Unknown";
12
+ })(CalibrationTypes || (CalibrationTypes = {}));
13
+ export default CalibrationTypes;
@@ -0,0 +1,54 @@
1
+ declare enum MetadataModules {
2
+ CALIBRATION = "calibrationModule",
3
+ CINE = "cineModule",
4
+ FRAME_OF_REFERENCE = "frameOfReferenceModule",
5
+ GENERAL_IMAGE = "generalImageModule",
6
+ GENERAL_SERIES = "generalSeriesModule",
7
+ GENERAL_STUDY = "generalStudyModule",
8
+ IMAGE_PIXEL = "imagePixelModule",
9
+ IMAGE_PLANE = "imagePlaneModule",
10
+ IMAGE_URL = "imageUrlModule",
11
+ MODALITY_LUT = "modalityLutModule",
12
+ MULTIFRAME = "multiframeModule",
13
+ NM_MULTIFRAME_GEOMETRY = "nmMultiframeGeometryModule",
14
+ OVERLAY_PLANE = "overlayPlaneModule",
15
+ PATIENT = "patientModule",
16
+ PATIENT_DEMOGRAPHIC = "patientDemographicModule",
17
+ PATIENT_STUDY = "patientStudyModule",
18
+ PET_IMAGE = "petImageModule",
19
+ PET_ISOTOPE = "petIsotopeModule",
20
+ PET_SERIES = "petSeriesModule",
21
+ SCALING = "scalingModule",
22
+ SOP_COMMON = "sopCommonModule",
23
+ ULTRASOUND_ENHANCED_REGION = "ultrasoundEnhancedRegionModule",
24
+ ECG = "ecgModule",
25
+ VOI_LUT = "voiLutModule",
26
+ TRANSFER_SYNTAX = "transferSyntax",
27
+ PLANE_ORIENTATION = "PlaneOrientation",
28
+ PLANE_POSITION = "PlanePosition",
29
+ PIXEL_MEASURES = "PixelMeasures",
30
+ XRAY_GEOMETRY = "XrayGeometry",
31
+ FRAME_PIXEL_DATA = "FramePixelData",
32
+ FRAME_MODULE = "frameModule",
33
+ URI_MODULE = "uriModule",
34
+ WADO_WEB_CLIENT = "wadoWebClient",
35
+ INSTANCE = "instance",
36
+ IMAGE_SOP_INSTANCE_REFERENCE = "ImageSopInstanceReference",
37
+ REFERENCED_SERIES_REFERENCE = "ReferencedSeriesReference",
38
+ PREDECESSOR_SEQUENCE = "PredecessorSequence",
39
+ STUDY_DATA = "StudyData",
40
+ SERIES_DATA = "SeriesData",
41
+ IMAGE_DATA = "ImageData",
42
+ RTSS_INSTANCE_DATA = "RtssInstanceData",
43
+ NEW_INSTANCE_DATA = "NewInstanceData",
44
+ RTSS_CONTOUR = "metaRTSSContour",
45
+ SEG_BIT = "metaSegBitmap",
46
+ SR_ANNOTATION = "metaSrAnnotation",
47
+ COMPRESSED_FRAME_DATA = "compressedFrameData",
48
+ BASE_IMAGE_ID = "baseImageId",
49
+ FRAME_IMAGE_IDS = "frameImageIds",
50
+ NATURALIZED = "naturalized"
51
+ }
52
+ export declare const ADD_MODULE_TYPE_SUFFIX = "Add";
53
+ export declare function getAddModuleType(type: string): string;
54
+ export default MetadataModules;
@@ -0,0 +1,57 @@
1
+ var MetadataModules;
2
+ (function (MetadataModules) {
3
+ MetadataModules["CALIBRATION"] = "calibrationModule";
4
+ MetadataModules["CINE"] = "cineModule";
5
+ MetadataModules["FRAME_OF_REFERENCE"] = "frameOfReferenceModule";
6
+ MetadataModules["GENERAL_IMAGE"] = "generalImageModule";
7
+ MetadataModules["GENERAL_SERIES"] = "generalSeriesModule";
8
+ MetadataModules["GENERAL_STUDY"] = "generalStudyModule";
9
+ MetadataModules["IMAGE_PIXEL"] = "imagePixelModule";
10
+ MetadataModules["IMAGE_PLANE"] = "imagePlaneModule";
11
+ MetadataModules["IMAGE_URL"] = "imageUrlModule";
12
+ MetadataModules["MODALITY_LUT"] = "modalityLutModule";
13
+ MetadataModules["MULTIFRAME"] = "multiframeModule";
14
+ MetadataModules["NM_MULTIFRAME_GEOMETRY"] = "nmMultiframeGeometryModule";
15
+ MetadataModules["OVERLAY_PLANE"] = "overlayPlaneModule";
16
+ MetadataModules["PATIENT"] = "patientModule";
17
+ MetadataModules["PATIENT_DEMOGRAPHIC"] = "patientDemographicModule";
18
+ MetadataModules["PATIENT_STUDY"] = "patientStudyModule";
19
+ MetadataModules["PET_IMAGE"] = "petImageModule";
20
+ MetadataModules["PET_ISOTOPE"] = "petIsotopeModule";
21
+ MetadataModules["PET_SERIES"] = "petSeriesModule";
22
+ MetadataModules["SCALING"] = "scalingModule";
23
+ MetadataModules["SOP_COMMON"] = "sopCommonModule";
24
+ MetadataModules["ULTRASOUND_ENHANCED_REGION"] = "ultrasoundEnhancedRegionModule";
25
+ MetadataModules["ECG"] = "ecgModule";
26
+ MetadataModules["VOI_LUT"] = "voiLutModule";
27
+ MetadataModules["TRANSFER_SYNTAX"] = "transferSyntax";
28
+ MetadataModules["PLANE_ORIENTATION"] = "PlaneOrientation";
29
+ MetadataModules["PLANE_POSITION"] = "PlanePosition";
30
+ MetadataModules["PIXEL_MEASURES"] = "PixelMeasures";
31
+ MetadataModules["XRAY_GEOMETRY"] = "XrayGeometry";
32
+ MetadataModules["FRAME_PIXEL_DATA"] = "FramePixelData";
33
+ MetadataModules["FRAME_MODULE"] = "frameModule";
34
+ MetadataModules["URI_MODULE"] = "uriModule";
35
+ MetadataModules["WADO_WEB_CLIENT"] = "wadoWebClient";
36
+ MetadataModules["INSTANCE"] = "instance";
37
+ MetadataModules["IMAGE_SOP_INSTANCE_REFERENCE"] = "ImageSopInstanceReference";
38
+ MetadataModules["REFERENCED_SERIES_REFERENCE"] = "ReferencedSeriesReference";
39
+ MetadataModules["PREDECESSOR_SEQUENCE"] = "PredecessorSequence";
40
+ MetadataModules["STUDY_DATA"] = "StudyData";
41
+ MetadataModules["SERIES_DATA"] = "SeriesData";
42
+ MetadataModules["IMAGE_DATA"] = "ImageData";
43
+ MetadataModules["RTSS_INSTANCE_DATA"] = "RtssInstanceData";
44
+ MetadataModules["NEW_INSTANCE_DATA"] = "NewInstanceData";
45
+ MetadataModules["RTSS_CONTOUR"] = "metaRTSSContour";
46
+ MetadataModules["SEG_BIT"] = "metaSegBitmap";
47
+ MetadataModules["SR_ANNOTATION"] = "metaSrAnnotation";
48
+ MetadataModules["COMPRESSED_FRAME_DATA"] = "compressedFrameData";
49
+ MetadataModules["BASE_IMAGE_ID"] = "baseImageId";
50
+ MetadataModules["FRAME_IMAGE_IDS"] = "frameImageIds";
51
+ MetadataModules["NATURALIZED"] = "naturalized";
52
+ })(MetadataModules || (MetadataModules = {}));
53
+ export const ADD_MODULE_TYPE_SUFFIX = 'Add';
54
+ export function getAddModuleType(type) {
55
+ return `${type}${ADD_MODULE_TYPE_SUFFIX}`;
56
+ }
57
+ export default MetadataModules;
@@ -0,0 +1,4 @@
1
+ import CalibrationTypes from './CalibrationTypes';
2
+ import MetadataModules from './MetadataModules';
3
+ export { getAddModuleType, ADD_MODULE_TYPE_SUFFIX } from './MetadataModules';
4
+ export { CalibrationTypes, MetadataModules };
@@ -0,0 +1,4 @@
1
+ import CalibrationTypes from './CalibrationTypes';
2
+ import MetadataModules from './MetadataModules';
3
+ export { getAddModuleType, ADD_MODULE_TYPE_SUFFIX } from './MetadataModules';
4
+ export { CalibrationTypes, MetadataModules };
@@ -0,0 +1,10 @@
1
+ import * as calculateSUV from '@cornerstonejs/calculate-suv';
2
+ export * as Enums from './enums';
3
+ export { version } from './version';
4
+ export * as metaData from './metaData';
5
+ export * as utilities from './utilities';
6
+ export * as logging from './utilities/logging';
7
+ export { registerDefaultProviders } from './registerDefaultProviders';
8
+ export type * from './types';
9
+ declare const calculateSUVScalingFactors: typeof calculateSUV.calculateSUVScalingFactors;
10
+ export { calculateSUVScalingFactors };
@@ -0,0 +1,9 @@
1
+ import * as calculateSUV from '@cornerstonejs/calculate-suv';
2
+ export * as Enums from './enums';
3
+ export { version } from './version';
4
+ export * as metaData from './metaData';
5
+ export * as utilities from './utilities';
6
+ export * as logging from './utilities/logging';
7
+ export { registerDefaultProviders } from './registerDefaultProviders';
8
+ const { calculateSUVScalingFactors } = calculateSUV;
9
+ export { calculateSUVScalingFactors };
@@ -0,0 +1,33 @@
1
+ import type { MetadataModuleType } from './types';
2
+ export type TypedProviderValue = {
3
+ provider: TypedProvider;
4
+ priority: number;
5
+ isDefault: boolean;
6
+ clear?: () => void;
7
+ clearQuery?: (query: string) => void;
8
+ };
9
+ export type TypedProvider = (next: TypedProviderBound, query: string, data?: any, options?: any) => unknown;
10
+ export type TypedProviderBound = (query: string, data?: any, options?: any) => unknown;
11
+ export declare function addProvider(provider: (type: string, ...query: string[]) => unknown, priority?: number): void;
12
+ export interface TypedProviderOptions {
13
+ priority?: number;
14
+ requires?: string[];
15
+ isDefault?: boolean;
16
+ clear?: () => void;
17
+ clearQuery?: (query: string) => void;
18
+ }
19
+ export declare function addTypedProvider(type: string, provider: TypedProvider, options?: TypedProviderOptions): void;
20
+ export declare function addAddProvider(type: string, provider: TypedProvider, options?: TypedProviderOptions): void;
21
+ export declare function metadataModuleProvider(type: string, query: string, options: any): unknown;
22
+ export declare function removeProvider(provider: (type: string, query: unknown) => unknown): void;
23
+ export declare function removeAllProviders(): void;
24
+ export declare function getMetaData(type: string, query: string, options?: any): any;
25
+ export declare function getTyped<K extends keyof MetadataModuleType | string>(type: K, query: string, options?: unknown): (K extends keyof MetadataModuleType ? MetadataModuleType[K] : never) | undefined;
26
+ export declare function addMetaData(type: string, query: string, options?: any): unknown;
27
+ export declare function addTyped<K extends keyof MetadataModuleType | string>(type: K, query: string, options?: unknown): (K extends keyof MetadataModuleType ? MetadataModuleType[K] : never) | Promise<K extends keyof MetadataModuleType ? MetadataModuleType[K] : never> | undefined;
28
+ export declare const clearQuery: (type: string, query?: string) => void;
29
+ export declare const clear: (type: string) => void;
30
+ export declare const get: (type: string, ...queries: string[]) => any;
31
+ export declare function getNormalized(imageId: string, types: string[], metaDataProvider?: typeof getMetaData): {};
32
+ export declare const toUpperCamelTag: (tag: string) => string;
33
+ export declare const toLowerCamelTag: (tag: string) => string;
@@ -0,0 +1,181 @@
1
+ import { getAddModuleType } from './enums';
2
+ const providers = [];
3
+ const typedProviderValueMap = new Map();
4
+ const typedProviderMap = new Map();
5
+ export function addProvider(provider, priority = 0) {
6
+ if (providers.some((p) => p.provider === provider)) {
7
+ return;
8
+ }
9
+ let i;
10
+ for (i = 0; i < providers.length; i++) {
11
+ if (providers[i].priority <= priority) {
12
+ break;
13
+ }
14
+ }
15
+ providers.splice(i, 0, {
16
+ priority,
17
+ provider,
18
+ });
19
+ }
20
+ const nullProvider = (_query, _data, options) => options?.defaultValue;
21
+ function insertPriority(type, list, provider, options) {
22
+ const providerValue = { type, ...options, provider };
23
+ if (!list.find((it) => it.provider === provider)) {
24
+ let i;
25
+ const { priority = 0 } = options;
26
+ for (i = 0; i < list.length; i++) {
27
+ if (list[i].priority <= priority) {
28
+ break;
29
+ }
30
+ }
31
+ list.splice(i, 0, providerValue);
32
+ }
33
+ let currentProvider = nullProvider;
34
+ for (let i = list.length - 1; i >= 0; i--) {
35
+ const p = list[i].provider;
36
+ if (p) {
37
+ currentProvider = p.bind(null, currentProvider);
38
+ }
39
+ }
40
+ return currentProvider;
41
+ }
42
+ export function addTypedProvider(type, provider, options = { priority: 0, isDefault: true }) {
43
+ if (!provider) {
44
+ throw new Error(`addTypedProvider: cannot register undefined provider for type "${type}"`);
45
+ }
46
+ let list = typedProviderValueMap.get(type);
47
+ if (!list) {
48
+ list = new Array();
49
+ typedProviderValueMap.set(type, list);
50
+ }
51
+ if (list.find((it) => it.provider === provider)) {
52
+ return;
53
+ }
54
+ const newProvider = insertPriority(type, list, provider, options);
55
+ if (!newProvider) {
56
+ throw new Error(`newProvider is empty for ${type}`);
57
+ }
58
+ typedProviderMap.set(type, newProvider);
59
+ }
60
+ export function addAddProvider(type, provider, options = { priority: 0, isDefault: true }) {
61
+ addTypedProvider(getAddModuleType(type), provider, options);
62
+ }
63
+ export function metadataModuleProvider(type, query, options) {
64
+ const typedProvider = typedProviderMap.get(type);
65
+ if (!typedProvider) {
66
+ return;
67
+ }
68
+ return typedProvider(query, null, options);
69
+ }
70
+ export function removeProvider(provider) {
71
+ for (let i = 0; i < providers.length; i++) {
72
+ if (providers[i].provider === provider) {
73
+ providers.splice(i, 1);
74
+ break;
75
+ }
76
+ }
77
+ }
78
+ const TYPED_PROVIDER_BRIDGE_PRIORITY = -1000;
79
+ export function removeAllProviders() {
80
+ while (providers.length > 0) {
81
+ providers.pop();
82
+ }
83
+ typedProviderValueMap.clear();
84
+ typedProviderMap.clear();
85
+ }
86
+ export function getMetaData(type, query, options) {
87
+ if (query === undefined) {
88
+ return;
89
+ }
90
+ for (let i = 0; i < providers.length; i++) {
91
+ const result = providers[i].provider(type, query, options);
92
+ if (result !== undefined) {
93
+ return result;
94
+ }
95
+ }
96
+ }
97
+ export function getTyped(type, query, options) {
98
+ return getMetaData(type, query, options);
99
+ }
100
+ export function addMetaData(type, query, options) {
101
+ return getMetaData(getAddModuleType(type), query, options);
102
+ }
103
+ export function addTyped(type, query, options) {
104
+ const result = addMetaData(type, query, options);
105
+ return result;
106
+ }
107
+ export const clearQuery = (type, query) => {
108
+ const typesToClear = [type, getAddModuleType(type)];
109
+ for (const currentType of typesToClear) {
110
+ const typedProviders = typedProviderValueMap.get(currentType);
111
+ if (!typedProviders) {
112
+ continue;
113
+ }
114
+ for (const providerInfo of typedProviders) {
115
+ providerInfo?.clearQuery?.(query);
116
+ }
117
+ }
118
+ };
119
+ export const clear = (type) => {
120
+ const typesToClear = Array.from(new Set([type, getAddModuleType(type)]));
121
+ for (const currentType of typesToClear) {
122
+ const typedProviders = typedProviderValueMap.get(currentType);
123
+ if (!typedProviders) {
124
+ continue;
125
+ }
126
+ for (const providerInfo of typedProviders) {
127
+ providerInfo?.clear?.();
128
+ }
129
+ }
130
+ };
131
+ export const get = (type, ...queries) => queries.length === 1
132
+ ? getMetaData(type, queries[0])
133
+ : queries
134
+ .map((query) => query && getMetaData(type, query))
135
+ .find((it) => it !== undefined);
136
+ export function getNormalized(imageId, types, metaDataProvider = getMetaData) {
137
+ const result = {};
138
+ for (const t of types) {
139
+ try {
140
+ const data = metaDataProvider(t, imageId);
141
+ if (data) {
142
+ const capitalizedData = {};
143
+ for (const key in data) {
144
+ if (key in data) {
145
+ const capitalizedKey = toUpperCamelTag(key);
146
+ capitalizedData[capitalizedKey] = data[key];
147
+ }
148
+ }
149
+ Object.assign(result, capitalizedData);
150
+ }
151
+ }
152
+ catch (error) {
153
+ console.error(`Error retrieving ${t} data:`, error);
154
+ }
155
+ }
156
+ return result;
157
+ }
158
+ export const toUpperCamelTag = (tag) => {
159
+ if (tag.startsWith('sop')) {
160
+ return `SOP${tag.substring(3)}`;
161
+ }
162
+ if (tag.startsWith('voi')) {
163
+ return `VOI${tag.substring(3)}`;
164
+ }
165
+ if (tag.endsWith('Id')) {
166
+ tag = `${tag.substring(0, tag.length - 2)}ID`;
167
+ }
168
+ return tag.charAt(0).toUpperCase() + tag.slice(1);
169
+ };
170
+ export const toLowerCamelTag = (tag) => {
171
+ if (tag.startsWith('SOP')) {
172
+ return `sop${tag.substring(3)}`;
173
+ }
174
+ if (tag.startsWith('VOI')) {
175
+ return `voi${tag.substring(3)}`;
176
+ }
177
+ if (tag.endsWith('ID') && !tag.endsWith('UID')) {
178
+ tag = `${tag.substring(0, tag.length - 2)}Id`;
179
+ }
180
+ return tag.charAt(0).toLowerCase() + tag.slice(1);
181
+ };
@@ -0,0 +1 @@
1
+ export declare function registerDefaultProviders(): void;
@@ -0,0 +1,38 @@
1
+ import { addProvider, metadataModuleProvider } from './metaData';
2
+ import calibratedPixelSpacingMetadataProvider from './utilities/calibratedPixelSpacingMetadataProvider';
3
+ import { registerCacheProviders } from './utilities/metadataProvider/cacheData';
4
+ import { registerUriModule } from './utilities/metadataProvider/uriModule';
5
+ import { registerDataLookup } from './utilities/metadataProvider/dataLookup';
6
+ import { registerInstanceFromListener } from './utilities/metadataProvider/instanceFromListener';
7
+ import { registerCombineFrameProvider } from './utilities/metadataProvider/combineFrameInstance';
8
+ import { clearTagModules, registerTagModules, } from './utilities/metadataProvider/tagModules';
9
+ import { registerImagePlaneCalibrated } from './utilities/metadataProvider/imagePlaneCalibrated';
10
+ import { registerCalibrationModule } from './utilities/metadataProvider/calibrationModule';
11
+ import { registerPixelDataUpdate } from './utilities/metadataProvider/pixelDataUpdate';
12
+ import { registerTransferSyntaxProvider } from './utilities/metadataProvider/transferSyntaxProvider';
13
+ import { registerEcgFromInstanceProvider } from './utilities/metadataProvider/ecgFromInstance';
14
+ import { registerCompressedFrameDataProvider } from './utilities/metadataProvider/compressedFrameData';
15
+ import { registerScalingFromInstanceProvider } from './utilities/metadataProvider/scalingFromInstance';
16
+ import { registerNaturalizedHandlers } from './utilities/metadataProvider/naturalizedHandlers';
17
+ import { registerImageIdProviders } from './utilities/metadataProvider/imageIdsProviders';
18
+ const TYPED_PROVIDER_BRIDGE_PRIORITY = -1000;
19
+ export function registerDefaultProviders() {
20
+ addProvider(metadataModuleProvider, TYPED_PROVIDER_BRIDGE_PRIORITY);
21
+ addProvider(calibratedPixelSpacingMetadataProvider.get);
22
+ clearTagModules();
23
+ registerCacheProviders();
24
+ registerNaturalizedHandlers();
25
+ registerUriModule();
26
+ registerImageIdProviders();
27
+ registerDataLookup();
28
+ registerInstanceFromListener();
29
+ registerCombineFrameProvider();
30
+ registerTagModules();
31
+ registerEcgFromInstanceProvider();
32
+ registerImagePlaneCalibrated();
33
+ registerCalibrationModule();
34
+ registerPixelDataUpdate();
35
+ registerTransferSyntaxProvider();
36
+ registerCompressedFrameDataProvider();
37
+ registerScalingFromInstanceProvider();
38
+ }
@@ -0,0 +1,13 @@
1
+ export interface IListenerInfo {
2
+ vr?: string;
3
+ vm?: number | string;
4
+ length?: number;
5
+ name?: string;
6
+ }
7
+ export type MetadataValueType = ArrayBuffer[] | ArrayBuffer | string | number | MetadataType;
8
+ export interface MetadataType {
9
+ Value?: MetadataValueType[];
10
+ BulkDataURI?: string;
11
+ BulkDataUUID?: string;
12
+ vr: string;
13
+ }
File without changes
@@ -0,0 +1,11 @@
1
+ import type CalibrationTypes from '../enums/CalibrationTypes';
2
+ export interface IImageCalibration {
3
+ rowPixelSpacing?: number;
4
+ columnPixelSpacing?: number;
5
+ scale?: number;
6
+ aspect?: number;
7
+ type: CalibrationTypes;
8
+ tooltip?: string;
9
+ sequenceOfUltrasoundRegions?: Record<string, unknown>[];
10
+ }
11
+ export type { IImageCalibration as default };
File without changes
@@ -0,0 +1,100 @@
1
+ export interface DicomDateObject {
2
+ year: number;
3
+ month: number;
4
+ day: number;
5
+ }
6
+ export interface DicomTimeObject {
7
+ hours: number;
8
+ minutes?: number;
9
+ seconds?: number;
10
+ fractionalSeconds?: number;
11
+ }
12
+ export interface GeneralSeriesModuleMetadata {
13
+ modality: string;
14
+ seriesInstanceUID: string;
15
+ seriesNumber: number;
16
+ studyInstanceUID: string;
17
+ seriesDate: string;
18
+ seriesTime: string;
19
+ }
20
+ export interface PatientStudyModuleMetadata {
21
+ patientAge: number;
22
+ patientSize: number;
23
+ patientWeight: number;
24
+ }
25
+ export interface ImagePlaneModuleMetadata {
26
+ frameOfReferenceUID: string;
27
+ rows: number;
28
+ columns: number;
29
+ imageOrientationPatient: number[];
30
+ rowCosines: number[];
31
+ columnCosines: number[];
32
+ imagePositionPatient: number[];
33
+ sliceThickness?: number;
34
+ sliceLocation: number;
35
+ pixelSpacing: number[];
36
+ rowPixelSpacing: number | null;
37
+ columnPixelSpacing: number | null;
38
+ usingDefaultValues?: boolean;
39
+ }
40
+ export interface ImagePixelModuleMetadata {
41
+ samplesPerPixel: number;
42
+ photometricInterpretation: string;
43
+ rows: number;
44
+ columns: number;
45
+ bitsAllocated: number;
46
+ bitsStored: number;
47
+ highBit: number;
48
+ pixelRepresentation: number;
49
+ planarConfiguration: number;
50
+ pixelAspectRatio: string;
51
+ redPaletteColorLookupTableDescriptor: number[];
52
+ greenPaletteColorLookupTableDescriptor: number[];
53
+ bluePaletteColorLookupTableDescriptor: number[];
54
+ redPaletteColorLookupTableData: number[];
55
+ greenPaletteColorLookupTableData: number[];
56
+ bluePaletteColorLookupTableData: number[];
57
+ smallestPixelValue?: number;
58
+ largestPixelValue?: number;
59
+ }
60
+ export interface SopCommonModuleMetadata {
61
+ sopClassUID: string;
62
+ sopInstanceUID: string;
63
+ }
64
+ export interface EcgModuleMetadata {
65
+ modality: string;
66
+ sopInstanceUID: string;
67
+ sopClassUID: string;
68
+ seriesDescription?: string;
69
+ seriesNumber?: number;
70
+ seriesDate?: string;
71
+ seriesTime?: string;
72
+ seriesInstanceUID: string;
73
+ studyInstanceUID: string;
74
+ }
75
+ export interface FrameMetadata extends SopCommonModuleMetadata {
76
+ frameNumber: number;
77
+ numberOfFrames: number;
78
+ }
79
+ export interface TransferSyntaxMetadata {
80
+ transferSyntaxUID: string;
81
+ }
82
+ export interface CompressedFrameDataMetadata {
83
+ transferSyntaxUid: string;
84
+ frameOfInterest: number;
85
+ frameNumber: number;
86
+ pixelData: ArrayBufferView | ArrayBufferView[];
87
+ }
88
+ export interface MetadataModuleType {
89
+ baseImageId: string;
90
+ frameImageIds: Set<string>;
91
+ generalSeriesModule: GeneralSeriesModuleMetadata;
92
+ patientStudyModule: PatientStudyModuleMetadata;
93
+ imagePlaneModule: ImagePlaneModuleMetadata;
94
+ imagePixelModule: ImagePixelModuleMetadata;
95
+ sopCommonModule: SopCommonModuleMetadata;
96
+ ecgModule: EcgModuleMetadata;
97
+ frameModule: FrameMetadata;
98
+ transferSyntax: TransferSyntaxMetadata;
99
+ compressedFrameData: CompressedFrameDataMetadata;
100
+ }
File without changes
@@ -0,0 +1,3 @@
1
+ export type { IListenerInfo, MetadataType, MetadataValueType, } from './DicomStreamTypes';
2
+ export type { IImageCalibration } from './IImageCalibration';
3
+ export type { DicomDateObject, DicomTimeObject, GeneralSeriesModuleMetadata, PatientStudyModuleMetadata, ImagePlaneModuleMetadata, ImagePixelModuleMetadata, SopCommonModuleMetadata, EcgModuleMetadata, FrameMetadata, TransferSyntaxMetadata, CompressedFrameDataMetadata, MetadataModuleType, } from './MetadataModuleTypes';
File without changes
@@ -0,0 +1,25 @@
1
+ import { USRegionChild, CLINICAL_TRIAL, RadiopharmaceuticalInfoModule } from './modules';
2
+ export { USRegionChild, CLINICAL_TRIAL, RadiopharmaceuticalInfoModule };
3
+ export interface TagEntry {
4
+ name: string;
5
+ lowerName: string;
6
+ xTag: string;
7
+ vm: number;
8
+ tag: string;
9
+ vr: string;
10
+ primaryGroup: string;
11
+ groups: string[];
12
+ }
13
+ export declare function createTagEntry(hexTag: string, ...groups: string[]): TagEntry;
14
+ export declare function parseVm(vm: string | number | undefined): number | null;
15
+ export declare function dictionaryLookup(hexTag: string): {
16
+ name: string;
17
+ vr: string;
18
+ vm: string;
19
+ } | undefined;
20
+ export declare function getTagCodeByName(name: string): string | undefined;
21
+ export declare const mapModuleTags: Map<string, TagEntry[]>;
22
+ export declare const mapTagInfo: Map<string, TagEntry>;
23
+ export declare function addTag(name: string, value: TagEntry): void;
24
+ export declare function resolveHexFromKeyword(keyword: string): string | undefined;
25
+ export declare const Tags: Record<string, TagEntry>;