Skip to content
isachpaz edited this page Oct 22, 2018 · 7 revisions

The scope of this project is to overload the catheter of the patient brachytherapy plan. In particular, patient plans will be automatically transferred, including information on:

  • dwell times,
  • source dwell positions and
  • associated source strength with a virtual base QA plan comprising eight catheters (the number of the catheters is configurable).

User-Story-1:

An initial number of catheters defined by the patient plan, need to be overloaded and exported into a new QA verification plan of (8) eight catheters.

User-Story-2:

If the total initial catheter number is greater than the number of catheters in the QA plan (i.e. 8 catheters), then we need to create and export more than one QA verification plans. For instance, if the total number of the catheters in the patient is 22, then 3 QA verification plans need to be created: QA-1 with catheters from 1 to 8, QA-2 with catheters 9-16, QA-3 with catheters 17-22.

Library System architecture:

Howto use the library - A unit test example:

        var mockCatheterOverloadingParameters = new Mock<ICatheterOverloadingParameters>();
        mockCatheterOverloadingParameters.SetupGet(u => u.OutputPlanName).Returns("outputplan.dcm");
        mockCatheterOverloadingParameters.SetupGet(u => u.PatientPlan)
            .Returns(DICOMObject.Read(DicomResources.rtplan));
        mockCatheterOverloadingParameters.SetupGet(u => u.VerificationPlan)
            .Returns(DICOMObject.Read(DicomResources.rtplan));
        mockCatheterOverloadingParameters.SetupGet(u => u.TpsType)
            .Returns(PlanningSystemType.ONCENTRA_BRACHY);
        
        IDicomServices dicomServices = new DicomServices();
        ICatheterBlocks catheterBlocks = new CatheterBlocks(8);
        ICatheterBlockService catheterBlockService = new CatheterBlockService(catheterBlocks);
        var catheterOverloader =
                CatheterOverloaderFactory.Create(mockCatheterOverloadingParameters.Object, 
                                                 dicomServices, 
                                                 catheterBlockService);
        catheterOverloader.RunOverloading();
        catheterOverloader.SaveToFile("outputFile.dcm");
Clone this wiki locally