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

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