Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extension: DICOM Viewer #9215

Closed
Tracked by #7930
hodyroff opened this issue Jun 13, 2023 · 19 comments
Closed
Tracked by #7930

Extension: DICOM Viewer #9215

hodyroff opened this issue Jun 13, 2023 · 19 comments
Assignees

Comments

@hodyroff
Copy link

hodyroff commented Jun 13, 2023

Create a viewing extension which does view medical images:
https://github.com/cornerstonejs/cornerstone is MIT licensed

User Story

  • As user who has a DICOM file, I want to preview the Image so that I can reassure that this is the right image.

Acceptance Criteria

  • Preview the image
  • Metadata Show metadata:
    • Most important Metadata (upfront)
    • Patient Name (Patient date of birth)
    • Date image taken
    • InstitutionName
    • Extended Show metadata:
  • (all available data)

Scribbles

https://whimsical.com/dicom-viewer-GLceztrP2ESxrKK6TTrJ4A

@dschmidt dschmidt mentioned this issue Jun 13, 2023
30 tasks
@pascalwengerter
Copy link
Contributor

@hodyroff @dragotin is there any concept regarding a marketplace/app store? I'm not sure this extension should live in the main web repo/be shipped officially, since it's (at least) 1.4MB of JS and not necessarily something ~99.9% of the users ever would use (or ownCloud wants to handle responsibility, bugfixes and feature requests for)

@dschmidt
Copy link
Member

Agreed, this app should not live in the main repo.

I'm working hard on making external apps happen (chat me up if you want to know the current state) but we currently have no concept of a marketplace - can't harm to have a long term vision, but not a priority right now.
All it needs for an oC Web app is to serve static assets, can be done via docker container or an archive that is extracted and hosted somewhere - a marketplace is just the cherry on top.

@kulmann
Copy link
Member

kulmann commented Jun 14, 2023

I do have ideas for a marketplace, but not written down because - as @dschmidt said - it's not a priority at the moment.

@pascalwengerter

This comment was marked as off-topic.

@dschmidt

This comment was marked as off-topic.

@dragotin

This comment was marked as off-topic.

@pascalwengerter

This comment was marked as off-topic.

@tbsbdr
Copy link
Contributor

tbsbdr commented Sep 1, 2023

examples of available metadata

SpecificCharacterSet : "ISO_IR 100"
ImageType : "ORIGINAL\PRIMARY\OTHER\R\IR"
InstanceCreationDate : "19960823"
InstanceCreationTime : "093801"
InstanceCreatorUID : "1.3.46.670589.11.0.5"
SOPClassUID : "1.2.840.10008.5.1.4.1.1.4" [ MR Image Storage ]
SOPInstanceUID : "1.3.46.670589.11.0.4.1996082307380006"
StudyDate : "19950330"
SeriesDate : "19950330"
StudyTime : "150829.0000"
SeriesTime : "155614.6300"
Modality : "MR"
Manufacturer : "Philips"
InstitutionName : "OTM4 R4.5"
StudyDescription : "BRAIN"
SeriesDescription : "Brain STIR GR 512 TRA GraSE 4415 64"
ManufacturerModelName : "T5"
PatientName : "MR/BRAIN/GRASE/1024"
PatientID : "7"
PatientBirthDate : "19010101"
PatientSex : "M"
PatientWeight : "90"
ScanningSequence : "IR"
SequenceVariant : "OTHER"
MRAcquisitionType : "2D"
SliceThickness : "6.000000"
RepetitionTime : "4414.826172"
EchoTime : "64.000000"
InversionTime : "140.000000"
NumberOfAverages : "2"
ImagingFrequency : "42.593601"
ImagedNucleus : "1H"
EchoNumbers : "1"
MagneticFieldStrength : "1.000000"
SpacingBetweenSlices : "7.500000"
NumberOfPhaseEncodingSteps : "384"
EchoTrainLength : "0"
PercentSampling : "75.000000"
PercentPhaseFieldOfView : "75.000000"
DeviceSerialNumber : "00000"
SoftwareVersions : "RTNC1"
ProtocolName : "STIR GR 512"
LowRRValue : "0"
HighRRValue : "0"
IntervalsAcquired : "102"
IntervalsRejected : "0"
HeartRate : "60"
ReceiveCoilName : "H"
TransmitCoilName : "B"
InPlanePhaseEncodingDirection : "ROW"
FlipAngle : "90.000000"
PatientPosition : "HFS"
StudyInstanceUID : "1.3.46.670589.11.0.1.1996082307380006"
SeriesInstanceUID : "1.3.46.670589.11.0.2.1996082307380006"
StudyID : "191"
SeriesNumber : "1"
AcquisitionNumber : "13"
InstanceNumber : "1"
ImagePositionPatient : "-125.000992\-122.842384\32.496708"
ImageOrientationPatient : "1.000000\-0.000005\-0.000000\0.000005\0.959915\-0.280292"
FrameOfReferenceUID : "1.3.46.670589.11.0.3.1996082307380006"
SamplesPerPixel : 1
PhotometricInterpretation : "MONOCHROME2"
Rows : 512
Columns : 512
PixelSpacing : "0.488281\0.488281"
BitsAllocated : 16
BitsStored : 12
HighBit : 11
PixelRepresentation : 0
WindowCenter : "1951"
WindowWidth : "237" 

@tbsbdr
Copy link
Contributor

tbsbdr commented Sep 1, 2023

Added userstory, ACs and Scribble to initial post

@koebel
Copy link
Contributor

koebel commented Sep 1, 2023

some dicom (dcm.) files for testing purpose can be found here: https://github.com/koebel/web/tree/DICOM-viewer-testcases/packages/web-app-dicom-viewer/tests/unit/testfiles

@tbsbdr
Copy link
Contributor

tbsbdr commented Sep 4, 2023

I asked a radiologist (thanks to PD Dr. med. Stefan Lang, Erlangen) what the most important metadata are that should be shown upfront as overlay upon the image (updated ACs in initial issue).

@dragotin
Copy link
Contributor

dragotin commented Sep 5, 2023

There is an older issue here: owncloud/ocis#5055 which also considers a server component.

@koebel
Copy link
Contributor

koebel commented Sep 7, 2023

Added userstory, ACs and Scribble to initial post

@tbsbdr I've added mockups for the user story to your whimsical board

@koebel
Copy link
Contributor

koebel commented Sep 7, 2023

There is an older issue here: owncloud/ocis#5055 which also considers a server component.

@dragotin thanks for bringing this up, I wasn't actually aware of the plan to integrate a proper DICOM server. our current proof of concept implementation of the dicom viewer (point 3 in the thread above) is done using cornerstone3D and we also aim to implement point 4, most likely using cornerstone's dicom parser. is it relevant to have a closer look into DICOM server orthanc to ensure that the dicom viewer will be compatible once the DICOM server gets implemented?

@dragotin
Copy link
Contributor

dragotin commented Sep 8, 2023

No, if you can do any useful with cornerstone3D alone and without all the server side stuff, I'd say that is the way to go for a great first step.

Looking into orthanc can be done separately, and later. The idea was that orthanc uses oCIS as a storage backend.

@koebel
Copy link
Contributor

koebel commented Dec 14, 2023

codebase of current state of implementation has been moved from my own fork into the newly created repo on https://github.com/owncloud/web-app-dicom-viewer

basic functionalities and UI design have been implemented according to the scribbles, unit tests are in progress

@dschmidt
Copy link
Member

Can we close this here now?

@koebel
Copy link
Contributor

koebel commented Dec 14, 2023

Can we close this here now?

Acceptance criteria for the extension are defined at the top of this issue... shall I copy them into an issue in the new repo @dschmidt ?

@koebel
Copy link
Contributor

koebel commented Jan 30, 2024

closing issue as this has been move to a separate repo. acceptance criteria have been copied into this issue: owncloud/web-app-dicom-viewer#2

@koebel koebel closed this as completed Jan 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants