Lesen von DICOM Dateien (514 kByte)

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

FERENC

Betreff: Lesen von DICOM Dateien (514 kByte)

BeitragMo, Mai 31, 2004 13:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Shocked

hallo Freunde der Programmierkunst -

ich möchte DICOM 3 Dateien öffnen, um zumindest den Header auszulesen ( ASCII - Zeichen)
Leider kann ich die Datei offenbar wegen ihrer Größe nicht öffnen. Eine Bilddatei hat ca 514 kByte
Ich erhalte bei entsprechenden Befehlen den Fehler:
" expecting end-of-file ". Auch die Bestimmung der Dateigröße mit FileSize wird nicht durchgeführt; als Ergebnis erhält man size=0.
Wer kann mir weiterhelfen ?
Hat jemand vielleicht einen Dicom-Leser programmiert ?
Im voraus vielen Dank -
FERENC

Hubsi

BeitragMo, Mai 31, 2004 13:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Expecting end of file kenn ich eigentlich nur als Fehlermeldung für den Quellcode, sollte also damit nichts zu tun haben.
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

FERENC

BeitragMo, Mai 31, 2004 15:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Shocked

hallo Hubsi -
danke für die Nachfrage

hier kurz der Code (sucht nur nach der 1. Dicom-Datei im Verzeichnis c:\DICOMTEST und versucht sie zu öffnen).
wenn man die auskommentierten drei Zeilen aktiviert, kommt der Fehler "expecting end of file"

die Datei heißt: 1.3.46.670589.10.13.800143.1.2155740725.0.4885.0.1.1.dcm

Code: [AUSKLAPPEN]
Print "DICOM-Öffnen"


verzeichnisvariable = ReadDir("c:\DICOMTEST\")


dateipfad$ = NextFile(verzeichnisvariable)
Print dateipfad$

While Instr(dateipfad$,"0") = 0

dateipfad$ = NextFile(verzeichnisvariable)
Print dateipfad$

Wend


Print dateipfad$
;dateipfad$=dateipfad$&".dcm"

;stream = OpenFile(dateipfad$)


;CloseFile stream

Input a$

End


by the way, wie kann ich mit 'INSTR' nach Dateiendungen suchen; der naheliegende Weg scheint nicht zu gehen
( if INSTR (DICOMDATEI$,".DCM") <>0 .....

vorab vielen Dank
FERENC

Hubsi

BeitragMo, Mai 31, 2004 16:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier liegt der Fehler:Code: [AUSKLAPPEN]
dateipfad$=dateipfad$&".dcm"
Strings lassen sich mit + verknüpfen:Code: [AUSKLAPPEN]
dateipfad$=dateipfad$+".dcm"
Wink
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Blatolo

BeitragMo, Mai 31, 2004 16:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Print "DICOM-Öffnen"

verzeichnisvariable = ReadDir("c:\DICOMTEST\")

Repeat
   dateipfad$ = NextFile(verzeichnisvariable)
   Print dateipfad$
Until Right(dateipfad$,3)="dcm" Or dateipfad$=""

CloseDir(verzeichnisvariable)

stream = OpenFile("c:\DICOMTEST\"+dateipfad$)



CloseFile stream


a$=Input()
End


Sollte das machen was du wolltest.
 

FERENC

BeitragMo, Mai 31, 2004 20:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Idea
vielen Dank für den eleganten Code, Blatolo!

leider habe ich noch folgendes Problem:

wenn ich den Code erweitere um

Code: [AUSKLAPPEN]
size = FileSize(stream)
Print size


erhalte ich als Ausgabe den Wert Null

Die Dateigröße ist aber 514 kByte. Mit dem MS-Editor kann man die Datei auch öffnen: sie enthält echte ASCII-Zeichen und weitere nicht darstellbare Zeichen.

Vielen Dank für die Hilfe

und noch schönen Rest vom Pfingstmontag

FERENC[/code]

Hubsi

BeitragMo, Mai 31, 2004 20:45
Antworten mit Zitat
Benutzer-Profile anzeigen
FileSize funktioniert anders:Code: [AUSKLAPPEN]
size=FileSize("Datei.txt")
Wink
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

FERENC

BeitragMi, Jun 02, 2004 6:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Mr. Green


Vielen Dank Hubsi, du hast mir wirklich weitergeholfen.

FERENC
 

David

BeitragMi, Jun 02, 2004 9:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

@FERNEC: Jo, ich hab für die Firma, wo meinereiner arbeitet, ein Dicom-Module (lesen/schreiben) programmiert, allerdings in C#.

Was willst du denn mit DICOM Dateien? Das sind ja nicht einfach nur simple Bilddateien. In einer DICOM Datei sind ja noch massig andere Daten enthalten.

Naja, ich wünsche trozdem viel Spass beim programmieren. Wink

Falls du dich tiefer in die Materie einarbeiten willst, solltest du die dir 16 Bändige DICOM Spezifikation downloaden.

grüße
 

FERENC

BeitragDo, Jun 03, 2004 17:36
Antworten mit Zitat
Benutzer-Profile anzeigen
8)
Hallo David -

vielen Dank für den Hinweis.
Mein Problem mit den DICOM-Dateien ist im Moment noch simpel.
Mich interessiert nicht der Bildbereich sondern nur der Header.
Ich produziere täglich hunderte, manchmal tausende von DICOM - Bildern. Einen Teil dieser Bilder speichere ich in abgetrennten Bereichen, um sie zu brennen und mitzugeben.
Die Rekonstruktionssoftware, die ich in diesem speziellen Bereich einsetze, lagert die Dateien aber unter den hübschen, vielsagenden Namen mit 50 kryptischen Zeichen aus.
Ich möchte nun, bevor ich den Bereich sichere, eine Patientenliste anlegen bzw. auslesen und mit auf die ArchivierungsCD brennen.

- That's all.

Ich denke, daß ich mir dafür die 16 Bände DICOM-Spezifikation vorest schenken kann. Aber danke für den Tipp; wer weiß, wie das nächste 'Projekt' aussieht.

(Kleiner Scherz; DICOM Dateien wandele ich mit IRFAN-VIEW in handlichere Formate)

Gruß
FERENC

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group