Class: USCoreTestKit::Generator::MustSupportMetadataExtractorUsCore5
- Inherits:
-
Object
- Object
- USCoreTestKit::Generator::MustSupportMetadataExtractorUsCore5
- Defined in:
- lib/us_core_test_kit/generator/must_support_metadata_extractor_us_core_5.rb
Instance Attribute Summary collapse
-
#must_supports ⇒ Object
Returns the value of attribute must_supports.
-
#profile ⇒ Object
Returns the value of attribute profile.
Instance Method Summary collapse
- #add_must_support_choices ⇒ Object
- #add_patient_uscdi_elements ⇒ Object
- #add_value_set_expansion ⇒ Object
- #handle_special_cases ⇒ Object
-
#initialize(profile, must_supports) ⇒ MustSupportMetadataExtractorUsCore5
constructor
A new instance of MustSupportMetadataExtractorUsCore5.
-
#remove_survey_questionnaire_response ⇒ Object
FHIR-37794 Server systems are not required to support US Core QuestionnaireResponse.
- #us_core_4_extractor ⇒ Object
Constructor Details
#initialize(profile, must_supports) ⇒ MustSupportMetadataExtractorUsCore5
Returns a new instance of MustSupportMetadataExtractorUsCore5.
8 9 10 11 |
# File 'lib/us_core_test_kit/generator/must_support_metadata_extractor_us_core_5.rb', line 8 def initialize(profile, must_supports) self.profile = profile self.must_supports = must_supports end |
Instance Attribute Details
#must_supports ⇒ Object
Returns the value of attribute must_supports.
6 7 8 |
# File 'lib/us_core_test_kit/generator/must_support_metadata_extractor_us_core_5.rb', line 6 def must_supports @must_supports end |
#profile ⇒ Object
Returns the value of attribute profile.
6 7 8 |
# File 'lib/us_core_test_kit/generator/must_support_metadata_extractor_us_core_5.rb', line 6 def profile @profile end |
Instance Method Details
#add_must_support_choices ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/us_core_test_kit/generator/must_support_metadata_extractor_us_core_5.rb', line 24 def add_must_support_choices us_core_4_extractor.add_must_support_choices more_choices = [] case profile.type when 'CareTeam' more_choices << { target_profiles: [ 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner', 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole' ] } when 'Condition' more_choices << { paths: ['onsetDateTime'], extension_ids: ['Condition.extension:assertedDate'] } end if more_choices.present? must_supports[:choices] ||= [] must_supports[:choices].concat(more_choices) end end |
#add_patient_uscdi_elements ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/us_core_test_kit/generator/must_support_metadata_extractor_us_core_5.rb', line 50 def add_patient_uscdi_elements return unless profile.type == 'Patient' us_core_4_extractor.add_patient_uscdi_elements must_supports[:extensions] << { id: 'Patient.extension:genderIdentity', path: 'extension', url: 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-genderIdentity', uscdi_only: true } end |
#add_value_set_expansion ⇒ Object
63 64 65 66 |
# File 'lib/us_core_test_kit/generator/must_support_metadata_extractor_us_core_5.rb', line 63 def add_value_set_expansion add_document_reference_category_values add_service_request_category_values end |
#handle_special_cases ⇒ Object
18 19 20 21 22 |
# File 'lib/us_core_test_kit/generator/must_support_metadata_extractor_us_core_5.rb', line 18 def handle_special_cases add_must_support_choices add_patient_uscdi_elements remove_survey_questionnaire_response end |
#remove_survey_questionnaire_response ⇒ Object
FHIR-37794 Server systems are not required to support US Core QuestionnaireResponse
69 70 71 72 73 74 75 76 77 |
# File 'lib/us_core_test_kit/generator/must_support_metadata_extractor_us_core_5.rb', line 69 def remove_survey_questionnaire_response return unless profile.type == 'Observation' && ['us-core-observation-survey', 'us-core-observation-sdoh-assessment'].include?(profile.id) element = must_supports[:elements].find { |element| element[:path] == 'derivedFrom' } element[:target_profiles].delete_if do |url| url == 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-questionnaireresponse' end end |
#us_core_4_extractor ⇒ Object
14 15 16 |
# File 'lib/us_core_test_kit/generator/must_support_metadata_extractor_us_core_5.rb', line 14 def us_core_4_extractor @us_core_4_extractor ||= MustSupportMetadataExtractorUsCore4.new(profile, must_supports) end |