Sha256: cd4eb214178c97c6aaa153d703edfc18b3567b7195c53c0c901e1667696c82a3

Contents?: true

Size: 1.7 KB

Versions: 5

Compression:

Stored size: 1.7 KB

Contents

module FHIR
  module Sections
    module Validate
      #
      # Validate resource payload.
      #
      # @param resourceClass
      # @param resource
      # @param id
      # @return
      #
      # public <T extends Resource> AtomEntry<OperationOutcome> validate(Class<T> resourceClass, T resource, String id);
      def validate(resource, options = {}, format = @default_format)
        options.merge!(resource: resource.class, validate: true, format: format)
        params = FHIR::Parameters.new
        add_resource_parameter(params, 'resource', resource)
        add_parameter(params, 'profile', 'Uri', options[:profile_uri]) unless options[:profile_uri].nil?
        post resource_url(options), params, fhir_headers(options)
      end

      def validate_existing(resource, id, options = {}, format = @default_format)
        options.merge!(resource: resource.class, id: id, validate: true, format: format)
        params = FHIR::Parameters.new
        add_resource_parameter(params, 'resource', resource)
        add_parameter(params, 'profile', 'Uri', options[:profile_uri]) unless options[:profile_uri].nil?
        post resource_url(options), params, fhir_headers(options)
      end

      private

      def add_parameter(params, name, type, value)
        params.parameter ||= []
        parameter = FHIR::Parameters::Parameter.new.from_hash(name: name)
        parameter.method("value#{type}=").call(value)
        params.parameter << parameter
      end

      def add_resource_parameter(params, name, resource)
        params.parameter ||= []
        parameter = FHIR::Parameters::Parameter.new.from_hash(name: name)
        parameter.resource = resource
        params.parameter << parameter
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
fhir_client-1.8.0 lib/fhir_client/sections/validate.rb
fhir_client-1.6.10 lib/fhir_client/sections/validate.rb
fhir_client-1.6.9 lib/fhir_client/sections/validate.rb
fhir_client-1.6.8 lib/fhir_client/sections/validate.rb
fhir_client-1.6.7 lib/fhir_client/sections/validate.rb