rpt_dosi.dosimetry ================== .. py:module:: rpt_dosi.dosimetry Classes ------- .. autoapisummary:: rpt_dosi.dosimetry.DoseComputation rpt_dosi.dosimetry.DoseComputationWithPhantom rpt_dosi.dosimetry.DoseComputationWithDoseRate rpt_dosi.dosimetry.DoseMadsen2018 rpt_dosi.dosimetry.DoseHanscheid2017 rpt_dosi.dosimetry.DoseHanscheid2018 rpt_dosi.dosimetry.DoseMadsen2018DoseRate rpt_dosi.dosimetry.DoseHanscheid2018DoseRate rpt_dosi.dosimetry.DoseHanscheid2017DoseRate Functions --------- .. autoapisummary:: rpt_dosi.dosimetry.dose_hanscheid2017 rpt_dosi.dosimetry.dose_hanscheid2018 rpt_dosi.dosimetry.dose_madsen2018_dose_rate rpt_dosi.dosimetry.dose_hanscheid2018_dose_rate rpt_dosi.dosimetry.dose_hanscheid2017_dose_rate rpt_dosi.dosimetry.dose_madsen2018 rpt_dosi.dosimetry.fit_exp_linear rpt_dosi.dosimetry.decay_corrected_tac rpt_dosi.dosimetry.triexpo_fit rpt_dosi.dosimetry.triexpo_rmse rpt_dosi.dosimetry.triexpo_param_from_dict rpt_dosi.dosimetry.triexpo_apply_from_dict rpt_dosi.dosimetry.triexpo_apply rpt_dosi.dosimetry.test_compare_json_doses rpt_dosi.dosimetry.get_dose_computation_class Module Contents --------------- .. py:function:: dose_hanscheid2017(spect_bq_a, roi_a, time_from_injection_h, volume_voxel_m_l, effective_time_h) Input img and ROI must be numpy arrays Input SPECT img must be in Bq .. py:function:: dose_hanscheid2018(spect_bq_a, roi_a, time_from_injection_h, s_value, mass_scaling) Input image and ROI must be numpy arrays - spect must be in Bq (not concentration) - acquisition time in hours - output is in Gray .. py:function:: dose_madsen2018_dose_rate(dose_rate_a, roi_a, time_from_injection_h, effective_time_h) .. py:function:: dose_hanscheid2018_dose_rate(dose_rate_a, roi_a, time_from_injection_h) .. py:function:: dose_hanscheid2017_dose_rate(dose_rate_a, roi_a, time_from_injection_h, roi_time_eff_h) .. py:function:: dose_madsen2018(spect_Bq, roi, acq_time_h, svalue, mass_scaling, roi_time_eff_h) Input image and ROI must be numpy arrays - spect must be in Bq (not concentration) - svalue in mGy/MBq/s - time in hours - output is in Gray .. py:function:: fit_exp_linear(x, y) .. py:function:: decay_corrected_tac(t, a, decay_constant) .. py:function:: triexpo_fit(times, activities, as_dict=True) from https://github.com/jacksonmedphysics/TriExponential-Solver Pharmacokinetics backend of the VRAK Voxel dosimetry software reported in Med Phys. 2013 Nov;40(11):112503. doi: 10.1118/1.4824318. https://www.ncbi.nlm.nih.gov/pubmed/24320462 .. py:function:: triexpo_rmse(times, activities, decay_constant, A1, k1, A2, k2, A3, k3) .. py:function:: triexpo_param_from_dict(p) .. py:function:: triexpo_apply_from_dict(x, decay_constant_hours, p) .. py:function:: triexpo_apply(x, decay_constant_hours, A1, k1, A2, k2, A3, k3) .. py:function:: test_compare_json_doses(json_ref, json_test, tol=0.001) .. py:class:: DoseComputation(ct: rpt_dosi.images.MetaImageCT, spect: rpt_dosi.images.MetaImageSPECT) .. py:attribute:: name :value: None .. py:attribute:: ct .. py:attribute:: spect .. py:attribute:: resample_like :value: 'ct' .. py:attribute:: radionuclide :value: 'lu177' .. py:attribute:: gaussian_sigma :value: None .. py:method:: check_options() .. py:method:: run(rois: list[rpt_dosi.images.MetaImageROI]) .. py:method:: init_resampling() .. py:method:: init_results() .. py:class:: DoseComputationWithPhantom(method_name) .. py:attribute:: phantom :value: None .. py:attribute:: icrp_phantom_name :value: None .. py:attribute:: icrp_radionuclide :value: None .. py:attribute:: method_name .. py:method:: get_phantom(radionuclide) .. py:class:: DoseComputationWithDoseRate(ct, dose_rate) Bases: :py:obj:`DoseComputation` .. py:attribute:: ct .. py:attribute:: dose_rate .. py:attribute:: scaling :value: 1.0 .. py:method:: init_resampling() .. py:class:: DoseMadsen2018(ct, spect) Bases: :py:obj:`DoseComputation`, :py:obj:`DoseComputationWithPhantom` .. py:attribute:: name :value: 'madsen2018' .. py:method:: run(rois: list[rpt_dosi.images.MetaImageROI]) .. py:class:: DoseHanscheid2017(ct, spect) Bases: :py:obj:`DoseComputation` .. py:attribute:: name :value: 'hanscheid2017' .. py:method:: run(rois: list[rpt_dosi.images.MetaImageROI]) .. py:class:: DoseHanscheid2018(ct, spect) Bases: :py:obj:`DoseComputation`, :py:obj:`DoseComputationWithPhantom` .. py:attribute:: name :value: 'hanscheid2018' .. py:method:: run(rois: list[rpt_dosi.images.MetaImageROI]) .. py:class:: DoseMadsen2018DoseRate(ct, dose_rate) Bases: :py:obj:`DoseComputationWithDoseRate` .. py:attribute:: name :value: 'madsen2018_dose_rate' .. py:method:: run(rois: list[rpt_dosi.images.MetaImageROI]) .. py:class:: DoseHanscheid2018DoseRate(ct, dose_rate) Bases: :py:obj:`DoseComputationWithDoseRate` .. py:attribute:: name :value: 'hanscheid2018_dose_rate' .. py:method:: run(rois: list[rpt_dosi.images.MetaImageROI]) .. py:class:: DoseHanscheid2017DoseRate(ct, dose_rate) Bases: :py:obj:`DoseComputationWithDoseRate` .. py:attribute:: name :value: 'hanscheid2017_dose_rate' .. py:method:: run(rois: list[rpt_dosi.images.MetaImageROI]) .. py:function:: get_dose_computation_class(name)