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,166 @@
1
+ module FHIR
2
+ class Patient < FHIR::Model
3
+ include FHIR::Hashable
4
+ include FHIR::Json
5
+ include FHIR::Xml
6
+
7
+ MULTIPLE_TYPES = {
8
+ 'deceased' => ['boolean', 'dateTime'],
9
+ 'multipleBirth' => ['boolean', 'integer']
10
+ }
11
+ SEARCH_PARAMS = ["active", "address", "address-city", "address-country", "address-postalcode", "address-state", "address-use", "animal-breed", "animal-species", "birthdate", "careprovider", "death-date", "deceased", "email", "family", "gender", "given", "identifier", "language", "link", "name", "organization", "phone", "phonetic", "telecom"]
12
+ METADATA = {
13
+ 'id' => {'type'=>'id', 'path'=>'Patient.id', 'min'=>0, 'max'=>1},
14
+ 'meta' => {'type'=>'Meta', 'path'=>'Patient.meta', 'min'=>0, 'max'=>1},
15
+ 'implicitRules' => {'type'=>'uri', 'path'=>'Patient.implicitRules', 'min'=>0, 'max'=>1},
16
+ 'language' => {'type'=>'code', 'path'=>'Patient.language', 'min'=>0, 'max'=>1, 'binding'=>{'strength'=>'required', 'uri'=>'http://tools.ietf.org/html/bcp47'}},
17
+ 'text' => {'type'=>'Narrative', 'path'=>'Patient.text', 'min'=>0, 'max'=>1},
18
+ 'contained' => {'type'=>'Resource', 'path'=>'Patient.contained', 'min'=>0, 'max'=>Float::INFINITY},
19
+ 'extension' => {'type'=>'Extension', 'path'=>'Patient.extension', 'min'=>0, 'max'=>Float::INFINITY},
20
+ 'modifierExtension' => {'type'=>'Extension', 'path'=>'Patient.modifierExtension', 'min'=>0, 'max'=>Float::INFINITY},
21
+ 'identifier' => {'type'=>'Identifier', 'path'=>'Patient.identifier', 'min'=>0, 'max'=>Float::INFINITY},
22
+ 'active' => {'type'=>'boolean', 'path'=>'Patient.active', 'min'=>0, 'max'=>1},
23
+ 'name' => {'type'=>'HumanName', 'path'=>'Patient.name', 'min'=>0, 'max'=>Float::INFINITY},
24
+ 'telecom' => {'type'=>'ContactPoint', 'path'=>'Patient.telecom', 'min'=>0, 'max'=>Float::INFINITY},
25
+ 'gender' => {'valid_codes'=>{'http://hl7.org/fhir/administrative-gender'=>['male', 'female', 'other', 'unknown']}, 'type'=>'code', 'path'=>'Patient.gender', 'min'=>0, 'max'=>1, 'binding'=>{'strength'=>'required', 'uri'=>'http://hl7.org/fhir/ValueSet/administrative-gender'}},
26
+ 'birthDate' => {'type'=>'date', 'path'=>'Patient.birthDate', 'min'=>0, 'max'=>1},
27
+ 'deceasedBoolean' => {'type'=>'boolean', 'path'=>'Patient.deceased[x]', 'min'=>0, 'max'=>1},
28
+ 'deceasedDateTime' => {'type'=>'dateTime', 'path'=>'Patient.deceased[x]', 'min'=>0, 'max'=>1},
29
+ 'address' => {'type'=>'Address', 'path'=>'Patient.address', 'min'=>0, 'max'=>Float::INFINITY},
30
+ 'maritalStatus' => {'valid_codes'=>{'http://hl7.org/fhir/v3/MaritalStatus'=>['A', 'D', 'I', 'L', 'M', 'P', 'S', 'T', 'W'], 'http://hl7.org/fhir/v3/NullFlavor'=>['UNK'], 'http://hl7.org/fhir/marital-status'=>['U']}, 'type'=>'CodeableConcept', 'path'=>'Patient.maritalStatus', 'min'=>0, 'max'=>1, 'binding'=>{'strength'=>'required', 'uri'=>'http://hl7.org/fhir/ValueSet/marital-status'}},
31
+ 'multipleBirthBoolean' => {'type'=>'boolean', 'path'=>'Patient.multipleBirth[x]', 'min'=>0, 'max'=>1},
32
+ 'multipleBirthInteger' => {'type'=>'integer', 'path'=>'Patient.multipleBirth[x]', 'min'=>0, 'max'=>1},
33
+ 'photo' => {'type'=>'Attachment', 'path'=>'Patient.photo', 'min'=>0, 'max'=>Float::INFINITY},
34
+ 'contact' => {'type'=>'Patient::Contact', 'path'=>'Patient.contact', 'min'=>0, 'max'=>Float::INFINITY},
35
+ 'animal' => {'type'=>'Patient::Animal', 'path'=>'Patient.animal', 'min'=>0, 'max'=>1},
36
+ 'communication' => {'type'=>'Patient::Communication', 'path'=>'Patient.communication', 'min'=>0, 'max'=>Float::INFINITY},
37
+ 'careProvider' => {'type_profiles'=>['http://hl7.org/fhir/StructureDefinition/Organization', 'http://hl7.org/fhir/StructureDefinition/Practitioner'], 'type'=>'Reference', 'path'=>'Patient.careProvider', 'min'=>0, 'max'=>Float::INFINITY},
38
+ 'managingOrganization' => {'type_profiles'=>['http://hl7.org/fhir/StructureDefinition/Organization'], 'type'=>'Reference', 'path'=>'Patient.managingOrganization', 'min'=>0, 'max'=>1},
39
+ 'link' => {'type'=>'Patient::Link', 'path'=>'Patient.link', 'min'=>0, 'max'=>Float::INFINITY}
40
+ }
41
+
42
+ class Contact < FHIR::Model
43
+ include FHIR::Hashable
44
+ include FHIR::Json
45
+ include FHIR::Xml
46
+
47
+ METADATA = {
48
+ 'id' => {'type'=>'id', 'path'=>'Contact.id', 'min'=>0, 'max'=>1},
49
+ 'extension' => {'type'=>'Extension', 'path'=>'Contact.extension', 'min'=>0, 'max'=>Float::INFINITY},
50
+ 'modifierExtension' => {'type'=>'Extension', 'path'=>'Contact.modifierExtension', 'min'=>0, 'max'=>Float::INFINITY},
51
+ 'relationship' => {'valid_codes'=>{'http://hl7.org/fhir/patient-contact-relationship'=>['emergency', 'family', 'guardian', 'friend', 'partner', 'work', 'caregiver', 'agent', 'guarantor', 'owner', 'parent']}, 'type'=>'CodeableConcept', 'path'=>'Contact.relationship', 'min'=>0, 'max'=>Float::INFINITY, 'binding'=>{'strength'=>'extensible', 'uri'=>'http://hl7.org/fhir/ValueSet/patient-contact-relationship'}},
52
+ 'name' => {'type'=>'HumanName', 'path'=>'Contact.name', 'min'=>0, 'max'=>1},
53
+ 'telecom' => {'type'=>'ContactPoint', 'path'=>'Contact.telecom', 'min'=>0, 'max'=>Float::INFINITY},
54
+ 'address' => {'type'=>'Address', 'path'=>'Contact.address', 'min'=>0, 'max'=>1},
55
+ 'gender' => {'valid_codes'=>{'http://hl7.org/fhir/administrative-gender'=>['male', 'female', 'other', 'unknown']}, 'type'=>'code', 'path'=>'Contact.gender', 'min'=>0, 'max'=>1, 'binding'=>{'strength'=>'required', 'uri'=>'http://hl7.org/fhir/ValueSet/administrative-gender'}},
56
+ 'organization' => {'type_profiles'=>['http://hl7.org/fhir/StructureDefinition/Organization'], 'type'=>'Reference', 'path'=>'Contact.organization', 'min'=>0, 'max'=>1},
57
+ 'period' => {'type'=>'Period', 'path'=>'Contact.period', 'min'=>0, 'max'=>1}
58
+ }
59
+
60
+ attr_accessor :id # 0-1 id
61
+ attr_accessor :extension # 0-* [ Extension ]
62
+ attr_accessor :modifierExtension # 0-* [ Extension ]
63
+ attr_accessor :relationship # 0-* [ CodeableConcept ]
64
+ attr_accessor :name # 0-1 HumanName
65
+ attr_accessor :telecom # 0-* [ ContactPoint ]
66
+ attr_accessor :address # 0-1 Address
67
+ attr_accessor :gender # 0-1 code
68
+ attr_accessor :organization # 0-1 Reference(Organization)
69
+ attr_accessor :period # 0-1 Period
70
+ end
71
+
72
+ class Animal < FHIR::Model
73
+ include FHIR::Hashable
74
+ include FHIR::Json
75
+ include FHIR::Xml
76
+
77
+ METADATA = {
78
+ 'id' => {'type'=>'id', 'path'=>'Animal.id', 'min'=>0, 'max'=>1},
79
+ 'extension' => {'type'=>'Extension', 'path'=>'Animal.extension', 'min'=>0, 'max'=>Float::INFINITY},
80
+ 'modifierExtension' => {'type'=>'Extension', 'path'=>'Animal.modifierExtension', 'min'=>0, 'max'=>Float::INFINITY},
81
+ 'species' => {'valid_codes'=>{'http://hl7.org/fhir/animal-species'=>['canislf', 'ovisa', 'serinuscd']}, 'type'=>'CodeableConcept', 'path'=>'Animal.species', 'min'=>1, 'max'=>1, 'binding'=>{'strength'=>'example', 'uri'=>'http://hl7.org/fhir/ValueSet/animal-species'}},
82
+ 'breed' => {'valid_codes'=>{'http://hl7.org/fhir/animal-breed'=>['gsd', 'irt', 'tibmas', 'gret']}, 'type'=>'CodeableConcept', 'path'=>'Animal.breed', 'min'=>0, 'max'=>1, 'binding'=>{'strength'=>'example', 'uri'=>'http://hl7.org/fhir/ValueSet/animal-breeds'}},
83
+ 'genderStatus' => {'valid_codes'=>{'http://hl7.org/fhir/animal-genderstatus'=>['neutered', 'intact', 'unknown']}, 'type'=>'CodeableConcept', 'path'=>'Animal.genderStatus', 'min'=>0, 'max'=>1, 'binding'=>{'strength'=>'example', 'uri'=>'http://hl7.org/fhir/ValueSet/animal-genderstatus'}}
84
+ }
85
+
86
+ attr_accessor :id # 0-1 id
87
+ attr_accessor :extension # 0-* [ Extension ]
88
+ attr_accessor :modifierExtension # 0-* [ Extension ]
89
+ attr_accessor :species # 1-1 CodeableConcept
90
+ attr_accessor :breed # 0-1 CodeableConcept
91
+ attr_accessor :genderStatus # 0-1 CodeableConcept
92
+ end
93
+
94
+ class Communication < FHIR::Model
95
+ include FHIR::Hashable
96
+ include FHIR::Json
97
+ include FHIR::Xml
98
+
99
+ METADATA = {
100
+ 'id' => {'type'=>'id', 'path'=>'Communication.id', 'min'=>0, 'max'=>1},
101
+ 'extension' => {'type'=>'Extension', 'path'=>'Communication.extension', 'min'=>0, 'max'=>Float::INFINITY},
102
+ 'modifierExtension' => {'type'=>'Extension', 'path'=>'Communication.modifierExtension', 'min'=>0, 'max'=>Float::INFINITY},
103
+ 'language' => {'type'=>'CodeableConcept', 'path'=>'Communication.language', 'min'=>1, 'max'=>1, 'binding'=>{'strength'=>'required', 'uri'=>'http://tools.ietf.org/html/bcp47'}},
104
+ 'preferred' => {'type'=>'boolean', 'path'=>'Communication.preferred', 'min'=>0, 'max'=>1}
105
+ }
106
+
107
+ attr_accessor :id # 0-1 id
108
+ attr_accessor :extension # 0-* [ Extension ]
109
+ attr_accessor :modifierExtension # 0-* [ Extension ]
110
+ attr_accessor :language # 1-1 CodeableConcept
111
+ attr_accessor :preferred # 0-1 boolean
112
+ end
113
+
114
+ class Link < FHIR::Model
115
+ include FHIR::Hashable
116
+ include FHIR::Json
117
+ include FHIR::Xml
118
+
119
+ METADATA = {
120
+ 'id' => {'type'=>'id', 'path'=>'Link.id', 'min'=>0, 'max'=>1},
121
+ 'extension' => {'type'=>'Extension', 'path'=>'Link.extension', 'min'=>0, 'max'=>Float::INFINITY},
122
+ 'modifierExtension' => {'type'=>'Extension', 'path'=>'Link.modifierExtension', 'min'=>0, 'max'=>Float::INFINITY},
123
+ 'other' => {'type_profiles'=>['http://hl7.org/fhir/StructureDefinition/Patient'], 'type'=>'Reference', 'path'=>'Link.other', 'min'=>1, 'max'=>1},
124
+ 'type' => {'valid_codes'=>{'http://hl7.org/fhir/link-type'=>['replace', 'refer', 'seealso']}, 'type'=>'code', 'path'=>'Link.type', 'min'=>1, 'max'=>1, 'binding'=>{'strength'=>'required', 'uri'=>'http://hl7.org/fhir/ValueSet/link-type'}}
125
+ }
126
+
127
+ attr_accessor :id # 0-1 id
128
+ attr_accessor :extension # 0-* [ Extension ]
129
+ attr_accessor :modifierExtension # 0-* [ Extension ]
130
+ attr_accessor :other # 1-1 Reference(Patient)
131
+ attr_accessor :type # 1-1 code
132
+ end
133
+
134
+ attr_accessor :id # 0-1 id
135
+ attr_accessor :meta # 0-1 Meta
136
+ attr_accessor :implicitRules # 0-1 uri
137
+ attr_accessor :language # 0-1 code
138
+ attr_accessor :text # 0-1 Narrative
139
+ attr_accessor :contained # 0-* [ Resource ]
140
+ attr_accessor :extension # 0-* [ Extension ]
141
+ attr_accessor :modifierExtension # 0-* [ Extension ]
142
+ attr_accessor :identifier # 0-* [ Identifier ]
143
+ attr_accessor :active # 0-1 boolean
144
+ attr_accessor :name # 0-* [ HumanName ]
145
+ attr_accessor :telecom # 0-* [ ContactPoint ]
146
+ attr_accessor :gender # 0-1 code
147
+ attr_accessor :birthDate # 0-1 date
148
+ attr_accessor :deceasedBoolean # 0-1 boolean
149
+ attr_accessor :deceasedDateTime # 0-1 dateTime
150
+ attr_accessor :address # 0-* [ Address ]
151
+ attr_accessor :maritalStatus # 0-1 CodeableConcept
152
+ attr_accessor :multipleBirthBoolean # 0-1 boolean
153
+ attr_accessor :multipleBirthInteger # 0-1 integer
154
+ attr_accessor :photo # 0-* [ Attachment ]
155
+ attr_accessor :contact # 0-* [ Patient::Contact ]
156
+ attr_accessor :animal # 0-1 Patient::Animal
157
+ attr_accessor :communication # 0-* [ Patient::Communication ]
158
+ attr_accessor :careProvider # 0-* [ Reference(Organization|Practitioner) ]
159
+ attr_accessor :managingOrganization # 0-1 Reference(Organization)
160
+ attr_accessor :link # 0-* [ Patient::Link ]
161
+
162
+ def resourceType
163
+ 'Patient'
164
+ end
165
+ end
166
+ end
@@ -0,0 +1,71 @@
1
+ module FHIR
2
+ class PaymentNotice < FHIR::Model
3
+ include FHIR::Hashable
4
+ include FHIR::Json
5
+ include FHIR::Xml
6
+
7
+ MULTIPLE_TYPES = {
8
+ 'target' => ['Identifier', 'Reference'],
9
+ 'provider' => ['Identifier', 'Reference'],
10
+ 'organization' => ['Identifier', 'Reference'],
11
+ 'request' => ['Identifier', 'Reference'],
12
+ 'response' => ['Identifier', 'Reference']
13
+ }
14
+ SEARCH_PARAMS = ["created", "identifier", "organizationidentifier", "organizationreference", "paymentstatus", "provideridentifier", "providerreference", "requestidentifier", "requestreference", "responseidentifier", "responsereference", "statusdate"]
15
+ METADATA = {
16
+ 'id' => {'type'=>'id', 'path'=>'PaymentNotice.id', 'min'=>0, 'max'=>1},
17
+ 'meta' => {'type'=>'Meta', 'path'=>'PaymentNotice.meta', 'min'=>0, 'max'=>1},
18
+ 'implicitRules' => {'type'=>'uri', 'path'=>'PaymentNotice.implicitRules', 'min'=>0, 'max'=>1},
19
+ 'language' => {'type'=>'code', 'path'=>'PaymentNotice.language', 'min'=>0, 'max'=>1, 'binding'=>{'strength'=>'required', 'uri'=>'http://tools.ietf.org/html/bcp47'}},
20
+ 'text' => {'type'=>'Narrative', 'path'=>'PaymentNotice.text', 'min'=>0, 'max'=>1},
21
+ 'contained' => {'type'=>'Resource', 'path'=>'PaymentNotice.contained', 'min'=>0, 'max'=>Float::INFINITY},
22
+ 'extension' => {'type'=>'Extension', 'path'=>'PaymentNotice.extension', 'min'=>0, 'max'=>Float::INFINITY},
23
+ 'modifierExtension' => {'type'=>'Extension', 'path'=>'PaymentNotice.modifierExtension', 'min'=>0, 'max'=>Float::INFINITY},
24
+ 'identifier' => {'type'=>'Identifier', 'path'=>'PaymentNotice.identifier', 'min'=>0, 'max'=>Float::INFINITY},
25
+ 'ruleset' => {'valid_codes'=>{'http://hl7.org/fhir/ruleset'=>['x12-4010', 'x12-5010', 'x12-7010', 'cdanet-v2', 'cdanet-v4', 'cpha-3']}, 'type'=>'Coding', 'path'=>'PaymentNotice.ruleset', 'min'=>0, 'max'=>1, 'binding'=>{'strength'=>'example', 'uri'=>'http://hl7.org/fhir/ValueSet/ruleset'}},
26
+ 'originalRuleset' => {'valid_codes'=>{'http://hl7.org/fhir/ruleset'=>['x12-4010', 'x12-5010', 'x12-7010', 'cdanet-v2', 'cdanet-v4', 'cpha-3']}, 'type'=>'Coding', 'path'=>'PaymentNotice.originalRuleset', 'min'=>0, 'max'=>1, 'binding'=>{'strength'=>'example', 'uri'=>'http://hl7.org/fhir/ValueSet/ruleset'}},
27
+ 'created' => {'type'=>'dateTime', 'path'=>'PaymentNotice.created', 'min'=>0, 'max'=>1},
28
+ 'targetIdentifier' => {'type'=>'Identifier', 'path'=>'PaymentNotice.target[x]', 'min'=>0, 'max'=>1},
29
+ 'targetReference' => {'type_profiles'=>['http://hl7.org/fhir/StructureDefinition/Organization'], 'type'=>'Reference', 'path'=>'PaymentNotice.target[x]', 'min'=>0, 'max'=>1},
30
+ 'providerIdentifier' => {'type'=>'Identifier', 'path'=>'PaymentNotice.provider[x]', 'min'=>0, 'max'=>1},
31
+ 'providerReference' => {'type_profiles'=>['http://hl7.org/fhir/StructureDefinition/Practitioner'], 'type'=>'Reference', 'path'=>'PaymentNotice.provider[x]', 'min'=>0, 'max'=>1},
32
+ 'organizationIdentifier' => {'type'=>'Identifier', 'path'=>'PaymentNotice.organization[x]', 'min'=>0, 'max'=>1},
33
+ 'organizationReference' => {'type_profiles'=>['http://hl7.org/fhir/StructureDefinition/Organization'], 'type'=>'Reference', 'path'=>'PaymentNotice.organization[x]', 'min'=>0, 'max'=>1},
34
+ 'requestIdentifier' => {'type'=>'Identifier', 'path'=>'PaymentNotice.request[x]', 'min'=>0, 'max'=>1},
35
+ 'requestReference' => {'type_profiles'=>['http://hl7.org/fhir/StructureDefinition/Resource'], 'type'=>'Reference', 'path'=>'PaymentNotice.request[x]', 'min'=>0, 'max'=>1},
36
+ 'responseIdentifier' => {'type'=>'Identifier', 'path'=>'PaymentNotice.response[x]', 'min'=>0, 'max'=>1},
37
+ 'responseReference' => {'type_profiles'=>['http://hl7.org/fhir/StructureDefinition/Resource'], 'type'=>'Reference', 'path'=>'PaymentNotice.response[x]', 'min'=>0, 'max'=>1},
38
+ 'paymentStatus' => {'valid_codes'=>{'http://hl7.org/fhir/paymentstatus'=>['paid', 'cleared']}, 'type'=>'Coding', 'path'=>'PaymentNotice.paymentStatus', 'min'=>1, 'max'=>1, 'binding'=>{'strength'=>'example', 'uri'=>'http://hl7.org/fhir/ValueSet/payment-status'}},
39
+ 'statusDate' => {'type'=>'date', 'path'=>'PaymentNotice.statusDate', 'min'=>0, 'max'=>1}
40
+ }
41
+
42
+ attr_accessor :id # 0-1 id
43
+ attr_accessor :meta # 0-1 Meta
44
+ attr_accessor :implicitRules # 0-1 uri
45
+ attr_accessor :language # 0-1 code
46
+ attr_accessor :text # 0-1 Narrative
47
+ attr_accessor :contained # 0-* [ Resource ]
48
+ attr_accessor :extension # 0-* [ Extension ]
49
+ attr_accessor :modifierExtension # 0-* [ Extension ]
50
+ attr_accessor :identifier # 0-* [ Identifier ]
51
+ attr_accessor :ruleset # 0-1 Coding
52
+ attr_accessor :originalRuleset # 0-1 Coding
53
+ attr_accessor :created # 0-1 dateTime
54
+ attr_accessor :targetIdentifier # 0-1 Identifier
55
+ attr_accessor :targetReference # 0-1 Reference(Organization)
56
+ attr_accessor :providerIdentifier # 0-1 Identifier
57
+ attr_accessor :providerReference # 0-1 Reference(Practitioner)
58
+ attr_accessor :organizationIdentifier # 0-1 Identifier
59
+ attr_accessor :organizationReference # 0-1 Reference(Organization)
60
+ attr_accessor :requestIdentifier # 0-1 Identifier
61
+ attr_accessor :requestReference # 0-1 Reference(Resource)
62
+ attr_accessor :responseIdentifier # 0-1 Identifier
63
+ attr_accessor :responseReference # 0-1 Reference(Resource)
64
+ attr_accessor :paymentStatus # 1-1 Coding
65
+ attr_accessor :statusDate # 0-1 date
66
+
67
+ def resourceType
68
+ 'PaymentNotice'
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,140 @@
1
+ module FHIR
2
+ class PaymentReconciliation < FHIR::Model
3
+ include FHIR::Hashable
4
+ include FHIR::Json
5
+ include FHIR::Xml
6
+
7
+ MULTIPLE_TYPES = {
8
+ 'request' => ['Identifier', 'Reference'],
9
+ 'organization' => ['Identifier', 'Reference'],
10
+ 'requestProvider' => ['Identifier', 'Reference'],
11
+ 'requestOrganization' => ['Identifier', 'Reference']
12
+ }
13
+ SEARCH_PARAMS = ["created", "disposition", "identifier", "organizationidentifier", "organizationreference", "outcome", "requestidentifier", "requestorganizationidentifier", "requestorganizationreference", "requestprovideridentifier", "requestproviderreference", "requestreference"]
14
+ METADATA = {
15
+ 'id' => {'type'=>'id', 'path'=>'PaymentReconciliation.id', 'min'=>0, 'max'=>1},
16
+ 'meta' => {'type'=>'Meta', 'path'=>'PaymentReconciliation.meta', 'min'=>0, 'max'=>1},
17
+ 'implicitRules' => {'type'=>'uri', 'path'=>'PaymentReconciliation.implicitRules', 'min'=>0, 'max'=>1},
18
+ 'language' => {'type'=>'code', 'path'=>'PaymentReconciliation.language', 'min'=>0, 'max'=>1, 'binding'=>{'strength'=>'required', 'uri'=>'http://tools.ietf.org/html/bcp47'}},
19
+ 'text' => {'type'=>'Narrative', 'path'=>'PaymentReconciliation.text', 'min'=>0, 'max'=>1},
20
+ 'contained' => {'type'=>'Resource', 'path'=>'PaymentReconciliation.contained', 'min'=>0, 'max'=>Float::INFINITY},
21
+ 'extension' => {'type'=>'Extension', 'path'=>'PaymentReconciliation.extension', 'min'=>0, 'max'=>Float::INFINITY},
22
+ 'modifierExtension' => {'type'=>'Extension', 'path'=>'PaymentReconciliation.modifierExtension', 'min'=>0, 'max'=>Float::INFINITY},
23
+ 'identifier' => {'type'=>'Identifier', 'path'=>'PaymentReconciliation.identifier', 'min'=>0, 'max'=>Float::INFINITY},
24
+ 'requestIdentifier' => {'type'=>'Identifier', 'path'=>'PaymentReconciliation.request[x]', 'min'=>0, 'max'=>1},
25
+ 'requestReference' => {'type_profiles'=>['http://hl7.org/fhir/StructureDefinition/ProcessRequest'], 'type'=>'Reference', 'path'=>'PaymentReconciliation.request[x]', 'min'=>0, 'max'=>1},
26
+ 'outcome' => {'valid_codes'=>{'http://hl7.org/fhir/remittance-outcome'=>['complete', 'error']}, 'type'=>'code', 'path'=>'PaymentReconciliation.outcome', 'min'=>0, 'max'=>1, 'binding'=>{'strength'=>'required', 'uri'=>'http://hl7.org/fhir/ValueSet/remittance-outcome'}},
27
+ 'disposition' => {'type'=>'string', 'path'=>'PaymentReconciliation.disposition', 'min'=>0, 'max'=>1},
28
+ 'ruleset' => {'valid_codes'=>{'http://hl7.org/fhir/ruleset'=>['x12-4010', 'x12-5010', 'x12-7010', 'cdanet-v2', 'cdanet-v4', 'cpha-3']}, 'type'=>'Coding', 'path'=>'PaymentReconciliation.ruleset', 'min'=>0, 'max'=>1, 'binding'=>{'strength'=>'example', 'uri'=>'http://hl7.org/fhir/ValueSet/ruleset'}},
29
+ 'originalRuleset' => {'valid_codes'=>{'http://hl7.org/fhir/ruleset'=>['x12-4010', 'x12-5010', 'x12-7010', 'cdanet-v2', 'cdanet-v4', 'cpha-3']}, 'type'=>'Coding', 'path'=>'PaymentReconciliation.originalRuleset', 'min'=>0, 'max'=>1, 'binding'=>{'strength'=>'example', 'uri'=>'http://hl7.org/fhir/ValueSet/ruleset'}},
30
+ 'created' => {'type'=>'dateTime', 'path'=>'PaymentReconciliation.created', 'min'=>0, 'max'=>1},
31
+ 'period' => {'type'=>'Period', 'path'=>'PaymentReconciliation.period', 'min'=>0, 'max'=>1},
32
+ 'organizationIdentifier' => {'type'=>'Identifier', 'path'=>'PaymentReconciliation.organization[x]', 'min'=>0, 'max'=>1},
33
+ 'organizationReference' => {'type_profiles'=>['http://hl7.org/fhir/StructureDefinition/Organization'], 'type'=>'Reference', 'path'=>'PaymentReconciliation.organization[x]', 'min'=>0, 'max'=>1},
34
+ 'requestProviderIdentifier' => {'type'=>'Identifier', 'path'=>'PaymentReconciliation.requestProvider[x]', 'min'=>0, 'max'=>1},
35
+ 'requestProviderReference' => {'type_profiles'=>['http://hl7.org/fhir/StructureDefinition/Practitioner'], 'type'=>'Reference', 'path'=>'PaymentReconciliation.requestProvider[x]', 'min'=>0, 'max'=>1},
36
+ 'requestOrganizationIdentifier' => {'type'=>'Identifier', 'path'=>'PaymentReconciliation.requestOrganization[x]', 'min'=>0, 'max'=>1},
37
+ 'requestOrganizationReference' => {'type_profiles'=>['http://hl7.org/fhir/StructureDefinition/Organization'], 'type'=>'Reference', 'path'=>'PaymentReconciliation.requestOrganization[x]', 'min'=>0, 'max'=>1},
38
+ 'detail' => {'type'=>'PaymentReconciliation::Detail', 'path'=>'PaymentReconciliation.detail', 'min'=>0, 'max'=>Float::INFINITY},
39
+ 'form' => {'valid_codes'=>{'http://hl7.org/fhir/forms-codes'=>['1', '2']}, 'type'=>'Coding', 'path'=>'PaymentReconciliation.form', 'min'=>0, 'max'=>1, 'binding'=>{'strength'=>'required', 'uri'=>'http://hl7.org/fhir/ValueSet/forms'}},
40
+ 'total' => {'type'=>'Quantity', 'path'=>'PaymentReconciliation.total', 'min'=>1, 'max'=>1},
41
+ 'note' => {'type'=>'PaymentReconciliation::Note', 'path'=>'PaymentReconciliation.note', 'min'=>0, 'max'=>Float::INFINITY}
42
+ }
43
+
44
+ class Detail < FHIR::Model
45
+ include FHIR::Hashable
46
+ include FHIR::Json
47
+ include FHIR::Xml
48
+
49
+ MULTIPLE_TYPES = {
50
+ 'request' => ['Identifier', 'Reference'],
51
+ 'responce' => ['Identifier', 'Reference'],
52
+ 'submitter' => ['Identifier', 'Reference'],
53
+ 'payee' => ['Identifier', 'Reference']
54
+ }
55
+ METADATA = {
56
+ 'id' => {'type'=>'id', 'path'=>'Detail.id', 'min'=>0, 'max'=>1},
57
+ 'extension' => {'type'=>'Extension', 'path'=>'Detail.extension', 'min'=>0, 'max'=>Float::INFINITY},
58
+ 'modifierExtension' => {'type'=>'Extension', 'path'=>'Detail.modifierExtension', 'min'=>0, 'max'=>Float::INFINITY},
59
+ 'type' => {'valid_codes'=>{'http://hl7.org/fhir/payment-type'=>['payment', 'adjustment', 'advance']}, 'type'=>'Coding', 'path'=>'Detail.type', 'min'=>1, 'max'=>1, 'binding'=>{'strength'=>'example', 'uri'=>'http://hl7.org/fhir/ValueSet/payment-type'}},
60
+ 'requestIdentifier' => {'type'=>'Identifier', 'path'=>'Detail.request[x]', 'min'=>0, 'max'=>1},
61
+ 'requestReference' => {'type_profiles'=>['http://hl7.org/fhir/StructureDefinition/Resource'], 'type'=>'Reference', 'path'=>'Detail.request[x]', 'min'=>0, 'max'=>1},
62
+ 'responceIdentifier' => {'type'=>'Identifier', 'path'=>'Detail.responce[x]', 'min'=>0, 'max'=>1},
63
+ 'responceReference' => {'type_profiles'=>['http://hl7.org/fhir/StructureDefinition/Resource'], 'type'=>'Reference', 'path'=>'Detail.responce[x]', 'min'=>0, 'max'=>1},
64
+ 'submitterIdentifier' => {'type'=>'Identifier', 'path'=>'Detail.submitter[x]', 'min'=>0, 'max'=>1},
65
+ 'submitterReference' => {'type_profiles'=>['http://hl7.org/fhir/StructureDefinition/Organization'], 'type'=>'Reference', 'path'=>'Detail.submitter[x]', 'min'=>0, 'max'=>1},
66
+ 'payeeIdentifier' => {'type'=>'Identifier', 'path'=>'Detail.payee[x]', 'min'=>0, 'max'=>1},
67
+ 'payeeReference' => {'type_profiles'=>['http://hl7.org/fhir/StructureDefinition/Organization'], 'type'=>'Reference', 'path'=>'Detail.payee[x]', 'min'=>0, 'max'=>1},
68
+ 'date' => {'type'=>'date', 'path'=>'Detail.date', 'min'=>0, 'max'=>1},
69
+ 'amount' => {'type'=>'Quantity', 'path'=>'Detail.amount', 'min'=>0, 'max'=>1}
70
+ }
71
+
72
+ attr_accessor :id # 0-1 id
73
+ attr_accessor :extension # 0-* [ Extension ]
74
+ attr_accessor :modifierExtension # 0-* [ Extension ]
75
+ attr_accessor :type # 1-1 Coding
76
+ attr_accessor :requestIdentifier # 0-1 Identifier
77
+ attr_accessor :requestReference # 0-1 Reference(Resource)
78
+ attr_accessor :responceIdentifier # 0-1 Identifier
79
+ attr_accessor :responceReference # 0-1 Reference(Resource)
80
+ attr_accessor :submitterIdentifier # 0-1 Identifier
81
+ attr_accessor :submitterReference # 0-1 Reference(Organization)
82
+ attr_accessor :payeeIdentifier # 0-1 Identifier
83
+ attr_accessor :payeeReference # 0-1 Reference(Organization)
84
+ attr_accessor :date # 0-1 date
85
+ attr_accessor :amount # 0-1 Quantity
86
+ end
87
+
88
+ class Note < FHIR::Model
89
+ include FHIR::Hashable
90
+ include FHIR::Json
91
+ include FHIR::Xml
92
+
93
+ METADATA = {
94
+ 'id' => {'type'=>'id', 'path'=>'Note.id', 'min'=>0, 'max'=>1},
95
+ 'extension' => {'type'=>'Extension', 'path'=>'Note.extension', 'min'=>0, 'max'=>Float::INFINITY},
96
+ 'modifierExtension' => {'type'=>'Extension', 'path'=>'Note.modifierExtension', 'min'=>0, 'max'=>Float::INFINITY},
97
+ 'type' => {'valid_codes'=>{'http://hl7.org/fhir/note-type'=>['display', 'print', 'printoper']}, 'type'=>'Coding', 'path'=>'Note.type', 'min'=>0, 'max'=>1, 'binding'=>{'strength'=>'required', 'uri'=>'http://hl7.org/fhir/ValueSet/note-type'}},
98
+ 'text' => {'type'=>'string', 'path'=>'Note.text', 'min'=>0, 'max'=>1}
99
+ }
100
+
101
+ attr_accessor :id # 0-1 id
102
+ attr_accessor :extension # 0-* [ Extension ]
103
+ attr_accessor :modifierExtension # 0-* [ Extension ]
104
+ attr_accessor :type # 0-1 Coding
105
+ attr_accessor :text # 0-1 string
106
+ end
107
+
108
+ attr_accessor :id # 0-1 id
109
+ attr_accessor :meta # 0-1 Meta
110
+ attr_accessor :implicitRules # 0-1 uri
111
+ attr_accessor :language # 0-1 code
112
+ attr_accessor :text # 0-1 Narrative
113
+ attr_accessor :contained # 0-* [ Resource ]
114
+ attr_accessor :extension # 0-* [ Extension ]
115
+ attr_accessor :modifierExtension # 0-* [ Extension ]
116
+ attr_accessor :identifier # 0-* [ Identifier ]
117
+ attr_accessor :requestIdentifier # 0-1 Identifier
118
+ attr_accessor :requestReference # 0-1 Reference(ProcessRequest)
119
+ attr_accessor :outcome # 0-1 code
120
+ attr_accessor :disposition # 0-1 string
121
+ attr_accessor :ruleset # 0-1 Coding
122
+ attr_accessor :originalRuleset # 0-1 Coding
123
+ attr_accessor :created # 0-1 dateTime
124
+ attr_accessor :period # 0-1 Period
125
+ attr_accessor :organizationIdentifier # 0-1 Identifier
126
+ attr_accessor :organizationReference # 0-1 Reference(Organization)
127
+ attr_accessor :requestProviderIdentifier # 0-1 Identifier
128
+ attr_accessor :requestProviderReference # 0-1 Reference(Practitioner)
129
+ attr_accessor :requestOrganizationIdentifier # 0-1 Identifier
130
+ attr_accessor :requestOrganizationReference # 0-1 Reference(Organization)
131
+ attr_accessor :detail # 0-* [ PaymentReconciliation::Detail ]
132
+ attr_accessor :form # 0-1 Coding
133
+ attr_accessor :total # 1-1 Quantity
134
+ attr_accessor :note # 0-* [ PaymentReconciliation::Note ]
135
+
136
+ def resourceType
137
+ 'PaymentReconciliation'
138
+ end
139
+ end
140
+ end
@@ -0,0 +1,72 @@
1
+ module FHIR
2
+ class Person < FHIR::Model
3
+ include FHIR::Hashable
4
+ include FHIR::Json
5
+ include FHIR::Xml
6
+
7
+ SEARCH_PARAMS = ["address", "address-city", "address-country", "address-postalcode", "address-state", "address-use", "birthdate", "email", "gender", "identifier", "link", "name", "organization", "patient", "phone", "phonetic", "practitioner", "relatedperson", "telecom"]
8
+ METADATA = {
9
+ 'id' => {'type'=>'id', 'path'=>'Person.id', 'min'=>0, 'max'=>1},
10
+ 'meta' => {'type'=>'Meta', 'path'=>'Person.meta', 'min'=>0, 'max'=>1},
11
+ 'implicitRules' => {'type'=>'uri', 'path'=>'Person.implicitRules', 'min'=>0, 'max'=>1},
12
+ 'language' => {'type'=>'code', 'path'=>'Person.language', 'min'=>0, 'max'=>1, 'binding'=>{'strength'=>'required', 'uri'=>'http://tools.ietf.org/html/bcp47'}},
13
+ 'text' => {'type'=>'Narrative', 'path'=>'Person.text', 'min'=>0, 'max'=>1},
14
+ 'contained' => {'type'=>'Resource', 'path'=>'Person.contained', 'min'=>0, 'max'=>Float::INFINITY},
15
+ 'extension' => {'type'=>'Extension', 'path'=>'Person.extension', 'min'=>0, 'max'=>Float::INFINITY},
16
+ 'modifierExtension' => {'type'=>'Extension', 'path'=>'Person.modifierExtension', 'min'=>0, 'max'=>Float::INFINITY},
17
+ 'identifier' => {'type'=>'Identifier', 'path'=>'Person.identifier', 'min'=>0, 'max'=>Float::INFINITY},
18
+ 'name' => {'type'=>'HumanName', 'path'=>'Person.name', 'min'=>0, 'max'=>Float::INFINITY},
19
+ 'telecom' => {'type'=>'ContactPoint', 'path'=>'Person.telecom', 'min'=>0, 'max'=>Float::INFINITY},
20
+ 'gender' => {'valid_codes'=>{'http://hl7.org/fhir/administrative-gender'=>['male', 'female', 'other', 'unknown']}, 'type'=>'code', 'path'=>'Person.gender', 'min'=>0, 'max'=>1, 'binding'=>{'strength'=>'required', 'uri'=>'http://hl7.org/fhir/ValueSet/administrative-gender'}},
21
+ 'birthDate' => {'type'=>'date', 'path'=>'Person.birthDate', 'min'=>0, 'max'=>1},
22
+ 'address' => {'type'=>'Address', 'path'=>'Person.address', 'min'=>0, 'max'=>Float::INFINITY},
23
+ 'photo' => {'type'=>'Attachment', 'path'=>'Person.photo', 'min'=>0, 'max'=>1},
24
+ 'managingOrganization' => {'type_profiles'=>['http://hl7.org/fhir/StructureDefinition/Organization'], 'type'=>'Reference', 'path'=>'Person.managingOrganization', 'min'=>0, 'max'=>1},
25
+ 'active' => {'type'=>'boolean', 'path'=>'Person.active', 'min'=>0, 'max'=>1},
26
+ 'link' => {'type'=>'Person::Link', 'path'=>'Person.link', 'min'=>0, 'max'=>Float::INFINITY}
27
+ }
28
+
29
+ class Link < FHIR::Model
30
+ include FHIR::Hashable
31
+ include FHIR::Json
32
+ include FHIR::Xml
33
+
34
+ METADATA = {
35
+ 'id' => {'type'=>'id', 'path'=>'Link.id', 'min'=>0, 'max'=>1},
36
+ 'extension' => {'type'=>'Extension', 'path'=>'Link.extension', 'min'=>0, 'max'=>Float::INFINITY},
37
+ 'modifierExtension' => {'type'=>'Extension', 'path'=>'Link.modifierExtension', 'min'=>0, 'max'=>Float::INFINITY},
38
+ 'target' => {'type_profiles'=>['http://hl7.org/fhir/StructureDefinition/Patient', 'http://hl7.org/fhir/StructureDefinition/Practitioner', 'http://hl7.org/fhir/StructureDefinition/RelatedPerson', 'http://hl7.org/fhir/StructureDefinition/Person'], 'type'=>'Reference', 'path'=>'Link.target', 'min'=>1, 'max'=>1},
39
+ 'assurance' => {'valid_codes'=>{'http://hl7.org/fhir/identity-assuranceLevel'=>['level1', 'level2', 'level3', 'level4']}, 'type'=>'code', 'path'=>'Link.assurance', 'min'=>0, 'max'=>1, 'binding'=>{'strength'=>'required', 'uri'=>'http://hl7.org/fhir/ValueSet/identity-assuranceLevel'}}
40
+ }
41
+
42
+ attr_accessor :id # 0-1 id
43
+ attr_accessor :extension # 0-* [ Extension ]
44
+ attr_accessor :modifierExtension # 0-* [ Extension ]
45
+ attr_accessor :target # 1-1 Reference(Patient|Practitioner|RelatedPerson|Person)
46
+ attr_accessor :assurance # 0-1 code
47
+ end
48
+
49
+ attr_accessor :id # 0-1 id
50
+ attr_accessor :meta # 0-1 Meta
51
+ attr_accessor :implicitRules # 0-1 uri
52
+ attr_accessor :language # 0-1 code
53
+ attr_accessor :text # 0-1 Narrative
54
+ attr_accessor :contained # 0-* [ Resource ]
55
+ attr_accessor :extension # 0-* [ Extension ]
56
+ attr_accessor :modifierExtension # 0-* [ Extension ]
57
+ attr_accessor :identifier # 0-* [ Identifier ]
58
+ attr_accessor :name # 0-* [ HumanName ]
59
+ attr_accessor :telecom # 0-* [ ContactPoint ]
60
+ attr_accessor :gender # 0-1 code
61
+ attr_accessor :birthDate # 0-1 date
62
+ attr_accessor :address # 0-* [ Address ]
63
+ attr_accessor :photo # 0-1 Attachment
64
+ attr_accessor :managingOrganization # 0-1 Reference(Organization)
65
+ attr_accessor :active # 0-1 boolean
66
+ attr_accessor :link # 0-* [ Person::Link ]
67
+
68
+ def resourceType
69
+ 'Person'
70
+ end
71
+ end
72
+ end