fix: Service consistency typing (#3309)

* Use more consistent type/structure for services

* Fix restoring SR so the tests described work

* One more typed service

* Added types for the Cornerstone library

* Couple more type fixes
This commit is contained in:
Bill Wallace authored and GitHub committed 2023-04-18 11:17:50 -04:00
1 parent 47c25f4364
commit 6cf271d006
24 files changed
+309 -299

No files matched your search

@@ -1,4 +1,5 @@
import { PubSubService } from '@ohif/core';
import { PubSubService, ServicesManager } from '@ohif/core';
import * as OhifTypes from '@ohif/core/types';
import {
RenderingEngine,
StackViewport,
@@ -43,6 +44,16 @@ const EVENTS = {
*/
class CornerstoneViewportService extends PubSubService
implements IViewportService {
static REGISTRATION = {
name: 'cornerstoneViewportService',
altName: 'CornerstoneViewportService',
create: ({
servicesManager,
}: OhifTypes.Extensions.ExtensionParams): CornerstoneViewportService => {
return new CornerstoneViewportService(servicesManager);
},
};
renderingEngine: Types.IRenderingEngine | null;
viewportsInfo: Map<number, ViewportInfo> = new Map();
viewportsById: Map<string, ViewportInfo> = new Map();
@@ -55,7 +66,7 @@ class CornerstoneViewportService extends PubSubService
resizeRefreshMode: 'debounce';
servicesManager = null;
constructor(servicesManager) {
constructor(servicesManager: ServicesManager) {
super(EVENTS);
this.renderingEngine = null;
this.viewportGridResizeObserver = null;
@@ -71,7 +82,7 @@ class CornerstoneViewportService extends PubSubService
viewportIndex: number,
viewportOptions: PublicViewportOptions,
elementRef: HTMLDivElement
) {
): void {
// Use the provided viewportId
// Not providing a viewportId is frowned upon because it does weird things
// on moving them around, but it does mostly work.
@@ -855,14 +866,4 @@ class CornerstoneViewportService extends PubSubService
}
}
export default function CornerstoneViewportServiceRegistration(serviceManager) {
return {
name: 'cornerstoneViewportService',
altName: 'CornerstoneViewportService',
create: ({ configuration = {} }) => {
return new CornerstoneViewportService(serviceManager);
},
};
}
export { CornerstoneViewportService, CornerstoneViewportServiceRegistration };
export default CornerstoneViewportService;