@@ -3503,6 +3503,7 @@ procedure TFHIRValueSetExpander.includeCodes(cset: TFhirValueSetComposeIncludeW;
3503
3503
begin
3504
3504
// Logging.log('Processing '+vsId+', import value set '+s);
3505
3505
deadCheck(' processCodes#2' );
3506
+ FOpContext.log(' import value set ' +s);
3506
3507
ivs := TFHIRImportedValueSet.create(expandValueset(s, ' ' , filter.filter, dependencies, notClosed));
3507
3508
try
3508
3509
checkCanonicalStatus(expansion, ivs.FValueSet, FValueSet);
@@ -3535,6 +3536,7 @@ procedure TFHIRValueSetExpander.includeCodes(cset: TFhirValueSetComposeIncludeW;
3535
3536
// Logging.log(' ...import value set '+s);
3536
3537
deadCheck(' processCodes#3' );
3537
3538
f := nil ;
3539
+ FOpContext.log(' import2 value set ' +s);
3538
3540
// if we can, we can do a short cut evaluation that means we don't have to do a full expansion of the source value set.
3539
3541
// this saves lots of overhead we don't need. But it does require simple cases (though they are common). So we have a look
3540
3542
// at the value set, and see whether we can short cut it. If we can, it's just another filter (though we can't iterate on it)
@@ -3555,6 +3557,7 @@ procedure TFHIRValueSetExpander.includeCodes(cset: TFhirValueSetComposeIncludeW;
3555
3557
begin
3556
3558
if (cs.SpecialEnumeration <> ' ' ) and FParams.limitedExpansion and filters.Empty then
3557
3559
begin
3560
+ FOpContext.log(' import special value set ' +s);
3558
3561
base := expandValueSet(cs.SpecialEnumeration, ' ' , filter.filter, dependencies, notClosed);
3559
3562
try
3560
3563
expansion.addExtensionV(' http://hl7.org/fhir/StructureDefinition/valueset-toocostly' , FFactory.makeBoolean(true));
@@ -3566,6 +3569,7 @@ procedure TFHIRValueSetExpander.includeCodes(cset: TFhirValueSetComposeIncludeW;
3566
3569
end
3567
3570
else if filter.Null then // special case - add all the code system
3568
3571
begin
3572
+ FOpContext.log(' add whole code system' );
3569
3573
if cs.isNotClosed(FOpContext, filter) then
3570
3574
if cs.SpecialEnumeration <> ' ' then
3571
3575
raise costDiags(ETooCostly.create(' The code System "' +cs.systemUri+' " has a grammar, and cannot be enumerated directly. If an incomplete expansion is requested, a limited enumeration will be returned' ))
@@ -3595,6 +3599,7 @@ procedure TFHIRValueSetExpander.includeCodes(cset: TFhirValueSetComposeIncludeW;
3595
3599
end
3596
3600
else
3597
3601
begin
3602
+ FOpContext.log(' prepare filters' );
3598
3603
NoTotal;
3599
3604
if cs.isNotClosed(FOpContext, filter) then
3600
3605
notClosed := true;
@@ -3603,6 +3608,7 @@ procedure TFHIRValueSetExpander.includeCodes(cset: TFhirValueSetComposeIncludeW;
3603
3608
ctxt := cs.searchFilter(FOpContext, filter, prep, false);
3604
3609
try
3605
3610
cs.prepare(FOpContext, prep);
3611
+ FOpContext.log(' iterate filters' );
3606
3612
while cs.FilterMore(FOpContext, ctxt) do
3607
3613
begin
3608
3614
deadCheck(' processCodes#4' );
@@ -3623,6 +3629,7 @@ procedure TFHIRValueSetExpander.includeCodes(cset: TFhirValueSetComposeIncludeW;
3623
3629
c.free;
3624
3630
end ;
3625
3631
end ;
3632
+ FOpContext.log(' iterate filters done' );
3626
3633
finally
3627
3634
ctxt.free;
3628
3635
end ;
@@ -3634,6 +3641,7 @@ procedure TFHIRValueSetExpander.includeCodes(cset: TFhirValueSetComposeIncludeW;
3634
3641
3635
3642
if (cset.hasConcepts) then
3636
3643
begin
3644
+ FOpContext.log(' iterate concepts' );
3637
3645
cds := TConceptDesignations.Create(FFactory.link, FLanguages.link);
3638
3646
try
3639
3647
tcount := 0 ;
@@ -3666,10 +3674,12 @@ procedure TFHIRValueSetExpander.includeCodes(cset: TFhirValueSetComposeIncludeW;
3666
3674
finally
3667
3675
cds.free;
3668
3676
end ;
3677
+ FOpContext.log(' iterate concepts done' );
3669
3678
end ;
3670
3679
3671
3680
if cset.hasFilters then
3672
3681
begin
3682
+ FOpContext.log(' prepare filters' );
3673
3683
fcl := cset.filters;
3674
3684
try
3675
3685
prep := cs.getPrepContext(FOpContext);
@@ -3706,6 +3716,7 @@ procedure TFHIRValueSetExpander.includeCodes(cset: TFhirValueSetComposeIncludeW;
3706
3716
3707
3717
inner := cs.prepare(FOpContext, prep);
3708
3718
count := 0 ;
3719
+ FOpContext.log(' iterate filters' );
3709
3720
While cs.FilterMore(FOpContext, filters[0 ]) do
3710
3721
begin
3711
3722
deadCheck(' processCodes#5' );
@@ -3742,6 +3753,7 @@ procedure TFHIRValueSetExpander.includeCodes(cset: TFhirValueSetComposeIncludeW;
3742
3753
finally
3743
3754
prep.free;
3744
3755
end ;
3756
+ FOpContext.log(' iterate filters done' );
3745
3757
finally
3746
3758
fcl.free;
3747
3759
end ;
0 commit comments