fhir_models 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (152) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.travis.yml +0 -1
  4. data/Gemfile.lock +1 -1
  5. data/Rakefile +0 -1
  6. data/fhir_models.gemspec +1 -1
  7. data/lib/fhir/metadata.rb +25 -0
  8. data/lib/fhir/resources/Account.rb +54 -0
  9. data/lib/fhir/resources/AllergyIntolerance.rb +92 -0
  10. data/lib/fhir/resources/Appointment.rb +88 -0
  11. data/lib/fhir/resources/AppointmentResponse.rb +48 -0
  12. data/lib/fhir/resources/AuditEvent.rb +188 -0
  13. data/lib/fhir/resources/Basic.rb +42 -0
  14. data/lib/fhir/resources/Binary.rb +28 -0
  15. data/lib/fhir/resources/BodySite.rb +44 -0
  16. data/lib/fhir/resources/Bundle.rb +154 -0
  17. data/lib/fhir/resources/CarePlan.rb +184 -0
  18. data/lib/fhir/resources/CareTeam.rb +70 -0
  19. data/lib/fhir/resources/Claim.rb +490 -0
  20. data/lib/fhir/resources/ClaimResponse.rb +421 -0
  21. data/lib/fhir/resources/ClinicalImpression.rb +131 -0
  22. data/lib/fhir/resources/CodeSystem.rb +225 -0
  23. data/lib/fhir/resources/Communication.rb +83 -0
  24. data/lib/fhir/resources/CommunicationRequest.rb +90 -0
  25. data/lib/fhir/resources/CompartmentDefinition.rb +98 -0
  26. data/lib/fhir/resources/Composition.rb +136 -0
  27. data/lib/fhir/resources/ConceptMap.rb +168 -0
  28. data/lib/fhir/resources/Condition.rb +126 -0
  29. data/lib/fhir/resources/Conformance.rb +442 -0
  30. data/lib/fhir/resources/Contract.rb +320 -0
  31. data/lib/fhir/resources/Coverage.rb +77 -0
  32. data/lib/fhir/resources/DataElement.rb +104 -0
  33. data/lib/fhir/resources/DecisionSupportRule.rb +42 -0
  34. data/lib/fhir/resources/DecisionSupportServiceModule.rb +40 -0
  35. data/lib/fhir/resources/DetectedIssue.rb +74 -0
  36. data/lib/fhir/resources/Device.rb +64 -0
  37. data/lib/fhir/resources/DeviceComponent.rb +74 -0
  38. data/lib/fhir/resources/DeviceMetric.rb +74 -0
  39. data/lib/fhir/resources/DeviceUseRequest.rb +68 -0
  40. data/lib/fhir/resources/DeviceUseStatement.rb +60 -0
  41. data/lib/fhir/resources/DiagnosticOrder.rb +106 -0
  42. data/lib/fhir/resources/DiagnosticReport.rb +91 -0
  43. data/lib/fhir/resources/DocumentManifest.rb +99 -0
  44. data/lib/fhir/resources/DocumentReference.rb +156 -0
  45. data/lib/fhir/resources/DomainResource.rb +32 -0
  46. data/lib/fhir/resources/EligibilityRequest.rb +90 -0
  47. data/lib/fhir/resources/EligibilityResponse.rb +152 -0
  48. data/lib/fhir/resources/Encounter.rb +172 -0
  49. data/lib/fhir/resources/EnrollmentRequest.rb +52 -0
  50. data/lib/fhir/resources/EnrollmentResponse.rb +52 -0
  51. data/lib/fhir/resources/EpisodeOfCare.rb +74 -0
  52. data/lib/fhir/resources/ExpansionProfile.rb +284 -0
  53. data/lib/fhir/resources/ExplanationOfBenefit.rb +764 -0
  54. data/lib/fhir/resources/FamilyMemberHistory.rb +110 -0
  55. data/lib/fhir/resources/Flag.rb +48 -0
  56. data/lib/fhir/resources/Goal.rb +91 -0
  57. data/lib/fhir/resources/Group.rb +105 -0
  58. data/lib/fhir/resources/GuidanceResponse.rb +139 -0
  59. data/lib/fhir/resources/HealthcareService.rb +122 -0
  60. data/lib/fhir/resources/ImagingExcerpt.rb +210 -0
  61. data/lib/fhir/resources/ImagingObjectSelection.rb +136 -0
  62. data/lib/fhir/resources/ImagingStudy.rb +130 -0
  63. data/lib/fhir/resources/Immunization.rb +148 -0
  64. data/lib/fhir/resources/ImmunizationRecommendation.rb +114 -0
  65. data/lib/fhir/resources/ImplementationGuide.rb +211 -0
  66. data/lib/fhir/resources/Library.rb +145 -0
  67. data/lib/fhir/resources/Linkage.rb +56 -0
  68. data/lib/fhir/resources/List.rb +82 -0
  69. data/lib/fhir/resources/Location.rb +78 -0
  70. data/lib/fhir/resources/Measure.rb +160 -0
  71. data/lib/fhir/resources/MeasureReport.rb +204 -0
  72. data/lib/fhir/resources/Media.rb +56 -0
  73. data/lib/fhir/resources/Medication.rb +154 -0
  74. data/lib/fhir/resources/MedicationAdministration.rb +104 -0
  75. data/lib/fhir/resources/MedicationDispense.rb +141 -0
  76. data/lib/fhir/resources/MedicationOrder.rb +172 -0
  77. data/lib/fhir/resources/MedicationStatement.rb +117 -0
  78. data/lib/fhir/resources/MessageHeader.rb +124 -0
  79. data/lib/fhir/resources/ModuleDefinition.rb +249 -0
  80. data/lib/fhir/resources/NamingSystem.rb +102 -0
  81. data/lib/fhir/resources/NutritionOrder.rb +211 -0
  82. data/lib/fhir/resources/Observation.rb +187 -0
  83. data/lib/fhir/resources/OperationDefinition.rb +153 -0
  84. data/lib/fhir/resources/OperationOutcome.rb +62 -0
  85. data/lib/fhir/resources/Order.rb +73 -0
  86. data/lib/fhir/resources/OrderResponse.rb +46 -0
  87. data/lib/fhir/resources/OrderSet.rb +38 -0
  88. data/lib/fhir/resources/Organization.rb +72 -0
  89. data/lib/fhir/resources/Parameters.rb +117 -0
  90. data/lib/fhir/resources/Patient.rb +166 -0
  91. data/lib/fhir/resources/PaymentNotice.rb +71 -0
  92. data/lib/fhir/resources/PaymentReconciliation.rb +140 -0
  93. data/lib/fhir/resources/Person.rb +72 -0
  94. data/lib/fhir/resources/Practitioner.rb +110 -0
  95. data/lib/fhir/resources/PractitionerRole.rb +102 -0
  96. data/lib/fhir/resources/Procedure.rb +122 -0
  97. data/lib/fhir/resources/ProcedureRequest.rb +73 -0
  98. data/lib/fhir/resources/ProcessRequest.rb +99 -0
  99. data/lib/fhir/resources/ProcessResponse.rb +92 -0
  100. data/lib/fhir/resources/Protocol.rb +242 -0
  101. data/lib/fhir/resources/Provenance.rb +122 -0
  102. data/lib/fhir/resources/Questionnaire.rb +205 -0
  103. data/lib/fhir/resources/QuestionnaireResponse.rb +123 -0
  104. data/lib/fhir/resources/ReferralRequest.rb +68 -0
  105. data/lib/fhir/resources/RelatedPerson.rb +52 -0
  106. data/lib/fhir/resources/Resource.rb +24 -0
  107. data/lib/fhir/resources/RiskAssessment.rb +88 -0
  108. data/lib/fhir/resources/Schedule.rb +46 -0
  109. data/lib/fhir/resources/SearchParameter.rb +86 -0
  110. data/lib/fhir/resources/Sequence.rb +238 -0
  111. data/lib/fhir/resources/Slot.rb +54 -0
  112. data/lib/fhir/resources/Specimen.rb +140 -0
  113. data/lib/fhir/resources/StructureDefinition.rb +164 -0
  114. data/lib/fhir/resources/StructureMap.rb +297 -0
  115. data/lib/fhir/resources/Subscription.rb +72 -0
  116. data/lib/fhir/resources/Substance.rb +86 -0
  117. data/lib/fhir/resources/SupplyDelivery.rb +54 -0
  118. data/lib/fhir/resources/SupplyRequest.rb +77 -0
  119. data/lib/fhir/resources/Task.rb +240 -0
  120. data/lib/fhir/resources/TestScript.rb +692 -0
  121. data/lib/fhir/resources/ValueSet.rb +289 -0
  122. data/lib/fhir/resources/VisionPrescription.rb +97 -0
  123. data/lib/fhir/types/ActionDefinition.rb +109 -0
  124. data/lib/fhir/types/Address.rb +36 -0
  125. data/lib/fhir/types/Annotation.rb +27 -0
  126. data/lib/fhir/types/Attachment.rb +32 -0
  127. data/lib/fhir/types/BackboneElement.rb +18 -0
  128. data/lib/fhir/types/CodeableConcept.rb +20 -0
  129. data/lib/fhir/types/Coding.rb +26 -0
  130. data/lib/fhir/types/ContactPoint.rb +26 -0
  131. data/lib/fhir/types/DataRequirement.rb +78 -0
  132. data/lib/fhir/types/Element.rb +16 -0
  133. data/lib/fhir/types/ElementDefinition.rb +605 -0
  134. data/lib/fhir/types/Extension.rb +87 -0
  135. data/lib/fhir/types/HumanName.rb +30 -0
  136. data/lib/fhir/types/Identifier.rb +28 -0
  137. data/lib/fhir/types/Meta.rb +26 -0
  138. data/lib/fhir/types/ModuleMetadata.rb +152 -0
  139. data/lib/fhir/types/Narrative.rb +20 -0
  140. data/lib/fhir/types/ParameterDefinition.rb +30 -0
  141. data/lib/fhir/types/Period.rb +20 -0
  142. data/lib/fhir/types/Quantity.rb +26 -0
  143. data/lib/fhir/types/Range.rb +20 -0
  144. data/lib/fhir/types/Ratio.rb +20 -0
  145. data/lib/fhir/types/Reference.rb +20 -0
  146. data/lib/fhir/types/SampledData.rb +30 -0
  147. data/lib/fhir/types/Signature.rb +31 -0
  148. data/lib/fhir/types/Timing.rb +69 -0
  149. data/lib/fhir/types/TriggerDefinition.rb +33 -0
  150. data/lib/fhir_models.rb +2 -2
  151. data/lib/tasks/tasks.rake +29 -0
  152. metadata +145 -2
@@ -0,0 +1,91 @@
1
+ module FHIR
2
+ class Goal < FHIR::Model
3
+ include FHIR::Hashable
4
+ include FHIR::Json
5
+ include FHIR::Xml
6
+
7
+ MULTIPLE_TYPES = {
8
+ 'start' => ['date', 'CodeableConcept'],
9
+ 'target' => ['date', 'Quantity']
10
+ }
11
+ SEARCH_PARAMS = ["category", "identifier", "patient", "status", "subject", "targetdate"]
12
+ METADATA = {
13
+ 'id' => {'type'=>'id', 'path'=>'Goal.id', 'min'=>0, 'max'=>1},
14
+ 'meta' => {'type'=>'Meta', 'path'=>'Goal.meta', 'min'=>0, 'max'=>1},
15
+ 'implicitRules' => {'type'=>'uri', 'path'=>'Goal.implicitRules', 'min'=>0, 'max'=>1},
16
+ 'language' => {'type'=>'code', 'path'=>'Goal.language', 'min'=>0, 'max'=>1, 'binding'=>{'strength'=>'required', 'uri'=>'http://tools.ietf.org/html/bcp47'}},
17
+ 'text' => {'type'=>'Narrative', 'path'=>'Goal.text', 'min'=>0, 'max'=>1},
18
+ 'contained' => {'type'=>'Resource', 'path'=>'Goal.contained', 'min'=>0, 'max'=>Float::INFINITY},
19
+ 'extension' => {'type'=>'Extension', 'path'=>'Goal.extension', 'min'=>0, 'max'=>Float::INFINITY},
20
+ 'modifierExtension' => {'type'=>'Extension', 'path'=>'Goal.modifierExtension', 'min'=>0, 'max'=>Float::INFINITY},
21
+ 'identifier' => {'type'=>'Identifier', 'path'=>'Goal.identifier', 'min'=>0, 'max'=>Float::INFINITY},
22
+ 'subject' => {'type_profiles'=>['http://hl7.org/fhir/StructureDefinition/Patient', 'http://hl7.org/fhir/StructureDefinition/Group', 'http://hl7.org/fhir/StructureDefinition/Organization'], 'type'=>'Reference', 'path'=>'Goal.subject', 'min'=>0, 'max'=>1},
23
+ 'startDate' => {'type'=>'date', 'path'=>'Goal.start[x]', 'min'=>0, 'max'=>1},
24
+ 'startCodeableConcept' => {'valid_codes'=>{'http://snomed.info/sct'=>['32485007', '308283009', '442137000', '386216000']}, 'type'=>'CodeableConcept', 'path'=>'Goal.start[x]', 'min'=>0, 'max'=>1, 'binding'=>{'strength'=>'example', 'uri'=>'http://hl7.org/fhir/ValueSet/goal-start-event'}},
25
+ 'targetDate' => {'type'=>'date', 'path'=>'Goal.target[x]', 'min'=>0, 'max'=>1},
26
+ 'targetQuantity' => {'type'=>'Quantity', 'path'=>'Goal.target[x]', 'min'=>0, 'max'=>1},
27
+ 'category' => {'valid_codes'=>{'http://hl7.org/fhir/goal-category'=>['dietary', 'safety', 'behavioral', 'nursing', 'physiotherapy']}, 'type'=>'CodeableConcept', 'path'=>'Goal.category', 'min'=>0, 'max'=>Float::INFINITY, 'binding'=>{'strength'=>'example', 'uri'=>'http://hl7.org/fhir/ValueSet/goal-category'}},
28
+ 'description' => {'type'=>'string', 'path'=>'Goal.description', 'min'=>1, 'max'=>1},
29
+ 'status' => {'valid_codes'=>{'http://hl7.org/fhir/goal-status'=>['proposed', 'planned', 'accepted', 'rejected', 'in-progress', 'achieved', 'sustaining', 'on-hold', 'cancelled']}, 'type'=>'code', 'path'=>'Goal.status', 'min'=>1, 'max'=>1, 'binding'=>{'strength'=>'required', 'uri'=>'http://hl7.org/fhir/ValueSet/goal-status'}},
30
+ 'statusDate' => {'type'=>'date', 'path'=>'Goal.statusDate', 'min'=>0, 'max'=>1},
31
+ 'statusReason' => {'valid_codes'=>{'http://hl7.org/fhir/goal-status-reason'=>['surgery', 'life-event', 'replaced', 'patient-request']}, 'type'=>'CodeableConcept', 'path'=>'Goal.statusReason', 'min'=>0, 'max'=>1, 'binding'=>{'strength'=>'example', 'uri'=>'http://hl7.org/fhir/ValueSet/goal-status-reason'}},
32
+ 'author' => {'type_profiles'=>['http://hl7.org/fhir/StructureDefinition/Patient', 'http://hl7.org/fhir/StructureDefinition/Practitioner', 'http://hl7.org/fhir/StructureDefinition/RelatedPerson'], 'type'=>'Reference', 'path'=>'Goal.author', 'min'=>0, 'max'=>1},
33
+ 'priority' => {'valid_codes'=>{'http://hl7.org/fhir/goal-priority'=>['high', 'medium', 'low']}, 'type'=>'CodeableConcept', 'path'=>'Goal.priority', 'min'=>0, 'max'=>1, 'binding'=>{'strength'=>'preferred', 'uri'=>'http://hl7.org/fhir/ValueSet/goal-priority'}},
34
+ 'addresses' => {'type_profiles'=>['http://hl7.org/fhir/StructureDefinition/Condition', 'http://hl7.org/fhir/StructureDefinition/Observation', 'http://hl7.org/fhir/StructureDefinition/MedicationStatement', 'http://hl7.org/fhir/StructureDefinition/NutritionOrder', 'http://hl7.org/fhir/StructureDefinition/ProcedureRequest', 'http://hl7.org/fhir/StructureDefinition/RiskAssessment'], 'type'=>'Reference', 'path'=>'Goal.addresses', 'min'=>0, 'max'=>Float::INFINITY},
35
+ 'note' => {'type'=>'Annotation', 'path'=>'Goal.note', 'min'=>0, 'max'=>Float::INFINITY},
36
+ 'outcome' => {'type'=>'Goal::Outcome', 'path'=>'Goal.outcome', 'min'=>0, 'max'=>Float::INFINITY}
37
+ }
38
+
39
+ class Outcome < FHIR::Model
40
+ include FHIR::Hashable
41
+ include FHIR::Json
42
+ include FHIR::Xml
43
+
44
+ MULTIPLE_TYPES = {
45
+ 'result' => ['CodeableConcept', 'Reference']
46
+ }
47
+ METADATA = {
48
+ 'id' => {'type'=>'id', 'path'=>'Outcome.id', 'min'=>0, 'max'=>1},
49
+ 'extension' => {'type'=>'Extension', 'path'=>'Outcome.extension', 'min'=>0, 'max'=>Float::INFINITY},
50
+ 'modifierExtension' => {'type'=>'Extension', 'path'=>'Outcome.modifierExtension', 'min'=>0, 'max'=>Float::INFINITY},
51
+ 'resultCodeableConcept' => {'type'=>'CodeableConcept', 'path'=>'Outcome.result[x]', 'min'=>0, 'max'=>1, 'binding'=>{'strength'=>'example', 'uri'=>nil}},
52
+ 'resultReference' => {'type_profiles'=>['http://hl7.org/fhir/StructureDefinition/Observation'], 'type'=>'Reference', 'path'=>'Outcome.result[x]', 'min'=>0, 'max'=>1}
53
+ }
54
+
55
+ attr_accessor :id # 0-1 id
56
+ attr_accessor :extension # 0-* [ Extension ]
57
+ attr_accessor :modifierExtension # 0-* [ Extension ]
58
+ attr_accessor :resultCodeableConcept # 0-1 CodeableConcept
59
+ attr_accessor :resultReference # 0-1 Reference(Observation)
60
+ end
61
+
62
+ attr_accessor :id # 0-1 id
63
+ attr_accessor :meta # 0-1 Meta
64
+ attr_accessor :implicitRules # 0-1 uri
65
+ attr_accessor :language # 0-1 code
66
+ attr_accessor :text # 0-1 Narrative
67
+ attr_accessor :contained # 0-* [ Resource ]
68
+ attr_accessor :extension # 0-* [ Extension ]
69
+ attr_accessor :modifierExtension # 0-* [ Extension ]
70
+ attr_accessor :identifier # 0-* [ Identifier ]
71
+ attr_accessor :subject # 0-1 Reference(Patient|Group|Organization)
72
+ attr_accessor :startDate # 0-1 date
73
+ attr_accessor :startCodeableConcept # 0-1 CodeableConcept
74
+ attr_accessor :targetDate # 0-1 date
75
+ attr_accessor :targetQuantity # 0-1 Quantity
76
+ attr_accessor :category # 0-* [ CodeableConcept ]
77
+ attr_accessor :description # 1-1 string
78
+ attr_accessor :status # 1-1 code
79
+ attr_accessor :statusDate # 0-1 date
80
+ attr_accessor :statusReason # 0-1 CodeableConcept
81
+ attr_accessor :author # 0-1 Reference(Patient|Practitioner|RelatedPerson)
82
+ attr_accessor :priority # 0-1 CodeableConcept
83
+ attr_accessor :addresses # 0-* [ Reference(Condition|Observation|MedicationStatement|NutritionOrder|ProcedureRequest|RiskAssessment) ]
84
+ attr_accessor :note # 0-* [ Annotation ]
85
+ attr_accessor :outcome # 0-* [ Goal::Outcome ]
86
+
87
+ def resourceType
88
+ 'Goal'
89
+ end
90
+ end
91
+ end
@@ -0,0 +1,105 @@
1
+ module FHIR
2
+ class Group < FHIR::Model
3
+ include FHIR::Hashable
4
+ include FHIR::Json
5
+ include FHIR::Xml
6
+
7
+ SEARCH_PARAMS = ["actual", "characteristic", "code", "exclude", "identifier", "member", "type", "value"]
8
+ METADATA = {
9
+ 'id' => {'type'=>'id', 'path'=>'Group.id', 'min'=>0, 'max'=>1},
10
+ 'meta' => {'type'=>'Meta', 'path'=>'Group.meta', 'min'=>0, 'max'=>1},
11
+ 'implicitRules' => {'type'=>'uri', 'path'=>'Group.implicitRules', 'min'=>0, 'max'=>1},
12
+ 'language' => {'type'=>'code', 'path'=>'Group.language', 'min'=>0, 'max'=>1, 'binding'=>{'strength'=>'required', 'uri'=>'http://tools.ietf.org/html/bcp47'}},
13
+ 'text' => {'type'=>'Narrative', 'path'=>'Group.text', 'min'=>0, 'max'=>1},
14
+ 'contained' => {'type'=>'Resource', 'path'=>'Group.contained', 'min'=>0, 'max'=>Float::INFINITY},
15
+ 'extension' => {'type'=>'Extension', 'path'=>'Group.extension', 'min'=>0, 'max'=>Float::INFINITY},
16
+ 'modifierExtension' => {'type'=>'Extension', 'path'=>'Group.modifierExtension', 'min'=>0, 'max'=>Float::INFINITY},
17
+ 'identifier' => {'type'=>'Identifier', 'path'=>'Group.identifier', 'min'=>0, 'max'=>Float::INFINITY},
18
+ 'type' => {'valid_codes'=>{'http://hl7.org/fhir/group-type'=>['person', 'animal', 'practitioner', 'device', 'medication', 'substance']}, 'type'=>'code', 'path'=>'Group.type', 'min'=>1, 'max'=>1, 'binding'=>{'strength'=>'required', 'uri'=>'http://hl7.org/fhir/ValueSet/group-type'}},
19
+ 'actual' => {'type'=>'boolean', 'path'=>'Group.actual', 'min'=>1, 'max'=>1},
20
+ 'active' => {'type'=>'boolean', 'path'=>'Group.active', 'min'=>0, 'max'=>1},
21
+ 'code' => {'type'=>'CodeableConcept', 'path'=>'Group.code', 'min'=>0, 'max'=>1, 'binding'=>{'strength'=>'example', 'uri'=>nil}},
22
+ 'name' => {'type'=>'string', 'path'=>'Group.name', 'min'=>0, 'max'=>1},
23
+ 'quantity' => {'type'=>'unsignedInt', 'path'=>'Group.quantity', 'min'=>0, 'max'=>1},
24
+ 'characteristic' => {'type'=>'Group::Characteristic', 'path'=>'Group.characteristic', 'min'=>0, 'max'=>Float::INFINITY},
25
+ 'member' => {'type'=>'Group::Member', 'path'=>'Group.member', 'min'=>0, 'max'=>Float::INFINITY}
26
+ }
27
+
28
+ class Characteristic < FHIR::Model
29
+ include FHIR::Hashable
30
+ include FHIR::Json
31
+ include FHIR::Xml
32
+
33
+ MULTIPLE_TYPES = {
34
+ 'value' => ['CodeableConcept', 'boolean', 'Quantity', 'Range']
35
+ }
36
+ METADATA = {
37
+ 'id' => {'type'=>'id', 'path'=>'Characteristic.id', 'min'=>0, 'max'=>1},
38
+ 'extension' => {'type'=>'Extension', 'path'=>'Characteristic.extension', 'min'=>0, 'max'=>Float::INFINITY},
39
+ 'modifierExtension' => {'type'=>'Extension', 'path'=>'Characteristic.modifierExtension', 'min'=>0, 'max'=>Float::INFINITY},
40
+ 'code' => {'type'=>'CodeableConcept', 'path'=>'Characteristic.code', 'min'=>1, 'max'=>1, 'binding'=>{'strength'=>'example', 'uri'=>nil}},
41
+ 'valueCodeableConcept' => {'type'=>'CodeableConcept', 'path'=>'Characteristic.value[x]', 'min'=>1, 'max'=>1, 'binding'=>{'strength'=>'example', 'uri'=>nil}},
42
+ 'valueBoolean' => {'type'=>'boolean', 'path'=>'Characteristic.value[x]', 'min'=>1, 'max'=>1},
43
+ 'valueQuantity' => {'type'=>'Quantity', 'path'=>'Characteristic.value[x]', 'min'=>1, 'max'=>1},
44
+ 'valueRange' => {'type'=>'Range', 'path'=>'Characteristic.value[x]', 'min'=>1, 'max'=>1},
45
+ 'exclude' => {'type'=>'boolean', 'path'=>'Characteristic.exclude', 'min'=>1, 'max'=>1},
46
+ 'period' => {'type'=>'Period', 'path'=>'Characteristic.period', 'min'=>0, 'max'=>1}
47
+ }
48
+
49
+ attr_accessor :id # 0-1 id
50
+ attr_accessor :extension # 0-* [ Extension ]
51
+ attr_accessor :modifierExtension # 0-* [ Extension ]
52
+ attr_accessor :code # 1-1 CodeableConcept
53
+ attr_accessor :valueCodeableConcept # 1-1 CodeableConcept
54
+ attr_accessor :valueBoolean # 1-1 boolean
55
+ attr_accessor :valueQuantity # 1-1 Quantity
56
+ attr_accessor :valueRange # 1-1 Range
57
+ attr_accessor :exclude # 1-1 boolean
58
+ attr_accessor :period # 0-1 Period
59
+ end
60
+
61
+ class Member < FHIR::Model
62
+ include FHIR::Hashable
63
+ include FHIR::Json
64
+ include FHIR::Xml
65
+
66
+ METADATA = {
67
+ 'id' => {'type'=>'id', 'path'=>'Member.id', 'min'=>0, 'max'=>1},
68
+ 'extension' => {'type'=>'Extension', 'path'=>'Member.extension', 'min'=>0, 'max'=>Float::INFINITY},
69
+ 'modifierExtension' => {'type'=>'Extension', 'path'=>'Member.modifierExtension', 'min'=>0, 'max'=>Float::INFINITY},
70
+ 'entity' => {'type_profiles'=>['http://hl7.org/fhir/StructureDefinition/Patient', 'http://hl7.org/fhir/StructureDefinition/Practitioner', 'http://hl7.org/fhir/StructureDefinition/Device', 'http://hl7.org/fhir/StructureDefinition/Medication', 'http://hl7.org/fhir/StructureDefinition/Substance'], 'type'=>'Reference', 'path'=>'Member.entity', 'min'=>1, 'max'=>1},
71
+ 'period' => {'type'=>'Period', 'path'=>'Member.period', 'min'=>0, 'max'=>1},
72
+ 'inactive' => {'type'=>'boolean', 'path'=>'Member.inactive', 'min'=>0, 'max'=>1}
73
+ }
74
+
75
+ attr_accessor :id # 0-1 id
76
+ attr_accessor :extension # 0-* [ Extension ]
77
+ attr_accessor :modifierExtension # 0-* [ Extension ]
78
+ attr_accessor :entity # 1-1 Reference(Patient|Practitioner|Device|Medication|Substance)
79
+ attr_accessor :period # 0-1 Period
80
+ attr_accessor :inactive # 0-1 boolean
81
+ end
82
+
83
+ attr_accessor :id # 0-1 id
84
+ attr_accessor :meta # 0-1 Meta
85
+ attr_accessor :implicitRules # 0-1 uri
86
+ attr_accessor :language # 0-1 code
87
+ attr_accessor :text # 0-1 Narrative
88
+ attr_accessor :contained # 0-* [ Resource ]
89
+ attr_accessor :extension # 0-* [ Extension ]
90
+ attr_accessor :modifierExtension # 0-* [ Extension ]
91
+ attr_accessor :identifier # 0-* [ Identifier ]
92
+ attr_accessor :type # 1-1 code
93
+ attr_accessor :actual # 1-1 boolean
94
+ attr_accessor :active # 0-1 boolean
95
+ attr_accessor :code # 0-1 CodeableConcept
96
+ attr_accessor :name # 0-1 string
97
+ attr_accessor :quantity # 0-1 unsignedInt
98
+ attr_accessor :characteristic # 0-* [ Group::Characteristic ]
99
+ attr_accessor :member # 0-* [ Group::Member ]
100
+
101
+ def resourceType
102
+ 'Group'
103
+ end
104
+ end
105
+ end
@@ -0,0 +1,139 @@
1
+ module FHIR
2
+ class GuidanceResponse < FHIR::Model
3
+ include FHIR::Hashable
4
+ include FHIR::Json
5
+ include FHIR::Xml
6
+
7
+ SEARCH_PARAMS = []
8
+ METADATA = {
9
+ 'id' => {'type'=>'id', 'path'=>'GuidanceResponse.id', 'min'=>0, 'max'=>1},
10
+ 'meta' => {'type'=>'Meta', 'path'=>'GuidanceResponse.meta', 'min'=>0, 'max'=>1},
11
+ 'implicitRules' => {'type'=>'uri', 'path'=>'GuidanceResponse.implicitRules', 'min'=>0, 'max'=>1},
12
+ 'language' => {'type'=>'code', 'path'=>'GuidanceResponse.language', 'min'=>0, 'max'=>1, 'binding'=>{'strength'=>'required', 'uri'=>'http://tools.ietf.org/html/bcp47'}},
13
+ 'text' => {'type'=>'Narrative', 'path'=>'GuidanceResponse.text', 'min'=>0, 'max'=>1},
14
+ 'contained' => {'type'=>'Resource', 'path'=>'GuidanceResponse.contained', 'min'=>0, 'max'=>Float::INFINITY},
15
+ 'extension' => {'type'=>'Extension', 'path'=>'GuidanceResponse.extension', 'min'=>0, 'max'=>Float::INFINITY},
16
+ 'modifierExtension' => {'type'=>'Extension', 'path'=>'GuidanceResponse.modifierExtension', 'min'=>0, 'max'=>Float::INFINITY},
17
+ 'requestId' => {'type'=>'string', 'path'=>'GuidanceResponse.requestId', 'min'=>0, 'max'=>1},
18
+ 'module' => {'type_profiles'=>['http://hl7.org/fhir/StructureDefinition/DecisionSupportServiceModule', 'http://hl7.org/fhir/StructureDefinition/DecisionSupportRule'], 'type'=>'Reference', 'path'=>'GuidanceResponse.module', 'min'=>1, 'max'=>1},
19
+ 'status' => {'valid_codes'=>{'http://hl7.org/fhir/guidance-response-status'=>['success', 'data-requested', 'data-required', 'in-progress', 'failure']}, 'type'=>'code', 'path'=>'GuidanceResponse.status', 'min'=>1, 'max'=>1, 'binding'=>{'strength'=>'required', 'uri'=>'http://hl7.org/fhir/ValueSet/guidance-response-status'}},
20
+ 'evaluationMessage' => {'type_profiles'=>['http://hl7.org/fhir/StructureDefinition/OperationOutcome'], 'type'=>'Reference', 'path'=>'GuidanceResponse.evaluationMessage', 'min'=>0, 'max'=>Float::INFINITY},
21
+ 'outputParameters' => {'type_profiles'=>['http://hl7.org/fhir/StructureDefinition/Parameters'], 'type'=>'Reference', 'path'=>'GuidanceResponse.outputParameters', 'min'=>0, 'max'=>1},
22
+ 'action' => {'type'=>'GuidanceResponse::Action', 'path'=>'GuidanceResponse.action', 'min'=>0, 'max'=>Float::INFINITY},
23
+ 'dataRequirement' => {'type'=>'DataRequirement', 'path'=>'GuidanceResponse.dataRequirement', 'min'=>0, 'max'=>Float::INFINITY}
24
+ }
25
+
26
+ class Action < FHIR::Model
27
+ include FHIR::Hashable
28
+ include FHIR::Json
29
+ include FHIR::Xml
30
+
31
+ METADATA = {
32
+ 'id' => {'type'=>'id', 'path'=>'Action.id', 'min'=>0, 'max'=>1},
33
+ 'extension' => {'type'=>'Extension', 'path'=>'Action.extension', 'min'=>0, 'max'=>Float::INFINITY},
34
+ 'modifierExtension' => {'type'=>'Extension', 'path'=>'Action.modifierExtension', 'min'=>0, 'max'=>Float::INFINITY},
35
+ 'actionIdentifier' => {'type'=>'Identifier', 'path'=>'Action.actionIdentifier', 'min'=>0, 'max'=>1},
36
+ 'label' => {'type'=>'string', 'path'=>'Action.label', 'min'=>0, 'max'=>1},
37
+ 'title' => {'type'=>'string', 'path'=>'Action.title', 'min'=>0, 'max'=>1},
38
+ 'description' => {'type'=>'string', 'path'=>'Action.description', 'min'=>0, 'max'=>1},
39
+ 'textEquivalent' => {'type'=>'string', 'path'=>'Action.textEquivalent', 'min'=>0, 'max'=>1},
40
+ 'concept' => {'type'=>'CodeableConcept', 'path'=>'Action.concept', 'min'=>0, 'max'=>Float::INFINITY},
41
+ 'supportingEvidence' => {'type'=>'Attachment', 'path'=>'Action.supportingEvidence', 'min'=>0, 'max'=>Float::INFINITY},
42
+ 'relatedAction' => {'type'=>'GuidanceResponse::Action::Relatedaction', 'path'=>'Action.relatedAction', 'min'=>0, 'max'=>1},
43
+ 'documentation' => {'type'=>'Attachment', 'path'=>'Action.documentation', 'min'=>0, 'max'=>Float::INFINITY},
44
+ 'participant' => {'type_profiles'=>['http://hl7.org/fhir/StructureDefinition/Patient', 'http://hl7.org/fhir/StructureDefinition/Person', 'http://hl7.org/fhir/StructureDefinition/Practitioner', 'http://hl7.org/fhir/StructureDefinition/RelatedPerson'], 'type'=>'Reference', 'path'=>'Action.participant', 'min'=>0, 'max'=>Float::INFINITY},
45
+ 'type' => {'valid_codes'=>{'http://hl7.org/fhir/action-type'=>['create', 'update', 'remove', 'fire-event']}, 'type'=>'code', 'path'=>'Action.type', 'min'=>0, 'max'=>1, 'binding'=>{'strength'=>'required', 'uri'=>'http://hl7.org/fhir/ValueSet/action-type'}},
46
+ 'behavior' => {'type'=>'GuidanceResponse::Action::Behavior', 'path'=>'Action.behavior', 'min'=>0, 'max'=>Float::INFINITY},
47
+ 'resource' => {'type_profiles'=>['http://hl7.org/fhir/StructureDefinition/Resource'], 'type'=>'Reference', 'path'=>'Action.resource', 'min'=>0, 'max'=>1},
48
+ 'action' => {'type'=>'GuidanceResponse::Action', 'path'=>'Action.action', 'min'=>0, 'max'=>Float::INFINITY}
49
+ }
50
+
51
+ class Relatedaction < FHIR::Model
52
+ include FHIR::Hashable
53
+ include FHIR::Json
54
+ include FHIR::Xml
55
+
56
+ MULTIPLE_TYPES = {
57
+ 'offset' => ['Quantity', 'Range']
58
+ }
59
+ METADATA = {
60
+ 'id' => {'type'=>'id', 'path'=>'Relatedaction.id', 'min'=>0, 'max'=>1},
61
+ 'extension' => {'type'=>'Extension', 'path'=>'Relatedaction.extension', 'min'=>0, 'max'=>Float::INFINITY},
62
+ 'modifierExtension' => {'type'=>'Extension', 'path'=>'Relatedaction.modifierExtension', 'min'=>0, 'max'=>Float::INFINITY},
63
+ 'actionIdentifier' => {'type'=>'Identifier', 'path'=>'Relatedaction.actionIdentifier', 'min'=>1, 'max'=>1},
64
+ 'relationship' => {'valid_codes'=>{'http://hl7.org/fhir/action-relationship-type'=>['before', 'after']}, 'type'=>'code', 'path'=>'Relatedaction.relationship', 'min'=>1, 'max'=>1, 'binding'=>{'strength'=>'required', 'uri'=>'http://hl7.org/fhir/ValueSet/action-relationship-type'}},
65
+ 'offsetQuantity' => {'type'=>'Quantity', 'path'=>'Relatedaction.offset[x]', 'min'=>0, 'max'=>1},
66
+ 'offsetRange' => {'type'=>'Range', 'path'=>'Relatedaction.offset[x]', 'min'=>0, 'max'=>1},
67
+ 'anchor' => {'valid_codes'=>{'http://hl7.org/fhir/action-relationship-anchor'=>['start', 'end']}, 'type'=>'code', 'path'=>'Relatedaction.anchor', 'min'=>0, 'max'=>1, 'binding'=>{'strength'=>'required', 'uri'=>'http://hl7.org/fhir/ValueSet/action-relationship-anchor'}}
68
+ }
69
+
70
+ attr_accessor :id # 0-1 id
71
+ attr_accessor :extension # 0-* [ Extension ]
72
+ attr_accessor :modifierExtension # 0-* [ Extension ]
73
+ attr_accessor :actionIdentifier # 1-1 Identifier
74
+ attr_accessor :relationship # 1-1 code
75
+ attr_accessor :offsetQuantity # 0-1 Quantity
76
+ attr_accessor :offsetRange # 0-1 Range
77
+ attr_accessor :anchor # 0-1 code
78
+ end
79
+
80
+ class Behavior < FHIR::Model
81
+ include FHIR::Hashable
82
+ include FHIR::Json
83
+ include FHIR::Xml
84
+
85
+ METADATA = {
86
+ 'id' => {'type'=>'id', 'path'=>'Behavior.id', 'min'=>0, 'max'=>1},
87
+ 'extension' => {'type'=>'Extension', 'path'=>'Behavior.extension', 'min'=>0, 'max'=>Float::INFINITY},
88
+ 'modifierExtension' => {'type'=>'Extension', 'path'=>'Behavior.modifierExtension', 'min'=>0, 'max'=>Float::INFINITY},
89
+ 'type' => {'valid_codes'=>{'http://hl7.org/fhir/action-behavior-type'=>['grouping', 'selection', 'required', 'precheck', 'cardinality']}, 'type'=>'Coding', 'path'=>'Behavior.type', 'min'=>1, 'max'=>1, 'binding'=>{'strength'=>'required', 'uri'=>'http://hl7.org/fhir/ValueSet/action-behavior-type'}},
90
+ 'value' => {'type'=>'Coding', 'path'=>'Behavior.value', 'min'=>1, 'max'=>1}
91
+ }
92
+
93
+ attr_accessor :id # 0-1 id
94
+ attr_accessor :extension # 0-* [ Extension ]
95
+ attr_accessor :modifierExtension # 0-* [ Extension ]
96
+ attr_accessor :type # 1-1 Coding
97
+ attr_accessor :value # 1-1 Coding
98
+ end
99
+
100
+ attr_accessor :id # 0-1 id
101
+ attr_accessor :extension # 0-* [ Extension ]
102
+ attr_accessor :modifierExtension # 0-* [ Extension ]
103
+ attr_accessor :actionIdentifier # 0-1 Identifier
104
+ attr_accessor :label # 0-1 string
105
+ attr_accessor :title # 0-1 string
106
+ attr_accessor :description # 0-1 string
107
+ attr_accessor :textEquivalent # 0-1 string
108
+ attr_accessor :concept # 0-* [ CodeableConcept ]
109
+ attr_accessor :supportingEvidence # 0-* [ Attachment ]
110
+ attr_accessor :relatedAction # 0-1 GuidanceResponse::Action::Relatedaction
111
+ attr_accessor :documentation # 0-* [ Attachment ]
112
+ attr_accessor :participant # 0-* [ Reference(Patient|Person|Practitioner|RelatedPerson) ]
113
+ attr_accessor :type # 0-1 code
114
+ attr_accessor :behavior # 0-* [ GuidanceResponse::Action::Behavior ]
115
+ attr_accessor :resource # 0-1 Reference(Resource)
116
+ attr_accessor :action # 0-* [ GuidanceResponse::Action ]
117
+ end
118
+
119
+ attr_accessor :id # 0-1 id
120
+ attr_accessor :meta # 0-1 Meta
121
+ attr_accessor :implicitRules # 0-1 uri
122
+ attr_accessor :language # 0-1 code
123
+ attr_accessor :text # 0-1 Narrative
124
+ attr_accessor :contained # 0-* [ Resource ]
125
+ attr_accessor :extension # 0-* [ Extension ]
126
+ attr_accessor :modifierExtension # 0-* [ Extension ]
127
+ attr_accessor :requestId # 0-1 string
128
+ attr_accessor :module # 1-1 Reference(DecisionSupportServiceModule|DecisionSupportRule)
129
+ attr_accessor :status # 1-1 code
130
+ attr_accessor :evaluationMessage # 0-* [ Reference(OperationOutcome) ]
131
+ attr_accessor :outputParameters # 0-1 Reference(Parameters)
132
+ attr_accessor :action # 0-* [ GuidanceResponse::Action ]
133
+ attr_accessor :dataRequirement # 0-* [ DataRequirement ]
134
+
135
+ def resourceType
136
+ 'GuidanceResponse'
137
+ end
138
+ end
139
+ end
@@ -0,0 +1,122 @@
1
+ module FHIR
2
+ class HealthcareService < FHIR::Model
3
+ include FHIR::Hashable
4
+ include FHIR::Json
5
+ include FHIR::Xml
6
+
7
+ SEARCH_PARAMS = ["characteristic", "identifier", "location", "name", "organization", "programname", "servicecategory", "servicetype"]
8
+ METADATA = {
9
+ 'id' => {'type'=>'id', 'path'=>'HealthcareService.id', 'min'=>0, 'max'=>1},
10
+ 'meta' => {'type'=>'Meta', 'path'=>'HealthcareService.meta', 'min'=>0, 'max'=>1},
11
+ 'implicitRules' => {'type'=>'uri', 'path'=>'HealthcareService.implicitRules', 'min'=>0, 'max'=>1},
12
+ 'language' => {'type'=>'code', 'path'=>'HealthcareService.language', 'min'=>0, 'max'=>1, 'binding'=>{'strength'=>'required', 'uri'=>'http://tools.ietf.org/html/bcp47'}},
13
+ 'text' => {'type'=>'Narrative', 'path'=>'HealthcareService.text', 'min'=>0, 'max'=>1},
14
+ 'contained' => {'type'=>'Resource', 'path'=>'HealthcareService.contained', 'min'=>0, 'max'=>Float::INFINITY},
15
+ 'extension' => {'type'=>'Extension', 'path'=>'HealthcareService.extension', 'min'=>0, 'max'=>Float::INFINITY},
16
+ 'modifierExtension' => {'type'=>'Extension', 'path'=>'HealthcareService.modifierExtension', 'min'=>0, 'max'=>Float::INFINITY},
17
+ 'identifier' => {'type'=>'Identifier', 'path'=>'HealthcareService.identifier', 'min'=>0, 'max'=>Float::INFINITY},
18
+ 'providedBy' => {'type_profiles'=>['http://hl7.org/fhir/StructureDefinition/Organization'], 'type'=>'Reference', 'path'=>'HealthcareService.providedBy', 'min'=>0, 'max'=>1},
19
+ 'serviceCategory' => {'valid_codes'=>{'http://hl7.org/fhir/service-category'=>['1', '2', '34', '3', '4', '5', '6', '7', '8', '36', '9', '10', '11', '12', '13', '14', '15', '16', '17', '35', '18', '19', '20', '21', '22', '38', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '37', '33']}, 'type'=>'CodeableConcept', 'path'=>'HealthcareService.serviceCategory', 'min'=>0, 'max'=>1, 'binding'=>{'strength'=>'example', 'uri'=>'http://hl7.org/fhir/ValueSet/service-category'}},
20
+ 'serviceType' => {'valid_codes'=>{'http://hl7.org/fhir/service-type'=>['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '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', '49', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '100', '101', '102', '103', '104', '105', '106', '107', '108', '109', '110', '111', '112', '113', '114', '115', '116', '117', '118', '119', '120', '121', '122', '123', '124', '125', '126', '127', '128', '129', '130', '131', '132', '133', '134', '135', '136', '137', '138', '139', '140', '141', '142', '143', '144', '145', '146', '147', '148', '149', '150', '151', '152', '153', '154', '155', '156', '157', '158', '159', '160', '161', '162', '163', '164', '165', '166', '167', '168', '169', '170', '171', '172', '173', '174', '175', '176', '177', '178', '179', '180', '181', '182', '183', '184', '185', '186', '187', '188', '189', '190', '191', '192', '193', '194', '195', '196', '197', '198', '199', '200', '201', '202', '203', '204', '205', '206', '207', '208', '209', '210', '211', '212', '213', '214', '215', '216', '217', '218', '219', '220', '221', '222', '223', '224', '225', '226', '227', '228', '229', '230', '231', '232', '233', '234', '235', '236', '237', '238', '239', '240', '241', '242', '243', '244', '245', '246', '247', '248', '249', '250', '251', '252', '253', '254', '255', '256', '257', '258', '259', '260', '261', '262', '263', '264', '265', '266', '267', '268', '269', '270', '271', '272', '273', '274', '275', '276', '277', '278', '279', '280', '281', '282', '283', '284', '285', '286', '287', '288', '289', '290', '291', '292', '293', '294', '295', '296', '297', '298', '299', '300', '301', '302', '303', '304', '305', '306', '307', '308', '309', '310', '311', '312', '313', '314', '315', '316', '317', '318', '319', '320', '321', '322', '323', '324', '325', '326', '327', '328', '330', '331', '332', '333', '334', '335', '336', '337', '338', '339', '340', '341', '342', '343', '344', '345', '346', '347', '348', '349', '350', '351', '352', '353', '354', '355', '356', '357', '358', '359', '360', '361', '362', '364', '365', '366', '367', '368', '369', '370', '371', '372', '373', '374', '375', '376', '377', '378', '379', '380', '381', '382', '383', '384', '385', '386', '387', '388', '389', '390', '391', '392', '393', '394', '395', '396', '397', '398', '399', '400', '401', '402', '403', '404', '405', '406', '407', '408', '409', '410', '411', '412', '413', '414', '415', '416', '417', '418', '419', '420', '421', '422', '423', '424', '425', '426', '427', '428', '429', '430', '431', '432', '433', '434', '435', '436', '437', '438', '439', '440', '441', '442', '443', '444', '445', '446', '447', '448', '449', '450', '451', '452', '453', '454', '455', '456', '457', '458', '459', '460', '461', '462', '463', '464', '465', '466', '467', '468', '469', '470', '471', '472', '473', '474', '475', '476', '477', '478', '479', '480', '481', '482', '483', '484', '485', '486', '488', '489', '490', '491', '492', '493', '494', '495', '496', '497', '498', '500', '501', '502', '503', '504', '505', '506', '507', '508', '509', '510', '513', '514', '530', '531', '532', '533', '534', '535', '536', '537', '538', '539', '540', '541', '542', '543', '544', '545', '546', '547', '548', '550', '551', '552', '553', '554', '555', '556', '557', '558', '559', '560', '561', '562', '563', '564', '565', '566', '567', '568', '569', '570', '571', '572', '573', '574', '575', '576', '577', '580', '581', '582', '583', '584', '585', '589', '590', '591', '593', '599', '600', '601', '602', '603', '604', '605', '606', '607', '608', '609', '610', '611', '612', '613', '614', '615', '616', '617', '618', '619', '620', '621', '622', '623', '624', '625', '626', '627', '628', '629']}, 'type'=>'CodeableConcept', 'path'=>'HealthcareService.serviceType', 'min'=>0, 'max'=>Float::INFINITY, 'binding'=>{'strength'=>'example', 'uri'=>'http://hl7.org/fhir/ValueSet/service-type'}},
21
+ 'specialty' => {'valid_codes'=>{'http://snomed.info/sct'=>['408467006', '394577000', '394578005', '421661004', '408462000', '394579002', '394804000', '394580004', '394803006', '408480009', '408454008', '394809005', '394592004', '394600006', '394601005', '394581000', '408478003', '394812008', '408444009', '394582007', '408475000', '410005002', '394583002', '419772000', '394584008', '408443003', '394802001', '394915009', '394814009', '394808002', '394811001', '408446006', '394586005', '394916005', '408472002', '394597005', '394598000', '394807007', '419192003', '408468001', '394593009', '394813003', '410001006', '394589003', '394591006', '394599008', '394649004', '408470005', '394585009', '394821009', '422191005', '394594003', '416304004', '418960008', '394882004', '394806003', '394588006', '408459003', '394607009', '419610006', '418058008', '420208008', '418652005', '418535003', '418862001', '419365004', '418002000', '419983000', '419170002', '419472004', '394539006', '420112009', '409968004', '394587001', '394913002', '408440000', '418112009', '419815003', '394914008', '408455009', '394602003', '408447002', '394810000', '408450004', '408476004', '408469009', '408466002', '408471009', '408464004', '408441001', '408465003', '394605001', '394608004', '408461007', '408460008', '394606000', '408449004', '418018006', '394604002', '394609007', '408474001', '394610002', '394611003', '408477008', '394801008', '408463005', '419321007', '394576009', '394590007', '409967009', '408448007', '419043006', '394612005', '394733009', '394732004']}, 'type'=>'CodeableConcept', 'path'=>'HealthcareService.specialty', 'min'=>0, 'max'=>Float::INFINITY, 'binding'=>{'strength'=>'preferred', 'uri'=>'http://hl7.org/fhir/ValueSet/c80-practice-codes'}},
22
+ 'location' => {'type_profiles'=>['http://hl7.org/fhir/StructureDefinition/Location'], 'type'=>'Reference', 'path'=>'HealthcareService.location', 'min'=>0, 'max'=>Float::INFINITY},
23
+ 'serviceName' => {'type'=>'string', 'path'=>'HealthcareService.serviceName', 'min'=>0, 'max'=>1},
24
+ 'comment' => {'type'=>'string', 'path'=>'HealthcareService.comment', 'min'=>0, 'max'=>1},
25
+ 'extraDetails' => {'type'=>'string', 'path'=>'HealthcareService.extraDetails', 'min'=>0, 'max'=>1},
26
+ 'photo' => {'type'=>'Attachment', 'path'=>'HealthcareService.photo', 'min'=>0, 'max'=>1},
27
+ 'telecom' => {'type'=>'ContactPoint', 'path'=>'HealthcareService.telecom', 'min'=>0, 'max'=>Float::INFINITY},
28
+ 'coverageArea' => {'type_profiles'=>['http://hl7.org/fhir/StructureDefinition/Location'], 'type'=>'Reference', 'path'=>'HealthcareService.coverageArea', 'min'=>0, 'max'=>Float::INFINITY},
29
+ 'serviceProvisionCode' => {'valid_codes'=>{'http://hl7.org/fhir/service-provision-conditions'=>['free', 'disc', 'cost']}, 'type'=>'CodeableConcept', 'path'=>'HealthcareService.serviceProvisionCode', 'min'=>0, 'max'=>Float::INFINITY, 'binding'=>{'strength'=>'example', 'uri'=>'http://hl7.org/fhir/ValueSet/service-provision-conditions'}},
30
+ 'eligibility' => {'type'=>'CodeableConcept', 'path'=>'HealthcareService.eligibility', 'min'=>0, 'max'=>1, 'binding'=>{'strength'=>'example', 'uri'=>nil}},
31
+ 'eligibilityNote' => {'type'=>'string', 'path'=>'HealthcareService.eligibilityNote', 'min'=>0, 'max'=>1},
32
+ 'programName' => {'type'=>'string', 'path'=>'HealthcareService.programName', 'min'=>0, 'max'=>Float::INFINITY},
33
+ 'characteristic' => {'type'=>'CodeableConcept', 'path'=>'HealthcareService.characteristic', 'min'=>0, 'max'=>Float::INFINITY, 'binding'=>{'strength'=>'example', 'uri'=>nil}},
34
+ 'referralMethod' => {'valid_codes'=>{'http://hl7.org/fhir/service-referral-method'=>['fax', 'phone', 'elec', 'semail', 'mail']}, 'type'=>'CodeableConcept', 'path'=>'HealthcareService.referralMethod', 'min'=>0, 'max'=>Float::INFINITY, 'binding'=>{'strength'=>'example', 'uri'=>'http://hl7.org/fhir/ValueSet/service-referral-method'}},
35
+ 'publicKey' => {'type'=>'string', 'path'=>'HealthcareService.publicKey', 'min'=>0, 'max'=>1},
36
+ 'appointmentRequired' => {'type'=>'boolean', 'path'=>'HealthcareService.appointmentRequired', 'min'=>0, 'max'=>1},
37
+ 'availableTime' => {'type'=>'HealthcareService::Availabletime', 'path'=>'HealthcareService.availableTime', 'min'=>0, 'max'=>Float::INFINITY},
38
+ 'notAvailable' => {'type'=>'HealthcareService::Notavailable', 'path'=>'HealthcareService.notAvailable', 'min'=>0, 'max'=>Float::INFINITY},
39
+ 'availabilityExceptions' => {'type'=>'string', 'path'=>'HealthcareService.availabilityExceptions', 'min'=>0, 'max'=>1}
40
+ }
41
+
42
+ class Availabletime < FHIR::Model
43
+ include FHIR::Hashable
44
+ include FHIR::Json
45
+ include FHIR::Xml
46
+
47
+ METADATA = {
48
+ 'id' => {'type'=>'id', 'path'=>'Availabletime.id', 'min'=>0, 'max'=>1},
49
+ 'extension' => {'type'=>'Extension', 'path'=>'Availabletime.extension', 'min'=>0, 'max'=>Float::INFINITY},
50
+ 'modifierExtension' => {'type'=>'Extension', 'path'=>'Availabletime.modifierExtension', 'min'=>0, 'max'=>Float::INFINITY},
51
+ 'daysOfWeek' => {'valid_codes'=>{'http://hl7.org/fhir/days-of-week'=>['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun']}, 'type'=>'code', 'path'=>'Availabletime.daysOfWeek', 'min'=>0, 'max'=>Float::INFINITY, 'binding'=>{'strength'=>'required', 'uri'=>'http://hl7.org/fhir/ValueSet/days-of-week'}},
52
+ 'allDay' => {'type'=>'boolean', 'path'=>'Availabletime.allDay', 'min'=>0, 'max'=>1},
53
+ 'availableStartTime' => {'type'=>'time', 'path'=>'Availabletime.availableStartTime', 'min'=>0, 'max'=>1},
54
+ 'availableEndTime' => {'type'=>'time', 'path'=>'Availabletime.availableEndTime', 'min'=>0, 'max'=>1}
55
+ }
56
+
57
+ attr_accessor :id # 0-1 id
58
+ attr_accessor :extension # 0-* [ Extension ]
59
+ attr_accessor :modifierExtension # 0-* [ Extension ]
60
+ attr_accessor :daysOfWeek # 0-* [ code ]
61
+ attr_accessor :allDay # 0-1 boolean
62
+ attr_accessor :availableStartTime # 0-1 time
63
+ attr_accessor :availableEndTime # 0-1 time
64
+ end
65
+
66
+ class Notavailable < FHIR::Model
67
+ include FHIR::Hashable
68
+ include FHIR::Json
69
+ include FHIR::Xml
70
+
71
+ METADATA = {
72
+ 'id' => {'type'=>'id', 'path'=>'Notavailable.id', 'min'=>0, 'max'=>1},
73
+ 'extension' => {'type'=>'Extension', 'path'=>'Notavailable.extension', 'min'=>0, 'max'=>Float::INFINITY},
74
+ 'modifierExtension' => {'type'=>'Extension', 'path'=>'Notavailable.modifierExtension', 'min'=>0, 'max'=>Float::INFINITY},
75
+ 'description' => {'type'=>'string', 'path'=>'Notavailable.description', 'min'=>1, 'max'=>1},
76
+ 'during' => {'type'=>'Period', 'path'=>'Notavailable.during', 'min'=>0, 'max'=>1}
77
+ }
78
+
79
+ attr_accessor :id # 0-1 id
80
+ attr_accessor :extension # 0-* [ Extension ]
81
+ attr_accessor :modifierExtension # 0-* [ Extension ]
82
+ attr_accessor :description # 1-1 string
83
+ attr_accessor :during # 0-1 Period
84
+ end
85
+
86
+ attr_accessor :id # 0-1 id
87
+ attr_accessor :meta # 0-1 Meta
88
+ attr_accessor :implicitRules # 0-1 uri
89
+ attr_accessor :language # 0-1 code
90
+ attr_accessor :text # 0-1 Narrative
91
+ attr_accessor :contained # 0-* [ Resource ]
92
+ attr_accessor :extension # 0-* [ Extension ]
93
+ attr_accessor :modifierExtension # 0-* [ Extension ]
94
+ attr_accessor :identifier # 0-* [ Identifier ]
95
+ attr_accessor :providedBy # 0-1 Reference(Organization)
96
+ attr_accessor :serviceCategory # 0-1 CodeableConcept
97
+ attr_accessor :serviceType # 0-* [ CodeableConcept ]
98
+ attr_accessor :specialty # 0-* [ CodeableConcept ]
99
+ attr_accessor :location # 0-* [ Reference(Location) ]
100
+ attr_accessor :serviceName # 0-1 string
101
+ attr_accessor :comment # 0-1 string
102
+ attr_accessor :extraDetails # 0-1 string
103
+ attr_accessor :photo # 0-1 Attachment
104
+ attr_accessor :telecom # 0-* [ ContactPoint ]
105
+ attr_accessor :coverageArea # 0-* [ Reference(Location) ]
106
+ attr_accessor :serviceProvisionCode # 0-* [ CodeableConcept ]
107
+ attr_accessor :eligibility # 0-1 CodeableConcept
108
+ attr_accessor :eligibilityNote # 0-1 string
109
+ attr_accessor :programName # 0-* [ string ]
110
+ attr_accessor :characteristic # 0-* [ CodeableConcept ]
111
+ attr_accessor :referralMethod # 0-* [ CodeableConcept ]
112
+ attr_accessor :publicKey # 0-1 string
113
+ attr_accessor :appointmentRequired # 0-1 boolean
114
+ attr_accessor :availableTime # 0-* [ HealthcareService::Availabletime ]
115
+ attr_accessor :notAvailable # 0-* [ HealthcareService::Notavailable ]
116
+ attr_accessor :availabilityExceptions # 0-1 string
117
+
118
+ def resourceType
119
+ 'HealthcareService'
120
+ end
121
+ end
122
+ end