On 13/12/2007, Bryan Fodness <[EMAIL PROTECTED]> wrote: > I am new to doing anything like this. I have looked at > http://www.leadtools.com/SDK/Medical/DICOM/ltdc1.htm and am > not sure how to proceed.
I haven't much experience here, but this is how I'd proceed, I think: 1. Start by reading the file. It's binary data (I guess) so there's no point in reading lines.: rawData = open('file.dcm', 'rb').read() 2. Write a function to parse the preamble: def parsePreamble(data): preamble = data[:128] dicm = data[128:132] # you might need to read up on encodings and things to make sure this test is valid if dicm == 'DICM': return preamble, 132 else: raise NotAPreambleException 3. Write functions to parse data elements. The functions are going to try to parse a data element starting at a particular position, and if successful, return the position of the end of the element. def parseDataelement(data, start): # do stuff -- the web page you linked didn't have enough information here return element, pos 4. Parse the whole thing; def parseDICOM(data): elements = [] try: preamble, next = parsePreamble(data) except NotAPreambleException: preamble, next = None, 0 while True: element, next = parseDataElement(data, next) elements.append(element) # you will need some way of breaking out of this loop, either by checking the structure of # element for an end condition, or by parseDataElement raising an exception. return elements # and maybe preamble too if you want it HTH! _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor