Module: FHIR

Defined in:
lib/fhir.rb,
lib/bootstrap/xml.rb,
lib/fhir/metadata.rb,
lib/bootstrap/json.rb,
lib/fhir/types/Age.rb,
lib/bootstrap/field.rb,
lib/bootstrap/model.rb,
lib/fhir/types/Meta.rb,
lib/fhir/types/Count.rb,
lib/fhir/types/Money.rb,
lib/fhir/types/Range.rb,
lib/fhir/types/Ratio.rb,
lib/fhir/types/Coding.rb,
lib/fhir/types/Period.rb,
lib/fhir/types/Timing.rb,
lib/bootstrap/hashable.rb,
lib/bootstrap/template.rb,
lib/fhir/types/Address.rb,
lib/fhir/types/Element.rb,
lib/bootstrap/generator.rb,
lib/fhir/resources/Flag.rb,
lib/fhir/resources/Goal.rb,
lib/fhir/resources/List.rb,
lib/fhir/resources/Slot.rb,
lib/fhir/resources/Task.rb,
lib/fhir/types/Distance.rb,
lib/fhir/types/Duration.rb,
lib/fhir/types/Quantity.rb,
lib/bootstrap/preprocess.rb,
lib/fhir/resources/Basic.rb,
lib/fhir/resources/Claim.rb,
lib/fhir/resources/Group.rb,
lib/fhir/resources/Media.rb,
lib/fhir/types/Extension.rb,
lib/fhir/types/HumanName.rb,
lib/fhir/types/Narrative.rb,
lib/fhir/types/Reference.rb,
lib/fhir/types/Signature.rb,
lib/bootstrap/definitions.rb,
lib/fhir/resources/Binary.rb,
lib/fhir/resources/Bundle.rb,
lib/fhir/resources/Device.rb,
lib/fhir/resources/Person.rb,
lib/fhir/types/Annotation.rb,
lib/fhir/types/Attachment.rb,
lib/fhir/types/Identifier.rb,
lib/fhir/resources/Account.rb,
lib/fhir/resources/Consent.rb,
lib/fhir/resources/Library.rb,
lib/fhir/resources/Linkage.rb,
lib/fhir/resources/Measure.rb,
lib/fhir/resources/Patient.rb,
lib/fhir/types/Contributor.rb,
lib/fhir/types/SampledData.rb,
lib/fhir/resources/BodySite.rb,
lib/fhir/resources/CarePlan.rb,
lib/fhir/resources/CareTeam.rb,
lib/fhir/resources/Contract.rb,
lib/fhir/resources/Coverage.rb,
lib/fhir/resources/Endpoint.rb,
lib/fhir/resources/Location.rb,
lib/fhir/resources/Resource.rb,
lib/fhir/resources/Schedule.rb,
lib/fhir/resources/Sequence.rb,
lib/fhir/resources/Specimen.rb,
lib/fhir/resources/ValueSet.rb,
lib/fhir/types/ContactPoint.rb,
lib/fhir/types/UsageContext.rb,
lib/fhir/resources/Condition.rb,
lib/fhir/resources/Encounter.rb,
lib/fhir/resources/Procedure.rb,
lib/fhir/resources/Substance.rb,
lib/fhir/types/ContactDetail.rb,
lib/fhir/resources/AuditEvent.rb,
lib/fhir/resources/CodeSystem.rb,
lib/fhir/resources/ConceptMap.rb,
lib/fhir/resources/Medication.rb,
lib/fhir/resources/Parameters.rb,
lib/fhir/resources/Provenance.rb,
lib/fhir/resources/TestScript.rb,
lib/fhir/resources/Appointment.rb,
lib/fhir/resources/Composition.rb,
lib/fhir/resources/Conformance.rb,
lib/fhir/resources/DataElement.rb,
lib/fhir/resources/Observation.rb,
lib/fhir/types/BackboneElement.rb,
lib/fhir/types/CodeableConcept.rb,
lib/fhir/types/DataRequirement.rb,
lib/fhir/types/RelatedResource.rb,
lib/fhir/resources/DeviceMetric.rb,
lib/fhir/resources/ImagingStudy.rb,
lib/fhir/resources/Immunization.rb,
lib/fhir/resources/NamingSystem.rb,
lib/fhir/resources/Organization.rb,
lib/fhir/resources/Practitioner.rb,
lib/fhir/resources/StructureMap.rb,
lib/fhir/resources/Subscription.rb,
lib/fhir/resources/ClaimResponse.rb,
lib/fhir/resources/Communication.rb,
lib/fhir/resources/DetectedIssue.rb,
lib/fhir/resources/EpisodeOfCare.rb,
lib/fhir/resources/MeasureReport.rb,
lib/fhir/resources/MessageHeader.rb,
lib/fhir/resources/PaymentNotice.rb,
lib/fhir/resources/Questionnaire.rb,
lib/fhir/resources/RelatedPerson.rb,
lib/fhir/resources/SupplyRequest.rb,
lib/fhir/types/ElementDefinition.rb,
lib/fhir/types/TriggerDefinition.rb,
lib/fhir_ext/StructureDefinition.rb,
lib/fhir/resources/DomainResource.rb,
lib/fhir/resources/PlanDefinition.rb,
lib/fhir/resources/ProcessRequest.rb,
lib/fhir/resources/RiskAssessment.rb,
lib/fhir/resources/SupplyDelivery.rb,
lib/fhir/resources/DeviceComponent.rb,
lib/fhir/resources/ImagingManifest.rb,
lib/fhir/resources/MedicationOrder.rb,
lib/fhir/resources/ProcessResponse.rb,
lib/fhir/resources/ReferralRequest.rb,
lib/fhir/resources/SearchParameter.rb,
lib/fhir/types/ParameterDefinition.rb,
lib/fhir/resources/DeviceUseRequest.rb,
lib/fhir/resources/DiagnosticReport.rb,
lib/fhir/resources/DocumentManifest.rb,
lib/fhir/resources/ExpansionProfile.rb,
lib/fhir/resources/GuidanceResponse.rb,
lib/fhir/resources/NutritionRequest.rb,
lib/fhir/resources/OperationOutcome.rb,
lib/fhir/resources/PractitionerRole.rb,
lib/fhir/resources/ProcedureRequest.rb,
lib/fhir/resources/DiagnosticRequest.rb,
lib/fhir/resources/DocumentReference.rb,
lib/fhir/resources/EnrollmentRequest.rb,
lib/fhir/resources/HealthcareService.rb,
lib/fhir/resources/ActivityDefinition.rb,
lib/fhir/resources/AllergyIntolerance.rb,
lib/fhir/resources/ClinicalImpression.rb,
lib/fhir/resources/DeviceUseStatement.rb,
lib/fhir/resources/EligibilityRequest.rb,
lib/fhir/resources/EnrollmentResponse.rb,
lib/fhir/resources/MedicationDispense.rb,
lib/fhir/resources/VisionPrescription.rb,
lib/fhir/resources/AppointmentResponse.rb,
lib/fhir/resources/EligibilityResponse.rb,
lib/fhir/resources/FamilyMemberHistory.rb,
lib/fhir/resources/ImplementationGuide.rb,
lib/fhir/resources/MedicationStatement.rb,
lib/fhir/resources/OperationDefinition.rb,
lib/fhir/resources/StructureDefinition.rb,
lib/fhir/resources/CommunicationRequest.rb,
lib/fhir/resources/ExplanationOfBenefit.rb,
lib/fhir_ext/StructureDefinitionFinding.rb,
lib/fhir/resources/CompartmentDefinition.rb,
lib/fhir/resources/PaymentReconciliation.rb,
lib/fhir/resources/QuestionnaireResponse.rb,
lib/fhir/resources/MedicationAdministration.rb,
lib/fhir/resources/ImmunizationRecommendation.rb,
lib/fhir/resources/DecisionSupportServiceModule.rb

Defined Under Namespace

Modules: Boot, Hashable, Json, Xml Classes: Account, ActivityDefinition, Address, Age, AllergyIntolerance, Annotation, Appointment, AppointmentResponse, Attachment, AuditEvent, BackboneElement, Basic, Binary, BodySite, Bundle, CarePlan, CareTeam, Claim, ClaimResponse, ClinicalImpression, CodeSystem, CodeableConcept, Coding, Communication, CommunicationRequest, CompartmentDefinition, Composition, ConceptMap, Condition, Conformance, Consent, ContactDetail, ContactPoint, Contract, Contributor, Count, Coverage, DataElement, DataRequirement, DecisionSupportServiceModule, Definitions, DetectedIssue, Device, DeviceComponent, DeviceMetric, DeviceUseRequest, DeviceUseStatement, DiagnosticReport, DiagnosticRequest, Distance, DocumentManifest, DocumentReference, DomainResource, Duration, Element, ElementDefinition, EligibilityRequest, EligibilityResponse, Encounter, Endpoint, EnrollmentRequest, EnrollmentResponse, EpisodeOfCare, ExpansionProfile, ExplanationOfBenefit, Extension, FamilyMemberHistory, Field, Flag, Goal, Group, GuidanceResponse, HealthcareService, HumanName, Identifier, ImagingManifest, ImagingStudy, Immunization, ImmunizationRecommendation, ImplementationGuide, Library, Linkage, List, Location, Measure, MeasureReport, Media, Medication, MedicationAdministration, MedicationDispense, MedicationOrder, MedicationStatement, MessageHeader, Meta, Model, Money, NamingSystem, Narrative, NutritionRequest, Observation, OperationDefinition, OperationOutcome, Organization, ParameterDefinition, Parameters, Patient, PaymentNotice, PaymentReconciliation, Period, Person, PlanDefinition, Practitioner, PractitionerRole, Procedure, ProcedureRequest, ProcessRequest, ProcessResponse, Provenance, Quantity, Questionnaire, QuestionnaireResponse, Range, Ratio, Reference, ReferralRequest, RelatedPerson, RelatedResource, Resource, RiskAssessment, SampledData, Schedule, SearchParameter, Sequence, Signature, Slot, Specimen, StructureDefinition, StructureDefinitionFinding, StructureMap, Subscription, Substance, SupplyDelivery, SupplyRequest, Task, TestScript, Timing, TriggerDefinition, UsageContext, ValueSet, VisionPrescription

Constant Summary collapse

PRIMITIVES =
{
  'date' => {'type'=>'string', 'regex'=>'-?[0-9]{4}(-(0[1-9]|1[0-2])(-(0[0-9]|[1-2][0-9]|3[0-1]))?)?'},
  'dateTime' => {'type'=>'string', 'regex'=>'-?[0-9]{4}(-(0[1-9]|1[0-2])(-(0[0-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?'},
  'code' => {'type'=>'string', 'regex'=>'[^\\s]+([\\s]?[^\\s]+)*'},
  'string' => {'type'=>'string'},
  'integer' => {'type'=>'number', 'regex'=>'-?([0]|([1-9][0-9]*))'},
  'oid' => {'type'=>'string', 'regex'=>'urn:oid:(0|[1-9][0-9]*)(\\.(0|[1-9][0-9]*))*'},
  'uri' => {'type'=>'string'},
  'uuid' => {'type'=>'string', 'regex'=>'urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}'},
  'instant' => {'type'=>'string'},
  'boolean' => {'type'=>'true | false'},
  'base64Binary' => {'type'=>'string'},
  'unsignedInt' => {'type'=>'number', 'regex'=>'[0]|([1-9][0-9]*)'},
  'markdown' => {'type'=>'string'},
  'time' => {'type'=>'string', 'regex'=>'([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?'},
  'id' => {'type'=>'string', 'regex'=>'[A-Za-z0-9\\-\\.]{1,64}'},
  'positiveInt' => {'type'=>'number', 'regex'=>'[1-9][0-9]*'},
  'decimal' => {'type'=>'number', 'regex'=>'-?([0]|([1-9][0-9]*))(\\.[0-9]+)?'},
  'xhtml' => {'type'=>'string'}
}
TYPES =
["Reference", "Quantity", "Period", "Attachment", "Duration", "Count", "Range", "Annotation", "Money", "Identifier", "Coding", "Signature", "SampledData", "Ratio", "Distance", "Age", "CodeableConcept", "Extension", "BackboneElement", "Narrative", "Element", "Meta", "RelatedResource", "Address", "TriggerDefinition", "Contributor", "DataRequirement", "ContactDetail", "HumanName", "ContactPoint", "UsageContext", "Timing", "ElementDefinition", "ParameterDefinition"]
RESOURCES =
["CodeSystem", "ValueSet", "DomainResource", "Parameters", "Resource", "Account", "ActivityDefinition", "AllergyIntolerance", "Appointment", "AppointmentResponse", "AuditEvent", "Basic", "Binary", "BodySite", "Bundle", "CarePlan", "CareTeam", "Claim", "ClaimResponse", "ClinicalImpression", "Communication", "CommunicationRequest", "CompartmentDefinition", "Composition", "ConceptMap", "Condition", "Conformance", "Consent", "Contract", "Coverage", "DataElement", "DecisionSupportServiceModule", "DetectedIssue", "Device", "DeviceComponent", "DeviceMetric", "DeviceUseRequest", "DeviceUseStatement", "DiagnosticReport", "DiagnosticRequest", "DocumentManifest", "DocumentReference", "EligibilityRequest", "EligibilityResponse", "Encounter", "Endpoint", "EnrollmentRequest", "EnrollmentResponse", "EpisodeOfCare", "ExpansionProfile", "ExplanationOfBenefit", "FamilyMemberHistory", "Flag", "Goal", "Group", "GuidanceResponse", "HealthcareService", "ImagingManifest", "ImagingStudy", "Immunization", "ImmunizationRecommendation", "ImplementationGuide", "Library", "Linkage", "List", "Location", "Measure", "MeasureReport", "Media", "Medication", "MedicationAdministration", "MedicationDispense", "MedicationOrder", "MedicationStatement", "MessageHeader", "NamingSystem", "NutritionRequest", "Observation", "OperationDefinition", "OperationOutcome", "Organization", "Patient", "PaymentNotice", "PaymentReconciliation", "Person", "PlanDefinition", "Practitioner", "PractitionerRole", "Procedure", "ProcedureRequest", "ProcessRequest", "ProcessResponse", "Provenance", "Questionnaire", "QuestionnaireResponse", "ReferralRequest", "RelatedPerson", "RiskAssessment", "Schedule", "SearchParameter", "Sequence", "Slot", "Specimen", "StructureDefinition", "StructureMap", "Subscription", "Substance", "SupplyDelivery", "SupplyRequest", "Task", "TestScript", "VisionPrescription"]

Class Method Summary collapse

Class Method Details

.default_loggerObject



10
11
12
# File 'lib/fhir.rb', line 10

def self.default_logger
  @default_logger ||= Logger.new("fhir_models.log", 10, 1024000)
end

.from_contents(contents) ⇒ Object



14
15
16
17
18
19
20
21
# File 'lib/fhir.rb', line 14

def self.from_contents(contents)
  doc = Nokogiri::XML(contents)
  if doc.errors.empty?
    FHIR::Xml.from_xml(contents)
  else
    FHIR::Json.from_json(contents)
  end
end

.loggerObject



2
3
4
# File 'lib/fhir.rb', line 2

def self.logger
  @logger || default_logger
end

.logger=(logger) ⇒ Object



6
7
8
# File 'lib/fhir.rb', line 6

def self.logger=(logger)
  @logger = logger
end