public async static Task <ValidateCodeResult> ValidateCodeAsync(this IFhirClient client,
                                                                        FhirUri identifier    = null, FhirUri context                 = null, ValueSet valueSet  = null, Code code = null,
                                                                        FhirUri system        = null, FhirString version              = null, FhirString display = null,
                                                                        Coding coding         = null, CodeableConcept codeableConcept = null, FhirDateTime date  = null,
                                                                        FhirBoolean @abstract = null)
        {
            var par = new Parameters()
                      .Add(nameof(identifier), identifier)
                      .Add(nameof(context), context)
                      .Add(nameof(valueSet), valueSet)
                      .Add(nameof(code), code)
                      .Add(nameof(system), system)
                      .Add(nameof(version), version)
                      .Add(nameof(display), display)
                      .Add(nameof(coding), coding)
                      .Add(nameof(codeableConcept), codeableConcept)
                      .Add(nameof(date), date)
                      .Add(nameof(@abstract), @abstract);

            var result = await client.TypeOperationAsync <ValueSet>(RestOperation.VALIDATE_CODE, par).ConfigureAwait(false);

            if (result != null)
            {
                return(ValidateCodeResult.FromParameters(result.OperationResult <Parameters>()));
            }
            else
            {
                return(null);
            }
        }
        public static async Task <ValidateCodeResult> ValidateCodeAsync(this IFhirClient client, String valueSetId,
                                                                        FhirUri identifier    = null, FhirUri context                 = null, ValueSet valueSet  = null, Code code = null,
                                                                        FhirUri system        = null, FhirString version              = null, FhirString display = null,
                                                                        Coding coding         = null, CodeableConcept codeableConcept = null, FhirDateTime date  = null,
                                                                        FhirBoolean @abstract = null)
        {
            if (valueSetId == null)
            {
                throw new ArgumentNullException(nameof(valueSetId));
            }

            var par = new Parameters()
                      .Add(nameof(identifier), identifier)
                      .Add(nameof(context), context)
                      .Add(nameof(valueSet), valueSet)
                      .Add(nameof(code), code)
                      .Add(nameof(system), system)
                      .Add(nameof(version), version)
                      .Add(nameof(display), display)
                      .Add(nameof(coding), coding)
                      .Add(nameof(codeableConcept), codeableConcept)
                      .Add(nameof(date), date)
                      .Add(nameof(@abstract), @abstract);

            ResourceIdentity location = new ResourceIdentity("ValueSet/" + valueSetId);
            var result = await client.InstanceOperationAsync(location.WithoutVersion().MakeRelative(), RestOperation.VALIDATE_CODE, par).ConfigureAwait(false);

            if (result != null)
            {
                return(ValidateCodeResult.FromParameters(result.OperationResult <Parameters>()));
            }
            else
            {
                return(null);
            }
        }