@@ -380,6 +380,8 @@ void setup_pk_single_dosing_schedule(Pharmacokinetics_Model *pPK, double current
380
380
filename = folder + " /" + schedule_node.child (" filename" ).text ().as_string ();
381
381
}
382
382
383
+ std::cout << " PhysiPKPD Update: Reading in dosing schedule from " << filename << " ." << std::endl;
384
+
383
385
std::ifstream file (filename, std::ios::in);
384
386
385
387
if (!file)
@@ -405,36 +407,23 @@ void setup_pk_single_dosing_schedule(Pharmacokinetics_Model *pPK, double current
405
407
}
406
408
pPK->pk_solver ->max_doses = pPK->pk_solver ->dose_times .size ();
407
409
410
+ std::cout << " \t PhysiPKPD Update: Finished reading in dosing schedule from " << filename << " ." << std::endl;
411
+ std::cout << " \t PhysiPKPD Update: Found " << pPK->pk_solver ->max_doses << " doses." << std::endl;
412
+ std::cout << " \t PhysiPKPD Update: Dose times are: " << pPK->pk_solver ->dose_times << std::endl;
413
+ std::cout << " \t PhysiPKPD Update: Dose amounts are: " << pPK->pk_solver ->dose_amounts << std::endl;
414
+
408
415
file.close ();
409
416
}
410
417
else
411
418
{
412
- // get max dose number
413
- // if (parameters.ints.find_index(pPK->substrate_name + "_max_number_doses") == -1)
414
- // {
415
- // std::cout << "PhysiPKPD WARNING: " << pPK->substrate_name << "_max_number_doses not set." << std::endl
416
- // << " Using a default value of 0." << std::endl;
417
- // pPK->pk_solver->max_doses = 0;
418
- // } // assume a default value of 0
419
- // else
420
- // {
421
- pPK->pk_solver ->max_doses = schedule_node.child (" total_doses" ).text ().as_int ();
422
- // }
419
+ pPK->pk_solver ->max_doses = schedule_node.child (" total_doses" ).text ().as_int ();
423
420
424
421
if (pPK->pk_solver ->max_doses == 0 )
425
422
{
426
423
pPK->dosing_schedule_setup_done = true ;
427
424
return ;
428
425
}
429
426
430
- // if ((!(schedule_node.child("confluence_start"))) && (!(schedule_node.child("confluence_condition"))))
431
- // {
432
- // std::cout << "PhysiPKPD WARNING: No specification of how to set first dose time." << std::endl
433
- // << " Defaulting to current_time." << std::endl
434
- // << " Specify this by setting " << pPK->substrate_name + "_set_first_dose_time" + " = true" << std::endl
435
- // << " Or setting " << pPK->substrate_name + "_confluence_condition" << std::endl;
436
- // }
437
-
438
427
pPK->pk_solver ->dose_times .resize (pPK->pk_solver ->max_doses , 0 );
439
428
pPK->pk_solver ->dose_amounts .resize (pPK->pk_solver ->max_doses , 0 );
440
429
if ((schedule_node.child (" confluence_start" )) && schedule_node.child (" confluence_start" ).text ().as_bool () && !(schedule_node.child (" first_dose_time" )))
@@ -548,6 +537,8 @@ void AnalyticConstant_PK_Solver::advance(Pharmacokinetics_Model *pPK, double cur
548
537
{
549
538
circulation_concentration = dose_amounts[dose_count];
550
539
dose_count++;
540
+ std::cout << " PhysiPKPD Update: Dosing " << dose_amounts[dose_count] << " to " << pPK->substrate_name << " at time " << current_time << " ." << std::endl
541
+ << " \t Using the constant PK model, so setting the circulation concentration to this amount." << std::endl;
551
542
}
552
543
return ;
553
544
}
@@ -559,6 +550,8 @@ void Analytic2C_PK_Solver::advance(Pharmacokinetics_Model *pPK, double current_t
559
550
{
560
551
compartment_concentrations[0 ] += dose_amounts[dose_count];
561
552
dose_count++;
553
+ std::cout << " PhysiPKPD Update: Dosing " << dose_amounts[dose_count] << " to " << pPK->substrate_name << " at time " << current_time << " ." << std::endl
554
+ << " \t Using the 2-compartment PK model, so adding this amount to the central compartment concentration resulting in a central concentration of " << compartment_concentrations[0 ] << " ." << std::endl;
562
555
}
563
556
564
557
// store previous quantities for computation
@@ -573,10 +566,12 @@ void Analytic2C_PK_Solver::advance(Pharmacokinetics_Model *pPK, double current_t
573
566
void Analytic1C_PK_Solver::advance (Pharmacokinetics_Model *pPK, double current_time)
574
567
{
575
568
// add dose if time for that
576
- if (dose_count < max_doses && current_time > dose_times[dose_count] - tolerance)
569
+ if (dose_count < max_doses && current_time > dose_times[dose_count] - tolerance)
577
570
{
578
571
circulation_concentration += dose_amounts[dose_count];
579
572
dose_count++;
573
+ std::cout << " PhysiPKPD Update: Dosing " << dose_amounts[dose_count] << " to " << pPK->substrate_name << " at time " << current_time << " ." << std::endl
574
+ << " \t Using the 1-compartment PK model, so adding this amount to the circulation concentration resulting in a concentration of " << circulation_concentration << " ." << std::endl;
580
575
}
581
576
582
577
circulation_concentration = M * circulation_concentration;
0 commit comments