Exemple #1
0
def readImageSetHeader(pfpath, imgsetid=0):
    fname = '%s/ImageSet_%s.header' % (pfpath, imgsetid)
    pdict = readPFile(fname, 'ImageSet.header', 'dict')
    pfObj = PFImgSetHeader(**pdict)
    return pfObj


if __name__ == '__main__':
    prjpath = os.path.dirname(os.path.abspath(__file__)) + '/../'

    FORMAT = "[%(asctime)s %(levelname)s - %(funcName)s] %(message)s"
    logging.basicConfig(format=FORMAT,
                        filename=prjpath + 'logs/test.log',
                        level=logging.INFO)

    logging.info('Project foler is %s' % os.path.abspath(prjpath))

    # Patient
    Pdict = readPFile(prjpath + 'examples/Patient_6204/ImageSet_0.header',
                      'ImageSet.header', 'dict')

    pfImgSetHeader = PFImgSetHeader(**Pdict)

    #print(Pdict)

    print(pfImgSetHeader.z_dim)
    print(pfImgSetHeader.z_pixdim)
    print(pfImgSetHeader.patient_id)
    print(pfImgSetHeader.modality)
Exemple #2
0
def readPlanTrial(pfpath, planid=0):
    fname = '%s/Plan_%s/plan.Trial' % (pfpath, planid)
    pdict = readPFile(fname, 'plan.Trial', 'dict')
    pfObj = PFPlanTrial(**pdict)
    return pfObj
Exemple #3
0
from logging import lastResort
import os
import pytest
from pftools.readPFile import readPFile
import logging

prjpath = os.path.dirname(os.path.abspath(__file__)) + '/../'
FORMAT = "[%(asctime)s %(levelname)s - %(funcName)s] %(message)s"
logging.basicConfig(format=FORMAT,
                    filename=prjpath + 'logs/pytest.log',
                    level=logging.WARNING)

Patient = readPFile(prjpath + 'examples/Patient_6204/Patient', 'Patient')
Header = readPFile(prjpath + 'examples/Patient_6204/ImageSet_0.header',
                   'ImageSet.header')
ImgSetInfo = readPFile(prjpath + 'examples/Patient_6204/ImageSet_0.ImageInfo',
                       'ImageSet.ImageInfo')
ImageSet = readPFile(prjpath + 'examples/Patient_6204/ImageSet_0.ImageSet',
                     'ImageSet.ImageSet')
PlanLaser = readPFile(prjpath + 'examples/Patient_6204/Plan_0/plan.Laser',
                      'plan.Laser')
PatientSetup = readPFile(
    prjpath + 'examples/Patient_6204/Plan_0/plan.PatientSetup',
    'plan.PatientSetup')
PlanInfo = readPFile(prjpath + 'examples/Patient_6204/Plan_0/plan.PlanInfo',
                     'plan.PlanInfo')
PlanPoints = readPFile(prjpath + 'examples/Patient_6204/Plan_0/plan.Points',
                       'plan.Points')
ROIList = readPFile(prjpath + 'examples/Patient_6204/Plan_0/plan.roi',
                    'plan.roi')
PlanTrial0 = readPFile(prjpath + 'examples/Patient_6204/Plan_0/plan.Trial',
Exemple #4
0
def readPlanInfo(pfpath, planid=0):
    fname = '%s/Plan_%s/plan.PlanInfo' % (pfpath, planid)
    pdict = readPFile(fname, 'plan.PlanInfo', 'dict')
    pfObj = PFPlanInfo(**pdict)
    return pfObj
Exemple #5
0
    pfObj = PFPlanTrial(**pdict)
    return pfObj


if __name__ == '__main__':
    prjpath = os.path.dirname(os.path.abspath(__file__)) + '/../'

    FORMAT = "[%(asctime)s %(levelname)s - %(funcName)s] %(message)s"
    logging.basicConfig(format=FORMAT,
                        filename=prjpath + 'logs/test.log',
                        level=logging.INFO)

    logging.info('Project foler is %s' % os.path.abspath(prjpath))

    # Patient
    Pdict = readPFile(prjpath + 'examples/Patient_6204/Plan_0/plan.Trial',
                      'plan.Trial', 'dict')
    #print(Pdict)
    #print(len(Pdict))
    pfPlanTrial = PFPlanTrial(**Pdict)

    ntrial = len(pfPlanTrial.Trial)
    print('Number of Trials: %s' % ntrial)

    for i in range(ntrial):
        print(pfPlanTrial.Trial[i].Name)
        print(pfPlanTrial.Trial[i].PrescriptionList.Prescription[0].
              PrescriptionDose)
        print(pfPlanTrial.Trial[i].BeamList.Beam[0].Name)
        cpmgr0 = pfPlanTrial.Trial[i].BeamList.Beam[
            0].CPManager.CPManagerObject[0]
        print(cpmgr0.NumberOfControlPoints)
Exemple #6
0
def readPatient(pfpath):
    fname = '%s/Patient' % pfpath
    pdict = readPFile(fname, 'Patient', 'dict')
    pfObj = PFPatient(**pdict)
    return pfObj
Exemple #7
0
def readImageInfo(pfpath, imgsetid=0):
    fname = '%s/ImageSet_%s.ImageInfo' % (pfpath, imgsetid)
    pdict = readPFile(fname, 'ImageSet.ImageInfo', 'dict')
    pfObj = PFImgInfo(**pdict)
    return pfObj
Exemple #8
0
def readPlanPatientSetup(pfpath, planid=0):
    fname = '%s/Plan_%s/plan.PatientSetup' % (pfpath, planid)
    pdict = readPFile(fname, 'plan.PatientSetup', 'dict')
    pfObj = PFPlanPatientSetup(**pdict)
    return pfObj
Exemple #9
0
def readImageSetInfo(pfpath, imgsetid):
    fname = '%s/ImageSet_%s.ImageSet' % (pfpath, imgsetid)
    pdict = readPFile(fname, 'plan.ImageSet', 'dict')
    pfObj = PFImageSetInfo(**pdict)
    return pfObj
Exemple #10
0
def readMachine(pfpath, planid=0):
    fname = '%s/Plan_%s/plan.Pinnacle.Machines' % (pfpath, planid)
    pdict = readPFile(fname, 'plan.Machine', 'dict')
    pfObj = PFMachine(**pdict)
    return pfObj
Exemple #11
0
    TableMotion = ''
    ProductionLevel: Optional[int]
    ObjectVersion: Optional[_ObjectVersion] = None


def readPlanPatientSetup(pfpath, planid=0):
    fname = '%s/Plan_%s/plan.PatientSetup' % (pfpath, planid)
    pdict = readPFile(fname, 'plan.PatientSetup', 'dict')
    pfObj = PFPlanPatientSetup(**pdict)
    return pfObj


if __name__ == '__main__':
    prjpath = os.path.dirname(os.path.abspath(__file__)) + '/../'

    FORMAT = "[%(asctime)s %(levelname)s - %(funcName)s] %(message)s"
    logging.basicConfig(format=FORMAT,
                        filename=prjpath + 'logs/test.log',
                        level=logging.INFO)

    logging.info('Project foler is %s' % os.path.abspath(prjpath))

    # Patient
    Pdict = readPFile(
        prjpath + 'examples/Patient_6204/Plan_0/plan.PatientSetup',
        'plan.PatientSetup', 'dict')
    #print(Pdict)
    #print(len(Pdict))
    pfPlanPtSetup = PFPlanPatientSetup(**Pdict)

    print(pfPlanPtSetup.Orientation)
Exemple #12
0
    pfObj = PFMachine(**pdict)
    return pfObj


if __name__ == '__main__':
    prjpath = os.path.dirname(os.path.abspath(__file__)) + '/../'

    FORMAT = "[%(asctime)s %(levelname)s - %(funcName)s] %(message)s"
    logging.basicConfig(format=FORMAT,
                        filename=prjpath + 'logs/test.log',
                        level=logging.INFO)

    logging.info('Project foler is %s' % os.path.abspath(prjpath))

    # Patient
    Pdict = readPFile(
        prjpath + 'examples/Patient_6204/Plan_0/plan.Pinnacle.Machines',
        'plan.Machine', 'dict')
    # print(Pdict['Machine'][0]['PhotonEnergyList'] ) #['MachineEnergy'])
    pfMachine = PFMachine(**Pdict)

    print(pfMachine.Machine[0].MachineType)

    xenergy = pfMachine.Machine[0].PhotonEnergyList.MachineEnergy
    for xe in xenergy:
        print('Photon Energy: ', xe.Name)

    xenergy = pfMachine.Machine[0].ElectronEnergyList.MachineEnergy
    for xe in xenergy:
        print('Electron Energy: ', xe.Name)
Exemple #13
0
def readPlanPoints(pfpath, planid=0):
    fname = '%s/Plan_%s/plan.Points' % (pfpath, planid)
    pdict = readPFile(fname, 'plan.Points', 'dict')
    pfObj = PFPlanPoints(**pdict)
    return pfObj
Exemple #14
0
def readPlanROI(pfpath, planid=0):
    fname = '%s/Plan_%s/plan.roi' % (pfpath, planid)
    pdict = readPFile(fname, 'plan.roi', 'dict')
    if pdict is None: return None
    pfObj = PFPlanROI(**pdict)
    return pfObj
Exemple #15
0
def readImageSetHeader(pfpath, imgsetid=0):
    fname = '%s/ImageSet_%s.header' % (pfpath, imgsetid)
    pdict = readPFile(fname, 'ImageSet.header', 'dict')
    pfObj = PFImgSetHeader(**pdict)
    return pfObj
Exemple #16
0
class PFImgInfo(BaseModel):
    ImageInfo: List[_ImageInfo] = None


def readImageInfo(pfpath, imgsetid=0):
    fname = '%s/ImageSet_%s.ImageInfo' % (pfpath, imgsetid)
    pdict = readPFile(fname, 'ImageSet.ImageInfo', 'dict')
    pfObj = PFImgInfo(**pdict)
    return pfObj


if __name__ == '__main__':
    prjpath = os.path.dirname(os.path.abspath(__file__)) + '/../'

    FORMAT = "[%(asctime)s %(levelname)s - %(funcName)s] %(message)s"
    logging.basicConfig(format=FORMAT,
                        filename=prjpath + 'logs/test.log',
                        level=logging.INFO)

    logging.info('Project foler is %s' % os.path.abspath(prjpath))

    # Patient
    Pdict = readPFile(prjpath + 'examples/Patient_6204/ImageSet_0.ImageInfo',
                      'ImageSet.ImageInfo', 'dict')
    #print(Pdict)
    pfImgInfo = PFImgInfo(**Pdict)

    print(pfImgInfo.ImageInfo[0].TablePosition)
    print(pfImgInfo.ImageInfo[1].SliceNumber)
    print(pfImgInfo.ImageInfo[97].InstanceUID)
Exemple #17
0
    def __init__(self, ptpath) -> None:
        fname = '%s/Patient' % ptpath
        logging.info('Reading file: %s' % fname)
        pfdict = readPFile(fname, 'Patient', 'dict')
        self.Patient = PFPatient(**pfdict)

        self.NumberOfImageSets = len(self.Patient.ImageSetList.ImageSet)
        self.NumberOfPlans = len(self.Patient.PlanList.Plan)

        imgsetID = []
        for iset in self.Patient.ImageSetList.ImageSet:
            imgsetID.append(iset.ImageSetID)
        planID = []
        for plan in self.Patient.PlanList.Plan:
            planID.append(plan.PlanID)

        self.ImageSet: List[_ImageSet] = []
        for id in imgsetID:
            imgset = _ImageSet()
            imgset.ImageSetID = id

            # obtain header
            fname = '%s/ImageSet_%s.header' % (ptpath, id)
            logging.info('Reading file: %s' % fname)
            pfdict = readPFile(fname, 'ImageSet.header', 'dict')
            imgset.Header = PFImgSetHeader(**pfdict)

            # obtain info for all slices
            fname = '%s/ImageSet_%s.ImageInfo' % (ptpath, id)
            logging.info('Reading file: %s' % fname)
            pfdict = readPFile(fname, 'ImageSet.ImageInfo', 'dict')
            imgset.ImageInfoList = PFImgInfo(**pfdict)

            self.ImageSet.append(imgset)
            print('Reading ImageSet_%s done.' % id)

        self.Plan: List[_PPlan] = []
        for id in planID:
            pplan = _PPlan()
            pplan.PlanID = id

            # PlanPatientSetup
            fname = '%s/Plan_%s/plan.PatientSetup' % (ptpath, id)
            logging.info('Reading file: %s' % fname)
            pfdict = readPFile(fname, 'plan.PatientSetup', 'dict')
            pplan.PlanPatientSetup = PFPlanPatientSetup(**pfdict)

            # PlanInfo
            fname = '%s/Plan_%s/plan.PlanInfo' % (ptpath, id)
            logging.info('Reading file: %s' % fname)
            pfdict = readPFile(fname, 'plan.PlanInfo', 'dict')
            pplan.PlanInfo = PFPlanInfo(**pfdict)

            # PlanPoints
            fname = '%s/Plan_%s/plan.Points' % (ptpath, id)
            logging.info('Reading file: %s' % fname)
            pfdict = readPFile(fname, 'plan.Points', 'dict')
            pplan.PlanPoints = PFPlanPoints(**pfdict)

            # PlanROI
            fname = '%s/Plan_%s/plan.roi' % (ptpath, id)
            logging.info('Reading file: %s' % fname)
            pfdict = readPFile(fname, 'plan.roi', 'dict')
            pplan.PlanROI = PFPlanROI(**pfdict)

            # PlanTrial
            fname = '%s/Plan_%s/plan.Trial' % (ptpath, id)
            logging.info('Reading file: %s' % fname)
            pfdict = readPFile(fname, 'plan.Trial', 'dict')
            pplan.PlanTrial = PFPlanTrial(**pfdict)

            self.Plan.append(pplan)
            print('Reading Plan_%s done.' % id)
Exemple #18
0
    PlanList: Optional[_PlanList] = None
    ObjectVersion: Optional[_ObjectVersion] = None

def readPatient(pfpath):
    fname = '%s/Patient' % pfpath
    pdict = readPFile(fname, 'Patient', 'dict')
    pfObj = PFPatient(**pdict)
    return pfObj


if __name__ == '__main__':
    prjpath = os.path.dirname(os.path.abspath(__file__))+'/../'

    FORMAT = "[%(asctime)s %(levelname)s - %(funcName)s] %(message)s"
    logging.basicConfig(format=FORMAT, filename=prjpath+'logs/test.log', level=logging.INFO)

    logging.info('Project foler is %s' % os.path.abspath(prjpath))

    # Patient
    Pdict = readPFile(prjpath+'examples/Patient_6204/Patient', 'Patient', 'dict')
    #print(Pdict)
    #print(len(Pdict))
    pfPatient = PFPatient(**Pdict)

    print(pfPatient.MedicalRecordNumber)
    print(pfPatient.ImageSetList.ImageSet[0].NumberOfImages)
    print(pfPatient.ImageSetList.ImageSet[0].ScanTimeFromScanner)
    print(pfPatient.PlanList.Plan[1].PlanName)
    print(pfPatient.PlanList.Plan[0].ObjectVersion.WriteTimeStamp)
    print(pfPatient.ObjectVersion.CreateTimeStamp)