Module: FHIR::DSTU2::Xml

Extended by:
Deprecate
Included in:
Account, Address, AllergyIntolerance, AllergyIntolerance::Reaction, Annotation, Appointment, Appointment::Participant, AppointmentResponse, Attachment, AuditEvent, AuditEvent::Event, AuditEvent::Object, AuditEvent::Object::Detail, AuditEvent::Participant, AuditEvent::Participant::Network, AuditEvent::Source, BackboneElement, Basic, Binary, BodySite, Bundle, Bundle::Entry, Bundle::Entry::Request, Bundle::Entry::Response, Bundle::Entry::Search, Bundle::Link, CarePlan, CarePlan::Activity, CarePlan::Activity::Detail, CarePlan::Participant, CarePlan::RelatedPlan, Claim, Claim::Coverage, Claim::Diagnosis, Claim::Item, Claim::Item::Detail, Claim::Item::Detail::SubDetail, Claim::Item::Prosthesis, Claim::MissingTeeth, Claim::Payee, ClaimResponse, ClaimResponse::AddItem, ClaimResponse::AddItem::Adjudication, ClaimResponse::AddItem::Detail, ClaimResponse::AddItem::Detail::Adjudication, ClaimResponse::Coverage, ClaimResponse::Error, ClaimResponse::Item, ClaimResponse::Item::Adjudication, ClaimResponse::Item::Detail, ClaimResponse::Item::Detail::Adjudication, ClaimResponse::Item::Detail::SubDetail, ClaimResponse::Item::Detail::SubDetail::Adjudication, ClaimResponse::Item::Detail::Subadjudication, ClaimResponse::Note, ClinicalImpression, ClinicalImpression::Finding, ClinicalImpression::Investigations, ClinicalImpression::RuledOut, CodeableConcept, Coding, Communication, Communication::Payload, CommunicationRequest, CommunicationRequest::Payload, Composition, Composition::Attester, Composition::Event, Composition::Section, ConceptMap, ConceptMap::Contact, ConceptMap::Element, ConceptMap::Element::Target, ConceptMap::Element::Target::DependsOn, Condition, Condition::Evidence, Condition::Stage, Conformance, Conformance::Contact, Conformance::Document, Conformance::Implementation, Conformance::Messaging, Conformance::Messaging::Endpoint, Conformance::Messaging::Event, Conformance::Rest, Conformance::Rest::Interaction, Conformance::Rest::Operation, Conformance::Rest::Resource, Conformance::Rest::Resource::Interaction, Conformance::Rest::Resource::SearchParam, Conformance::Rest::Security, Conformance::Rest::Security::Certificate, Conformance::Software, ContactPoint, Contract, Contract::Actor, Contract::Friendly, Contract::Legal, Contract::Rule, Contract::Signer, Contract::Term, Contract::Term::Actor, Contract::Term::ValuedItem, Contract::ValuedItem, Coverage, DataElement, DataElement::Contact, DataElement::Mapping, DetectedIssue, DetectedIssue::Mitigation, Device, DeviceComponent, DeviceComponent::ProductionSpecification, DeviceMetric, DeviceMetric::Calibration, DeviceUseRequest, DeviceUseStatement, DiagnosticOrder, DiagnosticOrder::Event, DiagnosticOrder::Item, DiagnosticReport, DiagnosticReport::Image, DocumentManifest, DocumentManifest::Content, DocumentManifest::Related, DocumentReference, DocumentReference::Content, DocumentReference::Context, DocumentReference::Context::Related, DocumentReference::RelatesTo, DomainResource, Element, ElementDefinition, ElementDefinition::Base, ElementDefinition::Binding, ElementDefinition::Constraint, ElementDefinition::Mapping, ElementDefinition::Slicing, ElementDefinition::Type, EligibilityRequest, EligibilityResponse, Encounter, Encounter::Hospitalization, Encounter::Location, Encounter::Participant, Encounter::StatusHistory, EnrollmentRequest, EnrollmentResponse, EpisodeOfCare, EpisodeOfCare::CareTeam, EpisodeOfCare::StatusHistory, ExplanationOfBenefit, Extension, FamilyMemberHistory, FamilyMemberHistory::Condition, Flag, Goal, Goal::Outcome, Group, Group::Characteristic, Group::Member, HealthcareService, HealthcareService::AvailableTime, HealthcareService::NotAvailable, HealthcareService::ServiceType, HumanName, Identifier, ImagingObjectSelection, ImagingObjectSelection::Study, ImagingObjectSelection::Study::Series, ImagingObjectSelection::Study::Series::Instance, ImagingObjectSelection::Study::Series::Instance::Frames, ImagingStudy, ImagingStudy::Series, ImagingStudy::Series::Instance, Immunization, Immunization::Explanation, Immunization::Reaction, Immunization::VaccinationProtocol, ImmunizationRecommendation, ImmunizationRecommendation::Recommendation, ImmunizationRecommendation::Recommendation::DateCriterion, ImmunizationRecommendation::Recommendation::Protocol, ImplementationGuide, ImplementationGuide::Contact, ImplementationGuide::Dependency, ImplementationGuide::Global, ImplementationGuide::Package, ImplementationGuide::Package::Resource, ImplementationGuide::Page, List, List::Entry, Location, Location::Position, Media, Medication, Medication::Package, Medication::Package::Content, Medication::Product, Medication::Product::Batch, Medication::Product::Ingredient, MedicationAdministration, MedicationAdministration::Dosage, MedicationDispense, MedicationDispense::DosageInstruction, MedicationDispense::Substitution, MedicationOrder, MedicationOrder::DispenseRequest, MedicationOrder::DosageInstruction, MedicationOrder::Substitution, MedicationStatement, MedicationStatement::Dosage, MessageHeader, MessageHeader::Destination, MessageHeader::Response, MessageHeader::Source, Meta, NamingSystem, NamingSystem::Contact, NamingSystem::UniqueId, Narrative, NutritionOrder, NutritionOrder::EnteralFormula, NutritionOrder::EnteralFormula::Administration, NutritionOrder::OralDiet, NutritionOrder::OralDiet::Nutrient, NutritionOrder::OralDiet::Texture, NutritionOrder::Supplement, Observation, Observation::Component, Observation::ReferenceRange, Observation::Related, OperationDefinition, OperationDefinition::Contact, OperationDefinition::Parameter, OperationDefinition::Parameter::Binding, OperationOutcome, OperationOutcome::Issue, Order, Order::When, OrderResponse, Organization, Organization::Contact, Parameters, Parameters::Parameter, Patient, Patient::Animal, Patient::Communication, Patient::Contact, Patient::Link, PaymentNotice, PaymentReconciliation, PaymentReconciliation::Detail, PaymentReconciliation::Note, Period, Person, Person::Link, Practitioner, Practitioner::PractitionerRole, Practitioner::Qualification, Procedure, Procedure::FocalDevice, Procedure::Performer, ProcedureRequest, ProcessRequest, ProcessRequest::Item, ProcessResponse, ProcessResponse::Notes, Provenance, Provenance::Agent, Provenance::Agent::RelatedAgent, Provenance::Entity, Quantity, Questionnaire, Questionnaire::Group, Questionnaire::Group::Question, QuestionnaireResponse, QuestionnaireResponse::Group, QuestionnaireResponse::Group::Question, QuestionnaireResponse::Group::Question::Answer, Range, Ratio, Reference, ReferralRequest, RelatedPerson, Resource, RiskAssessment, RiskAssessment::Prediction, SampledData, Schedule, SearchParameter, SearchParameter::Contact, Signature, Slot, Specimen, Specimen::Collection, Specimen::Container, Specimen::Treatment, StructureDefinition, StructureDefinition::Contact, StructureDefinition::Differential, StructureDefinition::Mapping, StructureDefinition::Snapshot, Subscription, Subscription::Channel, Substance, Substance::Ingredient, Substance::Instance, SupplyDelivery, SupplyRequest, SupplyRequest::When, TestScript, TestScript::Contact, TestScript::Fixture, TestScript::Metadata, TestScript::Metadata::Capability, TestScript::Metadata::Link, TestScript::Setup, TestScript::Setup::Action, TestScript::Setup::Action::Assert, TestScript::Setup::Action::Operation, TestScript::Setup::Action::Operation::RequestHeader, TestScript::Teardown, TestScript::Teardown::Action, TestScript::Test, TestScript::Test::Action, TestScript::Variable, Timing, Timing::Repeat, ValueSet, ValueSet::CodeSystem, ValueSet::CodeSystem::Concept, ValueSet::CodeSystem::Concept::Designation, ValueSet::Compose, ValueSet::Compose::Include, ValueSet::Compose::Include::Concept, ValueSet::Compose::Include::Filter, ValueSet::Contact, ValueSet::Expansion, ValueSet::Expansion::Contains, ValueSet::Expansion::Parameter, VisionPrescription, VisionPrescription::Dispense
Defined in:
lib/fhir_dstu2_models/bootstrap/xml.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Deprecate

deprecate

Class Method Details

.from_xml(xml) ⇒ Object



71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# File 'lib/fhir_dstu2_models/bootstrap/xml.rb', line 71

def self.from_xml(xml)
  doc = Nokogiri::XML(xml)
  doc.root.add_namespace_definition('f', 'http://hl7.org/fhir')
  doc.root.add_namespace_definition('x', 'http://www.w3.org/1999/xhtml')
  hash = xml_node_to_hash(doc.root)

  resource = nil
  begin
    resource_type = doc.root.name
    klass = Module.const_get("FHIR::DSTU2::#{resource_type}")
    resource = klass.new(hash)
  rescue => e
    FHIR::DSTU2.logger.error("Failed to deserialize XML:\n#{e.message}\n#{e.backtrace}")
    FHIR::DSTU2.logger.debug("XML:\n#{xml}")
    resource = nil
  end
  resource
end

.valid?(xml) ⇒ Boolean

Returns:

  • (Boolean)


128
129
130
# File 'lib/fhir_dstu2_models/bootstrap/xml.rb', line 128

def self.valid?(xml)
  validate(xml).empty?
end

.validate(xml) ⇒ Object



133
134
135
136
137
138
# File 'lib/fhir_dstu2_models/bootstrap/xml.rb', line 133

def self.validate(xml)
  defns = File.expand_path '../definitions/schema', File.dirname(File.absolute_path(__FILE__))
  schema = File.join(defns, 'fhir-all.xsd')
  xsd = Nokogiri::XML::Schema(File.new(schema))
  xsd.validate(Nokogiri::XML(xml))
end

Instance Method Details

#to_xmlObject

This module includes methods to serialize or deserialize FHIR::DSTU2 resources to and from XML.



10
11
12
13
14
15
16
17
18
# File 'lib/fhir_dstu2_models/bootstrap/xml.rb', line 10

def to_xml
  hash = to_hash
  hash.delete('resourceType')
  doc = Nokogiri::XML::Document.new
  doc.encoding = 'utf-8'
  doc.root = hash_to_xml_node(resourceType, hash, doc)
  doc.root.default_namespace = 'http://hl7.org/fhir'
  doc.to_xml
end