track libraries (prep for CQL validation)

This commit is contained in:
Grahame Grieve 2020-04-02 11:04:29 +11:00
parent bdad4d9a6b
commit 95c2f99e7b
1 changed files with 16 additions and 0 deletions

View File

@ -57,6 +57,7 @@ import org.hl7.fhir.r5.model.ElementDefinition;
import org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionBindingComponent;
import org.hl7.fhir.r5.model.Enumerations.PublicationStatus;
import org.hl7.fhir.r5.model.ImplementationGuide;
import org.hl7.fhir.r5.model.Library;
import org.hl7.fhir.r5.model.Measure;
import org.hl7.fhir.r5.model.CanonicalResource;
import org.hl7.fhir.r5.model.NamingSystem;
@ -144,6 +145,7 @@ public abstract class BaseWorkerContext extends I18nBase implements IWorkerConte
protected CanonicalResourceManager<StructureMap> transforms = new CanonicalResourceManager<StructureMap>(false);
private CanonicalResourceManager<StructureDefinition> structures = new CanonicalResourceManager<StructureDefinition>(false);
private CanonicalResourceManager<Measure> measures = new CanonicalResourceManager<Measure>(false);
private CanonicalResourceManager<Library> libraries = new CanonicalResourceManager<Library>(false);
private CanonicalResourceManager<ImplementationGuide> guides = new CanonicalResourceManager<ImplementationGuide>(false);
private CanonicalResourceManager<CapabilityStatement> capstmts = new CanonicalResourceManager<CapabilityStatement>(false);
private CanonicalResourceManager<SearchParameter> searchParameters = new CanonicalResourceManager<SearchParameter>(false);
@ -210,6 +212,7 @@ public abstract class BaseWorkerContext extends I18nBase implements IWorkerConte
guides.copy(other.guides);
capstmts.copy(other.capstmts);
measures.copy(other.measures);
libraries.copy(libraries);
allowLoadingDuplicates = other.allowLoadingDuplicates;
tsServer = other.tsServer;
@ -262,6 +265,8 @@ public abstract class BaseWorkerContext extends I18nBase implements IWorkerConte
capstmts.see((CapabilityStatement) m);
else if (r instanceof Measure)
measures.see((Measure) m);
else if (r instanceof Library)
libraries.see((Library) m);
else if (r instanceof SearchParameter)
searchParameters.see((SearchParameter) m);
else if (r instanceof PlanDefinition)
@ -824,6 +829,8 @@ public abstract class BaseWorkerContext extends I18nBase implements IWorkerConte
return (T) capstmts.get(uri);
if (measures.has(uri))
return (T) measures.get(uri);
if (libraries.has(uri))
return (T) libraries.get(uri);
if (valueSets.has(uri))
return (T) valueSets.get(uri);
if (codeSystems.has(uri))
@ -856,6 +863,8 @@ public abstract class BaseWorkerContext extends I18nBase implements IWorkerConte
return (T) capstmts.get(uri);
} else if (class_ == Measure.class) {
return (T) measures.get(uri);
} else if (class_ == Library.class) {
return (T) libraries.get(uri);
} else if (class_ == StructureDefinition.class) {
return (T) structures.get(uri);
} else if (class_ == StructureMap.class) {
@ -1034,6 +1043,7 @@ public abstract class BaseWorkerContext extends I18nBase implements IWorkerConte
json.addProperty("guides-count", guides.size());
json.addProperty("statements-count", capstmts.size());
json.addProperty("measures-count", measures.size());
json.addProperty("libraries-count", libraries.size());
}
}
@ -1061,6 +1071,8 @@ public abstract class BaseWorkerContext extends I18nBase implements IWorkerConte
capstmts.drop(id);
else if (fhirType.equals("Measure"))
measures.drop(id);
else if (fhirType.equals("Library"))
libraries.drop(id);
else if (fhirType.equals("ValueSet"))
valueSets.drop(id);
else if (fhirType.equals("CodeSystem"))
@ -1101,6 +1113,7 @@ public abstract class BaseWorkerContext extends I18nBase implements IWorkerConte
guides.listAllM(result);
capstmts.listAllM(result);
measures.listAllM(result);
libraries.listAllM(result);
codeSystems.listAllM(result);
valueSets.listAllM(result);
maps.listAllM(result);
@ -1286,6 +1299,9 @@ public abstract class BaseWorkerContext extends I18nBase implements IWorkerConte
if (measures.has(url))
return measures.get(url).getUserString("path");
if (libraries.has(url))
return libraries.get(url).getUserString("path");
if (searchParameters.has(url))
return searchParameters.get(url).getUserString("path");