Skip to content

Dependencies and notes of possible things to be moved into Common

gstoian edited this page Nov 15, 2019 · 2 revisions

PocoBuilder: - Base.cs - IDeepCopyable.cs - IDeepComparable.cs - ElementValue.cs - Resource.cs - ResourceType enum (Template-Binding.cs) - FhirUri.cs - Oid.cs - Uuid.cs - Id.cs - IStringValue -> IValue.cs - Primitive.cs - Element.cs - IExtendable.cs - Extention.cs (replaced the AllowedTypes attribute parameters' list with [AllowedTypes(typeof(Hl7.Fhir.Model.Element))] ) -> it doesn't work - Code.cs - Meta.cs - Instant.cs - Coding.cs - FhirString.cs - FhirBoolean.cs

	- ElementDefinition.cs (replaced the AllowedTypes attribute parameters' list with [AllowedTypes(typeof(Hl7.Fhir.Model.Element))] ) -> it doesn't work
		- IBackboneElement.cs -> BackboneElement.cs
		- Integer.cs
		- FHIRDefinedType enum, BindingStrength enum, ResourceType enum (Template-Binding.cs)
		- ResourceReference.cs
		- Markdown.cs
		- fix: move ValidateInvariantRule out
		
	- OperationOutcome.cs
		- DomainResource.cs
			- Narrative.cs
				- XHtml.cs
			- fix: move ValidateInvariantRule as extension method to Constraint component
		- CodeableConcept.cs (also the related CodeableConcept code from Initializers.cs)
		
	- CodeableConcept.cs
		- fix: move ValidateInvariantRule as extension method to Constraint component
		
- ModelInfo.cs
	- SearchParamType enum, ResourceType enum, FHIRDefinedType enum, FhirTypeToCsType enum, SupportedResources enum (Template-Binding.cs/Template-ModelInfo.cs)
		- FhirTypeToCsType enum contains types

- depends on ModelInfo.GetTypeForFhirType  - public Base BuildFrom(ISourceNode source, string dataType)
	- it needs to be dependent on ClassMapping

PocoElementNode: - Date.cs - Time.cs - FhirDateTime.cs - PositiveInt.cs

- !! depends on ModelInfo.IsProfiledQuantity -  public static string determineInstanceType(object instance, IElementDefinitionSummary summary)

PocoNavigator: - can be removed - Identifier.cs - Period.cs - ContactPoint.cs - Address.cs - Questionnaire.cs - ResourceType enum (Template-Binding.cs) - QuestionnaireResponse.cs (replaced the AllowedTypes attribute parameters' list with [AllowedTypes(typeof(Hl7.Fhir.Model.Element))] ) - ResourceType enum (Template-Binding.cs)

ResourceIdentity.cs: - ModelInfo.IsKnownResource(ResourceType) in private void parseComponents(string url) - it's not necessary TransactionBuilder: - ModelInfo.IsPrimitive(parameter.Value.GetType()) - replace FhirJsonParser: - ModelInfo.GetFhirTypeNameForType(dataType) - same as in PocoBuilder PocoStructureDefiinitionSummaryProvider: - ModelInfo.GetTypeForFhirType(typeName) - same

FhirClient related should not be in Common FhirClient: - Bundle.cs - FhirDecimal.cs - UnsignedInt.cs - Signature.cs - Base64Binary.cs - Conformance.cs - Template-Binding.cs - Parameters.cs (replaced the AllowedTypes attribute parameters' list with [AllowedTypes(typeof(Hl7.Fhir.Model.Element))] ) - ResourceType enum (Template-Binding.cs)

RestOperation: - ValueSet.cs FhirClientOperations: - Patient.cs

===================================================

ElementValue: - internal struct cannot be accessed from Core anymore. Base -> Resource -> DomainResource, Element, Bundle, Conformance, OperationOutcome, Parameters, Questionnaire, QuestionnaireResponse, ValueSet, ElementDefinition...: - NamedChildren property is internal

DotNetAttributeValidation - BuildResult is internal

TransactionBuilder - InteractionType is internal - fix: take TransactionBuilder outside Common and copy HISTORY const in ResourceIdentity, also make the const obsolite in TransactionBuilder

PocoElementNode - internal - fix: Use i.Annotation instead of PocoElementNode in tests - done.

TokenExtensions - internal, all of them - fix: public

PropertyMapping: - "public set" on Name and IsCollection is not necessary

===================================================== Add assembly name in the app.config and then import it in the BaseFhirParser

ModelInfo.IsKnownResource(ResourceType) and ModelInfo.SupportedResources should be replaced by a regex that matches if it starts with capital letter

Add IsProfiledQuantity attribute on the needed Properties (that are definded in the ModelInfo.IsProfiledQuantity(typeName) method

Clone this wiki locally